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