J2EE基础之Web服务简介

J2EE基础之Web服务简介

1、什么是Web服务?

       在人们的日常生活中,经常会查询网页上某城市的天气信息,这些信息都是动态的、实时的,它是专业的气象站提供的一种服务。例如,在网上购物时,通常采用网上支付的方式,这是通过使用第三方提供的支付工具来实现的。在网络上提供这样的服务,我们称之为Web服务。

      从软件开发者的角度来看,Web服务是一组规范的集合。这种规范用来定义不同应用系统之间是如何交互的,包括信息传递的内容、格式,信息的传递协议,以及相关的安全、策略和互操作等关键特性。

      从编程使用者的角度来看,Web服务是一类应用程序,是能够用编程的方法通过Web调用来实现某个功能的应用程序。

 

2、Web服务的特点

1)封装性:

         对于Web服务使用者而言,仅能看到Web服务提供的功能列表,Web服务的具体实现和运行平台对于使用者是不可见的。

(2)松耦合性

         对于Web服务的使用者来说,只要Web服务的调用界面不变,Web服务的实现发生任何变化对于他们来说都是无法感受到的。

(3)使用标准协议

         Web服务所有的公共协议都使用标准协议描述、传输和交换。

(4)高度可集成的能力

         由于Web服务采用简单、易于理解的标准协议,完全屏蔽了不同平台的差异,无论是CORBADCOM还是EJB都可以通过这种标准协议进行互操作,实现系统的高度集成性。

(5)互操作性

         实现不同系统间的相互调用,具有语言无关性,支持CORBADCOMEJB等多种组件标准,支持HTTPSMTP等通信协议。

 

3Web服务体系结构

       Web服务的体系结构中共有三种角色,服务提供者(服务器)、服务请求者(客户端)和服务注册中心(可选的角色),他们之间的交互的操作构成了Web服务的体系结构。下面请看图一(Web服务体系结构示意图):

 

 图一:Web服务体系结构示意图

4、Web服务技术标准

      Web服务是一段可以用XML发现、描述和访问的代码。Web服务规范是一组协议规范的集合,可以分为两部分:基于Web服务规范和扩展Web服务规范,这些规范包括以下技术标准:

(1)基于Web服务的规范

       1XML

          XMLWeb服务中表示数据的基本格式,是描述Web服务数据的标准方法。除了易于建立和分析外,XML的主要优点在于语言无关性和平台无关性,从而实现了Web服务的语言无关性和平台无关性。

       2SOAP

          简单对象访问协议(Simple Object Access ProtocolSOAP)是表示Web服务信息交换的协议,是在一个分散的、分布的环境中交换信息的简单协议,是基于XML的。它详细说明了传输Web服务的消息的格式,包括四个部分:SOAP封装、SOAP编码规则、SOAP远程表示和SOAP绑定。

       3WSDL

          Web服务描述语言(Web Services Description Language,WSDL)是用来对Web服务进行描述的标准规范,它采用了XML格式描述了调用Web服务所需的所有信息。应用程序可以从WSDL文件中提取这些详细信息,并生成调用Web服务需要的编程接口文件。

       4UDDI

          统一描述、发现和集成(Universal DescriptionDiscovery and Integration,UDDI)是一个规范,它定义了发布和发现Web服务的方法。利用它,应用程序可以把自己的功能提供给其他应用程序或查找并使用其他应用程序提供的服务。通过使用UDDI的发现Web服务,企业可以注册Web服务,允许其他企业代用本身的Web服务。

2)扩展Web服务规范

      1WS-Security

           用来处理加密和数字签名,允许创建特定类型的应用程序,以防止窃听消息,且能实现不可否认的功能。

      2WS-Policy

           用来对WS-Security进行扩展,通过制定复杂的策略来定义哪些用户可以采用哪种方式来使用此Web服务。

      3WS-I

           WS-I提供了一组可用于防止出现各种问题的标准和实践,并提供了标准化测试来检查可能出现的问题。

     4WS-BPEL

          单个Web服务在多数条件下很难满足复杂的企业应用需求。往往需要将多个Web服务组合为一个完整的系统,而WS-BPEL提供了用于指定创建此类系统所必须的交互。

 

5Web服务简单应用实例

   在此推荐一篇博客,实例讲解超详细,很有爱哦:http://www.cnblogs.com/yisheng163/p/4524808.html?utm_source=tuicool

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c# uri.host_C#| Uri.CheckHostName()方法与示例

c# uri.hostUri.CheckHostName()方法 (Uri.CheckHostName() Method) Uri.CheckHostName() method is a static method that returns the object of UriHostNameType enum than we need to compare returned enum object with UriHostNameType.Dns. If both are equal then the …

ue4模型导出_MAYA动画导出以及导入UE4的方式、方法

(此教程使用maya2016、UE4.21制作截图,其他版本只需找到相应的功能同理制作即可)常用的工具最好创建快捷方式;整理模型常用的一键三连:导出常用的一键三连:动画导出前准备:(Tpose文件导入UE4后相当于角色的骨架网格物体…

计算机安装重装出现错误,一键重装失败怎么办?电脑重装系统失败的原因和解决方法...

在电脑出现问题的时候,我们可以通过重装系统来解决电脑问题。但有的时候重装系统失败,无法进行安装,这可怎么办呢?下面就让小编为大家带来电脑重装系统失败的原因和解决方法。1、启用了防毒功能问:当重装系统时&#x…

ctype函数_PHP ctype_cntrl()函数与示例

ctype函数PHP ctype_cntrl()函数 (PHP ctype_cntrl() function) ctype_cntrl() function is a character type (CType) function in PHP, it is used to check whether a given string contains all control characters or not. ctype_cntrl()函数是PHP中的字符类型(CType)函数…

数据的输入输出

字符输出函数putchar int putchar(int c) 函数参数:c为字符常量或表达式函数返回值:输出的字符函数功能:在标准输出上显示一个字符格式化输出函数printfint printf (const char *format, …),成功返回输出的字节数,失败返回-1&…

python匹配邮箱_在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类...

在Python使用正则表达式需要使用re(regular exprssion)模块,使用正则表达式的难点就在于如何写好pre.compile(r 正则表达式)的内容。下面是在Python中使用正则表达式同时匹配邮箱和电话并进行简单的分类的代码,本文只进行了简单的分类,读者可…

服务器时间延迟,如何处理从服务器延迟响应时间'力逼近'

使用下面的示例代码来执行login过程。您可以使用AsyncTask来执行登录过程。LoginActivity类,它使用AsyncTask。在Login按一下按钮,我executing的AsyncTask。在登录过程中,这将显示一个ProgressDialog过程完成后,驳回ProgressDialo…

printf中的指针变量_C语言中的printf()示例/变量

printf中的指针变量As we know that, printf() is used to print the text and value on the output device, here some of the examples that we wrote to use the printf() in a better way or for an advance programming. 众所周知, printf()用于在输出设备上打…

System Center Technical Preview DPM(2016)对Exchange2016的灾难恢复

其实备份很简单,就是做好备份计划即可,但往往客户最担心的是备份的东西在真的灾难恢复时是否可以恢复出来可用,这才是考验备份软件的最关键时刻,因此象备份Exchange这样的应用时对于管理员来说除了会玩备份软件外还需要熟悉Exchan…

as真机调试_如何使用真机调试android程序

展开全部第一步:将我们开发所用的Android真机的USB调试功能打开(打开方法为Settings(设置32313133353236313431303231363533e59b9ee7ad9431333365656531)Applications(应用程序)Development(开发)勾选USB debugging(USB调试)),然后通过usb连接线连接到开…

css如何制作横幅,基本的CSS横幅

我确定这一定非常简单,但我遇到了问题!我想要的效果是每页上横幅或标题的纯色块,其中包含一些文字。但是为了增加一些装饰,我已经为每一面做了一个小图形,这只是一个从横幅颜色渐变为白色的小方块。所以整体效果是一个…

教你在Ubuntu上体验Mac风格

导读老实说,我是个狂热的 Ubuntu 迷,我喜欢 Ubuntu 默认的 Unity 主题样式外观。此外,还有很多关于 Ubuntu 14.04 的漂亮图标主题样式 可用来美化默认的外观。但正如我上面提到的仍有很多用户喜欢 Mac OS X 的主题样式,我希望这篇…

在Python中升级灰度图像

Upscaling of an image refers to enlarging the size of an image. 图像放大是指放大图像的大小。 In this program, we will be using two functions of OpenCV-python (cv2) module.. lets see their syntax and descriptions first 在此程序中,我们将使用Open…

开机未发现nvidia控制面板_Windows10或者其他操作系统开机提示“未发现NVIDIA控制面板,从Microsoft Store中安装NVIDIA控制面板”的解决办法...

昨天深夜,有一个朋友加QQ说他电脑出了问题,不知道咋的就变成了提示“未发现NVIDIA控制面板,从Microsoft Store中安装NVIDIA控制面板” 里面数据还是挺重要的,问是否有办法操作,具体看图; 经过询问得知,客户是在安装一个软件,反复运行后不出现,以为中毒了,就重启了一下…

打印机服务器未响应,打印机不能打印,点击打印后没反应

①我的电脑,右键点管理,服务和应用程序里的服务,找到Print Spooler,启动类型自动,服务状态点启动,确定重启。②控制面板--》管理工具--》服务---》print spooler改为启动。③打印机没设置成为默认打印机&am…

HDU 5145 - NPY and girls

题意&#xff1a; cases T(1≤T≤10) (0<n,m≤30000) (0<ai≤30000)    n个数ai 表示n个女孩所在教室 m次询问 [L,R]&#xff08;1 < L < R < n&#xff09;   问访问所有女孩的顺序方案数(进教室顺序)为多少(一次进教室只能访问一个人) 分析&…

安卓投屏软件_有哪些好用又免费的手机投屏到电脑的软件?

推荐一款免费、好用的投屏软件&#xff0c;叫做【快投屏】&#xff0c;支持多端无线一键投屏、远程投屏&#xff0c;不限制使用时间&#xff0c;不压缩投屏画质。快投屏 - 手机投屏到电视,电脑的无线投屏软件​支持以下几种投屏&#xff1a;手机投电视手机投电脑手机投手机电脑…

dnf韩服服务器维护中,DNF2019韩服4.30维护:这些职业被加强

DNF韩服4.30维护DNF2019韩服4.30更新内容 DNF95版本4.30韩服更新内容 DNF95版本职业平衡。相信大家都很想知道吧&#xff0c;一起来看看吧。地下城一直被称为鬼剑士的游戏&#xff0c;无论是在何地图&#xff0c;如果看不到鬼剑士的话那就是太阳打西边出来了&#xff0c;9成勇士…

2019写给对象的话_恋爱中写给对象看的说说 2019最流行的情侣间情话

1.我发现你是个照骗&#xff0c;因为本人比照片好看多了。2.我昨晚梦见你了&#xff0c;不知是你想我了还是我想你了。3.你有地图吗&#xff0c;我在你的眼睛里迷路了。4.我已经好久没这样喜欢一个人了&#xff0c;就是想到你就会笑的那种。5.当自己最爱的人和最爱自己的人是同…

java 实现 堆排序算法_C程序实现堆排序算法

java 实现 堆排序算法Heap Sort is a comparison-based sorting algorithm that makes use of a different data structure called Binary Heaps. Let us understand some important terms, 堆排序是一种基于比较的排序算法&#xff0c;该算法利用称为二进制堆的不同数据结构。…