很多 Web 開(kāi)發(fā)人員喜歡 PHP 的豐富功能和簡(jiǎn)單易用,但有時(shí)候他們需要訪(fǎng)問(wèn) J2EE 應(yīng)用程序服務(wù)器中已有的業(yè)務(wù)邏輯。本文將通過(guò)一些例子說(shuō)明如何通過(guò) PHP 5 中新的 SOAP 擴(kuò)展使用 Web 服務(wù)來(lái)訪(fǎng)問(wèn) J2EE 應(yīng)用程序,而不必脫離 PHP 環(huán)境,也不用學(xué)習(xí)新的編程模型。
PHP、Web 服務(wù)和 SOAP 簡(jiǎn)介
本文將介紹如何從 PHP 腳本中訪(fǎng)問(wèn)企業(yè)應(yīng)用程序。您可能是一位 PHP 程序員,需要為部門(mén) Web 應(yīng)用程序編寫(xiě)代碼,以便訪(fǎng)問(wèn)公司總部以 Web 服務(wù)方式提供的服務(wù)。您或許是一位有經(jīng)驗(yàn)的 J2EE 開(kāi)發(fā)人員,希望多了解一點(diǎn) PHP 及其應(yīng)用。本文中的例子是一個(gè)運(yùn)行在 IBM WebSphere? 應(yīng)用程序服務(wù)器上的 Enterprise JavaBean(EJB),但本文并沒(méi)有討論 Web 服務(wù)的部署。它的主要目標(biāo)是介紹如何從 PHP 中使用 Web 服務(wù),這一點(diǎn)可以應(yīng)用于各種 Web 服務(wù)實(shí)現(xiàn)。
什么是 PHP?
PHP:Hypertext Preprocessor(超文本預(yù)處理器,PHP)是一種流行的服務(wù)器端腳本語(yǔ)言,用于創(chuàng)建動(dòng)態(tài) Web 內(nèi)容。PHP 解釋器為主流平臺(tái)提供了源代碼或者編譯好的二進(jìn)制文件,這些平臺(tái)包括大多數(shù) Linux? 版本、Windows?、Mac OS X 和 iSeries?。
確實(shí)有數(shù)百萬(wàn)臺(tái) Web 服務(wù)器正在運(yùn)行 PHP,其中大部分使用的是 PHP 4。2004 年 7 月推出的 PHP 5 正在逐漸被采用。PHP 5 改進(jìn)了對(duì)象模型,底層的內(nèi)存管理也從多線(xiàn)程和性能的角度重新作了設(shè)計(jì)。但是需要注意少數(shù)無(wú)法向后兼容的修改,PHP 手冊(cè)中對(duì)這些進(jìn)行了記錄。
什么是 Web 服務(wù)技術(shù)?
Web 服務(wù)指的是自成體系的、模塊化的應(yīng)用程序,客戶(hù)機(jī)和服務(wù)在這種應(yīng)用程序中是松耦合的。關(guān)于 Web 服務(wù)的詳細(xì)信息,對(duì)于本文來(lái)說(shuō),您只需要了解其中的主要技術(shù):
SOAP(簡(jiǎn)單對(duì)象訪(fǎng)問(wèn)協(xié)議)定義了客戶(hù)機(jī)與服務(wù)器之間傳遞的消息。消息采用 XML 格式。SOAP 獨(dú)立于平臺(tái)、編程語(yǔ)言、網(wǎng)絡(luò)和傳輸層。本文將討論 HTTP 上的 SOAP。
WSDL(Web 服務(wù)描述語(yǔ)言)是用于描述 Web 服務(wù)的基于 XML 的語(yǔ)言,描述內(nèi)容包括服務(wù)的位置、格式、操作、參數(shù)和數(shù)據(jù)類(lèi)型。
UDDI(統(tǒng)一描述、發(fā)現(xiàn)和集成)是用 API 和 UDDI Registry 實(shí)現(xiàn)來(lái)提供在網(wǎng)絡(luò)上存儲(chǔ)和檢索 Web 服務(wù)信息的方法。
本文包括 SOAP 消息和 WSDL 文檔的一些例子,但沒(méi)有提供 UDDI 的例子。
XMethods 網(wǎng)站是一個(gè)有用的 Web 服務(wù)工具,在那里可以找到在各種服務(wù)器平臺(tái)上實(shí)現(xiàn)的可公開(kāi)使用的 Web 服務(wù)的列表。可以使用本文中的例子很方便地訪(fǎng)問(wèn)從 XMethods 中選擇的服務(wù)。