国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于網(wǎng)絡(luò)中分布處理的編程接口的制作方法

      文檔序號:7566305閱讀:266來源:國知局
      專利名稱:用于網(wǎng)絡(luò)中分布處理的編程接口的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一個用于網(wǎng)絡(luò)中分布處理的應(yīng)用編程接口。更具體地說本發(fā)明涉及一個應(yīng)用程序接口和相關(guān)的把面向流的協(xié)議轉(zhuǎn)換成面向消息的協(xié)議并多路復(fù)用一個單獨虛電路上的在客戶和服務(wù)器平臺之間的多個邏輯連接的中間件庫。
      當(dāng)前使用的主要的通信網(wǎng)絡(luò)結(jié)構(gòu)利用了分層協(xié)議結(jié)構(gòu)來完成網(wǎng)絡(luò)通信。通常,各層被組成在一個層次結(jié)構(gòu)中。較低的層的功能是在用戶或進程之間提供一個連接如一個終端用戶或一個數(shù)據(jù)應(yīng)用程序。較高的層的功能是在用戶或進程間提供準(zhǔn)確的數(shù)據(jù)交換。通常各層使用不同的協(xié)議以完成其設(shè)計的功能。


      圖1說明了一個使用一七層體系結(jié)構(gòu)的被稱作開放系統(tǒng)互連參考模型(OSI)的通用分層體系結(jié)構(gòu)。所示的體系結(jié)構(gòu)表示一個在數(shù)據(jù)應(yīng)用X和Y之間帶有一個中間結(jié)點的邏輯連接。在端點處信息流過所有七個層而在中間結(jié)點處信息通過較低的三層。圖1也說明了在對應(yīng)層間的同層通信。
      被稱作物理層,數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層的低三層和用戶間提供透明連接并主要是在逐段的基礎(chǔ)上進行操作以控制在處于結(jié)點間的單獨數(shù)據(jù)鏈路上的通信。被稱作應(yīng)用層,表示層和會話層的上面三層保證信息以適當(dāng)?shù)母袷奖粋魉?。中間層,即傳送層是一個上面各層和下面各層之間的接口并保證一個在數(shù)據(jù)應(yīng)用間的透明的端到端邏輯連接。
      圖2說明了另一個稱作DoD參考模型的分層體系結(jié)構(gòu)的例子。DoD參考模型使用了一個四層體系結(jié)構(gòu)并且是為用于各種不同種類的通過通信處理器接口到一個通信子網(wǎng)的主計算機而開發(fā)的。這樣的通信處理器包括接口消息處理器(IMP)和通信子網(wǎng)處理器(CSNP)。DoD參考模型的四個層是網(wǎng)絡(luò)存取層,網(wǎng)間層,主機—主機層和進程/數(shù)據(jù)應(yīng)用層。
      許多利用上面描述的體系結(jié)構(gòu)的通信網(wǎng)絡(luò)當(dāng)前正在全世界使用。這樣的網(wǎng)絡(luò)包括從為獨立建筑或校園提供服務(wù)的局域網(wǎng)到覆蓋全球的廣域網(wǎng)的網(wǎng)絡(luò)。某些這樣的網(wǎng)絡(luò)被專用于特定應(yīng)用而其它的則主要被用于訪問象客戶/服務(wù)器應(yīng)用中的資源共享那樣的位于遠端的功能。在這樣的網(wǎng)絡(luò)中,存在使用比如UNIX,VAX/UMS和DOS/WINDOWS的不同操作系統(tǒng)和比如TCP/IP,DECnet和AP-PC/IU6.2的不同網(wǎng)絡(luò)協(xié)議的混合平臺。結(jié)果,在這樣一個多廠商,多協(xié)議的環(huán)境中很難在數(shù)據(jù)應(yīng)用間進行無縫的分布處理。象終端仿真,網(wǎng)關(guān)和批文件傳送那樣的方法已被用于在各廠商平臺間提供互操作性。然而這樣的方法無法在同層應(yīng)用間提供無縫連接且依賴于具體用戶。
      接口也已被用來改進平臺間的互操作性。例如,傳送層接口(TLI)或套接字接口已被用于客戶/服務(wù)器應(yīng)用。這些接口是使網(wǎng)絡(luò)應(yīng)用能夠被獨立傳送的功能集。然而,這樣的接口使用了以面向字節(jié)的流模式傳送數(shù)據(jù)的網(wǎng)絡(luò)協(xié)議。結(jié)果,當(dāng)與同樣的遠端數(shù)據(jù)應(yīng)用通信時,本地數(shù)據(jù)應(yīng)用創(chuàng)建單獨的虛電路是必要的。另外,各數(shù)據(jù)應(yīng)用需要管理潛在大量的虛電路從而增加了因各數(shù)據(jù)應(yīng)用管理網(wǎng)絡(luò)通信而分配的CPC周期時間。在大規(guī)模的客戶/服務(wù)器應(yīng)用中,這樣的接口沒有減少加在客戶和服務(wù)器平臺上的管理許多建立的虛電路的負(fù)擔(dān)。另外,這樣的接口通常不是對用戶友好的而且需要有經(jīng)驗的網(wǎng)絡(luò)程序員來實現(xiàn)平臺互操作性。
      為了在駐留在不同廠商平臺上的數(shù)據(jù)應(yīng)用之間提供分布應(yīng)用互操作性并使用具有多種協(xié)議的各種分層網(wǎng)絡(luò)組成部分,已開發(fā)出應(yīng)用編程接口和相應(yīng)的面向消息的中間件。面向消息的中間件是一個應(yīng)用編程接口層駐留在數(shù)據(jù)應(yīng)用和網(wǎng)絡(luò)結(jié)構(gòu)之間以在同級應(yīng)用間提供無縫連接。
      面向消息的中間件的一個例子是由Needham,Mass公司的水平策略生成的消息快遞接口。消息快遞接口駐留在一個標(biāo)準(zhǔn)廠商API和商業(yè)(或數(shù)據(jù))應(yīng)用之間并與標(biāo)準(zhǔn)廠商API相互配合解決標(biāo)準(zhǔn)廠商API要向商業(yè)應(yīng)用報告的出錯情況。而消息快遞接口使用了對各應(yīng)用需要專門虛電路和一個象傳輸控制協(xié)議(TCP)那樣的面向字節(jié)流協(xié)議的網(wǎng)絡(luò)拓?fù)洹?br> 另外,在數(shù)據(jù)應(yīng)用開發(fā)期間,設(shè)計者經(jīng)常需要解決網(wǎng)絡(luò)錯誤,同層進程錯誤或其它非數(shù)據(jù)應(yīng)用問題。為糾正這些問題,數(shù)據(jù)應(yīng)用程序中充滿了系統(tǒng)級服務(wù)從而難以開發(fā),測試和維護數(shù)據(jù)應(yīng)用。
      因而,存在一種需要,即針對駐留在客戶平臺和服務(wù)器平臺之間的客戶/服務(wù)器應(yīng)用編程接口增強多平臺和多協(xié)議互操作性并在為駐留在客戶平臺和服務(wù)器平臺之間的應(yīng)用提供透明傳輸時有效減少客戶平臺和服務(wù)器平臺所需的虛電路管理。
      本發(fā)明提供了一種在客戶服務(wù)器應(yīng)用之間傳送獨立通信內(nèi)容的應(yīng)用編程接口。該應(yīng)用編程接口包括用于在多個與一個服務(wù)器應(yīng)用邏輯連接的客戶應(yīng)用之間建立一個單獨的虛電路的裝置??蛻魬?yīng)用駐留在一個客戶平臺上而服務(wù)器應(yīng)用駐留在一個遠端服務(wù)器平臺上。該接口也包括對在虛電路上的客戶和服務(wù)器應(yīng)用之間的數(shù)據(jù)通信進行多路復(fù)用和多路去復(fù)用的裝置。常見的基于網(wǎng)絡(luò)的數(shù)據(jù)通信采用面向字節(jié)流的協(xié)議,因此為多路復(fù)用的目的,用于多路復(fù)用和多路去復(fù)用數(shù)據(jù)通信的裝置最好以字節(jié)流的形式把數(shù)據(jù)轉(zhuǎn)換成面向消息的數(shù)據(jù)包。通過指配給各客戶應(yīng)用的標(biāo)識碼或號來提供客戶應(yīng)用向服務(wù)器應(yīng)用請求數(shù)據(jù)或信息的標(biāo)識。該標(biāo)識碼被包含在消息包中。
      在一個最佳實施例中,用于建立一個單獨虛電路的裝置包括一個設(shè)置成提供一個基于進程間通信的虛電路的第一接口和一個設(shè)置成提供一個基于網(wǎng)間通信的虛電路的第二接口。
      本發(fā)明也提供一個針對客戶服務(wù)器應(yīng)用的通信網(wǎng)絡(luò)。該通信網(wǎng)絡(luò)包括一個具有一個服務(wù)器應(yīng)用和駐留其上的一個通信代理的服務(wù)器平臺和至少一個與該服務(wù)器平臺邏輯連接的客戶平臺。這里至少一個的客戶平臺具有至少一個客戶應(yīng)用和一個駐留其上的通信代理。
      各通信代理最好駐留在客戶和服務(wù)器應(yīng)用之間以提供應(yīng)用間的對該應(yīng)用透明的網(wǎng)絡(luò)通信。該通信也被提供用來通過在一個單獨虛電路上對應(yīng)用間的數(shù)據(jù)通信進行多路復(fù)用以減少虛電路管理。為完成這些功能,通信代理被設(shè)計成包括在至少一個客戶應(yīng)用和服務(wù)器應(yīng)用之間建立單個虛電路的裝置,和對在單獨虛電路上應(yīng)用之間的數(shù)據(jù)通信進行多路復(fù)用和多路去復(fù)用的裝置。
      一個旅行者信息服務(wù)網(wǎng)絡(luò)被提供來允許客戶(例如顧客)獲取個人旅行信息,如點到點旅行路線,或公共旅行信息,如當(dāng)?shù)亟煌ê吞鞖鉅顩r。
      旅行者信息網(wǎng)包括至少一個與數(shù)據(jù)采集平臺邏輯相連并被設(shè)置在其間傳輸數(shù)據(jù)的信息提供器,一個被設(shè)置成接收來自數(shù)據(jù)采集平臺的旅行者數(shù)據(jù)的服務(wù)器平臺和至少一個與服務(wù)器平臺邏輯相連的客戶平臺。服務(wù)器平臺上駐留有一個服務(wù)器應(yīng)用和通信代理。至少的一個客戶平臺上駐留有至少一個客戶應(yīng)用和一個通信代理。
      本發(fā)明也提供了一種在客戶應(yīng)用和服務(wù)器應(yīng)用之間提供數(shù)據(jù)通信接口的方法。該方法包括下述步驟在多個客戶應(yīng)用和一個服務(wù)器應(yīng)用之間建立一個單獨的虛電路,把來自多個客戶應(yīng)用的字節(jié)流數(shù)據(jù)轉(zhuǎn)換成消息包,并把消息包多路復(fù)用至單獨的虛電路上以傳輸?shù)椒?wù)器應(yīng)用。一旦消息包被傳輸?shù)椒?wù)器應(yīng)用,服務(wù)器應(yīng)用對消息包進行多路去復(fù)用并把消息包轉(zhuǎn)換成字節(jié)流數(shù)據(jù)。
      下面參照圖示描述本發(fā)明的最佳實施例,其中圖1說明了當(dāng)前技術(shù)領(lǐng)域中關(guān)于一個通信網(wǎng)的分層體系結(jié)構(gòu);圖2說明了在當(dāng)前技術(shù)領(lǐng)域中關(guān)于一個通信網(wǎng)的另一種體系結(jié)構(gòu);圖3為一個根據(jù)本發(fā)明的關(guān)于結(jié)合通信代理的多平臺通信網(wǎng)的模塊圖;圖4說明了客戶平臺和服務(wù)器平臺間的一個通信序列;圖5為一個建立虛電路的連接表處理的流圖;圖6為一個關(guān)閉虛電路的連接表處理的流圖;圖7為一個根據(jù)本發(fā)明的多平臺通信網(wǎng)的一個可選實施例的模塊圖;圖8為一個關(guān)于說明交通天氣客戶服務(wù)器應(yīng)用的一個類似于圖3的通信網(wǎng)的模塊圖。
      本發(fā)明提供了一個應(yīng)用程序接口(API),它與一個從基于網(wǎng)絡(luò)的數(shù)據(jù)應(yīng)用中抽象出面向系統(tǒng)的服務(wù)以簡化基于網(wǎng)絡(luò)的數(shù)據(jù)應(yīng)用開發(fā)的中間件庫相互配合。
      基于網(wǎng)絡(luò)的數(shù)據(jù)應(yīng)用的簡化允許系統(tǒng)開發(fā)人員減少給市場提供高質(zhì)量數(shù)據(jù)應(yīng)用所必需的開發(fā)和測試時間。
      圖3說明了一個在服務(wù)器平臺14和不同的客戶平臺16和18之間使用通信代理12的多平臺客戶服務(wù)器通信體系結(jié)構(gòu)10。通信代理12包括API和一個相應(yīng)的中間件庫。API有兩個部件,第一個部件為一個在圖3中標(biāo)識為接口“A”的客戶或服務(wù)器應(yīng)用接口的通信代理,而第二個部件為一個在圖3中被標(biāo)識為接口“B”的通信代理接口的通信代理。
      接口部件A提供了一個在客戶應(yīng)用20和通信代理12之間的基于進程間通信(IPC)的虛電路。接口A被提供用來從應(yīng)用中抽象出IPC通信服務(wù)并把其存貯在一個可重用中間件庫模塊(此后稱作“IPC模塊”)中。IPC模塊駐留在通信代理12中。接口部件A的原語包括下述內(nèi)容<pre listing-type="program-listing"><![CDATA[(1)(int)ipc_ref=ipc_server_init((long)network_address)(2)(int)ipc_ref=ipc_client_init((long)network_address)(3)(int)status=ipc_write((char*)buf,(int)buf_length,(int)ipc_ref)(4)(int)status=ipc_read((char**)buf,(int*)buf_length,(int)ipc_ref)(5)(int)status=ipc_close((int)ipc_ref)]]></pre>
      接口B提供了一個在通信代理12之間基于互連網(wǎng)的虛電路,如一個基于傳輸控制協(xié)議/網(wǎng)間協(xié)議(TCP/IP)的虛電路。接口B被提供用來從應(yīng)用中抽象出網(wǎng)絡(luò)通信服務(wù)并把其存貯在一個可重用中間件庫模塊(此后稱作“網(wǎng)絡(luò)模塊”)中。網(wǎng)絡(luò)模塊12也駐留在通信代理12中。接口部件B的原語包括下述內(nèi)容<pre listing-type="program-listing"><![CDATA[(6)(int)net_ref=net_server_init((long)network_address)(7)(int)net_ref=net_client_init((long)network_address)(8)(int)net_ref=net_write((char*)buf,(int)buf_length,(int)net_ref)(9)(int)status=net_read((char**)buf,(int*)buf_length,(int)net_ref)(10)(int)status=net_close((int)net_ref)]]></pre>原語1和6初始化服務(wù)器應(yīng)用通信,即這些原語進行服務(wù)器端點初始化并通知服務(wù)器應(yīng)用開始偵聽客戶連接請求。原語2和7初始化客戶應(yīng)用通信,即這些原語進行客戶端點初始化并建立一個到服務(wù)器應(yīng)用的虛電路。
      原語3和8為客戶應(yīng)用以發(fā)送請求到服務(wù)器應(yīng)用和服務(wù)器應(yīng)用以發(fā)送應(yīng)答給客戶應(yīng)用的通信寫函數(shù)。原語4和9為服務(wù)器用以從客戶應(yīng)用讀取請求和客戶應(yīng)用用以從服務(wù)器應(yīng)用讀取應(yīng)答的通信讀函數(shù)。在原語(3)和(4)中緩沖區(qū)消息包含一個由具體應(yīng)用協(xié)議定義的完整的數(shù)據(jù)單元。
      原語5和10為撤消客戶應(yīng)用和服務(wù)器應(yīng)用間的虛電路的虛電路關(guān)閉函數(shù)。使用這些API部件,網(wǎng)絡(luò)傳輸和進程間通信對于需要這些傳輸?shù)目蛻艉头?wù)器應(yīng)用來說是透明的。圖4說明了一個通過上述接口A和B,即本發(fā)明的API實現(xiàn)客戶應(yīng)用和服務(wù)器應(yīng)用間的透明傳輸?shù)木W(wǎng)絡(luò)通信模型。
      與這些原語相關(guān)的中間件被存貯于在各通信代理中的中間件庫中。附錄A給出了執(zhí)行期望的與各原語相關(guān)的函數(shù)的代碼。
      如上所述,現(xiàn)有技術(shù)領(lǐng)域的網(wǎng)絡(luò)通常使用虛電路協(xié)議以面向字節(jié)的流模式來傳輸數(shù)據(jù)。正如上面提到的,這些協(xié)議需要客戶應(yīng)用在與同一個遠端服務(wù)器應(yīng)用通信時建立單獨的虛電路。這樣,對于大規(guī)模客戶/服務(wù)器應(yīng)用,基于各客戶的虛電路管理覆蓋了客戶和服務(wù)器平臺資源。
      參照圖3,本發(fā)明的通信代理被設(shè)置用來對在一個單獨虛電路上多個客戶應(yīng)用20a—20x或20b—20y和服務(wù)器應(yīng)用22之間的通信數(shù)據(jù)進行多路復(fù)用和多路去復(fù)用。如圖所示,客戶平臺16和18均具有多個與之相應(yīng)的客戶應(yīng)用,對平臺16標(biāo)識為應(yīng)用20a—20x而對平臺18標(biāo)識為應(yīng)用20b—20y。對應(yīng)用間的數(shù)據(jù)通信進行多路復(fù)用減少了分配給客戶和服務(wù)器平臺管理客戶平臺和服務(wù)器平臺之間的虛電路的時間。
      為了復(fù)用各邏輯連接,通信代理把面向字節(jié)流的協(xié)議(例如TCP)轉(zhuǎn)換成面向消息的格式。該功能是通過上述寫和讀原語以及相應(yīng)的中間件庫來完成的。下面要更詳細地描述通信代理的操作。
      下面參照圖3描述一個對客戶應(yīng)用和服務(wù)器應(yīng)用之間的通信進行多路復(fù)用的例子。為了開始與本地客戶平臺16相應(yīng)的客戶應(yīng)用20a和在遠端服務(wù)器平臺14上的遠端服務(wù)器應(yīng)用22之間的通信,客戶應(yīng)用20a發(fā)出,比如一個包含針對目標(biāo)遠端服務(wù)器應(yīng)用22的尋址信息的net—client—init()函數(shù)調(diào)用。該請求由客戶平臺通信代理12通過經(jīng)接口A的進程間通信(IPC)來接管。通信代理12起初確定在客戶應(yīng)用和服務(wù)器應(yīng)用之間是否存在一個虛電路。當(dāng)通信代理在本地客戶應(yīng)用和一個遠端服務(wù)器應(yīng)用之間創(chuàng)建一個虛電路時,通信代理把該連接登錄到一個連接表中。
      通常,連接表入口包括虛電路遠端網(wǎng)絡(luò)地址,一個用于寫入和讀取虛電路的套接字描述符和一個指示有多少邏輯連接正使用該虛電路的邏輯連接(或鏈路)計數(shù)器。這樣,在通信代理在A和B接口上創(chuàng)建一個虛電路之前,該通信代理把被請求的邏輯連接與登錄在連接表中的連接相比較以確定在本地應(yīng)用和目標(biāo)遠端應(yīng)用間是否存在一個虛電路。若存在一個虛電路,則通信代理使用表中的套接字描述符進行通信并增加鏈路計數(shù)。若不存在一個虛電路,則創(chuàng)建一個虛電路且把該連接登錄在連接表中。在該實例中鏈路計數(shù)被初始化為1。圖5說明了上述進行建立虛電路的連接表處理的流程。
      一旦通信代理確定在應(yīng)用間存在虛電路或在應(yīng)用間建立了虛電路,則本地客戶平臺16上的通信代理12把下一個可用邏輯通道ID賦予本地客戶應(yīng)用的A接口。從A接口出的消息被賦以邏輯通道ID而來自B接口的入消息根據(jù)邏輯通道ID被分派到相應(yīng)的本地應(yīng)用20a。在虛電路兩邊的通信代理中保持一張邏輯通道ID表以允許進行多路復(fù)用和多路去復(fù)用操作。
      當(dāng)本地客戶應(yīng)用20a不再需要到遠端服務(wù)器應(yīng)用22的虛電路連接時,本地客戶應(yīng)用20a發(fā)出一個由客戶平臺通信代理12接管的net—close()函數(shù)調(diào)用。這導(dǎo)致在兩邊針對使用的虛電路的邏輯連接表中釋放所用的邏輯連接ID。另外,通信代理減少鏈路計數(shù)器。若沒有其它的使用虛電路的邏輯電路,即鏈路計數(shù)器被減到零,則該虛電路會被關(guān)閉并從各通信代理的連接表中被去掉。圖6說明了上述關(guān)閉虛電路的連接表處理的流程。
      寫控制流程為了向遠端服務(wù)器應(yīng)用22傳輸信息,本地客戶應(yīng)用22創(chuàng)建包含一個消息(信息)和該消息長度的網(wǎng)絡(luò)包。該消息包含一個基于應(yīng)用協(xié)議的數(shù)據(jù)單元。本地客戶應(yīng)用接著調(diào)用例如一個net—write()函數(shù)使得網(wǎng)絡(luò)包通過進程間通信(例如,一個面向字節(jié)流的協(xié)議)沿A接口被發(fā)送出去。駐留在客戶平臺16的通信代理接受網(wǎng)絡(luò)包并把字節(jié)流數(shù)據(jù)轉(zhuǎn)換成面向消息的數(shù)據(jù)格式。若要發(fā)送的消息大于傳輸機制,即接口B支持的最大段長度。則通信代理把消息分成最大段長度減2(以字節(jié)為單位)的分段。各分段被前置一個單字節(jié)邏輯通道ID和一個單字節(jié)后讀期望順序號。序列中最后的包被賦予一個為零的后續(xù)期望順序號,指示后面沒有想要的段。放入一個傳輸段中的消息不用分段且后續(xù)期望順序號被設(shè)成零。通過為邏輯通道ID和后續(xù)期望順序號分配更多的空間,任意數(shù)量的同時連接可支持任意長度的消息。
      讀控制流程為從遠端服務(wù)器應(yīng)用22讀取信息,本地客戶平臺16中的通信代理12讀取單個虛電路,即接口B上的網(wǎng)絡(luò)包并根據(jù)邏輯通道ID對這些包排序。通信代理12去掉邏輯通道ID和順序號并把分段存在一個緩沖內(nèi)存中直至收到后續(xù)期望順序號為零的包。當(dāng)最后的包被收到并存在緩沖內(nèi)存時,一塊消息內(nèi)存被分配以支持在緩沖內(nèi)存中的分段。接著緩沖區(qū)中完整的消息通過A接口被傳送到由邏輯通道ID標(biāo)識的本地客戶應(yīng)用(例如應(yīng)用20a—20x或20b—20y)。通過比如一個由本地客戶應(yīng)用初始化的net—read函數(shù)來檢索該消息。
      除了本發(fā)明的ADI中的A和B接口部件,可以使用其它已知的接口來構(gòu)成網(wǎng)絡(luò)。如圖3所示,一個被標(biāo)識為接口“C”的數(shù)據(jù)采集接口的信息提供者和一個被標(biāo)識為接口“D”的服務(wù)器應(yīng)用接口的數(shù)據(jù)采集接口被提供作為主接口。
      C接口把來自象旅行和天氣信息提供者那樣的不同信息提供者28和30的數(shù)據(jù)輸入到駐留在數(shù)據(jù)采集平臺26上的數(shù)據(jù)采集應(yīng)用24。C接口可以使用已知的文件傳輸協(xié)議,如一個通過傳輸非結(jié)構(gòu)化數(shù)據(jù)文件的撥號連接的1K—XModem糾錯文件傳輸協(xié)議。一個適用的協(xié)議的例子是WINDOWS的PROCOMM PLUS,它是建立在數(shù)據(jù)采集平臺26上的商業(yè)軟件包。
      再次參照圖3,D接口把來自數(shù)據(jù)采集應(yīng)用24的信息提供者數(shù)據(jù)傳送給服務(wù)器應(yīng)用22。最好是D接口包括一個在傳輸數(shù)據(jù)文件的TCP/IP協(xié)議棧上的網(wǎng)絡(luò)文件服務(wù)(NFS)。一個適用的接口的例子是WINDOWS的Chameleon NFS,它也是建立在數(shù)據(jù)采集平臺26上的一個商業(yè)軟件包。
      C和D接口間的聯(lián)系是由數(shù)據(jù)采集應(yīng)用提供且最好是一個包含在PROCOMM PLUS環(huán)境中的10線WINDOWS AspectScript。在文件傳輸期間Aspect Script在數(shù)據(jù)采集平臺上緩沖輸入的數(shù)據(jù)文件并在文件傳輸完成時,該文件被拷貝到一個由對應(yīng)于一個服務(wù)器平臺14上的文件系統(tǒng)的網(wǎng)絡(luò)文件服務(wù)支持的虛擬驅(qū)動器上。
      在一個如圖7所示的可選的實施例中,D接口可由A和B接口以及相應(yīng)的通信代理12代替。A和B接口以及通信代理12以上述方式進行操作對在一單個虛電路上的通信進行多路復(fù)用和多路去復(fù)用并在客戶和服務(wù)器應(yīng)用間提供透明網(wǎng)絡(luò)通信。
      圖8給出一個結(jié)合本發(fā)明的通信代理的示例客戶—服務(wù)器應(yīng)用。所示的客戶—服務(wù)器應(yīng)用是一個包含交通和天氣數(shù)據(jù)的服務(wù)器29和31,多用戶客戶平臺16和18以及象接口A和B那樣的多個實時數(shù)據(jù)源旅行者信息服務(wù)(TIS)。旅行者信息服務(wù)能夠為用戶提供個人的(例如住所到工作地旅行信息)和/或供公用的旅行報告(例如本地交通和天氣)。TIS的網(wǎng)絡(luò)體系結(jié)構(gòu)類似于圖3所示且在前面描述過的網(wǎng)絡(luò)體系結(jié)構(gòu)。
      在操作上,交通和天氣數(shù)據(jù)由信息提供者32和34通過接口C傳輸?shù)綄?yīng)的數(shù)據(jù)采集平臺26和27。在接口D上交通和天氣數(shù)據(jù)被傳輸?shù)今v留在服務(wù)器平臺14上的TIS服務(wù)器應(yīng)用22。使用已知的加值處理技術(shù),交通和天氣數(shù)據(jù)被分段和重新組合并且接著被存在TIS服務(wù)器平臺數(shù)據(jù)庫36中。值相加處理在客戶請求時進行從服務(wù)器平臺到客戶的個人旅行者報告或信息傳輸。
      參照圖4和8,根據(jù)由前述原語1和6初始化并偵聽客戶請求的服務(wù)平臺14來描述TIS網(wǎng)絡(luò)的操作。為查詢一個旅行者報告,客戶通過已知的撥入或T1/ISDN訪問技術(shù)訪問TIS客戶應(yīng)用20a并發(fā)出一個對旅行和/或天氣數(shù)據(jù)的請求。TIS客戶應(yīng)用20a通過發(fā)出例如一個把目標(biāo)遠端應(yīng)用的尋址信息插入網(wǎng)絡(luò)包(例如字節(jié)流數(shù)據(jù))中并使數(shù)據(jù)通過進程間通信在A接口上被發(fā)送出去的ipc—client—init()函數(shù)調(diào)用來發(fā)出一個網(wǎng)絡(luò)請求。在本地客戶平臺16中的通信代理12在本地客戶平臺16接受本地應(yīng)用網(wǎng)絡(luò)請求并檢查虛電路連接表以確定在本地客戶應(yīng)用20a和遠端服務(wù)器應(yīng)用22之間是否存在一條虛電路。若不存在一條虛電路,則通過在B接口上發(fā)出int net—ref=net—client—init((long)network—address)原語來創(chuàng)建一個虛電路。
      一旦建立了虛電路,平地平臺16中的通信代理12發(fā)出把面向字節(jié)的流數(shù)據(jù)轉(zhuǎn)換成面向消息的數(shù)據(jù)包并通過B接口傳送數(shù)據(jù)請求的數(shù)據(jù)寫原語(即,int net—ref=net—write((char*)buf,(int)buf—length,(int)net—ref)原語)。駐留在服務(wù)器平臺14上的通信代理72接受數(shù)據(jù)請求并發(fā)出通過接口A發(fā)送數(shù)據(jù)給服務(wù)器應(yīng)用22的數(shù)據(jù)寫原語(即,int status=ipc—write((char*)buf,(int)buf—length,(int)ipc—rer)原語)。
      服務(wù)器應(yīng)用22響應(yīng)于數(shù)據(jù)請求并使用標(biāo)準(zhǔn)的面向字節(jié)流的協(xié)議把被請求的數(shù)據(jù)發(fā)到A接口上。服務(wù)器平臺14上的通信代理12接受發(fā)送數(shù)據(jù)請求并發(fā)出數(shù)據(jù)寫原語(例如,int net—ref=net—write((char*)buf,(int)buf—length,(int)net—ref)原語)。如上所述,發(fā)出數(shù)據(jù)寫原語把面向字節(jié)的數(shù)據(jù)流轉(zhuǎn)換成面向消息的數(shù)據(jù)流并通過B接口把信息傳送到本地客戶平臺16。
      本地平臺16中的通信代理12通過發(fā)出一個數(shù)據(jù)讀原語(即,int status=net—read((char**)buf,(int*)buf—length,(int)net=ref)原語)來讀取服務(wù)器響應(yīng),把面向消息的數(shù)據(jù)流再轉(zhuǎn)換成面向字節(jié)的數(shù)據(jù)流并通過A接口把信號傳送到合適的TIS客戶應(yīng)用20。TIS客戶應(yīng)用20接著處理接收的數(shù)據(jù)并通過已知的撥入或T1/ISDN訪問技術(shù)以期望的格式把數(shù)據(jù)傳到客戶。
      這里所描述的僅僅是為了說明本發(fā)明原理的應(yīng)用。本技術(shù)領(lǐng)域的技術(shù)人員可以實現(xiàn)其它方案和方法而并不偏離本發(fā)明的原則和范圍。
      權(quán)利要求
      1.一個在客戶—服務(wù)器應(yīng)用中傳輸獨立通信內(nèi)容的應(yīng)用接口,其包括在多個與—個客戶平臺相聯(lián)的客戶應(yīng)用與一個與服務(wù)器平臺相聯(lián)的服務(wù)器應(yīng)用之間建立一條單獨虛電路的裝置;和在上述虛電路上對客戶和服務(wù)器應(yīng)用間的數(shù)據(jù)通信進行多路復(fù)用和多路去復(fù)用的裝置。
      2.如權(quán)利要求1所述的應(yīng)用接口,其中上述對數(shù)據(jù)通信進行多路復(fù)用和多路去復(fù)用的裝置包括把字節(jié)流模式的數(shù)據(jù)轉(zhuǎn)換成面向消息格式的裝置。
      3.如權(quán)利要求1所述的應(yīng)用接口,其中上述建立一單獨虛電路的裝置包括一個被設(shè)置成提供基于進程間通信的虛電路的第一接口和被設(shè)置成提供基于網(wǎng)間的虛電路的第二接口。
      4.一個用于客戶—服務(wù)器應(yīng)用的通信網(wǎng),其包括一個具有服務(wù)器應(yīng)用和駐留其上的通信代理的服務(wù)器平臺;至少一個與上述服務(wù)器平臺邏輯相連的客戶平臺,上述至少的一個客戶平臺具有至少一個客戶應(yīng)用和一個駐留其上的通信代理;其中上述通信代理包含在上述至少的一個客戶應(yīng)用和上述服務(wù)器應(yīng)用之間建立一單獨虛電路的裝置,和對在上述單獨虛電路上處于上述至少的一個客戶應(yīng)用和上述服務(wù)器應(yīng)用之間的數(shù)據(jù)通信進行多路復(fù)用和多路去復(fù)用的裝置。
      5.一個旅行者信息提供網(wǎng)絡(luò),其包括至少一個與一數(shù)據(jù)采集平臺邏輯相連并被設(shè)置成在其間傳輸數(shù)據(jù)的信息提供者;一個被設(shè)置成從上述數(shù)據(jù)采集平臺接收上述旅行者數(shù)據(jù)的服務(wù)器平臺,上述服務(wù)器平臺具有一個服務(wù)器應(yīng)用的駐留其上的通信代理;至少一個與上述服務(wù)器平臺邏輯相連的客戶平臺,上述至少的一個客戶平臺具有至少一個客戶應(yīng)用和一個駐留其上的通信代理;其中上述通信代理包括在上述至少的一個客戶應(yīng)用和上述服務(wù)器應(yīng)用之間建立一個單獨虛電路的裝置和對在上述單獨虛電路上處于上述至少的一個客戶應(yīng)用和上述服務(wù)器應(yīng)用之間的數(shù)據(jù)通信進行多路復(fù)用和多路去復(fù)用的裝置。
      6.一個為客戶和服務(wù)器應(yīng)用間數(shù)據(jù)通信提供接口的方法,其包括在多個客戶應(yīng)用和一個服務(wù)器應(yīng)用之間建立一條單獨的虛電路;把來自上述多個客戶應(yīng)用的字節(jié)流數(shù)據(jù)轉(zhuǎn)換成消息數(shù)據(jù)包并把上述消息數(shù)據(jù)多路復(fù)用到上述單獨虛電路上從而傳送到上述服務(wù)器應(yīng)用;在上述服務(wù)器應(yīng)用處對上述消息數(shù)據(jù)包進行多路去復(fù)用;把上述消息數(shù)據(jù)包轉(zhuǎn)換成字節(jié)流數(shù)據(jù);以及把上述字節(jié)流數(shù)據(jù)傳送到上述服務(wù)器應(yīng)用;
      7.如權(quán)利要求6所述的方法,其中還包括當(dāng)在上述多個客戶應(yīng)用和上述服務(wù)器應(yīng)用間傳送數(shù)據(jù)后撤除上述單獨虛電路。
      全文摘要
      一個把面向流的協(xié)議轉(zhuǎn)換成面向消息的協(xié)議,通過一單獨虛電路多路復(fù)用在客戶和服務(wù)器平臺間的多個邏輯連接并在客戶和服務(wù)器平臺間提供透明網(wǎng)絡(luò)通信傳輸?shù)膽?yīng)用程序接口(API)和中間件庫。
      文檔編號H04L29/06GK1117616SQ9510763
      公開日1996年2月28日 申請日期1995年6月29日 優(yōu)先權(quán)日1994年6月30日
      發(fā)明者理查德·詹姆斯·加里克 申請人:美國電報電話公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1