亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

用導航組件來構建動態 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久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线成人激情黄色| 亚洲丁香婷深爱综合| 成人免费看吃奶视频网站| 国产精品影片在线观看| 亚洲精品小视频| 久久人人爽国产| 久久综合久久美利坚合众国| 日本一区二区三区在线播放| 国产精品日韩欧美综合| 成人黄色中文字幕| 精品一区二区三区四区在线| 欧美黄色片视频| 国产精品久久久久久久久久新婚| 久久视频在线免费观看| 日韩av电影在线网| 有码中文亚洲精品| 亚洲福利视频二区| 欧美亚洲免费电影| 欧美肥婆姓交大片| 国产精品女主播视频| 日韩在线观看av| 国产丝袜精品视频| 亚洲精品欧美极品| 青青草国产精品一区二区| 国产精品亚洲视频在线观看| 国产97在线亚洲| 97视频在线观看免费高清完整版在线观看| 中文字幕亚洲第一| 欧美高清激情视频| 亚洲欧美变态国产另类| 久热精品在线视频| 秋霞av国产精品一区| 亚洲精品国产成人| 欧美日韩综合视频网址| 亚洲性生活视频| 中文字幕视频在线免费欧美日韩综合在线看| 午夜精品蜜臀一区二区三区免费| 日本国产一区二区三区| 最新国产成人av网站网址麻豆| 国产欧亚日韩视频| 最近2019中文字幕大全第二页| 国产91精品久久久久久久| 国产精品日韩久久久久| 在线亚洲欧美视频| 国产午夜精品全部视频在线播放| 欧美尤物巨大精品爽| 国产精品久久久久久久久久新婚| 欧美精品在线网站| 最近中文字幕2019免费| 清纯唯美亚洲综合| 久久久国产一区二区三区| 中文字幕日韩专区| 在线观看欧美日韩国产| 国产福利成人在线| 91精品在线国产| 日韩av电影手机在线观看| 久久久久久久影院| 欧美午夜片在线免费观看| 亚洲色图综合网| 69av在线视频| 国产欧美在线播放| 最近2019中文字幕第三页视频| 成人高清视频观看www| 国产91精品久久久| 日本久久亚洲电影| 热久久这里只有| 亚洲激情国产精品| 日韩女优人人人人射在线视频| 亚洲午夜女主播在线直播| 欧美视频在线观看免费| 中文字幕av一区二区三区谷原希美| 欧美黑人巨大xxx极品| 欧洲成人免费视频| 久久久久久久久久久亚洲| 国产精品久久久久福利| 亚洲视频免费一区| 中日韩美女免费视频网站在线观看| 日韩欧美主播在线| 成人网在线免费观看| www.午夜精品| 45www国产精品网站| 国产精品99蜜臀久久不卡二区| 久久精品国产2020观看福利| 色中色综合影院手机版在线观看| 欧美野外wwwxxx| 国产精国产精品| 国产成人涩涩涩视频在线观看| 日韩有码在线视频| 日韩免费在线观看视频| 91精品在线国产| 精品国产美女在线| 成人免费淫片视频软件| 日韩在线观看网站| 日韩人体视频一二区| 日本欧美精品在线| 久久婷婷国产麻豆91天堂| 国产精品美女免费视频| 国产成人jvid在线播放| 中文字幕在线观看日韩| 成人欧美一区二区三区黑人孕妇| 亚洲人成网站999久久久综合| 亚洲的天堂在线中文字幕| 欧美xxxx18国产| 日韩精品免费在线视频观看| 久久成人在线视频| 亚洲精品国精品久久99热| 久久久精品一区| 亚洲国产精品美女| 97人洗澡人人免费公开视频碰碰碰| 亚洲美女性视频| 亚洲精品在线观看www| 国产91色在线播放| 国产精品一区二区三区毛片淫片| 国产日韩精品在线观看| www.亚洲男人天堂| 国产精品男人的天堂| 成人精品在线观看| 国产偷国产偷亚洲清高网站| 国产精品一区二区三区免费视频| 中文字幕不卡av| 久久人人爽国产| 亚洲精品一区久久久久久| 日韩成人中文字幕在线观看| 精品国产一区二区三区在线观看| 色午夜这里只有精品| 欧美在线观看一区二区三区| 欧美黄网免费在线观看| 久久色精品视频| 亚洲自拍小视频免费观看| 亚洲成人激情在线| 韩国视频理论视频久久| 日韩最新在线视频| 91精品视频网站| 青青草原成人在线视频| 久久久久久久成人| 97精品国产97久久久久久| 免费av在线一区| 欧美日韩国产在线播放| 欧美极品少妇与黑人| 538国产精品视频一区二区| 69久久夜色精品国产69| 中文字幕av一区中文字幕天堂| 欧美性猛交视频| 亚洲一区二区久久久久久久| 国产精品直播网红| 亚洲福利在线看| 亚洲欧美日韩一区二区三区在线| 国产一区二区丝袜| 欧美理论电影在线观看| 成人在线免费观看视视频| 亚洲淫片在线视频| 国产在线精品一区免费香蕉| 国产视频在线一区二区| 亚洲午夜精品久久久久久久久久久久| 91夜夜未满十八勿入爽爽影院| 亚洲人成在线电影| 亚洲精品videossex少妇| 久久久久久久国产| 韩日欧美一区二区| 亚洲白拍色综合图区| 国产精品jvid在线观看蜜臀| 亚洲欧美视频在线| 亚洲日本中文字幕免费在线不卡| 国产欧美日韩最新|