分享

关于EJB和SOA

 hewii 2022-10-27 发布于上海

先说EJB,这是Java官方(SUN公司)为了使Java支持分布式系统而制定的规范,可以说是J2EE规范的核心之一。由各个应用服务器各自去实现,比如IBM的Websphere、JBoss等。

但是,因为EJB本身的一些固有缺陷(本人没有EJB的实践经验,就不展开了,反正大家都说不好用),所以并没有得到广泛的使用,加上EJB只能基于Java,所以IBM、Oracle、HP等各个大厂又开始大力鼓吹、推广SOA。

SOA最初是个叫做Gartner的小公司(相对的小)提出来的,是一种“架构”或者说“思想”,具有跨平台、跨编程语言、松耦合等特性。但SOA本身并非具体的规范、更非具体的产品,所以IBM、Oracle等厂商各自有各自的产品和解决方案,而且都很重、很贵,如果按照这些大厂的解决方案去实施SOA,肯定要采购一大批硬件和软件,还不一定用得顺手。

抛开这些大厂的SOA解决方案和开源的SOA方案不谈,SOA落到实现上最常见的技术方案是WebService,而WebService又是由SOAP、WSDL、UDDI等构成。

然而,WebService(准确的说是SOAP)也不是个好伺候的东西,首先学习曲线比较陡、各种开源框架多如牛毛,遇到异常各种晦涩的异常信息,各种类冲突等,加上其他的一些缺陷,于是更加轻量、更加灵活的Restful异军突起。

从狭义上讲,可以认为WebService等同于SOAP。从广义上讲,Restful和SOAP都可以算做WebService的具体实现。

它们的关系是:SOA是概念上的、最顶层的抽象,WebService是实现层的抽象,SOAP和Restful都是具体的实现方式。

================分隔=================

以上属于个人对这些概念的理解,然后是回答问题时间:

1、SOA的通信方式是什么?

刚才说了,SOA是架构、是思想,SOA本身并没有什么通信方式。但SOA落到实现层,不管是SOAP还是Restful,最普遍的通信协议还是HTTP。

2、SOA和EJB的区别是什么?

初衷都是为了更好的搭建分布式系统,SOA是一种架构,EJB是J2EE规范的一部分。从层次上讲,SOA比EJB的层次更高一点,EJB大致和WebService是同一层次的东西。

3、WebService与Restful属于SOA吗?

不能用属于这个词,应该说WebService(特指SOAP)和Restful都是实现SOA的具体技术手段。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多