今天和老板讨论了一天的SOA,虽然自己本来的认识不深,但讨论了一下午,感觉还是收获挺多的,原来一位ESB是多么深奥的东西,今天看来也并不像想象中的那样的复杂!!
以下仅为个人观点,SOA架构,简单点说就是有这么三个角色,服务消费者,服务提供者,再加服务注册中心。服务提供者向注册中心发布服务,服务消费者通过查询,即在注册中心查找相应的服务,然后获取wsdl(服务的描述文档,包括了服务接口的名称,参数,以及服务的地址及端口号),然后向服务提供者发送SOAP消息,来调用服务。
但是 我们想做一个数据交换的平台。那么这里牵扯的东西就特别的多了,诸如SOAP,webservice,wsdl,uddi,xml,xstl等等,还要用到企业 服务总线,这里我主要说一下的原理
首先服务提供者产生自己的服务,但为了安全性,也为了能让向调用该服务的人找到该服务,需要把该服务注册到uddi服务注册中心,但是为了安全,服务注册到数据交换中心以后,并不是真正的把自己完全的发布出去,而是把一个服务代理发布出去,服务消费者想使用该服务,必须直接访问服务代理(其实就是企业服务总线的入站服务)当服务消费者发送消息给数据交换中心,数据交换中心通过端口监听器来监听是否又发给自己的消息,如果有则立即转发给相应的目标队列,然后有出站服务转给相应的服务(出站服务在服务注册的时候已经配置好了出站服务以及目标队列,而且在所有工作做完以后,在产生一个入站服务发布出去,供服务消费者调用)。
soa架构和单纯的web service的根本区别就在于,soa灵活,易于改动,安全好等等优点;
SOA架构中加入了一个消息转发器,通过该转发器实现服务的映射,防止恶意攻击。该转发器实现了消息的转发,数据格式的转化,服务的注册和数据
服务层服务器 |
服务注册 |
服务发布 |
消息侦听 |
消息路由 |
权限控制 |
服务监控 |
负载均衡 |
应用系统 |
应用系统 |
应用系统 |
应用系统 |
服务代理 |
服务代理 |
服务代理 |
服务代理 |