Java模塊化,OSGi,以及Azure云計(jì)算
Posted on 2010-02-03 12:12 趙斌 閱讀(2521) 評(píng)論(0) 編輯 收藏 所屬分類: 1.技術(shù)區(qū)Java模塊化,OSGi,以及Azure云計(jì)算
對(duì)Java的模塊化概念、歷史、來龍去脈進(jìn)行了很好的介紹。了解模塊化的重要性,區(qū)分編譯時(shí)和運(yùn)行時(shí)模塊化的差別,構(gòu)建自己的Plugins來擴(kuò)展系統(tǒng),JSR 277(現(xiàn)已廢止)到JSR 291,Java 7將是模塊化的。
使用OSGi來理解模塊化的概念,是很好的OSGi入門示例。重點(diǎn)是帶版本的依賴,使得多版本同時(shí)運(yùn)行成為可能,為模塊進(jìn)化提供了基礎(chǔ)。
精彩的就是這篇?jiǎng)討B(tài)模塊化。
只要servlet引擎沒有保持對(duì)老版應(yīng)用的引用,這些類就像其他Java對(duì)象一樣被垃圾回收器回收了。——可能這是平臺(tái)支撐熱部署的關(guān)鍵。
通過查找和綁定,使得每次動(dòng)態(tài)獲得服務(wù)的引用,確保不會(huì)保持老版本的服務(wù)對(duì)象。實(shí)現(xiàn)的方式可以是context.getService(getServiceReference("java.sql.Driver")),或者用ServiceTracker來實(shí)現(xiàn),使用ServiceTracker來管理服務(wù)依賴通常被認(rèn)為是管理關(guān)系的好方法。還可以對(duì)服務(wù)的屬性進(jìn)行過濾,以便選擇所需的服務(wù)。
通過OSGi實(shí)現(xiàn)邏輯分離,通過CXF實(shí)現(xiàn)物理分離,再用ASF將OSGi和CXF統(tǒng)一成服務(wù),實(shí)現(xiàn)可配置的動(dòng)態(tài)部署。
JSR-294引入了新的可見性關(guān)鍵字“module”,意味著模塊化成為語言特性,模塊之間的可見性限制將會(huì)由編譯器來負(fù)責(zé)檢查。
依賴、部署時(shí)依賴、可選依賴、依賴沖突,或許模塊之間的關(guān)系就是相互依賴的關(guān)系。
感覺整個(gè)Java都在向模塊化發(fā)展,大量的第三方基于OSGi的創(chuàng)新正在不斷涌現(xiàn),新的規(guī)范甚至包括WAB,所以,我們的產(chǎn)品內(nèi)部使用OSGi是完全沒有問題的。
同時(shí),要和其他的應(yīng)用打交道,則要通過WS-*,這是我們表現(xiàn)出完全開放性的一面。
云計(jì)算終于來了,不知道是否真的便宜?
Windows Azure Platform是微軟完整的云計(jì)算平臺(tái),目前包含了如下3大部分:
- Windows Azure:即運(yùn)行在云中的一個(gè)操作系統(tǒng),對(duì)于用戶來說是虛擬且透明的,其中提供了一系列底層服務(wù)。
- SQL Azure:運(yùn)行于云中的一個(gè)關(guān)系數(shù)據(jù)庫,和SQL Server 2008基本一致。
- AppFabric:全名是Windows Azure platform AppFabric,提供了訪問控制、服務(wù)總線等服務(wù),用于把基礎(chǔ)應(yīng)用連接到云中。
云操作系統(tǒng) + 云數(shù)據(jù)庫 + 云平臺(tái),其實(shí),我們提供的ASF+ORG+AC等,相當(dāng)于Azure的云平臺(tái)。
Google 的BigTable則是Google的云數(shù)據(jù)庫,Google還多一個(gè)云操作系統(tǒng)GFS。
【趙斌原創(chuàng),保留一切權(quán)利,轉(zhuǎn)載請(qǐng)保留引用:www.aygfsteel.com/zhaobin,注明轉(zhuǎn)載除外,謝謝!】