电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> PHP
在PHP中利用XML技术构造远程服务(上)-PHP教程,XML应用
作者:网友供稿 点击:23
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
未来的web将是以服务为中心的web,xml_rpc标准使得编写和应用服务变得非常简单。本文介绍xml_rpc标准及其php实现,并通过实例示范了如何在php中开发xml_rpc服务和客户程序。

一、服务式web
从内容提供商所采用的简单方法到uddi(universal description,discovery and integration)的未来构想,业界已经有大量关于“服务式web”的说明和评论。就web的初创阶段来说,它只是一个文档的集散地,提供的只是一些可浏览的信息。随着web的发展,在web上运行服务越来越具有吸引力。未来,web将成为企业为客户和其他企业提供便捷服务的载体。b2b和b2c模式间的协同就可以看成是一种服务式web。

一个很重要的问题是,web上究竟可以提供哪些服务?web能够提供的服务非常多,其中有些服务现在已经在使用,有些服务在不久的将来就会出现。为了说明问题,下面列出了一小部分可以通过web提供的服务:

面向主题的垂直搜索引擎。
供用户查找信息的知识库。
用户可以请教问题的专家系统。
银行服务。
新闻和信息出版服务。
数字化支付相关的服务。
图形处理服务。
卫生和健康服务。

那么,企业和组织通过web提供服务的正确途径是什么呢?这是一个很重要的问题。今天,有些服务提供html界面,它们通过文档的形式提供服务,但在服务界面的背后隐藏着什么?在占领web的竞赛中,web浏览器并不孤单,移动电话、手持设备以及微波炉之类的设备都想要访问web、查询数据库、转换数据、提取信息,等等。要实现真正的服务式web,在表现层(html)之下应该还有另外一层。

二、xml_rpc标准
xml或许是近10年来最为重要的标准,xml词汇表(vocabulary)为企业构造服务环境提供了基石。要构建服务式web就有必要学习xml_rpc标准,这不仅是因为xml_rpc对于把服务放到web上很有用,而且因为xml_rpc是一种已经成形的、很容易采用的标准。对于b2b服务来说,提供服务的标准是极其重要的,共同遵循标准的公司可以利用其它公司提供的服务获得快速的增长。无法想象在各种私有的服务标准之上可以建立起真正的服务式web,服务必须有一种可以遵循的标准。

xml_rpc是一种面向internet分布式处理的标准。rpc即为remote procedure call(远程过程调用)的缩写,它是一种远程调用机制,用于调用可能驻留在其他机器之上以及可能用其他语言编写的过程。远程过程调用是分布式计算的重要支柱。例如,在一个分布式计算环境中,我们可以寻找和利用在其他机器上运行的执行加法和减法操作的过程,执行加法操作的过程可能用apl编写、在rs6000机器上运行,执行减法操作的过程可能用c编写、在unix上运行。其他要使用这种分布式计算器的开发者同样可以利用它们,或者他也可以选用另外更好的计算器。

在rpc中,过程(procedure)是最主要的构件,服务器提供的就是供客户端调用的过程。过程可以接收参数并返回结果。xml_rpc以http作为协议载体,通过发送和接收数据的xml词汇表实现rpc机制。xml_rpc服务器接收xml_rpc请求并返回xml_rpc应答,xml_rpc客户程序发送xml_rpc请求并接收xml_rpc应答。服务器和客户必须按照xml_rpc标准的要求处理应答和请求。

三、xml_rpc协议
完整的xml_rpc规范可以在http://www.xmlrpc.com/spec找到。下面是其要点说明。

3.1 xml_rpc请求

xml_rpc请求应该是http post请求,它的正文是xml格式。请求的xml部分格式如下:

<?xml version="1.0" ?>
<methodcall>
<methodname>examples.getstatename</methodname>
<params>
<param>
<value><i4>41</i4></value>
</param>
</params>
</methodcall>

指定数据发送到哪里的url并未在这里指定。如果服务器专门用来进行rpc处理,它可能是“/”。上述xml文档中的有效载荷是一个“methodcall”结构。methodcall必须包含一个“methodname”子元素,“methodname”子元素包含一个描述待调用方法的字符串。如何解释“methodname”的内容完全由服务器决定,例如它可以是一个执行文件的名字,可以是数据库中记录的名字,或者任何其他东西。如果过程接收参数,“methodcall”可以包含一个“params”元素以及若干个“param”子元素。每一个“param”元素包含一个带有类型描述符的值,类型描述符如下表所示:

标记说明
<i4>或<int>四字节的带符号整数,如12
<boolean>0(false),或1(true)
<string>字符串,如“hello world”
<double>双精度带符号浮点数,如-12.214
<datetime.iso8601>日期/时间,如19980717t14:08:55
<base64>base64编码的二进制数据,如ew91igbid0ihjlqgdghpcye

3.1.1 结构

值可以是一个结构,结构用<struct>元素描述。每个<struct>包含多个<member>,每个<member>包含一个<name>和一个<value>。下面是一个由两个元素构成的结构:

<struct>
<member>
<name>name</name>
<value><string>member1</string></value>
</member>
<member>
<name>member2</name>
<value><i4>19</i4></value>
</member>
</struct>

<struct>可以嵌套,任意<value>可以包含<struct>或者任意其它类型,包括<array>。

3.1.2 数组

值可以是数组类型,数组用<array>元素描述。每个<array>元素包含一个<data>元素,<data>元素里面可以包含任意多个<value>元素。下面是数组元素的一个例子:

<array>
<data>
<value><boolean>0</boolean></value>
<value><i4>9</i4></value>
<value><string>hello</string></value>
</data>
</array>

<array>元素没有名字。如前例所示,<array>元素的值可以是各种类型。<array>元素可以嵌套,任何<value>都可以包含<array>或者其他类型,如上面介绍的<struct>。

3.2 xml_rpc应答[/b]

xml_rpc应答是一个http应答,内容类型是text/xml。应答正文的格式如下:

<?xml version="1.0"?>
<methodresponse>
<params>
<param>
<value><string>abcdefg</string></value>
</param>
</params>
</methodresponse>

<methodresponse>可能包含一个<params>结构,或者可能包含一个<fault>结构,具体由过程调用是否成功决定。<params>结构与xml请求中的一样,<fault>元素的语法如下:

[tr]
<fault>
<value>
<struct>
<member>
<name>faultcode</name>
<value><int>4</int></value>
</member>
<member>
<name>faultstring</name>
<value><string>error!</string></value>
</member>
</struct>
</value>
</fault>



文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·Windows下的PHP5.0安装配制详解-PHP教程,PHP安装
·PHP在XP下IIS和Apache2服务器上的安装-PHP教程,PHP应用
·最近忙于FTP,好站多多!有好多好东东哦!不敢独享!-PHP教程,PHP基础
·PHP 5.0 Pear安装方法-PHP教程,PHP安装
·PHP开发利器-PRADO 1.6(4)-PHP教程,PHP应用
·Sun Sparc Solaris 2.6 Apache-1.3.12+MySQL-3.23.5+PHP-3.0.15 安装记-PHP教程,PHP应用
·php5学习笔记(转)-PHP教程,PHP应用
·APACHE安装笔记-PHP教程,PHP安装
·PHP.MVC的模板标签系统(四)-PHP教程,PHP应用
·PHP.MVC的模板标签系统(二)-PHP教程,PHP应用

最新文章
·PHP源码-利用 QQWry.Dat 实现 IP 地址高效检索
·Php高手带路--问题汇总解答[2]
·PHPQQ编程(2):取QQ在线状态
·php5手动最简安装方法
·福利彩票幸运号码自动生成器
·PHP开发利器-PRADO 1.6
·在Apache 服务器上启用PHP支持
·Windows2000_pro下安装Apache+PHP4+My
·php文件上传的实现
·PHP开发框架的现状和展望




版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号