快速構建面向服務的應用-1
不知不覺畢業已經四載有余,幾年來一直和太陽公公比著賽上班,披星戴月著下班。隨著年齡和資歷的增長,工作和生活的時間比值竟然越來越大,回首過去,偶爾也感嘆一聲,真是驢一樣的年華。
近年來中國的IT也發展的紅紅火火,人才輩出,網絡上好文比比皆是,但是卻沒有一篇是我的,真是悲哉…
女朋友走了,時間多了,百無聊賴之際,努力想為我慢慢逝去的青春留下一點可供回憶的東西,琢磨著寫一篇記錄我的一些火花的文章,也希望能給網絡上的朋友們提供一些參考,為祖國的IT業盡一點綿薄之力,便是我最大的心愿。
廢話少說,開始進入主題,我的火花是“建立一套快速構建面向服務的應用的應用生成環境,簡稱ACE(Application Creation Environment)”以及對應的“應用執行環境(AEE,Application Execution Environment)”。
第一篇 面向服務的快速應用生成環境
案例和問題就不分析了,無非是什么支撐業務快速上線、快速響應用戶需求、降低開發成本、淘到第一桶金、抓住用戶的心、實現業務敏捷等等之流。每當做起這種事情就頭痛不已,但是領導又最喜歡看這種東西…
目標:
l 基于MDA的思想,建立一套端到端的開發環境,端到端指從前臺展現邏輯到后臺業務邏輯、數據持久邏輯、業務流程邏輯等。保守估計,期望至少能夠減少開發工作量的50%以上(本人一向比較低調)。
l 支撐面向服務的應用程序構建,不綁定特定實現環境。如,不綁定C++或者java等特定的實現方式。
l 不局限于某種特定的界面展現技術,如swing,web等。
l 不局限于服務的分布方式,如不要求服務一定在本地,可以在本地也可以部署在世界各地。
姑且按照我的愚見,對一個典型的應用參考DDD的理念作一下抽象,后面全部按照這種理解來推導ACE應是何物:
一個典型的企業應用的元模型
從上圖中,可以看出,DDD中的主要類型的領域對象都在:Repository,Service,Entity, Process也是一種特化的service。還有一個東東:DataView,不知道叫它什么好,先不費腦筋去給他取名了。
下面一一解釋這些東東的含義:
Name |
Introduction |
Association |
Remark |
Data Entity 數據實體 |
表示企業應用中的數據實體,比如訂單管理系統中的訂單對象就是一個數據實體。 |
數據實體之間可能有關聯。比如訂單對象關聯多個訂單項對象。 |
|
Data View 數據視圖 |
表示數據實體的一個視圖,也可能是多個有關聯的數據實體的一個視圖。類似于DB中的視圖的概念。 |
數據視圖關聯一個或者多個數據實體。無須多解釋,參考數據庫視圖就可以了。 |
|
Service 服務 |
表示企業應用中的服務對象。比如訂單管理系統中的訂單服務。服務的粒度可大可小,原子服務也可以聚合成業務服務。類似SCA中的服務聚合。 |
服務可能聚合服務形成大粒度服務。服務可能接收數據對象,輸出另外的數據對象。 |
服務不能包含有與特定應用上下文相關的狀態信息,不然影響復用。每個服務對服務的使用者來說是無狀態的。 |
Process 流程 |
各種各樣的流程的頂層抽象,流程也是一種特殊的服務 |
所有的流程都將有服務參與。因此流程與服務有依賴關系。 |
|
Operation Process 操作流程 |
表示一個業務邏輯處理過程,比如我們計算一個四則混合運算表達式的時候,心里會先分解城一個一個的計算單元,然后先算某個單元再算某個單元,算完收工。這一個一個的有次序執行的計算單元就是一個操作流程。這種流程的生命周期很短,流程運行數據不需要持久化,一次調用就走完,不走完就完全失敗。 |
操作流程可能與數據實體和服務關聯,比如做四則混合運算的操作流程,要接受數據,接收了數據之后呢,要調用各種加減乘除服務來做計算單元的運算。 |
|
Business Process 業務流程 |
業務流程表示數據實體的一個有次序的處理過程。這種流程表示人工協作處理一件事情的一個過程。就是常用的工作流的概念。 |
業務流程肯定要和數據實體、服務關聯的。這個就不詳細說明了。 |
|
Orchestration Process 編排流程 |
編排各應用系統暴露的服務達成業務目標,一種實現就是BPEL |
編排流程肯定要和服務和數據實體關聯,也不多說,看BPEL規范就是了 |
|
View Process 視圖流程 |
數據實體通過數據視圖來展現,而數據視圖之間的變遷,以及數據視圖與服務之間的關聯則由視圖流程來表述。視圖流程的一種實現技術就是頁面流,不過目前的頁面流都綁定了web,其實數據和服務的展現(接入)方式有很多種,比如IVR接入,web接入,swing接入等等。 |
和服務和數據實體關聯。 |
|
Signaling process |
信令流,表示電信業務中的信令交互流程 |
跟服務和數據實體關聯 |
|
Repository 倉庫 |
DDD中的倉庫對象,保存數據實體的領域對象。 |
與數據對象關聯。被服務對象調用。 |
|
DAO 數據訪問對象 |
負責從某種特定的存儲介質中存儲和retrieve數據實體。用于避免倉儲對象依賴特定的存儲介質,如DB,文件系統等。 |
是數據對象關聯,被倉儲對象調用。 |
|
Permission 權限 |
指對數據實體能夠執行的操作的權限,如增、刪、改、查,可能要控制到數據實體的屬性粒度。也有可能對服務有訪問權限控制,即允不允許用戶執行某個服務。 |
權限跟數據實體或服務關聯。 |
posted on 2008-11-07 23:50 迷途書童 閱讀(1712) 評論(2) 編輯 收藏 所屬分類: 隨感 、系統設計 、java應用 、SOA