SOA架构的目的及价值

1.SOA存在的目的?

传统的java类库要解决是的代码的复用java

而SOA架构的目的是服务复用,由于java代码的复用是无状态,而服务的重用则是有状态的(此处的无状态或是说跟环境相关的,如中国移动提供一个短信发送网关,那么咱们经过这个网关便可以发送短信,这就是服务),而且通常还有跨语言的重用要求(这样能够更加的保障投资价值,因此常常选择webserice soap做为传输协议).程序员

 

2.为何说SOA是一种风格?

为什么说是一种风格呢?由于有不少人觉得webservice就是SOA,如前所述,SOA须要解决是的服务的重用问题,因此为达这个目的,无论你使用何种传输协议.只要可以解决服务复用问题便可. 在这里要给EJB平反一下,EJB的无状态Session Bean应该是专属于JAVA的SOA服务架构(它解决了服务复用问题及服务集成问题,但没有解决跨语言复用,但若是是企业内部系统,跨语言也并非EJB的致命缺点)web

 

3.SOA解决了服务集成(依赖)问题

服务与服务之间可能存在依赖问题, EJB中使用jndi用于查找ejb对象,而SOA架构中也须要该项措施,采用集中式的服务查找服务.将交叉且复杂的依赖关系转变为易于理解的星型关系. 架构

 

service使用者  ========>  service服务注册中心 <======= service提供方负载均衡

                        查找服务                                           注册服务对象

 

而在webservice协议中办演该角色是的UDDI, 而且经过service服务注册中心,咱们可能还提供能够作到如服务的负载均衡,服务的故障自动检测等集中式管理功能.(本身扩展实现一个相似UDDI的功能也可)webservice

现实存在的状况是不少程序员觉得简单的webservice调用便是SOA,若是在服务过多的状况下,会致使服务依赖关系复杂   io