智能调度平台接口GPS系统分册Word文档格式.docx
《智能调度平台接口GPS系统分册Word文档格式.docx》由会员分享,可在线阅读,更多相关《智能调度平台接口GPS系统分册Word文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
3.2.行驶信息接口5
3.2.1.行驶信息服务5
4.接口规约6
4.1.Webservice服务接口基本规约6
4.1.1.技术标准6
4.1.2.服务设计原则6
4.1.3.服务调用原则7
4.1.4.接口说明7
修订历史
版本
类型
成稿日期
责任人
备注
1.概述
1.1.编写目的
为统一智能调度管理配送平台与GPS系统的集成接口,特制定本接口规范,以指导智能调度管理配送平台集成的设计、开发、测试及部署实施工作。
1.2.预期读者
本接口规范预期读者为智能调度管理配送平台和GPS系统接口设计开发人员。
1.3.术语
Webservice集成:
通过WebService的方式进行数据传递的接口集成方式。
1.4.交互示意图
2.接口需求
2.1.行驶信息接口
2.1.1.需求描述
智能调度管理配送平台在运输监控过程中,根据车头牌照,定时获取相应的行驶信息,包括行驶位置(坐标)、速度、方向、采集时间等。
2.1.2.数据类清单
GPS系统提供:
数据类型
数据类
交互频度
String
行驶信息
30分钟/次
2.1.3.接口交互流程图
2.1.4.流程图说明
1、智能调度平台在业务过程中,生成需要查询的车头牌照;
2、智能调度平台调用GPS系统接口,定时发送车头牌照;
3、GPS系统根据车头牌照,生成相应的行驶信息;
4、GPS系统将车头牌照、行驶信息通过接口返回;
5、智能调度平台获取车辆相应的行驶信息。
2.1.5.WebService服务清单
服务提供者
服务分类
服务名称
GPS系统
行驶信息查询服务
待定?
3.Webservice集成
3.1.行驶信息接口
3.1.1.行驶信息服务
3.1.1.1.接口说明
接口说明
智能调度管理配送平台在运输监控过程中,根据车头牌照,定时获取相应的行驶信息
接口方式
WebService
方法名称
?
(待GPS系统提供)
WSDL
服务端
调用端
智能调度管理配送平台
数据频度
输入参数中文名
输入参数英文名
参数格式
非空
含义
车头牌照
FRONT_NO
String(32)
是
车辆唯一标示
用户名
USER_NAME
接口验证用户名
密码
PASSWD
接口密码
返回值中文名称
返回值英文名称
返回值格式
行驶位置
经度
维度
速度
否
方向
采集时间
3.1.1.2.数据交互说明
4.WebService接口规约
4.1.技术架构
4.1.1.技术架构概述
智能调度平台WebService接口采用Xfire技术实现。
客户端和服务器用SOAP协议通过HTTP来交互,客户端根据WSDL描述文档生成SOAP请求消息发送到服务端,服务端解析收到的SOAP请求,调用Webservice,然后再生成相应的SOAP应答送回到客户端。
4.1.2.认证机制
智能调度平台的所有WebService服务均需要认证通过(部分需要授权)才能够被调用。
智能调度平台WebService服务接收到请求后首先从消息上下文中获取用户名和密码,进行认证,认证通过后再调用具体服务。
作为客户端,应用程序代码(使用Xfire的客户端编程模型来编写的)需要将用户名和密码设置到MessageContext中进行调用。
根据客户端程序语言及调用方式不同,设置的方法也不同,下面列举出客户端程序语言为java的两种设置方式:
4.1.2.1.客户端调用
平台使用xfire技术发布webservice服务,建议客户端也使用XFire来访问外部服务,以下客户端调用示例代码都是基于xfire技术来编写的。
一、调用方式
客户端可以通过如下两种方式调用外部服务:
1)根据WSDL创建客户端调用
如果服务端没有提供接口,可以使用这种简单的方式来调用,如下为客户端调用示例代码:
publicstaticvoidmain(String[]args){
Stringwsdl="
http:
//172.21.0.84:
6001/athena_server/pf_webservice
/com.ls.pf.base.impl.auth.extramodel/userService/service?
wsdl"
;
Clientclient=newClient(newURL(wsdl));
//invoke第一个参数为服务方法名,第二个参数为服务参数
Object[]results=client.invoke("
isAdmin"
newString[]{"
SYSADMIN"
});
System.out.println(results[0].toString());
results=client.invoke("
getUserBySysUserName"
newString[]{"
}
2)通过服务端提供的接口调用
如果服务端有提供接口,或者服务参数和返回值为复杂类型时,则建议使用这种方式,客户端调用代码如下:
Stringwsdl="
//127.0.0.1:
7080/amber_server/pf_webservice
/com.ls.pf.base.impl.auth.extramodel/userService/service"
ServicesrvcModel=newObjectServiceFactory().create(IUserService.class);
XFireProxyFactoryfactory=newXFireProxyFactory(XFireFactory
.newInstance().getXFire());
try{
IUserServiceuserService=(IUserService)factory.create(srvcModel,wsdl);
XFireProxyproxy=(XFireProxy)Proxy.getInvocationHandler(userService);
Clientclient=proxy.getClient();
Booleanresut=userService.isAdmin("
);
}catch(MalformedURLExceptione){
e.printStackTrace();
}
二、添加验证信息头
当访问的webservice服务需要进行认证时,客户端调用代码需要传入认证信息头,如下分别为服务端是AuthenticationHandler认证和ws-security认证时验证头添加方式
Ø
服务端为AuthenticationHandler认证
当服务端配置了AuthenticationHandler认证时,客户端通过如下示例代码添加验证头:
Clientclient;
ClientAuthenticationHandlerhandler=newClientAuthenticationHandler("
用户名"
"
密码"
client.addOutHandler(handler);
client.addInHandler(handler)
服务端为ws-security认证
当服务端配置成ws-security认证时,客户端通过如下示例代码添加验证头。
注:
认证用户名在pf_user表中的密码必须为
n9zf4TIQEzubAi0PrSL8qHuEgMaXMazk6uh53w5I
client.addOutHandler(newDOMOutHandler());
Propertiesproperties=newProperties();
configureOutProperties(properties);
client.addOutHandler(newWSS4JOutHandler(properties));
privatestaticvoidconfigureOutProperties(Propertiesproperties){
//Actiontoperform:
usertoken
properties.setProperty(WSHandlerConstants.ACTION,WSHandlerConstants.USERNAME_TOKEN);
//Setpasswordtypetohashed
properties.setProperty(WSHandlerConstants.PASSWORD_TYPE,WSConstants.PW_DIGEST);
//Usernameinkeystore
properties.setProperty(WSHandlerConstants.USER,"
//Useddoretrivepasswordforgivenusername
properties.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS,PasswordHandler.class.getName());
其他的调用方式及其他语言设置方式请查阅Xfire相关文档。
4.2.数据规约
4.2.1.Webservice接口数据协议
采用WebServiceSOAP协议。
客户端和服务端采用json格式的字符串来交互业务数据,客户端将业务数据组织成json格式的字符串作为入参调用服务端接口,服务端解析json格式的字符串得到业务数据处理业务并把结果组织成json格式的字符串返回给客户端。
4.2.2.数据格式约定
业务数据组织成JSON格式的字符串来交互。
4.3.WebServiceWSDL
4.3.1.智能调度平台WSDL
待提供
服务名
服务调用参数说明
方法名
参数1<
类路径>
参数2<
服务名>
参数3<
入参>