Java分布式应用:大型分布式Java应用与SOA

151 阅读2分钟

第二部分 大型分布式Java应用与SOA

SOA是一种服务集成的架构思想,超越具体的技术和架构,又涵盖具体的技术和架构。SOA的最常见的解决方案是SCA、ESB。

Apache Tuscany 是SCA的具体实现技术,Apache Tuscany 提供开放式可扩展的运行环境以支持现在和将来的各种技术.这将解除应用程序对底层技术的依赖和偶合,使得跨技术网络平台的组装成为可能并大大简化.
多种构件实现, 包括Java, BPEL, XQuery, JavaScript
多种通讯协议, 包括RMI, Web Services, JSONRPC, Feed, EJB, CORBA
多种接口语言, 包括Java , WSDL
多种数据绑定, 包括XML, JavaBeans, JAXB, SDO, XMLBeans, JSON, AXIOM
优势:对于服务的统一交互支持比较好

Mule是ESB实现框架之一。和Tuscany不同的地方仅在配置文件和启动代码 。
支持:RMI、Web Service等
优势:需要解耦的方式的服务交互以及复杂多服务交互的场景。

SOA:发布服务、调用服务、支持通信以及交互方式
特点:
1.高性能、可扩展的轻量级框架;
2.对监测、安全控制、流量控制的支持:(Qos服务质量)
3.服务注册和服务仓库
4.开发工具

微服务

微服务架构是一种架构风格和架构思想,它提倡将系统业务按照功能拆分为更加细粒度的服务,即每一个服务都是一个独立的应用。这些应用对外提供公共API用于应用调度。
在这里插入图片描述
总结:
RPC:远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。PRC是跨语言跨系统的。
即解决了2个问题:
1.解决分布式系统中,服务之间的调用问题。
2.远程调用时,要能够像本地调用一样方便,让调用者感知不到远程调用的逻辑。

优势:
1.复杂度可控
2.可独立部署
3.技术选型灵活
4.易于容错
5.易于拓展
6.功能特定,相互关联度低。

不足:
1.分布式的创建和测试有一定的难度
2.部署较为复杂
3.多服务相对来说消耗内存

微服务与SOA的区别

在这里插入图片描述
在这里插入图片描述