串連PHP和 Java -- PHP/Java Bridge [1]_PHP教程

來源:互聯網
上載者:User
在WEB開發市場中,Java和PHP都是目前應用的熱門技術。Java的強大是不容置疑的,不僅體現在WEB開發上,在各個軟體應用領域,Java無所不在。而PHP在開源力量及ZEND,IBM,Oracle等公司的推動之下也日漸繁榮。不一定會有人相信互連網先鋒人物Marc Andreessen 的預言“PHP將比Java更受歡迎”,但是“PHP瞄準企業市場,和Java展開正面較量”確實進行中中,全球2200萬個網站所採用的技術讓人不得不重視。

  兩種技術可以激烈競爭,也可以緊密合作。從客戶的角度來說,技術之間的融合非常重要,因為一個龐大的應用系統,通常不可能由單一語言/和技術獨立完成。PHP/Java Bridge的出現就將成為PHP和Java間的一道橋樑,為需要結合PHP與Java的企業提供一個良好的選擇。

  //Haohappy對J2EE瞭解不深,如果有相關內容理解錯誤,歡迎批評指教。

  (一)什麼是JSR,什麼是JSR223 ?

  JSR(Java 規範請求)是指向JCP(Java Community Process)提出新增一個標準化技術規範的正式請求。任何人都可以提交JSR(Java 規範請求),以向Java平台增添新的API和服務。JSR已成為Java界的一個重要標準。

  在Java Servlet規範(Servlet 2.4,JSR-154)中,定義了一系列核心的抽象概念(WEB程式處理過程中需要考慮的各種對象)來讓Java程式員編寫WEB程式,包括session,request,response等等。當程式員在編寫程式的時候,可以很方便安全地與這些對象進行通訊。JSR223描述的是這些Java對象如何向用其它指令碼語言編寫的WEB頁面開放,使其它語言也可以訪問這些對象。當前這個規範將被用於PHP,不過這種概念是獨立於指令碼語言的,也就是說在將來可能被應用於PHP之外的其它指令碼語言。一句話,JSR223的目的是將指令碼語言整合到Java平台之上。

  (二) 什麼是PHP/Java Bridge ?

  PHP/Java Bridge包含一個PHP模組(包括java.so,php_java.dll)和一個相關的後端程式(JavaBridge.jar,JavaBridge.war或MonoBridge.exe),用於串連PHP的對象體繫到Java或ECMA 335(CLI, Microsoft .NET Framework的重要子集)虛擬機器。 它完全實現了JSR 223規範請求,可以使PHP指令碼訪問基於CLR(如VB.NET,C#)或Java(Java,KAWA,JRuby)的應用程式。PHP/Java Bridge通過本地socket用一個高效的通訊協議與虛擬機器進行通訊。一個多進程的HTTP伺服器的每個處理請求的PHP進程都會有一個相應的虛擬機器進程。

  多個HTTP伺服器的請求會被集中發送到一個運行著PHP/Java Bridge的應用伺服器,或者每個HTTP伺服器都有一個PHP/Java Bridge並和一個J2EE應用伺服器進行通訊,必需的用戶端類庫(ejb client.jar)將在運行時被載入。

  如果在ECMA虛擬機器內至少有一個後端程式在運行,例如Novell的MONO或Microsoft的 .NET,那麼基於ECMA 335的類就可以被訪問,也可以支援varargs, reflection,assembly loading等特性。

  如果在J2EE環境中有一個後端程式運行,PHP和JSP間就可以實現session共用,可以實現叢集和Server Load Balancer。

  和以前的嘗試 (ext/java 或 JSR223 的樣本)不同,PHP/Java Bridge不再使用JNI(Java本地介面)。PHP對象將從HTTP(Apache/IIS)池而來,而Java/J2EE的對象從後端程式中分配而來。對象間通過“通訊傳遞樣式(continuation passing style)”來進行通訊,見下面的java_closure()。一旦一個PHP對象崩潰,不會影響到Java應用伺服器和servlet引擎。

  從PHP/Java Bridge version 3.0開始,我們也可以把Java作為PHP指令碼的一個運行環境。Java代碼可以分配和調用PHP指令碼,通過一個外部或內部的Java池。指令碼對象可以來自於外部的HTTP池,或內部的php FastCGI池或直接使用php CGI。這個功能需要Java 6(預計2006年上半年推出) 或外部的javax.script包。

http://www.bkjia.com/PHPjc/508503.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/508503.htmlTechArticle在WEB開發市場中,Java和PHP都是目前應用的熱門技術。Java的強大是不容置疑的,不僅體現在WEB開發上,在各個軟體應用領域,Java無所不在。...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.