从EJB技术上而言不是一种“产品”,而是一种EJB技术规范。SUN公司对EJB的定义是:EJB的结构是开发和配置基于组件的分布式商务应用程序的一种组件结构。用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。这些应用程序可能只需编写一次,却可以在支持EJB规范的任务服务器平台上进行配置。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。
创新互联专注于天心企业网站建设,成都响应式网站建设公司,电子商务商城网站建设。天心网站建设公司,为天心等地区提供建站服务。全流程定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
基于EJB技术的系统结构模型
EJB结构是一个服务端组件结构,是一个层次性结构。该结构模型在通常状况下可分为客户层、业务逻辑层和数据层,下面笔者对此作一简单介绍。
1.客户层 主要是用来满足对整个系统的各种访问需求并处理以下工作:
接收用户的输入,还可以对用户的输入进行分析检查并作相应的处理;显示由服务器端高层传来的运行结果。客户层通常是由客户进程组成,这些进程由浏览器动态地创建和撤销。
2.业务逻辑层这是整个系统最要害的部分。业务逻辑层在通常状况下会分为两层,其高层是请求接收层(一般称之为Web层),用于接收从浏览器传来的请求并将请求交给底层进行处理,同时将请求处理结果发送给浏览器。这些过程主要由jsp(SUN企业级应用的首选)页面、基于Web的Applets以及显示 HTML页面的Servlets组成。底层是请求处理层(一般称之为EJB层),包括监听进程、处理进程和数据库操作进程,负责处理请求接收层传来的客户请求并对它进行处理,同时将请求结果传递给请求接收层,假如需要的话还需要将处理结果交给数据层进行存储。
3.数据层 主要是为业务逻辑层提供数据服务,如存储业务逻辑层处理结果、返回业务逻辑层检索的数据结果,同时也是为了实现屏蔽数据源的变化,从而实现当数据库发生变化时我们只需修改连接数据源的语句就可以。
EJB组件的分类
通常状况下,服务端的EJB组件有两种基本类型:Entity Bean(实体Bean)和Session Bean(会话Bean)。
Entity Bean 是为了现实世界的对象建造的模型,这些对象通常是数据库的一些耐久记录。Entity Bean为那些可以表达成名词的商务概念建立模型,它既描述了真实世界对象的状态,也描述了它们的行为,同时答应开发者封装与具体概念有关的数据和商务规则。Session Bean是一种通过 Home Interface创建并对客户端连接专有的Enterprise Bean,Session bean实例一般不与其它客户端共享。 Session Bean是客户端应用程序的一个扩展,并负责管理整个过程或任务。Session Bean可以管理Entity Bean之间的交互,描述它们如何一起工作来完成一个非凡任务。
Entity Bean根据管理耐久性的方式可以分为容器管理的Bean和使用Bean管理的 Bean。容器管理的Bean由EJB容器自动管理它们的耐久性,容器知道Bean实例的字段是怎样映射到数据库中去,并自动管理插入、更新和删除数据库中与实体有关的数据;使用Bean管理耐久性的Bean需要明确地完成所有这些工作。Bean的开发者必须编写代码操作数据库,EJB容器只告诉Bean 实例什么时候可以在数据库中安全地插入、更新和删除数据,除此之外,它不提供任何别的帮助。Bean实例自己完成所有的耐久性工作。
Session Bean根据是否有状态可分为无状态Bean和有状态Bean。无状态Session Bean倾向于通用并可重复使用;有状态Session Bean是客户应用程序的扩展,它代表客户完成任务并维护客户的相关状态。
商务预订系统的开发
客舱预订系统是在J2EE平台上开发的基于EJB技术的商务预订系统,其主要流程是用户登录以后,将被依次带领着通过顾客选择页和导航选择页,并将为顾客选择一个可获得的客舱(从TraveAgentBean处获得可供选择的客舱列表,TravelAgentBean的 listAvailableCabin()方法由生成此网页的Servlet调用,客舱列表将用于装载到用户浏览器的网页上创建HTML列表框),当用户选择一间客舱并提交了选择时,一个HTTP请求将会发送到EJB服务器(Websphere Application Server),服务器接到此请求后,将其分派给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()。
商务预订系统的程序代码示例
整个商务预订系统的开发是在IBM VisualAge for Java下面开发完成的,在该IDE开发环境中,实体Bean绝对会话Bean要轻易开发得多,以下就以TravelAgentBean为例,介绍EJB组件的开发过程:
1.TravelAgent远程接口
它提供了设置客户希望预订的航线和客舱ID的方法。此外,还设置boolPassage()方法来对客户的预订进行计费,并为客户产生一张票据。具体代码如下:
|
2.TravelAgent Home接口
TravelAgent Home接口代码如下:
|
3.TravelAgent Bean类
它需要实现TravelAgent的远程接口和Home接口中的所有行为,限于篇幅,本文将不再介绍其实现代码,感爱好的读者可自己加以完成。以上就是基于EJB技术的商务预订系统的开发。
分享名称:基于EJB技术的商务预订系统的开发
文章转载:http://www.shufengxianlan.com/qtweb/news43/404093.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联