先說EJB,,這是Java官方(SUN公司)為了使Java支持分布式系統(tǒng)而制定的規(guī)范,,可以說是J2EE規(guī)范的核心之一。由各個應用服務器各自去實現,比如IBM的Websphere,、JBoss等,。 但是,因為EJB本身的一些固有缺陷(本人沒有EJB的實踐經驗,,就不展開了,,反正大家都說不好用),所以并沒有得到廣泛的使用,,加上EJB只能基于Java,,所以IBM、Oracle,、HP等各個大廠又開始大力鼓吹,、推廣SOA。 SOA最初是個叫做Gartner的小公司(相對的?。┨岢鰜淼?,是一種“架構”或者說“思想”,具有跨平臺,、跨編程語言,、松耦合等特性,。但SOA本身并非具體的規(guī)范,、更非具體的產品,所以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,,最普遍的通信協(xié)議還是HTTP,。 2、SOA和EJB的區(qū)別是什么,? 初衷都是為了更好的搭建分布式系統(tǒng),,SOA是一種架構,EJB是J2EE規(guī)范的一部分,。從層次上講,,SOA比EJB的層次更高一點,EJB大致和WebService是同一層次的東西,。 3,、WebService與Restful屬于SOA嗎? 不能用屬于這個詞,,應該說WebService(特指SOAP)和Restful都是實現SOA的具體技術手段,。 |
|
來自: hewii > 《Software Tech.》