Web服务建模(二): 建模并生成 WSDL
本文是系列文章中的第二篇,主要介绍了Web服务建模并生成WSDL……
本文是一个由三部分组成的系列文章中的第二篇,该系列文章着眼于使用 UML 建模(特别是,当使用 IBM Rational Software Architect 时)为标准化的 Web 服务的详细设计建模。本文介绍了利用 UML 2.0 Profile for Software Services 进行 Web 服务建模并生成 Web Service Definition Language (WSDL)。
引言
本系列文章介绍如何建模,详细说,是 Web 服务相关的架构,以及如何使用 IBM ® Rational® Software Architect(今后称为 Software Architect)在实际实现中实现这些模型。本系列着眼于以下主题:
- 第一部分:建模并生成 XML Schema
- 第二部分:建模并生成 WSDL
- 第三部分:将模式应用于 Web 服务工件的生成
本文建立在本系列第一部分中介绍的实例的基础之上。特别地,本文中的实例将使用第一篇文章所开发的模式(schema)。本文中所有的实例都已经用 Software Architect version 6.0.1 开发了,尽管下面所介绍的可下载的转换也应该用 Software Architect version 6.0.0.1。
Web 服务定义建模
本系列的第一篇文章回答了这样一个问题,为 Web 服务规范的细节建模是否比直接编辑用于获取服务细节的 WSDL 和 XML Schema 有价值。文章特别根据模型驱动开发(Model-Driven Development,MDD)方法的应用来回答的,如图 1 中的图表所示。
图 1. Web 服务开发的 MDD 配置

本文的焦点是服务定义的建模,也就是,利用 WSDL 表述的服务规范的各个方面。在这方面,它关注服务提供和所需的操作、消息,和接口,一些您希望 UML 能够表述的内容。事实上,面向服务的某些元素用 UML 表述实际上比用 WS-* 系列规范表述要好。在寻找为面向服务的解决方案建模的方法过程中,我们不得不选定一些关于具体到面向服务的观点的设计方面和如何对它们建模的指导。在SOA 建模 [2]中,CBDi Forum 清楚地说明了以下建模指导:
- 模型 业务层服务
- 模型基于协作的服务
- 显式模式接口与实现的分离
- 显式模式提供者与消费者的分离
为了确保在模型中获得这些指导,IBM 开发了UML 2.0 Profile for Software Services [3](编制并发布于 IBM® developerWorks® 网站),并提供了向 Software Architect 的安装添加此概要文件 —— 以及模板模型和一些示例模型 —— 的功能的Software Architect 插件 [4]。此概要文件还可以附有一个可以添加到IBM® Rational Unified Process® (RUP®) [5] 中的附加指导集。它结合了明确地为服务规范 —— 作为 UML 接口 —— 建模,与提供者分离,以及与服务消费者分离的 UML 概要文件,和描述服务协作如何用于描述业务层服务的指导。
一旦使用了此概要文件对服务建模,对于 UML 到 WSDL 的转换示例就可以用于生成 WSDL 源。很重要的是,认识到 Software Architect 转换本身不需要将概要文件应用到模型上,然而,这样做会使模型更加明确,并且所选择的概要文件元素提供转换所要求的建模风格。该概要文件应用于设计和实现模型。这些的真正区别倾向于模型中所获取的细节量,并且设计模型经常被细化成为实现模型,而不是一个完全分离的模型。
- 本文关键词:

