今天完成的任务
1.对SOA和SCA的理解
1)SOA中文意思是面向服务的架构体系,是一种思想。它把应用程序的不同功能单元(也就是接口)集中起来,以中立的方式去定义。而接口的实现可以采用不同的编程语言(java、C、C#)实现,这样就可以使得采用不同编程语言实现的接口可以通过统一的方式进行交互。
2)SCA中文意思是服务组件架构体系,SCA是SOA的一种实现。它把各种接口作为组件,整合到一个大的组件中。
2.对Tuscany的理解
Tuscany是基于SCA标准的开源项目,它是一个轻量级的SCA框架。Tuscany提供了非常松散耦合的框架结构,它是模块化且易于扩展的。Tuscany的组件可以使用POJO或者Spring Bean实现。
3.Tuscany的demo
这里的demo是一个计算器,暂时只提供四则远算的加法,组件使用普通的接口和实现类编写。先展示一下完整的项目结构:
.png)

1)新建一个由maven管理的java项目,在pom中引入如下3个jar包,使用的是2.0.1版本的Tuscany :
.png)

2)编写一个add接口以及实现类
A.接口
B.实现类
.png)

3)编写Calculator接口以及实现类
A.接口
B.实现类
.png)

4)tuscany的配置文件
.png)

5)主程序
.png)

6)运行结果
上面的demo知识实现了服务的本地装配,并没有暴露给远程调用。下面对demo进行一次升级,使服务可以通过远程调用。
4.实现服务的远程调用
也就是暴露服务,跟RMI一样,把服务绑定到一个uri上(rmi://host:port/serviceName),然后添加到注册表。
修改Tuscany的配置文件,添加下图中红框内容:
然后把原来的主程序拆分成两个主程序,分别作为service和client
A. service
B.client
C.此时的项目结构
同样的,也需要先启动service,再运行client
遇到的问题
Tuscany 在1年前停止了维护,而且网上找到的资料基本都是6.7年前的,我搜了下,现在好像是阿里的dubbo比较流行。现在学tuscany是因为我们复盘项目用的tuscany?
收获
1.对SOA、SCA有了了解
2.会用java实现一个Tuscany的demo
3.写Tuscany配置文件的时候会报错,但是不需要处理(可能是idea对 *.composite 类型的文件不太友好)
明天的计划
1.完成Spring、Tuscany的整合
2.把任务8的Spring RMI换成Spring+Tuscany
进度
当前进度 任务9步骤1
任务开始时间 2017.10.12
预计提交时间 2017.10.14
评论