posts - 262,  comments - 221,  trackbacks - 0
          制定了開發進度計劃,接下來就是尋找開發的輔助資料和搭建開發,測試環境了。根據我的初步認識,RSS工具的核心無非就兩樣:

          ★解析器(也就是通常所說的解析引擎)
          ★閱讀器(也就是展現解析結果的GUI)

          關于解析器,關鍵在于對RSS規范中XML文件(RSS Feed)的解析,這個倒不難。難就難在你還必須同時支持多個版本,從0.9.x,到1.0,到2.0,還有Atom 0.3.x。這個工作量就比較大了,于是我選擇了從開源社區中尋求幫助。關于RSS的相關開源工具其實并不多,從網上搜索的結果來看,主要集中在下面幾個工具:

          ★ROME(https://rome.dev.java.net/)

          這是網上使用比較廣泛的RSS及Atom工具,是SUN社區下的一個開源項目,從其Java API文檔來看比較規范。目前穩定版本是1.0。支持多個版本的協議。其官方網站介紹如下:

          ROME is an set of open source Java tools for parsing, generating and publishing RSS and Atom feeds. The core ROME library depends only on the JDOM XML parser and supports parsing, generating and converting all of the popular RSS and Atom formats including RSS 0.90, RSS 0.91 Netscape, RSS 0.91 Userland, RSS 0.92, RSS 0.93, RSS 0.94, RSS 1.0, RSS 2.0, Atom 0.3, and Atom 1.0. You can parse to an RSS object model, an Atom object model or an abstract SyndFeed model that can model either family of formats.

          可以看到ROME是依賴于JDOM來解析,生成,轉換XML文檔的,但目前我還沒有發現它支持數據庫持久化和對RSS Item節點搜索的功能,不得不說是一個遺憾。而且目前JDOM有被Dom4J逐漸取代的趨勢。

          不得不提的是ROME的官網文檔鏈接目前是不可用的。這對開源項目來說是一個挺大的打擊,代碼的最新版本是2009-1-9號發布的。

          ★RSSLIBJ

          這個是最小的RSS工具包,體積才25K,不過主頁已經不可用了,而且只能下到二進制代碼,要自己反編譯。

          ★Informa(http://informa.sourceforge.net/)

          Informa的官方網站對其產品的介紹如下:

          With Informa we enable you with a harmonised view on a news channel object model. Both channels and news items do have metadata assigned, it does not make any difference from which channel format they were originally retrieved (RSS 0.9x, RSS 1.0 / RDF, RSS 2.0, Atom 0.3 and Atom 1.0).

          To ease finding relevant news items an integration with the full-text search engine (Jakarta's Lucene) may be used optionally.

          Besides exporting news channels in a specified XML format there is a persistence backend available using the Hibernate O/R mapping framework. This allows to persist the whole object model into a JDBC-compliant relational database. As default database HypersonicSQL was chosen, because it is very easy to embed. Alternatively you may want to give the other persistent backend based on Castor JDO storage mechanism a try (from Informa release 0.7.0 not any longer supported).

          這是我想重點介紹的一個開源RSS工具。Informa同樣也支持多個RSS和Atom版本的協議,同樣也提供了解析,轉換,生成的功能。除此之外,它還提供了對RSS Item,channel的數據庫持久化功能。甚至有節點的全文搜索功能(依賴于Lucenes)。目前Informa的最新版本是Release 0.7.0 Alpha 2。該版本的改進如下:
           ①將編譯JDK升級到1.5
           ②將底層的解析引擎工具從JDOM換成Dom4J(Alpha 1還是用JDom的)
           ③增加了對RSS 2.0協議的導出功能
           ④增加了對Atom 0.3~1.0協議的支持
           ⑤首次使用Spring框架來管理持久化工作
           ⑥升級Hibernate到3.1版本
           ⑦去掉了對JDO的支持

          Informa的文檔很齊全,對于各種使用的方法都有提及,而且用法相當簡單明了。這是我最喜歡的地方,但他的API很多都沒有寫注釋,留白。幸好它的源代碼比較清晰,不懂的地方直接看代碼了。

          ★RSSOwl(http://www.rssowl.org/overview)

          這是一個桌面版的RSS閱讀器,目前最新版本是2.0穩定版,2009-11-25才發布的,可謂新鮮出爐。提供了EXE和ZIP兩種安裝方式,功能相當強大:支持一把的瀏覽,分類,關鍵字搜索,過濾器,清除失效的RSS訂閱列表,實時提醒,導入導出OMPL的功能,甚至內嵌了一個Web形式的瀏覽器。幾乎你能想到的它都提供了。文檔也相當齊全。

          它的源代碼是通過SVN的形式checkout出來的。命令如下:

          svn co https://rssowl.svn.sourceforge.net/svnroot/rssowl rssowl 

          建議不要直接下載,體積很嚇人的,只下載目前最新的版本就可以了。

          ★ThinFeeder(http://thinfeeder.sourceforge.net/)

          ThinFeeder是一個基于Informa解析器的RSS閱讀器。它提供了和RSSOwl差不多的功能

          ThinFeeder以支持多國語言和可以換膚為賣點。現有的這些功能對我們來說已經夠了,而且有源代碼下載。

          總結:

          選擇一個開源框架,我的標準有幾條:
          ★良好的文檔和源代碼管理:這是最基本的一條,想RSSLibJ這種連文檔、官網都沒有的一律pass
          ★持續的改進:這是第二個重要的,像上面某些工具從02年后就不再更新了,出了問題你找誰訴苦
          ★簡單和易上手:在短時間內可以迅速依樣畫葫蘆
          ★活躍的社區:參與的人越多軟件成長得越多,好的軟件也是慢慢才出名的


          基于以上的原因,我最終選擇了兩個:

          Informa:優秀的框架,簡單的用法,全面的功能,持續的改進。
          ThinFeeder:內部使用Informa引擎,有利于結合。界面簡潔,功能齊全,可以定制,源代碼齊全。

          選定了核心工具,剩下的就是搭建開發環境和測試環境了。關于環境,離不開的只有這幾樣:
           ★設計工具:選用StarUML
           ★編程工具:選用Eclipse
           ★版本控制:當然是SVN
           ★項目管理:首選JIRA
           ★測試工具:使用JMetter

          佛祖保佑我開工大吉~~。哇咔咔



          -------------------------------------------------------------
          生活就像打牌,不是要抓一手好牌,而是要盡力打好一手爛牌。
          posted on 2009-12-21 11:52 Paul Lin 閱讀(1363) 評論(0)  編輯  收藏 所屬分類: J2SE
          <2009年12月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 洪湖市| 扎鲁特旗| 安阳市| 前郭尔| 台山市| 名山县| 东源县| 汽车| 申扎县| 双鸭山市| 客服| 偏关县| 汤阴县| 西华县| 海宁市| 元谋县| 伊吾县| 东光县| 抚顺县| 勃利县| 乌拉特后旗| 西平县| 吉林省| 丰原市| 旬邑县| 甘泉县| 汉寿县| 利辛县| 四平市| 环江| 茌平县| 屏边| 江西省| 兰州市| 平顺县| 桐柏县| 米林县| 密山市| 临清市| 凌云县| 台东县|