基于工具命令语言的天气预报Web服务平台实现

2015-07-28 02:53熊家宝曾付山张小贝上海大学通信与信息工程学院上海200072亚创博彦上海信息技术有限公司上海20204晨星软件研发深圳有限公司上海分公司上海20020
上海第二工业大学学报 2015年3期

鲁 珺, 熊家宝, 曾付山, 张小贝(.上海大学通信与信息工程学院,上海200072;2.亚创博彦(上海)信息技术有限公司,上海20204; .晨星软件研发(深圳)有限公司上海分公司,上海20020)

基于工具命令语言的天气预报Web服务平台实现

鲁珺1,2,熊家宝1,曾付山3,张小贝1
(1.上海大学通信与信息工程学院,上海200072;2.亚创博彦(上海)信息技术有限公司,上海201204; 3.晨星软件研发(深圳)有限公司上海分公司,上海200120)

摘要:目前地图信息的查询与天气预报的实现大多采用.NET开发平台,虽然.NET对微软Windows有出色的支持,但对其他系统下的开发支持还不够。因此,根据工具命令语言(TCL)多平台通用和易于扩展的特点,采用其网络接口开发包、网络协议传输包及套接字替代.NET实现网络服务平台的高效、快速开发,同时使得开发的网络平台可以在Linux、Unix、Windows等系统上运行。为便于用户获取各地的地理和天气信息,采用百度地图应用程序接口(API)和天气信息服务(Weather Web Service)接口,并利用TCL编写的公共网关接口(CGI)对上述两种Web接口的服务进行整理,用户可根据不同的需求,获取相应的信息服务。此外,在Windows下设计开发的TCL及CGI脚本可移植于其他系统,实现跨平台操作。

关键词:工具命令语言;百度地图应用程序接口;天气信息服务;公共网关接口

0 引言

TCL(Tool Command Language),即工具命令语言,具有可嵌入、可扩展、编程通用等特点,是一种解释执行的脚本语言。可嵌入和可扩展是指底层函数(如C/C++,C#函数)能被转换成简洁的TCL指令,弱化了脚本程序使用的复杂度。再者TCL将程序设计与操作系统底层结构隔开,实现跨平台操作,使得TCL脚本几乎可以在所有平台上运行,常见的有Linux、Unix、Windows、Mac等。同时在TCL脚本中也能直接运行各平台的系统指令,所以编程通用成为了TCL语言的一大亮点[1-3]。基于上述优点, TCL已被广泛应用于自动化测试领域,例如在自动化生产测试上采用TCL开发的ATE(自动化测试工具),使测试系统具有协议描述能力强、灵活性高等特点,同时可降低软件测试复杂度,提高产品的测试效率[4]。除生产自动化外,在网络自动化上,用TCL语言编写多种传输协议指令,进而模拟网络传输,例如网关测试常用的CDRouter(路由器自动化测试软件),其执行过程与方法均由TCL脚本实现。对于网络开发,TCL不仅仅停留在网络传输上,也能出色地拓展于网络服务应用领域,归功于TCL拥有一系列网络服务器、客户端开发包以及网关接口。使用TCL开发的网络服务,即Web服务,是一种服务内容运用可扩展标记语言(XML),实现结构化和固化,并采用HTTP/HTTPS协议交换信息的服务。

本文中应用TCL语言实现的Web服务,分为2个方面:天气信息服务和百度地图信息服务。

天气信息服务,即Weather Web Service。远端服务器WebXml.com.cn上发布的天气预报Web服务,天气数据每2.5 h左右更新一次。数据信息涵盖340多个中国主要城市和60多个国外主要城市,内容覆盖当天及其3日内的可靠天气数据,而且还包括人文与地理信息。在TCL脚本中,使用套接字(socket)编写该天气服务请求和响应指令,以此实现天气预报[5]。

百度地图信息服务,使用百度地图应用程序接口(API),主要包括JavaScript API和Web服务API。其中,JavaScript API将百度地图嵌入到网页或其他应用程序中,提供给用户多功能地图构建、地图信息交互与处理等应用。为便于使用JS API,可在TCL的公共网关接口(CGI)中直接植入Java语句。其次,Web服务API,主要指Geocoding API,作为地址与经纬度间的查询和逆查询。通过调用TCL HTTP包中的方法,即可获取该服务查询内容[6-7]。

上述Weather Web Service和百度API都应用在TCL编写的CGI中,而CGI给Web服务器提供了一条执行外部程序的通道,实现浏览器或客户端与服务器的交互[8]。如Web服务CGI在接收到客户端发来的统一资源定位符(URL)请求后,会解析URL,调用Weather Web Service与Geocoding API进行查询并返回URL请求的服务信息,而Web UI(User Inteface)CGI则是通过对浏览器上UI界面的操作,可视化服务内容(包括地图信息与Web UI CGI交互的天气信息)。

综上所述,本文旨在结合在线已知Web服务和TCL网络编程工具实现多系统通用的天气和地理信息播报平台,完成Web服务平台实例开发,并发挥TCL在软件开发上的优势,实现其在网络服务领域上的快速、高效开发。再者,希望采用脚本语言开发的Web服务能有较强的移植性,即程序脚本几乎不做任何修改,就能在多个系统环境下直接运行。由于TCL语言不依赖于系统底层协议,基于TCL开发的Web服务就易于实现跨平台操作。本文设计的CGI服务,不需修改脚本与系统环境,即可从Windows移植到Unix/Mac OS系统上执行。

1 方案

1.1程序设计

1.1.1程序流程设计

为了更好地说明TCL语言开发的天气地理信息平台,图1给出了程序设计流程图。由图1可知,百度的JavaScript API被应用在TCL编写的Web UI CGI中,客户端用户通过网页浏览方式,即可登录该UI CGI界面,并由鼠标点击地图触发位置查询以及与Web Service CGI的信息交互事件。而Web Service CGI则与在线的Geocoding API和Weather Web Service相连,该CGI在接收到Web UI CGI或客户端直接发来的服务请求后,会与Geocoding API 和Weather Web Service交互信息,最后把服务请求的内容返回给Web UI CGI或客户端用户。Web UI CGI是把返回的响应信息显示在地图信息窗口上,而客户端直接获取的返回响应信息则显示在Web浏览器或其他应用程序的输出中。

图1 程序设计流程图Fig.1 Program design flow

1.1.2CGI接口设计

本文服务平台依赖于2个CGI接口实现,即图1的Web UI CGI和Web Service CGI。Web UI CGI的实质是用CGI的标准输出加载超文本标记语言(Html)页面,并在Html页面中写入JavaScript脚本(JS脚本内包含JavaScript API)。而Web Service CGI作用尤为重要,在获取与Geocoding API和Weather Web Service交互的查询信息后,该CGI还需分类处理查询到的信息,以提供给客户端用户如图2所示的多个信息服务。这些服务请求均采用超文本传送协议HTTP Get方式,即把客户端用户的服务请求输入作为HTTP URL的参数数据队列。针对这些服务请求路径URL中参数队列的不同设置,即可获取相应的服务内容。

图2 Web服务CGI的服务内容Fig.2 Web Service CGI content

此外,本节程序设计中,Web Service CGI与Web UI CGI间信息交互是服务平台内部的交互,不同于客户端直接访问Web Service CGI。服务平台内部交互调用到了AJAX(一种创建交互式网页应用的网页开发技术)的XMLHTTPRequest对象。该对象调用方法封装于自行编写的xmlhttp.js脚本中。具体的交互代码如下:

xmlHttp=new XMLHttpRequest();

varurl=“./lib/test.cgi?...”;//生成 XMLLHttpRequest实例,定义访问路径的URL,

xmlHttp.open(“GET”,url,true);

xmlHttp.send(null);//HTTP Get方式发送URL请求,

var response=xmlHttp.responseText;//读取发送请求后的接收响应。

1.2百度地图API调用

1.2.1嵌入百度地图

百度地图是由JavaScript脚本编写的地图相关控件集合,属于百度JavaScript API的重要组成部分。地图及其相关控件一般通过Java语句写入Html页面,而Html页面信息又以TCL控制台输出形式输出,即TCL指令puts stdout,该指令在CGI接口中作为标准输出[9]。百度地图控件集合几乎覆盖地理位置与信息的各种应用。控件集合存于名为Bmap的命名空间里,包括地图Map、地图平移缩放控件NavigationControl、缩略地图控件OverviewMapControl、比例尺控件ScaleControl、地图覆盖物Overlay、信息窗口InfoWindow等。运用这些控件工具,即可设计Web UI CGI[10],图3为UI界面。

1.2.2百度Web服务调用

除 JavaScript API外,百度地图服务还包括Web服务 API,如本文设计中使用的 Geocoding API。Geocoding API基于HTTP Get方式实现地址信息与经纬度信息的相互查询。该查询请求细分为2类如图4所示,分别是地址和逆地址解析请求。

图3 UI界面Fig.3 UI interface

图4 Geocoding服务查询Fig.4 Geocoding query service

在逆地址解析中,对应的HTTP请求URL为http://api.map.baidu.com/geocoder/v2/?location=lat, lng,URL中的api.map.baidu.com为百度Web服务的服务器域名,/geocode/v2表示要求百度Web服务器提供Geocoding API服务,location字段是服务请求中已知参数的键值名称,即坐标位置,lat和lng为已知参数的数值,即纬度和经度坐标值。

而在地址解析中,对应的HTTP请求URL为http://api.map.baidu.com/geocoder/v2/?address=Addr。与逆地址解析的格式类似,只是服务请求的已知参数键值名称换成了address(地址),已知参数的值是Addr指代的地址信息。

对于上述Geocoding API的地址/逆地址查询,可用TCL的http包完成,其具体方法如下:

set token[http::geturl http://api.map.baidu.com/ geocoder/v2/?xxx=xxx]#完成HTTP Get请求与响应,成功之后,返回对应记号(token);

http::status$token#显示HTTP Get返回的状态结果;

http::code$token#获取HTTP响应代码,即错误代码,对应指定的出错信息;http::data$token#获取HTTP请求的响应内容。TCL http包中方法实现地址/逆地址查询后,返回的响应信息是基于JSON/XML结构化的数据。如图5和6所示,即逆地址解析、地址解析的响应信息。对于XML/JSON结构的响应内容分别用TCL的json包和dom包进行解析。

图5 逆地址解析图Fig.5 Reverse address resolution

图6 地址解析Fig.6 Address resolution

还需注意,HTTP请求URL中的特殊字符(如特殊标点、汉字等)要先采用utf-8编码,TCL的encoding convertto/convertfrom提供字符串编、解码方式。编解码实例如图7所示。

在本文中,TCL的utf-8编解码被写入utf8url.tcl内的函数中,方便其他TCL脚本调用utf8url包内的编解码方法。

图7 TCL的字符串编解码Fig.7 TCL string encode/decode

1.3Weather Web Service服务调用

1.3.1Web服务的引用方法

Weather Web Service,也即天气预报服务。该服务的请求与响应采用TCL的socket编写,并编写在SOAPweather.tcl中,该脚本的命名空间名称也为SOAPweather。对Weather Web Service的服务引用,实质是调用SOAPweather命名空间内的相应方法。命名空间内的服务方法列出如下:

(1)Weather::get_weather_soapcity(城市名称)用SOAP协议获取指定城市的天气信息。

(2)Weather::get_city_soap province(省份名称) 用SOAP协议获取省份内服务支持的城市集合。

(3)Weather::get_weather_httpget city(城市名称) Get方式获取指定城市的天气信息。

(4)Weather::get_weather_httppost city(城市名称) Post方式获取指定城市的天气信息。

除了服务方法外,SOAPweather命名空间还提供了3种解析响应信息的方法:

(1)Weather::decode_weather_http data(响应返回数据)解析HTTP Get/Post方式返回的天气报文。

(2)Weather::decode_weather_soap data(响应返回数据)解析HTTP Soap方式返回的天气信息报文。

(3)Weather::decode_city_soapdata(响应返回数据)解析HTTP Soap方式返回的城市列表报文。

为了使上述的各服务引用和响应解析方法能在TCL程序中被调用,可采用TCL的Package方法打包成SOAPweather包。具体步骤为:

(1)SOAPweather.tcl脚本的头部加上package provide SOAPweather,用以表明该TCL脚本是由SOAPweather包提供的。

(2)在wish.exe或tclsh.exe中运行pkg_mkIndex path*.tcl指令,path表示SOAPweather.tcl所在的文件夹路径。该指令运行成功会在SOAPweather.tcl所在的文件夹目录下创建pkgIndex.tcl文件,表明SOAPweather包引用加载成功。在引用该包方法前,需在auto_path中加入对应创建的pkgIndex.tcl文件所在目录或其上一级目录。

(3)在其他 TCL脚本中加入 package require SOAPweather语句,即可直接引用SOAPweather包内的方法。

本文提供的SOAPweather包,不仅用于本文设计的服务平台,也适用于其他TCL开发程序。

1.3.2Web服务的调用实现

1.3.1节介绍了如何在TCL程序中通过调用SOAPweather包内的方法来引用Weather Web Service。而本节着重介绍SOAPweather包如何具体实现Web服务调用。首先,SOAPweather包内调用Web服务,本质是基于TCL socket实现。运用TCL socket编写Http服务请求发送与响应接收。socket的使用方法如下:

setsock[socket-myaddr192.168.3.102 www.webxml.com.cn 80]#创建本地PC机与远程服务器(域名为www.webxml.com.cn,端口为80)的TCP连接。本机的源地址设置为192.168.3.102,源端口没有使用-myport选项定义,因此为socket默认源端口。sock表示创建连接成功后,生成的标记号。fconfigure$sock#用于配制 socket的参数,比如-encoding编码格式、-buffersize缓存大小、-blocking阻塞/非阻塞等。puts$sock;flush$sock#数据有本地PC机发送至远端服务器。read$sock/gets $sock#读取远端服务器发送至本地PC机的响应。

1.3.1节提到的SOAPweather包内4个获取服务信息方法也都由socket与远端服务器连接和交互收发。4个服务方法不同点在于HTTP请求参数队列内容不同,及返回的响应信息解析不同。这4个方法的具体示例说明分别如下:

(1)Weather::get weather_soap city。图 8所示为Weather::getweather_soap方法内,向远程服务器发送的HTTP服务请求报文。POST至SOAPAction为 HTTP请求的头部信息,表示采用HTTP Post的方式将数据内容传递给远端服务器 (域名为www.webxml.com.cn)。SOAPAction字段表明 HTTP Post的内容为 SOAP消息,该消息会被远端服务器的 getWeatherbyCity-Name方法处理。而HTTP POST的SOAP消息为“〈?xml···〉〈soap::Envelope···〉···〈/soap:Envelope〉”, 图8 SOAP消息内写入的“上海”,表示该示例天气查询的目的地。

Weather::get_weather_soap发送SOAP查询请求后,等待接收返回的响应报文,如图9所示。图9返回的SOAP消息示例是查询目标上海的天气、地理信息集合。Weather::get_weather_soap中利用Weather::decode_weather_soap方法(该方法内采用正则表达式,即TCL指令regexp)解析该SOAP响应消息。

(2)Weather::get_weather_httpget/Weather::get_ weather_httppost city。 Weather::get_weather_httpget 和Weather::get_weather_httppost分别运用HTTP Get和Post的请求方式。Get和Post请求不同处在于传递参数的方式。Get请求方式,把参数数据队列加于URL中,表现形式如图10。而Post请求方式把参数数据队列作为Http的请求正文,如图11所示。图10、11示例为上海天气状况查询请求,图10 URL中“%e4%b8%8a%e6%b5%b7”是中文字符“上海”的utf-8编码。

图8 Weather::get_weather_soap HTTP请求Fig.8 Weather::get_weather_soap HTTP request

图9 Weather::get_weather_soap HTTP响应Fig.9 Weather::get_weather_soap HTTP response

虽请求格式不同,但Weather::get_weather_httpget和Weather::get_weather_httppost方法中返回的响应相同。图12即为返回的响应报文,该图示的消息内容为上海天气、地理信息。消息正文结构为Xml格式,并采用Weather::decode_weather_http方法解析Xml消息。

图10 Weather::get_weather_httpget HTTP请求Fig.10 Weather::get_weather_httpget HTTP request

图11 Weather::get_weather_httppost HTTP请求Fig.11 Weather::get_weather_httppost HTTP request

图12 Weather::get weather httpget/get weatherhttppost HTTP响应Fig.12 Weather::getweather_httpget/get_weather_httppost HTTP response

(3)Weather::get_city_soap province。图 13为Weather::get_city_soap方法内的SOAP服务请求格式。该 SOAP请求消息会被远端服务器(www.webxml.com.cn)getSupportCity方法处理,即SOAPAction字段指示的 http://WebXml.com.cn/ getSupportCity。图中示例,目的为请求查询江苏省中,远端服务器(www.webxml.com.cn)支持的城市列表,即SOAP请求消息内写入“江苏”。

getSupportCity处理完请求信息后,将符合条件(请求省份内支持天气服务的城市集合/所有直辖市集合)的城市集合也用SOAP格式报文返回。返回消息如图14所示。图14的报文内容是江苏省内,所有支持天气服务的城市名称。

此外,Weather::get_weather_httpget/Weather::get_ weather_httppost和Weather::get_city_soap方法内响应正文都为Xml结构。采用TCLDom包解析Xml结构消息,提取所需参数。图15、16、17为TCL Dom解析Xml消息示例过程。

图13 Weather::get_city_soap HTTP请求Fig.13 Weather::get_city_soap HTTP request

分析图15∼17解析示例,::dom::DOMImplementationparse xml用于生成Xml报文树形查询结构;::dom::DOMImplementationselectNodetokenxpath作用为获取匹配相应 XPath规则的元素列; ::dom::node cget token-firstChild获取元素内第一个子节点,这里是文本节点;::dom::node cget token-nodeValue获取文本节点的内容。该完整解析步骤编写于Weather::decode_weather_http和Weather::decode_city_soap方法内。

图14 Weather::get_city_soap HTTP响应Fig.14 Weather::get_city_soap HTTP response

图15 Dom解析Xml示例过程1Fig.15 Dom Xml resolution example process 1

图16 Dom解析Xml示例过程2Fig.16 Dom Xml resolution example process 2

图17 Dom解析Xml示例过程3Fig.17 Dom Xml resolution example process 3

2 结果与讨论

天气预报Web平台采用TCL的CGI接口设计,在系统的服务器应用程序中添加、运行TCL编写的CGI脚本。在Windows中,通过IIS(信息服务管理器)配置CGI脚本,并设置执行程序为tclsh.exe,即可运行该脚本。而在Linux/Unix中,使用Apache Web服务器软件配置、运行CGI脚本,需要注意的是Apache用工作行解析所有CGI脚本,所以CGI的第一行必须为#!开头的注释行并该行需要注明tclsh.exe路径,例如#!/usr/bin/tclsh。本文在系统服务器下运行的CGI脚本,为earth.cgi和test.cgi,依次对应Web UI CGI和Web服务CGI。

(1)Web UI CGI给出了可视化地图和天气查询方案。在网页浏览器输入http://xxxx./earth.cgi,即可登录Web UI。用户只需在Web UI CGI上点击百度地图,即可查询该地的天气服务。运行结果如图18所示。

图18 查询天气服务运行结果Fig.18 Weather query service running result

图18显示上海当天及后两天的最低和最高温度,同时包含天气状况图标。该运行实质是利用了Web UI与Web服务两CGI接口间的交互,用户在地图上的点击触发了Http get/post事件,将Web UI中鼠标点击的经纬度参数传至Web服务CGI, Web服务CGI通过TCL ncgi包内的ncgi::nvlist或ncgi::query方法获取用户传递的参数数据队列。接着对请求的参数队列分析后,Web服务CGI又通过Tclsh的Console输出方式返回响应结果。在Console输出内容前,Console先输出CGI的header信息,即用ncgi::header方法实现(构造HTTP响应消息的头部)。本文设计中,Web服务CGI提供的HTTP响应头部字段简单,设置“Content-type:text/html; charset=utf-8”头字段即可。该UI方案方便用户参照地图,实时查询不同地点的天气状况。

(2)Web服务CGI,即http://xxxx/lib/test.cgi,提供的HTTP服务可在客户端的浏览器/网络应用程序上直接运行。该服务的URL(访问路径)传递参数由服务端设计提供。可传递的参数名称如表1所示。

表1 Web服务URL参数表Tab.1 Web Server URL parameters list

根据表1列出的参数,可获取大致3类信息服务:省份内所包含的支持天气服务的城市列表、城市名称获取天气等信息及经纬度获取其天气等信息。详见图19∼21。

在图19中,查询了江苏省内的18个支持WebXml天气服务的主要城市名称。图20为苏州当天及其之后两天的天气情况、环境指数以及地理人文信息,其中Http URL为http://192.168.3.102/lib/ test.cgi?city=%e8%8b%8f%e5%b7%9e&all=true。图21返回了与图20相同的信息内容,而不同的是请求参数队列及服务过程。图21先由经纬度查询城市名称,再由城市名称查询天气等情况,Http URL则为http://192.168.3.102/lib/test.cgi?lat=31.30&lng= 120.58&all=true。Web服务CGI HTTP Get查询,便于其他网络应用程序访问与调用,比如与Web UI CGI交互。

图18∼21为Windows下启动CGI服务的运行结果。为验证TCL编写的CGI可跨平台操作,在苹果Mac OS(基于Unix开发的系统)上,启动运行该CGI服务,结果见图22∼ 25。在Mac/Unix上启动CGI,需配置Apache2的httpd.conf文件(路径为/etc/apache2/httpd.conf),在httpd.conf中加入CGI模块并绑定访问路径,本文实例中把服务器IP地址及端口192.168.0.111:80与系统目录/Users/jonathanlu/Sites绑定。配置完成,在终端输入sudo apachectl start命令,即可执行该CGI服务。

图19 城市列表服务Fig.19 City list query service

图20 城市天气等信息服务Fig.20 City weather information service

图21 经纬度坐标点的天气等信息服务Fig.21 Latitude and longitude coordinates weather information service

图22 Web UI运行结果Fig.22 Web UI running result

图23 城市列表服务Fig.23 City list query service

图24 城市天气信息服务Fig.24 City weather information service

图25 经纬度坐标点的天气等信息服务Fig.25 Latitude and longitude coordinates weather information service

3 结语

本文通过运用TCL套接字与网络开发包等方法,结合百度API和WebXml服务,设计出天气和地理信息查询平台,实现了基于TCL开发Web服务的目的。该Web服务分别在Windows、Unix/Mac OS系统下经在线测试验证,达到了预期服务效果,完成了多平台通用的要求。除上述外,不同系统下的应用程序也能对该Web服务实现访问与调用,并可结合该服务进行二次开发。

参考文献:

[1]JOHN K.Ousterhour Ken Jones.Tcl/Tk入门经典[M].张元章,译.北京:清华大学出版社,2010.

[2]BRENT B.Welch.Tcl/Tk编程权威指南[M].崔凯,译.北京:中国电力出版社,2002.

[3]崔宪莉,杨文玉.基于Tcl/Tk语言开发教育机器人系统[J].华中科技大学学报,2004(32):176-178.

[4]赵丽.基于TCL脚本的自动化测试工具的研究与实现[J].信息化研究,2009,35(11):28-30.

[5]Weather Web Service.Weather Web Service说 明[EB/OL].[2015-09-10].http://www.webxml.com.cn/ WebServices/WeatherWebService.asmx.

[6]百度地图.百度地图 JavaScript API[EB/OL].[2015-09-10].http://developer.baidu.com/map/index.php?title= jspopular.

[7]百度地图.百度地图Web API[EB/OL].[2015-09-10]. http://developer.baidu.com/map/index.php?title=webapi/ guide/webservice-geocoding.

[8]李磊.利用CGI程序实现动态Web的方法[J].科学技术与工程,2009,9(6):1611-1613.

[9]谢仕义,徐兵.嵌入式Web服务器的设计及其CGI实现[J].计算机工程与设计,2007,28(7):1598-1600.

[10]刘赞毅,李志华,刘凤,等.基于GMap和天气WEB服务的实时天气预报[J].微计算机信息,2010,26(11): 197-201.

中图分类号:TP393.1

文献标志码:A

文章编号:1001-4543(2015)03-0247-13

收稿日期:2015-05-21

通讯作者:鲁珺(1989–),男,上海人,工程师,硕士,主要研究方向为网络自动化测试与光通信收发模块测试。电子邮箱junlu2@126.com。

TCL-Based Weather Forecasting Web Service Platform

LU Jun1,2,XIONG Jia-bao1,ZENG Fu-shan3,ZHANG Xiao-bei1
(1.School of Communication&Information Engineering,Shanghai University,Shanghai 200072,P.R.China; 2.Altran-Beyondsoft(Shanghai)Technologies Co.,Shanghai 201204,P.R.China;3.MStar Software Development(Shenzhen)Co.Shanghai Branch,Shanghai 200120,P.R.China)

Abstract:The current map information query and weather real time forecast are generally achieved by.NET development platform. Basically,.NET support Microsoft windows system excellently.However,it cannot give other systems the same good support.To try another way,tool command language(TCL)tools can be used in many common platforms and it is easily to be expanded.With the usage of the two above characteristics,the TCL uses network interface package,networking protocol package and socket to realize effective and rapid development of network service platform instead of.NET.Meanwhile,the Web Service Platform designed by TCL can also work in different systems such as Linux,Unix and Windows.To help customers acquire geography’s and weather’s information all overthe world,Baidu Map application program interface(API)and Weather Web Service interfaces are adopted.Moreover,TCL common gateway interface(CGI)is used to reorganize Baidu Map API and Weather Web Service API.According to different requirements,the customers can obtain the corresponding information service.In addition,the TCL and CGI scripts designed for weather forecasting service platform can be transplanted from Windows into other systems,and then the operation of cross platform can be achieved.

Keywords:tool command language(TCL);Baidu Map application program interface(API);Weather Web Service;common gateway interface(CGI)