專利名稱:因特網(wǎng)收聽器/發(fā)布器的制作方法
背景技術(shù):
通常希望能夠允許基于因特網(wǎng)的應(yīng)用根據(jù)需要與位于防火墻之后的基于內(nèi)聯(lián)網(wǎng)的系統(tǒng)發(fā)送或接收信息。這樣做時(shí)遇到的問題是,大多數(shù)企業(yè)防火墻都阻止對因特網(wǎng)協(xié)議(IP)端口、如用于超文本傳輸協(xié)議(HTTP)的80端口的入站請求,而只允許出站因特網(wǎng)請求。不能進(jìn)行入站請求,就不能訪問內(nèi)聯(lián)網(wǎng)中的系統(tǒng)。如果入站請求未被阻止,就可以用這些請求從內(nèi)聯(lián)網(wǎng)中的裝置中獲得用于因特網(wǎng)應(yīng)用的信息。構(gòu)建在可擴(kuò)展標(biāo)志語言(XML)、簡單對象訪問協(xié)議(SOAP)上的Web服務(wù)通過HTTP進(jìn)行這些請求。如果內(nèi)聯(lián)網(wǎng)中的用戶希望能夠進(jìn)行入站請求,那么在讓其所在企業(yè)的IT部門相信安全風(fēng)險(xiǎn)是可接受時(shí),他將遇到很大的困難。這使得在內(nèi)聯(lián)網(wǎng)上部署可從因特網(wǎng)上訪問的HTTP服務(wù)器(即Web服務(wù))之類的解決方案,即使并非不可能,也是相當(dāng)困難的。
發(fā)明內(nèi)容
簡單說來,根據(jù)前面的敘述,本發(fā)明描述了一種因特網(wǎng)收聽器(listener)/發(fā)布器(publisher)方案,通過內(nèi)聯(lián)網(wǎng)上的發(fā)布器和因特網(wǎng)上的防火墻外部的收聽器之間的交互,本發(fā)明允許來自因特網(wǎng)的HTTP或安全套接字層之上的HTTP層(HTTPS)入站請求進(jìn)入到內(nèi)聯(lián)網(wǎng)。
因此,本發(fā)明的一個(gè)目的是為基于因特網(wǎng)的用戶提供一種用于訪問內(nèi)聯(lián)網(wǎng)上的系統(tǒng)的系統(tǒng),其中在因特網(wǎng)和內(nèi)聯(lián)網(wǎng)之間有效地設(shè)置防火墻。
本發(fā)明的另一個(gè)目的是提供可用于基于因特網(wǎng)的用戶對連接到基于內(nèi)聯(lián)網(wǎng)系統(tǒng)的裝置進(jìn)行訪問和監(jiān)測的系統(tǒng),其中在因特網(wǎng)和內(nèi)聯(lián)網(wǎng)之間有效地設(shè)置防火墻。
在圖中圖1a是示出防火墻阻止因特網(wǎng)HTTP請求的方框圖;圖1b是示出對于因特網(wǎng)HTTP訪問基于內(nèi)聯(lián)網(wǎng)的Web服務(wù)的代理方案的方框圖;圖2是因特網(wǎng)收聽器/發(fā)布器方案的優(yōu)選實(shí)施例的方框圖;圖3是因特網(wǎng)方案中優(yōu)選實(shí)施例的通信流程的方框圖;圖4是發(fā)布器的任務(wù)流程圖,描述了其與收聽器的通信鏈路的時(shí)序;圖5是收聽器的任務(wù)流程圖,描述了其與發(fā)布器的通信鏈路的時(shí)序。
具體實(shí)施例方式
現(xiàn)在參考附圖,首先參考圖1a,應(yīng)用60向位于防火墻54的內(nèi)聯(lián)網(wǎng)40一側(cè)的Web服務(wù)52發(fā)出HTTP請求110。因特網(wǎng)應(yīng)用60期待接收請求響應(yīng)124。但是,大部分企業(yè)防火墻像防火墻54一樣阻止入站HTTP服務(wù)請求110,而只允許出站請求。
解決這種限制的一種方法在圖1b中說明,這里在防火墻54的內(nèi)聯(lián)網(wǎng)40一側(cè)的HTTP收聽器55作為代理中介。在這個(gè)具體實(shí)施例中使用了HTTP協(xié)議。外部應(yīng)用60為了通過因特網(wǎng)30訪問內(nèi)聯(lián)網(wǎng)40上的Web服務(wù)52而向收聽器55發(fā)出HTTP代理請求112。代理請求112可以是附加了指示要訪問的Web服務(wù)52的內(nèi)聯(lián)網(wǎng)地址參數(shù)的標(biāo)準(zhǔn)HTTP請求。
實(shí)例http://www.HttpListener.com Redirect-http://intranet/webservice
如果使用了發(fā)布器參數(shù),則將其設(shè)置到“l(fā)ocal(本地)”以告知收聽器55不要使用發(fā)布器。附加的一個(gè)或多個(gè)參數(shù)既可以被設(shè)置成作為HTTP頭部分的通用資源鏈接(URL)參數(shù)也可以包括在SOAP頭中。
實(shí)例http://www.HttpListener.com Redirect=http://intranet/webselvice&PublisherURN-local除了附加的參數(shù),看起來外部應(yīng)用60是對收聽器55進(jìn)行HTTP請求。收聽器55在接收到代理請求112之后,直接向Web服務(wù)52進(jìn)行HTTP服務(wù)請求114。然后,Web服務(wù)52發(fā)送Web服務(wù)響應(yīng)120,收聽器55將該Web服務(wù)響應(yīng)120作為服務(wù)響應(yīng)124向外轉(zhuǎn)發(fā)出因特網(wǎng),到達(dá)最初發(fā)出請求的應(yīng)用60。
這種運(yùn)行模式具有不適宜的防火墻要求的缺點(diǎn)。然而,這種模式因具備隔離區(qū)而有用,在該隔離中收聽器55可以入站和出站訪問需要的IP端口,也可以訪問內(nèi)聯(lián)網(wǎng)40。
現(xiàn)在參考圖2,示出適合實(shí)現(xiàn)本發(fā)明的軟件處理的方框圖。具體來說,因特網(wǎng)收聽器/發(fā)布器方案50包括位于防火墻54的內(nèi)聯(lián)網(wǎng)40一側(cè)的發(fā)布器58和位于防火墻54的因特網(wǎng)30一側(cè)的收聽器56。在這個(gè)說明性實(shí)施例中僅有一個(gè)發(fā)布器58和一個(gè)收聽器56。然而,一個(gè)收聽器可以服務(wù)多個(gè)發(fā)布器。發(fā)布器58和收聽器56在它們之間保持因特網(wǎng)HTTP通信通道152。
收聽器56包含如響應(yīng)計(jì)時(shí)器180和無響應(yīng)計(jì)時(shí)器182之類的用于保持通信通道152的部件。收聽器56也保持目的地為發(fā)布器58的消息的請求隊(duì)列184以及目的地為因特網(wǎng)30的消息的響應(yīng)隊(duì)列186。在入站HTTP請求期間,收聽器56保持對因特網(wǎng)的HTTP連接150。
發(fā)布器58與收聽器56之間保持HTTP連接152。發(fā)布器將從收聽器56接收到的請求154傳遞到內(nèi)聯(lián)網(wǎng)上。發(fā)布器58不保持開放的內(nèi)聯(lián)網(wǎng)連接并且也沒有計(jì)時(shí)器。對于發(fā)布器58來說,唯一發(fā)生的超時(shí)是內(nèi)聯(lián)網(wǎng)上的Web服務(wù)的HTTP協(xié)議超時(shí)。
發(fā)布器58要求開放需要的出站端口(HTTP或HTTPS),這也是絕大多數(shù)的企業(yè)防火墻默認(rèn)的情形。收聽器56要求開放用于入站和出站業(yè)務(wù)的通信端口??蓪⒁粋€(gè)收聽器56放置在因特網(wǎng)30上用于多個(gè)因特網(wǎng)用戶。由于收聽器56并不需要至內(nèi)聯(lián)網(wǎng)40的連接,所以用戶IT部門不太會反對將其托管在因特網(wǎng)30上。因?yàn)橥泄芄静⒉恍枰L問用戶的內(nèi)聯(lián)網(wǎng)40,所以也可選擇用于收聽器56的如因特網(wǎng)服務(wù)提供商(ISP)之類的外部托管公司。根據(jù)提供商網(wǎng)絡(luò)的安裝和IT實(shí)踐的要求,可以將發(fā)布器58和收聽器56集成到包括網(wǎng)關(guān)、網(wǎng)絡(luò)服務(wù)器等設(shè)備的任何適宜平臺上。
現(xiàn)在參考圖3,示出根據(jù)本發(fā)明一個(gè)實(shí)施例的因特網(wǎng)收聽器/發(fā)布器方案50的通信流程。發(fā)布器58和Web服務(wù)52位于防火墻54的內(nèi)聯(lián)網(wǎng)40一側(cè),而收聽器56位于防火墻54的因特網(wǎng)30一側(cè)。通過發(fā)布器58和收聽器56的交互,因特網(wǎng)收聽器/發(fā)布器方案50允許來自因特網(wǎng)30的請求進(jìn)入到內(nèi)聯(lián)網(wǎng)40。
根據(jù)本發(fā)明的一個(gè)說明性實(shí)施例,外部應(yīng)用60為了能通過因特網(wǎng)訪問內(nèi)聯(lián)網(wǎng)40上的Web服務(wù)52而向收聽器56發(fā)出服務(wù)請求112。根據(jù)本發(fā)明的備選實(shí)施例,服務(wù)請求112是代理請求。代理請求112可以是附加了指示該請求預(yù)期到達(dá)的發(fā)布器的參數(shù)和指示W(wǎng)eb服務(wù)52的內(nèi)聯(lián)網(wǎng)地址的參數(shù)的標(biāo)準(zhǔn)HTTP請求。這些參數(shù)可以被設(shè)置成作為HTTP頭的URL參數(shù)部分也可以包括在SOAP頭中。除了附加的參數(shù),看起來外部應(yīng)用60是對收聽器56進(jìn)行了HTTP請求。
實(shí)例http://www.HttpListener.com Redirect-http://intranet/webservice&PublisherURN-http://Publisher.com發(fā)布器58通過與收聽器56保持開放恒定的HTTP連接與收聽器56交互。通過向收聽器56連續(xù)發(fā)送等待請求108保持開放連接,利用通用資源名(URN)標(biāo)識發(fā)布器57。當(dāng)收聽器收到對于發(fā)布器58的代理服務(wù)請求112,收聽器檢查被尋址的發(fā)布器58是否在合理的時(shí)間量內(nèi)登記(即發(fā)送等待請求108)。如果最近接收到等待請求108,則收聽器56A.將接收的代理服務(wù)請求112嵌入返回請求114包,B.給它分配唯一的事務(wù)標(biāo)識符,以及C.將返回請求114包排隊(duì)進(jìn)請求隊(duì)列184,準(zhǔn)備發(fā)送給發(fā)布器58。
D.再將請求112放入代表未完成的內(nèi)聯(lián)網(wǎng)請求隊(duì)列的響應(yīng)隊(duì)列186中。
如果發(fā)布器58沒有在合理的時(shí)間量內(nèi)登記(即最近沒有接收到等待請求108),就將超時(shí)或不可用錯(cuò)誤作為服務(wù)請求結(jié)果124返回到應(yīng)用60。
因特網(wǎng)收聽器/發(fā)布器方案50透明承載所有的如服務(wù)超時(shí)之類的錯(cuò)誤情況。既可以將錯(cuò)誤情況作為適當(dāng)?shù)腍TTP錯(cuò)誤響應(yīng)返回,或者在Web服務(wù)的情形下作為更具描述性的SOAP錯(cuò)誤返回,然后在應(yīng)用層適當(dāng)處理。在任何情況下,因特網(wǎng)收聽器/發(fā)布器方案中的錯(cuò)誤都將最終由收聽器映射,并在響應(yīng)124中返回。
當(dāng)發(fā)布器58接收到返回請求114時(shí),它將嵌入的服務(wù)請求112作為Web服務(wù)HTTP請求116轉(zhuǎn)發(fā)到被尋址的內(nèi)聯(lián)網(wǎng)Web服務(wù)52。Web服務(wù)52執(zhí)行要求的動(dòng)作(如訪問信息或訪問控制系統(tǒng)),這導(dǎo)致Web服務(wù)52發(fā)送Web服務(wù)響應(yīng)120消息。發(fā)布器58接收Web服務(wù)響應(yīng)120并將其作為返回結(jié)果122消息轉(zhuǎn)發(fā)到收聽器56。收聽器56接收返回結(jié)果122消息,使用事務(wù)標(biāo)識符在響應(yīng)隊(duì)列186中查找最初的代理服務(wù)請求112,并將發(fā)布器的響應(yīng)122的內(nèi)容作為Web服務(wù)響應(yīng)124發(fā)送到最初發(fā)出請求的應(yīng)用60。接著,從響應(yīng)隊(duì)列186中清除最初的請求。做出最初代理服務(wù)請求112的因特網(wǎng)應(yīng)用60將進(jìn)入內(nèi)聯(lián)網(wǎng)40的請求理解為對收聽器56的請求。
收聽器56又在狀態(tài)響應(yīng)126中將投遞122的狀態(tài)返回到發(fā)布器58。可以記錄該狀態(tài)響應(yīng)126以檢查收聽器56和發(fā)布器58之間的故障。
現(xiàn)在參考圖4,示出了發(fā)布器58的通信任務(wù)活動(dòng)的高層流程圖。收聽器56和發(fā)布器58之間的通信由發(fā)布器所控制。為了保持通信通道對收聽器56的開放,發(fā)布器58必須保持等待請求108的可靠和連續(xù)流。這可以根據(jù)需要通過通信資源、隊(duì)列資源、發(fā)布器58的任務(wù)環(huán)境及收聽器56的任務(wù)環(huán)境由任何公知軟件技術(shù)實(shí)現(xiàn)。步驟312代表發(fā)布器58的活動(dòng)的空閑任務(wù)狀態(tài)。當(dāng)在步驟306接收到返回請求114時(shí),在步驟308剝離請求114中嵌入的請求,并且在步驟310作為Web服務(wù)請求116在內(nèi)聯(lián)網(wǎng)中轉(zhuǎn)發(fā)到被尋址的Web服務(wù)器52。在步驟312發(fā)布器58空閑。
當(dāng)在步驟302發(fā)布器58從Web服務(wù)器接收到Web服務(wù)響應(yīng)120時(shí),在步驟304將響應(yīng)作為返回結(jié)果122消息傳遞到收聽器,并且在步驟312空閑。
在步驟300,將等待請求消息108發(fā)送到收聽器56。根據(jù)托管發(fā)布器58的操作系統(tǒng)的要求和對于通信任務(wù)處理領(lǐng)域的技術(shù)人員顯而易見的技術(shù),發(fā)往收聽器56的等待請求消息的周期由任務(wù)時(shí)鐘、輪詢技術(shù)或?qū)κ章犉?6活動(dòng)的響應(yīng)來控制。
現(xiàn)在參考圖5,示出了收聽器56的通信任務(wù)活動(dòng)的流程圖。當(dāng)在步驟320收聽器56從發(fā)布器接收到等待請求108時(shí),在步驟322它復(fù)位所有未決的無響應(yīng)計(jì)時(shí)器182,在步驟324設(shè)置響應(yīng)計(jì)時(shí)器180以指示發(fā)布器58的最后通信時(shí)間。接著,在步驟326將所有排隊(duì)的消息都發(fā)送到發(fā)布器58(以返回請求114消息的形式),然后在步驟360任務(wù)空閑。
當(dāng)在步驟330收聽器56接收到服務(wù)請求112時(shí),在步驟332它將事務(wù)標(biāo)識符分配給請求112,并且在步驟333將請求派隊(duì)進(jìn)等待響應(yīng)隊(duì)列186。接著,在步驟334將請求112嵌入到返回請求114,并且在步驟336將其排隊(duì)到請求隊(duì)列184中用于傳送給發(fā)布器。在步驟338,檢查響應(yīng)計(jì)時(shí)器180以了解發(fā)布器58最近是否有過通信。在步驟338如果響應(yīng)計(jì)時(shí)器180沒有超時(shí),那么在步驟326,將所有在請求隊(duì)列184中的服務(wù)請求114消息發(fā)送給發(fā)布器58,并且在步驟360任務(wù)空閑。如果在步驟338響應(yīng)計(jì)時(shí)器180超時(shí),那么在步驟358將無響應(yīng)計(jì)時(shí)器182設(shè)置到合理的時(shí)間量以檢查不活動(dòng),或者不然就是不可通信的發(fā)布器。在步驟360,在隊(duì)列中保留服務(wù)請求114并且任務(wù)空閑。
如果在步驟350無響應(yīng)計(jì)時(shí)器超時(shí),則發(fā)布器58不通信。在這種情況下,在步驟352,對于每個(gè)排隊(duì)服務(wù)請求114,以Web服務(wù)請求結(jié)果124的形式返回錯(cuò)誤,并且在步驟360任務(wù)空閑之前,在步驟354清除消息隊(duì)列184。
當(dāng)在步驟340接收到來自發(fā)布器58的返回結(jié)果消息122時(shí),在步驟342使用事務(wù)標(biāo)識符在響應(yīng)隊(duì)列中查找最初的請求。在步驟334,清除響應(yīng)隊(duì)列中的該條目。如果在響應(yīng)隊(duì)列中未找到條目,那么清除返回結(jié)果消息122,因?yàn)閷Υ耸聞?wù)沒有現(xiàn)存且有效的最初請求。接著,在步驟346,將返回結(jié)果消息122作為服務(wù)響應(yīng)消息124在因特網(wǎng)30上傳送到發(fā)起的應(yīng)用60。也可以將狀態(tài)響應(yīng)消息126發(fā)送到發(fā)布器58用于記錄和追蹤。
因特網(wǎng)收聽器/發(fā)布器可以在僅使用入站IP端口就可以從因特網(wǎng)將請求發(fā)送到內(nèi)聯(lián)網(wǎng)的任何應(yīng)用中使用,這是有利的。本發(fā)明最有用之處在于在SOAP Web服務(wù)中進(jìn)行訪問。本發(fā)明的一種應(yīng)用是利用Powerlogic高級服務(wù)器(PowerlogicPower Server)和/或系統(tǒng)管理軟件(System Manager Software)(SMS-3000)產(chǎn)品中的Web服務(wù)訪問來自Square D PowerLogic電路監(jiān)視器的數(shù)據(jù)。另一種應(yīng)用是在企業(yè)范圍系統(tǒng)內(nèi)用于通過因特網(wǎng)收集來自若干個(gè)內(nèi)聯(lián)網(wǎng)Web服務(wù)的包括電能質(zhì)量和/或報(bào)表應(yīng)用的數(shù)據(jù)。
盡管說明并描述了本發(fā)明的特定實(shí)施例和應(yīng)用,但應(yīng)當(dāng)理解,本發(fā)明并不局限于本文所公開的精確結(jié)構(gòu)和組成,并且根據(jù)先前描述,在不偏離所附權(quán)利要求所定義的本發(fā)明的精神和范圍的前提下,各種修改、改變和變化是顯而易見的。
權(quán)利要求
1.一種跨越防火墻響應(yīng)因特網(wǎng)用戶對基于內(nèi)聯(lián)網(wǎng)的Web服務(wù)器的訪問請求的通信系統(tǒng),包括在所述防火墻的所述因特網(wǎng)一側(cè)響應(yīng)來自所述因特網(wǎng)用戶的所述訪問請求的收聽器,以及在所述防火墻的所述內(nèi)聯(lián)網(wǎng)一側(cè)訪問所述Web服務(wù)器并保持與所述收聽器的通信鏈路的發(fā)布器。
2.如權(quán)利要求1所述的通信系統(tǒng),其中所述發(fā)布器與所述收聽器保持開放的超文本傳輸協(xié)議(HTTP)或安全套接字層之上的HTTP層(HTTPS)連接。
3.如權(quán)利要求1所述的通信系統(tǒng),其中所述收聽器保持HTTP或安全套接字層之上的HTTP層(HTTPS)因特網(wǎng)連接。
4.如權(quán)利要求1所述的通信系統(tǒng),其中所述收聽器將所述訪問請求嵌入到對來自所述發(fā)布器的通信請求的響應(yīng)中。
5.如權(quán)利要求1所述的通信系統(tǒng),其中所述收聽器將其自身的請求嵌入到對來自所述發(fā)布器的通信請求的響應(yīng)中。
6.一種跨越防火墻將來自因特網(wǎng)用戶的內(nèi)聯(lián)網(wǎng)服務(wù)訪問請求通信到基于內(nèi)聯(lián)網(wǎng)的Web服務(wù)的方法,包括在內(nèi)聯(lián)網(wǎng)發(fā)布器和所述Web服務(wù)器之間保持通信鏈路;在因特網(wǎng)收聽器和所述因特網(wǎng)用戶之間保持通信鏈路;以及在所述發(fā)布器和所述收聽器之間保持通信鏈路。
7.如權(quán)利要求6所述的通信方法,在所述發(fā)布器和所述收聽器之間使用HTTP或安全套接字層之上的HTTP層(HTTPS)連接。
8.如權(quán)利要求6所述的通信方法,其中所述收聽器保持HTTP或HTTPS因特網(wǎng)連接。
9.如權(quán)利要求6所述的通信方法,將所述因特網(wǎng)用戶訪問請求嵌入到對來自所述發(fā)布者的通信請求的響應(yīng)中。
10.一種跨越防火墻將來自發(fā)出請求的因特網(wǎng)用戶的內(nèi)聯(lián)網(wǎng)服務(wù)訪問請求傳送到基于內(nèi)聯(lián)網(wǎng)的服務(wù)的方法,包括從防火墻的內(nèi)聯(lián)網(wǎng)一側(cè)接收通信請求;從所述因特網(wǎng)用戶接收所述訪問請求;將所述訪問請求封裝到響應(yīng)消息中;響應(yīng)所述通信請求而發(fā)送所述響應(yīng)消息;將所述響應(yīng)消息轉(zhuǎn)發(fā)到基于內(nèi)聯(lián)網(wǎng)的Web服務(wù);跨越防火墻向外轉(zhuǎn)發(fā)基于內(nèi)聯(lián)網(wǎng)的Web服務(wù)響應(yīng);以及將所述基于內(nèi)聯(lián)網(wǎng)的Web服務(wù)響應(yīng)轉(zhuǎn)發(fā)到所述發(fā)出請求的因特網(wǎng)用戶。
11.如權(quán)利要求9所述的通信方法及其它,其中將事務(wù)ID分配給所述訪問請求。
12.如權(quán)利要求10所述的通信方法及其它,其中基于所述事務(wù)ID將所述Web服務(wù)響應(yīng)轉(zhuǎn)發(fā)到所述因特網(wǎng)用戶。
13.如權(quán)利要求9所述的通信方法及其它,其中如果在超時(shí)周期內(nèi)未接收到所述通信請求,則所述訪問請求失效。
14.如權(quán)利要求9所述的通信方法及其它,其中所述通信請求是HTTP等待請求。
15.如權(quán)利要求9所述的通信方法及其它,其中所述訪問請求是在HTTP或HTTPS連接之上。
16.如權(quán)利要求9所述的通信方法及其它,其中所述通信請求是在HTTP連接之上。
全文摘要
一種允許因特網(wǎng)(30)訪問位于公司內(nèi)聯(lián)網(wǎng)(40)上的公司防火墻(54)之后的選定服務(wù)的通信方案,包括在內(nèi)聯(lián)網(wǎng)(40)上與內(nèi)聯(lián)網(wǎng)(40)Web服務(wù)(52)通信的發(fā)布器(58)和因特網(wǎng)(30)上的收聽器(55),并且該方案對來自因特網(wǎng)(30)用戶的選擇請求進(jìn)行響應(yīng),上述請求被嵌入到從收聽器(55)接收的、應(yīng)答發(fā)布者(58)查詢的響應(yīng)中。
文檔編號H04L29/08GK1906912SQ200480040669
公開日2007年1月31日 申請日期2004年11月12日 優(yōu)先權(quán)日2003年11月20日
發(fā)明者R·A·達(dá)爾曼, M·W·派爾 申請人:斯夸爾D公司