SOA是一种架构方法,它打破传统的单机模式,将繁杂的系统拆解为多个独立的应用,各个应用专注在开发某一专业领域功能。
比如合同系统关注在合同的起草、审签、盖章、履行、办结。而采购系统关注在采购需求,方案,结果,下单等跟采购相关的业务。当系统间需要通信时,比如采购下单时需要关联合同信息,此时就可以通过消费SOA平台上部署的合同查询服务进行。
SOA是各个系统连接的通道,它摒弃了不同系统接口的差异。系统服务在SOA注册后,权限内的各系统可以调用这个标准服务。
分同步和异步两种。
同步:即消费方接收并处理数据后,才会释放线程。如果消费方接收处理数据的时间过长,线程长时间等待,会导致服务超时。一般用于实时的业务操作需要的服务。
异步:仅仅返回消息接收信息即可,不需等待反馈结果。
查询类服务、导入类服务、验证类服务、路由服务
1.标准的Webservice服务
消费方通过调用其他业务系统提供的标准webservice服务,来完成数据传递。
实现过程:服务提供方将服务注册在SOA平台上,消费方在权限范围内直接调用即可。
2.BPEL流程服务方式
消费方通过触发BPEL流程来调用其他系统提供的标准webservice服务。
适用场景:实时性要求高和数据量不大。
实现过程:服务消费方通过存储过程或AQ消息队列等触发技术,被部署在SOA上的Adapter监听,通过BPEL流程调用其他业务系统提供的服务,经过安全校验和数据校验,将完成的结果通过SOA平台返回给服务消费方。
3.ODI服务方式
消费方通过触发BPEL流程调用其它业务系统提供的ODI服务来完成数据传递和返回的闭环接口流程。
适用场景:大数据量、实时性要求不高。ORACLE套件推荐适用ODI产品。
实现过程:
正向传输,数据发送方通过webservice标准调用方式,或者通过存储过程或AQ消息队列等触发技术被部署在SOA平台上的Adapter监听,通过BPLE流程调用数据接收方提供的ODI服务,由ODI将数据发送方接口表中的数据传递给数据接收方的接口表,接口表在接收数据的同时还要将数据写进接口审计表,数据接收方经过安全校验和数据校验后,将接口表里的数据导入生产表中。
反向传输,当数据接收方经过安全校验和数据校验后,将导入生产表的成功与否标志写进接收方的接口表,还要将数据写进接口审计表。再通过Webservice标准调用方式,或者通过存储过程或是AQ消息队列等触发技术被部署在SOA上的Adapter监听,通过BPEL流程调用数据发送方提供的ODI回写服务,由ODI将数据接收方接口表中的导入结果数据回传给数据发送方的接口表,发送方接口表在接收回写数据的同时,还要将回写数据写入发送方的接口审计表,数据发送方定时查询数据发送状态,整个数据完成闭环。