摘要:Internet呼叫中心正在興起,網絡防火墻的應用也已非常普遍。如何在保障系統及用戶的網絡安全的前提下高效便捷地穿越防火墻,是Internet呼叫中心設計者必須解決的課題。本文以訊泰公司的呼叫中心系統ezConnect為例,介紹了一個Internet應用穿越防火墻的具體方案。此方案具有一定的普遍適用性。
關鍵詞:呼叫中心、防火墻、Internet、ezConnect
一.前言
對于Internet應用來講,有兩類防火墻需要考慮:一種是被用于保護應用服務器的防火墻,另一種是用來保護和限制終端用戶的防火墻。一般來講,前一類防火墻易于控制:在不違背企業的 網絡安全制度的前提下,針對Internet應用的具體情況,在網絡管理員的協助下采用開放特定端口(俗稱“防火墻上打洞“)、傳輸層建橋、應用層代理等方法來對外提供服務。而對于后一類防火墻,網絡管理員一般不可能為了某個終端用戶的個人需要而降低防火墻的整體安全程度,所以只能從Internet應用本身著手,采用HTTP隧道、SOCK代理服務器等技術來盡可能地向被各式各樣防火墻所包圍的終端用戶提供方便。
多數的企業防火墻都對80端口上的向外HTTP請求沒有限制或只做少量的限制(例如禁止員工訪問色情和政治網站)。一些Internet應用為了最大化防火墻透明度,客戶端只直接使用HTTP協議與服務器端進行通信。這樣,在3層結構(或n層結構)體系中,web瀏覽器一側基本不做邏輯運算,web服務器上運行JSP, Servlet, ASP, CGI等進行適當的業務處理以及與后端應用服務器或數據庫進行通信。對于Internet呼叫中心,此種模式不太適用。因為基于web瀏覽器的客戶端往往要做一些較為復雜的處理,例如支持白板共享、文本聊天、IP電話等功能。不過,利用協議隧道技術把呼叫中心客戶端和服務器端之間的通信協議嵌入到HTTP協議來穿越防火墻仍然非常地有效。這種模式中,Java小程序(Java Applet)或與其作用類似的組件運行在web瀏覽器上完成一些邏輯處理,Java小程序與后臺服務器之間的通信在必要時采用HTTP隧道技術。這是目前先進的防火墻處理方案,運用得當時甚至可以出色地完成話音這樣的大數據量傳輸。
目前在國內實際運營的Internet呼叫中心非常少,但肯定地說這是一個近期未來的趨勢。在種類繁多的Internet應用中,絕大多數仍然要求用戶的網絡環境必須開放著某一組TCP端口,這在一定程度上限制了此類Internet應用的適用范圍。本文通過對訊泰公司的呼叫中心產品ezConnect的防火墻解決方案的介紹,希望能對類似產品的技術選型和開發有一定的幫助。
二.EzConnect系統的結構
ezConnect系統是由訊泰信息科技公司的北京研發中心設計開發出來的一個成熟的多媒體呼叫中心產品。支持傳統電話、web、電子郵件、傳真、語音郵件、IP電話、短消息、WAP等用戶接入方式;對客戶請求采用基于座席技能的智能分派;提供文本交談、白板共享、協同填表、文檔推送、IP電話、短消息發送等多種實時交流工具;有非常實用的實時監控和報表子系統。核心部分的設計采用分離分層的思想,實現了相對于PBX、IVR、CRM的透明性。系統的配置非常靈活,可以在很短的時間內完全改變整個客戶端的風格,或支持一種新的語言。整個系統建立在Java平臺上,具有良好的可移植性。下面是ezConnect系統的結構圖:

三.ezConnect的防火墻解決方案
ezConnect系統的防火墻方案計劃實現以下幾個目標:
1、企業防火墻有效保障ezConnect內部系統
2、內部用戶的高效訪問,避免不必要的網絡流量
3、外部Internet用戶的無障礙訪問
4、支持絕大多數外部Intranet用戶的透明訪問
目標1是一般防火墻系統的基本功能。對于ezConnect系統,最常見的方法是在防火墻上完成下面兩個配置:
- 把所有對ezConnect系統的Web請求轉發給內部Web服務器(通常安裝在ezConnect服務器所在的主機上)。
- 把所有的ezConnect協議(2624端口上的TCP連接)請求轉發給ezConnect服務器。
下述方法可以實現目標2:內部用戶訪問時ezConnect系統的域名被解析為LAN上的IP地址(很多種方法可以實現,最簡單的一種是修改內部用戶使用的計算機的hosts文件), 這樣內部用戶的訪問就可以直接到達ezConnect服務器,避免了對網關和防火墻不必要的干擾。
普通Internet用戶(例如撥號上網或小區ADSL)對Internet資源的訪問一般不受限制,所以只需解決如何穿越保衛著ezConnect服務器的防火墻的問題。訊泰公司的方案是開發一套通用的通訊API, 在此API的基礎上實現呼叫中心客戶端的業務邏輯(參見下圖)。這個通訊API的底層有兩種方式:直接socket連接和HTTP隧道,API會自動檢測其所處的網絡環境來選擇適當的底層連接方式。一般而言,保障著ezConnect服務器的防火墻應該開放著ezConnect的協議端口2624。 所以普通Internet用戶訪問ezConnect系統時,客戶端軟件與服務器軟件通過建立直接的socket連接來互通信息。目標3由此達到。
對于被企業防火墻所限制的Intranet用戶,情況略微復雜一些。如果企業防火墻已開放ezConnect的協議端口2624,那么此類Intranet用戶訪問ezConnect系統的情況與普通Internet用戶沒有區別。如果企業防火墻限制ezConnect的協議端口,但允許HTTP協議通過,那么上文中提到的API會自動選用HTTP隧道的通信方式來維護客戶端軟件與服務器軟件之間的連接。此時,通信的效率會相對低一些,但對于可以透明地、完整地獲取Internet呼叫中心服務(文本交談、白板共享、IP電話等)的Intranet用戶來講是完全可以接受的。如果企業防火墻同時禁止ezConnect的協議端口2624和HTTP協議的默認端口80,Intranet用戶將無法訪問ezConnect系統。而事實上,嚴格到不允許HTTP協議通過的防火墻是非常少見的,因此目標4也不成為問題。
下圖描述了客戶端軟件在不同的網絡環境下連接服務器的方式。

四.方案的適用范圍
本文所描述的防火墻解決方案事實上是一個通用的設計開發模式,適用于任何有以下特點的系統:
1、Internet應用
2、客戶端軟件需要完成一定的業務邏輯(客戶端軟件通常表現為獨立應用程序或Applet, ActiveX之類的網頁嵌入程序)
3、系統的服務器端可能會被安裝在防火墻內,或系統的部分用戶可能位于某種防火墻內
4、設計者希望所有的用戶都能透明地以同樣的方式訪問系統,用戶無需在訪問前根據自己的網絡環境作一些設置手工調整。
五、結束語
是否能夠透明地穿越各類防火墻來向廣大用戶提供服務,一定程度上決定了Internet呼叫中心及與其相似的系統的用戶群體和接入場所;是影響用戶滿意程度的一個重要因素。本文所描述的方案已在訊泰公司的呼叫中心產品ezConnect系統的開發中得到了驗證,各項指標均達到預期的設計目標。此方案以很小的開發成本為ezConnect系統贏得了一個非常有市場價值的產品賣點。
參考文獻
http://java.sun.com/j2se/1.4/docs/guide/rmi/
Jiangzhe Wang: “How to configure ezConnect to go through firewalls”, Product document of Systek Information Technology Ltd. 2001
Zhang Lei, “Product Specification of ezConnect Release 4.0”, Product document of Systek Information Technology Ltd. 2000
“White paper of ISA system”, Microsoft Ltd.
作者聯系方法:jiangzhe.wang@systekit.com.cn