ofbiz的架構設計

來源:互聯網
上載者:User
1.資料層在資料層中,OFBIZ使用ENTITY ENGINE作為其工具,並且能夠滿足99%與資料庫互動的功能.有時在某些地方Entity Engine並不是有效.這時就需要編寫自訂的JDBC代碼來與資料庫互動.2.邏輯層OFBIZ 使用Service Engine作為調用邏輯的工具.幾乎所有的商務邏輯都被實現成服務,以便提高重用和使基於組件的開發更便利.我們可以同步或者非同步呼叫我們的邏輯,甚至 將它們作為一個計劃表來按時間調用.當我們調用一個服務時,我們不需要知道該服務的位置或者如何?.這也就意味著我們可以使用多種語言來實現該服務.例 如Java,BeanShell以及任何BSF編譯指令碼語言(python,jacl,javascript等等)我們會一直通過Service Engine調用遠端邏輯,可以通過不同機制包括HTTP,SOAP,JMS或者其他的機制,也可以通過建立一個簡單的適配器來作為調用遠端服務的調用機制.很明顯,我們大多數時間需要在一個事務裡封裝一些服務,以便服務能夠全部成功或者全部失敗.3.顯示層經常分離輸入處理邏輯,瀏覽資料預備層以及瀏覽顯示模板.這樣不僅能夠在WEB程式中重用邏輯,而且也獨立於胖用戶端程式.1)資料處理邏輯數 據處理邏輯在controller.xml檔案應該與請求(request)聯絡,而不是與視圖聯絡.資料處理邏輯總的來講被實現為一個服務,並且通過服 務事件控制代碼調用,服務事件控制代碼會自動從請求參數(request parameters)或者屬性中抽取資料,並將它從字串類型轉化成在服務定義檔所定義的物件類型.有一些情況是資料處理邏輯不能實現為服務 的.存在多種與請求關聯的邏輯的其他類型事件控制代碼,這些控制代碼給你更多的請求上下文,但象服務那樣不是環境未知的. 其中一個例子是接收上傳資料.另一個好的例子是作一些特殊的前置處理和在傳給服務處理之前的參數驗證.注意到你可以從這些自訂事件中調用服務.2)瀏覽資料預備邏輯瀏覽資料預備邏輯應該與視圖模板聯絡起來.這個應該通過JPublish在頁面定義XML檔案定義動作來實現.當一個頁面被分割為多個模板,資料預備動作應該只和它為之準備資料的獨立的小模板聯絡.這樣使得移除模板和內容切片更容易,並且能夠在很多頁面中重用它們.瀏 覽資料預備邏輯應該使用動態指令碼語言,例如JAVASCRIPT,BeanShell,jython或者Jacl來實現.這樣就更容易修改在表面修改使用者 介面.一般資料接收應該實現成服務,這樣可以從這些動態動作指令碼調用.這樣在多個頁面和其他類型的使用者介面裡共用和重用功能模組.注意到當使用 JSP作為視圖模板時,你不能使用JPublish,所以動作特效不能提供.我們對JSP的建議時在每個頁面的上端使用單個 scriptlet準備資料.在這種情況下,嘗試調用工作者服務(worker service)或者工作者的java方法來 盡量可能多地將邏輯排除在頁面之外.3)視圖顯示模板FreeMarker是我 們為HTML和其他文本產生推薦的最佳模板引擎.它象Velocity,但更靈活並且更好地與OFBIZ 核心架構工具搭配.除了直接使用FreeMarker的模板以外,我們強烈推薦使用JPublish,這樣動作可以與頁面和模板聯絡起來,頁面可以被普通 模板渲染.視圖顯示模板應該儘可能保持簡單;通用內容例如headers,footers,sidebars等等應該即時通過渲染模式添加.被用 來渲染每個頁面的模板檔案在JPublish定義XML檔案中定義.當你希望像視圖一樣顯示報告,我們推薦使用JASPERREPORTS或者 Datavision,在 controller.xml檔案裡通過視圖映射(view-map)裝上這些報告.如果你希望使用其他文本產生工具例如Velocity或者XSLT, 我們推薦你通過JPublish做這項工作,特別是你想它能夠被渲染或者擁有動作來為這些模板提供資料.如果你使用能夠經常重複的UI模式,例如 forms,請求資料顯示,TAB或者menu bars,expanding tree views.我們現在推薦使用一個XML檔案來描述該UI模式,然後使用XSLT轉化成FreeMarker 模板,該模板可以合并最終模板和內容相關的資料.注意到所推薦的會經常改變並重新定義,這也就說明了不同的方法存在多種解決方案.當使用 FreeMarker是不可能或者不切實際時,我們推薦使用其他動態範本語言例如Velocity,如果這也是不切實際,那麼我們則推薦JSP.但是當我 們是使用JSP時我們不能利用動作或者渲染模板的優點,因為你不能通過JPublish執行它.即使你不能使用渲染模式,你可以與OFbiz Region架構一起使用複合檢視模式.Regions在Regions.xml檔案裡定義.注意到這些Regions並不和Jpublish複合檢視那 樣好用,並且它們不支援動作.但是Regions架構確實提供了很多靈活性,並且在很多情況下非常有用. 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.