本文讨论了基于服务的建模和架构的重要部分,以及构建面向服务体系结构(SOA)所需的分析和设计的关键活动。作者着重强调了选择鉴别、制定和实现服务所需的技术,它们的流程和组合,以及实现和确保SOA所需的服务质量的企业级组件。
引言
目前,关于由Service-orientedArchitectures(SOA)和它的Web服务实现所表现的时机有许多传言--有一些是有事实根据的,但是一些却没有什么事实依据。分析家已经预言,博学者已经声称,教授已经讲演,公司已经匆忙的卖他们的产品,作为SOA产品--经常失去SOA不是一个产品的要点。它是业务和IT之间的桥梁,通过一系列使用一些设计原则、模式和技术的依赖于业务的IT服务来实现。
ZDNet最近报道说,“Gartner预言到了2008年,至少60的企业将使用SOA作为创建任务苛刻的应用程序和过程的“指导原则”。
开发和实现SOA有很大的需求。因此如果SOA不仅仅和产品和帮助实现它的标准相关(比如通过Web服务),那么为了实现SOA你还需要什么附加的元素吗?基于服务的建模需要其他的行为和构件,这些在传统的基于对象的分析和设计(OOAD)中是不存在的。“基于服务的分析和设计的元素”这篇文章描述了一些最初的原因,解释了为什么你需要OOAD之外更多的内容。它同样描述了业务流程管理或企业架构(EA)和OOAD为什么不是管理分析和设计的适当手段。同样,在IBMRedbook中名为“模式:Service-OrientedArchitecture和WebServices”的文章中,我举例说明了基于服务的建模方法的主要活动。
然而,你还需要重视一些额外的重要的需要考虑的事项。首先,目前的OOAD方法没有定位SOA三个重要的元素:服务,流,和实现服务的组件。你同样需要可以明确定位鉴别、制定和实现服务所需的技术和过程,它们的流程和组合,以及实现和确保所需服务质量的企业级组件。
第二,需要进行范例的替换,以便更好的区分SOA的两个关键角色之间的截然不同的需求:服务提供者和服务消费者。第三,假设为一个企业或者业务线构建的应用程序,现在必须被提升到一个供应链中使用,并且公开给合作伙伴,这些合作伙伴可能组合、联合和封装应用程序到一个新的应用程序中。这是服务生态系统或者服务价值网的概念。
这是仅从“分布式对象”的一个微小的进步。它是关于通过网络作用创造的价值:例如,当合作伙伴利用了Amazon.com与Google搜索的联合,并且与eBay服务结合在一起,来构建他们自己的混合解决方案。或者当旅行社深入到机票预订系统,并且与汽车租赁公司以及宾馆相互协调,更新他们的记录并且将旅行计划发送到你的电子档案中。无论什么样的应用程序,你如果想成功地创建SOA,需要的都不仅仅是好的工具和标准。你需要一些规范的步骤来支持你的SOA生命周期;用来分析、设计、实现服务、流程和组件的技术。因此,对于任何对企业应用程序开发感兴趣的人来讲,理解基于服务的建模和架构中包含的细节步骤是非常重要的。
在我详细描述这些步骤以前,我们首先应理解你打算要做什么:什么是SOA,以及它看起来像是什么?在定义了SOA后面的概念和观点以后,我将描述SOA的层和你如何去记录每个层中的关键架构决策,这些层帮助你为SOA构建蓝图,这些SOA正是那些你试图同一系列实现了SOA服务、流程和组件集成以及出现的项目、业务线、企业级成果和价值链所需要的。
Service-OrientedArchitecture:概念模型
这个概念基于一种架构样式,该样式在三个主要参与者之间定义了交互模型:服务提供者,公布服务描述并且实现服务,服务消费者,他既可以使用统一资源标记符(URI)来直接使用服务描述,也可以在服务注册中心来查找服务描述并且绑定和调用服务。服务代理提供和维护服务注册中心,然而现在并没有通用公共注册中心。
图1是一个显示了这些关系的元模型。
[1][2][3][4][5][6][7]
来源:希赛网