複製鏈接
請複製以下鏈接發送給好友

APP

(中間件)

鎖定
App 是英文Application的簡稱,由於iPhone智能手機的流行,現在的APP多指智能手機的第三方應用程序。比較著名的App商店有Apple的iTunes商店裏面的App Store,android的Google Play Store,諾基亞的ovi store,還有Blackberry用户的BlackBerry App World,以及微軟的應用商城. 蘋果的iOS系統,app格式有ipa,pxldeb,谷歌的Android系統,app格式為APK,諾基亞的S60系統,APP格式有sissisx,微軟的windowsphone7、windowsphone8系統,app格式為xap。 一開始APP只是作為一種第三方應用的合作形式參與到互聯網商業活動中去的,隨着互聯網越來越開放化,APP作為一種萌生與iphone的盈利模式開始被更多的互聯網商業大亨看重,如騰訊微博開發平台百度百度應用平台都是 APP思想的具體表現,一方面可以積聚各種不同類型的網絡受眾,另一方面藉助APP平台獲取流量,其中包括大眾流量和定向流量
外文名
APP
全    稱
Application
前    身
middleware

APPAPP的前身

app server的前身是middleware(中間件),歷史要長的多。早在上世紀六七十年代就已經開始在IBM大型機系統上廣泛應用了,叫做TP Monitor,比較著名的是BEA的Tuxedo和IBM的CICS,運行在Terminal/Server模式的Server端,其功能主要是分離商業邏輯,進行分佈式計算的,可以自動管理事務、資源和容錯等等。因為發展的時間很長,所以技術非常成熟。middleware最早是用cobol編寫的,現在還可以偶爾看到cobol的中間件的舊系統,再後來middleware改用C++來實現,著名中間件的有IBM的CICSBEA的uexdo,仍然廣泛的應用在高端系統中,特別是銀行系統。

APPAPP服務器

市場上常見的app 服務器的主要有以下幾種:
1. Tomcat. Tomcat嚴格意義上並不是一個真正的App Server, 它只是一個可以支持運行Serlvet/JSP的Web容器,不過Tomcat也擴展了一些AppServer的功能,如JNDI數據庫連接池,用户事務處理等等。Tomcat被非常廣泛的應用在中小規模的Java Web應用中;
2. BEA Weblogic.
3. IBM Websphere.
4. Jboss. Jboss是免費開源的App Server.
然而在面嚮對象的技術出現和廣泛的應用之後,TP Monitor由於不是面向對象的,而是面向過程的調用,因此TP Monitor管理的商業邏輯並沒有分佈式對象系統中的商業組件那樣的可擴展性可重用性,表現出來很大的侷限。
不過像PHP這樣主要還是面向過程調用的函數式的語言來説,TP Monitor仍然可以支持的非常完美,由於有了TP Monitor的支持,PHP也可以應用在企業的環境中了。
我所知道的eachnet用的是: Linux+Apache+PHP+Tuxedo+Oracle
eachnet上海好幾個ISP那裏放了服務器,以保證服務不因某個ISP的問題而無法訪問。我曾經見過eachnet在上海熱線機房的服務器,説出來,大家可能不信,eachnet竟然用的是自己攢的兼容機,世紀之星的機箱,估計不比我們大家自己買的兼容機強到哪裏去。大概有六七台機器的樣子,來負載均衡
對象請求代理(Object Request Brokers)是另一種用的很多的中間件,支持分佈式對象的調用。然而它的問題是僅僅是一個代理(Broker),系統級的功能需要自己來實現,這包括管理併發性、事務、資源管理容錯機制等等,而且不同的廠商提供的ORB之間也存在互操作兼容性問題。
於是一種綜合了TP Monitor和ORB功能的新的服務器出現了,叫做CTM(Component Transaction Monitor)組件事務監控器。用在我們特定的管理應用程序的環境中就是App Server。
在1997年開始,CTM市場發生了巨大的變化,因為這一年Sun的J2EE標準正式發佈,從此除了微軟之外,所有的CTM廠商都用Java來改寫自己的產品,例如Sybase原來有一個叫做Jagus CTS的東西,現在已經變成了純Java實現的EAServer,Borland的公司app server也是這樣來的。這樣一來,除了微軟之外,就剩下基於Java的app server了。
App Server可以自動管理併發性、事務、對象分佈、負載均衡、安全性和資源管理等等系統級功能。簡單的來説就是App Server是管理服務端組件的,它給服務端組件提供了一個全功能可靠的運行環境
打個比方來説,數據庫系統是管理數據的,它也給數據提供了一個受監控和管理的運行環境,提供了事務、安全性、負載均衡,併發性等等系統級功能,對於使用者來説,你不需要自己處理數據庫表的併發鎖定問題,自己處理SQL語句的解析、自己處理索引的優化等等系統級功能,同樣對於服務端組件的調用者來説也不需要自己處理併發請求、對象創建、銷燬、緩存,控制組件事務等等系統級功能。
App Server對服務端組件的的關係就是數據庫系統對數據的關係。App Server完全是一個類似數據庫系統這樣一個非常複雜的服務端軟件,所不同之處就是數據庫系統(RDBMS)是管理數據的,而App Server是管理對象的。這也是我研究Weblogic Server之後的切身感受。
Microsoft是最早發佈App Server的廠商,叫做Microsoft Transaction Server(MTS)。其他還有很多基於不同技術的App Server,不過隨着EJB規範的發佈,主流的App Server基本上都是基於J2EE的了。AppServer市場主要就是實現J2EE規範的Java應用服務器和Microsoft的.Net應用服務器這兩大主流。
Tuxedo等基於過程傳統的中間件會繼續在特定的場合發揮巨大的作用,像那些需要極高的響應性能和基於特定平台C/C++的場合,還是具有不可替代的作用。
App Server提供的服務端組件模型並沒有解決所有的問題,基於不同技術實現的服務端組件之間不能互相調用和數據共享,比如EJB組件和COM組件之間不能之間交換數據,所以基於SOAP協議的Web Services試圖解決這個問題,想把互聯網上所有的不同技術實現的組件服務都統一成單一的Web Services。這也是Web Services熱門的原因之一,標準的統一對大家都有好處。