專利名稱:一種面向對象的ajax框架模型系統及其處理方法
技術領域:
本發明屬于計算機領域,涉及一種程序設計框架模型系統,具體的說是一種面向對象的AJAX框架模型系統及其處理方法。
背景技術:
Asynchronous JavaScript and XML (AJAX)異步 JavaScript 和 XML,是指一種創建交互式網頁應用的網頁開發技術,該技術在1998年前后得到了應用。允許客戶端腳本發送HTTP請求(XMLHTTP)的第一個組件由Outlook Web Access小組寫成,該組件原屬于微軟Exchange Server,并且迅速地成為了 hternet Explorer 4. 0的一部分。部分觀察家認為,Outlook Web Access是第一個應用了 AJAX技術的成功的商業應用程序,并成為包括Oddpost的網絡郵件產品在內的許多產品的領頭羊。但是,2005年初,許多事件使得 AJAX被大眾所接受,Google在它著名的交互應用程序中使用了異步通訊,如Google討論組、Google地圖、Google搜索建議、Gmail等。AJAX以提高系統性能,優化用戶界面。在當前的網絡應用中,AJAX技術被廣泛應用,如Google的地圖、討論組等。原始的AJAX框架模型系統是基于WEB請求面向過程的模式,每個AJAX請求都獨立對應到自己指定的服務器端地址(URI),對于大中型的企業開發應用來說,原始的AJAX框架是面向過程而不是面向對象的,大多有著代碼編寫量大、處理邏輯零散不易維護的特點。
發明內容
本發明所要解決的技術問題是針對以上現有技術存在的缺點,提出一種面向對象的AJAX框架模型系統,使客戶端javascript代碼及服務器端的代碼更易寫、易用、易維護。本發明解決以上技術問題的技術方案是一種面向對象的AJAX框架模型系統,包括客戶端和服務器端,客戶端和服務器端之間通過網絡通訊,服務器端包括接收模塊、分發模塊、處理模塊、輸出模塊和錯誤處理模塊,接收模塊的輸出接分發模塊的輸入及錯誤處理模塊的第一輸入,分發模塊的輸出接處理模塊模塊的輸入及錯誤處理模塊的第二輸入,處理模塊的輸出接輸出模塊的第一輸入及錯誤處理模塊的第三輸入,錯誤處理模塊的輸出接所述輸出模塊的第二輸入;客戶端用以使用AJAX將所有的請求都指向相同的服務器地址,然后將請求的目標、方法和參數信息以固定的方式組織好,發送給服務器,之后等待服務器的響應,處理服務器的返回結果;接收模塊設有一個公開的URI,用以負責接受所有的客戶端請求,將這些請求信息交給分發模塊處理,接收到無法解釋的請求,則轉向錯誤處理模塊;分發模塊用以負責將請求信息中的請求目標對象信息解出,并交給指定的處理模塊單元來處理,通過讀取一個處理模塊信息的列表,從請求中獲得要求的處理模塊標識信息,與列表中的信息進行比對,如果找到指定的處理模塊,則將請求交給指定的處理模塊進行處理,否則轉向錯誤處理模塊;處理模塊用以負責對請求信息進行具體的邏輯處理,并給出返回值。處理過程中如果出現錯誤,將轉到錯誤處理模塊,如無錯誤則直接轉到輸出模塊輸出結果;輸出模塊用以將結果返回給請求者;錯誤處理模塊用以捕獲其它模塊的錯誤,將錯誤信息交給輸出模塊返回給請求
者ο面向對象的AJAX框架模型系統的處理方法,按以下步驟進行(1)客戶端使用AJAX技術將所有的請求都指向相同的服務器地址,然后將請求的目標、方法、參數信息以固定的方式組織好,發送給服務器,之后等待服務器的響應,處理服務器的返回結果;(2)接收模塊負責接受所有的客戶端請求,將這些請求信息交給分發模塊處理,并嘗試解析出請求中的數據部分,但并不判斷數據的合法性,如果接收到無法解釋的請求,則轉向錯誤處理模塊;(3)分發模塊將請求信息中的請求目標對象信息解出,并交給指定的處理模塊單元來處理,通過讀取一個處理模塊信息的列表,從請求中獲得要求的處理模塊標識信息,與列表中的信息進行比對,如果找到指定的處理模塊,則將請求交給指定的處理模塊進行處理,否則轉向錯誤處理模塊;(4)處理模塊對請求信息進行具體的邏輯處理,并給出返回值,處理過程中如果出現錯誤,將轉到錯誤處理模塊,如無錯誤則直接轉到輸出模塊輸出結果;(5)輸出模塊負責將結果返回給請求者;(6)錯誤處理捕獲其它模塊的錯誤,將錯誤信息交給輸出模塊返回給請求者。本發明進一步限定的技術方案是前述的面向對象的AJAX框架模型系統,所有的客戶端請求都指向相同的URI,即 javascript代碼中所有XMLHttpRequest對象的open方法的第二個參數都為一個固定值。前述的面向對象的AJAX框架模型系統,處理模塊內包含一個或多個獨立的具體業務處理單元(子模塊),并且支持以動態注冊的方式來擴充處理單元。具體的業務處理單元可以包括但不僅限于用戶業務處理單元、權限業務處理單元、報表業務處理單元、日志業務處理單元等;這些具體的業務處理單元將自身提供的處理方法采用文件或內存的方式進行注冊,處理模塊就可以直接通過檢索注冊信息來調用具體的業務處理單元。本發明的優點是本發明通過使用面向對象的方式,采用一個統一的AJAX服務器接收端,來接收、響應、分發、處理客戶端發出的AJAX請求,將原來基于流程的TOB面向過程的模型進行優化,使客戶端javascript代碼及服務器端的代碼更易寫、易用、易維護。在本發明的框架下,服務器端設置一個負責統一處理客戶端請求的控制層,使得服務器端業務處理代碼能夠在遵循統一標準的情況下,以模塊化的方式進行開發,大幅提升開發效率。
圖1是本發明的模塊連接圖。
具體實施方式
實施例一本實施例是一種面向對象的AJAX框架模型系統,模塊連接如圖1所示,包括客戶端部分使用AJAX技術,使用面向對象的編程方式,將所有的請求都指向相同的服務器地址,然后將請求的目標、方法、參數信息以固定的方式組織好,發送給服務器,之后等待服務器的響應,處理服務器的返回結果。服務器端部分接收該模塊擁有一個公開的URI,負責接受所有的客戶端(瀏覽器)請求,將這些請求信息交給分發模塊處理。該模塊會嘗試解析出請求中的數據部分,但并不判斷數據的合法性,如果接收到無法解釋的請求,則轉向錯誤處理模塊。分發該模塊負責將請求信息中的請求目標對象信息解出,并交給指定的處理模塊單元來處理。該模塊通過讀取一個處理模塊信息的列表,從請求中獲得要求的處理模塊標識信息,與列表中的信息進行比對,如果找到指定的處理模塊,則將請求交給指定的處理模塊進行處理,否則轉向錯誤處理模塊。處理模塊信息列表可以來自于數據庫、外部文件、或者代碼內部維護的一份處理模塊的注冊信息。新的處理模塊可以通過注冊方式進行擴充,擁有良好的擴展性。處理該模塊為服務器端內部模塊,其中可以包含多個處理單元(子模塊),負責對請求信息進行具體的邏輯處理,并給出返回值。處理過程中如果出現錯誤,將轉到錯誤處理模塊,如無錯誤則直接轉到輸出模塊輸出結果。該模塊可以理解為原AJAX框架中的各個零散的服務器響應頁面的集合,通過注冊自身的方式來維護,可以方便的擴展。當采用面向對象的方式后,原來頁面上的流程化代碼需要重新改寫為面向對象方式,以基于類的方式來重寫。輸出負責將結果返回給請求者。錯誤處理負責捕獲其它模塊的錯誤,將錯誤信息交給輸出模塊返回給請求者。該模塊可以是項目提供的通用錯誤處理模塊,也可以是一個獨立的專用的錯誤處理模塊。所有的客戶端請求都指向相同的URI,即javascript代碼中所有XMLHttpRequest 對象的open方法的第二個參數都為一個固定值。客戶端javascript中,將所有 XMLHttpRequest對象的open方法的第二個參數寫為固定值。如某一請求的代碼表述為var oXMLHTTPl = new XMLHttpRequest();oXMLHTTPl. open ( “POST”,"http://www. datcent. com/service/ajaxserver. php,,,true);
oXMLHTTPl. send();另一請求的代碼表述為var oXMLHTTP2 = new XMLHttpRequest ();oXMLHTTP2. open ( “GET”,"http://www. datcent. com/service/ajaxserver. php,,,true);oXMLHTTP2. send ();處理模塊內包含一個或多個獨立的具體業務處理單元(子模塊),并且支持以動態注冊的方式來擴充處理單元。具體的業務處理單元可以包括但不僅限于用戶業務處理單元、權限業務處理單元、報表業務處理單元、日志業務處理單元等;這些具體的業務處理單元將自身提供的處理方法采用文件或內存的方式進行注冊,處理模塊就可以直接通過檢索注冊信息來調用具體的業務處理單元。處理模塊包含一個或多個獨立的業務處理單元,這些業務處理單元之間相對獨立,通過注冊自身的方式來擴展,新加入的業務處理單元只需要將自己的接口信息注冊給處理模塊知曉,就能夠被處理模塊調用。面向對象的AJAX框架模型系統的處理方法,按以下步驟進行(1)客戶端使用AJAX技術將所有的請求都指向相同的服務器地址,然后將請求的目標、方法、參數信息以固定的方式組織好,發送給服務器,之后等待服務器的響應,處理服務器的返回結果;(2)接收模塊負責接受所有的客戶端請求,將這些請求信息交給分發模塊處理,并嘗試解析出請求中的數據部分,但并不判斷數據的合法性,如果接收到無法解釋的請求,則轉向錯誤處理模塊;(3)分發模塊將請求信息中的請求目標對象信息解出,并交給指定的處理模塊單元來處理,通過讀取一個處理模塊信息的列表,從請求中獲得要求的處理模塊標識信息,與列表中的信息進行比對,如果找到指定的處理模塊,則將請求交給指定的處理模塊進行處理,否則轉向錯誤處理模塊;(4)處理模塊對請求信息進行具體的邏輯處理,并給出返回值,處理過程中如果出現錯誤,將轉到錯誤處理模塊,如無錯誤則直接轉到輸出模塊輸出結果;(5)輸出模塊負責將結果返回給請求者;(6)錯誤處理捕獲其它模塊的錯誤,將錯誤信息交給輸出模塊返回給請求者。本發明還可以有其它實施方式,凡采用同等替換或等效變換形成的技術方案,均落在本發明要求保護的范圍之內。
權利要求
1.一種面向對象的AJAX框架模型系統,其特征在于包括客戶端和服務器端,客戶端和服務器端之間通過網絡通訊,所述服務器端包括接收模塊、分發模塊、處理模塊、輸出模塊和錯誤處理模塊,所述接收模塊的輸出接分發模塊的輸入及錯誤處理模塊的第一輸入, 所述分發模塊的輸出接處理模塊模塊的輸入及錯誤處理模塊的第二輸入,所述處理模塊的輸出接輸出模塊的第一輸入及錯誤處理模塊的第三輸入,所述錯誤處理模塊的輸出接所述輸出模塊的第二輸入;所述客戶端用以使用AJAX將所有的請求都指向相同的服務器地址,然后將請求的目標、方法和參數信息以固定的方式組織好,發送給服務器,之后等待服務器的響應,處理服務器的返回結果;所述接收模塊設有一個公開的URI,用以負責接受所有的客戶端請求,將這些請求信息交給分發模塊處理,接收到無法解釋的請求,則轉向錯誤處理模塊;所述分發模塊用以負責將請求信息中的請求目標對象信息解出,并交給指定的處理模塊單元來處理,通過讀取一個處理模塊信息的注冊列表,從請求中獲得要求的處理模塊標識信息,與列表中的信息進行比對,如果找到指定的處理模塊,則將請求交給指定的處理模塊進行處理,否則轉向錯誤處理模塊;所述處理模塊用以負責對請求信息進行具體的邏輯處理,并給出返回值。處理過程中如果出現錯誤,將轉到錯誤處理模塊,如無錯誤則直接轉到輸出模塊輸出結果;所述輸出模塊用以將結果返回給請求者;所述錯誤處理模塊用以捕獲其它模塊的錯誤,將錯誤信息交給輸出模塊返回給請求者。
2.如權利要求1所述的面向對象的AJAX框架模型系統,其特征在于所述所有的客戶端請求都指向相同的URI。
3.如權利要求1所述的面向對象的AJAX框架模型系統,其特征在于處理模塊內包含一個或多個獨立的具體業務處理單元,并且支持以動態注冊的方式來擴充處理單元。
4.如權利要求1-3中任一權利要求所述面向對象的AJAX框架模型系統的處理方法,其特征在于按以下步驟進行(1)客戶端使用AJAX技術將所有的請求都指向相同的服務器地址,然后將請求的目標、方法、參數信息以固定的方式組織好,發送給服務器,之后等待服務器的響應,處理服務器的返回結果;(2)接收模塊負責接受所有的客戶端請求,將這些請求信息交給分發模塊處理,并嘗試解析出請求中的數據部分,但并不判斷數據的合法性,如果接收到無法解釋的請求,則轉向錯誤處理模塊;(3)分發模塊將請求信息中的請求目標對象信息解出,并交給指定的處理模塊單元來處理,通過讀取一個處理模塊信息的列表,從請求中獲得要求的處理模塊標識信息,與列表中的信息進行比對,如果找到指定的處理模塊,則將請求交給指定的處理模塊進行處理,否則轉向錯誤處理模塊;(4)處理模塊對請求信息進行具體的邏輯處理,并給出返回值,處理過程中如果出現錯誤,將轉到錯誤處理模塊,如無錯誤則直接轉到輸出模塊輸出結果;(5)輸出模塊負責將結果返回給請求者;(6)錯誤處理捕獲其它模塊的錯誤,將錯誤信息交給輸出模塊返回給請求者。
全文摘要
本發明涉及一種程序設計框架模型系統,是一種面向對象的AJAX框架模型系統及其處理方法,包括客戶端和服務器端,服務器端包括接收模塊、分發模塊、處理模塊、輸出模塊和錯誤處理模塊,接收模塊的輸出接分發模塊的輸入及錯誤處理模塊的第一輸入,分發模塊的輸出接處理模塊模塊的輸入及錯誤處理模塊的第二輸入,處理模塊的輸出接輸出模塊的第一輸入及錯誤處理模塊的第三輸入,錯誤處理模塊的輸出接所述輸出模塊的第二輸入。本發明通過使用面向對象的方式,采用一個統一的AJAX服務器接收端,來接收、響應、分發、處理客戶端發出的AJAX請求,使客戶端javascript代碼及服務器端的代碼更易寫、易用、易維護。
文檔編號H04L29/06GK102571731SQ201010622679
公開日2012年7月11日 申請日期2010年12月31日 優先權日2010年12月31日
發明者張湘, 陳煬 申請人:德訊科技股份有限公司