最近一直在思考soa这个概念,希望可以挖掘出一些东西,不要停留在对soa的字面理解之上.找了一下资料,看了一下,感觉还是有所收获的.整理了一下,放上来,和大家分享一下.
     1.SOA出现的背景
    soa作为一种企业级的架构,自然有它出现的背景.企业IT部门的利用率低,重复投资多,相互联系松,我想这是促使soa出现的原因.有数据说很多企业对于一台普通的服务器来说,平均的使用率只有百分之十五至百分之二十五。我想这个数据是令人沮丧的.是什么导致了这样的结果.我想这里面的原因很复杂,多数情况下是因为企业的吞并、获得、或功能的冲突导致了一个松散臃肿的IT组织构架,充斥着许多重复和交叉的应用程序或系统。在面临着业务需求、项目上交时限等一系列问题的情况下,IT部门通常不会对这种冗余臃肿的结构进行调整,他们会把所有需要的系统都整合在一起,以应付业务需要。尽管这么做的确能够满足需求,但是却会极大程度的增加重复性投资,使成本增加。
    2.SOA的在企业架构中的层次
    应该说,SOA是企业架构中介于业务和技术之间的一个层面.一个优秀的SOA架构师一方面必须充分理解企业的业务需求和所提供的服务之间的动态关系,另一方面又必须了解服务和底层技术之间的关系.
   可以说,SOA是连接企业业务和信息技术之间的桥梁.
   3.SOA的技术特点
  
不知道现在谈技术层面是否有些过早和不恰当,但还是忍不住要说一下,因为我看到了一个非常熟悉和亲切的词语:互操作性.恰好这个学期在学Microsoft.net技术(事实上.net平台跟soa结合的非常紧密),而恰好下几周我们要做一个关于互操作性的Presentation.
      没有SOA,软件包是被编写为独立的(self-contained)软件,即在一个完整的软件包中将许多应用程序功能整合在一起。实现整合应用程序功能的代码通常与功能本身的代码混合在一起。我们将这种方式称作软件设计"单一应用程序"。与此密切相关的是,更改一部分代码将对使用该代码的代码具有重大影响,这会造成系统的复杂性,并增加维护系统的成本。而且还使重新使用应用程序功能变得较困难,因为这些功能不是为了重新使用而打的包。
    SOA旨在将单个应用程序功能彼此分开,以便这些功能可以单独用作单个的应用程序功能或"组件"。这些组件可以用于在企业内部创建各种其他的应用程序,或者如有需要,对外向合作伙伴公开,以便用于合作伙伴的应用程序。
     服务的请求程序无需知道使用的何种语言,而且可以使用任何语言来编写请求程序。这就使一个平台上的服务可以和为另一个平台编写的应用程序集成。互操作性的关键是请求和响应消息,例如,使用SOAP消息发送,其消息使用 XML 编写代码。

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 0, comments - 1, trackbacks - 0, articles - 2

Copyright © Aioria