《分布式java运用:基础与实践》笔记2
来源:互联网 发布:苹果电脑安装网页软件 编辑:程序博客网 时间:2024/06/05 13:19
第二章、大型分布式java应用与SOA
随着业务复杂性的上升,单系统无法满足需求。需要多系统细化分工!拆分系统必然带来系统之间信息交互的问题。简单地办法是统一交互标准——SOA。
SOA全称是面向服务架构。它强调系统间用标准的服务方式进行交互,各系统允许采用不同语言、不同框架,但交互必须以标准的服务进行。
挑战:
服务器多级调用带来的延时;
调试/跟踪困难;
更高的安全监测需求;
现有应用的移植;
Qos支持(限制流量、机器资源分配)
高可用、可伸缩。
多版本依赖管理。
综合,实现一个大型应用的SOA平台应满足:
1) 统一服务交互方式,实现现有应用无缝集成。
2) 提供调试跟踪支持。
3) 依赖管理;
4) 高可用可伸缩。
2.1基于SCA实现SOA
SCA(Service Component Architecture):大厂商联合组织制定的SOA具体实现规范。
为了减少系统实现侵入,采用XML定义Component映射到系统本身接口的实现上。SCA允许多种映射方式。
SCA提供了清晰的发布服务、调用服务和无缝与现有应用的集成。调试跟踪、依赖管理、高性能高可用未定义。
2.2、基于ESB实现SOA
可以认为ESB只是个概念:基于消息中间件来实现系统间的交互。5要素:
标准的消息通信格式;
消息路由;
支持多种信息交互类型;
支持多种网络协议;
支持多种数据格式并相互转换。
综述:消息模式承担了统一服务交互,支持同步异步交互。调试跟踪没定义;通过消息流转判断依赖关系。高性能高可用取决框架。
2.3、基于Tuscany实现SOA
Tuscany是IBM和Bea捐献给Apache的产品,也是最常用的SCA实现框架之一。
支持更多的发布方式:Webserver、ajax、corba、rmi等等
调用服务:和SCA一样支持更多应用集成方式,
支持的通信及交互方式:比SCA支持更多的通信方式
综述:调试跟踪会把错误带到调用端;依赖管理、高性能高可用没有在SCA上扩展。
2.4、基于Mule实现SOA
Mule是常用ESB实现框架之一。
发布服务:配置上较为简单,支持以WebService、jms等方式将Spring和普通java对象发布为Mule Service,相对Tuscany弱了。
调用服务:相对麻烦,由于ESB强调以消息方式发送给总线决定的。
通信方式:Webservice和jms两种。
交互方式:Mule可明确指定synchronous的参数实现同步通信。在不指定的情况下默认异步。
调试跟踪:未做特别处理。
依赖管理:有开源服务治理框架MuleGalaxy。
高性能高可用:无专门处理。
总结
SCA及其实现框架对于服务的统一交互支持很好。ESB则适用于需要解耦方式的服务交互,及复杂的多服务交互场景。共通地,都需要自定义扩展:调试跟踪、依赖管理、高性能高可用
- 《分布式java运用:基础与实践》笔记2
- 《分布式java运用:基础与实践》笔记1
- 《分布式java应用:基础与实践》笔记3
- 分布式Java应用:基础与实践
- Java_分布式java应用:基础与实践
- 分布式JAVA应用基础与实践买到了
- 《分布式Java应用:基础与实践》扩展阅读链接
- 读书总结——《分布式java应用 基础与实践》
- 分布式java应用-基础与实践(林昊著)下载地址
- 分布式JAVA应用中设计到的知识点-转自《分布式JAVA应用:基础与实践》
- [课本划重点]分布式java应用基础和实践-第四章 分布式java应用与sun jdk类库(1)
- <大型分布式网站架构设计与实践>笔记 2、分布式系统基础设施
- tcp nio 服务端、客户端例子--参考《分布式Java应用:基础与实践》
- 《分布式JAVA应用 基础与实践》 第六章 构建高可用的系统
- 《分布式JAVA应用 基础与实践》 第七章 构建可伸缩的系统
- 《分布式JAVA应用 基础与实践》 第七章 构建可伸缩的系统
- 《分布式JAVA应用 基础与实践》 第七章 构建可伸缩的系统
- 《分布式JAVA应用 基础与实践》 第六章 构建高可用的系统
- MD5加密
- 防刷新页面弹框,一般都用这个弹框
- Android---08---布局与单位
- VS2008C#连接SQLserver2008示例
- 微信APP支付接口文档
- 《分布式java运用:基础与实践》笔记2
- 深入理解Java内存模型 volatile
- Java 构造函数中的super()
- RNN-RBM 网络架构及程序解读
- JavaScript 函数定义
- 数据类型与数组运算
- HTTPS协议,SSL协议及完整交互过程
- ASP.NET web.config中的代码
- Sqrt(x)