SOA 动机

结构化编程、面向对象编程和组件是编程范式方面的努力;

客户机---服务器架构、三层架构乃至N层架构师架构方面的进化。

SOA接受异质

        这个转变产生的效果正如敏捷编程接受"需求不断变更"产生的效果一样,

        从抗拒到接受,观念上转变的一小步,实践中将形成巨大的差异。

SOA接受变化

         甚至必须在变化中才能产生出自己的SOA。强调SOA是必须根据自己的情况逐步演化出的一个IT战略。

人们发现,处理可伸缩性和分布的老办法不管用了。我们不再能一致化系统,或维护队系统的控制。

        一致化和控制的前提是集中,集中无法扩展,而我们已经将集中发挥到了极致。

        正因如此,我么需要一个新的方法------一个接受异质、带来分散的方法。

另外,我们需要解决"业务/IT"鸿沟的难题。这条鸿沟主要是语义上的----业务人员和IT人员似乎在用

         完全不同的语言交流和思考。新方法必须将业务和IT的距离拉近到前所未有的程度。

"面向服务的架构(SOA)"正合所需。它是一种帮助系统在增长的同时保持可扩展性和灵活性的方法,

         它也有助于填平"业务/IT"鸿沟。

该方法由三个主要元素构成:

①服务

           服务一方面体现了自足的、能作为一个或多个流程一部分的业务功能;

           另一方面,服务能由任何技术,在任何平台上实现。

②企业服务总线(ESB)

            它是个专门的基础设施,它使我们能够用简单和灵活的方式来结合这些服务

③政策和过程

            它们处理这样的事实---大型分布式系统是异质的、处于不断维护中的,其所者各异。

SOA接受这样的观念:

        在大型分布式系统中,保持灵活性的唯一办法是支持异质、分散和容错。

SOA是个范式;SOA是种思维方式;SOA是架构设计和评估体系。

以下列出SOA的关键技术概念

①服务

    本质上,服务就是业务功能的IT体现。

    SOA的目标就是基于对业务规则和功能的抽象来构筑大型分布式系统。

②高互操作性

    处理异质系统时,第一个目标是能轻松地连接这些系统。

③松耦合

    松耦合是表达最小化依赖的概念。

    当依赖被最小化时,改动造成的影响也被最小化了,即使部分系统崩溃或当机,

    整个系统也能运转。最小化依赖有助于容错和灵活性,松耦合还带来可伸缩性。

SOA要素

①基础设施

    基础设施是SOA中使高互操作性成为可能的技术部分。

    ESB的关键特性是,它使你能再异质系统间进行服务调用。

    它的职责包括数据转化、(智能)路由、处理安全和可靠性、服务管理、监测和日志。

②架构

    架构用来对SAO的各种可能性加以限制,从而使系统运转顺利、维护方便。

③过程

    大型系统复杂的一个原因是它牵涉了许多不同的人和组织。

    因此,从最初的业务思路或需求,到方案实际运转,处于生产状态,有一个漫长的过程。

   这些过程包括:

           业务流程建模(BPM)

                   BPM的任务是把业务流程细分为更小的活动或任务,也就是服务。

           服务生命周期

                   定义服务生命周期,即定义服务成为现实需要经历的不同步骤

           模型驱动的软件开发

                   MDSD是处理服务时生成代码的过程

④监管

    "监管"是所有流程的元流程,也是SOA的一个总体策略。

你可能感兴趣的:(SOA 动机)