国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Web應用的UML建模與.NET框架開發

2019-11-17 04:41:06
字體:
來源:轉載
供稿:網友
摘要  本文通過分析Web應用的構架模式,引入UML擴展機制,實現對Web應用中各種對象的建模。探討.NET框架下Web應用的UML建模及開發方法,并將其應用到一個實際的研究所治理系統中。實際應用表明該方法有利于降低開發的復雜性,縮短開發周期,取得了較好的效果。


  要害詞  Web應用 構架 UML建模  .NET框架  LOB
 
  引言

  基于Web的應用系統一般包含兩部分:服務器和客戶端瀏覽器。服務器主要對事務進行邏輯處理,而用戶對服務器上業務邏輯的影響,使Web應用往往具有復雜性和高度動態性的特點。這種特點使得基于Web應用的系統開發比較復雜、治理困難。為了有效地解決上述問題,縮短開發周期,減少維護費用,主要策略是對Web應用進行建模。UML是面向對象技術領域中占主導地位的統一建模語言。此外,.NET框架在通用語言運行時CLR的基礎上,提供了完善的基礎類庫、數據庫訪問技術ADO.NET和網絡開發技術asp.net,使開發者可以快速構建Web應用。因此,本文主要探討基于.NET框架Web應用的UML建模及開發方法,并將該方法用于作者開發的研究所治理系統中,實際應用表明該方法可以有效地降低系統開發和治理的復雜性,提高經濟效益。

  Web應用的構架模式

  Web應用的基本構架包括瀏覽器、網絡和Web服務器。瀏覽器向服務器請求Web頁,Web頁可能包括由瀏覽器解釋執行的客戶端腳本,而且可以與瀏覽器、頁內容和頁中包含的其他控件(java Applet、ActiveX控件和插件等)進行交互。用戶向Web頁輸入信息或通過超級鏈接導航到其它Web頁,與系統進行交互,改變系統的“業務狀態”。

  1、瘦Web客戶端

  主要適用于基于Internet的應用,對客戶端配置幾乎沒有控制。客戶端只需要標準Web瀏覽器,可以請求和顯示標準的Html頁面。所有的業務邏輯都在服務器上執行。

      客戶端瀏覽器通過HTTP協議向服務器請求頁面資源,服務器將被請求的URL解析為文件系統中的文件,或者由應用服務器處理并可能改變業務狀態,得到請求的頁面,返回給客戶端。

  2、胖Web客戶端

  胖Web客戶端對于可以確定客戶端配置和瀏覽器版本的Web應用是最適合的。客戶端通過HTTP與服務器通信,使用DHTML、Java applet或者ActiveX控件執行業務邏輯。HTTP的無連接特性,決定了客戶端腳本、ActiveX控件和Java Applet只能同客戶端對象進行交互。圖1顯示了構架中對象之間的關系。

Web應用的UML建模與.NET框架開發
圖1  胖Web客戶端構架中的主要參與者

  客戶端顯示接收的頁面時,執行嵌入的腳本,這些腳本通常可以在不同的線程中執行,通過DOM接口與頁面內容進行交互。

  3、Web傳輸

  Web傳輸模式除了使用HTTP負責客戶端和服務器的通信之外,還可以使用IIOP和DCOM等協議以支持分布式對象系統。Web頁面通過遠程對象樁和遠程對象傳輸協議與遠程對象服務器通信,由服務器治理遠程業務對象的生命周期,向客戶端對象提供服務。圖2顯示了各組件之間的關系。
Web應用的UML建模與.NET框架開發
圖2  Web傳輸構架中的主要參與者

  遠程對象樁是一個對象,在客戶端執行,并與遠程對象具有相同的接口。當通過這個對象調用方法時,這些方法被封裝起來,使用遠程對象傳輸協議RMI/DCOM發送到遠程對象服務器,服務器解釋請求,實例化并調用實際對象實例中的方法。

  實際應用中,往往根據業務需要,綜合使用上述構架。在我們的研究所治理系統中,綜合采用了瘦Web客戶端和Web傳輸構架。客戶端使用了javascript進行客戶端驗證,把經過驗證的數據提交服務器處理。在數據的后臺治理上,采用了Web傳輸構架,保持客戶端與服務器的開放連接,以便進行較長時間的、較復雜的會話。
  UML的Web應用擴展

  UML(Unified Modeling Language)是一種通用的可視化建模語言,適用于各種軟件開發方法、軟件生命周期的各個階段、各種應用領域以及各種開發工具。但在對Web應用進行建模時,它的一些構件不能與標準UML建模元素一一對應,因此必須對UML進行擴展。

      UML的三種核心擴展機制包括構造型、標記值和約束。其中最重要的擴展機制是構造型,它不能改變原模型的結構,但可以在模型元素上附加新的語義,通常用“《構造型名》”來表示。約束是模型元素中的語義關系,定義了模型如何組織在一起,通常用一對“{}”之間的字符串表示。標記值是對模型元素特性的擴展,大多數的模型元素都有與之關聯的特性,通常用帶括號的字符串表示。

  1、Web頁建模

  Web頁可能同時包含客戶端腳本和服務器端腳本,因此必須分別進行建模。服務器端Web頁面一般包含由服務器執行的腳本,每一次被請求時都在服務器上組合,更新業務邏輯狀態,返回給瀏覽器。客戶端Web頁可能包含數據、表現形式甚至業務邏輯,由瀏覽器解釋執行,并可以與客戶端組件相關聯,如Java Applet、ActiveX、插件等。兩者之間通過定向關系相互關聯。這種關聯關系的構造型為?build?。

  Web應用中的超級鏈接代表導航路徑,用構造型為?link?的關聯關系表示。標記值用于定義隨超級鏈接請求傳遞的參數列表,供服務器端Web頁使用。圖3描述了Web頁之間的關系。

Web應用的UML建模與.NET框架開發
圖3  Web頁之間的關系

  .NET框架中大多數建立的是服務器端Web頁,經編譯后生成HTML代碼傳遞到客戶端瀏覽器。同時,為了提高效率,對于那些不包含業務邏輯的Web頁,在.NET框架中可以直接用HTML元素建立客戶端Web頁,再建立起與對應的服務器端Web頁之間的調用關系。

  2、表單建模

  表單是Web頁的基本輸入機制,包括<input>、<select> 和 <textarea>等輸入元素,用《Form》構造型進行建模。《Form》沒有操作,與之交互的操作是包含表單的Web頁的特性。它可以與作為輸入控件的 Applet或ActiveX 控件關聯,還可以把表單內容提交到服務器進行處理。圖4描述了含有表單的客戶端Web頁與服務器的交互過程。
Web應用的UML建模與.NET框架開發
圖4  包含表單的客戶端Web頁與服務器的交互過程

  .NET中每一個頁面只有一個表單,包含所有的輸入元素,通常表現為服務器端控件或客戶端控件,其中服務器端控件由服務器端Web頁經過編譯后傳送到客戶端。

  3、組件建模

  Web應用中的組件分為服務器端組件和客戶端組件兩類。服務器端較復雜的業務邏輯通常由中間層完成,包括一組封裝了所有業務邏輯的已編譯好的組件。因此,使用中間層不僅可以提高性能,而且可以共享整個應用的業務功能。客戶端Web頁中常見的組件是Java Applet和ActiveX,利用它們訪問瀏覽器和客戶端的各種資源,實現HTML無法實現的功能。

  Web應用擴展定義了《static page》和《dynamic page》兩個抽象組件構造型。《static page》實現客戶端組件。《dynamic page》的主要任務是在運行時系統的物理文件和邏輯視圖中的邏輯表現之間提供映射。圖5和圖6分別表示這兩種組件實現的邏輯視圖。
Web應用的UML建模與.NET框架開發
圖6  由《static page》實現的客戶端組件

Web應用的UML建模與.NET框架開發
圖5  由《dynamic page》實現的邏輯視圖類

  4、框架建模

  Web應用擴展定義了構造型《frameset》和《target》以及關聯關系構造型《targeted link》來實現對框架的建模。《frameset》直接映射到HTML的<frameset>標記。《target》表示當前Web頁引用的其它Web頁或框架。《targeted link》是指向另一個Web頁的超級鏈接,但它要在特定目標中才能提供。圖7顯示了論文治理的框架模型
Web應用的UML建模與.NET框架開發
圖7  論文治理框架模型

  基于.NET框架的Web應用開發

  .NET框架是一種基于通用語言的編程框架,提供了嶄新的編程模型:WebForm模型和WebService模型,提供了完善的基礎類庫、數據庫訪問技術ADO.NET和網絡開發技術ASP.NET,為Web應用的開發提供了強有力的支持。

  1、Web頁的實現

  .NET框架提供了WebForm開發模型,利用內嵌的各種服務器組件來生成服務器端Web頁。它可以包含一些重要的頁面元素:用戶控件或者自定義控件等。用戶控件User Control在.NET框架中是以.ascx為擴展名的文件,可以在多個Web頁面中使用,實現代碼的重用。自定義控件Custom Control是在.NET中創建或在原有控件上進行修改,添加新功能,以實現特定需求的控件,可以被多個應用程序調用。

  2、Web頁導航方式

  .NET框架中的頁面導航方式體現了Web頁之間的關系,可以用下列四種方式實現。

  (1)超級鏈接

  使用HTML超鏈接控件或HyperLink控件可以實現頁面之間的鏈接。
其中HyperLink服務器控件答應在代碼中改變其NavigateUrl屬性,從而構造出具體目標可根據應用的當前狀態動態變化的超鏈接。

  (2)用Response.Redirect 實現

  當Response.Redirect( )方法被調用時,創建HTTP應答,其中指出了狀態代碼302(表示目標已經改變)和新的目標URL。瀏覽器接收到該應答,發出一個對新URL的請求。 即重定向操作發生在客戶端,涉及到兩次與服務器的通信。

  (3)用Server.Transfer 實現

      這種方法把執行流程從當前的ASPX頁面轉到同一服務器上的另一個ASPX頁面。但新的頁面仍使用前一頁面創建的應答流。 瀏覽器中的URL不會改變,重定向完全在服務器端進行。因此,這種方法能夠避免不必要的網絡通信,獲得較好的性能和瀏覽效果。

  (4)用Server.Execute 實現

  此方法答應當前的ASPX頁面執行同一服務器上的指定ASPX頁面,指定的ASPX頁面執行完畢后,控制流程返回原頁面中發出Server.Execute( )調用的位置,被調用頁面能夠訪問調用頁面的表單數據和查詢字符串集合。默認情況下,被調用頁面的輸出追加到當前應答流。但是,Server.Execute( )方法有一個重載的方法,答應通過一個TextWriter對象獲取被調用頁面的輸出,而不是直接追加到輸出流,這樣,在調用頁面中可以方便地調整被調用頁面輸出結果的位置。 

  3、數據庫操作

  數據庫處于Web應用的最底層,存放系統數據和部分后臺數據庫邏輯,如存儲過程、觸發器等。它與業務邏輯層和用戶界面分開,易于治理和維護,執行效率高,安全性能好。

  (1)Oracle數據庫操作

  .NET框架提供了System.Data.OracleClient和System.Data.OleDb 命名空間,實現對Oracle數據庫的支持,其中前者的針對性較強,本文的實例中使用了此命名空間。

  數據庫連接字符串為連接數據庫提供必要的參數,通常保存在配置文件web.config中,以簡化代碼實現和便于部署。

  Web應用中對數據庫的操作頻繁,通常情況下,把對數據庫的各種操作集成在一個數據庫操作類中,在需要進行數據庫操作的地方只需調用此類的各種方法即可。

  (2)Oracle數據庫中LOB對象的存取

  Web應用中的二進制文件、圖片、大段文本等在數據庫中的存取,通常都要用大對象(LOB)實現。.NET框架提供了OracleLob類來完成對Oracle中BLOB、CLOB、NCLOB等數據類型的操作。Oracle中實現大段文本存入CLOB字段的過程可以表示為:

  ①用SQL語句向數據庫中添加一個CLOB字段為empty_clob( )的記錄;

  ②開始事務,鎖定剛加入的記錄,把要寫入CLOB字段的內容用流或CLOB的Write( )方法寫入;

  ③提交事務,完成對CLOB字段的寫入;

  Oracle中對CLOB類型數據的讀取過程相對簡單,不需要對數據庫記錄進行鎖定:

  ①執行SQL 語句獲得OracleDataReader對象;

  ②用OracleDataReader對象的GetOracleLob( )方法得到要讀取的CLOB字段的OracleLob對象;

  ③用OracleLob對象的Read( )方法或流讀出CLOB字段的內容;

  結束語

  系統建模對軟件開發過程相當重要,UML的擴展機制為Web應用的建模提供了必要的支持。.NET框架為Web應用的開發提供了很好的解決方案。本文首先分析了常見的Web應用的構架模式,然后把Web應用的UML建模與基于.NET框架的開發結合起來,提出了對Web應用中的各種對象進行建模的方法,對開發過程中的相關重要問題進行了闡述,并針對現有文獻中較少涉及的Oracle數據庫的操作提供了具體的解決步驟,希望能起到拋磚引玉的作用。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 溆浦县| 乡城县| 通辽市| 姜堰市| 行唐县| 文成县| 日土县| 大埔县| 开封市| 乡城县| 忻州市| 建水县| 敦化市| 鄂尔多斯市| 彰化县| 马山县| 大名县| 青浦区| 宜昌市| 安康市| 同江市| 北宁市| 东海县| 芦溪县| 马尔康县| 凤翔县| 尼玛县| 华宁县| 郓城县| 鹤岗市| 鄂尔多斯市| 张北县| 开封市| 荣昌县| 交城县| 金山区| 阿拉善左旗| 玉环县| 页游| 雷州市| 卓尼县|