大家好,我是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服务: 段文凯师兄的日报.

什么是tuscany相关推荐

  1. Apache Tuscany 宣布停止维护

    Apache Tuscany 宣布停止维护,因为 Attic 已经不再活动.Apache Tuscany提供一个面向服务的核心架构以支持简单快速地开发和运行面向服务的应用程序.其轻巧的运行环境为嵌入或 ...

  2. 【Web Service】Apache Tuscany发布SOAP

    Apache Tuscany 地址:http://tuscany.apache.org 准备工作: >下载SCA-Java-2.0包 地址:http://tuscany.apache.org/s ...

  3. Tuscany SCA 发布Web Service

    有段时间没有学习SOA了,最近偶然碰到一个例子,运行修改理解后发布到此. 在前面的博客中有提到用axis2发布web service,借用了插件,并且步骤较繁多,现在来看下tuscany简单地通过配置 ...

  4. SOA(在Tuscany 中开发web service)

    一.相关概念 1.SOA(service oriented architecture)面向服务的架构. 2.SCA(service component architecture,服务构建架构)提供了一 ...

  5. 什么是Tuscany?

    大家好,我是IT修真院北京分院第31期的学员,一枚正直纯洁善良的JAVA程序员.今天给大家分享一下,修真院官网JAVA任务9的深度思考--什么是Tuscany? 什么是TUSCANY? 开源 Apac ...

  6. 对tuscany中domain、cloud、node、composite关系的理解

    tuscany是对sca.sdo标准的实现,sca完成服务的封装和wire,sdo完成数据的统一. sca是一种ESB实现方式 其实,sca完成的功能远远不止封装服务那么简单.我们在使用sca的过程中 ...

  7. Tuscany是什么?

    Tuscany是什么?为什么要用Tuscany命名SCA规范的实现? 收藏 <script type="text/javascript"> document.body. ...

  8. Tuscany 的说明

    最近项目的需要开始研究tuscany.tuscany作为apache对soa的实现的优秀开源产品.对tuscany的一些特性及使用说明做一些总结. Tuscany提供了一种松散耦合的集成策略.其中主要 ...

  9. Tuscany是什么?为什么要用Tuscany命名SCA规范的实现?

    一.Tuscany概况 这里拥有欧洲风景最美丽的城市,这里是时尚优雅的发源地,这里风景迷人,美女如云.这些都为世界上最伟大的艺术家们提供了源源不断的灵感.        这就是意大利最与众不同的地区. ...

  10. Tuscany SCA

    http://tuscany.apache.org/getting-started-with-tuscany.html

最新文章

  1. 万字长文解读运营商搏击5G:一场比拼财力的三国杀
  2. Web安全实践(2)基于http的web架构剖析
  3. 解读 C# 中的正则表达式
  4. Graph Normalization (GN):为图神经网络学习一个有效的图归一化
  5. 【Q】之防火墙的SNAT DANT原理应用
  6. 转:深度学习与自然语言处理之五:从RNN到LSTM
  7. 修改cockpit端口
  8. c语言给定n个矩形及其长和宽,七年级数学秋季学期期末考试试题
  9. Android 学习笔记(十五) Activity-GalleryView
  10. 迷茫的青春,迷茫的方向
  11. python计算闰年
  12. 电视机和计算机的显示器各使用什么扫描方式,扫描方式
  13. Orge配置Debug - 在Mac上利用Homebrew安装指定版本的Cmake
  14. LIO-SAM框架:点云预处理前端---畸变矫正及提取有效点云
  15. drcom宽带认证登录超时_DrCOM客户端常见问题解决方法
  16. Spark on Hive Hive on Spark傻傻分不清?
  17. “发烧请假”是面照妖镜,聊聊我以前遇到的奇葩领导
  18. ROC曲线的通俗理解
  19. html中onfocus和onblur的使用
  20. 程序员成长之旅——C语言三子棋

热门文章

  1. 进程篇——了解Makefile文件
  2. matlab常用函数与常用指令大全
  3. GPS从入门到放弃(三)、GPS坐标系
  4. Spring入门自学
  5. WMS设计开发方法及选购思路
  6. mysql数据库select语句用法_mysql学习笔记之完整的select语句用法实例详解
  7. UE4 移动端最小包
  8. ssm毕设项目医院预约挂号管理系统q9ig2(java+VUE+Mybatis+Maven+Mysql+sprnig)
  9. 利用Apple Developer申请苹果开发者账号(支付宝微信付款)
  10. 【初学者】SDK的理解(客户端SDK和服务器端SDK)