收藏 分享(赏)

Web Service 用户使用手册.doc

上传人:scg750829 文档编号:8248397 上传时间:2019-06-16 格式:DOC 页数:4 大小:59KB
下载 相关 举报
Web Service 用户使用手册.doc_第1页
第1页 / 共4页
Web Service 用户使用手册.doc_第2页
第2页 / 共4页
Web Service 用户使用手册.doc_第3页
第3页 / 共4页
Web Service 用户使用手册.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、Web Service 用户使用手册1 概述Web service 平台是一套标准,它定义了应用程序如何在 Web 上实现互操作性。可以用任何你喜欢的语言,不同的平台中编写 Web service ,而通过 Web service 的标准来对这些服务进行查询和访问。以下是网络拓扑图:2 服务接口2.1 历史数据服务接口介绍:1) 读取各时间点上对应的量测值,主要用在描绘曲线上。public TimeSerie ReadAtTime(long timeStamps,SetUp setups,ItemErrorHolder itemErrors )输入:timeStamps:时间序列,Corba

2、时间,单位是 100 纳秒。Setups:量测对象序列,ResourceID 或者是 PathName。输出:itemErrors:错误信息,错误的原因、ResourceID/PathName 。TimeSerie:量测对象对应的量测值,类型有 double、int、string 等。2) 读取某一段时间的量测最大值、最小值、平均值,主要用于数据统计上。public TimeSerie ReadProcessed (TimeInterval interval,long sampleInterval,ProcessedRef itemRefs,ItemErrorHolder itemErrors

3、 )输入:Interval:时间段,包含起始时间和截止时间,Corba 时间,单位是 100 纳秒。sampleInterval:时间间隔,单位是秒,等于 0 取得实时的最大值、最小值、平均值,大于 0 取得这些时间间隔点上对应的最大值、最小值、平均值。Web 客户端 Web 服务 Corba 服务防火墙DB 服务Socket 服务WSDL输出:itemErrors:错误信息,错误的原因、ResourceID/PathName 。TimeSerie:量测对象对应的量测值,类型有 double、int、string 等。2.2 图形服务接口介绍:1) 取得图形服务器上所有的图形文件名。publi

4、c String getGraphList ()输入:无。输出:图形文件名的序列。2) 取得某一图形文件的描述信息,例如:最后一次修改,文件大小等。public GraphDescLocal getGraphDesc(String GraphName)输入:GraphName:图形文件名。输出:图形文件信息:最后一次修改,文件大小等3) 取得某一图形文件的内容,主要用于下载图形到本地。public byte getGraphData(String GraphName, boolean ReadFlag)输入:GraphName:图形文件名。ReadFlag:是否优化处理。输出:图形文件的内容,

5、是二进制值。2.3 实时服务接口介绍:1) 取得量测对象的实时值,主要用于实时数据的监视上。public ItemStateSimpleIO_wsdl read(int data_source, ServerItemIdentification_wsdl ids, ItemErrorsHolder_wsdl errors)输入:data_source:数据来源,来自程序内存、RTU 等。ids:量测资源对象信息序列,包括 ResourceID/PathName、PropertyID 。输出:Errors:错误信息,错误的原因、ResourceID/PathName 。ItemStateSimp

6、leIO_wsdl:量测资源的当前值,类型有 double、int、string 等。3 访问方式服务端代码:class MyService String Hello(String str);客户端访问 Web service 的方法如下:1) 代理客户端这种方式比较简单,一般是根据 Web Service 厂家提供的工具先生成客户端代理源码,然后再根据编程规范,利用这些源码编写客户端代码。Axis1-2 是 Apache 公司的 Web Service 开发包,在已知一个 WSDL 路径下如下命令取得客户端代理源码:java -classpath “%CLASSPATH%“ org.apac

7、he.axis.wsdl.WSDL2Java -p hsdaitemclient http:/172.20.9.28:8080/axis/services/MyService?wsdl生成如下四个文件:MyService.javaMyService_Service.java。MyService_ServiceLocator.javaMyService_SoapBindingStub.java实现代码,调用 Web 服务的 Hello 函数接口:MyService_Service service = new client. MyService_ServiceLocator ();client.

8、MyService client = service.getMyService();String retValue=client.Hello (“zhangsan“);还有一些别的 Web Service 开发包,例如:jwsdp-2.0,利用 wscompile 和wsdeploy 命令进行 Web Service 的发布和客户端开发。2) 硬编码这种方式是比较复杂的,就是对 Web Service 非常了解,利用 Soap 包,自己封装接口调用的输入,自己解析返回值,代码量相当的大。例如一个调用Hello 的代码( C+):ISoapSerializerPtr m_spSerializer

9、;ISoapConnectorPtr m_spConnector;/ Begin the message.m_spConnector-Property“SoapAction“ = “MyService“;m_spConnector-BeginMessage();m_spSerializer-Init(_variant_t(IUnknown*)m_spConnector-InputStream);/ Build the SOAP Message.m_spSerializer-StartEnvelope(“,“,“);m_spSerializer-StartBody(“);m_spSerializ

10、er-StartElement(“Hello“,“,“,“);m_spSerializer-StartElement(“str“,“,“,“);m_spSerializer-WriteString(_bstr_t(str.local8Bit().data();m_spSerializer-EndElement();m_spSerializer-EndElement();m_spSerializer-EndBody();m_spSerializer-EndEnvelope();/ Send the message to the XML Web service.m_spConnector-EndM

11、essage();/ Read the responseISoapReaderPtr spReader;HRESULT hr = spReader.CreateInstance(_uuidof(SoapReader30);if (hr = CO_E_NOTINITIALIZED)CoInitialize(NULL);hr = spReader.CreateInstance(_uuidof(SoapReader30);/ Connect the reader to the output stream of the connector object.spReader-Load(_variant_t(IUnknown*)m_spConnector-OutputStream), “);/ Get the result.b = (QString(spReader-GetBody()-text).lower() = “true“);m_spSerializer-Reset();这只是一个简单的输入,如果输入、输出比较复杂,其代码量更加复杂。4 总结根据程序的需要,结合目前提供的 Web Service 接口的定义,来获取自己需要的数据,客户端可以使用多种语言:Java、C+ 、.Net 、VB 、JS 等等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报