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

        ?

        基于構(gòu)件和總線集成的業(yè)務(wù)基礎(chǔ)平臺(tái)框架研究

        2009-01-01 00:00:00楊鶴標(biāo)喬亦民

        (江蘇大學(xué) 計(jì)算機(jī)科學(xué)與通信工程學(xué)院,江蘇 鎮(zhèn)江212013)

        摘 要:

        為了提高軟件復(fù)用的靈活性和軟件的開(kāi)發(fā)效率,提出了一個(gè)基于構(gòu)件和總線集成的業(yè)務(wù)基礎(chǔ)平臺(tái)框架(CBBF),以結(jié)構(gòu)級(jí)的構(gòu)件定制和復(fù)用生成業(yè)務(wù)過(guò)程,以體系結(jié)構(gòu)支撐和集成軟件系統(tǒng)。闡述了基于業(yè)務(wù)基礎(chǔ)平臺(tái)的開(kāi)發(fā)模式;設(shè)計(jì)了CBBF的體系結(jié)構(gòu);分析了CBBF實(shí)現(xiàn)的關(guān)鍵設(shè)計(jì),包括XML總線集成的內(nèi)核引擎、構(gòu)件分類、構(gòu)件模型的形式化描述和構(gòu)件組裝;給出了CBBF的實(shí)現(xiàn)細(xì)節(jié)。實(shí)踐表明CBBF可以簡(jiǎn)化軟件開(kāi)發(fā)過(guò)程,大幅提高軟件開(kāi)發(fā)效率。

        關(guān)鍵詞:業(yè)務(wù)基礎(chǔ)平臺(tái); 構(gòu)件; 框架; 軟件總線

        中圖分類號(hào):TP311文獻(xiàn)標(biāo)志碼:A

        文章編號(hào):1001-3695(2009)04-1366-04

        Study of business platform framework based on component and bus integration

        YANG He-biao, QIAO Yi-min, DUAN Li

        (School of Computer Science Telecommunications Engineering, Jiangsu University, Zhenjiang Jiangsu 212013, China)

        Abstract:In order to improve the flexibility of software reuse and the efficiency of software development, this paper put forward component oriented and bus integrated software framework for business platform (CBBF). This framework could be used to develop business process in structure-level component customization and reuse, moreover to support and integrate software system with software architecture. Specified the software development model based on business platform. Then, illustrated the architecture and the key issues of CBBF, such as XML bus based kernel engine design, classification of business component, formalization of component model and component Integration. Finally, gave the implementation details. Practice has proved that CBBF can simplify the software development process, substantially increases the efficiency of software development.

        Key words:business platform; component; framework; software bus

        

        如何適應(yīng)業(yè)務(wù)的快速變化是開(kāi)發(fā)和實(shí)施軟件系統(tǒng)面臨的最重大的挑戰(zhàn)。傳統(tǒng)的以數(shù)據(jù)為中心的開(kāi)發(fā)方式由于其業(yè)務(wù)固化性和實(shí)施復(fù)雜性,無(wú)法滿足應(yīng)用軟件系統(tǒng)開(kāi)發(fā)的速度要求、靈活性要求和集成性要求,導(dǎo)致復(fù)雜軟件系統(tǒng)開(kāi)發(fā)困難,更為其業(yè)務(wù)拓展和維護(hù)戴上了沉重的桎梏。如何抽象出一種簡(jiǎn)潔、快捷、直接描述業(yè)務(wù)和管理的體系是解決這一問(wèn)題的根本所在。業(yè)務(wù)基礎(chǔ)平臺(tái)基于業(yè)務(wù)與實(shí)現(xiàn)無(wú)關(guān)的理念,提出了一種快速開(kāi)發(fā)軟件系統(tǒng)的方法,被證明是解決上述問(wèn)題的有效途徑,一經(jīng)提出便帶來(lái)了軟件業(yè)發(fā)展史上的革命。

        近年來(lái),隨著軟件復(fù)用研究的深入,關(guān)于構(gòu)件框架的研究也越來(lái)越受到人們的重視。其中主要包括框架建模[1]、框架擴(kuò)展[2]、構(gòu)件集成[3]和領(lǐng)域應(yīng)用[4]等方面的研究。但是這些研究大多局限在建模和高層描述上[3];而且沒(méi)有提供大粒度的結(jié)構(gòu)級(jí)的構(gòu)件定制和復(fù)用機(jī)制,新的業(yè)務(wù)需要重新開(kāi)發(fā)構(gòu)件;領(lǐng)域應(yīng)用方面也往往由于引入了重量級(jí)的架構(gòu)方案,導(dǎo)致擴(kuò)展困難和開(kāi)發(fā)難度巨大。本文提出和實(shí)現(xiàn)的基于構(gòu)件和總線集成的業(yè)務(wù)基礎(chǔ)平臺(tái)框架(CBBF)嘗試通過(guò)體系結(jié)構(gòu)和邏輯結(jié)構(gòu)級(jí)的構(gòu)件復(fù)用簡(jiǎn)化軟件系統(tǒng)開(kāi)發(fā),以構(gòu)件和模型組裝業(yè)務(wù)過(guò)程,以體系結(jié)構(gòu)和業(yè)務(wù)過(guò)程集成軟件系統(tǒng),實(shí)現(xiàn)從高層描述到具體實(shí)現(xiàn)的映射,使得系統(tǒng)架構(gòu)穩(wěn)定清晰、易于理解,努力克服當(dāng)前軟件架構(gòu)和開(kāi)發(fā)中的種種問(wèn)題,提高軟件的生產(chǎn)效率。

        1 基于業(yè)務(wù)基礎(chǔ)平臺(tái)的開(kāi)發(fā)模式

        傳統(tǒng)的軟件開(kāi)發(fā)模式是以概要設(shè)計(jì)和編碼驅(qū)動(dòng)的,直接在低層的基礎(chǔ)技術(shù)平臺(tái)上采用面向技術(shù)、業(yè)務(wù)無(wú)關(guān)的原始的編程工具來(lái)開(kāi)發(fā)。依照這種模式開(kāi)發(fā)的系統(tǒng),大多缺乏統(tǒng)一的業(yè)務(wù)基礎(chǔ)架構(gòu),而且開(kāi)發(fā)效率低、實(shí)施周期長(zhǎng)、系統(tǒng)柔性差,無(wú)法適應(yīng)需求的變化[5~7]。其弊端主要表現(xiàn)在三個(gè)方面:a)需求變更不靈活;b)軟件復(fù)用性差;c)易陷于基于數(shù)據(jù)的開(kāi)發(fā)模式。

        針對(duì)這種開(kāi)發(fā)模式的弊端,新的軟件開(kāi)發(fā)模式必須能夠快速適應(yīng)業(yè)務(wù)需求的變化、支持大規(guī)模的復(fù)用、方便擴(kuò)展和利于快速開(kāi)發(fā)。為此,提出了基于業(yè)務(wù)基礎(chǔ)平臺(tái)的開(kāi)發(fā)模式。業(yè)務(wù)基礎(chǔ)平臺(tái)是一種業(yè)務(wù)導(dǎo)向和驅(qū)動(dòng)的可快速構(gòu)建應(yīng)用軟件的軟件體系。從技術(shù)角度分析,業(yè)務(wù)基礎(chǔ)軟件平臺(tái)為復(fù)雜應(yīng)用軟件系統(tǒng)的開(kāi)發(fā)提供了一個(gè)基本框架,并有與之相應(yīng)的擴(kuò)展與維護(hù)管理工具,這個(gè)框架給出了復(fù)雜軟件系統(tǒng)的基本組成部分和實(shí)現(xiàn)方法,并預(yù)置了很多可復(fù)用的模型構(gòu)件。在這樣的框架上開(kāi)發(fā)軟件可以降低復(fù)雜度,省去基礎(chǔ)性的研發(fā)工作,大大縮短研發(fā)周期,提高研發(fā)效率。圖1描述了基于業(yè)務(wù)基礎(chǔ)平臺(tái)的軟件開(kāi)發(fā)模式。

        下面先給出與此模式相關(guān)的概念:

        定義1 用戶。用戶指業(yè)務(wù)基礎(chǔ)平臺(tái)的使用者,用戶共分兩類,即企業(yè)業(yè)務(wù)人員和傳統(tǒng)的程序開(kāi)發(fā)人員。由于業(yè)務(wù)基礎(chǔ)平臺(tái)的面向業(yè)務(wù)和技術(shù)無(wú)關(guān)性,業(yè)務(wù)人員可作為開(kāi)發(fā)者參與軟件開(kāi)發(fā)。用戶用BU來(lái)表示。

        定義2 業(yè)務(wù)對(duì)象。它是業(yè)務(wù)活動(dòng)中業(yè)務(wù)實(shí)體和信息實(shí)體的抽象,每個(gè)實(shí)體具有與其相關(guān)的屬性,如員工姓名、性別等。業(yè)務(wù)對(duì)象用一個(gè)二元組表示,記為bo=(ID,A)。其中:ID為該業(yè)務(wù)對(duì)象的惟一標(biāo)志;A為該業(yè)務(wù)對(duì)象的屬性集合。

        定義3 業(yè)務(wù)邏輯。它是一個(gè)特定的角色作用于業(yè)務(wù)對(duì)象及其屬性上的相關(guān)操作。將業(yè)務(wù)邏輯從業(yè)務(wù)對(duì)象中抽離出來(lái),提高了系統(tǒng)的可復(fù)用性。業(yè)務(wù)邏輯用一個(gè)四元組表示,記為bl=( r, bo, A, op)。其中:r為操作業(yè)務(wù)對(duì)象使其屬性發(fā)生改變的特定角色;

        bo、A為被動(dòng)操作的業(yè)務(wù)對(duì)象及其屬性;

        op為執(zhí)行的相關(guān)操作。

        定義4 業(yè)務(wù)過(guò)程。指相關(guān)業(yè)務(wù)的參與者,按照業(yè)務(wù)順序關(guān)系,通過(guò)一系列業(yè)務(wù)邏輯,作用于單個(gè)或多個(gè)業(yè)務(wù)對(duì)象使其屬性發(fā)生改變的一組完整的業(yè)務(wù)活動(dòng)。業(yè)務(wù)過(guò)程用一個(gè)五元組表示,記為bp=( R, BO, A, BL, s)。其中:R為該業(yè)務(wù)過(guò)程的參與者的集合;

        BO、A為被動(dòng)操作的業(yè)務(wù)對(duì)象及其屬性的集合;

        BL為執(zhí)行的業(yè)務(wù)邏輯的集合;

        s為業(yè)務(wù)邏輯執(zhí)行的相關(guān)順序關(guān)系。

        定義5 業(yè)務(wù)模型。它是業(yè)務(wù)過(guò)程在業(yè)務(wù)基礎(chǔ)平臺(tái)中的軟件表示,業(yè)務(wù)模型與業(yè)務(wù)過(guò)程是一一對(duì)應(yīng)的關(guān)系。業(yè)務(wù)模型用一個(gè)三元組表示,記為bm=(ID,C,D)。其中:

        ID為該業(yè)務(wù)模型的惟一標(biāo)志;

        C是構(gòu)件的集合,包括三類構(gòu)件,C=(IC,LC,SC),分別表示界面構(gòu)件、邏輯構(gòu)件和服務(wù)構(gòu)件(界面構(gòu)件負(fù)責(zé)業(yè)務(wù)過(guò)程對(duì)用戶(最終軟件的使用者)的展現(xiàn),邏輯構(gòu)件用于處理業(yè)務(wù)邏輯(bl),服務(wù)構(gòu)件提供業(yè)務(wù)構(gòu)件與數(shù)據(jù)交互的映射服務(wù),三者最終組裝成業(yè)務(wù)過(guò)程(bp));

        D是業(yè)務(wù)模型處理的數(shù)據(jù)。

        定義6 業(yè)務(wù)集成結(jié)構(gòu)。它是為了構(gòu)造可用的軟件系統(tǒng)由業(yè)務(wù)模型集成的相互協(xié)作的整體。業(yè)務(wù)集成結(jié)構(gòu)用一個(gè)二元組表示,記為bi=(BM,constraint)。其中:BM是業(yè)務(wù)模型的集合;

        constraint是業(yè)務(wù)模型之間的約束關(guān)系。

        在新的開(kāi)發(fā)模式下,將軟件系統(tǒng)抽象為業(yè)務(wù)相關(guān)人員在特定的管理思想和方法(bl)的指導(dǎo)與控制下對(duì)業(yè)務(wù)對(duì)象(bo)進(jìn)行合理的使用與調(diào)度,并且使一系列的業(yè)務(wù)過(guò)程(bp)在業(yè)務(wù)規(guī)則(constraint)的約束下統(tǒng)一運(yùn)作的整體。在此模式下軟件系統(tǒng)的開(kāi)發(fā)過(guò)程為:首先由業(yè)務(wù)基礎(chǔ)平臺(tái)用戶(BU)根據(jù)業(yè)務(wù)需求抽象出業(yè)務(wù)活動(dòng)中的業(yè)務(wù)對(duì)象(bo)、業(yè)務(wù)邏輯(bl)和業(yè)務(wù)過(guò)程(bp);然后利用平臺(tái)提供的建模工具進(jìn)行業(yè)務(wù)建模,利用界面構(gòu)件(IC)、邏輯構(gòu)件(LC)和服務(wù)構(gòu)件(SC),把業(yè)務(wù)過(guò)程組裝成業(yè)務(wù)模型(bm);進(jìn)而由集成工具把生成的業(yè)務(wù)模型(bm)集成于平臺(tái)體系中,生成業(yè)務(wù)集成結(jié)構(gòu);最后由部署工具進(jìn)行系統(tǒng)部署,最終生成用戶需要的軟件系統(tǒng)。通過(guò)對(duì)實(shí)際應(yīng)用的大量研究,總結(jié)出若干種處理業(yè)務(wù)過(guò)程的典型的用戶界面和大量的邏輯過(guò)程,將其抽象為界面構(gòu)件和邏輯構(gòu)件,并且可由平臺(tái)自動(dòng)生成,基本能夠覆蓋企業(yè)應(yīng)用的大部分需求。在這個(gè)開(kāi)發(fā)過(guò)程中,無(wú)論是系統(tǒng)的測(cè)試和需求的變更都是基于大粒度的業(yè)務(wù)模型進(jìn)行,大大提高了開(kāi)發(fā)的靈活性和效率。

        2 CBBF體系結(jié)構(gòu)

        體系結(jié)構(gòu)被認(rèn)為是軟件系統(tǒng)能獲得最大化復(fù)用的方式,D.E.Perry把軟件體系結(jié)構(gòu)視為軟件開(kāi)發(fā)中第一類重要的設(shè)計(jì)對(duì)象[8]。體系結(jié)構(gòu)作為系統(tǒng)設(shè)計(jì)的抽象,為實(shí)現(xiàn)框架和構(gòu)件的共享與復(fù)用、基于體系結(jié)構(gòu)的軟件開(kāi)發(fā)提供了有力的支持[9]。由于層次化體系結(jié)構(gòu)具有良好的靈活性、可擴(kuò)展性和可復(fù)用性,與業(yè)務(wù)基礎(chǔ)平臺(tái)的理念具有概念上的一致性。因此,CBBF的整體和內(nèi)部結(jié)構(gòu)均采用層次化體系結(jié)構(gòu)風(fēng)格。

        2.1 CBBF的總體結(jié)構(gòu)

        CBBF的體系結(jié)構(gòu)如圖2所示。從圖2中可以看出,框架中,環(huán)境層、構(gòu)件層、擴(kuò)展層、集成層、應(yīng)用層、軟件系統(tǒng)層具有明顯的層次結(jié)構(gòu),上層調(diào)用下層提供的服務(wù)而無(wú)須了解下層的實(shí)現(xiàn)細(xì)節(jié)??蚣茉诃h(huán)境層的基礎(chǔ)上,通過(guò)對(duì)構(gòu)件層的擴(kuò)展產(chǎn)生滿足用戶需求的業(yè)務(wù)應(yīng)用,如果僅僅通過(guò)對(duì)構(gòu)件層的擴(kuò)展無(wú)法滿足用戶需求,則可以進(jìn)一步通過(guò)擴(kuò)展層提供的基層開(kāi)發(fā)接口進(jìn)行再開(kāi)發(fā),這些業(yè)務(wù)應(yīng)用相互協(xié)作構(gòu)成系統(tǒng)的應(yīng)用層,所有的框架構(gòu)件和產(chǎn)生的應(yīng)用層構(gòu)件在框架集成層提供的集成機(jī)制下協(xié)同工作,生成滿足用戶特殊需要的軟件系統(tǒng)。下文將對(duì)框架的各層進(jìn)行詳細(xì)介紹。

        1)環(huán)境層該層將不同軟件系統(tǒng)對(duì)平臺(tái)的不同需求封裝起來(lái),為上層構(gòu)件提供統(tǒng)一規(guī)范的接口,使得上層構(gòu)件的開(kāi)發(fā)者不必考慮底層環(huán)境的實(shí)現(xiàn)機(jī)制,而將注意力集中在與業(yè)務(wù)相關(guān)的部分。

        2)構(gòu)件層該層是應(yīng)用層的基礎(chǔ),是產(chǎn)生用戶業(yè)務(wù)需求的來(lái)源,分為框架構(gòu)件和業(yè)務(wù)構(gòu)件兩種。框架構(gòu)件是平臺(tái)框架的基礎(chǔ)性構(gòu)件,框架構(gòu)件在集成機(jī)制的協(xié)作下構(gòu)成了平臺(tái)框架的基本功能和體系結(jié)構(gòu),并為業(yè)務(wù)構(gòu)件提供運(yùn)行時(shí)的環(huán)境。業(yè)務(wù)構(gòu)件是框架中最為關(guān)鍵的一層,是最能體現(xiàn)框架擴(kuò)展性的地方。由于基于業(yè)務(wù)基礎(chǔ)平臺(tái)的軟件開(kāi)發(fā)是在平臺(tái)的基礎(chǔ)上,對(duì)提供的業(yè)務(wù)模型及業(yè)務(wù)邏輯的集成、定制與再開(kāi)發(fā),因此框架提供的業(yè)務(wù)構(gòu)件越豐富就越能構(gòu)造出功能復(fù)雜的軟件系統(tǒng)。

        3)擴(kuò)展層如果不能提供代碼級(jí)的開(kāi)發(fā)接口,就不能算是真正意義上的業(yè)務(wù)基礎(chǔ)平臺(tái)。因此,為了更精確的實(shí)現(xiàn)用戶要求的業(yè)務(wù)需求,有時(shí)會(huì)需要對(duì)基于構(gòu)件層開(kāi)發(fā)的大粒度的業(yè)務(wù)應(yīng)用進(jìn)行更底層的代碼級(jí)的開(kāi)發(fā),為此必須為用戶提供二次開(kāi)發(fā)的接口。擴(kuò)展層提供基于各種語(yǔ)言的開(kāi)發(fā)接口,用戶可以采用自己熟知的開(kāi)發(fā)語(yǔ)言重新開(kāi)發(fā)新的業(yè)務(wù)或者對(duì)已實(shí)現(xiàn)的業(yè)務(wù)應(yīng)用進(jìn)一步定制,盡可能地做到語(yǔ)言無(wú)關(guān)。

        4)集成層約束和連接是框架的集成機(jī)制,構(gòu)成了框架的集成層。框架構(gòu)件和業(yè)務(wù)構(gòu)件只提供了單一的功能,而沒(méi)有將這些孤立的功能組合成為具有邏輯意義的業(yè)務(wù)過(guò)程,連接使得用戶和開(kāi)發(fā)者可以組合或關(guān)聯(lián)相應(yīng)的構(gòu)件生成所需的業(yè)務(wù)過(guò)程,進(jìn)而生成應(yīng)用層的各個(gè)應(yīng)用模塊。約束包括業(yè)務(wù)規(guī)則和控制流程,過(guò)程引擎根據(jù)框架定義的業(yè)務(wù)規(guī)則和控制流程調(diào)用相應(yīng)的構(gòu)件。

        5)應(yīng)用層基于業(yè)務(wù)基礎(chǔ)平臺(tái)框架的軟件開(kāi)發(fā)是在領(lǐng)域分析的基礎(chǔ)上,集成框架的業(yè)務(wù)構(gòu)件生成滿足用戶需求的業(yè)務(wù)模塊,進(jìn)而生成軟件系統(tǒng)的過(guò)程。應(yīng)用層包括開(kāi)發(fā)者生成的業(yè)務(wù)模塊和框架固有的公共模塊。

        6)軟件系統(tǒng)層該層是平臺(tái)框架的最高層次,也是用戶開(kāi)發(fā)的最終實(shí)現(xiàn)層次。用戶和開(kāi)發(fā)者在平臺(tái)框架的基礎(chǔ)上,經(jīng)過(guò)業(yè)務(wù)分析、業(yè)務(wù)建模、業(yè)務(wù)集成、應(yīng)用部署等一系列的開(kāi)發(fā)步驟,對(duì)框架提供的豐富的可復(fù)用構(gòu)件進(jìn)行修改、擴(kuò)充,最終形成滿足用戶需求的各式應(yīng)用系統(tǒng)。

        2.2 應(yīng)用層模塊的內(nèi)部結(jié)構(gòu)

        對(duì)于一個(gè)企業(yè)應(yīng)用而言,從業(yè)務(wù)表現(xiàn)的角度是由不同的功能(或應(yīng)用模塊)組合而成;從系統(tǒng)結(jié)構(gòu)的角度,為了使系統(tǒng)具有更好的可靠性、可擴(kuò)展性和可定制化,每個(gè)功能又分為展現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)層等不同的層次;從技術(shù)實(shí)現(xiàn)的角度,這些層次最終能夠運(yùn)轉(zhuǎn)起來(lái)滿足功能的要求又依賴于代碼、數(shù)據(jù)和運(yùn)行環(huán)境等軟件基本要素。實(shí)際上,一個(gè)企業(yè)應(yīng)用系統(tǒng)的應(yīng)用架構(gòu)就是通過(guò)功能、層次、軟件要素這三個(gè)相互影響的維度有機(jī)結(jié)合形成的。筆者將平臺(tái)框架應(yīng)用層的每一個(gè)功能模塊稱為一個(gè)應(yīng)用模塊,單個(gè)應(yīng)用模塊的內(nèi)部結(jié)構(gòu)如圖3所示。

        CBBF為應(yīng)用模塊提供一套體系完整的架構(gòu),從展現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)服務(wù)層到底層的數(shù)據(jù)庫(kù),按照MVC的思想嚴(yán)密組織。同時(shí),構(gòu)件層的業(yè)務(wù)構(gòu)件按要求劃分為模型類構(gòu)件、API類構(gòu)件、數(shù)據(jù)服務(wù)類構(gòu)件,分別為應(yīng)用模塊的不同層次提供相應(yīng)的服務(wù)。

        3 原型系統(tǒng)的關(guān)鍵技術(shù)與實(shí)現(xiàn)

        作為一種平臺(tái)框架,必須在滿足穩(wěn)定性的基礎(chǔ)上保證其可擴(kuò)展性,同時(shí)框架要實(shí)現(xiàn)靈活的構(gòu)件的集成和添加。為此,借鑒操作系統(tǒng)設(shè)計(jì)中提出的微內(nèi)核的思想[10],抽取一組最基本的只與框架相關(guān)而與應(yīng)用無(wú)關(guān)的核心功能(如集成層)設(shè)計(jì)為內(nèi)核引擎,而其他與應(yīng)用相關(guān)的部分(如構(gòu)件層、應(yīng)用層)作為構(gòu)件形式實(shí)現(xiàn);環(huán)境層和擴(kuò)展層所需的底層支持文件以內(nèi)核引擎可以識(shí)別的通用文件包格式提供,如環(huán)境層的各種數(shù)據(jù)庫(kù)驅(qū)動(dòng),以驅(qū)動(dòng)文件包的格式集成于框架,并由內(nèi)核調(diào)用完成各種功能。

        3.1 基于XML總線集成的內(nèi)核引擎

        內(nèi)核引擎作為框架固定不變的部分,解決了構(gòu)件集成以及運(yùn)行時(shí)構(gòu)件的協(xié)作和通信問(wèn)題。平臺(tái)框架內(nèi)核引擎的實(shí)現(xiàn)采用XML總線結(jié)構(gòu)。XML總線是一種類似計(jì)算機(jī)硬件總線的技術(shù),只要符合總線標(biāo)準(zhǔn)的軟件構(gòu)件都可以插接到XML總線上,以實(shí)現(xiàn)構(gòu)件的即插即用?;诳偩€和接口的體系結(jié)構(gòu)和系統(tǒng)具有良好的擴(kuò)展性和適應(yīng)性。基于XML總線的內(nèi)核引擎工作模型如圖4所示。

        XML總線由管理器和控制器兩個(gè)重要的部分構(gòu)成??偩€的管理器采用XML文件的方式管理集成與框架中的構(gòu)件,主要完成構(gòu)件的添加和撤除;控制器用來(lái)控制和調(diào)度總線上的各個(gè)構(gòu)件及其模塊,主要完成構(gòu)件的裝載、卸載、啟動(dòng)、掛起和停止以及接收和分發(fā)各個(gè)構(gòu)件間的通信消息。通過(guò)XML總線,內(nèi)核引擎開(kāi)放標(biāo)準(zhǔn)的接口給各個(gè)構(gòu)件發(fā)送消息,各個(gè)構(gòu)件只要遵循總線規(guī)定的消息定義標(biāo)準(zhǔn)就可以通過(guò)總線發(fā)送消息到相應(yīng)的構(gòu)件;新增構(gòu)件時(shí)只要遵循標(biāo)準(zhǔn)接口規(guī)范,在總線上進(jìn)行注冊(cè),就可以集成新的構(gòu)件到系統(tǒng)中,而不會(huì)導(dǎo)致內(nèi)核的改變。

        3.2 構(gòu)件分類及構(gòu)件模型設(shè)計(jì)

        按照分布計(jì)算體系結(jié)構(gòu)的思想,任何一個(gè)應(yīng)用軟件的構(gòu)架均可劃分為三種構(gòu)造邏輯[11,12]:a)界面表示邏輯,用于覆蓋與用戶交互的前端展現(xiàn);b)事物處理邏輯,體現(xiàn)軟件的核心處理能力;c)數(shù)據(jù)管理邏輯,用于解決用戶事務(wù)的數(shù)據(jù)交換和后端服務(wù)問(wèn)題。按照這種劃分邏輯,筆者將平臺(tái)框架中的業(yè)務(wù)構(gòu)件分為模型構(gòu)件、API構(gòu)件和數(shù)據(jù)服務(wù)構(gòu)件,分別用來(lái)處理上述的三種邏輯。這種劃分方法,本質(zhì)上仍然是三層架構(gòu)的思想,有利于保證用戶、應(yīng)用程序和數(shù)據(jù)三者之間的相互獨(dú)立性,以提高軟件的整體執(zhí)行效率和架構(gòu)重組性能,同時(shí)也保證了應(yīng)用層模塊的順利實(shí)施。

        應(yīng)用層模塊以構(gòu)件的形式插接于框架的內(nèi)核引擎之上,并有一系列的構(gòu)件層原子構(gòu)件提供功能上的支持,因此,一個(gè)應(yīng)用模塊是一組原子構(gòu)件的集合,稱之為復(fù)合構(gòu)件。為此,框架中的構(gòu)件在結(jié)構(gòu)上又分為原子構(gòu)件和復(fù)合構(gòu)件。

        為了使構(gòu)件方便的集成于框架的內(nèi)核引擎并被框架所調(diào)用,針對(duì)內(nèi)核引擎的要求,設(shè)計(jì)以下適合與本框架的構(gòu)件模型:

        〈component〉 ::= (〈component description〉,〈component specification〉,〈component implementation〉)

        〈component description〉 ::= (〈component id〉,〈component filelink〉,〈component class〉, 〈service collection〉)

        〈service〉 ::= 〈function collection provide for others〉,〈function collection request for others〉

        〈component specification〉::= (〈component interface〉,〈component structure〉)

        〈component interface〉::=〈service collection〉

        〈component structure〉::=〈atom component〉|〈compound component〉

        〈atom component〉::=〈reference of atom component implementation〉

        〈compound component〉::=〈referenced atom components declaration〉,〈member component connection〉,〈interface mapping〉

        〈interface mapping〉::=〈compound component interface-〉atom component interface〉

        3.3 構(gòu)件的組裝機(jī)制

        構(gòu)件的組裝是基于構(gòu)件的框架研究的關(guān)鍵,而且一直以來(lái)也是難點(diǎn)所在。構(gòu)件組裝的本質(zhì)是建立構(gòu)件之間的關(guān)聯(lián),根據(jù)這種關(guān)聯(lián)協(xié)調(diào)構(gòu)件的行為,將構(gòu)件組織成一個(gè)有機(jī)的整體。構(gòu)件的組裝策略有兩種,即自頂向下的組裝方法和自底向上的組裝方法。前者始于系統(tǒng)的集中模型,通過(guò)逐步求精將細(xì)節(jié)引入框架;后者對(duì)各個(gè)子系統(tǒng)單獨(dú)建模,通過(guò)協(xié)調(diào)機(jī)制建立之間的關(guān)聯(lián)。目前常用的做法是采用自底向上的方法,用面向?qū)ο蠹夹g(shù)開(kāi)發(fā)構(gòu)件,通過(guò)方法調(diào)用來(lái)連接構(gòu)件。但是研究發(fā)現(xiàn),構(gòu)件之間通過(guò)觸發(fā)方法來(lái)交互和通信,容易造成對(duì)象之間的隱式依賴[13]。

        為了消除構(gòu)件之間的依賴,使得單個(gè)構(gòu)件的修改不會(huì)影響到其他構(gòu)件功能,CBBF采用構(gòu)件+腳本的方法來(lái)協(xié)調(diào)構(gòu)件及其組織關(guān)系。構(gòu)件之間彼此獨(dú)立,直到需要組合生成復(fù)雜構(gòu)件或者集成系統(tǒng)時(shí)才產(chǎn)生交互,保證了構(gòu)件之間的獨(dú)立性。為此,CBBF提供了基于XML的構(gòu)件集成描述語(yǔ)言(component integrated description language, CIDL)用于描述復(fù)雜構(gòu)件的組裝和業(yè)務(wù)過(guò)程的集成。CIDL采用XML Schema進(jìn)行定義,元素包括應(yīng)用名、描述、版本、調(diào)用構(gòu)件集、應(yīng)用屬性集、應(yīng)用過(guò)程集等,Schema的定義如下:

        〈schema targetNamespace=\"http://www.ujs.edu.cn/biz\"

        xmlns=\"http://www.w3.org/2001/XMLSchema\"〉

        〈annotation〉

        〈documentation xml:lang=\"zh\"〉

        CIDL schema for CBBF

        〈/documentation〉

        〈/annotation〉

        〈element name=\"appName\" type=\"string\"/〉

        〈element name=\"description\" type=\"string\"/〉

        〈element name=\"appVersion\" type=\"string\"/〉

        〈complexType name=\"calledComponent\"〉

        〈sequence〉

        〈element name=\"elemName\" type=\"elemType\"/〉

        〈element name=\"funName\"type=\"comRef\"/〉

        〈/sequence〉

        〈/complexType〉

        〈/schema〉

        通過(guò)引入CIDL,實(shí)現(xiàn)對(duì)構(gòu)件的組裝,使得業(yè)務(wù)應(yīng)用與構(gòu)件實(shí)現(xiàn)相分離,提高了靈活性,同時(shí)也方便了業(yè)務(wù)應(yīng)用的定制。

        3.4 原型系統(tǒng)的實(shí)現(xiàn)和應(yīng)用測(cè)試

        基于構(gòu)件技術(shù)的業(yè)務(wù)基礎(chǔ)平臺(tái)框架原型系統(tǒng)在Eclipse平臺(tái)下采用Java技術(shù)實(shí)現(xiàn)。在內(nèi)核引擎的實(shí)現(xiàn)中采用ClassLoader和Package機(jī)制來(lái)裝載構(gòu)件,同時(shí)利用Java的反射機(jī)制動(dòng)態(tài)調(diào)用構(gòu)件類的方法。這樣保證了核心類庫(kù)不被破壞。系統(tǒng)提供XML總線的定義和解析機(jī)制,構(gòu)件的插接和構(gòu)件的描述采用XML文件定義;同時(shí)開(kāi)發(fā)大量可用于復(fù)用的構(gòu)件供應(yīng)用開(kāi)發(fā)時(shí)使用。通過(guò)對(duì)大量實(shí)際應(yīng)用的研究,開(kāi)發(fā)出若干種典型的界面模型,以及功能豐富的輔助工具,包括數(shù)據(jù)配置工具、模型配置工具、開(kāi)發(fā)擴(kuò)展工具等。在主界面中,采用上左右結(jié)構(gòu),上邊提供功能豐富的菜單和工具欄接口,左側(cè)采用樹(shù)型結(jié)構(gòu)集成用戶開(kāi)發(fā)的業(yè)務(wù)應(yīng)用;右側(cè)是開(kāi)發(fā)主界面,開(kāi)發(fā)者在此界面中實(shí)現(xiàn)對(duì)應(yīng)用的定制和開(kāi)發(fā),只需要選擇合適的模型構(gòu)件,并為模型構(gòu)件配置滿足需求的業(yè)務(wù)處理構(gòu)件和數(shù)據(jù)服務(wù)構(gòu)件來(lái)進(jìn)行應(yīng)用的開(kāi)發(fā)。

        在某市勞動(dòng)局的OA項(xiàng)目中采用基于CBBF框架的開(kāi)發(fā),將每一個(gè)業(yè)務(wù)過(guò)程抽象為復(fù)合構(gòu)件,通過(guò)XML總線集成到框架中。開(kāi)發(fā)中,項(xiàng)目的大部分交互界面和業(yè)務(wù)邏輯均可通過(guò)框架中內(nèi)置的界面構(gòu)件和基礎(chǔ)構(gòu)件實(shí)現(xiàn),只有少部分的特殊應(yīng)用需二次編碼。實(shí)踐表明,基于CBBF的開(kāi)發(fā),可以大大減少代碼開(kāi)發(fā)的工作量,極大提高開(kāi)發(fā)效率,開(kāi)發(fā)流程清晰有序,軟件的可控性和可操作性大大增加,對(duì)于需求變更也可極快地適應(yīng)。

        4 結(jié)束語(yǔ)

        業(yè)務(wù)基礎(chǔ)平臺(tái)作為一種全新的開(kāi)發(fā)理念,可以實(shí)現(xiàn)大規(guī)模的基于復(fù)用的開(kāi)發(fā),從根本上提高軟件開(kāi)發(fā)的效率,被認(rèn)為是解決軟件危機(jī)的一種有效途徑,越來(lái)越受到科研以及商業(yè)運(yùn)用的青睞。但是,目前關(guān)于這一領(lǐng)域的研究卻處在起步階段。本文提出和實(shí)現(xiàn)的基于構(gòu)件和總線集成的業(yè)務(wù)基礎(chǔ)平臺(tái)框架,對(duì)業(yè)務(wù)基礎(chǔ)平臺(tái)的研究具有一定的探索意義。本文的研究中,提出了基于業(yè)務(wù)基礎(chǔ)平臺(tái)的開(kāi)發(fā)模式,構(gòu)造出了基于構(gòu)件技術(shù)的業(yè)務(wù)基礎(chǔ)平臺(tái)框架元模型,設(shè)計(jì)了框架的體系結(jié)構(gòu),采用了基于XML總線的內(nèi)核引擎的實(shí)現(xiàn)方法,最終完成了一種業(yè)務(wù)基礎(chǔ)平臺(tái)的研究過(guò)程?;跇?gòu)件技術(shù)的業(yè)務(wù)基礎(chǔ)平臺(tái)中的工作流是下一步研究的重點(diǎn)。

        參考文獻(xiàn):

        [1]EHRIG H, OREJAS F, BRAATZ B, et al. A component framework based on high-level replacement systems [J]. Electronic Notes in Theoretical Computer Science, 2003, 72(3): 118-132.

        [2]劉瑜,張世琨,王立福,等.基于構(gòu)件的軟件框架與角色擴(kuò)展形態(tài)研究[J].軟件學(xué)報(bào),2003,14(08): 1364-1370.

        [3]SCHEBENU. Hierarchical composition of industrial components[J]. Science of Computer Programming, 2005, 56(1-2): 117-139.

        [4]黃顯,王千祥,曹東剛,等. PKUAS:一種面向領(lǐng)域的構(gòu)件運(yùn)行支撐平臺(tái)[J].電子學(xué)報(bào),2002,30(12A): 1938-1942.

        [5]WEBER M, WEISBROD J. Requirements engineering in automotive development: experiences and challenges[J]. IEEE Software, 2003, 120(1):162-241.

        [6]RAMZAN S, IKRAM N. Making decision in requirement change mana-gement[C]//Proc of the 1st International Conference on Information and Communication Technologies. [S.l.]: IEEE Press, 2005:309-312.

        [7]WEN Lian, DROMEY R G. From requirements change to design change: a formal path[C]//Proc of the 2nd International Conference on Software Engineering and Formal Methods. Washington DC: IEEE Computer Society, 2004: 104-113.

        [8]PERRYD E. Software engineering and software architecture[C]//Proc of the International Conference on Software: Theory and Practice. Beijing: Electronic Industry Press, 2000:1-4.

        [9]孫昌愛(ài),金茂忠,劉超.軟件體系結(jié)構(gòu)研究綜述[J].軟件學(xué)報(bào),2003,13(7):1228-1237.

        [10]TANENBAUM S A, WOODHULL A S. Operating systems: design and implementation[M].2nd ed. New Jersey: Prentice Hall, 1997.

        [11]劉曉銘,劉積仁,李華天.構(gòu)件化領(lǐng)域框架設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)研究與發(fā)展, 1999, 36(2):166-169.

        [12]萬(wàn)麟瑞,胡宏,孫紅星.面向構(gòu)件的軟件開(kāi)發(fā)方法學(xué)研究[J].小型微型計(jì)算機(jī)系統(tǒng), 2003,24(3):365-370.

        [13]WANG G J, UNGER L, KLAWOTTER D. Component assembly for OO distributed systems[J]. IEEE Computer, 1999, 32(7):71-78.

        99久久精品人妻一区二区三区| 99精品国产在热久久国产乱| 中文精品久久久久中文 | 日本女同av在线播放| 免费午夜爽爽爽www视频十八禁 | 亚洲欧美成人一区二区在线电影| 午夜tv视频免费国产区4| 黑丝国产精品一区二区| 新中文字幕一区二区三区| 女人让男人桶爽30分钟| 日韩乱码视频| 亚洲天堂色婷婷一区二区| 丰满少妇按摩被扣逼高潮| 午夜内射中出视频| 国产精品一区二区韩国AV| 成人激情视频一区二区三区| 天堂网av一区二区三区在线观看| 久久99久久99精品中文字幕| 国产精品欧美久久久久老妞| 日本小视频一区二区三区| 亚洲国产婷婷香蕉久久久久久| 少妇高清精品毛片在线视频| 国产精品深夜福利免费观看| 大香蕉视频在线青青草| 国产午夜精品av一区二区麻豆| 国产熟妇搡bbbb搡bbbb搡| 日本精品极品视频在线| 国产三级黄色免费网站| 国产亚洲日本精品无码| 亚洲AV秘 无码一区二区三区1 | 手机在线看片国产人妻| 色www视频永久免费| 亚洲国产夜色在线观看| 北岛玲亚洲一区二区三区| 亚洲人成网站18禁止| 国产zzjjzzjj视频全免费| 18禁国产美女白浆在线| 91精品国产一区国产二区久久| 三年在线观看免费大全下载| 亚洲国产一区二区三区最新| 人妻在线有码中文字幕|