PHP沒有中間件,導致了對很多麻煩。比如,對數(shù)據(jù)庫的操作必須要鏈接數(shù)據(jù)庫,然后做SQL操作。WEB程序直接操作數(shù)據(jù)庫的方法,這樣會帶來很多 人為因素的事故隱患,以及管理上的麻煩,尤其是對大型的網站應用來說。規(guī)范的模式應該是,WEB程序傳遞參數(shù)到一個服務程序上,由該服務程序進行判斷并最 終操作數(shù)據(jù)庫或者其它數(shù)據(jù)文件,這樣做到了明確權限控制,和業(yè)務類型集中管理。去年伴隨著ICE的推出,PHP終于有了可以使用的中間件。在PHP的發(fā)展 史上,應該是一個里程碑。
創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:成都網站設計、做網站、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的鹽邊網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!一、什么是中間件?
中間件是一種可復用軟件。中間件在操作系統(tǒng)、網絡和數(shù)據(jù)庫之上,應用軟件的下層,總的作用是為處于自己上層的應用軟件提供運行與開發(fā)的環(huán)境,幫助用戶靈 活、高效地開發(fā)和集成復雜的應用軟件。
在中間件發(fā)展史上,有三款相當成功的中間件。RPC(Remote process call 遠程過程調用),是SUN公司首推,目前在Solaris、Linux、BSD等操作系統(tǒng)下都屬于在Kernel級支持的軟件,支持TCP、UDP、 UNIX-Socket等多種網絡協(xié)議,大名鼎鼎的NFS就是依靠RPC開發(fā)而成的。WINRPC,是微軟的產品,應該說是仿造RPC,網絡鄰居就是在 WINRPC的基礎上開發(fā)的。另外一個是Corba,典型的商業(yè)軟件中間件,具有更大的靈活性和易用性。很遺憾,幾乎所有的中間件都缺乏對PHP的支持。
所謂的支持,是沒有相對于這種語言的Lib支持,但可以通過C編寫PHP Extension完成。
中間件工作模式基本上都是:用戶Clinet邏輯功能快—>中間件Clinet模塊 —-網絡—–> 中間件Server模塊—–>用戶Server邏輯功能塊。由此可見中間件完成了最繁雜的部分,在使用中間件的時候,開發(fā)者只需要專注于業(yè)務 功能邏輯的實現(xiàn)就可以了,大大縮短了開發(fā)時間。
二、ICE與PHP
ICE(Internet Communications Engine 網絡通訊引擎),是由Corba原核心成員開發(fā)的一個開源中間件,據(jù)稱其各種性能完全優(yōu)于Corba。除此之外,我們第一次見到了直接支持PHP的中間 件。
ICE的安裝,去http://www.zeroc.com/download.html 下載一個Ice針對PHP的安裝包,按照說明安裝上。
ICE的使用:使用Slice(ICE的一種簡單語法腳本),編寫一個xx.ice文件。可以使用slice2cpp或slice2java等生成一個 cpp或java的ICE框架程序,然后在這個框架程序中進行代碼編寫。ICE在PHP的應用繼承了PHP的一貫傳統(tǒng)——簡單,只需要在php.ini中 加載該xx.ice,在PHP中就可以使用了。
ICE在PHP應用中的缺點,無法使用PHP編寫Server端,其實這也是PHP的一個缺陷——沒有完善的多進程和多線程管理機制。因此,Server 端可以采用ICE所支持的其它語言進行編寫,比如JAVA/C++/VB/PYTHON等。
三、ICE為PHP帶來的突破,快速實現(xiàn)類似.Net/Java等Web程序與其它服務程序的通訊功能,從而PHP可以應對更加復雜的應用程序框 架。
感謝大家的閱讀,希望大家受益良多。
本文轉自:https://blog.csdn.net/wxl1986622/article/details/7069453
更多教程:《php教程》
網站名稱:PHP的中間件
網站鏈接:http://m.newbst.com/article20/cggoco.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供響應式網站、關鍵詞優(yōu)化、微信公眾號、靜態(tài)網站、軟件開發(fā)、微信小程序
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)