2009年4月17日 星期五

整合也可是IT簡單任務?

ref: http://bilingual.rdec.gov.tw/KM/KM/prog/epaper/23/index.php

【資料來源: 台灣微軟產品行銷經理 許建志 2004/06/25】

整合概念看似簡單,真正實作可不是如此。或許你建立的一個Java Web service,只要再利用ASP.NET呼叫這個Web service,就可輕鬆將Hello World字串傳送過去。剛開始你也許會覺得很感動,但很快的…,就會發現企業應用程式所面對資料型別的複雜性,根本不是簡單的一個小範例可處理的。

不論是考慮整合.NET與J2EE的技術選項,或是計畫利用第三方協力廠商所開發的整合軟體進行互通,入門第一堂課就必須了解-在不同平台與應用程式的展示層、中介層與資料層之間,資料是如何傳遞的。

在異質平台之間進行資料交換通常會面對的挑戰可分成三大類,基本上多是資料相容性的問題,包括:

  • 基本資料型別的對應:不論是.NET的Common Language Runtime(CLR),還是Java都有字串的資料型別,但這是否代表CLR的System.String類別等同於Java的java.lang.string類別?
  • 不存在的資料型別:基本資料型別之外,不同平台也會有特殊的資料型別,而需完成資料對應的動作。舉例來說,是不可能在Java中找到內建且可對應至CLR的System.Collections.Specialized.HybridDictionary等資料型別。
  • 複雜的資料型別:許多應用程式都會將基本資料型別組合成自訂化的資料型別,也許是客戶資料、股票資料等;若是客戶資料則可能包含客戶名稱、地址、電話、年齡等資訊,又該如何在其他平台上處理這些自訂化的資料型別呢?

最後一種狀況也是最常見且困難度最高的整合挑戰。一般而言,要進行複雜資料型別的資料交換工作,常見方式是「序列化」(Serialization)。

所謂序列化,就是將某物件或類別,編碼成可儲存、傳輸的格式。如此一來,資料便可以被編碼、儲存、傳輸與解碼,並可被不同的應用程式與平台使用。

序列化可分為兩種方式。一種是「二進位序列化」。不論是.NET的[Serializable] 屬性或實作的ISerializable介面,還是java.lang.Serializable,都支援將任何資料型別序列化的功能。然而壞消息是:兩大平台所序列化的格式不同,無法整合。

開發人員除自行建立可讓不同平台資料格式進行共通的序列子之外,第二種選擇就是如前幾期文章所提及-利用第三方廠商所開發的整合工具,如Intrinsyc Ja.NET,這類工具都包含支援不同平台資料交換的序列子。


第二種方式是「XML序列化」。利用XML進行資料交換,可享有支援多種異質平台的好處。自行解析XML是一個方法,但效率較低,也不易驗證符合企業商業邏輯的資料格式。

幸運的是,包括.NET與Java平台都已將XML的存取技術進一步得抽象化,同時可支援序列化。換句話說,開發人員可在Java平台上使用Mind Electri公司的XML序列子,或是利用.NET的System.Xml.Serialization.XmlSerializer類別。


開發工具如Visual Studio .NET,或是Mind Electric的Electric XML也多已支援可以視覺化方式建立XSD(XML Schema Definition),同時產生對應程式類別的功能。目前看來,排除第三協力廠商內建的序列機制之外,開發者自行建立XSD,再搭配XML序列化,將會是進行資料交換最容易的方式。

以下介紹是利用Web services進行資料交換的幾個進階範例,包括介面整合、資料整合、流程整合等應用。

介面整合

企 業主管或是知識工作者所注重的資訊,通常來自多種不同的企業解決方案,甚或不同的平台。將這些不同的資訊來源整合顯示是最簡單的方式。例如 Longhorn或是MSN Explorer便會在桌面右方提供「儀表板」,可透過Web services與其他相關技術同步顯示,提供包括氣象、交通狀況、即時傳訊的聯絡人清單、行事曆、股票等資訊。當然不只一般的Windows程式,從企 業入口網站(EIP)的發展也可看到類似的應用,透過Web Part的技術,將可利用XML或Web services整合不同來源的資訊介面。


資料整合

英瑞得(Gismosoft)所開發的商業智慧行動解決方案就是一種典型的資料整合應用。該公司計畫在Pocket PC中同時顯示營運資料與地理位置整合的介面,必須整合地圖系統與商業智慧資料倉儲中的資訊。

由於不可能要求客戶自行維護一套價值數百萬的地圖系統,客戶也不可能將業務資訊輕易的由開發廠商處理,同時間,又要兼顧行動裝置的應用。

最佳的方式就是將地圖系統、營運資料全部Web services化。前者位於開發商的伺服器上,後者位於客戶的伺服器。Pocket PC透過GPRS與Web services擷取雙邊資訊,再進行交叉比對,最後呈現的便是具備地理資訊的商業智慧系統。

單純的利用Web services將不同平台與企業解決方案裡的資料挖取出來,再整合顯示固然不錯,但是若能更進一步的將不同來源的資料進行交叉比對,將會產生許多機會與應用。如微軟,組織內部有一套供予銷售人員存取的Sales Portal,內建許多Web Part,其中就有個名為「News in My Accounts」(跟我客戶相關的新聞)。

該系統可在銷售人員存取Sales Portal時,自動辨識出銷售人員身份,同時利用Web services取出內部Siebel CRM系統裡的客戶清單,再透過Web services與MS Library(新聞系統)進行交叉比對,所得應用就是可大幅減少銷售人員閱讀新聞時間的「News in My Accounts」。

可以簡單的計算一下,如果全球每天有五千個銷售人員存取這系統,每天減少一小時的時間尋找與客戶相關的新聞,不只可以即時掌握客戶狀況,整體省下的時間成本也相當可觀。

流程整合

可分析的不只是現在與過去的資訊,整合不同資料來源之後的分析數據,甚至可以取得營運趨勢或是客戶行為預測的「領先指標」。一旦發現所要注意的現象與趨勢,最後甚至還可以觸發「行為」,也就是進行所謂的流程整合。

電子商務網站應用,甚可以將不同系統中的客戶資料(CRM)、銷售資料(ERP)與客戶瀏覽習性進行交叉比對,進而辨識出新的商業機會,同時開始運作流程,將相對應的促銷商品、不同網站或網友的評價、運費等資訊自動整合成為個人化促銷郵件遞送給予相關客戶。

利用Web services進行整合工作而後衍生的應用可能,充滿想像空間,就留待各位發展創意。

沒有留言:

張貼留言

try comments