基于EJB技术的商务预订系统的开发

2016-01-29 12:05 1 1 收藏

基于EJB技术的商务预订系统的开发,基于EJB技术的商务预订系统的开发

【 tulaoshi.com - Java 】

  技术已经越来越多地应用到大型网络系统开发中,本文中,笔者将介绍EJB(Enterprise Java Beans)的定义、基于EJB技术的应用系统结构模型以及EJB组件的内容和分类,最后结合基于EJB的结构模型和EJB组件开发了一个商务预订系统。
EJB从技术上而言不是一种“产品”,而是一种技术规范。SUN公司对EJB的定义是:EJB的结构是开发和配置基于组件的分布式商务应用程序的一种组件结构。用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。这些应用程序可能只需编写一次,却可以在支持EJB规范的任务服务器平台上进行配置。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。

基于EJB技术的系统结构模型
EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。该结构模型在通常情况下可分为客户层、业务逻辑层和数据层,下面笔者对此作一简单介绍。

图1:基于EJB的应用结构模型

客户层 主要是用来满足对整个系统的各种访问需求并处理以下工作:
接收用户的输入,还可以对用户的输入进行分析检查并作相应的处理;
显示由服务器端高层传来的运行结果。
客户层通常是由客户进程组成,这些进程由浏览器动态地创建和撤销。

业务逻辑层 这是整个系统最关键的部分。业务逻辑层在通常情况下会分为两层,其高层是请求接收层(一般称之为Web层),用于接收从浏览器传来的请求并将请求交给底层进行处理,同时将请求处理结果发送给浏览器。这些过程主要由JSP页面、基于Web的Applets以及显示 HTML页面的Servlets组成。底层是请求处理层(一般称之为EJB层),包括监听进程、处理进程和数据库操作进程,负责处理请求接收层传来的客户请求并对它进行处理,同时将请求结果传递给请求接收层,如果需要的话还需要将处理结果交给数据层进行存储。
数据层 主要是为业务逻辑层提供数据服务,如存储业务逻辑层处理结果、返回业务逻辑层检索的数据结果,同时也是为了实现屏蔽数据源的变化,从而实现当数据库发生变化时我们只需修改连接数据源的语句就可以。

EJB组件的分类
通常情况下,服务端的EJB组件有两种基本类型:Entity Bean(实体Bean)和Session Bean(会话Bean)。


图2:商务预订系统的构架 

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中的支付方法,从而实现对客户的收费过程。其具体构架见图2。
预定系统中的EJB组件主要包括以下几个部分:
CabinBea

来源:https://www.tulaoshi.com/n/20160129/1484525.html

延伸阅读
一、J2EE 技术简介 J2EE是 SUN 公司提出的在分布式环境中的一种体系结构,它提供了一种基于组件的设计、开发、集成、部署企业应用系统的方法,J2EE平台提供了多层分布式的应用系统模型、重用组件的能力、统一的安全模型和灵活的事务控制。!-- frame contents -- !-- /frame contents --基于组件的J2EE企业应用系统具有平台独立...
标签: Web开发
一、 Ajax的简短历史 在短短几个月内,Ajax从一种十分模糊稀罕的技术一下变成最热门的东西。本文将介绍极其容易使用的Ajax支持-作为Ruby on Rails web应用程序框架的一部分实现。 本文不是一个详细的教程,所以我假定你已经了解一点关于如何组织和构建一个Rails web应用程序的知识。 最开始出现的是万维网。比较于桌面应用程序,we...
一、EJB技术简介 EJB的全称是Enterprise java bean。是JAVA中的商业应用组件技术。EJB结构中的角色 EJB 组件结构是基于组件的分布式计算结构,是分布式应用系统中的组件。 一个完整的基于EJB的分布式计算结构由六个角色组成,这六个角色可以由不同的开发商提供,每个角色所作的工作必须遵循Sun公司提供的EJB规范,以保证彼此之间...
标签: Java JAVA基础
一、AOP编程概览 面向对象编程技术进入软件开发的主流对软件的开发方式产生了极大的影响,开发者可以用一组实体以及这些实体之间的关系将系统形象地表示出来,这使得他们能够设计出规模更大、更复杂的系统,开发周期也比以前更短。OO开发的唯一问题是,它本质上是静态的,需求的细微变化就可能对开发进度造成重大影响。...
如果读者有Java编程经验,尤其是AWT和SWING的Java GUI开发经验将十分有助于理解本文,尽管不是必需的。 一、 引言 近来,移动游戏在提供个人娱乐方面变得越来越流行。这种流行使得移动游戏给手机用户,游戏出版商和手持设备制造者带来丰厚的利润;移动游戏,在给游戏开发者和相关人员带来无数商机的同时,处于极为重要的枢纽位置。据估计,...

经验教程

437

收藏

62
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部