??xml version="1.0" encoding="utf-8" standalone="yes"?>番号集在线观看,久久综合九色,免费在线观看污视频http://www.aygfsteel.com/badboyryan/category/13620.html<hr color=red> <marquee direction=left bgcolor= aaaaee behavior=scroll scrollamount=2 onmouseover="this.stop();" onmouseout="this.start();" width=500> <font color=green> 在恰当的旉、地点以恰当的方式表辄恰当的h...</font>&nbsp;&nbsp;<font color=blue>阅读的时候请注意分类Q佛(jng)曰我日里面是谈笑文章Q其他是各个分类的文章,U极的热情投入到写博的队伍中来,支持blogjava做大做强Q向dudu站长致敬>> > Qqq侠客岛:26858781Q?lt;/font> </marquee> <hr color=blue> <marquee direction=right bgcolor= aabbee behavior=scroll scrollamount=2 onmouseover="this.stop();" onmouseout="this.start();" width=500> <font color=green>_֓推荐:</font><a href="http://www.aygfsteel.com/badboyryan/category/13259.html">谈笑有`?lt;/a> &nbsp;&nbsp;<font color=green><a href="http://www.aygfsteel.com/badboyryan/category/14653.html"><font color=red>资源整合Q门L(fng)?lt;/font></a></font>&nbsp;&nbsp; <a href="http://www.aygfsteel.com/badboyryan/category/15148.html">JAVA名h?lt;/a> </marquee> <hr color=red>zh-cnTue, 27 Feb 2007 11:24:49 GMTTue, 27 Feb 2007 11:24:49 GMT60Liferay Portalpȝ架构Ҏ(gu) http://www.aygfsteel.com/badboyryan/articles/60949.html谈笑有`?/dc:creator>谈笑有`?/author>Mon, 31 Jul 2006 02:22:00 GMThttp://www.aygfsteel.com/badboyryan/articles/60949.htmlhttp://www.aygfsteel.com/badboyryan/comments/60949.htmlhttp://www.aygfsteel.com/badboyryan/articles/60949.html#Feedback0http://www.aygfsteel.com/badboyryan/comments/commentRss/60949.htmlhttp://www.aygfsteel.com/badboyryan/services/trackbacks/60949.htmlLiferay Portalpȝ架构Ҏ(gu)
原文地址: http://www.liferay.com/web/guest/documentation/architecture
目录
Liferay Portalpȝ架构Ҏ(gu) 1
目录 1
I、综qW?
II、Portlet 应用接口(JSP168) 2
III、Struts ?Tiles 2
IV、Session EJBs、Spring和Hibernate 3
V、SAOP、RMI和Tunneling 5
VI 应用服务器?

I、综q?br />用户可以通过传统的或者无U网l的方式讉Kportal。开发者可以通过SOAP、RMI和自己定义的通道c访问暴露的API来操作portal?br /> 
II、Portlet 应用接口(JSP168)
Liferay设计成ؓ(f)部vW合(JSP168)Portlet 应用接口的Portlet。很多有用的Portlet(比如邮g、Liferay文档、日立、公告版和其?已经跟portall定Q而且可以作ؓ(f)d自定义的Portlet的范例?br />III、Struts ?Tiles
所有的HTTP和W(xu)APh都通过MainServlet响应QMailServlet扩展了Struts基类ActionServlet?MainServlet处理所有的hQ得每个请求都路由到合适的PortletAction?惌更好的理解portal的web框架请参考Struts?br />Portal的布局信息通过定制的模板管理。想要更好的理解Tiles如何理布局的,请参考Tile的相x章?br />IV、Session EJBs、Spring和Hibernate
Liferay不再依赖EBJQ可以部|在标准的servlet容器中。所有的业务逻辑都集中在可以被Spring查找和实例化的POJO实现中。这些实现都可以通过Spring的AOP和IOC修改或者强化?br />Portal 企业版用Session EJB包装POJO实现Q以为大型网站提供所需的重量扩展和事务支持。Portal 专业版调用POJO实现以提供轻量的一致的外观(fa?ade)?br />所有的数据都用Hibernate持久化,供POJO实现调用?Liferay原来使用CMP技术构建持久化Q?因ؓ(f)Hibernate优秀的速度和弹性而{换ؓ(f)Hibernate?Liferay不依赖特定的数据库,可以在多U流行的数据库上q行?br />Liferay使用JAAS Web安全机制Q当用户d的时候,他们的信息会(x)被传送到相应的Servlet和EJB节点。远E的Session EJB可以利用q一点,在EJB层񔼋认安全性和授权Q防止它在其他地方被复制。本地Session EJB向其他Session EJB暴露业务逻辑Q不需要明的认安全性,因ؓ(f)它们不会(x)被远E调用。信息也?x)被传送到作ؓ(f)q程Session EJB基础cȝPOJO实现上?br />企业版用Session EJBQ允?dng)R|者将Web服务器、EJB服务器、数据库服务器分开Q构Z层的架构。这是真正的N层部|Ԍ因ؓ(f)没有人再x单层的群Q而且可以为大企业提供最大程度的Ҏ(gu)?br />大部分的EJB、HBM和Model都是?portal-ejb目录下service。xml中的antdbuild-service生成的。每个持久化数据的Portlet都有自己的service。xml?搜烦(ch)/portal-ejb目录Q你可以得C个列?。当我们惌为portlet产生持久cȝ时候就可以复制q些文g?portal-ejb目录。这是一个构建在Xdoclet引擎上面的内部工兗?br />比如Q在dBookmarks Portlet的service。xmlӞ下列模型c被生成。每个模型类映射数据库中的一个表。不要编辑B(ti)ookmarksEntryModelQ要通过~辑B(ti)ookmarksEntry来增加手工维护的代码。BookmarksEntry一ơ性生成,扩展了BookmarksEntryModel。这样允许我们轻杄生成代码Q而且具备手工l护的弹性?br />com.liferay.portlet.bookmarks.model.BookmarksEntry
com.liferay.portlet.bookmarks.model.BookmarksEntryModel
com.liferay.portlet.bookmarks.model.BookmarksFolder
com.liferay.portlet.bookmarks.model.BookmarksFolderModel
Hibernatecȝ成针对各个模型类的映。这样当模型c跨层配|而Hibernate不是的时候允怸个N层的架构?br />com.liferay.portlet.bookmarks.service.persistence.BookmarksEntryHBM
com.liferay.portlet.bookmarks.service.persistence.BookmarksFolderHBM
d、更新、删除、查找、移动和计算Hibernate entries的持久方法作为默认的持久化机制被生成?br />com.liferay.portlet.bookmarks.service.persistence.BookmarksEntryPersistence
com.liferay.portlet.bookmarks.service.persistence.BookmarksFolderPersistence
生成的帮助类调用持久化方法。默认的Q帮助类调用Hibernate持久化方法来更新数据库。你可以在portal。properties中重写,而且只要扩展了默认的持久化类可以设|自q持久化类。这意味着可以自定义在哪里保存你的数据。它可以是一个传l的数据库,或者LDAP服务器,或者其他?br />com.liferay.portlet.bookmarks.service.persistence.BookmarksEntryUtil
com.liferay.portlet.bookmarks.service.persistence.BookmarksFolderUtil
池类也被创徏成最的对象Q行Z可以在portal。properties中修攏V?br />com.liferay.portlet.bookmarks.service.persistence.BookmarksEntryPool
com.liferay.portlet.bookmarks.service.persistence.BookmarksFolderPool
扩展了PrincipalBean的POJO实现持有业务逻辑Q确认调用者信息,可以被远E调用。调用getUserId()q回当前用户id。调用getUser()q回代表当前用户的用h型。扩展POJO实现的Session EJB实现了PrincipalSessionBean?br />比如Q这些类允许你删除一个书{օ口或者文件夹Q当且仅当你是这个入口或者文件夹的创?br />q些cd有在它们不存在的时候才能被生成?br />com.liferay.portlet.bookmarks.service.impl.BookmarksEntryServiceImpl
com.liferay.portlet.bookmarks.service.impl.BookmarksFolderServiceImpl
帮助cLZPOJO实现生成的。它们帮助保存开发者的旉和显C错?polluted)的代码。与其写好几行代码来L合适的Session EJB包装或者POJO实现Q你可以单的使用BookmarksEntryServiceUril。addEntry来调用BookmarksEntryServiceImpl。addEntry中的{h(hun)Ҏ(gu)?br />BookmarksEntryServiceUril 调用BookmarksFolderServiceFactory来查扑֮现BookmarksEntryService的类。BookmarksFolderServicesFactoryҎ(gu)Spring和portal。properties的配|来军_是否加蝲Session EJB包装或者POJO实现。Session EJB扩展了POJO实现?br />com.liferay.portlet.bookmarks.service.ejb.BookmarksEntryServiceEJB
com.liferay.portlet.bookmarks.service.ejb.BookmarksEntryServiceEJBImpl
com.liferay.portlet.bookmarks.service.ejb.BookmarksEntryServiceHome

com.liferay.portlet.bookmarks.service.spring.BookmarksEntryService
com.liferay.portlet.bookmarks.service.spring.BookmarksEntryServiceFactory
com.liferay.portlet.bookmarks.service.spring.BookmarksEntryServiceUtil

com.liferay.portlet.bookmarks.service.ejb.BookmarksFolderServiceEJB
com.liferay.portlet.bookmarks.service.ejb.BookmarksFolderServiceEJBImpl
com.liferay.portlet.bookmarks.service.ejb.BookmarksFolderServiceHome

com。Liferay.portlet.bookmarks.service.spring.BookmarksFolderService
com。Liferay.portlet.bookmarks.service.spring.BookmarksFolderServiceFactory
com。Liferay.portlet.bookmarks.service.spring.BookmarksFolderServiceUtil
通道(Tunneling)cM得开发者可以通过80端口调用POJO实现。本文档的V部分针对q个l出了一个例子?br />com.liferay.portlet.bookmarks.service.http.BookmarksEntryServiceHttp
com.liferay.portlet.bookmarks.service.http.BookmarksFolderServiceHttp
Soapc被生成Q以便开发者通过80端口调用POJO实现。Soap比通道(tunneling)慢,因ؓ(f)tunnelingh是二进制格式的。Soap比tunneling灉|Q因为客L(fng)cM局限于Java?br />com.liferay.portlet.bookmarks.service.http.BookmarksEntryServiceSoap
com.liferay.portlet.bookmarks.service.http.BookmarksFolderServiceSoap
没有扩展PrincipalBean的POJO实现cȝ来持有业务逻辑Q不用确认调用者的信息Q可以被本地调用。这些类的存在得业务逻辑可以很容易的被其他工E集成?br />q些cd有在先前不存在的情况下才?x)被生成?br />com.liferay.portlet.bookmarks.service.impl.BookmarksEntryLocalServiceImpl
com.liferay.portlet.bookmarks.service.impl.BookmarksFolderLocalServiceImpl
帮助cM一q生成?br />com.liferay.portlet.bookmarks.service.ejb.BookmarksEntryLocalServiceEJB
com.liferay.portlet.bookmarks.service.ejb.BookmarksEntryLocalServiceEJBImpl
com.liferay.portlet.bookmarks.service.ejb.BookmarksEntryLocalServiceHome

com.liferay.portlet.bookmarks.service.spring.BookmarksEntryLocalService
com.liferay.portlet.bookmarks.service.spring.BookmarksEntryLocalServiceFactory
com.liferay.portlet.bookmarks.service.spring.BookmarksEntryLocalServiceUtil

com.liferay.portlet.bookmarks.service.ejb.BookmarksFolderLocalServiceEJB
com.liferay.portlet.bookmarks.service.ejb.BookmarksFolderLocalServiceEJBImpl
com.liferay.portlet.bookmarks.service.ejb.BookmarksFolderLocalServiceHome

com.liferay.portlet.bookmarks.service.spring.BookmarksFolderLocalService
com.liferay.portlet.bookmarks.service.spring.BookmarksFolderLocalServiceFactory
com.liferay.portlet.bookmarks.service.spring.BookmarksFolderLocalServiceUtil
有一些用户需要远E调用本地的Servicec,所以远EServicecȝ本地副本也一q被生成?br />com.liferay.portlet.bookmarks.service.ejb.BookmarksEntryRemoteServiceEJB
com.liferay.portlet.bookmarks.service.ejb.BookmarksEntryRemoteServiceEJBImpl
com.liferay.portlet.bookmarks.service.ejb.BookmarksEntryRemoteServiceHome

com.liferay.portlet.bookmarks.service.spring.BookmarksEntryRemoteService
com.liferay.portlet.bookmarks.service.spring.BookmarksEntryRemoteServiceFactory
com.liferay.portlet.bookmarks.service.spring.BookmarksEntryRemoteServiceUtil

com.liferay.portlet.bookmarks.service.ejb.BookmarksFolderRemoteServiceEJB
com.liferay.portlet.bookmarks.service.ejb.BookmarksFolderRemoteServiceEJBImpl
com.liferay.portlet.bookmarks.service.ejb.BookmarksFolderRemoteServiceHome

com.liferay.portlet.bookmarks.service.spring.BookmarksFolderRemoteService
com.liferay.portlet.bookmarks.service.spring.BookmarksFolderRemoteServiceFactory
com.liferay.portlet.bookmarks.service.spring.BookmarksFolderRemoteServiceUtil
很多人刻意避免Session EJB因ؓ(f)它很重和需要大量的~码。我们的构徏脚本证明你可以在复用中保持Session EBJ的优势,q样可以在付出和回报上保持很好^衡?br />Springl予Liferay额外的弹性?开发者利用Liferay PortalQ可以在一个Servlet容器中测试他们的POJO实现;而利用Liferay Portal企业版,可以在一个应用服务器部v成品?br />V、SAOP、RMI和Tunneling
所有的q程POJO实现都通过SOAP、RMI和我们自q通道(Tunneling)cL露给外部世界?br />我们q不是简单的q样做因为Web Serviceq是一个困?buzz)的世界,但是我们发现它确实对集成有用。接下来是一个公司^衡这些资源的例子?br />3 sixteen是一家将快速创建和q作的T恤公司。他们看到LiferayQ想利用集成的购?portlet。但是他们认为Liferay作ؓ(f)一个处于时前沿的T恤公司站点太隄了。ؓ(f)了解册个问题,他们军_他们的|站分ؓ(f)两个站点:一个手册站点和一个购物站炏V?br />www?sixteen。com 成ؓ(f)一个构建在Flash上面的漂亮的站点。my?sixteen。com则是使用Liferay分发的购物站炏V这两个站点分别攑֜不同的LinuxpȝL上,所有的目的攑֜不同的宿M?br />他们q需要构Z个邮件列表来攉所有感兴趣的客L(fng)邮g地址。ؓ(f)实现q个Q他们再Flash站点增加了一个JSP弹出H口(pop up box)Q这样可以告诉Portal服务器在Address Book Portlet中将邮g地址增加到联pd?contact)?br />下面是一个JSP片断Q显C?sixteen的用户如何利用ABContactServiceHttp增加一个联pd表?br /> 
ABContactServiceHttp调用ABContactServiceUtil的addContact。这个调用通过80端口发送,?a href="http://my/">http://my?sixteen。com/tunnel/servlet/AuthTunnelServlet接收。应用服务器认认证匚wQ然后处理ABContactServiceUtilQ就好像ID为joe_bloggs的用户在调用addContact。然后ABContactServiceUtil调用ABContactServiceImpl来完成实际工作。你可以通过查看JavaDocs里面的源代码来查看这个逻辑?br />现在Joe Bloggs可以d到portalQ在Address Book portlet可以看到他已l有一个新的联pd表。所有被包含的portlet都有q个性能因ؓ(f)q些帮助cdl生成。这意味着你可以撰写applet或者Q何Java应用来操作那些包含你的业务逻辑的Session EJB。假如有人持有你的密码那么这?x)是一个安全问题,所以你可以通过修改配置文gportal。properties来限刉道(Tunnel)Servlet只监听特定的端口?br />你也可以通过SOAP和RMI操作Session EJB。我们将快提交更多q方面的例子?br />VI 应用服务?br />Liferay是从底层构徏的,可以被应用服务器所用。下面是一个Portal例子列表Q显Cportalq接数据库以?qing)展CLiferay的性能?br />http://demo.liferay.net
http://my.ccuc.net
http://my.3sixteen.com
http://portal.liferay.com
http://www.gatewayfriends.org
http://www.jasonandiris.com
每个Portal中的用户在其他Portal中没有信息保留。他们用域名分隔开Q根据公司编号存在于各自的空间内?br />查看Multiple Portal获取l节信息Q了解如何在一台机器上部v多个Portal实例?/p>

作?: eamoi @ Aljoin Software
Dev2dev ID: educhina
Blog地址:
http://spaces.msn.com/members/eamoi/
http://blog.sina.com.cn/u/1183534285
http://www.aygfsteel.com/eamoi/



]]>
Liferay的Portlet Session处理(2) http://www.aygfsteel.com/badboyryan/articles/60944.html谈笑有`?/dc:creator>谈笑有`?/author>Mon, 31 Jul 2006 02:09:00 GMThttp://www.aygfsteel.com/badboyryan/articles/60944.htmlhttp://www.aygfsteel.com/badboyryan/comments/60944.htmlhttp://www.aygfsteel.com/badboyryan/articles/60944.html#Feedback0http://www.aygfsteel.com/badboyryan/comments/commentRss/60944.htmlhttp://www.aygfsteel.com/badboyryan/services/trackbacks/60944.html
Portal开源实?Liferay的Portlet Session处理(2)