所有的远程EJB都能够通过SOAP、RMI和我们定制的通道对象来和外面的世界对接。
我们不能简单的处理它,因为Web服务已经逼近了。但是因为我们发现它对于整合是非常的有用,下面是一个公司整合这些资源的例子。
3sixteen 是一家T恤衫公司,他们需要快速建立,快速运行起来。他们看到了liferay,并且想使用整合的购物Portlet,他们认为liferay对于t恤衫公司来说是很难看的,他们为自己在时尚的尖端和自豪。为了解决这个问题,他们决定把他们的WEB表示曾分成两个网站,一个产品册子网站一个购物网站。
www.3sixteen.com使用Flash成为一个漂亮的网站,my.3sixteen.com成为了一个使用香子兰liferay发布的购物网站,这两个网站建立在两个不同的linux服务器上,因为意图和作用被放在不同的地方。
他们也必须建立一个邮件列表来收集他们感兴趣的客户的邮件列表。为了完成它,他们在Flas网站上增加了一个JSP弹出页面,这个页面能够通过门户服务器来增加email地址到Address Book portlet的联系中。
以下是JSP片段,这些片段显示了3sixteen 的小伙们如何通过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接收到。应用服务能够确保匹配鉴定,然后处理ABContactManagerUtil来判断是否id为 joe_bloggs的用户在调用ABContactManagerUtil 的addContact,然后调用ABContactManagerEJB 来处理实际该做的事情,你能够跟踪这些逻辑通过察看包含在生成的JAVADocs中的源代码。
现在Joe Bloggs能够记录进门户,并且察看他的地址簿门户看他有了一个新的联系人。因为Helper对象的生成,所有包含的portlet都有这样的能力。这就意味着我们能够编写Applet或者其他的JAVA应用来进入已经包含你的业务逻辑的会话EJB。这就能有一个安全的风险,如果有人有了你的密码,所以你能够调配来限制Tunnel Servlet 仅仅监听特定的端口,可以在portal.properties中调配。
你也能通过SOAP和RMI进入会话EJB,我们很快会发出更多的例子 |