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

基于中間件技術(shù)的數(shù)據(jù)批處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2008-12-31 00:00:00
電腦知識(shí)與技術(shù) 2008年34期

摘要:該文通過(guò)分析中間件技術(shù)在客戶-服務(wù)架構(gòu)系統(tǒng)中的作用, 闡述了三層或多層架構(gòu)相對(duì)傳統(tǒng)二層客戶-服務(wù)架構(gòu)的優(yōu)勢(shì);介紹了遵循J2EE規(guī)范的客服架構(gòu),并根據(jù)企業(yè)業(yè)務(wù)特點(diǎn)具體分析了支持構(gòu)件思想的系統(tǒng)專用中間件框架Sawara的工作原理,最后通過(guò)特定業(yè)務(wù)模塊的實(shí)現(xiàn)來(lái)說(shuō)明如何實(shí)現(xiàn)它與業(yè)務(wù)邏輯構(gòu)件之間的交互。

關(guān)鍵詞:中間件;構(gòu)件技術(shù);client/server系統(tǒng)

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)34-1567-02

Middleware Technology Based on the Data Batch System Design and Implementation

CHEN Ya

(College of Software Engineering Southeast University, Nanjing 210096, China)

Abstract: This article analysis middleware technology that is used in the client/server system, and three-tier or multi-tier architecture has more advantages than the traditional two-tier client/server arctecture. It introduces the arctecture follows the norms on the J2EE C/S framework,and in accordance with business enterprise features, it analysis the principle of middleware framework for system that support the component ideological:Sawara. At last the achievement of specific business module will explain how to achieve the interaction between it and the business logic components.

Key words: middleware; component technology; client/server system

1 引言

由于傳統(tǒng)的客戶-服務(wù)端電子信息系統(tǒng)存在著許多的不足,使得系統(tǒng)往往變得非常的臃腫;而隨著系統(tǒng)的規(guī)模變得越來(lái)越大,尤其是各組件之間缺乏可重用性,造成系統(tǒng)中各個(gè)組件的維護(hù)成為了一個(gè)非常大的問(wèn)題。構(gòu)件思想是面向?qū)ο笏枷脒M(jìn)一步發(fā)展的產(chǎn)物,在企業(yè)系統(tǒng)開(kāi)發(fā)中被大量的采用,利用開(kāi)發(fā)可復(fù)用的構(gòu)件技術(shù)不僅提高了新系統(tǒng)的開(kāi)發(fā)效率,也方便了對(duì)已有系統(tǒng)的二次開(kāi)發(fā),提高了應(yīng)用軟件的可復(fù)用性。

中間件技術(shù)經(jīng)過(guò)多年的發(fā)展,已經(jīng)能夠在許多的大型項(xiàng)目中很好的解決這些問(wèn)題,獲得了廣泛的好評(píng)。本文闡述的是一個(gè)符合標(biāo)準(zhǔn)的C/S三層架構(gòu)的企業(yè)應(yīng)用系統(tǒng),它通過(guò)Sawara框架實(shí)現(xiàn)了用專門(mén)的構(gòu)件封裝了應(yīng)用程序的業(yè)務(wù)邏輯,通過(guò)加載特定的配置文件從而啟動(dòng)整個(gè)工作流程,對(duì)工作流程名稱不同的任務(wù)分別執(zhí)行相應(yīng)的數(shù)據(jù)批處理操作。

2 中間件與三層C/S架構(gòu)的優(yōu)勢(shì)

中間件是由應(yīng)用軟件系統(tǒng)的不斷擴(kuò)大而產(chǎn)生的,現(xiàn)在已經(jīng)是大型系統(tǒng)不可缺少的組成部分。中間件具有多種模式,基于中間件的應(yīng)用系統(tǒng)其開(kāi)發(fā)模式使傳統(tǒng)的客戶/服務(wù)器結(jié)構(gòu)發(fā)生了變化。傳統(tǒng)的客戶/服務(wù)器結(jié)構(gòu)是指服務(wù)器和客戶層兩層,包括遠(yuǎn)程數(shù)據(jù)訪問(wèn)和存儲(chǔ)過(guò)程調(diào)用。在兩層結(jié)構(gòu)系統(tǒng)中,客戶端負(fù)責(zé)提供用戶界面、運(yùn)行邏輯處理應(yīng)用,而典型服務(wù)器端負(fù)責(zé)接收客戶端SQL語(yǔ)句并對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,然后返回查詢結(jié)果。在兩層結(jié)構(gòu)給系統(tǒng)帶來(lái)靈活性的同時(shí),也逐漸暴露出客戶端和服務(wù)端負(fù)擔(dān)過(guò)重的現(xiàn)象。一方面,所有的業(yè)務(wù)全放在客戶端處理,網(wǎng)絡(luò)的交通很容易堵塞,而且業(yè)務(wù)邏輯也不容易擴(kuò)充;另一方面,所有的處理過(guò)程都放在數(shù)據(jù)庫(kù)層進(jìn)行,只是將最終結(jié)果返回到客戶端。這種結(jié)構(gòu)的業(yè)務(wù)邏輯需采用專用語(yǔ)言開(kāi)發(fā),很難再移植到其他的數(shù)據(jù)庫(kù)上去。也缺少相應(yīng)的調(diào)試工具,具有明顯的局限性。此外,隨著企業(yè)應(yīng)用的不斷擴(kuò)充和新應(yīng)用的不斷增加,不同硬件平臺(tái)、不同網(wǎng)絡(luò)環(huán)境、不同數(shù)據(jù)庫(kù)之間的互操作,多種應(yīng)用模式并存,系統(tǒng)效率過(guò)低,傳輸不可靠,數(shù)據(jù)加密、開(kāi)發(fā)周期過(guò)長(zhǎng)等等問(wèn)題也令人頭痛。隨著Internet的興起,二層客戶機(jī)服務(wù)器結(jié)構(gòu)的局限性越來(lái)越大,成為現(xiàn)代軟件應(yīng)用的一道不可逾越的障礙,三層結(jié)構(gòu)是解決上述問(wèn)題的關(guān)鍵。三層結(jié)構(gòu)模式是當(dāng)今先進(jìn)的協(xié)同應(yīng)用程序開(kāi)發(fā)模型,這種方案將客戶機(jī)/服務(wù)器系統(tǒng)中各種部件劃分為三層服務(wù)(即客戶端服務(wù)、中間層服務(wù)和數(shù)據(jù)庫(kù)服務(wù))。它其實(shí)是在線事務(wù)處理的一種應(yīng)用。它的特點(diǎn)是聯(lián)機(jī)的用戶數(shù)比較多,每次交易的時(shí)間都比較短,交易量比較大,而且每次都是采用通用的大型數(shù)據(jù)庫(kù)。當(dāng)客戶數(shù)大量增加時(shí),我們采用一個(gè)中間層,把客戶和數(shù)據(jù)庫(kù)隔開(kāi),客戶只需要連接到中間層上,業(yè)務(wù)邏輯與客戶界面也是分離的,軟件的開(kāi)發(fā)和維護(hù)相對(duì)來(lái)說(shuō)都比較獨(dú)立。目前中間件的技術(shù)規(guī)范主要分為CORBA,J2EE和Microsoft的COM等技術(shù)規(guī)范,本項(xiàng)目在開(kāi)發(fā)過(guò)程中采用傳統(tǒng)的J2EE技術(shù)規(guī)范。其體系架構(gòu)包括客戶端(瀏覽器,應(yīng)用程序),和服務(wù)端,其前端是JSP或Servlet,而后端是運(yùn)行在應(yīng)用服務(wù)器上的包含了業(yè)務(wù)邏輯的自定義組件庫(kù),通過(guò)JDBC和數(shù)據(jù)庫(kù)服務(wù)器相連。

隨著中間件技術(shù)的日趨完善,為軟件體系結(jié)構(gòu)注入了新的活力,改變了傳統(tǒng)的客戶端/服務(wù)器的兩層應(yīng)用模式,在客戶端和服務(wù)器之間加入了中間層,從而構(gòu)成了三層或多層的應(yīng)用模式。特別是軟件構(gòu)件技術(shù)的發(fā)展,使中間件技術(shù)的發(fā)展有了更大的突破。

3 系統(tǒng)的客服架構(gòu)

本系統(tǒng)的架構(gòu)符合J2EE標(biāo)準(zhǔn)的體系結(jié)構(gòu),它提供了基于組件的、以應(yīng)用服務(wù)器為核心的多層應(yīng)用體系結(jié)構(gòu),以及系統(tǒng)必須的可靠性、可擴(kuò)展性、可管理性和安全性。其具體結(jié)構(gòu)如圖1所示。

整個(gè)應(yīng)用系統(tǒng)由客戶層 、中間層(業(yè)務(wù)邏輯層)和企業(yè)信息系統(tǒng)層構(gòu)成:

客戶層:應(yīng)用客戶端部分,包含瀏覽器等GUI應(yīng)用程序。瀏覽器使用HTTP協(xié)議與服務(wù)器端通信。

中間層: 包括系統(tǒng)的各個(gè)應(yīng)用邏輯組件,并通過(guò)它們?yōu)榭蛻舳颂峁┓?wù)。其中Servlet組件負(fù)責(zé)客戶層與服務(wù)器端的請(qǐng)求與響應(yīng);組件容器封裝了應(yīng)用的業(yè)務(wù)邏輯規(guī)則,是整個(gè)應(yīng)用的核心部分,按業(yè)務(wù)功能的不同劃分成多個(gè)獨(dú)立的邏輯構(gòu)件。在本系統(tǒng)中Sawara框架負(fù)責(zé)為邏輯構(gòu)件提供如數(shù)據(jù)庫(kù)連接的管理,線程控制,異常處理等服務(wù)。

企業(yè)信息系統(tǒng)層:這一層為企業(yè)的信息系統(tǒng)服務(wù),包括數(shù)據(jù)庫(kù)系統(tǒng)、事務(wù)處理系統(tǒng)等。該層是J2 EE應(yīng)用和非J2EE應(yīng)用的連接點(diǎn)。

4 Sawara中間件框架概述

為了支持基于構(gòu)件的方法,通常要用一些構(gòu)件基礎(chǔ)設(shè)施,面向構(gòu)件的中間件來(lái)處理構(gòu)件間協(xié)調(diào)的一切復(fù)雜細(xì)節(jié)。中間件提供了一組公共的構(gòu)件管理服務(wù),能被使用中間件的構(gòu)件利用。它負(fù)責(zé)對(duì)所開(kāi)發(fā)的構(gòu)件的包裝,發(fā)布,如識(shí)別客戶端發(fā)出的請(qǐng)求,并找到與請(qǐng)求相匹配的構(gòu)件實(shí)例等。

構(gòu)件(component)是可復(fù)用軟件的組成成份,可以被用來(lái)構(gòu)造其他軟件。它可以是被封裝的對(duì)象類、類樹(shù)、一些功能模塊、軟件框架(framework)、軟件構(gòu)架(或體系結(jié)構(gòu)Architectural)、文檔、分析件、設(shè)計(jì)模式(Pattern)等。構(gòu)件分為構(gòu)件類和構(gòu)件實(shí)例,通過(guò)給出構(gòu)件類的參數(shù),生成實(shí)例,通過(guò)實(shí)例的組裝和控制來(lái)構(gòu)造相應(yīng)的應(yīng)用軟件。目前較有影響的分步式構(gòu)件規(guī)范,主要有CORBA、OLE/ActiveX和JavaBeans,其發(fā)展日趨明朗。

Sawara中間件框架在本系統(tǒng)中是一個(gè)負(fù)責(zé)對(duì)服務(wù)器端的業(yè)務(wù)邏輯構(gòu)件提供各種支持的中間件。它采用嵌入式的運(yùn)行模式,以一個(gè)工具包的形式向應(yīng)用系統(tǒng)提供服務(wù)接口,應(yīng)用程序可以在同一個(gè)java虛擬機(jī)下調(diào)用。在這種模式下,Sawara框架可以作為業(yè)務(wù)流程管理和控制功能的基礎(chǔ)構(gòu)件存在。此外,應(yīng)用系統(tǒng)一般在實(shí)現(xiàn)其具體的業(yè)務(wù)時(shí),都要調(diào)用作為業(yè)務(wù)組件而存在的應(yīng)用程序,而本系統(tǒng)所采用的調(diào)用方式為,應(yīng)用程序何時(shí)被調(diào)用是由應(yīng)用系統(tǒng)決定的,應(yīng)用系統(tǒng)從Sawara中間件框架中獲取所需要執(zhí)行的應(yīng)用程序,并直接執(zhí)行之。

Sawara中間件框架是批處理命令的接口,主要負(fù)責(zé)數(shù)據(jù)記錄批處理操作的整個(gè)流程;

由它從應(yīng)用系統(tǒng)中提取一些共通的數(shù)據(jù)設(shè)置,如系統(tǒng)時(shí)間,批處理操作名稱等作為數(shù)據(jù)批處理的輸入?yún)?shù)。根據(jù)處理異常的類別將多線程(multi-thread)處理中的記錄數(shù)據(jù)分別進(jìn)行處理;輸入數(shù)據(jù)的業(yè)務(wù)處理邏輯一般分為以下幾個(gè)部分:預(yù)處理邏輯,數(shù)據(jù)主處理邏輯即組件記錄的處理邏輯和后處理邏輯;在這幾個(gè)部分中如果發(fā)生了錯(cuò)誤異常中斷則應(yīng)實(shí)行retry功能,重新進(jìn)行修復(fù)批處理失敗的記錄;

Sawara中間件框架的整個(gè)工作步驟如圖2所示。

5 構(gòu)件模塊的設(shè)計(jì)與實(shí)現(xiàn)

本系統(tǒng)的工作原理大致為:畫(huà)面部分通過(guò)觸發(fā)相應(yīng)的事件(event)產(chǎn)生數(shù)據(jù)流,客戶端應(yīng)用子系統(tǒng)設(shè)置一個(gè)數(shù)據(jù)批處理名,并把它作為一個(gè)工作流過(guò)程名通過(guò)通信協(xié)議發(fā)送到服務(wù)器端,服務(wù)器端實(shí)現(xiàn)Sawara中間件框架的各個(gè)功能接口,從而執(zhí)行相應(yīng)的服務(wù),對(duì)整個(gè)流程實(shí)施管理和監(jiān)控。該系統(tǒng)中間層是由各個(gè)構(gòu)件組成,我所要完成的是一個(gè)實(shí)現(xiàn)顧客會(huì)員卡優(yōu)惠處理的子模塊,它是中間層眾多構(gòu)件中的一個(gè)。它的應(yīng)用過(guò)程大致如圖3。

用戶在客戶端通過(guò)按鈕啟動(dòng)事件觸發(fā)機(jī)制,產(chǎn)生了相應(yīng)的用戶請(qǐng)求,客戶端通過(guò)向服務(wù)器端發(fā)送與用戶請(qǐng)求對(duì)應(yīng)的工作流程名,去查找特定的工作流程配置文件,從而連接并啟動(dòng)相應(yīng)的構(gòu)件類,構(gòu)件類的輸入?yún)?shù)構(gòu)成了一個(gè)記錄類,其數(shù)據(jù)由兩種方式獲取:一部分是從客戶端的表示層獲取,如顧客號(hào)碼等,另一部分則通過(guò)Sawara中間件框架從它處獲取,如系統(tǒng)時(shí)間,數(shù)據(jù)批處理名等;構(gòu)件在執(zhí)行的過(guò)程中需要對(duì)從客戶端發(fā)送的數(shù)據(jù)進(jìn)行數(shù)據(jù)驗(yàn)證;同時(shí)還要從控制器中選擇執(zhí)行不同的邏輯,在顧客會(huì)員卡優(yōu)惠處理的子模塊中,構(gòu)件自身的執(zhí)行過(guò)程如圖4所示。

此外,整個(gè)數(shù)據(jù)批處理系統(tǒng)采用了多種軟件設(shè)計(jì)模式,例如Facade模式(外觀模式),這種模式可以為系統(tǒng)中的各個(gè)組成部分所包含的類結(jié)構(gòu)或方法,提供一個(gè)簡(jiǎn)明一致的接口/界面,隱藏子系統(tǒng)的復(fù)雜性,使子系統(tǒng)更加容易使用。對(duì)于一個(gè)大型的,復(fù)雜的系統(tǒng)而言,其各個(gè)子系統(tǒng)往往因?yàn)椴粩嘌莼兊迷絹?lái)越復(fù)雜。大多數(shù)模式使用時(shí)都會(huì)產(chǎn)生更多的類。這使得子系統(tǒng)更具有可重用性,也使得客戶程序與抽象類的實(shí)現(xiàn)部分之間存在著很大的依賴性。

通過(guò)引入Facade模式可以將服務(wù)端單個(gè)子系統(tǒng)與客戶端及其它子系統(tǒng)分離,減少子系統(tǒng)對(duì)其它組件的依賴,從而提高子系統(tǒng)的獨(dú)立性和可移植性。在本文中,通過(guò)為系統(tǒng)服務(wù)端設(shè)置一個(gè)Facade接口,實(shí)現(xiàn)服務(wù)端的各個(gè)業(yè)務(wù)邏輯組件與客戶端的分離。其具體結(jié)構(gòu)如圖5所表示。

這種構(gòu)件設(shè)計(jì)方式很好的利用了軟件設(shè)計(jì)模式方面的知識(shí),F(xiàn)acadeServlet組件繼承了Sawara中間件框架所封裝的類庫(kù),實(shí)現(xiàn)了http Servlet的工作機(jī)制。這樣就能夠用中間件將客戶端的表示部分與業(yè)務(wù)邏輯處理部分隔離開(kāi)來(lái),從而支持瘦客戶端的開(kāi)發(fā)模式。客戶端專門(mén)提供人機(jī)交互界面,而業(yè)務(wù)邏輯部分則由構(gòu)件組成一個(gè)個(gè)獨(dú)立的功能單元,從而很好的解決了傳統(tǒng)的client/server模式所帶來(lái)的不便。

參考文獻(xiàn):

[1] 昊明輝,應(yīng)晶.基于構(gòu)件的框架開(kāi)發(fā)方法及其特定域應(yīng)用[J].計(jì)算機(jī)科學(xué),1997,24 (1):58-62.

[2] 宋曉梁等.中間件及其在三層客戶/服務(wù)器模型中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用,1999,119(7).

[3] 韓祥斌.基于構(gòu)件的應(yīng)用集成中間件平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)科學(xué),2004,31:257-259,281.

[4] 周勁,谷巖 基于中間件技術(shù)的多層分布式應(yīng)用系統(tǒng)的開(kāi)發(fā)[J].計(jì)算機(jī)研究與發(fā)展,1998,35(7):594-598.

[5] 莊越挺等.GDP:面向?qū)ο蠛蛙洏?gòu)件技術(shù)的設(shè)計(jì)與實(shí)現(xiàn)[J].軟件學(xué)報(bào),1997,8(5):391396.

[6] 郭勝,許平,王穎,陸桑璐,陳道蓄,謝立.中間件技術(shù)的研究[J].計(jì)算機(jī)科學(xué),2006,31(2):155-159,180.

主站蜘蛛池模板: 国产精品hd在线播放| 亚洲大尺码专区影院| 91福利一区二区三区| 五月天久久婷婷| 欧美、日韩、国产综合一区| 激情综合五月网| 国产精品开放后亚洲| 夜夜拍夜夜爽| 亚洲精品男人天堂| 99在线视频免费| 久久久久国产一区二区| 亚洲最新网址| 国产精品.com| 国产成人亚洲精品色欲AV| 国产欧美日韩精品第二区| 丰满少妇αⅴ无码区| 国产亚洲欧美在线视频| 99青青青精品视频在线| 国产福利2021最新在线观看| 亚洲精选无码久久久| 99久久国产综合精品2020| 伊人久久久久久久| 亚洲日本中文字幕乱码中文| 国产h视频免费观看| 亚洲色图欧美激情| 中文字幕乱妇无码AV在线| 欧美不卡在线视频| 国产美女自慰在线观看| 东京热av无码电影一区二区| 成人午夜福利视频| 国产白浆视频| 久久性妇女精品免费| 91福利国产成人精品导航| 久久国产精品麻豆系列| 国产人碰人摸人爱免费视频| 欧美国产成人在线| 亚洲看片网| 9966国产精品视频| yjizz视频最新网站在线| 色婷婷电影网| 亚洲成a人在线播放www| 久久男人资源站| 日本高清有码人妻| 国产日本欧美在线观看| 亚洲Va中文字幕久久一区| 夜夜操国产| 久久免费看片| 国内精品久久人妻无码大片高| 免费Aⅴ片在线观看蜜芽Tⅴ| 国产老女人精品免费视频| 91香蕉视频下载网站| 中文字幕亚洲无线码一区女同| 亚洲欧美综合在线观看| 亚洲高清国产拍精品26u| 波多野结衣一区二区三区四区视频| 亚洲VA中文字幕| 色呦呦手机在线精品| 国产第一页免费浮力影院| 久久黄色视频影| 国产福利大秀91| 91破解版在线亚洲| 亚洲国产日韩一区| swag国产精品| 国产成人喷潮在线观看| 国产成人精品2021欧美日韩| 免费在线a视频| 国产一区二区色淫影院| 精品国产一区二区三区在线观看 | 精品福利网| 丝袜高跟美脚国产1区| 欧美无专区| 精品亚洲欧美中文字幕在线看| 精品三级网站| 午夜三级在线| 午夜丁香婷婷| 成人久久精品一区二区三区| 精品视频第一页| 国产成人精品男人的天堂 | 婷婷五月在线| 国产大全韩国亚洲一区二区三区| 亚洲一区二区三区国产精华液| 亚洲av无码久久无遮挡|