论文部分内容阅读
应用软件的开发方法在过去的40年里,经历了很多次的重大变化:面向过程的开发方法、面向对象的开发方法、面向组件的开发方法以及现在流行的面向服务的开发方法。为了变得更加有竞争力,企业必须创建一个面向业务的、可靠的架构一面向服务的架构(SOA),用来替代过去分散、专用的应用平台。因此,SOA逐渐成为适用于设计现代企业应用程序的体系结构形式,其核心思想就是用开放的标准把企业的业务功能包装成标准的服务,这种服务通过明确的、与实现无关的接口来定义,服务被松散绑定,并且可以通过强调位置透明性和互操作性的通信协议进行调用。基于标准、松散耦合、灵活、敏捷是SOA的特点,它的出现给企业带来了极大的竞争力。但是,如果只有服务,没有交互,那么服务的存在也是没有任何意义的。服务之间的协作,都是通过ESB来进行的,服务之间并不直接接触,服务间的请求/响应,发布/订阅等事件都是通过ESB来进行的。服务总线可以在服务提供者和请求者之间改变消息的格式,路由到正确的服务提供者,在服务提供者和服务使用者之间转换协议,以及提供安全、策略、事务、管理等功能。SOA与以往的软件开发过程的最大区别之一就是SOA是业务驱动的,而传统的软件是开发是IT驱动的。业务驱动开发指的是由业务需求驱动的软件开发方法,从业务需求分析出发,在业务目标的需求推动下设计、开发和测试。我们提出了业务驱动的SOA的开发过程:理解业务需求,进行需求分析;服务的设计与实现;组装并部署服务。我们立足于实践,以工程项目沟通服务为例,采用了SOA及ESB的概念,首先对沟通服务的需求进行了分析,明确了业务需要满足的目标。然后我们对能够体现沟通服务主要价值,并且会对架构设计产生全局影响的四个典型用例作为考察的重点。接着说明了系统的整体设计原则和思路,给出了整体的系统架构,并且对沟通服务的设计进行了详细的说明并给出了具体的实现。在部署和组装我们的服务的时候,我们选用了ESB的开源实现Mule。Mule作为一个较早的开源ESB的实现,成熟度相对较高,开发社区活跃;开源及免费的特性使得初期的投入较小。提供了较为丰富的功能,既能够满足我们目前的需求,又能满足将来的扩展需求。因此在我们的系统中采用Mule对服务进行组装和部署。在文章的最后,说明了论文的不足和今后研究的方向。