business logic 層是整個ArcIMS的核心,是負責用戶端和資料來源互動的中間過程,包括服務啟動和處理請求(request)和反應(response).
一個請求處理的過程是:
當一個包含地理資料分析的請求從用戶端到達WebServer(Tomcat,IIS等)時,WebServer需要將請求傳送給ArcIMS Application Server,它是一個後台執行的程式,傳遞請求到ArcIMS Spatial Server,並列出ArcIMS Spatial Server正在啟動並執行服務.後者處理請求,返回一個Response,這個Response逆序傳到用戶端,由用戶端解析
(parse)並呈現.
這個過程中由於WebServer從用戶端獲得的請求可能是多種語言形式的,而ArcIMS Application Server和ArcIMS Spatial Server之間的互動是通過ArcXML(an implementation of XML used with ArcIMS)來進行的.所以在WebServer和ArcIMS Application Server之間需要有一個connector作為ArcXML的翻譯器,ArcIMS內建了四種可選的connector:
ArcIMS Servlet Connector ArcIMS預設的connector,HTML, Java Custom, and Java Standard 視圖均可.ArcIMS內建的ArcExplorer, ArcMap, 和ArcPad也用這個connector.
ArcIMS ColdFusion Connector 不懂
ArcIMS ActiveX Connector 支援ASP
ArcIMS Java Connector 支援JSP
採用什麼connector這裡面除了有個選擇的開發語言外,還有效能的問題(即Client Side versus Server Side Processing).
選用ArcIMS Servlet Connector,是Client Side Processing,應該就是所謂的"胖客戶"吧,用戶端產生直接ArcXML形式的請求,connector沒有任何解析作用,只是傳遞ArcXML請求和回應,用戶端需要解析ArcXML回應以呈現地圖.
選用Java Connector,是所謂的"瘦客戶",ArcXML的所有處理,包括請求和回應,都是在伺服器端完成的.Jsp傳遞一個請求,WebServer先接受這個請求,Java Connector將這個請求翻譯為ArcXML,然後傳交給Application Server和ArcIMS Spatial Server.當ArcIMS Spatial Server產生回應,原路返回到 Java Connector時,Java Connector又將這個ArcXML形式的回應翻譯為JSP的回應,再通過WebServer傳給用戶端,並動態更新JSP.