`
幽灵线程
  • 浏览: 79018 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Hyperic HQ portal机制研究

阅读更多

1、 简介

portal是一种web应用,通常用来提供个性化、单次登录、聚集各个信息源的内容,并作为信息系统表现层的宿主。聚集是指将来自各个信息源的内容集成到一个web页面里的活动。

2、Hyperic HQ Portal

2.1Portal模型

2.1.1 Portal类

Portlet的容器,封装了页面名称、portlet显示列数、portlet集合以及工作流workflow信息。

属性说明:
  _name      :portal名,使用properties文件中的i18n命名。portal名用于页面<title>名称显示。
  _columns  :portal列数量。(在Dashboard页面,portal有两列portlets)。
  _portlets   :portlet集合。 PS:_portlets是一个List<List<Portlet>>类型的集合。Portlet经过两层封装,先封装成列,然后再封装到Portal中。

方法说明:
  createPortal()                        :Portal类的静态工厂方法,用于创建Portal对象。有一个无参数的方法和一个有两个参数的重载方法。
  addPortlet(portlet,column)  :添加portlet到Portal的column列。
  addPortlets()                         :添加portlets集合(列)到Portal中。

public class Portal {
	pirvate String _name;
	private String _description;			//portal描述。
	private int _columns;
	private List _portles = new ArrayList();
	private boolean _dialog = false;
	private boolean _workflowPortal = false;
	private Map _workflowParams = false;

//构造方法。构造Portal只使用Portal类的静态方法createPortal,所以此构造方法可以改为private。
	public Portal(){}				
//静态工厂方法构造Portal对象。
	public static Portal createPortal() {		
		Portal portal =  new Portal();
		portal.setColumns(1);
		portal.setDialog(false);
		return portal;
	}

//通过参数portalName和portletName构造portal的静态工厂方法。portletName为portlet的url值(也可以用Tiles Definition对象名称)。
	public static Portal createPortal (String portalName, String portletName) {
		Portal portal =  new Portal();
		portal.setName(portalName);		
		List definitions = new ArrayList();
		definitions.add(portletName);
		portal.addPortlets(definitions);
		return portal;
	}

//添加一个Portlet至Portal中。
	public void addPortlet(Portlet portlet, int column) {
		if(column > _columns){
			setColumns(column);
		}
		List col = (List)_portlets.get(column-1);
		col.add(portlet);
	}

	public void addPortlets(List definitions , int columns){
		//略
	}

	//setters and getters
}
 

2.1.2 Portlet类

Portlet类,封装url的portal单元。该类对象封装在Portal的portlets集合中,用于批量引入显示url内容。url一般为请求地址或者Tiles Definition。

属性说明:
    _url          :portlet最重要属性,用于加载请求地址或者Tiles。
    _name     :portlet名,可以为空,很少用到。
方法说明:
    Portlet(String url)   :通过Url创建portlet对象。

public class Portlet(){
	private String _name;				//portlet名,可以为空。
	private String _description;
	private String _url;		//portlet最重要的属性,portlet只要有url就可以完成portal功能。
	private String _label;
	private String _fullUrl;
	private String _isFirst = false;
	private String _isLast = false;

	public Portlet(){}

	public Portlet(String url){	//Portal构造方法,主要参数即url。	PS:此构造方法在Portal.createPortal(String portalName, String portletName)中调用,此方法中把portletName赋值给portlet.url,在这里造成歧义。
		super();
		_url = url;
	}

	public Portlet(String url ,String fullUrl){
		this(url);
		_fulUrl = fullUrl;
	}

	//setters and getters

}
 

2.2 PortalAction

控制Portal的Action类:Portal生命周期的初始化,Portal放入request,在JSP页面通过EL表达式获取Portal并加载Portlet中的url地址或Tiles页面。

/**
 * 控制资源页面Portal展示的PortalAction类。PortalAction配置在Tiles配置文件中,作为Tiles的ControllerUrl请求的Action类,Tiles页面会在加载之前请求此类,执行初始化工作。
 */
public class ResourceHubPortalAction extends BaseAction{

	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,//默认的execute方法。PortalAction类也可以继承DispatchAction,通过其他method控制portal。
					HttpServletResponse response) throws Exception {
		…………
		Portal portal = Portal.createPortal("resource.hub.ResourceHubTitle", ".resource.hub");	//resource.hub.ResourceHubTitle:portal名称,即新页面title名称,通过i18n值显示。
													//.resource.hub:Tiles定义,用于显示的portal页面。
		request.setAttribute(Constants.PORTAL_KEY, portal);	//把portal放入request中,key为Constant.PORTAL_KEY,即"portal"。
		…………
		return null;										//返回null,页面已经先确定,这里只做显示前的拦截初始化portal等内容。
	}
}
 

2.3 配置文件

2.3.1 struts配置文件

<action path="/ResourceHubLayout" name="ResourceHubForm" scope="request" forward=".resource.hub.layout"/>
  

2.3.2 tiles 配置文件

    .resource.hub.layout加载页面内容之前,会被/resource/hub/ResourceHubPortal.do拦截,通过ResourceHubPortalAction加载portal对象。

<definition name=".main.layout" path="/portal/MainLayout.jsp">

     <put name="body" value="/portal/ColumnsLayout.jsp" />

</definition>

<definition name=".main.resource.content.layout" extends=".main.layout">

    <put name="body" value="/portal/ColumnsLayout.jsp" />

</definition>

<definition name=".resource.hub.layout"  extends=".main.resource.content.layout" controllerUrl="/resource/hub/ResourceHubPortal.do" />
 

2.3.3 spring 配置文件

    Struts Action通过Spring IOC管理

<bean name="/resource/hub/ResourceHubPortal" class="org.hyperic.hq.ui.action.resource.hub.ResourceHubPortalAction" />

2.4 JSP文件

    Tiles definition .main.layout中的ColumnsLayout.jsp页面代码。

    通过EL表达式获取portal,通过JSTL forEach标签遍历portal,获得portlet列集合。然后遍历列中的portlet,通过<tiles:insert>将url插入页面。

<c:forEach var="columnsList" items="$[portal.portlets]" >

    <c:forEach var="portlet" items="$[columnsList]" >

         <tiles:insert  beanProperty="url" beanName="portlet" flush="true"/>

     </c:forEach>

</c:forEach>

 

1
0
分享到:
评论

相关推荐

    HypericHQ产品及功能介绍

    - **插件扩展**:HypericHQ提供了一个强大的管理Portal,可通过XML或任何编程语言与Hyperic管理插件结合,扩展至管理所有类型的软件和硬件设备。 #### 六、网络设备指标监控 HypericHQ支持多种网络设备的监控指标...

    Hyperic HQ 系统安装指南

    - 研究 HQ Agent 的配置文件,理解各参数的意义。 - 根据实际需求调整配置。 ##### 2. 控制 Agent 操作 - 使用命令行工具启动、停止 Agent。 - 通过命令行查看 Agent 状态。 通过以上步骤,可以顺利完成 Hyperic ...

    Hyperic HQ安装配置指南(第一部分)

    ### Hyperic HQ安装配置指南(第一部分)知识点详解 #### 一、安装要求 Hyperic HQ的安装配置涉及多个方面,主要包括服务器、数据库和代理的要求。 ##### 1.1 HQ服务器要求 - **HQ Server JRE要求**:Hyperic HQ...

    从源码编译构建Hyperic HQ

    《从源码编译构建Hyperic HQ:深入理解与实践》 Hyperic HQ,作为一个开源的企业级基础设施管理工具,提供了一整套强大的监控和管理解决方案,涵盖了服务器、网络设备、数据库、应用程序等IT资源。本篇文章将带领...

    Hyperic HQ 在linux下的安装教程

    ### Hyperic HQ 在 Linux 下的安装教程 #### 一、Hyperic HQ Server 的安装 **1. 创建新用户 hq** - 在 Red Hat 6.4 或其他兼容的 Linux 发行版上,首先需要创建一个新的用户账户 `hq` 用于安装 Hyperic HQ。 `...

    Hyperic HQ

    - **报警机制**:当监控的指标超过预设阈值时,hq-server会触发报警,通过邮件、短信等方式通知运维团队,确保及时响应。 - **报表和历史数据**:Hyperic HQ提供了丰富的图表和报表,用于分析历史数据,进行趋势...

    Hyperic_HQ

    此外,Hyperic HQ的管理portal可通过XML或PDK扩展,适应各种软件和硬件设备的管理需求。 Hyperic HQ支持多种操作系统和应用服务器的监控,如AIX、HP/UX、Solaris、Linux、Windows、Mac OS X、WebLogic、WebSphere、...

    Hyperic HQ使用说明.doc

    **Hyperic HQ 使用说明** Hyperic HQ 是一款强大的企业级 IT 运维管理工具,它为企业提供了一套全面的基础设施监控解决方案。通过Hyperic HQ,管理员可以实时了解系统的健康状况,及时发现并处理问题,确保业务的...

    Hyperic HQ安装和配置入门指南

    - 登录HQ portal后,首先看到的是Dashboard界面。这个界面可以将所需的资源、图表或者告警集成在一起,提供一个综合视图,便于集中查看和管理。 ##### 2. Resources - 显示所有被管理资源的列表,用户可以查看各个...

    hyperic hq server

    Hyperic HQ Server是一款功能强大的IT基础设施管理工具,主要用于监控、管理和维护企业的IT环境。这款软件由SpringSource开发,后来被VMware收购,并整合到vRealize Operations Suite中。Hyperic HQ Server提供了...

    Hyperic HQ简介

    告警机制是 Hyperic HQ 的核心功能之一,它允许用户针对特定服务的具体参数设置阈值,一旦超出这些阈值,系统就会自动触发告警。告警设置的过程大致如下: 1. 选择需要监控的服务。 2. 定义新的告警规则。 3. 设定...

    Hyperic HQ使用说明

    Hyperic HQ 是一个开源的IT管理框架,让用户使用统一的界面来管理各种不同的IT技术。

    Hyperic hqapi 使用手册

    手册介绍了HQ API的版本兼容性,即它支持的vFabric Hyperic、vFabric Suite以及vFabric Cloud Application Platform的具体版本,保证了文档内容的有效性和及时性。如果需要获取文档的最新版本或有更新的版本信息,...

    hypericHq汉化(版本是HQ的3.2.1)

    HQ汉化_版本是HQ的3.2.1 ApplicationResources.properties 博文链接:https://hongliangpan.iteye.com/blog/225730

    Hyperic hq 4.4.0 静默安装包(内附网盘地址)

    这是我自己做的Hyperic-hq-4.4.0的一键安装版本(Win32环境),不需要任何其他操作,默认安装在D:\Hyperic 文件夹下。记住,安装server期间如果出现重启现象,请在安装前就关闭360安全卫士(设置不当有冲突),且...

    Hyperic HQ简体中文-开源

    Hyperic简体中文版,与英文版尽量同步。欢迎使用,并提出建议。 中文手册(收费) http://www.innovatedigital.com/hypericmanual 问题反馈: http://www.oschina.net/p/hyperic+hq support@InnovateDigital.com

    hyperic-mule-plugin

    Hyperic Mule Plugin是一款针对Mule ESB(企业服务总线)的监控插件,主要用于集成到Hyperic HQ(Hyperic运维中心)中,提供对Mule ESB运行状态的全面监控与管理。这个插件的使用,极大地增强了IT团队对于企业级服务...

    Hyperic使用手册

    Hyperic Agent是Hyperic监控系统的重要组成部分,负责在被监控主机上收集数据,并将其发送到Hyperic HQ(主控台)。在Windows平台上,Hyperic Agent的安装包通常以`.zip`格式提供,如`hyperic-hq-agent-3.1.4-EE-504...

Global site tag (gtag.js) - Google Analytics