武侠

软件架构设计理念分析物业

1. 概述

SCA (Service Component Architecture) 是一个开发SOA(Service-Oriented Architecture)面向服务应用的简单模型规范,它描述用于使用 SOA 构建应用程序和系统的模型。它可简化使用 SOA 进行的应用程序开发和实现工作。SCA仅仅是个规范(),各个涉及SOA技术的公司的实现也各不相同。本文主要分析Apache Tuscany开源项目 (中的SCA设计架构;因为我们不能满足于会用,而从这些大师们的作品中汲取营养,知其然,也要知其所以然,当我们面对需求(比如说SCA规范),都拥有同样的语言功底,如何设计一个开放性,可扩展性的架构,就是一个挑战。因为Tuscany设计理念博大精深,开放式的结构思想,性能方面的考虑,安全方面的考虑,不一而足,所以不可能在一篇短文中详细介绍,将在后续的文章中不断地深入剖析,提取设计架构和设计技巧的精华之处,供广大软件界同仁共享。

2. SCA规范基础知识

SCA编程模型是高扩展性和语言中立的,它易于被扩展为多种实现语言技术JAVA,C++,BPEL,PHP, Spring 等,多种远程访问 bindings 包括 Web Service,JMS, EJB,JSON RPC等,多种主机环境例如 Tomcat, Jetty, Geronimo, OSGI等。SCA分隔式架构可以使开发者更注重业务逻辑,而不必要关注诸如可靠性,安全,事务等系统属性,这些属性都配置到配置文件中。SCA的组成部分如下图所示:(本文涉及的SCA术语不翻译)

(1)Component

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

(2)Property

Property (Component A和Component B上方的黄色方框和Composite A的黄色小方框)。Property控制Component的行为,在部署其间可以被可改变。同时Composite也可以有Property,但其Property是Component Property升级(Promote)后的Property。

(3)Service

Service是供其它Component调用时使用。在图中接口用Component方框左边的绿色箭头来表示,被称作SCA的“服务”(Service)。

两人也做过一些小生意 (4)Reference

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

(5)Composite

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

(6)Wire

Wire是连接Service和Reference的连线

(7)Promote

Promote是wire的特殊表现形式,是把Component级别Service或者Reference升级为Composite级别的连线。

(8)Domain

为了更直观地介绍domain,如下图所示:

从上图可以清楚地看出,Domain是个逻辑的概念,管理跨机器,跨进程的Composite,同时Composite也可以跨机器跨进程部署,从而可以管理分布式部署的SCA,所以Domain是个相当重要的SCA概念。其实除了Domain是管理含义外,还有外部接口界面的含义。

石家庄女性不孕医院挂号咨询
北京男科哪好
小孩子厌食不吃饭怎么办
友情链接