第一篇:用友UAP打造全周期開發(fā)平臺 實(shí)現(xiàn)敏捷開發(fā)
用友UAP打造全周期開發(fā)平臺 實(shí)現(xiàn)敏捷開發(fā)
為了解開用友UAP平臺的面紗,了解更多平臺技術(shù),5月28日記者來到用友軟件園,采訪了用友集團(tuán)UAP中心的兩位專家,重點(diǎn)介紹了用友UAP的平臺產(chǎn)品之一——開發(fā)平臺所包含的組件及其特性,詳細(xì)講解了開發(fā)平臺如何使得敏捷開發(fā)成為可能。
用友UAP平臺誕生背景
中國軟件行業(yè)正在經(jīng)歷第三次轉(zhuǎn)型的陣痛,用友UAP伴隨NC產(chǎn)品誕生,隨著業(yè)務(wù)復(fù)雜度的提升,對頁面交互、頁面數(shù)據(jù)處理能力都提出了新的要求,這促使全新的用友UAP開發(fā)平臺誕生。
用友UAP開發(fā)平臺從不同類型的軟件開發(fā)過程中,研究、分析、總結(jié)和提煉了大量的設(shè)計工具、開發(fā)工具、應(yīng)用開發(fā)框架、中間件、基礎(chǔ)技術(shù)類庫以及研發(fā)模式等成果,并提供了一個集成的軟件開發(fā)環(huán)境。
用友集團(tuán)UAP中心Java應(yīng)用平臺開發(fā)部經(jīng)理劉昆鵬表示,用友公司“平臺化發(fā)展 產(chǎn)業(yè)鏈共贏”的策略,對如何有效利用和擴(kuò)展研發(fā)成果,并在不同研發(fā)層次進(jìn)行獨(dú)立的資產(chǎn)管理和發(fā)展提出了要求。另一方面,隨著軟件工程的不斷推進(jìn),整個開發(fā)過程的各個環(huán)節(jié)更加精細(xì)化,管理人員、需求人員、設(shè)計人員、開發(fā)測試等各開發(fā)人員都需要協(xié)同工作。所以將在開發(fā)過程中所產(chǎn)生的最佳實(shí)踐達(dá)到有效的積累,也是開發(fā)平臺要解決的問題。
用友集團(tuán)UAP中心Java應(yīng)用平臺開發(fā)部經(jīng)理 劉昆鵬
UAP開發(fā)平臺的核心優(yōu)勢
用友集團(tuán)UAP中心技術(shù)支持部總經(jīng)理彭立東介紹,該平臺包括了覆蓋軟件全生命周期的需求分析、設(shè)計、開發(fā)、測試、構(gòu)造、發(fā)布、運(yùn)行及維護(hù)等各階段所需的工具。基于用友UAP開發(fā)平臺能夠大幅度提升軟件的開發(fā)效率、穩(wěn)定性、可集成性及可維護(hù)性,降低軟件實(shí)現(xiàn)的技術(shù)難度以及開發(fā)成本。
用友集團(tuán)UAP中心技術(shù)支持部總經(jīng)理 彭立東
用友UAP開發(fā)平臺由可視化集成開發(fā)環(huán)境、應(yīng)用開發(fā)框架、公共服務(wù)以及基礎(chǔ)技術(shù)類庫/中間件幾個部分組成,同時從開發(fā)過程角度提供了軟件配置管理與研發(fā)管理功能??梢暬砷_發(fā)環(huán)境UAP Studio支持業(yè)務(wù)建模、分析、設(shè)計、開發(fā)、測試、組裝、發(fā)布等開發(fā)過程的全生命周期管理,提供各種管理工具、設(shè)計器、監(jiān)控工具,以及軟件配置管理系統(tǒng)。采用模型驅(qū)動開發(fā)的方式,通過上一階段的輸出與下一階段的輸入結(jié)合,利用可視化設(shè)計器將開發(fā)過程串接起來,大大降低開發(fā)難度,降低各階段的鴻溝和不一致性。
用友UAP開發(fā)平臺的“靈魂”
隨后,彭立東先生向記者重點(diǎn)介紹了開發(fā)平臺的“靈魂”——元數(shù)據(jù)。元數(shù)據(jù)框架支持訪問服務(wù)、開發(fā)服務(wù)、管理服務(wù),支持建模開發(fā)工具整合與適配其他系統(tǒng)模型數(shù)據(jù),并提供統(tǒng)一的查詢服務(wù),使得平臺上的開發(fā)者只需要關(guān)注業(yè)務(wù)邏輯,實(shí)現(xiàn)了業(yè)務(wù)與技術(shù)的分離。
開發(fā)平臺的實(shí)體設(shè)計器包含多種建模元素和實(shí)體元素,可以可視化的方式創(chuàng)建面向?qū)ο蟮膶?shí)體組件,可通過配置代碼模板,自動產(chǎn)生可以直接運(yùn)行的業(yè)務(wù)實(shí)體源代碼。
業(yè)務(wù)與技術(shù)相分離
用友UAP開發(fā)平臺的應(yīng)用開發(fā)框架是基于企業(yè)建模理論的,將應(yīng)用軟件的業(yè)務(wù)邏輯和開發(fā)技術(shù)相分離,是應(yīng)用軟件開發(fā)者可以僅僅關(guān)注應(yīng)用的業(yè)務(wù)邏輯,而不必關(guān)注繁瑣的技術(shù)實(shí)現(xiàn),使得管理層與業(yè)務(wù)人員參與應(yīng)用軟件的開發(fā)成為可能。大大縮短研發(fā)周期、提高研發(fā)效率、加快應(yīng)用開發(fā)速度、減少企業(yè)信息系統(tǒng)開發(fā)的風(fēng)險,并保證應(yīng)用開發(fā)軟件的質(zhì)量,實(shí)現(xiàn)最終用戶的個性化的需求。
除了支持開發(fā)WEB應(yīng)用等常見的應(yīng)用類型外,還支持開發(fā)跨平臺移動應(yīng)用。用友UAP移動應(yīng)用框架提供了數(shù)據(jù)處理、應(yīng)用適配器等功能,提供移動應(yīng)用商店,開發(fā)者可以在上面發(fā)布自己的移動應(yīng)用產(chǎn)品。
用友UAP平臺產(chǎn)品的問世,能夠支持我國大型企業(yè)及公共組織更好的實(shí)現(xiàn)IT及軟件系統(tǒng)的運(yùn)營與運(yùn)維,提升管理績效,并幫助客戶參與全球化競爭。其開發(fā)平臺將開發(fā)的全過程做為資產(chǎn)管理起來,大量的原數(shù)據(jù)模型和可視化界面大大降低開發(fā)的難度,實(shí)現(xiàn)了敏捷開發(fā)。
第二篇:微信公共服務(wù)平臺開發(fā)(.Net 的實(shí)現(xiàn))1
C#開發(fā)微信公眾平臺-就這么簡單(附Demo)最近公司在做微信開發(fā),其實(shí)就是接口開發(fā),網(wǎng)上找了很多資料,當(dāng)然園友也寫了很多教程,但都是理論說了一大堆,實(shí)用指導(dǎo)或代碼很少。如果你自己仔細(xì)研究下,其實(shí)就那么點(diǎn)東西,C#實(shí)現(xiàn)起來也很簡單,原本不想寫這篇文章的,但是本人當(dāng)時摸索走了很多彎路,這邊總結(jié)下,希望初次接觸微信公眾平臺的朋友別像當(dāng)時的我一樣。
自己動手,豐衣足食。服務(wù)號和訂閱號
服務(wù)號是公司申請的微信公共賬號,訂閱號是個人申請的,我個人也申請了一個,不過沒怎么用。
服務(wù)號
1.1個月(30天)內(nèi)僅可以發(fā)送1條群發(fā)消息。
2.發(fā)給訂閱用戶(粉絲)的消息,會顯示在對方的聊天列表中。3.在發(fā)送消息給用戶時,用戶將收到即時的消息提醒。4.服務(wù)號會在訂閱用戶(粉絲)的通訊錄中。5.可申請自定義菜單。訂閱號
1.每天(24小時內(nèi))可以發(fā)送1條群發(fā)消息。
2.發(fā)給訂閱用戶(粉絲)的消息,將會顯示在對方的訂閱號文件夾中。3.在發(fā)送消息給訂閱用戶(粉絲)時,訂閱用戶不會收到即時消息提醒。4.在訂閱用戶(粉絲)的通訊錄中,訂閱號將被放入訂閱號文件夾中。5.訂閱號不支持申請自定義菜單。URL配置
啟用開發(fā)模式需要先成為開發(fā)者,而且編輯模式和開發(fā)模式只能選擇一個,進(jìn)入微信公眾平臺-開發(fā)模式,如下:
需要填寫url和token,當(dāng)時本人填寫這個的時候花了好久,我本以為填寫個服務(wù)器的url就可以了(80端口),但是不行,主要是沒有仔細(xì)的閱讀提示信息,所以總是提示
從上面可以看出,點(diǎn)擊提交后微信會向我們填寫的服務(wù)器發(fā)送幾個參數(shù),然后需要原樣返回出來,所以在提交url的時候,先在服務(wù)器創(chuàng)建接口測試返回echostr參數(shù)內(nèi)容。代碼:
1.//成為開發(fā)者url測試,返回echoStr
2.public void InterfaceTest()3.{
4.string token = “填寫的token”;5.if(string.IsNullOrEmpty(token))6.{
7.return;8.} 9.10.string echoString = HttpContext.Current.Request.QueryString[“echoStr”];
11.string signature = HttpContext.Current.Request.QueryString[“signature”];
12.string timestamp = HttpContext.Current.Request.QueryString[“timestamp”];
13.string nonce = HttpContext.Current.Request.QueryString[“nonce”];14.15.if(!string.IsNullOrEmpty(echoString))16.{
17.HttpContext.Current.Response.Write(echoString);18.HttpContext.Current.Response.End();19.} 20.}
在一般處理程序ashx的ProcessRequest的方法內(nèi)調(diào)用上面的方法,url填寫的就是這個ashx的服務(wù)器地址,token是一個服務(wù)器標(biāo)示,可以隨便輸入,代碼中的token要和申請?zhí)顚懙囊恢?,成為開發(fā)者才能做開發(fā)。
創(chuàng)建菜單
我們添加一些微信服務(wù)號,聊天窗口下面有些菜單,這個可以在編輯模式簡單配置,也可以在開發(fā)模式代碼配置。微信公眾平臺開發(fā)者文檔:http://mp.weixin.qq.com/wiki/index.php?title=自定義菜單創(chuàng)建接口,可以看到創(chuàng)建菜單的一些要點(diǎn),下面的使用網(wǎng)頁調(diào)試工具調(diào)試該接口,只是調(diào)試接口是否可用,并不是直接創(chuàng)建菜單的,菜單分為兩種:
? click: 用戶點(diǎn)擊click類型按鈕后,微信服務(wù)器會通過消息接口推送消息類型為event 的結(jié)構(gòu)給開發(fā)者(參考消息接口指南),并且?guī)习粹o中開發(fā)者填寫的key值,開發(fā)者可以通過自定義的key值與用戶進(jìn)行交互。
? view: 用戶點(diǎn)擊view類型按鈕后,微信客戶端將會打開開發(fā)者在按鈕中填寫的url值(即網(wǎng)頁鏈接),達(dá)到打開網(wǎng)頁的目的,建議與網(wǎng)頁授權(quán)獲取用戶基本信息接口結(jié)合,獲得用戶的登入個人信息。
click菜單需要填一個key,這個是在我們菜單點(diǎn)擊事件的時候會用到,view只是一個菜單超鏈接。菜單數(shù)據(jù)是json格式,官網(wǎng)是php示例,其實(shí)C#實(shí)現(xiàn)起來也很簡單,就是post發(fā)送一個json數(shù)據(jù),示例代碼:
1.public partial class createMenu : System.Web.UI.Page 2.{
3.protected void Page_Load(object sender, EventArgs e)4.{
5.FileStream fs1 = new FileStream(Server.MapPath(“.”)+“menu.txt”, FileMode.Open);
6.StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding(“GBK”));
7.string menu = sr.ReadToEnd();8.sr.Close();9.fs1.Close();
10.GetPage(“https://api.weixin.qq.com/cgi-bin/menu/create?access_token=access_token”, menu);11.}
12.public string GetPage(string posturl, string postData)13.{
14.Stream outstream = null;15.Stream instream = null;16.StreamReader sr = null;
17.HttpWebResponse response = null;18.HttpWebRequest request = null;19.Encoding encoding = Encoding.UTF8;
20.byte[] data = encoding.GetBytes(postData);21.// 準(zhǔn)備請求...22.try
23.{
24.// 設(shè)置參數(shù)
25.request = WebRequest.Create(posturl)as HttpWebRequest;
26.CookieContainer cookieContainer = new CookieContainer();
27.request.CookieContainer = cookieContainer;28.request.AllowAutoRedirect = true;29.request.Method = “POST”;
30.request.ContentType = “application/x-)代碼
31.string content = sr.ReadToEnd();32.string err = string.Empty;33.Response.Write(content);34.return content;35.}
36.catch(Exception ex)37.{
38.string err = ex.Message;39.return string.Empty;40.} 41.} 42.}
access_token獲取方式上面已經(jīng)講過了,查詢菜單返回的是json數(shù)據(jù),其實(shí)就是我們創(chuàng)建菜單的menu.txt里面的內(nèi)容。刪除成功返回信息提示:{”errcode“:0,”errmsg“:”ok“},這個也只要在本地運(yùn)行就可以了。
接受消息
微信公眾平臺開發(fā)者文檔:http://mp.weixin.qq.com/wiki/index.php?title=接收普通消息,我們使用微信就是要對用戶發(fā)送的信息進(jìn)行處理,這邊以接受普通消息為例,語音、圖片消息等,舉一反三可得。
從文檔上可以看出接受消息獲得的是一個xml格式文件,當(dāng)時有點(diǎn)犯傻的是,我要在哪邊進(jìn)行接受消息???還郁悶了半天,其實(shí)就是你一開始填寫的url,是不是很汗顏啊,哈哈。
1.
2.
3.
4.
5.
6.
7.
8.
我們在ashx添加下面代碼:
1.public void ProcessRequest(HttpContext param_context)2.{
3.string postString = string.Empty;
4.if(HttpContext.Current.Request.HttpMethod.ToUpper()== ”POST“)
5.{
6.using(Stream stream = HttpContext.Current.Request.InputStream)
7.{
8.Byte[] postBytes = new Byte[stream.Length];9.stream.Read(postBytes, 0,(Int32)stream.Length);
10.postString = Encoding.UTF8.GetString(postBytes);
11.Handle(postString);12.} 13.} 14.} 15.16.///
18.///
19.private void Handle(string postStr)20.{
21.messageHelp help = new messageHelp();
22.string responseContent = help.ReturnMessage(postStr);23.24.HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;
25.HttpContext.Current.Response.Write(responseContent);26.}
messageHelp是消息處理幫助類,這邊提供下部分代碼,完整的可以下載來,獲取的postString是xml,格式如上,我們這邊只需要轉(zhuǎn)換成XmlDocument進(jìn)行解析就行了:
1.//接受文本消息
2.public string TextHandle(XmlDocument xmldoc)3.{
4.string responseContent = ”“;
5.XmlNode ToUserName = xmldoc.SelectSingleNode(”/xml/ToUserName“);
6.XmlNode FromUserName = xmldoc.SelectSingleNode(”/xml/FromUserName“);
7.XmlNode Content = xmldoc.SelectSingleNode(”/xml/Content“);
8.if(Content!= null)9.{
10.responseContent = string.Format(ReplyType.Message_Text,11.FromUserName.InnerText, 12.ToUserName.InnerText, 13.DateTime.Now.Ticks,14.”歡迎使用微信公共賬號,您輸入的內(nèi)容為:“ + Content.InnerText+”rn點(diǎn)擊進(jìn)入“);15.}
16.return responseContent;17.}
18.///
19./// 普通文本消息
20.///
21.public static string Message_Text 22.{
23.get { return @”
25.
26.
27.
上面的代碼就是接受消息,并做一些處理操作,返回消息。發(fā)送消息(圖文、菜單事件響應(yīng))
這邊發(fā)送消息我分為三種:普通消息、圖文消息和菜單事件響應(yīng)。普通消息其實(shí)上面說接受消息的時候講到了,完整的代碼下邊下載來看。
我們先看下圖文消息和菜單事件響應(yīng),微信公眾平臺開發(fā)者文檔:http://mp.weixin.qq.com/wiki/index.php?title=回復(fù)圖文消息#.E5.9B.9E.E5.A4.8D.E5.9B.BE.E6.96.87.E6.B6.88.E6.81.AF,xml格式為:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21. 圖文消息分為兩種,我們先看下效果,找的圓通速遞的微信服務(wù)號做示例:
剛開始做的時候,我以為這兩種應(yīng)該不是用的同一個接口,但是在文檔中找了半天也沒有找到除這個之外的,就試了下兩個圖文消息,發(fā)現(xiàn)就是這個接口發(fā)送的,如果多個的話,item中的Description會失效,只會顯示Title,大家試下就知道了,示例代碼:
1.//事件
2.public string EventHandle(XmlDocument xmldoc)3.{
4.string responseContent = ”“;
5.XmlNode Event = xmldoc.SelectSingleNode(”/xml/Event“);6.XmlNode EventKey = xmldoc.SelectSingleNode(”/xml/EventKey“);
7.XmlNode ToUserName = xmldoc.SelectSingleNode(”/xml/ToUserName“);
8.XmlNode FromUserName = xmldoc.SelectSingleNode(”/xml/FromUserName“);
9.if(Event!=null)10.{
11.//菜單單擊事件
12.if(Event.InnerText.Equals(”CLICK“))13.{ 14.if(EventKey.InnerText.Equals(”click_one“))//click_one
15.{
16.responseContent = string.Format(ReplyType.Message_Text,17.FromUserName.InnerText, 18.ToUserName.InnerText, 19.DateTime.Now.Ticks, 20.”你點(diǎn)擊的是click_one“);21.} 22./click_two
23.{ 24.responseContent = sage_News_Main, 25.FromUserName.InnerText, 26.ToUserName.InnerText, 27.DateTime.Now.Ticks, 28.29.m,”我要寄件“,”“,30.31.32.m, ”訂單管理“, ”“, 33.34.35.} 36.)//click_three
37.{ 38.responseContent = sage_News_Main, 39.FromUserName.InnerText, 40.ToUserName.InnerText, 41.DateTime.Now.Ticks, 42.43.m, ”標(biāo)題“, ”摘要“, 44.45.46.} 47.} 48.}
else if(EventKey.InnerText.Equals(”click_two“))/
string.Format(ReplyType.Mes
”2“,string.Format(ReplyType.Message_News_Ite
”http://004km.cn/orderPlace.jpg“, ”http://004km.cn/“)+
string.Format(ReplyType.Message_News_Ite
”http://004km.cn/orderManage.jpg“, ”http://004km.cn/“));
else if(EventKey.InnerText.Equals(”click_three“)
string.Format(ReplyType.Mes
”1“,string.Format(ReplyType.Message_News_Ite
”http://004km.cn/jieshao.jpg“, ”http://004km.cn/“));
49.return responseContent;50.}
51.///
52./// 圖文消息主體
53.///
54.public static string Message_News_Main 55.{ 56.get
57.{
58.return @”
59.
60.
61.
62.
66. 67. “;68.} 69.}
70.///
71./// 圖文消息項
72.///
73.public static string Message_News_Item 74.{ 75.get
76.{
77.return @”
78.
79.
80.
81.
需要注意的是:XmlNode Event = xmldoc.SelectSingleNode(”/xml/Event“)表示獲取的是事件類型,XmlNode EventKey = xmldoc.SelectSingleNode(”/xml/EventKey“)表示事件標(biāo)示,就是我們創(chuàng)建菜單添加click的key,通過key我們就可以判斷出是點(diǎn)的哪個菜單。還有一點(diǎn)是回復(fù)超鏈接,有時候在服務(wù)號會發(fā)送一些鏈接,我們打開直接就會鏈接到相關(guān)網(wǎng)址,只需要在回復(fù)內(nèi)容中添加:點(diǎn)擊進(jìn)入,就可以了。
示例Demo下載
下載地址:http://pan.baidu.com/s/1i3kMpwh 后記
關(guān)于微信公眾平臺當(dāng)然還有許多其他的東西,本篇只是一些經(jīng)驗(yàn)之談,希望可以起到拋磚引玉的作用。有時候我們發(fā)現(xiàn)一些新鮮事物,覺得很難,就遠(yuǎn)遠(yuǎn)的看著,如果你用心的去感受它,其實(shí)也就這么回事。
第三篇:基于JSP+XML+SQL Server開發(fā)網(wǎng)絡(luò)教學(xué)平臺的設(shè)計與實(shí)現(xiàn)
基于JSP+XML+SQL Server開發(fā)網(wǎng)絡(luò)教學(xué)平臺的設(shè)計與實(shí)現(xiàn)
摘要 網(wǎng)絡(luò)教學(xué)平臺是面向教師和學(xué)生的網(wǎng)絡(luò)教學(xué)系統(tǒng),采用JSP+XML+SQL Server開發(fā),對該平臺的體系結(jié)構(gòu)、功能進(jìn)行了詳細(xì)的分析,并介紹了設(shè)計中所采用的關(guān)鍵技術(shù)。
關(guān)鍵詞 網(wǎng)絡(luò);三層結(jié)構(gòu);教學(xué)平臺;JSP;流媒體
引言
隨著計算機(jī)技術(shù)的飛速發(fā)展,信息網(wǎng)絡(luò)已成為社會發(fā)展的重要保證。如何以網(wǎng)絡(luò)為紐帶快速、高效、方便地實(shí)現(xiàn)知識傳遞,以現(xiàn)代化手段促進(jìn)教學(xué)改革,將傳統(tǒng)的課堂教學(xué)轉(zhuǎn)變?yōu)檎n堂+電腦+網(wǎng)絡(luò)課堂+internet等多種學(xué)習(xí)方式,是教育工作者應(yīng)當(dāng)為之努力的方向?;贘SP技術(shù)的網(wǎng)絡(luò)教學(xué)平臺是依托校園網(wǎng)的優(yōu)勢設(shè)計和開發(fā)的,通過此平臺,學(xué)生可以不受時間、空間、地域的限制,實(shí)現(xiàn)網(wǎng)上瀏覽教學(xué)內(nèi)容、完成作業(yè),參加測試等功能,教師也可借助此平臺,發(fā)布公告信息,發(fā)布試題,實(shí)現(xiàn)課件上傳下載,組織討論答疑等功能。
系統(tǒng)體系結(jié)構(gòu)
網(wǎng)絡(luò)教學(xué)平臺按照Browser/Server模式,將傳統(tǒng)的瀏覽器/WEB服務(wù)器的兩層體系結(jié)構(gòu)擴(kuò)展成瀏覽器—WEB服務(wù)器+應(yīng)用服務(wù)器—數(shù)據(jù)庫服務(wù)器三層體系結(jié)構(gòu),這種模式采用多種標(biāo)準(zhǔn)的協(xié)議和技術(shù),適合于任何硬件平臺和軟件環(huán)境。
系統(tǒng)采用JSP與SQL Server 2000 數(shù)據(jù)庫相結(jié)合,其實(shí)現(xiàn)的基本原理是利用SQL Server 2000 作為數(shù)據(jù)倉庫,用Servlet等高性能服務(wù)器端程序作為后臺總控程序,JSP程序在前臺運(yùn)行,Servelet接受用戶的輸入,分別調(diào)用不同的JSP程序向客戶端反饋信息,JSP/Servlet通過HTTP連接在服務(wù)器端和客戶端傳遞數(shù)據(jù),其體系結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)體系結(jié)構(gòu)
系統(tǒng)功能分析
網(wǎng)絡(luò)教學(xué)平臺由教師教學(xué)系統(tǒng)、學(xué)生學(xué)習(xí)系統(tǒng)和教學(xué)管理系統(tǒng)三大模塊組成,這些模塊之間相互聯(lián)系,相互配合,構(gòu)成一個完整的網(wǎng)絡(luò)教學(xué)系統(tǒng)。系統(tǒng)功能框圖如圖2所示。
圖2 系統(tǒng)功能框圖
1、教師教學(xué)系統(tǒng)與學(xué)生學(xué)習(xí)系統(tǒng)
教師教學(xué)系統(tǒng)與學(xué)生學(xué)習(xí)系統(tǒng)的功能相對應(yīng),主要包含以下幾個模塊:
(1)網(wǎng)絡(luò)課堂:網(wǎng)絡(luò)課堂是實(shí)施網(wǎng)絡(luò)教學(xué)的主要場所,教師和學(xué)生可以通過此模塊實(shí)現(xiàn)實(shí)時和非實(shí)時的網(wǎng)上交流。教師可以實(shí)現(xiàn)課程添加、修改,將課件上傳等功能,而學(xué)生可以瀏覽教學(xué)大綱,教學(xué)計劃,教學(xué)參考資料,教學(xué)課件等內(nèi)容,也可以下載這些資料,觀看優(yōu)秀教師教學(xué)錄像,通過此平臺學(xué)生可以自主預(yù)復(fù)習(xí),把傳統(tǒng)的學(xué)習(xí)過程變得更加方便靈活。
(2)網(wǎng)上作業(yè):作業(yè)環(huán)節(jié)是對所學(xué)知識理解和鞏固的過程。教師可以在網(wǎng)上發(fā)布、批改、刪除作業(yè),學(xué)生可以在線或下載完成作業(yè),完成后可以將作業(yè)上傳,還可以通過此環(huán)節(jié)查看自己完成作業(yè)的情況,查看教師評語等內(nèi)容。
(3)網(wǎng)上測試:教師可以完成試題添加,試題管理,可以調(diào)用網(wǎng)絡(luò)試題庫按章、節(jié)或綜合應(yīng)用自動、手動組卷,進(jìn)行成績分析;學(xué)生除了可以參加網(wǎng)上測試外,還可查詢測試結(jié)果。
(4)討論答疑 :在界面上采用了BBS形式,提問與回答的過程是異步的,學(xué)生將學(xué)習(xí)中遇到的問題用留言的形式公布在網(wǎng)上,教師通過此模塊進(jìn)行答疑。教師也可以在網(wǎng)上發(fā)布討論題,引導(dǎo)學(xué)生進(jìn)行學(xué)術(shù)研究和討論
(5)網(wǎng)上交流:本模塊類似于網(wǎng)絡(luò)聊天室,教師與學(xué)生、學(xué)生與學(xué)生之間可進(jìn)行實(shí)時的網(wǎng)上交流,網(wǎng)上討論,通過此模塊可以解決個別學(xué)生的概念模糊,解題思路混亂等問題。
(6)實(shí)驗(yàn)指導(dǎo):教師把學(xué)生在實(shí)驗(yàn)中遇到的問題和易犯的錯誤以回答問題的形式表現(xiàn)出來,以交互的形式輔導(dǎo)學(xué)生順利完成實(shí)驗(yàn);學(xué)生可以在計算機(jī)上撰寫、提交實(shí)驗(yàn)報告,教師可以瀏覽、批閱。
2、教學(xué)管理系統(tǒng)
系統(tǒng)分為人員管理、課程管理、作業(yè)管理、考試管理和討論交流管理。
(1)人員管理:包括系統(tǒng)管理員、教師和學(xué)生管理。其中管理員可以對所有人員進(jìn)行添加、修改、刪除和查詢,同時還可以對教師的所有權(quán)限進(jìn)行分配。
(2)課程管理:包括課程添加、課程查詢和課件管理。
(3)作業(yè)管理:可以查看、修改和刪除作業(yè)。
(4)考試管理:試題添加、修改、審核和刪除。
(5)討論交流管理:包括BBS版主管理、帖子管理。
軟件開發(fā)技術(shù)
系統(tǒng)采用目前流行的JSP技術(shù)開發(fā)Web應(yīng)用程序,采用XML技術(shù)對教學(xué)數(shù)據(jù)進(jìn)行處理,通過JSP/Servlet和XML進(jìn)行數(shù)據(jù)交互,同時也采用了計算機(jī)網(wǎng)絡(luò)中的許多成熟技術(shù),如流媒體技術(shù),客戶/服務(wù)器技術(shù),數(shù)據(jù)庫技術(shù)。
(1)JSP技術(shù):JSP是一種卓越的Java技術(shù),它基于強(qiáng)大的Java語言,可在任何Web或應(yīng)用服務(wù)器上運(yùn)行,與Java Enterprise API(Java 企業(yè)應(yīng)用編程接口)緊密結(jié)合,可快速創(chuàng)建高性能的Web應(yīng)用程序。它將內(nèi)容的生成和顯示進(jìn)行分離,使Web開發(fā)人員能專注于應(yīng)用邏輯的處理;利用可重用的組件(Java BtensEJB),加快了總體開發(fā)速度,并提高了系統(tǒng)質(zhì)量,采用標(biāo)識簡化頁面編程,降低了開發(fā)人員的難度。
(2)XML與HTML技術(shù):XML和HTML一樣屬于標(biāo)記語言,可以通過標(biāo)記來描述數(shù)據(jù)的結(jié)構(gòu),并且它允許用戶自行視描述數(shù)據(jù)的需要,隨意地制定不同的標(biāo)記,這和HTML有著極大的差別,除此之外,XML不同于HTML對于所有的標(biāo)記都已經(jīng)定義了顯示格式的意義,對于XML而言,顯示格式并不是最重要的,相對地,數(shù)據(jù)所代表的意義才是最重要的,因此,XML并不負(fù)責(zé)標(biāo)記顯示的格式。不過,XML卻允許通過較復(fù)雜且靈活性的方式顯示數(shù)據(jù),如通過XSL、CSS、HTML+XML Island以及編寫程序并通過DOM取出數(shù)據(jù)再顯示;XML具有跨平臺、與語言和應(yīng)用程序等無關(guān)的特性;XML除了可以使用標(biāo)記與屬性來描述數(shù)據(jù)的意義之外,另外還提供了可用來描述文件結(jié)構(gòu)的DTD與XML Schema。
(3)基于連接池的數(shù)據(jù)庫技術(shù):系統(tǒng)采用DB Connection Manager的Java類管理連接池對象,其中每一個連接池保持一組JDBC數(shù)據(jù)庫連接對象,可以為任何Servlet所使用。連接池具有以下功能:裝載和注冊JDBC驅(qū)動程序;根據(jù)在屬性文件中定義的屬性創(chuàng)建連接池對象;實(shí)現(xiàn)連接池名字與其實(shí)例之間的映射;跟蹤客戶程序?qū)B接池的引用,保證在最后一個客戶程序結(jié)束后安全關(guān)閉所有連接池。
(4)流媒體技術(shù):采用流媒體技術(shù)實(shí)現(xiàn)視頻音頻數(shù)據(jù)傳輸。在網(wǎng)絡(luò)上傳輸音/視頻等多媒體信息主要有下載和流式傳輸兩種。下載時用戶必須將既耗費(fèi)時間又耗費(fèi)磁盤空間的整個文件復(fù)制到自己的計算機(jī)中,然后才能播放.因?yàn)檎麄€文件必須在下載之后才能播放,所以下載不能用于實(shí)況流。同時,下載也不能高效地使用可用帶寬,當(dāng)客戶端開始下載數(shù)字媒體文件時,所有可用網(wǎng)絡(luò)帶寬都用于盡可能快地傳輸數(shù)據(jù),其他網(wǎng)絡(luò)功能可能會減慢或被中斷。流式傳輸只以客戶端正確呈現(xiàn)的速度通過網(wǎng)絡(luò)發(fā)送數(shù)據(jù),所以它比下載更高效地使用帶寬。因此,流式傳輸有助于防止網(wǎng)絡(luò)過載并能維持系統(tǒng)的可靠性。在流式傳輸?shù)膶?shí)現(xiàn)方案中,采用HTTP/TCP來傳輸控制信息,而用RTP/UDP來傳輸音視頻數(shù)據(jù)。
(5)客戶/服務(wù)器技術(shù) :聯(lián)入校園網(wǎng)的計算機(jī)從功能上來說,可以分成服務(wù)器和客戶機(jī)兩種,不論哪種服務(wù)器,如文件服務(wù)器,F(xiàn)TP服務(wù)器,數(shù)據(jù)服務(wù)器,郵件服務(wù)器,數(shù)據(jù)服務(wù)器,代理服務(wù)器等都成天候運(yùn)行,提供各種服務(wù),為學(xué)生服務(wù)。
結(jié)論
相對于封閉的傳統(tǒng)教學(xué)模式而言,網(wǎng)絡(luò)化教學(xué)做到了信息渠道的暢通無阻,它突破了時間、空間、地域的限制,體現(xiàn)了以學(xué)生為本,因材施教的思想,促進(jìn)了學(xué)生創(chuàng)新意識和創(chuàng)新能力的培養(yǎng),為學(xué)生向多方向,全方位發(fā)展起到了推波助瀾的作用。
第四篇:基于MVC模式的快速Web應(yīng)用開發(fā)平臺的設(shè)計與實(shí)現(xiàn)概要
收稿日期:2003-11-07;修返日期:2004-07-08 基金項目:湖南省普通高校青年骨干教師培養(yǎng)計劃([2001]204 基于MVC 模式的快速W eb 應(yīng)用開發(fā)平臺的設(shè)計與實(shí)現(xiàn) * 王 禹,王建新,江 南,王 斌
(中南大學(xué)信息科學(xué)與工程學(xué)院,湖南長沙410083 摘 要:在探討Web 應(yīng)用開發(fā)平臺的基礎(chǔ)上,提出了基于MVC(Model-View-Cont roller模式的Web 應(yīng)用平臺的開發(fā)方法,并詳細(xì)論述了應(yīng)用開發(fā)平臺的核心體系結(jié)構(gòu)、技術(shù)實(shí)現(xiàn)方案及其關(guān)鍵技術(shù)。利用該快速Web 應(yīng)用開發(fā)平臺可以迅速搭建企業(yè)級的Web 應(yīng)用,其代價要比利用傳統(tǒng)的J 2EE 開發(fā)平臺低,具有良好的應(yīng)用前景。關(guān)鍵詞:Web 應(yīng)用平臺;MVC 模式;應(yīng)用邏輯組件框架;對象-關(guān)系映射基礎(chǔ)組件
中圖法分類號:TP31;TP 393 文獻(xiàn)標(biāo)識碼: A 文章編號:1001-3695(200411-0204-03 Design a nd Im plem ent ation of Rapid Web Applicat ion Plat form Based on M VC Pat t ern WAN G Yu,WAN G J ia n-xin,J IAN G N an,WAN G Bin(C ollege of Information S cience &E ngineer ing,Centr al South Univers ity,Changsha H unan 410083,C hina Abst ract :Introduces developm ent t echnique a bout MVC pa tt ern ra pid Web applica tion plat form on t he bas is of exploreing Web a pplication plat form a nd det ailedly discusses it ’s kernel architect ure,technic reliz at ion schem e and key t
echnologies.B ased on this ra pid Web a pplicat ion developm ent pla tform ,the ent erprise Web applica tion ca n be cons truct ed quickly,a nd it s cost is fewer t ha n t ra dit iona l J 2EE dev elopm ent pla tform ,so it ha s glorious pros pect.Key wo rds:Web Applica tion P lat form;M VC P at tern;Applica tion Log ic Fram ework;Object-Relat ional Mapping C om po-nent近年來,隨著網(wǎng)絡(luò)技術(shù)和Internet 的迅速發(fā)展,基于B/S 模式的Web 應(yīng)用,因其具有易用性、通用性和良好的可擴(kuò)展性等優(yōu)點(diǎn)而發(fā)展迅速,正逐漸成為企業(yè)應(yīng)用信息系統(tǒng)市場的主流。但是,當(dāng)前基于J ava 的Web 應(yīng)用軟件開發(fā)過程中,還存在如下一些不盡人意的地方
[1] :(1程序可重用程度很低。多個項目常常有功能類似的部分,但由于設(shè)計之初沒有考慮到或不能深入考慮,導(dǎo)致程序雖然類似卻不能重用,只能重寫的局面。完成一個項目積累下來的只有經(jīng)驗(yàn)而沒有代碼,造成工作量的浪費(fèi)。
(2維護(hù)工作煩瑣困難。即使不考慮由于需求模糊造成的追加,項目后期維護(hù)仍然煩瑣。用戶的幾乎任何一點(diǎn)修改都需要程序員參與才能夠完成,而這類維護(hù)中有近一半以上的修改都只需要非常簡單的改動就可以完成。
(3程序應(yīng)變能力較弱。由于當(dāng)前應(yīng)用軟件的業(yè)務(wù)和用戶均不夠成熟,需求的變化就是一個客觀存在的必然事實(shí),而目前應(yīng)用軟件的應(yīng)變能力無論從技術(shù)體系還是程序編碼都不夠強(qiáng),這也導(dǎo)致了維護(hù)工作的困難。
為了能夠有效地提高Web 應(yīng)用程序的可重用性、可維護(hù)性和可擴(kuò)展性等方面,我們結(jié)合MVC(Model-View-C ontroller,模型-視圖-控制器模式來設(shè)計一個基于J 2EE 技術(shù)的Web
應(yīng)用開發(fā)平臺,它能夠提供大量的高度抽象且功能強(qiáng)大的基礎(chǔ)組件框架;特別地,它還能提供豐富靈活的客戶化程序和應(yīng)變體系?;谶@個Web 應(yīng)用開發(fā)平臺用戶或程序員可以快速地編寫出自己的應(yīng)用軟件項目或產(chǎn)品
[2]。平臺的體系結(jié)構(gòu)與實(shí)現(xiàn)方案 1.1 We b 應(yīng)用平臺的中心體系結(jié)構(gòu) 圖1 Web 應(yīng)用平臺的中心體系結(jié)構(gòu)
圖1說明了Web 應(yīng)用平臺的中心體系結(jié)構(gòu)的各個組件,每個服務(wù)器代表所提供的服務(wù)。服務(wù)器實(shí)際可能位于同一機(jī)器,或?qū)τ诖笮偷腤eb 主機(jī)設(shè)備而言,可能存在幾個各自執(zhí)行相似任務(wù)的服務(wù)器。這類Web 應(yīng)用體系結(jié)構(gòu)的長處之一是大部分的Web 應(yīng)用程序可以通過向用于傳輸應(yīng)用程序的服務(wù)器組或Web 區(qū)添加更多機(jī)器,升級以支持更多用戶。該Web 應(yīng)用平臺體系結(jié)構(gòu)中各部分的內(nèi)容有:(1Web 瀏覽器客戶機(jī)。在Web 應(yīng)用程序中,用戶接口通
過一個Web 瀏覽器進(jìn)行傳輸。瀏覽器理解的主要語言是超文本標(biāo)記語言HTML,大部分當(dāng)前瀏覽器還具有執(zhí)行JavaScript ?402?計算機(jī)應(yīng)用研究2004 年 因特
網(wǎng) 因特網(wǎng)防
火墻
網(wǎng)絡(luò)服務(wù)器 企業(yè)防火墻 應(yīng)用程序服務(wù)器 數(shù)據(jù)庫 服務(wù)器 企業(yè)計算資源
和J a va的內(nèi)置能力。當(dāng)前主要應(yīng)用的瀏覽器有IE,Nets cape 和Opera等。(2Web服務(wù)器。它處理HTTP請求,并確定如何生成一個請求響應(yīng)。在本體系結(jié)構(gòu)中,Web服務(wù)器用于響應(yīng)靜態(tài)Web頁,把請求傳遞到一個應(yīng)用程序服務(wù)器,以及接收應(yīng)用程序服務(wù)器的返回內(nèi)容以生成響應(yīng)內(nèi)容。當(dāng)前的平臺采用主流的Apache服務(wù)器作為Web服務(wù)器。
(3應(yīng)用程序服務(wù)器。該平臺是基于J2EE的架構(gòu),應(yīng)用程序服務(wù)器包括服務(wù)程序引擎和EJ B容器。本平臺是基于J2EE架構(gòu)的輕量級Web應(yīng)用實(shí)現(xiàn),主要采用服務(wù)程序引擎部分來實(shí)現(xiàn)應(yīng)用邏輯。服務(wù)程序引擎還提供對J S P的支持,J S P 是與平臺和Web服務(wù)器無關(guān)的。該平臺采用的服務(wù)程序引擎來自Apache的應(yīng)用服務(wù)器Tom cat4.1.12。
(4數(shù)據(jù)庫服務(wù)器。在該體系結(jié)構(gòu)中,數(shù)據(jù)庫可以通過運(yùn)行EJ B或服務(wù)程序的J DB C API程序調(diào)用進(jìn)行訪問。該平臺的數(shù)據(jù)庫服務(wù)器采用MS S QL S erv er2000。
(5傳統(tǒng)遺留系統(tǒng)。該平臺采用的J av a技術(shù)是將不同系統(tǒng)連接在一起的應(yīng)用程序的理想平臺。J DBC允許建立大量通用數(shù)據(jù)庫的統(tǒng)一數(shù)據(jù)庫連接,J a va消息服務(wù)(J MS是實(shí)現(xiàn)提供消息中介服務(wù)標(biāo)準(zhǔn)化接口的良好起點(diǎn),J a va與XML及簡單對象訪問協(xié)議(S OAP的組合可以提供從支持不同語言和通信機(jī)制的各種系統(tǒng)到傳統(tǒng)應(yīng)用程序的訪問。
(6防火墻。防火墻及代理了限制應(yīng)用程序在隨機(jī)套接字上通信的能力。如果客戶機(jī)上的代碼需求獨(dú)立于瀏覽器之外與服務(wù)器通信,則該通信應(yīng)采用HTTP或HTTPS協(xié)議。
1.2 Web應(yīng)用平臺的技術(shù)實(shí)現(xiàn)方案
Web應(yīng)用平臺的程序結(jié)構(gòu)是基于MVC模式來實(shí)現(xiàn)的。M VC模式中包括三類組件:Model組件用于描述應(yīng)用程序中的數(shù)據(jù)以及操作該數(shù)據(jù)的方法,與用戶界面無關(guān);View組件負(fù)責(zé)將數(shù)據(jù)展現(xiàn)給用戶;Cont roller組件將用戶操作翻譯為對Model 組件的操作。接到C ontroller傳來的操作之后,Model再更新View,以反映出數(shù)據(jù)的變化[3]。
Web應(yīng)用平臺的技術(shù)實(shí)現(xiàn)主要采用J S P,J a va S ervlet,J a-vaB ea ns和J DBC等技術(shù)來實(shí)現(xiàn)基于J2EE架構(gòu)的輕量級Web 應(yīng)用的開發(fā)。其中,通過J DBC進(jìn)行數(shù)據(jù)庫訪問的J a va Bea ns 代表模型(數(shù)據(jù),S ervlet充當(dāng)控制器(處理請求,J S P頁面則是模型的視圖[4]。
圖2 Web應(yīng)用平臺的程序結(jié)構(gòu)
如圖2所示,Web瀏覽器發(fā)出HTTP請求后,通過Web服務(wù)器接收后傳遞,然后由應(yīng)用服務(wù)器中的服務(wù)引擎調(diào)用操作S ervlet來處理,操作S ervlet再將請求調(diào)至J avaBeans,即操作B ea n。操作B ea n更新代表業(yè)務(wù)對象模型的數(shù)據(jù)B ean,并向操作S ervlet返回一個操作路徑選擇器。操作S ervlet利用這個路徑選擇器將請求轉(zhuǎn)發(fā)或
重定向至J S P頁面,接著,J S P頁面訪問通常具有定制標(biāo)記的業(yè)務(wù)對象,并向?yàn)g覽器發(fā)回響應(yīng)。
2平臺的主要功能與組成內(nèi)容
Web應(yīng)用開發(fā)平臺作為Web應(yīng)用系統(tǒng)開發(fā)的通用化基礎(chǔ)平臺,其主要的功能要求有:(1將數(shù)據(jù)建模、數(shù)據(jù)顯示與用戶交互三者分開,使得程序設(shè)計的過程更清晰;(2簡化程序擴(kuò)展時的副作用分析,從而提高系統(tǒng)的可擴(kuò)展性;(3將應(yīng)用程序的功能封裝在眾所周知的API后面,提高系統(tǒng)的可維護(hù)性,減少重復(fù)代碼,將應(yīng)用程序的功能和數(shù)據(jù)表現(xiàn)分開,提高可復(fù)用程度;(4提高系統(tǒng)的靈活性,把數(shù)據(jù)模型、用戶交互和數(shù)據(jù)顯示等部分設(shè)計為可接插組件;(5可以用于部分發(fā)布,支持漸近式升級;(6提供自定義的系統(tǒng)通用組件集,包括改善數(shù)據(jù)庫訪問性能的連接池組件,用于應(yīng)用程序錯誤處理的組件以及其他實(shí)現(xiàn)通用化的用戶與權(quán)限管理等組件。
開發(fā)平臺的內(nèi)容包含一系列互相合作的類、Servlet控制程序、JSP定制標(biāo)記庫以及一些實(shí)現(xiàn)通用化功能的組件集,它們共同組成了可重用的基于MVC的框架。
開發(fā)平臺主要由以下幾個部分組成:表示控制器(Control-ler部分的Web應(yīng)用邏輯組件框架,表示視圖(View部分的Web用戶界面組件框架,表示模型(Model部分的對象-關(guān)系映射(ORM的基礎(chǔ)組件,以及有關(guān)的JSP定制標(biāo)記組件庫和其他通用化組件集。
3平臺設(shè)計與實(shí)現(xiàn)的關(guān)鍵技術(shù)
(1控制器功能的Web應(yīng)用邏輯組件框架的設(shè)計與實(shí)現(xiàn)
從JSP頁面或Servlet調(diào)用中接收請求,調(diào)用相應(yīng)的操作Bean及數(shù)據(jù)Bean實(shí)現(xiàn)應(yīng)用邏輯處理,最后再轉(zhuǎn)移到其他的JSP頁面或Servlet調(diào)用的操作。應(yīng)用邏輯框架中包括四種類型的對象: ●Action(接口實(shí)現(xiàn)此接口的應(yīng)用程序的特定操作;●ActionFactory(類生成操作實(shí)例;●ActionServlet(Servlet將請求映射到操作;●ActionR outer 將請求轉(zhuǎn)發(fā)或重定向至JSP頁面。
應(yīng)用邏輯框架中的對象類型在運(yùn)行過程中的協(xié)作關(guān)系如圖3所示。一般情況下,可以從JSP頁面或另一個Servlet調(diào)用操作Servlet(ActionServlet,作為表單提交或鏈接激活的結(jié)果。根據(jù)請求的類型,該Servlet重新檢索相應(yīng)的操作類型。操作Servlet(ActionServlet從操作庫中獲得一個操作后,它便調(diào)用此操作的Perform方法,Perform方法實(shí)現(xiàn)了特定應(yīng)用程序的功能,通常用于更新業(yè)務(wù)對象。Action.perform返回一個操作路徑選擇器,它具有一個URI和Boolean變量,指示是否將請求轉(zhuǎn)發(fā)或重定向至這個URI。操作Servlet使用操作路徑選擇器調(diào)用路徑選擇器的Route方法,Route方法將請求轉(zhuǎn)發(fā)或重定向到適當(dāng)?shù)腤eb組件[5,6]。
基于框架增加應(yīng)用開發(fā)時,可以考慮按以下幾步實(shí)現(xiàn):①實(shí)現(xiàn)Action操作,使其能操作業(yè)務(wù)對象模型,而且可能在適當(dāng)
? 5 2 ?
第11期王禹等:基于MVC模式的快速Web應(yīng)用開發(fā)平臺的設(shè)計與實(shí)現(xiàn)
瀏覽器 操作Servlet(控制器 4.返回操作路徑 JSP頁面(視圖
5.轉(zhuǎn)發(fā)或重定向 1.請求 7.響應(yīng) 操作Bean 2.調(diào)度請求 3.更新 的范圍內(nèi)為J S P頁面(視圖存儲B ea n,以便訪問;②實(shí)現(xiàn)J S P 頁面,使其能訪問業(yè)務(wù)對象以及特定范圍內(nèi)的B ea n;③增加到應(yīng)用程序?qū)傩晕募挠成?以便使上述產(chǎn)生的操作及頁面與邏輯名等同。
圖3 Web應(yīng)用邏輯組件框架中對象類型的協(xié)作順序圖(2模型功能的對象-關(guān)系映射的基礎(chǔ)組件的設(shè)計與實(shí)現(xiàn)
通過數(shù)據(jù)Bean來存取后臺數(shù)據(jù)庫的相應(yīng)數(shù)據(jù),即將J a va 對象映射到數(shù)據(jù)庫表中,也就是要創(chuàng)建一個J ava對象來代表數(shù)據(jù)庫表的其中一行,然后初始化它的各個域,并且通知對象將其添加到數(shù)據(jù)庫中。此即對象到關(guān)系映射技術(shù)(Object-Re-la tional
Ma pping,ORM。平臺的ORM基礎(chǔ)組件設(shè)計一個基礎(chǔ)類,要能夠簡化數(shù)據(jù)Bean代碼的一個抽象數(shù)據(jù)庫對象類。并且,每一個映射到數(shù)據(jù)庫表的J ava類必須能夠提供它們自己的添加、更新和刪除語句,同時還必須能夠從ResultS et對象中讀出各個域。該抽象類Dat aba seObject的概要說明如下: public abstr act class Da tabaseObject{ public Vector g etAll(Connection connthrows S QLEx ception{} public Vector getAll(Connection conn,Str ing w hereC lausethrow s S QLException{} //返回表中符合條件的所有對象
public Vector getAll(Connection conn,S tring whereCla use,Str ing addi-tionalTablesthrows SQLException{} //執(zhí)行一個指定連接的查詢串
public Vector executeQuer y(Connection conn,Str ing quer ythrows S QLE xception{} //插入對象到數(shù)據(jù)庫中
public int insert(Connection connthrows S QLException{} //返回表中用于S elect的字段列表 public abstr act Str ing getFieldList(;public Str ing getFieldList(S tring tableName{};public abstr act Str ing getInser tStatement(;public abstract void prepar eInsertStatem ent(Pr epar edS tatement s throw s S QLE xception;
//修改數(shù)據(jù)庫中的對象
public int update(Connection connthr ows SQLException{} public abstr act Str ing getUpdateS tatement(;public abstract void prepareUpdateS tatement(PreparedStatem ent s throw s S QLE xception;//刪除數(shù)據(jù)庫中的對象
public int delete(Connection connthrows S QLException{} public abstr act Str ing getDeleteS tatement(;public abstract void pr epar eDeleteStatem ent(PreparedStatement s throw s S QLE xception;public abstr act Str ing getTableName(;public abstr act DatabaseObject createInstance(ResultS et r esults throw s S QLE xception;} 所有業(yè)務(wù)應(yīng)用需要的數(shù)據(jù)B ea n都可以從這個抽象對象基礎(chǔ)類上繼承出來,再結(jié)合具體的要求進(jìn)行相應(yīng)的擴(kuò)展。
(3視圖功能的Web用戶界面組件框架的設(shè)計與實(shí)現(xiàn)
HTML表單用于Web應(yīng)用程序,而用戶界面框架(如Sw ing和AWT用于傳統(tǒng)軟件,頁面制作者使用表單而不是用戶界面工具包來創(chuàng)建用戶界面。所以,為Web應(yīng)用的開發(fā)提供一個類似傳統(tǒng)軟件用戶界面框架的Web用戶界面組件框架,這樣的作用是能夠大大提高Web應(yīng)用界面開發(fā)中的代碼重用,也給開發(fā)人員提供了一個界面開
發(fā)中能不斷擴(kuò)展的基礎(chǔ)平臺。在Web應(yīng)用表示層的視圖部分,J S P規(guī)范沒有直接支持表單,Web應(yīng)用平臺在此基礎(chǔ)上實(shí)現(xiàn)Bea n表單框架,也就是開發(fā)平臺的Web用戶界面框架。而且J SP沒有提供界面工具中類似于組件、容器或布局管理器的對象。但是J S P具有定制標(biāo)記和包含Web組件的能力兩個特色,利用這兩個特色,可以實(shí)現(xiàn)定制的組件、容器和布局管理器。所以,Web應(yīng)用平臺通過設(shè)計節(jié)點(diǎn)、區(qū)域和模板實(shí)現(xiàn)網(wǎng)頁的基礎(chǔ)組件來實(shí)現(xiàn)可擴(kuò)展的、可重用的和可維護(hù)的Web應(yīng)用的界面部分。
(4平臺的J S P定制標(biāo)記組件庫和其他通用化組件集的設(shè)計與實(shí)現(xiàn)
它包括用于優(yōu)化數(shù)據(jù)庫訪問效率的數(shù)據(jù)庫連接池,系統(tǒng)初始化設(shè)置、客戶端的顯示、上傳下載與頁面顯示分頁等通用控制組件,以及實(shí)現(xiàn)加密解密、第三方打印組件和通用的系統(tǒng)用戶與功能權(quán)限管理模塊等內(nèi)容?;谠撈脚_的Web應(yīng)用開發(fā)過程中,可以直接使用上述公用組件所提供的通用化功能,從而減少了開發(fā)Web應(yīng)用系統(tǒng)的工作量。
4結(jié)束語
基于MVC模式的Web應(yīng)用平臺具有如下特點(diǎn):能夠快速完備地搭建Web應(yīng)用系統(tǒng);采取設(shè)計模式來擴(kuò)展顯示邏輯、應(yīng)用邏輯以及數(shù)據(jù)模型的復(fù)用度;結(jié)合區(qū)域與模板重用的定制JSP頁面;提供優(yōu)化數(shù)據(jù)庫訪問的連接池以及豐富的、通用的工具組件。通過實(shí)踐證明,基于此通用化平臺開發(fā)的Web應(yīng)用系統(tǒng)能夠具有以下的優(yōu)良特點(diǎn):使應(yīng)用程序模塊化;減少了HTML和Java代碼的相關(guān)性;允許開發(fā)人員為相同的數(shù)據(jù)提供多個視圖;簡化了應(yīng)用程序流程,使得應(yīng)用程序更易維護(hù),是一種進(jìn)行Web應(yīng)用開發(fā)的可靠模型。
參考文獻(xiàn): [1]蔣步星.Web應(yīng)用軟件開發(fā)平臺ExPl atO-Web[C].全國第四屆 Java技術(shù)與應(yīng)用交流會,2001.285-288.[2]齊勇,等.基于Web的中間件系統(tǒng)集成框架———應(yīng)用服務(wù)器的 研究[J].計算機(jī)研究與發(fā)展,2001,38(4:430-437.[3]姚慧廣,趙岳松.Web編程中MVC模型的應(yīng)用[J].微機(jī)發(fā)展, 2002,11(3:9-10.[4]何成萬,余秋惠.MVC模型2及軟件框架Struts的研究[J].計算 機(jī)工程,2002,28(6:274-281.[5]王斌,王建新,張堯?qū)W,等.基于通信的MAS內(nèi)部自動服務(wù)協(xié)商 [J].小型微型計算機(jī)系統(tǒng),2003.[6]王斌,張堯?qū)W,陳松喬.分布式環(huán)境下代理協(xié)同的主動黑板結(jié)構(gòu) 設(shè)計模式[J].計算機(jī)工程,2003.作者簡介: 王禹,男,碩士研究生,主要研究方向?yàn)榫W(wǎng)絡(luò)信息系統(tǒng);王建新,男,教授,博士,主要研究方向?yàn)橛嬎銠C(jī)網(wǎng)絡(luò)理論;江南,男,碩士,主要研究方向?yàn)檐浖こ?王斌,男,博士,主要研究方向?yàn)榻M件技術(shù)。
? 6 2 ?計算機(jī)應(yīng)用研究2004年
JSP或Servlet ActionServlet ActionFactory Hashtable Class Action ActionRouter
service(getAction(Action action=get(classname action=newInstance(put(classname,action ActionRouter router=perform(this,req,resnew(“URL” route(this,req,res
第五篇:對“中澤地產(chǎn)XX項目全周期開發(fā)計劃”的幾點(diǎn)建議(朝陽劉總)
對“中澤地產(chǎn)XX項目全周期開發(fā)計劃模板”的幾點(diǎn)建議
一、建議將行政等事務(wù)性的工作及流程,從此計劃中刪除,由專項計劃規(guī)范實(shí)施。因?yàn)樾姓聞?wù)性工作對總體項目的開發(fā)計劃沒有直接影響。將不重要的日常性工作從此表中刪除,如圍擋的搭建、小金額的配套工程合同等。
二、建議多設(shè)置些一級節(jié),將一級節(jié)點(diǎn)貫穿于全周期開發(fā)各主要階段,對于集團(tuán)來講,重點(diǎn)把控一級節(jié)點(diǎn)就可以實(shí)現(xiàn)全盤監(jiān)督與管理。此外,還應(yīng)有二級和三級節(jié)點(diǎn),二級節(jié)點(diǎn)由集團(tuán)/城市公司共同監(jiān)管。三級節(jié)點(diǎn)/專項計劃由職能中心/城市公司自行把控。但是總的節(jié)點(diǎn)數(shù)量不宜過多,節(jié)點(diǎn)過度會增加公司人力資源的成本。如此更便于集團(tuán)/城市公司對總體開發(fā)計劃的把控與責(zé)權(quán)劃分。
三、全周期開發(fā)計劃表,應(yīng)考慮二條時間線路進(jìn)行編制。其一,是按開發(fā)的自然的流水時間進(jìn)行編制,從拿地、開發(fā)到交付,全過程一目了然。其二,是按開發(fā)模塊分別進(jìn)行編制,比如可按土地拓展階段、項目啟動階段、規(guī)劃方案階段、擴(kuò)初設(shè)計階段、施工階段、營銷及策劃階段、竣工及交付階段等,并將成本合約、招采規(guī)劃及評審會議工作交叉貫穿于各個階段之中。
四、在每個開發(fā)模塊階段,建議應(yīng)增加一個豎向列的內(nèi)容,就是專題會議(評審會議)計劃,注明會議級別、由誰倡議和主持、由哪些部門參加、會議時間、幾次之后形成決議。比如,在營銷策劃階段,應(yīng)該有籌劃方案及定位的會議;入伙實(shí)施階段,應(yīng)該有入伙方案會議等等。