熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows優化 >> 正文

將現存的信息系統移植到組件化架構

2013-11-12 00:07:48  來源: Windows優化 

  簡介
  一個三層或是多層信息系統架構的好處是可將其焦點放在一些信息的處理工作上另一方面對於大部份信息技術專家而言也是了解和體會此項新技術潛力的良機然而信息技術的工作人員在他們大量的信息系統產品中常常會遺留一些令人感到惋惜的事實例如大部份產品裡並沒有運用組件的概念或在無奈的壓力下繼續進行系統功能的加強即使他們知道(這些系統)隨著使用年限的延長已經出現了問題也是如此這篇報告將對該項議題展開討論並且將會提供一些實際的建議而不單單是將現有的系統進行組件化多層架構化另一方面也提供了如何以團隊開發的概念將某些信息技術轉換到一個以組件為基礎的新程序開發境界
  
  邏輯多層架構和實體分布式架構
  在開始討論之前必須先了解邏輯多層架構和實體分布式架構兩者的區別了解邏輯多層架構和一個實體分布式系統的不同之處將有助於說明移植現存系統的途徑可持續地進行系統增強而這則不會產生一個令人生畏的學習過程
  
  邏輯多層架構
  一個邏輯多層架構的設計是應用程序按邏輯工作它可以分成三個獨特的服務領域用戶服務商務服務數據服務這種區域分隔方式允許開發人員在數據庫和用戶程序之間引入抽象的彈性分層每一層都負責不同的工作任務當將它們結合在一起時會變成一個具有凝聚性合作性的系統且具備了彈性堅固性及可成長擴充等特性
  
  數據服務主要負責數據的配置和常態性下面我們以數據庫的關聯來典型的說明范例數據服務需要包含所有的儲存過程內含所有組件基本的數據訪問譬如對一個客戶的搜索組件等數據服務所處理的工作較為一般例如維護數據的常態性恢復和保持數據完整一致性等工作而並不是在數據中實際執行任何一條特定的事務規則
  
  此外商務服務可以負責建立商務規則它們在數據服務中修復和保持數據的完整性但它們新增了可實際執行有關應用商務規則的功能而典型的商務服務范例組件包括稅務計算它運用了有用的商務數據顧客產品訂單或授權契約等數據功能而且還運用了如傳真與電話等商務功能商務服務雖然是不可見的但由於它們可以將商務規則獨立出來因此可以經常地更新商務規則這些商務服務能讓用戶的工作內容數據具備有效性或是在做計算和其它應用時可以充分地運用商務規則
  
  在信息系統中用戶服務是可見的這些服務是將數據顯示給用戶並允許用戶對這些數據進行操作並且可以通過商務規則與商務服務鏈接在一起進而確認和產生所需的數據用戶服務的范例如窗體控制圖形及屏幕上所顯示的訊息
  
  上述這些服務的好處是眾所周知的由於不在此篇報告的范圍這裡不再贅述﹝要了解關於多層設計優點的更多相關資料請參閱在Visual Basic 企業版的文件集其中記載了有關建立客戶端與服務器端的應用范例﹞在這個可反應商務變化的系統中以上所述功能足可以帶來更多的可維護性分層性和可成長性
  
  這些層次基本上是按邏輯區分的並不表示在實際運作時那些服務就一定會被分類的位置其中必須注意的是觀念上可將它們擺在特定的分層的設計裡在這裡存放著所有可以被執行的服務也就是說這種方式允許共享和重復利用所有組件的設計技術它是系統開發組件化中一項吸引人的優點此項優點也意味著你將不再需要深入到組件的世界裡即可獲得多層設計的好處
  
  實體分布式架構
  當一個系統在邏輯上被分成幾層時它會被組件分化組件是一個OLE項目它提供OLE自動化接口的集合可以使任何OLE自動化的用戶應用程序重復使用這項組件是以二進制的格式進行編譯的加以形態庫的包裹最後以組件來呈現用戶接口組件可以供許多客戶端共享允許重復使用並且可在任何一種支持OLE自動化服務器的計算機語言中進行開發
  
  組件以下列以三種方式的產生在客戶端上內部進程服務器外部進程服務器或是遠程服務器內部進程服務器是動態連結﹝DLL﹞並且在客戶端應用程序裡使用同一個進程及位置空間外部進程服務器則是在客戶端應用程序裡使用不同進程和位置空間遠程服務器則是在完全分開的機器上執行執行時使用其它機器的CPU和系統資源以上每一種選擇均有其優缺點而且在系統中每一個組件可選擇不同的分布式模塊
  
  內部進程服務器是在客戶端與服務器端之間理想中高效率的重用組件模式它們可以快速加載並且由於占用相同的位置空間因此在傳遞給客戶端應用程序或是從客戶端應用程序傳回數據時速度相當快理所當然地由於它們同樣為客戶端的應用程序並且同屬於一個進程空間因此它們必須位於同一個機器上然而更新組件卻有潛在的困難在Visual Basic中建立內部進程服務也必須在相同的線程中執行客戶端程序但如此一來使它們不能同步執行客戶端程序代碼如果在Visual C++中建立內部進程服務則可產生如背景工作般的多重線程
  
  外部進程服務器是一種組件概念其需要在分別的進程空間或是線程中執行客戶端的應用程序雖然這些服務器將會降低加載速度當在客戶端和服務器端之間傳輸數據時從一個地址空間傳輸到另一個地址空間將會造成延遲但是外部進程自動化服務器仍具有可行性因為外部進程服務器可以像一個獨立的應用程序方便了組件的使用而且它們是在屬於它自己的線程中執行的那是與客戶端應用程序不一樣的線程在這個時候外部進程服務器可使用定時器來配合背景或可執行異步的工作
  
  遠程服務器同樣也具可行性因為它們在與客戶端應用程序不同的進程中執行而且遠程服務器也可以在完全不相同的機器上執行客戶端應用程序這是一個非常具有威力的特性正如它可以讓你從客戶端機器中從許多功能強大的服務器上脫線下載特別是像廣域網中的另一個客戶端或像慢速連接的Internet調用或執行遠程服務器的對象是上述三種方法中最慢的而且數據傳輸和函數調用也是三者中最慢的然而當在遠程機器執行函數調用時則客戶端的CPU將可以釋放系統資源以讓其它工作使用
  
  幸運地Visual Basic的類模塊是完全獨立的但它們會令人混淆並且會讓你浪費時間來學習哪一種實體分散架構最適合現在的系統通常我們需要一再嘗試並且在內部進程外部進程及遠程服務器之間移動類有一則好消息在實體分布式模塊間移動類時客戶端程序和服務器端程序無需進行聯系實際上客戶端應用程序不須隨時使用甚至開發人員可在執行時將組件從外部進程服務器移到遠程服務器中反之亦然此項配置可獨立設置此種狀況其目的是為了更容易將現有系統移植到一個多層架構的設計中
  
  移植的步驟
  如上所述在真實的世界中信息科技團隊持續地推動維持和加強現存的系統但是他們也了解到要延長其使用壽命有賴於將這些系統移植到一個多層架構或是一個以分布式組件為基礎的系統中在下一節中將會討論一些實際的建議有關如何將現存系統朝向多層架構發展卻不必將現在的項目完全拆開來等的問題都有詳細討論
  
  邏輯化設計
  在准備一個三層次架構時首先要做邏輯化設計系統然而對那些方法論者也許會感到痛苦又加深了但是這卻是建立以組件基礎系統的基本步驟根據方法論者所提出理論來制作邏輯化設計也許會很有幫助但其並不需要一個嚴格的過程而且你並不需要對這些過程作太多的服務或考慮
  
  在邏輯化系統設計階段組件的實體和它們最後的配置是有關系的此項目是確認系統中實際的實體並了解它們之間如何交互該實體通常是繁重工作的一部分因為它有處理最近執行工作的能力並且可以確認哪些事務是相關的前述技術超出了本篇文章的討論范圍下一節將提供一些建議讓你了解如何哪些組件是需要先建構的以及如何花一點時間就可以將你的系統組件化
  
  請記住邏輯化系統是可增長的並且要隨著系統發展進行更新與改進它並不像一個項目團隊在第一次就要設計出完美的設計甚至不像當有些情況改變時仍然保持其完美性該邏輯化設計必須延續下去且逐漸增長正如系統一般在做系統組件化後將會發現移植的發生率更加趨緩
  
  從何處著手
  一旦已確定有多個用戶就應該決定系統中的商務服務數據服務哪一項是應該首先建立的然而對許多系統而言這是個實際問題當系統完全地變成組件編寫時整個項目不可能隨時待命然而對VB/OLE 服務器技術而言你可以增加系統組件化程度可以在項目允許情況下從中移出一些組件先著手
  
  第一個步驟是在系統中建立低層組件由此可知所謂的這些低層組件指的是被整個系統使用的並且提供了操作系統擴充性的組件正如你的數據訪問組件登錄服務傳送消息和網絡服務還有電話集成服務和狀態管理服務等組件一樣這些可重用組件並不限於只在你的項目使用因為它們可以被整個系統使用但是大部分系統均有相同的低層要求當然對其他項目而言這些組件的功能也是極具吸引力的例如一個組件允許你的應用程序寫入NT的事件日志而且可能會被其它的應用程序使用相對地當你在現存的系統中開始拆開其它組件時這些組件將需要低層服務尤其在形成高層組件前必須要先有低層的組件的存在
  
  下一步要建立這些服務它們將對在客戶端應用程序中欲進入一個分開的地址空間或是一個在實體上不同的機器有所幫助這些服務的例子包括信用卡驗證傳真程序長時間運算及報表行生成程序OLE服務器可以在客戶端應用程序中的同一個進程或是在
From:http://tw.wingwit.com/Article/os/youhua/201311/10736.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.