什么是tuscany

大家好,我是IT修真院武汉分院第14期的学员,一枚正直纯洁善良的JAVA程序员。今天给大家分享一下,修真院官网JAVA任务9的知识点——Tusacny

什么是TUSCANY?
要了解Tuscany 先得知道SOA, SCA.

SOA它是面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来, 但它只定义了文本规范, 也就是一种软件设计思想, 具体的实现由 SCA 规范定义.

而Tuscany就是一套开源的SCA框架模型. Apache Tuscany 为 SCA 运行时提供了一个全面的基础架构。 虽然Tuscany截止到2016/05/28日后官方已经不维护了, 也就是有任何新问题或Bug都需要自己解决, 但是了解其设计思想对我们理解现在很流行的微服务框架是有好处的.

SCA 介绍

SCA(Service Component Architecture)中文翻译为“服务组件架构”,是一种全新的软件架构思想。

SCA中,最重要的一个概念是Service----服务,它的内涵式独立于具体的技术。因此,SCA不会称之为 Java组件架构,或Web Service 组件架构。所谓的具体技术,主要有两层含义:一是程序语言,而是传输协议。

现有的组件是和传输协议紧密耦合的。比如EJB组件采用的是RMI传输协议,Web Service组件采用的是SOAP传输协议。SCA组件则能自由地绑定各种传输协议。
SCA是对目前组件编程的进一步升华,其目标是让服务组件能自由绑定各种传输协议,集成其他的组建与服务。

SCA与传统的业务组件最大区别在于SCA实现了两个功能:一是组件和传输协议的分离,二是接口和实现语言的分离。

SCA的本质是一种软件架构思想,SCA架构是独立于程序语言的SOA架构。

SCA的目标是创建一个可集成服务组件的运行环境。

服务组件 : 服务组件是SCA架构的基本单元,SCA是以服务组件为基本单元来进行集成的。它主要包括接口、实现、引用、属性等部分。可以从一下侧面来描述服务组件。

a)、是在一个模块(Composit)内的通过配置生成的一个实现的实例。
b)、多个组件可以用同一个实现(思考:一个Java的对象可以同时实现多个接口)。
c)、提供服务和消费服务(组件可以调用别的组件的服务)。
d)、通过配置来实现对象的属性值(配置节点为property)。

e)、组件通过连线(Wire)来设置服务引用。连线可以连接到别的组件的服务,也可以连接到模块的引用(模块的概念后面会详细讲述)。

服务组件的结构图:


上图,分别讲述服务组成的各个部分:

a)、服务(Service),用来让其他组件调用。是一个接口。如果是基于Java的SCA,它就是Java的接口;也可以是WSDL的ProtType接口,目前只有这两种形式。
b)、组件实现(Implementation),实现所创建的服务,对Java来说,就是接口的实现类。
c)、引用(Reference),一个组件可能需要调用其他组件,需要创建于igeqita组件的引用。对Java来说,就是其他组件的Java接口。

d)、属性(Property),对组件实现的一种属性参数注入。

对一个服务组件来说,服务和实现时必须的,引用和属性是非必需的

服务模块: SCA是通过模块(Composite)将SCA组件集成在一起的。

SCA的模块是实际上是将SCA组件(做为零件)重新组合集成度更高的组建,从整体看来SCA模块和SCA组件的结构式一致的。从构成组件的“零件”角度看,SCA模块是用了组件作为零部件重新组装为新的组件(模块)

SCA模块的基本原理图:



3.常见问题

Tuscany的完整例子很少, 建议直接看师兄们的日报, 有人带最好, 这里面的坑非常多, 这里实现一个官方示例 计算器, 讲一讲Tuscany里面会可能会遇到的问题.

为什么会有 SCADomain.newInstance 和 NodeFactory.newInstance() 两种启动方式? 

如何创建服务组件?

如何发布服务模块?

4.解决方案

5.编码实战

6.扩展思考

一个项目如何拆分? core, service, web 中都分别存放哪些组件.

7.参考文献
SOA介绍 : http://blog.51cto.com/lavasoft/163782

通过监听器发布SCA服务: 段文凯师兄的日报.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值