迷途書童

          敏感、勤學、多思
          隨筆 - 77, 文章 - 4, 評論 - 86, 引用 - 0
          數據加載中……

          快速構建面向服務的應用-1

          不知不覺畢業已經四載有余,幾年來一直和太陽公公比著賽上班,披星戴月著下班。隨著年齡和資歷的增長,工作和生活的時間比值竟然越來越大,回首過去,偶爾也感嘆一聲,真是驢一樣的年華。

          近年來中國的IT也發展的紅紅火火,人才輩出,網絡上好文比比皆是,但是卻沒有一篇是我的,真是悲哉

          女朋友走了,時間多了,百無聊賴之際,努力想為我慢慢逝去的青春留下一點可供回憶的東西,琢磨著寫一篇記錄我的一些火花的文章,也希望能給網絡上的朋友們提供一些參考,為祖國的IT業盡一點綿薄之力,便是我最大的心愿。

          廢話少說,開始進入主題,我的火花是“建立一套快速構建面向服務的應用應用生成環境,簡稱ACEApplication Creation Environment)”以及對應的“應用執行環境(AEEApplication Execution Environment)”。

          第一篇         面向服務的快速應用生成環境

          案例和問題就不分析了,無非是什么支撐業務快速上線、快速響應用戶需求、降低開發成本、淘到第一桶金、抓住用戶的心、實現業務敏捷等等之流。每當做起這種事情就頭痛不已,但是領導又最喜歡看這種東西

          目標:

          l  基于MDA的思想,建立一套端到端的開發環境,端到端指從前臺展現邏輯到后臺業務邏輯、數據持久邏輯、業務流程邏輯等。保守估計,期望至少能夠減少開發工作量的50%以上(本人一向比較低調)。

          l  支撐面向服務的應用程序構建,不綁定特定實現環境。如,不綁定C++或者java等特定的實現方式。

          l  不局限于某種特定的界面展現技術,如swingweb等。

          l  不局限于服務的分布方式,如不要求服務一定在本地,可以在本地也可以部署在世界各地。

          姑且按照我的愚見,對一個典型的應用參考DDD的理念作一下抽象,后面全部按照這種理解來推導ACE應是何物:


          一個典型的企業應用的元模型

          從上圖中,可以看出,DDD中的主要類型的領域對象都在:RepositoryServiceEntity 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

          評論

          # re: 快速構建面向服務的應用  回復  更多評論   

          good but difficult to understand
          2008-11-08 00:19 | serena

          # re: 快速構建面向服務的應用  回復  更多評論   

          面向構件的開發?
          2008-11-11 09:46 | 單飛
          主站蜘蛛池模板: 睢宁县| 临海市| 罗山县| 集安市| 扎囊县| 扎兰屯市| 安远县| 屏南县| 呈贡县| 克山县| 温州市| 长海县| 阿勒泰市| 洪湖市| 赫章县| 荔波县| 安阳市| 出国| 河南省| 祁门县| 探索| 锡林浩特市| 吉安县| 贵定县| 方山县| 确山县| 吉木乃县| 灵宝市| 湟中县| 南皮县| 南康市| 峡江县| 犍为县| 化隆| 红桥区| 肇东市| 高清| 普定县| 兴化市| 四子王旗| 永宁县|