SOA解决方案的选择

SOA解决方案的选择
SOA解决方案的选择

基于J2EE体系架构搭建符合SOA架构的运营管理平台

1SOA架构

1.1 IT架构的演变

下图展示了IT架构的演变趋势可以看出,面向服务的体系结构(service-oriented architecture,SOA)是目前最先进的IT体系架构,是所有厂商搭建软件产品的必然选择。

1.2 SOA概念

首先SOA是一个概念或者说是一个模型,下图是它体系结构最简单的描述。它的思路是把一些功能集成一个独立的服务,以服务的形式为客户或其他服务调用。它应该是计算机软件技术特别是基于Web计算技术发展到一个阶段的一个新的思想,一个构建整个系统的一个新的思想或者也可以说是新的一个方式,但它仅仅是一个概念或模型,它只是在宏观上描述了一个基本路线,其中以服务为最小模块的概念是最重要的、最具前瞻性的,也可能体现了未来软件发展的方向。

目前,SOA的通用定义为:SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。

SOA涉及三种角色:1)服务提供者(Service Provider);2)服务请求者(Service Requestor);3)服务目录 (Service Registry)。

SOA涉及三个操作:1)发布(Publish);2)查找(Find);3)绑定(Bind)。

1.3 SOA特征

可重用一个服务创建后能用于多个应用和业务流程。

松耦合服务请求者到服务提供者的绑定与服务之间应该是松耦合的。因此,服务请求者不需要知道服务提供者实现的技术细节,例如程序语言、底层平台

等等。

明确定义的接口服务交互必须是明确定义的。Web服务描述语言(Web Services Description Language,WSDL)是用于描述服务请求者所要求的绑定

到服务提供者的细节。WSDL不包括服务实现的任何技术细节。服务请求者不知

道也不关心服务究竟是由哪种程序设计语言编写的。

无状态的服务设计服务应该是独立的、自包含的请求,在实现时它不需要获取从一个请求到另一个请求的信息或状态。服务不应该依赖于其他服务的上下

文和状态。当产生依赖时,它们可以定义成通用业务流程、函数和数据模型。

基于开放标准当前SOA的实现形式是Web服务,基于的是公开的W3C及其他公认标准。采用第一代Web服务定义的SOAP、WSDL和UDDI以及第二代Web服务定义的WS-*来实现SOA。

2Web服务介绍

Web服务则是在SOA的概念的基础上提出的一个标准,它更加具体的描述或者说是标准化了SOA的各个实现细节,如它规定SOA所有模块之间以XML这个基本语言沟通,服务出厂时必须以WSDL标签描述,必须在UDDI中心注册才能进行销售,服务必须以SOAP官方协议进行交易,这些标准是不依赖任何一家公司而生存的,而是Web发展到一个阶段的产物,其实说到底就是XML促使了Web服务的出台。

当然Web服务仍然是在SOA概念下的一个标准,它并不是一个实现,它只是规定了哪一个环节必须符合哪一标准,然而运用什么技术实现这一标准,它并没有说明,当然这也不是W3C应该做的。

3J2EE和.net比较

3.1 J2EE和.net简介

J2EE和.net都是用来实现Web服务的工具,他们为实现Web服务提供了一个很好平台。

当今Web服务领域里争的你死我活的当然是众所周知的Sun和Microsoft两大IT 巨头,各自的J2EE和.net技术各自都占领了很大的市场。

在表现形式上,J2EE是一组规范,而.NET更象是一组产品。但它们的目的都是为了企业应用提供分布式的,高可靠性的解决方案。它们在架构上有着很多的相似之处,下表是一个简单对照:

3.2 J2EE和.NET比较评价

在微软还没有足以和Java平台相对抗的产品的时候,微软所乐于做是大声的宣传:“write once,debug everywhere”。而它的对手则更乐于这样评价它:“微软开始也喜欢Java,他们喜欢它的方式是让它死去,他们当然也憎恨它,他们甚至憎恨每一个以J 开头的单词。”但是现在,形式不同了,微软有了足以自豪的.NET他们可以已他们自己所喜好的方式来对J2EE和.NET来做各种比较。最热闹的应该算是微软出示的第三方对.NET Pet Shop和J2EE的Pet Store的综合比较了。有兴趣的读者可以到MSDN,https://www.360docs.net/doc/d26587258.html,,IBM开发者原地等网站看到相关评论。

综上,J2EE和.NET在技术上没有什么优劣之分,但是从扩展能力和多平台支持角度,.NET体系架构更强调为在Windows平台上运行的应用软件提供连接,对于其他平台的应用软件包容性差,重用性差。另外从XML标准方面,微软看好Office Open XML(OOXML),也就是微软自己的标准,有一定的局限性。总之,.NET的体系架构更适合软件平台为单一的Windows平台的中小企业使用,对于拥有多个平台或有可能扩展为多平台的企业而言,J2EE的体系架构更加灵活,扩展性更强。

4SOA架构选型

4.1 直接采用第三方成熟产品

4.1.1 IBM WebSphere系列产品

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 解决方案中完整融合自网络层至应用层的集成运行环境和管理技术。

优势:

开放性,WebSphere全面并100%地支持业界的开放性标准包括Java/J2EE, XML, LDAP, CORBA,WML,Web Services等等

WebSphere具有良好的跨平台性

安全性,提供一个先进的富含安全性的基础架构

高可用性和扩展性

集成的、基于开放标准的开发环境

WebSphere全面并100%地支持业界的开放性标准包括Java/J2EE, XML, LDAP,

CORBA,WML,Web Services等等

WebSphere已经通过Sun的J2EE1.2、J2EE1.3以及1.4认证

WebSphere全面支持其它开放性标准如安全性标准等

WebSphere产品家族的所有组件中,除了这些业界的开放标准技术以外,不包含任何IBM独有的非标准性技术,保证用户在选用WebSphere产品时能够保持百分之百的开放性。

缺点:

价格昂贵,普通的一个软件价格都在几十万左右。

易用性差,软件的易用性一直是 IBM 的短板,很多有多年经验的程序员都会感觉使用IBM的产品比较挑战自己的耐心。

灵活性相对较差,如果需要用IBM Process Server发布一个简单的业务流程应用,而不涉及SOA呢,对不起,SOA特性是Build-In的,不管你用不用,甩也甩不掉。

4.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%的需求。相较之下,没有导入应用,而只有中介软件的企业,则必须自行开发所有的组件。

优势:

产品的整个思路围绕ERP展开,适用于制造型企业。

缺点:

按业务封装服务,包含财务、销售、采购、库存、收付款管理、客户关系管理、生产装配、成本控制、人力资源管理等企业管理,对于业务不太相符的企业适

用性差。

产品性强,灵活性较差。

4.1.3 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之上。

Jdeveloper是和Oracle产品紧密联系的一个免费的开发工具,如果是要使用Oracle的平台进行开发,没有什么开发工具能够比Jdeveloper更加方便和高

效了,Jdeveloper已经包含了大部分常见Oracle产品开发所需要类库,也有

一个图形的,能够自动提示和完成语句的助手以及一个非常重要的能够跟踪到

产品内部的调试环境等。无论是进行普通J2EE开发,还是BPEL/ESB开发任务,都能够使用Jdeveloper很好完成。

BPEL Process Manage r是包含了常见的web服务流程化开发的所有通用组件,还包含了人机交互工作流的开发机制以及提供了大量的进行各种系统连接到

Web服务环境的适配器(如数据库,FTP服务器,商业打包应用Oracle 11i,

SAP等)。而ESB则是作为把各种应用包括传统应用暴露成web服务接入SOA

环境以及虚拟化接入系统的一个平台,当一个系统接入ESB后,则可以在不改

变BPEL流程的情况下把一个系统换成另一个系统。

Web Service Manager(WSM)是一个专门针对Web服务安全设计的产品,提供了一个企业Web服务的安全和认证的统一的接口和平台,所有的Web服务可以

先注册到该平台,然后由WSM把该服务发布出去(可以换成另一个服务名),

这样当无论什么用户需要访问该Web服务的时候,都需要经过WSM这种统一的

认证和授权才能够访问到该服务,这就解决了各个厂商不同中间件平台上各自

独立的Web服务的安全的管理模式。

BAM则是一个实时监控业务的平台,该产品有一个非常华丽的外观(据说看过该产品界面的用户都会被吸引住),提供实时的商业智能的功能和根据实时的业

务情况(可以定义阈值)进行反应(调用一个Web服务)的功能。

优势:

全面——与可满足所有中间件需求的单一战略性合作伙伴协作。

集成——与Oracle融合中间件、Oracle数据库和Oracle管理软件经过认证的集成提升了信心并降低了成本。

支持热插拔——借助优于行业标准的互操作性增强企业现有的基础架构和管理软件。

一流——跨全部产品系列从一流的产品中进行选择。

缺点:

Oracle的很多产品都是收购其他软件公司的,功能重合的地方较多,软件产品有很多整合的痕迹。

4.2 方案比较与选择

通过对IBM Websphere系列产品、SAP NetWeaver系列产品、Oracle SOA系列产品的对比研究,我们可以得到使用国外大公司的产品架构企业的运营管理平台会面临以下挑战:

(1)产品购买价格昂贵;

(2)产品开发成本高;

(3)产品后期维护成本高;

(4)易用性相对较差。

综上,在预算有限,且想在满足公司信息化产品适用性得到更好服务的情况下,选择国内专业公司基于J2EE技术体系,搭建符合SOA架构的运营管理平台是更可行的选择,原因如下:

(1)选择性强,可以根据企业业务的要求,选择不同厂商的不同产品满足企业的个性化需求。

(2)价格适合,可以根据预算的要求,某些软件产品可以选择性价比更合适的国内软件。

(3)定制开发,可根据企业的业务流程,在软件产品的基础上定制开发更加适用、易用的管理平台。

(4)运维成本较低,相对于国外大公司,国内的专业公司的运维成本较为低廉。

相关主题
相关文档
最新文档