IBM Rational对SOA开发的方法论SOMA

http://www.sina.com.cn 2007年08月30日 18:44  ChinaByte

  天极ChinaByte 8月30日消息 在今天召开的IBM Rational软件开发高峰论坛(IBM RSDC China 2007)下午的SOA 专场上,IBM软件部Rational中国区技术销售经理傅纯一着重介绍了IBM对SOA开发的方法论SOMA,以及IBM的Rational有一整套的工具支持方法的实践,也就是IBM Rational在IBM SOA整个策略里面扮演什么样的角色和起到什么样的作用。

  

IBMRational对SOA开发的方法论SOMA

  IBM软件部Rational中国区技术销售经理 傅纯一

  傅纯一表示,今年RSDC大会的主题是“What keeps me Ratianal?”,Rational在建模方面很强,我们表达现实世界有什么样的模型呢?我们用各种各样的地图表达现实世界,这可能基于不同的目的,我们会选用不同的地图来表达不同的目的,我们建立模型完全取决于我们要达到什么样的目的,我们表示方法就是在软件工程里面经常讲的模型概念。开发软件的时候,要解决的问题不同也决定我们采用不同的模型,模型是对现实世界的抽象,因为我们要开发一个真实的软件系统实际上非常复杂的,我们在设计理解这个系统的时候,不可能阅读代码理解这个系统,模型就是从需求到最终实现处于中间的步骤,模型是对现实世界对复杂系统的抽象,它描述软件系统主要的组件,他们之间的关系,这系统到底有几个子系统,有几个模块,他们之间的关系怎么样,怎么实现系统功能的。根据我们要表达的目的不同就会有不同的图形,比如有SIP子系统,这是为了表达对象交互的,系统的功能,在面向对象的方法里面就是通过面向对象的交互实现的,要把网络的拓扑结构,可能就会画一个网络拓扑结构图,它是对真实系统的抽象,有了这个抽象可以很快理解系统的思想。建模就是帮助我们把复杂的问题分解为相对简单的方面,我们知道要解决复杂问题就是分而治之,模型就是帮助我们从多个角度刻画我们需要解决的问题。

  在SOA应用建设过程中,对建模提出了新的要求,我们平时讲建模,就是指怎么样采用一个面向对象的设计方法,怎么用UML标准化的语言来表达我们的设计思想,所以传统的设计,面向对象的设计,大概就是在这个层面上,但是大家知道SOA跟以前技术的区别点,SOA是从业务角度出发考虑问题的,服务是可以独立封装的业务功能,SOA业务建设过程中,需要提升模型的抽象层次,不应该满足于描述系统内部有哪些子系统,他们之间的关系怎么样,在SOA建设里面这是远远不够的,除了这些之外还需要描述客户的业务流程怎样的,所以要有业务流程级别的描述另外需要描述企业架构,因为SOA一方面自己可以开发很多的服务组件,然后把服务公布出去,可以供自己使用,也可以供其他的部门,甚至其他的企业,或提供给你的客户或供应商使用。这涉及部门跟部门之间,公司跟公司之间的交互,所以也涉及到企业架构。我们需要在传统面向对象的设计当中增加对于业务流程和企业架构的描述,同时在这两者之间是谁提供这些服务呢?我们需要抽象出这些服务组件,这些服务组件真正提供了服务实体。这些服务组件怎么实现的?落实到更细节,面向对象分析的范畴。上面几层就是在SOA应用建设中需要增加的内容,在SOA应用建设中我们需要更完整的描述整个系统的架构。

  在SOA建模的模型中,我们主要涉及三种模型元素,在传统的OOAD会涉及传统的模型元素,涉及到一些子系统,在SOA建模中增加了描述的对象,最上层要有一种能力帮助我们描述一个业务流程,因为SOA最重要实现的就是一个完整的业务流程,我们希望通过服务的快速编排和组合灵活搭建一些新的业务流程,支撑业务流程的是一组可重用的服务,服务就是对一个业务功能的封装,这些服务由谁具体实现的呢?下一层我们会抽象出很多服务组件,这个服务组件可以继续分为功能组件和技术组件等。再往下可以应用传统的面向对象的分析技术,把服务组件描述一下,看看怎么实现服务组件的功能,具体在社区的时候,只要把服务定义好了,把服务组件定义好了,就相当于把服务组件的需求定义好了,在具体实践开发的服务组件对在座各位不是难的事情,因为需求很明确,只要把服务组件实现出来就可以。我们要介绍的SOMA方法主要目的就是找到这些模型元素,然后来详细描述这些服务元素,他们之间有什么关系,有哪些表述手段,我可以描述这些服务元素。

  傅纯一表示,IBM提供给大家是一个非常完善,也是比较复杂的SOMA方法论,它帮助我们来分析和设计SOA系统的模型,SOA系统的模型。现在开发软件多层架构是经常用的概念,系统层中间件,应用逻辑展示层,SOMA里面有9个层次,最上面是客户最终用到的业务流程,最上面是用户看到展现层的东西,看到的门户、JSP,展示的用户界面。再下面是通过SOA架构编排出来的业务流程,它是通过服务的串接和编排形成的各种服务流程,业务流程由各种各样服务组成的,这个服务具体往下就是由服务组件来实现的,这些服务组件往下,这些服务组件的功能可以重用现有的服务,可以对遗留系统的服务进行封装,包装出一个新的服务,也可以利用OOAD的方法开发出一个全新的服务组件出来。

  我们要介绍的SOMA方法主要是三个步骤,第一个步骤是找到服务,我们怎么确定SOA架构里面需要哪些服务,对于一个企业来讲有那么多种业务,有哪些服务是需要抽象出来的,找到了这些服务之后,接下来就要对这些服务进行描述,这些服务他们之间的相互关系是怎样的,这些服务分别由哪些服务组件实现。下一层就要考虑这些服务采用什么样的技术实现,可能是租用别人提供的服务,也可以重用以前有的服务,也可以重新开发一套服务,或者我利用我的遗留系统,把遗留系统的功能进行封装成一个服务,这些是涉及具体的实现技术。SOMA方法主要步骤就这三步。你提供一个服务给别人用,将来有这个架构不会免费提供别人用的,是不是要收费,还有你决定要做这个服务的话,是要做投资的,谁来做投资?你做了服务以后免费给别人用,你自己没有好处这是不可能的,因为往往这个部门,做了一个服务,可能只是提供服务给别人,他自己不用,这种情况下一定涉及到要不要收费,以及将来要长时间维护这个服务,因为一旦公布出来别人在用,不能将来不支持这个服务,刚才谈到的问题都是属于治理的范畴。

  刚才提到SOMA方法,怎么入手就是从业务流程入手,从客户业务入手,这里面有领域分解、功能域分解,你确定一个业务目标你分析一下要达到这个业务目标需要什么样的服务支撑这个目标,这些都是属于寻找侯选服务,我们找出来的是他可能是一个服务,第二个确认这个服务,到底找到侯选服务里面要不要做这个服务,要不要对外公布,这是一个投资决定,还有就是描述这些服务之间的关系,还有描述这个服务由哪些服务组件实现的,最后就是具体的实现技术,大家做开发比较情况,用现有的技术实现服务。这是一个典型的SOMA模型,上面是第一步的工作,提供三种技术帮助我们分析的,我找服务可能从现有应用里面封装成一个服务,中间的步骤就是对服务进行描述,包括我们怎么样找到子系统,怎么样找到服务的组件,还有怎么样描述这个服务,描述服务之间传递的信息,下面是属于实现的。

  SOMA建模的结果,传统来说做一个软件开发会得到一个什么模型,会得到一个设计模型,我们说SOMA在这基础上增加一层,除了设计模型,在SOMA方法增加一个模型就是服务模型,这包括哪些内容呢?这是一个服务模型里面看到的内容,第一步我们可以得到Service portfolio,服务之间的以外关系,以及我们可不可以对服务进行组合,进行组合服务。另外要考虑非功能性的需求,安全性,性能方面的需求,还要描述服务之间传递的数据,消息是什么样的,还有在服务的过程中,因为我们有状态管理,处于某个状态的时候是什么工作,怎么描述服务组件的状态,下面有实现的决定。左边的图就是RSA工具里面的服务模型,服务模型的结构,你有这样一个模型就会得到这样一个架构,首先可以看到三步,第一个是确认服务,描述服务以及服务的实现,在这里面可以看到把所有服务放在服务模型里面,我们会用其他的技术帮助我们寻找这些侯选服务。SOMA的方法是可以落地的,我们已经有工具,RSA这个工具支撑SOMA建模的过程。它作为方法论就有很多概念,有很多新概念,最佳目标服务模型,你做SOA建设的话,SOA主要的目的就是使你IT应用满足业务的需求,你要满足哪些业务目标,你要有业务目标,找到业务目标要找相应的服务。在这过程中还有一个模型就是Component模型,我们会找到很多Component服务,在系统里面表述的可能就是一个子系统,一个实现了很多接口功能的系统,我们利用基于构建开发的设计方法和模式,这个模型是从业务描述到技术实现的桥梁,上面讲的完全是业务流程以及业务流程的抽象,下面就要具体入手看看IT技术上怎么实现这些服务,具体的载体服务Component。

  实际的工作中,服务组件其实提供一种能力,你在分析设计的时候,在这种层次只是封装在服务组件里面,至于服务组件采用什么样的实现技术在SOMA过程中暂时不需要考虑,到后面实现的时候,你再考虑具体的实现技术。在服务组件里面,要定义清楚服务组件所实现的接口,这就是它的需求,还有依赖于其他哪些服务,因为服务组件不可能所有的功能都用自己的,很有可能用其他服务提供的功能,还有一些其他的业务规则等等。看一下SOA应用、开发的整个过程你会看到,我们介绍的SOMA方法是这两步,帮我们描述就是业务流程描述清楚,把服务找出来,把服务组件找出来,一旦我们找到了服务组件之后,接下来的步骤就可以用传统OAD的方法,甚至传统的其他开发方法实现具体的服务组件,这个过程会产生具体详细的设计模型,还会产生代码,在这个阶段就可以实现,这样就是整个SOA开发应用的过程,在这过程中可以看到SOMA起的作用。现在SOMA的版本是2.4,现在我们正在制定SOMA下一个版本,SOMA3.0,会更多考虑实现层面的东西,这样提供给我们就是一个非常完整的SOA开发的方法论。

  刚才给大家一个介绍,大家了解一下我们SOMA方法能够帮我们做什么工作,具体的SOMA方法,我们方法体现在RUP里面,针对SOMA方法有一个RUP for SOMA的特殊版本,在这个版本里面详细描述了SOMA方法,一步一步应该怎么做。具体讲到实现的工具,就是刚才讲的RSA,这里面提到SOMA建模的模板,很多SOA应用的模式等,得到的结果,最后我们可以把它导出到另外一个工具里面,直接编译成为一个可运行的代码。我们有一些工具对现有的代码分析,比如WSAA,还有一个工具ATW(分析现有资产),这两个工具都可以对现有的遗留资产进行分析,告诉你遗留的应用到底有哪些功能,你决定这些功能可不可以封装,抽象出来成为一个服务。它提供很多的功能帮助我们分析。

  讲到SOA开发,另外有一个工具资产管理,因为做开发首先要查一下,每当你决定开发一个新功能的时候,你要查一下有没有一个现成的服务可以重用的,RAM就可以帮助你把企业所有的服务资产管理在统一的数据库里面,你可以在这个数据库里搜索,搜索到服务组件就可以把这个服务组件导进来,导到RSA工具里面。

Powered By Google
不支持Flash
·《对话城市》直播中国 ·新浪特许频道免责公告 ·诚招合作伙伴 ·企业邮箱畅通无阻