首页  ·  知识 ·  
基于SOA体系架构下的企业系统集成
杨明      编辑:dezai   图片来源:网络
系统是在不同时期构建的不同同类型的业务系统,形成了一个个“信息孤岛”限制了业务之间的横向连接;造成了业务运营缺乏灵活性,新的业务无法开展。“面向服务体
 1 系统的物理部署结构

    1.1硬件体系结构

    硬件体系结构主要来配合应用总体规则及软件体系结构的需要。多层体系结构根据实际情况可以有不同的主机系统部署方案。根据前面的论述,我们清楚了多层体系结构有着良好的伸缩性。下面我们重点提出基于硬件的可伸缩性的方案建议:

    主机系统部署方案的各个阶段,随着应用业务的不断扩展,系统可以通过增加数据库服务器和Web/应用服务器的数量,而不需要重新修改程序,就可以适应这种变化。根据目前的情况,我们认为采用图中的第二阶段的主机系统部署方案可以满足应用系统对用户访问量、业务处理能力和数据存储的要求。第二阶段的主机系统部署方案要求服务器分为数据库服务器和应用服务器,应用服务器专门负责业务处理和Web访问,通过DDN专线连接到Internet(根据用户对安全性的要求,系统也可以不作任何修改的运行在企业内部的Intranet上),并和数据库服务器组成一个很小的局域网。客户机可以直接通过因特网访问应用系统但不能直接访问数据库

    1.2系统的技术体系结构

    SOA架构具有一些典型特性,主要包括松耦合性,位置透明性以及协议无关性。松耦合性要求SOA架构中的不同服务之间应该保持一种松耦合的关系,也就是应该保持一种相对独立无依赖的关系:位置透明性要求SOA系统中的所有服务对于他们的调用者来说都是位置透明的,也就是说每个服务的调用者只需要知道他们调用的是哪一个服务,但并不需要知道所调用服务的物理位置在哪里,而协议无关性要求每一个服务都可以通过不同的协议来调用。通过这些SOA架构所具有的特性我们可以看到,S0A架构的出现为企业系统架构提供了更加灵活的构建方式,如果企业架构设计师基于SOA来构建系统架构,就可以从底层架构的级别来保证整个系统的松耦合性以及灵活性,这都为未来企业业务逻辑的扩展打好了基础。

2、SOA分层模型

    SOA中的服务可以被映射成具体系统中的任何功能模块,但是从功能性方面可以大致划分为以下三种类型:

    2.1商业服务:这一类的服务是一个企业可以暴露给外部用户或者合作伙伴使用的服务。比如说提交贷款申请,用户信用检查,贷款信用查询。

    2.2商业功能服务:这类服务会完成一些具体的商业操作,也会被更上层的商业服务调用,不过大多数情况下这类服务不会暴露给外部用户直接调用,比如说检索用户帐户信息,存储用户信息等。

    2.3技术功能服务:这类服务主要完成一些底层的技术功能,比如说日志服务以及安全服务等。

3、SOA与企业服务总线(ESB)

    为了将SOA变成现实,需要一个智能化的服务基础架构,以降低服务重用的复杂性,并可靠地集成IT环境的各种技术、协议和应用。为此,IT组织创建了一个以“服务”为中心的抽象层,以隐藏各种应用和技术带来的底层复杂性,并提供一个定制企业应用的平台。这个服务或集成层称为ESB(Enterprise Service Bus.企业服务总线)。

    3.1 S0A架构范例

    SOA的部分范例转移是一个从应用基础架构(ApplicationInfrastructure)迁移到服务基础架构(Service Infrastructure)的过程。在SOA之前,各种应用程序用点对点的连接方式孤立地组织在一起。除了利用一个聚合的服务基础架构层(Service Infras—tructure Layer)之外,SOA使用同样的后端应用引擎和中间件。

    3.2 S0A,WEB服务的实现

    J2EE平台通过JAXRPC1.1API提供了完整的Web服务支持,这种AP1支持基于Servlet和企业Bean的服务端点。JAXR.PC1.1基于WSDL和SOAP协议提供了与Web服务的互操作性J2EE平台也支持WebServicesforJ2EE规范(JSR9211.后者定义了Web服务的部署需求并利用了JAXRPC编程模型,还提供了跨平台的交互操作性。

    Web服务客户可以通过两种方式访问Java EE应用程序。客户可以访问用JAXRPCAPI创建的Web服务:在幕后JAXRPC使用Servlet来实现Web服务。公开无状态的EJB作为Web服务:Web服务客户也可以通过Bean的服务端点接口访问无状态会话Bean在项目中,现有的业务逻辑大多已经使用EJB组件编写,通过Web服务公开它可能是实现从外界访问这些服务的最佳选择。

    3.3两种粒度实现SOA服务

    在SOA中服务粒度有两种相关的意思,即服务是如何实现的,服务使用和返回了多少数据或多少消息。细粒度服务执行了最小的功能,发送和接收少量的数据。粗粒度服务执行了较大的业务功能,并交换了更多的数据。

    细粒度服务是供粗粒度服务或组合服务使用的,而不是由终端应用直接使用的。如果应用是使用细粒度服务建立的,则应用将不得不调用网络上多个服务,并且发生在每个服务上的数据量较少,因而会对对系统整体性带来影响。所以,粗粒度服务的用户不能直接调用它所使用的细粒度服务,安全和访问控制必须在细粒度服务中实现。

    组合服务可以使用粗粒度服务和细粒度服务进行组装。数据数量不是粗粒度服务和组合服务之间的区别。粗粒度服务,如创建新用户,在这一过程的操作是:需要通过一些外部服务验证对客户进行验证,并在资源库应用系统中创建用户记录。

4、结束语

    SOA不同于现有的分布式技术之处在于大多数软件商接受它并有可以实现SOA的平台或应用程序。它伴随着无处不在的标准,为企业的现有资产或投资带来了更好的重用性。它以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程,对现代企业的系统集成和整合起到了非常重要的作用。

本文作者:杨明 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读