1. 程式人生 > >《工作流管理——模型、方法和系統》筆記2:Petri網對工作流建模

《工作流管理——模型、方法和系統》筆記2:Petri網對工作流建模

Web 是一個生長著的、開放的、動態的分散式系統。

Web 始於1989 年,當時英國科學家 Tim Berners-Lee 和比利時人 Robert Cailliau 在歐洲粒子物理研究所(European Organization for Nuclear Research ,簡稱 CERN)共同提議和構造了在因特網(Internet)上使用超文字來發布、分享和管理資訊。Web 是 World Wide Web,即網際網路的簡稱,是一個相互連結在一起、通過 Web 瀏覽器來訪問的超文字文件系統。瀏覽器裡看到的網頁,可能包含文字、影象以及其它的多媒體,通過文件之間的超連結,可以從一個網頁瀏覽到其它網頁。

Web 逐漸在科研和大學中流行起來,然後走向大眾,變成人們生活、娛樂和工作中的基本工具。在這個發展過程中,Web 擁有了最大量的使用者,人們隨時在使用它,把它變成了最大的分散式計算系統,基於最廣為接受的開放標準,時時新、日日新,成為一個動態生長著的開放系統。





回頁首



Web 2.0 趨勢

什麼是 Web 2.0?

今天的 Web 跟過去如此不同,所以叫做 Web 2.0,意指一個社會、商業、技術三相融合的發展階段。


Web 2.0,是由 O’Reilly 公司在 2003 年造的一個詞,2004 年召開 Web 2.0 大會之後,這個詞就流行起來,意指基於 Web 的下一代社群和託管服務,比如社會網路、維基百科、大眾分類等等,幫助 Web 使用者協作和分享。

雖然,2.0 似乎在暗示 Web 的升級換代,實際上是指軟體開發人員和終端使用者使用網際網路平臺的方式的變化。而在商業上,關於如何才能在這樣的一個新平臺上獲得成功的探索,也從來沒有停止過。

那麼,這些變化都是什麼?核心推動力是什麼?

這種使用網際網路的方式的變化,與過去多年來快速發展的寬頻化、Web 使用者規模的快速增長、使用者的參與熱情,都密不可分。 大規模 的 普通使用者 需要更好用、更個性化、更加以他們為中心、更多樣的內容、服務和 應用 ,這就是網際網路發展的第一推動力。而對於開發者而言,如何在 Web 平臺上快速、便宜地滿足這樣的需求,推動著他們探索和實踐更好的使用者體驗、更加輕量級的程式設計模式、軟體如何作為服務來運營並提供給使用者;與此同時,圍繞著如何利用這樣大規模的使用者群體自己來創造、貢獻和共享價值,開發者們又開始思考和探索啟用網路效應、群眾智慧的參與架構和社會計算模式。商家在經歷了上一次網際網路泡沫之後,也不斷的嘗試新的、成功的商業模式,即如何讓相互協作和分享的使用者口碑相傳來病毒式地營銷,如何利用這種使用者社群的傳播和推薦能力來開拓大規模的個性化服務,從大規模單一市場轉向選擇性極大並豐富的多樣化市場,即長尾經濟。

技術、商業和社會三種因素融合式地共同發展,相互推動,經過幾年全球範圍的嘗試和實踐,新的技術範型、商業模式和生活方式不斷湧現,Web 變得更加開放、動態,社群也更加去中心化,人們卻又能夠更加緊密地協作和分享,內容、服務和應用更加的多樣化和個性化,商業模式也逐漸走向如何滿足大規模的小眾需求。





回頁首



Web 2.0 成功的核心模式

Web 2.0 和過去的 Web 1.0 之間有什麼不同?討論這個話題,最權威的莫過於 Tim O'Reilly 所寫的“什麼是 Web 2.0?”,我在這裡拾人牙慧,概述一下我的理解。

Web 的演變是持續進行的,Web 就像是有生命的實體,在不斷生長,所以當我們說 Web 2.0 和 Web 1.0 之間的差別時,是一個相對靜態的階段性觀點,而不是絕對的。

如前所述,Web 2.0 是指網際網路泡沫之後,人們使用 Web 的方式的巨大變化,開發人員、終端使用者和商家,都在不斷地實踐新的方法。幾年過去,他們取得了很多了不起的成果,締造了很多成功的 Web 2.0 公司,從 Google、Salesforce、MySpace、Flickr、Delicious、YouTube、Linkedin 到今天十分火爆的 Facebook,具有 Web 2.0 特徵的公司,風起雲湧。如何定義 Web 2.0 不重要,重要的是 Web 2.0 背後的模式和原則,這些模式對於 Web 2.0 的成功至關重要。

Web 2.0 具有八個核心模式,它們分別是:

群眾智慧(Collective Intelligence)
建立一個參與架構,藉助網路效應和演算法,使得軟體隨著使用的人越來越多而變得越來越好。

資料,下一個“Intel Inside”
利用獨特、難以複製的資料來源,成為這個時代的“Intel Inside”,其中,資料變得跟功能一樣重要,成為核心競爭能力。

“複合”創新
建立一個平臺,通過資料和服務的組合,來創造新的市場和機會。

豐富使用者體驗
超越傳統的 Web 頁面模式,讓線上應用擁有桌面應用一樣的豐富使用者體驗。

支援多種裝置
支援各種連線到因特網的裝置,為使用者提供無所不在、無縫的線上體驗。

軟體即服務(Software as a Services,SaaS),和永久試驗版(Perpetual Beta)
改變了傳統軟體開發和使用的模式,轉向永久線上、持續更新、軟體即服務的模式。

利用長尾
藉助因特網帶來的接觸極大規模客戶的能力以及極低成本的營銷方式,來獲得細分的“利基”(niche)市場的利潤。

輕量級模型和低成本優勢的可擴充能力
利用輕量級的商業模型和軟體開發模式,來快速、廉價地構造產品和服務。

以上幾個模式,分別關注不同方面,但是它們由如下幾個 Web 2.0 的特質而相互關聯起來:

大規模互連
今天我們從過去一對多的釋出和通訊,轉向多對多的連線,網路效應使得邊際同核心一樣重要,顛覆著舊的通訊、釋出、分發和聚合模式。

去中心化
這種大規模互聯,也顛覆著傳統的控制和權力結構,帶來更大程度的去中心化。從全球資訊流動,營銷,到新產品設計,這種發自底層的草根力量, 都在“叫板”來自權力階層的聲音。系統更多地從通過邊沿的拉動來生長,而不是藉助核心的推動向外生長。

以使用者為中心
網路效應給予使用者前所未有的力量,他們參與、對話、協作,最終產生巨大的影響。消費者可以說話、交流和討論他們的經驗,他們擁有控制權,積極主動地影響著產品的方向,同時也對那些積極應對的公司報以忠誠和口口相傳的口碑營銷。

開放
這種開放性,是以因特網的開放技術標準為基礎的,但很快地演進到一個由開放應用所構成的生態系統,這些應用建構在開放資料、開放 API 和可重用的元件之上。開放,還意味著超越技術層次的更大程度的透明性,如公司對外溝通,共享智慧財產權、產品的開發過程等。

輕量級
軟體由小團隊使用敏捷方法設計和開發,使用簡單資料格式和協議,採用執行開銷小的平臺和框架,應用和服務部署簡易,商業上力圖保持低的投資和成本,營銷上利用簡單的消費者之間的口口相傳來形成病毒式傳播。

自然浮現
不是依靠預先完整定義好的應用結構,而是讓應用的結構和行為隨著使用者的實際使用而靈活適應和自然演變;成功來自合作,而不是控制。

這些特質,Web 2.0 的應用體現得越來越多,由這樣的應用所構成的應用生態系統,具備了將大規模個性化的資訊和服務帶給極大規模普通人的潛力。





回頁首



Web Oriented Architecture:Web 2.0 的設計原則和程式設計模型

Web 2.0 的發展,對軟體的重要影響,集中在下面幾個方面:


圖 1. Web 2.0 對軟體的影響


首先,Web 2.0 帶來了“簡單性”,也就是軟體容易使用、易於組合和混用、易於擴充套件。這對傳統軟體,尤其是企業軟體來說是很不簡單的一個改變,因為企業軟體過去高高在上,往往需要花很大的力氣來整合,需要專業人員來維護和擴充套件,使用者也需要經過訓練才能很好地使用軟體。

其次,Web 2.0 帶來了“軟體即服務”的觀念,使用者付費即用,無需操心開發、安裝、部署和運營維護,開發的過程也極大程度地由使用者驅動,使用者需求的反饋非常及時。

還有就是社群和使用者增值,也就是使用者不只是純粹的消費者,他們還是生產者,系統利用他們貢獻的資料(比如 標籤、意見)和行為,通過網路效應和演算法,獲得“群眾智慧”,利用它們構成的社會網路,獲得口碑相傳。

這些設計原則和模式,被人們總結為 Web Oriented Architecture,簡稱 WOA。WOA 與時下企業軟體正流行的 SOA,採用同樣的設計哲學和理念,也是以服務為中心的架構模式,只是它主要採用來自 Web 的概念和技術來構建服務架構:

使用 REST 來表示和訪問服務,每個網路資源(或者說實體)可以用一個 URL 來唯一地表示和確定,其上只有 GET、POST、PUT 和 DELETE 四個操作;

資料被編碼成 XML 文件或者 ATOM Feed 以用來交換資料,在伺服器和瀏覽器之間,也可以使用 JSON 編碼的文件;

基於 AJAX 的豐富使用者體驗;

Web 2.0 的程式設計模型正在形成,它包括下面幾個重要部分。

一個輕量級的程式設計模型,就是使用 REST 和 Feed,有時也考慮 SOAP,比如 Amazon 既提供 REST 也提供 SOAP,社群裡使用 REST 的比例要更高一些。

資料服務,資料服務將不同來源的資料結合、過濾、轉換、消除不一致性,提供必要的質量保證,比如資料一致性、安全、訪問控制和資料管理。

提供豐富使用者體驗的因特網和 Web 應用,結合使用 AJAX、HTML、XHTML、CSS、DOM、XML 和 XSLT,利用 XMLHttpRequest 和 JavaScript 將一切繫結在一起,使得線上應用提供如同桌面一樣的豐富使用者體驗。

可“混用”(Mash-able)的資產,將內容和 IT 資產變成可以靈活重組的資產,利用網際網路輕量級的內容聚合方法來建立複合 Web 應用。

企業 Mashup 平臺,讓那些需要內容和資訊的人們,可以輕鬆的聚合和重組來自不同地方的內容和資料,快速滿足他們因情景而不斷變化的需求。





回頁首



Global SOA

什麼是 Global SOA?

WOA 是企業 SOA 的擴充套件,與之相輔相成,因此又稱為 Global SOA。


WOA 將企業 SOA 的服務,帶給更多的人,帶給那些對 IT 不是太瞭解的普通使用者和業務部門的僱員(Line of business persons)。

首先,WOA 將企業 SOA 提供的服務提供到 Web 上,將企業的服務延伸到了全球範圍,並且簡化了:

開發
服務組和
部署和可訪問能力
質量保證:效能、可伸縮性和安全性
反過來,企業在將自己的 SOA 服務擴充套件到 Web 的同時,也在使用來自 Web 的服務和 Feeds。但是二者不能相互取代,很多企業內部的核心流程和資料資產,所要求的企業級安全性、可靠性、可管理能力等,是 WOA 所不能提供的。所以我們說,Web 2.0 是 SOA 的擴充套件,二者相輔相成,但並非競爭和取代的關係。Web 2.0 提供的豐富使用者體驗,極度的簡單性和易用性,讓 SOA 所提供的核心業務服務和資料,能夠被更多的普通使用者和業務人員,以更簡單、更富於個性化的新的方式使用和組合。


圖 2. Web 2.0 和 Global SOA


在一個企業中,業務活動有很多種。一些是非常核心的業務流程和資訊資產,它們相對穩定,有著明確的業務定義、規則和評價指標,通過明確定義的業務活動來完成。這些活動強調可管理能力、可靠性和高度的安全性,是企業 SOA 的好目標。也有一些活動,更多地依靠業務人員、顧客和合作夥伴,通過大量的資訊互動和溝通來完成,這種活動雖然有其目標,但執行過程通常無一定之規,需要因場景變化而變化,這種非常柔性的、面向多人、依靠大量資訊交流的活動,我們稱之為邊沿性的活動,這些活動是 Web 2.0 的好目標,通過將企業 SOA 中的核心服務和資訊資產,擴充套件到這些活動中來,Web 2.0 提升了 SOA 的價值。





回頁首



小結 Web 2.0

Web 2.0 是一個新事物嗎?不是,它是 Web 連續演變過程中的一環而已,是一個用來表示人們使用 Web 的方式所發生的重要變化的符號。這些變化背後,是一系列設計原則和模式,是一組基本特徵,是支援這些設計原則和特徵的技術選擇和程式設計模型。它們以簡單性、易用性、社群與參與架構所支援的網路效應和使用者增值帶來的群眾智慧,以及軟體即服務的交付模式為基本指向,奠定了一個基於 Web 實現的 SOA 架構風格,即 Web Oriented Architecture。WOA 跟 SOA 相輔相成,各自適用不同的情景,WOA 將 SOA 擴充套件到 Web,又將 Web 引入 SOA,使得 SOA 的服務和資料資產,可以被更多的人,以更加簡單、易用的方式使用起來。





回頁首



向前,向前,再向前:從 Web 2.0 到 Web 3.0

Web 2.0 只是 Web 的一個發展階段,它還在成熟的過程中,不過 Web 的發展是連續的,人們已經開始在談論 Web 3.0,也就是如何將因特網轉化為一個以 3D 為基礎的虛擬世界,如何利用人工智慧,如何將網際網路轉化為真正的語義網。這些發展都是非常激動人心的,它們的發展成果將像 Web 2.0 一樣,給我們的商業、社會和技術帶來深遠的影響。讓我們拭目以待,積極參與和推動吧