LAJP名稱來源于著名的LAMP(Linux,Apache,Mysql,Php),LAMP是輕量級的開發 Web程序的環境,在Internet上有廣泛的應用,但對于企業開發,如金融、電信領域,LAMP顯得能力不足,這些領域通常是Java(J2EE)的 勢力范圍。LAJP是將LAMP的簡便性和Java能力結合起來的一項技術,LAJP中的J指的是Java,由于數據庫廠商對Java的廣泛支持和 LAJP針對的領域,數據庫不再特別限制為Mysql。
LAMP和LAJP的簡要對比 LAMP從傳統技術架構上看屬于2層結構,雖然在php5以后增強了面向對象的能力,有了形成業務邏輯層的語言基礎,但對于復雜的企業級WEB應 用,php語言能力仍顯不足。LAJP繼承了LAMP在WEB領域編程的活力,并用java構建業務邏輯層,非常適合針對企業級WEB項目的開發。
php和 java是兩種不同的語言,在LAJP架構中二者之間的互通有兩種機制。
以操作系統的消息隊列為溝通媒介,在通訊 過程中php作為客戶端調用java端服務。消息隊列屬于IPC技術(進程間通訊),php語言中內置了一組函數(msg_send、 msg_receive等)可以和System V消息隊列通訊,而java中沒有相似的方法,因此通過調用底層JNI接口使用C函數來實現。 使用消息隊列有以下好處:
消息隊列技術只能適用于Unix/Linux/BSD系統,因此LAJP提供基于TCP/IP的通訊機制,從而適 應各種平臺。
PHP和Java各有其語言內部定義的數據類 型,當PHP數據傳送到Java,或Java數據傳送到PHP時,LAJP在內部自動地、準確地對他們進行轉換,程序員無需進行任何的解碼工作。