前 言
通过本文,你将能了解到如何配置服务以及Google WebService的语法结构;怎样个性化你的搜索,例如:国家、语言;怎样提炼搜索结果。
Google目前已经成了Web上最流行的搜索引擎,为了让诸如new content watchdog、GUI搜索工具和模式分析之类的应用程序成为可能,现在它们为20亿个页面建立了索引,开发者们可以通过基于SOAP的API进行调用。
WebService 简介
Web应用的巨大成功和不断发展,使其渗透到商业领域和个人生活的各个方面。人们只要使用浏览器,就可以享受到各种各样的Web服务,例如网上购物,网上交易,网络游戏,预定车票,网上聊天和交友等等。与此同时,由于Web技术所带来的优势(统一的客户端和较好的维护性),使一些传统的应用纷纷转型到基于B/S架构的瘦客户端应用程序,这是因为它能够避免花在桌面应用程序发布上的高成本,也能够很好的解决客户和服务器之间的通信问题。在客户端和服务器之间的通信,一个完美的解决方案是使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都使用HTTP协议,可以很好地透过防火墙进行通信。许多商业程序还面临另一个问题,那就是与其他程序的互操作性。目前有很多商业数据仍然在大型主机上以非关系文件(VSAM)的形式存放,并由COBOL语言编写的大型机程序访问。而且,还有很多商业程序使用C++、JAVA、VB和其他各种各样的语言编写。现在初了最简单的程序之外,所有的程序都需要与运行在其他异构平台上的应用程序集成并进行数据交换。在以前,没有一个应用程序通信标准是独立于平台、组建模型和编程语言的。只有通过Web Service、客户端和服务器才能够自由的用HTTP进行通信,不论两个程序的平台和编程语言是什么。Web Service技术完全基于标准的技术,只有基于标准,所有的开放厂商才能有相同的标准,才能够在各自的平台上开发出具有跨平台互操作能力的软件产品和解决方案。标准时达成跨平台互操作能力的灵魂。
Web是为了程序到用户的交互,而Web Service是为程序到程序的交互做准备。Web Service使公司可以降低进行电子商务的成本、更快的部署解决方案以及开拓新机遇。达到这个目标的关键在于通用的程序到程序通信模型,该模型应建立在现有的和新兴的标准之上。其中包括:HTTP,SOAP, WSDL, UDDI
SOAP:是“Simple Object Access Protocol”的缩写,SOAP是消息传递的协议,它规定了Web Services之间是怎样传递信息的。
简单的说,SOAP规定了:
1. 传递信息的格式为XML。这就使Web Services能够在任何平台上,用任何语言进行实现。
2. 远程对象方法调用的格式。规定了怎样表示被调用对象以及调用的方法名称和参数类型等。
3. 参数类型和XML格式之间的映射。这是因为,被调用的方法有时候需要传递一个复杂的参数,例如,一个Person对象。怎样用XML来表示一个对象参数,也是SOAP所定义的范围。
WSDL:是“Web Services Description Language”的缩写。WSDL是Web Services的定义语言。当实现了某种服务的时候(如:股票查询服务),为了让别的程序调用,必须告诉大家服务接口。例如:服务名称,服务所在的机器名称,监听端口号,传递参数的类型,个数和顺序,返回结果的类型等等。这样别的应用程序才能调用该服务。WSDL协议就是规定了有关Web Services描述的标准。
UDDI:是“Universal Description, Discovery,and Integration”的缩写。简单说,UDDI用于集中存放和查找WSDL描述文件,起着目录服务器的作用。
快速安装
本文的运行环境是JDK1.3+Tomcat4.0+JSP。要使用Google的服务,必须要有“license key”,可以在https://www.google.com/accounts/NewAccount?continue=http://api.google.com/createkey&followup=http://api.google.com/createkey中取得,输入相应的信息,然后到你的邮箱收取“license key”。接着还需要“Java API for XML Messaging”亦即“JAXM”。它是Java XML Pack的一部分,在http://java.sun.com/xml/downloads/javaxmlpack.html提供。
为了更简单的表达,我直接用JSP模式,并使用手工编码,没有用IDE环境。
解开刚才下载的java_xml_pack-summer02_01.zip,找到java_xml_pack-summer-02_01\jaxp-1.2_01\xalan.jar文件,用WinRAR解开把org文件夹拷贝到你的应用程序的WEB-INF\classes下。找到java_xml_pack-summer-02_01\jaxm-1.1_01\lib\saaj-api.jar文件,解开它并拷贝javax文件夹到同上的目录。找到java_xml_pack-summer-02_01\jaxm-1.1_01\lib\jaxm-api.jar文件,解开它并拷贝javax文件夹到相同目录。找到java_xml_pack-summer-02_01\jaxp-1.2_01\jaxp-api.jar文件,解开它并拷贝javax文件夹到相同目录。找到java_xml_pack-summer-02_01\jaxm-1.1_01\jaxm\saaj-ri.jar文件,解开并拷贝com文件夹到相同目录。
到这里,安装的工作完成了。搜索格式及代码请参看第二部分。