webservice的一些知识点

SOA:(Service-Oriented Architecture)(面向服务的架构)它是有利于在不同应用程序间实现松散耦合集成的软件架构。

SOA架构的实体:服务提供商(Service Provider) 服务注册表(Service Register) 服务使用者(Service Consumer)

SOA概念通过Web服务实现。

Web服务功能:
1.支持数据交换(XML)
2.支持文档交换(pdf,视频文件,图像文件)
3.支持同步或者异步客户端(同步:等待服务完成操作 异步:调用服务后执行其它函数而不是等服务完成)

Web服务优点:
1.支持应用程序和数据集成(http以及跨平台支持 实现了此功能)
2.多功能(Web服务可以通过客户,Web应用以及其它Web服务调用 组合在一起 实现多功能)
3.代码可重用性(一个服务可对应多个客户端)
4.节约成本

Web服务使用JWSDP工具包开发。(这里特指了基于XML的web服务)

JWSDP工具包提供了以下API:
JAX-WS:用于开发XML Web服务的JAX-WS:(Java API forXML WebService)
JAXP:用于解析XML的JAXP:(Java API forXML Parsing)
JAXB:用于绑定XML到Java对象 形成映射关系的JAXB(Java API forXML Binding)
SAAJ:用于将XML或非XML数据的大型文档作为SOAP消息的附件通过因特网传输的API SAAJ:(SOAP with Attachments API for Java)是RESTful Web服务的实现基础
JAXR:用于在Web服务中访问服务注册表API JAXR:(Java API forXML Registing)

Web服务类型:
基于XML的Web服务:(架构由WSDL UDDI和SOAP组成 介绍Web服务1.9)
RESTful Web服务(REST架构->Restful服务)

基于XML的Web服务:由三大组件构成,WSDL(描述基于XML的web服务) UDDI(注册基于XML的服务) SOAP(在Web应用间传递消息)
WSDL:此组件基于XML的文档,用于描述基于XML的Web服务功能
UDDI:此组件基于XML的目录,用于注册基于XML的Web服务
SOAP:此组件基于XML的协议,用于在Web应用间交换消息(Simple Object Access Protocol)
API是JAX-WS

Restful Web服务:基于XML/JSON,以http/https为通信标准。
使用JAX-RS API创建。
JAX-RS API提供javax.ws.rs 来开发Rest Web服务。
javax.ws.rs.core
javax.ws.rs.ext

**************基于XML的web服务展开:
WSDL文档的元素:



用来描述基于XML的web服务
其中:抽象模型:types,message,portType
具体模型:binding,service.

UDDI:
用来注册基于XML的web服务
组成:白页,黄页,绿页

SOAP:用于在Web应用间通信 传递消息
组成:SOAP信封,SOAP报头,SOAP正文,SOAP故障。

创建基于XML的web服务:
a.创建Web服务(在服务器端或者创建客户端应用程序)
b.定义Web方法(在客户端)
客户端通过WSDL文件或者通过显式编码客户端应用程序实现。

**********:Rest与Restful Web服务展开
REST是基于SOA的软件样式架构,用于设计RESTful Web服务。
REST是架构,不是标准(RESTful才是标准),REST遵循面向资源的架构。
REST使用数据元素,组件,连接器来定义关键组件间的关系,REST架构图在 4.5
REST方法使用现有Web标准,Rest更常用(轻量级 简单)
REST架构使用http或https通信。
REST四大设计原则:
使用http方法
显示无状态特性
公开目录结构
以XML/JSON数据格式传输。

Restful是与REST一起使用的标准:
①用于数据传输的XML/JSON
②用于访问web服务的URI
3.用于数据表示的MIME类型

Restful Web服务使用JAX-RS API创建。
JAX-RS API提供javax.ws.rs 来开发Rest Web服务。
javax.ws.rs.core
javax.ws.rs.ext
javax.ws.rs.WebApplicationException抛出异常
javax.ws.rs.ext.MessageBodyWriter和javax.ws.rs.ext.MessageBodyWriter接口负责序列化和反序列化java类型数据。
Restful Web使用从下到上或从上到下的方法开发
可以使用@path批注来指定资源类或其方法的访问url

Restful Web服务与基于XML的Web服务对比:
优先选择RESTful Web服务:
①要开发的Web服务本质上无状态
②客户端每次请求数据未动态生成Web服务要返回的数据
3.使用者的带宽有限。

优先选择基于XML的Web服务:
①客户端需要用于定义客户端与服务交互时必须使用的格式的合约才能与web服务通信时
②需要实现非功能性功能时,例如事务和安全性
3.web服务本质上要异步执行

处理SOAP消息 (单SOAP以及SAAJ)(XML数据格式/非XML数据格式)(即基于XML和基于RESTful 的Web服务)
处理XML数据:JAXP API , JAXB API
DOM和SAX API处理XML

处理非XML数据:SAAJ API

DOM API允许读取和操作XML,DOM在内存中创建对象树,即DOM树。

SAX API以数据流形式处理XML,只允许读取,基于事件解析器。

JAXB以对象形式向Java显示XML:
包括两个步骤:
步骤①:绑定XML文档的模式
步骤②:取消列集XML的文档

SAAJ API在javax.xml.soap包中定义,附件可以是任何格式,纯文本,XML,JSON,音频等。

Metro是软件堆栈,提供更快,安全,可靠,可互操作且面向性能的Web服务

Metro使用JAX-WS和WSIT进行Web服务开发

JAX-WS提供核心,WSIT保证安全,快速可靠的消息传递。

Metro帮助创建具有事务,安全性,可靠性功能的web服务/

Metro三层服务栈:
①帮助开发者开发面向业务的web服务以满足业务需求
②定义用于在客户端与web服务间通信的标准
3.定义用于处理web服务所使用的XML数据的API(DOM/SAX)

WSIT Web服务栈的实现规范:
①核心XML
②引导和配置
3.优化
④可靠性
5.安全性。

web服务模式:
设计模式是解决编程问题的经过深思熟虑且以前使用的解决方案。

Web服务设计模式优点:
①设计模式提供经验有效的解决方案,可以创建易于理解和维护的松散耦合的模块。
②设计人员可以通过根据设计模式提供的高级设计调整其Web组件来解决设计问题。

常见重要的Web设计模式:
①异步交互模式
②Web服务缓存
3.web服务代理模式
4。web服务日志器模式

导致web服务出现性能瓶颈的原则:
①网络等待事件
②处理消息花费事件
3.执行web服务操作花费的时间

部署模式是解决部署问题的经过深思熟虑且以前使用的解决方案。

常见的重要的部署模式:
HTTP负载均衡模式
容器集群模式

HTTP负载均衡所用算法:
①循环:将请求均分到各个服务器
②加权循环:将请求分发到当前性能最好的服务器
3.最少连接:将请求分发到当前连接数最少的服务器
4.基于负载:将请求分发到当前负载最小的服务器

选择题:
第一单元:SOA架构以及基于XML的web服务API介绍。(JAX**)
SOA代表Service-oriented Architecture(面向服务架构)

WSDL用于描述基于XML的web服务

JAX-WS用来开发基于XML的web服务

JAXR用来访问web服务注册表

SAAJ以SOAP附件形式来发送视频,图像等文档,SOAP with Attachment API for Java

第二单元:基于XML的web服务组成
抽象WSDL文件包含portType元素

具体WSDL文件包含service元素

绿页提供关于帮助使用者的技术信息

SOAP消息处理程序用于截取Web服务的请求和响应中的SOAP消息。

第三单元:实现基于XML的web服务

@OneWay方法定义的Web方法具有输入但是没有输出

javax.xml.ws.spi包定义了JAX-WS的service provider接口

MTOM是一种新型的附件规范,应用于SOAP附件消息

javax.xml.ws包定义了JAX-WS API

@WebMethod批注仅受具有@WebService批注的那些类支持

第四单元:REST架构:
显示有状态特性不是REST设计原则(使用HTTP方法,显示无状态特性,公开目录结构,以XML/JSON格式传输数据)

您想要易于开发和使用的轻量级Web服务是使用RESTful Web服务的场景

您想要服务器处理数据的序列化和反序列化是使用基于XML的web服务的场景

GET方法用于读取当前状态资源

JSON是用于数据交换的格式。

第五单元:实现RESTful Web服务:(JAX-RS相关:javax.ws.rs javax.ws.rs.core javax.ws.rs.ext)
java.ws.rs.core才是JAX-RS API的一部分(java.ws.core不是)

RuntimeDelegate类是在javax.ws.rs.ext包中定义的

@Context批注是由javax.ws.rs.core包提供的
javax.ws.rs包定义了WebApplicationException
javax.ws.rs.ext定义了MessageBodyWriter和MessageBodyReader

@POST后面没有/customer请求 也没有content-type=application/xml
仅仅只有@POST

第六单元:处理SOAP消息(单SOAP以及SAAJ)(基于XML以及RESTful)
Java提供JAXP API来解析XML数据
org.xml.sax包包含SAX API的基本接口

javax.xml.bind包提供作为Java应用程序进入JAXB框架入口点的JAXBContent类

javax.xml.soap.DetailEntry接口存储关于SOAPFault对象的信息

javax.xml.soap包的MessageFactory类用来初始化SOAPMessage对象

第7单元:Metro堆栈
Metro堆栈不适用JAXR的XML处理库(JAXR是注册web服务的)

WSIT web服务不实现事务规范

XML Infoset不是核心XML规范

引导是解析WSDL文件的过程。

WSIT不能创建RESTful Web服务

第8单元:Web服务设计模式
设计模式定义:解决编程问题的经过深思熟虑且以前使用的解决方案。

容器集群模式是部署模式

日志写入程序不是安全日志器模式的组件。

HTTP负载平衡模式是部署模式

HTTP负载均衡不适用低连接,使用最少连接算法。

发表评论

电子邮件地址不会被公开。 必填项已用*标注