|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
还是要自己一点一点写代码,然后编译,改错再编译好那。还有最重要的是.net的编译环境非常好,你甚是不需要了解太多工具,对于简单的系统,你可以之了解一些语法就哦了。
手艺已愈来愈多地使用到年夜型收集体系开辟中,本文中,笔者将先容EJB(EnterpriseJavaBeans)的界说、基于EJB手艺的使用体系布局模子和EJB组件的内容和分类,最初分离基于EJB的布局模子和EJB组件开辟了一个商务预订体系。
EJB从手艺上而言不是一种“产物”,而是一种手艺标准。SUN公司对EJB的界说是:EJB的布局是开辟和设置基于组件的散布式商务使用程序的一种组件布局。用EJB布局开辟的使用程序是可伸缩的、事件型的、多用户平安的。这些使用程序大概只需编写一次,却能够在撑持EJB标准的义务服务器平台长进行设置。总的来讲,EJB是一个组件事件监控的尺度服务器真个组件模子。
基于EJB手艺的体系布局模子
EJB布局是一个服务端组件布局,是一个条理性布局,其布局模子如所示。该布局模子在一般情形下可分为客户层、营业逻辑层和数据层,上面笔者对此作一复杂先容。
<br>:基于EJB的使用布局模子
客户层次要是用来满意对全部体系的各类会见需求并处置以下事情:
吸收用户的输出,还能够对用户的输出举行剖析反省并作响应的处置;
显现由服务器端高层传来的运转了局。
客户层一般是由客户历程构成,这些历程由扫瞄器静态地创立和打消。
营业逻辑层这是全部体系最关头的部分。营业逻辑层在一般情形下会分为两层,其高层是哀求吸收层(一样平常称之为Web层),用于吸收从扫瞄器传来的哀求并将哀求交给底层举行处置,同时将哀求处置了局发送给扫瞄器。这些历程次要由JSP页面、基于Web的Applets和显现HTML页面的Servlets构成。底层是哀求处置层(一样平常称之为EJB层),包含监听历程、处置历程和数据库操纵历程,卖力处置哀求吸收层传来的客户哀求并对它举行处置,同时将哀求了局传送给哀求吸收层,假如必要的话还必要将处置了局交给数据层举行存储。
数据层次要是为营业逻辑层供应数据服务,如存储营业逻辑层处置了局、前往营业逻辑层检索的数据了局,同时也是为了完成屏障数据源的变更,从而完成当数据库产生变更时我们只需修正毗连数据源的语句就能够。
EJB组件的分类
一般情形下,服务真个EJB组件有两种基础范例:EntityBean(实体Bean)和SessionBean(会话Bean)。
<br>
:商务预订体系的构架
EntityBean是为了实际天下的对象制作的模子,这些对象一般是数据库的一些耐久纪录。EntityBean为那些能够表告竣名词的商务观点创建模子,它既形貌了实在天下对象的形态,也形貌了它们的举动,同时同意开辟者封装与详细观点有关的数据和商务划定规矩。SessionBean是一种经由过程HomeInterface创立并对客户端毗连专有的EnterpriseBean,Sessionbean实例一样平常不与别的客户端共享。SessionBean是客户端使用程序的一个扩大,并卖力办理全部历程或义务。SessionBean能够办理EntityBean之间的交互,形貌它们怎样一同事情来完成一个特别义务。
EntityBean依据办理耐久性的体例能够分为容器办理的Bean和利用Bean办理的Bean。容器办理的Bean由EJB容器主动办理它们的耐久性,容器晓得Bean实例的字段是如何映照到数据库中往,并主动办理拔出、更新和删除数据库中与实体有关的数据;利用Bean办理耐久性的Bean必要明白地完成一切这些事情。Bean的开辟者必需编写代码操纵数据库,EJB容器只告知Bean实例甚么时分能够在数据库中平安地拔出、更新和删除数据,除此以外,它不供应任何其余匡助。Bean实例本人完成一切的耐久性事情。
SessionBean依据是不是有形态可分为无形态Bean和有形态Bean。无形态SessionBean偏向于通用并可反复利用;有形态SessionBean是客户使用程序的扩大,它代表客户完成义务并保护客户的相干形态。
商务预订体系的开辟
客舱预订体系是在J2EE平台上开辟的基于EJB组件手艺的商务预订体系,其次要流程是用户登录今后,将被顺次率领着经由过程主顾选择页和导航选择页,并将为主顾选择一个可取得的客舱(从TraveAgentBean处取得可供选择的客舱列表,TravelAgentBean的listAvailableCabin()办法由天生此网页的Servlet挪用,客舱列表将用于装载到用户扫瞄器的网页上创立HTML列表框),当用户选择一间客舱并提交了选择时,一个HTTP哀求将会发送到EJB服务器(WebsphereApplicationServer),服务器接到此哀求后,将其分拨给ReservationServlet,此Servlet挪用TravelAgent.BookPassage()办法做实践的预订,BookPassage()办法前往的标签信息将用于创立另外一个送回用户扫瞄器的网页。假如预订乐成,则由ProcessPaymentServlet往挪用ProcessPaymentBean中的付出办法,从而完成对客户的免费历程。其详细构架见。
预定体系中的EJB组件次要包含以下几个部分:
CabinBean:实体Bean,主键是CabinPK,是用来封装实际天下中的航船客舱的一个实体Bean。
CustomerBean:实体Bean,主键是CustomerPK,是用来封装实际天下中必要预订航船客舱的消耗者的一个实体Bean。
CruiseBean:实体Bean,主键是CruisePK,是用来封装实际天下中航船航路的一个实体Bean。ReservationBean:实体Bean,主键是CruiseID,CabinID,它代表了数据库中稳定的一笔记录,即一个预订,它纪录了预订体系的汗青事务,次要是用来避免两重预订,即两个客户预订不异航路的不异客舱,发生这类成绩的缘故原由是由于客户选择客舱和航路的时候与挪用bookPassage()办法的时候之间有一段距离工夫。TravelAgentBean:有形态会话Bean,一个卖力预订飞行舱位事情流的会话Bean,它封装了完成一条航路的一个预订操纵的历程并在全球的游览代办署理的客户端使用程序中利用。TravelAgentBean不但满意消耗者预订单子的必要,还可供应在飞行中残剩客舱的动静。为了完成此义务,Bean必要晓得预订是由哪一条航路、客舱,和客户构成,搜集到这些信息后,由bookPassage()办法来完成处置预订历程,它为客户账户的计费卖力,在准确航路的准确船只上预订选择的客舱,并经由过程Ticket类来为客户发生一张单子。在这里,我们需利用CreditCard类存储有关客户信誉卡的相干信息,同时,ListAvailableCabins()办法用来显现可用的还没有被预订的客舱。
ProcessPaymentBean:无形态会话Bean,它是在事件体系中向消耗者免费的历程。它界说了支票、现金和信誉卡付出体例的三个事件办法,即ByCheck()、ByCash()和ByCredit()。
商务预订体系的程序代码示例
全部商务预订体系的开辟是在IBMVisualAgeforJava上面开辟完成的,在该IDE开辟情况中,实体Bean绝对会话Bean要简单开辟很多,以下就以TravelAgentBean为例,先容EJB组件的开辟历程:
1.TravelAgent远程接口
它供应了设置客户但愿预订的航路和客舱ID的办法。别的,还设置boolPassage()办法来对客户的预订举行计费,并为客户发生一张单子。详细代码以下:
packagecom.titan.travelagent;
importjava.rmi.RemoteException;
importjavax.ejb.FinderException;
importcom.titan.cruise.Cruise;
importcom.titan.customer.Customer;
importcom.titan.processpayment.CreditCard;
publicinterfaceTravelAgentextendsjavax.ejb.EJBObject
{
publicvoidsetCruiseID(intcruise)throwsRemoteException,FinderException;
publicintgetCruiseID()throwsRemoteException,IncompleteConversationalState;
publicvoidsetCabinID(intcabin)throwsRemoteException,FinderException;
publicintgetCabinID()throwsRemoteException,IncompleteConversationalState;
publicintgetCustomerID()throwsRemoteException,IncompleteConversationalState;
publicTicketboolPassage(CreditCardcard,doubleprice)throwsRemoteException,IncompleteConversationalState;
}
2.TravelAgentHome接口
TravelAgentHome接口代码以下:
puckagecom.titan.tracelagent;
importjava.rmi.RemoteException;
importjavax.ejb.CreateException;
importcom.titan.customer.Customer;
publicinterfaceTravelAgentHomeextendsjavax.ejb.EJBHome{
publicTravelAgentcreate(Customercust)throwsRemoteException,CreateException;}
3.TravelAgent Bean类
它必要完成TravelAgent的远程接口和Home接口中的一切举动,限于篇幅,本文将不再先容实在古代码,感乐趣的读者可本人加以完成。
经由过程以上步骤,我们就完成了一个商务预定体系的EJB组件的开辟。
java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。 |
|