專利名稱:一種網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)交換機(jī)制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般的涉及通信領(lǐng)域。更具體的,本發(fā)明涉及用于網(wǎng)絡(luò)應(yīng)用程序之間傳送數(shù)據(jù)的方法和系統(tǒng)。
背景技術(shù):
毋庸置疑,網(wǎng)絡(luò)的迅速發(fā)展已經(jīng)影響到人們的日常生活?,F(xiàn)在更多的人習(xí)慣發(fā)送電子郵件,而不是通過普通的的郵政服務(wù)發(fā)送消息,并且從網(wǎng)站上閱讀每日的新聞時(shí)事,而不是通過廣播或則報(bào)刊等傳統(tǒng)媒體。還可通過電子商務(wù)進(jìn)行貿(mào)易。所有這一切都成為了當(dāng)今的時(shí)尚。
上述的網(wǎng)絡(luò)的各種應(yīng)用,都可歸納為網(wǎng)絡(luò)應(yīng)用程序。網(wǎng)絡(luò)應(yīng)用程序至少包括兩個(gè)程序主體,并且分布于網(wǎng)絡(luò)的不同節(jié)點(diǎn),程序主體之間通過網(wǎng)絡(luò)協(xié)議由一方發(fā)起進(jìn)行握手連接。連接完成后程序主體之間可進(jìn)行數(shù)據(jù)交換從而滿足程序功能的需求。例如電子郵件程序,用戶起草完郵件點(diǎn)擊發(fā)送的時(shí)候,用戶操作的程序主體通過網(wǎng)絡(luò)協(xié)議向遠(yuǎn)程郵件服務(wù)器程序主體發(fā)起握手連接,連接完成后發(fā)送郵件數(shù)據(jù)給服務(wù)器程序主體,服務(wù)器接收完成后返回確認(rèn)消息,關(guān)閉連接。
網(wǎng)絡(luò)協(xié)議包括了網(wǎng)絡(luò)物理層、數(shù)據(jù)鏈路層、網(wǎng)間層、傳輸層,這四層協(xié)議是網(wǎng)絡(luò)的的基本組成要素,也是網(wǎng)絡(luò)應(yīng)用程序運(yùn)行的基本環(huán)境。網(wǎng)絡(luò)應(yīng)用程序的一方發(fā)出的握手連接信號(hào)遞交給傳輸層,由傳輸層再遞交給網(wǎng)間層進(jìn)行網(wǎng)絡(luò)尋徑,網(wǎng)間層再遞交給數(shù)據(jù)鏈路層進(jìn)行物理編址最后通過物理層傳輸?shù)搅硪环匠绦蛑黧w的物理層,另一方網(wǎng)絡(luò)協(xié)議再經(jīng)過相反的轉(zhuǎn)換把物理層信號(hào)轉(zhuǎn)換到傳輸層后遞交給程序主體。本發(fā)明的數(shù)據(jù)交換機(jī)制位于傳輸層之上,歸屬于應(yīng)用層協(xié)議類型。
程序主要由可執(zhí)行代碼和數(shù)據(jù)組成,單機(jī)運(yùn)行的程序代碼和數(shù)據(jù)是合體為一的,可執(zhí)行代碼在單一電腦上運(yùn)行,并且讀取和保存數(shù)據(jù)均在本機(jī)上,這和網(wǎng)絡(luò)應(yīng)用程序的重要區(qū)別在于數(shù)據(jù)的存放位置。網(wǎng)絡(luò)應(yīng)用程序的可執(zhí)行代碼所需要的數(shù)據(jù)位于網(wǎng)絡(luò)的不同節(jié)點(diǎn),不同節(jié)點(diǎn)在物理上可能是遠(yuǎn)在千里外的另一城市,節(jié)點(diǎn)間程序主體通過如上所述的網(wǎng)絡(luò)協(xié)議進(jìn)行連接。不同節(jié)點(diǎn)的程序必須收到所需的數(shù)據(jù)后方可完成相應(yīng)功能。例如用戶端郵件程序必須接收到服務(wù)器發(fā)送的信件數(shù)據(jù)后才可完成接收功能,并將郵件顯示出來,如沒有接收到數(shù)據(jù)則無法完成郵件顯示功能。
目前,網(wǎng)絡(luò)程序設(shè)計(jì)者一般都是自定義本程序的數(shù)據(jù)交換規(guī)則,如郵件程序數(shù)據(jù)交換規(guī)則定義為,首先用戶端發(fā)送Mail frombai@china.com,然后服務(wù)器返回250 OK,依次類推來完成數(shù)據(jù)交換。目前通常的做法主要存在兩個(gè)問題1、數(shù)據(jù)交換規(guī)則只能限定于本程序使用。
2、不能自適應(yīng)新的數(shù)據(jù)類型,增加數(shù)據(jù)類型必須修改規(guī)則。
本發(fā)明主要解決以上兩個(gè)問題,本發(fā)明數(shù)據(jù)交換機(jī)制可以通用于各網(wǎng)絡(luò)程序,而且能夠自動(dòng)適應(yīng)新的數(shù)據(jù)類型,包括二進(jìn)制數(shù)據(jù)。這將極大提高網(wǎng)絡(luò)程序的開發(fā)效率。
發(fā)明內(nèi)容
本發(fā)明主要在于提供一套完整的網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)交換機(jī)制,首先按照本發(fā)明對(duì)數(shù)據(jù)進(jìn)行建模,本發(fā)明包括一套完整的數(shù)據(jù)建模語言。完成建模后再按照本發(fā)明中傳輸規(guī)則對(duì)數(shù)據(jù)模型進(jìn)行傳輸,數(shù)據(jù)的傳輸是雙工模式,任何網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù)發(fā)送和接受都依據(jù)本發(fā)明中的傳輸規(guī)則進(jìn)行傳輸。最后對(duì)接收的數(shù)據(jù)模型進(jìn)行解析,依據(jù)本發(fā)明中的解析規(guī)則形成數(shù)據(jù)結(jié)構(gòu)體,提供給程序使用。
本發(fā)明主要由以下三部分組成,下面逐一進(jìn)行描述一、數(shù)據(jù)建模部分?jǐn)?shù)據(jù)建模語言定義如下(本建模語言采用BNF方法定義)符號(hào)示意::=定義為 <>非終端符號(hào)[]可選{}重復(fù)0-n|或則 \必選一
<pre listing-type="program-listing"><o(jì)OBJECT>::=OBJECT<o(jì)Base><o(jì)Name><CR><o(jì)BEGIN><CR>{<o(jì)Name>.<o(jì)Attribute><CR>}{<o(jì)Name>.<o(jì)Matrix> <CR>}{<o(jì)OBJECT> <CR>}<o(jì)END><CR><o(jì)Base>::=<Alpha>{<Character>}<o(jì)Name>::=<Alpha>{<Character>}<o(jì)BEGIN>::={<o(jì)END> ::= }<o(jì)Attribute>::=\<o(jì)Attr_1>|<o(jì)Attr_2>\<o(jì)Attr_1>::=<Character>=["]<Character>["]<o(jì)Attr_2>::=<o(jì)Base>=<o(jì)Name>|<o(jì)Extend><o(jì)Matrix>::=\<o(jì)Matr_1>|<o(jì)Matr_2>|<o(jì)Matr_3>|<o(jì)Matr_4>\<o(jì)Matr_1>::=<Character>[]=["]<Character>["]{,["]<Character>["]}<o(jì)Matr_2>::=<o(jì)Base>[]=<o(jì)Name>|<o(jì)Extend>{,<o(jì)Name>|<o(jì)Extend>}<o(jì)Matr_3>::=<Character>[<Digit>{<Digit>}]=<Character><o(jì)Matr_4>::=<o(jì)Base>[<Digit>{<Digit>}]=<o(jì)Name>|<o(jì)Extend><o(jì)Extend>::=<o(jì)Name>.<o(jì)Name>{.<o(jì)Name>}<Character>::=<Alpha>|<Digit>|<Special>{<Alpha>|<Digit>|<Special>}<Alpha> ::=a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z<Digit> ::=0|1|2|3|4|5|6|7|8|9<Special>::=+|-|*|/|<|>|.|,|;| |_|!|@|#|$|%|^|&amp;|*|(|)|[|]<CR>::=Enter Key<br/></pre>
二、傳輸規(guī)則部分一個(gè)數(shù)據(jù)包由如下格式的10段連續(xù)組成,各段位長如下所標(biāo)注| 1 | 1 | n | m | 1 | n | m | 1 | n | m |第1段表示數(shù)據(jù)類型,共分為EmObject,EmAttribute,EmMatrix,EmBinary,EmEnd第2段表示下一段n的長度第3段表示下一段m的長度第4段表示數(shù)據(jù)體第5段表示下一段n的長度第6段表示下一段m的長度第7段表示數(shù)據(jù)體第8段表示下一段n的長度第9段表示下一段m的長度第10段表示數(shù)據(jù)體三、解析機(jī)制部分接收方對(duì)數(shù)據(jù)進(jìn)行解析后形成數(shù)據(jù)結(jié)構(gòu)體,數(shù)據(jù)結(jié)構(gòu)的名字可在程序代碼中任意定義,這樣滿足了不同數(shù)據(jù)類型的組合定義需求。數(shù)據(jù)結(jié)構(gòu)體中的數(shù)據(jù)名稱根據(jù)數(shù)據(jù)模型定義而動(dòng)態(tài)創(chuàng)建,這樣滿足了新增數(shù)據(jù)類型的擴(kuò)充需求。
圖1是本發(fā)明的系統(tǒng)流程圖首先從A01開始,節(jié)點(diǎn)A程序運(yùn)行。
進(jìn)入A02點(diǎn),根據(jù)本發(fā)明中的語法規(guī)則進(jìn)行數(shù)據(jù)建模。
進(jìn)入A03點(diǎn),根據(jù)本發(fā)明中的傳輸規(guī)則對(duì)數(shù)據(jù)進(jìn)行打包。
進(jìn)入B01點(diǎn),節(jié)點(diǎn)B程序接收數(shù)據(jù)。
進(jìn)入B02點(diǎn),根據(jù)本發(fā)明中的解析規(guī)則,B程序?qū)?shù)據(jù)解析。
進(jìn)入B03點(diǎn),根據(jù)B02的解析形成數(shù)據(jù)體。
進(jìn)入B04點(diǎn),節(jié)點(diǎn)B程序調(diào)用A程序傳遞過來的數(shù)據(jù)。
進(jìn)入B05點(diǎn),節(jié)點(diǎn)B程序?qū)?shù)據(jù)進(jìn)行建模。
進(jìn)入B06點(diǎn),節(jié)點(diǎn)B程序傳輸數(shù)據(jù)給A程序。
進(jìn)入A04點(diǎn),節(jié)點(diǎn)A程序接收數(shù)據(jù)。
進(jìn)入A05點(diǎn),節(jié)點(diǎn)A程序?qū)?shù)據(jù)進(jìn)行解析。
進(jìn)入A06點(diǎn),根據(jù)A05的數(shù)據(jù)形成數(shù)據(jù)體。
進(jìn)入A01點(diǎn),節(jié)點(diǎn)A程序調(diào)用B程序傳遞過來的數(shù)據(jù)。
圖2是單一個(gè)節(jié)點(diǎn)程序所具備的基本功能
具體實(shí)施例方式
以下舉例來詳細(xì)說明本發(fā)明的實(shí)施方式。
設(shè)想將要開發(fā)一個(gè)遠(yuǎn)程考試的網(wǎng)絡(luò)應(yīng)用程序,程序分為考生部分和服務(wù)器部分??忌糠殖绦蛟趨⒓涌荚囌呒彝ル娔X上運(yùn)行,負(fù)責(zé)獲取題目填寫答案發(fā)送給服務(wù)器,最后獲取分?jǐn)?shù)。服務(wù)器部分在培訓(xùn)中心運(yùn)行,負(fù)責(zé)發(fā)送題目給考生,判斷答案是否正確,最后給考生發(fā)送分?jǐn)?shù)。
本程序涉及的數(shù)據(jù)如下試題部分試題編號(hào)、試題內(nèi)容、試題答案考生部分準(zhǔn)考證號(hào)、姓名、分?jǐn)?shù)根據(jù)本發(fā)明建立數(shù)據(jù)模型如下<pre listing-type="program-listing">OBJECT wxEXAMINATION aExam{ aExam.No=1 aExam.Content=“《望廬山瀑布》的作者是誰?”aExam.Result=“李白”}OBJECT wxSTUDENT aStudent{ aStudent.No=200811863 aStudent.Name=王智勇}<br/></pre>考生啟動(dòng)程序后,首先形成數(shù)據(jù)模型為aStudent,依據(jù)本發(fā)明中的規(guī)則形成如下數(shù)據(jù)包進(jìn)行發(fā)送(中間的符號(hào)|這里作為分割顯示用,空格是便于閱讀)EmObject |1|9|wxSTUDENT|1|8|aStudent |1|0|EmAttribute |1|2| No |1|9| 200811863|1|0|EmAttribute |1|4| Name|1|6|王智勇|1|0|EmEnd|1|0|1|0|1|0|服務(wù)器部分接收到如上數(shù)據(jù)包后進(jìn)行解析,依據(jù)本發(fā)明將解析出如下的動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)體wxSTUDENT aStudentaStudent(“No”)
aStudent(“Name”)服務(wù)器程序根據(jù)數(shù)據(jù)結(jié)構(gòu)體aStudent來訪問No和Name字段的內(nèi)容。依此記錄該生開始考試。服務(wù)器以同樣的原理將wxEXAMINATION試卷的數(shù)據(jù)發(fā)送給考生部分程序??忌糠殖绦蚋鶕?jù)數(shù)據(jù)體aExamination來顯示試題。
當(dāng)需要增加新的數(shù)據(jù)類型的時(shí)候,例如需要增加輸入考生的身份證號(hào)碼。依據(jù)本發(fā)明只需要對(duì)wxSTUDENT做屬性增加即,增加后如下所示OBJECT wxSTUDENT aStudent{aStudent.No=200811863aStudent.Name=王智勇aStudent.ID=320211750418091}再依據(jù)本發(fā)明傳遞到服務(wù)器后,服務(wù)器部分程序同樣還是使用數(shù)據(jù)體aStudent來訪問,該數(shù)據(jù)體將自動(dòng)增加ID屬性,服務(wù)器程序可直接通過aStudent(“ID”)來訪問該數(shù)據(jù)。
如將試卷定義為只可n個(gè)特殊考生參加,則數(shù)據(jù)模型可定義為OBJECT wxEXAMINATION aExam{aExam.No=1aExam.Content=“《望廬山瀑布》的作者是誰?”aExam.Result=“李白”aExam.wxSTUDENT=aStudent,bStudent,cStudent}通過本發(fā)明的數(shù)據(jù)模型和解析機(jī)制的配合來實(shí)現(xiàn)了對(duì)新增數(shù)據(jù)類型的無縫處理,再結(jié)合本發(fā)明傳輸機(jī)制使得新增加數(shù)據(jù)類型不影響程序的已有結(jié)構(gòu),原程序可以立刻訪問到新增加的數(shù)據(jù)而不需要做任何額外的工作。并且本發(fā)明可描述關(guān)系型數(shù)據(jù)、樹形數(shù)據(jù)、和網(wǎng)狀數(shù)據(jù)。
另外綜上所述,本發(fā)明網(wǎng)絡(luò)程序數(shù)據(jù)交換機(jī)制可適用于任何類型的網(wǎng)絡(luò)應(yīng)用程序的開發(fā),極大簡化了網(wǎng)絡(luò)程序開發(fā)中的數(shù)據(jù)處理部分工作。
權(quán)利要求
1.一種網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)交換機(jī)制,包括將原始數(shù)據(jù)建成統(tǒng)一數(shù)據(jù)模型的數(shù)據(jù)建模語言;將數(shù)據(jù)模型形成網(wǎng)絡(luò)數(shù)據(jù)包的數(shù)據(jù)傳輸規(guī)則;將數(shù)據(jù)包中數(shù)據(jù)進(jìn)行解析,形成數(shù)據(jù)體規(guī)則;
2.如權(quán)利要求1所述的網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)交換機(jī)制,其中,該數(shù)據(jù)建模語言可適應(yīng)各種類型的數(shù)據(jù),包括數(shù)字、文本、特殊符號(hào)、二進(jìn)制等。并可實(shí)現(xiàn)對(duì)關(guān)系、網(wǎng)狀、和樹形結(jié)構(gòu)數(shù)據(jù)進(jìn)行描述。
3.如權(quán)利要求1所述的網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)交換機(jī)制,其中,該數(shù)據(jù)模型在新增加數(shù)據(jù)類型時(shí)不影響原有的程序結(jié)構(gòu),而且可以在不增加、不修改程序代碼的前提下讓原有程序訪問到新增加的數(shù)據(jù)。
4.如權(quán)利要求1所述的網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)交換機(jī)制,其中,該數(shù)據(jù)傳輸規(guī)則在完成傳輸數(shù)據(jù)的同時(shí)保證了數(shù)據(jù)流量的最小化,以動(dòng)態(tài)大小數(shù)據(jù)包形式傳輸。
5.如權(quán)利要求1所述的網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)交換機(jī)制,其中,該數(shù)據(jù)傳輸規(guī)則不受建模語言中新增加數(shù)據(jù)類型影響,可自適應(yīng)新增加的數(shù)據(jù)類型。
6.如權(quán)利要求1所述的網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)交換機(jī)制,其中,該數(shù)據(jù)解析規(guī)則不受建模語言中新增加數(shù)據(jù)類型影響,可自適應(yīng)新增加的數(shù)據(jù)類型。
全文摘要
本發(fā)明主要在于提供一套完整的網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)交換機(jī)制,首先按照本發(fā)明對(duì)數(shù)據(jù)進(jìn)行建模,本發(fā)明包括一套完整的數(shù)據(jù)建模語言。完成建模后再按照本發(fā)明中傳輸規(guī)則對(duì)數(shù)據(jù)模型進(jìn)行傳輸,數(shù)據(jù)的傳輸是雙工模式,任何網(wǎng)絡(luò)節(jié)點(diǎn)的數(shù)據(jù)發(fā)送和接受都依據(jù)本發(fā)明中的傳輸規(guī)則進(jìn)行傳輸。最后對(duì)接收的數(shù)據(jù)模型進(jìn)行解析,依據(jù)本發(fā)明中的解析規(guī)則形成數(shù)據(jù)結(jié)構(gòu)體,提供給程序使用。本發(fā)明本數(shù)據(jù)交換機(jī)制可以通用于各類型網(wǎng)絡(luò)程序,而且能夠自動(dòng)適應(yīng)新的數(shù)據(jù)類型,包括二進(jìn)制數(shù)據(jù)。這將極大提高網(wǎng)絡(luò)程序的開發(fā)效率。
文檔編號(hào)H04L12/58GK101068241SQ20071001995
公開日2007年11月7日 申請(qǐng)日期2007年2月5日 優(yōu)先權(quán)日2007年2月5日
發(fā)明者柏基干 申請(qǐng)人:柏基干