发表于: 2017-07-18 13:47:47
1 1108
今天完成的:
看了一些Tuscany的简单配置。
收获:
1.常用的分布式通信方式技术有EJB/RMI/RPC/JMS/WEB SERVICE
Java中的RPC框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等。
rmi也是远程方法调用,似乎和RPC一样都是调用远程的方法,我们可以把RMI看作是用java语言实现了RPC协议,由于RPC不支持对象通信,这也是RMI比RPC的优越之处,支持对象传输。
它遵循的不是SOAP协议,而是JRMP(java remote message protocol)转为java对象所制定的一个协议,可以运行在任何用java语言写的系统上,具有跨平台特性,它不能跨语言。
既然用只支持java那么它也有了java对象的很多特性,如果垃圾回收、面向对象等。
RMI 采用stubs (客户机)和 skeletons (框架)来进行远程对象(remote object)的通讯。stub 充当远程对象的客户端代理,有着和远程对象相同的远程接口,远程对象的调用实际是通过调用该对象的客户端代理对象stub来完成的,效果和调用本地对象一样。
传输的数据一般是java对象,而不是XML格式的数据。
优点:支持分布式对象、跨平台,stubs/skeletons机制;缺点:不能跨语言。
服务端和客户端异构的话最好使用web service
遇到的问题:
1.Task8服务器的问题还在研究。
2.Tuscany远程访问的helloworld失败了。还没搞清楚tuscany是什么,和rmi类似,但不一样,有点迷糊。
<?xml version="1.0" encoding="UTF-8"?>
<composite
xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
targetNamespace="http://calc"
xmlns:c="http://calc"
name="StudentService">
<component name="StudentServiceComponent">
<implementation.java location="com.jnshu.serviceImpl.StudentServiceImpl" />
<service name= "StudentService">
<tuscany:binding.rmi uri="rmi://localhost:8031/StudentService" />
</service>
</component >
</composite>
那两句红色的namespace根本找不到,16年以前就停止支持了。
<?xml version="1.0" encoding="UTF-8"?>
<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
targetNamespace="http://myws"
name="myws">
<component name="HelloComponent">
<implementation.java class="myws.HelloServiceImpl"/>
<service name="HelloService">
<binding.ws uri="http://localhost:8080/HelloComponent/HelloService"/>
</service>
</component>
</composite>
换了一个,标签又报错。还有.composite文件,配置起来很奇怪,要慢慢研究。
明天的计划:
评论