发表于: 2019-10-14 22:46:01

1 783


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin) 
1、学习SCA
2、学习SOA
明天计划的事情:(一定要写非常细致的内容) 
1、完成任务9
 
遇到的问题:(遇到什么困难,怎么解决的) 
收获:(通过今天的学习,学到了什么知识)
1、SCA(Service Component Architecture)
1、全称为 服务组件架构、服务构件架构、服务组件体系结构(Service Component Architecture)简称为SCA。
2、作用:之前的 RMI 仅仅是可以提供远程的接口和实现类,而 SCA 将整个接口连根拔起 包装起来,从 实体类到Service,“打包”成一个完成的模块,然后将不同的模块 按照需要 组合起来。
3、服务组件:即上面的模块,这是 SCA 中的基本组成元素和基本构建单位,也是具体实现业务逻辑的地方。这就是一块砖,哪里需要哪里搬。
4、服务模块:这是SCA 中的运行单位。就是砖(组件)盖起来的大楼(项目)(Module),多个模块组合就构成了最终的实际使用的应用(project)。
(从这里看使用 IDEA 对于模块的命名 Module 和项目的命名 Project 就很舒服了)
5、导入和导出:实际应用中这个模块可能会用到那个模块的功能,或者自身的功能,也有可能会用到其他的应用的功能,这里的调用种类不同,所以就引入了两个 “端点”,导入,模块中的服务可以调用模块外的服务。导出,模块外的服务可以调用该模块中的组件。
导入端点:JMS绑定、WebService绑定、SCA绑定和无状态回话BEAN绑定。
导出端点:JMS绑定、WebService绑定和SCA绑定。
6、共享库:有些资源可以在不同模块之间共享,重复创建很麻烦,就使用公有库才存放这些资源。有些依赖的感觉,但是共享库中没有业务逻辑,只有数据定义、接口定义、数据映射和关系。
7、Standalone Reference:外部是不能直接使用模块中的组件的,不过只要把这个端点 Standalone Reference 的引用 连接到需要的组件的接口,外部就能通过这个引用的名称来调用相应的服务组件了。
8、模块总览

9、调用方式
静态调用:安全的方式,在编译时就做对类型的检查
MyServiceImpl myService = (MyServiceImpl)serviceManager.locateService("myService");
myService.someMethod("input");
在SCA 中,静态方式就是直接拿到实际 实现的接口类型。
动态调用:不安全的方式,但是灵活
Service myService = (Service)serviceManager.locateService("myService");
DataObject input = ...
myService.invoke("someMethod","input");
动态调用中使用 invoke方法的字符串参数的方式制定具体的方法名称,这在编译中不能发现错误。
另外所有参数都需要包装成 DataObject方式传递

实际上当提供的接口类型是 WSDL 类型的时候只能使用动态调用,而WSDL 是SCA中主要的接口方式,所以动态调用非常普遍。
2、SOA 面向服务编程
本质上面向服务和面向对象 面向过程 没有区别,但是看待问题的角度变了,或者说 每一个面向服务编程的部分 可以拆分为面向过程,然后每一个面向过程 拆分为面向对象。所以面向服务强调的是整体性、封装性、自包性。面向对象和过程考虑的是服务内部,而面向服务是用于服务之间的组合,往上更是对服务的管理。



返回列表 返回列表
评论

    分享到