【概念】

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】——阶段小结的更多相关文章

  1. [2018福大至诚软工助教]alpha阶段小结

    [2018福大至诚软工助教]alpha阶段小结 一.得分 1. 冲刺(7次 Scrum) 150分 1)第1篇(25分) 项目 评分标准 各个成员在 Alpha 阶段认领的任务 (6分)视详细程度给分 ...

  2. Element Vue 开箱即用框架如何使用-测试开发【提测平台】阶段小结(二)

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 上一篇总结了后端服务接口的开发,这篇我们主要来总结下前后端分离开发中的前端部分,主要是开箱即用的框架介绍和之前章节组件的梳理和部分的扩展内 ...

  3. WebService优点和缺点小结

    最近做的几个项目都用到了webservice,通过自己的实践和网上资料的汇总,现在做个小结:        当前WebService是一个热门话题.但是,WebService究竟是什么?,WebSer ...

  4. Python Flask API实现方法-测试开发【提测平台】阶段小结(一)

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 本篇主要是对之前几次分享的阶阶段的总结,温故而知新,况且虽然看起来是一个小模块简单的增删改查操作,但其实涉及的内容点是非常的密集的,是非常 ...

  5. Android 手机卫士--阶段小结1

    本文地址:http://www.cnblogs.com/wuyudong/p/5904528.html,转载请注明源地址. 本文对之前手机卫士开发进行一个小结. 1.SplashActivity 版本 ...

  6. WebService优点和缺点小结(转)

      一.什么是WebService? 实际上,WebService的主要目标是跨平台的可互操作性.为了达到这一目标,WebService完全基于XML(可扩展标记语言).XSD (XMLSchema) ...

  7. ios学习开发阶段小结

    总结一下,开发了1个月10天的ios经验. 先晒成绩单:两个实验性质的app,一个wifi管家,一个图片壁纸软件 技术小结: 1.熟悉基本的各种ns语法:#import,#include,@class ...

  8. Alpha阶段小结

    1 团队的源码仓库地址 https://github.com/WHUSE2017/MyGod 2 Alpha过程回顾 2.1 团队项目预期 有一个可视化的安卓APP,实现二手交易基本功能.预期的典型用 ...

  9. WebService学习小结

    基于web的服务,服务器整理资源供多个客户端应用访问,是一种多个跨平台跨语言的应用间通信整合的方案 使用场景:天气预报.股票.地图,火车票 schema约束复习 <!-- book.xsd,定义 ...

随机推荐

  1. JavaScript-语法专题

    一.数据类型的转换 概述 JavaScript是一种动态语言,变量没有类型限制,可以随时赋予任意值 强制转换:主要是值Number(),String(),Boolean三个函数 Number函数,可以 ...

  2. 【MYSQL笔记3】MYSQL过程式数据库对象之存储过程的调用、删除和修改

    mysql从5.0版本开始支持存储过程.存储函数.触发器和事件功能的实现. 我们以一本书中的例题为例:创建xscj数据库的存储过程,判断两个输入的参数哪个更大.并调用该存储过程. (1)调用 首先,创 ...

  3. CSS实现表单

    效果图如下: HTML代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  4. CentOS 同步时间的方法

    与时间服务器上的时间同步的方法 1.  安装ntpdate工具 # yum -y install ntp ntpdate 2.  设置系统时间与网络时间同步 # ntpdate cn.pool.ntp ...

  5. ElasticSearch 安装配置

    1.   Elasticsearch5.5.2安装 1.1.Elasticsearch安装步骤 #安装之前需安装java 环境,并配置JAVA_HOME环境变量 #直接下载Elasticsearch- ...

  6. linux安装python并安装pip

    因为最近要在linux环境下进行python编程,所以就试着去安装了一下,但是网上关于python以及pip的安装说实话有点混乱,所以我今天就把前辈的经验再次总结一下,希望可以给大家提供帮助. pyt ...

  7. Java学习笔记四:Java的八种基本数据类型

    Java的八种基本数据类型 Java语言提供了八种基本类型.六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型. Java基本类型共有八种,基本类型可以分为三类,字符类型char,布 ...

  8. CDSビュー新規作成

    CDSビューの追加文書いついては以下の内容も参照してください. ABAP keyword documentation SAP Community. Step 1: CDSビュー作成 Favorite ...

  9. ansible结合SHELL搭建自己的CD持续交付系统

    一. 设计出发点 因公司业务面临频繁的迭代上线,一日数次.仅仅依靠手工效率过低且易出错. 考虑搭建一套可以满足现有场景的上线系统. 二 .为何采用ansible+shell方式 1.可控性(完全自主拥 ...

  10. C#中Equals和= =(等于号)的比较)(转载)

    C#中Equals和= =(等于号)的比较) 相信很多人都搞不清Equals和 = =的区别,只是零星的懂一点,现在就让我带大家来进行一些剖析 一.           值类型的比较 对于值类型来说  ...