2.1. Oracle Fusion Architecture
一、 SOA简介
SOA(Service-Oriented Architecture)概念最初由Gartner公司(Gartner是国际权威IT研究与顾问咨询公司,曾首先提出ERP、SOA等多个划时代的软件概念,其报告在世界IT界享有广泛的公信力)提出。
Gartner将SOA描述为:“客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成……SOA与大多数通用的客户端/服务器模型的不同之处,在于它着重强调软件组件的松散耦合,并使用独立的标准接口。”
SOA的几个关键特性:一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。
随着近年来XML、SOAP、WSDL、UDDI等Web服务标准逐渐成熟,SOA得到了快速发展,逐步的成为了目前软件架构的主流发展趋势。
SOA的主要特点:
l 松耦合
服务请求方与服务之间应该是松耦合的。它们之间不是绝对相互依赖的关系,它们可能各自有自己的独立功能,有需要的时候一方向另一方请求服务以完成某项功能,但是如果访问不到该服务,也不会影响到请求方的其它功能的正常运作。这样降低了双方的耦合性,也就降低了系统间的相互间的不良影响的扩散,提高了整体的可靠性。
l 明确定义的接口
服务交互必须是明确定义的。Web 服务描述语言(Web services Description Language,WSDL)是受到广泛支持的方法,用于描述服务请求者所要求的绑定到服务提供者的细节。服务描述的重点在于与下面几部分交互所用的操作:
服务
调用操作的消息
构造这种消息的细节
关于向何处发送用于构造这种消息的处理细节的消息的信息
WSDL 不包括服务实现的任何技术细节。服务请求者不知道也不关心服务究竟是由 Java 代码、C#、COBOL,还是由某种其他的程序设计语言编写的。WSDL 的通用定义允许开发工具创建各种各样类型的交互的通过接口,同时隐藏它是如何由应用程序代码调用服务的细节。
l 无状态的服务设计
服务应该是独立的、自包含的请求,在实现时它不需要从一个请求到另一个请求的信息或状态。服务不应该依赖于其他服务的上下文和状态。
如果需要服务端保存每次客户端请求的状态,将会大大加大复杂性,也有悖松耦合的理念。实际中往往有需要在客户端多次访问服务端时保持状态,这时最好的处理方法是由客户端记住状态,下次请求服务时把状态发送到服务端,服务端在任何时候接收到请求都当作一个新的请求进行处理。
l 服务粒度
推荐使用粗粒度的接口,一般是把具有比较完整的功能包装成服务对外提供,这样可以体现服务的意义,才能称得上是服务。如果对外提供的服务粒度很细,每个服务提供一个简单的数据返回,要完成一个完整的功能,可能需要客户调用多次服务才能完成,这样的服务不但使用繁琐,也会增加不必要的网络通讯压力,这样的服务适合做内部的接口,不适合做对外的服务。
目前,各大软件厂商几乎无一例外的推出了自己的SOA解决方案和相关产品,SOA也都成为了各大厂商的主要战略,备受重视。
本人近几年一直致力于学习应用微软的SOA解决方案,和微软的SOA的核心产品biztalk。专注于微软的biztalk,但是也需要了解其他厂商的SOA的方案和产品,知己知彼,方能更好的发挥自己所学的长处。
下面是本人最近网上查阅资料后整理的一些SOA主流厂商的SOA相关产品的情况,挂一漏万。另外对这些产品本就不熟,难免有理解错误的地方,望熟悉的朋友指正。
二、 IBM
1、 收购历史
2006年8月,IBM收购了Webify(Web服务和SOA组件解决方案提供商)。
2007年11月13日,IBM收购了Cognos公司,收购价格为49亿美元
IBM的企业服务总线一开始的解决方案是WebSphere MQ以及WebSphere Business Integration Message Broker。
2、 现有SOA产品线
IBM 为您的业务提供了具有最广泛连接的 SOA,它将所有类型的数据、应用程序、协议和平台连接到一起,从传感器、手持设备和应用程序到大型机。IBM 将 ESB 作为中间件战略的核心,并提供了两种软件 ESB 和一种硬件 ESB 设备:
WebSphere Enterprise Service Bus(WESB):基于面向集成的 SOA 平台的 WebSphere Application Server 而构建,针对中小企业的入门级ESB产品,能够帮助简化IT架构,降低运作成本,提升业务灵活性和市场响应速度,最终提升企业的竞争优势。
WebSphere Message Broker(WMB):为异构 IT 环境中的统一连接和转换而构建。WMB通过提供对多种平台、语言、协议和传输方式的支持,帮助客户迅速部署企业服务总线,整合遗留应用,构建SOA架构的信息传输龙骨。采用业界领先的 WebSphere MQ 消息传递基础设施。
WebSphere DataPower:为简化部署和加强安全性而特制的硬件 ESB。特别推出的IBM专属硬件ESB产品,通过内嵌强大的XML/WebService加速引擎及安全保障机制,帮助客户快速、高效、便捷、安全地构建面向大交易量任务关键(Mission Critical)型企业服务总线。
IBM 宣布其旗下五大软件产品线全部支持SOA, 包括信息管理,Websphere, Tivoli, Rational 和Lotus。 IBM SOA 解决方案涵盖全线产品。IBM 通过大量整合、拓展和收购相关产品, 致力在其SOA 解决方案中完整融合自网络层至应用层的集成运行环境和管理技术。
三、 Microsoft
许多用户可能认为微软由于是一个SOA的后来者,从而对微软实施SOA的能力表示怀疑。对此,李志霄表示:“在微软的SOA中,Biztalk Server将起到ESB的作用,从它的进化过程你们可能不难发现,微软一直在SOA方面所做的努力。”的确,在Biztalk Server 2000中,支持XML的功能被添加了进来;到Biztalk Server 2002时,支持EAI的功能实现了;接下来的Biztalk Server 2004,BPM(流程管理)的功能被添加了进来;在Biztalk Server 2006中,ESB功能已被正式地添加了进去;而在Biztalk Server 2006 R2中,RFID的功能还要被添加进来。我们还不能忽视的,是微软WCF(Windows Communication Framework)、WPF(Windows Presentation Foudation)软件的成熟。通俗地讲SOA的实现,不过是实现流程的管理,这就需要ESB;接下来还要实现流程之间的通信,于是WCF出现了;由于IT系统需要与人交互,于是WPF来了。由此不难看出,微软已具备了实现SOA的所有技术。
四、 SAP
1、 收购历史
2、 SAP NetWeaver
SAP 从2003 年就开始逐步把产品迁移到SOA 平台上
2003~2004年开始打造SOA的平台,就是现在SAP NetWeaver系统,应用平台和面向业务流程的企业服务架构(Enterprise Service Architecture),这款产品就相当于市场上面的一个中间件产品,这是一个技术平台。
从2004年到2005年,SAP把所有原来ERP的那些功能模块重新定义成服务形式,而基于这些“服务形式”又创建出关于业务逻辑的知识,我们有一“企业服务知识库”,我们把所有的服务归纳在一起,放到这里。
从2005年开始我们有了这个知识库以后,又在知识库基础上重新架构我们的应用软件,比如说有一个定单处理流程,原来是编程人员完全做好了,但他没有体现出“服务”的概念,而现在我们已经把这个定单流程变成了几个基本的服务模块,比如说创建定单、审核定单、审批定单,我们在重新架构应用的时候把这些服务重新串联起来。
到了2006年,SAP发布了SAP ERP 6.0,这个产品是第一个基于SOA架构做的企业应用产品。
在这种系统上,企业可以在必要时订阅特定或原已存在的服务,如银行推出线上刷信用卡,则订阅身分认证及支付两种服务,并把数据更新到客户关系管理系统。则银行就不用重新开发,可以节省成本及加速服务上线时间。
SAP业务发展协理陈平佳强调,SOA不只是技术的玩意,而必须和商业行为结合。应用层上的服务组件及商业流程才是重点,他说。
在SAP的ESOA(Enterprise SOA)愿景下,企业以NetWeaver为基础的ERP软件配合SAP提供的软件组件,可以满足企业80%的需求。相较之下,没有导入应用,而只有中介软件的企业,则必须自行开发所有的组件。
3、 目前的产品线
l mySAP
mySAP ERP是世界上最完整的企业资源计划(ERP)解决方案。为大企业提供了完整的解决方案。它可以向不同的企业提供成功运营所必需的战略洞察力、独特化的竞争力、持续增长的执行力和灵活力。mySAP ERP 解决方案,作为新一代的ERP解决方案,它蕴含了SAP 公司诸多最新发展的关于企业运营的真知灼见:不断提高企业内的运营效率;自动化运作端到端的企业运营流程;并通过与客户、合作伙伴和供应商的协作,突破单个企业的界限,将这些流程拓展到整个业务生态系统中。此外,mySAP ERP 有助于推动企业创新,支持企业的未来发展。
mySAP ERP 是基于SAP NetWeaver 平台的。这是一个能适应变革的、富有创新性的集成和应用平台。
l SAP Business All-in-one
SAP® Business All-in-One解决方案是专为有100-2500名员工的中型企业设计的综合业务解决方案,可帮助其提高业务灵活性、改进运营效率并且巩固客户关系。基于 SAP ERP 应用程序和 SAP Best Practices 服务产品所提供的久经验证的方法和工具,SAP Business All-in-One解决方案可以充分帮助中型企业在今后以高效且极具竞争力的方式运营业务。
SAP Business All-in-One 中包含有 SAP ERP、SAP NetWeaver® 平台和 SAP Best Practices。
l SAP Business one
SAP Business One 是一套专为少于100名员工的中小型企业(中小企业)而设计的综合企业方案,其业务流程一体化的功能,让企业管理者能实时地掌握可靠的资料,从而做出准确的商业决策,令公司业务运作更为顺畅。总括而言,SAP Business One 是一套价格相宜、灵活、安装容易的企业方案,特别为本地成长型企业量身定做的优质产品。
SAP Business One 无疑是中小企业的首选企业方案,除了软件所具有的强大功能,和可支援业务持续发展的特点外,它的市场定价和快捷的实施时间,亦切合中小企业的需要。SAP Business One 所提供的业务功能覆盖了财务、销售、采购、库存、收付款管理、客户关系管理、生产装配、成本控制、人力资源管理等企业管理的范畴,让企业达到数据统一和高度共享资源的目标,并避免重复输入资料。
SAP Business One 不需要SAP NetWeaver 平台的支撑。
五、 ORACLE
1、 收购历史
1.1. 收购仁科(PeopleSoft)
Oracle于2004年12月以103亿美元的价格收购仁科(PeopleSoft)
PeopleSoft是eHR领域领先的厂商。
仁科的广告词是:“Peoplesoft仁科独有的完全互联网架构(Pure Internet Architecture),得天独厚,完全利用互联网技术,更为简单有效。”而仁科于2003年收购了J.D.Edwards。
1.2. 收购Siebel
Oracle和Siebel
1.3. 收购海波龙(Hyperion)
Oracle
1.4. 收购BEA
2008年
BEA之前收购了Flashline(SOA注册服务库提供商)。
在2006 年底, BEA 进而宣布了SOA 360 度战略,致力于提供统一的SOA 技术平台。 BEA 计划在2008 年之前在SOA 360 平台上整合其现有的三个产品:Weblogic, Tuxedo 和AquaLogic service bus 2.5/2.6/3.0。AquaLogic是SOA的核心产品,可开箱即用的esb,安装后就可以开始设计流程,并都是基于WEB。
Weblogic应用服务器跟Oracle自有应用服务器Oracle Application Server有严重重合。
AquaLogic也跟Oracle自有SOA 产品Oracle SOA Suite严重重合。
2、 Oracle跟SOA相关的产品线
Oracle是一家很喜欢通过收购来迅速增加增强自身实力和快速获得有广阔市场前景的前瞻性技术。从前面的收购历史就能大概看出这点,上面里出来的几个收购案只是比较重要的几个,oracle收购的公司不下几十个。
收购的产品太多了,Oracle想到构建一个平台把这些产品集成起来,这个平台就是Fusion Architecture,它是一个基于消息的面向服务的中间件。Oracle希望用Fusion来整合收购来的各种各样的产品。
在随着SOA概念越炒越热,越来越流行,各大厂商纷纷的把SOA纳入自己的主要战略,相继推出了自己的SOA解决方案和产品线。
Oracle在SOA方面是后来者,落后于IBM、SAP、微软和BEA。但是oracle在SOA理念上并不落后,Fusion Architecture就是SOA的一个实践,只是没有明确提出SOA的概念,技术本质上,Fusion Architecture就是SOA的一种实现。
很快的,Oracle在2006年宣布了Oracle SOA Suite的产品,作为Oralce在SOA的解决方案。SOA Suite架构在Oracle Fusion Architecture之上。
2.1. Oracle Fusion Architecture
Oracle于2005年发布Oracle Fusion Architecture,它是一个基于标准的、详尽定义了企业级应用软件、中间件和网格基础技术之间关系的技术蓝图。以构造完整的、开放的商业应用和商业信息为着眼点,Oracle Fusion Architecture对Fusion Application所需的技术部件给予了定义,该架构由以下五大特点组成:
· 模块化驱动:用于应用软件、业务流程和商业信息
· 支持服务和事件:用于可扩展的、标准件的、灵活的应用和流程
· 以信息为中心:用于完整的、连贯的、可反应的、实时的信息
· 为网格计算作好准备:必须在低成本的硬件上做到可升级、可使用、安全可靠、易于管理
· 以标准为基础:在不同环境中必须是开放的、可插拔的。
Oracle Fusion Architecture的构件包括:
Oracle网格基础架构(Oracle Grid Infrastructure)——Oracle10g数据库和Oracle Fusion Middleware。它们由Oracle企业管理器(Oracle Enterprise Manager)和网格控制(Grid Control)监控,以保证取得最佳的性能和最长的运行时间。
Oracle Fusion服务注册(Oracle Fusion Service Registry)——基于Oracle电子商务套件的Web服务注册。它设定了所有的Oracle应用Web服务、第三方Web服务的整合界面以及针对每个特定用户运用而提供的变化数据服务。
Oracle Fusion服务总线(Oracle Fusion Service Bus)——基于Oracle Fusion Middleware的企业服务总线技术。它是应用服务的运行环境。
商业流程协调(Oracle Process Orchestration)——在商业流程层面监督和管理技术构件的工具。基于Oracle Fusion Middleware BPEL。
商业智能和商业活动监控(Business Intelligence and Business Activity Monitoring)——基于由Oracle应用软件和商业智能工具(如:Oracle Discoverer)和Oracle Fusion Middleware BAM技术提供的商业信息。
统一门户(Unified Portal)——提供定制化的协作门户,以实现最佳的员工生产率和效率。基于Oracle协作套件10g(Oracle Collaboration Suite 10g)和Oracle 门户(Oracle Portal)。
2.2. Oracle SOA套件
Oracle SOA套件(Oracle SOA Suite),不仅可以运行在Oracle自己的J2EE平台,还可以运行于其他中间件厂商(BEA,IBM)的中间件平台
以下是SOA套件的一个结构图:
Jdeveloper是和Oracle产品紧密联系的一个免费的开发工具,如果是要使用Oracle的平台进行开发,没有什么开发工具能够比Jdeveloper更加方便和高效了,Jdeveloper已经包含了大部分常见Oracle产品开发所需要类库,也有一个图形的,能够自动提示和完成语句的助手以及一个非常重要的能够跟踪到产品内部的调试环境等。无论是进行普通J2EE开发,还是BPEL/ESB开发任务,都能够使用Jdeveloper很好完成。
Oracle 的BPEL Process Manager是包含了常见的web服务流程化开发的所有通用组件,还包含了人机交互工作流的开发机制以及提供了大量的进行各种系统连接到Web服务环境的适配器(如数据库,FTP服务器,商业打包应用Oracle 11i,SAP等)。而ESB则是作为把各种应用包括传统应用暴露成web服务接入SOA环境以及虚拟化接入系统的一个平台,当一个系统接入ESB后,则可以在不改变BPEL流程的情况下把一个系统换成另一个系统。
Web Service Manager(WSM)是一个专门针对Web服务安全设计的产品,提供了一个企业Web服务的安全和认证的统一的接口和平台,所有的Web服务可以先注册到该平台,然后由WSM把该服务发布出去(可以换成另一个服务名),这样当无论什么用户需要访问该Web服务的时候,都需要经过WSM这种统一的认证和授权才能够访问到该服务,这就解决了各个厂商不同中间件平台上各自独立的Web服务的安全的管理模式。
另一个产品BAM则是一个实时监控业务的平台,该产品有一个非常华丽的外观(据说看过该产品界面的用户都会被吸引住),提供实时的商业智能的功能和根据实时的业务情况(可以定义阈值)进行反应(调用一个Web服务)的功能。
2.3. SOA产品线整合路线
Oracle收购BEA后,BEA的SOA产品AquaLogic跟Oracle自有SOA 产品Oracle SOA Suite在定位和功能上有很大重合。
不过Oracle称,oracle将整合BEA的中间件产品,在完成整合后,Oracle 中间件在针对开放标准支持方面,更为全面而完整,可说居于业界领先的地位;包括对 JavaEE 5.0 和 JAX 一系列 XML API 的支持。此外针对 SOA 相关标准方面,则包括了 WS-ReliableMessaging,WS-Security 和 WS-Addressing。
收购BEA后,oracle的Enterprise services bus被称为OESB,BEA 的 AquaLogic Service Bus被称作Oracle Service Bus (OSB),二者都继续保持战略性产品的地位。在明年 11g 版本正式推出时,将二者整合为更紧密的单一化产品。
六、 WebMethods
webMethods 公司的webMethods Integration Platform,这个产品主要包括Developer,Modeler,Trading Netwrok这三个部分。其中Developer是用来开发你所需的各种webservice,其中WebMethods本身也提供了一些公共的webservice供你调用。Modeler是用来将你做好的service组装在一起,形成各种商业逻辑。Trading Network相当于是一个网络接口,将你最后产生的xml数据或其他各式的数据发送给指定的远端服务器,当然在这个远端服务器上也一定要有一个Webmethod的网络接口用来接收数据。
2007年4月,webMethods被欧洲最大的系统软件与面向服务架构 (SOA) 供应商 Software AG以5.46亿美元收购。