posts - 97,  comments - 93,  trackbacks - 0
          這兩天找了一些portal相關(guān)的資料,也從中學(xué)到了很多東西。據(jù)說我們學(xué)校還有個portal,不過現(xiàn)在不知為什么down掉了。一個學(xué)校擁有譬如網(wǎng)上注冊、網(wǎng)上評價、新聞發(fā)布、咨詢公告、網(wǎng)上選課、天氣預(yù)報……怎么給用戶集中展現(xiàn)?怎 么讓用戶定制自己想看到的界面?怎么實現(xiàn)單點登錄?這是portal要解決的問題。各個的應(yīng)用提供業(yè)務(wù)能力,portal提供一個統(tǒng)一的look and feel。所以portlet和servlet絕對不是競爭的關(guān)系,portlet的功能是“聚集+展現(xiàn)”,應(yīng)該盡量回避具體于業(yè)務(wù)的邏輯。Portlet可以使軟件廠商產(chǎn)品或室內(nèi)定制應(yīng)用軟件咬接進門戶框架。Portlets可以用各種方式來編寫,最簡單的Portlets采用了靜態(tài)HTMLWML標(biāo)記語言或者JSP語法。中間級Portlets可以采用JavaBeansJava servlets,或者XMLXSL轉(zhuǎn)換。更復(fù)雜的Portlets涉及到編寫客戶Java碼。一個 Portlet 是以 Java 技術(shù)為技術(shù)的 Web 組件,由 Portlet Container 所管理,專門處理客戶的 request 以及產(chǎn)生各種動態(tài)的信息內(nèi)容。Portlets 為可插式 ( pluggable ) 的客戶界面組件,提供呈現(xiàn)層成為一個信息系統(tǒng)。這些由 portlet 產(chǎn)生的內(nèi)容也被稱為片段 (fragment),而片段是具有一些規(guī)則的Markup( HTML、XHTML、WML ),而且可以和其他的片段組合而成一個復(fù)雜的文件。而 Portlet 中的內(nèi)容正常來說是與其他 Portlet 的內(nèi)容聚合而成為一個 Portal 網(wǎng)頁。而 Portlet 的生命周期是被 Portlet Container 所管理控制的??蛻舳撕?portlets 的互動是由 portal 通過典型的 request/response 方式實現(xiàn),正常來說,客戶會和 portlets 所產(chǎn)生的內(nèi)容互動,舉例來說,根據(jù)下一步的連接或者是確認(rèn)送出的表單,結(jié)果 portal 將會接收到 portlet 的動作,將這個處理狀況轉(zhuǎn)向到目標(biāo) portlet。這些 portlet 內(nèi)容的產(chǎn)生可能會因為不同的使用者而有不同的變化,完全是根據(jù)客戶對于這個 portlet 的設(shè)置。Portal主要是解決企業(yè)信息和應(yīng)用的前端集成問題,它負(fù)責(zé)連結(jié)企業(yè)后臺EAI,集成企業(yè)的結(jié)構(gòu)和非結(jié)構(gòu)化信息,并提供統(tǒng)一的訪問企業(yè)信息和應(yīng)用的入口。

          1) Portlet 和 Servlet 的相似之處

          @ portlets 也是 Java 技術(shù)的 web 組件
          @ portlets 也是有特定的 container 在管理
          @ portlets 可以動態(tài)產(chǎn)生各種內(nèi)容
          @ portlets 的生命周期由 container 所管理
          @ portlets 和客戶端的互動是通過 request/response 的機制

          2) Portlet 和 Servlet 也有一些不同

          @ portlets 只產(chǎn)生 markup 信息片段,不是完整的網(wǎng)頁文件。而 Portal 會將所有的 Portlet markup 信息片 段放到一個完整的 Portal 網(wǎng)頁。
          @ portlets 不會和 URL 有直接的關(guān)系
          @ 客戶端必須通過 portal 系統(tǒng)才能和portlets互動
          @ portlets 有一些定義好的request處理,action request以及render request。
          @ portlets 默認(rèn)定義 portlet modes 及窗口狀態(tài)可以指出在網(wǎng)頁中該 portlet 的哪個功能正在執(zhí)行及現(xiàn)在的 狀態(tài)。
          @ portlets 可以在同一個 portal 網(wǎng)頁之中存在多個。

          3) Portlet 有一些附加的功能是 Servlet 所沒有的

          @ Portlets 能夠存取及儲存永久配置文件及定制資料。
          @ portlets 可以存取使用者數(shù)據(jù)
          @ portlets 具有URL的重寫功能在文件中去動態(tài)建立連結(jié),允許 portal server 不用去知道如何在網(wǎng)頁的片 段之中建立連結(jié)及動作。
          @ portlets 可以儲存臨時性的數(shù)據(jù)在 portlet session 之中,擁有兩個不同的范圍:
          application-wide scope 及 portlet private scope 。

          4) Portlet 不具有一些功能,但是 Servlet 卻有提供

          @ servlet 具有設(shè)置輸出的文字編碼方式
          @ servlet 可以設(shè)置 HTTP 輸出的 header
          @ servlet 才能夠接收客戶對于portal發(fā)出的URL請求

          基于Portal開發(fā)項目的優(yōu)勢
          1、可以與以后新開發(fā)的或已集成到Portal中的企業(yè)應(yīng)用實現(xiàn)無縫集成。
          2、可以分享Portal服務(wù)器和Portlet容器提供的種種功能。這要視Portal服務(wù)器提供商而定。
          3、由于Portlet已規(guī)范化(JSR168),所以應(yīng)用中開發(fā)的Portlet可以部署在不同的Portal服務(wù)器上。



          Java 中開源的portal門戶

           Liferay   

          代 表了完整的J2EE應(yīng)用,使用了Web、EJB以及JMS等技術(shù),特別是其前臺界面部分使用Struts 框架技術(shù),基于XML的portlet配置文件可以自由地動態(tài)擴展,使用了Web Services來支持一些遠(yuǎn)程信息的獲取,使用 Apahce Lucene實現(xiàn)全文檢索功能。
          主要特點:
              1、提供單一登陸接口,多認(rèn)證模式(LDAP或SQL);
              2、管理員能通過用戶界面輕松管理用戶,組,角色;
              3、用戶能可以根據(jù)需要定制個性化的portal layout;
              4、能夠在主流的J2EE應(yīng)用服務(wù)器上運行,如JBoss+Jetty/Tomcat,JOnAS;
              5、支持主流的數(shù)據(jù)庫,如PostgreSQL,MySQL;
              6、使用了第三放的開源項目,如Hibernate, Lucene, Struts;
              7、支持包括中文在內(nèi)的多種語言;
              8、采用最先進的技術(shù) Java, EJB, JMS, SOAP, XML;

           JetSpeed   

          Jetspeed 是一個開放源代碼的企業(yè)信息門戶(EIP)的實現(xiàn), 使用的技術(shù)是Java和XML. 用戶可以使用瀏覽器, 支持WAP協(xié)議的手機或者其它的設(shè)備訪問Jetspeed架設(shè)的信息門戶獲取信息. Jetspeed扮演著信息集中器的角色, 它能夠把信息集中起來并且很容易地提供給用戶.
          Jetspeed具有如下的特征:

          * 即將成為標(biāo)準(zhǔn)化的Java Portlet API
          * 基于模板的布局, 包括JSP和Velocity
          * 通過開放的內(nèi)容同步技術(shù)支持遠(yuǎn)程XML內(nèi)容交換
          * 定制默認(rèn)的主頁
          * 使用數(shù)據(jù)庫進行用戶認(rèn)證
          * 內(nèi)存緩存技術(shù), 加快頁面的響應(yīng)
          * 通過Rich Site Summary技術(shù), 支持同步內(nèi)容
          * 和Cocoon, WebMacro, Velocity集成.
          * Wireless Markup Language (WML) 支持
          * 使用XML格式的配置文件注冊portlet.
          * 完整的Web Application Archive (WAR) 支持
          * Web應(yīng)用程序開發(fā)的基礎(chǔ)設(shè)施
          * 可以在本地緩存遠(yuǎn)程內(nèi)容
          * 與Avantgo同步
          * 可移植到所有支持JDK1.2和Servlet 2.2的平臺
          * 與Turbine模塊和服務(wù)集成
          * 可以根據(jù)用戶, 安裝媒體類型和語言的不同設(shè)定, 產(chǎn)生不同的個性化服務(wù)
          * 持續(xù)化服務(wù)使得所由的portlet能夠容易的存儲每個用戶的狀態(tài), 頁面和portlet
          * 使用皮膚技術(shù)使得用戶可以選擇portlet的顏色和顯示屬性
          * 自定義功能是的管理員可以選擇portlet以及定義個人頁面的布局
          * 在數(shù)據(jù)庫中存儲PSML
          * 通過Jetspeed的安全portlets管理用戶, 組,角色和權(quán)限
          * 基于角色對訪問portlet進行控制

           Pluto   

          Pluto 是一個滿足Portlet API規(guī)范的Portlet容器的實現(xiàn),它為開發(fā)者提供了一個運行portlets的工作平臺。然而,如果沒有一個驅(qū)動器(driver),也就是 Portal,的支持的話,運行和測試Portlet容器將非常之麻煩。Pluto本身也提供了一個簡單的Portal模塊,該模塊僅僅是為了滿足 Portlet容器和JSR 168的需要而寫的。

           oPortal   

          oPortal是一個用java寫的開源門戶項目,它的目標(biāo)是成為一個安全的web應(yīng)用程序。基于Struts 框架技術(shù)。

           jPorta   

          J2EE Portal Engine是一個建造于Jeenius Framework (http://jeenius.sourceforge.net)框架基礎(chǔ)上的完整功能的門戶引擎。它可以和任意兼容2.3版本的servlet 引擎工作,提供了許多有用的小部件。

           jCharon   

          jCharon 目標(biāo)是創(chuàng)造一個具有國際化與商業(yè)化的 Portal 及 Portlets。發(fā)起該項目的原因大致是現(xiàn)有的開源 portal 太簡單, portlets 也不具有國際化, 所以建立了以冥王星 (pluto)的衛(wèi)星 Charon 為名的開源項目。該項目的 License 是 Apache Foundation License

           eXo Platform   

          eXo Platform 是一個開源企業(yè)門戶解決方案,它基于 Java(tm) Server Faces (JSF) web 層框架,遵循portlet API (JSR 168) 。此開源項目還用到的開源技術(shù)有Pico Container, JbossMX 與AspectJ。

           Jakarta Pluto   

          Portlet API規(guī)范(JSR 168)的Portlet容器的實現(xiàn),它為開發(fā)者提供了一個運行portlets的工作平臺。

           JPortal  

          JPortal 是目前最為符合JSR-168 Spec的Portal實現(xiàn)。他使用了攔截器技術(shù)和 Dynamic Proxy來實現(xiàn)Portlet的可插入設(shè)計。他目前只是一個原型的實現(xiàn)并且之關(guān)注于實現(xiàn) Portal Container,并沒有過多的 Portlet實現(xiàn)和設(shè)計。 優(yōu)點在于其的架構(gòu)清晰,易于擴展,但在Portal的工業(yè)強度上需求的差距是比較大的,沒有分布式的概念是他目前架構(gòu)的一個致命的地方。

           uPortal   

          由(JA -SIG)開發(fā)的uPortal基于的Java, XML, and XSL項目, 發(fā)行版包括WEB服務(wù)頻道,權(quán)限,用戶組管理等等。UPortal讓你可以自己增加你的機構(gòu)需要的新特性。它著眼于高等教育機構(gòu),一些商業(yè)組織也用它來作 為構(gòu)建協(xié)同社區(qū)的框架。這種框架包括插入式的被成為頻道的組件,它提供用戶感興趣的信息。用戶可以根據(jù)其在機構(gòu)中角色選擇關(guān)心的頻道,同時還可以定制自己 站點喜歡的樣式。

           jPortlet   

          jPortlet是portlet容器的一個開源實現(xiàn),Portlet是運行在portle服務(wù)器中的portlet容器之內(nèi)的組件。jPortlet具有以下特性: 1,可以用不同的方式瀏覽portlet:觀察、修改、配置或者提供幫助。2,它的API可以讓你把portlet部署在web瀏覽器內(nèi)、PDA上、蜂窩電話上等許多地方。3,portlet容器可以緩存portlet的內(nèi)容,用來加速porlet的表現(xiàn)。

           OpenPortal   

          OpenPortal是一個Web門戶框架,可以讓用戶個性化運行這一軟件的站點的Web頁面。用戶通過選擇一套可用的門戶組件屬性來構(gòu)造其頁面。一個門戶組件可以是servlet 或JSP頁面。

           Jaco Portal Server   

          一個遵循Portlet Specification(JSR-168) 規(guī)范的portlet 容器。

           Stringbeans   

          Stringbeans是一個兼容JSR 168 portlets部署的平臺。2.4版增加了portlet應(yīng)用部署者工具,支持部分保護(semi-protected)的門戶應(yīng)用、跟蹤和訪問門戶應(yīng)用。

           GridSphere   

            提供一個基于 portlet 的高級開放源代碼門戶。GridSphere 是在歐盟提供基金的 GridLab 項目 下開發(fā)的,提供了一個非常復(fù)雜的門戶,該門戶為各種終端用戶提供高度定制的環(huán)境。portlet 模型向用戶提供了一個靈活易用的接口,并向門戶開發(fā)人員提供了一個模型,用于創(chuàng)建可插入的和動態(tài)的應(yīng)用程序支持。
          下面簡要列出核心的 GridSphere 特性:
          1,Portlet API 的實現(xiàn)與 IBM WebSphere Portal Server 4.2 或更高版本緊密兼容。
          2,易于開發(fā)并易于與插入到 GridSphere portlet 容器中的“第三方 portlet”集成。
          3,級別更高的模型,用于使用可視的 bean 和 GridSphere User Interface (UI) 標(biāo)簽庫構(gòu)建復(fù)雜的 portlet。 靈活的基于 XML 的門戶表示描述,可以輕松對其進行修改來創(chuàng)建自定義的門戶布局。
          4,對基于角色的訪問控制(Role Based Access Control,RBAC)提供內(nèi)置的支持,RBAC 將用戶分為 guest、user、admin 和 super user。
          5,復(fù)雜的服務(wù)模型,允許創(chuàng)建“用戶服務(wù)”,可以按照用戶權(quán)限限制服務(wù)方法。
          6,通過 Hibernate for RDBMS 數(shù)據(jù)庫支持提供數(shù)據(jù)的持久性。
          7,為 portlet 服務(wù)的服務(wù)端測試集成了 Junit/Cactus 單位測試,包括生成測試報告。
          8,GridSphere 核心 portlet 提供基本功能,包括登錄、注銷、用戶和訪問控制管理。 由于 GridSphere portlet API 幾乎與 WebSphere portlet API 完全相同,所以您應(yīng)該多看看 developerWorks 文章,這些文章在 參考資料 和 IBM WebSphere Portal Zone 中列出。在理論上,使用 IBM WebSphere Portal Server 開發(fā)本文中的示例 portlet 應(yīng)該不難。GridSphere API 與 JSR Portlet API 1.0 最后的規(guī)范非常類似,gridSphere 的將來版本是符合 JSR 168 的。當(dāng)前的 GridSphere 版本提供了一個門戶、一個 portlet 容器和一組有用的核心 portlet,包括用戶和組管理以及布局定制和 portlet 訂閱。

           Jaco Portal Server   

          一個服從Portlet規(guī)范(JSR-168)的Portlet容器。

           basicPortal CMS (TM)   

          basicPortal CMS (TM)是一個企業(yè)信息門戶(EIP)。它完全基于能夠讓用戶開發(fā)標(biāo)準(zhǔn),廉價,跨平臺,動態(tài),靈活和非常快web應(yīng)用程序的開源軟件技術(shù)。

           MyPersonalizer   點擊次數(shù):7612

          MyPersonalizer是一個基于J2EE框架的“我的”門戶(類似于my.yahoo.com)的開源項目。

           NVPortal  

          NVPortal是一個基于開源BSD協(xié)議的Java企業(yè)門戶解決方案.這個開源方案可滿足用戶的高需求因為:
           * 符合JSR 168規(guī)范與WSRP標(biāo)準(zhǔn),
           * 通SOAP實現(xiàn)商業(yè)處理引擎與搜索引擎,
           * 可隨意地的自定義布局,
           * 非常友好的用戶界面,
           * 多語言支持,
           * 單一登錄(SSO),
           * 圖形管理界面等...

           WWPortlet   

          WWPortlet 一個MVC JSR168 Portlet框架基于WebWork,Velocity,Spring,Hibernate.使用WWPortlet框架開發(fā)門戶(Portal)系統(tǒng) 時,可以不需要知道Portlet和JSR168的API與概念.你可以像開發(fā)傳統(tǒng)WebWork/Velocity應(yīng)用程序一樣來開發(fā)門戶 (Portal)系統(tǒng),

           Lutece   

          Lutece 是一個Web門戶引擎,它能夠讓你快速創(chuàng)建基于HTML,XML或數(shù)據(jù)庫內(nèi)容的internet或intranet門戶網(wǎng)站.Lutece可很好的運行在 Linux與Windows平臺上,采用MySQL作為默認(rèn)的數(shù)據(jù)庫.Lutece提供一個非常簡單的管理界面能夠讓最終用戶直接使用而不需要任何專門的 技術(shù).這個工具由巴黎城市數(shù)據(jù)處理部門所開發(fā)主要用于區(qū)域Web站點項目,它已被運用在超過18個城市的Web網(wǎng)站上(具體可查看此處列表).

           SIPF   

          SIPF(Siemens Intranet Portal Framework)提供一個個性化的,結(jié)構(gòu)化的信息訪問和應(yīng)用程序的無縫集成.一個基于web的并且結(jié)構(gòu)分明的可視化桌面工作環(huán)境.

           PortletBridge   

          Portlet Bridge Portlet是一個web clipping proxy portlet,它能夠把web應(yīng)用程序"裁剪"成portlets。Portlet Bridge Portlet使用XSLT和CyberNeko進行web clipping。

           Kosmos   

          Kosmos是一組監(jiān)測軟件項目開發(fā)portlet。符合JSR-168規(guī)范可用于跟蹤項目各方面的進展包括:版本控制,缺陷跟蹤,持續(xù)構(gòu)建,和項目依賴等。

           Light Portal   

          Light是一個基于Ajax與Java的開源Portal框架,它能夠被無縫地集成到任何Java Web應(yīng)用程序中或作為一個獨立的Portal系統(tǒng)。它的特點就是當(dāng)用戶以管理方式訪問portal時打開它,當(dāng)用戶需要把它作為規(guī)則商業(yè)處理時關(guān)閉它。
           支持JSR168 Portlet API設(shè)計規(guī)范.
           支持多主題,也支持自定主題。
           每個Portlet都可以配置成單獨刷新的模式,自動獨立刷新與在同一個tab頁面刷新其它portlet。


          posted on 2007-04-27 20:48 wqwqwqwqwq 閱讀(2784) 評論(6)  編輯  收藏 所屬分類: No Category

          FeedBack:
          # re: Portal 門戶
          2007-04-27 21:27 | ant
          最近也在關(guān)注這個,有空聊聊,^_^。  回復(fù)  更多評論
            
          # re: Portal 門戶
          2007-04-28 10:20 | 曲強 Nicky
          @ant
          不知AJax數(shù)據(jù)視圖和業(yè)務(wù)的分離的思想對portal是不是很大的沖擊。  回復(fù)  更多評論
            
          # re: Portal 門戶
          2007-04-28 13:24 | ant
          @曲強 Nicky
          不知AJax數(shù)據(jù)視圖和業(yè)務(wù)的分離的思想對portal是不是很大的沖擊。

          呵呵,還是第一次見到這樣的提法,不好說。
          我個人的看法是,Portal三要素:個性化定制,單點登錄,多源聚集,而這些本身和Ajax關(guān)系不大,Ajax只是一種表現(xiàn)手段。
          ^_^,還望斧正。  回復(fù)  更多評論
            
          # re: Portal 門戶
          2008-04-12 17:14 | Laoluo
          同意樓上的說法,而且Ajax為增強client的功能,而portlet應(yīng)該是在server端,呵呵  回復(fù)  更多評論
            
          # re: Portal 門戶
          2008-04-12 17:16 | Laoluo
          最近也在研究portal的東西,正關(guān)注到OPEN portal因為參與的人比較多,而且有sun的人推薦就著重推薦。如果有人有使用過樓主提過的這個portal的經(jīng)驗,請不吝賜教  回復(fù)  更多評論
            
          # re: Portal 門戶
          2008-04-14 12:21 | nicky
          @Laoluo

          我個人對portal比較推崇liferay,當(dāng)然不僅僅因為認(rèn)識些朋友,liferay目前在大連有國外子公司,如果你需要對這一開源項目的咨詢或是支持工作可以在liferay.com的社區(qū)去聯(lián)系下bryan 或是mark,呵呵,他們的郵箱我就不在這說了,如果你需要可以像我直接要也好(需要英文),nicky.jcoder@gmail.com(禁止垃圾郵件,謝謝^^)
          我還有一個朋友對spring框架支持的liferay還算較熟,作為soho可以聯(lián)系(這個會中文,哈)。  回復(fù)  更多評論
            
          <2007年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345




          常用鏈接

          留言簿(10)

          隨筆分類(95)

          隨筆檔案(97)

          文章檔案(10)

          相冊

          J2ME技術(shù)網(wǎng)站

          java技術(shù)相關(guān)

          mess

          搜索

          •  

          最新評論

          閱讀排行榜

          校園夢網(wǎng)網(wǎng)絡(luò)電話,中國最優(yōu)秀的網(wǎng)絡(luò)電話
          主站蜘蛛池模板: 张家界市| 陕西省| 刚察县| 尼玛县| 原平市| 同德县| 连南| 广德县| 甘德县| 尼勒克县| 定州市| 拜泉县| 图片| 汉中市| 庄浪县| 彭山县| 博湖县| 保山市| 贡觉县| 泸定县| 巴东县| 镇沅| 湖南省| 南汇区| 五指山市| 四平市| 红安县| 准格尔旗| 崇信县| 汤原县| 彭阳县| 武义县| 天等县| 疏勒县| 南京市| 宁德市| 五河县| 濮阳市| 武鸣县| 普定县| 丰县|