zoukankan      html  css  js  c++  java
  • 面向服务的架构(SOA)的应用


    [摘要]本文详细介绍了SOA的定义、技术基础。在此基础上,给出了一个利用SOA整合现有系统的模型。最后就SOA的应用前景进行了展望并指出了SOA研究中还急需解决的问题。
    [关键词]面向服务的架构(SOA)Web ServiceXML ESB
      
      一、引言
      
      软件的本质决定了它的复杂性,而电子商务中应用到的软件不仅复杂而且多变,不断变更的多样化需求使得传统软件架构已经无法满足当前的需要。面向服务的软件架构(SOA)为处理这种复杂性提供了一种有效的解决方案。
      
      二、SOA的定义
      
      SOA(Service Oriented Architecture)即面向服务的体系架构。现在,SOA并没有确切的定义,它是一个概念,是说一个应用可以由一系列独立但又相互协作的子系统或者服务组成。这样的结构将各个服务独立出来,只把需要声明的接口告诉给其它的服务。接口定义采用中立的方式,独立于实现服务的硬件平台、操作系统和编程语言,使得这些服务可以使用统一和标准的方式进行通信。任何面向服务的架构包含三个角色:一个服务申请者(service requestor),一个服务提供者(service provider),和一个服务注册器(service registry),角色关系如图1所示。
      其中服务提供者负责建立一个有用的服务,并为它创建一个服务描述,然后将这个服务描述发布给一个或多个服务注册器,并从一个或多个服务注册器那里接收服务请求信息。
      服务请求者负责寻找发布在一个或多个服务注册器那里的一个服务描述,并负责使用服务描述来bind或者invoke服务提供者所提供的服务。一个服务的任何用户都可被看作服务请求者。
      服务注册器负责将服务提供者发布在其上的服务描述广而告之,并允许服务请求者在本服务注册器所拥有的服务描述里搜寻。一旦服务注册器将服务请求者和服务提供者配对,服务注册器就不需要再参与交互过程。
      
      三、SOA的主要支撑技术
      
      SOA技术实施中涉及的主要技术包括以下几个: ESB 、Web Service、XML、SOAP、WSDL、UDDI。其中ESB、Web Service、XML尤为重要。
      ESB(Enterprise Service Bus)
      企业服务总线(ESB),它是SOA架构的支柱技术。它提供一种开放的、基于标准的消息机制,完成服务与服务、服务与其它组件之间的互操作。XML[3](Extensible Markup Language)
      可扩展的标记语言(XML),XML是由万维网协会(W3C)创建的一种基于文本的规范标记语言,是Web Service平台中表示数据的基本格式。
      Web service
      Web service是建立可互操作的分布式应用程序的新平台, 它定义了应用程序如何在Web上实现互操作性。Web Service是就现在而言最适合实现SOA的一些技术的集合, Web Service标准的成熟和应用的普及为广泛的实现SOA架构提供了基础。
      
      四、SOA参考模型(SOA-RM)及应用整合模型
      
      一直以来SOA没有一个统一的标准。为了统一标准,OASIS作了很多工作,也取得了一定的成果,于2006年底通过了一套SOA参考模型,其他相关标准预计在2007年完成。
      基于现有工作,它在保证传统系统正常的前提下,将系统或者功能模块包装成服务,组成符合SOA模型的系统。大大提高了软件复用性,节约了成本。
      在这一方案中,不同类型的用户通过各自的用户界面进入系统,并向ESB提出服务请求,ESB将请求经由通用接口层分发,最后由特定的程序或者模块处理,处理结果逆向反馈给用户。
      
      五、结束语
      
      SOA成本低、易集成,它可以整合现有资源,并且有了新的应用时也很容易扩展而无须对现有系统作大的改动,只需将新的功能注册为服务即可。这样既提高了复用性,又有很好的扩展性。SOA的松耦合性和灵活的特点必将使它成为电子商务应用中占有绝对优势的软件工程实践方法。
      当然,要真正SOA,还有很多问题和面临的挑战。如最急待解决的,统一的SOA标准问题。

     参考文献:
      [1]IBM技术支持库,[EB/OL],http://www-900.bm.com/cn/support/viewdoc/detail?DocId=2633095A12000,2005-03-25
      [2]实现SOA的相关技术,[EB/OL],
      http://searchwebservices.techtarget.com.cn/158/2116658.shtml,2005-09-15
      [3]XML,[EB/OL],http://www.xml.org/
      [4]JAVA语言进阶:什么是Web Service,[EB/OL],
      http://java.ccidnet.com/art/3539/20061205/967669_1.html,2006-12-05
      [5]2007年 OASIS探寻标准SOA参考架构,[EB/OL],
    http://searchwebservices.techtarget.com.cn/comment/46/3034546.shtml,2007-01-10

  • 相关阅读:
    jQuery中.bind() .live() .delegate() .on()的区别
    jq中Deferred对象的使用
    事件捕获和事件冒泡
    exec与match方法的区别
    json的转换操作
    iframe内容自适应高度
    Html:upload
    小米盒子
    APUE读书笔记:关于sigsuspend
    我的C笔记
  • 原文地址:https://www.cnblogs.com/lover995/p/12894114.html
Copyright © 2011-2022 走看看