文/东方通科技首席架构师/soa-RA-TF主席 朱律玮
在我国乃至世界,soa通过探索实践,在技术上正处于逐渐完善和成熟的过程,主要相关技术和标准包括:
·服务的定义,当前主要使用WSDL来对服务接口进行描述,描述服务的功能,接口参数。除此之外还需要描述服务的契约,包括业务特性的详细描述,服务的质量属性的描述(如是否提供安全功能,是否提供可靠传递功能,是否提供事务完整性管理)
·服务的注册与查找,服务的描述信息可以存储在文件,数据库或目录系统中。服务的获取可以通过静态方式,也可以通过动态匹配查找方式。
·服务间的通讯,当前可以使用的技术包括:HTTP/soaP/JMS等,使用soaP技术时如果要解决可靠传递问题,相关的标准有WS-Reliability和WS-ReliableMessaging
·服务流程的编制和编排,服务编制用于定义合成服务,关注重用已有服务的内部流程,相关的标准是WS-BPEL;服务编排关注与多方参与的交换消息,进行对等的业务协作,相关的标准有WS-CDL。
·soa架构中需要考虑的质量属性有:安全、高级的消息传递管理、事务管理,这些也都有相关的标准加以支持。
·其他的技术还包括集成开发工具,支持基于模型的开发方法,基于Portal的统一的运行监控工具等,相关的标准有WS-DM。
soa在技术的实现上还没有一个公认一致的架构,存在着大量的标准,不同厂家围绕自己已有的产品提供不同的技术实现,这些实现对soa特性的支持程度也不一样,当前还没有一个厂家可以宣称自己的产品可以完全满足soa的各种特性。这样对于用户来说,建立soa应用时,就需要考虑自己的实际情况,到底想解决什么样的问题,以此来选择合适的技术解决方案,也需要建立一个长期的soa建设规划,可以保证soa实施的稳步发展和进行。
因为soa本身在发展过程之中,技术实施时可以分步实施,积累经验后再往前推进和深入。下面给出一个发展步骤的示例,用户在规划自己的soa项目时可以根据自己的实际应用需求来确定先实施什么,后实施什么,经过长期的研究发现,提出以下“三步走”建议供参考。
第一步,实现soa的一些基本特性。
如:服务描述,使用WSDL描述服务接口提供的方法和参数
服务注册,可以使用人工登记服务描述,也可以使用文件、数据库或目录系统来登记和管理各种服务描述信息。
服务查找,可以使用人工查找,或利用一些简单的工具来获取服务及其接口描述信息。
服务通讯和访问,可以通过编程实现来访问服务,可以使用soaP协议,也可以利用传统的中间件技术来实现(如JMS等)。
简单的流程功能,对于将多个服务组合成不复杂的流程,可以通过编程方式来加以实现,当然这样也缺失了可灵活组装的特性。
简单的工具支持,提供服务描述,简单的服务注册和查找。
第二步,在成功实施soa的基础上,加入一些企业级的高级特性。
如:扩展服务描述,使用简单的服务契约管理功能,可以将服务的质量属性作为服务的一个属性来配置和定义。
提供流程管理,使用集成开发工具定义流程,使用流程管理引擎来运行流程,并监控流程的执行,可以得到很好的服务流程组装特性,并能根据需要很容易的调整和优化服务流程。
技术支撑平台提供企业级的质量属性保障,包括提供:安全服务、可靠消息传递服务、事务完整性服务等。同时也需要提供高性能的通讯和处理能力。
基本的集成开发环境,可以提供从流程定制,服务管理,集成的开发,调试和部署环境。
基本的运行监控管理工具,基于门户技术提供统一的运行监控和管理工具,可以了解系统的运行情况,根据需要进行动态调整。