|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先说优点,首先和C,C++这些语言比起来,java很简单,去掉指针的java,非常好理解,自动垃圾回收机制也很好,自从JDK1.5推出以后,性能上又有了很大提高。
良多乐成的企业使用程序都是利用JavaEE平台构建的。可是,JavaEE的计划道理其实不可以无效地撑持Web2.0使用程序。深切懂得JavaEE和Web2.0道理之间的摆脱可匡助您制订明智的决议,从而利用各类办法和工具在必定水平上办理这类摆脱。本文将解答Web2.0和尺度JavaEE平台缘何成为失利的组合,并演示为什么由事务驱动的异步架构更合适Web2.0使用程序。本文还先容了一些框架和API,它们经由过程撑持异步计划使得Java平台加倍合适Web2.0。
JavaEE道理和假想
JavaEE平台的创立目标就是为企业到客户(B2C)和企业到企业(B2B)使用程序供应撑持。企业发明了Internet的代价以后就入手下手利用它加强与互助同伴和客户之间的现有营业流程。这些使用程序一般要与一个现有企业集成体系(EIS)举行交互。年夜多半罕见基准测试(测试JavaEE服务器的功能和可伸缩性)—ECperf1.1、SPECjbb2005和SPECjAppServer2004—的用例都将这一点反应到了B2C、B2B和EIS中。相似地,尺度的JavaPetStore演示也是一个典范的电子商务使用程序。
良多有关JavaEE架构可伸缩性的分明和暗含的假想都反应在基准测试中:
从客户机角度来看,哀求吞吐量是影响功能的最主要特征。
事件延续工夫是最主要的功能要素,而且,缩减一切个别事件的延续工夫将改良使用程序的整体功能。
事件之间一般都是相互自力的。
除临时实行的事件之外,只要多数营业对象会受事件影响。
使用服务器的功能和部署在统一办理域的EIS会限定事件的延续工夫。
经由过程利用毗连池能够抵消必定的收集通讯本钱(在处置当地资本时发生)
经由过程对收集设置、硬件和软件举行优化,能够延长事件延续工夫。
使用程序一切者能够把持内容和数据。在不依附内部服务的条件下,向用户供应内容的最主要限定要素是带宽。
功能和可伸缩性成绩
JavaEE平台最后的计划目标是利用部署在单个办理域中的资本操纵服务。其假想的条件是EIS事件保存期较短而且哀求处置较快,从而使平台可以撑持较高的事件负载。
良多新兴架构办法和形式—比方对等(P2P)、面向服务架构和统称(非正式地)为Web2.0的新型Web使用程序—不满意这些假定。在这些使用程序的利用场景中,哀求处置将占用更长的工夫。因而,当利用JavaEE办法开辟Web2.0使用程序时,将呈现严峻的功能和可伸缩性成绩。
这些假想发生了以下JavaEEAPI构建道理:
同步API。JavaEE在良多使用中都必要利用同步API(分量级而且烦琐的JavaMessageService(JMS)API基础上是唯一的破例)。这类需求更多地源于可用性的必要,而非功能需求。同步API易于利用而且开支较低。但必要处置年夜型多线程时,则会呈现严峻成绩,因而JavaEE严厉限定未受把持的多线程处置。
无限的线程池。人们很快发明线程是种主要的资本,而且当线程数目凌驾某一界线后,使用服务器的功能将明显下落。但是,依据每一个操纵都很长久的假想,这些操纵能够分派到一组无限的线程中,从而保持较高的哀求吞吐量。
无限的毗连池。假如只利用一个数据库毗连,则很难取得最优的数据库功能。固然一些数据库操纵能够并行实行,可是增添分外的数据库毗连只能将使用程序提速到某一点。当毗连数到达某一值后,数据库功能将入手下手下滑。一般,数据库毗连的数目要小于servlet线程池中可用线程的数目。因而,毗连池在创立时同意向服务器组件—比方servlet和EnterpriseJavaBeans(EJB)—分派一个毗连并在今后前往给毗连池。假如毗连不成用,组件将守候堵塞以后线程的毗连。由于其他组件只对毗连占用很短的工夫,因而这类提早一般较短。
流动的资本毗连。使用程序被假定只利用很少一些内部资本。与各个资本的毗连工场经由过程JavaNamingandDirectoryInterface(JNDI)(或EJB3.0的依附性注进)取得。实践上,撑持与分歧EIS资本举行毗连的次要JavaEEAPI只要企业Web服务API。其他API多半都假定资本是流动的而且只要诸如用户凭据如许的分外数据应当供应给开放毗连操纵。
在Web1.0中,这些道理玩转得十分好。能够将一些共同的使用程序计划为恪守这些划定规矩。可是,这些道理不克不及无效撑持Web2.0。
<p>
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。 |
|