jBrick 開發平台

星期二, 1月 17, 2006

系統架構

架構圖

在上圖中,共分為Client、Application Server和Data Source三層來說明
1.Client:顯示使用者介面作為使用者輸入資料或是顯示資料供使用者瀏覽,另外提供與使用者互動的動作及輸入驗證流程。
2.Application Server:將Client所傳過來的資料經由Controller處理,產生Data Model後建立Server端的處理流程,並由Server Command做存取資料的動作或是處理程序,最後再將資料傳回Client端呈現資料。
3.Data Source:資料保存層,可以用資料庫或是文件的方式呈現。

JSP系統架構

0.在以JavaScript來控制使用者輸入的流程,包含了資料的驗證、資料互動、過瀘…等動作。
1.當使用者按下submit的動作之後,資料會經由HTTP的協定(Post/Get)的方式將Client的資料送到Web Controller。
2.Web Controller將Request中的各個參數值解析後,將值放入Data Model內,以供jBrick運作之用。
3.Web Controller在產生Data Model後,會再依前Client所傳過來之Flow的名稱傳給Workflow Engine來建立整個Flow的節點。
4.Flow從開始節點開始執行,每個節點會產生相對應的Server Command,由Server Command來執行所所要執行的程式碼。
5.在Server Command可以存取資料來源(Database或Document)後加以處理。
6.每個Server Command執行後會將結果傳遞給Workflow Engine來決定下一個要執行的節點。
7.Server Command會將執行結果放至(或更新)Data Model內的數值。
8.Web Controller會將Data Model的內容放至Session中,以利Tag Library可以取得這些結果值。Web Controller會依據整個Flow執行的結果來決定所要導向的頁面,而重導至新的JSP頁面(亦可能是更新原畫面的內容)。

Swing系統架構

0.以Event Listener的方式來控制使用者輸入的流程,包含了資料的驗證、資料互動、過濾…等動作。
1.當使用者所按下的按鈕(或是元件互動),需要與Server互動時,會經由UI Controller來讀取送往Server的參數。
2.UI Controller會將UI上面的UI Component解析,將值放入Data Model內,以供jBrick運作之用。
3.UI Controller在讀取參數設定及產生Data Model之後,會依據設定的參數決定送往Server的Flow Controller。
4.Flow Controller會依Client所傳過來之Flow的名稱傳給Workflow Engine來建立整個Flow的節點。
5.Flow從開始節點開始執行,每個節點會產生相對應的Server Command,由Server Command來執行所所要執行的程式碼。
6.在Server Command可以存取資料來源(Database或Document)後加以處理。
7.每個Server Command執行後會將結果傳遞給Workflow Engine來決定下一個要執行的節點。
8.Server Command會將執行結果放至(或更新)Data Model內的數值。
9.Flow Controller會取後執行後的Data Model。
10.Flow Controller將Data Model經由Stream的方式傳給Client的UI Controller後,由UI Contorller來更新畫面上元件所顯示的值。

星期一, 1月 16, 2006

簡介

前言
目前幾乎所有的Java開發平台都是以MVC的架構為基礎而發展出各種平台,這些平台大都以網頁的應用程式為開發對象,但在企業內部的應用程式除了應用網頁技術來開發外還必須具備著高度的互動性、大量資料的展現、快速的執行效能、具彈性的畫面操作…等特性,jBrick就是在這個前提下所產生的開發平台,然而與目前所有的開發平台最大的不同點是,同時具有Swing和JSP的畫面呈現,透過一個轉換的Channel使得這些畫面可以使用同一份的Server端的程式,可以提高Server端程式的共用性,以節省系統開發及維護的人力資源。

在jBrick的平台中包含了UI元件、資料存取、Workflow Engine…等幾個部份,讓使用者可以如同堆積木一般,將這些元件以組合方式快速開發出應用程式,另外一個特色就是整個平台的設計均是以介面(Interface)在運作,讓開發者除了利用平台所提供的預設元件外,還可以輕易地加入自己的套件,增加系統的擴充性及應用性。

在此舉一個日常生活中的例子來說明jBrick的架構,我們可以將整個jBrick想像成一個人體構造,當我們的手(Tag Library)遇到熱水壺時,感覺神經元(Java Script)會將”燙”的感覺傳導到大腦(Workflow Engine)後,大腦會產生訊息(Server Command),並傳入脊髓神經(Model)後,告訴手(Tag Library)的骨骼肌要作收縮的動作。

開發動機與目的
jBrick是為了要能夠快速開發以Java為平台的應用程式而發展出來的一套框架(Framework)。
以下為jBrick所訂定的目標:
1.完全符合MVC架構的jBrick,以使得UI / Business Logic / Data Developer可以完全分開獨立工作,且各個角色可以分開開發,不會有相互影響到專案的進度。在元件的部份也是完全符合MVC的架構,所以整個系統可以分為二大MVC,一個是View/UI Controller/Data Model另一個就是由UI / Workflow / Database。

2.將整個系統開發中最繁鎖也最易出錯的給值/取值(如同Java Class Set / Get Method)的動作由jBrick來自動完成,以增快專案的開發速度及系的穩定度。

3.在一般的專案開發中,如果設定為網頁程式,若日後要改為一般應用程式(即微軟所稱的Win Form)時將作許多的修改(基至整個重新開發),所以我們在設計此jBrick時,將設計一個統一的介面以使用後在Web Form和Win Form之間切換時,只需重新設計畫面,而Business Flow和Server Code的部份均可延用即有的程式。

4.Business Flow的部份運用了Workflow Engine的架構,使開發者可以配合企業內部流程的改變而快速修改流程以符合企業的需求。

5.由於企業內部常會存在著許多的系統,因為會有異質資料庫存在(除非有透過EAI或是DataMart來將資料整合在同一資料庫),而系統往往會存取到不同的資料庫,因此我們會利用Data Model來同時間存取異質資料庫。

平台運用範例
1.Swing的範例畫面







2.JSP的範例畫面