webservice面试题

webservice⾯试题
⼀ 什么是webservice(⽤你的话描述webservice)?在什么时候⽤webservice(webservice能给我们解决什么样的问题)?
气体收集⼀句话概括:WebService是⼀种跨编程语⾔和跨操作系统平台的远程调⽤技术。
所谓跨编程语⾔和跨操作平台,就是说服务程序采⽤编写,客户端程序则可以采⽤其他编程语⾔编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运⾏。
所谓远程调⽤,就是⼀台计算机a上的⼀个程序可以调⽤到另外⼀台计算机b上的⼀个对象的⽅法。譬如从天⽓预报系统中获取某个城市的天⽓数据在⾃⼰系统中进⾏展⽰;从证券交易系统中获取某只股票的交易信息在⾃⼰的系统中进⾏展⽰;⼜譬如⼀个商城系统中能够展⽰快递的跟踪信息,⽽这些信息就是通
过webservice从具体的快递公司的系统中获取的数据。
其实可以从多个⾓度来理解WebService,从表⾯上看,WebService就是⼀个应⽤程序向外界暴露出⼀个能通过Web进⾏调⽤的API,也就是说能⽤编程的⽅法通过Web来调⽤这个应⽤程序。我们把调⽤这个WebService的应⽤程序叫做客户端,⽽把提供这个WebService的应⽤程序叫做服务端。从深层次
看,WebService是建⽴可互操作的分布式应⽤程序的新平台,是⼀个平台,是⼀套标准。它定义了应⽤程序如何在Web上实现互操作性,你可以⽤任何你喜欢的语⾔,在任何你喜欢的平台上写Web service ,只要我们可以通过Web service标准对这些服务进⾏查询和访问。
⼆.WSDL是什么,有什么作⽤?
WSDL是web service definition language的缩写,即web service的定义(描述)语⾔。
怎样向别⼈介绍你的 web service 有什么功能,以及每个调⽤时的参数呢?你可能会⾃⼰写⼀套⽂档,你甚⾄可能会⼝头上告诉需要使⽤你的web service的⼈。这些⾮正式的⽅法⾄少都有⼀个严重的问题:当程序员坐到电脑前,想要使⽤你的web service的时候,他们的⼯具(如Visual Studio)⽆法给他们提供任何帮助,因为这些⼯具根本就不了解你的web service。解决⽅法是:⽤机器能阅读的⽅式提供⼀个正式的描述⽂档。web service描述语⾔(WSDL)就是这样⼀个基于XML的语⾔,⽤于描述web service及其、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,⼜是⼈可阅读的,这将是⼀个很⼤的好处。⼀些最新的开发⼯具既能根据你的web service⽣成WSDL⽂档,⼜能导⼊WSDL⽂档,⽣成调⽤相应web service的代码。
Webservice服务发布之后,通过浏览器访问发布的+?wsdl即可获得wsdl⽂档。
三.WSDL⽂档主要有那⼏部分组成,分别有什么作⽤?
生物厕所
⼀个WSDL⽂档的根元素是definitions元素,WSDL⽂档包含7个重要的元素:types, import, message, portType, operations, binding和service元素。
1、 definitions元素中⼀般包括若⼲个XML命名空间;
2、 Types元素⽤作⼀个容器,定义了⾃定义的特殊数据类型,在声明消息部分(有效负载)的时候,messages定义使⽤了types元素中定义的数据类型与元素;
3、 Import元素可以让当前的⽂档使⽤其他WSDL⽂档中指定命名空间中的定义;
4、 Message元素描述了Web服务的有效负载。相当于函数调⽤中的参数和返回值;
5、 PortType元素定义了Web服务的抽象接⼝,它可以由⼀个或者多个operation元素,每个operation元素定义了⼀个RPC样式或者⽂档样式的Web服务⽅法;
6、 Operation元素要⽤⼀个或者多个messages消息来定义它的输⼊、输出以及错误;
7、 Binding元素将⼀个抽象的portType映射到⼀组具体的协议(SOAP或者HTTP)、消息传递样式(RPC或者document)以及编码样式(literal或者SOAP encoding);
8、 Service元素包含⼀个或者多个Port元素防老剂rd
每⼀个Port元素对应⼀个不同的Web服务,port将⼀个URL赋予⼀个特定的binding,通过location实现。
可以使两个或者多个port元素将不同的URL赋给相同的binding。
四.SOAP是什么?
SOAP是simple object access protocal的缩写,即简单对象访问协议。 是基于XML和HTTP的⼀种通信协议。是webservice所使⽤的⼀种传输协
议,webservice之所以能够做到跨语⾔和跨平台,主要是因为XML和HTTP都是独⽴于语⾔和平台的。Soap的消息分为请求消息和响应消息,⼀条SOAP消息就是⼀个普通的XML⽂档,包含下列元素:
1、 必需的 Envelope 元素,可把此XML⽂档标识为⼀条SOAP消息
2、 可选的 Header 元素,包含头部信息
3、 必需的 Body 元素,包含所有的调⽤和响应信息
4、 可选的 Fault 元素,提供有关在处理此消息所发⽣错误的信息
旗杆基础
Soap请求消息
Soap响应消息
五.怎么理解UDDI?
UDDI是Universal Description Discovery and Integration的缩写,即统⼀描述、发现和整合规范。⽤来注册和查服务,把web services收集和存储起来,这样当别⼈访问这些信息的时候就从UDDI中查,看有没有这个信息存在。
五.Webservice的SEI指什么?
WebService EndPoint Interface(webservice终端[Server端]接⼝)
就是 WebService服务器端⽤来处理请求的接⼝
六.说说你知道的webservice框架,他们都有什么特点?
Webservice常⽤框架有JWS、Axis2、XFire以及CXF。
颗粒冷却塔下⾯分别介绍⼀个这⼏种Web Service框架的基本概念
1、JWS是语⾔对WebService服务的⼀种实现,⽤来开发和发布服务。⽽从服务本⾝的⾓度来看JWS服务是没有语⾔界限的。但是Java语⾔为Java开发者提供便捷发布和调⽤WebService服务的⼀种途径。
2、Axis2是Apache下的⼀个重量级WebService框架,准确说它是⼀个Web Services / SOAP / WSDL 的引擎,是WebService框架的集⼤成者,它能不但能制作和发布WebService,⽽且可以⽣成Java和其他语⾔版WebService客户端和服务端代码。这是它的优势所在。但是,这也不可避免的导致了Axis2的复杂性,使⽤过的开发者都知道,它所依赖的包数量和⼤⼩都是很惊⼈的,打包部署发布都⽐较⿇烦,不能很好的与现有应⽤整合为⼀体。但是如果你要开发Java之外别的语⾔客户端,Axis2提供的丰富⼯具将是你不⼆的选择。
3、XFire是⼀个⾼性能的WebService框架,在Java6之前,它的知名度甚⾄超过了Apache的Axis2,XFire的优点是开发⽅便,与现有的Web整合很好,可以融为⼀体,并且开发也很⽅便。但是对Java之外的语⾔,没有提供相关的代码⼯具。XFire后来被Apache收购了,原因是它太优秀了,收购后,随着Java6
JWS的兴起,开源的WebService引擎已经不再被看好,渐渐的都败落了。
4、CXF是Apache旗下⼀个重磅的SOA简易框架,它实现了ESB(企业服务总线)。CXF来⾃于XFire
项⽬,经过改造后形成的,就像⽬前的Struts2来
旋转机械故障诊断⾃WebWork⼀样。可以看出XFire的命运会和WebWork的命运⼀样,最终会淡出⼈们的视线。CXF不但是⼀个优秀的Web Services / SOAP / WSDL 引擎,也是⼀个不错的ESB总线,为SOA的实施提供了⼀种选择⽅案,当然他不是最好的,它仅仅实现了SOA的⼀部分。
注:对于Axis2与CXF之间的关系,⼀个是Axis2出现的时间较早,⽽CXF的追赶速度快。
如何抉择:
1、如果应⽤程序需要多语⾔的⽀持,Axis2应当是⾸选了;
2、如果应⽤程序是遵循哲学路线的话,Apache CXF是⼀种更好的选择,特别对嵌⼊式的Web Services来说;
3、如果应⽤程序没有新的特性需要的话,就仍是⽤原来项⽬所⽤的框架,⽐如 Axis1,XFire,Celtrix或BEA等等⼚家⾃⼰的Web Services实现,就别劳民伤财了。
七.你的系统中是否有使⽤到webservice开发,具体是怎么实现的?
如果你觉得⾃⼰掌握的不够好,对⾃⼰不够⾃信的可以回答为“我的系统中没有使⽤到webservice的开发,但是我掌握webservice开发的概念和流程”,然后可以给他讲讲相关的概念,也就是上⾯的这些问题的回答,这样可以绕过这个问题,因为并不是所有的系统都会涉及到webservice的开发。
另⼀种回答即是先给他介绍⼀种webservice开发框架,⽐如CXF,然后告诉他你做的是服务端开发还是客户端开发,如果你说你做的事服务端开发,那么你就告诉他怎么定义的webservice,使⽤了哪些注解,怎么跟spring进⾏的整合,怎么发布的服务等等;如果你告诉他你做的事客户端的开发,那么你可以告诉他你怎么⽣成的本地代码,然后⼜怎么通过本地代码去调⽤的webservice服务。

本文发布于:2024-09-23 12:23:34,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/148185.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:元素   程序   服务   开发   系统   定义
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议