APP下载

基于EJB技术的在线社区数字图书馆实现

2014-07-24郭玲

微型电脑应用 2014年12期
关键词:体系结构应用程序逻辑

郭玲

基于EJB技术的在线社区数字图书馆实现

郭玲

社区数字图书馆本质是简易型数字图书馆,具有规模小、功能与社区实际需求密切相关的固有特点,适宜采用成本低廉、简单易行的开发模式。在进行开发技术可行性分析基础上,选择基于EJB技术的演示层、业务逻辑层和数据层的三层架构实现一个Web应用系统。演示层采用HTML,JavaScript,JSP技术实现与用户的接口;在业务逻辑层采用与Oracle完全兼容的EJB技术和Oracle的PL/SQL语言实现系统主体功能;数据层采用Oracle的RDBMS实现数据库体系。利用Oracle JDeveloper集成开发环境完成系统开发。

EJB技术;社区数字图书馆;Oracle

0 引言

社区数字图书馆是由网络技术、数字信息资源和网络虚拟服务共同构建的社区数字文化信息中心,[1]以社区的全体居民为服务对象,强调个性化服务,服务对象具体到人,服务载体已从单一文献信息服务走向活动和文献信息服务并举,一些社区图书馆开办了电子阅览室,还有的社区图书馆制作了日常生活信息咨询网页。由于社区图书馆固有的规模小且贴近生活的特点,在构建数字图书馆时,只能采用成本低廉、简单易行模式。本系统是一个具备在线阅读、在线检索、以及在线订阅等功能的图书管理系统,实现一个具备纸质图书和电子图书(e_Books)全面管理功能的在线社区图书管理系统。[2]

1 开发技术可行性分析及介绍

1.1 开发技术可行性分析

本系统以Oracle数据库系统为底层数据库支持,采用基于EJB技术的三层架构实现一个Web应用系统。用户通过位于演示层的 Web页面使用位于数据层的系统数据库,从而实现数字图书馆的功能,而所有用户功能实现而产生的数据交互的业务逻辑则通过业务逻辑层实现。[3]

演示层采用HTML,JavaScript,JSP技术实现与用户的接口。HTML是Web页面的基础技术,Javascript、JSP均为基于Java的页面技术,继承了Java兼容性优良的特征。通过完善的页面技术,实现了基于浏览器的客户端界面。

在业务逻辑层采用与 Oracle完全兼容的 EJB技术与Oracle的 PL/SQL语言实现系统主体功能。EJB技术源于Java,具备了Java技术的全部技术优势,是实现三层架构的主要技术手段之一,对图书馆的跨平台特性提供了良好的解决方法。同时Oracle也提供了对于EJB技术的全面支持。

数据层采用Oracle的RDBMS实现数据库体系。作为大型的RDBMS数据库体系,Orcale不仅提供了完善的数据库实现与管理技术,还提供了丰富的开发工具与数据库组件,为综合性数据库体系提供了全面的技术支持。[4]

1.2 开发技术介绍

1.2.1 EAD的三层体系结构

企业应用程序设计(Enterprise Application Design EAD)是设计适应变化的应用程序的过程。EAD强调构建的应用程序可以与外部和内部进程顺利集成,可以对其进行扩展,来反映商务内存在的不断变化状态,具有高的可用性。EAD设计思想可以将不同信息集成到一起。并且充分利用并服务于企业。EAD层次体系层次结构具有两层体系结构、三层体系结构以及N层体系结构。

两层体系结构的应用逻辑位于一个层,而数据访问逻辑位于另一层。该模型强调在强大的后端数据库服务器和驻留在告别左面的“胖”客户之间实现计算能力的分割,如图1所示:

图1 两层体系结构基本模型

采用两层模型开发时具有可伸缩性差、两层模型应用程序具有很高的隐藏费用、灵活性受专用开发工具的限制等局限性。

三层体系结构的逻辑划分为演示层、业务逻辑层和数据层三个孑然不同的层。演示层为“瘦”客户,不含任何业务逻辑,主要为用户接口代码、确定如何显示数据的代码,以及用户导航和用户输入数据的规则。业务逻辑层包含应用程序全部业务逻辑,这些业务逻辑被划分为若干程序模块,对相关信息进行处理。数据层负责为业务逻辑层提供对数据库的检索与操纵的SQL执行,如图2所示:

图2 三层体系结构基本模型

三层体系结构具有一些独到的优势与实用性,其层与层之间仅有数据交换,使得开发技术与实现过程分离成为一种可能,特别是面向用户的演示层开发不再需要专门的技术与平台,满足业务逻辑层的兼容规范即可。业务则采用单一服务器实现,数据层驻留在强大功能的数据服务器上,处理众多数据检索和操纵。并且代码的可重用性也得到提高。三层体系结构虽然在部署时存在一些不足,例如,演示层依托Web技术与浏览器,其最终功能的实现局限于该项技术的发展;服务器相对集中,容易产生瓶颈现象。但社区图书管理系统本质是简易型数字图书馆系统[1],三层体系结构完全能够满足系统的需求。

1.2.2 JDBC (Java Data Base Connectivity)技术

Java是一个面向对象、平台独立的开发应用程序工具,具有独立 GUI应用程序、运行在浏览器的小程序、服务器端应用程序等典型特征。Oracle从Oracle 8i开始引入Java,现在Java已经是Oracle Internet Platform一个必不可少的组件。Oracle对Java Virtual Machine提供了全面的技术支持与相应的开发平台,实现了一个与 Java数据库并排运行的JVM。

JDBC是一个编程接口标准,使Java程序能够访问和修改几乎任何SQL数据库中的数据。Oracle优化了JDBC对Oracle数据库的数据访问。瘦客户(thin client)要求确定程序纯粹用 Java编写,而企业应用程序的中间层要求对后台数据库进行快速的本机代码访问。Oracle通过对JDBC驱动对此提供了较好的解决方案。

1.2.3 EJB (Enterprise JavaBean)技术

JavaBean是可以重复使用的Java组件,它经常作为帮助器类运行在 Web服务器中,或者作为模块化组件运行在应用程序中。尽管 Enterprise JavaBean并不是直接由JavaBean发展来得,但它们在可移植性和模块化方面是类似的。作为一种规范,EJB的原理基于它们是程序单元,从它们的运行环境请求某些服务,而不是实现服务本身。

1.2.4 利用CORBA和IIOP远程方法调用(RMI)

远程方法调用(Remote Method Invocation)是Sun公司为实现运行在不同机器上 JVM 之间通讯而制定的规范。RMI-IIOP是Sun与IBM共同实现的规范,允许Java程序通过RMI与作为潜在传输机制的Internet Inter-ORB Protocal(IIOP)共同操作。该协议专门为TCP/IP上的操作设计。

通用对象请求代理程序体系结构(Common Object Request Broker Architecture CORBA)是一个范围更宽的规范,解决面向对象语言间的交互式通信问题。CORBA规范定义了Interface Definition Language(IDL),指定独立进程空间中的对象如何通过IDL协议相互访问。

1.2.5 Oracle JDeveloper集成开发环境

Oracle JDeveloper是Java、XML和Oracle的一个集成开发环境。本系统的开发工作均采用该环境完成。

2 系统总体规划

本文作者在《基于 Oracle的社区数字图书管理系统设计》(发表于《计算机光盘软件与应用》2014年第01期)给出了社区数字图书管理系统总体规划的详细分析,包括系统功能模块图、系统结构详图、数据库设计等内容,本文只给出系统结构图,如图3所示:

图3 社区数字图书管理系统结构图

社区图书管理系统功能划分为用户服务系统和图书馆管理系统两大模块。用户服务系统保证在线用户各项在线图书服务功能的实现,图书馆管理系统用于实现系统管理员对图书馆数据体系的管理与维护以及保证图书馆功能的实现。

3 系统实现

本系统采用基于EJB技术的Oracle三层架构实现Web应用程序。Web应用服务器和数据库服务器采用同一台PC机,运行Oracle9iAS。由于篇幅所限,下面仅以业务逻辑层概要设计为例加以实现。由于业务逻辑层包含应用程序全部业务逻辑,因此是构建社区数字图书馆的最基础内容,也是构建社区数字图书馆的核心。

3.1 业务逻辑层概要设计

本系统业务逻辑层将采用基于Oracle9iAS的EJB2.0组件来实现。由于图书馆具有众多功能,这样就需要为每个功能提供本地接口代码和远程接口代码。如果编写好业务逻辑层概要设计,将核心代码定义包含其中,就可以使得业务逻辑层更加规范、可扩展性更强。

3.2.1 本地接口

本地接口定义的方法允许EJB客户创建和查找EJB组件,对于各模块的EJB本地接口的定义基本上包含下述核心代码。接口中create()方法的返回类型是EJB的远程接口。

import java.util.Collection;

import java.rmi.RemoteException;

importjavax.ejb.*;

public interface BooksHome extends EJBHome

{

public Books create( String Books_ID, String Books_Name,

String Content_Abstrace,String Authors_ID,

String Books_Property,String Books_Sort,String Language)

throwsRemoteException,CreateException;

public Books findByPrimaryKey( String Books_ID) throwsFinderException,RemoteException;

public Collection findByBooks_Sort(String Books_Sort)

throws FinderException,RemoteException;

}

3.2.2 远程接口

远程接口定义了EJB客户将调用的企业bean的所有业务方法。所有业务方法均是 public的,并且必须引发RemoteException。对于各模块的 EJB远程接口的定义基本上包含下述核心代码:

import javax.ejb.EJBObject;

import java.rmi.RemoteException;

public interface Books extends EJBObject

{

public int getbooksCode() throws RemoteException; public String getname() throws RemoteException; public String getrate() throws RemoteException;

public String get Content_Abstrace() throws RemoteException;

public String getAuthors_ID() throws RemoteException;

public String getBooks_Property() throws RemoteException;

public String getBooks_Sort() throws RemoteException;

public String getLanguage() throws RemoteException;

}

3.2.3 业务逻辑的实现

查询子系统实现了图书名称查询、图书作者查询、出版社与关键字查询四种方式。现以图书名称查询为例说明业务逻辑的实现。

importjava.sql.*;

importjavax.sql.*;

importjava.util.*;

importjavax.ejb.*;

importjavax.naming.*;

importjava.rmi.*;

public class BooksEjb implements EntityBean

{

public StringBooks_ID;

public StringBooks_Name;

public String Content_Abstrace;

public String Authors_ID;

public String Books_Property;

public String Books_Sort;

public String Language;

privateEntityContextctx;

Connection con;

publicBooksEjb(){}

publicintgetbooksCode(){return Books_ID; }

public String getname(){return Books_Name;}

public String get Content_Abstrace()

{

return Content_Abstrace;

}

public String getAuthors_ID(){return Authors_ID; }

public String getBooks_Property(){return Books_Property;}

public String getBooks_Sort(){return Books_Sort; }

public String getLanguage(){return Language;}

public String ejbCreate( String Books_ID, String Books_Name,

String Content_Abstrace, String Authors_ID,

String Books_Property,StringBooks_Sort,String Language)

throws CreateException

{

this. Books_ID= Books_ID;

this. Books_Name = Books_Name;

this. Content_Abstrace= Content_Abstrace;

this.Authors_ID=Authors_ID;

this.Books_Property=Books_Property;

this.Books_Sort=Books_Sort;

this.Language=Language;

return null;

}

public void setEntityContext(EntityContextctx)

{

this.ctx=ctx;

}

public void ejbActivate()

{

Object obj=ctx.getPrimaryKey();

String id=obj.toString();Boohs_ID=Integer.parseInt(id);

}

public void ejbPassivate(){ Books_ID=’00000000’;

}

public void ejbStore(){}

public void ejbLoad(){}

public void ejbRemove(){}

public void unsetEntityContext(){}

public void ejbPostCreate( String Books_ID, String Books_Name,

String Content_Abstrace,StringAuthors_ID,

String Books_Property, String Books_Sort,String Language){}

}

4 总结

本文在初探基于Internet的EAD几种不同架构系统优劣的基础上,实现了基于EJB技术的社区数字图书管理系统。本系统基于三层架构实现一个具有数字图书管理、阅读、下载,纸质图书预约、邮购等功能的综合在线图书管理体系的基本功能,且具有安全可靠、易于维护和管理的特点。

[1] 王玉珍.文化大发展背景下的社区图书馆建设研究.四川图书馆学报[J].2013(01)60-63.

[2] 郭玲.基于 Oracle的社区数字图书管理系统设计[J].计算机光盘软件与应用,2014(1):55-58.

[3] 刘江平,倪小刚,李艳.基于MVC模式的ERP资源管理系统[J].内蒙古农业大学学报.2013(2):171-172.

[4] 贺亚茹.基于Oracle的音像租赁管理系统数据库设计[J].电脑编程技巧与维护,2011(14):59-60.

[5] 海潘编著.软件工程导论[M].第三版. 北京:清华大学出版社.1998.

[6] David Flanagan著.何键辉,张洛玲译.Java实例技术手册[M].北京:中国电力出版社

[7] Elliotte Rusty Harold著. Java Web Programming[M].北京:中国电力出版社

Online Community Digital Library Based On EJB Technology Implementation

Guo Ling
(Adult Education College of ZhuHai City Polytech, Zhuhai 519090, China)

The nature of community digital library is a simple digital library. It is small-scaled; close relation between function and community’s actual needs. So it is fit for low cost and easy developing mode. On basis of the possibility analysis of development technology, the paper selected a three-tier structure that based on EJB’s presentation layer, business logic layer and data layer that carried out a Web application system. Presentation layer uses HTML, JavaScript, JSP technology interface with the user; in the business logic layer, the EJB technology which is fully compatible with Oracle's PL/SQL language is adopted to realize the main function of the system; in the data tier Oracle RDBMS is used to accomplish database system. Oracle JDeveloper’s integrated development environment is utilized to finish the system exploitation.

EJB Technology; community digital library; Oracle

TP311

A

2014.10.15)

1007-757X(2014)12-0058-03

郭 玲(1970-),女,珠海城市职业技术学院成教学院,讲师,双学士,研究方向:计算机软件,现代教育技术,珠海,519090

猜你喜欢

体系结构应用程序逻辑
刑事印证证明准确达成的逻辑反思
逻辑
创新的逻辑
删除Win10中自带的应用程序
女人买买买的神逻辑
基于粒计算的武器装备体系结构超网络模型
作战体系结构稳定性突变分析
基于DODAF的装备体系结构设计
基于云计算的航天器控制系统自组织体系结构
关闭应用程序更新提醒