麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

用導航組件來構建動態 Portal 菜單

2019-11-18 13:17:00
字體:
來源:轉載
供稿:網友

  簡介:GridSphere 門戶框架
  在上一年,基于 Portlet 的門戶已成為門戶服務器平臺的最令人興奮的領域之一。java Specification Request (JSR)168(即 portlet API)的出現將答應門戶供給商提供公共編程模型,該模型答應開發人員更快地將新功能插入到門戶服務器中,消費者可以輕松地使用這些功能。現在,許多門戶供給商支持 portlet,包括 IBM WebSphere、Sun One Portal Server、Oracle 9iAS 和 Jakarta Jetspeed 項目。
  
  GridSphere 門戶 提供一個基于 portlet 的高級開放源代碼門戶。GridSphere 是在歐盟提供基金的 GridLab 項目 下開發的,提供了一個非常復雜的門戶,該門戶為各種終端用戶提供高度定制的環境。portlet 模型向用戶提供了一個靈活易用的接口,并向門戶開發人員提供了一個模型,用于創建可插入的和動態的應用程序支持。下面簡要列出核心的 GridSphere 特性:
  
  Portlet API 的實現與 IBM WebSphere Portal Server 4.2 或更高版本緊密兼容。
  易于開發并易于與插入到 GridSphere portlet 容器中的“第三方 portlet”集成。
  級別更高的模型,用于使用可視的 bean 和 GridSphere User Interface (UI) 標簽庫構建復雜的 portlet。
  靈活的基于 xml 的門戶表示描述,可以輕松對其進行修改來創建自定義的門戶布局。
  對基于角色的訪問控制(Role Based access Control,RBAC)提供內置的支持,RBAC 將用戶分為 guest、user、admin 和 super user。
  復雜的服務模型,答應創建“用戶服務”,可以按照用戶權限限制服務方法。
  通過 Hibernate for RDBMS 數據庫支持提供數據的持久性。
  為 portlet 服務的服務端測試集成了 Junit/Cactus 單位測試,包括生成測試報告。
  GridSphere 核心 portlet 提供基本功能,包括登錄、注銷、用戶和訪問控制治理。
  由于 GridSphere portlet API 幾乎與 WebSphere portlet API 完全相同,所以您應該多看看 developerWorks 文章,這些文章在 參考資料 和 IBM WebSphere Portal Zone 中列出。在理論上,使用 IBM WebSphere Portal Server 開發本文中的示例 portlet 應該不難。GridSphere API 與 JSR Portlet API 1.0 最后的規范非常類似,gridSphere 的將來版本是符合 JSR 168 的。
  
  GridSphere 項目
  GridSphere Web 站點提供關于開發 portlet 的附加文檔、有關使用 GridSphere 的信息和其他資源的集合。要獲得這些信息,請加入 GridSphere 郵件列表中。
  
  當前的 GridSphere 版本提供了一個門戶、一個 portlet 容器和一組有用的核心 portlet,包括用戶和組治理以及布局定制和 portlet 訂閱。
  
  安裝 GridSphere
  從 http://www.gridsphere.org 下載最新的 GridSphere 版本并按照指示安裝該門戶。前提條件是您必須在系統中安裝了 Java 技術 Ant 和 Tomcat 4.1.X servlet 容器。安裝了 GridSphere 后,可以只啟動 Tomcat,然后在 Web 瀏覽器中,單擊 http://127.0.0.1:8080/gridsphere/gridsphere 查看該門戶。初始配置答應您以“root”身份登錄,而且不用輸入口令。登錄后,轉至 Administration->Users 選項卡,單擊 root 用戶來編輯配置文件。更改口令和其他設置,包括您的登錄名和電子郵件地址。登錄后,您就成為 GridSphere 門戶治理員。
  
  圖 1. GridSphere 用戶治理器 portlet
  
 用導航組件來構建動態 Portal 菜單(圖一)

  網格服務簡介
  在提供對用戶的虛擬組織(Virtual Organization,VO)內的計算資源和數據資源的安全統一訪問方面,門戶正變得越來越復雜,所以網格 portlet 必須依靠某種類型的中間件來執行這些操作。開放網格服務基礎設施(Open Grid Services InfrastrUCture,OGSI)規定如何創建網格服務,而 OGSI 是整體開放網格服務體系結構(Open Grid Services Architecture,OGSA)的一部分。Globus Toolkit 3.0 (GT3) 提供了 OGSI 的 Java 參考實現。GT3 提供了強制性網格服務特性,如服務調用、生存期治理、服務數據接口、依靠底層公鑰基礎設施(Public Key Infrastructure,PKI)的安全接口。網格服務擴展了 Web 服務,因此在實際中,編程模型很相似。
  
  簡而言之,使用 GT3 創建網格服務的步驟如下所示:
  
  創建定義服務接口的 WSDL 接口。可以采用工具轉換采用 Java 或 C 語言編寫現有接口以生成 WSDL。
  使用 GT3 工具從 WSDL 服務器接口生成客戶機和服務器存根(stub)。
  填寫服務器骨架(skeleton)實現代碼。
  配置服務部署描述符并部署服務到宿主容器。
  幸運的是,GT3 與一組供我們使用的示例服務綁定在一起。因此,我們將集中討論使用現有服務和現有的客戶機存根代碼來訪問服務。 幸運的是,您下載的 Tomcat 服務器還可以充當 OGSI 網格服務宿主環境,答應 GridSphere 門戶框架和 OGSA GT3 示例服務一起運行。
  
  下一節預備開發示例 portlet,您應從 Globus Web site 下載最新的 GT3 版本。要構建示例并部署到 Tomcat 容器中,請發出下列命令,其中 $CATALINA_HOME 設置為下載 Tomcat 的位置。
  
   %> ant
   %> ant samples
   %> ant -Dtomcat.dir=$CATALINA_HOME deployTomcat
  
  現在,由于示例 portlet 需要一些 GT3 類,所以需要將 OGSA Web 應用程序的庫復制到 portlet 可以找到的 Tomcat 共享庫目錄。
  
   %> cp $CATALINA_HOME/webapps/ogsa/WEB-INF/lib/*.jar $CATALINA_HOME/shared/lib/
  
  根據 GT3 User's Guide(請參閱“參考資料”),最后一步是將下列條目添加到 $CATALINA_HOME/conf/web.xml 中,配置 Tomcat 以接受 WSDL、GWSDL 和 XSD 文件擴展名:
  
  <mime-mapping>
    <extension>gwsdl</extension>
    <mime-type>text/xml</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>wsdl</extension>
    <mime-type>text/xml</mime-type>
  </mime-mapping>
  <mime-mapping>
    <extension>xsd</extension>
    <mime-type>text/xml</mime-type>
  </mime-mapping>
  
  編寫網格計數器服務 portlet
  在網格 portlet 示例中,我們使用 Globus Toolkit 提供的示例 OGSI 計數器服務編寫一個簡單的加減數字的 portlet。計數器服務表示為 CounterPortType,它是基 GridService 接口的子類,有三個方法,如下面的圖 2 所示:
  
  圖 2. 計數器服務的 UML 圖
  
 用導航組件來構建動態 Portal 菜單(圖二)

  add(int a) 和 suBTract(int b) 方法添加或減去提供的值并返回新值。getValue() 方法只返回靜態計數器值的當前結果。
  
  1. 編寫 portlet
  在計數器 portlet 示例中,用戶可以輸入整數值,然后單擊 "Add" 或 "Subtract" 按鈕加上或減去計數器服務的值,并顯示已更新的計數器值。
  
  當第一次實例化 portlet 時,init() 方法被調用,向該 portlet 提供由任何后續 portlet 請求使用的所有必需的初始信息或配置信息。portlet 編程模型將表示(portlet 的呈現)和邏輯(當某個動作發生時必須執行的操作)分為不同的 portlet 方法。portlet 容器負責調用 doView() 呈現方法來顯示 portlet,并在 portlet 收到事件(如按鈕單擊或表單提交)時,負責調用 actionPerformed() 方法。Portlet 可以向用戶提供幾種模式,包括 Edit、Configure 或 Help,從而向用戶提供特定模式的接口。portlet 必須提供適當的呈現方法,如 doEdit 用于支持編輯模式。對于熟悉 servlet 的人員而言,portlet 開發非常相似,只是 servlet 的 doGet 或 doPost() 方法由 actionPerformed() 和 doXXX() portlet 方法取代。portlet 編程和 servlet 編程的另一個顯著差別在于 PortletResponse、PortletConfig 和 PortletContext 類的使用,這些類在現有的由 Java Servlet API 提供的 HttpServletRequest、HttpServletResponse、ServletConfig 和 ServletContext 類的基礎上裝飾(也就是提供)了附加的功能。
  
  最終的 portlet 如下所示:
  
  清單 1. 計數器服務 portlet
  
  public class GridCounterPortlet extends AbstractPortlet {
  
  public static final String VIEW_jsp = "/jsp/ogsa/counter/view_counter.jsp";
  
  // Create a URL for the counter service
  PRivate static final String counterUrl =
  "http://127.0.0.1:8080/ogsa/services/samples/counter/basic/CounterFactoryService";
  
  private LocatorType locator = null;
  private CounterPortType counter = null;
  
  public void init(PortletConfig config) throws UnavailableException {
  super.init(config);
  try {
   // Create a grid service handle from the service URL
   URL GSH = new URL(counterUrl);
  
   // Get a reference to the CounterService Factory
   OGSIServiceGridLocator gridLocator = new OGSIServiceGridLocator();
   Factory factory = gridLocator.getFactoryPort(GSH);
   GridServiceFactory counterFactory = new GridServiceFactory(factory);
  
   // Create a new CounterService instance and get a refe

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一级视频网站 | 国产精品欧美久久久久一区二区 | 久久亚洲第一 | 在线播放免费播放av片 | 久久久在线 | 91经典视频 | 色综合激情| 日韩美香港a一级毛片免费 日韩激情 | 日韩黄色免费观看 | 欧美乱论 | 999久久久国产999久久久 | 欧美黄色免费视频 | 国产69精品久久久久孕妇黑 | 69性欧美高清影院 | 日韩激情| 欧美a级在线免费观看 | 亚洲一区二区观看播放 | 一级黄色在线观看 | 久久精品在线免费观看 | 特片网久久 | 4p嗯啊巨肉寝室调教男男视频 | 一色桃子av大全在线播放 | 91精品观看91久久久久久国产 | 国产免费视频一区二区裸体 | 失禁高潮抽搐喷水h | 国产寡妇xxxxxxxx性开放 | 成人在线国产 | 久久久久久久.comav | 国产一级做a | 欧美性色黄大片www 操碰网 | 亚洲日本韩国精品 | 免费在线观看毛片 | 麻豆19禁国产青草精品 | 成人免费毛片片v | 久久99精品国产自在现线 | 黄色大片大毛片 | 色诱亚洲精品久久久久久 | 欧美成人高清在线 | 国产精品久久久久久久久久大牛 | av电影在线观看免费 | 国产成人精品一区在线播放 |