以前有人說OA軟件的技術(shù)含量比較低,所以競爭很混亂,確實有點道理,但現(xiàn)在有實力的OA廠商們越來越注重對先進(jìn)技術(shù)的使用,逐漸提升了自己的產(chǎn)品實力,拉開了與競爭者之間的差距。 本文將從發(fā)展的角度探討近年來應(yīng)用在
OA軟件上的一系列熱門技術(shù),這些技術(shù)對用戶的使用將發(fā)揮重要價值。
MVC(Model/View/Controller)架構(gòu)并不是一種新興技術(shù)或者新興思想,它是Xerox PARC在八十年代為編程語言Smalltalk-80發(fā)明的一種軟件設(shè)計模式,最近幾年被推薦為Sun公司J2EE平臺的設(shè)計模式,并且受到越來越多的使用,在國內(nèi),尤其是OA軟件領(lǐng)域也得到了充分的應(yīng)用。
先簡要介紹一下MVC架構(gòu)的內(nèi)容和工作過程:
1、模型(Model): 模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù),或者業(yè)務(wù)邏輯。在MVC的三個部件中,模型擁有最多的處理任務(wù)。例如它可能用象EJBs和ColdFusion Components這樣的構(gòu)件對象來處理數(shù)據(jù)庫。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個模型能為多個視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個視圖重用,所以減少了代碼的重復(fù)性。
2、視圖(View): 視圖是應(yīng)用程序中用戶界面相關(guān)的部分,是用戶看到并與之交互的界面。如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。MVC一個大的好處是它能為你的應(yīng)用程序處理很多不同的視圖。在視圖中其實沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲的還是一個雇員列表,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式。
3、控制器(controller): 控制器工作就是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示和更新model對象狀態(tài)??刂破鹘邮苡脩舻妮斎氩⒄{(diào)用模型和視圖去完成用戶的需求。所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時,控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個模型構(gòu)件去處理請求,然后用確定用哪個視圖來顯示模型處理返回的數(shù)據(jù)。
簡單來說MVC的工作過程,首先控制器接收用戶的請求,并決定應(yīng)該調(diào)用哪個模型來進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來處理用戶的請求并返回數(shù)據(jù),最后控 制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過表示層呈現(xiàn)給用戶。
通過實例來看看MVC架構(gòu)的好處:
華天軟件作為一個注重技術(shù)優(yōu)勢的公司,是國內(nèi)最早采用MVC架構(gòu)的OA廠商之一,通過在其網(wǎng)站上(
m.floridaadministrativecode.com)公布的DEMO版本,我們可以看出采用該體系結(jié)構(gòu)的最大的好處是:數(shù)據(jù)與控制層與界面相互分離。
1、這是最重要的,多個視圖能共享一個模型,現(xiàn)在需要用越來越多的方式來訪問你的應(yīng)用程序。對此,一個好的辦法就是使用MVC,無論用戶想要Flash界面或是 WAP 界面,用一個模型就能處理它們。由于已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,所以你可以最大化的重用你的代碼了,這就大大提升了對用戶個性化需求的響應(yīng)速度。 華天OA系統(tǒng)比傳統(tǒng)的MVC更進(jìn)一步,界面層沒有一行程序代碼。不象傳統(tǒng)的JAVA程序,前端是JSP,后端是Java Bean。實現(xiàn)了界面層與控制層的完全分離,用戶即使不懂程序開發(fā)也能更改界面。華天
OA系統(tǒng)前端沒有一行JAVA和JSP代碼,是純HTML和文本文件。所以,界面的改動將異常簡單。他們在自己的方案里面承諾:換掉所有的界面,僅需要10天。
2、因為模型是自包含的,并且與控制器和視圖相分離,所以很容易改變你的應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則。比如你想把你的數(shù)據(jù)庫從MySQL移植到Oracle,或者改變你的基于RDBMS數(shù)據(jù)源到LDAP,只需改變你的模型即可。由于運用MVC的應(yīng)用程序的三個部件是相互對立,改變其中一個不會影響其它兩個,所以依據(jù)這種設(shè)計思想能構(gòu)造良好的松偶合的構(gòu)件。
在華天OA的數(shù)據(jù)層,可通過中間件進(jìn)行溝通,這樣不需要書寫任何一行代碼,通過簡單的類與數(shù)據(jù)庫表的映射實現(xiàn)數(shù)據(jù)庫表的增刪改。整個程序中沒有一條SQL語句,不修改代碼就可實現(xiàn)自動切換到各種數(shù)據(jù)庫類型(如MySQL/SQLSERVER/ORACLE)。
3、可以使用控制器來聯(lián)接不同的模型和視圖去完成用戶的需求,這樣控制器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段,這樣能夠極大的提升開發(fā)效率,并且保證系統(tǒng)的穩(wěn)定性。
4、通過標(biāo)簽定義實現(xiàn)與業(yè)務(wù)層的連接。在HTML頁面中,沒有一行程序代碼,只有標(biāo)簽定義。如果頁面需要變更,只須更改標(biāo)簽與業(yè)務(wù)層的連接關(guān)系。
5、內(nèi)部通過獨立的子工程管理,這樣既能保證各個子工程的系統(tǒng)獨立性,又能確保對系統(tǒng)的整體管理。
6、通過頁面與程序的分離,實現(xiàn)了多語言和多風(fēng)格的不同展示系統(tǒng)。