將SOA經驗應用於Web 2.0實現
兩位IBM傑出工程師,Kyle Brown和Rachel Reinitz,在這篇新文章的開頭對現有Web 2.0方式進行了快速討論:
新的技術忽如一夜春風來,突然間我們過去所做過的所有技術都過時了並將被淘汰。乍一看,新的Web 2.0技術也將步此後塵。這些技術的硬派支持者將會告訴你,,你需要把所有的SOAP服務都扔掉了;使用SOAP和WSDL來構建不僅會使得你的專案時間變得更長,它們更不會帶來任何益處……儘管REST簡化了對某些型別服務的構建——特別是那些對外、面向Internet或Ajax客戶端的服務,但仍然還有許多服務會通過應用SOAP,WSDL,以及WS-*規範而獲益。另外,取決於你所擁有的SOAP服務的型別,你可以通過將你的服務轉化為REST服務來擁抱Web 2.0;特別對於面向資料的服務更是如此。
他們還描述了幾個主要的企業級SOA的經驗教訓可以如何被運用於REST實現。
支援新興業務模型是SOA的主要賣點之一,通常是通過提升企業業務流程的靈活性來達到,以此幫助企業進入新的市場或領域。同樣的,Web 2.0技術提供了新興的接觸客戶和業務夥伴,與之溝通以及進行協作的方式:
Web 2.0的概念可通過幾種方式被用來驅動新型的業務模型。業務可構築社群,允許使用者成為關鍵資料的生產者,圍繞使用者構築生態系統,尋求與使用者溝通的新途徑,並支援將資訊“混搭”成新的形式或檢視……這當然是一種簡化,但如果你只將Web 2.0看作是關注於富UI,Atom feed以及RESTful服務的“炫”技術的話,你就錯失了Web2.0是如何被用於帶來根本性業務變革的。
聯絡業務。一個成功SOA實現的一個主要先決條件就是,通過簡明扼要的將實現所需投資和投資回報(ROI)兩者聯絡起來,實現業務-IT的對齊。
……對於可能的業務價值你需要越具體越好,最好是,對Web 2.0的採用提供預計的投資回報……業務方未必會像開發者那樣為新技術而感到興奮。因此,為了促使Web 2.0起航,你需要能夠以他們的方式(就像你對開發者所做的那樣)來聯絡業務方。
從一個堅實的方法論基礎來驅動採納。另一個關鍵的SOA成功基石是從SOA方法論基礎而來的實踐,過程以及規則。作者引用了物件導向建模與構架(SOMA)和元件業務建模(CBM),將其作為讓業務使用者參與進來並幫助他們理解業務與IT對齊的手段。為了達成這一目的,Web 2.0將需要一個由現有SOA和麵向物件設計方法演化而來的堅實的方法論基礎:
……需要有一種方法來發現Web 2.0應用目標的群體,以及找出他們通訊風格的方法……同時還需要定義利用這些群體來幫助你評估服務,從而得到業務價值的方法。同樣地,需要更改或擴充套件SOMA服務發現機制,以及服務“石蕊測試”來找出那些適合於應用整合的服務與適合於支援富Internet應用的服務之間的區別。
明確願景,建立路線圖,貫徹計劃。成功的另一個先決條件是擁有一個整體的願景並朝著這個願景執行計劃:
如果你只關注於Web 2.0的願景和路線圖(包括實現基礎設施和框架專案)而缺少“真正”專案(深入生產並交付業務價值),那你就冒著實現出一個無法滿足專案需求的基礎設施和過程的風險,也使得專案團隊更難遵守路線圖/架構/框架。如果你啟動一個單獨的Web 2.0專案而缺少一個願景和路線圖,缺少一個通用框架,你冒的風險是交付更少的價值,重複勞動,在專案中未能對程式碼進行重用,並且無法構建通用的基礎設施和過程……早期專案不必大到要交付價值,但通常應當是能為從新的技術和業務模型獲取經驗而提供機會。
不要忽視治理。已經有足夠多的文章強調SOA治理的重要性:
我們從以前運用Web 2.0原則構建的應用中所看出的是,Web 2.0的治理將會更富有挑戰,因為Web 2.0採納的關鍵方面在於社群內自由的通訊,協作,以及資訊共享。由於我們暴露了RESTful和Atom服務,問題變成了:我們如何控制卻不限制對於這些服務的使用和使用者資產的開發?如果構建一個社群的社會性方面受限於一個太過於限制的治理流程,那這一社群將不會興旺。然後,我們太容易看到線上社群由於不夠或不當的治理而受損害了;太容易被“廢品”所掩埋而不能夠彰現出那些真正存在的有價值的內容。
對於企業級SOA,簡單而言,有影響力的Web 2.0實現是將企業整體作為目標。結果,由成功的以及失敗的SOA實現所得出的經驗都可以被應用到許多Web 2.0專案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14780828/viewspace-567472/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 超詳細,Flutter2.0構建Web應用的實際體驗FlutterWeb
- Blazor Web 應用如何實現Auto模式BlazorWeb模式
- IT職場:如何將DOE(實驗設計)應用於實際生產過程中?
- 聊天室應用開發實踐(二):實現基於 Web 的聊天室Web
- 開發響應式web頁面的經驗Web
- 實用的管理經驗
- Holer實現手機APP應用外網訪問本地WEB應用APPWeb
- 利用京東雲Web應用防火牆實現Web入侵防護Web防火牆
- GitHub CSP應用的經驗分享Github
- Holer實現自定義域名訪問本地WEB應用Web
- MVC模式在Java Web應用程式中的實現MVC模式JavaWeb
- 如何應用於Web框架的搭建Web框架
- 關於 Web 應用的 Prerender 策略Web
- 《Flask Web開發 基於Python的Web應用開發實戰》簡評FlaskWebPython
- [譯] 將 Kotlin 應用於現有 Java 程式碼的策略KotlinJava
- 使用 web 應用打包工具 Parcel 實現程式碼分割Web
- Web應用隱形後門的設計與實現Web
- 實驗二:順序表的基本操作實現及其應用
- 如何改善應用啟動效能 | Facebook 應用的經驗分享
- web動態驗證碼的實現Web
- 基於"堆"的底層實現和應用
- 基於Python和TensorFlow實現BERT模型應用Python模型
- 阿里巴巴的 Kubernetes 應用管理實踐經驗與教訓阿里
- 微信群控系統的應用和實戰經驗分享
- C#實現JWT無狀態驗證的實戰應用C#JWT
- 如何用 Java 實現 Web 應用中的定時任務?JavaWeb
- 單體應用、SOA、微服務,優劣勢都有哪些?微服務
- 後端應用分層經驗總結後端
- Pinterest:將GCN應用於影像推薦RESTGC
- Pinterest:將GCN應用於影象推薦RESTGC
- 如何將模組化應用於 SQLSQL
- 《Flask Web開發:基於Python的Web應用開發實戰》學習筆記(二)FlaskWebPython筆記
- 基於Python實現互動式資料視覺化的工具(用於Web)Python視覺化Web
- 使用Nginx將大模型Web應用部署到公網Nginx大模型Web
- 用js實現web端錄屏JSWeb
- WEB 應用快取解析以及使用 Redis 實現分散式快取Web快取Redis分散式
- FlinkCDC 2.0使用實踐體驗
- 實時web應用方案——SignalR(.net core)WebSignalR
- Hulu大資料架構與應用經驗大資料架構