【WebService】——阶段小结
【概念】
WebService集中解决了远程调用、跨平台和跨语言的问题。如下图中,A应用与B应用之间的相互调用不再局限于平台(Linux或Windows)、语言(Java和C#)。
【与xml】
提到WebService,就不能不说xml的巨大作用。我们在浏览器中输入一个webService服务地址时,就可以看到他是使用xml来传递数据和消息的。无论是后面要说的SOAP协议,还是wsdl,都是基于xml的。在这里,xml需要被严格的规范,再次复习了DTD和Schema的知识。只有合理使用这些规范,才能使提供的服务更好的满足需求。
【三要素】
SOAP,WSDL.UDDI——WebService的三要素。其中,SOAP简单对象访问协议,提供了一种数据交换的规范。WSDL描述语言,用于描述一个服务的信息。UDDI是用来查询、管理WebService。
具体的介绍详见:【WebService】——SOAP、WSDL和UDDI
【实现】
简单的说,具体实现有两种方式:
一是JDK类库开发,不使用任何框架。 参见博客:【WebService】——入门实例
二是使用框架,这里提到的是CXF。 参见博客:【WebService】——CXF整合Spring
在开发流程上,也有两种方式:
1、代码优先
2、契约优先
契约优先,县编写schema或wsdl文件,生成代码。代码优先则相反,Code First,即先编写代码,再根据代码生成wsdl文件。
参见博客:【WebService】——契约优先
【感受】
WebService的跨平台跨语言的优势十分明显,在遇到项目之间调用、新旧系统交互等业务时,都发挥了独特的优势。自己动手写几个wsdl文件,就会发现其实并不复杂,而且比敲代码来的爽快,因为我们不需要考虑是java,还是C#。
最初理解其原理的时候,可以使用jdk做做demo,但之后还是建议直接用cxf等框架来学习,项目中自然更是如此了。直接使用jdk开发,你会被各种jdk版本问题搞得崩溃的……
【WebService】——阶段小结的更多相关文章
- [2018福大至诚软工助教]alpha阶段小结
[2018福大至诚软工助教]alpha阶段小结 一.得分 1. 冲刺(7次 Scrum) 150分 1)第1篇(25分) 项目 评分标准 各个成员在 Alpha 阶段认领的任务 (6分)视详细程度给分 ...
- Element Vue 开箱即用框架如何使用-测试开发【提测平台】阶段小结(二)
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 上一篇总结了后端服务接口的开发,这篇我们主要来总结下前后端分离开发中的前端部分,主要是开箱即用的框架介绍和之前章节组件的梳理和部分的扩展内 ...
- WebService优点和缺点小结
最近做的几个项目都用到了webservice,通过自己的实践和网上资料的汇总,现在做个小结: 当前WebService是一个热门话题.但是,WebService究竟是什么?,WebSer ...
- Python Flask API实现方法-测试开发【提测平台】阶段小结(一)
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 本篇主要是对之前几次分享的阶阶段的总结,温故而知新,况且虽然看起来是一个小模块简单的增删改查操作,但其实涉及的内容点是非常的密集的,是非常 ...
- Android 手机卫士--阶段小结1
本文地址:http://www.cnblogs.com/wuyudong/p/5904528.html,转载请注明源地址. 本文对之前手机卫士开发进行一个小结. 1.SplashActivity 版本 ...
- WebService优点和缺点小结(转)
一.什么是WebService? 实际上,WebService的主要目标是跨平台的可互操作性.为了达到这一目标,WebService完全基于XML(可扩展标记语言).XSD (XMLSchema) ...
- ios学习开发阶段小结
总结一下,开发了1个月10天的ios经验. 先晒成绩单:两个实验性质的app,一个wifi管家,一个图片壁纸软件 技术小结: 1.熟悉基本的各种ns语法:#import,#include,@class ...
- Alpha阶段小结
1 团队的源码仓库地址 https://github.com/WHUSE2017/MyGod 2 Alpha过程回顾 2.1 团队项目预期 有一个可视化的安卓APP,实现二手交易基本功能.预期的典型用 ...
- WebService学习小结
基于web的服务,服务器整理资源供多个客户端应用访问,是一种多个跨平台跨语言的应用间通信整合的方案 使用场景:天气预报.股票.地图,火车票 schema约束复习 <!-- book.xsd,定义 ...
随机推荐
- #leetcode刷题之路4-寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2.请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n)).你可以假设 nums1 和 nums2 不会 ...
- chromium之tracked_objects
// For each thread, we have a ThreadData that stores all tracking info generated // on this thread. ...
- 修改二维码生成插件jquery.qrcode.js支持加入自定义LOGO
1,将jquery.qrcode.min.js和jquery添加到您的网页中 <script src="jquery.min.js"></script> & ...
- Linux 必会
一.一般命令:1.cd 进入磁盘文件夹2.ls- 查看当前文件夹包含哪些文件,注意-后面的3.pwd 立刻知道目前所在哪个文件及4.mkdir 创建文件夹5.touch touch命令用于修改文件或者 ...
- 渗透测试实验(i春秋 真的很简单)
首先利用给的提示: 所以用户名是 ichunqiu 密码是adab29e084ff095ce3eb 可以确定一般密码都是md5的,但是这个20位 应该去掉ada b29e084ff095ce3e才是正 ...
- 一个新晋IT行业的努力Duiker
亲爱的朋友,你好! 我很开心能以这么一篇博客来开始我的IT努力之路.我叫Duiker,是一名软件工程专业的学生,想通过写博客来提升自己,充实自我. 首先,我要确立自己的学习编程目标: 1.将算 ...
- 多线程编程之Apue3rd_Chapter11之互斥锁_读写锁_自旋锁
学习了apue3rd的第11章,主要讲的是多线程编程.因为线程共享进程的资源比如堆和全局变量,多线程编程最重要的是,使用各种锁进行线程同步. 线程编程首先要学习的三个函数如下: #include &l ...
- Ubuntu server中 samba的安装和简单配置
samba是Linux系统上的一种文件共享协议,可以实现Windows系统访问Linux系统上的共享资源,现在介绍一下如何在Ubuntu 14.04上安装和配置samba 工具/原料 Ubuntu ...
- Coap协议学习笔记-第一篇
1. 物联网应用上一般使用单片机(或者其他SOC),单片机的RAM内存一般只有20KB~~128KB左右,然而一个TCP协议栈可能就20KB,所以只能用UDP,因为UDP相对小很多,然后在UDP上加了 ...
- python基础——元组、文件及其它
Python核心数据类型--元组 元组对象(tuple)是序列,它具有不可改变性,和字符串类似.从语法上讲,它们便在圆括号中,它们支持任意类型.任意嵌套及常见的序列操作. 任意对象的有序集合:与字符串 ...