文档库 最新最全的文档下载
当前位置:文档库 › 基于SOA的企业信息门户系统的研究与实现

基于SOA的企业信息门户系统的研究与实现

西安科技大学

硕士学位论文

基于SOA的企业信息门户系统的研究与实现

姓名:冯善杰

申请学位级别:硕士

专业:计算机应用技术

指导教师:龚尚福;郭秀才

@

论文题目:基于SOA的企业信息门户系统的研究与实现

专业:计算机应用技术

硕士生:冯善杰(签名)

指导教师:龚尚福(签名)

郭秀才(签名)

摘要

以信息化带动工业化,大力推进信息化与工业化融合的进程中,企业内部建立了大量的应用子系统,逐步形成了信息孤岛、信息非结构化、重复开发等问题,亟待需要解决。而企业信息门户(Enterprise Information Portal,EIP)的建设能将企业的所有应用和数据集成到一个信息管理平台之上,有效实现企业内部的信息与知识共享,灵活应变企业的流程再造,提高企业信息化应用效率。因此,EIP的开发与应用能进一步提升企业的核心竞争力,成为新的研究热点。

对比传统的企业管理信息系统应用体系架构,论文首先分析和研究了面向服务的体系架构(Service Oriented Architecture,SOA)的特点,论证了EIP系统架构是目前集成企业管理信息系统优秀的解决方案,从SOA的理论知识出发,研究了实现SOA的最好方法即Web Service(Web服务)技术;详细介绍了Web服务规范,主要包括可扩展标记语言、简单对象访问协议、Web服务描述语言、统一描述发现和集成。其次深入研究了在煤矿企业背景下的设计需求、EIP系统的用例模型和业务流程,设计了EIP系统的主要功能模块,分析了如何构建SOA、服务接口和业务模型;系统采用自顶向下的面向服务的业务流程分析方法,把系统中重要的业务功能提取成为服务模式,再对服务进行细粒度的划分,为企业提供业务服务模型;然后研究了EIP系统的结构模式——三层体系架构模式,分为数据访问层、应用支撑层和表现层,构建基于SOA的EIP系统基础架构框架,形成了Web服务的运行机制,并利用.NET平台实现单点登录、个性化、信息和知识业务流程、系统管理、数据集成等功能。

最后,通过测试运行验证了EIP系统的功能的有效性和SOA的可行性,体现了良好的集成能力和流程服务化。结果证明设计方案可行,达到了预期的目标。同时,也说明了SOA的特性和优势为EIP系统提供良好的理论基础和解决方案,是未来系统架构发展的主流趋势。

关 键 字:企业信息门户;面向服务的体系架构;Web服务;业务流程研究类型:应用研究

Subject : Research and Implementation of Enterprise Information Portal System Based on SOA

Specialty : Computer application technology

Name : Feng Shanjie (Signature) Instructor : Gong Shangfu (Signature)

Guo Xiucai (Signature)

ABSTRACT

In the process of promoting IT-based industrialization,the enterprises often establish within a large number of application subsystems,so create a different set of problems to solve, such as island of information, unstructured information, repeat development and so on. However, all applications and data are integrated into the information management platform by Enterprise Information Portal, which achieves the sharing internal information and knowledge effectively, and is flexible business process reengineering. As a consequence, development and application of EIP is a new research hotspot to further enhance competitiveness.

First, compared with the traditional EIP architecture, this paper has researched Service Oriented Architecture which is the best solution for the EIP system, and form the theoretical knowledge of SOA, researched Web Service technology the best method to achieve SOA. The paper has introduced the Web Service specifications in detail, including Extensible Markup Language, Simple Object Access Protocol, Web Services Description Language and Universal Description Discovery and Integration. Second, the paper has in-depth studied the design requirement, use-case model and business process of the EIP system under the background of coal mining enterprises, designed the main modules, and analyzed how to build SOA, service interfaces and business model. Meanwhile, top-down object oriented analyzing method of the service is adopted. The system has extracted important business functions as services, and processed fine-grained division for services which provide the service model. Then, the paper has researched the EIP system structure, three-tier architecture design patterns, which are consisted of data access layer, application support layer and presentation layer. Building of SOA-based framework for EIP system infrastructure has showed the Web Service operation

mechanism. Through https://www.wendangku.net/doc/8917275175.html, platform, the system has realized Single Sign-On, customization, business processes of the information, knowledge and system management, data integration and other functions.

Finally, the test has verified the running correctness of EIP functions of the system and the feasibility of SOA, so it reflects good integration capabilities and service-based process. The result has proved that this design is feasible to achieve the desired goals. Meanwhile, the features and advantages of SOA which is the main trend of system architecture provide the best theoretical basis and solutions in the future.

Key Words : Enterprise Information Portal Service Oriented Architecture

Web Service Business process

Thesis : Application Research

1绪论

1绪论

在企业信息化过程中,由于信息化系统的实施是一个渐进的过程,而基于企业整体发展考虑的信息化建设的总体规划总是相对滞后,因此,大多数企业在信息化过程中出现了信息孤岛、信息膨胀、重复开发、信息非结构化、信息非个性化和信息非关联性等突出的问题,直接导致企业整体协调困难、信息流通不畅和不完整,降低了企业的管理效率、响应速度,也影响了企业的知识共享,直接影响到企业核心竞争力的发挥,进而影响到企业的生存与发展。

如何有效地实现企业内部的信息与知识共享、应用集成,进而提高企业对市场的响应速度、提高企业自身的核心竞争力?这是企业在信息化发展到一定阶段不得不关注的重大问题。EIP(Enterprise Information Portal,企业信息门户)是企业e化转型的一个战略性方向,是企业进一步提升信息化水平、提高企业核心竞争力的必然选择。

1.1企业信息门户系统的研究背景

随着企业信息化的迅速发展,国内外许多企业、科研单位等已经逐步建立起了自己对外宣传和资源共享的信息窗口,这些企业内部各种管理信息系统应用越来越广泛,为了适应业务发展的需要逐步建立了不同的应用系统,如ERP(Enterprise Resource Planning,企业资源规划)、财务、CRM(Customer Relationship Management,客户关系管理)、HR(human resource,人力资源)、OA(Office Automation,办公自动化)等管理系统。由于信息化系统的实施是一个渐进的过程,而基于企业整体发展考虑的信息化建设的总体规划总是相对滞后,造成了各系统彼此孤立,数据分散,使用方法不统一、安全性缺乏统一的管理机制与控制。对于企业内部不同工作岗位的人员来说,所需要的资源存放在不同的应用系统中,导致频繁的在各应用系统间来回的切换;同一信息在财务、ERP、CRM等系统可能都保存,导致信息的不一致,不同的信息由于分散存储在不同的系统,也很难形成组织统一的信息模型。当企业面临端到端的服务挑战时,由于不同的业务流程在不同的系统流转而无法满足,企业的协同效率明显受到制约[1]。这些现象已渐渐开始严重阻碍企业的管理与发展。

1998年11月,美国美林公司(Merril Lynch)的Shilakes和Tylman发表了一份关于EIP 的研究报告:《超越Yahoo!企业信息门户已经上路》,报告中首次详细阐述了“企业信息门户”的概念,即“企业信息门户是企业管理内部和外部信息资源的应用程序,能为用户提供进行商业决策所需的个性化信息的唯一途径[2]”。所以,EIP使企业能够释放存储在企业内部和外部的各种信息,为企业的决策者、职员、客户及合作伙伴提供集成互联、信息共享、使用简单的应用系统,企业信息门户系统能够为多个分布的Web站点提供一

西安科技大学硕士学位论文

个集中、统一的服务访问点[3],如图1.1所示。

图1.1 EIP系统

EIP能够通过超越现有分散的应用环境实现企业信息集成这个目标,把原来不同的内部部门的分割、内部工作流程的分割、不同的企业内外的分割,通过系统的集成使其相互关联到一起,形成广泛的,相互关联的企业应用环境[4,5]。EIP不仅仅是在原来的文件管理系统或ERP应用和主机系统之上的一层Web界面,最重要的是它集成了整个企业所需的所有数据和应用,为同企业相关的管理者、雇员、供应商、用户、分销商等提供一个唯一的企业信息接入点[6]。

EIP就是通过浏览器实现对整个企业信息的访问,用以加速和提升决策过程。SOA (Service Oriented Architecture,面向服务体系结构)是一种架构模型,他可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用[7]。松散耦合是指使用另一个组件提供服务的一个组件对前者的依赖性不强,它是语言独立的、平台独立的事务[8]。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。SOA的关键是“服务”的概念,W3C将服务定义为:服务提供者完成一组工作,为服务消费者交付所需的最终结果,最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态发生改变,或者双方都产生变化[9]。SOA和EIP的有机结合,保障了整个企业信息的快速发布和提升决策过程。

随着互联网络的迸一步发展,分布式应用的不断普及,SOA的应用会更加被人们所接受,成为继面向对象、面向组件之后的新的设计方式[10]。SOA的目标在于将IT变得更有弹性,能够更快地响应业务单位的需求,实现实施企业。因为,在经常遇到的问题中,信息资源的85%是非结构化的,约30%的时间被消耗在人员对相关信息的搜索中,IT的预算的40%可能消耗在集成上。SOA具有以下优点[11]:

(1)利用现有的资产,将现有的应用程序包装成为提供企业功能的服务

企业可以继续从现有的资源中获取价值,而不必重新从头开始构建。

1绪论

(2)易于集成和管理复杂性

服务的可集成性与可发现性,企业可以随时更换更适合的服务以便于企业应用的重新组合,因而更能体现企业的业务敏捷性。

(3)更快地整合现实

通过利用现有的构件和服务,可以减少完成软件开发生命周期所需的时间。这使得可以快速地开发新的业务服务,并允许组织迅速地对改变做出响应和缩短开发时间。

(4)减少成本和增加重用

通过以松散耦合的方式公开业务服务,企业可以根据业务要求更轻松地使用和组合服务。

通过上述SOA优点可知,SOA更适合作为当前企业信息门户系统的基础架构,SOA 能把问题解决的更彻底,同时,对底层的IT系统架构层次更加清晰。

目前对于SOA的研究主要集中于各类具体问题的解决。例如关于服务粒度的研究、关于安全性的研究、关于服务质量的研究、跨系统集成的研究、业务流程的研究等。这些具体方向的研究成果无疑可以很好从某一方面来解决SOA的应用问题,但是这些领域的研究是一个不断发展的过程,而且目前的研究成果已经可以应用于解决实际问题,从这个意义上讲如何利用已经有的成果来解决实际应用的问题[12]。

基于SOA的应用目前商业公司分别推出了自己的解决方案,并且取得了一些应用实践,而目前的情况是开源产品己经具备了一定的水平,在这样的情况下提出基于SOA 的应用研究就具有重要的意义。由于SOA的应用研究具有很强的行业性,本课题主要围绕着企业信息门户系统这个主题,提出基于SOA的门户系统解决方案。建立EIP系统意味着企业以更低的成本,获得更高的效率和更广的视野和空间。因此对于企业而言,EIP不只是一个IT技术工具,更是一个发展的战略。“网络就是计算机”,这是几年前IBM 提出的概念,随着B/S模式软件的深入应用,这句话的预见性正在日益显现,基于互联网的软件应用正在成为一种趋势、一个方向。如今,门户技术已经是构建许多应用程序的基础框架,EIP技术代表着IT技术应用的新浪潮,它必将成为企业信息化建设的新思维方式。

1.2国内外发展进程和研究方向

在国际市场,微软很早就提出了.Net理念,2002年微软全面的用.Net从逻辑层上置换了COM(Component Object Model,组件对象模型),作为新的软件开发框架(COM 仍然被支持)。.Net技术的全面推进,统一了微软的不同技术理念和平台。作为一个战略品牌,.Net为Web Service提供了原生的解决方案,并且成为提升不同应用和系统之间互操作性的标准[13]。近年来为了争夺SOA领域的地位,目前在.Net Framework2.0地基础上,借助于Visual Studio 2005,推出了Indigo产品,又在.NET Framework3.5的基

西安科技大学硕士学位论文

础上,借助Visual Studio 2008,WCF框架为构建面向服务的应用提供的分布式通信编程框架,因此.NET的优势在以下四个方面:

(1)管理性

.NET使用基于文本的、分级的配置系统,简化了将设置应用于服务器环境和Web 应用程序的工作。

(2)安全性、扩展性和可用性

.NET为Web应用程序提供了默认的授权和身份验证方案,开发人员可以使用或者替换这些方案;提供了跟踪服务,该服务可在应用程序级别和页面级别调试过程中启用。.NET支持使用.NET Framework调试工具进行本地和远程调试。

(3)易于部署和灵活的输出缓存

通过简单的将必要的文件复制到服务器上,.NET应用程序即可以部署到该服务器上。根据应用程序的需要,.NET可以缓存页数据、页的一部分或整个页面。

(4)良好的兼容性和其他增强的性能

.NET是运行在服务器上的已编译代码,能利用实时(JIT)编译、本机优化和全新的缓存服务来提高性能。

IBM则推出了基于J2EE的WebSphere系列产品为SOA的应用提供解决方案。BEA 公司则推出了基于J2EE的BEA WebLogic平台。

目前市场上比较流行的门户服务器有IBM的WebSphere Poral Server和BEA公司的WebLogic Poral Server,在产品解决方面方面,IBM、Sun、Microsoft、HP、Oracle、BEA、ORACLE和Sybase等大公司都开发出了各具特色的门户产品。惠普、西门子、可口可乐、荷兰银行、加拿大帝国商业银行(CIBC)、杜邦等很多大公司都已实施了企业门户的项目[14]。IBM在国内外的市场比较广大,充分利用自身的优势,IBM拥有SOA方面最成熟的方法论、最领先的技术和最广泛的成功实施案例和经验。到目前为止,IBM已经帮助全球4500多家企业成功地实施了基于SOA的整合,这其中也包括很多中国的企业,如中远集运、北京朝阳区政府、南京玄武区政府、山西移动等[15]。在国内但相比之下,基于IBM WebSphere Portal 的门户解决方案具有如下优势:

(1)在技术上,IBM WebSphere Portal 提供应用整合、IT 架构整合、文档内容管理、协作服务等功能,是架构最完整的门户解决方案。

(2)在成本上,IBM WebSphere Portal 支持多种软硬件平台以及各种开放标准,包含大量开箱即用的门户程序,方便客户快速的构建门户系统,提供企业最优的投资回报。

(3)在风险上,IBM WebSphere Portal被各种企业、组织、IBM 商业合作伙伴以及专业评测机构广泛认可,已经被验证是成熟、可信赖的门户解决方案。国内的研究主要集中在门户的特性研究、体系结构和应用技术等几方面。国内的软件商正在努力寻求适合于中国国情的企业信息门户与知识门户战略,并推进其实施进程。

1绪论

WebSphere是IBM的集成软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变Web应用程序和跨平台、跨产品解决方案所需要的整个中间件的基础设施,如服务器、服务和工具。IBM WebSphere Portal是构建在IBM WEB应用服务器上的一个J2EE应用,它采用WAS系统中提供的标准的J2EE认证和授权机制JAAS(Java Authentication Authorization Service,Java验证和授权API)进行认证和授权。Web Sphere Portal提供了企业门户的运行及开发环境,提供一个Portal引擎、Portlet容器以及用于Portal开发的一组API。Portal引擎提供了信息门户的基本服务,在Portlet容器中,Web Sphere Portal提供了一些特色功能Portlet,供二次开发使用。“Portlet”是指门户网站小应用程序,用于显示特定的内容,它是门户网站的核心,通常被描述为网页上的小方框。它是基于公开标准和JA V A 技术而开发的组件具有标准化和可以重复使用的特点。在进行企业门户的开发工作时,主要是针对不同应用系统的业务情况,开发符合用户需求的Portlet,并将开发的Portlet部署到门户网站中。Portlet是基于Java环境的J2EE应用的开发,开发过程中唯一与普通J2EE应用不同的是,必须满足Portal的一些特殊要求,继承特定的基类[16]。

就SOA的整体发展水平而言,由于SOA思想起源于国外,故而架构方面的思想已比较成熟,现已有成熟的SOA套件发布,这其中包括IBM的WebSphere,BEA公司的WebLogic等,这些产品的上市,一方面会促进SOA的广泛应用;另一方面通过使用这些套件可及时地发现当前在SOA应用方面的不足之处,从而可制定、修订与SOA相关的规范。综上所述,SOA在国外发展水平正处于推广和全面发展阶段。

SOA在国内起步较晚,当前SOA提倡者多是以前的中间件、面向构件技术的提供商,对于SOA及相关技术,当前大部分企业仍然集中在论证、实验或某一功能或部门级别的局部性的部署阶段。国内还没有一个真正的、完整的SOA产品,国内SOA的发展更多的是一些传统的中间件厂商在推动,通过使用中间件技术,间接地实践SOA。据最新的IDC调查表明:“77.5%的接受调查的中国企业开始考虑或着手实现SOA架构,其中己经部署SOA项目的企业占10%,己经规划或正在部署的占30%,正在进行SOA 项目论证的为37.5%,尚未论证或考虑SOA项目的仅有22.5%”[17]。综上所述,SOA 在国内市场上有着很大的需求,但是在中国的应用还不是很广泛,其技术和经验明显有着差距。对于大多数的中国企业来说,似乎还没有到达系统应用集成的高度,大多数仍然使用的是传统的以数据库为数据访问中心,针对不同的需求企业使用不同的应用程序的模式,然而SOA的优势明显,降低信息化投资建设的成本,能对市场和业务需求做出快速的响应能力,迅速适应企业的变化,相信会有越来越多的企业逐步使用SOA来部署企业应用。

西安科技大学硕士学位论文

1.3研究的主要内容

基于SOA的架构在国内市场的巨大潜力,结合国内在应用SOA架构上实现企业管理中出现的优缺点,以及对SOA架构的理论分析,应用SOA在企业级应用上的优势,本文在.NET平台下实现SOA技术分散的问题。故而课题从以下方面作为研究的主要内容:

(1)结合传统软件架构的不足,从概念上研究企业信息门户系统和SOA的体系结构,研究目前比较流行的SOA架构平台,分析了SOA的特点和优势等。

(2)理解并研究SOA的实现技术即Web Service方法,详细研究相关协议,主要包括可扩展标记语言、简单对象访问协议、Web服务描述语言、统一描述、发现和集成。

(3)利用SOA的理论知识和企业背景,建立在.NET平台下SOA的规划模型,然后从架构上具体了解在.NET平台下实现SOA的方法与技术。

(4)系统采用面向服务的体系架构方法,分析在具体企业背景下的需求,研究并总结EIP系统业务流程,规划EIP系统的主要模块,详细设计系统的体系架构,结合具体研究背景并提取出系统的关键点,然后把这些关键点转变成服务的形式,对服务进行细粒度的划分,根据用户需求将离散的服务组合成新的服务为企业提供业务服务模型。

(5)使用UML(Unified Modeling Language,统一建模语言),Web Service等相关技术,根据设计方案开发在.NET平台下基于SOA的企业信息门户系统。

1.4论文的组织结构

第一章绪论。阐述课题背景与研究意义;国内外现状和课题研究的主要内容。

第二章面向服务体系架构的理论研究。描述了SOA的基础、特点;阐述了Web 服务是实现SOA的最好方式,详细介绍了Web Service的规范,包括XML、SOAP、WSDL和UDDI。

第三章企业信息门户系统总体设计。分析并研究了在煤矿企业背景下的需求分析和系统的用例模型;说明了如何构建SOA、服务接口和服务模型,业务流程细粒度划分划分;详细设计了系统的结构,即三层体系架构,表现层、应用支撑层、数据层。

第四章企业信息门户系统的实现。主要阐述了EIP系统的开发平台、Web Services 的实现和系统功能的实现过程,包括单点登录、个性化、数据集成、企业信息和知识业务流程和系统管理。

第五章企业信息门户系统的测试运行。阐述了企业信息门户系统的测试环境,验证了系统的运行结果、运行效率和Web服务的可行,并对结果进行了分析。

2面向服务体系架构的理论研究

2面向服务体系架构的理论研究

2.1面向服务的体系架构简介

软件系统的体系架构可以分为四个阶段。分别是传统的面向过程的体系架构、面向对象的体系架构、面向组件的体系架构、面向服务的体系架构。

在早期,软件的主要作用就是代替人工的一次次的重复计算,程序就是由一个个函数(过程)组合起来。因为程序结构比较简单,为了解决研究中的计算问题,把重点研究的对象放在了算法上面,这个时期就是面向过程的体系架构。

随着发展软件处理对象越来越复杂,不仅仅停留在数值的计算上,逐步开始对现实事物进行描述,这个时期出现了面向对象技术,通过对事物的抽象,实现了重用,并且第一次让软件的处理人性化,这个阶段属于面向对象的体系架构。

虽然面向对象的技术在解决问题方面有了很大的突破,但是还满足不了人们在进行软件开发时逐步希望分工更加明确的需求,于是提出了组件技术,就是通过封装实现过程,来简化软件的开发,这个时期组件作为一个工具,给开发带来了很大的方便,称之为面向组件的体系架构。

随着网络的迅速发展,出现了分布式组件,于是面向服务的体系架构应运而生。面向服务的体系架构强调的是服务,可以提交请求,可以实现其它主机完成任务并返回结果。随着Web Service的出现,面向服务的体系架构和Web Service的结合,将会带来巨大的市场前景。

面向服务的体系架构是一个组件模型,将应用程序的不同功能单元(服务)通过这些服务之间定义良好的接口和契约联系起来,包含运行环境、编程模型、架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境,涵盖服务的整个生命周期:建模-开发-整合-部署-运行-管理。SOA的计算环境如图2.1所示。

面向服务的计算环境是开放的、标准的,如图2.2所示的技术标准协议栈,左边功能部分就是第一代Web Service,右边部分为第二代Web Service,这些规范为Web的安全性、可靠性等其他方面提供了支持。

面向服务体系架构的核心本质是实现服务和技术的完全分离,从而达到服务的可重用性[18]。SOA将企业应用看作由一些不同粒度、能跨越企业边界以及能实现特殊功能的服务集合所构成,并在这些服务之间通过定义良好的、独立于实现服务的硬件平台、操作系统和编程语言的接口进行联系,使此类系统可通过一种通用的方式进行交互。因此,采用SOA实现企业的IT架构能在更大范围上达到信息共享,实现高度的互操作性和可扩充性,最终起到优化配置资源的作用[19]。

西安科技大学硕士学位论文

现在的SOA基本框架主要由服务提供者、服务消费者、服务注册中心三个实体组成。这一组实体基于XML 、简单对象访问协议(Simple Object Access Protocol,SOAP)、WSDL(Web Service Definition Language)、统一描述发现和集成(Universal Description Discover and Integration,UDDI)等一系列开放的标准,通过发布、绑定、查找三种基本的操作实现相互之间的联系和通信,交互具体设计到发布、查找、绑定操作。服务提供者提供可通过网络访问的服务模块;服务消费者定义Web Service的服务描述,并将它发布到服务注册中心或者直接发送给服务消费者。服务消费者从本地或者注册中心进行查找操作,搜索到服务描述,然后根据服务描述进行与服务提供者绑定的操作。它们

2面向服务体系架构的理论研究

图2.3 SOA模型角色协作图

2.1.1服务封装逻辑

为保持独立性,服务要在独特的语境中封装逻辑,该语境可能特定于某一业务任务、业务实体、或一些其他逻辑组。

服务能够处理的关注点或大或小,因此服务可以代表的逻辑范围和规模也是可变的。而且,服务逻辑可包含其他服务提供的逻辑。如下图2.4所示,当构建一个包含服务的自动化解决方案时,每种服务都可封装为一个由单个步骤执行的任务或包含一系列步骤的子过程。服务甚至可以封装整个处理逻辑。对于封装逻辑的服务而言,它们可以参与业务活动的执行。因此这些服务必须与其使用者形成清晰的关系。

图2.4 服务封装不同的逻辑图

西安科技大学硕士学位论文

2.1.2服务关联

在SOA内,服务可以用于其他服务或程序。服务之间的关系应基于对服务交互的理解,他们之间必须相互知晓。这个知晓通过服务描述获得。

最基本的服务描述确定了服务的名称和服务的位置,以及要求交换的数据。服务用服务描述的方式导致了松散耦合的分类关系。如图2.5所示,说明了服务A知晓服务B,因为服务A拥有服务B的服务描述。

服务为了相互作用并达成一些特定意义的目的而必须交换信息。因此需要一个可以保留其松散耦合关系的通信框架,这样的框架是消息传递。

2.1.3服务通信

服务以自己的方式发送一个消息之后,它对消息此后所发生的一切都将失去控制。这就是为什么需要消息作为“独立的通信单元”存在。这意味着,消息和服务一样应当是自治的。为实现这个效果,消息要具备足够的只能以自控其处理逻辑部分,如图 2.6所示。

图2.5 服务A拥有与服务B通信所需的信息

图2.6 A消息作为一个独立的通信单元存在

提供服务描述经由消息的服务和通信形成一个基本架构。到目前为止,这个架构已经出现了与过去分布式架构的类似之处,即支持消息和来自处理的接口的分离。对我们

2面向服务体系架构的理论研究

而言,区别在于如何设计其三层核心组件(服务、描述和消息)。

2.1.4服务设计

与面向对象非常相似,面向服务已经成为独特的设计方法,该方法引入通用的公认原则来控制架构组件的配置与设计,如图2.7所示。

面向服务的原则对处理逻辑的应用形成了标准化的面向服务处理逻辑。当一个解决方案由面向服务的处理逻辑单元组成时,就成为面向服务的解决方案。各个面向服务的原则的关键方面介绍:

松散耦合:服务维护了最小依赖关系,并且仅需要保持相互间的知晓。

服务契约:服务都应遵守一个通信协议,由一个或多个服务描述及相关文档共同定义。

自治:服务已经控制了其所封装的逻辑。

抽象:超出服务契约的描述之外,服务对外部世界隐藏了逻辑。

复用性:将逻辑分成服务以便促进复用。

组合性:可以对服务的集合进行替换并组装以形成组合服务。

无状态性:服务保留了最少的服务特定信息。

可发现性:服务的直观描述设计,从而可以通过发现机制来发现和评估服务[20]。

图2.7 面向服务原则提出设计问题图

2.2 SOA的特点

SOA将服务的概念应用于分布式企业应用,在SOA中,每个应用程序都将高级业务功能以服务的形式公开出来,以供其他应用程序使用,SOA主要的应用在于解决Internet环境下的不同商业应用之间的业务集成问题,使分布式应用具有更好的弹性和

西安科技大学硕士学位论文

灵活性。Internet环境中IT应用存在如下缺点:大量异构系统并存,计算机硬件不同、操作系统不同、编程语言不同、软件的工作方式也不同;不同企业局域网之间的大量、频繁的数据传输仍然速度缓慢并且很不稳定;缺乏相应标准或机制,使我们能够知道互联网上有哪些应用直接或者间接的使用某个服务。

SOA的几个主要特点是[21]:

(1)业务驱动

从技术抽象层次上来说,服务位于业务和技术之间。要设计面向服务的架构,一方面必须理解在业务需求和可以提供的服务之间的动态关系,另一方面,也要理解服务与实现这些服务的底层技术之间的关系。所以,SOA是业务驱动的,应用架构也应该满足业务敏捷的需求,保证架构的灵活性。

(2)松耦合

在软件领域,“耦合”一般指软件组件之间的依赖程度。服务(不同的业务功能单元)通过服务之间定义良好的接口和约定联系起来,服务请求者通过统一格式的消息进行操作(请求消息、响应消息)。接口是采用中立的方式进行定义的,接口的定义和描述独立于实现服务的硬件平台、操作系统和程序设计语言,从而不同的服务以一种统一和通用的方式进行交互,那么服务请求者与服务提供者之间的绑定和服务之间就是松耦合的。

在不同服务之间,SOA要求保持一种松耦合的关系,也就是保持一种相对独立无依赖的关系。一个服务就是一个单独的代码模块。松耦合的好处就是它的灵活性,当一个服务的内部结构发生变化时,它能够继续存在,不同的实现技术(J2EE或者.NET)的服务不会影响使用者,而紧耦合则意味着应用程序的的不同组件之间的接口和其功能和结构是紧密相关的。他们之间的对比如表2.1所示。

表2.1 紧耦合和松耦合的对比

紧耦合和松耦合的对比表

级别紧耦合松耦合

物理耦合需要直接的物理链接物理中介

通信方式同步异步

类型系统强类型系统(例如接口语义) 弱类型系统(例如载荷语义)

交互模式以OO方式导航复杂对象树以数据为中心,独立消息过程逻辑的控制集中控制处理逻辑分布式逻辑组件

服务发现和绑定静态绑定服务动态绑定服务平台依赖性对操作系统和编程语言的依赖性高独立于操作系统和编程语言

(3)明确定义的接口

SOA中的服务的交互接口必须是明确定义和描述的。服务提供者应该使用标准的服

2面向服务体系架构的理论研究

务描述语言来定义接口,用于描述服务请求者要求绑定到服务所需要的细节。用于Web Service的WSDL(Web服务描述语言,Web Services Description Language)就是一种被广泛支持的服务描述语言。

(4)位置透明性

SOA系统中的所有服务对于他们的调用者来说都是位置透明的,也就是说每个服务的调用者只需要知道他们调用的是哪一个服务,但并不需要知道所调用服务的物理位置在哪里。

(5)遵循开放标准和协议的远程调用

SOA的主要目的是由“服务”导向改善远程调用的方法,搭建软件系统之间的横向构建桥梁,从而提高IT系统的灵活性。由于Internet中存在大量的异构系统和遗留系统,采用传统的基于二进制的消息传递方式,在不同语言、不同平台、不同数据类型、不同数据格式的情况下,通过远程调用来传递对象将带来很大的困难,所以SOA中需要采用基于文本的、遵循开放标准和协议(比如XML和SOAP)的消息传递方式。

(6)大数据量低频率访问

在Internet环境下,响应速度、稳定性等因素决定了整个系统是否能正常工作的关键性决定因素。在SOA模式下,消息的传递通常采用基于文本的格式(比如XML),响应速度和效率会有所降低,因此在SOA系统中推荐采用大数据量的方式进行一次性的信息交换。

2.3 SOA与Web Service关系

SOA透过服务的概念来表示IT资源,技术上的服务就是对业务的一种直接映射,SOA为基于服务的分布式系统提供了一种概念上的设计模式,由此IT科技与实际业务应用之间的关系变得十分的紧密。SOA和Web Service的体系结构是基于两个不同层面的问题,SOA是概念模式,面向的是商业应用;Web Service是实现模式,是一种粗粒度的软件应用架构,面向的是技术框架,不局限于某种技术实现,它超越了纯技术的范畴[22]。SOA所表示的是一个概念上的模型,在这个模型中,特性之一的松散藕合在计算机网络上被描述、发布和调用。而Web Service则是由一组协议构成的协议栈所定义的框架结构,也就是一套技术体系,它向外界暴露出一个能够通过Web进行调用的API,可以用来建立应用解决方案,解决特定的消息通信和应用集成问题,可以说,Web Service体系结构实际上是面向服务的体系结构的一个特定实现。面向服务的体系结构作为一个概念上的模型,它将网络、传输协议以及安全等具体的细节都以留给特定的实现。Web Service 中的SOAP、WSDL正是定义这些具体实现细节的标准。因此,Web Service是一种能够实现SOA特点的方式。

Web Service是基于标准的服务实现的一个典型[23]。所以,Web Service是实现SOA

西安科技大学硕士学位论文

的一种技术方法,而SOA不一定非要Web Service来实现。但就目前来看,Web Service 是实现SOA的最好方式,因此SOA和Web Service不免成为一对紧密联系在一起的词汇。综上,Web Service扮演了SOA催化剂的角色,以SOA为大方向和指导原则,运用正确的设计理念,才能成功应用Web Service,达到最佳效果。

2.4 Web Service协议

Web Service,即Web服务,是解决应用程序之间相互通信的一项技术,是SOA的一种实现方式,它是建立在Web/XML标准上的跨平台的分布式结构。严格地说,Web Service是描述一系列操作的接口。它使用标准的、规范的XML描述接口。这一描述中包括了与服务交互所需要的全部细节,包括消息格式、传输协议、和服务位置。而在对外的接口中隐藏了服务实现的细节,仅提供一系列可执行操作,这些操作独立于软、硬件平台和编写服务所使用的编程语言[24]。

Web Service基于开放的因特网标准,结构单元包括SOAP、WSDL和UDDI,一个概念性Web Service协议栈如图2.8所示。

图2.8 Web Service协议栈图

2.4.1 Web Service的特点

(1)互操作性[25]

任何Web Service都可以与其他Web Service进行交互。由于主要供应商都支持SOAP(Simple Object Access Protocol,简单对象访问协议),因而避免了在CORBA、DCOM和其他协议之间转换的麻烦。可以使用任何语言来编写Web Service,因此开发者无需更改开发环境,就可使用Web Service。

(2)普遍性

Web Service使用HTTP和XML进行通信,任何支持这些技术的设备都可拥有和访问Web Service。

UDDI

UDDI

WSDL

SOAP

HTTP、FTP、EMAIL等

2面向服务体系架构的理论研究

(3)易于使用

Web Service的概念易于理解,并且有微软和IBM的免费工具箱能够让开发者迅速创建和部署Web Service。

(4)行业支持

所有主要的供应商都支持SOAP和Web Service技术,如微软的.NET平台基于Web Service。

2.4.2 XML

可扩展标记语言(Extellsible Markup Language,可扩展标记语言)是基于文本的、自描述的结构化语言,完全独立于平台和编程语言,所以特别适合作为不同应用之间进行数据交换和消息传递的数据载体[26]。它从SGML演化而来,继承了SGML的强大功能而消除了SGML的繁琐定义,使得XML更加简单、易用。

XML是实现Web Service最根本和最重要的技术。从总体来讲,XML具有以下特点:

(1)可扩展

XML的概念很简单,但是它却有广阔的应用领域,因为任何人都可以按照自己应用的需要定义相应的XML标签来表达信息的结构和类型。

(2)可描述性

XML允许自定义标签,并且这些标签可以说明数据的语义,而不是HTML中的格式说明。

(3)独立于平台和应用

XML的文档内容是基于Unicode的文本,适于网络的传输。

(4)易于设计

XML文档容易编写,设计正式而且简洁,可读性强。

(5)更精确的搜索

XML标签表达的是内容的含义,从而搜索引擎可以通过搜索XML文档得到更精确的需要的内容。

(6)广泛的支持

XML得到了众多的软件厂商比如Microsoft,IBM,Sun,Oracle等几乎所有大公司的支持。

XML为整个Web Service上层协议提供了数据/信息描述手段,Web Service中的SOAP、WSDL、UDDI等都用XML进行描述,XML是Web Service的基石[27]。

2.4.3 SOAP

SOAP(Simple Object Access Protocol,简单对象访问协议)是在分布式环境中通过

相关文档