欧美特黄不卡,涩涩视频在线,成人国产精品一区二区网站,亚洲一区二区三区欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

Develop WEB service on J2EE(網(wǎng)友翻譯)1

Develop WEB service on J2EE(網(wǎng)友翻譯)1

更新時(shí)間:2021-09-25 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

Developer's Guide to Building XML-based Web Services
with the Java 2 Platform, Enterprise Edition (J2EE)


I. 概要
基于XML的Web服務(wù)是參照B2B通信協(xié)作模式制定的新的規(guī)范。它提供了概念上和結(jié)構(gòu)上的,適用于各種不同平臺和產(chǎn)品的基礎(chǔ)。現(xiàn)在,開發(fā)者可以利用J2EE技術(shù)來開發(fā)基于XML的Web服務(wù)。他們可以利用現(xiàn)存的J2EE技術(shù)來開發(fā)完整的,遵從XML標(biāo)準(zhǔn)的,能完全共通的WEB服務(wù)。無需重新設(shè)計(jì)或者構(gòu)造現(xiàn)有的J2EE系統(tǒng),開發(fā)人員就可以構(gòu)建復(fù)雜的強(qiáng)大的Web服務(wù)應(yīng)用。
II. 介紹
Web 服務(wù)是一種可以接收從Internet或者Intranet上的其它系統(tǒng)中傳遞過來的請求,輕量級的獨(dú)立的通訊技術(shù)。這種技術(shù)允許網(wǎng)絡(luò)上的所有系統(tǒng)進(jìn)行交互。隨著技術(shù)的發(fā)展,一個(gè)Web服務(wù)可以包含額外的指定功能并且可以在多個(gè)B2B應(yīng)用中協(xié)作通訊。
Web 服務(wù)正在不斷完善,并且以一種非常智能的動(dòng)態(tài)的方法來進(jìn)行。這些靈活的Web服務(wù)可以理解請求中上下文的關(guān)系,并且在每一個(gè)特定的情況下產(chǎn)生動(dòng)態(tài)的結(jié)果。這些服務(wù)會(huì)根據(jù)用戶的身份,地點(diǎn)以及產(chǎn)生請求的原因來改變不同的處理,用以產(chǎn)生一個(gè)唯一的,定制的方案。這種協(xié)作機(jī)制對那些只對最終結(jié)果有興趣的用戶來說,是完全透明的。
這種Web服務(wù)所遵循的XML標(biāo)準(zhǔn)可以增進(jìn)事物通信的性能。開發(fā)人員將可以利用不同的平臺,產(chǎn)品和標(biāo)準(zhǔn)來實(shí)現(xiàn)很多種可能。通過這種標(biāo)準(zhǔn),開發(fā)人員可以建立一個(gè)系統(tǒng)使他們的Web服務(wù)提供最大的協(xié)同工作的能力。
這份白皮書描述了如何方便地利用Java和XML技術(shù)來實(shí)現(xiàn)Web服務(wù)構(gòu)架。它說明 了Web服務(wù)中的每一個(gè)關(guān)鍵部分以及如何使他們結(jié)合在一起。你將會(huì)對基于XML的Web服務(wù)的結(jié)構(gòu)以及如何與J2EE結(jié)合,有一個(gè)更加深入的了解
我們從如何利用J2EE建立Web服務(wù)開始。這部分將使你對如何建立一個(gè)Web服務(wù)有一個(gè)了解。
III. 總結(jié)
一般來說,在不同的事務(wù)之間進(jìn)行電子通信協(xié)作會(huì)有很多阻礙。全異的系統(tǒng),安全限制和不相同的數(shù)據(jù)格式,導(dǎo)致很多B2B系統(tǒng)在他們自己的領(lǐng)域或者客戶群中形成唯一。Web服務(wù)將改變這一切,使不同的事務(wù)互相通信變?yōu)榭赡,值得注意的是,這會(huì)降低建立商業(yè)站點(diǎn)的開發(fā)和維護(hù)成本。
在建立Web服務(wù)的時(shí)候,有三個(gè)主要步驟:
1.建立客戶端聯(lián)接 為了允許Applets,Applications,商業(yè)合作伙伴,瀏覽器和PDAs 使用Web服務(wù)。
2.實(shí)現(xiàn)Web服務(wù) 包括工作流,數(shù)據(jù)傳送,商業(yè)邏輯以及數(shù)據(jù)訪問。這些功能是隱藏在Web服務(wù)后,并且為客戶端工作的。
3.聯(lián)接后臺系統(tǒng) 這個(gè)系統(tǒng)可能包括一個(gè)或多個(gè)數(shù)據(jù)庫,現(xiàn)存的企業(yè)信息系統(tǒng),商業(yè)合作伙伴自己的系統(tǒng)或者Web服務(wù),以及在多個(gè)系統(tǒng)中共享的數(shù)據(jù)。
你可以利用J2EE來實(shí)現(xiàn)這三個(gè)目標(biāo)。用J2EE開發(fā)Web服務(wù)基于以下兩個(gè)技術(shù):
XML 技術(shù). 在Web服務(wù)中,XML 標(biāo)準(zhǔn)是非常重要的。XML是一種數(shù)據(jù)格式,它可以以一種連貫的方式來表現(xiàn)數(shù)據(jù),并且可以在網(wǎng)絡(luò)中以點(diǎn)對點(diǎn)的形式傳送。這些不同的XML標(biāo)準(zhǔn)連同指定的處理方法是設(shè)計(jì)來支持特定的行為的。
Java 技術(shù). Developers開發(fā)人員利用 J2EE APIs 來創(chuàng)建事務(wù)和表現(xiàn)的邏輯,訪問XML文檔,以及對XML文檔進(jìn)行操作。信任被證實(shí)可行的Java技術(shù)是非常重要的,因?yàn)樗试S開發(fā)者利用現(xiàn)有的下部構(gòu)造,在其上構(gòu)建新的功能。開發(fā)者可以繼續(xù)利用J2EE的標(biāo)準(zhǔn)API以及各種優(yōu)秀的組件來開發(fā)系統(tǒng)。現(xiàn)在,開發(fā)者可以利用J2EE中提供的Java API for XML Parsing (JAXP) 來開發(fā)Web服務(wù),我們將在稍后介紹。這個(gè)新的APIs主要用來處理XML數(shù)據(jù)格式以及服務(wù),將使開發(fā)變得更容易,效率更高。
圖 1 表現(xiàn)了基于J2EE的Web服務(wù)的核心構(gòu)架。請注意,很多APIs在這里并沒有全部表示出來,象用來解析或者傳送消息的。但是,那些基于J2EE的標(biāo)準(zhǔn),協(xié)議以及主要的子系統(tǒng)都表示出來了。


圖 1
讓我們進(jìn)一步看一下利用J2EE來創(chuàng)建Web服務(wù)的細(xì)節(jié)。



IV. 客戶端聯(lián)接
客戶端聯(lián)接是關(guān)于Web服務(wù)的使用者如何來使用你的系統(tǒng)。表格 1 顯示了三種主要使用系統(tǒng)的客戶。
客戶類型樣例如何聯(lián)接
商業(yè)合作伙伴代理商,客戶群基于XML的Web 服務(wù)技術(shù) (SOAP, UDDI, WSDL, ebXML)
瘦客戶端瀏覽器,PDAs,無線設(shè)備HTTP 協(xié)議
胖客戶端應(yīng)用小程序,應(yīng)用程序,已經(jīng)存在的系統(tǒng)。IIOP協(xié)議

表格 1
商業(yè)合作伙伴的聯(lián)接
第一種訪問Web服務(wù)的客戶類型是商業(yè)合作伙伴。他們可能使用很多種類型的編程語言,中間件或者硬件。當(dāng)他們訪問尼的系統(tǒng)的時(shí)候,Web服務(wù)要求返回一個(gè)XML文件。這個(gè)文件具有標(biāo)準(zhǔn)的標(biāo)記來表示商業(yè)數(shù)據(jù),并且允許不同的系統(tǒng)通過這個(gè)來交互。
Java Servlets
當(dāng)一個(gè)商業(yè)合作伙伴向Web服務(wù)發(fā)布一個(gè)請求的時(shí)候,接收請求的是一個(gè)Java servlet. 這個(gè)Servlet是一個(gè)在管理容器中運(yùn)行,負(fù)責(zé)接收請求和響應(yīng)的Java對象。它可以以很多種協(xié)議返回請求結(jié)果,象HTTP, FTP或者POP。在這個(gè)例子中Servlet通常使用HTTP來響應(yīng)請求,這樣的話,Web服務(wù)就可以利用HTTP來通過防火墻了。
當(dāng)一個(gè)請求到達(dá)J2EE Web服務(wù)的時(shí)候,以下操作會(huì)發(fā)生,見圖2
1.Java servlet接收XML 文檔。
2.Servlet 處理傳入的基于XML的請求
3.Servlet調(diào)用一個(gè)或者多個(gè)Enterprise JavaBeans (EJB) 組件來處理數(shù)據(jù)。
4.EJB組件進(jìn)行他們自己的處理,可能會(huì)調(diào)用其他存在的系統(tǒng)。
5.EJB 組件把結(jié)果返回給Servlet。
6.Servlet 把結(jié)果匯集到XML文檔中。
7.Servlet 把XML傳送到客戶端。
圖 2
為了實(shí)現(xiàn)商業(yè)合作伙伴的聯(lián)接,必須有一種方法來發(fā)布,描述,定位以及調(diào)用一個(gè)Web服務(wù)。我們現(xiàn)在來描述如何達(dá)到這個(gè)目的。
UDDI
在用戶能夠調(diào)用Web服務(wù)之前,必須確定這個(gè)服務(wù)內(nèi)包含哪些商務(wù)方法,找到被調(diào)用的接口定義,還要在服務(wù)端來編制軟件。所以,我們需要一種方法來發(fā)布我們的Web服務(wù)。
UDDI (Universal Description, Discovery, and Integration) 是一個(gè)主要針對Web服務(wù)供應(yīng)商和使用者的新項(xiàng)目。UDDI 項(xiàng)目中的成員可以通過UDDI Business Registry (UBR) 來操作Web服務(wù)的調(diào)用,UBR是一個(gè)全球性的服務(wù)。Web服務(wù)供應(yīng)商可以在UBR中描述并且注冊他們的服務(wù)。用戶可以在UBR中查找并定位那些他們需要的服務(wù)。 UDDI是一種根據(jù)描述文檔來引導(dǎo)系統(tǒng)查找相應(yīng)服務(wù)的機(jī)制。UDDI包含標(biāo)準(zhǔn)的"白皮書"類型的商業(yè)查詢方式,"黃皮書"類型的局部查找,以及"綠皮書"類型的服務(wù)類型查找。"綠皮書"允許開發(fā)者精確查找符合服務(wù)類型的所有服務(wù)。(這一段翻的比較奇怪)
UDDI利用SOAP消息機(jī)制(標(biāo)準(zhǔn)的XML/HTTP)來發(fā)布,編輯,瀏覽以及查找注冊信息。它采用XML格式來封裝各種不同類型的數(shù)據(jù),并且發(fā)送到注冊中心或者由注冊中心來返回需要的數(shù)據(jù)。
JAXR
為了支持UDDI在Java平臺上的功能,Java APIs for XML Registries (JAXR)允許開發(fā)者來訪問注冊中心。值得注意的是,JAXR并不是建立Web服務(wù)必需的,你可以利用其他常用的XML APIs來直接集成這些協(xié)議。JAXR是一個(gè)方便的API,它提供了Java API來發(fā)布,查找以及編輯那些注冊信息。它的重點(diǎn)在于基于XML的B2B應(yīng)用,復(fù)雜的地址本查找以及對XML消息訂閱的支持等Web服務(wù)。它也可以用來訪問其他類型的注冊中心,象ebXML注冊中心(稍候描述)。
這些對Web服務(wù)的注冊信息進(jìn)行的操作,可以使用當(dāng)前的一些Web服務(wù)工具來完成(例如第三方的SOAP和ebXML消息工具)。另外,當(dāng)JAXP提供了一致并具有針對性的API來完成這些操作,這將使開發(fā)變得更加容易。
WSDL
對于商業(yè)用戶來說,要找到一個(gè)自己需要使用的服務(wù),他必須知道如何來調(diào)用。WSDL (Web Services Description Language) 規(guī)范是一個(gè)描述接口,語義以及Web服務(wù)為了響應(yīng)請求需要經(jīng)常處理的工作的XML文檔。這將使簡單地服務(wù)方便,快速地被描述和記錄。
以下是一個(gè)WSDL的樣例:
<?xml version="1.0"?>
<definitions name="StockQuote"
targetNamespace="http://example.com/stockquote.wsdl"
xmlns:tns="http://example.com/stockquote.wsdl"
xmlns:xsd1="http://example.com/stockquote.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
 <schema targetNamespace=http://example.com/stockquote.xsd
 xmlns="http://www.w3.org/2000/10/XMLSchema">
<element name="TradePriceRequest">
<complexType>
 <all>
<element name="tickerSymbol" type="string"/>
</all>
 </complexType>
</element>
<element name="TradePrice">
<complexType>
<all>
 <element name="price" type="float"/>
 </all>
</complexType>
 </element>
</schema>
 </types>
 <message name="GetLastTradePriceInput">
 <part name="body" element="xsd1:TradePriceRequest"/>
 </message>
 <message name="GetLastTradePriceOutput">
 <part name="body" element="xsd1:TradePrice"/>
</message>
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/>
<output message="tns:GetLastTradePriceOutput"/>
 </operation>
</portType>
<binding name="StockQuoteSoapBinding"
type="tns:StockQuotePortType">
 <soap:binding style="document"
 transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetLastTradePrice">
<soap:operation
 soapAction="http://example.com/GetLastTradePrice"/>
<input>
 <soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
 </operation>
</binding>
 <service name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort" binding="tns:StockQuoteBinding">
<soap:address location="http://example.com/stockquote"/>
</port>
 </service>
</definitions>
它包含了以下的關(guān)鍵信息:
·消息的描述和格式定義可以通過XML文檔中的<types>和<message> 標(biāo)記來傳送。
·<portType> 標(biāo)記中表示了消息傳送機(jī)制。 (e.g. request-only, request-response, response-only) 。
·<binding> 標(biāo)記指定了編碼的規(guī)范 。
·<service> 標(biāo)記中表示服務(wù)所處的位置 (URL)。
WSDL在UDDI中總是作為一個(gè)接口描述文檔。因?yàn)閁DDI是一個(gè)通用的用來注冊WSDL規(guī)范的地方,UDDI的規(guī)范并不限制任何類型或者格式描述文檔。這些文檔可能是一個(gè)WSDL文檔,或者是一個(gè)正規(guī)的包含導(dǎo)向文檔的Web頁面,也可能只是一個(gè)包含聯(lián)系信息的電子郵件地址。
現(xiàn)在Java提供了一個(gè) Java API for WSDL (JWSDL)規(guī)范。它提供了一套能快速處理WSDL文檔的方法,并且不用直接對XML文檔進(jìn)行操作,它會(huì)比JAXP更方便,更快速。
圖 3 顯示了如何使用WSDL 和 UDDI。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

主站蜘蛛池模板: 新兴县| 蓬溪县| 宾阳县| 连城县| 巴楚县| 蒙自县| 玛曲县| 漳浦县| 英山县| 清水县| 屏东县| 正阳县| 子洲县| 柘城县| 鄢陵县| 临城县| 南皮县| 嘉黎县| 磐石市| 大英县| 大关县| 子洲县| 高雄县| 无锡市| 武义县| 普兰店市| 东光县| 什邡市| 仁寿县| 丰顺县| 凌云县| 鹤峰县| 都匀市| 汉源县| 江西省| 青神县| 修文县| 普安县| 中卫市| 邻水| 永川市|