摘要 由于企業應用系統軟件開發的獨立性與技術多樣性,造成系統之間相互通信、數據共享困難,需要建立統一的企業信息平臺以解決問題。在進行企業應用集成方案設計的過程中,一個關鍵問題研究就是如何對遺留系統中的數據或事務或應用程序擴展成Web Services,使這些Web Services能在Web上對外提供服務。
關鍵詞 企業的遺留系統;Web Services擴展;數據層次;事務層次
企業應用集成是指將企業內部不同應用系統和數據集成到一起的過程。通過這一過程,在各異構系統間建立起可供數據共享和應用通信的消息總線,實現企業內部業務流程的整合、管理模式的統一和對已有系統的重復利用,降低系統開發維護的成本,為用戶提供一個通用的操作平臺,最終達到提升企業競爭力的目的。
這里的應用系統指企業的遺留系統,任何在企業內運行的系統,當它被交付使用時,就成為遺留系統了。遺留系統很多是用傳統的方法開發的,有可能都沒有按組件的思想設計開發;大多數都是一些孤立的系統,很少與其它系統之間有信息的集成,而且界面表示邏輯通常與業務邏輯、數據訪問邏輯混雜在一起。所以一方面,遺留系統是經過了時間的考驗、已被證明是實用的系統,其中傾注了若干年的努力和定制成為企業信息系統可以信賴的組成部分;另一方面,遺留系統還可能有許多缺點,例如功能還不夠完善、不夠靈活等等,因此希望在系統集成時能夠通過Web Services擴展,使他們能夠滿足用戶的需要。在擴展之前,先要對遺留系統進行分析。
一,應用系統擴展分析
從本質上說,Web Services擴展就是對遺留系統中的數據或事務或應用程序擴展成Web Services,使這些Web Services能在Web上對外提供服務。在數據層次上,進行Web Services擴展不需要知道遺留系統的應用程序,只需要知道遺留系統中數據庫的定義以及其中的數據字段,通過與目標數據庫建立連接,通過查詢操作獲取所需要的數據從而完成一些新的應用服務;在事務層次上,Web Services擴展可以直接調用遺留系統中的事務處理程序,接收返回的結果再傳給WebServices的消費者,為此需要知道從數據層次上擴展遺留系統中的事務所能完成的工作以及輸入輸出參數。下面以ASP,NET為例闡述應用系統進行Web Services擴展的方法。
二,從數據層次上擴展
所謂從數據層上擴展是指經過webService擴展接口可以直接使用遺留系統的數據。利用ASP,NET訪問異構數據庫的核心是ADO,NET,而ADO,NET通過提供程序化接口與OLE DB兼容的數據源進行交互。WebServices通過數據庫連接從遺留系統的數據庫中讀取數據,經過業務邏輯的處理以Dataset(xML形式的數據集)形式通過sOAP傳送給Web Services的調用者;同樣,WebServices可以接收其調用者通過sOAP傳回的數據,經過業務邏輯處理,利用數據庫連接更新遺留系統的數據庫。使用Web Services進行數據層次的遺留系統擴展應該要注意的一些問題。
首先,數據一致性和完整性:在WebServices與遺留系統數據庫交互數據時必需要考慮數據的完整性和一致性,不能破壞遺留系統的使用。實際上Web Services中的業務邏輯大部分只是原遺留系統中業務邏輯的簡單再現,少部分新的業務邏輯在編寫時也必需清楚地知道遺留系統數據庫的數據字典,這樣才能做到不影響遺留系統的使用。
其次,數據安全性:遺留系統的安全性解決方案中,很多是在進入應用程序的時候進行基于角色的身份認證,而應用程序中捆綁了數據庫系統的身份認證,由于遺留系統是在企業內部使用,因此這樣的安全解決方案是可行的。但Web ServiceS是直接面向Internet的,其數據安全性必需要考慮訪問安全和傳輸安全。
最后,性能問題:使用Web Services在數據層次進行遺留系統的擴展時必須考慮到性能問題。由于Dataset、SOAP都是基于XML文本的,系統在處理數據和傳輸數據之間必須進行二進制流到文本之間的轉換;另一方面,Web Services是面向Internet的,服務器和客戶端的通信帶寬受到一定的限制。因此不可否認,使用Web Services的性能比較低。可以通過使用存儲過程和優化查詢語句這些方法來增加遺留系統數據庫服務器端的性能,從而間接地改善Web Services的使用性能。降低數據的傳輸量同樣可以改進使用Web Services的性能。數據傳輸發生在WebServices和遺留系統數據庫之間以及WebService和其使用者之間,因此降低數據傳輸量可以分別從這兩個方面著手:
(1)降低Web Services和遺留系統數據庫之間的數據傳輸量,其方法是:盡量通過查詢語句來完成業務邏輯,由于Web Services和遺留系統數據庫很多情況下是處于一個局域網段中它們之間的通信帶寬較大,因此降低它們之間的數據傳送量對整個使用的性能影響不大。
(2)降低Web Services和其使用者之間的數據傳輸量,其方法是Web Services的業務邏輯返回的Dataset要盡量小,也就是盡量多的業務處理要放在Web Services的業務邏輯里,這需要Web Services使用者與服務者之間協調處理。如果客戶端在發出WebServices調用請求后不要立即得到結果,可以運用異步調用方法,在發出異步調用請求后,可以轉到其他處理上,等Web Services返回結果后再回到先前的處理過程。
三,從事務層次上擴展
從事務層次上進行應用系統的擴展是需要前提條件的。前提條件是遺留系統的功能模塊是以DLL(Dynamic Lmk Library)形式存在的,而且對外提供運行時可訪問的接口,同時能被其他程序調用,因此進行應用系統的Web Services擴展只需要擴展遺留系統功能模塊DLL,然后增加一些面向新應用的業務邏輯處理,就可以返回結果給Web Services調用者了。
事務層次的擴展不需要考慮數據一致性和完整性的問題,因為所有牽涉到數據庫的數據處理都是由遺留系統的功能模塊完成的,數據庫對Web Services來說是透明的。事務層次的擴展同樣要考慮安全問題,因為遺留系統的功能模塊以前基本上都是在企業內部使用,現在通過Web Services就暴露在Internet上。除了數據庫訪問設置身份密碼的方法之外,數據層次的安全解決方案在事務層次上同樣適用,可以配置基于角色的安全訪問機制,同樣,對于需要保密的通信,可以利用SSL來對通信內容進行加密。在傳輸數據量比較大的時候同樣需要考慮性能問題。
四,結束語
進行利用Web Services技術改造傳統應用系統,實現企業的遺留系統Web服務化的研究,解決了企業應用集成方案設計的關鍵問題。為實現企業信息平臺的構建提供了先進的信息技術支持,確保利用Web Services技術實現應用系統集成是合理、可行的。