当前位置:首页 » 网页前端 » web接口类图
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

web接口类图

发布时间: 2023-05-25 00:33:34

❶ Web程序当中,接口有什么作用怎么实现接口

接口是个很抽象的东西,举个例子吧,比如我生产电灯,你生产电灯的头坐。我事先告诉你我的电灯是卡口的还是罗口的,那么剩下来将电灯与电源连接起来我就不必关心,因为那是电灯头坐的事情,他会实现这个接口,生产符合我的电灯的头坐。

❷ WEB网和数据库的主要接口方式有哪四种

不理解你所说的是什么意思.我按照自己的意思理解一下,就是前台(Asp.net,php,jsp)等和后台数据库(Sql server,oracle啥的)的连接
每种语言都有自己和后台数据库的一组类库,比如我是学.net的,连接数据库有ado.net可以连接几乎所有的主流数据库,有一些比较偏的数据库会自己提供类库

而不同语言之间的访问,比如我用asp.net想访问java做的数据访问层,现在比较通用的是通过web service,即一个与语言无关的中间层将其隔离

希望我的回答能有帮助~

❸ 基于web的坑洼跟踪和修复系统类图怎么画

1、确认网站架构图中的关键要素(比如产品、技术、服务),梳理关键要素之间的关联:包含、支撑、同级并列等。
2、打开亿图图示,依次选择“新建>软件>程序架构图”,新建一张空白画布。
3、从左侧符号库选择合适图形拖放到画布,亿图图示支持图形缩放、颜色历握填充、线条调整等操作。
4、根据最开始的梳理,对关键要素(比如产品、技术、服务庆数)进行信息标誉烂首注、颜色填充等。

❹ webservice接口是什么它有什么作用

webService接口是一种常用的短信群发提交接口,使用时可以象调用一般函数一样调用WebService的方法。

作用是:该接口主要用于客户自身的软件、网站或其他产品,需要将短信群发功能集成于软件、网站内作为产品整体功能的一部分,在这种情况下可以使用WebService接口来提交短信。实现WebService接口的短信群发功能需要有一定的基本编程能力。如VC++、Delphi、ASP等。

(4)web接口类图扩展阅读:

WebService接口技术支持

1、XML

可扩展的标记语言(标准通用标记语言下的一个子集)为Web Service平台中表示数据的基本格式。XML是由万维网协会(W3C)创建,W3C制定的XML SchemaXSD定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。

2、SOAP

SOAP用于交换XML(标准通用标记语言下的一个子集)编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。

3、WSDL

Web Service描述语言WSDL,就用机器能阅读的方式提供的一个正式描述文档而基于XML(标准通用标记语言下的一个子集)的语言,用于描述Web Service及其函数、参数和返回值。

❺ web开发中所说的接口

对于新手来说,刚学习web项目开发的时候,经常容易混淆接口的具体意思,网上这方面的说明文献也很少,正确的理解接口的意思,对于一个开发者来说很重要。接口到底是什么。今天我来谈一下我个人的感受,欢迎大家指正。
首先,我想换一个角度来理解一下,所谓接口其实就是获取资源的一个途径,通过这个接口也就是这个途径可以获得资源中的东西。对应于开发中,我们可以将实现某种功能的已经封装好的类模块或者函数模块看做资源,那么视图函数的路径url就可以看作接口,通过这个接口可以访问对应的视册弯图函数,调用相应的功能。当然url中所包含的内容就是我们混淆概念的一个原因。
url即路由地址,也就可州让闷以理解网址,具体包含的内容,无外乎:https协议,域名,再加上请求方式,以及拼接的具体内容。post,get等为请求方式。在开发中,分配的接口的任务,这里的接口可以理解为广义滑启的接口。这里的接口包括我们常说的url,还有它所对应的视图函数模块,以及与前端交互的相应数据的传递。

❻ java开发webservice接口有几种方式

Support for Standards
JSR Support

JAX-WS - Java API for XML-Based Web Services (JAX-WS) 2.0 - JSR-224
Web Services Metadata for the Java Platform - JSR-181
JAX-RS - The Java API for RESTful Web Services - JSR-311
SAAJ - SOAP with Attachments API for Java (SAAJ) - JSR-67

WS-* and related Specifications Support

Basic support: WS-I Basic Profile 1.1
Quality of Service: WS-Reliable Messaging
Metadata: WS-Policy, WSDL 1.1 - Web Service Definition Language
Communication Security: WS-Security, WS-SecurityPolicy, WS-SecureConversation, WS-Trust (partial support)
Messaging Support: WS-Addressing, SOAP 1.1, SOAP 1.2, Message Transmission Optimization Mechanism (MTOM)

Multiple Transports, Protocol Bindings, Data Bindings, and Formats

Transports: HTTP, Servlet, JMS, In-VM and many others via the Camel transport for CXF such as SMTP/POP3, TCP and Jabber
Protocol Bindings: SOAP, REST/HTTP, pure XML
Data bindings: JAXB 2.x, Aegis, Apache XMLBeans, Service Data Objects (SDO), JiBX
Formats: XML Textual, JSON, FastInfoset
Extensibility API allows additional bindings for CXF, enabling additional message format support such as CORBA/IIOP


http://cxf.apache.org

❼ 使用PowerDesigner 9.5创建Web服务

Web服务允许您以标准格式提供现有的或新增的功能 并且允许用户和应用程序从任何位置访问它们

PowerDesigner 同时针对Microsoft NET和Java引入了完善的Web服务设计和生成机制 使用PowerDesigner 您可以专注于Web服务的设计 而将所有必需的生成 实现构造的任务交给PowerDesigner完成

一 Web服务概述 Web服务是一种接口 它描述了在网络上可通过SOAP消息进行访问的操作集合

Web 服务的接口和部署位置(可选)由WSDL说明 WSDL是一种声明数据类型 消息 端口类型和端口(可选)的XML文档 通过WSDL 用户可以知道应该发送哪种格式的SOAP消息来调用Web服务以及返回消息的格式为何

为了能使用户查找到所需的Web服务 服务提供者可能会在UDDI注册服务中发布WSDL文档 这样 用户就可以使用UDDI注册服务来搜索Web服务

若要调用Web服务 用户可以向部署Web服务时所在的访问点URL发送SOAP消息 或者使用可简化此调用过程的代理类 SOAP消息也是XML文档

二 PowerDesigner的Web服务功能 PowerDesigner 允许您新建Web服务组件 通过对WSDL进行反向工程来创建Web服务组件 浏览UDDI 搜索WSDL 从Web服务组件的定义生成WSDL 生成 NET(C#和VB NET)的服务器端代码 生成 NET的客户端代理 生成Java(JAX RPC和JAXM)的服务器端代码以及生成Java的客户端代理

为了设计Web服务组件 PowerDesigner使用了UML类图 组件图和部署图 Web服务由组件图的组件表示 而已部署的Web服务则由部署图的组件实例来表示

三 创建Web服务组件 创建Web服务组件有五个步骤 首先是要创建面向对象模型(OOM) 您可以选用以下语言中的任一种 C# Visual Basic NET或Java 在此模型上会自动附加用于WSDL的扩展模型定义(XEM) XEM定义了WSDL的生成模板和扩展属性

第二步是创建类 最好是先创建一个程序组(Package) 然后再在此程序组下创建类

第三步是使用Web服务向导将创建的类转换成Web服务组件 为此您可以右键单击该类 然后选择 创建Web服务组件 命令 或在选中该类后选择 工具>创建Web服务组件 命令 图 显示了一个Web服务向导的示例 Web服务类型可以是接口或实现 如果选择 接口 则表明您只希望定义此Web组件并生成相应的WSDL 对于 NET 此组件类型为 标准 其Web服务将通过 a *** x文件来实现 对于Java 此组件类型可能是 标准 服务程序 或 无状态会话 Bean 这几种Java组件类型的实现方法分别是 标准 类型使用JAX RPC 服务程序 类型使用JAXM 而 无状态会话 Bean 类型将使用J EE(JSR )Web服务规范 当向导结束时会创建一个组件和类 图 显示了组件图中的组件符号示例

图 Web 服务向导

图 组件符号

第四步是添加Web方法 您需要新建一个操作(Operation) 打开该操作的属性页 单击 Web 方法 复选框 定义参数和返回类型以及编写该操作的实现代码 图 显示了Web方法GetStockQuote的实现示例

图 Web方法GetStockQuote的实现示例

最后一步是对WSDL生成进行自定义 可以自定义参数和返回值的WSDL数据类型 操作的扩展属性以及组件的属性和扩展属性 若要检验生成的WSDL 您可以打开组件属性页的WSDL选项卡 生成WSDL的任务可以交给PowerDesigner完成 也可以由您自行定义(用户定义) 如果Web服务组件来源于对WSDL的反向工程 原始的WSDL将得到保留 图 显示了一个生成的WSDL的示例

图 生成的WSDL的示例

您可以在类属性页的 预览 选项卡中预览生成的实现代码 您可以使用部署图 节点和组件实例来仿建已经部署的Web服务组件 此外 还可以在 节点 中定义服务器的URL以及在 组件实例 中定义服务的URL

四 对WSDL进行反向工程 WSDL可以仅定义Web服务接口 也可以同时定义接口和访问点的URL Web服务接口可能被多个服务提供者用来提供相同的服务 当然 这些服务会具有不同的实现和访问点 如果拥有WSDL文档的文件路径或URL 您就可以通过对它进行反向工程来创建Web服务组件 之后可以定义自己的实现方法或将创建的Web服务组件保存在库中供以后再次使用 您在查找感兴趣的WSDL时 可以使用UDDI浏览器在UDDI注册服务中进行搜索

为了对WSDL进行反向工程 需要用C# VB NET或Java中的任意一种语言创建OOM 然后选择 语言>导入 WSDL 命令并输入WSDL文件的路径或URL 进行反向工程之后 会在组件图中创建一个组件 同时在类图中创建一个类 所创建的类将仅包含该Web服务的操作信号 若想实现该Web服务 还需要定义这些操作的实现代码

在UDDI注册服务中搜索WSDL 如果希望搜索在UDDI注册服务中注册的WSDL 请打开 导入WSDL 窗口 然后单击 浏览UDDI 按钮 通过 浏览 UDDI 窗口(见图 ) 您可以选择UDDI运营商 搜索条件和搜索类型 并可以按实体名称 服务名称或WSDL名称进行搜索 此外 您还可以预览找到的WSDL

图 浏览UDDI 窗口

五 生成 NET类型的Web服务 对于 NET服务器端代码 PowerDesigner会生成一个 a *** x文件 这种Web服务的实现类可以在上述的 a *** x文件中生成 也可以在外部生成 此实现类所使用的语言可以是C#或者VB NET 在类属性页的 预览 选项卡中 可以预览 a *** x文件和相应的实现类代码 图 显示了C#语言的 a *** x文件示例

图 C#语言的 a *** x文件示例

PowerDesigner还可以生成客户端代理类来简化Web服务的调用 为生成客户端代理类 PowerDesigner使用了Visual Studio NET附带的wsdl exe程序

若要生成WSDL 服务器端代码和/或客户端代理 请选择 语言>生成C#代码 或 语言>生成VB NET代码 命令 如果要生成客户端代理 可以在 任务 选项卡中选择 生成Web服务客户端代理 选项 图 显示了可用的生成任务 如果这个类不是在 a *** x文件内部生成的 您将可以对这些C#代码或VB NET代码进行编译 不过 在编译C#或VB NET文件时 您必须定义CSC或VBC变量来指示csc exe或vbc exe命令的位置

在部署Web服务时 只需要将IIS目录下的 a *** x文件和相应的类文件进行复制 C:Inetpub oot<程序组名> 其中 <程序组名> 是程序组的名称 要测试此Web服务 可以在浏览器中输入以下URL //<主机名>/<程序组名>/<服务名> a *** x

图 Web服务的生成任务

六 生成Java类型的Web服务 如果Web服务的实现类型为 标准 PowerDesigner将使用JAX RP 来实现 如果实现类型为 服务程序 PowerDesigner将使用JAXM来实现 如果实现类型为 无状态会话Bean 则PowerDesigner将使用J EE(JSR )Web服务规范来实现 JSR 尚未正式颁布

JAX RPC定义了RPC类型的Web服务调用 虽然它易于开发和使用 但为了避免复杂的对象/XML映射 它只能局限于简单的消息格式 而基于JAXM的Web服务组件显然更具优越性 它允许您灵活地处理复杂的消息结构

若要使用JAX RPC或JAXM 您需要安装Java Web Services Developer Pack(JWSDP) 此程序包可从Sun公司的网站下载 在部署JAX RPC或JAXM类型的Web服务组件时 需要有支持JAX RPC或JAXM的服务器 支持JAX RPC或JAXM的Apache Tomcat附带提供了JWSDP

至于基于JAX RPC的Web服务组件 您只需实现其Web方法的代码 若要生成WSDL 服务器端代码和/或客户端代理 可选择 语言>生成Java代码 然后选择 使用XRPCC工具生成WSDL(服务器端) 和/或 使用XRPCC工具生成Web服务的代理代码 命令(见图 ) XRPCC命令是JWSDP的一个工具 它可以生成JAX RPC类型的服务器端代码或客户端代理 在部署生成的Web服务时 需要创建一个包含所有生成文件的 WAR文件 并将此 WAR文件部署在支持JAX RPC的服务器上 比如说Apache Tomcat

图 JAX RPC生成任务

对基于JAXM的Web服务组件而言 您需要实现其onMessage操作 onMessage操作将按照在WSDL中的指示 接收并处理输入的SOAP消息并构建返回消息 以及将此消息返回 要生成WSDL和JAXM类型的Web服务 请选择 语言>生成Java代码 命令 然后选择 构建Web组件 创建Web应用程序WAR 命令(见图 ) 该命令会对JAXM服务程序代码进行编译并创建WAR文件 要部署此JAXM服务程序 您可以将上述WAR文件部署在支持JAXM的服务器上 比如说Apache Tomcat

图 JAXM生成任务

至于基于无状态会话Bean的Web服务组件 由于JSR 规范尚未正式颁布 因此目前还不能使用

七 下一步要增强的功能 J EE(JSR )Web服务规范不久将面世 供人们使用 通过它 您可以将无状态会话Bean用作Web服务实现的利器 它可以让现有功能以Web服务的新面目出现 同时也可以新建Web服务 PowerDesigner 附带提供了基于早期JSR 规范的版本 该版本尚待进一步的认证 等该规范正式颁布后 我们将提供维护版本以实现对它的完全支持

PowerDesigner的新版本还将支持Web服务的综合标准

lishixin/Article/program/SQL/201311/16374

❽ 一个WEB项目有多少接口

一个WEB项目四个多少接口。
1、打印服务器的Web接口,打印服务器是Windows Server 2003服务器中的一种。
2、终端服务器的Web接口终端服务器是一种可以让有权限的远程网络用户。
3、流媒体服务器的Web接口。
4、远程维护Web接口远程维护功能是一项非常重要的功能。

❾ App 和 Web 的通用接口该怎么设计

1、在接口定义中确定MVC的GET或者POST方式
由于我们整个Web API平台是基于MVC的基础上进行的API开发,因此整个Web API的接口,在定义的时候,一般需要显示来声明接口是[HttpGet]或者[HttpPost],虽然有些接口也可以不用声明,但是避免出现类似下面的错误信息,显式声明还是有好处的。
请求的资源不支持 http 方法“POST

例如在基类定义的查找对象接口如下所示。

/// <summary>
/// 查询数据库,检查是否存在指定ID的对象
/// </summary>
/// <param name="id">对象的ID值</param>
/// <returns>存在则返回指定的对象,否则返回Null</returns>
[HttpGet]
public virtual T FindByID(string id, string token)

如果是增删改的接口,一般需要声明为POST方式提交数据,而且基于安全性的考虑,需要携带更多的参数。

/// <summary>
/// 插入指定对象到数据库中
/// </summary>
/// <param name="info">指定的对象</param>
/// <returns>执行操作是否成功。</returns>
[HttpPost]
public virtual CommonResult Insert(T info, string token, string signature, string timestamp, string nonce, string appid)

2、动态对象的接口定义
在一般的Web API接口里面,我们可能都会碰到很多简单类型的参数,但是又想让它们以POST方式提交数据,那么我们就可以有两种方法来处理,一种是定义一个类来放置这些参数,一种是采用动态的JObject参数,前者有很多不方便的地方,因为我们不可能为每个接口参数定义多一个实体类,这样可能会有很多难以管理的类定义。如下面是微信API的调用接口案例,我们也需要设置这样的处理规则。
接口调用请求说明
http请求方式: POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/groups/update?access_token=ACCESS_TOKEN
POST数据格式:json
POST数据例子:{"group":{"id":108,"name":"test2_modify2"}}

那么我们采用JObject是这么样的呢,我们来看接口的定义和处理代码。JObject是Newtonsoft.Json.Linq命名空间下的一个对象。

/// <summary>
/// 修改用户密码
/// </summary>
/// <param name="param">包含userName和userPassword的复合对象</param>
/// <param name="token">用户访问令牌</param>
/// <returns></returns>
[HttpPost]
public CommonResult ModifyPassword(JObject param, string token)
{
//令牌检查,不通过则抛出异常
CheckResult checkResult = CheckToken(token);
dynamic obj = param;
if (obj != null)
{
string userName = obj.userName;
string userPassword = obj.userPassword;

bool success = BLLFactory<User>.Instance.ModifyPassword(userName, userPassword);
return new CommonResult(success);
}
else
{
throw new MyApiException("传递参数出现错误");
}
}

其中我们把JObject对象转换为我们所需要的对象的时候,因为我们没有定义具体的实体类,因此采用了dynamic语法,声明这是一个动态对象,由运行时获取对应的属性。
dynamic obj = param;

这样我们就可以在调用的时候,动态POST对应的JSON对象给Web API接口,而不需要预先定义各种接口参数的类了。

/// <summary>
/// 调用Web API接口,修改用户密码
/// </summary>
/// <param name="userName">用户名称</param>
/// <param name="userPassword">修改的密码</param>
/// <returns>如果修改成功返回true,否则返回false</returns>
public bool ModifyPassword(string userName, string userPassword)
{
var action = "ModifyPassword";
var postData = new
{
userName = userName,
userPassword = userPassword
}.ToJson();

string url = GetTokenUrl(action);

CommonResult result = JsonHelper<CommonResult>.ConvertJson(url, postData);
return (result != null) ? result.Success : false;
}

其中GetTokenUrl是根据token和API的地址等参数,构建一个完整的提交地址。我们在上面代码通过
var postData = new
{
userName = userName,
userPassword = userPassword
}.ToJson();

就可以动态创建一个对象,并生成它的JSON字符串,把数据POST提交到对应的API接口里面即可,然后对结果进行对象的转换就算完成了。

3、集合和分页的处理
在很多接口里面,我们都需要用到分页的处理,Web API也不例外,这样可以提交数据检索效率,减少服务器数据处理的压力,同时也提交客户端的数据显示速度。
一般的集合接口定义如下所示(通用性基类接口)。

/// <summary>
/// 返回数据库所有的对象集合
/// </summary>
/// <returns>指定对象的集合</returns>
[HttpGet]
public virtual List<T> GetAll(string token)
{
//检查用户是否有权限,否则抛出MyDenyAccessException异常
base.CheckAuthorized(AuthorizeKey.ListKey, token);

List<T> list = baseBLL.GetAll();
return list;
}

但是这样的返回记录会比较多,一般情况下需要分页,那么分页的处理接口定义如下所示。

/// <summary>
/// 根据条件查询数据库,并返回对象集合(用于分页数据显示)
/// </summary>
/// <returns>指定对象的集合</returns>
[HttpPost]
public virtual PagedList<T> FindWithPager(string condition, PagerInfo pagerInfo, string token)

分页接口,在这里返回的结果里面,用了一个PageList的泛型类,这个方便我们获取当前的记录及总数,它的定义如下所示。

/// <summary>
/// 分页集合
/// </summary>
/// <typeparam name="T">对象</typeparam>
public class PagedList<T>
{
/// <summary>
/// 返回记录的总数
/// </summary>
public int total_count { get; set; }

/// <summary>
/// 列表集合
/// </summary>
public List<T> list { get; set; }
}

最后整个分页的处理Web API接口实现如下所示。

/// <summary>
/// 根据条件查询数据库,并返回对象集合(用于分页数据显示)
/// </summary>
/// <returns>指定对象的集合</returns>
[HttpPost]
public virtual PagedList<T> FindWithPager(string condition, PagerInfo pagerInfo, string token)
{
//检查用户是否有权限,否则抛出MyDenyAccessException异常
base.CheckAuthorized(AuthorizeKey.ListKey, token);

List<T> list = baseBLL.FindWithPager(condition, pagerInfo);

//构造成Json的格式传递
var result = new PagedList<T>() { total_count = pagerInfo.RecordCount, list = list };
return result;
}

最后客户端调用分页的Web API代码如下所示。

/// <summary>
/// 根据条件查询数据库,并返回对象集合(用于分页数据显示)
/// </summary>
/// <param name="condition">查询的条件</param>
/// <param name="pagerInfo">分页实体</param>
/// <returns>指定对象的集合</returns>
public virtual List<T> FindWithPager(string condition, ref PagerInfo pagerInfo)
{
var action = "FindWithPager";
string url = GetTokenUrl(action) + string.Format("&condition={0}", condition);
var postData = pagerInfo.ToJson();

List<T> result = new List<T>();
PagedList<T> list = JsonHelper<PagedList<T>>.ConvertJson(url, postData);
if (list != null)
{
pagerInfo.RecordCount = list.total_count;//修改总记录数
result = list.list;
}
return result;
}

4、混合框架界面整合Web API接口
在整个Web API的平台构建以及在混合框架的整合过程中,我把各个模块还是遵循相对独立的方式进行开发和整合,它们实现了从直接访问数据库、以WCF服务获取数据,以及通过WebAPI调用方式获取数据几种方式的统一,从而实现了整个混合框架的高度整合。

整个混合框架的核心是以相对独立的方式,整合各个可重用的模块,我们可以遵循一定的基础上,快速构建统一的应用平台。

搭建完毕的整个WebAPI平台,其中包括了服务端内容,以API控制器的方式,发布了对应的Web API接口。

在每个混合框架的独立模块里面,我们封装了对应的Web API客户端调用处理,从而实现了Web API的调用方式。

在Win10下,使用Web API模式运行混合框架,获得的主体界面效果如下所示。

独立模块权限管理系统界面如下所示。

系列文章如下所示:
Web API应用架构在Winform混合框架中的应用(1)
Web API应用架构在Winform混合框架中的应用(2)--自定义异常结果的处理
Web API接口设计经验总结
Web API应用架构在Winform混合框架中的应用(3)--Winfrom界面调用WebAPI的过程分解
Web API应用架构在Winform混合框架中的应用(4)--利用代码生成工具快速开发整套应用
Web API应用架构在Winform混合框架中的应用(5)--系统级别字典和公司级别字典并存的处理方式

❿ Web开发需不需要UML,软件工程

Web技术的发展,使得管理系统的开发更方便、功能更强大,在此系统的开发过程中,Web技术起了一个骨架式的支持作用;与此同时组件技术的发展为系统的开放性、集成性提供了便利,有效合理地引入组件技术是当前Web系统开发与发展的一个方向;通过对系统的开发进行建模,形象直观的图形化表示,可以显示系统的流程与功能。选择有效的建模方法,充分利用Web技术与组件技术,提高软件的开发效率,提高的软件的可靠性和可维护性,是每个软件开发人员所关心的问题。

UML(Unified Modeling Language)是基于对象技术的标准建模语言,定义良好、易于表达、功能强大的特点使它在面向对象的分析与设计中更具优势。在基于Web技术和组件技术的系统建模中,它完善的组件建模思想和可视化建模的优势更利于系统开发人员理解程序流程和功能,进一步提高Web系统的开发效率以及Web组件的可重用性和可修复性。

本文将结合我们自主开发的活塞PDM系统中的项目审批流程的建模,介绍UML在基于WEB技术和组件技术的系统建模中的应用。

2、基于Web的应用系统结构

对于基于Web技术的应用系统,用户直接面对的是客户端浏览器,用户在使用系统时,请求之后的事务逻辑处理和数据的逻辑运算由服务器与数据库系统共同完成,对用户而言是完全透明的。运算后得到的结果再通过浏览器的方式返回给用户。这个过程可分成一些子步骤,每一个子步骤的完成可理解为通过一个单独的应用服务器来处理,这些应用服务器在最终得到用户所需的结论之前,相互之间还会进行一定的数据交流和传递。图1就是Web的应用结构简图。

随着Web应用技术的发展,对Web数据流程的解释上还会有相应的改进或补充。

3、Web应用系统的UML建模方法

页面、脚本、表单和框架是Web应用系统的关键部分,数据流程的模型化表示关键就是用UML对上述Web元素应用及其关系建模,下面对这几种元素的模型化表示作一个简要介绍。
(1)页面建模。用户在使用Web应用系统时,是通过页面进行系统的操作。在页面建模中可用两个类别模板《Client Page》和《Sever Page》分别表示客户端页面和服务器端页面。客户端页面的属性是页的作用域中定义的变量,方法是页面脚本中的函数;服务器页面的属性是页面脚本中的变量,方法是脚本中定义的函数。在使用页面信息传递时,还可能出现服务器页面的重定向,在UML建模中,用类别模板《redirect》来表示;对于客户端页面和服务器页面的构造关联用类别模板《bulid》表示,这种关联是一种单向关联,由服务器页面指向客户端页面,具体表示如图2所示。

在Web应用系统中,还会经常用到的就是超级链接,在UML建模中,用类别模板《link》表示超级链接,它的参数模拟为链接属性。
(2)表单建模。用户的要求一般通过表单与数据库交互。在UML建模中,表单用类别模板《form》表示,属性是表单中的域,表单没有方法。表单在处理请求时,要与Web页面交流数据,这个交流过程是用提交按钮submit来完成,为了在建模中表示这种关系,用类别模板《submit》表示。
(3)组件建模。在使用组件技术的Web应用系统建模中,对组件的建模是个重要环节,在UML基本的图形化建模元素中,设立了专门的组件图。组件在使用过程中,同样的分成了客户端组件(如Java Applet,ActiveX控件)和服务器端组件。在系统的UML模型化表示中,用类别模板《Client Component》表示客户端组件,用《Sever Component》表示服务器端组件。
(4)框架建模。框架通过定义类别模板元素《frameset》来实现,frameset指定并命名各个框架,每个框架容纳一个页面;框架的使用还涉及到目标target,建模时用《target》来表示。

4、UML在活塞PDM系统建模中的运用

活塞PDM系统是在传统PDM系统的基础上,引入了组件技术和Web技术,对数据流程的处理更趋于简易性和方便性。在对该系统的建模过程中,要体现整个系统前台与后台间数据交互的流程。在设计时,主要是考虑设计它的class diagram(类图)和component diagram(组件图),用这两类模型图来体现UML的用例驱动和系统组件结构的特性。由于在系统的开发中采用了模块化的设计方法,因此在构划模型图时,采用了先整体后局部的思路,首先考虑整个系统的案例图,再对子模块进行分析和设计,在每个子模块数据流的入口和出口设置模型图间数据交互的接口。下面以活塞PDM系统中项目审批流程子模块的建模为例说明UML在此系统建模中的应用。

4.1 项目审批流程
项目审批是项目管理流程的一部分,功能就是实现审批过程和数据传递的自动进行,取消了传统审批流程中大量纸质文件的使用。下面以活塞新产品开发的项目审批为例来说明UML对项目审批流程的建模方法。

活塞新产品开发的项目审批过程有7个环节组成,分别是项目申请、组织评审、制定实施方案、技术委员会及专家委员会评审、技术副总审核、总经理审核和董事会审核。通过这七个环节来决定一个项目实施的可行性或者合理性。

审批过程自动化的实现方法,是在Web技术和组件技术的基础上,对每一个环节设置了评审状态tag。当tag=1时,表明项目已通过该环节评审,可进入下步评审;当tag=0时,表明项目还未经过评审,或者未通过评审,需要返回去修改项目运行的可行性研究,等待再一次的评审。同时在每个环节进行评审时,还要考虑该项目是否已进入了下一级评审,如若项目已进行了下一级的评审,这时该环节的操作人员都无权再对该环节所填写的评审意见进行编辑。也就是在对每个环节进行维护时,还要考虑下一级的评审状态。

在建模之前,首先看一下项目审批流程图,如图3所示。

除了这七个审批环节,为了让用户及时了解交叉投入生产的项目审批或进展情况,提供了项目浏览功能,用户按照管理员所授予的权限,在权限范围内并且利用项目浏览子模块中提供的关键字段、项目评审状态或者进展状态进行分类检索。

在项目评审流程的每个环节,一般设置了两部分功能需求,即填写该环节评审的内容、编辑该环节评审的内容。

比如总经理评审环节,它的功能设置如图4所示。

为了实现网上审批的自动化,在整个流程的环节功能设置时,遵照了如下的规则要求:在每个环节的查看已填评审内容时,列出的项目都是正在等待进入该环节评审的项目,而不属于这种情形的项目在此环节中是显示不出来的;同样,对于在编辑此环节评审内容上,已经进行了下一级评审的项目也是不可能列出的,每个环节的负责人只可以对此环节以前的评审内容具有浏览功能,而不具备编辑功能。如果要查看整个项目的评审状况,在管理员授予项目浏览功能的权限下,通过项目浏览一项完成。

整个流程所包括的各个环节,在功能设置上是类似的,差异是评审环节在整个评审流程中所处的位置。在进行UML建模时采用了把这些环节分开的方法,先对每个环节建模,最后再把单个的环节模型图整合成一个完整流程的模型图。由于篇幅所限,下面以总经理评审的环节为例说明UML的建模方法。

4.2 总经理评审的类图(Class Diagram)
在项目审批流程中,设计了总经理审核环节的Class Diagram,如图(5)、图(6)、图(7)所示。图(6)和图(7)是图(5)的延续。该类图显示了总经理审核环节中各个页面之间的关系。为简化,在此类图中没有列出各个类的属性和方法。整个类图实现了查看已填写评审内容、填写总经理评审内容和编辑评审内容。

4.3 总经理评审的组件图(Component Diagram)
组件图是分析该环节所涉及的功能是如何实现的,这部分与具体的编码工作相关。总经理评审环节的模块组件图如图(8)所示。

4.4 由模型图到代码的转换
类图和组件图说明了在基于Web技术的信息交互流程,页面的超级链接和页间的重新导向在JSP代码设计中,由模型图就可以掌握它们之间交互的逻辑,这样使程序编写更富条理性和方便性。在实际工作中,可以设置为CRC卡,方便编程人员的使用。如若再比较详细地设计出对象图和顺序图,对于整个系统的类定义和方法设置,会提供更大的方便。

5、结束语

建模对系统的开发过程中起着很重要的作用,在系统的开发和维护中有必要建立系统的模型。UML是一种图示化的面向对象建模语言,它形象直观、应用广泛,并对Web技术和组件技术在系统开发中的建模方法有了比较合理有效的定义。在UML提供的各种模型图的基础上,还可以依照所有开发技术的特点对它的表示进行扩展,在本文的建模中就是用了UML的类别模块扩充机制,为某些模型元素添加新的语义,构造新的模型,来说明开发过程中的隐含特性。

通过利用UML建模,对基于Web的PDM系统中的项目审批流程进行了分析和设计,对整个流程的功能有了一个清晰的认识,利于开发人员对系统的开发与维护,同时可为系统的升级或者二次开发提供一个理论依据。