本發(fā)明涉及一種網絡控制器和方法,且更加特別地涉及一種便于擴展通訊協(xié)議功能的網絡控制器。
背景技術:
:最近,通過將裝置連入網絡從而提供新的附加值的趨勢正在增長。因此,增加網絡功能并改善連接性變得很有必要。為了應付這種擴展,通過提供獨立于應用程序的將通訊協(xié)議處理模塊化的API從而降低開發(fā)成本并便于增加功能的技術是眾所周知的。已經提出一種技術(例如JP-2004-506977-A),該技術可以生成協(xié)議無關和裝置無關的應用程序和內容,并將該內容轉換為通過使用資源描述框架(RDF)的任何協(xié)議和裝置都支持的內容數據。并且,還提出了一種處理的共享模塊化和它的配置的技術(例如JP-2004-005503-A),該技術是為了便于開發(fā)和增加提供Web服務的應用程序。然而,JP-2004-506977-A和JP-2004-005503-A中所描述的技術需要實質的開發(fā)資源來增加和擴展通訊協(xié)議的功能。此外,在對每一個通訊協(xié)議獨立地進行開發(fā)并從例如OSS的現有的資源中分出來的情況下,在整個通訊協(xié)議中存在許多冗余處理,并且這導致了產生例如ROM和RAM的資源的浪費。對于嵌入式系統(tǒng),在只有有限的可用資源的的情況下,這個問題尤其突出。此外,由于這樣多的冗余處理而導致的需要的許多修改使維護變得復雜,所述修改例如是錯誤修改。并且,通訊協(xié)議和應用程序層之間有過多的模糊界限,在存在多個應用程序的情況下,就會有開發(fā)資源的浪費,這種浪費是由在應用程序中的包含通訊處理的一部分而引起的。技術實現要素:本發(fā)明提供了新穎的網絡控制器和方法,其不需要大的開發(fā)資源來添加并擴展通訊協(xié)議的功能且保持高的通訊質量,不會產生資源浪費,方便維護,并可以被應用于嵌入式系統(tǒng)。更確切地說,本發(fā)明提供一種網絡控制器,該網絡控制器包括經由網絡與多個終端進行通訊的網絡接口、與利用多種通訊協(xié)議的上層應用程序進行通訊的上層應用程序接口、控制多個協(xié)議處理步驟以便利用多種通訊協(xié)議經由網絡與多個終端進行通訊的協(xié)議處理步驟控制器以及分析多種通訊協(xié)議并進一步包括協(xié)議報頭分析單元的協(xié)議分析單元,其中協(xié)議報頭分析單元單獨分析多種通訊協(xié)議的多個通訊協(xié)議報頭。附圖說明當結合附圖仔細考慮時,通過參考以下詳細說明,將容易地得到并且更好地理解本公開的更加全面的評價和許多附加優(yōu)點。圖1是說明包含作為本發(fā)明的實施例的網絡控制器的系統(tǒng)的配置的圖表。圖2是說明作為本發(fā)明的實施例的網絡控制器的硬件配置的圖表。圖3是說明作為本發(fā)明的實施例的網絡控制器的功能塊的圖表。圖4A和4B是說明用于作為本發(fā)明的實施例的網絡控制器的、要求經由網絡發(fā)送數據的數據格式和請求數據的圖表。圖5A和5B是說明對請求數據做出響應的數據格式和響應數據的圖表,其中該請求數據是要求經由網絡發(fā)送數據用于作為本發(fā)明的實施例的網絡控制器的數據。圖6A和6B是說明作為本發(fā)明的實施例的數據格式和要求共享經由網絡接收到的數據的請求數據的圖表。圖7是說明作為本發(fā)明的實施例的通過遠程網絡共享接收到的數據的數據格式和響應數據的圖表。圖8是說明包含第一實施例的網絡控制器并在本發(fā)明中作為服務器工作的設備的操作的實例的時序圖。圖9是說明包含第一實施例的網絡控制器并在本發(fā)明中作為服務器工作的設備的操作的實例的時序圖。圖10是說明包含第一實施例的網絡控制器并在本發(fā)明中作為服務器工作的設備的操作的時序圖。圖11A和11B是說明包含第一實施例的網絡控制器并在本發(fā)明中作為服務器工作的設備的操作的時序圖。圖12A和12B是說明包含第二實施例的網絡控制器并在本發(fā)明中作為HTTP客戶端工作的設備的操作的時序圖。圖13A和13B是說明包含第二實施例的網絡控制器并在本發(fā)明中作為HTTP客戶端工作的設備的操作的時序圖。圖14A和14B是說明包含第二實施例的網絡控制器并在本發(fā)明中作為HTTP客戶端工作的設備的操作的時序圖。圖15是說明包含第二實施例的網絡控制器并在本發(fā)明中作為HTTP客戶端工作的設備的操作的時序圖。圖16A和16B是說明包含第二實施例的網絡控制器并在本發(fā)明中作為HTTP客戶端工作的設備的操作的時序圖。圖17A和17B是說明包含第二實施例的網絡控制器并在本發(fā)明中作為HTTP客戶端工作的設備的操作的時序圖。圖18A和18B是說明包含第二實施例的網絡控制器并在本發(fā)明中作為HTTP客戶端工作的設備的操作的時序圖。圖19A和19B是說明包含第二實施例的網絡控制器并在本發(fā)明中作為HTTP客戶端工作的設備的操作的時序圖。圖20是說明包含第三實施例的網絡控制器并執(zhí)行在本發(fā)明中作為HTTP客戶端的加密通訊的設備的操作的時序圖。圖21A和21B是說明包含第三實施例的網絡控制器并執(zhí)行在本發(fā)明中作為HTTP客戶端的加密通訊的設備的操作的時序圖。圖22是說明包含第三實施例的網絡控制器并執(zhí)行在本發(fā)明中作為HTTP客戶端的加密通訊的設備的操作的時序圖。圖23A和23B是說明包含第三實施例的網絡控制器并執(zhí)行在本發(fā)明中作為HTTP客戶端的加密通訊的設備的操作的時序圖。具體實施方式在描述附圖中所示的較佳實施例時,為了清楚起見使用具體的術語。但是,本發(fā)明的公開內容并不打算局限于所選擇的具體的術語,而是可以理解成,每一個具體元件都包括所有具有同樣功能、以類似的方式操作并獲得類似的結果的技術等效物。下面將參考附圖詳細描述本發(fā)明的實施例。在本發(fā)明中,與通訊方的協(xié)商處理步驟、分析包結構以及獨立于通訊協(xié)議的API為實現所有通訊協(xié)議的處理。只有分析協(xié)議報頭的部分(通訊控制部分)對于每一個協(xié)議單獨實現。圖1是說明包含作為本發(fā)明的實施例的網絡控制器的系統(tǒng)的配置的實例的圖表。在圖1中,系統(tǒng)由網絡控制器1、投影儀2以及輸入裝置3構成。網絡控制器1包括用戶接口(UI),通過應用程序實現功能并控制與外部裝置的通訊。投影儀2是例如液晶投影儀的投影儀,并利用燈泡將例如來自于網絡控制器1的圖像的數據投影到墻面等上。例如電源按鈕和選擇按鈕等的輸入裝置3將輸入數據發(fā)送給網絡控制器1。圖2是說明作為本發(fā)明的實施例的網絡控制器的硬件配置的圖表。如圖2所示,網絡控制器1由通訊處理器11、主處理器12和外部設備13構成。通訊處理器11控制通訊(通過網絡)并由中央處理單元(CPU)101、ROM102、本地接口(I/F)103、存儲裝置104、RAM105以及網絡I/F106構成。主處理器12是所謂的CPU,且外部設備將圖像數據等輸出給類似于上述投影儀的外側。通訊處理器11是在通過本發(fā)明中的網絡控制器1控制網絡時起重要作用的處理器。本地I/F103是例如USB和PCIe的接口,且網絡I/F106是例如無線LAN和有線LAN的網絡接口。圖3是說明作為本發(fā)明的實施例的網絡控制器的功能塊的圖表。如圖3所示,通過本發(fā)明的網絡控制器1來控制通訊是通過執(zhí)行客戶端處理步驟存儲單元201、服務器處理步驟存儲單元202、應用程序層處理步驟管理單元203、應用程序層包處理單元205、應用程序層有效負載(payload)管理單元208、應用程序層報頭管理單元209、用于每一個協(xié)議的報頭管理單元、通訊數據格式控制單元215以及裝置信息管理單元216中的每一個功能來進行的。對于協(xié)議管理單元,有DNS報頭管理單元210、HTTP報頭管理單元211、PJLink報頭管理單元212、DHCPv4報頭管理單元213以及SNMP報頭管理單元214。應用程序層報頭管理單元209單獨分析來自每一個管理單元的報頭信息。在網絡控制器控制作為客戶端終端的通訊的情況下,客戶端處理步驟存儲單元201(協(xié)議處理步驟控制單元)在建立連接后存儲客戶端的具體的包發(fā)送/接收處理步驟??蛻舳颂幚聿襟E存儲單元201順序執(zhí)行多個客戶端處理步驟并實現包發(fā)送/接收。客戶端處理步驟包括DNS客戶端處理步驟、HTTP客戶端處理步驟以及(用于獲得代理認證方法)HTTP客戶端處理步驟,且客戶端處理步驟存儲單元201同時執(zhí)行那些處理步驟中的一個。在網絡控制器作為服務器控制通訊的情況下,服務器處理步驟存儲單元202(協(xié)議處理步驟控制單元)在建立連接后存儲服務器的具體的包發(fā)送/接收處理步驟。應用程序層處理步驟管理單元203管理在應用程序層中的發(fā)送/接收包的整個過程。并且,應用程序層處理步驟管理單元203控制連接和斷開通訊。在這個方面,應用程序層處理步驟管理單元203參照存儲在協(xié)議重發(fā)信息表204中的超時時間和重試的次數。應用程序層包處理單元205(協(xié)議分析方法)知道在應用程序層中的包由報頭和有效負載構成。應用程序層包處理單元205基于從上層(應用程序)接收到的數據為應用程序層生成包并將他們傳到下層,在該下層中下一個處理被執(zhí)行。同樣,應用程序層包處理單元205基于從下層接收到的數據為應用程序層分析包并將他們傳到上層,在該上層中下一個處理被執(zhí)行。應用程序層包處理單元205還編碼/解碼數據塊。當應用程序層包處理單元205基于從下層接收到的數據為應用程序層分析包并將它們傳到上層,在該上層中下一個處理被執(zhí)行時,應用程序層包處理單元205參照分配給上層應用程序的表206(關聯表,anassociationtable)。隨后將詳細描述分配給上層應用程序的表206。如果需要的話,應用程序層處理步驟管理單元203和應用程序層包處理單元205使用SSL/TLS207。SSL/TLS207控制在應用程序層以下的層的加密通訊。應用程序層處理步驟管理單元203在SSL/TLS握手(例如共享加密密鑰和認證通訊方)中使用SSL/TLS207,且應用程序層包處理單元205在加密和解碼要被發(fā)送和接收的數據中使用SSL/TLS207。應用程序層有效負載管理單元208(有效負載分析單元)知道應用程序層中的有效負載的結構。應用程序層報頭管理單元209(協(xié)議報頭分析單元)知道應用程序層中的報頭的結構。更進一步地,應用程序層報頭管理單元209包含DNS報頭管理單元210、HTTP報頭管理單元211、PJLink報頭管理單元212、DHCPv4報頭管理單元213以及SNMP報頭管理單元214,這些單元單獨管理每一個協(xié)議報頭。DNS報頭管理單元210知道每一種類型的DNS報頭的報頭結構。同樣,DNS報頭管理單元210知道存儲在DNS報頭中的信息。更進一步地,DNS報頭管理單元210知道向其發(fā)送DNS報頭和從其接收DNS報頭的通訊方。HTTP報頭管理單元211知道HTTP報頭的結構,且PJLink報頭管理單元212知道PJLink指令的格式。同樣,DHCPv4報頭管理單元213知道DHCPv4報頭的結構,且SNMP報頭管理單元214知道SNMP報頭的結構。通訊數據格式管理單元215知道在應用程序層中的有效負載的數據格式,且裝置信息管理單元216知道裝置信息管理單元217。認證數據管理單元218知道可以利用協(xié)議傳輸的認證數據的格式。認證數據管理單元218管理HTTP報頭管理單元211、PJLink報頭管理單元212以及裝置信息管理單元216的每一個認證數據。輸入/輸出數據存儲單元219存儲與協(xié)議處理相對應的輸入數據和輸出數據。輸入/輸出數據存儲單元219存儲處理協(xié)議和處理結果所必需的輸入數據,并且可以被普遍訪問。接下來,下面參考表1A和1B描述分配給上層應用程序的表206。表1A表1B分配給上層應用程序的表206是當應用程序層包處理單元205將數據傳輸給上層應用程序時應用程序層包處理單元205所使用的分布表。分配給上層應用程序的表206提供了確定“使用的資源和傳輸控制方法”的規(guī)則。接下來,將在下面描述“內容數據的特性”?!皟热輸祿奶匦浴笨梢詮睦鏗TTP的應用程序協(xié)議的報頭信息(控制信息)被獲得?!安僮鲗ο蟆庇腥N類型的特性,“/service/projection”、“/state”以及“/property”,這些都與每一個數據的內容相對應,且它們識別分配的目的地的應用程序。這里有三種類型的“操作方法”,“POST”、“PUT”以及“GET”,它們與每一個數據的內容相對應,且它們識別用于包含在有效負載中的內容數據的操作。同樣,這里有三種類型的“MIME類型”,“application/json”、“image/jpeg”以及“video/x-rncb”,它們與每一個數據的內容相對應,且它們識別包含在有效負載中的內容數據的類型。更近一步地,這里有兩種類型的“包含操作對象的子系統(tǒng)的名稱”,“OMAP”和“Shockley”,它們與每一個數據的內容相對應,且它們由系統(tǒng)配置所確定并且它們識別用于為每一個傳輸目的地傳輸每一個數據的存儲器。接下來,將在下面描述表1B中的“使用的資源和傳輸控制方法”。對于“控制信息包含在被傳輸的數據中了嗎?”有兩種類型,“是”和“否”,它們與每一個數據的內容相對應,且它們確定報頭信息是否被傳到應用程序。同樣,這里有三種類型的“使用的緩存”,“SRAM_WHIO(小尺寸)”、“SRAM_WHIO(大尺寸)”以及“SRAM_DATA”,它們與每一個數據的內容相對應,且它們識別在傳輸數據中所使用的緩存類型。更近一步地,這里有兩種類型的“傳輸單位”,“緩存大小或者實際數據大小”以及“數據塊大?。ㄒ酝ㄓ嵎剿付ǖ膭澐謹祿膯挝唬保鼈兣c每一個數據相對應,且它們識別對于每一個傳輸時間的傳輸數據的單位。例如,如果數據的內容是No.3的投影數據(PC屏幕),則“操作對象”是“/service/projection”、“操作方法”是“PUT”、“MIME類型”是“video/x-rncb”以及“包含操作對象的子系統(tǒng)的名稱”是“OMAP”。更近一步地,“控制信息包含在被傳輸的數據中了嗎?”為“是”、“使用的緩存”是“SRAM_WHIO(大尺寸)”以及“傳輸單位”是“數據塊大?。ㄒ酝ㄓ嵎剿付ǖ膭澐謹祿膯挝唬?。接下來,以下將參考圖4A和4B描述響應于來自應用程序的請求,在向網絡傳輸數據時的數據格式以及其實例。如圖4A和4B所示,數據依賴于內部資源和要被發(fā)送的數據的大小被劃分。圖4A的左邊所示為數據格式(在應用程序層處劃分之前),且圖4A的右邊以及圖4B中按數字順序所示為劃分數據(請求數據1到3)的實例?!皠澐謹祿笮 北硎驹谖锢韺又袀鬏敂祿拇笮 @?,參考請求數據1,雖然劃分前應用程序數據是4620字節(jié),劃分數據是2032字節(jié)。值得注意的是,由于請求數據1變成作為“HTTP報頭/主體”的數據,在劃分數據的2032字節(jié)中的524字節(jié)被分配給控制參數。“EOF”是表示劃分數據是否為最后數據的參數?!皯贸绦驍祿笮 笔窃谶壿媽又械膫鬏敂祿笮?,且在數據被劃分的情況下明顯與劃分數據大小的總和相等。同樣,“目的地”是在設備內交換數據的信息且為指定執(zhí)行下一個處理的模塊的參數。“有關報文(message)ID的詳細信息”是指定應用程序對網絡的請求/響應或者網絡對應用程序的請求/響應的參數?!澳康牡刂鳈C”和“目的地端口”是表示外部裝置的目的地信息的參數。更具體地,“目的地主機”是IP地址(或域名),且“目的地端口”是網絡端口號?!皡f(xié)議類型”是指定例如HTTP和HTTPS(HTTPoverSSL,基于SSL的HTTP)的應用程序協(xié)議的參數。同樣,“證書CN名稱”、“認證證書組”、“在服務器認證失敗情況下的操作”以及“進行/不進行證書CN的檢查”是在加密通訊中SSL/TLS207所使用的信息。在本實施例中它們通過同時指定加密通訊所必需的信息來隱藏用于SSL/TLS的處理的內容?!笆褂?不使用代理”是指定是否通過代理建立連接的參數。在本實施例中,它隱藏代理服務器的目的地以及用于通過代理連接的處理的內容?!皟热輸祿北硎疽话l(fā)送給外部裝置中的通訊方的數據的內容。值得注意的是,除了上面所描述的參數以外,圖4A和4B中的其他參數(通訊模式、振動以及預約)的描述被省略,這是由于它們在本實施例中與處理的內容無關。接下來,參考圖5A和5B描述對網絡發(fā)送請求的響應數據。那些與參考圖4A和4B所描述的元件相同的元件被省略。“源”是表示通訊模塊的標識符的參數,且它由接收這個報文的應用程序所看出?!鞍l(fā)送結果”是表示執(zhí)行發(fā)送處理的結果的參數。例如,參考響應數據1,“發(fā)送結果”是“0x01(成功)”,由于只有響應數據,因此內容數據是0字節(jié),且只有4字節(jié)被分配給4字節(jié)的應用程序數據作為控制參數。更進一步地,參考圖6A和圖6B描述共享通過網絡接收到的數據的請求的數據格式以及它的實例。那些與參考圖4A和4B所描述的元件相同的元件被省略。“內容類型”是表示包含在數據中的內容的數據參數。接下來,參考圖7描述請求共享通過網絡接收到的數據的響應數據的數據格式以及它的實例。那些與參考圖4A和4B所描述的元件相同的元件被省略。如圖7所示,由于對于接收結果只有響應數據,因此只有4字節(jié)被分配給4字節(jié)的應用程序數據作為控制參數。第一實施例下面參考圖8到圖11A和11B的時序圖描述在包含本發(fā)明的第一實施例的網絡控制器的設備作為HTTP服務器進行操作的情況下的處理的時序。時序圖的上部中所示為執(zhí)行每一個處理的處理單元。在圖8到圖11A和11B的時序圖中從左到右的順序依次為,人(TRANS_RXTX1_TASK)301、應用程序層協(xié)議處理任務302、數據隊列303、服務器處理步驟存儲單元202、應用程序層包處理單元205、HTTP報頭管理單元211、應用程序層有效負載管理單元208、分配給上層應用程序的表206、套接字(socket)I/F網橋304、與應用程序層連接的網橋305以及與裝置信息連接的網橋306。在圖8中,人301啟動應用程序層協(xié)議處理任務302(S1)。接著,應用程序層協(xié)議處理任務302在服務器處理步驟存儲單元202上執(zhí)行協(xié)議處理步驟啟動處理(S2)。服務器處理步驟存儲單元202等待接收數據直到另外一個設備(HTTP客戶端)通過套接字I/F網橋304連接到服務器處理步驟存儲單元202(S3)。服務器處理步驟存儲單元202生成第一個包(S4)并分配應用程序所使用的存儲區(qū)域(堆(heap))。用于HTTP請求2051的存儲區(qū)域分配給應用程序層包處理單元205,用于請求報頭2111的存儲區(qū)域分配給HTTP報頭管理單元211,并用于請求主體2081的存儲區(qū)域分配給應用程序層有效負載管理單元208。在應用程序層協(xié)議處理任務302開始執(zhí)行協(xié)議處理步驟之后(S5),服務器處理步驟存儲單元202獲取下一個處理步驟(S6)。接著,服務器處理步驟存儲單元202分析HTTP請求包(S7),HTTP請求包是通過套接字I/F網橋304從另一個裝置(HTTP客戶端)接收到的(S8)。下面描述在包的分析期間錯誤出現在Shockley內部的情況下的錯誤處理。如果錯誤是套接字錯誤,則包將完成分析包的信息和套接字錯誤返回給服務器處理步驟存儲單元202,并且服務器處理步驟存儲單元202丟棄包并完成處理步驟。如果錯誤是超時錯誤,則包返回完成分析包的信息和超時錯誤,并且服務器處理步驟存儲單元202執(zhí)行重新發(fā)送處理。值得注意的是重新發(fā)送處理的內容對于每一個協(xié)議是不同的。更近一步地,在錯誤在包內部的情況下,包儲存錯誤信息并將完成分析包的信息和無錯誤返回給服務器處理步驟存儲單元202。當包生成下一個包時,包將錯誤信息移交給下一個包,并且包返回具有“compose”(“編排”)的錯誤響應。應用程序層包處理單元205分析HTTP報頭管理單元211中的HTTP請求報頭(S9)。接著,應用程序層包處理單元205利用分配給上層應用程序的表206獲取資源信息,該資源信息與資源識別信息以及由應用程序層包處理單元205指定的資源MIME類型相對應(S10)。然后,應用程序層包處理單元205檢查是否可以通過與裝置信息連接的網橋306將投影數據傳輸給外部裝置(例如投影儀)(S11)。也就是說,應用程序層包處理單元205指定傳輸目的地應用程序。值得注意的是,如果在搜索資源時出現錯誤,那么分配給上層應用程序的表206就將錯誤響應(E_RESOURCE_INFO_ERROR_REASON_NOT_FOUND,E_RESOURCE_INEO_ERROR_REASON_UNSUPPORTED_OPERATION,E_RESOURCE_INFO_ERROR_REASON_UNSUPPORTED_MEDIA)返回給應用程序層包處理單元205。同樣,在S11中檢查是否可以傳輸投影數據時,如果由于某種原因不可以傳輸,例如外部裝置正處于節(jié)能模式,那么外部裝置就通過與裝置信息連接的網橋將錯誤響應返回給應用程序層包處理單元205。接下來,如圖9所示,在從應用程序層協(xié)議處理任務302接收執(zhí)行協(xié)議處理步驟的通知(S12)后,則服務器處理步驟存儲單元202獲取下一個處理步驟(S13)。接著,服務器處理步驟存儲單元202分析應用程序層包處理單元205(S14),并且應用程序層包處理單元205分析HTTP請求主體(S15)。應用程序層包處理單元205通過與應用程序層連接的網橋305獲取緩存(S16)并通過套接字I/F網橋304接收有效負載數據(S17)。接著,應用程序層包處理單元205分析接收到的有效負載數據(S18)并將分析的數據通過與應用程序層連接的網橋305發(fā)送給應用程序(S19)。上述從S16到S19的步驟是子系統(tǒng)之間的通訊并通過發(fā)送請求共享經由網絡接收到的數據的命令被執(zhí)行。同樣,重復上述從S16到S19的處理直到完成有效負載的分析。值得注意的是,在從用戶獲取用于內容的緩存的情況下,單獨訪問控制由SEM_TRANS_CNTNT執(zhí)行直到完成有效負載的分析。如果對有效負載的訪問被單獨地控制且單獨訪問控制在1秒內沒有被釋放,那么應用程序層包處理單元205就通過與應用程序層連接的網橋305將未探測到的響應返回給應用程序。同樣,在內容緩存的情況下,在S19中應用程序層包處理單元205首先僅將報頭傳輸給OMAP。當在不是數據塊的情況下用戶的緩存變滿并完成有效負載的分析時,以及當在是數據塊的情況下用戶的緩存變滿并為一個數據塊完成有效負載的分析時,那個傳輸被執(zhí)行。接下來,如圖10所示,在從應用程序層協(xié)議處理任務接收執(zhí)行協(xié)議處理步驟的通知(S20)后,服務器處理步驟存儲單元202獲取下一個處理步驟(S21)。接著,服務器處理步驟存儲單元202在應用程序層包處理單元205中生成下一個包(S22),且應用程序層包處理單元205接收來自于應用程序的數據并分配存儲區(qū)域用于生成HTTP響應2052(堆)。應用程序層包處理單元205在HTTP報頭管理單元211中生成下一個報頭(S23),且HTTP報頭管理單元211分配存儲區(qū)域用于生成HTTP響應報頭(堆)。同樣,應用程序層包處理單元205在應用程序層有效負載管理單元208中生成下一個有效負載(S24),且應用程序層有效負載管理單元208分配存儲區(qū)域用于生成HTTP響應主體2082(堆)。伴隨生成響應包,應用程序層包處理單元205、HTTP報頭管理單元211以及應用程序層有效負載管理單元208的請求處理被完成(從S25到S27的銷毀(destroy))。服務器處理步驟存儲單元202在應用程序層包處理單元205中生成HTTP響應包(S28)并等待來自于上層應用程序的輸入數據。應用程序層協(xié)議處理任務302等待來自于數據隊列303的隊列(S29)。接下來,如圖11A和11B所示,在從應用程序層協(xié)議處理任務302接收執(zhí)行協(xié)議處理步驟的通知(S30)后,服務器處理步驟存儲單元202獲取下一個處理步驟(S31)。接著,服務器處理步驟存儲單元202在應用程序層包處理單元205中生成HTTP響應2052(S32)。應用程序層包處理單元205在HTTP報頭管理單元211中生成HTTP響應報頭2112(S33)。值得注意的是,由于用于共享經由網絡接收到的數據的響應的命令包含錯誤信息,因此錯誤信息作為錯誤響應被返回。接著,應用程序層包處理單元205經由套接字I/F網橋304將HTTP響應報頭2112發(fā)送給另一個裝置(HTTP客戶端)(S34)。接下來,在從應用程序層協(xié)議處理任務302接收執(zhí)行協(xié)議處理步驟的通知(S35)后,服務器處理步驟存儲單元202獲取下一個處理步驟(S36)。接著,服務器處理步驟存儲單元202在應用程序層包處理單元205中生成HTTP響應5052(S37)。應用程序層包處理單元205在應用程序層有效負載管理單元208中生成HTTP響應主體2082(S38)。接著,應用程序層包處理單元205經由套接字I/F網橋304將HTTP響應主體2082發(fā)送給另一個裝置(HTTP客戶端)(S39)。接著,應用程序層包處理單元205經由與應用程序層連接的網橋305釋放緩存(S40)。接下來,在從應用程序層協(xié)議處理任務302接收執(zhí)行協(xié)議處理步驟的通知(S41)后,服務器處理步驟存儲單元202詢問應用程序層包處理單元205它是否重新使用會話(S42)。接著,應用程序層包處理單元205詢問HTTP報頭管理單元211它是否重新使用會話(S43)。如果會話被重新使用,則處理返回到S3中的等待接收而不關閉會話(循環(huán)1)。如果會話沒有被重新使用,則在關閉會話后處理返回到S3中的等待接收(循環(huán)1)。伴隨發(fā)送響應包,應用程序層包處理單元205、HTTP報頭管理單元211以及應用程序層有效負載管理單元208的響應處理被完成(從S44到S46的銷毀)。在從應用程序層協(xié)議處理任務302接收完成協(xié)議處理步驟的通知(S45)后,服務器處理步驟存儲單元202斷開經由套接字I/F網橋304與另一個裝置(HTTP客戶端)的連接(S47)。伴隨著關閉連接,應用程序層協(xié)議處理任務302完成在服務器處理步驟存儲單元202中的處理(S48中的銷毀)。值得注意的是,除了分析HTTP報頭和生成HTTP報頭以外的服務器處理在公用單元中被實現。同樣,在接收數據和等待重新使用會話的通知時的超時處理等是通過由應用程序層處理步驟管理單元203參照協(xié)議重發(fā)信息表204中的超時時間來完成的。第二實施例下面參考圖12A和12B到圖19A和19B的時序圖描述在包含本發(fā)明的第二實施例的網絡控制器的設備作為HTTP客戶端進行操作的情況下的處理的時序。時序圖上方所示為執(zhí)行每一個處理的處理單元。在從圖12A和12B到圖15的時序圖中,從左到右為人(TRANS_RXTX1_TASK)401、應用程序層協(xié)議處理任務402、應用程序層輸入/輸出參數數據列表403、HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404、應用程序層包處理單元405、HTTP報頭管理單元406、HTTP客戶端處理步驟(用于通過代理連接)存儲單元407、HTTP客戶端處理步驟(協(xié)議默認)存儲單元408、套接字I/F網橋409以及與裝置信息連接的網橋410,以及DNS客戶端處理步驟存儲單元411。在圖12A和12B中,人401啟動應用程序層協(xié)議處理任務402(S101)。在執(zhí)行“rcv_dtp”處理(S102)以及“啟動AppProc”處理(S103)后,應用程序層協(xié)議處理任務402在應用程序層輸入/輸出參數數據列表403中分配存儲區(qū)域(堆)。在執(zhí)行“生成AppProc”處理(S104)后,應用程序層協(xié)議處理任務402通過與裝置信息連接的網橋410獲取外部裝置的設置信息(S105)。接著,應用程序層協(xié)議處理任務402將參數添加至應用程序層輸入/輸出參數數據列表403(S106)。在S106中,其值為SHostInfo結構的“UAppLayerParamValue”結構被添加至清單。如果代理在“SHostInfo”結構中被用作“f_host_name”,那么代理服務器的名稱從INFO被獲取并被設置。如果代理沒有被使用,那么用于通過網絡發(fā)送的請求的目的地主機被設置。同樣,如果代理在“SHostInfo”結構中被用作“f_host_port”,那么代理服務器的端口號從INFO被獲取并被設置。如果代理沒有被使用,那么用于通過網絡發(fā)送的請求的目的地端口被設置。應用程序層協(xié)議處理任務402分配在DNS客戶端處理步驟存儲單元411中執(zhí)行處理的存儲區(qū)域(堆)。在這個情況下,如果目的地是IP地址,那么DNS處理步驟沒有被生成。通過“getInetAddr”(“獲得InetAddr”)被轉換成二進制IP地址并被發(fā)送給HTTP處理步驟的構造器(網絡字節(jié)順序)。同樣,在包含在“AppLayerList”(“APP層列表”)中的SHostInfo結構中,“TRANS_FALSE”被設置為“fis_fixed”和“fis_received_response”,且在包含在“AppLayerList”中的SHostInfo結構中,“TRANS_TRUE”被設置為“fis_fixed”和“fis_received_response”。同樣,應用程序層協(xié)議處理任務402分配在HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404中執(zhí)行處理的存儲區(qū)域(堆)。在這個情況下,檢查請求通過網絡發(fā)送的成員,且HTTP客戶端處理步驟(用于獲取代理認證方法)僅在代理被使用的情況下被生成。同樣,應用程序層協(xié)議處理任務402分配在HTTP客戶端處理步驟(用于通過代理連接)存儲單元407中執(zhí)行處理的存儲區(qū)域(堆)。在這個情況下,檢查請求通過網絡發(fā)送的成員,且如果代理和HTTP被使用,那么用于通過代理進行連接的“ClientProc”的時間被生成。更近一步地,應用程序層協(xié)議處理任務402分配在HTTP客戶端處理步驟(協(xié)議默認)存儲單元408中執(zhí)行處理的存儲區(qū)域(堆)。在這個情況下,檢查請求通過網絡發(fā)送的成員,且如果代理和HTTP被使用,那么用于通過代理進行連接的“ClientProc”的實例被生成。接下來,應用程序層協(xié)議處理任務402將新的參數添加至應用程序層輸入/輸出參數數據列表403(S107)。在這個情況下,其值為“SUserData”結構的“UAppLayerParamValue”結構被添加至列表。應用程序層協(xié)議處理任務402依次執(zhí)行DNS客戶端處理步驟存儲單元411中的啟動協(xié)議處理步驟(S108)、執(zhí)行協(xié)議處理步驟(S109)以及完成協(xié)議處理步驟(S110)。在這個情況下,在包含在“AppLayerParamList”中的“SHostInfo”結構中的“fipv4_address”和“fis_fixed”被設置為解析名稱的結果。在上述S110中的處理被重復進行直到DNS客戶端的處理步驟被完成(循環(huán)41)。同樣,如果在每一個客戶端處理步驟的結束出現套接字錯誤(包括取消),那么下面所述的錯誤處理被執(zhí)行。即,(a)刪除運行處理步驟和等待處理步驟的處理,(b)釋放對通過網絡進行發(fā)送的請求的用戶緩存的處理,(c)將對通過網絡發(fā)送的請求的響應返回到OMAP的處理(連接主機失敗:0x02)。接著,應用程序層協(xié)議處理任務402完成DNS客戶端處理步驟存儲單元411中的處理(S111中的銷毀)并執(zhí)行“更新ExecutingProc”處理(S112)。如果目的地信息在S112中被確定(HostInfo->fis_fixed是TRANS_TRUE),那么其次執(zhí)行等待處理(設置為the_executing_proc)。如果目的地信息在S112中沒有被確定(HostInfo->fis_fixed是TRANS_FALSE)且在查詢主DNS服務器后有響應(HostInfo->fis_received_response是TRANS_TRUE),那么錯誤響應(連接主機失?。?x02)被返回。如果在查詢主DNS服務器后沒有響應(HostInfo->fis_received_response是TRANS_FALSE),那么DNS處理步驟目標被生成并被執(zhí)行成為目的地次級DNS服務器。在這個情況下,如果次級DNS服務器為“0.0.0.0”,那么錯誤響應(連接主機失敗:0x02)被返回。同樣,如果在詢問次級DNS服務器后名稱無法被解析,那么錯誤響應(連接主機失敗:0x02)被返回。接下來,在圖13A和13B中,應用程序層協(xié)議處理任務402啟動HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404中的協(xié)議處理步驟(S113)。HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404在套接字I/F網橋409中生成套接字(S114)、設置套接字選項(連接超時信息)(S115)、執(zhí)行連接處理(S116)、設置套接字選項(發(fā)送超時信息)(S117)以及設置套接字選項(接收超時信息)(S118)。在生成包時(S119),HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404為在應用程序層包處理單元405中生成請求4051以及在HTTP報頭管理單元406中生成請求報頭4061分配存儲區(qū)域(堆)。接下來,在從應用程序層協(xié)議處理任務402接收執(zhí)行協(xié)議處理步驟的通知(S120)后,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404獲取下一個處理步驟(S121)。接著,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404執(zhí)行“compose(由getNextAction所表示的動作,E_NECT_ACTION_COMPOSE)”的處理(S122)。應用程序層包處理單元405在HTTP報頭管理單元406中執(zhí)行分析處理(S123)。該處理是用于分析HTTP報頭的,該HTTP報頭包含在用于通過網絡從OMAP發(fā)送的請求中。在這種情況下,檢查請求通過網絡發(fā)送的成員,并且請求URI被轉換成絕對URI。應用程序層包處理單元405在HTTP報頭管理單元406中生成請求報頭4061(S124)并通過套接字I/F網橋409將請求報頭發(fā)送給另一個終端(S125)。接下來,如圖14A和14B所示,在從應用程序層協(xié)議處理任務402接收執(zhí)行協(xié)議處理步驟的通知(S126)后,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404獲取下一個處理步驟(S127)。接著,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404生成請求4051(S128)。接下來,在從應用程序層協(xié)議處理任務402接收執(zhí)行協(xié)議處理步驟的通知(S129)后,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404獲取下一個處理步驟(S130)。接著,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404在應用程序層包處理單元405中生成下一個包(S131)并為生成響應4052分配存儲區(qū)域(堆)。應用程序層包處理單元405在HTTP報頭管理單元406中生成下一個報頭(S132)并為生成響應報頭4062分配存儲區(qū)域(堆)。接下來,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404完成在應用程序層包處理單元405和HTTP報頭管理單元406中的處理(在S133和S134中的銷毀)。接下來,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404在應用程序層包處理單元405中執(zhí)行分析處理(S135)。接著,應用程序層包處理單元405通過套接字I/F網橋409接收HTTP響應(S136)。應用程序層包處理單元405在HTTP報頭管理單元406中執(zhí)行分析處理(S137)并在認證數據管理單元412中為拾取認證數據分配存儲區(qū)域(堆)。在這個情況下,如果狀態(tài)碼是417(Proxy-Authenticate),則由于報頭包括認證數據,因此“AuthInfo”被生成,并且其值為“AuthInfo”的“UAppLayerParamValue”被添加到“AppLayerParamList”。另外地,如果狀態(tài)碼不是417,則假設沒有代理認證。在這個情況下,“AuthInfo”不被生成,并且其值為“AuthInfo”的“UAppLayerParamValue”不被添加到“AppLayerParamList”。HTTP報頭管理單元406在應用程序層輸入/輸出參數數據列表403中添加參數(S138)。接著,HTTP報頭管理單元406在認證數據管理單元412中分析認證數據(S139)。如果在S139中“TRANS_FALSE”被返回,則“SAuthInfo->fis_failed”被設置為“TRANS_TRUE”。如果(e)認證方法不被支持或者(f)在認證數據中有格式錯誤,則“decompose”(“分解”)被設置為“TRANS_FALSE”。接下來,如圖15所示,在接收到來自于應用程序層協(xié)議處理任務402的執(zhí)行協(xié)議處理步驟的通知(S140)后,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404獲取下一個處理步驟(S141)。接著,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404在應用程序層包處理單元405中分析響應(S142)。接下來,在接收到來自于應用程序層協(xié)議處理任務402的執(zhí)行協(xié)議處理步驟的通知(S143)后,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404獲取下一個處理步驟(S144)。接著,HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404在應用程序層包處理單元405中完成處理(S145中的銷毀),且應用程序層包處理單元405在HTTP報頭管理單元406中完成處理(S146中的銷毀)。應用程序層協(xié)議處理任務402在HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404中執(zhí)行完成協(xié)議處理步驟的處理(S147),且HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404關閉與套接字I/F網橋409的連接(S148)。接下來,應用程序層協(xié)議處理任務402在HTTP客戶端處理步驟(用于獲取代理認證方法)存儲單元404中完成處理(S149中的銷毀)。在這個情況下,如果“AppParamList”的“SAuthInfo->fis_failed”為“TRANS_TRUE”,(g)對請求通過網絡發(fā)送的響應(認證代理失敗:0x06)被返回給OMAP,(h)執(zhí)行處理步驟和等待處理步驟被刪除,以及(i)用于通過網絡發(fā)送的請求的用戶緩存被釋放。接著,處理分支成alt421(利用傳輸明文在HTTP客戶端處接收信息)或者alt422(利用通過代理進行連接以及以SSL/TLS傳輸數據在HTTP客戶端處接收信息)。下面參考圖16A和16B描述處理分支成alt421(利用傳輸明文在HTTP客戶端處接收信息)的圖像形成設備情況。圖16A和16B中從左到右有應用程序層協(xié)議處理任務402、應用程序層輸入/輸出參數數據列表403、HTTP客戶端處理步驟(協(xié)議默認)存儲單元408、應用程序層包處理單元405、HTTP報頭管理單元406、認證數據管理單元412、應用程序層有效負載管理單元413、套接字I/F網橋409、與應用程序層連接的網橋414、與裝置信息連接的網橋410以及用于加密的網橋415。在接收到來自于應用程序層協(xié)議處理任務402的啟動協(xié)議處理步驟的通知(S150)后,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408在套接字I/F網橋409中生成套接字(S151)。如果在啟動協(xié)議處理步驟中出現錯誤,那么例如(j)刪除執(zhí)行處理步驟,(k)釋放用于通過網絡發(fā)送的請求用戶緩存,以及(l)將對通過網絡發(fā)送的請求的響應(連接主機失敗:0x02)返回給OMAP的錯誤處理被執(zhí)行。接下來,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408在套接字I/F網橋409中設置套接字選項(連接超時信息)(S152)、執(zhí)行連接處理(S153)、設置套接字選項(發(fā)送超時信息)(S154)并設置套接字選項(接收超時信息)(S155)。在生成請求包時(S156),HTTP客戶端處理步驟(協(xié)議默認)存儲單元408分配存儲區(qū)域(堆)用于在應用程序層包處理單元405中生成請求4053、在HTTP報頭管理單元406中生成請求報頭4063以及在應用程序層有效負載管理單元413中生成請求主體4131。接下來,在接收到來自于應用程序層協(xié)議處理任務402的執(zhí)行協(xié)議處理步驟的通知(S157)后,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408獲取下一個處理步驟(S158)。接著,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408在應用程序層包處理單元405中生成請求4053(S159)。應用程序層包處理單元405在與應用程序層連接的網橋414中釋放緩存(S160)。在這個情況下,只有在位置空閑的情況下,從用戶獲取的內容緩存被用于發(fā)送包的緩存。這個處理之所以被執(zhí)行是因為在位置空閑的情況下HTTP報頭的大小可以超出8K字節(jié)。接下來,應用程序層包處理單元405在HTTP報頭管理單元406中生成請求報頭4063(S161)。HTTP報頭管理單元406在認證數據管理單元412中執(zhí)行“setURI”處理(S162)以及“setMethod”處理(S163)。HTTP報頭管理單元406在認證數據管理單元412中生成認證數據(S164)。在這個情況下,只有在使用代理的情況下處理會分支成alt43。同樣,在那個情況下,用于認證的用戶名稱和密碼從INFO被獲取。值得注意的是,代理是否被使用是由AuthInfo的可利用性來確定的。在分支的alt43中,認證數據管理單元412通過與裝置信息連接的網橋410從外部裝置獲取設置(S165)。接著,處理在基本認證的情況下分支成alt431并在摘要式認證的情況下分支成alt432。在alt431中,認證數據管理單元412在用于加密的網橋415中利用“base64”解碼(S166)。另外地,在alt432中,認證數據管理單元412在用于加密的網橋415中生成隨機數(S167)并執(zhí)行摘要式計算(S168)。應用程序層包處理單元405通過套接字I/F網橋409將請求包發(fā)送給另一個裝置(S169)并釋放緩存(S170)。這個處理被執(zhí)行是因為從用戶獲取的內容緩存被用于發(fā)送包的緩存。同樣,在不執(zhí)行“dhStart”處理時,從用戶獲取的內容緩存無法被釋放。因此,在“getDhBufAsPacket”處理中獲取的內容緩存被保留,且當下次調用“getDhBuf”時,該保留的內容緩存被返回。更進一步地,在位置空閑的情況下,由于對通過網絡發(fā)送的請求的響應被返回且“getDhBuf/dhStart”處理在執(zhí)行“freeDhBufAsPacket”處理之后被自動執(zhí)行,因此內容緩存無一例外地被釋放。接下來,在圖17A和17B中,在從應用程序層協(xié)議處理任務402接收執(zhí)行協(xié)議處理步驟的通知(S171)后,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408獲取下一個處理步驟(S172)。接著,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408在應用程序層包處理單元405中生成請求4053(S173)。應用程序層包處理單元405在應用程序層有效負載管理單元413中生成請求主體4131(S174)并通過套接字I/F網橋409將請求主體發(fā)送給另一個裝置(S175)。接下來,應用程序層包處理單元405在與應用程序層連接的網橋414中釋放緩存(S176)。在這個處理中,用于請求通過網絡發(fā)送的命令的用戶緩存被釋放。值得注意的是,應用程序層包處理單元405從列表中刪除其值為“SUserData”結構的“UAppLayerParamValue”結構。更進一步地,應用程序層包處理單元405在與應用程序層連接的網橋414中獲取緩存(S177)。在從用戶獲取內容的緩存的情況下,通過執(zhí)行“SEM_TRANS_CONTNT”處理,單獨訪問控制被進行。在已經單獨控制訪問的情況下,需要等待單獨訪問控制的釋放。值得注意的是,可以防止多個內容數據在OMAP傳輸的時候被混亂以及防止通過進行單獨訪問控制而使得在OMAP側變得很難區(qū)分。應用程序層包處理單元405在子系統(tǒng)之間的通訊中通過與應用程序層連接的網橋414發(fā)送命令,該命令是用于對請求通過網絡發(fā)送的響應。然而,就對通過網絡發(fā)送的最后請求的響應而言,如果“SAuthInfo”被包含在“AppParamList”中,則沒有發(fā)送對響應的命令。應用程序層包處理單元405為內容釋放緩存的單獨訪問控制。在等待用戶之后,應用程序層協(xié)議處理任務402在應用程序層輸入/輸出參數數據列表403中添加參數(S179)。應用程序層協(xié)議處理任務402將其值為“SUserData”結構的“UAppLayerParamValue”結構添加到列表。值得注意的是,從S171到S179的處理被重復進行直到完成生成有效負載(循環(huán)42)。接下來,在從應用程序層協(xié)議處理任務402接收執(zhí)行協(xié)議處理步驟的通知(S180)后,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408獲取下一個處理步驟(S181)。接著,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408在應用程序層包處理單元405中生成下一個包(S182)并為生成響應4054分配存儲區(qū)域(堆)。同樣,應用程序層包處理單元405在HTTP報頭管理單元406中生成下一個報頭(S183)并為生成響應報頭4064分配存儲區(qū)域(堆)。更進一步地,應用程序層包處理單元405在應用程序層有效負載管理單元413中生成下一個有效負載(S184)并為生成響應主體4132分配存儲區(qū)域(堆)。HTTP客戶端處理步驟(協(xié)議默認)存儲單元408完成應用程序層包處理單元405中的處理(S185中的銷毀)。應用程序層包處理單元405完成HTTP報頭管理單元406中的處理(S186中的銷毀)并完成應用程序層有效負載管理單元413中的處理(S187中的銷毀)。接下來,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408在應用程序層包處理單元405中執(zhí)行分析處理(S188)。應用程序層包處理單元405在套接字I/F網橋409中執(zhí)行“recvSocket”處理(S189)。更進一步地,應用程序層包處理單元405在套接字I/F網橋409中執(zhí)行“decompose”處理(S190)。在這個情況下,如果狀態(tài)碼是417(Proxy-Authenticate),那么在“AppParamList”中的“SAuthInfo->fis_failed”被設置為“TRANS_TRUE”。如果狀態(tài)碼不是417,“AppParamList”中的“SAuthInfo->fis_failed”被設置為“TRANS_FALSE”。同樣,利用作為“decompose”的輸出參數“packet_attr”,HTTP報頭管理單元406將是否已知有效負載的大小返回到應用程序層包處理單元405。如果有效負載的大小是已知的,那么“packet_attr.f_has_payload_size”被設置為“TRANS_TRUE”。如果有效負載的大小不是已知的,那么“packet_attr.f_has_payload_size”被設置為“TRANS_FALSE”。如果“AuthInfo”被包含在“AppParamList”中,那么在“SAuthInfo->fis_failed”的值為“TRANS_TRUE”的情況下HTTP客戶端處理步驟(協(xié)議默認)存儲單元408返回對通過網絡發(fā)送的請求的響應(認證代理失?。?x06),并在“SAuthInfo->fis_failed”的值為“TRANS_FALSE”的情況下HTTP客戶端處理步驟(協(xié)議默認)存儲單元408返回對通過網絡發(fā)送的請求的響應(成功:0x01)。接下來,如圖18A和18B所示,在從應用程序層協(xié)議處理任務402接收執(zhí)行協(xié)議處理步驟的通知(S191)后,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408獲取下一個處理步驟(S192)。接著,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408在應用程序層包處理單元405中執(zhí)行分析處理(S193)。應用程序層包處理單元405在應用程序層有效負載管理單元413中執(zhí)行有效負載數據格式的設置處理(S194)。在這個情況下,如果有效負載大小是已知的,那么“has_payload_size”被設置為“TRANS_TRUE”且“payload_size”被設置為有效負載大小的值。如果有效負載大小不是已知的,那么“has_payload_size”被設置為“TRANS_FALSE”且“payload_size”被設置為0。接下來,應用程序層包處理單元405在與應用程序層連接的網橋414中執(zhí)行“getDhBuf”處理(S195)。在這個情況下,如果從用戶獲取內容的緩存,那么通過“SET_TRANS_CNTNT”處理進行單獨訪問控制直到對有效負載的分析結束。值得注意的是,從S195到S199的處理(隨后將描述)被重復進行直到對有效負載的分析結束(循環(huán)43)。接下來,應用程序層包處理單元405在套接字I/F網橋409中執(zhí)行“recvSocket”處理(S196)。如果在“recvSocket”處理中出現錯誤,那么處理分支成alt44。在這個情況下,應用程序層包處理單元405在與應用程序層連接的網橋414中執(zhí)行“dhStart”處理(S197)。也就是說,在將未完成的傳輸數據傳輸給OMAP后,處理走出循環(huán)(循環(huán)43)。值得注意的是,在無“Content-Length”(“內容長度”)時接收HTTP響應以及關閉與服務器的連接的情況下,處理經過這個路徑。接下來,應用程序層包處理單元405在應用程序層有效負載管理單元413中執(zhí)行“decompose”處理(S198)。在這個情況下,如果有效負載大小是已知的,那么“E_PAYLOAD_RESULT_COMPLETE”在接收到所有有效負載的時候被返回且“E_PAYLOAD_RESULT_NOT_COMPLETE”在完成接收到所有有效負載之前被返回。如果有效負載大小不是已知的,那么“E_PAYLOAD_RESULT_NOT_COMPLETE”總是被返回。接下來,應用程序層包處理單元405在與應用程序層連接的網橋414中執(zhí)行“dhStart”處理(S199)。在這種情況下,應用程序層包處理單元405首先僅將報頭傳輸給OMAP。傳輸給OMAP只在以下情況下被執(zhí)行:在不是數據塊的情況下用戶緩存變滿且對有效負載的分析結束,以及在是數據塊的情況下用戶緩存變滿且對于一個數據塊的有效負載的分析結束。接下來,應用程序層包處理單元405為來自于用戶的內容釋放緩存的單獨訪問控制值得注意的是,在出現套接字錯誤的情況下,應用程序層包處理單元405利用作為輸出參數的“error_reason”將錯誤原因返回到HTTP客戶端處理步驟(協(xié)議默認)存儲單元408。同樣,如果出現套接字錯誤,那么HTTP客戶端處理步驟(協(xié)議默認)存儲單元408將“E_TRANS_EXECUTE_RESULT_NOT_COMPLETED_EXECUTE_AGAIN”返回給應用程序層協(xié)議處理任務402。應用程序層協(xié)議處理任務402完成對請求共享通過網絡接收到的數據的響應。值得注意的是,在出現套接字錯誤時完成處理步驟的情況下,應用程序層協(xié)議處理任務402通過執(zhí)行“AppProtocolTask”(“App協(xié)議任務”)處理丟棄對請求共享通過網絡接收到的數據的響應。接下來,在從應用程序層協(xié)議處理任務402接收執(zhí)行協(xié)議處理步驟的通知(S200)后,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408獲取下一個處理步驟(S201)。接著,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408詢問應用程序層包處理單元405是否重新使用對話(S202)。應用程序層包處理單元405在HTTP報頭管理單元406中詢問“keepAlive”(S203)。接著,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408完成應用程序層包處理單元405中的處理(S204中的銷毀),且應用程序層包處理單元405完成HTTP報頭管理單元406中的處理(S205中的銷毀)以及完成應用程序層有效負載管理單元413中的處理(S206中的銷毀)。如果有“keepAlive”(“保持活著”),則處理分支成alt45。在這個情況下,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408生成包(S207)。也就是說,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408生成包含報頭和有效負載的包的實例。如果“fis_secured”被設置為“TRANS_TRUE”,那么“AppLayerPacket/setLowLayerSecured”(“App層包/設定低層安全”)被調用使得安全通訊可以被繼續(xù)。接下來,如圖19A和19B所示,下面描述在不重新使用對話(alt46)的情況下分支的處理以及在重新使用對話(alt47)的情況下分支的處理。在不重新使用對話(alt46)的情況下,在處理“clearAppProc”之后(S208),應用程序層協(xié)議處理任務402在與應用程序層連接的網橋414中為通過網絡接收數據的請求釋放緩存(S209)。接下來,應用程序層協(xié)議處理任務402在HTTP客戶端處理步驟(協(xié)議默認)存儲單元408中完成協(xié)議處理步驟(S210),且HTTP客戶端處理步驟(協(xié)議默認)存儲單元408在套接字I/F網橋409中關閉連接(S211)。接下來,應用程序層協(xié)議處理任務402完成HTTP客戶端處理步驟(協(xié)議默認)存儲單元408中的處理(S212中的銷毀)并完成應用程序層輸入/輸出參數數據列表403中的處理(S213中的銷毀)。在這個情況下,保留在列表上的其值為“SHostInfo”結構的“SAppLayerParam”結構以及其值為“SAuthInfo”結構的“SAppLayerParam”結構被刪除。接著,處理返回至S102(rcv_dtp)。換句話說,在重新使用對話的情況下(alt47),在處理“trcv_dtq”(S214)后,處理進一步地分支(alt471或者alt472)。在不是E_OK的情況下(alt471),在處理“clearAppProc”完成后,處理返回至S102(rcv_dtp)。在E_OK的情況下,處理進一步地分支(alt4721或者alt4722)。在目的地地址和端口號不一樣的情況下(alt4721),在處理“clearAppProc”之后,處理返回至S102(rcv_dtp)。在目的地地址和端口號相同的情況下(alt4722),應用程序層協(xié)議處理任務402在HTTP客戶端處理步驟(協(xié)議默認)存儲單元408中執(zhí)行“isConnectionEstablished”(“連接建立了”)處理(S215)。接著,HTTP客戶端處理步驟(協(xié)議默認)存儲單元408詢問套接字I/F網橋409與服務器之間的連接是否被維持(S216)。接下來,處理進一步分支(alt47221或者alt47222)。在連接被維持的情況下(isConnected的返回值為“TRAN_TRUE”)(alt47221),處理返回至S103(startAppProc)。在這個情況下,由于運行處理步驟已經存在,所以處理跳至“execute”處理。換句話說,在連接沒有被維持的情況下(isConnected的返回值為“TRAN_FALSE”)(alt47222),在處理“clearAppProc”之后,處理返回至S102(rcv_dtp)。第三實施例下面參考圖20到圖23A和23B的時序圖描述在包括本發(fā)明的第三實施例的網絡控制器的設備作為HTTP客戶端操作的情況下的處理的時序。時序圖的上部所示為執(zhí)行每一個處理的處理單元。值得注意的是,關于從接收自應用程序的數據生成HTTP請求包的處理的描述被省略,這是由于它與第二實施例中的相同,且以下描述集中于加密通訊處理。本發(fā)明的第三實施例與第二實施例之間的區(qū)別在于:為了在第三實施例中執(zhí)行加密通訊,執(zhí)行SSL/TLS對話啟動處理和對話完成處理。也就是說,在第三實施例中的發(fā)送/接收數據中利用SSL/TLS,數據被加密發(fā)送并被解碼接收。值得注意的是,利用通過網絡發(fā)送的請求的屬性(“證書CN名稱”、“認證證書組”、“在服務器認證失敗情況下的操作”以及“進行/不進行證書CN的檢查”),加密通訊的所有處理步驟被隱藏。圖20中從左到右有:人(TRANS_RXTX1_TASK)501、應用程序層協(xié)議處理任務502、客戶端處理步驟存儲單元506、應用程序層包處理單元507、應用程序層有效負載管理單元508、HTTP報頭管理單元511、套接字I/F網橋503、與應用程序層連接的網橋504以及SSL/TLS505。在從人501接收啟動任務的通知后,應用程序層協(xié)議處理任務502啟動(S401)。應用程序層協(xié)議處理任務502等待數據隊列(S402)。通過來自用戶的中斷,等待隊列被設置為數據隊列。在這個情況下,上面參考圖4A和4B所描述的通過網絡發(fā)送的請求數據在子系統(tǒng)之間的通訊中被接收。值得注意的是,在裝置報頭的情況下,OMAP能源節(jié)省0被設置為劃分的數據大小且EOF為“0x00”。換句話說,在應用程序報頭的情況下,OMAP通訊將通訊數據大小設置為應用程序數據大小。在這個情況下,目的地為“0x0003(RXTX3)”,控制報文為“0x02”,報文ID的詳細信息為“0x0D”,通訊模式為“0x00”且振動為“0x00”。接下來,在“handleDataQueueEvent”處理(S403)和“handleUserEvent”處理(S404)之后,“startAppProc”函數被執(zhí)行(S405)?!皁pen_error_reason”由“startAppProc”函數定義并作為輸出參數傳送到被調用的函數。應用程序層協(xié)議處理任務502在客戶端處理步驟存儲單元506中分配存儲區(qū)域以便通過構造器處理客戶端處理步驟(堆)。在這個情況下,確定SSL通訊是否被執(zhí)行的標志被設置成第三自變量(argument)。接著,應用程序層協(xié)議處理任務502通過“open”執(zhí)行啟動處理步驟??蛻舳颂幚聿襟E存儲單元506通過動作方法執(zhí)行啟動處理步驟(S406)。接著,客戶端處理步驟存儲單元506在套接字I/F網橋503中生成套接字并調用外部“SOCK_Socket”(S407)??蛻舳颂幚聿襟E存儲單元506執(zhí)行客戶端的協(xié)議處理步驟啟動處理(S408)。接下來,客戶端處理步驟存儲單元506在套接字I/F網橋503中設置套接字選項并調用外部“SOCK_SetSockOption”(S409)。接著,客戶端處理步驟存儲單元506通過套接字I/F網橋503與外部裝置連接(S410)。在這個情況下,外部“SOCK_Connect”被調用??蛻舳颂幚聿襟E存儲單元506在SSL/TLS505中執(zhí)行SSL/TLS對話啟動處理(S411)。在這個情況下,參考用于通過子系統(tǒng)之間的通訊的網絡進行發(fā)送的請求數據的參數,如果協(xié)議類型為HTTPS(0x02),則“TLS_OpenSocket”被調用。同樣,在這個時刻,屬性為具有“fis_secured”的SSL/TLS屬性被儲存??蛻舳颂幚聿襟E存儲單元506在應用程序層包處理單元507中為生成HTTP請求5051分配存儲區(qū)域,在應用程序層有效負載管理單元508中為生成請求主體5081分配存儲區(qū)域并在HTTP報頭管理單元511中為生成請求報頭5111分配存儲區(qū)域(堆)。同樣,客戶端處理步驟存儲單元506設定在應用程序層包處理單元507中正在進行安全通訊(S412)。值得注意的是,在出現錯誤的情況下,客戶端處理步驟存儲單元506將“sendErrorResponse”(“發(fā)送錯誤響應”)的錯誤響應返回給應用程序層協(xié)議處理任務502。對于相應于返回給OMAP的發(fā)送的結果,“0x01”指的是“成功”,“0x02”指的是“與主機的連接失敗”,“0x03”指的是“與SSL的連接失敗”,“0x04”指的是“在服務器處的認證失敗”,“0x05”指的是“在客戶端處的認證失敗”,“0x06”指的是“在代理處的認證失敗”以及“0x07”指的是“數據通訊的失敗”。接下來,在接收到來自于應用程序層協(xié)議處理任務502的執(zhí)行協(xié)議處理步驟的通知(S413)后,客戶端處理步驟存儲單元506獲取下一個處理步驟(S414)。接著,客戶端處理步驟存儲單元506在應用程序層包處理單元507中生成HTTP請求5051(S415)。同樣,應用程序層包處理單元507在HTTP報頭管理單元511中生成請求報頭5111(S416)并通過SSL/TLS505啟動加密發(fā)送處理(S417)。在這個情況下,在“fis_low_layer_secured(TRANS_TRUE)”的情況下“TLS_WriteSocket”被調用,且在“fis_low_layer_secured(TRANS_FALSE)”的情況下“SOCK_Write”被調用。接下來,如圖21A和21B所示,在接收到來自于應用程序層協(xié)議處理任務502的執(zhí)行協(xié)議處理步驟的通知(S418)后,客戶端處理步驟存儲單元506獲取下一個處理步驟(S419)。接著,客戶端處理步驟存儲單元506在應用程序層包處理單元507中生成HTTP請求5051(S420)。應用程序層包處理單元507在應用程序層有效負載管理單元508中生成請求主體5081(S421)。同樣,應用程序層包處理單元507在SSL/TLS505中執(zhí)行加密發(fā)送處理(S422)。更進一步地,應用程序層包處理單元507在套接字I/F網橋503中執(zhí)行緩存釋放處理(S423)、緩存獲取處理(S424)以及發(fā)送處理(S425)。在這個情況下,應用程序層包處理單元507發(fā)送對通過網絡發(fā)送的請求的響應數據。在這個情況下,發(fā)送源是“TRANS_RXTX3(0x0003)”,且發(fā)送的結果是“成功(0x01)”。同樣在這個情況下,對于裝置報頭,劃分的數據大小是4字節(jié),且EOF是“0x00”。換句話說,對于應用程序報頭,應用程序數據大小是4字節(jié),目的地是“0x0001”,控制報文ID是“0x03”,報文ID的詳細信息是“0x0D”,通訊模式是“0x00”以及振動是“0x00”。接下來,應用程序層包處理單元507確定返回值(S426)。在這個情況下,如果發(fā)送自OMAP的數據為劃分的數據,那么“AppLayerPayload”(“App層有效負載”)的返回值為“E_PAYLOAD_RESULT_NOT_COMPLETED”且“AppLayerPacket”的返回值為“E_PACKET_RESULT_NOT_COMPLETE_WAIT_TNPUT”。接下來,在接收到來自于應用程序層協(xié)議處理任務502的執(zhí)行協(xié)議處理步驟的通知(S427)后,客戶端處理步驟存儲單元506獲取下一個處理步驟(S428)。接著,客戶端處理步驟存儲單元506在應用程序層包處理單元507、應用程序層有效負載管理單元508以及HTTP報頭管理單元511中生成響應包。這個處理的詳細內容與上述第二實施例中的相同,所以詳細的解釋被省略(步驟S429到S442)。接下來,如圖22所示,客戶端處理步驟存儲單元506在應用程序層包處理單元507中分析在S437中生成的HTTP響應5053(S443)。應用程序層包處理單元507接收經由SSL/TLS505編碼的數據(S444)。應用程序層包處理單元507在HTTP報頭管理單元511中分析響應報頭5113(S445)。接下來,如圖23A和23B所示,在接收到來自于應用程序層協(xié)議處理任務502的執(zhí)行協(xié)議處理步驟的通知(S446)后,客戶端處理步驟存儲單元506獲取下一個處理步驟(S447)。接著,客戶端處理步驟存儲單元506在應用程序層包處理單元507中啟動分析處理(S448)。應用程序層包處理單元507經由與應用程序層連接的網橋504獲取緩存(S449)。在這個情況下,只有HTTP報頭被首先發(fā)送給OMAP。接著,應用程序層包處理單元507經由與應用程序層連接的網橋504執(zhí)行發(fā)送處理(S450)并經由SSL/TLS505接收編碼的數據(S451)。應用程序層包處理單元507在應用程序層有效負載管理單元508中執(zhí)行分析處理(S452),并經由與應用程序層連接的網橋504執(zhí)行發(fā)送處理(S453)。接下來,在接收到來自于應用程序層協(xié)議處理任務502的執(zhí)行協(xié)議處理步驟的通知(S454)后,客戶端處理步驟存儲單元506獲取下一個處理步驟(S455)。接著,客戶端處理步驟存儲單元506完成應用程序層包處理單元507中的處理(S456中的銷毀),應用程序層包處理單元507完成HTTP報頭管理單元511中的處理(S457中的銷毀),以及應用程序層有效負載管理單元508中的處理(S458中的銷毀)。最后,在接收到來自于應用程序層協(xié)議處理任務502的完成協(xié)議處理步驟的通知(S459)后,客戶端處理步驟存儲單元506關閉加密通訊對話(S460)。接著,客戶端處理步驟存儲單元506與套接字I/F網橋503斷開連接(S461)。應用程序層協(xié)議處理任務502完成客戶端處理步驟存儲單元506中的處理(S462)。根據上面教導,可以有多種附加的修改方案和改變。因此可以理解的是,在所附加的權利要求的范圍內,除了這里所特別描述的內容外,本專利說明書所公開的內容可以被實施。由于可以被計算機領域的技術人員所領會,根據本說明書的教導,本發(fā)明可以通過方便地使用傳統(tǒng)的通用數字計算機來實現?;诒景l(fā)明教導,合適的軟件編碼可以輕而易舉地由技能豐富的編程人員準備,因為這對軟件領域中的那些技術人員來說是顯而易見的。本發(fā)明也可以通過準備專用集成電路來實現或者通過互相連接傳統(tǒng)的元件電路的合適的網絡來實現,因為這對相關領域中的那些技術人員來說是輕而易舉且是顯而易見的。當前第1頁1 2 3