Chasing an mobile web vision

          闖蕩在移動互聯網的世界中

          osgi介紹(二)一個假想的實例

          如何分析OSGi service platform的機制?給出幾個硬生生的例子,然后分析一下
          代碼?那還不如你自己看書看規(guī)范好了。因此,我覺得還是結合一個應用實例來分析會更
          容易理解,當然,是一個假想的應用實例。用怎樣一個實例呢?嗯......

          幾個月前,一個中學同學打電話給我說他們要在PDA上開發(fā)一個簡單的應用程序來臨時紀
          錄工作的結果,并向我咨詢,這種開發(fā)的難度和周期。這事啟發(fā)我了,就以PDA的應用為
          背景,讓我們來假想一個場景,從而來比較傳統(tǒng)的應用模型與采用OSGi的應用模型有怎樣
          的區(qū)別。

          我這樣想象:
          小李是一個軟件工程師,在一家專門為PDA開發(fā)應用程序和解決方案的公司工作。最近,
          他剛為公司的一個客戶開發(fā)完成了一套運行在PDA的JAVA應用程序,我們不要關心PDA是
          什么硬件配置,只要知道它配備了JVM(cvm) + CDC以及PP和文件系統(tǒng)(呵呵設備還是比較
          強勁的)。而這個客戶是一個慈善機構,該機構人員攜帶PDA進入偏遠山區(qū)收集生活困難
          家庭的信息,以準備進行資助。而這套程序將會暫時把家庭信息保存在PDA中,并隨時供
          用戶查詢修改。用戶使用一個月后,反饋非常好,但是,他們有新需求了,說原來只是想紀錄
          信息就成了,現在希望能給出一些排序功能,比如按家庭年收入對紀錄進行排序.

          接到這個需求,小李一看,這個簡單,只要增加一個排序方法就可以了,讓我們假設他使用了如下
          數據結構來紀錄家庭信息:

          Class FamilyInfo {

           
          private String familyName;//家庭名稱

           
          private int population; //人口數量

           
          private int incomePerYear; //年收入

           .(省略Getter和Setter方法)
          }


           

          為了滿足這個需求,小李決定添加一個靜態(tài)的排序方法:

          public static FamilyInfo[] sortByIncomePerYear(FamilyInfo[] familyInfos){
           
          //根據incomePerYear的值進行冒泡排序。
          }



          把相關連部分修改完畢后,小李重新制作了安裝包和啟動腳本,發(fā)送給客戶,不管客戶如何操作
          總之,原來的PDA程序必須卸載,新程序必須拷貝到PDA上再次執(zhí)行安裝,重新啟動運行。

          又過了一陣,客戶說,要求提供按人均年收入進行排序,然后同樣的事情又發(fā)生了......

          幾個輪次下來,小李發(fā)現,客戶的需求還在增加,他們可能要求增加一個字段,記錄目前該
          家庭得到的資助額,還可能添加按收入范圍查詢紀錄等等,事情還遠沒有結束。

          如何改進這個情況呢?當然,改進涉及多方面,比如從軟件本身出發(fā),可以使用合適的design
          pattern重新設計程序的體系結構,使得程序更易于擴展,關于這一點,有太多的討論了,我就不
          摻和了。還有從部署方面說,配置,安裝和卸載程序,對最終用戶往往是一項mission impossible,
          能否讓應用程序自己升級,而用戶只要點擊一個"升級"來觸發(fā)這個過程而已......

          我想你當然知道我給的答案:OSGi,OSGi,OSGi!!!!

          posted on 2006-02-14 15:39 勤勞的蜜蜂 閱讀(4685) 評論(3)  編輯  收藏

          評論

          # re: osgi介紹(二)一個假想的實例 2007-06-21 16:43 hata

          非常不錯,對于理解OSGI很有幫助,謝謝你!茅塞頓開!
          這個例子我會在以后教別人的時候用的!
          別人問你什么是OSGI的時候很有說服力,不用干巴巴的說,就是....英文解釋,沒意義!有好的資料能早點發(fā)給我么?喜歡你的解釋方式,我留下郵箱了,QQ,MSN也放這,希望你跟我聯系!我叫hata.
          Emal: hatalf@yahoo.com.cn
          MSN: hatalf@hotmail.com
          qq: 25831856  回復  更多評論   

          # re: osgi介紹(二)一個假想的實例 2009-04-29 14:01 guest

          非常不錯

          請樓主繼續(xù)  回復  更多評論   

          # re: osgi介紹(二)一個假想的實例[未登錄] 2009-10-14 11:38

          @guest
          生動易解  回復  更多評論   


          只有注冊用戶登錄后才能發(fā)表評論。


          網站導航:
           
          主站蜘蛛池模板: 隆德县| 息烽县| 松潘县| 忻城县| 柳林县| 广德县| 桐庐县| 嘉善县| 海城市| 玉田县| 贡觉县| 遂川县| 枣庄市| 科技| 林州市| 德安县| 青海省| 遂川县| 志丹县| 丽水市| 喀什市| 容城县| 蚌埠市| 玉山县| 遂溪县| 天峨县| 昭觉县| 云南省| 东乌| 太白县| 萨嘎县| 丁青县| 平昌县| 隆昌县| 溆浦县| 宁阳县| 鸡东县| 苗栗县| 鹿邑县| 乌拉特后旗| 曲周县|