发表于: 2017-06-03 22:43:48
1 1081
今天完成的事情:
完成任务8通过nginx负载均衡使用两个web端随机访问两个service
学习了解tuscany
明天计划的事情:
将原有的Spring RMI更改为Tuscany的RMI,WEB端更改为Tuscany的调用方式。
遇到的问题:
2.0的包1.5的包都不行.....
Exception in thread "main" org.oasisopen.sca.ServiceRuntimeException: No SCA contributions are found on the classpath
at org.apache.tuscany.sca.node.NodeFactory.createNode(NodeFactory.java:428)
at com.jnshu.client.StartService.main(StartService.java:13)
收获:
SCA 的基本概念以及 SCA 规范的具体内容并不在本文的范畴之内,有兴趣的读者可以通过一些相关文档了解相关内容,这也是阅读本文的基础。下面本文首先对 Tuscany 框架做一定的介绍。
Tuscany 是 Apache 的开源项目,它是 IBM、Oracle、SAP 等厂商联合成立的 SOA 标准化组织 -OSOA 支持下开发出的 SCA 框架,它既是开源界 SCA 的试金石,也是当前开源界最成熟的 SCA 框架之一。
Tuscany 基本架构
图 1 为 Tuscany 的基本架构图,从图中可以看出,作为一个轻量级 SCA 框架,Tuscany 提供了非常松散耦合的框架结构。主要有以下几个特点:
· Tuscany 是平台无关的可嵌入框架,可以在各种 Hosting Platform 上运行,如 Tomcat,JBoss,WAS 等 Web 容器上运行,也可以在 J2SE 环境下运行。
· Tuscany 的核心模块提供了 SCA 规范的 API 实现,Tuscany 系统的 SPI 接口,一些系统基本实现(如事件,工厂类,存储等),以及一整套扩展机制,这些扩展机制为 Tuscany 整合各个平台的服务提供了基础。
Tuscany 的扩展是完全松散耦合的,框架本身提供了大量的扩展实现,用户也可以在自己的系统中扩展 Tuscany 的实现,只需要遵循 Tuscany 的扩展规范以及 API 接口。 Tuscany 主要有以下几个方面的扩展:
· Implementation:SCA 组件(Component)的实现方式,一个 SCA 组件可以由各种语言或技术平台实现,如:POJO,EJB,Spring Bean,bpel 流程,各种脚本语言等等。
· Binding:是 SCA 的绑定(Binding)规范的实现,SCA 服务(Service)和引用(Reference)的绑定方式,即一个 SCA 服务可以暴露为 Web Service,Java RMI 服务,http 资源,jms 消息等等,一个 SCA 引用也可以通过 Web Service,RMI 调用,http 调用,jms 调用等方式调用远端服务。
· Databinding:数据绑定方式,这是 Tuscany 提出的概念,一般用与在 Binding 中定义参数的传输格式,比如 Web Service 的 Binding 一般用 XML 格式,SCA 的 Binding 一般用 SDO 格式,Jsonrpc 的 Binding 一般用 Json 格式等等。
· Interface:是 SCA 的接口(Interface)规范的实现,SCA 服务(Service)和引用(Reference)的接口暴露方式,一般有 Java,WSDL 等类型。
评论