根据SOA参考架构所对应的业务、构建SOA涉及的技术要求以及技术标准在 SOA 中的角色功能,我们将SOA相关技术标准分为三大类:服务层次上的信息交互规范、基础通信标准规范、元数据标准规范。根据各种标准规范在SOA 体系中的角色功能,可以将 SOA 协议栈分为 7 层,从底向上,包括传输层、消息层、描述层、管理层、服务组合层、表示层及服务资源注册和发现层,其中除了ebXML和电子商务相关的技术标准(如资源注册的ebRS、消息表示ebMS、外部服务资源编排的WS-CDL等)外,大多数在国内已经得到了相当的应用。下面简单介绍一下相关的技术标准及其应用场合。
1、传输层
传输层作为传统的传输协议,在SOA技术实现中,依然发挥着重要的作用。如HTTP、RMI/IIOP(分别用于Java的远程对象调用和CORBA的远程通讯)、SMTP、TCP/IP等。当然,在使用基于Web的服务时,常常使用HTTP协议,以便于互联网上穿越防火墙。
2、消息层
SOAP协议基于XML描述,格式简单,语言独立,便于解析和扩展,因此,消息层SOAP已经是Web服务消费的消息传输载体的首选。Web服务协议栈中的许多规范,多是基于SOAP进行扩展的,如WS-Security、WS-Reliability、WS-Policy等。在有特殊要求的电子商务领域,消息传输还可以采用ebXML中的ebMS标准,而基于J2EE技术的应用中,还可以选择JMS作为传输协议。
3、描述层
要消费、发现和识别服务资源,需要对服务的语义进行描述。虽然SOA中的服务并不一定是Web服务,但由于Web服务的语言独立性、协议的简单性及众多厂商的支持,Web服务已经是最常用的服务表现形式,而多数SOA的技术标准也大多是基于Web服务的。
WSDL从句法层面对Web服务的功能进行描述,包括4个不同的粒度:数据类型、消息、方法和访问端口。WSDL在Web服务语义方面的描述还不完善,因此基于SOAP协议扩展推出的WS-Policy,对表示Web服务的限制条件和能力方面进行了补充。鉴于WSDL比较简单,与传统的对象和方法调用等概念较一致,而且语言独立,得到了绝大多数厂商的支持,如IBM、BEA及国内中间件厂商东方通等公司的产品,都提供了对Web服务及其标准的支持,而WSDL和SOAP已经成为Web服务最基础的标准。
由于WSDL的缺点和限制,DARPA组织发展了OWL-S协议,它是语义Web服务标记语言的标准,它比WSDL更能向用户提供可理解的服务资源的描述形式,提高服务选取与推荐的准确性。此协议相对完整和严谨,但是相对复杂,目前它主要在学术界进行研究和发展,实际应用较少。
4、管理层
与传统的IT技术相比,松耦合的分布式的SOA软件系统,处理服务质量方面的管理问题,更加棘手。例如安全性问题,对于跨网络的多个服务访问,如何验证合法身份、防止饱和性攻击、消息内容如何防止篡改和窃取、多个信任域如何一次性验证身份等?如果使用传统的多种非标准技术或不同厂家来实现这些要访问的服务,要解决上述问题简直是场噩梦。这种情况下,统一使用标准的协议,才是解决的最佳方案。为此,一些标准化组织如OASIS等发展出了系列的标准。如WS-Security标准系列、WS-Trust、SAML等,结合传统的安全标准,如KPI、加密算法等,可以用来解决Web服务的安全性问题;WS-Reliability、WS-ReliableMessaging标准,可以用来解决消息传输的可靠性问题;WS-Transaction系列协议,用来解决传统的多个Web服务消费的事务完整性问题。上述协议可用于服务容器、业务服务及企业服务总线等的服务管理扩展。目前上述部分标准已经在某些商用产品中使用,如应用服务器(服务容器中实现)、企业服务总线产品等。
另外,对于Web服务及资源的分布式管理,还可以参考Web服务分布式管理WSDM标准及Web服务资源框架WSRF协议,不过这些协议推出时间比较晚,目前还鲜有应用。
5、服务组合层
服务组合层的标准规范,主要用来构建基础服务及将服务进行组合编排,来形成满足用户需要的业务服务。WS4BPEL,即Web服务业务流程执行语言,它是一种可执行语言,能够与各种促使业务流程自动化的软件系统相兼容。Web服务编制,通过说明性的方式(而不是编程的方式)表达了进行Web服务合成的需求。此标准主要用于组织内部的业务流程管理及服务编排,目前越来越多的BPM产品基于此规范实现,大有代替传统工作流技术的趋势。WS-CDL,定义为在多个交易伙伴之间建立形式化关系,它不要求所有被集成的端点(endpoints)都有Web服务基础设施。此规范更多地用于组织之外的服务与流程编排,目前在国内还不常用。
SCA(Service Component Architecture),即服务组件架构,提供了一种编程模型,可以支持基于SOA的应用程序实现。它支持实现服务组件的各种技术,连接服务组件的各种存取方法。SDO能够使应用编程人员可以用一致的方法操作异构数据源,包括关系型数据库,XML数据源,Web services和企业信息系统。理想上,可以使用多种技术开发组件,然后使用SCA标准来组装组件及更大粒度的服务组装,而SDO可以作为服务及组件之间传输的标准数据格式。SCA比较年轻(2007年推出第一个1.0版本),国内实际使用的还比较少,而SDO由于发展较早,国内已经有部分用户和厂商在使用。
JBI,即Java业务集成,它定义了一个标准的体系结构允许第三方的组件插入到标准的基础设施上,并且即使这些组件是有不同提供商提供的,它们也可以以一种可预见的和可靠的方式互操作。JBI标准可用来实现企业服务总线及企业应用集成产品,但由于JBI限于Java技术,目前商用的产品支持还比较少,倒是一些开源实现比较多。
6、表示层
表示层的标准如JSR168和WSRP,主要应用在Portal软件的开发。JSR168是java 规范要求,它为创建portlet建立标准的api,它是为实现porltet、基于java的门户服务器和其他web应用程序之间的互操作性而设计的。在开发基于Java技术的门户产品和Web页面集成时,可以考虑使用JSR168规范。而且,大多数的基于Java技术的Portal产品,都支持此规范。
WSRP,定义了如何利用基于 SOAP 的 Web 服务在门户应用程序中生成标记片断的规范。通过定义一组公共接口,WSRP 允许门户在它们的页面中显示远程运行的 portlet,而不需要门户开发人员进行任何编程。WSRP是由OASIS组织制定,目前已得到多数厂商的支持,鉴于它基于Web服务标准,而且技术相对独立,因此随着此标准的逐渐完善,相信越来越多的Portal产品会支持此标准。
7、服务资源的注册与发现
在服务资源的注册与发现机制上,主要有两种标准规范可用,UDDI和ebXML中的ebRS标准。UDDI注册内容包括Web服务的技术模型和业务模型,本身可扩展,但目前其注册的内容和描述还不够丰富和完整,因此它主要用于Web服务的注册和查找。在商用的Web服务注册器的实现上,多有基于UDDI的产品。
ebXML中的ebRS标准,其注册机制要比UDDI丰富和完善的多。它的注册机制用途广泛,可以表示范围广泛的数据对象,包括 XML 模式、业务流程描述、UML模型、一般贸易合作伙伴信息及软件组件。但正是由于其完善而复杂,因此它主要用于电子商务领域。
扩展阅读:OA办公系统_协同办公系统;免费无纸化办公系统专题;在线无纸化办公系统专题;..中除了ebXML和电子商务相关的技术标准(如资源注册的ebRS、消息表示ebMS、外部服务资源编排的WS-CDL等)外,大多数在国内已经得到了相当的应用。下面简单介绍一下相关的技术标准及其应用场合。1、传输层传输层作为传统的传输协议,在SOA技术实现中,依然发挥着重要的作用。如HTTP、RMI/II..
|