首先,需要明確的是,SCA還沒有成為正式的標(biāo)準(zhǔn),盡管SCA目前已經(jīng)有比較穩(wěn)定的規(guī)范,有些文章錯誤地將SCA作為標(biāo)準(zhǔn)來看待。
SCA目標(biāo):基于組件的編程一直是軟件業(yè)簡化編程和提高效率和質(zhì)量的一個重要方法,但是往往對于不同語言我們有不同的組件模型,比如在J2EE技術(shù)領(lǐng)域,就有EJB,POJO,JDBC,JMS等。這對于項目初期分析和設(shè)計人員來說,是一個很大的挑戰(zhàn),導(dǎo)致在初期就需要選定具體的語言和技術(shù)。SCA的目的是使用戶在構(gòu)建企業(yè)應(yīng)用時有一個不再直接面對具體的技術(shù)細(xì)節(jié)的層次,而是通過服務(wù)組件的方式來構(gòu)建應(yīng)用。這種方式也使得客戶的企業(yè)應(yīng)用具有良好的分層架構(gòu),能夠很好的分離應(yīng)用的業(yè)務(wù)邏輯和IT邏輯,不但易于應(yīng)用的構(gòu)建,也易于應(yīng)用的更改和部署。
SCA和WSDL
WSDL是Web服務(wù)描述語言,但它只定義了服務(wù)接口,并不提供描述一個服務(wù)所依賴的其它服務(wù),以及這個服務(wù)所需要使用的配置策略和服務(wù)之間的依賴關(guān)系。單獨(dú)通過WSDL很難實現(xiàn)服務(wù)之間的組合調(diào)用。SCA比WSDL走的更遠(yuǎn),SCA定義了服務(wù)組件模型以及服務(wù)組裝模型。服務(wù)模型允許服務(wù)開發(fā)者不但定義服務(wù)的接口而且還定義了這個服務(wù)和其他服務(wù)的依賴關(guān)系,以及這些交互(事務(wù),安全,以及可靠 傳輸)之間的策略,還有服務(wù)潛在的配置等功能。服務(wù)組件是SCA中的基本組成元素和基本構(gòu)建單位,也是我們具體實現(xiàn)業(yè)務(wù)邏輯的地方。我們可以把它看成是構(gòu)建我們應(yīng)用的積木。
SCA和JBI
SCA和JBI其目的有很多相同之處:JBI在JSR 208中被定義,已經(jīng)成為使用Java語言把服務(wù)容器組裝為合成應(yīng)用的標(biāo)準(zhǔn);SCA是被推薦標(biāo)準(zhǔn),為在不同平臺不同語言解決組裝問題的提供了更廣泛的方法。SCA關(guān)注是的SOA開發(fā)者最初看到的和接觸到的,SCA并不關(guān)注SCA各個模塊最后是如何實現(xiàn)的。如果把SOA分成三個抽象層次的話:業(yè)務(wù)、服務(wù)、技術(shù)。那么SCA對應(yīng)的就是服務(wù)層的規(guī)范。JBI提供了一系列的API,用來建立開放、可擴(kuò)展和模塊化的企業(yè)服務(wù)總線。可以說,JBI已經(jīng)觸及到具體的技術(shù)層面。SCA沒有局限于具體語言,而JBI僅限于用Java,因此JBI的應(yīng)用范圍更嚴(yán)格,在SOA未來的標(biāo)準(zhǔn)體系結(jié)構(gòu)中,可能成為其中的一部分Java實現(xiàn)標(biāo)準(zhǔn)。
? 這段時間大家都挺忙的,但無論如何,今天的討論還是如期進(jìn)行。討論的主題是對業(yè)務(wù)的分析,討論之前,大家已經(jīng)作了不少準(zhǔn)備,尤其是cui,將自己的分析結(jié)果寫成文檔給每個人發(fā)了一份,對題目中的基本業(yè)務(wù)進(jìn)行了分析和總結(jié),其工作得到大家一致肯定。隨后,吉祥三寶們對業(yè)務(wù)的進(jìn)行了更深入的分析,對基本業(yè)務(wù)進(jìn)行了進(jìn)一步明確,并且挖掘出很多潛在業(yè)務(wù),討論非常激烈,以致最后都不知道已經(jīng)到端午節(jié)了^_^。這一次我們討論出不少結(jié)果,也遇到一些問題,由于我們都是計算機(jī)專業(yè)的,對企業(yè)中某些工作還不是很明白,不明白的地方,我們打算找相關(guān)專業(yè)人咨詢,這一重?fù)?dān)最后落在我身上了,苦啊:)。下次討論,初步定于還是是對業(yè)務(wù)進(jìn)行分析,進(jìn)一步細(xì)化,總之,能走多遠(yuǎn)走多遠(yuǎn)吧,三寶,加油......
??? 2006年5月16日 ,小組的成立,相對其他組來說,我們是比較晚的。在時間上,處于劣勢,對于SOA 的全面學(xué)習(xí),也是從小組成立之后才開始的。要想在 6 月底之前圓滿完成任務(wù),必須對工作重心有一個清楚的認(rèn)識,合理安排時間。
??? 對技術(shù)的研究,很容易走入死胡同。而 SOA 的技術(shù)又太多了,光是熟悉某種軟件的使用,就得花上好一陣時間了,在學(xué)習(xí)某種技術(shù)或者軟件上花太多時間是很不值的。
??? 我覺得在進(jìn)行分析設(shè)計之前,必須先對 SOA 的思想框架有一個深入的了解,否則,不可能很好地采用基于面向服務(wù)的思想進(jìn)行后期需求分析和設(shè)計,然后,要盡可能仔細(xì)地進(jìn)行商業(yè)計劃、業(yè)務(wù)流程分析、以及后面的系統(tǒng)高層的設(shè)計,需要用到哪些技術(shù)或者軟件再花時間去學(xué)習(xí)或者使用。
對于SOA的解釋,目前沒有一種統(tǒng)一的說法,收集了一下各大公司給的定義,和大家分享,希望能對SOA有個更全面的理解:
Service-oriented architecture presents an approach for building distributed systems that deliver application functionality as services to either end-user applications or other services. It is comprised of elements that can be categorized into functional and quality of service.
來源:IBM
Patterns: Service-Oriented Architecture and Web Services.pdf
Service-Oriented Architecture is a component model that inter-relates an application's different functional units, called services, through well-defined interfaces and contracts between these services.
From:IBM
http://www-128.ibm.com/developerworks/webservices/newto/#7
面向服務(wù)的架構(gòu)(SOA)是一種設(shè)計方法學(xué),其目的是最大限度地重用應(yīng)用程序中立型的服務(wù)以提高IT適應(yīng)性和效率。雖然這些概念已經(jīng)存在了數(shù)十年之久,但只是在出現(xiàn)了基于標(biāo)準(zhǔn)的集成技術(shù)(如Web服務(wù)和XML)之后,SOA才開始被加速采用。
來源:BEA
http://dev2dev.bea.com.cn/techtype/soa/
“SOA是一種設(shè)計和實現(xiàn)企業(yè)應(yīng)用程序的方法,這些應(yīng)用程序處理那些通過定義良好的、平臺無關(guān)的接口約定來訪問松散耦合的、粗粒度的(商業(yè)水平)、可重用部件(服務(wù))的互通問題。”
From:BEA
Author:Steve Wilkes
http://dev2dev.bea.com.cn/techdoc/200408238.html
SOA與其說是一種技術(shù),不如說是一種的思維方式。它是一項大膽的基礎(chǔ)架構(gòu)變革議程,表達(dá)我們?nèi)绾瓮ㄟ^技術(shù)和協(xié)同工作來實現(xiàn)文化變遷。它的突然普及不是大規(guī)模宣傳的結(jié)果,而是對SOA作為一種使業(yè)務(wù)和IT系統(tǒng)更密切結(jié)合的演化的認(rèn)知。面向服務(wù)的架構(gòu)是一種IT戰(zhàn)略,它把包含在各種企業(yè)應(yīng)用中的分散的功能組織為可互操作的、基于標(biāo)準(zhǔn)的服務(wù),而這些服務(wù)可以再被迅速組合和重用以滿足業(yè)務(wù)需求。
From:BEA
Author:David Groves,Americas SOA Practice Lead,BEA Systems Worldwide Consulting Development
http://dev2dev.bea.com.cn/techdoc/20051213706.html
A service-oriented architecture provides a standards-based platform that allows services to be provided, discovered, and consumed by each other, to facilitate the creation of a business process.
From:Oracle:Oracle_EBS_and_SOA.pdf
顯然,SOA不是一項技術(shù),在上面各種解釋中,SOA被認(rèn)為是一種模型,一種方法,一種思維方式,甚至是一種IT戰(zhàn)略。基于服務(wù)的思想很早以前便出現(xiàn)了,CORBA已經(jīng)存在了很多年并且提供了許多至今仍被吹捧的SOA優(yōu)點(diǎn),Web Service的出現(xiàn),使得SOA的思想得以方便實現(xiàn),大大加速了SOA的發(fā)展。目前,SOA用的技術(shù)主要是Web Service,但不限于Web Service。
下面是這幾天看的一些資料的來源,覺得不錯,給大家推薦一下
首當(dāng)其沖的當(dāng)然是IBM DeveloperWorks網(wǎng)站上的SOA專區(qū),這個就不用多說了:
http://www-128.ibm.com/developerworks/cn/webservices/
下面這幾個網(wǎng)站不錯,有很多SOA的東東,兄弟們,抓緊時間看哪:
http://tech.ccidnet.com/pub/series/s627.html
http://searchwebservices.techtarget.com.cn/tt-webservices-soasx/his.shtml
http://www.51cto.com/html/2006/0106/16327.htm
還有BEA和Oracle的SOA方面的文章,大家也研究一下啊:
http://dev2dev.bea.com.cn/techtype/soa/
http://www.oracle.com/lang/cn/technologies/soa/index.html
這個網(wǎng)站有很多國內(nèi)介紹ERP、CRM的文章,但很多用不上,大家有選擇的吸收吧:
http://www.jecio.com/jysr-down/jysr-down-ITCON01.htm
還有,看文章一定要看日期和作者。SOA一直處在不停的發(fā)展變化之中,一年前甚至半年前的很多思想就已經(jīng)落后了,早期的很多文章可以大概瀏覽一下,不要浪費(fèi)太多時間,權(quán)威人士的文章得多花點(diǎn)時間分析一下,他們的很多理論都是從大量實踐中得來的,可以幫我們少走彎路。