Web 应用的 UML 建模与 .NET 框架开发

JavaScript也可以操作Oracle数据库?这似乎让人觉得不可思议。但是从标题中我们又可以看到一个词:ActiveX,这似乎已经帮我们解开了JavaScript操作Oracle数据库的奥秘。本文通过一个例子来介绍JavaScript调用ActiveX操作Oracle数据库的详细方法,希望对你有所帮助。

基于Web的应用系统一般包含两部分:服务器和客户端浏览器。服务器主要对事务进行逻辑处理,而用户对服务器上业务逻辑的影响,使Web应用往往具有
复杂性和高度动态性的特点。这种特点使得基于Web应用的系统开发比较复杂、管理困难。为了有效地解决上述问题,缩短开发周期,减少维护费用,主要策略是
对Web应用进行建模。UML是面向对象技术领域中占主导地位的统一建模语言。此外,.NET框架在通用语言运行时CLR的基础上,提供了完善的基础类
库、数据库访问技术ADO.NET和网络开发技术ASP.NET,使开发者可以快速构建Web应用。因此,本文主要探讨基于.NET框架Web应用的
UML建模及开发方法,并将该方法用于作者开发的研究所管理系统中,实际应用表明该方法可以有效地降低系统开发和管理的复杂性,提高经济效益。

Web应用的构架模式

以下是JavaScript代码:

Web应用的基本构架包括浏览器、网络和Web服务器。浏览器向服务器请求Web页,Web页可能包括由浏览器解释执行的客户端脚本,而且可以与浏览器、页内容和页中包含的其他控件(Java
Applet、ActiveX控件和插件等)进行交互。用户向Web页输入信息或通过超级链接导航到其它Web页,与系统进行交互,改变系统的“业务状态”。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
 <TITLE> New Document </TITLE>
 <META NAME="Generator" CONTENT="EditPlus">
 <META NAME="Author" CONTENT="">
 <META NAME="Keywords" CONTENT="">
 <META NAME="Description" CONTENT="">
 <script type="text/javascript">
  function getData()
  {
    //定义SQL语句
    var sql = "select obj_id,obj_caption from mw_sys.mwt_om_obj where rownum<5000";
    //新建数据库连接对象和数据集存取对象
    var ConnDB = new ActiveXObject("ADODB.Connection");
    ConnDB.open("Provider=MSDAORA.1;Password=app;User ID=mw_app;Data Source=pms;Persist Security Info=True");
    var rs = new ActiveXObject("ADODB.Recordset");
    rs.ActiveConnection = ConnDB;
    rs.Open(sql);
    //遍历
    var s;
    var rownum=0;
    var shtml="<table cellpadding=0; cellspacing=0; style='border:solid 1px gray;'><thead><td style='border:solid 1px gray; text-align:center;'>行号</td><td style='border:solid 1px gray; text-align:center;'>作业文本ID号</td><td style='border:solid 1px gray;'>专业编号</td><tbody>";
    while(!rs.EOF)
    {
      shtml+="<tr><td style='border:solid 1px gray; text-align:center;'>";
      shtml+=rownum+1;
      shtml+="</td>";
      for(i = 0;i<rs.Fields.Count;++i)
      {
        shtml+="<td style='border:solid 1px gray; background-color:yellow;'>";
        shtml+=rs.Fields(i).value==null?" ":rs.Fields(i).value;
        shtml+="</td>";
      }
      shtml+="</tr>";
      rownum++;
      if(rownum==1000)
      break;
      rs.MoveNext();
    }
    shtml+="</tbody></table>";
    rs.close();
    ConnDB.close();
    document.getElementById("data").innerHTML=shtml;
  }
 </script>

 </HEAD>

 <BODY>
 <input type="button" value="Table" onclick="getData()"/>
 <div id="data">
 </div>
 </BODY>
</HTML>

1、瘦Web客户端

以上就是JavaScript调用ActiveX操作Oracle数据库的方法,小伙伴们可以试试。

主要适用于基于Internet的应用,对客户端配置几乎没有控制。客户端只需要标准Web浏览器,可以请求和显示标准的HTML页面。所有的业务逻辑都在服务器上执行。

客户端浏览器通过HTTP协议向服务器请求页面资源,服务器将被请求的URL解析为文件系统中的文件,或者由应用服务器处理并可能改变业务状态,得到请求的页面,返回给客户端。

2、胖Web客户端

胖Web客户端对于可以确定客户端配置和浏览器版本的Web应用是最适合的。客户端通过HTTP与服务器通信,使用DHTML、Java
applet或者ActiveX控件执行业务逻辑。HTTP的无连接特性,决定了客户端脚本、ActiveX控件和Java
Applet只能同客户端对象进行交互。图1显示了构架中对象之间的关系。


图1 胖Web客户端构架中的主要参与者

客户端显示接收的页面时,执行嵌入的脚本,这些脚本通常可以在不同的线程中执行,通过DOM接口与页面内容进行交互。

3、Web传输

Web传输模式除了使用HTTP负责客户端和服务器的通信之外,还可以使用IIOP和DCOM等协议以支持分布式对象系统。Web页面通过远程对象桩
和远程对象传输协议与远程对象服务器通信,由服务器管理远程业务对象的生命周期,向客户端对象提供服务。图2显示了各组件之间的关系。


图2 Web传输构架中的主要参与者

远程对象桩是一个对象,在客户端执行,并与远程对象具有相同的接口。当通过这个对象调用方法时,这些方法被封装起来,使用远程对象传输协议RMI/DCOM发送到远程对象服务器,服务器解释请求,实例化并调用实际对象实例中的方法。

澳门新葡亰网站注册,实际应用中,往往根据业务需要,综合使用上述构架。在我们的研究所管理系统中,综合采用了瘦Web客户端和Web传输构架。客户端使用了
java
script进行客户端验证,把经过验证的数据提交服务器处理。在数据的后台管理上,采用了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页之间的关系。

 


图3 Web页之间的关系

.NET框架中大多数建立的是服务器端Web页,经编译后生成HTML代码传递到客户端浏览器。同时,为了提高效率,对于那些不包含业务逻辑的Web
页,在.NET框架中可以直接用HTML元素建立客户端Web页,再建立起与对应的服务器端Web页之间的调用关系。

2、表单建模

表单是Web页的基本输入机制,包括<input>、<select> 和
<textarea>等输入元素,用《Form》构造型进行建模。《Form》没有操作,与之交互的操作是包含表单的Web页的特性。它可以与作为输入控件的
Applet或ActiveX
控件关联,还可以把表单内容提交到服务器进行处理。图4描述了含有表单的客户端Web页与服务器的交互过程。

 

 


图4 包含表单的客户端Web页与服务器的交互过程

.NET中每一个页面只有一个表单,包含所有的输入元素,通常表现为服务器端控件或客户端控件,其中服务器端控件由服务器端Web页经过编译后传送到客户端。

3、组件建模

Web应用中的组件分为服务器端组件和客户端组件两类。服务器端较复杂的业务逻辑通常由中间层完成,包括一组封装了所有业务逻辑的已编译好的组件。因
此,使用中间层不仅可以提高性能,而且可以共享整个应用的业务功能。客户端Web页中常见的组件是Java
Applet和ActiveX,利用它们访问浏览器和客户端的各种资源,实现HTML无法实现的功能。

Web应用扩展定义了《static page》和《dynamic
page》两个抽象组件构造型。《static page》实现客户端组件。《dynamic
page》的主要任务是在运行时系统的物理文件和逻辑视图中的逻辑表现之间提供映射。图5和图6分别表示这两种组件实现的逻辑视图。


图5 由《dynamic page》实现的逻辑视图类

图6 由《static page》实现的客户端组件

4、框架建模