什麼是Biztalk服務器?
如果你走過三個不同的開發者並且問他們同樣的一個問題“請描述一下Biztalk服務器”,我可以肯定地說你會得到三種不同的回答。我這裡有一些我從和我同齡的一些人那裡得到的答復:
“它是企業級的一個消息系統”
“Biztalk允許我們把不同的業務實體連接到一個管理中心”
“它給我們一種處理消息的方法”
“BTS允許我們自己定義的業務邏輯處理客戶數據“
最讓人驚奇的事情就是這些回答都是正確的。Biztallk2006是有很多組件組合起來的,而這它試圖解決的主要問題就是:企業級的系統集成。
在這一章,我們先簡單的了解一下Biztalk到底能干什麼,然後大致看一下它所包含的components。
Biztalk能為我們帶來什麼或者說它能做什麼?
我最近幾年是為一家在密歇根的超市零售商作咨詢工作,這家特殊的企業有著巨大的異構企業架構:數據保存在Tera-data,DB2,Sqlserver2002,和不管你信不信,還有一些在Access文件中。所有這些數據庫系統在他們的業務范圍內都是有用的,但是集成這些異構的系統看起來好像非常有挑戰。這個公司的系統結構,如下圖,和一般公司的結構很不同:
就如我們看到的一樣,這個特殊的企業結構和混亂,那麼是什麼使他們走到這種極端呢?很多企業都趨向於以下兩種辯解:
l 在我們企業成長過程中,我們不時地構建我們需要的系統。
l 它還可以使用,並且即便是我們可以把它組織的很有結構,但是不會有任何經濟上的回報。
這些觀點是有價值的。然而,隨著時間的推移,企業會開始從SOA(面向服務的架構)上尋求利益增長點—我們會在後邊詳細討論SOA。這種可快速適應合作伙伴的數據並且可以利用自身商業邏輯處理合作伙伴的基礎結構正是Biztalk服務器的一大賣點。當企業的架構師開始重新考慮業務處理流程時,他們會非常驚訝和激動與Biztalk給與他們發揮自己創造力的能力。它可以把一大堆的軟件連接到一個中心位置,如圖1-2:
通過適配器來集成(integration through adapters)
有了Biztalk,企業或者組織就有能力和不同的平台和系統通信,但是這是如何實現的?
Microsoft自己已經在Biztalk中創建了一組默認的適配器,這些適配器是作為我們的應用程序和BME(Biztalk Message Engine)通信的接口來工作的。並且如果你發現Microsoft提供給你的這些不合適,你可以尋求第三方廠商的適配器來解決問題。下圖就向我們展示了Biztalk服務器如何通過適配器接口來包裝信息和不同的協議來通信的。
上圖展示的只是Microsoft提供給我們的所有適配器中的四個,下表是全部適配器的列表:
適配器
描述u
Web服務適配器
通過http來發送和接收soap包
文件適配器
讀寫文件系統
MSMQ適配器
通過Microsoft Message Queuing來發送和接收消息
Http適配器
通過Microsoft Http來發送和接收消息
WebSphere適配器
和IBM的websphere MQ來交互
SMTP適配器
通過SMTP發送信息
POP3適配器
接收email信息和附件
SPS適配器
訪問sharePoint 文檔庫
SQL適配器
和SQL Server數據庫的接口
Microsof非常仁慈的給我們提供了一些針對新的第三方廠商的適配器,它可以幫助我們更好的繼承Biztalk應用。你可以找到對SIEbel,PeopleSoft和JD Edwards的支持。並且當你開始和第三方軟件廠商工作的時候,你也許可以在Biztalk中發現對這些特定廠商支持的適配器。還有,當然我們也總是鼓勵您自己構建適合你的適配器。
Biztalk 組件
剛才我們看到Adapters在Biztalk中是很重要的組件,但是它並不是唯一一些。如下圖所示,Biztalk Message Engine對圍繞它的那些組件有很強的吸引力。任何構建於Biztalk Message Engine之上的組件或工具都有兩種獨一無二的能力:操作或者監視你的用戶數據。讓我們快速的了解一下這些組件。
業務規則引擎(Business Rules Engine)
業務規則引擎允許我們對消息執行一些業務邏輯操作,Microsoft提供了一整套創建規則的特性,被稱作“Business Rules Composer”,如下圖所示,詳細情況在12章介紹。
業務流程(Orchestrations)
Health and Activity Tracking
HAT,如下圖所示,是我們用來監視BME和其它任何的我們想去監視的業務流程。
業務實體監視(Business Activity Monitoring)
BAM給那些沒有技術背景的人一扇觀察數據的門,我們在13章討論它。下圖展示了BAM:
業務實體服務(Business Activity Services)
BAS特性集為許多合作者提供了方便的管理功能。通過實現Sharepoint Services來允許業務用戶和組織合作者同業務流程交互。
消息組建(Messaging)
我們很容易就可以得出“消息是Biztalk服務器產品的核心組件”這樣的結論。本質上說消息不是一個特殊的應用程序可以用來啟動,它是Adapters,Pipelines,Ports的組合,並且組合他們來更加有效的操作消息數據。在下一章,我們將要探討消息的概念以及一些例子,我們會介紹所有的消息組件。
下圖為我們展示一般意義上的消息流,不要太擔心這個圖上的東西,隨著本書的深入,你會明白的。
企業單一登陸(Enterprise Single Sign-On)
SSO是指非Windows認證的帳戶能被授權和拒絕的過程,這個過程基於Biztalk管理建立的系統授權級別上。這就允許我們觀察這樣一種消息,它是我們的合作者授權可以用我們自己的企業內部帳戶訪問的消息。下圖展示了一般意義上的SSO控制台接口。
消息(Messages)
在我們討論Biztalk定義的過程中,如果我們不討論讓所有東西能夠嘀嗒(轉動)的一個組件,那就的不嘗失了,這個組件就是消息。如果沒有進入和出去的消息,我們就不可能有任何的數據處理流程。
那麼什麼是Biztalk的消息呢?對Biztalk的引擎來說,外部的消息和內部的消息有區別嗎?
一般意義上來說,消息是一個文件和它所包含的數據。例如,一個soda的賣主傳給我們一個文件,其中包含了上億條送到你的碼頭的貨物的條目。這個文件無非就是CSV文本文件,或者是Html文件通過網絡傳輸。文件獲得方法和文件的格式對Biztalk來說根本就不重要,重要的是文件的內容。但是很明顯這裡對Biztalk來說有一個很大的障礙來處理這些數據文件。
為了讓Biztalk服務器能夠處理,操作,或者修改傳輸進來的數據,你必須把任何文檔都轉換成XML格式。可能你也猜對了,XML是唯一和Biztalk的引擎通信的語言格式。
Biztalk接受到的文檔必須轉換格式,或者說反編譯成標准的XML文檔格式。如圖1-11,一個通過FTP服務器,由賣主提供的CSV文件,放在某個網絡服務地址上。Biztalk的適配器監視程序發現有一個文件到達了,它就把這個文件送到Pipeline管道中來把這個文件構造成需要的XML格式的文件。一旦你把賣主的數據標准化了,然後就可以送到Biztalk的數據引擎來做進一步的處理。
就像你看到的,進入的數據會進一步的處理才會送到Biztalk的處理引擎去。幸運的是,你有很多工具可以選擇處理,這些工具可以使工作變得更加的簡單。這些工具包括Schemal Editor,Pipeline Editor,Biztalk Mapper。
模式編輯器(Schema Editor)
你將要在Biztalk的開發中大量的使用XML Schemal,因此Schemal Editor給我們提供了一個接口讓我們能更加簡單和快速的構建XML Schemals,如圖1-12所示。不要擔心如果你還不知道XML Schemal是什麼東西,我們會在第六章詳細討論。現在你只需要知道Schemal是一個XML文件用來描述XML文件的機構的。
管線編輯器(Pipeline Editor)
在把消息格式化成Biztalk認識的過程中,你需要解碼,反編譯等把接收到的數據轉換成XML格式。Pipeline提供了一種簡單的,圖形化界面的轉換文件的方式,如下圖:
Biztalk 映射(Biztalk Mapper)
讓我們來假設剛才的那個soda賣主給我們提供了一個格式良好的文件,但是這個文件內中有些列的數據不正確。我們有沒有辦法能把裡邊我們感興趣的一列的數據復制到XML文件中去?很幸運,因為Biztalk Mapper就是用來干這件事情的。如圖1-14所示,Mapper的構建是一種拖拉的方式,你只需要把相應的字段通過拖拉的方式聯系在一起就可以了。
對於Mapper還有很多的知識需要我們學習,我們會在第六章來詳細的討論。
總結
回答“什麼是Biztalk服務器”這個問題?比起涉及到很多方面還不如簡單的說這是一個“消息,處理,業務歸的類型的產品”。這是一個一組類似的工具為了一個目標:系統集成。
Biztalk很大,不幸的是,很多開發者誤解了這種觀念,認為這麼大的系統導致的結果就是學習更加困難了。學習使用Biztalk並不是非常的困難。如果你把每個工具都分開來學習,你會發現這個服務器應用程序並不只是強大,而且它是可以接近和學習的。
在第二章,我們將要開始XML語言的學習。XMl是這個產品強制需要學習的東西,你必須非常了解XML語句和這門標准標記語言的使用。如果你之前用過XML,那麼就沒有必要去學習了,可以直接跳到第三章了。當然你可以浏覽一下本章,看看那些地方或者只是自己需要補充。