突破夢想 Java在微軟云平臺邁出第一步 |
發(fā)布時間: 2012/8/2 11:29:55 |
本月微軟的架構(gòu)師David Chou將會在JavaOne的大會上做一個演講,主題是在微軟的Azure云平臺上部署Java應用?紤]到Azure是典型的基于.Net應用的微軟技術(shù)平臺,InfoQ與Chou先生探討了Java能在Azure上做什么,不能做什么。
首先,David Chou鼓勵開發(fā)人員把Azure看作“另一個基于Windows服務器的開發(fā)環(huán)境,你可以往上部署代碼...其模型可以理解為一個巨大的zip文件。如果你能把應用放入一個閃存驅(qū)動器,而且還能從驅(qū)動器中啟動應用,那么就可以在Azure上運行你的應用了”。理論上這意味著只要Java開發(fā)人員為自己的應用綁定完整的JRE,然后寫個小的C#引導程序就可以在Azure上運行Java了。 但實際上,一個典型的Java程序必須克服一些障礙才能運行。據(jù)Chou先生所言,依賴Java的NIO功能或使用了內(nèi)部網(wǎng)絡通信(例如Jboss集群)的應用是不能在Azure的網(wǎng)絡沙箱內(nèi)運行的。 為了說明這些限制,Chou先生描述了他是如何讓一個基于Jetty的應用程序運行在Azure上的: 1. 使用Visual Studio創(chuàng)建Azure應用框架; 2. 把Jetty NIO ChannelConnector換為阻塞的IO ChannelConnector; 3. 以C#程序員的視角編寫邏輯代碼找到內(nèi)部和外部端口,并用正確的端口參數(shù)啟動Jetty; 4. 在Java應用的包內(nèi)綁定Jetty應用容器和JRE; 5. 把Jetty的配置中涉及寫文件系統(tǒng)的信息全部注釋掉(這是個可選項,但如果你想繞過它,就需要編寫更 多的C#代碼)。 Chou先生認為目前在Azure上進行Java開發(fā)具備如下特點: 這是漫長旅途中的第一步,我感覺又回到了剛開始用Java開發(fā)的時候,而且我們沒有IDE集成開發(fā)環(huán)境。構(gòu)建客戶端應用時我們不得不使用文本編輯器處理AWT,F(xiàn)在的階段是:我們可以使用Java和部署一個完整的Java應用,但事實上還有很大的改進空間。 4季度會發(fā)布SDK1.3版本,Chou先生保證開發(fā)人員會更容易使用網(wǎng)絡沙箱,減少限制,并提供更多的管理回調(diào)機制,用來啟動進程、解壓縮、用C#腳本引導應用。當問道哪種類型的用戶試圖把Java部署到Azure上時,Chou先生介紹了Domino's Pizza項目,微軟提供幫助把基于Tomcat的應用遷移到了Azure上。除了把應用遷移到Azure的計算資源上,同時也把數(shù)據(jù)存儲遷移到了微軟的云存儲中。這次遷移的動機是為了解決晚餐期間超過50%的交通高峰期,特別是在周五和周日的超級杯(美式足球冠軍)。當問及這個試點項目是否著手實施了,他表示該項目仍處于構(gòu)思階段。 總的來說,如果你是個Java開發(fā)人員,而且安裝了VisualStudio,同時還有一個對網(wǎng)絡需求不敏感的Web應用,該應用沒有使用太多的J2EE特性,那么你可以嘗試將其部署到Azure的云上。其他人最好等年底SDK1.3的發(fā)布。想了解更多信息,請參加JavaOne周四早八點Chou先生的演講。 本文出自:億恩科技【1tcdy.com】 |