LAJP名稱來源于著名的LAMP(Linux,Apache,Mysql,Php),LAMP是輕量級的開發 Web程序的環境,在Internet上有廣泛的應用,但對于企業開發,如金融、電信領域,LAMP顯得能力不足,這些領域通常是Java(J2EE)的 勢力范圍。LAJP是將LAMP的簡便性和Java能力結合起來的一項技術,LAJP中的J指的是Java,由于數據庫廠商對Java的廣泛支持和 LAJP針對的領域,數據庫不再特別限制為Mysql。
特點
- 優勢互補: PHP是非常流行的WEB編程腳本語言,有易學、易用、開發部署效率高的特點,非常適合WEB開發;JAVA適合編寫具有復雜的業務功能和數據的程序,二 者結合可發揮各自優勢,適合開發B/S企業程序。
- 高效穩定:Apache+PHP 組合可帶來優異的WEB服務穩定性,而JAVA可補充如連接池、事物管理、分布式、對象模型等高端特性。
- 創新的通信機制 PHP和Java間的通訊方式采用系統消息隊列和Socket兩種機制,同時兼顧通訊效率和平臺兼容性。
- 數據類型自動轉換機制 PHP數據和Java數據可準確、自動匹配和轉換。
- 易用:LAJP安裝配置簡單,除了核心的幾個Java類文件和Java JNI接口程序外,不需額外插件,PHP端和JAVA端編程符合各自的編程習慣。
- 輕 量級:LAJP架構非常輕量級,除了最基本的PHP和Java環境,不需要任何擴充的、第三方的組件。
LAMP和LAJP的簡要對比 LAMP從傳統技術架構上看屬于2層結構,雖然在php5以后增強了面向對象的能力,有了形成業務邏輯層的語言基礎,但對于復雜的企業級WEB應 用,php語言能力仍顯不足。LAJP繼承了LAMP在WEB領域編程的活力,并用java構建業務邏輯層,非常適合針對企業級WEB項目的開發。
php和java的互通
php和 java是兩種不同的語言,在LAJP架構中二者之間的互通有兩種機制。
以操作系統的消息隊列為溝通媒介,在通訊 過程中php作為客戶端調用java端服務。消息隊列屬于IPC技術(進程間通訊),php語言中內置了一組函數(msg_send、 msg_receive等)可以和System V消息隊列通訊,而java中沒有相似的方法,因此通過調用底層JNI接口使用C函數來實現。 使用消息隊列有以下好處:
- 使php和java保持獨立性
- 有極高的傳輸速度,大于socket
- 相 對于socket方式,Java服務端只向本機提供服務(沒有對外偵聽端口),相對安全,易于管理。
消息隊列技術只能適用于Unix/Linux/BSD系統,因此LAJP提供基于TCP/IP的通訊機制,從而適 應各種平臺。
數據類型轉換
PHP和Java各有其語言內部定義的數據類 型,當PHP數據傳送到Java,或Java數據傳送到PHP時,LAJP在內部自動地、準確地對他們進行轉換,程序員無需進行任何的解碼工作。