UML软件工程组织

基于ROSE的Web Service建模(3)
作者:曹伟    本文选自:51CMM  2003年01月09日
 超链接作为 Web 页请求在系统中实施,Web 页作为实施视图中的构件来建模。指向客户机页的链接关联关系大体等同于指向构建该客户机页的服务器页的链接关联关系。这是因为链接实际是一个页请求,不是上述两种类抽象。由于 Web 页构件同时实现两种页抽象,因此指向由该页构件实现的任何类的链接都是等同的。

标注值用于定义随链接请求一起传递的参数。“link”关联关系标注值“Parameters”是一个参数名(和可选值)的列表,处理请求的服务器页要用到它。在图 2 中,SearchResults 页包含数目可变的指向 GetProduct 服务器页的超链接 (0..*),每一个链接都有一个不同的 productId 参数值。GetProduct 页用于构建 productId 参数所指定产品的 ProductDetail 页。



图2. 使用超链接参数


使用这些构造型简化了对页脚本和关系的建模。"server page" 类的操作变为页服务器端脚本的函数,它的属性变为页范围变量(页函数可对其进行全局访问)。"client page" 类的操作和属性也同样变为在客户机上可见的函数和变量。将服务器端页和客户端页作为不同的类考虑,其最大好处在于明确页与系统的其他类之间的关系。客户机页根据它们与客户端资源的关系进行建模。客户端资源有:DOM、Java Applet、 ActiveX 控件和插件(图 3)。服务器页根据它们与服务器端资源的关系进行建模。服务器端资源有:中间层构件、数据库存取构件、服务器操作系统等(图 4)。



图 3. 客户机协作




图 4. 服务器协作


用类构造型对 Web 页的逻辑行为建模的最大优势在于:页与服务器端构件的协作可以基本上用其他任意服务器端协作所使用的方式来表示。"server page" 仅仅是参与系统业务逻辑的另一个类。上升到概念的层次来讲,服务器页一般扮演控制者的角色,协调必要的业务对象活动,以满足浏览器页请求所提出的业务目标。

客户端的协作更复杂一些。部分原因可归咎于可用技术的多样性。即使是最简单的客户机页,至少也是一个既包含内容又包含表示信息的 HTML 文档。浏览器利用页的格式指令提供 HTML 页,有时还带有单独的样式表。在逻辑模型中,这一关系可用客户机页对构造型为 "Style Sheet" 的类的依赖关系来表示。样式表基本上是一个表示问题,通常不包含在 ADM 内。

表单


Web 页的基本数据输入机制是表单。表单在 HTML 文档中用
标记来定义。每个表单都会指明它自身要提交到哪一页。表单包括许多输入元素,它们全用 HTML 标记表示。最常用的标记是 <input>、<select> 和 <textarea> 。输入标记多种多样,它可以是一个文本字段、复选框、单选按钮、按钮、图像、隐藏字段,还有其他一些不太常见的类型。对表单建模要使用另一个类构造型:“Form”。“Form”没有操作,这是因为可能在 <form> 标记中定义的所有操作实际上都为客户机页所有。表单的输入元素都是“Form”类的建有构造型的属性。“Form”可以与作为输入控件的 Applet 或者 ActiveX 控件有关系。表单还与服务器页有关系,服务器页即是处理表单提交内容的页。这种关系的构造型为“submit”。由于表单完全包含在 HTML 文档内,所以它们在 UML 图中用一种强聚合关系形式表示。图 5 是一个简单的购物车页,它定义了一个表单,显示了与要处理表单的服务器页的提交关系。



图 5. 表单提交给服务器页


在图5中,以“JavaScript”为构造型的类是一个代表购物车中的商品项的对象。对于可有多种输入可能的字段,它们的表单属性说明中使用了数组语法。在这个例子中,这意味着购物车可以有零到多个项,每个项都有一个 Qty、AllowSubs、Cost 和 Total <input> 元素。

由于客户机页内的所有活动都用 JavaScript 执行,而 JavaScript 是一种无类型的语言,所以为这些属性指定的数据类型只是为了便于实施员辨认。在 JavaScript 中执行或作为 HTML 输入标记执行时,该类型将被忽略。这对函数参数也成立,函数参数是模型的一部分,尽管本图并未明确显示。

框架


HTML 框架从刚被引入 Web 站点和 Web 应用程序时就引发了极大的争论,且意见呈两极分化。框架允许在某一时刻有多个页激活,并对用户可见。目前最常用的浏览器还具备一组最新的特性,允许用户机器上同时打开多个浏览器实例。使用动态 HTML 脚本,这些页中的构件可以彼此交互。客户端复杂交互的潜力非常大,使得对此建模的需要变得更大。

是否在应用程序中采用框架或多个浏览器实例,这要由构架设计师决定。如果决定采用,客户端行为的模型就需要在ADM中表示出来,原因如上所述。要对框架的使用进行建模,我们又定义了两种类构造型:“frameset”和关联关系构造型“targeted link”。框架集类代表一个容器对象,直接映射到 HTML <frameset> 标记。它包含客户机页和目标。目标类是一个被其他客户机页引用的指定框架或浏览器实例。目标链接关联关系是指向另一个页的超链接,但它要在特定目标中才能提供。一个框架根据目标命名为Content,另一个框架只包含一个客户机页。这一客户机页框架包含书的目录(TOC)。该页的超链接是有目标的,因此超链接指向的内容在 Content框架中显示。得到的效果就是页左侧的一个静态目录,以及页右侧的书中每一章的内容。

上一页   下一页

 



版权所有:UML软件工程组织