有关SOA的基本概念

个人感觉这个例子比较好,容易理解

比如现我有一个数据库,一个JavaWeb(或者PHP等)的网站客户端,一个安卓app客户端,一个IOS客户端。

现在我要从这个数据库中获取注册用户列表,如果不用SOA的设计思想,那么就会这样:JavaWeb里面写一个查询方法从数据库里面查数据然后在网页显示,安卓app里面写一个查询方法查询后在app上显示,IOS同样如此。这里就会出现查询方法重叠了,这样的坏处很明显了,要改三个地方都要改。当然问题不止这一个。

于是乎出现了这样的设计思想,比如先用Java(或者是其他)写一个方法执行上述查询操作,然后使其他人可以通过某个http链接访问这个方法得到返回数据,返回的数据类型是通用的json或者xml数据,就是说把这个操作做成API接口,形成“服务”。

这样一来,JavaWeb这边可以访问这个链接然后得到数据然后解析就可以用了,安卓和IOS这里也可以通过这个链接得到数据。而且最重要的是,要修改这个方法只要改这个API接口就好了,很好的解耦。当然,还有很多其他好处。

和松耦合不一样,SOA是不同服务间建立一个服务标准和表达方式,目的是减轻系统压力和开发步骤。其实质就是将系统模型与系统实现分离。


发表评论

电子邮件地址不会被公开。 必填项已用*标注