目前在Internet上日益盛行的门户应用程序继续保持着很高的流行态势。它们保持吸引力的原因主要在于它们提供的功能,但在某种程度上也是因为它们在这个领域里是相对新鲜的东西。但是,流行通常并不是选择某项技术的好理由。和其他任何技术一样,门户也有它们的用途,而且如果仅是计划创建一个Web应用程序,则无需创建门户。遗憾的是,有些人并不理解这一概念。
为了理解这种差异,我们先来看看门户到底是什么。最初,门户是一个Web应用程序,它可以把用户需要的所有应用程序都汇集到一个中心位置。不管这些模块是新的还是遗留下来的,它们都是组件化的,并都是可访问的。如今,大概每个人都知道门户是由子组件(通常被称为portlet)构成的,且在门户内很少能看到可用的遗留应用程序了。
应用程序的寿命已经缩短了,且常常不是作为一种新软件进入企业,所以必须组建一支新的服务团队来管理软件的升级。但是,这种情况并不意味着门户不能再利用遗留应用程序了。远非以前可比的是,现在门户提供了整合遗留应用程序的能力。今天在企业中见到的是从基本的到复杂的新应用程序的创建,这些新应用程序被组合在一起,形成定制的Web应用程序,并把整个企业合为一体。不过,有一种情况没有改变:就是用prolet把众多的应用程序汇集到一处。
随着门户的普及,门户供应商应运而生,并且开始创建门户框架,这增加了我们对门户的期望值。如今的门户软件提供了很多特性,可以简化曾是开发人员需求一部分的许多过程(参见图1)。列出目前可用的不同门户中的所有可用特性是不可能的。为了进行讨论,我选择了我最常用的一些特性。在门户解决方案中,并不一定需要用到所有的特性。请查看供应商的特性列表,确定适合你的特性列表。
图1 . BEA WebLogic门户特性
其他供应商的门户特性图表与这一图表相似。
自己动手
一般来说,定制是门户软件和门户使用的最大卖点之一。门户中提供的概念使你能够轻松配置用户访问权。并非每个用户都有同样的权限。一个用户可能只对少部分prolet拥有访问权,而另一个用户则可能对大部分prolet都拥有访问权。许多门户框架都是通过让管理员定义每个用户的访问权限来提供功能的。可访问prolet的显示以及更重要的对不可访问prolet的禁止,都是由框架程序来处理的。
通过选择某些特性以及调整组件的放置,用户本人通常都可以改变自己的浏览体验。这些能力带给用户一种驾驭和控制Web应用程序的感受,这种感受又会带给他们更愉快的体验并由此实现更成功的应用。
Web应用程序的内容已经非常丰富。没有内容的Web应用程序几乎是没有的。任何图像或文本块都可以作为一块内容。由于其明显的需求,有些门户提供了与公共内容管理系统相连的连接器,还有一些门户甚至还提供了与门户软件自身结合在一起的基层-中间层内容管理系统。内容管理允许内容与表示层分离。这样不仅使Web内容更易于管理,而且还支持某些附加特性,如基于用户和基于角色的内容专业化。
需要在成员间共享的资源一般可以在内部网和企业门户中找到。门户供应商已经开始提供协作工具来促进这一过程。在考虑协作时,第一个想到的通常是日程表和事件,而且现在任何信息其实都能在用户和用户组之间共享。有些门户甚至还提供了网络会议和即时消息传递特性。
随着当今门户中可用特性的不断增加,以及这些应用程序所支持的用户的增加,用户管理成为了一个重大问题。还好,软件制造商已经采取了必要措施来解决这一费心费力的问题。许多门户都提供了一种工具来管理不断变化的用户需求。我相信我们当中有很多人都还记得开发人员为管理某一应用程序的用户而开发所需管理屏幕的时刻。现在这项任务就是以前处理许多门户解决方案的那件事情。包含的工具为配置用户并将它们与许多可用特性关联在一起提供了方法。
与累积在一起数量会变得十分巨大的许多不同门户供应商提供的特性相比,这些特性只是沧海一粟。这将引发许多文章来讨论可从所有门户供应商获得的所有门户属性。对于你将承担的项目来说,可供选择的门户解决方案很多。目前市场上有许多可用的产品,也有一些开放源码的解决方案。
门户的可用特性毫无疑问会影响决策过程,但比不上对产品的熟悉程度。市场上提供的许多门户产品均共享公共的特性子集。更多情况下,决策都是基于开发团队的专业经验而作出的。价格是另外一个因素,但仅适用于购买商业软件或搭配开放源码产品的情况。在项目开发的总成本中,软件购买只占很小的一部分。
门户标准
最初激起我对Java的兴趣的是它以平台无关模式开发软件的能力。随着门户供应商的不断增加,也就有了对门户无关软件的需求。这种无关性将导致大量portlet目录的产生,使门户管理员无需开发便可轻而易举将功能添加到他们的门户。如果你想在你的计算机上编辑文本文档,你不必在你偏爱的Java IDE内开始工作。我并不是要贬低当今门户技术所创造的奇迹。许多portlet都已经可用于门户中了。不过,拥有无论在哪都可运行的portlet对于这个行业来说会更有好处。
Java用户正在对这项需求作出回应。JSR 168为portlet开发定义了一个标准。依据该标准开发的Portlet将可以在任何符合该标准的门户容器中运行,这将大大提升门户的价值,让更多的人可以用到更多的portlet。
在开发Web应用程序时,门户决不是惟一的选择。正如其他任何技术一样,门户是用于满足某些特定需求的。如果没有需求,所有的门户都将不复存在。我曾经看到过有些门户应用程序的开发没有使用购买的其他软件所提供的任何功能,这样做显然是不明智的。
在许多情况下,用JSP和servlet创建应用程序仍是一个可行的选择。从表面上看门户是在复杂的容器中运行,但在底层你会发现我们过去都惯常使用的JSP和servlet。在门户时代以前,企业应用程序都是以这种方式开发的,而且将来还会继续以这种方式开发。遗憾的是,有些架构师和销售人员太急功近利,以致于作出的决策影响到整个软件开发生命周期,而他们的脑子里只有术语和财源。
JavaServer Faces(JSF)技术也是帮助构建Web应用程序的新技术。JSF已经证实可以使应用程序用户界面的开发变得容易,同时也可保持表示逻辑与应用逻辑的完全分离。JSF中的某些特性与门户软件中的某些特性相似。创建可重复使用的组件构成了JSF技术的基础,然后通过使用自定义标签库可以将这些组件整合到JSP中。
随着时间的推移,我们将会继续看到门户流行性的增长,特别是随着门户标准的创建和开放源码的使用。门户软件供应商将会继续增加其门户产品的功能,提高它们的生产力,并随时将它们添加到特性列表中。将来,我们将真的会惊讶于这些Web应用程序的强大威力。
不过,门户并不能满足所有的Web应用需求。门户提供了许多开箱即用的特性,但只有需要和使用它们时,它们才有价值。架构师不应该把门户当成每件事的解决方案。随着技术的发展,我们会发现在我们身边有新的和具有吸引力的开发领域,作为架构师,我们需要在正确的设计决策方面付出更多的努力。技术进步通常会使开发过程变得容易,但通常也会增加设计的复杂性。
关于作者
David Hritz 是智能创新解决方案的战略技术总监, 用 BEA WebLogic 创建 Web 门户 ( APress , 2003 )一书的作者之一。 David 的电子邮件是 dhritz@smart-isolutions.com 。
原文出处
http://www.fawcette.com/javapro/2005_01/magazine/features/dhritz/
|