欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于借助中心xml配置文件生成分布式j(luò)ava應(yīng)用的方法和裝置的制作方法

文檔序號:6417364閱讀:207來源:國知局
專利名稱:用于借助中心xml配置文件生成分布式j(luò)ava應(yīng)用的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及多等級或多級環(huán)境中的分布式應(yīng)用的生成,最好在數(shù)據(jù)庫方面。它還涉及面向?qū)ο蟮姆植际絁AVA應(yīng)用的生成。
分布式應(yīng)用是典型客戶機(jī)-服務(wù)器應(yīng)用的進(jìn)一步的開發(fā)版本。也稱作n等級或多等級應(yīng)用的這種分布式架構(gòu)的主要優(yōu)點(diǎn)是單獨(dú)層(等級)的清楚分離。這些等級一般由用于保存持久數(shù)據(jù)的數(shù)據(jù)庫服務(wù)器、用于執(zhí)行對象邏輯或商業(yè)邏輯的應(yīng)用服務(wù)器、用于準(zhǔn)備演示的WEB服務(wù)器以及用于向用戶演示和用戶交互的客戶機(jī)應(yīng)用組成。
這種架構(gòu)描述美國專利5212787中。該文獻(xiàn)揭示了用于訪問面向?qū)ο蟮沫h(huán)境之外的關(guān)系數(shù)據(jù)庫而不用退出該環(huán)境的方法。對關(guān)系數(shù)據(jù)庫的該訪問是通過轉(zhuǎn)換器應(yīng)用執(zhí)行的,該轉(zhuǎn)換器用于提供面向?qū)ο蟮沫h(huán)境和關(guān)系數(shù)據(jù)庫之間的應(yīng)用協(xié)議界面。
這種架構(gòu)的有關(guān)問題是增加了應(yīng)用開發(fā)者必須應(yīng)對的復(fù)雜性。在典型的客戶機(jī)-服務(wù)器應(yīng)用的開發(fā)過程中,開發(fā)者具有圖形開發(fā)工具并直接訪問數(shù)據(jù)庫數(shù)據(jù)。這簡化了過程,因?yàn)殚_發(fā)者僅必須應(yīng)對兩個(gè)層而非3個(gè)或更多。
在n等級分布式應(yīng)用的開發(fā)期間的許多情況中,要實(shí)施幾種客戶機(jī)應(yīng)用。典型的一種應(yīng)用是具有圖形用戶界面(GUI)的完整(fully-fledged)JAVA客戶機(jī)且另一種是基于光滑WEB瀏覽器的應(yīng)用。處理的數(shù)據(jù)必須發(fā)送到WEB或應(yīng)用服務(wù)器。當(dāng)數(shù)據(jù)已發(fā)送到WEB服務(wù)器時(shí),它們必須被處理-轉(zhuǎn)換,用于應(yīng)用服務(wù)器。隨后,應(yīng)用服務(wù)器執(zhí)行對象邏輯或商業(yè)邏輯并創(chuàng)建語句來詢問數(shù)據(jù)庫。由于架構(gòu)相當(dāng)復(fù)雜,應(yīng)用開發(fā)者常被迷惑和失敗。
因此,期望一種方法和裝置用于簡化多等級環(huán)境中所有等級中的應(yīng)用生成。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種方法以生成多等級環(huán)境中的所有等級中的應(yīng)用。該方法包括訪問綜合配置代碼,它包括每個(gè)所述級中生成應(yīng)用所需的所有信息的代碼片段。所述信息包括數(shù)據(jù)、命令、定義、布置等。例如可以通過接收、檢索、借助用戶輸入生成以及重新操作之前存儲的綜合配置代碼來實(shí)現(xiàn)訪問。在配置代碼中,隨后分析所述多級環(huán)境的至少一個(gè)級中的至少一個(gè)應(yīng)用所需的所有片段。為所述至少一個(gè)級提取分析的代碼片段,并將其轉(zhuǎn)換或轉(zhuǎn)化為每個(gè)級的級專用應(yīng)用代碼。
在本發(fā)明的實(shí)例性實(shí)施例中,該方法進(jìn)一步包括識別所述綜合配置代碼中所述多級環(huán)境的至少一個(gè)級所需的所有代碼片段。
在另一個(gè)實(shí)施例中,所述級專用應(yīng)用代碼是JAVA代碼。Java代碼可以編程應(yīng)用而不依賴實(shí)際使用的硬件,提供可以在等級中的幾乎所有服務(wù)器-、中間件或客戶機(jī)裝置上運(yùn)行的應(yīng)用。因此,所生成的應(yīng)用不需要可得應(yīng)用程序界面的附加信息或?yàn)槠渖稍搼?yīng)用裝置的其它專有特點(diǎn)。因此,綜合配置代碼可節(jié)省所有的裝置或平臺專用信息。
該方法的另一個(gè)實(shí)例性實(shí)施例還包括將所述級專用應(yīng)用發(fā)送或發(fā)出到所述多級環(huán)境中的裝置中。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于生成綜合配置代碼的方法。綜合配置代碼的生成包括接收數(shù)據(jù)庫的數(shù)據(jù)庫表的至少一個(gè)表示。所述至少一個(gè)表示限定諸如數(shù)據(jù)庫中的商業(yè)對象的對象。例如,這可通過用戶輸入等進(jìn)行。此后,在存儲所述表的數(shù)據(jù)庫中檢索所述至少一個(gè)表示所代表的至少一個(gè)數(shù)據(jù)庫表的所有元信息。元信息包括內(nèi)容信息和有關(guān)附加信息,諸如所述至少一個(gè)數(shù)據(jù)庫表的屬性和關(guān)系。元信息可包括有關(guān)數(shù)據(jù)庫表與其它(甚至未列出)數(shù)據(jù)庫表的關(guān)系的信息。表和元信息用于生成綜合配置代碼。綜合配置代碼包括用于從所述數(shù)據(jù)庫檢索的所有元信息的代碼片段,其需要用它們生成每個(gè)所述等級中的應(yīng)用。配置文件包括將表的所述表示限定的所述對象映射到所述配置文件所需的所有信息。配置文件可被處理或修改以改變和變化所述對象的關(guān)系和內(nèi)容。完整配置文件限定所述對象及其掩碼,包括對象邏輯(例如,商業(yè)邏輯),如確認(rèn)、相似諸如格式、不同等級之間的通信以及數(shù)據(jù)庫上的存儲。不能從數(shù)據(jù)庫派生出的配置文件的所述部件必須從其它之前生成的配置文件、從庫或經(jīng)由用戶輸入而生成。
在一實(shí)例性實(shí)施例中,所述綜合配置代碼是XML(可擴(kuò)展標(biāo)記語言)文件。通過使用XML文件,可獨(dú)立于實(shí)際使用的裝置生成和處理該配置代碼。另一個(gè)優(yōu)點(diǎn)在于XML提供便于使用的可移植數(shù)據(jù)和代碼格式。完整配置XML文件能編碼數(shù)據(jù),諸如對象和數(shù)據(jù)對象的內(nèi)容以及所述數(shù)據(jù)和數(shù)據(jù)對象的顯示的程序部分和配置。
本發(fā)明允許開發(fā)者將所有方面維持一處并生成一實(shí)現(xiàn)。開發(fā)者可創(chuàng)建骨架多等級應(yīng)用而不用編程努力,因?yàn)橥暾渲梦募亲詣由傻?。開發(fā)者可通過由XML配置文件提供的生成骨架專心于應(yīng)用專用實(shí)現(xiàn)的特定行為。
本發(fā)明之后的要點(diǎn)包括例如商業(yè)對象的所有對象可映射到數(shù)據(jù)庫表。因此,可以在配置文件中描述該映射。根據(jù)本發(fā)明的一個(gè)方面,這是通過使用生成器實(shí)現(xiàn)的,該生成器將一個(gè)或多個(gè)數(shù)據(jù)庫表作為變元并通過從指定表的數(shù)據(jù)庫中讀取元信息創(chuàng)建基配置文件。
配置文件還可用于配置對象的顯示。換句話說,可指定如何格式化屬性的值、如何使該值生效、GUI部件具有什么視覺形式和尺寸(Textfield、Checkbox、Dropdown、Menu...)。此外,可以指定標(biāo)簽和配置文件中的其它方面而不實(shí)際用JAVA編程。全部信息描述一實(shí)體,它事實(shí)上是解散或分解對象的藍(lán)圖。
本發(fā)明使用以下技術(shù)JAVA,XML和JSP(Struts)。Java是面向?qū)ο笄要?dú)立于平臺的編程語言,用于生成應(yīng)用程序。SWING是圖形用戶界面類庫,諸如用于在Java環(huán)境中生成用戶界面的ATW,代替使用SWING,類似于ATW的任何其它標(biāo)準(zhǔn)GUI庫也可用于生成應(yīng)用程序的GUI。JDBC(Java數(shù)據(jù)庫連接)是用于關(guān)系數(shù)據(jù)庫中使用的SQL(結(jié)構(gòu)化查詢語言)命令執(zhí)行的Java-API(應(yīng)用程序界面)。JDBC可用于具有對SQL數(shù)據(jù)庫的直接訪問的所有應(yīng)用中。XML(可擴(kuò)展標(biāo)記語言)用于配置文件。XML的擴(kuò)展性使其存儲數(shù)據(jù)且XML提供分析程序、DTD(文檔類型定義)以便將XML文件轉(zhuǎn)換成JAVA應(yīng)用程序。JAVA服務(wù)器頁面(JSP)用于生成用于因特網(wǎng)的GUI和HTML應(yīng)用程序。JSP例如可用STRUTS生成,它是利用預(yù)存的設(shè)計(jì)模式幫助JSP應(yīng)用程序開發(fā)的開放源框架。
當(dāng)開發(fā)者最終為實(shí)體指定所有的需要信息時(shí),可生成必要的代碼文件。
每個(gè)實(shí)體所生成的文件是1.Java Class Source files(Java類源文件)·Swing Panel(Swing面板)·Swing Table(Swing表)·Client Object(客戶機(jī)對象)·Server Object(服務(wù)器對象)·Data object of the Object Logic(對象邏輯的數(shù)據(jù)對象)
·Struts Action(Struts動作)·Struts Form(Struts形式)2.JSP(Java服務(wù)器頁面)頁面·Presentation of the Object(對象的顯示)根據(jù)本發(fā)明的另一個(gè)方面,提供了軟件工具它包括程序代碼裝置用于在計(jì)算機(jī)或網(wǎng)絡(luò)裝置上運(yùn)行所述程序產(chǎn)品時(shí)實(shí)施以上描述的方法。
根據(jù)本發(fā)明的另一個(gè)方面,提供了可從服務(wù)器下載用于實(shí)施以上描述的方法的計(jì)算機(jī)程序產(chǎn)品,它包括用于在計(jì)算機(jī)或網(wǎng)絡(luò)裝置上運(yùn)行所述程序時(shí)執(zhí)行以上描述的所有步驟的程序代碼裝置。
根據(jù)本發(fā)明的另一個(gè)方面,提供了計(jì)算機(jī)程序產(chǎn)品,它包括計(jì)算機(jī)可讀介質(zhì)上存儲的程序代碼裝置,用于在計(jì)算機(jī)或網(wǎng)絡(luò)裝置上運(yùn)行所述程序產(chǎn)品時(shí)實(shí)施以上描述的方法。
根據(jù)本發(fā)明的再一個(gè)方面,本發(fā)明提供了計(jì)算機(jī)裝置,用于在多等級環(huán)境中為每個(gè)級生成分布式應(yīng)用程序。計(jì)算機(jī)裝置包括接收模塊、控制器、用戶界面和網(wǎng)絡(luò)模塊。接收模塊需要用于接收包含用于多級環(huán)境的不同級的代碼部分的綜合配置代碼??刂破鬟B接到所述接收模塊,并被配置用于分析、識別、提取和轉(zhuǎn)換所述綜合配置代碼的代碼部分成為所述環(huán)境中每個(gè)等級的級專用應(yīng)用代碼。用戶界面連接到所述控制器,以擴(kuò)展和修改所述綜合配置代碼。網(wǎng)絡(luò)模塊連接到所述控制器,以便將所述生成的級專用應(yīng)用代碼傳遞到網(wǎng)絡(luò)中的其它裝置。
以下將通過參考附圖詳細(xì)描述本發(fā)明,其中

圖1是描述多等級環(huán)境的框圖;圖2是描述XML配置文件的生成實(shí)例的框圖;圖3是用于數(shù)據(jù)庫信息到XML文件的映射的簡單實(shí)例;圖4是XML實(shí)體配置文件的實(shí)例;圖5是XML特性配置文件的實(shí)例;圖6是XML關(guān)系配置文件的實(shí)例;圖7是描述多等級環(huán)境形式XML配置文件中應(yīng)用程序生成實(shí)例的框圖;圖8是商業(yè)對象的Swing屏幕實(shí)現(xiàn)的實(shí)例;
圖9是表的Swing表實(shí)現(xiàn)的實(shí)例;圖10是與商業(yè)對象的交互的確認(rèn)和通知的實(shí)現(xiàn)實(shí)例;圖11是保持商業(yè)對象的數(shù)據(jù)的實(shí)現(xiàn)實(shí)例;圖12是執(zhí)行商業(yè)對象的服務(wù)器側(cè)商業(yè)邏輯的鉤(hook)的實(shí)現(xiàn)實(shí)例;圖13是描述圖形用戶界面和數(shù)據(jù)之間的綁定實(shí)例的框圖;圖14到17描述了客戶機(jī)和服務(wù)器之間數(shù)據(jù)對象的同步過程的實(shí)例;圖18到22是前述生成過程中使用的代碼的不同屬性的屬性實(shí)例。
在其它情況中,將省去已知方法、界面、裝置和信令技術(shù)的詳細(xì)描述以不使描述含糊。
圖1是描述典型的多等級環(huán)境架構(gòu)的概觀的框圖。分布式應(yīng)用是典型的客戶機(jī)-服務(wù)器應(yīng)用的進(jìn)一步的開發(fā)版本。也被稱作n等級或多等級應(yīng)用的這種分布式架構(gòu)的主要優(yōu)點(diǎn)是單獨(dú)層(等級)的清楚分離。所描述的多級或多等級環(huán)境由數(shù)據(jù)庫服務(wù)器2、應(yīng)用服務(wù)器4、客戶機(jī)應(yīng)用6、網(wǎng)絡(luò)服務(wù)器8和HTML(超文本標(biāo)示語言)客戶機(jī)10組成。數(shù)據(jù)庫服務(wù)器2表示多等級環(huán)境的第一或最低等級。數(shù)據(jù)庫服務(wù)器2用于維持持久數(shù)據(jù),并以表、項(xiàng)、屬性、關(guān)系和其它元信息的形式物理地存儲數(shù)據(jù)庫的數(shù)據(jù)。數(shù)據(jù)庫服務(wù)器使用數(shù)據(jù)庫服務(wù)器應(yīng)用來檢索物理存儲的數(shù)據(jù)并與應(yīng)用服務(wù)器4交換數(shù)據(jù)。
應(yīng)用服務(wù)器4形成環(huán)境的第二等級。應(yīng)用服務(wù)器4分別形成數(shù)據(jù)庫服務(wù)器2和客戶機(jī)應(yīng)用6以及網(wǎng)絡(luò)服務(wù)器8之間的鏈路。應(yīng)用服務(wù)器4用于執(zhí)行對象邏輯或商業(yè)邏輯并根據(jù)從客戶機(jī)6和網(wǎng)絡(luò)服務(wù)器8接收到的請求生成詢問以詢問數(shù)據(jù)庫服務(wù)器2中存儲的數(shù)據(jù)。請求可包括讀出操作以便檢索數(shù)據(jù)庫中存儲的信息或者包括寫入操作以便改變數(shù)據(jù)庫的內(nèi)容。為了執(zhí)行讀出操作,應(yīng)用服務(wù)器4包括詢問構(gòu)造器應(yīng)用和數(shù)據(jù)對象更新器以便執(zhí)行與從客戶機(jī)6或網(wǎng)絡(luò)服務(wù)器8接收到的請求相對應(yīng)的寫操作。為了執(zhí)行通信和處理數(shù)據(jù)庫服務(wù)器2、網(wǎng)絡(luò)服務(wù)器8和客戶機(jī)6之間的不同協(xié)議,應(yīng)用服務(wù)器4使用應(yīng)用服務(wù)器應(yīng)用。
客戶機(jī)6連接到應(yīng)用服務(wù)器4以便將數(shù)據(jù)對象請求發(fā)送到數(shù)據(jù)庫服務(wù)器2并更新數(shù)據(jù)庫服務(wù)器2中的數(shù)據(jù)對象。客戶機(jī)6形成第三等級??蛻魴C(jī)6包括用于演示和用戶交互的圖形用戶界面(GUI)以簡化數(shù)據(jù)庫訪問。通過用戶終端上運(yùn)行的客戶機(jī)應(yīng)用執(zhí)行GUI和與應(yīng)用服務(wù)器4的數(shù)據(jù)交換。
網(wǎng)絡(luò)服務(wù)器8連接到應(yīng)用服務(wù)器4以便在數(shù)據(jù)庫服務(wù)器2和HTML客戶機(jī)10之間交換數(shù)據(jù)對象請求和數(shù)據(jù)對象。網(wǎng)絡(luò)服務(wù)器8用于準(zhǔn)備演示并形成該環(huán)境中的第四等級。網(wǎng)絡(luò)服務(wù)器8包括數(shù)據(jù)對象更新器和數(shù)據(jù)請求執(zhí)行器以解釋不同協(xié)議并在HTML客戶機(jī)10和應(yīng)用服務(wù)器4之間傳遞請求。數(shù)據(jù)交換和解釋通過網(wǎng)絡(luò)服務(wù)器執(zhí)行。
HTML客戶機(jī)10連接到網(wǎng)絡(luò)服務(wù)器8以通過網(wǎng)絡(luò)交換數(shù)據(jù)并提供數(shù)據(jù)庫訪問。HTML客戶機(jī)10形成該環(huán)境中的第五等級。HTML客戶機(jī)10將從網(wǎng)絡(luò)服務(wù)器8接收的HTML代碼轉(zhuǎn)換成網(wǎng)頁,作為用于演示和用戶交互的圖形用戶界面。網(wǎng)頁必須被定義為HTML圖形應(yīng)用。
為了提供所有這些應(yīng)用,必須生成數(shù)據(jù)庫服務(wù)器應(yīng)用、應(yīng)用服務(wù)器應(yīng)用、客戶機(jī)應(yīng)用、網(wǎng)絡(luò)服務(wù)器應(yīng)用和HTML圖形應(yīng)用。應(yīng)用開發(fā)者必須應(yīng)對高復(fù)雜性的問題。
在n等級分布應(yīng)用的開發(fā)中的許多情況中,必須實(shí)現(xiàn)幾種客戶機(jī)應(yīng)用。通常,一種應(yīng)用是具有GUI的完整JAVA客戶機(jī)(客戶機(jī)6)而另一個(gè)是基于光滑(slick)網(wǎng)絡(luò)瀏覽器應(yīng)用(網(wǎng)絡(luò)服務(wù)器8)。要處理的數(shù)據(jù)必須被發(fā)送到網(wǎng)絡(luò)8-或應(yīng)用服務(wù)器4。當(dāng)數(shù)據(jù)已被發(fā)送到網(wǎng)絡(luò)服務(wù)器8時(shí),它們必須被處理-為應(yīng)用服務(wù)器4轉(zhuǎn)換。隨后,應(yīng)用服務(wù)器4執(zhí)行對象邏輯或商業(yè)邏輯并創(chuàng)建語句來詢問數(shù)據(jù)庫服務(wù)器2。由于該架構(gòu)相當(dāng)復(fù)雜,甚至很小的錯(cuò)誤也會引起不同等級之間交互的故障。
圖2是框圖,描述了XML配置文件26的生成實(shí)例。該方法基本包括兩個(gè)以上或以下的獨(dú)立子元素,形成完全綜合配置代碼的應(yīng)用生成,以及借助數(shù)據(jù)庫的元信息和應(yīng)用特定要求的配置代碼生成。后者在圖2中描述。這兩個(gè)子方法都有助于簡化多等級環(huán)境中的應(yīng)用生成。
為了生成完全綜合配置文件26用于生成分布JAVA應(yīng)用以與具有至少一服務(wù)器等級和一客戶機(jī)等級的多等級環(huán)境中的數(shù)據(jù)庫相互作用,對象或商業(yè)對象的屬性必須固定。在關(guān)系數(shù)據(jù)庫中,確定包含所需信息的表20可以這么作。在已確定包含有關(guān)信息的表20的情況中,可以從包含該信息的數(shù)據(jù)庫24中檢索表之間的各關(guān)系。如果要生成的應(yīng)用被設(shè)計(jì)成訪問數(shù)據(jù)庫的現(xiàn)有表,確定所需的表,例如在表20的列表中就足夠。諸如數(shù)據(jù)結(jié)構(gòu)的附加信息也可從數(shù)據(jù)庫24中檢索。或者,可確定僅單個(gè)表元素和各關(guān)系,以生成例如用于應(yīng)用的示范版本。
基于表和元信息,配置文件可被生成22。配置文件26可生成為包含用于所需應(yīng)用的所有信息的XML配置文件。從而,數(shù)據(jù)庫表的選擇或這些表的表示以及限定數(shù)據(jù)庫或商業(yè)對象的各關(guān)系可被映射到配置文件。根據(jù)期望的或所需的等級數(shù)量的附加信息也可在配置文件的生成之前確定。
基本想法是限定完整文件中的所有屬性,并用生成環(huán)境的所有等級中的應(yīng)用所必需的所有信息生成單個(gè)組合。從而不僅限定單個(gè)應(yīng)用所必需的單個(gè)屬性,而且在單個(gè)文件中集成了單個(gè)等級的全部結(jié)構(gòu)。基本上,該想法可與通過首先生成一圖畫并僅從其切割所需的塊的七巧板單個(gè)部分的生成相比,其中保證從相同圖畫切下的所有部分都可被裝配,而非分別生成單個(gè)部分但希望在某處有其它部分相配。
在將表名20列表傳遞到實(shí)體生成器22時(shí),生成器22用從數(shù)據(jù)庫24檢索的信息創(chuàng)建缺省配置文件26(entities.xml)。為了生成完整配置文件,應(yīng)用使用XML技術(shù),諸如分析程序和DTD(文檔類型定義)。
圖3描述了數(shù)據(jù)庫表到XML文件的映射的簡單實(shí)例。該生成可體現(xiàn)為將具有其結(jié)構(gòu)和內(nèi)容的例如ODBC-或ORACLE或Trans-Base-數(shù)據(jù)庫轉(zhuǎn)換成XML文件的轉(zhuǎn)換器從簡單數(shù)據(jù)庫表30開始,表的實(shí)體被映射到XML配置文件30。該實(shí)例僅描述了表的結(jié)構(gòu)和內(nèi)容而沒有描述單個(gè)元素之間的任何關(guān)系。應(yīng)注意,本實(shí)例不限于價(jià)格表,且可應(yīng)用于任何類型的表內(nèi)容,諸如部分表等等。該實(shí)例僅用于提供如何實(shí)現(xiàn)完整文件生成器的一個(gè)方面的想法。根據(jù)XML設(shè)計(jì)規(guī)則,表名列表形成XML文件部分的開始<price list>和結(jié)束</price list>。其它屬性也形成具有關(guān)于列表內(nèi)容的附加信息的子元素。由于表中相對較少量的元素,表和所選表元素之間的映射函數(shù)應(yīng)清晰,并提供如何實(shí)施配置文件生成器的足夠指示。生成器的準(zhǔn)確實(shí)施取決于所使用的數(shù)據(jù)庫結(jié)構(gòu)、所使用操作系統(tǒng)以及用于實(shí)現(xiàn)生成器的計(jì)算機(jī)語言。
圖4是完整配置文件的XML實(shí)體配置文件部分的實(shí)例。實(shí)體用于限定相同類型的對象或商業(yè)對象。實(shí)體配置文件(entities.xml)包括XML標(biāo)記<entity以使以下文本的意思與實(shí)體有關(guān)。
不關(guān)閉標(biāo)記以表示所描述的選擇僅僅是實(shí)例性的且不限于所描述的文本。在圍起的部分中,列表定義實(shí)體屬性,其限定了對象的名字、標(biāo)簽和注釋。通過布爾類別名、文檔類別名、條件可能條件錯(cuò)誤、標(biāo)記的主要鍵和唯一鍵進(jìn)一步定義實(shí)體。
圖5是XML特性配置文件的實(shí)例。特性限定對象或商業(yè)對象的屬性。如圖3和4中的描述,文件節(jié)以XML標(biāo)記50<attributes>開始,該標(biāo)記將以下文本識別為特性。第一特性使標(biāo)簽“Deal id”與名稱“DEALID”有關(guān)。以下,限定實(shí)體的類別名、格式和實(shí)體最大位數(shù)。下一個(gè)特性標(biāo)記限定實(shí)體“inspection date(檢查日期)”的特性。
圖6是XML關(guān)系配置文件的實(shí)例。XML標(biāo)記60<relation>指定的關(guān)系表示在存儲或加載對象或商業(yè)對象時(shí)的連接。圖中,含名稱“dealcontract”的實(shí)體“CONTRACT”被分配給父母特性“DEALID”。類似地,含名稱“dealpartner”的實(shí)體“PARTNER”被分配給父母特性“DEALID”。其它特性類型是描述符、標(biāo)識符、任選描述符且也可以限定或固定其它功能性。
可從數(shù)據(jù)庫中存儲的元信息中提取實(shí)體、特性和關(guān)系。配置文件本身可自動生成,如果只確定數(shù)據(jù)庫表,并從數(shù)據(jù)庫中檢索各元信息。
圖7是框圖,描述多等級環(huán)境中的應(yīng)用生成形式XML配置文件的實(shí)例。如圖2所討論的,該方法基本包括兩個(gè)以上或以下的獨(dú)立子元素,形成完全綜合配置代碼的應(yīng)用生成,以及借助數(shù)據(jù)庫的元信息和應(yīng)用專用要求的配置代碼生成。前者方法在圖7中描述。
采用XML配置文件70中定義的實(shí)體和特性以及關(guān)系信息,框架生成71基類別,用于多等級環(huán)境的所有等級中的應(yīng)用。在客戶機(jī)側(cè)72上,生成用于對象或商業(yè)對象73以及用于屏幕和表75的應(yīng)用。在服務(wù)器側(cè)73上,生成用于對象或商業(yè)對象77以及用于實(shí)體管理器存儲78的應(yīng)用。生成器71還生成用于數(shù)據(jù)對象76的中間件應(yīng)用。
應(yīng)用的生成可使用JAXB(用于XML捆綁的Java架構(gòu))的擴(kuò)展版本,以將XML元素映射到Java編程語言中的類。標(biāo)準(zhǔn)JAXB不能識別每個(gè)等級中的單個(gè)應(yīng)用所必需的XML文件中的有關(guān)片段。因此,在Java應(yīng)用的生成之前,必需提供附加元件或工具來分析、識別和提取XML文件中的有關(guān)代碼片段。
基本想法是生成具有在環(huán)境的所有等級中生成應(yīng)用所必需的所有信息的單個(gè)組合?;旧希梢詫⒃撓敕ㄅc通過首先生成一圖畫并將其切成碎片的七巧板生成相比,其中保證所有部分是適配的,而非分開生成每個(gè)部分并期望它們能相配。
圖8是商業(yè)對象的Swing屏幕實(shí)現(xiàn)的實(shí)例。Swing屏幕實(shí)現(xiàn)被提供作為實(shí)例性的格子袋布局(gridbag layout),將含數(shù)據(jù)的可視組件綁定到相應(yīng)的對象或商業(yè)對象。SWING是圖形用戶界面類庫,諸如用于生成用戶界面的ATW,可以將類似于ATW的任何其它的標(biāo)準(zhǔn)GUI庫用于生成應(yīng)用的GUI而取代使用SWING??蛻魴C(jī)解釋所描述的Swing屏幕以顯示用戶輸入的保護(hù)空白并檢索對象標(biāo)識(dealid)的輸入上的輸入之后對象交易的創(chuàng)始日期。Swing屏幕實(shí)例的所有描述的代碼片段都可直接從XML配置文件生成。
圖9是作為Swing表代碼的數(shù)據(jù)庫表的實(shí)現(xiàn)的實(shí)例。采用缺省描繪器和編輯器,欄被定義為(不)可分類的、可編輯的、(不)可調(diào)節(jié)大小的、優(yōu)選-最小-最大字符數(shù)等等。Swing表實(shí)例的所有描述的代碼片段可從XML配置文件直接生成。
圖10是與對象或商業(yè)對象的交互作用的確認(rèn)和通知的實(shí)現(xiàn)實(shí)例。如果對象或商業(yè)對象已改變,則客戶機(jī)側(cè)確認(rèn)對象或商業(yè)對象,通知寄存器收聽器。
圖11是用于保持對象或商業(yè)對象的數(shù)據(jù)的實(shí)現(xiàn)實(shí)例。如被修改,將用于保持對象或商業(yè)對象的數(shù)據(jù)的數(shù)據(jù)對象發(fā)送到服務(wù)器。Swing實(shí)現(xiàn)具有某些幫助方法,類似于“isModified()”。圖12是執(zhí)行對象或商業(yè)對象的服務(wù)器側(cè)對象邏輯或商業(yè)邏輯的鉤的實(shí)現(xiàn)實(shí)例。它通過統(tǒng)計(jì)方法提供,而沒有任何狀態(tài)。
圖13是框圖,描述了圖形用戶界面和數(shù)據(jù)之間的綁定實(shí)例。框圖顯示對象或商業(yè)對象的數(shù)據(jù)如何與顯示層交互。這是利用MVC(模型、視圖、控制器)模式進(jìn)行的,它在面板生成時(shí)由代碼發(fā)生器實(shí)現(xiàn)。
所描述的圖形用戶界面(GUI)130包括用于接收用戶輸入和顯示數(shù)據(jù)的不同部件。每個(gè)輸入部件都由適配器132登記到各收聽器。在GUI130的接收部件的用戶輸入的情況中,適配器從該部件獲得值并將其委托給對象或商業(yè)對象134。對象134瀏覽所有其登記的收聽器以執(zhí)行改變事件。改變事件由適配器控制器136接收,其接著根據(jù)屬性控制部件以便在GUI130中顯示格式化值,其中屬性綁定到控制。
圖14到17描述了客戶機(jī)和服務(wù)器之間數(shù)據(jù)對象的同步過程的實(shí)例。
圖14描述了對象140,其中數(shù)據(jù)對象由客戶機(jī)改變。客戶機(jī)應(yīng)用從對象140提取改變的或修改的數(shù)據(jù)對象142并將所提取的修改的數(shù)據(jù)對象142發(fā)送到服務(wù)器。
圖15描述了在修改的數(shù)據(jù)對象接收時(shí)服務(wù)器的反應(yīng)。每個(gè)接收到的修改數(shù)據(jù)對象150首先分配(151)給數(shù)據(jù)庫表155,以確認(rèn)數(shù)據(jù)對象是否是可分配的,數(shù)據(jù)對象的值已改變。隨后,執(zhí)行更新動作152,所述更新動作包括存儲中和表155中的永久數(shù)據(jù)的更新152。為了確認(rèn)該更新,改變數(shù)據(jù)是來自存儲中的讀出154,且更新的數(shù)據(jù)對象被返回給客戶機(jī)。
圖16描述了對于來自服務(wù)器的更新數(shù)據(jù)對象162的接收的客戶機(jī)反應(yīng)。更新對象的表160中的數(shù)據(jù)對象162執(zhí)行該更新。
圖17描述了對于更新對象172的客戶機(jī)反應(yīng)。更新對象172用于更新客戶機(jī)顯示器上的GUI部件170。在更新過程之后,顯示所有數(shù)據(jù)對象,由GUI和對象指定的更新和未改變的數(shù)據(jù)對象。GUI部件170的更新是通過使用收聽器和適配器應(yīng)用程序執(zhí)行的。
提供客戶機(jī)和服務(wù)器之間的交互所必需的所有以上應(yīng)用程序可從單個(gè)XML文件中生成,其指定指定對象本身,GUI提取和更新過程以及數(shù)據(jù)對象的屬性。總之,圖14-17呈現(xiàn)了來自一個(gè)或多個(gè)客戶機(jī)的數(shù)據(jù)如何與數(shù)據(jù)庫同步而不必通過應(yīng)用開發(fā)者編寫專用代碼。
圖18到22是上述生成過程中使用的代碼的不同屬性的屬性實(shí)例。
圖18描述了實(shí)體的屬性,諸如名字、標(biāo)簽和對實(shí)體的注釋。其它屬性涉及實(shí)體的類型和處理、數(shù)據(jù)類型、解釋該實(shí)體所必需的語言、錯(cuò)誤消息的情況、對象類名、數(shù)據(jù)對象類名、準(zhǔn)許的訪問類型,實(shí)體中的屬性列表。
圖19描述了用于實(shí)體的數(shù)據(jù)庫有關(guān)屬性。諸如計(jì)劃、寫入和讀取表、主鍵和在數(shù)據(jù)庫中生成主鍵、查找、選擇、更新、刪除和插入數(shù)據(jù)對象的語句。
圖20描述了用于特性的屬性選擇。
圖21描述了用于特性的GUI有關(guān)屬性。GUI有關(guān)屬性用于在正文段、標(biāo)簽、復(fù)選框、圖表、代碼表等中或作為它們排列數(shù)據(jù)??赏ㄟ^限定行和列的數(shù)量來安排GUI中描述的表,且可將代碼表名用于命名一表。
圖22描述實(shí)體之間的關(guān)系。關(guān)系名字和實(shí)體名應(yīng)為清楚的,以描述其關(guān)系和由所述關(guān)系關(guān)聯(lián)的實(shí)體。外部關(guān)鍵碼用于限定鍵以連接實(shí)體。外部關(guān)鍵碼用于實(shí)現(xiàn)配置文件中的數(shù)據(jù)庫元信息中的不同關(guān)系。在圖6中,僅示出關(guān)系“parentattribute”,其它關(guān)系也可限定為1∶1,1∶n或n∶m關(guān)系,任選和限制關(guān)系以及一個(gè)兩個(gè)或更多表之間的關(guān)系。
該應(yīng)用包含采用實(shí)例幫助的本發(fā)明實(shí)現(xiàn)和實(shí)施例的描述。本領(lǐng)域熟練技術(shù)人員將理解,本發(fā)明不限于以上呈現(xiàn)的實(shí)施例細(xì)節(jié),且本發(fā)明可以其它形式實(shí)現(xiàn)而不背離本發(fā)明的特性。以上實(shí)施例應(yīng)被認(rèn)為是說明性的而非限制性的。因此,實(shí)施和使用本發(fā)明的可能性僅由所含權(quán)利要求書限定。結(jié)果,如權(quán)利要求所確定的實(shí)施本發(fā)明的各種選項(xiàng)(包含等效實(shí)施)也屬于本發(fā)明的范圍。
權(quán)利要求
1.一種為多級數(shù)據(jù)庫環(huán)境中的每個(gè)級生成分布應(yīng)用的方法,其特征在于,包括接收綜合配置代碼,它包括生成每個(gè)所述級中的應(yīng)用所需的所有信息的代碼片段;分析所述多級環(huán)境的至少一個(gè)級所需的所述綜合配置代碼中的所有代碼片段;提取用于所述至少一個(gè)級的所述被分析的代碼片段;以及將所述提取的代碼片段轉(zhuǎn)換成用于每個(gè)提取級的級專用應(yīng)用代碼。
2.如權(quán)利要求1所述的方法,其特征在于,所述分析步驟包括識別所述多級環(huán)境中的至少一個(gè)級所需的所述綜合配置代碼中的所有代碼片段。
3.如權(quán)利要求1所述的方法,其特征在于,所述級專用應(yīng)用代碼是JAVA代碼。
4.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括將所述級專用應(yīng)用代碼發(fā)送到所述多級數(shù)據(jù)庫環(huán)境中的裝置。
5.一種生成多級數(shù)據(jù)庫環(huán)境中的綜合配置代碼的方法,其特征在于,包括接收所述數(shù)據(jù)庫的數(shù)據(jù)庫表的至少一個(gè)表示;檢索由來自所述數(shù)據(jù)庫的至少一個(gè)表示所代表的所述數(shù)據(jù)庫表的所有元信息,所述元信息包括涉及與所述至少一個(gè)數(shù)據(jù)庫表有關(guān)的附加信息的內(nèi)容的信息;生成綜合配置代碼,它包括用于從所述數(shù)據(jù)庫檢索的所有元信息的代碼片段。
6.如以上任一權(quán)項(xiàng)所述的方法,其特征在于,所述綜合配置代碼是XML文件。
7.一種軟件工具,它包括計(jì)算機(jī)可讀介質(zhì)上存儲的程序代碼裝置,用于在計(jì)算機(jī)或網(wǎng)絡(luò)裝置上運(yùn)行所述軟件工具時(shí)執(zhí)行如權(quán)利要求1到6中任一項(xiàng)所述的方法。
8.一種計(jì)算機(jī)程序產(chǎn)品,它包括計(jì)算機(jī)可讀介質(zhì)上存儲的程序代碼裝置,用于在計(jì)算機(jī)或網(wǎng)絡(luò)裝置上運(yùn)行所述程序產(chǎn)品時(shí)執(zhí)行如權(quán)利要求1到6中任一項(xiàng)所述的方法。
9.一種計(jì)算機(jī)程序產(chǎn)品,它包括程序代碼,可從服務(wù)器下載,用于在計(jì)算機(jī)或網(wǎng)絡(luò)裝置上運(yùn)行所述程序產(chǎn)品時(shí)執(zhí)行如權(quán)利要求1到6中任一項(xiàng)所述的方法。
10.一種用于為多級環(huán)境中的每個(gè)級生成分布應(yīng)用的網(wǎng)絡(luò)裝置,其特征在于,包括接收模塊,它接收包含用于多級環(huán)境的不同級的代碼片段的綜合配置代碼;控制器,它被連接到所述接收模塊,并被配置成分析、提取和轉(zhuǎn)換所述綜合配置代碼的代碼片段為每個(gè)級的級專用應(yīng)用代碼;用戶界面,它連接到所述控制器,以修訂所述綜合配置代碼;網(wǎng)絡(luò)模塊,它連接到所述控制器,以將所述級專用應(yīng)用代碼傳遞給網(wǎng)絡(luò)中的其它裝置。
全文摘要
揭示了一種為多級數(shù)據(jù)庫環(huán)境中的每個(gè)級生成分布應(yīng)用的方法和裝置,包括接收綜合配置代碼,它包括生成每個(gè)所述級中的應(yīng)用所需的所有信息的代碼片段;分析所述多級環(huán)境的至少一個(gè)級所需的所述綜合配置代碼中的所有代碼片段;提取用于所述至少一個(gè)級的所述被分析的代碼片段;以及將所述提取的代碼片段轉(zhuǎn)換成用于每個(gè)提取級的級專用應(yīng)用代碼。
文檔編號G06F9/44GK1809811SQ03823229
公開日2006年7月26日 申請日期2003年9月16日 優(yōu)先權(quán)日2002年10月4日
發(fā)明者A·塞恩克 申請人:瑞士再保險(xiǎn)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
栾川县| 商河县| 涞源县| 伊宁县| 叶城县| 义马市| 南充市| 云南省| 西乌| 古交市| 葫芦岛市| 南京市| 嫩江县| 阜康市| 唐河县| 疏附县| 彰化县| 潮安县| 博乐市| 定日县| 庐江县| 隆回县| 察雅县| 依安县| 卢氏县| 闻喜县| 富锦市| 中西区| 三河市| 偏关县| 吴桥县| 安仁县| 信丰县| 高雄市| 门头沟区| 新郑市| 高青县| 辽阳市| 邯郸县| 外汇| 阆中市|