??xml version="1.0" encoding="utf-8" standalone="yes"?>97久久超碰国产精品电影,大黄网站在线观看,欧洲亚洲精品视频http://www.aygfsteel.com/nogocn/category/21692.html转变思维观念:人是体生活?需要沟通与理解.zh-cnThu, 24 May 2007 04:32:30 GMTThu, 24 May 2007 04:32:30 GMT60摘引自j道板桥里人的j2ee容器http://www.aygfsteel.com/nogocn/articles/119537.htmlNGNGWed, 23 May 2007 23:43:00 GMThttp://www.aygfsteel.com/nogocn/articles/119537.htmlhttp://www.aygfsteel.com/nogocn/comments/119537.htmlhttp://www.aygfsteel.com/nogocn/articles/119537.html#Feedback0http://www.aygfsteel.com/nogocn/comments/commentRss/119537.htmlhttp://www.aygfsteel.com/nogocn/services/trackbacks/119537.html目前所有的B/Spȝ应用可以分ؓ(f)Q有状?statefull)和无状?stateless)两大cd?有状态是指在整个pȝ的处理过E中要保留记住一些信息,而无状态则相反Q每ơrequest都是独立的连接,不需要在每个request之间׃n数据{等?

对于q两U应用,通常W一考虑是性能要最优,性能是我们选择IT技术的主要依据之一?/p>

到最大化的性能Q对于JavapȝQ以前通常的作法是使用对象池,q样节约对象生成时的性能开销Q也是说系l启动时Q预先生成一定数目的对象实例在内存(sh)Q需要用时Q从对象池中取出实例Q用完,归还对象池,对于有状态的应用Q可以用相x(chng)久化QpersistenceQ策略来保存状态?/p>

下一步,如何q行讉K对象池将是非帔R要,java的多U程技术ؓ(f)我们提供?jin)实现可能,U程的创建销毁也是可能非常耗时的,那么Q无疑象使用对象池一P我们必须使用U程池来实现多线Eƈ行计的最优化?/p>

使用U程池和对象池,每次客户端请求发生一ơ就从线E池中借用一个线E,处理完这个请求就线E返回线E池Q同P使用U程快速的讉K对象Q对象也是从对象池中借用Q用完就q回对象池?整个q样的架构设计在性能上是最优的?/p>

有了(jin)性能保证Q安全机制、事务机制、集?cluster)技术也是选择IT技术的主要依据?/p>

J2EE是q样一个实Cq多U考量的综合标准框架系l,在具体用中Q也许我们对所有这些考量的要求ƈ不都一样重视,比如Q如果纯_追求性能是第一Q可以忽视事务机Ӟ那么Q完整的J2EE技术也许就q不适合你?/p>

那么我们先看看J2EE是如何从性能上保证我们的应用pȝ以最快速度q行的,也就是说J2EE中必然应该有上述U程池和对象池的实现技术,servlet实际是基于线E池的更好的U程容器QEJB是基于对象池的更好的对象容器?/p>

看看Servler的架构图Q?/p>

 

当client1发生h时servlet容器?x)从U程池中分配一个线E给q个request.


再看看EJB的架构图Q?/p>



instance Pool作ؓ(f)一个对象实例池Q维持着EJB实例Q当然这个对象池是用生命周期的,单的?EJB=对象?q程对象?/p>

但是QEJBq整合了(jin)相当的其它增强功能,如安?事务机制{,q些对于一般应用都是必需的,当然你还必须Ҏ(gu)你的需要来选择是否使用J2EEQ如果你的应用对安全 事务机制没有要求Q直接用线E池和对象池技术肯定获得最好的性能?/p>

所以,Ҏ(gu)Servler和EJB的原理,我们已经可以规划我们的应用,什么可以放在servletQ或什么需要放在EJB中实玎ͼ(x)

U程的本质决定了(jin)servlet只适合一些轻量的应用Q如分析单XML文档, 通过JDBC讉K数据源,使用JMS或JavaMail处理单的信息MessageQ或使用JTS/JTA处理单的事务机制Q注意这些用词都??的,一旦复杂了(jin)Q就要用EJB?jin)?/p>

下面从客L(fng)和服务器端两个方面来具体考量q两个技术的使用Q这里的客户端不一定是指最l客L(fng)Q因为J2EE是多层结构,中间层可能在多个服务器上实现Q如果一个服务器上的服务是供另外一个服务器上的应用讉K的,那么后者我们也UCؓ(f)客户端?/p>

Ҏ(gu)应用的复杂程度和要求不同Q分下列情况Q?/p>

1.在WEB层可以实现的一些应?/p>

如果你的pȝ没有很复杂的事务处理Q或讉K很多企业原有的资源,那么可以借助javabeanq样的一些Help性质的类来实C的应用,但是Q这L(fng)Ҏ(gu)不是最q净clean, 最有效efficient, 或最有扩展性的scalable?/p>

否则Q将所有核?j)计放|入EJB中?/p>

2.所有的复杂商务计算核心(j)都在EJB中完?/p>

如果你的客户端和服务器端之间有防火墙Q那么目前能够无障碍通过防火墙的协议只有Http?Web Service也是Zhttp是q个道理)Q既然用http?jin),而Servlet是基于Http协议的,那么需要通过servlet来访问EJBQ这是我们最普遍的应用情c(din)?/p>

但是Q如果你的客L(fng)和服务器端可以放|在一个网l内Q之间没有防火墙Q那么就不必使用ServletQ直接用Java调用RMI来访问EJBQ这h能是最好的Q这时的Servlet大概只有用于控制Jsp的页面的输出?MVC模式中的控制作用)?/p>

如果是非java客户端,可以通过CORBAlg来访问EJB?/p>

3.如果你的应用寚w度要求很高Q要求非常快Q对于事务处理等斚w几乎无要?/p>

直接使用J2SEQ加上线E池和对象池技术,会(x)使你的javapȝ性能发挥极致。Jakarta.Apache.org有这两种技术的源码Q线E池可以从Servlet容器Tomcat的源码中发现?/p>

NG 2007-05-24 07:43 发表评论
]]>
վ֩ģ壺 | °Ͷ| | | ľ| żҽ| | | | Ϫ| | | żҸ| | | | | ̨ǰ| ½| | | | | ̫ԭ| ɼ| | | | Ȫ| | ɽ| ߱| ɽ| °Ͷ| ¹| | ƽ| | ̫| | ֦|