面向对象建模解决方案

日期: 2008-04-15 作者:Simon Johnston 来源:TechTarget中国 英文

为了在当今快速变化的商业环境中获得竞争的优势 ,许多公司都寻找了有弹性的和互用的利益,它们都经历了有效的面向对象架构的实现(SOA)。一个面向对象架构是一个IT框架,其中包含了个人商业功能和处理,被称之为services,来实现熟练的商业应用程序。它把这些处理过程看成可以复用的构件或者那些独立于他们运行在的应用程序和计算平台的”services”。   由于开发团队的坚持努力,他们找到了构造一个SOA的最好方法,一个模型驱的方法必须被考虑在其中。

很久以来都被认为是一种提高软件开发中的抽象层次的有效方法,建模在创建面向对象解决方案中是非常有效的,这些解决方案都是依赖于许多……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

为了在当今快速变化的商业环境中获得竞争的优势 ,许多公司都寻找了有弹性的和互用的利益,它们都经历了有效的面向对象架构的实现(SOA)。一个面向对象架构是一个IT框架,其中包含了个人商业功能和处理,被称之为services,来实现熟练的商业应用程序。它把这些处理过程看成可以复用的构件或者那些独立于他们运行在的应用程序和计算平台的"services"。

  由于开发团队的坚持努力,他们找到了构造一个SOA的最好方法,一个模型驱的方法必须被考虑在其中。很久以来都被认为是一种提高软件开发中的抽象层次的有效方法,建模在创建面向对象解决方案中是非常有效的,这些解决方案都是依赖于许多根本的实现技术和标准。

  下面的文章展示的一个允许设计者和架构师能够指定正确的服务具有正确的能力,从而实现 一个面向对象架构(SOA)的潜在利益。

  特定地,我们将会考虑服务标识和规范的重要性、管理服务特征文档和把面向服务的解决方案划分为任意SOA开发的必须元素。我们将会考虑三种不同的使用建模来开发服务的方法,希望能够为读者提供一个特别的向导来调整面向对象方案的建模的力量。

  服务标识和规范

  首先,关键的SOA概念必须作为第一类元素在模型中出现。虽然其中一个重要的概念是服务它本身,但是它却变成了模型中的第二类元素。为了构建一个反映WSDL(Web Services描述语言)定义的服务的模型,我们需要首先开发一个服务规范元素集合——关于结构型,行为型和策略的。例如,一个订单管理服务也许包括一些结构型的规范,如“下订单”,“取消订单”,“更新订单”的列表,还包括可获得的操作。这个订单服务的动作型的规范也许描述你如何不能更新或者取消一个你没有提交的订单。一个策略规范也许要求订单的特定元素要被加密,并指示用于加密的技术,使用的证书等等。

  开发一个SOA模型的另外一个重要的方面是服务的标识。这允许架构师和设计者能够制造出一个可以描述理想的服务的规范的模型,一个理想化的服务可以实现一个过程或满足者一系列的需求。这些服务然后被重构为1)适应现有的服务,2)适应于一个现有的功能性架构的框架,或者3)被分割为可以允许更多的细致纹理的或者并行的开发。

  管理一个服务的特征文档

  一旦我们有了标识服务的规范集合,我们就需要明确地设计,实现和管理在我们企业机构中的服务的集合,让他们成为一个可以获得的能力的特征文档。最重要的,上面描述的服务的重构需要被那些指引参与者在开发正确的方法来开发正确的服务的过程来支持。

  通常的,我们把一个软件开发生命周期关注为一个工程的时间边界的过程;依次地,一个工程由时间边界通过开发解决方案的一些特定部分来划分开。在服务特征文档其本身中,我们看到一个如下图一所示的贯穿个体工程的生命周期,而这些个体工程也使用这个生命周期,并对其作出贡献。

  图一:服务特征生命周期

  分解面向服务解决方案

  在管理服务特征文档中,模型的组织成为一个重要的挑战。那些对商业雇主有用的组织的集合和软件架构师,设计者,开发者,操作员工等等所要求的集合不同。我们因此推荐经典的模型管理的方法,包管理,不应该被用作在管理模型的角度来看的主要的机制,因为一旦一个元素被放置在了一个单独的包里面,它也许会被其他包的另外一个元素访问,但是这两者又不能放置在一个包里面。

  作为替代,我们考虑了 UML 2.0的规范的组成结构的想法,它提供了管理的服务的划分能力。划分可以用来表现成组的服务。随着服务规范的提出,他们可以被放置到不同的部分来形象化的表示他们之间的关系和依赖,正如图二所示。

  图二:使用划分来根据逻辑划分模式来组织,而不需要服务为任何一个划分所有。

  整个服务模型在下面给出了描述(描述软件服务的UML轮廓)。这个模型是面向服务解决方案的抽象架构,这些解决方案考虑了模型是第一类模型元素,这些模型里,一个服务的想法和具体的关于SOA的考虑。这个模型不是一个直接表示任何技术实现的,例如WSDL。

  图三:软件服务的UML轮廓

  开发Services的三种途径

  最终地,我们概述了三种开发Services的途径。这些当然不是互相排斥的,他们在解释在使用一个模型开发SOA的不同的途径和想法的时候是很有用的。

  1. 以消息为中心的设计

  在以消息为中心的设计中,关注的焦点是服务域。这种方法的一个例子也许就是在传统的business-to-business领域中有,为代表的就是电子数据交换(EDI)标准。在EDI中并没有一个真正的服务借口的概念,尽管EDI系统通常有一个发送消息的全局收件箱和代发箱。

  2.以服务为中心的设计

  在这种方法中,设计者关注的是提供给商业或者应用程序所期望的功能。这种方法的一个例子就是Amazon (AWS) 和eBay提供的 Web Services APIs。这种服务接口并不在客户端强加一个商业处理过程,而是他们以一种清晰和直觉的方式为第三方开发者提供他们的服务提供商的各自的操作。

  3.以协作为中心的设计

  在一个以协作为中心的方法中,关注的焦点是两个或更多的服务的协作;这就正是一个服务的处理视图并且和更多的传统商业模型相关。服务被看作是满足合作的角色,并且服务规范就是为一个或者更多的角色之间的协作定义的职责集合。这样的一个方法将会普遍的以商业过程设计或者商业集成活动的形式出现,而在那些商业集成活动中,一个IT系统的构件被作为一个服务来提供。

  结论

  最后的总结,在对SOA建模的时候,类似于服务划分技术的这些技术能够提供的透明性和灵活性来让商业能够在今天的竞争和演化的市场中取得优势地位。正确的框架的提出,从服务规范的标识到UML服务建模的设计,导致了更加有效的成熟的商业应用程序的实现。最终地,三种开发服务的方法解释了可以用来为SOA建模的不同方法。通过追随这篇文章的概要,为表现一个服务模型的适当的层次的抽象被以一种允许商业能够满足他们的IT挑战的方式被提出来了。

相关推荐

  • 谁知道阿里云河南服务中心是干什么的?

    一直接到阿里云服务中心的电话,说是阿里云的授权中心,主要提供阿里云的区域服务的?请问其他地方也有阿里云的服务中 […]

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。