2005 年 12 月 23 日
本文闡述了服務(wù)數(shù)據(jù)對(duì)象 (SDO) 體系結(jié)構(gòu)的關(guān)鍵概念,以及它所提供的強(qiáng)大功能和靈活性。SDO 體系結(jié)構(gòu)在 Java(TM) 2 Platform Enterprise Edition (J2EE) 社區(qū)正獲得越來越廣泛的普及,它也用于構(gòu)建面向服務(wù)的體系結(jié)構(gòu) (SOA) 的環(huán)境。在 IT 解決方案日趨復(fù)雜和越來越多地采用分布式體系結(jié)構(gòu)的今天,它可以滿足異構(gòu)數(shù)據(jù)集成的需要。
服務(wù)數(shù)據(jù)對(duì)象 (SDO) 通過 Java Specification Request (JSR) 235(請參閱
參考資料)得到了 Java? 社區(qū)的認(rèn)可,它也是 CommonJ(請參閱
參考資料)的一部分,CommonJ 是 IBM 和 BEA 共同制定的規(guī)范。如何訪問不同數(shù)據(jù)源類型的數(shù)據(jù)在 IT 業(yè)界變得越來越重要,SDO 是一種應(yīng)用程序編程接口 (API),可以簡化和統(tǒng)一對(duì)異構(gòu)數(shù)據(jù)的訪問。目前單一數(shù)據(jù)類型的應(yīng)用程序已經(jīng)不再常見,信息通常都存儲(chǔ)在不同類型的數(shù)據(jù)源中(比如數(shù)據(jù)庫、Web 服務(wù)、輕量級(jí)目錄訪問協(xié)議 (LDAP)、遺留應(yīng)用程序等等)。這種復(fù)雜性要求開發(fā)人員熟悉許多 API(比如 Java 數(shù)據(jù)庫連接 (JDBC)、基于 XML 的遠(yuǎn)程過程調(diào)用的 JAVA API (JAX-RPC)、或者 J2EE 連接器體系結(jié)構(gòu) (JCA) 等等)。SDO 簡化和補(bǔ)充了 Java 2 Platform Enterprise Edition (J2EE) 的開發(fā)模式,提供了一種獨(dú)特的訪問異構(gòu)數(shù)據(jù)源的 API,同時(shí)也可用于數(shù)據(jù)處理的其他方面,本文將對(duì)此進(jìn)行詳細(xì)說明。
回頁首SDO 的目標(biāo)有很多,從某種程度上講 SDO 看起來好像是 J2EE 的一把多功能“瑞士軍刀”,因?yàn)樗奶匦钥蓪?shí)現(xiàn)多種不同種類的功能,基本來講,SDO 及其相關(guān)的技術(shù)設(shè)計(jì)有以下五大主要專題:
簡化數(shù)據(jù)訪問:第一個(gè)目標(biāo)是提供對(duì)多種企業(yè)信息系統(tǒng) (EIS) 的統(tǒng)一的數(shù)據(jù)訪問,包括數(shù)據(jù)庫、遺留應(yīng)用程序(使用 JCA)、XML 或者是 Web 服務(wù)數(shù)據(jù)源。通過使用 SDO 的一種獨(dú)特而簡單的模型,應(yīng)用程序擺脫了使用多種 API 和框架進(jìn)行數(shù)據(jù)訪問的復(fù)雜工作。
數(shù)據(jù)提?。菏褂?SDO 后,數(shù)據(jù)的表示是獨(dú)立于其數(shù)據(jù)源的,它采用了一種叫做 Domain Store (請參閱
參考資料)的 J2EE 模式,這種級(jí)別的數(shù)據(jù)提取有很多優(yōu)點(diǎn),例如使數(shù)據(jù)操作變得更容易,實(shí)現(xiàn)了不同層之間的松耦合。
數(shù)據(jù)操作:一旦檢索到信息后,SDO 會(huì)提供一種統(tǒng)一的編程語言進(jìn)行數(shù)據(jù)操作,簡單的說,就是通過使用 API 及其接口,SDO 客戶機(jī)可以讀取數(shù)據(jù)和修改數(shù)據(jù)。SDO 為此提供了連接和斷開連接的兩種模型,下文中將對(duì)此做詳盡的介紹。
數(shù)據(jù)傳輸:SDO 有一部分概念是關(guān)于傳輸對(duì)象 (Transfer Object) 和傳輸對(duì)象組裝程序 (Transfer Object Assembler) 模式(請參閱
參考資料)的。數(shù)據(jù)封裝到 SDO 對(duì)象中后,它就可以在 J2EE 層間高效地傳輸。
設(shè)計(jì)模式的采用:SDO 的一個(gè)關(guān)鍵目標(biāo)是鼓勵(lì)大家采用公用的 J2EE 模式,這也是 SDO 體系結(jié)構(gòu)以一些廣為人知的模式為基礎(chǔ)的原因,例如傳輸對(duì)象 (Transfer Object)、數(shù)據(jù)訪問對(duì)象 (Data Access Object)、傳輸對(duì)象組裝程序和 Domain Store(請參閱
參考資料)等。如果使用了 SDO,應(yīng)用程序就可以從這些經(jīng)過了驗(yàn)證的設(shè)計(jì)策略中受益,從而可以推動(dòng)分層技術(shù)和松耦合的發(fā)展。
圖 1 顯示了 SDO 在一個(gè) J2EE 分層體系結(jié)構(gòu)中所處的位置:
回頁首SDO 體系結(jié)構(gòu)提供了一組核心組件,這些組件可以由支持 SDO 的實(shí)現(xiàn)和框架進(jìn)行擴(kuò)充。
SDO 規(guī)范定義了數(shù)據(jù)持有者(數(shù)據(jù)對(duì)象 (Data Object) 和數(shù)據(jù)圖 (Data Graph)),還引用了一種叫做數(shù)據(jù)中介服務(wù)(Data Mediator Service,DMS)的組件。DMS 負(fù)責(zé)訪問數(shù)據(jù)源和處理數(shù)據(jù)圖,如
圖 2 所示:
圖 3 顯示了 SDO 體系結(jié)構(gòu)和它的關(guān)鍵組件,如下所示:
數(shù)據(jù)對(duì)象是保存數(shù)據(jù)的組件,簡單地說,它是由屬性的鍵/值對(duì)組成的,每個(gè)值都可以是原始的數(shù)據(jù)類型,或者是另一個(gè)數(shù)據(jù)對(duì)象。數(shù)據(jù)對(duì)象是可序列化的。
設(shè)想一下您需要顯示餐館甜點(diǎn)的有關(guān)信息,其對(duì)應(yīng)的數(shù)據(jù)對(duì)象實(shí)例可以包含下列值:
<ID, 123> <Description, "Chocolate Cake"> <Price, 7>
對(duì)于熟悉 JDBC 概念和 java.sql.ResultSet 接口的讀者來說,SDO 的動(dòng)態(tài) API 模式是很容易理解的。就像 JDBC 一樣,您可以通過名稱或索引來訪問它的屬性值。
如果在程序運(yùn)行之前,還無法獲知準(zhǔn)確的數(shù)據(jù)結(jié)構(gòu)的話,使用動(dòng)態(tài) API 是特別適合的。
SDO API 提供一些簡單易用的方法來獲取數(shù)據(jù)對(duì)象中的值:
// returns the first element of the graph DataObject dessert = (DataObject) graph.get(0); // get the dessert name and its price String dessertName = dessert.getString("Description"); int dessertPrice = dessert.getInt("Price");
如果在開發(fā)階段數(shù)據(jù)結(jié)構(gòu)就可以確定的話,SDO 體系結(jié)構(gòu)還提供了靜態(tài) API 功能。例如,如果數(shù)據(jù)源是一個(gè)帶有明確定義模式(xsd 文件)的 XML 文件的話,則 SDO 將支持 Java 代碼生成和 Java 綁定。雖然這已經(jīng)超出了 SDO 規(guī)范的范圍,但是綁定技術(shù)可能會(huì)集成一些對(duì) SDO 的支持,例如 XML 數(shù)據(jù)綁定的 Java 體系結(jié)構(gòu) (JAXB)。
數(shù)據(jù)對(duì)象圖是一個(gè)描述數(shù)據(jù)的分層結(jié)構(gòu),它包括一個(gè)數(shù)據(jù)對(duì)象樹和另一個(gè)稱作更改摘要 (Change Summary) 的結(jié)構(gòu)(請參閱
圖 4)。更改摘要記錄了數(shù)據(jù)圖中所有數(shù)據(jù)對(duì)象的歷史更改信息。此外,由于數(shù)據(jù)圖是由數(shù)據(jù)對(duì)象組成的,因此它是可序列化的。
元數(shù)據(jù)是一個(gè)描述對(duì)象內(nèi)容的元模型,它可以讓數(shù)據(jù)圖實(shí)例完成自省 (introspection)。
如
圖 5 所示,每個(gè)對(duì)象都與一些基本的元數(shù)據(jù)信息相關(guān)聯(lián),對(duì)象以一個(gè)類型加一個(gè)已排序的屬性列表的形式表示。
SDO 體系結(jié)構(gòu)還包括了一些規(guī)范中沒有定義的附加組件。
前面一段描述了信息的邏輯元數(shù)據(jù)(例如當(dāng)信息加載到 SDO 對(duì)象后的元數(shù)據(jù)),而物理元數(shù)據(jù)(例如原始數(shù)據(jù)源格式的元數(shù)據(jù))不在 SDO 規(guī)范討論的范圍內(nèi)。典型情況下,物理元數(shù)據(jù)并不會(huì)影響 SDO 客戶機(jī),但是它會(huì)影響到 DMS,DMS 是負(fù)責(zé)訪問數(shù)據(jù)源的組件。
DMS 是一種組件,它負(fù)責(zé)提供某些方法來組裝數(shù)據(jù)圖,也負(fù)責(zé)將數(shù)據(jù)更改保存回?cái)?shù)據(jù)源。典型情況下,將會(huì)有多種不同的 DMS 類型,每種類型對(duì)應(yīng)著一種特定的數(shù)據(jù)源和技術(shù)(XML、JMS、JCA、JDBC 等等)。DMS 總是以同一種格式(數(shù)據(jù)圖)返回信息,它隱藏了實(shí)際的數(shù)據(jù)存儲(chǔ)信息,在 SDO 應(yīng)用程序和 EIS 之間提供了一層數(shù)據(jù)提取的功能。
DMS 不在 SDO 規(guī)范的范圍內(nèi),但是它在實(shí)現(xiàn)中可能需要將多個(gè)數(shù)據(jù)源和數(shù)據(jù)類型的數(shù)據(jù)集成在一起,這樣,唯一的 SDO 數(shù)據(jù)圖就會(huì)包含了異構(gòu)數(shù)據(jù)源的信息。請參見
圖 6:
SDO 模型有一個(gè)有趣的特性,就是它允許使用斷開連接的編程模型,事實(shí)上當(dāng) SDO 客戶機(jī)提出數(shù)據(jù)圖請求并收到此數(shù)據(jù)圖后,它就斷開了和 DMS 的連接,這樣避免了 DMS 對(duì)數(shù)據(jù)源的持續(xù)加鎖,客戶機(jī)就可以不受時(shí)間限制地處理數(shù)據(jù)對(duì)象,對(duì)數(shù)據(jù)源的更改保存以一種樂觀的并行方式進(jìn)行。這種斷開連接的模型特別適合 n 層的以 Web 為基礎(chǔ)的體系結(jié)構(gòu),因?yàn)樗紤]到了分層技術(shù),同時(shí)也易于使用,而且還可以進(jìn)行高級(jí)并行訪問。
回頁首圖 7 是一個(gè)簡單請求的序列關(guān)系圖?;旧希?dāng)一個(gè) SDO 客戶機(jī)需要檢索數(shù)據(jù)時(shí),它使用 DMS 來請求數(shù)據(jù)圖,DMS 負(fù)責(zé)管理對(duì)數(shù)據(jù)源的訪問,并根據(jù)接收到的信息來創(chuàng)建一個(gè)圖,通常這個(gè)圖是一個(gè)分層的樹結(jié)構(gòu),其中包含了幾個(gè)數(shù)據(jù)對(duì)象。此客戶機(jī)使用斷開連接的編程模型來處理數(shù)據(jù)圖。如果數(shù)據(jù)被修改,而且客戶機(jī)希望能保存這些更改,它會(huì)將更改后的數(shù)據(jù)圖發(fā)送給 DMS,然后由 DMS 去修改數(shù)據(jù)源。
數(shù)據(jù)圖中的所有對(duì)象擴(kuò)展了可序列化的 Java 接口,這樣,樹的序列化是很簡單的,但是必須注意以下模式,如
圖 8 所示。
目前來講,規(guī)范并沒有明確說明該如何描述數(shù)據(jù)圖。其中一個(gè)稱為“model”的元素支持 Essential Meta Object Facility (EMOF),而另一個(gè)稱為“xsd”的元素可用來存放 XML 模式。SDO 對(duì)這兩者都支持,這兩種元素的作用也都一樣:用于描述元數(shù)據(jù)。
序列化完成后,數(shù)據(jù)圖由三部分組成:模式、序列化的數(shù)據(jù)對(duì)象和更改摘要,如
圖 9 所示。數(shù)據(jù)對(duì)象部分包括了樹型結(jié)構(gòu)和對(duì)象的值,而更改摘要?jiǎng)t列出了序列化完成前數(shù)據(jù)圖的所有更改,原始樹結(jié)構(gòu)中未更改的數(shù)值則被省略了。數(shù)據(jù)圖框架模式僅在需要反序列化的情況下才出現(xiàn),如前所述,它可以是 XSD 或者是 EMOF 模型。
SDO 有一個(gè)很重要的特點(diǎn)就是使數(shù)據(jù)操作變得更容易了,因此一旦構(gòu)造好一個(gè)數(shù)據(jù)圖,很重要的一點(diǎn)就是需要使用 SDO API 來遍歷樹結(jié)構(gòu),并訪問其中的元素。規(guī)范的作者選擇了使用 XPath 語言來完成這一工作。XPath 應(yīng)用在 SDO 中時(shí)它僅有一個(gè)特殊的地方:在訪問數(shù)據(jù)時(shí),它使用 0 作為基本索引,而 XPath 規(guī)范中第一個(gè)元素只能通過索引值 1 識(shí)別,這個(gè)特殊的規(guī)定是為了使 SDO API 更接近 Java API,因?yàn)榫幊倘藛T習(xí)慣了在引用數(shù)組的第一個(gè)元素時(shí),使用 array[0] 這樣的語法來表示。
我們來看一個(gè)簡單的例子:餐館的菜單,體會(huì)一下如何處理數(shù)據(jù)圖中的數(shù)據(jù)對(duì)象。它可以用以下的統(tǒng)一建模語言 (UML) 關(guān)系圖來描述,如
圖 10 所示。
一個(gè)特定的 SDO 圖實(shí)例如下所示:
首先需要獲取圖的根元素,這是一切工作的起點(diǎn): DataObject root = dataGraph.getRootObject();
要訪問 Menu 對(duì)象,只需使用: DataObject menu = root.getDataObject("Menu");
現(xiàn)在查看的是哪一類菜單呢?下面的表達(dá)式將會(huì)告訴您: String menuType = menu.getString("Name"); //
順便提一下,這是正餐。
現(xiàn)在假定您想點(diǎn)主菜。您需要了解今天的菜單上都有些什么菜: DataObject mainDish = menu.getDataObject("coursetype[Type=‘Main‘]");
如果您決定點(diǎn)丁字牛排 (T-Bone),您可以根據(jù)它的索引直接從數(shù)據(jù)圖中訪問它: DataObject tBone = (DataObject) mainDish.get(0);
要查看您是否帶了足夠的錢來付賬,可以獲取價(jià)格: int tBonePrice= tBone.getInt("Price");
您還餓嗎?來點(diǎn)甜點(diǎn)如何?首先您可以調(diào)出樹結(jié)構(gòu)中甜點(diǎn)的清單,以便做出決定: DataObject dessert = menu.getDataObject("coursetype[Type=‘Dessert‘]"); List dessertList = dessert.getList();
接下來您可以訪問剛才所獲得的順序集合中的元素?;蛘呖赡苣呀?jīng)決定了選擇美味的巧克力蛋糕。您可以使用以下表達(dá)式來直接訪問它: DataObject cake = menu.getDataObject(coursetype.2/dishes.2);
XPath 的使用使訪問數(shù)據(jù)對(duì)象圖的元素變得簡單而直觀。SDO API 中還有很多附加的特性可用于創(chuàng)建或刪除對(duì)象,或者是改變它們的值。
回頁首到目前為止,SDO 看起來不只是一個(gè) API,它還是一個(gè)設(shè)計(jì)和編程模型,所以 SDO 可以(或者將來有可能)在多個(gè)企業(yè)應(yīng)用程序概念中使用。我們現(xiàn)在來看看其中的一些例子。
使用 SDO 的目的并不是替換現(xiàn)有的持久性機(jī)制,而是利用它們提供一個(gè)統(tǒng)一的編程接口。典型地,編程人員將只專注于唯一的編程模型 (SDO),而不用學(xué)習(xí)多種 API 和框架。取而代之的是在幕后由支持 SDO 的工具和 DMS 來處理所有特定而繁瑣的數(shù)據(jù)源語義。這樣,即使在不知道數(shù)據(jù)源的情況下,SDO 客戶機(jī)都可以通過 DMS 與 JDBC、Java 數(shù)據(jù)對(duì)象 (JDO)、Hibernate、Entity Enterprise JavaBean (EJB)、 Web 服務(wù)及任何其他數(shù)據(jù)源進(jìn)行交互。
SDO 對(duì)象是獨(dú)立于底層數(shù)據(jù)源的,它們將信息封裝在簡單原始的 Java 對(duì)象(POJO)中,與一些特定技術(shù)(如 EJB 或 Servlet)沒有什么關(guān)系。
因此,在 J2EE 體系結(jié)構(gòu)中,SDO 對(duì)象是跨級(jí)使用的最佳候選對(duì)象。它們可以首先由集成層 (integration layer) 創(chuàng)建為值傳遞的 Java 對(duì)象,然后發(fā)送給業(yè)務(wù)層。此外 SDO 對(duì)象可以在表示層和業(yè)務(wù)層間傳遞信息。(請參閱
參考資料獲取更多的關(guān)于傳輸對(duì)象 (Transfer Object) 模式的信息。)
最近人們越來越多地在致力于使用戶界面組件 (UI) 和業(yè)務(wù)服務(wù)間實(shí)現(xiàn)自動(dòng)綁定,而不需要考慮所使用的具體技術(shù)。例如,怎樣使 JavaServer Faces (JSF) 組件以標(biāo)準(zhǔn)的方式與 EJB 或 Web 服務(wù)實(shí)現(xiàn)交互?如何讓 Struts 組件使用同一標(biāo)準(zhǔn)?SDO 提供了相應(yīng)的對(duì)象和 API 來輕松地實(shí)現(xiàn) JSR227 工作組確定的綁定需求(請參閱
參考資料)。
SDO 采用的模型是規(guī)范化的和可自動(dòng)描述的,因此它可用來使工具和框架以標(biāo)準(zhǔn)方式自動(dòng)訪問數(shù)據(jù)和生成 Java 對(duì)象。SDO 還具有自省功能和擁有動(dòng)態(tài)數(shù)據(jù) API,這樣就可以輕松地與現(xiàn)有的和即將出現(xiàn)的工具相集成。如果能被廣泛接受的話,作為一個(gè)公用 API,SDO 將統(tǒng)一現(xiàn)有的數(shù)以千計(jì)的框架結(jié)構(gòu)。
SOA 旨在推廣一種可互換的、適應(yīng)性強(qiáng)的和靈活的行業(yè)標(biāo)準(zhǔn)框架。這都要求提供隨需應(yīng)變的業(yè)務(wù),但是在 IT 基礎(chǔ)設(shè)施中,SOA 還僅僅只是一個(gè)概念或者說是一個(gè)藍(lán)圖。業(yè)界已經(jīng)采用了 Web 服務(wù)標(biāo)準(zhǔn)來實(shí)現(xiàn) SOA 的應(yīng)用程序。Web 服務(wù)展示了一種獨(dú)立的自描述功能,這樣其他應(yīng)用程序可以通過開放的標(biāo)準(zhǔn)來尋找和訪問它。Java 社區(qū)可以依靠一組 API 和相關(guān)技術(shù)來發(fā)布、發(fā)現(xiàn)和使用服務(wù),這意味著您可以使用定義明確的協(xié)議(如簡單對(duì)象訪問協(xié)議 (SOAP))來和外部應(yīng)用程序交互。
但是到目前為止,在應(yīng)用程序內(nèi)傳遞信息還沒有標(biāo)準(zhǔn)的方式,當(dāng)然,這也可以通過自己開發(fā) Java 對(duì)象或利用 XML 綁定如 JAXB、Castor、XMLBeans 或很多今天的其他技術(shù)來實(shí)現(xiàn),但是您真的希望被這些各式各樣的技術(shù)和框架綁住手腳嗎?
在這種情況下,SDO 可以提供幫助,它提供了一種獨(dú)特的模型來存放結(jié)構(gòu)化的和相互關(guān)聯(lián)的復(fù)合對(duì)象,您的應(yīng)用程序可以使用這些對(duì)象來保存信息。而且,對(duì)種類繁多的數(shù)據(jù)源和業(yè)務(wù) SDO 提供了一個(gè)統(tǒng)一的數(shù)據(jù)訪問。它還可以在業(yè)務(wù)處理和信息源間實(shí)現(xiàn)解耦合。從某種意義上講, SDO 框架可以簡化和統(tǒng)一 SOA 中的數(shù)據(jù)應(yīng)用程序開發(fā),它提供了一種標(biāo)準(zhǔn)化的和與廠商無關(guān)的方法來處理異構(gòu)問題。
SDO 不僅僅是一個(gè)規(guī)范,您可能已經(jīng)發(fā)現(xiàn)了有一些工具利用了 SDO 技術(shù)來訪問異構(gòu)的 EIS。
WebSphere? Application Server Version 6.0 (Application Server) 遵循 J2EE 1.4,它提供了一組編程模型擴(kuò)展,來滿足一些特定的尚未被規(guī)范涵蓋的企業(yè)需求。為了推廣 SOA,Application Server Version 6.0 支持 SDO,并提供了一些 DMS 的實(shí)現(xiàn)。
WebSphere Studio Application Developer Version 5.1.2 以及 IBM 的下一代軟件開發(fā)平臺(tái) (Rational? Application Developer Version 6) 完全支持 SDO。IBM 提供的 SDO 規(guī)范的參考實(shí)現(xiàn)已經(jīng)包含在 Eclipse Modeling Framework (請參閱
參考資料)中,因此只要導(dǎo)入正確的包 (import org.eclipse.emf.*;),您就可以開發(fā)支持 SDO 的應(yīng)用程序了。另外,如前所述,WebSphere(即 IBM 的開發(fā)平臺(tái))提供了幾個(gè) DMS 的實(shí)現(xiàn),您可以將它們集成到您的應(yīng)用程序中 (com.ibm.websphere.sdo.mediator.*)。
回頁首SDO 規(guī)范 1.0 版于 2003 年末提交給 Java Community Process,并獲得了批準(zhǔn),但它仍在不斷的發(fā)展中。和其他所有提交的規(guī)范一樣,很難預(yù)料它最終是否會(huì)被廣泛地采用,不過,這個(gè)規(guī)范得到了主要的 Java 行業(yè)風(fēng)險(xiǎn)投資的支持,它也確實(shí)著重于解決通用企業(yè)應(yīng)用程序的一個(gè)重要問題:異構(gòu)數(shù)據(jù)訪問。SDO 為業(yè)務(wù)數(shù)據(jù)提供了一種中立的表示方法,建立了一種與數(shù)據(jù)源無關(guān)的模型,降低了耦合度。基于以上原因,它可能會(huì)成為將來 SOA 應(yīng)用程序的一個(gè)重要組件。
回頁首學(xué)習(xí)
您可以參閱本文在 developerWorks 全球站點(diǎn)上的
英文原文閱讀
Eclipse In Action: A Guide for Java Developers。
查看以下內(nèi)容: 了解更多關(guān)于
SDO 規(guī)范的內(nèi)容,您肯定能夠更好地理解如何實(shí)現(xiàn)本文中所討論的功能。
閱讀
JSR 235 規(guī)范。
Service Data Objects, WorkManager, and Timers 很好地概述了 SDO 規(guī)范。
Core J2EE Patterns: Best Practices and Design Strategies 是關(guān)于 Java 主題最好的書籍之一。
了解更多關(guān)于
Essential Meta Object Facility 的內(nèi)容。
獲得
XML 模式規(guī)范。
了解更多關(guān)于
Xpath 規(guī)范的內(nèi)容。
閱讀
JSR 227: A Standard Data Binding and Data Access Facility for J2EE。
IBM 提供了關(guān)于
WebSphere Application Server V6.0 的背景知識(shí)。
獲得更多關(guān)于
Rational Application Developer 的信息。
查找更多關(guān)于
Eclipse Modeling Framework 的信息。
查找其他一些關(guān)于 Eclipse Modeling Framework 的資料來源:
Eclipse Modeling Framework (Eclipse Series)Eclipse DistilledIBM developerWorks 團(tuán)隊(duì)在全球主辦數(shù)百場
technical briefings,您可以免費(fèi)參加。
Standards roadmap——了解標(biāo)準(zhǔn)和規(guī)范對(duì) SOA 和 Web 服務(wù)開發(fā)的影響和重要性。
SOA and Web services——有數(shù)百篇關(guān)于如何開發(fā) Web 服務(wù)應(yīng)用程序的文章以及入門級(jí)、中級(jí)和高級(jí)教程,將讓您大開眼界。
獲得產(chǎn)品和技術(shù)
獲得來自 DB2?、Lotus?、Rational、Tivoli? 和 WebSphere 的應(yīng)用程序開發(fā)工具和中間件產(chǎn)品。您可以免費(fèi)下載這些產(chǎn)品的
評(píng)估版,也可以選擇 developerWorks 的 Linux? 或 Windows? 版的免費(fèi)
IBM 軟件試用版 DVD。
回頁首Jean-Louis Marechaux 是加拿大 IBM Business Consulting Services 部門的 IT 架構(gòu)師,他的興趣和特長包括 J2EE 結(jié)構(gòu)體系、Web 服務(wù)技術(shù)、SOA、工程過程和方法學(xué) (IBM Rational Unified Process?)。您可以通過
jlmarech@ca.ibm.com 與他聯(lián)系。