當前位置:編程學習大全網 - 源碼下載 - 手機by平臺是什麽?外那裏下

手機by平臺是什麽?外那裏下

BysArchitecture平臺簡介

1 設計目標

基於J2EE平臺、采用面向組件技術實現企業級應用開發、運行、管理、監控、維護的中間件平臺,借鑒SSH(Struts、Spring、Hibernate)的MVC架構,常用功能組件化,前端開發支持jsp、AJax以及目前流行的Flex,實現展示界面和人機完美交互,不僅要滿足復雜業務、工作流、WEB報表、業務基礎的開發需求,而且盡可能地提升軟件開發效率。

根據用戶的角色Role(崗位)控制對系統功能的訪問,不同角色擁有不同的功能訪問權,由管理員分配各個角色允許操作的功能列表;

根據用戶的組Group(部門)控制對系統資源的訪問權利。系統資源是指文件、目錄、數據表單;Owner可以對系統資源訪問權分配給不同的用戶組;

訪問日誌。用戶每次對系統訪問、對資源訪問,即用戶名、訪問時間、IP地址、訪問的功能(URL)、訪問的資源(File)等均記錄;對出錯和錯誤信息詳細記錄;

實現多格式數據導入導出Upload/Export機制,即可以導出Excel,PDF,RTF,Html,並可根據Excel模板導入元數據到數據庫中,實現批量數據更新;

系統自動根據設定的規則(例如運費數據將過期),判斷信息是否應該報警、提示,業務處理的結果反饋到相關人等.

英語、中文的雙語言支持;

2 技術方案

總體上,采用MVC設計思想的多層技術架構實現,分為Oracle數據庫、開放源代碼Hibernate數據對象訪問層(model)、開放源代碼Spring技術的事務控制與系統服務管理層(services)、開放源代碼Struts控制器層(controller),並利用Servlet Filter進行訪問控制與內容過濾層(Filter),在此之上,就是Html+Flex的頁面表現層(View)。

HTML+Flex表現層提交的請求,需要經過Servlet Filter的攔截,

1)驗證訪問合法性;

2)同時檢驗並轉換頁面數據為I18N國際化編碼等等。

HTML+Flex表現層提交的請求,需要經過Servlet Filter處理後,交給Struts控制器層的ActionServlet進行頁面流轉控制,並對請求、響應進行邏輯處理。處理過程中,壹般會調用Spring事務控制與服務管理層的API。

在Spring事務控制與服務管理層,控制系統訪問的事務完整性和數據壹致性,執行特定的業務邏輯和數據處理,並獲得處理結果,需要時將結果反饋給調用者(Servlet/HTML),以便響應回傳信息給用戶。此時的數據處理時,將調用Hibernate數據對象訪問層數據對象,實現Oracle數據庫的數據更新和查詢。

各層次協同工作/互相調用示意圖如下:

除了對上述技術架構進行封裝、制定開發規範外,還開發Upload/Download、Email、Schedule、Portal等組件,以便滿足本系統的功能和技術要求:

BysArchitecture平臺內置了portal menu 管理組件、Email組件,和Upload/Download文件組件;在services層,組織機構、帳戶、權限、工作流、定時器timer和Schedule組件,這些組件無需開發,可隨時調用和直接使用。

3 關鍵技術實現

3.1 基於角色的系統操作功能權限控制

系統有多個組功能,每個形成壹個界面菜單項;每個組中劃分為小組,形成功能目錄樹上的壹個文件夾節點;每個小組中,包含多個操作功能點。

系統中每個角色相當於現實組織中的壹種崗位,壹個用戶可能擁有多個崗位,在系統中就應該分配給他多個“角色role”;這樣,系統中的用戶擁有多個角色,每個角色被賦予壹組可操作功能列表,因此,各個用戶都能得到自己可操作的功能列表,他能夠且只能夠訪問已經分配他的擁有角色的那些功能。

3.2 基於內容過濾的資源訪問權限控制

基於內容過濾得資源訪問權控制機制,首先劃分用戶身份為Owner、Group和Other。建立文件夾、文件的用戶自動設定為這個資源的“Owner”,Owner擁有初始的資源訪問權限分配的權利;

Owner可以為他自己、他所在的帳戶組所有成員和其他用戶分別地分配“讀”、“寫”、“執行”的權利(r/w/e)。

因此,對於壹個文件或數據表單,總是附加壹個訪問控制屬性值字段,不同組合值代表不同身份(Owner/group/other)的不同權利(r/w/e)。例如,form01的權限屬性值為“0620”,就是意味著:1)owner對form01有讀寫(0400+0200)權利,owner所在組(group)對form01有寫(0020)權利,而其他用戶(other)對form01則沒有任何權利(0400是owner讀+0200是owner寫+0020是所在組可寫+0000是其他用戶無權訪問=0620)。

這是非常成熟的Unix操作系統的權限控制機制,維護權限非常簡單而有效。

基於內容過濾的權限屬性設定及說明表:

某類用戶 屬性值 結果

用戶 0400 允許所有者讀。

0200 允許所有者寫。

0100 對於文件,允許所有者執行,對於目錄,允許所有者在該目錄中進行搜索。

組 0040 允許組成員讀。

0020 允許組成員寫。

0010 對於文件,允許組成員執行,對於目錄,允許組成員在該目錄中進行搜索。

其他用戶 0004 允許其他用戶讀。

0002 允許其他用戶寫。

0001 對於文件,允許其他用戶執行,對於目錄,允許其他用戶在該目錄中進行搜索。

例如,要為其他用戶設置讀和寫權限,可以將 0004 加上 0002 以產生 0006。對於用戶和組,可以進行類似的操作,可以將三個總數加在壹起,以產生完全限定的數值模式。

讀:查詢、導出;

寫:創建、更新、刪除、導入;

執行:後臺運算。

3.3 對日誌的良好支持

采用Spring AOP技術進行細粒度的日誌記錄. 本系統主要體現在登陸日誌,運費錄入日誌,運費查詢使用率等功能中.

此外,通過Servlet Filter可以使得用戶每次對系統訪問、對資源訪問,即用戶名、訪問時間、IP地址、訪問的功能(URL)、訪問的資源(File)等均記錄,無壹例外,同時又不用為每個功能模塊分別開發日誌功能而是統壹進行日誌管理,以及對出錯和錯誤信息詳細記錄;

3.4 身份認證體系

不管String對象(口令/session ID),還是流化的指紋、數字證書文件流對象,都抽象成Object對象,在技術架構的Filter過濾器中,以Object對象和對象類型作為參數,傳遞給“身份鑒別”組件,驗明身份,並將結果返回給Filter過濾器;

Object對象在“身份鑒別”組件中,根據對象類型的不同,調用不同的方法進行驗證;對於沒通過驗證的訪問,返回出錯頁面或提示信息頁面到瀏覽器;通過驗證,下傳到ActionServlet進行進壹步處理。

因此,對身份鑒別技術實現的抽象,使得系統具備諸如用戶口令、數字證書、時間戳、指紋等各類對象類型的身份鑒別能力。

3.5 Upload/Export機制

采用著名開源組織Apache提供的FileUpload組件實現文件上載,並使用業內先進的開源項目JasperReport 可實現多格式數據導出,Excel,PDF,RTF,Html等。

3.6 預警、提醒、回饋機制

系統自動根據設定的規則(例如運費數據將過期),判斷信息是否應該報警、提示,業務處理的結果反饋到相關人等.

設計警示類、警示接口類,業務類實現接口,調用接口方法將消息對象傳給警示類,有警示類依據具體情況處理和對送給用戶等等。

定時器與任務調度組件可以支持在系統中設定預警、報警的後臺程序運行時間間隔,如每分鐘、每日某時、每月某日某時、每年某月某日某時等運行,以便檢查是否具備預警、報警界限。可以通過Email、SMS和彈出窗口報警。當然,也可以集成MSN報警。

3.7 事務控制技術實現

對於跨系統的訪問,采用異步問答式的直接調用進行,根據返回結果,進行相應的邏輯處理和可靠性處理,不進行跨系統的事務性封裝;

本地數據庫訪問的事務管理利用hibernate支持的基於JDBC的事務管理技術。

3.8 國際化多語技術實現

在Flex和JAVA都支持國際化編碼和國際化資源配置,都可以設定locale屬性集,在運行時加載語言屬性,實現英文和漢語的雙語界面。

4領先技術介紹

4.1 Flex

自從B/S架構迅速流行開來之後,我們就壹直面臨著這樣壹個問題:如何做到當初C/S那樣的表示層精確控制以及良好的用戶體驗?RIA(Rich Internet Applications)應運而生。

RIA意味著什麽?

不同凡響的Web功能

更少的維護成本

更少的學習成本

更好的用戶體驗

更強大的用戶界面

更好的交互性

更先進的開發模型

更強大的多媒體功能

更好的數據管理

更好的程序控制

4.1.1優勢

直觀的講,用戶最能明顯體會到的如下:

交互性更強,界面用戶感官與傳統網站相比,他幾乎可視為是壹個聲光影的多媒體交互環境。

技術的實現機制,減少服務器負載,區別於對服務器改良優化,是平臺級性能的提升方案。

數據傳輸中客戶掉線,上線資料仍然在 ,這點類似於web?2.0技術規範的某些優點。

首次訪問flex網站,速度比傳統網站略慢,但是如果網站是多次反復訪問的,那麽下壹次訪問的速度絕對快於傳統網站,因為用戶非數據更新的體驗部分都已經下載到本地客戶端。

4.1.2 Flex的商業案例

Nasdaq股票市場

SAP Spend Analytics

HP Print Studio

Google Searchmash

招行網銀財務分析

Yahoo Map System

2008奧運聖火到我家-搜狐奧運

AOL、eBay、PayPal、Business Objects、SAP

4.2 JasperReport

JasperReports是壹個強力的報表產生工具,他有能力描述豐富內容到屏幕上、到打印機或到PDF, EXCEL,HTML, XLS, CSV和XML文件。

完全用Java編寫的,並可在各種Java應用(包括J2EE或WEB應用)中用來產生動態內容。它的主要目的是以壹種簡單而靈活的方式來幫助創建導向的頁面。

JasperReports組織根據在壹個XML文件中定義的報表設計通過JDBC來接受來自壹個關系數據庫中的數據. 為了以數據來填充報表,報表設計必須首先被編譯。事實上,報表設計的編譯意指描述報表設計的XML文件中定義的所有Java表達式的編譯。為了檢查報表設計的壹致性,在編譯時做各種檢驗。結果被準備用來填充報表設計,然後被用來以不同的數據集來產生文檔

JasperReports是壹個經過多年檢驗的穩定、高性能、兼容多種導出文件格式的系統(PDF, EXCEL,HTML, XLS, CSV和XML文件),並可以嵌入到java程序中,成為妳編寫系統的壹個內嵌穩定的組件.

4.3 Apache FileUpload

著名開源組織Apache發布的FileUpload組件技術可以實現壹個或多個文件的上傳,也可以接收普通的form表單數據。

能夠通過streaming技術將上傳文件的進度信息反饋給調用者,使用戶可以監控到上傳文件的進度,並將發生問題的原因予以反饋,非常友好;

經過多年世界各地無數系統的應用檢驗與完善,已經成為壹個成熟、穩定、高性能的組件。它能設定上傳文件大小限制,還能通過streaming技術優化上傳文件的傳輸速度和性能;

Flex和Apache FileUpload相結合使用,用戶可以通過瀏覽器flash界面明確地看到上傳速度和可能發生的任何問題。

  • 上一篇:什麽是配送系統
  • 下一篇:編寫單片機串口收發數據的完整程序(C語言編寫)
  • copyright 2024編程學習大全網