什麼是Office中間件?
中間件(middleware)是基礎軟體的一大類,屬於可復用軟體的範疇。顧名思義,中間件處於作業系統軟體與用戶的套用軟體的中間。
中間件在作業系統、網路和資料庫之上,套用軟體的下層,總的作用是為處於自己上層的套用軟體提供運行與開發的環境,幫助用戶靈活、高效地開發和集成複雜的套用軟體。在眾多關於中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系統軟體或服務程式,分散式套用軟體藉助這種軟體在不同的技術之間共享資源,中間件位於客戶機伺服器的作業系統之上,管理計算資源和網路通信。
IDC對中間件的定義表明,中間件是一類軟體,而非一種軟體;中間件不僅僅實現互連,還要實現套用之間的互操作;中間件是基於分散式處理的軟體,最突出的特點是其網路通信功能。
Office中間件是中間件中的一種和Office訪問控制有關的Web中間件。它介於web伺服器和web套用軟體之間,提供簡潔的調用接口供Web應用程式訪問控制顯示Office文檔。它不但能夠提供一個B/S架構的Office文檔線上操作平台,而且還需要提供一個伺服器端的Office數據存取框架模型。由於微軟Office的壓倒性的市場占有率和普及率,Office中間件中最常用的是基於微軟Office的微軟Office中間件。
為何需要Office中間件?
在C/S架構的軟體開發中,對Office軟體的調用可以通過Office自動化接口進行,也可以直接編寫VBA存取Office數據,對Office中間件的需求並不是很迫切。但在B/S架構的Web套用軟體開發中,就非常迫切需要Office中間件的支持。在Web開發中,要解決兩個難題:一是在瀏覽器中顯示編輯Office文檔,二是在伺服器端代碼里訪問Office文檔數據。在瀏覽器中顯示編輯Office文檔不能像WinForm視窗那樣可以簡單地OLE嵌入,還要受到瀏覽器的安全限制。伺服器端訪問Office文檔數據,Windows伺服器平台上常用的方法是伺服器自動化Office,但這種方法經常導致Word、Excel死進程,伺服器工作不穩定。而且如果要自動化Office,就必須授予ASPNET或Internet來賓帳戶更高的許可權和桌面互動許可權,大大降低了伺服器原有的安全性,增加了黑客攻擊的風險。微軟官方表示不推薦Web伺服器自動化Office,而由此產生的問題用戶自負,參考微軟官方技術文章Q257757。Linux、Unix伺服器平台不能運行微軟Office軟體,當然根本無法使用Office伺服器自動化技術。Linux、Unix平台上只能使用POI、JXL等訪問word、excel,但是POI、JXL也有很大的缺點,Office版本兼容的嚴重滯後性,接口調用複雜性以及在瀏覽器中只能以附屬檔案形式下載生成的Office文檔而無法線上瀏覽。
一個實用的Office中間件應該能夠同時解決客戶端顯示和伺服器端數據訪問的難題,套用軟體開發者無需關心Office軟體的接口和工作細節,能夠把更多的精力集中在自己更擅長的業務邏輯代碼的編寫上。
Office中間件和Office控制項的區別
Office控制項一般是指在Office文檔上添加的按鈕、下拉框之類的控制項,例如在MS Word文檔里比較常見,主要是執行和宏有關的操作;也有開發一個ActiveX控制項,在其中嵌入Office軟體,這樣的控制項容器也稱為Office控制項,一般用在C/S結構的程式開發中。這種控制項容器也有運行在瀏覽器中的,雖然可以嵌入Office文檔,但是打開文檔、保存文檔等操作都需要用Javascript編寫,代碼繁瑣,只局限在瀏覽器內的開發中。
Office中間件由伺服器端數據訪問控制組件和客戶端顯示控制項構成。Office中間件伺服器端給軟體開發者提供了一個Office文檔內容的數據存取層,禁止了Office程式的接口細節和實現邏輯,大大簡化了和Office有關的編程工作,提高了軟體開發的效率。