對于企業級軟件來說,那些各種信息被禁錮在分散的業務功能單元內的“壞日子”已經成為過去。我們當中的大部分人為此也感到很欣喜。面向服務的架構(Service-Oriented Architectures, SOAs)和軟件已經到來并且準備開創新紀元。
既然企業已經在修補它們所用技術的中間層(middle tier)和后端層(back-end tier),并且已經利用SOAs來創造的新的價值流,那么下一步將是什么?正在從SOAs和Web服務中尋找下一波好處的精明的CIO們正在把注意力轉向最終用戶以及他們是如何與這些新一代的系統交互的。他們所尋找的是一種新的客戶段軟件。這種軟件擁有真正的智能,富媒體(rich media)和可交互性,同時也能夠對服務與數據進行存取。該軟件的名字就叫作面向服務的客戶端(Service-Oriented Clients, SOCs)。
到目前為止,你們之中的很多人大概已經開始問自己,為什么你需要關心SOCs。簡單地說,你需要關心SOCs是因為傳統的Web瀏覽器作為一個應用客戶端程序已經太老了。瀏覽器曾經是為了便于人們瀏覽靜態文檔而被設計出來的,它無法遞送含有狀態信息的各種應用(也就是說,那些能夠記住你曾做過什么、你什么時候離開且什么時候再次訪問的狀態)。是時候捫心自問了:為什么我們的關鍵商業應用(business-critical application)要依賴于一個象征著頁面的、只有下一頁/上一頁/主頁按鈕、書簽、cookies和使用無狀態描述的通信協議的客戶端軟件?
讓我們直面問題吧:基于Web的表現形式和客戶層(client tier)是在現今企業級軟件架構中最薄弱且最陳舊的一層。瀏覽器無法自然地與Web服務連接或者與基于消息的(message-based)同步數據進行交互。它們也無法提供高質量的打印結果,也無法很好地離線工作。更具有挑戰性的是,質檢團隊花費大量的時間來對跨瀏覽器的應用進行調試,因為不同開發商的不同版本的瀏覽器在不同的操作系統上的表現不盡相同。因此,即使是你最聰明的程序員也不喜歡在表示層(presentation tier)進行開發也就不足為奇了——這種工作非常艱巨、無情和不值得。
發揮SOAs的全力
如同SOC的名字所暗示的那樣——它是一個為與服務交互而設計的客戶端。通過運用SOC架構,開發人員能夠創造出可以讓SOA的數據富于含義且對用戶有用的豐富 Internet 應用程序(Rich Internet Applications,RIAs)。SOCs結合了Web廣泛的部署伸展性以及桌面客戶端軟件的豐富性和智能性。例如,SOCs既可以在線工作,也可以離線工作;可以與面向消息的中間件相連接,并且把數據、文檔、表格以及音頻和視頻流融合在一起——這一切都發生在一個交互的環境里。它們在不同的操作系統之間依然能保持內容及表現形式的一致性,并且為應用程序提供了一種既可以在瀏覽器的環境內但也可以在其外工作的機制。
豐富Internet應用程序提供了一個額外的好處,因為它們能夠平息業務與IT之間那些已持續了很長時間的爭論。也就是說,豐富Internet應用程序能夠克服富客戶端(rich client)與瘦客戶端(thin client)之間傳統的折衷。商業經理們傾向于選擇富客戶端,因為它們能夠提供更高的可交互性、生產力與用戶滿意度。另一方面,IT員工則通常更傾向于選擇瘦客戶端,因為它們更易于部署與維護。CIO們在選擇客戶端時將不再左右為難,因為基于SOCs所構造的RIAs能夠同時滿足兩方面的需求。
Internet豐富的未來
不久之后,RIAs會成為平常的事,并存在于商業的各方各面。不管信息究竟存在于何處,客服人員都能夠使用RIAs并從單一的屏幕中讀取CRM,SFA,ERP以及外部系統的數據。舉例來說,消費者會在選擇與申請財產抵押的過程中被適當引導。這種引導包括能夠為消費者提供即時反饋并且允許他們與客服人員實時通話的豐富的可視化與一體化表單。
高級管理人員同樣也能從RIA中獲得好處。經理主管人員可以利用那些復雜的、像桌面程序一樣的應用程序來幫助他們進行決策。這些應用程序整合了豐富的數據可視化與應用程序組件——例如數據網格、圖表、多媒體音頻與視頻以及實時數據。
強勁的產業勢頭
SOCs不僅僅是一個新潮的術語,它們的含義更為深遠。SOCs在產業中不斷地涌現。軟件提供商很快地接受了SOC的概念,并且已經開始向市場提供富客戶端的開發平臺。例如,微軟就向市場推出了Windows Presentation Foundation平臺。IBM則提供了基于Eclipse富客戶端平臺開放工具集的IBM Workplace Managed Client。Adobe也推出了Adobe Engagement Platform以及Flex框架。所有的這些平臺都為增加有關SOC架構方面的開發經驗提供了一個框架和基礎。同時,它們也將編程框架、編程語言和開發集成環境(IDE)捆綁在一起。
具有普遍性與跨平臺性
競爭與選擇權有益于健康而且是必須的。但是——這是我的懇求——讓我們不要忘記在20世紀末期瀏覽器成為我們缺省客戶端程序的最主要的原因:它無處不在。讓我們不要再回到那些我們必須發布針對操作系統(甚至針對某一操作系統的具體版本)的客戶端程序的時代。為了讓基于SOA的Web服務和客戶端應用程序能夠成為計算機世界的主流,有必要讓程序運行的環境具備普遍性、跨平臺性和免費性。
開發基于SOC概念的RIA的工具也應該依靠于現代的、面向對象的編程語言,而且應該向開發人員提供豐富的可重復利用的組件庫以促進他們的努力。SOC開發工具同樣應該被一體化,以使得設計人員、內容開發者、代碼開發者與質檢人員之間流暢的工作流程成為可能。最后,這些工具都必須支持易用性(aclearcase/" target="_blank" >ccessibility),并且能夠遞送下一代的服務,例如雙向傳訊(two-way messaging)以及音頻和視頻協作。
增加前端價值
多年以來,我們曾經處理過一大堆很基礎的技術問題。我們也曾經嘗試讓數據庫能與中間件通訊,并且整合不同業務功能單元的信息。這些處于層結構底部的問題,現在都能夠被功能強大的SOAs和Web服務所處理及作合理化改革。
下一個障礙將會是以人為本——這些人包括應用程序的開發人員與最終用戶。對IT基礎設施的中間層以及后端層作合理化改革的行動早已被確定,而且已經產生了巨大的利益。下一步——很有可能是最大價值的所在——則是填補后端系統與前端界面之間的間隙,以促進更豐富的、更具動態的用戶交互。
Jeff Whatcott是Adobe Systems的產品營銷高級總監。