科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件使用PowerDesigner 9.5创建Web服务

使用PowerDesigner 9.5创建Web服务

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

使用PowerDesigner 9.5,您可以专注于Web服务的设计,而将所有必需的生成、实现构造的任务交给PowerDesigner完成。

作者:Xiao Wang 来源:Sybase 2007年9月15日

关键字: 软件

  • 评论
  • 分享微博
  • 分享邮件

您可以在类属性页的"预览"选项卡中预览生成的实现代码。 您可以使用部署图、节点和组件实例来仿建已经部署的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”窗口(见图 5),您可以选择UDDI运营商、搜索条件和搜索类型,并可以按实体名称、服务名称或WSDL名称进行搜索。此外,您还可以预览找到的WSDL。

图5 “浏览UDDI”窗口

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

图6 C#语言的.asmx文件示例

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

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

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

图7 Web服务的生成任务

生成Java类型的Web服务如果Web服务的实现类型为“标准”,PowerDesigner将使用JAX-RP 来实现。如果实现类型为“服务程序”,PowerDesigner将使用JAXM来实现。如果实现类型为“无状态会话Bean,则PowerDesigner将使用J2EE(JSR109)Web服务规范来实现。JSR109尚未正式颁布。”

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服务的代理代码”命令(见图8)。XRPCC命令是JWSDP的一个工具。它可以生成JAX-RPC类型的服务器端代码或客户端代理。在部署生成的Web服务时,需要创建一个包含所有生成文件的.WAR文件,并将此.WAR文件部署在支持JAX-RPC的服务器上,比如说Apache Tomcat。

图8 JAX-RPC生成任务

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

图9 JAXM生成任务

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

下一步要增强的功能

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

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

结论PowerDesigner 9.5简化了Web服务的设计和生成过程。只要懂得如何创建类和方法,就能知道如何创建Web服务!您可以使用PowerDesigner设计、创建Web服务,以及对它进行反向工程和为其创建文档。如果希望重复使用这些Web组件,您可以创建一个Web服务组件库,并使用版本库(Repository)来管理不同版本的Web组件。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章