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

從因特網(wǎng)訪問傳統(tǒng)應(yīng)用程序的制作方法

文檔序號:6471182閱讀:404來源:國知局
專利名稱:從因特網(wǎng)訪問傳統(tǒng)應(yīng)用程序的制作方法
技術(shù)領(lǐng)域
本申請一般地涉及計算機軟件應(yīng)用領(lǐng)域,具體涉及通過諸如因特網(wǎng)的計算機網(wǎng)絡(luò)來訪問傳統(tǒng)的應(yīng)用程序。
背景技術(shù)
象所有的其他事物一樣,計算機的使用這些年來已經(jīng)改變。在早些年里,大型計算機主宰著產(chǎn)業(yè),直到出現(xiàn)獨立的個人計算機?,F(xiàn)在,許多企業(yè)和家庭具有至少一臺獨立的個人計算機,即一臺PC。但是已經(jīng)出現(xiàn)了一種新的計算范例以網(wǎng)絡(luò)為中心的計算或分布式計算,其中至少兩個、但是更可能是更多的計算機——稱為客戶機和服務(wù)器——被通過網(wǎng)絡(luò)互相連接,其中由客戶機使用的軟件應(yīng)用程序駐留在服務(wù)器上。因此,服務(wù)器可以通過網(wǎng)絡(luò)提供由最終用戶或由多個其他服務(wù)器和客戶機使用的應(yīng)用程序或客戶程序或數(shù)據(jù)庫。
在許多情況下并且越來越如此,連接客戶機和服務(wù)器的網(wǎng)絡(luò)是因特網(wǎng)。因特網(wǎng)指的是互相連接的計算機網(wǎng)絡(luò)的集合,其中所述計算機網(wǎng)絡(luò)使用因特網(wǎng)協(xié)議,如TCP/IP、UDP等。軟件應(yīng)用程序被以獨立于服務(wù)器或客戶機的操作系統(tǒng)的編程語言來編寫,以便訪問和使用在因特網(wǎng)上的無數(shù)應(yīng)用程序。而且,描述在因特網(wǎng)上的數(shù)據(jù)的多種語言包括各種可擴充標(biāo)記語言(XML),如超文本標(biāo)記語言(HTML),無線標(biāo)記語言(WML)等。萬維網(wǎng)指的是一種軟件管理方案,它利用超文本鏈接以各種用戶代理程序訪問因特網(wǎng)。
分布式計算已經(jīng)從根本上改變了軟件開發(fā)人員編寫這些應(yīng)用程序的代碼的方法。軟件開發(fā)人員不是編寫一個具有幾千或上百萬行代碼的巨大的自含式應(yīng)用程序,而是將多個稱作部件(component)的代碼小部分選擇和編織在一起,每個部件與一個特殊的功能(function)相關(guān)聯(lián),所述特殊功能可以被重新使用于在萬維網(wǎng)上的多個應(yīng)用程序。各部件是標(biāo)準(zhǔn)軟件,它們可以被軟件開發(fā)人員從服務(wù)器拉下和并入到新的應(yīng)用程序中。例如,一個日歷部件可以被用于諸如調(diào)度應(yīng)用程序、表示應(yīng)用程序和/或數(shù)據(jù)庫應(yīng)用程序的幾個應(yīng)用程序以計算雇員的假期和工資等。而且,用于因特網(wǎng)和萬維網(wǎng)應(yīng)用程序的當(dāng)前的產(chǎn)業(yè)架構(gòu)要求商業(yè)邏輯(business logic)與表示邏輯(presentation logic)分離,以便商業(yè)邏輯單獨負(fù)責(zé)提供商業(yè)數(shù)據(jù),而表示邏輯單獨負(fù)責(zé)驅(qū)動表示或用戶接口。
但是,具有幾千或上百萬行代碼的巨大自含式應(yīng)用程序可能仍然對于企業(yè)和組織很重要。實際上,一些自含式程序可能包括一個企業(yè)的整體存貨清單/客戶清單/數(shù)據(jù)庫或所有上述內(nèi)容。術(shù)語“傳統(tǒng)應(yīng)用程序(legacyapplication)”指的是舊的應(yīng)用程序,它們?nèi)匀辉谄髽I(yè)和組織中被運行,但是,是在分布式計算和結(jié)構(gòu)化程序設(shè)計以及它的模塊化、耦合、內(nèi)聚(cohesion)技術(shù)出現(xiàn)之前被開發(fā)的。被編寫為一個大自含式程序的傳統(tǒng)應(yīng)用程序不容易適應(yīng)于改變。但是這些傳統(tǒng)應(yīng)用程序經(jīng)常對企業(yè)是如此的重要以至這些企業(yè)在關(guān)于這些應(yīng)用程序的未來和開發(fā)新網(wǎng)絡(luò)和因特網(wǎng)技術(shù)來用于遠(yuǎn)程和分布式訪問這些重要應(yīng)用程序的能力上面臨困難的抉擇。具有混合的商業(yè)和表示邏輯的交互式傳統(tǒng)應(yīng)用程序必須被重新構(gòu)造或重新設(shè)計以便能夠作為萬維網(wǎng)應(yīng)用程序。但是將商業(yè)邏輯與用戶接口邏輯分離在以最少的干擾和測試將應(yīng)用程序使用到萬維網(wǎng)中方面不總是可行的。
在因特網(wǎng)和萬維網(wǎng)上執(zhí)行傳統(tǒng)應(yīng)用程序的其他方案可以使用屏幕剪貼(screen-scraping)技術(shù),該技術(shù)將在運行時間的傳統(tǒng)顯示數(shù)據(jù)流轉(zhuǎn)換為基于萬維網(wǎng)的語言,如HTML或其他語言。經(jīng)HTML轉(zhuǎn)換的屏幕隨后被顯示在瀏覽器上。但是在運行時間轉(zhuǎn)換傳統(tǒng)的顯示數(shù)據(jù)流較慢,犧牲了應(yīng)用程序的性能,并不向用戶提供提供將傳統(tǒng)的應(yīng)用程序與新的萬維網(wǎng)或其他網(wǎng)絡(luò)應(yīng)用程序無縫地結(jié)合或橋接的能力。而且僅僅傳統(tǒng)數(shù)據(jù)的轉(zhuǎn)換也不提供當(dāng)應(yīng)用程序在因特網(wǎng)上運行的時候增進應(yīng)用程序的用戶接口的有效性的能力。
因此在產(chǎn)業(yè)中需要從因特網(wǎng)、萬維網(wǎng)或其他計算機通信網(wǎng)絡(luò)來訪問傳統(tǒng)的應(yīng)用程序而不必重新構(gòu)造應(yīng)用程序或?qū)Τ绦蚋淖兇a。
在產(chǎn)業(yè)中也需要將傳統(tǒng)的應(yīng)用程序于其他網(wǎng)絡(luò)應(yīng)用程序無縫地交織。

發(fā)明內(nèi)容
這些和其他需要通過一種執(zhí)行在計算機上安裝的計算機應(yīng)用程序的方法可以滿足對本領(lǐng)域的技術(shù)人員將變得明顯,所述方法包括步驟在連接到第一網(wǎng)絡(luò)上的所述計算機的一個服務(wù)器中建立一個小服務(wù)程序?qū)嵗?instance);在計算機上運行所述應(yīng)用程序以產(chǎn)生動態(tài)數(shù)據(jù);在所述計算機上截取所述動態(tài)數(shù)據(jù)和將其改發(fā)(redirecting)到一個網(wǎng)絡(luò)公布部件(component);將動態(tài)數(shù)據(jù)從所述網(wǎng)絡(luò)公布部件向小服務(wù)程序?qū)嵗l(fā)送,在所述服務(wù)器中建立數(shù)據(jù)對象和向所述數(shù)據(jù)對象提供所述動態(tài)數(shù)據(jù)。所述方法還包括步驟從通過第二網(wǎng)絡(luò)連接到服務(wù)器的一個客戶機請求所述應(yīng)用程序;用所述動態(tài)數(shù)據(jù)更新至少一個網(wǎng)頁;向所述客戶機發(fā)送被更新的網(wǎng)頁。
所述第一網(wǎng)絡(luò)可以是因特網(wǎng)。所述第一網(wǎng)絡(luò)也可以從包括內(nèi)部網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)、LAN、WAN、內(nèi)部總線和無線網(wǎng)絡(luò)的一個組中選取。類似地,所述第二網(wǎng)絡(luò)可以是因特網(wǎng);或者可以從包括內(nèi)部網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)、LAN、WAN、內(nèi)部總線和無線網(wǎng)絡(luò)的組中選取。所述計算機可以包括網(wǎng)絡(luò)服務(wù)器。
所述方法可以進一步包括步驟將所述應(yīng)用程序的顯示文件轉(zhuǎn)換為能夠顯示動態(tài)數(shù)據(jù)的網(wǎng)頁。所述網(wǎng)頁可以基于XML語言,諸如HTML和/或WML。所述網(wǎng)頁可以是Java服務(wù)器網(wǎng)頁。而且所述網(wǎng)頁可以被存儲在所述服務(wù)器上。
本發(fā)明的方法可以還包括步驟在計算機中建立一個用于動態(tài)數(shù)據(jù)的輸入/輸出(I/O)緩沖器。所述方法可以也包括步驟建立在所述小服務(wù)程序?qū)嵗退鼍W(wǎng)絡(luò)公布部件之間的第一端點連接;所述端點連接可以是一個套接口(socket)或一個數(shù)據(jù)隊列對象或一個消息隊列。
也可以設(shè)想本發(fā)明包括一個程序產(chǎn)品,用于一個計算機網(wǎng)絡(luò)中來執(zhí)行存儲在一個客戶的計算機上的一個應(yīng)用程序,所述計算機程序產(chǎn)品包括一個信號承載介質(zhì),在其上帶有一個應(yīng)用程序調(diào)用器,用于在客戶的計算機上將一個應(yīng)用程序在它的本機環(huán)境中啟動和運行;多個網(wǎng)絡(luò)用戶接口網(wǎng)頁,用于在所述客戶機上顯示所述應(yīng)用程序的輸入/輸出數(shù)據(jù);一個數(shù)據(jù)改發(fā)器,用于向所述網(wǎng)絡(luò)用戶接口網(wǎng)頁改發(fā)所述應(yīng)用程序的輸入/輸出數(shù)據(jù);多個對應(yīng)于所述網(wǎng)絡(luò)用戶接口網(wǎng)頁的數(shù)據(jù)對象,用于接收所述應(yīng)用程序的輸入/輸出數(shù)據(jù);一個小服務(wù)程序?qū)嵗?,用于用所述?yīng)用程序的輸入/輸出數(shù)據(jù)動態(tài)地更新所述所述網(wǎng)絡(luò)用戶接口網(wǎng)頁;一個網(wǎng)絡(luò)用戶代理程序,用于在所述客戶機上顯示所述更新的網(wǎng)絡(luò)用戶接口網(wǎng)頁。所述程序產(chǎn)品可以還包括一個屏幕定義(definition)轉(zhuǎn)換器,用于將所述應(yīng)用程序的輸入/輸出屏幕定義轉(zhuǎn)換為所述網(wǎng)絡(luò)用戶接口網(wǎng)頁。
也可以將本發(fā)明認(rèn)為一種計算機系統(tǒng),用于執(zhí)行一個應(yīng)用程序,包括一個中央處理單元;一個主存儲器,通過一條通信總線與所述中央處理單元連接;一個數(shù)據(jù)存儲單元,與一個數(shù)據(jù)存儲接口連接,所述數(shù)據(jù)存儲接口與所述通信總線連接;至少一個輸入/輸出裝置,連接到所述通信總線,并與到一個外部計算機網(wǎng)絡(luò)的一個網(wǎng)絡(luò)接口相連接;一個應(yīng)用程序,存儲在所述主存儲器中,能夠在所述中央處理單元上被執(zhí)行;一個網(wǎng)絡(luò)公布部件;一個數(shù)據(jù)改發(fā)器,用于將所述應(yīng)用程序的動態(tài)數(shù)據(jù)改發(fā)到所述網(wǎng)絡(luò)公布部件;一個輸入/輸出緩沖器,用于存儲所述被改發(fā)的動態(tài)數(shù)據(jù)。
而且,在另一個實施例中,本發(fā)明可以作為一種網(wǎng)絡(luò)服務(wù)器,用于訪問在一個計算機上存儲和執(zhí)行的一個應(yīng)用程序,包括一個中央處理單元;一個網(wǎng)絡(luò)接口,通過一個網(wǎng)絡(luò)連接到至少一個客戶機;一個小服務(wù)程序?qū)嵗?,用于從所述至少一個客戶機接收一個訪問所述應(yīng)用程序的請求,并將所述請求發(fā)送到所述計算機;一個服務(wù)器端點連接部,用于向所述計算機發(fā)送實時數(shù)據(jù)和從所述計算機接收實時數(shù)據(jù),所述應(yīng)用程序在所述計算機上被執(zhí)行;多個數(shù)據(jù)對象,被提供實時數(shù)據(jù),其中所述小服務(wù)程序從所述應(yīng)用程序接收實時數(shù)據(jù)并以所述實時數(shù)據(jù)向所述數(shù)據(jù)對象提供。所述網(wǎng)絡(luò)服務(wù)器還可以包括多個網(wǎng)絡(luò)顯示網(wǎng)頁,每個網(wǎng)絡(luò)顯示網(wǎng)頁對所述應(yīng)用程序的每個輸入/輸出屏幕定義是唯一的,其中所述小服務(wù)程序更新所述網(wǎng)絡(luò)顯示網(wǎng)頁以通過所述網(wǎng)絡(luò)向所述客戶機發(fā)送。
本發(fā)明也可以被看作用于執(zhí)行安裝在一個計算機上的一個計算機應(yīng)用程序的一種方法,包括步驟將所述應(yīng)用程序的多個顯示文件轉(zhuǎn)換為多個基于XML的網(wǎng)頁,所述基于XML的網(wǎng)頁能夠顯示所述應(yīng)用程序的動態(tài)數(shù)據(jù);在一個網(wǎng)絡(luò)上的連接到所述計算機的一個服務(wù)器中建立一個小服務(wù)程序?qū)嵗煌ㄟ^因特網(wǎng)從連接到一個服務(wù)器的一個客戶機請求所述應(yīng)用程序;在所述計算機上將所述應(yīng)用程序在它的本機環(huán)境中運行;在所述計算機中建立一個I/O緩沖器,用于所述應(yīng)用程序的動態(tài)數(shù)據(jù);在所述計算機上在所述小服務(wù)程序?qū)嵗鸵粋€網(wǎng)絡(luò)公布部件之間建立一個端點連接;通過所述小服務(wù)程序?qū)嵗龔乃隹蛻魴C向所述應(yīng)用程序來回發(fā)送動態(tài)數(shù)據(jù);建立數(shù)據(jù)對象和向所述數(shù)據(jù)對象提供所述動態(tài)數(shù)據(jù);利用所述數(shù)據(jù)對象更新至少一個網(wǎng)頁;通過因特網(wǎng)向所述客戶機發(fā)送所述被更新的網(wǎng)頁;從所述客戶機向服務(wù)器發(fā)送具有響應(yīng)數(shù)據(jù)的網(wǎng)頁以作為輸入數(shù)據(jù)發(fā)送到所述應(yīng)用程序。
而且,本發(fā)明的另一個方面是一種與一個計算機應(yīng)用程序交互的方法,包括將一個傳統(tǒng)計算機應(yīng)用程序在它的本機環(huán)境中執(zhí)行;通過因特網(wǎng)改發(fā)來自一個客戶機的所述傳統(tǒng)計算機應(yīng)用程序的I/O請求和向所述客戶機的所述傳統(tǒng)計算機應(yīng)用程序的響應(yīng),而不向所述傳統(tǒng)計算機應(yīng)用程序的代碼引入變化。


圖1是一種能夠執(zhí)行本發(fā)明的優(yōu)選實施例的計算機系統(tǒng)的高級方框圖。
圖2是按照本發(fā)明的原理的一種服務(wù)器系統(tǒng)的簡化方框圖,所述服務(wù)器系統(tǒng)可以訪問存儲在所述計算機系統(tǒng)上的傳統(tǒng)應(yīng)用程序。
圖3是能夠利用本發(fā)明的優(yōu)點的客戶機和服務(wù)器的一個計算機網(wǎng)絡(luò)的簡化表示圖。
圖4是現(xiàn)有技術(shù)計算機傳統(tǒng)應(yīng)用程序環(huán)境的簡化處理圖和方框圖,示出了要顯示的數(shù)據(jù)的流動。
圖5是如何按照本發(fā)明的原理將數(shù)據(jù)向一個網(wǎng)絡(luò)和一個傳統(tǒng)應(yīng)用程序改發(fā)和從所述網(wǎng)絡(luò)和所述傳統(tǒng)應(yīng)用程序改發(fā)的簡化處理圖。
圖6是在因特網(wǎng)上如何利用萬維網(wǎng)技術(shù)從一個傳統(tǒng)應(yīng)用程序改發(fā)數(shù)據(jù)的簡化處理圖和方框圖。
具體實施例方式
參見附圖,其中在幾個圖中同樣的數(shù)字表示同樣的部件,圖1示出了按照本發(fā)明的一個實施例的一種計算機系統(tǒng)100的高級方框圖。計算機系統(tǒng)100可以包括中央處理單元(CPU)101、主存儲器102、終端接口103、數(shù)據(jù)存儲器104和諸如因特網(wǎng)的網(wǎng)絡(luò)的接口105。各種裝置經(jīng)由內(nèi)部通信總線110互相通信。CPU 101是一種通用可編程處理器,執(zhí)行存儲在存儲器102中的指令;雖然圖1示出了單個的CPU,應(yīng)當(dāng)明白可以使用具有多個CPU的計算機系統(tǒng)。存儲器102是一個隨機存取半導(dǎo)體存儲器,用于存儲數(shù)據(jù)和程序;存儲器被在概念上示出為單個的整體實體,但是公知的是,存儲器經(jīng)常被配置為多個高速緩沖存儲器和其他存儲裝置的一個分層結(jié)構(gòu)。操作系統(tǒng)120和應(yīng)用程序122駐留在存儲器102中。其中尤其是操作系統(tǒng)120提供諸如裝置接口、存儲網(wǎng)頁管理、多任務(wù)管理等的功能,這是在本領(lǐng)域內(nèi)公知的。應(yīng)用程序122可以包括傳統(tǒng)應(yīng)用程序,如果它包括一個服務(wù)器軟件應(yīng)用程序,則網(wǎng)絡(luò)接口105可以與所述服務(wù)器軟件應(yīng)用程序122交互以使得計算機系統(tǒng)100能夠作為網(wǎng)絡(luò)服務(wù)器。
終端接口103可以支持連接單個或多個終端,可以被實現(xiàn)為一個或多個電路卡或其他單元。數(shù)據(jù)存儲器104優(yōu)選地包括一個或多個旋轉(zhuǎn)磁性硬盤驅(qū)動單元,但是也可以使用其他類型的數(shù)據(jù)存儲器。網(wǎng)絡(luò)接口105提供一個物理連接,用于到網(wǎng)絡(luò)和自網(wǎng)絡(luò)的數(shù)據(jù)傳輸。在本優(yōu)選實施例中,網(wǎng)絡(luò)是因特網(wǎng),但是網(wǎng)絡(luò)也可以是任何更小的自含式網(wǎng)絡(luò),如內(nèi)聯(lián)網(wǎng)、WAN、LAN或其他內(nèi)部或外部網(wǎng)絡(luò),它們使用例如電話傳輸線路、衛(wèi)星、光纖、T1線路等和任何不同的可以獲得的技術(shù)。通信總線110支持在不同裝置之間傳送數(shù)據(jù)、命令和其他信息;雖然被以簡化形式示出為單個的總線,但是它一般被構(gòu)造成多總線,并且可以被配置為多層的形式。
圖1所示的計算機系統(tǒng)打算作為一個簡化的表示圖,可以明白,除了在此具體所述的那些之外,在系統(tǒng)配置中可能有許多變化形式。雖然系統(tǒng)100可以是一個個人計算機系統(tǒng),但是計算機100也可以是更大的計算機系統(tǒng),如IBM企業(yè)系統(tǒng)或IBM AS/400系統(tǒng)。雖然在此描述了一種特定的硬件配置和各種替代形式,但是所述的方法一般可以利用允許從客戶機通過計算機網(wǎng)絡(luò)訪問傳統(tǒng)應(yīng)用程序的任何硬件配置來實現(xiàn)。CPU 101被適當(dāng)?shù)鼐幊桃酝ㄟ^具有傳統(tǒng)應(yīng)用程序和網(wǎng)絡(luò)接口來實現(xiàn)本優(yōu)選實施例,所述網(wǎng)絡(luò)接口可以被其他連接的計算機使用來訪問那個傳統(tǒng)應(yīng)用程序。
計算機系統(tǒng)100和它的部件在圖1中被示出和描述為一個或多或少的單個自含式計算機系統(tǒng)。另外可能的是使用多計算機系統(tǒng),尤其是共享單個大數(shù)據(jù)庫的多系統(tǒng)。每個具有一個特殊的任務(wù)。例如,一個或多個計算機系統(tǒng)100可以專用于一個或多個訪問數(shù)據(jù)庫的傳統(tǒng)應(yīng)用程序,而一個或多個其他計算機系統(tǒng)100可以專用于為從客戶機接收的請求服務(wù)或訪問因特網(wǎng)。在此對計算機的描述應(yīng)當(dāng)被理解為包括或者單個計算機或者一個計算機系統(tǒng)集合,它們提供對傳統(tǒng)應(yīng)用程序和對網(wǎng)絡(luò)的訪問,通過所述網(wǎng)絡(luò)來連接一個客戶機系統(tǒng)。
圖2是一個網(wǎng)絡(luò)服務(wù)器200的示例,它可以訪問存儲在計算機100上的傳統(tǒng)應(yīng)用程序。網(wǎng)絡(luò)服務(wù)器200可以是一個計算機系統(tǒng),包括CPU 201、主存儲器202、各種裝置適配器和接口203-208、通信總線210。CPU 201是一個通用可編程處理器,執(zhí)行存儲在存儲器202中的指令;雖然圖2示出單個CPU,但是應(yīng)當(dāng)明白可以使用具有多個CPU的計算機系統(tǒng)。存儲器202是隨機存取半導(dǎo)體存儲器,用于存儲數(shù)據(jù)和程序;存儲器被從概念上示出為單個的單片實體,可以明白存儲器202經(jīng)常被配置為多個高速緩沖存儲器和其他存儲裝置的一個分層結(jié)構(gòu)。通信總線210支持在不同裝置之間的數(shù)據(jù)、命令和其他信息的傳送;雖然在附圖中被以簡化形式示出為單個總線,但是它也可以被構(gòu)造為多總線,并且可以被配置為多層形式。顯示適配器203支持視頻顯示器211,它可以是陰極射線管顯示器、平面顯示器或觸摸屏,但是也可以使用其他顯示技術(shù)。鍵盤/指示器適配器204支持鍵盤212和被描述為鼠標(biāo)的指示裝置213,可以明白也可以使用其他形式的輸入裝置。存儲器適配器205支持一個或多個數(shù)據(jù)存儲裝置214,它可以是旋轉(zhuǎn)磁性硬盤驅(qū)動器或CD-ROM驅(qū)動器,但是也可以使用其他數(shù)據(jù)存儲裝置。打印機適配器206支持打印機215。適配器207可以支持多種附加裝置中的任何一個,如音頻裝置等。網(wǎng)絡(luò)接口208向諸如因特網(wǎng)的網(wǎng)絡(luò)提供物理接口。這個接口可以包括一個連接到一條電話線的調(diào)制解調(diào)器,通過所述電話線可以達到因特網(wǎng)服務(wù)提供商或在線服務(wù)提供商,其他更高帶寬的接口越來越多地被使用。例如,網(wǎng)絡(luò)服務(wù)器200可以經(jīng)由一個使用以太網(wǎng)、令牌環(huán)(Token Ring)或其他協(xié)議的局域網(wǎng)連接到另一個網(wǎng)絡(luò)服務(wù)器,而第二個網(wǎng)絡(luò)服務(wù)器又連接到因特網(wǎng)。或者,可以通過有線電視、光纖、衛(wèi)星、無線方式或其他連接來提供網(wǎng)絡(luò)接口208。圖2表示的是打算作為高端服務(wù)器的示范簡化表示,可以明白,在其他網(wǎng)絡(luò)服務(wù)器200中,除了在此所述的那些,可能具有在系統(tǒng)配置中的許多變化形式。如果計算機系統(tǒng)100具有一個服務(wù)器軟件應(yīng)用程序作為它的應(yīng)用程序122之一,則網(wǎng)絡(luò)服務(wù)器200和計算機100可以被合并到同一系統(tǒng)中,在這種情況下,在網(wǎng)絡(luò)服務(wù)器200和計算機100之間的網(wǎng)絡(luò)是一條內(nèi)部通信總線。
參見圖3,每個客戶機系統(tǒng)300是與計算機100分離的裝置,它可以訪問在計算機100上駐留和運行的傳統(tǒng)應(yīng)用程序??蛻魴C系統(tǒng)可以是一個個人計算機系統(tǒng)或一個諸如服務(wù)器的大計算機系統(tǒng)或諸如筆記本電腦或膝上型電腦的小計算機系統(tǒng)。最后,客戶機系統(tǒng)300根本不必是計算機,而是最好是更簡單的用具似的具有更少的存儲量的客戶裝置,如網(wǎng)絡(luò)終端、精簡客戶機、終端式裝置、語音響應(yīng)單元等。計算、電信和消費電子裝置的結(jié)合正在引起作為客戶機300的普遍的移動裝置的數(shù)量和種類上的驚人增長。這個移動結(jié)構(gòu)使得具有多種客戶機300,包括膝上型電腦、子筆記本電腦(sub-notebook)、諸如個人數(shù)字助理和伴隨裝置(companion device)的手持計算機、諸如智能電話(smartphone)、尋呼機、簡單消息接發(fā)裝置、便攜裝置的移動設(shè)備。因此當(dāng)客戶機系統(tǒng)300是一個移動裝置的時候,顯示適配器和網(wǎng)絡(luò)接口具有一個網(wǎng)絡(luò)用戶代理程序,并支持多種多模接口,其中包括傳統(tǒng)的鍵盤和鼠標(biāo)接口、小文本屏幕、輸入筆、觸摸屏、語音識別裝置、文本到語音轉(zhuǎn)換裝置、諸如便攜裝置的其他正在出現(xiàn)的技術(shù)。網(wǎng)絡(luò)用戶代理程序使得計算機的應(yīng)用程序能夠在它的各個客戶機300上使用。優(yōu)選的打算是客戶機系統(tǒng)300包括任何電子裝置,所述電子裝置可以通過諸如萬維網(wǎng)瀏覽器的網(wǎng)絡(luò)用戶代理程序來與網(wǎng)絡(luò)服務(wù)器200交互以訪問在計算機系統(tǒng)100上駐留的傳統(tǒng)或其他應(yīng)用程序。這種特殊用途的用于訪問萬維網(wǎng)的裝置例如電視機的因特網(wǎng)訪問盒或便攜無線萬維網(wǎng)訪問裝置,它們可以作為用于調(diào)用和執(zhí)行應(yīng)用程序的用戶代理程序來實現(xiàn),它們也要被包括在客戶機系統(tǒng)300的范圍中。網(wǎng)絡(luò)用戶代理程序可以以控制電路通過使用邏輯門、可編程邏輯裝置或其他硬件部件來實現(xiàn),以取代基于處理器的系統(tǒng)。
下面將詳細(xì)說明,優(yōu)選實施例的各個方面與在計算機100或網(wǎng)絡(luò)服務(wù)器200上的可以執(zhí)行的具體的方法步驟有關(guān)。在一個替代實施例中,本發(fā)明可以被實現(xiàn)為一種計算機程序產(chǎn)品,用于網(wǎng)絡(luò)服務(wù)器200和客戶機300之一或兩者??梢越?jīng)由多種信號承載介質(zhì)來向計算機100和/或網(wǎng)絡(luò)服務(wù)器200提供限定優(yōu)選實施例的功能的程序,包括但不限于(a)永久存儲在不可寫入的存儲介質(zhì)中的信息,所述介質(zhì)例如在任何計算機中的只讀存儲裝置,如由CD-ROM驅(qū)動器214可以讀出的CD-ROM盤;(b)存儲在可寫入存儲介質(zhì),例如在軟盤驅(qū)動器中的軟盤或硬盤驅(qū)動器如圖2中示出為214的驅(qū)動器上的可改變信息;或(c)通過電話或有線媒體網(wǎng)絡(luò)、包括無線通信而傳輸?shù)接嬎銠C的信息。這樣的信號承載介質(zhì),當(dāng)載有指示本發(fā)明的功能的計算機可讀的指令的時候,是本發(fā)明的替代實施例。
圖3是計算機網(wǎng)絡(luò)的簡化表示圖。所述計算機網(wǎng)絡(luò)表示因特網(wǎng),它可以被描述為基于在此說明的客戶機-服務(wù)器模型的公知的計算機網(wǎng)絡(luò)。在概念上,因特網(wǎng)包括多個網(wǎng)絡(luò)服務(wù)器200的一個大網(wǎng)絡(luò),這些網(wǎng)絡(luò)服務(wù)器200可以由客戶機系統(tǒng)300通過專用因特網(wǎng)接入提供商303或在線服務(wù)提供商304來訪問。在本優(yōu)選實施例中,每個客戶機系統(tǒng)300可以運行各自的諸如瀏覽器的網(wǎng)絡(luò)用戶代理程序以經(jīng)由接入提供商來訪問網(wǎng)絡(luò)服務(wù)器200。每個網(wǎng)絡(luò)服務(wù)器200可以具有它自己的傳統(tǒng)應(yīng)用程序,或者可以通過因特網(wǎng)或其他到客戶機300的連接部分連接到其他具有要被訪問的傳統(tǒng)應(yīng)用程序的計算機100。而且,傳統(tǒng)應(yīng)用程序不必被僅僅存儲在一個計算機100上;而是單一應(yīng)用程序的各個任務(wù)可以被存儲在多個計算機100上,所述計算機100通過諸如因特網(wǎng)的網(wǎng)絡(luò)連接到網(wǎng)絡(luò)服務(wù)器200上。通過通用資源定位符(URL)來識別到服務(wù)器200的因特網(wǎng)網(wǎng)絡(luò)路徑,所述URL具有限定網(wǎng)絡(luò)連接的公知句法。雖然示出了各種相對直接的路徑,但是應(yīng)當(dāng)明白,圖3僅僅是一個概念表示,諸如因特網(wǎng)的計算機網(wǎng)絡(luò)實際上可以具有遠(yuǎn)遠(yuǎn)更為復(fù)雜的結(jié)構(gòu)。也應(yīng)當(dāng)明白計算機網(wǎng)絡(luò)也可以是內(nèi)聯(lián)網(wǎng)或其他內(nèi)部計算機網(wǎng)絡(luò),如WAN、LAN等。雖然本實施例不打算如此限定,但它的優(yōu)選實施例在因特網(wǎng)上尤其有用。
本實施例提供了一個環(huán)境,所述環(huán)境使得交互傳統(tǒng)應(yīng)用程序不用重新構(gòu)造或重新設(shè)計應(yīng)用程序代碼而允許這些傳統(tǒng)應(yīng)用程序如同原來——在它們的本機環(huán)境中繼續(xù)運行,并同時允許多個客戶機利用萬維網(wǎng)瀏覽器或其他網(wǎng)絡(luò)技術(shù)來訪問傳統(tǒng)應(yīng)用程序。本實施例也向交互傳統(tǒng)應(yīng)用程序提供了這樣的能力,即產(chǎn)生所要求的商業(yè)數(shù)據(jù)和驅(qū)動按照由產(chǎn)業(yè)標(biāo)準(zhǔn)萬維網(wǎng)應(yīng)用結(jié)構(gòu)要求的各個表示人工產(chǎn)物。本實施例令人感興趣的是在“有狀態(tài)(stateful)”傳統(tǒng)應(yīng)用程序和“無狀態(tài)(stateless)”因特網(wǎng)事務(wù)之間的交互。交互傳統(tǒng)應(yīng)用程序的有狀態(tài)在于,應(yīng)用程序繼續(xù)執(zhí)行直到它到達一個I/O指令,在此執(zhí)行被暫停并且應(yīng)用程序的狀態(tài)被保留在它的本機環(huán)境中直到I/O行為結(jié)束。另一方面,因特網(wǎng)事務(wù)使用諸如HTTP的無狀態(tài)協(xié)議,在此,在因特網(wǎng)上的一個事務(wù)被完成之后,到因特網(wǎng)的連接被破壞并且事務(wù)的狀態(tài)被丟失,除非另外的處理發(fā)生來將這個狀態(tài)存儲在網(wǎng)絡(luò)服務(wù)器上。本實施例提供了一個機制和一個環(huán)境,從此使傳統(tǒng)應(yīng)用程序的狀態(tài)在它轉(zhuǎn)換到無狀態(tài)萬維網(wǎng)環(huán)境的同時被自動保留在它的本機環(huán)境中。應(yīng)用程序的狀態(tài)的自動保留是本發(fā)明的結(jié)構(gòu)所固有的,本發(fā)明的結(jié)構(gòu)提供了由交互傳統(tǒng)應(yīng)用程序所要求的必要連續(xù)性。
參見圖4,在此示出了現(xiàn)有技術(shù)計算機應(yīng)用程序環(huán)境的簡化處理圖和方框圖。每個傳統(tǒng)應(yīng)用程序122具有數(shù)據(jù)422,數(shù)據(jù)422按照程序I/O代碼410通過運行時間編譯器420被輸入到應(yīng)用程序運行時間操作系統(tǒng)430和從到應(yīng)用程序運行時間操作系統(tǒng)430被輸出。輸出數(shù)據(jù)422可以被發(fā)送到數(shù)據(jù)管理器代碼432,其為應(yīng)用程序運行時間操作系統(tǒng)430的一部分。在所述應(yīng)用程序運行時間操作系統(tǒng)430中的工作站管理器434或等同的功能部件將輸出數(shù)據(jù)422與來自傳統(tǒng)應(yīng)用程序的用戶接口定義文件440的對應(yīng)顯示記錄相結(jié)合以產(chǎn)生要顯示在專有顯示裝置211上的數(shù)據(jù)流442。當(dāng)數(shù)據(jù)被插入到數(shù)據(jù)流中和被發(fā)送到顯示裝置以顯示的時候,在屏幕定義本身中定義應(yīng)用程序數(shù)據(jù)的顯示格式,并由操作系統(tǒng)的應(yīng)用程序運行時間操作系統(tǒng)430將格式代碼施加到數(shù)據(jù)。在應(yīng)用程序運行時間之前,這些用戶接口定義文件440被編譯和插入到一個或多個在運行時間引用的顯示對象中。輸入的數(shù)據(jù)沿著反向路徑流動應(yīng)用程序運行時間操作系統(tǒng)430從輸入的數(shù)據(jù)流中提取輸入數(shù)據(jù),格式化數(shù)據(jù),然后所述數(shù)據(jù)被提交到應(yīng)用程序作為用戶輸入數(shù)據(jù)。在一些系統(tǒng)上,顯示裝置211僅僅在輸入的數(shù)據(jù)流中建立屏幕的動態(tài)部分,即輸入字段。
圖5是一種按照本發(fā)明的原理的方法的簡化處理圖,所述方法使得傳統(tǒng)應(yīng)用程序能夠通過網(wǎng)絡(luò)被使用,所述網(wǎng)絡(luò)優(yōu)選是利用萬維網(wǎng)技術(shù)的因特網(wǎng),雖然其他網(wǎng)絡(luò)和其他技術(shù)也被認(rèn)為包括在本發(fā)明的范圍內(nèi)。假定本機應(yīng)用程序屏幕的專有用戶接口(UI)定義——在圖4中為屏幕定義440——被分別存儲在屏幕定義文件中。首先,甚至在運行時間之前,在步驟510對專有屏幕定義440進行語法分析和轉(zhuǎn)換為一種格式,所述格式可以由諸如萬維網(wǎng)瀏覽器的任何普遍計算機因特網(wǎng)用戶代理程序570提供;這個格式最好基于諸如HTML、WML或*ML的XML,這依賴于針對用于產(chǎn)生所謂的網(wǎng)頁的因特網(wǎng)用戶代理程序。在本優(yōu)選實施例中,用戶接口元件被機械地映射到支持用戶接口元件的基于XML的語言中。
轉(zhuǎn)換處理的定制可以以幾種方式來實現(xiàn),并且如果最終用戶公司對于應(yīng)用程序表示具有良好限定的規(guī)則,則轉(zhuǎn)換處理的定制是所期望的。轉(zhuǎn)換處理可以識別由所述公司使用的任何用戶接口設(shè)計模式,因此使得用戶可以定制模版來映射這些設(shè)計模式。轉(zhuǎn)換算法隨后使用這些格式來識別實際的應(yīng)用程序屏幕并因此轉(zhuǎn)換。如果轉(zhuǎn)換的格式被保留在各個文件中,則由用戶執(zhí)行的轉(zhuǎn)換后改進是可能的。在作為Java服務(wù)器網(wǎng)頁的網(wǎng)頁的實施例中,通過將顯示文件記錄440轉(zhuǎn)換為包括DHTML的Java服務(wù)器網(wǎng)頁520來產(chǎn)生這些網(wǎng)頁。DHTML是具有客戶使用的級聯(lián)類型表和JavaScript的HTML,用以執(zhí)行輸入字段的本地確認(rèn),并便利在轉(zhuǎn)換后的改進以針對用戶的表示格式來定制。否則,可以在觀看屏幕的時候通過分析傳統(tǒng)應(yīng)用程序的屏幕定義或顯示數(shù)據(jù)流來發(fā)現(xiàn)公司的屏幕設(shè)計規(guī)則。從這些分析獲得的知識庫可以隨后在轉(zhuǎn)換處理前按照需要被改進。
在步驟530,在向在客戶機300上的網(wǎng)絡(luò)用戶代理程序570發(fā)送被轉(zhuǎn)換的用戶接口頁520之前,利用現(xiàn)有的網(wǎng)頁服務(wù)技術(shù)在網(wǎng)絡(luò)服務(wù)器200上動態(tài)更新被轉(zhuǎn)換的用戶接口頁520。在步驟540,應(yīng)用程序的原始輸出數(shù)據(jù)被應(yīng)用程序運行時間操作系統(tǒng)430的數(shù)據(jù)管理器432改發(fā),以便用于顯示的 數(shù)據(jù)不被轉(zhuǎn)換為圖4所述的傳統(tǒng)專有顯示數(shù)據(jù)流,而是被發(fā)送到標(biāo)有“公布到萬維網(wǎng)”的新的網(wǎng)絡(luò)公布部件550。網(wǎng)絡(luò)公布部件550重新格式化應(yīng)用程序數(shù)據(jù)以公布到網(wǎng)絡(luò),因為其中有傳統(tǒng)應(yīng)用程序以不適合于在網(wǎng)絡(luò)上顯示的格式產(chǎn)生和編碼應(yīng)用程序數(shù)據(jù)。從網(wǎng)絡(luò)用戶代理程序570獲得的的用戶輸入數(shù)據(jù)也被公布到萬維網(wǎng)的運行時間部件550處理,并被重新格式化為提交到應(yīng)用程序運行時間操作系統(tǒng)430的應(yīng)用程序的輸入數(shù)據(jù)。網(wǎng)絡(luò)服務(wù)器200和公布到萬維網(wǎng)運行時間部件550的一部分可以被安裝到計算機100上,而不是其中安裝了傳統(tǒng)應(yīng)用程序122和應(yīng)用程序運行時間操作系統(tǒng)430,但是也可能與具有傳統(tǒng)應(yīng)用程序122的計算機100合并并作為其一部分。而且,公布到萬維網(wǎng)運行時間部件550被設(shè)計使得傳統(tǒng)應(yīng)用程序122不知道在它的本機環(huán)境中的任何改變,因此不要求改變對應(yīng)用程序的代碼。
在作為網(wǎng)絡(luò)的因特網(wǎng)和萬維網(wǎng)的一個具體實施例中,JAVA使得Java服務(wù)器網(wǎng)頁作為網(wǎng)頁以在所述網(wǎng)頁被用于網(wǎng)絡(luò)用戶代理程序之前向HTML或XML頁動態(tài)插入應(yīng)用程序數(shù)據(jù),這個處理稱作動態(tài)產(chǎn)生的萬維網(wǎng)內(nèi)容。由Java服務(wù)器網(wǎng)頁讀取的數(shù)據(jù)被存儲在數(shù)據(jù)對象中,即JavaBean中,它們被已經(jīng)接收數(shù)據(jù)以公布的小服務(wù)程序提供數(shù)據(jù)。本實施例的特性是,一旦所述傳統(tǒng)應(yīng)用程序數(shù)據(jù)已經(jīng)被存儲在網(wǎng)絡(luò)服務(wù)器中的這些數(shù)據(jù)對象中,則它可以用于任何目的,包括從另一個連接到服務(wù)器的計算機的訪問、用于操縱、用于傳輸……,在萬維網(wǎng)服務(wù)器上的這個傳統(tǒng)動態(tài)數(shù)據(jù)的用途是無限的。JavaBean的數(shù)據(jù)字段定義具有與由Java服務(wù)器網(wǎng)頁容納的HTML或XML網(wǎng)頁的可變數(shù)據(jù)字段的一對一映射,并且JavaBean的數(shù)據(jù)字段定義在轉(zhuǎn)換處理期間產(chǎn)生作為Java類定義,因為專有應(yīng)用程序屏幕的定義包括屏幕的I/O字段。這樣的映射是本領(lǐng)域內(nèi)公知的,還存在諸如Active Server Pages(動態(tài)服務(wù)器網(wǎng)頁)的其他產(chǎn)品,它們能夠從服務(wù)器向客戶機提供動態(tài)內(nèi)容。在任一實施例中,小服務(wù)程序?qū)嵗齽?chuàng)建這些數(shù)據(jù)對象并向它們提供改發(fā)的傳統(tǒng)應(yīng)用程序的動態(tài)數(shù)據(jù),通常是I/O數(shù)據(jù)。因此,優(yōu)選的是,數(shù)據(jù)對象具有必要的方法來格式化數(shù)據(jù)以用于顯示和用于將數(shù)據(jù)從應(yīng)用程序的專有代碼轉(zhuǎn)換為專有語言的網(wǎng)絡(luò)碼頁。
僅僅通過舉例,圖6示出了基于使用Java服務(wù)器網(wǎng)頁的公布到萬維網(wǎng)運行時間部件的結(jié)構(gòu)。公布到萬維網(wǎng)運行時間部件的實體有小服務(wù)程序?qū)嵗?10,它作為萬維網(wǎng)網(wǎng)關(guān),用于請求傳統(tǒng)應(yīng)用程序122——612,和從傳統(tǒng)應(yīng)用程序122回答——660。一般,小服務(wù)程序是響應(yīng)于客戶請求而在服務(wù)器上運行的一個JAVA程序。對于輸出的數(shù)據(jù),所述小服務(wù)程序?qū)嵗?10從套接口接受一個數(shù)據(jù)緩沖器,查找數(shù)據(jù)的記錄識別符,創(chuàng)建諸如JavaBean的相關(guān)數(shù)據(jù)對象和向它們提供數(shù)據(jù),并啟動相關(guān)的Java服務(wù)器網(wǎng)頁以向網(wǎng)絡(luò)用戶代理程序提供數(shù)據(jù)供顯示。對于提供的數(shù)據(jù),小服務(wù)程序?qū)嵗?10經(jīng)由所述套接口和公布到萬維網(wǎng)運行時間部件將數(shù)據(jù)封裝到一個數(shù)據(jù)緩沖器中并將其提交到應(yīng)用程序。小服務(wù)程序?qū)嵗?10也建立應(yīng)用程序處理和在應(yīng)用程序處理和網(wǎng)絡(luò)服務(wù)器處理之間的通信路徑。所述通信路徑可以包括套接口626作為一個通信端點。應(yīng)當(dāng)注意,套接口和其他通信端點——它們在等待輸入的數(shù)據(jù)的同時暫停應(yīng)用程序的執(zhí)行——將固有地保留應(yīng)用程序的狀態(tài)和在本發(fā)明的環(huán)境中發(fā)生作用。應(yīng)用程序調(diào)用器660保存套接口描述符以供Read_data和Write_data方法以后使用,啟動數(shù)據(jù)的改發(fā)和調(diào)用傳統(tǒng)應(yīng)用程序。應(yīng)用程序運行時間操作系統(tǒng)430調(diào)用Read_data和Write_data方法來在應(yīng)用程序和因特網(wǎng)之間改發(fā)數(shù)據(jù)流。網(wǎng)絡(luò)用戶網(wǎng)頁——在此為Java服務(wù)器網(wǎng)頁——在用戶接口轉(zhuǎn)換處理期間產(chǎn)生。數(shù)據(jù)對象——如在這個情況下的JavaBean——與每個Java服務(wù)器網(wǎng)頁相關(guān),并包括經(jīng)由Java服務(wù)器網(wǎng)頁公布到萬維網(wǎng)的應(yīng)用程序數(shù)據(jù)。
按照本發(fā)明的原理的處理的控制流進行如下在客戶機300上的用戶通過在步驟612首先從在網(wǎng)絡(luò)服務(wù)器200上的小服務(wù)程序?qū)嵗?10請求一個調(diào)用頁而從網(wǎng)絡(luò)用戶代理程序570啟動傳統(tǒng)應(yīng)用程序122——優(yōu)選的是一個萬維網(wǎng)瀏覽器。在步驟614,客戶機300——這可能是另一個計算機或個人——完成一組用于要調(diào)用的應(yīng)用程序的名稱和參數(shù)的輸入字段并提交它。在步驟616,小服務(wù)程序?qū)嵗?10在接收到用于調(diào)用的XML或HTTP請求的時候建立一個套接口626a并向計算機100產(chǎn)生一個第二線程618以開始調(diào)用傳統(tǒng)應(yīng)用程序的應(yīng)用程序處理。套接口626a隨后在步驟642a等待連接。
第二線程618將套接端口號碼和程序信息傳送到應(yīng)用程序調(diào)用器660,它建立一個套接口626b并在步驟620在網(wǎng)絡(luò)服務(wù)器處理中插入到所述套接口的連接。在步驟622在兩個套接口626a和626b之間建立連接之后,在網(wǎng)絡(luò)服務(wù)器處理中套接口626b等待來自傳統(tǒng)程序的數(shù)據(jù)。應(yīng)用程序調(diào)用器660向一個可以獲得的環(huán)境寫入應(yīng)用程序側(cè)的套接口626b的描述符,通過應(yīng)用程序編程接口啟動數(shù)據(jù)改發(fā),并調(diào)用傳統(tǒng)應(yīng)用程序122,如步驟624所示。當(dāng)傳統(tǒng)應(yīng)用程序122達到一個I/O指令的時候,在步驟632,輸出數(shù)據(jù)被發(fā)送到計算機的操作系統(tǒng)的應(yīng)用程序運行時間操作系統(tǒng)430,它在640a調(diào)用Write_Data方法以將數(shù)據(jù)改發(fā)到應(yīng)用程序側(cè)套接口626b。在步驟642b在網(wǎng)絡(luò)服務(wù)器處理中套接口626a讀取數(shù)據(jù),在步驟650,小服務(wù)程序?qū)嵗?10建立一個數(shù)據(jù)對象以存儲數(shù)據(jù)。在步驟652,小服務(wù)程序?qū)嵗?10調(diào)用與這個輸出記錄相關(guān)的網(wǎng)頁,如Java服務(wù)器網(wǎng)頁。在步驟652,所述網(wǎng)頁被從所述數(shù)據(jù)對象提供數(shù)據(jù),然后在步驟660用于網(wǎng)絡(luò)用戶代理程序570例如作為HTTP響應(yīng)。
在網(wǎng)絡(luò)用戶代理程序570上的客戶機接口和應(yīng)用程序122之間的后續(xù)交互流經(jīng)套接口連接626a和626b。當(dāng)客戶機提交一個網(wǎng)頁的時候,在網(wǎng)絡(luò)服務(wù)器上的小服務(wù)程序?qū)嵗?10從先前存儲的會話對象——它具有對一個套接口或數(shù)據(jù)隊列對象或消息隊列對象的引用——還原會話數(shù)據(jù)。輸入的數(shù)據(jù)然后在步驟642c被改發(fā)到套接口或隊列626a,改發(fā)到其他應(yīng)用程序套接口或隊列626b和I/O緩沖器——如果有的話,和改發(fā)到應(yīng)用程序運行時間操作系統(tǒng)430,并最后改發(fā)到正在等待Read_Data方法640b的傳統(tǒng)應(yīng)用程序122。傳統(tǒng)應(yīng)用程序122隨后在計算機100上在它的本機環(huán)境中繼續(xù)它的執(zhí)行直到下一個I/O交換。當(dāng)應(yīng)用程序結(jié)束的時候,控制返回應(yīng)用程序調(diào)用器660,它在步驟620關(guān)閉端點的連接。
在圖6中,一個報告程序發(fā)生器(RPG)程序被用作傳統(tǒng)應(yīng)用程序的一個示例,但是應(yīng)當(dāng)明白所述結(jié)構(gòu)也可以支持以COBOL和其他編程語言所編寫的傳統(tǒng)應(yīng)用程序。套接口被用作在分布的處理之間的通信機制,但是也可以使用服務(wù)器可以獲得的任何通信端點機制,如用于增進性能的數(shù)據(jù)隊列對象——如果服務(wù)器和傳統(tǒng)應(yīng)用程序在一個計算機中——或用于增進的可靠性和安全性的消息隊列。在預(yù)先開始的工作中的一個初始程序可以向一個可以改變的環(huán)境寫入應(yīng)用程序側(cè)套接口的描述符、啟動改發(fā)、調(diào)用傳統(tǒng)應(yīng)用程序。當(dāng)所述程序遇到一個I/O指令——如一個寫入指令,其后跟隨讀取指令,在RPG中的EXFMT——的時候,輸出數(shù)據(jù)被發(fā)送到一個數(shù)據(jù)管理器,它調(diào)用公布到萬維網(wǎng)運行時間接口,Write_Data,以向套接口寫入。通過利用公布到萬維網(wǎng)的運行時間接口Read_Data也可以由套接口626b讀取數(shù)據(jù)。
因此,本發(fā)明使得用戶可以整體的對商業(yè)重要的傳統(tǒng)應(yīng)用程序配置于因特網(wǎng)上以利用現(xiàn)代技術(shù)的優(yōu)點,而不用必須重新構(gòu)造程序或?qū)Τ绦蜻M行代碼改變。而且,傳統(tǒng)應(yīng)用程序正常地被執(zhí)行。傳統(tǒng)應(yīng)用程序數(shù)據(jù)變得通過網(wǎng)絡(luò)可以獲得來用于任何目的,因為它被存儲在網(wǎng)絡(luò)服務(wù)器上的數(shù)據(jù)對象中。而且,本發(fā)明使得用戶可以改進諸如Java服務(wù)器網(wǎng)頁的網(wǎng)頁以在網(wǎng)絡(luò)服務(wù)器中插入到新的基于萬維網(wǎng)的應(yīng)用程序的鏈接。這個能力允許在傳統(tǒng)和其他基于網(wǎng)絡(luò)的應(yīng)用程序之間的交互,包括在網(wǎng)絡(luò)服務(wù)器中將傳統(tǒng)應(yīng)用程序數(shù)據(jù)與來自其他網(wǎng)絡(luò)應(yīng)用程序的數(shù)據(jù)結(jié)合。允許遠(yuǎn)程調(diào)用程序的計算機和客戶機系統(tǒng)能夠使用上述的結(jié)構(gòu)來在分離的計算機系統(tǒng)中運行萬維網(wǎng)服務(wù)器和傳統(tǒng)應(yīng)用程序。而且,本發(fā)明使得用戶可以按照公司的用于應(yīng)用程序表示的規(guī)則和原則來定制Java服務(wù)器網(wǎng)頁。在此提供的方案還使得I/O數(shù)據(jù)可以被轉(zhuǎn)換成適合于除了瀏覽器之外的顯示類型的其他格式。一個有力的應(yīng)用是將I/O數(shù)據(jù)和顯示記錄轉(zhuǎn)換為一般的基于XML的用戶接口。XML用戶接口可以隨后被提供到不同類型的用戶接口再現(xiàn)器(renderer)。這些再現(xiàn)器可以是基于Java-Swing的、基于語音的和基于PDA的。因此本發(fā)明打開了從多種類型的未來裝置對現(xiàn)有的傳統(tǒng)應(yīng)用程序的訪問。
雖然已經(jīng)在上面說明了本發(fā)明的不同實施例,應(yīng)當(dāng)明白,它們的提供是示例性的而不是限定性的,并且各種變化是可能的。因此本發(fā)明的寬度和范圍不應(yīng)當(dāng)被上述的示范性實施例中的任何一個所限定,而是應(yīng)當(dāng)按照所附的權(quán)利要求和它們的等價物來限定。
權(quán)利要求
1.一種執(zhí)行在計算機上安裝的一個計算機應(yīng)用程序的方法,所述方法包括步驟a)在連接到第一網(wǎng)絡(luò)上的所述計算機的一個服務(wù)器中建立一個小服務(wù)程序?qū)嵗籦)在所述計算機上運行所述應(yīng)用程序以產(chǎn)生動態(tài)數(shù)據(jù);c)在所述計算機上截取所述動態(tài)數(shù)據(jù)和將其改發(fā)到一個網(wǎng)絡(luò)公布部件;d)將動態(tài)數(shù)據(jù)從所述網(wǎng)絡(luò)公布部件向所述小服務(wù)程序?qū)嵗l(fā)送;和e)在所述服務(wù)器中建立數(shù)據(jù)對象和向所述數(shù)據(jù)對象提供所述動態(tài)數(shù)據(jù)。
2.按照權(quán)利要求1的方法,還包括步驟a)從通過第二網(wǎng)絡(luò)連接到一個服務(wù)器的一個客戶機請求所述應(yīng)用程序;b)用所述動態(tài)數(shù)據(jù)更新至少一個網(wǎng)頁;和c)向所述客戶機發(fā)送被更新的網(wǎng)頁。
3.按照權(quán)利要求1或2的方法,其中所述第一網(wǎng)絡(luò)可以從包括內(nèi)部網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)、LAN、WAN、內(nèi)部總線和無線網(wǎng)絡(luò)的一個組中選取。
4.按照權(quán)利要求2或3的方法,其中所述第二網(wǎng)絡(luò)可以從包括內(nèi)部網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)、LAN、WAN、內(nèi)部總線和無線網(wǎng)絡(luò)的組中選取。
5.按照權(quán)利要求2或3或4的方法,進一步包括步驟a)將所述應(yīng)用程序的顯示文件轉(zhuǎn)換為能夠顯示動態(tài)數(shù)據(jù)的網(wǎng)頁。
6.按照權(quán)利要求5的方法,其中所述網(wǎng)頁基于XML語言。
7.按照權(quán)利要求6的方法,其中XML語言是HTML。
8.按照權(quán)利要求6的方法,其中XML語言是WML。
9.按照權(quán)利要求5的方法,其中所述網(wǎng)頁是Java服務(wù)器網(wǎng)頁。
10.按照權(quán)利要求2的方法,其中所述網(wǎng)頁被存儲在所述服務(wù)器上。
11.按照權(quán)利要求1-10的任何一個的方法,還包括步驟a)在計算機中建立一個用于動態(tài)數(shù)據(jù)的輸入/輸出緩沖器。
12.按照權(quán)利要求1的方法,其中所述計算機包括所述服務(wù)器。
13.按照權(quán)利要求1-12中的任何一個的方法,其中還包括步驟a)建立在所述小服務(wù)程序?qū)嵗退鼍W(wǎng)絡(luò)公布部件之間的第一端點連接。
14.按照權(quán)利要求13的方法,其中所述端點連接是一個套接口。
15.按照權(quán)利要求13的方法,其中所述端點連接是一個數(shù)據(jù)隊列對象。
16.按照權(quán)利要求13的方法,其中所述端點連接是一個消息隊列。
17.一種程序產(chǎn)品,用于一個計算機網(wǎng)絡(luò)中來執(zhí)行存儲在一個客戶的計算機上的一個應(yīng)用程序,所述計算機程序產(chǎn)品包括一個信號承載介質(zhì),在其上帶有a)一個應(yīng)用程序調(diào)用器,用于在客戶的計算機上將一個應(yīng)用程序在它的本機環(huán)境中啟動和運行;b)多個網(wǎng)絡(luò)用戶接口網(wǎng)頁,用于在所述客戶機上顯示所述應(yīng)用程序的輸入/輸出數(shù)據(jù);c)一個數(shù)據(jù)改發(fā)器,用于向所述網(wǎng)絡(luò)用戶接口網(wǎng)頁改發(fā)所述應(yīng)用程序的輸入/輸出數(shù)據(jù);d)多個對應(yīng)于所述網(wǎng)絡(luò)用戶接口網(wǎng)頁的數(shù)據(jù)對象,用于接收所述應(yīng)用程序的輸入/輸出數(shù)據(jù);e)一個小服務(wù)程序?qū)嵗?,用于用所述?yīng)用程序的輸入/輸出數(shù)據(jù)動態(tài)地更新所述網(wǎng)絡(luò)用戶接口網(wǎng)頁;f)一個網(wǎng)絡(luò)用戶代理程序,用于在所述客戶機上顯示所述更新的網(wǎng)絡(luò)用戶接口網(wǎng)頁。
18.按照權(quán)利要求17的程序產(chǎn)品,還包括一個屏幕定義轉(zhuǎn)換器,用于將所述應(yīng)用程序的輸入/輸出屏幕定義轉(zhuǎn)換為所述網(wǎng)絡(luò)用戶接口網(wǎng)頁。
19.一種計算機系統(tǒng),用于執(zhí)行一個應(yīng)用程序,包括a)一個中央處理單元;b)一個主存儲器,通過一條通信總線與所述中央處理單元連接;c)一個數(shù)據(jù)存儲單元,與一個數(shù)據(jù)存儲接口連接,所述數(shù)據(jù)存儲接口與所述通信總線連接;d)至少一個輸入/輸出裝置,連接到所述通信總線,并與到一個外部計算機網(wǎng)絡(luò)的一個網(wǎng)絡(luò)接口相連接;e)一個應(yīng)用程序,存儲在所述主存儲器中,能夠在所述中央處理單元上被執(zhí)行;f)一個網(wǎng)絡(luò)公布部件;g)一個數(shù)據(jù)改發(fā)器,用于將所述應(yīng)用程序的動態(tài)數(shù)據(jù)改發(fā)到所述網(wǎng)絡(luò)公布部件;h)一個輸入/輸出接口,用于存儲所述被改發(fā)的動態(tài)數(shù)據(jù)。
20.一種計算機服務(wù)器,用于訪問在一個計算機上存儲和執(zhí)行的一個應(yīng)用程序,包括a)一個中央處理單元;b)一個網(wǎng)絡(luò)接口,通過一個網(wǎng)絡(luò)連接到至少一個客戶機;c)一個小服務(wù)程序?qū)嵗?,用于從所述至少一個客戶機接收一個訪問所述應(yīng)用程序的請求,并將所述請求發(fā)送到所述計算機;d)一個服務(wù)器端點連接部,用于向所述計算機發(fā)送實時數(shù)據(jù)和從所述計算機接收實時數(shù)據(jù),所述應(yīng)用程序在所述計算機上被執(zhí)行;e)多個數(shù)據(jù)對象,被提供實時數(shù)據(jù),其中所述小服務(wù)程序從所述應(yīng)用程序接收實時數(shù)據(jù)并向所述數(shù)據(jù)對象提供所述實時數(shù)據(jù)。
21.按照權(quán)利要求20的計算機服務(wù)器,還包括a)多個網(wǎng)絡(luò)顯示網(wǎng)頁,每個網(wǎng)絡(luò)顯示網(wǎng)頁對所述應(yīng)用程序的每個輸入/輸出屏幕定義是唯一的,其中所述小服務(wù)程序更新所述網(wǎng)絡(luò)顯示網(wǎng)頁以通過所述網(wǎng)絡(luò)向所述客戶機發(fā)送。
22.一種用于執(zhí)行安裝在一個計算機上的一個計算機應(yīng)用程序的方法,所述方法包括步驟a)將所述應(yīng)用程序的多個顯示文件轉(zhuǎn)換為多個基于XML的網(wǎng)頁,所述基于XML的網(wǎng)頁能夠顯示所述應(yīng)用程序的動態(tài)數(shù)據(jù);b)在連接到一個網(wǎng)絡(luò)上的所述計算機的一個服務(wù)器中建立一個小服務(wù)程序?qū)嵗?;c)通過因特網(wǎng)從連接到一個服務(wù)器的一個客戶機請求所述應(yīng)用程序;d)在所述計算機上將所述應(yīng)用程序在它的本機環(huán)境中運行;e)在所述計算機中建立一個I/O緩沖器,用于所述應(yīng)用程序的動態(tài)數(shù)據(jù);f)在所述小服務(wù)程序?qū)嵗驮谒鲇嬎銠C上的一個網(wǎng)絡(luò)公布部件之間建立一個端點連接;g)通過所述小服務(wù)程序?qū)嵗龔乃隹蛻魴C向所述應(yīng)用程序來回發(fā)送動態(tài)數(shù)據(jù);h)建立數(shù)據(jù)對象和向所述數(shù)據(jù)對象提供所述動態(tài)數(shù)據(jù);i)利用所述數(shù)據(jù)對象更新至少一個網(wǎng)頁;j)通過因特網(wǎng)向所述客戶機發(fā)送所述被更新的網(wǎng)頁;k)從所述客戶機向服務(wù)器發(fā)送具有響應(yīng)數(shù)據(jù)的網(wǎng)頁以作為輸入數(shù)據(jù)發(fā)送到所述應(yīng)用程序。
23.一種與一個計算機應(yīng)用程序交互的方法,包括a)將一個傳統(tǒng)計算機應(yīng)用程序在它的本機環(huán)境中執(zhí)行;b)通過因特網(wǎng)改發(fā)來自一個客戶機的所述傳統(tǒng)計算機應(yīng)用程序的I/O請求和向所述客戶機的所述傳統(tǒng)計算機應(yīng)用程序的響應(yīng),而不向所述傳統(tǒng)計算機應(yīng)用程序的代碼引入變化。
全文摘要
一種方法和裝置,能夠從諸如因特網(wǎng)的網(wǎng)絡(luò)運行交互傳統(tǒng)應(yīng)用程序而不需要在應(yīng)用程序中改變?nèi)魏未a。因此,所述應(yīng)用程序不知道新的網(wǎng)絡(luò)環(huán)境并繼續(xù)就象在它的本機環(huán)境中運行。可以通過利用可以連接到所述計算機或與其結(jié)合的網(wǎng)絡(luò)服務(wù)器從幾個客戶機裝置中的任何一個訪問傳統(tǒng)應(yīng)用程序,其中在所述計算機上正在執(zhí)行所述應(yīng)用程序。一般,這些傳統(tǒng)應(yīng)用程序?qū)ζ髽I(yè)是重要的,在所述計算機上是自含式的,具有混合的商業(yè)和用戶接口邏輯,并在分布式計算的軟件設(shè)計原則出現(xiàn)之前寫入。在傳統(tǒng)應(yīng)用程序的情況下,萬維網(wǎng)應(yīng)用程序結(jié)構(gòu)所要求的將商業(yè)邏輯與用戶接口邏輯分離是不實用的。諸如精簡的客戶機的客戶機具有一個諸如萬維網(wǎng)瀏覽器的網(wǎng)絡(luò)用戶代理程序,它可以訪問連接到所述計算機的一個網(wǎng)絡(luò)服務(wù)器。本發(fā)明的方法提供了一個環(huán)境使得當(dāng)從所述網(wǎng)絡(luò)用戶代理程序調(diào)用一個應(yīng)用程序的時候,一個運行時間數(shù)據(jù)改發(fā)器截取所述應(yīng)用程序的原始數(shù)據(jù)并將數(shù)據(jù)發(fā)送到所述網(wǎng)絡(luò)服務(wù)器,所述網(wǎng)絡(luò)服務(wù)器隨后在動態(tài)更新諸如Java服務(wù)器網(wǎng)頁的相關(guān)的應(yīng)用程序網(wǎng)頁之后通過網(wǎng)絡(luò)將所述數(shù)據(jù)用于所述網(wǎng)絡(luò)用戶代理程序,所述相關(guān)的應(yīng)用程序網(wǎng)頁通過轉(zhuǎn)換所述傳統(tǒng)應(yīng)用程序的專有顯示屏幕而產(chǎn)生。用戶通過所述網(wǎng)絡(luò)用戶代理程序輸入的數(shù)據(jù)被經(jīng)由同樣的運行時間截取而被返回發(fā)送到所述應(yīng)用程序。以這種方式,在所述應(yīng)用程序現(xiàn)在能夠利用許多因特網(wǎng)和其他網(wǎng)絡(luò)能力的優(yōu)點的同時客戶機和網(wǎng)絡(luò)環(huán)境對于所述應(yīng)用程序是透明的。
文檔編號G06F9/46GK1447937SQ01814158
公開日2003年10月8日 申請日期2001年7月23日 優(yōu)先權(quán)日2000年8月14日
發(fā)明者薩蒂什·岡加比索恩 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
方城县| 连平县| 宁夏| 浮梁县| 武清区| 盐山县| 株洲县| 宜宾市| 库车县| 襄樊市| 佛教| 思南县| 阿坝县| 九寨沟县| 扶余县| 大英县| 吉林省| 香港| 忻城县| 洱源县| 津市市| 佛冈县| 仙桃市| 嘉兴市| 富平县| 玛多县| 朝阳市| 洛南县| 亚东县| 海淀区| 莲花县| 德安县| 册亨县| 嵊州市| 阳春市| 嘉鱼县| 镇雄县| 大邑县| 衡水市| 历史| 嘉鱼县|