999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于EJB技術的在線社區數字圖書館實現

2014-07-24 19:01:05郭玲
微型電腦應用 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

猜你喜歡
數據庫圖書館系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
圖書館
小太陽畫報(2018年1期)2018-05-14 17:19:25
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
數據庫
財經(2017年2期)2017-03-10 14:35:35
飛躍圖書館
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
主站蜘蛛池模板: 亚洲男女在线| 中文天堂在线视频| 国产午夜不卡| 99国产精品一区二区| 亚洲综合一区国产精品| 免费在线看黄网址| 在线观看亚洲人成网站| 囯产av无码片毛片一级| 国产一区二区三区精品欧美日韩| 亚洲热线99精品视频| 国产日本一区二区三区| 国产成人精品一区二区不卡| 伊人福利视频| 国产91导航| 国产主播福利在线观看| 色有码无码视频| 亚洲性视频网站| 亚洲天堂伊人| 亚洲欧州色色免费AV| 55夜色66夜色国产精品视频| 国产精品极品美女自在线看免费一区二区| 久久综合国产乱子免费| 伊人天堂网| 免费国产不卡午夜福在线观看| 精品少妇人妻无码久久| 国内丰满少妇猛烈精品播| 国产精品刺激对白在线| 国产乱子伦精品视频| 91口爆吞精国产对白第三集 | 久久青草精品一区二区三区 | 人妻91无码色偷偷色噜噜噜| 在线免费亚洲无码视频| 手机永久AV在线播放| 国产伦片中文免费观看| 国产日本一线在线观看免费| 国产色婷婷视频在线观看| 欧美另类精品一区二区三区| 久久精品丝袜| 亚洲国产亚洲综合在线尤物| 亚洲天堂日韩在线| 无码视频国产精品一区二区| 亚洲日韩在线满18点击进入| 国产亚洲精品97AA片在线播放| 国产精品播放| 色综合激情网| 2020亚洲精品无码| 专干老肥熟女视频网站| 激情无码视频在线看| 伊人91在线| 不卡午夜视频| 国产资源站| 欧美色视频网站| 久久婷婷综合色一区二区| 国产激情无码一区二区APP| 亚洲日韩精品无码专区97| 欧洲成人免费视频| 国产欧美视频在线| 香蕉久久国产超碰青草| 国产黄色视频综合| 婷婷亚洲天堂| 免费一级无码在线网站| 国产迷奸在线看| 91av成人日本不卡三区| 国产综合欧美| 国产精品嫩草影院视频| 亚洲国产AV无码综合原创| 国产精品露脸视频| 欧美综合一区二区三区| 一区二区无码在线视频| 欧美笫一页| 男女精品视频| 视频二区欧美| 国产亚洲精品资源在线26u| www.99在线观看| 久久人搡人人玩人妻精品| www亚洲精品| 亚洲中文无码av永久伊人| 青青草一区| 秋霞一区二区三区| 欧美成人综合在线| 国产女人水多毛片18| 91午夜福利在线观看|