实际上SOA只是一种架构设计模式,而SOAP、REST、RPC就是根据这种设计模式构建出来的规范,其中SOAP通俗理解就是http+xml的形式,REST就是http+json的形式,RPC是基于socket的形式。CXF就是典型的SOAP/REST框架,dubbo就是典型的RPC框架,而SpringCloud就是遵守REST规范的生态系统。
设计:比如现我有一个数据库,一个JavaWeb(或者PHP等)的网站客户端,一个安卓app客户端,一个IOS客户端。现在我要给用户提供一个注册账号的功能。
不用SOA的设计思想的实现:JavaWeb里面写一个注册账号的功能,安卓app里面写一个注册账号的功能,IOS同样如此。那么这样的实现有没有什么问题呢?比如有一天,我的注册方法需要改动,那是不是三个地方都要改,而且要改的一模一样。当然问题不止这一个。
SOA的设计思想实现:用Java(或者是其他语言皆可)单独创建一个工程部署在一台服务器上,并且写一个方法(或称函数)执行上述注册操作,然后提供一个接口,其他人可以通过某种途径(可以是http链接,或者是基于socket的RPC调用)访问这个方法来注册。就是说把这个操作封装到一个工程中去,然后暴露访问的方式,形成“服务”。要修改关于注册用户的业务方法只要改这个服务就好了,很好的解耦。
本文介绍了SOA(面向服务架构)的设计思想,通过对比传统方式与SOA实现的注册功能,阐述了SOA如何通过创建独立的服务并提供接口以实现解耦。举例说明了如何使用SOAP、REST和RPC规范,提到了CXF和Dubbo等框架在SOA中的应用,并探讨了如何利用服务化解决多客户端同步更新的问题。
2664

被折叠的 条评论
为什么被折叠?



