WebLogic Portal性能管理

即使是经验丰富的 Java Web开发人员也会惊讶于开发门户这一如此巨大的飞跃。最终用户看到的那个简单漂亮的界面的背后是像BEA WebLogic Portal 这样的商业产品提供的强大功能和复杂性。当门户应用程序处于生产阶段时,诊断性能问题就会显得格外的困难。

本文假设您对WebLogic Portal的功能和术语已经十分熟悉。

一个公司的门户能让公司更有效地利用其技术和人力资产,而同时又能为其员工、合作伙伴和客户提供一流的Web体验。由于这个原因,门户应用程序现在对业务来说十分关键,并且要能提供可靠的性能和可扩展性。BEA WebLogic Portal 是一种领先的基于Java EE 的门户服务器,可提供部署和运行门户应用程序的健壮的解决方案。

WebLogic Portal 架构

BEA WebLogic Portal 在一个完整的Web门户开发和交付平台中综合了统一的运行时框架、业务服务和生命周期管理技术。它可针对数千最终用户扩展并支持连续更改。

图1 显示了 WebLogic Portal 架构。在门户被实例化时,它会生成门户资源的分类或层次,即所谓的WebLogic Portal 控件树。控件树包括desktop、book和portlet。如您所见,控件树对于理解门户应用程序中的性能问题至关重要。

图1. WebLogic Portal的层次化架构

门户的基本构建块是portlet,portlet是小的门户应用程序,在Web页内通常描述为小盒子。它们是可重用组件,可提供到应用程序、基于Web的内容和其他资源的访问,并且可以访问和显示Web页、Web服务、应用程序和连锁内容提要。

Portlet 相互独立开发、部署、管理和显示。管理员和最终用户通过选择和安排portlet可以创建个性化的门户页,这样一来, Web 页就可针对个人、团队、部门或组织量身打造。Portlet 依赖于门户基础架构来访问用户配置文件信息、参与窗口和动作事件、与其他portlet 通信、访问远端内容、查找凭证和存储永久数据。

由于portlet 也是servlet,所以它们共享类似的重入和性能关注点。单一的 portlet 实例(即portlet 的 Java 类的单一实例)由所有请求者共享。由于处理portlet和 servlet 的线程数量有限,所以每个 portlet 要能尽快地完成其作业,以便整个页的响应时间能够得到优化,这一点非常重要。

理解控件树

WebLogic Portal 控件树代表门户内的所有结构元素,可充当构建新门户页所需的基础架构。在实例化门户时,新控件树在控件树处理期间创建(或从缓存清除,如果控件树已经存在)。门户性能的一个巨大阻碍就是门户内的控件的数量。门户控件越多(页、portlet、按钮等),控件树就越大,呈现所有组件所需的时间越长。

图 2 显示了一个为典型的门户所生成的控件树。由desktop 和 shell 创建一个主 book 和6个子book,而每个子book各包含2个页。每个页包含2个 portlet。所以,整个门户共包含至少42个控件。

图2.一个门户实例的典型控件树

一旦控件树构建完毕且实例变量也设置成功,在门户被完全呈现之前,此树必须在整个生命周期针对每个控件运行。生命周期方法被顺序调用。即,调用每个控件的 init() 方法,然后是每个控件的loadState() 方法,等等,调用的顺序由每个控件在门户分类图中的位置决定。

在生命周期运行每个控件需要一些开销处理时间,如果门户有数千个控件,这一时间就有可能会按指数级增长。因此可见,门户控件树越大,对性能的影响就越严重。

时间: 2024-11-01 10:08:07

WebLogic Portal性能管理的相关文章

使用WEBLOGIC PORTAL规则引擎中实现动态业务逻辑

web|动态 简介 业务应用的需求总是随着业务环境的变化趋势而不断地改变.决策很少是一成不变的,并且竞争压力要求业务逻辑的设计和实现具有灵活性,以快速地适应不断变化的需求.通常,对业务逻辑的更改必须由开发人员来完成,然后进行多次彻底的测试,而这将是一个很耗时的过程.在应用程序的修改工作完成后,需要将其重新部署到服务器,需要留出预定的停机时间,以防应用程序对用户不可用. 对于这个问题,更好的解决方案是通过应用程序之外的一组规则来实现某些业务决策.这些规则并没有被编译到应用程序中,而是在运行时读取并

Weblogic Portal中实现AJAX编程之架构

ajax|web|编程|架构 摘要 门户应用程序非常适用于从多个源提取信息以及为包含门户Web应用程序的portlet提供应用服务.对于用户,portlet应用程序是独立的实体,类似于桌面上的窗口应用程序.如果在一个窗口应用程序中执行一项操作会导致其他所有应用程序中的内容被刷新,那又会怎么样呢?这就是当前大多数门户的情况.在一个portlet中通过页面流进行转移会导致整个Web页面被刷新,包括该页面上的其他所有portlet. 为了避免出现这种有时不希望有的行为,Web开发人员采用了所谓Ajax

在BEA WebLogic Portal 8.1中进行Ajax编程 第2部分

编辑注:本文讲述了在WebLogic Portal 8.1中进行底层Ajax编程的细节.这与当前的WebLogic Portal 9.2 beta版无关. 摘要 Ajax是一种异步编程范型,借助于它,开发人员可以创建高度交互式的Web站点,从而在提高用户效率的同时减轻服务器的负载.Ajax结合了Web services.JavaScript和动态HTML编程技术,可以创造丰富的客户端体验,并提高本地应用程序的可用性.本系列文章的第一篇介绍了这些相关概念以及在BEA WebLogic Portal

在BEA WEBLOGIC PORTAL中进行AJAX编程 第1部分

摘要 门户应用程序非常适用于从多个源提取信息以及为包含门户Web应用程序的portlet提供应用服务.对于用户,portlet应用程序是独立的实体,类似于桌面上的窗口应用程序.如果在一个窗口应用程序中执行一项操作会导致其他所有应用程序中的内容被刷新,那又会怎么样呢?这就是当前大多数门户的情况.在一个portlet中通过页面流进行转移会导致整个Web页面被刷新,包括该页面上的其他所有portlet. 为了避免出现这种有时不希望有的行为,Web开发人员采用了所谓Ajax-风格的编程方法.Ajax即异

各位好~我在做关于weblogic portal的开发,但是现在遇到了2个问题

问题描述 问题1.使用oracleweblogicportal自带的工具,特别占用系统内存,如何解决.2.使用自定义开发工具开发的portal运行时报错,错误如下:3.我还是想使用myeclipse开发工具,开发portal,如何配置.错误:<2011-1-11下午06时13分49秒CST><Error><J2EE><BEA-160197><UnabletoloaddescriptorE:OracleWeblogicPortalMiddlewarewl

在weblogic portal中,将一个现成的portlet(.war文件)集成进来的问题

问题描述 如题,目前正在学习weblogicportal,最近碰到一个问题一直没能解决,就是我在网上下了一些现成的已经写好的portlet(.war文件),想集成到我的portal页面中,但不知道在什么地方或者是怎样操作?试过到weblogicserverconsole中部署,好像不行.但是在weblogicportalserverconsole中也找不到相应的操作.请各位达人们帮个忙,到底改怎样部署才能实现,谢谢了! 解决方案 解决方案二:非常好...

实现AJAX风格的Portal

前言 本文的是写给有BEA WebLogic Portal使用经验的开发人员.帮助他们把AJAX技术应用到BEA WebLogic Portal中,让用户可以得到更好的体验. 希望笔者在Portal方面的经验能对大家有所帮助和启发.限制于篇幅和主题所以不深入技术细节,有兴趣的读者请参考后面的文献,或者写信与我共同研究.本文不是Portal,Portlet,JSR168 ,AJAX入门开发文章,这些本章请查阅:http://dev2dev.bea.com.cn 在技术和概念部分不是非常详细,因为网

weblogic 体系结构

 1. J2EE 的体系结构 在介绍weblogic的体系结构之前,我们需要先明白j2ee的体系结构: 可以分为 4 层,如图 1 所示. (1)客户端层 这一层直接与用户交互,J2EE支持多种客户端,它既可以是通过Internet访问的Web浏览器客户端,也可以是通过企业Intranet运行的瘦客户端.  (2)Web层 这一层是为基于Web的应用程序服务的,J2EE中的JavaServer Page和Java Servlet技术可以访问封装有商务逻辑的组件,并负责响应Web客户端的请求. 

用bsu命令行为weblogic安装或者卸载补丁

关于bsu使用的官方解释: 并且可以参考这篇文档: Oracle WebLogicServer PSU(补丁集更新)公告 (文档 ID 1600822.1) Oracle Smart Update Applying Patches to Oracle WebLogic ServerRelease 3.3.0Part Number E14143-12 Home Contents Contact Us Previous Next View PDF 8 Using the Command-Line I