WebService(PB)

上传人:壹****1 文档编号:568650487 上传时间:2024-07-25 格式:PPT 页数:64 大小:2.28MB
返回 下载 相关 举报
WebService(PB)_第1页
第1页 / 共64页
WebService(PB)_第2页
第2页 / 共64页
WebService(PB)_第3页
第3页 / 共64页
WebService(PB)_第4页
第4页 / 共64页
WebService(PB)_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《WebService(PB)》由会员分享,可在线阅读,更多相关《WebService(PB)(64页珍藏版)》请在金锄头文库上搜索。

1、Notes accompany this presentation. Please select Notes Page view. These materials can be reproduced only with official approval from Gartner. Such approvals may be requested via e-.如何用如何用 PB WebService PB WebService 开发多层架构应用系统开发多层架构应用系统 黄国酬本主题的演讲,主要包括以下内容本主题的演讲,主要包括以下内容什么是WebService?用WebService为了解决什

2、么问题?PB如何开发WebService的服务端应用程序?PB客户端应用如何调用服务器上的WebService?PB的DataWindow,在多层架构的应用系统开发过程中,如何处理数据检索、更新、打印等。如何实现UI和业务功能的分离?以及性能、安全性方面的注意事项等等。应用程序为什么要开发成多层架构?多层架构的应用跟传统的CS应用的开发,在思维、方法、架构上有什么异同?如何把以前的CS的应用程序,升级转换为多层架构的应用程序?WebService系统设计的安全性问题。WebService的调试和部署Notes accompany this presentation. Please select

3、 Notes Page view. These materials can be reproduced only with official approval from Gartner. Such approvals may be requested via e-.什么是什么是WebService?用用WebService为了解决什么问题?为了解决什么问题?什么是什么是WebServiceWeb Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web

4、上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。关键技术 XML SOAP WSDL UDDIXMLXML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。SoapSoap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SM

5、TP。WSDLWSDL (Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。UDDIUDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/H

6、TTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。XML Web Service的特点跨防火墙的通信应用程序集成应用程序集成B2B的集成的集成软件和数据重用软件和数据重用Notes accompany this presentation. Please select Notes Page view. These materials can be reproduced only with official approval from Gartner. Such approvals may be requeste

7、d via e-.如何用如何用PB开发开发WebService?搭建搭建Windows 系统环境系统环境安装IIS应用服务器如果是用于开发环境,则需要安装.NET FrameWork 2.0或以上版本的SDK.如果是用于发布环境,则只需要安装.NET FrameWork 2.0或以上版本即可。(SDK版本数据包比较大,里面包括了一些编译工具)如果安装了VS2005或以上版本的开发工具,不需要再单独安装SDK如果在安装IIS之前,已经安装了.NET FrameWorkSDK,则需要执行以下命令,在IIS中注册.NET FrameWork的运行环境。 C:WINDOWSMicrosoft.NETF

8、rameworkv2.0.50727 aspnet_regiis -i在在IIS中增加网站中增加网站在IIS增加一个网站(不是虚拟目录)。如果计算机已存在多个网站,可以通过主机头或端口号区分出来。如果建立的网站端口号不是80,则必须保证防火墙开放了端口。网站的ASP.NET版本必须为2.0或以上版本。IIS里面相应版本的ASP.NET 服务扩,必须启用(允许)新建的网站,允许是一个空站。即把网站建在一个空白的目录上。网站创建向导网站创建向导 网站创建向导网站创建向导 由于网站建在本地,所以IP地址可以不输(127.0.0.1)。一台电脑可以建立多个网站,通过端口号或主机头区分出来。主机头一般为

9、网站的域名,如.由于在本地建立,没有绑定域名,所以用不同的端口加以区分。网站创建向导网站创建向导 网站的主目录。该目录允许是一个空白目录。目录名称不要包含网站的主目录。该目录允许是一个空白目录。目录名称不要包含中文,否则中文,否则PB在发布时,有时会有错误产生。在发布时,有时会有错误产生。网站创建向导网站创建向导 网站访问权限,必须选中“运行脚本”。网站创建向导网站创建向导 点击下一步,网站创建完成。设置网站的设置网站的ASP.NET版本版本IIS6为新建的网站,缺省的为新建的网站,缺省的ASP.NET版本是版本是1.1.4322,需要手工修改为,需要手工修改为2.0版本,版本,至于网站建立完

10、毕,稍候可以把至于网站建立完毕,稍候可以把PB开发的开发的WebService,发布到该网站下面。,发布到该网站下面。在在PB中增加中增加WebService项目项目运行PB,新建一个.Net WebService 的Target在在PB中增加中增加WebService项目项目选择选择Start from scratch 新建一个新建一个PBL和和WebService用户组件用户组件在在PB中增加中增加WebService项目项目输入输入WebService应用的项目名称和保存路径。应用的项目名称和保存路径。在在PB中增加中增加WebService项目项目可以加入其它的可以加入其它的PBL,例

11、如以前已经写好的一些公共类库。,例如以前已经写好的一些公共类库。在在PB中增加中增加WebService项目项目输入需要增加的不可视用户对象的名称。在该用户对象中,实现WebService的功能。最终可以把该组件编译发布为WebService的各种服务接口。在在PB中增加中增加WebService项目项目输入发布到目标网站的虚拟目录的名称。PB WebService在编译时,只能发布为网站的虚拟目录。而不能作为网站的主目录。在在PB中增加中增加WebService项目项目增加项目所需要使用的资源文件(如图片,INI文件等)和Win32的DLL文件(如ZLIB.DLL等)在在PB中增加中增加We

12、bService项目项目设置设置WebService编译时,是生成一个安装包程序,还是直接发布到网站。编译时,是生成一个安装包程序,还是直接发布到网站。Localhost:9001表示发布到本机表示发布到本机9001端口的网站上。即刚才在端口的网站上。即刚才在IIS中增加的网站。中增加的网站。在在PB中增加中增加WebService项目项目新建项目向导完成后,PB IDE自动按向导过程中设置的组件名称,建立了一个不可视对象。可以在该组件中实现WebService的功能,再编译发布。实现实现WebService功能功能打开打开n_helloworld组件,增加一个组件,增加一个OF_HelloW

13、orld的函数。该函数传入一个字的函数。该函数传入一个字符串的符串的参数,并返回字符串的结果。参数,并返回字符串的结果。Function OF_HelloWorld(string as_Name)return as_Name+”你好你好!欢迎参加广州技术交流会欢迎参加广州技术交流会!”END FUNCTION 发布发布WebService打开p_helloword的项目对象,在General标签内,可以修改WebService要发布的网站虚拟目录名称。Deploy可以设置发布时,是生成一个安装程序,还是直接发布到一个网站地址。发布发布WebService在Objects标签,选择需要发布为We

14、bService服务的组件和函数接口。组件发布后的Web Service Name是一致的。可以修改该名称,取得提供的名称更容易理解。设置完以前选项后,执行发布命令,如果IIS环境和网站搭配正确的话,应该可以正常发布。验证验证WebService发布成功后,点击“Run Web Service”按钮,PB将会打开Windows的缺省浏览器,并访问发布的WebService。正确的话,则显示该WebService的全部服务接口名称。测试测试WebService接口调用接口调用点击点击of_helloworld服务接口的链接,会打开该服务器接口的一个说明和测试服务接口的链接,会打开该服务器接口的一

15、个说明和测试界面。在该界面中,详细描述了该服务接口的参数、返回值等信息。并提供界面。在该界面中,详细描述了该服务接口的参数、返回值等信息。并提供了一个测试的调用界面。在该界面输入函数的参数值,点击调用,可以返回了一个测试的调用界面。在该界面输入函数的参数值,点击调用,可以返回函数的执行结果。函数的执行结果。Notes accompany this presentation. Please select Notes Page view. These materials can be reproduced only with official approval from Gartner. Such

16、 approvals may be requested via e-.PB 客户端如何调用客户端如何调用WebService?PB是如何调用是如何调用Windows API的?的?必须知道API在那个动态库上面。User32, GDI等。必须知道API的函数名称、参数列表和数据类型、返回值和数据类型在PB中必须先进行声明,然后才能调用。PB怎么调用怎么调用WebService?必须知道提供的WebService的服务地址。必须知道服务的名称必须知道服务调用的接口需要什么参数?返回什么样的数据在PB中,先通过WebService的WSDL,生成代理对象。在代码中实例化该代理对象,再通过SOAP向

17、服务器进行发送调用请求,服务器在执行完成之后,再结果传回客户端。生成生成WebService的代理对象的代理对象新建一个传统的新建一个传统的Win32 的的Application 应用程序。应用程序。生成生成WebService的代理对象的代理对象在完成建立应用程序的向导后,新建一个Web Service Proxy的Project。也可以通过Web Service Proxy Wizard,采用向导式来进行建立。生成生成WebService的代理对象的代理对象Deployment PBL,输入生成的代理对象的PBL文件,在生成该PBL文件之后,需要把该文件加入到应用程序的库文件列中表。Cle

18、ar Deployment PBL on project build。设置在项目生成WebService代理对象时,是否清空该PLB文件里面原有的全部对象。生成生成WebService的代理对象的代理对象输入WebService的WSDL地址。http:/localhost:9001/helloworld/helloworld.asmx?WSDL点击Service按钮,如果WebService可以正确生成WSDL,则会弹出该WebService提供的服务接口。选择需要生成的Service,点击OK.点击Desploy发布生成WebService的代理对象。生成生成WebService的代理对象

19、的代理对象 在生成WebService代理对象时,有两种WSDL Engine方式,一种是EasySoap,一种是.Net 。EasySoap 使用比较简单标准的 SOAP方式调用WebService,速度比.net 方式来快很多。客户端的操作系统不需要安装.net FrameWork.但不支持.net开发的WebService的一些高级数据类型。如DataSet。EasySoap方式在生成代理对象时,新的对象名称跟服务器上原来PB的对象名称不同,是最大的缺点.Net生成.net程序集来调用WebService,速度比 EasySoapy方式来慢很多。而且客户端的操作系统必须安装.Net Fr

20、ameWork。可以支持更多的数据类型,生成的代理对象名称,也与服务器原来的PB对象名称相同。调用调用WebService把生成的代理对象PBL文件加入到应用的库文件列表中。如果是采用EasySoap方式,还需要把pbsoapclient115.pbd加入到库文件列表中。如果是采用.Net方式,还需要把pbwsclient115.pbd加入到库文件列表中。调用调用WebService服务器不可视用户对象,与客户端的代理对象名称,除了名称不同外,OF_HelloWorld函数的参数和返回值,都是一样的。服务器端不可视对象客户端代理对象调用调用WebServiceString ls_Url ,ls

21、_Name SoapConnection conn /声明Soap连接对象HelloWorldSoap lnv_HelloWorldls_Name = TRIM(sle_1.Text)IF ls_Name= ThenMessageBox(提示,请输入姓名!,StopSign! )sle_1.SetFocus()ReturnEND IF/WebService地址ls_Url =http:/localhost:9001/HelloWorld/HelloWorld.asmx Conn = Create SoapConnection /实例化Soap 连接对象Conn.CreateInstance(l

22、nv_HelloWorld, helloworldsoap ,ls_Url) /实例化WebService代理对象st_2.Text = lnv_HelloWorld.OF_HelloWorld( ls_Name) /调用WebService,并输出参考图示新建一个Windows对象,在调用按钮的Click事件写入以下代码,并执行该窗口,检查WebService的执行结果。Notes accompany this presentation. Please select Notes Page view. These materials can be reproduced only with of

23、ficial approval from Gartner. Such approvals may be requested via e-.WebService如何处理如何处理DataWindow?深入了解深入了解DataWindowDataWindow StyleDataWindow SyntaxDescribe, Modify , Create ,SetSqlSelectDataWindow BufferRetrieve ,InsertRow, DeleteRow, SetFilter, Filter, RowsCopy ,RowsMove, RowsDiscard, GetItem, Se

24、tItemDataWindow Item StatusAcceptText, SetIem, GetItemStatus, SetItemStatus, InsertRow, RowsCopy 如何把数据窗口从服务器传到客户端如何把数据窗口从服务器传到客户端需要传那些内容?Syntax? Data?ItemStatus?还是全部?子数据窗口怎么处理?Nest类型和Composite类型的数据窗口怎么处理?数据窗口保存在服务器端还是该保存在客户端?GetFullState和SetFullState函数如何把数据窗口从客户端传回到服务器端?如何把数据窗口从客户端传回到服务器端?需要传什么内容?Da

25、taObject ? Syntax? Data ? Changes?多个数据窗口都需要保存数据,怎么办?数据窗口除了要保存数据,还需要根据数据窗口的内容,完成业务处理怎么办?业务逻辑在客户端完成,还是在服务器端完成?GetChanges和SetChanges如何再次返回数据窗口在服务器端修改的内容?数据窗口数据传输的性能数据窗口数据传输的性能只传所需要内容的最小数据包。根据不同的场景,传DataObject Name,Syntax, Data,Changes、FullState数据压缩后再传输记录分页显示下拉数据窗口避免一次性检索太多记录客户端缓存部分更新不频繁的数据Notes accompa

26、ny this presentation. Please select Notes Page view. These materials can be reproduced only with official approval from Gartner. Such approvals may be requested via e-.如何实现业务系统的多层架构设计如何实现业务系统的多层架构设计编程模式的演进编程模式的演进界面、代码、业务的混合开发模式函数式编程模式组件式编程模式应用服务编程模式多层架构开发模式多层架构开发模式UI (User Interface)BL(Business Logi

27、c)DA (Data Access)DB(Database)中间应用服务层只作为数据库代理工具多层架构开发模式多层架构开发模式UIDA、BLDB(Database)中间应用服务层真正做为业务处理层把把WebService 做为数据库代理对象,合适吗做为数据库代理对象,合适吗?把服务器中间层,做为数据库的代理对象,通用中层层访问数据库,提供检索数据、SELECT、UPDATE、DELETE 、SELECTBLOB等命令的访问接口业务逻辑在客户端完成。这样写代码方式跟UI和业务逻辑代码混合编程类似,容易理解、学习。事务的一致性不容易管理由于一个业务,通过多个服务请求完成,增加了网络传输的数据量、容

28、易导致数据库死锁,也不容易提升数所库的并发数。业务调整时,需要更新客户端的程序。Notes accompany this presentation. Please select Notes Page view. These materials can be reproduced only with official approval from Gartner. Such approvals may be requested via e-.WebService的安全性的安全性WebService安全性要注意的问题安全性要注意的问题身份验证(用户ID,密码、令牌)系统模块权限验证数据权限验证访问权

29、限验证(IP验证、MAC验证、时间段验证)数据窗口可能存在的安全性问题Notes accompany this presentation. Please select Notes Page view. These materials can be reproduced only with official approval from Gartner. Such approvals may be requested via e-.WebService的调试和布署的调试和布署如何调试如何调试 WebService设置要调试的WebServiceProject设置断点,通过Debug方式运行WebS

30、ervice.运行客户端应用,执行要调试的WebService接口服务,向传统PB应用一样,调试WebService.如何布署如何布署WebService通过PowerBuilder Runtime Packager工具生成PB运行环境支持文件的安装包,在服务器执行安装。把文件安装在WindowsSystem32目录下面。生成WebService的安装文件,在服务器上面执行安装把WebService编译后成的虚拟目录下面的文件,以及 虚拟目录名称_Root 两个目录下面的文件,拷到目录服务器的相应网站的主目录下,建立相同名称的虚拟目录即可。INI文件需要发布到 虚拟目录_rootfilecom

31、monc目录下,才能正常访问。Notes accompany this presentation. Please select Notes Page view. These materials can be reproduced only with official approval from Gartner. Such approvals may be requested via e-.操作演示操作演示WebService例程例程Notes accompany this presentation. Please select Notes Page view. These materials can be reproduced only with official approval from Gartner. Such approvals may be requested via e-.部分资料从网络收集整理而来,供大家参考,感谢您的关注!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号