亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于RMI的學(xué)生成績查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2016-09-09 02:51:22丁莉
        電子設(shè)計(jì)工程 2016年16期
        關(guān)鍵詞:調(diào)用遠(yuǎn)程對象

        丁莉

        (西安醫(yī)學(xué)院 衛(wèi)生管理系,陜西 西安 710021)

        基于RMI的學(xué)生成績查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        丁莉

        (西安醫(yī)學(xué)院 衛(wèi)生管理系,陜西 西安 710021)

        文中就學(xué)生成績查詢系統(tǒng),提出了一個基于RMI技術(shù)的系統(tǒng)模型,以解決學(xué)校對學(xué)生成績管理及學(xué)生對成績查詢的問題。文中采用分布式對象J2EE/RMI技術(shù),完成了服務(wù)器程序和客戶機(jī)程序的設(shè)計(jì),實(shí)現(xiàn)了遠(yuǎn)程對象之間的無縫調(diào)用。管理員可以對數(shù)據(jù)庫里的教師,學(xué)生信息進(jìn)行修改,老師可以及時(shí)地填寫學(xué)生成績,學(xué)生在客戶端查看自己的成績等功能,提高了學(xué)校教務(wù)管理效率,減少了工作量,具有實(shí)用意義。

        JAVA;RMI;數(shù)據(jù)庫;成績管理

        一直以來人們管理檔案的方式都采用人工管理,這種管理方式不僅效率低、保密性差,而且因?yàn)闄n案數(shù)據(jù)量大,所以查找、更新和維護(hù)都十分困難。本文采用分布式對象J2EE/ RMI技術(shù),設(shè)計(jì)實(shí)現(xiàn)了學(xué)生成績查詢系統(tǒng),將成績管理等工作系統(tǒng)化,網(wǎng)絡(luò)化,使得大規(guī)模的成績錄入等工作簡潔化,成績管理更加快捷有效。

        圖1 RMI體系結(jié)構(gòu)圖

        1JAVARMI

        Java遠(yuǎn)程方法調(diào)用,即 Java RMI(JavaRemote Method Invocation)是Java編程語言里,一種用于實(shí)現(xiàn)遠(yuǎn)程過程調(diào)用的應(yīng)用程序編程接口[1]。RMI機(jī)制實(shí)現(xiàn)程序組件在不同操作系統(tǒng)之間的通信,它大大增強(qiáng)了Java開發(fā)分布式應(yīng)用的能力[2]。RMI體系結(jié)構(gòu)采用典型的層次設(shè)計(jì)風(fēng)格,從上至下分別由樁/框架層、遠(yuǎn)程引用層和傳輸層共3個層次組成,各層之間明確定義了接口與協(xié)議,如圖1所示。

        RMI系統(tǒng)采用類似 CORBA的對象請求代理機(jī)制,樁(stub)是遠(yuǎn)程對象在客服端的代理,客服程序中是遠(yuǎn)程對象引用其實(shí)是對本地樁的引用。樁負(fù)責(zé)將遠(yuǎn)程調(diào)用請求通過遠(yuǎn)程引用層和傳輸層轉(zhuǎn)發(fā)給服務(wù)端的框架(skeleton),再由框架將請求分派給服務(wù)程序中的對象實(shí)現(xiàn)[3]。在與遠(yuǎn)程對象的通信過程中,RMI將使用標(biāo)準(zhǔn)機(jī)制 (用于 RPC系統(tǒng)):stub與skeleton[4]。stub擔(dān)當(dāng)遠(yuǎn)程對象的客戶本地代表或代理人角色。在遠(yuǎn)程虛擬機(jī)中,每個遠(yuǎn)程對象都可以有相應(yīng)的skeleton,負(fù)責(zé)將調(diào)用分配給實(shí)際的遠(yuǎn)程對象實(shí)現(xiàn)。RMI是一個分布式對象模式。它使得使用Java開發(fā)分布式程序更加容易。由于不需要設(shè)計(jì)協(xié)議(這基本是一個錯誤的任務(wù))使得使用RMI開發(fā)分布式程序比使用socket更加容易。在RMI里面設(shè)計(jì)者就象在調(diào)用一個本地的類的方法一樣,而實(shí)際上是在調(diào)用的時(shí)候相應(yīng)的參數(shù)被發(fā)送到遠(yuǎn)端的對象和然后被解釋。最后結(jié)果返回給調(diào)用者。一個RMI應(yīng)用的流程,使用RMI開發(fā)一個分布式應(yīng)用包括如下幾個步驟:

        1)定義一個遠(yuǎn)端的接口;

        2)實(shí)現(xiàn)這個遠(yuǎn)端的接口;

        3)開發(fā)一個服務(wù)端;

        4)開發(fā)一個客戶端;

        5)生成Stubs和Skeletons,運(yùn)行RMI注冊器,服務(wù)端 和客戶端。

        2 系統(tǒng)設(shè)計(jì)

        1)系統(tǒng)總體設(shè)計(jì)

        系統(tǒng)采用三層體系結(jié)構(gòu),遵從一般的分布式系統(tǒng)結(jié)構(gòu)的設(shè)計(jì),分為“用戶層”、“業(yè)務(wù)邏輯層”和“數(shù)據(jù)層”。在RMI體系結(jié)構(gòu)里:

        用戶層即用戶的圖形操作界面,只需要具有一定的圖形能力和簡單的數(shù)據(jù)處理能力。用戶界面用SWING來設(shè)計(jì),依照J(rèn)ava語言中的GUI設(shè)計(jì)規(guī)范。最終是界面形式是標(biāo)準(zhǔn)Windows窗口形式。管理員主要通過鼠標(biāo)操作,來進(jìn)行系統(tǒng)管理,學(xué)生信息,教師信息,班級信息等一系列活動。

        程序流程圖如圖2所示:

        圖2 系統(tǒng)總流程圖

        2)數(shù)據(jù)庫設(shè)計(jì)

        在MySQL里新建一個名為student的數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)的存儲需要。數(shù)據(jù)庫一共包含7張表,分別是:管理員信息表dt_admin,學(xué)生表dt_student,教師信息表dt_teacher,課程信息表dt_course,班級信息表di_class,成績表dt_score,授課表dt_teacher_course。各表之間的關(guān)系如圖3的E-R所示。

        圖3 E-R圖

        3 系統(tǒng)實(shí)現(xiàn)方案

        1)對象接口定義

        在系統(tǒng)需求分析里我們已經(jīng)分析了軟件的基本功能,定義了“用戶”和“管理員”兩個基本對象,并分析了兩者的基本功能和操作。因此,只要按照這個功能來定義不同對象的操作,再按照數(shù)據(jù)結(jié)構(gòu)里分析的不同類型的數(shù)據(jù)結(jié)構(gòu),為系統(tǒng)定義所需要的數(shù)據(jù)結(jié)構(gòu)。

        學(xué)生類對外提供數(shù)據(jù)訪問接口,隱藏內(nèi)部具體細(xì)節(jié)的實(shí)現(xiàn),服務(wù)層只需要調(diào)用學(xué)生的接口即可,修改內(nèi)部實(shí)現(xiàn)細(xì)節(jié)的時(shí)候不需要更改服務(wù)層,這也符合面向?qū)ο箢惖脑O(shè)計(jì)原則。

        2)編譯*.class文件生成樁與框架

        編譯后的Java類名,含有遠(yuǎn)程對象的實(shí)現(xiàn),rmic編譯器根據(jù)此類名,為實(shí)現(xiàn)java.rmi.Remote接口的對象即遠(yuǎn)程對象,生成stub和skeleton。rmic命令中所給類,都是經(jīng)過javac命令成功編譯且經(jīng)過完全包限定的類。例如,按如下所示對類文件名HelloImpl運(yùn)行rmic:rmic hello.HelloImpl,這將創(chuàng)建HelloImpl_Skel.class和HelloImpl_Stub.class文件。

        遠(yuǎn)程對象的 skeleton是服務(wù)器端實(shí)體,它包含一個方法,該方法將調(diào)用分配給實(shí)際的遠(yuǎn)程對象實(shí)現(xiàn)[5]。stub是遠(yuǎn)程對象的代理,其主要作用是將遠(yuǎn)程對象的方法調(diào)用轉(zhuǎn)發(fā)給實(shí)際遠(yuǎn)程對象所在的服務(wù)器,客戶機(jī)對遠(yuǎn)程對象的引用實(shí)際上是對stub的引用。stub只實(shí)現(xiàn)遠(yuǎn)程接口,而并不實(shí)現(xiàn)任何的本地接口,遠(yuǎn)程對象則可以將兩者都實(shí)現(xiàn)。因?yàn)閟tub與遠(yuǎn)程對象本身實(shí)現(xiàn)的是同一個遠(yuǎn)程接口集,所以客戶機(jī)可以用 Java語言的內(nèi)置操作符進(jìn)行強(qiáng)制類型轉(zhuǎn)換和類型檢查。用rmic命令,編譯所有的服務(wù)層.class文件,得到相應(yīng)的Stub文件。

        3)編寫對象實(shí)現(xiàn)和服務(wù)程序

        ①對象實(shí)現(xiàn)

        服務(wù)層對外提供業(yè)務(wù)接口,客戶端實(shí)際調(diào)用的是用rmic指令編譯后生成的Stub.class,通過http協(xié)議,傳遞給服務(wù)器端,調(diào)用相應(yīng)的實(shí)現(xiàn)類。調(diào)用程序?qū)⒄{(diào)用本地stub的方法,而本地stub將負(fù)責(zé)執(zhí)行對遠(yuǎn)程對象的方法調(diào)用[6]。在RMI中,遠(yuǎn)程對象的stub與該遠(yuǎn)程對象所實(shí)現(xiàn)的遠(yuǎn)程接口集相同。調(diào)用stub的方法時(shí)將執(zhí)行下列操作:

        初始化與包含遠(yuǎn)程對象的遠(yuǎn)程虛擬機(jī)的連接;

        對遠(yuǎn)程虛擬機(jī)的參數(shù)進(jìn)行編組(寫入并傳輸);

        等待方法調(diào)用結(jié)果;

        解編(讀?。┓祷刂祷蚍祷氐漠惓#?/p>

        將值返回給調(diào)用程序。

        為了避免調(diào)用機(jī)制看起來過于復(fù)雜,參數(shù)的序列化和網(wǎng)絡(luò)級通信等細(xì)節(jié)都在stub中進(jìn)行了隱藏處理。在遠(yuǎn)程虛擬機(jī)中,每個遠(yuǎn)程對象都可以有相應(yīng)的skeleton。Skeleton負(fù)責(zé)將調(diào)用分配給實(shí)際的遠(yuǎn)程對象實(shí)現(xiàn)。它在接收方法調(diào)用時(shí)首先讀取遠(yuǎn)程方法的參數(shù),調(diào)用實(shí)際遠(yuǎn)程對象實(shí)現(xiàn)上的方法進(jìn)行處理,最終將結(jié)果寫入并傳輸給調(diào)用程序。

        上述的stub和skeleton由rmic編譯器生成。以Teacher接口為例,繼承UnicastRemoteObject并實(shí)現(xiàn),TeacherServiceDao接口。向數(shù)據(jù)庫中添加教師信息,服務(wù)層調(diào)用Teacher的數(shù)據(jù)訪問層add(Teacher teacher)方法,實(shí)現(xiàn)對教師信息的增加功能,

        ②服務(wù)程序:

        對象實(shí)現(xiàn)僅僅是定義了一種類型而已,真正執(zhí)行服務(wù)的對象實(shí)例(即伺服對象)必須在一個服務(wù)進(jìn)程中創(chuàng)建。然后在客戶程序里對其進(jìn)行調(diào)用,完成客戶端的相應(yīng)請求。

        4)客戶程序的編寫

        客戶程序必須獲得遠(yuǎn)程對象的引用才可調(diào)用遠(yuǎn)程對象的方法,一般情況下,遠(yuǎn)程對象引用可通過其他遠(yuǎn)程方法調(diào)用的參數(shù)或返回值獲取,但第一個遠(yuǎn)程對象引用則必須借助基于URL的RMI注冊表,將服務(wù)程序發(fā)布的對象標(biāo)識解析為遠(yuǎn)程對象的引用[7]。

        例如在客戶端(視圖界面)調(diào)用服務(wù)層的方法,首先就是要用lookUp()方法,獲得遠(yuǎn)程服務(wù)對象。初始化學(xué)生信息窗口,在客戶端程序啟動時(shí),init()方法獲取遠(yuǎn)端班級服務(wù)接口(ClassesServiceDao)和學(xué)生服務(wù)接口(StudentServiceDao),因?yàn)樵诔跏蓟瘜W(xué)生信息窗口的時(shí)候,要從數(shù)據(jù)庫中獲取該學(xué)生所在班級,姓名等基本信息,在查詢學(xué)生成績時(shí),要通過這些接口來獲取該學(xué)生的各科成績。

        4 結(jié) 論

        文中采用Java RMI服務(wù)器框架設(shè)計(jì)實(shí)現(xiàn)了學(xué)生成績查詢系統(tǒng),完成了管理員管理、教師錄入成績以及學(xué)生查詢成績等基本功能。通過從系統(tǒng)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)、操作界面設(shè)計(jì)到系統(tǒng)功能模塊的實(shí)現(xiàn)以及系統(tǒng)測試,進(jìn)行了一個完整的系統(tǒng)設(shè)計(jì),這是一個較完整的系統(tǒng)設(shè)計(jì)的開發(fā)流程。

        [1]劉暉,沈鈞毅,林欣.用CORBA創(chuàng)建電子商務(wù)系統(tǒng)[M].北京:北京希望電子出版社,2000.

        [2]高雅俠,鄒海榮.基于Java的RMI技術(shù)的研究與應(yīng)用[J].計(jì)算機(jī)與數(shù)字工程,2011(8):174-177.

        [3]譚昊勛,龍海洋,鄭娟.基于Java RMI的分布式計(jì)算[J].湘潭大學(xué)自然科學(xué)學(xué)報(bào),2005(2):59-61.

        [4]肖統(tǒng)民.基于設(shè)計(jì)模式的可重用Web數(shù)據(jù)庫應(yīng)用軟件的研究[J].計(jì)算機(jī)與現(xiàn)代化,2006(7):42-44.

        [5]佘科華,李杰.基于Java-RMI的移動代理技術(shù)的研究[J].微計(jì)算機(jī)信息,2009(3):247-248.

        [6]張晞,用RMI進(jìn)行分布式Java編程[J].職大學(xué)報(bào),2004(2): 35-38.

        [7]楊曉梅,于長云,張冬梅.Java RMI與CORBA在分布式系統(tǒng)開發(fā)中的研究[J].天津理工大學(xué)學(xué)報(bào),2005(4):4-8.

        The design and implementation of student performance management system based on RMI

        DING Li
        (Health Services Administration,Xi`an Medical University,Xi'an 710021,China)

        In this paper,came up with a model of system based on RMI technology for student performance management system,in order to solve the problem of student performance management and the scores query.Based on the distributed object J2EE/RMI technology,completed the design of the server program and client program,realized the remote objects seamlessly between calls.Administrators can change information of teacher and student,the teacher can fill in student achievement in a timely manner,student check their grades in client,The system improve the efficiency of the school,educational administration management,reduce the workload,it has practical significance.

        JAVA;RMI;database;performance management

        TN02

        A

        1674-6236(2016)16-0035-03

        2015-10-29稿件編號:201510222

        丁 莉(1987—),女,山西運(yùn)城人,碩士研究生,助教。研究方向:物聯(lián)網(wǎng)技術(shù),傳感器網(wǎng)絡(luò),系統(tǒng)分析。

        猜你喜歡
        調(diào)用遠(yuǎn)程對象
        神秘來電
        睿士(2023年2期)2023-03-02 02:01:09
        讓人膽寒的“遠(yuǎn)程殺手”:彈道導(dǎo)彈
        軍事文摘(2022年20期)2023-01-10 07:18:38
        遠(yuǎn)程工作狂綜合征
        英語文摘(2021年11期)2021-12-31 03:25:18
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        遠(yuǎn)程詐騙
        攻略對象的心思好難猜
        意林(2018年3期)2018-03-02 15:17:24
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        基于熵的快速掃描法的FNEA初始對象的生成方法
        區(qū)間對象族的可鎮(zhèn)定性分析
        中文字幕+乱码+中文字幕一区| 亚洲熟女熟妇另类中文| 国产人妻熟女高跟丝袜| 丰满人妻一区二区三区视频53| 午夜AV地址发布| 精品人妻av一区二区三区不卡| 精品亚洲av乱码一区二区三区| 一本色道久久综合狠狠躁篇| 最近中文字幕完整版| 国产精品反差婊在线观看| 丰满巨臀人妻中文字幕| 亚洲无av在线中文字幕| 欧美亚洲日韩国产人成在线播放| 99福利影院| 成人爽a毛片在线播放| 成人免费无遮挡在线播放| 精品人体无码一区二区三区| 日本一区二区三区中文字幕视频| 亚洲色图专区在线观看| 色天使综合婷婷国产日韩av | 白白白在线视频免费播放| 在线不卡av片免费观看| 欧美日韩国产亚洲一区二区三区| 国产伦一区二区三区久久| 久久99亚洲精品久久久久 | 国产亚洲成人av一区| 色欲人妻综合网| 一个人免费观看在线视频播放| 日韩亚洲在线观看视频| av色综合久久天堂av色综合在| 免费av片在线观看网站| 国产三级伦理视频在线| 日本精品视频免费观看| aaa级久久久精品无码片| 国产成人亚洲精品2020| 一区二区三区视频亚洲| 亚洲人成电影在线播放| 加勒比精品久久一区二区三区 | 337人体做爰大胆视频| 无码一区二区三区AV免费换脸 | 精品国产免费一区二区三区香蕉|