Oracle SOA简介
Oracle的SOA方案的一个现实驱动力来自于在收购了多家应用厂商后Oracle需要使用一个先进的架构和平台灵活无缝地把这些应用集成起来这个架构就是Fusion Architecture这个架构从理念上的确融合了以前Siebel和Peoplesoft的一些先进思想同时这个平台也将是Oracle的下一代融合应用产品的基础技术平台当然这个平台的核心思想是面向服务我们将会介绍Oracle的一系列的SOA的基础概念以及Oracle会如何使用这个平台来整合Oracle的应用产品
SOA标准简介
SOA的起源和核心都在于Web服务简单来说Web服务就是使用封装的XML消息在两个通话方之间进行交流的一种方式SOA使用了大量的通用协议来完成所谓面向服务架构的工作如下图
消息SOA使用XML来传递消息XML消息的封装使用SOAP简单对象协议进行封装
传输协议封装后的XML消息使用HTTPJMS或SMTP协议进行传输
Web服务描述Web服务的一个重要功能是如何描述Web服务从而使第三方可以很容易的调用该服务Web服务的描述使用WSDL语言(也是XML格式)进行描述
UDDI则是公共服务注册和发布的一个中心本意是一个企业的所有服务都可以在这里注册和发布以利于寻找所需要的服务
而要把多个Web服务串起来完成一定的功能就是BPELWS的主要目的一个最简单的就是网上购物的时候必须调用银行的支付服务支付成功才能进行货物的交付更加复杂的例子就是可能完成一个商业流程需要调用到多个系统的不同功能如ordercash流程包含了如何从CRM系统的订单服务一直到财务系统里检查客户的信用以及在物流系统里做发运最终形成发票的跨多个系统的一个流程这些就是BPEL需要关注的最主要的场景
Web服务的质量服务(Qos)主要是从web服务的可靠性Web服务使用的安全性Web服务如何处理分布式交易Web服务如何跨越多个endpoint共享上下文等方面的一些协议来规范Web服务
Oracle SOA套件简介
Oracle的SOA技术产品叫SOA套件(Oracle SOA Suite)不仅可以运行在Oracle自己的JEE平台还可以运行于其他中间件厂商(BEAIBM)的中间件平台需要注意的是Oracle的融合中间件架构并不仅仅包含SOA套件而且还包含了一系列其他的产品
以下是SOA套件的一个结构图
Jdeveloper是和Oracle产品紧密联系的一个免费的开发工具如果是要使用Oracle的平台进行开发没有什么开发工具能够比Jdeveloper更加方便和高效了Jdeveloper已经包含了大部分常见Oracle产品开发所需要类库也有一个图形的能够自动提示和完成语句的助手以及一个非常重要的能够跟蹤到产品内部的调试环境等无论是进行普通JEE开发还是BPEL/ESB开发任务都能够使用Jdeveloper很好完成
Oracle 的BPEL Process Manager是包含了常见的web服务流程化开发的所有通用组件还包含了人机交互工作流的开发机制以及提供了大量的进行各种系统连接到Web服务环境的适配器(如数据库FTP服务器商业打包应用Oracle iSAP等)而ESB则是作为把各种应用包括传统应用暴露成web服务接入SOA环境以及虚拟化接入系统的一个平台当一个系统接入ESB后则可以在不改变BPEL流程的情况下把一个系统换成另一个系统
Web Service Manager(WSM)是一个专门针对Web服务安全设计的产品提供了一个企业Web服务的安全和认证的统一的接口和平台所有的Web服务可以先注册到该平台然后由WSM把该服务发布出去(可以换成另一个服务名)这样当无论什么用户需要访问该Web服务的时候都需要经过WSM这种统一的认证和授权才能够访问到该服务这就解决了各个厂商不同中间件平台上各自独立的Web服务的安全的管理模式
另一个产品BAM则是一个实时监控业务的平台该产品有一个非常华丽的外观(据说看过该产品界面的用户都会被吸引住)提供实时的商业智能的功能和根据实时的业务情况(可以定义阈值)进行反应(调用一个Web服务)的功能下面是该产品的一个截图
上面图里的东西是会根据业务量变化而实时变化的哦还是比较好看的!