技术开发 频道

什么是SCA

【IT168技术文档】面向服务的体系架构(SOA)提供了一条途径来解决紧耦合和应用固化的问题。SOA承诺它将带来诸多好处,例如提高商业敏捷性,提高灵活性,降低成本,使异构和分布式环境中的信息共享变得更加容易。

    SOA描绘了一个蓝图,但实现SOA仍然是一个挑战。可供选择的用来实现SOA的技术令技术人员迷惑, 他们需要具有比较全面的技术才能成功建构一个SOA应用。SCA可以解决这一问题——提供了一个用以创建面向服务的端到端企业应用的简单模型。采用了SCA的业务将从以下几个方面受益:

    快速开发,提高生产力: SCA把一个应用看成一系列相互连接的组件。它提供了一个简单的、语言中立的组件模型,组件可以是新创建的,也可以重用已有组件。组件可以用SCA运行环境所支持的任何语言来实现。通过组件的实现和组装细节的分离,SCA实现了真正的松耦合。这种自底向上的开发风格允许开发人员集中精力开发业务相关代码,而不用担心如何使其适用于整个解决方案。

    更高的组织敏捷性和灵活性:SCA同样支持由顶向下的开发方式,通过SCA灵活的服务装配模型创建业务解决方案。SCA组件可以在一个构件组中连接在一起。一个组件可以被有着相同接口的另一个组件所替代。这个构件组可以根据IT架构需求进行调整,例如服务连接、传输协议、事务、安全和消息可靠性。可供选择的传输绑定方式使开发出的解决方案可以适应更广泛的部署需求。

    更高的投资回报: SCA组件模型使得重用已投资的现有应用和服务变得非常容易。其标准方法是封装和抽象接口,通过重新连接服务创建新应用,以此重用服务。SCA本身是技术中立的,也并非要取代现有的技术。其仅仅提供了一个组件组装模型,并描述了如何去装配新的和现有的服务。

    图1取自SCA装配模型规范,其展示了SCA的主要组成。(http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications)



    深蓝色方框(ComponentA和ComponentB)表示是组件(Component)。组件是SCA核心,其封装了业务逻辑。组件可以采用运行环境支持的任何编程技术实现。例如, Apache Tuscany 项目目前支持Java、JavaScript、Ruby、Python和C++组件类型,同时为创建新的组件类型提供了扩展API。

    SCA组件可以定义属性(Property,ComponentA和ComponentB上方的黄色方框表示属性)。属性控制组件的行为,在部署其间可以被可改变。例如,一个股票报价应用程序可能会有一个属性用来指定股票报价中使用的货币类型。

    SCA组件描述了接口,这些接口可供其它组件调用时使用。在图中接口用组件方框左边的绿色箭头来表示,被称作SCA的“服务”(Service)。组件也描述了被该组件调用的其它组件的接口,在图中这样的接口用组件方框右边的粉红色箭头来表示,称为SCA的“引用”(Reference)。这些服务和引用被连接在一起,组成一个可运行的系统。

    图中的两个组件,A和B,被组装在一个更大“构件组”(Composite)范围内,被称作构件组A。SCA的构件组描述了一个由互相连接的组件所构成的集合。正如你所看到,构件组也声明了服务和引用,它们被暴露到构件组外部.一个构件组内部的组件彼此连接就如同创建一个运行在同一进程中的紧耦合的应用程序。将构件组通过服务和引用连接在一起,则形成了一个更加松耦合的系统;系统中的每一个构件组都可能运行在一个单独的进程或处理器中,在网络中通过各种的协议和传输绑定连接起来。通过这个途径SCA为独立和分布式应用提供了统一的编程模型。

实例场景

    本文将使用一个虚构的MostMortgage公司抵押贷款申批应用来介绍SCA的更多细节。贷款审批应用(Loan Approval)接受抵押申请,包括客户的详细资料和申请的贷款数目。应用首先会检查客户的信用记录(Credit Check),确保信用额度符合最低要求。根据申请的本金数量,贷款条约以及客户的家庭状况,得出利息率(Interest Rate)。然后使用按揭计算器(Mortgage Calculator),用可能的月偿还额度除以客户的月收入额计算出比率。根据这个比率和客户的信用评分进行风险评估(Risk Assessment),然后做最终的决定。(见图2)


0
相关文章