国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

用導航組件來構(gòu)建動態(tài) Portal 菜單

2019-11-18 13:17:00
字體:
供稿:網(wǎng)友

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

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

  add(int a) 和 suBTract(int b) 方法添加或減去提供的值并返回新值。getValue() 方法只返回靜態(tài)計數(shù)器值的當前結(jié)果。
  
  1. 編寫 portlet
  在計數(shù)器 portlet 示例中,用戶可以輸入整數(shù)值,然后單擊 "Add" 或 "Subtract" 按鈕加上或減去計數(shù)器服務的值,并顯示已更新的計數(shù)器值。
  
  當?shù)谝淮螌嵗?portlet 時,init() 方法被調(diào)用,向該 portlet 提供由任何后續(xù) portlet 請求使用的所有必需的初始信息或配置信息。portlet 編程模型將表示(portlet 的呈現(xiàn))和邏輯(當某個動作發(fā)生時必須執(zhí)行的操作)分為不同的 portlet 方法。portlet 容器負責調(diào)用 doView() 呈現(xiàn)方法來顯示 portlet,并在 portlet 收到事件(如按鈕單擊或表單提交)時,負責調(diào)用 actionPerformed() 方法。Portlet 可以向用戶提供幾種模式,包括 Edit、Configure 或 Help,從而向用戶提供特定模式的接口。portlet 必須提供適當?shù)某尸F(xiàn)方法,如 doEdit 用于支持編輯模式。對于熟悉 servlet 的人員而言,portlet 開發(fā)非常相似,只是 servlet 的 doGet 或 doPost() 方法由 actionPerformed() 和 doXXX() portlet 方法取代。portlet 編程和 servlet 編程的另一個顯著差別在于 PortletResponse、PortletConfig 和 PortletContext 類的使用,這些類在現(xiàn)有的由 Java Servlet API 提供的 HttpServletRequest、HttpServletResponse、ServletConfig 和 ServletContext 類的基礎上裝飾(也就是提供)了附加的功能。
  
  最終的 portlet 如下所示:
  
  清單 1. 計數(shù)器服務 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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 南昌县| 晋中市| 临颍县| 浦县| 福贡县| 长丰县| 屏山县| 依兰县| 南充市| 桐城市| 龙门县| 荥经县| 漳州市| 崇仁县| 旅游| 饶平县| 天台县| 自贡市| 娄烦县| 梅河口市| 望都县| 锦州市| 永春县| 福鼎市| 安仁县| 五指山市| 田东县| 老河口市| 五莲县| 汾西县| 清原| 增城市| 手游| 通州区| 黄山市| 嘉定区| 南阳市| 修水县| 蛟河市| 科技| 华宁县|