hengheng123456789

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks
通过 SOAP, RMI, 以及我们客户化的隧道类等途径,所有的远程 POJO 实现都向外开放。之所以这么做,并不仅仅是因为网络服务要应用于商务,而是根本上我们发现这样做对集成来说简直是太有用了。以下就有一个得益于此的企业集成案例。

3sixteen是一个做服装T恤的公司,需要扩大发展。他们注意到了Liferay有意用之来集成一个商业门户。但是,他们又感觉在一个超前时尚的服务行业Liferay似乎显得有点太丑了,或者说不入格。为了解决这个矛盾,他们不得以把WEB表现层分成了两个站点:一个产品展示站点和一个在线购买站点。

结果, www.3sixteen.com 成了一个基于 Flash 技术的漂亮站点,而 my.3sixteen.com 则是一个基于 Liferay vanilla 版本的在线购物站点。这两个站点分别安装在不同的两个 Linux 主机上,基于目标及用途的考虑可以布署在不同的国家。

项目的一个重要需求是要建立一个邮件地址管理系统,用来收集目标客户的邮件地址。于是,在 Flash 作的站点中我们加入了弹出工窗口,用来通过门户服务器要增加记录某客户的这个邮件地址到系统中。

以下是相应的 JSP 片段,它利用 ABContactManagerHttp 的功能来增加新的联系人。
String URL = "http://my.3sixteen.com";

HttpPrincipal httpPrincipal = new HttpPrincipal(URL, "joe_bloggs", "password");

ABContactManagerHttp.addContact(httpPrincipal, firstName, lastName, emailAddress);

ABContactManagerHttp 调用了 ABContactManagerUtil 中的 addContact 方法,而重要的是这个调用是通过 80 端口,直接由门户站点的 http://my.3sixteen.com/tunnel/servlet/AuthTunnelServlet 接收,应用服务器只要判定认证合法之后,就以 ID joe_bloggs 的用户的身份 调用 addContact 方法,然后由 ABContactManagerUtil 调用实现类 ABContactManagerImpl 来完成真正的添加联系人的工作。这一过程可能通过查自动生成的 JavaDocs 文档中的源代码来证实。

之后呢,那个Joe Bloggs就可以登录门户,通过查看它的地址本发现多了一个新的联系人了。而且在系统的其它门户单元也可以通过协助类(helper classses)达到同样的目的。而另外一方面这也可能是一个安全隐患,因为随便一个人就可以通过一个小JAVAapplets)或其它程序,从而直接调用有业务逻辑功能的EJB,只要他拥有认证的密码。一个应对的方法是通过修改portal.properties来只指定特定的端口侦听这类服务请求。

当然也可以通过 SOAT RMI 等来调用 EJB。

Liferay是一个自下而上完整的应用系统提供者。以下是案例清单,它们都是单一门户单一数据库系统。
http://demo.liferay.net
http://my.ccuc.net
http://my.3sixteen.com
http://portal.liferay.com
http://www.gatewayfriends.org
http://www.jasonandiris.com

其中每个门户的用户都与其它门户完全隔离,门户间是依据各自的公司 ID 通过域来分割不同的空间。
如果对在同一机器集成多个 Liferay 有兴趣,请参阅 Multiple Portals

posted on 2007-02-10 13:19 哼哼 阅读(483) 评论(0)  编辑  收藏 所属分类: JAVA-Web

只有注册用户登录后才能发表评论。


网站导航: