標籤:
昨天參加Oracle的一個活動,知道了WebLogic的強大,於是對應用伺服器產生了興趣。
WebLogic是一個Java EE應用伺服器(與Java EE對應的另外一個技術平台就是.NET)。
為什麼要應用伺服器?
當你開發了一個服務端應用程式,部署到伺服器之後,需要一個針對這個應用程式的執行環境,而不是將代碼放到伺服器上就能運行。
你需要將Java的JVM或者.NET的CLR運行起來執行你的應用程式;如果是Web應用程式,需要接收使用者通過瀏覽器發出來的請求,並且能將處理結果返回給瀏覽器。。。
所以,伺服器上僅有作業系統是不夠的,還需要相應的應用程式執行環境,最好能有提供執行環境、方便應用程式啟動並執行專用伺服器,於是應用伺服器應運而生。
如果你是用Java開發的服務端應用程式,不管伺服器用的是什麼作業系統,只要安裝一個Java應用伺服器就行了,比如這裡提到的WebLogic。
如果你是用.NET開發的服務端應用程式,如果伺服器用的是Windows,你需要安裝IIS,安裝.NET Framework;如果伺服器用的是Linux,您需要安裝Apache,安裝Mono,安裝Apache Mono模組。如果有跨平台的.NET應用伺服器,比如叫NWeblogLogic,不管伺服器用的是什麼作業系統,只要安裝NWeblogLogic,就能跑.NET應用程式,是不是更幸福一些。
目前有沒有.NET應用伺服器?
有!一圖勝千言,請看:
Windows Server 2012有一個專門的角色叫Application Server,而要跑.NET Web應用程式,必須要安裝Application Server中的2個功能:IIS+.NET Framework 4.5。
所以,我覺得在不開源的.NET時代,真正的.NET應用伺服器就一個——IIS+.NET Framework。
隨著.NET進入開源時代,你可以把IIS換成另外的Web伺服器(因為有了OWIN),把.NET Framework換成.NET Core,再加上OWIN伺服器,再加上WCF的替代品,將這些打包在一起,做成一個.NET應用伺服器——NWebLogic。Mono也許可以往這個方向發展。
應用伺服器是一個不容易理解的概念,寫出來理清一下自己的理解,不對之處,歡迎指出。
【更新】
目前我最喜歡的對Application Server的定義:
An application server exposes business logic to client applications through various protocols.
【補充】
PC Magazine對Application Server的解釋值得一看,把其中的幾張圖貼出來:
【相關連結】
Java vs .Net
Why does Java apps need an application server and .Net just IIS Web Server?
Application Server vs. Web Server
.NET應用伺服器