JAVA网站制作之揭开J2EE集群的奥秘面纱(四):EJB集群完成仓酷云
为什么外国人还要写那些框架进行代码封装,他们不就是为了别人使用时可以更简单么!如果要达到一个企业级项目的不用框架是很难的。小一些的项目还行,大的光是MVC模式的设计的编码量就够大的了。还有性能方面,单轮windows,这个工具是微软写的,。前文汇总和PDF下载:揭开J2EE集群的奥秘面纱6EJB集群完成
EJB是J2EE手艺中主要的部分,而且EJB集群是完成J2EE集群最年夜的应战。
EJB手艺是为散布式盘算而生。它们能够在自力的服务器中运转。Web服务器组件或富客户端能够从其他的呆板经由过程尺度协定(RMI/IIOP)来会见EJB。你能够象挪用你当地Java对象的办法一样挪用远程EJB的办法。实践上,RMI/IIOP完整掩饰了你正在挪用的对象是当地的仍是远程的,这被称作当地/远程通明性。
<br>
6EJB挪用机制
上图显现了远程EJB的挪用机制。当客户端想利用EJB,它不克不及间接挪用,相反,客户端只能挪用一个被称为“stub”的当地对象,它饰演了到远程对象代办署理的脚色,而且有远程对象不异的接口。这个对象卖力承受当地办法挪用,而且这些挪用经由过程收集代办署理到远程EJB。这些对象在客户JVM中运转,而且晓得怎样经由过程RMI/IIOP跨过收集查找真实的对象。要懂得有关EJB更多的信息,请参考http://java.sun.com/products/ejb/
为注释EJB集群的完成,我们先看看在J2EE代码中怎样利用EJB的。为了挪用EJB,我们必要
[*]在JNDI服务器中查找EJBHomestub
[*]利用EJBHomestub查找或创立EJB对象,如许取得一个EJBObjectstub
[*]在EJBObjectstub上挪用办法
负载平衡和生效转移能够在JNDI查找时产生,这我们已在下面论述了。在EJBstub(包含EJBHome和EJBObject)的办法挪用时,供给商接纳以下三种体例完成EJB负载平衡和生效转移。
6.1智能存根(Smartstub)
正如我们所知,客户端能够经由过程存根对象(stub)来访门远程的EJB,这个对象能够经由过程JNDI树猎取,乃至客户端大概通明地从WEB服务器高低载存根类文件。
如许存根就能够在运转期静态地用程序天生,而其类文件也不用在客户端情况的classpath或库中。(由于它是能够被下载的)
<br>
7智能存根
如7所示,BEAWebLogic和Jboss经由过程在存根代码中组合几种举动来完成EJB集群,而这些都是在客户端通明运转的(客户端不必要懂得这些代码)。这类手艺叫做智能存根。
智能存根的确很伶俐,它包括一组它能够会见的方针实例,能够检测这些实例的任何生效,它也包括了庞大的负载平衡和生效转移的逻辑,用来分发哀求到方针实例。并且,假如集群拓朴改动了的话(好比新增或删除服务器实例),存根能够更新它的方针实例清单来反应新的拓朴,而不必要手工从头设置。
利用智能存根完成集群有以下长处:
[*]由于EJB存根运转在客户端,以是它能够节俭很多服务器资本。
[*]负载平衡是在客户端代码中,而且与客户真个性命周期相干。如许就打消了负载平衡器的单点生效。假如负载平衡器生效了,就意味着客户端也生效了,这类情形是能承受的。
[*]存根可静态的主动下载更新,这意味着零保护。
6.2IIOP运转期库
SunJESApplicationServer利用了另外一种办法完成EJB集群。负载平衡和生效转移逻辑是在IIOP运转库中完成的。好比,JES修正了“ORBSocketFactory”的完成,使它能撑持集群。如8所示。
<br>
8IIOP运转期
“ORBSocketFactory”的修正版有完成负载平衡和生效转移的一切逻辑和算法,如许就坚持了存根洁净和小。由于是在运转库中完成的,如许就比存根的体例更简单取得体系资本。但这类体例必要在客户端运转一个特别的运转库,如许就授与其他J2EE产物举行互操纵时带来了贫苦。
6.3拦阻器代办署理
IBMWebshpere接纳了定位服务精灵(LocationServiceDaemon-LSD),它对EJB客户端饰演了拦阻器代办署理的脚色,如9所示。
<br>
9拦阻器代办署理
在这类体例中,客户端经由过程JNDI查找猎取存根,这个存根将信息路由到LSD,而不是运转了EJB的使用程序服务器。如许LSD吸收到一切出去的哀求,依据负载平衡和生效转移的战略来判别应当将它发送到哪一个服务器实例。这类体例增添的安装和保护集群的分外的办理事情。
6.4EJB的集群撑持
要挪用EJB的办法,要触及到两种存根对象,一是EJBHome接口,另外一个是EJBObject接口。这意味着EJB潜伏的必要在两层上完成在负载平衡和生效转移。
[*]当客户端利用EJBHome存根创立或查找EJB对象时
[*]当客户端挪用EJB对象上的办法时。
6.4.1EJBHome存根撑持集群
EJBHome接口用于在EJB容器中创立和查找EJB实例,而EJBHome存根是EJBHome接口的客户端代办署理。EJBHome接口不需保持任何客户真个形态信息。如许,来自分歧EJB容器中的不异EJBHome接口关于客户端来讲是分歧的。当客户端实行create()或find()挪用的时分,home存根依据负载平衡和生效转移算法从多个不异的服务器实例当选择一个,并将挪用发送到该服务器的home接口上。
6.4.2EJBObject存根撑持集群
当EJBHome接口创立一个EJB实例,它将前往EJBObject的存根给客户端,并让用户挪用EJB的营业办法。集群中已有一组可用的服务器实例,并在下面的部署了bean,可是不克不及将EJBObject存根对象向EJBObject接口收回挪用转发就任意一个服务器实例上,这取决于EJB的范例。
无形态会话Bean是最复杂的情形,由于不触及到形态,一切的实例都能够以为是一样的,如许对EJBObject的办法挪用可负载平衡和生效转移就任意一个服务器实例上。
集群的有形态会话Bean与无形态会话Bean有一点分歧,正如我们所知,有形态会话Bean关于客户端一连的哀求会持有形态信息。从手艺下去说,集群有形态会话Bean与集群HTTPSession是一样的。在惯例工夫,EJBObject存根将不会把哀求负载平衡到分歧的服务器实例。相反,它将胶粘到最后创立的服务器实例上,我们称这个实例为“主实例”。在实行过程当中,会话形态会从主实例备份到其他服务上往。假如主实例生效了,备份服务器将接受它。
实体Bean实质上是无形态的,只管它能够处置有形态的哀求。一切的信息都将经由过程实体Bean自己的机制备份到数据库中。如许看起来实体Bean能够象无形态会话Bean一样很简单猎取负载平衡和生效转移。但实践,实体Bean多半情形下是不负载平衡和生效转移的。依据计划形式的倡议,实体Bean被会话表面包装。如许,多半对实体Bean的会见都是历程内会话Bean经由过程当地接口完成的,而不是远程客户端。这使得负载平衡和生效转移没成心义。
来自:http://blog.csdn.net/esoftwind/archive/2006/10/20/1342387.aspx译者:ESoftWind
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作, 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 是一种突破用户端机器环境和CPU J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 是一种语言,用以产生「小应用程序(Applet(s)) 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想) 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
页:
[1]