-
C0126.1+国家政务服务平台数据交换与共享接口+第1部分:数据交换要求
2020-05-27 14:44:24C0126.1+国家政务服务平台数据交换与共享接口+第1部分:数据交换要求 -
国家全民健康信息平台数据交换规范(2019版).rar
2021-02-20 16:08:42本规范规定了国家全民健康信息平台数据交换采用数据接口规范,规定了平台数据交换范围与格式、交换方式与流程、交换管理等规范。 本规范适用于指导国家级与省级全民健康信息平台数据交换接口设计,以及交换体系的... -
C0126.1 国家政务服务平台数据交换与共享接口 第1部分:数据交换要求(2018年11月21日修订版)
2020-09-30 10:55:10电子政务国家政务服务平台数据交换与共享接口国家标准。C0126的本部分规定了国家政务服务平台与各省级政务服务平台、国务院部门政务服务平台之间开展政务服务事项、办件、电子证照、用户等数据交换的具体实现方式。 ... -
Webservice实现跨平台数据交换
2020-06-03 15:13:55Webservice实现跨平台数据交换什么是WebserviceWebservice 和 Mq的区别Webservice 具体实现 什么是Webservice 最近做两个系统之间的数据交换,一直使用的都是ActivityMQ,最近要写一个临时环境的数据交换,没必要...Webservice实现跨平台数据交换
什么是Webservice
最近做两个系统之间的数据交换,一直使用的都是ActivityMQ,最近要写一个临时环境的数据交换,没必要增加中间件,为了节省安装mq就直接利用Webservice实现两个系统的数据交换
Webservice 和 Mq的区别
参考其他博客:
个人认为最本质的区别在于 Webservice近乎实时通信,而MQ却通常是延时通信。
因为webservice其实就是本地服务器程序调用远程服务器上的方法,属于两者之间的交互,请求的时候需要等被请求的服务器做出回应后,另一端才会有所动作,也就是说,如果你请求的service服务器关闭了,或者中断了,那么你这边肯定就得不到答复了,你的这次请求就算是打水漂丢失了。
而MQ 则相当于是多了一个中间件
我所发送的请求 都必须先传达给 这个消息队列组件,然后由这个消息队列组件再去到另一个服务器上去请求,有了响应之后再 返回给当初的请求程序,因为MessageQueue组件会把消息持久化放在本地,所以哪怕突然死机了,请求消息也是不会丢失的。Message Queue属于比较重量级的应用,在规范化的企业流程中用的比较多。如果企业有很多部门,部门都有自己的系统,那么不同的系统之间的集成通信,Message Queue是很好的选择。MQ一般都做为企业级IT应用的中间件存在,有很多企业是作为标准IT基础结构存在的。在市面上常见的MQ中间件有IBM websphere message queue service,Oracle Advanced Queuing,Microsoft Message Queue(MSMQ),Apache ActiveMQ等
如果使用WebService的话,就要写很多的WebService的代码,去建立这些WebServcie,然后暴露出这些接口,相互之间调用,很费事。但是如果使用Message Queue的话,只要把这个中间件的服务器搭建起来,只要在需要的时候加入不同的Queue Manager就可以了,然后就可以访问了,就可以作为不同系统之间的桥梁了。
长耗时的报表,这个在程序中经常遇见,处理海量数据时,可能生成一个报表需要5分中或是更长的时间,客户不能在线实时等待,报表处理比较耗费资源,不能同时处理很多请求,甚至同时只允许处理一个,这时就可以使用MQ。客户端将报表请求和一些必要的报表条件放到Queue中,报表由另一个服务一个一个的处理,处理好后再给用户发一个消息(MSN消息,或mail等)用户再在浏览器或其他报表浏览器中查看报表。
在线商店,在客户下订单的过程后,系统只需做减库存、记录收货人信息和必要的日志,其他的必须配送处理、交易统计等其他处理可以不同时完成,这时就可以将后续处理消息放入Queue中,让另一台(组)服务器去处理,这样可以加快下订单的过程,提高客户的体验;
WebService通常是实时性要求较高,Client端向Server端发出请求后,这是一个短连接,一个Http请求,这个请求发出后,Client端就会一直等到获取到这个结果。但是使用MQ的话,因为有了中间的这一块区域,当请求发出后,Client端可以继续去干别的事情。等到一段时间以后再去中间件的存储区域上查看一下有结果了么,有了结果就取出来,没有的话就再等会再看。
Webservice 具体实现
一、开发webservice接口的方式
1、使用jdk开发
2、使用第三方工具,如cxf、shiro等
我这里用的是cxf,需要添加cxf的支持
客户端的
<dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.0.15</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>3.0.15</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-udp</artifactId> <version>3.0.15</version> </dependency> <dependency> <groupId>wsdl4j</groupId> <artifactId>wsdl4j</artifactId> <version>1.6.2</version> </dependency>
我的服务端不是maven项目,jar上传
https://download.csdn.net/download/qq_34187522/12492827
这是我上传的jar包集合你们可以参考 https://www.cnblogs.com/yxjdragon/p/6030740.html
https://www.cnblogs.com/jedjia/p/cxf.html1.服务提供者实现
创建一个ProjectWebService 接口
@WebService(targetNamespace = "http://service.cxf.web.com/") public interface ProjectWebService { /** * 查询项目信息 * * @param projectId 单个获取项目 * @return */ @WebMethod(operationName = "getProjectInfoByProjectId") public @WebResult(name = "projectXmlStr", targetNamespace = "http://service.cxf.web.com/") String getProjectInfoByProjectId(@WebParam(name = "projectId") String projectId); }
创建一个实现类,并添加配置
@WebService(endpointInterface = "com.XXX.webservice.ProjectWebService", targetNamespace = "http://service.cxf.web.com/", serviceName = "CXFWebService") public class ProjectWebServiceImpl implements ProjectWebService { @Override public String getProjectInfoByProjectId(String projectId) { //实现具体业务 return ""; } }
将写好的接口发布出去,可以通过java代码发布或者配置文件
配置文件的方式
此处也可以用jaxws:server,具体可查看jaxws:endpoint与jaxws:server的区别<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <context:annotation-config /> <jaxws:endpoint implementor="com.XXX.webservice.ProjectWebServiceImpl" address="/projectWebService" ></jaxws:endpoint> </beans>
java代码的方式
public static void main(String[] args) { /*** * 完成 webservice 服务的发布 */ //发布的 webservice 服务的访问地址 String address="http://localhost:8090/项目名/webService/projectWebService"; //创建 UserService 对象 ProjectWebService projectWebService =new ProjectWebServiceImpl (); //发布具体的 webservice 服务 Endpoint.publish(address, projectWebService ); System.out.println("----------发布 webservice 服务-------------") }
发布成功后可以查看发布的内容
http://localhost:8090/项目名/webService/projectWebService?wsdl1.服务的接收者
配置地址以及处理的接口
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:http="http://cxf.apache.org/transports/http/configuration" xsi:schemaLocation=" http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd "> <context:property-placeholder location="classpath*:*.properties"/> <jaxws:client id="syncIService" address="http://localhost:8090/项目名/webService/projectWebService" serviceClass="com.XXX.util.SyncIService" /> </beans>
创建接口,CXFWebService与发布的地方保持一致
@Component @WebService(name = "CXFWebService", targetNamespace = "http://service.cxf.web.com/") public interface SyncIService { /** * 查询项目信息 * * @param projectId 单个获取项目 * @return */ @WebMethod(operationName = "getProjectInfoByProjectId") public @WebResult(name = "projectXmlStr", targetNamespace = "http://service.cxf.web.com/") String getProjectInfoByProjectId(@WebParam(name = "projectId") String projectId); }
接下来调用这个方法就好了
String result = syncIService.getProjectInfoByProjectId(id); //输出结果
也可以直接用java代码调用,从别人那里copy来的
public class WebServiceClient { public static void main(String[] args) throws Exception { //服务的地址 URL wsUrl = new URL("http://localhost:8090/项目名/webService/projectWebService"); HttpURLConnection conn = (HttpURLConnection) wsUrl.openConnection(); conn.setDoInput(true); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8"); OutputStream os = conn.getOutputStream(); //请求体 String soap = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:q0=\"http://webservice.api.com/\" xmlns:xsd= \"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">" + "<soapenv:Body> <q0:getValue><arg0>aaa</arg0> </q0:getValue> </soapenv:Body> </soapenv:Envelope>"; os.write(soap.getBytes()); InputStream is = conn.getInputStream(); byte[] b = new byte[1024]; int len = 0; String s = ""; while((len = is.read(b)) != -1){ String ss = new String(b,0,len,"UTF-8"); s += ss; } System.out.println(s); is.close(); os.close(); conn.disconnect(); } }
-
国家全民健康信息平台数据交换规范(2019年版).pdf
2020-05-20 16:07:00详细描述了全民健康信息平台数据交换规范,有助于全民健康信息平台数据标准规范的建立。文字版,清晰简洁。 -
JT∕T 809-2019 道路运输车辆卫星定位系统平台数据交换
2020-01-20 15:58:19JT∕T 809-2019 道路运输车辆卫星定位系统平台数据交换;道路运输车辆卫星定位系统终端通讯协议 -
JTT 809-2011 道路运输车辆卫星定位系统平台数据交换.pdf
2020-03-02 17:08:22JTT 809-2011 道路运输车辆卫星定位系统平台数据交换.pdf文档,现在809协议大部分平台之间的交互也是用的2011版的。希望能帮助到需要的朋友 -
通用跨平台数据交换接口 2.2
2008-08-02 09:46:19通用的跨平台数据交换接口(简称“通用接口”,IDB),可以实现跨平台数据交换和搜索,能够发送、接收各种异构的数据并把收到的数据直接存放到关系数据库中,使跨平台数据交换犹如收发电子邮件那样简单,只要有了... -
JT∕T 809-2019 道路运输车辆卫星定位系统平台数据交换.rar
2020-03-02 16:59:57JT∕T 809-2019 道路运输车辆卫星定位系统平台数据交换.pdf的压缩包。希望能帮助有需要的朋友。 -
JTT 809-2019 道路运输车辆卫星定位系统 平台数据交换.PDF
2020-03-13 10:24:10JTT 809-2019 道路运输车辆卫星定位系统 平台数据交换.pdf 最近在开发809-2019协议的客户端及服务端,发现原交通部协议文档PDF不能复制,不能搜索,要查找协议比较麻烦。于是我添加了书签,非常方便查找,跳转。 ... -
JT/T 809-2019 道路运输车辆卫星定位系统平台数据交换JTT 809-2019.zip
2019-11-26 09:12:03中国交通运输部标准,JT/T 809-2019 道路运输车辆卫星定位系统平台数据交换,中国交通运输部标准,JT/T 809-2019 道路运输车辆卫星定位系统平台数据交换,2019年3月15日发布,2019年7月1日实施! -
基于XML的电能质量标准数据共享模型及跨平台数据交换
2021-01-14 17:24:20IEEE提出的标准二进制电能质量...基于以上数据交换模型和模式转换方法成功地实现了异构电能质量数据的交换,实践证明所提出的数据模型及实现方式具有良好的鲁棒性和可行性,能较好地实现电能质量数据的跨平台交换与共享。 -
JTT 809-2011 道路运输车辆卫星定位系统--平台数据交换.pdf
2017-05-08 14:29:27《JTT 809-2011 道路运输车辆卫星定位系统--平台数据交换》交通厅官方协议规范说明文档完整版 -
JTT 809-2011 道路运输车辆卫星定位系统平台数据交换
2013-06-18 14:50:26JTT 809-2011 道路运输车辆卫星定位系统平台数据交换 两客一危。 -
JTT809-2019 道路运输车辆卫星定位系统平台数据交换
2020-12-10 11:06:35本标准规定了道路运输车辆卫星定位系统监管/监控平台之间数据交换的技术要求,包括通信方式、安全认证、功能实现流程、协议消息格式和数据实体格式等内容。 本标准适用于道路运输车辆卫星定位系统监管/监控平台之间... -
论文研究-面向汽车产业链的云服务平台数据交换研究.pdf
2019-07-22 19:55:03针对汽车产业链大规模企业群的多源异构数据交换需求,提出了基于第三方云服务平台的数据交换解决方案。在分析数据交换交互关系的基础上,构建了一套通用的第三方Web服务数据交换授权认证机制。为解决数据交换内容... -
面向服务架构SOA跨平台数据交换和搜索
2006-12-27 21:23:58在不同的操作系统和数据库系统中安装了相应版本的IDB_SOA软件后用户就拥有了一个通用的信息共享平台,IDB_SOA平台之间可实现跨平台数据交换和搜索,并把结果直接写入到用户的关系数据库中而不必再编写数据格式转换... -
面向服务架构(SOA)的跨平台数据交换与搜索
2008-02-04 21:19:57跨平台数据交换和搜索中最突出的问题就是异构数据源,正因为异构数据源问题而异致跨平台数据交换必须对各种各样的数据进行格式转换这个难题。“面向服务架构(SOA)的跨平台数据交换与搜索”系统(简称IDB)在模仿大脑... -
JTT-809-2011-道路运输车辆卫星定位系统平台数据交换.doc
2020-03-30 14:45:18本标准规定了道路运输车辆卫星定位系统监管/监控平台之间数据交换的技术要求,包括通信方式、安全认证、功能实现流程、协议消息格式和数据实体格式等内容。 本标准适用于道路运输车辆卫星定位系统监管/监控平台之间... -
交通部_部标_gps_809协议交通部部标_道路运输车辆卫星定位系统平台数据交换
2012-12-07 11:03:57交通部_部标_gps_809协议交通部部标_道路运输车辆卫星定位系统平台数据交换, 下级平台接入需要参考的协议文档 -
JT-T 809-2019道路运输车辆卫星定位系统+平台数据交换.pdf
2020-04-03 15:39:07本标准适用于道路运输车辆卫星定位系统监管与监控平台之间的数据交换和服务。 标准号:JT/T 809—2019 发布日期:2019-03-15 -
JTT 809-2011 (补充)道路运输车辆卫星定位系统--平台数据交换.pdf
2020-04-03 15:50:23本标准适用于道路运输车辆卫星定位系统监管/监控平台之间的数据交换。 注:包含2013补充内容 标准号:JT/T 809-2011 发布日期:2011-05-23 -
JT/T809-2011道路运输车辆卫星定位系统平台数据交换标准.doc
2019-05-21 16:40:36道路运输车辆卫星定位系统平台数据交互,这是jt809得一个东西