您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Apache Tuscany SCA Java架构1

添加时间:2011-3-13  添加: admin 

概述

  SCAJava运行时由core和extension组成。Core本质上来说是一个多VM的wiring引擎。该引擎使用IOC(控制反转)和DI(依赖注入)原则来连接组件。

  Core

 Core在性能方面是简单而有限的。它将功能单元连接在一起,并提供可以和extension交互的SPI机制。例如象服务发现,可靠性,对传输协议的支持等特性都是通过extension来做的。

  Extension

  Extension增强SCA运行时的功能。Extesion类型不是固定的。而core则是通过提供对extension模块开放支持来使得设计尽量灵活。

  •   组件实现类型,例如:Spring, Groovy 和Java
  •   绑定类型,比如:Axis, CXF ,AMQP ,ActiveMQ, JXTA
  •   数据绑定类型,比如:JAXB, SDO ,XmlBean
  •   接口绑定类型,比如:WSDL, Java

  关于如何实现一个extension的详细信息可以在Extensions Guide中查看。

  运行时

  Core是设计得可以嵌入于许多不同的主机环境下的。例如,core也许用于OSGI容器、单独的运行时环境、serlvet引擎或J2EE应用服务器中。运行时的性能根据主机环境不同而不同。

  Java SCA运行时的高层概述:

  下图是由关键的模块/包组成的SCA运行时高层视图

  1、 SCA Spec API:由SCA Java Client and Implementation定义的API

  2、 API:扩展了SCA Spec API的Tuscany API

  3、 Core:运行时实现和SPI扩展机制

  4、 Extension:

  1. Component(英文原版有错误) implementation – 扩展语言支持:例如 BPEL,Python,C++,Ruby等

  2. Binding – 扩展协议支持:例如 Axis2, CXF等

  3. Interface Binding – 扩展服务定义类型:比如SWDL, Java等

  4. Databinding – 扩展数据支持:比如SDO, JAXB等

  5、 Host platforms:Tuscany运行时的主机环境

  <!--[if !vml]--><!--[endif]-->

  内部高层视图

  参考下图:

  <!--[if !vml]--><!--[endif]-->

  引导过程

  引导过程是由主机环境控制的。默认的实现是DefaultBootstrapper。运行时由某个成型的SCA Assembly XML文件序列化而来并处理服务装配。

  •   装载阶段处理SCDL并创建一个内存模型处理相应的运行时工件(例如组件componet,服务service,引用reference)
  •   连接阶段将对服务的引用连接起来

  SCA装配模型在Tuscany中是用一系列接口表示的。如下是些关键的元素。

  •   SCA component 是配置化的SCA实现的实例,它可以提供服务或消费服务。
  •   SCA service用于声明实现的可以被外部访问的服务
  •   SCA reference用于表示该实现对某些其他实现所提供的服务的依赖。该依赖的服务可以通过配置来指定。

  Implementation是用于描述软件技术的概念,例如在面向服务的应用中实现了一个或多个服务的Java 类,BEPL,XSLT转换,C++类。SCA composite也是implementaion。

  ComponentType涉及实现的可配置的方面。

  Interface定义了一个或多个业务功能。这些业务功能通过Service提供,通过Reference让其他组件使用。服务是由实现的接口来定义的。现在SCA支持两种接口类型系统:Java接口、SWDL portType

  SCA composite是SCA域中的compositon的基础单元。SCA Composite是组件的装配,服务、应用和wire都互相连接。

  SCA wire将服务引用连接到服务上。

  Binding是被服务和引用所使用的。引用使用绑定来描述访问机制,该机制用于访问连接的服务。服务使用绑定来描述客户程序调用服务的访问机制。

  Property是考虑到有的实现配置需要显式地设置数据值。该数据值由组件提供,当然也可能来源于容器composite的属性。

  <!--[if !vml]--><!--[endif]-->

  Contribution

  Tuscany运行时提供了一个框架来支持SCA的contribution。框架可以通过下列的两个扩展点来扩展:

  PackageProcessorExtensionPoint:它用于处理不同的包装格式或归档的扩展,可以是目录、Jar、OSGI bundle、EAR、War或Zip。

 ArtifactProcessorExtensionPoint:它用于处理特定工件类型的扩展,可以是SWDL,XSD,composite,java类后BEPL。

  <!--[if !vml]--><!--[endif]-->

  <!--[if !supportLists]-->l <!--[endif]-->包处理器会扫描安装了的contribution,并产生需要处理的工件列表。当前有支持文件夹/文件系统和 Jar contribution包。为了让contribution服务有效,包处理器要注册自己给包处理extension 。

  <!--[if !supportLists]-->l <!--[endif]-->工件处理器用于处理contribution上的每个有效的工件。为了让contribution服务有效,工件处理器要注册自己给工件处理extension 。对于每个工件,工件处理器分两个阶段被调用。

  <!--[if !supportLists]-->? <!--[endif]-->读阶段:这里是你读取工件(可以是一个文档、XML元素或类等等)的地方,组装描述工件的模型并返回它。SCA  contribution服务在所有注册了工件处理器的工件上调用ArtifactProcessor.read()。假如你的模型引用了其他的模型,不需要立刻装载那些模型,你只需要保持描述引用的信息,在resolve阶段,你将会把该信息转换成指向被引用模型的指针。注意:你没有必要在这个时刻完全读取并装载模型,你可以在以后来完成这些工作

  <!--[if !supportLists]-->? <!--[endif]-->解析阶段:这个阶段让你有机会解析对其他模型的引用。这个时刻,SCA contribution中所有的描述工件的模型都已经读取,并注册了工件解析器,准备被解析。

  <!--[if !supportLists]-->l <!--[endif]-->所有可部署的composite应该在现在准备部署到SCA域中。

  包处理器会扫描安装了的contribution,并产生需要处理的工件列表。当前有支持文件夹/文件系统和Jar contribution包。为了让contribution服务有效,包处理器要注册自己给包处理extension 。

  工件处理器用于处理contribution上的每个有效的工件。为了让contribution服务有效,工件处理器要注册自己给工件处理extension 。对于每个工件,工件处理器分两个阶段被调用。

  ? 读阶段:这里是你读取工件(可以是一个文档、XML元素或类等等)的地方,组装描述工件的模型并返回它。SCA contribution服务在所有注册了工件处理器的工件上调用ArtifactProcessor.read()。假如你的模型引用了其他的模型,不需要立刻装载那些模型,你只需要保持描述引用的信息,在resolve阶段,你将会把该信息转换成指向被引用模型的指针。注意:你没有必要在这个时刻完全读取并装载模型,你可以在以后来完成这些工作。

  ? 解析阶段:这个阶段让你有机会解析对其他模型的引用。这个时刻,SCA contribution中所有的描述工件的模型都已经读取,并注册了工件解析器,准备被解析。

  所有可部署的composite应该在现在准备部署到SCA域中。

  实现扩展

  实现扩展负责实现类型的支持,例如Java,和BEPL

  绑定扩展

  绑定扩展负责对绑定类型进行支持,例如web service,JMS,JSON-RPC和RMI

  接口扩展

  接口扩展负责接口类型的扩展,例如Java接口和WSDL 1.1 portType

  数据绑定扩展

关键字:Apache Tuscany SCA Java 架构

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站