在Web 2.0时代,Web服务作为一种重要的服务形式随处可见。而在Web服务中,webservice又是最常见的一种形式,其具有跨平台、多语言、松散耦合等优点,成为应用程序间交互的重要手段。如何快速搭建一个高效稳定的webservice实例,成为各类开发人员关注的问题。
一、webservice实例的环境搭建
webservice的核心是SOAP协议,其基于HTTP协议传递XML格式的数据。所以,在搭建webservice实例之前,需要要有一个具备HTTP协议支持的服务器环境,同时需要安装PHP、Apache、Soap等技术框架。
1、安装Apache
Apache是一种流行的开源Web服务器,也是通用的Web服务器。我们可以通过官方下载地址下载安装文件,安装完毕后在本地访问“localhost”地址,即可在浏览器中看到欢迎界面,验证服务器环境搭建成功。
2、安装PHP
PHP是一种广泛使用的开源脚本语言,可在 Web 服务器上使用。我们可以通过PHP官方网站下载安装文件,将下载好的文件进行解压并拷贝到Apache的安装目录下的htdocs目录中。同时,还需要配置PHP文件的扩展名称,可在php.ini文件中进行设置。
3、安装Soap
Soap是一种表示应用程序之间交换数据的协议,其主要应用于分布式Web服务中。我们可以在PHP官方网站下载安装文件,安装完毕后需要在php.ini文件中启用Soap扩展,“extension=php_soap.dll”。
二、webservice实例的创建与发布
1、创建webservice实例
在具备了Apache、PHP、Soap等技术框架的基础上,我们就可以开始创建一个webservice实例。可以利用WSDL(Web Services Description Language)工具,快速生成WSDL文件,并通过指定地址发布webservice服务。
以一个简单的计算器webservice为例,我们需要先创建一个WebService类,其中包括一个Add方法,用于实现两数相加的功能。
class Calculator
{
function Add($a, $b)
{
return $a + $b;
}
}
然后,我们利用SoapServer类将该WebService发布到指定地址。
require_once('Calculator.php');
$server = new SoapServer(null,
array('uri' => 'http://localhost:8080/calculator/'));
$server->setClass('Calculator');
$server->handle();
在上述代码中,首先引入Calulator.php文件;然后创建了一个SoapServer对象,该对象的第一个参数为WSDL文件的路径,因此可以传入null;第二个参数为URI,用于标识WebService实例的唯一标识;最后执行handle方法,启动Service。
2、客户端访问webservice
一个成功的webservice实例不仅要具备创建和发布,还需要支持其他程序的客户端访问,才能发挥其最大价值。下面我们以PHP为例,演示如何通过客户端程序访问webservice实例。
$client = new SoapClient("http://localhost:8080/calculator/?wsdl");
$param1 = 2;
$param2 = 3;
$result = $client->Add($param1, $param2);
echo "The result of " . $param1 . " + " . $param2 . " is " . $result;
在上述代码中,首先创建了一个SoapClient对象,该对象的构造函数作为参数传递的是webservice服务的wsdl路径。因此,可以通过对象调用webservice的Add方法,以两个参数来实现计算功能;最后返回结果并输出,用于验证客户端访问webservice的成功率。
三、webservice实例的优化
1、缓存mechanism
在实际应用中,webservice往往是面向公众或者内部用户进行访问的,其并发数较高。由于计算机资源有限,每个HTTP请求都会消耗服务器资源,因此,需要将webservice数据缓存在客户端和服务器端,减小数据传输量和服务器负担。
客户端缓存和浏览器缓存通常使用缓存机制来共享一个响应服务请求,特别是针对可重复使用的静态内容。服务器缓存机制通过提供数据高速缓存,减少了客户端向信息源的请求次数,从而降低了服务器负载,提高了系统的性能。
2、安全性保障
webservice实例的高效稳定需要基于安全性的保障,在访问webservice服务的流程中加入了对访问者身份的认证和鉴别,通过使用SOAPHeader头元素、安全证书和加密技术等措施,来保护webservice的数据和代码不被恶意攻击。
四、总结
随着云计算技术和大数据的普及,webservice作为一种重要的机制,也将得到越来越广泛的应用。快速搭建一个高效稳定的webservice实例,对于各类开发人员以及技术实践者都具有极高的参考价值。