隨筆 - 11  文章 - 79  trackbacks - 0
          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          歡迎合作

           

          聯系方式:openhandx@foxmail.com

           

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

           

           

           

           

           

            OpenHandX-Unreal 1.01

          輕量web框架

           

           

           

           

           

           

           

           

           

           

          2012-10-5

           

          作者:彭明華

          openhandx@foxmail.com

           

          本文檔中的任何部分都不得以任何手段任何形式進行復制與傳播

           

           

           

          目錄

          1            前言

          2                組件

          3                主要特性

          4                SSScript-Service)腳本服務框架

          5                MVCModel-View-Controller)框架

          6                文件上傳支持

          7                Web Service功能

          8                Spring支持

          9            OpenHandX所有項目介紹

           

           


           

          1          前言

          OpenHandx-Unreal是一個可擴展的輕量級web框架。UnrealAjax技術為核心,開創了SSScript-Service)腳本服務框架開發模式,并完全兼容MVCModel-View-Controller)框架。SS框架可以輕易完成頁面的 Script對象與Pojo對象的創建、操作、轉化、傳輸,實現了web層與Service層的完全分離和解耦,使Service層的領域驅動設計能徹底地貫徹。Unreal還提供了統一的Web Service功能,為企業打造了統一的服務總線奠定基礎。Unreal封裝嚴密,使用時不需要學習太多的抽象類、接口等概念,因此容易上手,開發效率更高。2          組件

          組件名稱

          說明

          open-ureal1.0.jar

          Ureal核心包,提供Web框架支持,Web ServiceWeb Client支持

          unreal-tag.tld

          頁面標簽庫

          open-unreal.js

          提供了Ajax請求調用的方法,原生的open模型對象轉化

           

           

          3          主要特性

          新創的SSScript-Service)框架

          完全兼容MVCModel-View-Controller)框架

          原生支持Ajax技術

          簡化的xml配置或零配置

          Web Service功能

          文件上傳支持

          Spring支持

           

          4          SSScript-Service)腳本服務框架

          傳統的MVCModel-View-Controller)框架是對頁面Form提交請求->應答刷新頁面這種情況設計的,因此支持非常好,并得到了廣泛的應用。但是隨著web2.0的普及Ajax技術得到應用的場景越來越多,而Ajax應答是具體數據,因此MVC框架并不適合Ajax。SS框架采用JavaScript提交請求,服務端采用Service方式提供服務,最后將應答的結果返回到客戶端,JavaScript再將Json數據解析成JavaScript對象。

          Unreal SS框架體系結構


          1、 客戶端的JavaScriptasynServicesynService方法)發起一個請求

          2、 UnrealSS ServletSsDispatch查找請求和確定適當的Service

          3、 SsDispatch根據請求的方法和參數名匹配要調用的Service的方法,再將參數轉化成方法參數需要的數據對象

          4、 Service方法執行該時調用相應的業務邏輯,并獲取返回結果(Pojo對象)

          5、 將結果(Pojo對象)轉化成Json字符串返回到客戶端

          6、 客戶端的將Json字符串轉化成JavaScript對象

          客戶端頁面調用后臺的Service方法就象調用本地的JavaScript方法一樣簡單,并且Service方法返回的Pojo對象也被轉化成了JavaScript對象。因此客戶端頁面可以直接獲取Pojo對象的數據。

          SS框架獲取頁面參數不依賴FormAction的屬性注入,而是通過Service方法的參數獲取。SS框架接受的參數也不再是頁面FormInput輸入框,而是JavaScript數據對象

          例如有一個JavaScript對象:

          {

              msg:"hello",

              count:"10",

              amount:"20.1",

              time:"2012-1-1 1:2:3.4"

          }

          被調用Service的方法:

          public Result input(String msg , int count , float amount , Timestamp time)

          假設Result有以下屬性

              public String getText() {

                 return text;

              }

              public void setText (String text) {

                 this.text = text;

              }

              public BigDecimal getMoney() {

                 return money;

              }

           

              public void setMoney (BigDecimal money) {

                 this.money = money;

              }

          最終返回到瀏覽器的JavaScript對象為

          {

              text:"hello world",

          money:"100.00"

          }

          input方法被執行時先注入的參數msg"hello",count10amount20.1,time2012-1-1 1:2:3.4。返回也是將Java對象轉化成JavaScript對象。這些都是有SS框架完成的。

          SS框架就是客戶端腳本直接調用后臺服務的框架,匹配規則是后臺服務的類名、方法名、參數名。

          SS框架的優點:

          1、 簡化web層,做web開發者只要關注頁面和Script代碼,而不必寫ActionForm及其他Java層的代碼,去除了頁面與后臺代碼的偶合度,使得頁面代碼復用得到了提高,也利于本地調試。這些都大大節提高了開發的質量和效率,使web開發者有更多的時間關注頁面的友好性

          2、 做后臺開發者只要按照領域驅動的思想完成Domain、DAO、Service等,開發的是純粹的業務代碼,完全不用關注頁面的實現,使得領域驅動的設計思想更加自由,Service復用更加廣泛,同時代碼的復用和測試變得更加容易

          5          MVCModel-View-Controller)框架

          傳統的MVCModel-View-Controller)框架應用廣泛,Unreal也兼容這種應用模式,滿足特定開發者的需求,UnrealMVC框架提供了兩種方式:Action方式、Ajax方式

          Action方式




          1.        客戶端Web瀏覽器的發起一個請求

          2.        UnrealAction ServletActionDispatch查找請求和確定適當的Action

          3.        ActionDispatch根據請求的方法和參數名確定要調用的Action的方法, 再將頁面數據轉化Form對象

          4.        Action方法執行該時調用相應的業務邏輯

          5.        Action執行的結果(分發的頁面路徑),定向到相應的頁面

          6.        最終頁面返回客戶端Web瀏覽器

           

          Ajax方式



           

          Unreal Ajax方式與Action方式不同在于AjaxAction返回的是數據對象(Pojo)這個對象最終以Json字符串返回到客戶端,由客戶端轉化成JavaScript對象。

          Unreal MVC的優點:

          1、 Action類不用實現任何接口,可以使一個普通的java

          2、 Action類是保證線程安全的,每一次請求產生一個實例(使用Spring容器原型模式管理Action的時候除外)

          3、 Action類不依賴Servlet APIHttpServletRequestHttpServletResponse,便于通過初始化、設置屬性、調用方法來測試,“依賴注入”支持也使測試更容易

          4、 Unreal MVC可以使用Action+Form方式也可以是ActionForm方式傳遞參數

          5、 Unreal MVC提供了Ajax方式的原生支持

           

           

          6          文件上傳支持

          UnrealContext是上下文管理類,保存了當前請求的HttpServletRequest、HttpServletResponse、ServletContext。除此之外還提供了文件上傳的支持,UploadSuppportgetFileItems()方法返回當前請求所有上傳文件。

           

          7          Web Service功能

          Web Service功能分為OpenServiceOpenClient, OpenClient負責與OpenService通訊、調用、數據轉換,OpenService負責服務的提供、數據轉換。

          體系結構如下:





          1.      應用程序使用OpenClient調用遠程服務器的OpenService

          2.      OpenClient將參數轉化成為xml并向OpenService服務器發起請求

          3.      遠程服務器OpenService查找請求和匹配適當的Service

          4.      遠程服務器OpenService根據請求的方法和參數名匹配要調用的Service的方法, 再將xml參數轉化成方法的參數數據對象

          5.      Service方法執行該時調用相應的業務邏輯,并獲取返回結果(Pojo對象)

          6.      遠程服務器OpenService將結果(Pojo對象)轉化成xml返回到客戶端

          7.      應用程序的OpenClientxml轉化 Pojo對象返回

          OpenService的特性:

          1.      UnrealOpenService是一個通用的WebService工具,包括ServiceClient,數據轉化xml和傳輸不需要開發者的關注

          2.      OpenService提供了Java原生的數據類型、BigInteger、BigDecimal、Date、Time、Timestamp、Pojo對象、Open-Common數據模型(RecordVORecordSetVO、MulripleVO)、可串行化對象的傳輸

          3.      支持Https傳輸加密和Gzip壓縮

           

          8          Spring支持

          Unreal SSMVC框架以及OpenService的都提供了對Spring的支持。Action、ActionForm、Service層都可以使用Spring Ioc容器管理。

           

           

           

          1          OpenHandX所有項目介紹

          項目名稱

          說明

          open-Common

          公共開發包,整理了日常開發中可能經常用到的方法、工具類

          open-Chart

          圖表工具,核心采用jfreechart,將jfreechart重新包裝簡化,方便使用

          open-Report

          多維度報表工具,支持表達式計算、匯總、分組、排序、集成圖表,支持Excel輸出

          open-Real

          持久層報表工具,封裝jdbc的增、刪、改、查。具有自動匹配sql條件,orm影射

          open-Batch

          分布式批量架構,處理復雜耗時的數據加工或ETL加工

          open-Unreal

          SSScript-Service)腳本服務Web開發框架,并提供WebServie功能

          open-River

          基于open-unrealESB產品,提供代理和點對點模式,并提供快速消息傳輸通道

          OpenHandX下載地址:http://code.google.com/p/openhandx2/

           

          posted on 2011-11-15 08:47 彭明華 閱讀(1292) 評論(2)  編輯  收藏 所屬分類: OpenHandX核心

          FeedBack:
          # re: OpenHandX-Unreal 1.0 2011-11-15 09:06 阿蛇
          歷時一年,博主終于有更新了!  回復  更多評論
            
          # re: OpenHandX-Unreal 1.0 2011-11-15 12:15 水果盤
          不錯  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 乐都县| 万荣县| 垣曲县| 临夏县| 福安市| 时尚| 滦南县| 东海县| 远安县| 雷山县| 聂荣县| 盐源县| 鹤山市| 胶州市| 淳安县| 元朗区| 扎囊县| 广丰县| 濮阳市| 东港市| 玉溪市| 霍州市| 高邑县| 广元市| 盘锦市| 沅陵县| 房山区| 当阳市| 札达县| 嘉义县| 长春市| 宁阳县| 政和县| 凯里市| 紫金县| 黑水县| 西平县| 屏南县| 法库县| 正蓝旗| 乌审旗|