技术开发 频道

基于ROSE的Web Service建模(3)

    用类构造型对 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框架中显示。得到的效果就是页左侧的一个静态目录,以及页右侧的书中每一章的内容。

0
相关文章