面向对象软件体系结构SOAWord格式.docx
《面向对象软件体系结构SOAWord格式.docx》由会员分享,可在线阅读,更多相关《面向对象软件体系结构SOAWord格式.docx(17页珍藏版)》请在冰点文库上搜索。
五、开发SOA应用程序相关的平台/软件.7
5.1IBM公司SOA开发产品..7
5.2SAP公司SOA开发产品..7
5.3Oracle公司SOA开发产品:
8•
5.4Webmethods公司SOA开发产品:
.……..9
5.5Microsoft公司SOA开发产品.:
9
9
・・・・
六、SOA用举例.•...9
七、参考资料
一.绪论
1.1摘要
SOA,面向服务的体系结构(service-orientedarchitecture)是一个组件模型,它将
应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
作为软件体系结构领域的新宠儿,SOA正无可争议地引领着软件业的新一轮浪潮,并在未来
给软件和网络带来革命性的变化。
本文阐述了SOA日益得势的缘由以及SOA的体系结构形式
和实现方法,同时还介绍了与开发SOA应用程序相关平台或软件,并对其应用进行了举例描述。
1.2关键字
面向服务的软件体系结构(SOA
体系结构形式
SOA实现方法
WEB基础的服务
二.SOA介绍及其得势原因
如果说给面向服务的体系结构一个准确的定义,那么应该就是这样一段话:
面向服务的
体系结构(Service-OrientedArchitecture,SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。
接口是采用中立
的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。
这使得构建
在各种这样的系统中的服务可以一种统一和通用的方式进行交互。
在了解了面向对象体系结构(以后用SOA表示)的概念后,我们不得不考虑,为什么它如此得势,如此受追捧呢?
为了回答这个问题,我们需要先了解一下目前软件开发遇到的问题与困扰。
软件开发目
前面临两大难题:
一是软件在不断地发展,用户需求在不断地增加,软件功能模块在不断地扩充,软件的重新设计和整合的成本成为企业无休止的投资陷阱。
二是目前管理软件中不
同种类的操作系统、应用软件、系统软件、数据格式相互交织,要将这些不同网络、不同平台、不同数据格式、不同软件完全统一是不可能的,只能在现有的软件、数据、平台基础上进行扩充。
基于上述两点原因,我们在软件架构的上需要做出必要的调整。
首先,要解决软件功能模块扩展的问题,减小未来软件投资风险,除了常规的软件升级
更新,扩充功能以外,降低模块间的耦合度、模块间使用明确定义的接口进行交互、模块
组件化的方式,能够有效地减小模块间的依赖性,延长模块生命周期,增加模块间交互能力,
增强软件扩展能力,减少企业软件开发和集成投资,并能够保护用户的IT基础建设投资,
提高产品竞争力。
其次,要解决跨网络、跨平台处理不同数据格式、与不同软件的软件进行交互的问题,必须采用标准化技术。
软件交互、数据格式、网络协议等均有国际标准或行业标准,利用和实现这些标准所规定的内容,即可以相对简单的解决跨网络、跨平台处理不同数据格式、与不同软件的软件进行交互的问题。
目前能够实现了上述理念的软件架构就是“面向服务架构(SOA”。
面向服务架构不
是一种技术,也不是一种标准,而是一种应用框架,但SOA基于技术和标准,是技术和标
准的累积,它着眼于日常的业务应用,并将它们划分为单独的业务功能和流程,即所谓的服
务。
SOA使用户可以构建、部署和整合这些服务,且无需依赖应用程序及其运行计算平台,
从而提高业务流程的灵活性。
这种业务灵活性可使企业加快发展速度,降低总体拥有成本,改善对及时、准确信息的访问。
SOA有助于实现更多的资产重用、更轻松的管理和更快的开发与部署。
SOA的体系结构形式
介绍完SOA受宠的原因后,我们再来看看SOA勺体系结构是什么样的呢?
SOA是一种松耦合的系统,它要求开发者从服务集成的角度来设计应用软件,它将应用程序的不同功能组件定义为“服务”,通过“服务”之间的良好接口联系起来。
(也就是“服
务”之间的松耦合。
)接口是采用中立方式进行定义的,独立于实现“服务”的硬件平台、操作系统和编成语言。
而且这些构建在各种各样系统中的“服务”可以以一种统一和通用
方式进行交互。
保证系统灵活性,另外,还可以保证“服务”的重复利用。
由此可以看出,SOA的核心概念是“重用”和“互操作”,从而使企业的IT系统拥有
极大的灵活性。
SOA的另一层意义就是整合,它将企业的IT资源整合成标准的、可操作的
服务,使其能被重新组合和应用。
在这种架构下,IT系统的复杂性并没有增加,相反,随
着系统的不断完善,整个系统的架构将变得更加清晰。
SOA架构定义了搭建企业软件架构的一种新方法,它的出现使所有应用在交换数据和处
理过程中,不需要考虑应用软件是用什么编程语言开发的或在什么操作系统下运行。
在这
种模式下,一个应用或应用的一部分其实是一种服务,其他的应用和客户都可以在无需编写
大量代码的情况下使用这些服务,这一切都使一些大企业或在地理上分布范围比较广的开
发队伍能够更好地合作,因为这些SOA架构下的中间件业务模块都能够被重新配置或以新方式优化来满足新的需求。
正是SOA的重用性和互操作性所带来的灵活性实现了企业IT资源
整合,使企业IT资源真正面向于服务。
具体来说,SOA架构的体系结构模型通常由一下三部分组成:
A.服务提供者:
服务提供者是可以通过网络寻址的实体,它接受和执行来自消费者
的请求。
它将自己的服务和接口契约发布到服务注册中心,以便服务消费者可以
发现和访问该服务。
它主要完成以下功能:
A•定义可提供的服务功能。
B.设计并
实现这些功能。
C.用WSDL(WebServiceDefinitionLanguage)描述这些服务,
并用UDDI在服务注册中心发布WSD文档。
B.注册中心:
UDDI服务注册中心是一个包含可用服务的网络可寻址目标,它是接
受并存储服务契约的实体,共服务消费者查询服务之用,服务提供者将服务的信息发布到服务注册中心上,服务的信息包括与该服务交互必要的所有内容,如网
络位置、传输协议和消息格式等。
A•增加、删除或修改已
经发布服务提供的服务数据;
B.按用户的请求从注册表中查询服务数据。
C.服务消费者:
服务消费者可以是一个应用程序、需要一个服务的另一个服务或者
一个软甲模块,它从注册中心查询需要的服务,并通过传输机制来绑定该服务,
然后通过接口契约规定的格式请求来执行服务功能,主要完成一下功能:
A.发现
提供所需服务的WSDL文档,通常通过访问服务注册表项来实现;
B.在WSD啲基
础上,通过SOAP协议来与要访问的服务通信,服务的提供者与服务端消费者是彼此分开的,注册中心的服务信息位于两者之间,它将服务提供者所提供的服务
按一定的标准组织并分类,并向消费者发布服务接口,消费者使用查询功能发现
提供者。
服务提供者与消费者通过事先定义好的契约进行交互。
耗rvimICOdi
图T獭料?
的体系结构績申
4.SOA的实现方法
接下来,我们再来详细了解一下SOA的实现方法。
SOA是一个概念,一种理念,一种模型,是面向商业应用的,要实现该模型则需要一种
与之对应的具体技术手段。
SOA可以与许多其他技术结合在一起使用。
SOA并不是特定于语
言的,可以用任何编程语言来实现服务,只要这种编程语言可以生产服务并且可以与WSDL
结合在一起使用就可以了。
SOAP本身并不是绝对需要的,但它是通用的消息传递系统。
因此,可以使用几乎任何一种编程语言和支持WSD啲平台来实现SOA中的成员服务。
4.1基于Web服务技术实现方法
从目前研究应用的极大软件厂商共同协商的标准来看,WEB服务技术是SOA最佳的实现
方式。
基于WEB服务实现SOA的完整过程如下:
1.WEB服务提供者设计实现WEB服务,并将调试正确后的WEB服务通过WEB服务中介者发布,并在UDDI注册中心注册;
2.WEB服务请求者向WEB服务中介者请求特定的服务,中介者根据请求查询UDDI
注册中心,为请求者寻找满足请求的服务;
3.WEB服务中介者向WEB服务请求者返回满足条件的WEB服务描述信息,该描述
信息用WSDL写成,各种支持WE冋艮务的机器都能阅读
4.禾U用从WEB服务中介者返回的描述信息生成相应的SOAR肖息,发送给WEB服务
提供者,以实现WEB服务的调用;
5.WEB服务提供者按SOAR肖息执行相应的WEB服务,并将服务结果返回给WEB服务请求者。
尽管WEB服务是实现SOA的最好方式,但是SOA并不局限于WEB服务,其他使用WSDL直接实现服务接口并且通过XML消息进行通信的协议也可以包括在SOA之中。
具体方法如下:
4.2CORBA组件实现方法
CORBA遵循了通用的分布式系统解决方案模式。
服务提供者通过在可用的命名目录中发
布其服务对象,对此分布式对象感兴趣的客户则通过该命名服务找到服务器对象,然后就可
以调用服务器对象上的合适的服务了。
为了做到这一点,客户必须提前与命名服务以及服务
器提供的各种服务绑定以得到有关的信息,比如服务器对象提供的属性、方法、接口等。
这是通过CORBA接口定义语言(InterfaceDefinitionLanguage,IDL)完成的。
IDL
是中立于任何语言的,CORBA!
过IDL来实现与编程语言的无关性。
IDL有助于描述服务而
无需深入到具体实现细节。
用这种方法可以将实现(Implementation)与接口(Interface)
妙*厚
■TUPK1lL~*WTKHTTDmCWWMTT相分离。
CORBA服务器必须实现IDL接口,而CORBA客户使用此接口。
所有本地调用的方法均通过一个称为桩的客户代理完成,它将方法参数和数据进行串行
化,并发送到称为体的服务器端对象,而体则需要重构此方法及其详细内容。
体要负责代表客户来调用这个方法,并正确的返回结果。
桩和体的交互式通过ORB进行的。
ORB也称为对
象BUS,它负责找到合适的服务器对象,并向服务器传输方法参数、数据,此外还要从服
务器传回方法结果。
客户与ORB通过一个桩实现交互,而服务器对象则使用一个对象适配器(ObjectAdapter,OA)或ORB接口与ORB实现交互。
客户的ORB与服务器的ORB之间通过通用跨ORB协议(GeneralInterORBProtoco,lGIOP)或者Internet跨ORB协议(I
nternetInterORBProtoco,lIIOP)来通信。
因此,为了使一个客户对象参与到CORBA环
境中,它必须知道服务器的位置、服务描述以及服务调用机制。
4.3DCOM组件实现方法
DCOM也采用通用的分布式系统解决模式,与CORBA十分相似。
通过对象提供服务的服务器在一个可用的命名目录(活动目录服务)中发布其对象。
对此分布式对象感兴趣的客户
必须知道此服务器提供的多种服务。
这通过MS-IDL实现。
服务对象实现了IDL接口。
所有本地调用的方法均通过一个称为代理的客户代理来完成,它将完成方法参数和数据的串
行化并发送到一个称为桩的服务器对象上,在此要重构此方法及其详细内容。
这个桩负责代
表客户调用方法并正确的返回结果。
由于DCOM规范是二进制级的,它可以将不同编程语言
编写的二进制组件加以集成,如C++,Java和VisuaBasic等。
与CORBA不同,DCOM只能基于MicrosoftWindows平台,是Windows-Windows的分布式解决方案。
4.4远程方法调用(RMI)实现方法
从Java.1开始,远程方法调用(RMI)作为Java分布式对象技术的核心成为Java
API之一。
它使得Java程序之间能够实现灵活的,可扩展的分布式通信。
RMI允许对象存
在于多个指定地址空间,分布在各种Java虚拟机上。
每个指定地址空间可以在同一计算机上或网上的不同计算机上。
由于远程方法调用跨越Java虚拟机边界到不同的指定地址空间
所以没有对象共享的全局变量。
4.5Jini组件实现方法
Jini组件包括服务、客户和查找服务(Lookupservices)。
在客户开始接受服务之前,
必须要经过三个过程:
发现(Discovery)、加入(Join)和查找(Lookup),这三个过程同时也是通过三个同名的协议完成的:
发现协议(Discovery)、加入(Join)协议和查找(Lookup)协议。
客户和服务都可以通过发现过程来定位查找服务的位置,加入过程使得服
务可以把自己注册到查找服务上去。
而查找过程帮助客户查找到感兴趣的服务。
发现
(Discovery)、加入(Join)和查找(Lookup)的过程简述如下:
当一个Jini服务连入网络时,它就采用组播(multicast)的方式向网络中发出消息,表明自己的存在。
网络中的查找
服务则保持监听某个特定的端口,当它监听到这个消息后,就会接收消息数据包,并进行分
析,以便决定是否与发送者相联系。
如果它决定和发送者联系,就会通过一个TCP与发送者建立连接,并通过RMI(RemoteMethodInvocation)向发送者回传一个服务登记对象
(serviceregister),发送者通过调用服务登记对象中的register()方法,作为参数上传
一个serviceitem对象,这就完成了发现和加入。
客户同样通过发现协议(Discovery)获得一个服务登记对象(serviceregister),然后调用服务登记对象的Lookup()方法,作为
参数上传一个servicetemplate对象,用来作为查询准则。
这个对象含有一个引用指向一组Classobjects对象,这些对象指示查找服务,客户所需要的Java类型的service
必*厚
■TUNQKHTT4JFTl*■mwjwjt
object对象。
lookup()方法返回符合客户需要的serviceobject对象。
每个service
object对象都会实现一个或者若干个客户与服务交互的接口。
客户通过引用来使用serviceobject对象,通过这个对象来获得服务。
5.开发SOA应用程序相关的平台/软件
介绍完SOA勺实现方法,我们再来看一看开发SOA应用程序的相应平台和软件有哪些呢,经过我对大量资料的收集整理,最后按照不同的公司进行分类,将主流的的平台或软件整理
如下:
5.1IBM公司SOA开发产品
IBM为您的业务提供了具有最广泛连接的SOA,它将所有类型的数据、应用程序、协议和平台连接到一起,从传感器、手持设备和应用程序到大型机。
IBM将ESB作为中间件战
略的核心,并提供了两种软件ESB和一种硬件ESB设备:
WebSphereEnterpriseServiceBus(WESB:
基于面向集成的SOA平台的WebSphereApplicationServer而构建,针对中小企业的入门级ESB产品,能够帮助简化IT架构,降低运作成本,提升业务灵活性和市场响应速度,最终提升企业的竞争优势。
WebSphereMessageBroker(WMB:
为异构IT环境中的统一连接和转换而构建。
WMB
通过提供对多种平台、语言、协议和传输方式的支持,帮助客户迅速部署企业服务总线,整
合遗留应用,构建SOA架构的信息传输龙骨。
采用业界领先的WebSphereMQ消息传递基础
设施。
WebSphereDataPower:
为简化部署和加强安全性而特制的硬件ESB。
特别推出的IBM
专属硬件ESB产品,通过内嵌强大的XML/WebService加速引擎及安全保障机制,帮助客户
快速、高效、便捷、安全地构建面向大交易量任务关键(MissionCritical)型企业服务总
线。
IBM宣布其旗下五大软件产品线全部支持SOA包括信息管理,Websphere,Tivoli,
Rational和Lotus。
IBMSOA解决方案涵盖全线产品。
IBM通过大量整合、拓展和收购相关产品,致力在其SOA解决方案中完整融合自网络层至应用层的集成运行环境和管理技术。
5.2Sap公司SOA开发产品
mySAPmySAPERP是世界上最完整的企业资源计划(ERF)解决方案。
为大企业提供了
完整的解决方案。
它可以向不同的企业提供成功运营所必需的战略洞察力、独特化的竞争力、
持续增长的执行力和灵活力。
mySA圧RP解决方案,作为新一代的ERP解决方案,它蕴含了
SAP公司诸多最新发展的关于企业运营的真知灼见:
不断提高企业内的运营效率;
自动化运
作端到端的企业运营流程;
并通过与客户、合作伙伴和供应商的协作,突破单个企业的界限,
将这些流程拓展到整个业务生态系统中。
此外,mySA圧RP有助于推动企业创新,支持企业
的未来发展。
mySAPERP是基于SAPNetWeaver平台的。
这是一个能适应变革的、富有创新性的集成和应用平台。
SAPBusinessAll-in-one:
SAP?
BusinessAll-in-One解决方案是专为有100-2500
名员工的中型企业设计的综合业务解决方案,可帮助其提高业务灵活性、改进运营效率并且
巩固客户关系。
基于SAPERP应用程序和SAPBestPractices服务产品所提供的久经验
证的方法和工具,SAPBusinessAll-in-One解决方案可以充分帮助中型企业在今后以高效
且极具竞争力的方式运营业务。
SAPBusinessone:
SAPBusinessOne是一套专为少于100名员工的中小型企业(中小企业)而设计的综合企业方案,其业务流程一体化的功能,让企业管理者能实时地掌握可靠的资料,从而做出准确的商业决策,令公司业务运作更为顺畅。
总括而言,SAPBusiness
One是一套价格相宜、灵活、安装容易的企业方案,特别为本地成长型企业量身定做的优质产品。
SAPBusinessOne无疑是中小企业的首选企业方案,除了软件所具有的强大功能,和可支援业务持续发展的特点外,它的市场定价和快捷的实施时间,亦切合中小企业的需要。
SAPBusinessOne所提供的业务功能覆盖了财务、销售、采购、库存、收付款管理、客户关系管理、生产装配、成本控制、人力资源管理等企业管理的范畴,让企业达到数据统一和
高度共享资源的目标,并避免重复输入资料。
5.3Oracle公司SOA开发产品
OracleSOA套件(OracleSOASuite),不仅可以运行在Oracle自己的J2EE平台,还可以运行于其他中间件厂商(BEAIBM)的中间件平台。
以下是SOA套件的一个结构图:
ApplicationServer
JavaEE,WSAeventservic&
s
Jdeveloper是和Oracle产品紧密联系的一个免费的开发工具,如果是要使用Oracle的平台进行开发,没有什么开发工具能够比Jdeveloper更加方便和高效了,Jdeveloper已
经包含了大部分常见Oracle产品开发所需要类库,也有一个图形的,能够自动提示和完成语句的助手以及一个非常重要的能够跟踪到产品内部的调试环境等。
无论是进行普通J2EE
开发,还是BPEL/ESB开发任务,都能够使用Jdeveloper很好完成。
Oracle的BPELProcessManager是包含了常见的web服务流程化开发的所有通用组件,还包含了人机交互工作流的开发机制以及提供了大量的进行各种系统连接到Web服务环境
的适配器(如数据库,FTP服务器,商业打包应用Oracle11i,SAP等)。
而ESB则是作为
把各种应用包括传统应用暴露成web服务接入SOA环境以及虚拟化接入系统的一个平台,当
一个系统接入ESB后,则可以在不改变BPEL流程的情况下把一个系统换成另一个系统。
WebServiceManager(WSM是一个专门针对Web服务安全设计的产品,提供了一个企业Web服务的安全和认证的统一的接口和平台,所有的Web服务可以先注册到该平台,然后
由WSM巴该服务发布出去(可以换成另一个服务名),这样当无论什么用户需要访问该Web
■ruPKi■i-TWFMBTTDFTmnsum*
服务的时候,都需要经过WSM这种统一的认证和授权才能够访问到该服务,这就解决了各个
厂商不同中间件平台上各自独立的Web服务的安全的管理模式。
5.4WebMethods公司SOA开发产品
webMethods公司的webMethodsIntegrationPlatform,这个产品主要包括
Developer,Modeler,TradingNetwrok这三个部分。
其中Developer是用来开发你所需的各种webservice,其中WebMethods本身也提供了一些公共的webservice供你调用。
Modeler
是用来将你做好的service组装在一起,形成各种商业逻辑。
TradingNetwork相当于是一个网络接口,将你最后产生的xml数据或其他各式的数据发送给指定的远端服务器,当然在
这个远端服务器上也一定要有一个Webmethod的网络接口用来接收数据。
5.5Microsoft公司SOA开发产品
许多用户可能认为微软由于是一个SOA的后来者,从而对微软实施SOA的许多用户可能
认为微软由于是一个SOA的后来者,从而对微软实施SOA的能力表示怀疑。
但是不难发现,
在BiztalkServer2000中,支持XML的功能被添加了进来;
到BiztalkServer2002时,支持EAI的功能实现了;
接下来的Bi