如何在SharePoint Server中整合其他应用系统?
說到在SharePoint Server中整合其他應用系統,其實是一個挺復雜的問題,需要考量多方面的問題,并在各種選項中做出最佳的選擇。在這篇blog中,將SharePoint Server在整合這方面的方法比較系統的描述一下,希望對大家有幫助。這篇blog里面說的SharePoint Server是泛指,并不針對特定的SharePoint Portal Server 2003或Office SharePoint Server 2007。
看到這里,可能會有朋友問了,整合應用系統?這不是BizTalk Server應該干的活嗎?是的,EAI(企業應用集成)正是BizTalk Server的強項。但是首先,BizTalk Server更擅長的在應用層對各個應用和系統進行整合,也就是說,BizTalk Server和各個系統打交道的方式大多數是通過這些系統的各種API,而在很多場合我們除了在應用層需要對各個系統進行整合之外,我們還希望在界面上對各個應用也能有整合,也即展現層的整合,展現層的整合能夠讓用戶在一個統一的界面上訪問和操作多個應用系統,看到各個系統中的信息。對于展現層的整合,我們同樣需要有一個基于Web的平臺來干這個,而這就是SharePoint Server的強項了。
其次,很多時候我們可能不一定需要BizTalk Server這樣的“重型武器”,在文章的后面我們會看到,只有在某些復雜的場合,更確切的說,是客戶已經有了較多的應用,而且各個應用間的確有互聯、整合、集成的需求,才有BizTalk Server的用武之地。
一般,我們將SharePoint Server的應用整合方式分為下面的四種(下面的圖片摘自PPT,所以非常抱歉比較大):
?
?
第一種:基于Web界面的整合
這種方式簡單來說,就是直接把其他系統的Web界面直接拿過來,放到SharePoint Server的頁面上去,讓用戶可以在SharePoint這一個界面里面能夠訪問到其他系統。
這種方式是幾種整合方式中最簡單的一種,但是簡單并不意味著不實用,有的時候,基于Web界面的整合可能就是最好,也是最省事的方法。使用這個方法有一個先決條件,就是要整合的應用必須有Web展現,否則就無從談起了,幸好現在是一個Web大行其道的年代,幾乎大部分企業應用系統都是通過Web方式展現給客戶的。
SharePoint Portal Server 2003中已經提供了兩個現成的Web Part,來幫助我們完成基于Web界面的整合。第一個是網頁查看器Web Part,給它一個URL,它能把指定的頁面以IFrame的方式直接嵌到SharePoint頁面中。另外一個是網頁截取器Web Part,它能讓我們指定一個網頁中的一個部分,然后它會自動把這個部分截取下來,顯示在SharePoint頁面中,而且我們還能指定一個更新周期,這個Web Part會隔一段時間就檢測指定的網頁是否發生的變化,然后更新要顯示的網頁部分塊。
當然,除了使用SharePoint自帶的Web Part之外,我們還可以用自己的方式,來進行這種進行Web界面的整合。只要你的方法基本原理是將另外一個應用系統的Web界面弄到SharePoint里面,那么就應該屬于這第一種方法。
使用基于Web界面的整合可能遇到的一大挑戰就是單點登錄(SSO),因為要整合的那個Web應用很可能是需要登錄后才能訪問的,而用戶顯然不希望在SharePoint里面查看另外一個應用系統的信息時,還需要再登錄一次,所以我們需要幫助用戶來自動完成這個登錄過程。
第二種:基于數據源的整合
由于某種原因,比如要整合的系統根本就沒有Web展現,或者SSO不好做,難以整合,同時用戶也只需要能夠在SharePoint里面看到那個系統里面的數據而已,并不需要做什么交互操作(比如,客戶只需要看到上個月的銷售數據報表,或者客戶信息表),而且我們也可以直接訪問到要整合的系統的數據庫,那么用這第二種方法也許是一個不錯的主意。
基于數據源的整合,就是直接去連接要整合系統的數據庫,然后利用某些Web Part將一個表、或者多個表的數據直接展現出來。SharePoint提供了現成了Web Part,允許我們使用ODBC方式去連接任何數據庫,然后把數據展現在SharePoint頁面上。當然,自己做一個定制的展現數據庫數據的Web Part也并不是一件難事。
這種方法的一個重要好處是,你根本不需要考慮那個應用系統是怎么做的、如何做的、接口是什么,只要你能訪問到它的數據庫,就能搞定。
基于數據源的整合有一個重要的前提條件,就是你知道要整合的系統數據庫在哪、如何訪問,以及了解它的數據庫結構(數據字典),就是說,你要清楚的知道,應該將哪個Database的哪個Table的哪些Field的數據展現出來,才是客戶想看到的數據。
第三種:點對點的整合
點對點的整合是指,讓開發人員開發出定制的Web Part,在Web Part的代碼里面,訪問要整合的系統的特定的API(可能是各種類型的,比如Web Service,或者對象模型),以在Web Part里面來完成某件任務。由于可能需要針對每一個應用系統,甚至應用系統中的每一項功能,來開發出一個對應的Web Part,所以這種方法被成為點對點的方法。
點對點整合可以帶來最大的靈活性和最大的功能性,因為只要其他的應用系統帶有相應的接口,我們就可以在Web Part里面完成任意的功能:從其他應用系統中獲取數據、與其他應用系統進行交互操作,等等。
但這種方法也有自己的前提。首先,要整合的應用系統必須有相應的接口,如果面對一個根本就沒有考慮過被第三方訪問,根本沒有設計任何API的應用,那就沒法子了(這種類型的應用系統并不少見!)。其次,如果有API,Web Part開發人員還需要了解這些API,知道怎么調用,調用哪個才是自己需要的,有很多應用系統是非常復雜的,提供了龐大繁雜的API,如果不熟悉這些應用系統的接口,學習成本還是不小的。
點對點整合的一個典型例子就是專門訪問SAP系統的SAP iView Web Part Toolkit,另外,對于如何將SAP整合到SharePoint里面,這個網站是非常有價值的:www.microsoft-sap.com/interop.aspx。
第四種:應用集成方式的整合
終于,在面對最復雜的場景,我們要用上BizTalk Server這樣的EAI服務器了。如果我們需要整合多個系統,比如在一個Web Part里面能夠操作多個系統按照某個流程完成某項任務,那么使用這種整合方式應該是最合適的了。
在這種方式里面,我們需要有一臺專門的應用集成與整合服務器,通過它與各個應用系統打交道,在它上面完成業務流程的編制和創建,然后通過在Web Part中調用這個應用集成與整合服務器的接口,來完成整合功能。
OK,現在,我就將最常見的四種整合方式介紹完了,最后,我想讓大家了解一下Office SharePoint Server 2007中提供的一個新的,用于進行應用整合的組件:Business Data Catalog。
?
?
上面的圖片(同樣摘自某張PPT,所以再次抱歉圖片較大)展示了BDC的整體架構和作用。BDC提供了一種中間層,在這個中間層里面,我們可以定義出數據的Metadata,然后BDC會根據Metadata,從后臺的應用系統中將相應的數據抽取上來,以供SharePoint Server使用。
在BDC中,我們首先可以定義Application,Application基本對應于應用系統,然后,我們可以在一個Application中定義多個Entity(實體,比如“客戶”、“員工”),基于Entity,我們可以再定義它的屬性、方法、動作。將這些Metadata定義好了之后,BDC就能夠透過兩種方式根據Metadata從后端應用系統中得到這些Entity的數據:一種是使用ADO.NET直接去訪問數據庫,一種是去訪問后端應用系統的Web Service接口。
BDC從后端應用系統中將定義好的數據抽取上來之后,SharePoint Server 2007中有自帶的Web Part能夠直接顯示這些數據,而且可以對這些數據進行過濾查詢等等,另外,SharePoint Server 2007的搜索引擎可以將BDC數據作為內容源進行檢索,這樣,SharePoint Server 2007無形中就實現了對業務系統的數據搜索功能了。當然,BDC也提供了完善的API,讓我們能夠在自己的應用或者Web Part里面訪問BDC中抽取出來的數據,或者將更新的數據寫回到后端應用系統中。
BDC的出現,大大擴展了SharePoint Server對第三方應用系統的整合能力,通過BDC,大大簡化了對后端業務系統中的數據訪問、操作、搜索。關于BDC的更詳細信息,請參考SharePoint Server 2007 SDK里面的相關內容。
總結
以上是生活随笔為你收集整理的如何在SharePoint Server中整合其他应用系统?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于布线设计方案+网络产品的一个网站
- 下一篇: 浅读:ITSM信息技术服务管理