Medicator和OSB (Oracle Service Bus)存在的目的,从架构的设计模式上看,和解耦多态等理念非常的相似。 通过Proxy代理的方式,把真正某个Service的实现进行隐藏,让依赖于Service的应用只依赖Service接口,而在接口后面Routing过去的Service,可以更方便的维护和修改。专业的术语Loosely-Coupling Services.
Service解耦设计原则:
Service的输入参数,越少越好,只输入必要的参数。过多的参数,以及通用的参数只会让Service更加难以维护。比如Credit Rate的Service,比较好的参数就只限定在Individual信息,而其他比如交易的Amount, 货物的Type等就最好不加入到输入参数里面。
Service的输出参数,也是越少越好,不要过多的把不必要的内部数据暴露在外面。
减少Service之间的依赖关系。Service之间可以互相组合成新的Service,但是这个组合尽量不要有业务上的组合。
Service里面的实现不要引用Share Global Data
尽量加入asynchronous message来解耦dependency. Request和Response不需要在同时完成是比较好的方法。
Service一般情况下不应该是有状态的,Client不应该依赖Service的状态而设计Functionality。 有状态的Service一般用在两种情况, 1是查询结果,返回的总数量多于每次获取的数量。2是Client和Service之间要有多次交互。
对于有状态的Service的管理,比较好的实践就是把State Management移除到service外面,用Medicator或者是OSB来实现。 Client-->Facade(Session Mgmnt)-->Native StateMgmnt
Medicator和OSB的应用场景:
Medicator是Service Component的一部分,和OSB不同,OSB是另外一个独立的应用在Service Componet之外。
Medicator:
* 一个Service里面有多个Service Component的时候,采用Medicator进行Routing.
* 校验SCA的Message. Service Component Assemblies.
* SCA内部数据类型,格式转换
* 通过Message Content来判断选择指定的Component
OSB: 相对SCA来说是独立的JVM
缺点是会有多余的响应时间, Client --> OSB --> SCA vs Client -- > SCA
优点是让所有公司内部Service,或者外部的Non-SCA service,都统一Suite,方便使用和管理
由于Client Code不是直接引用到目标Service Code,所以在Runtime很方便进行维护
OSB作为一个Service入口可以调节Request的负载均衡,避免真正的Service突然被海量Request给挤垮
Oracle Service Bus的主要功能:
Message Flow:
invoker的message首先到达的是Proxy Server
然后进入到Input Pipeline, 进行Format, Validation, Logging, Enrich等操作。
之后进入到Routing Step,用来决定由哪个Business Service来执行这个Request
最后,被选中的Business Service调用真正的Service来响应。
Response的信息同样要经过Format, Logging, Enrich等操作才到达Invoker.
Service Endpoint Vitalization:
* 把真正的Service隐藏在Business Service后面 ,配置Business Service的Protocal,让invoker可以采用各种不同的Protocal访问真正Service
* 添加了负载均衡的策略
* 添加Retry的策略,超时策略等
Monitoring:
提供非常强大的功能为所有失败的响应生成Logging, Alert或者是Report.
分享到:
相关推荐
2. **Oracle SOA Suite组件**:书中会详细讲解Oracle SOA Suite包含的主要组件,如BPEL Process Manager(用于业务流程执行)、ESB(Enterprise Service Bus,企业服务总线)和OSB(Oracle Service Bus,Oracle的...
Oracle SOA Suite是一款全面的企业服务总线(ESB)和业务流程管理(BPM)解决方案,由Oracle公司提供。它为企业提供了一整套工具和服务,用于构建、部署和管理面向服务的架构(SOA)。本篇文章将深入探讨Oracle SOA ...
- OSB: `ofm_osb_generic_11.1.1.5.0_disk1_1of1.zip` - SOA Suite: `ofm_soa_generic_11.1.1.6.0_disk1_1of2.zip` 和 `ofm_soa_generic_11.1.1.6.0_disk1_2of2.zip` - RCU: `ofm_rcu_win_11.1.1.6.0_disk1_1of1....
Oracle SOA Suite是一款全面的企业服务总线(ESB)和业务流程管理(BPM)解决方案,由Oracle公司提供。它为企业提供了一整套工具和服务,用于构建、部署和管理面向服务的架构(SOA)。Oracle SOA Suite的核心目标是...
Oracle SOA Suite 11g是甲骨文公司推出的一个集成解决方案,它为构建、部署、管理服务导向架构(SOA)中的服务和业务流程提供了全面的平台支持。SOA本身是一个设计原则,目的是提高业务流程的敏捷性、可重用性和解耦...
Oracle SOA Suite 12c 是一款全面的企业服务总线(ESB)和业务流程管理(BPM)解决方案,用于构建、集成和管理企业的服务和应用程序。它支持企业级的跨系统集成,允许灵活地连接不同的IT资产,实现业务流程自动化,...
6. **Oracle Developer Tools for Visual Studio**:提供对Oracle SOA Suite的开发支持,方便开发者在熟悉的环境中进行SOA开发。 **Oracle SOA路线图** Oracle的SOA路线图通常会涉及以下几个方面: 1. **云化**:...
Oracle Application Server 10g Release 3 (10.1.3.1.0) provides the Oracle SOA Suite, which is a complete set of service infrastructure components for creating, deploying, and managing Service Oriented ...
本文将深入探讨SOA的概念、优势、面临的挑战及其与业务流程的关系,并重点介绍Oracle SOA Suite 11g如何解决SOA实施中的难题。 ### SOA概念 SOA的基本思想是将复杂的业务流程分解为一系列小型、独立的服务单元。每...
8. **集成与互操作性**:介绍OSB与其他Oracle产品(如BPEL、SOA Suite)的集成,以及与非Oracle系统的互操作性。 9. **最佳实践**:提供关于代码复用、服务治理、性能优化和版本控制等方面的最佳实践建议。 10. **...
Oracle 11g的SOA Suite是一套全面的集成解决方案,包括了用于构建、部署和管理SOA应用的工具和服务。主要组件有: - **BPEL(Business Process Execution Language)**:用于定义和执行业务流程。 - **OSB(Oracle ...
Oracle Service Bus(简称OSB)是Oracle SOA Suite的重要组成部分之一,它提供了一个灵活、可扩展的服务中介层,用于连接不同的应用程序和服务。本文档旨在详细介绍在特定环境下OSB的安装与部署过程。 #### 二、...
- **集成能力**:提供了强大的集成工具和服务,如Oracle Service Bus (OSB)和Oracle Business Process Management (BPM),使企业能够在不同的系统之间高效地交换数据和服务。 - **业务流程管理**:通过Oracle BPM ...
WebLogic 11g是Oracle Fusion Middleware 11g的核心应用服务器,支持包括Oracle WebCenter Suite在内的多种SOA框架组件。 - **安装前准备**:确保已完成数据库和RCU的安装配置。 - **安装过程**:按照WebLogic ...
此外,Oracle的工作流产品,如Oracle Business Process Management Suite(BPM),帮助企业自动化业务流程,提高效率。 Oracle的数据库产品,尤其是Oracle Database,也是其中间件生态的重要部分。数据库提供了一个...
7. **Oracle SOA Suite**: 提供一套完整的SOA和BPM解决方案,支持各种类型的业务流程,包括系统为中心、人工为中心、文档为中心和决策为中心的流程。 8. **Oracle Business Process Manager (BPM)**: 支持业务流程...