发表于: 2017-11-02 22:29:09

2 874


今日完成:

    昨天的demo完成的很费劲,且只是本地自己调用自己,并没有像RMI一样实现客户端与服务端的分离,但是因为目前概念还是很模糊,先缕一缕重要的概念,待会儿能方便的往下做.


先说下SCA和SOA


SOA:Service Oriented Architecture 面向服务的体系结构。

SOA是一种设计方法,其中包含多个服务,而服务之间通过配合最终提供一系列功能。

一个服务通常以独立的形式存在于操作系统进程中。

服务之间通过网络调用,而非采用进程内调用的方式进行通信




SCA:Service Component Architecture 服务组件体系结构

顾名思义,服务组件体系结构是一个组件模型。面向服务的粗粒度构件被表示为组件。组件描述它们所提供和所依赖或引用的服务。组件还指向提供服务实现的代码块。组件通过连接联系在一起。组件可以通过公开可配置的属性来定制它们的行为。策略和服务质量意图用于扩展服务或引用(称为交互意图)以及组件(称为实现意图),以便配置由 SCA 运行时提供的附加语义。



概念很是晦涩难懂,看了一上午,贴2张图,大致就是这么个原理了.







OK,正式开工!


这里要注意2个问题,一个是像实现RMI一样分为服务端和客户端,二是Spring和Tuscany集成整合的问题.


先解决第一个..

配置文件和主启动程序如下

一次报错说没有@Remotable

这个时候机智的查了一下官方的中文API

http://tuscany.apache.org/sca.data/SCA_JavaAnnotationsAndAPIs%E4%B8%AD%E6%96%87%E7%89%88.pdf

填上注解


二次报错

机智的猜测service 的name要保持注解下类名称一致

修改


三次报错

然后像一个弱智 弄了4小时 最后发现缺少依赖JAR包


启动成功

监听端口查看


建立客户端调用测试



服务端成功打印








那么之后就是在复盘前最深的坑了,Spring 集成 Tuscany,Tusacny版本停留在了12年左右的2.0.1在这里我使用的是2.0,然而Spring却是日新月异版本不断更迭,那么是否会造成JAR包无法使用的问题呢?我的猜测是肯定的!


这里我们先查看一下Spring在2012-2013左右的版本,大都集中在3.2左右


查看一下依赖关系,呵呵,非常明确的告诉了你3.2也别想了最多3.0.5了,更别提4.1.3了,别瞎忙活了!




接着不断尝试,从下午1点到晚上11点时,终于测试成功!


第一步,因为待会儿我们服务端运行的是我们的XXXXX.composite配置文件,所以我们要把Spring的配置文件加载到我们Tuscany配置文件中.



第二步,在spring配置文件中注册Tuscany服务器以及对应的接口实现,这里因为在接口实现类中已经注入IOC,直接拿就行了.(注意点 DTD文件约束的加入)


第三步,启动我们的服务端



客户端调用成功!


说下几个坑,第一约束文件引入,第二服务器名称一致性,第三JAR相关依赖和支持版本问题,第四还是@Remotable注册远程接口,第五Javen Bean的序列化.




后面的就轻车熟路了,这里客户端调用的方法和任务8相同


客户端老样子

Controller就改了一个用来测试

启动2个Tomcat 2个Tuscany 启动nginx


测试两个Tomcat窗口


访问80

关掉18080和9999端口对应程序,测试OK




提交task9




明日计划:准备复盘,还有之前落下的没实现的和JAVA基础IO和多线程那块,补!


问题:无


收获:解决问题的效率,速度,对即将发生问题的预处理,每天都在提升,经历的是痛苦,收获的却是快乐,或许这就是程序员吧!



返回列表 返回列表
评论

    分享到