作者:王忠波
链接:https://www.zhihu.com/question/48227698/answer/109786258
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://www.zhihu.com/question/48227698/answer/109786258
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
谢邀,搞清SOA与中间件的关系,首先需要理解他们是什么。
SOA(面向服务的架构),顾名思义它是一种架构思想,不单单指某一种特定的架构,而是重在面向服务的思想。可以认为“一切皆服务”,也就是说底层的数据资源可以通过服务直接暴露,也可以通过封装实现原子服务,这些原子服务可以根据业务逻辑构成业务流程,从而实现复杂的业务功能。这其中就涉及到SOA服务重用性、松耦合性、透明性等特点,这种架构思想可以促进不同业务部门间信息的共享。据本人了解目前有些大型的互联网公司的产品是基于SOA的思想实现的,比如淘宝、1号店等。
中间件是一种独立的系统软件或服务程序(百度百科),借助这种软件在不同的技术之间共享资源。其是更加具体的某些功能的实现,比如消息中间件(ActiveMQ(本人在用)、kafaka、RocketMQ(阿里开源产品)等),其能够实现消息同步和异步传输,从而解耦服务提供者和消费者。当然,还有其他中间件,如企业服务总线(ESB)等。
通过上边介绍,相信对它俩之间的关系应该有一定的认识了。SOA侧重架构思想,中间件侧重于实现;你可以通过一定的中间件(当然也可以自己开发),构建符合你需求的面向服务的架构。
以上是我个人的理解,有不正之处请谅解。
SOA(面向服务的架构),顾名思义它是一种架构思想,不单单指某一种特定的架构,而是重在面向服务的思想。可以认为“一切皆服务”,也就是说底层的数据资源可以通过服务直接暴露,也可以通过封装实现原子服务,这些原子服务可以根据业务逻辑构成业务流程,从而实现复杂的业务功能。这其中就涉及到SOA服务重用性、松耦合性、透明性等特点,这种架构思想可以促进不同业务部门间信息的共享。据本人了解目前有些大型的互联网公司的产品是基于SOA的思想实现的,比如淘宝、1号店等。
中间件是一种独立的系统软件或服务程序(百度百科),借助这种软件在不同的技术之间共享资源。其是更加具体的某些功能的实现,比如消息中间件(ActiveMQ(本人在用)、kafaka、RocketMQ(阿里开源产品)等),其能够实现消息同步和异步传输,从而解耦服务提供者和消费者。当然,还有其他中间件,如企业服务总线(ESB)等。
通过上边介绍,相信对它俩之间的关系应该有一定的认识了。SOA侧重架构思想,中间件侧重于实现;你可以通过一定的中间件(当然也可以自己开发),构建符合你需求的面向服务的架构。
以上是我个人的理解,有不正之处请谅解。