软件开发基本接口学习二

相关知识

Web服务主要有两种,一种是基于soap类型的服务,一种是基于rest类型的服务,其中soap类型的服务有两种版本,一种是soap1.1版本,一种是soap1.2版本,soap服务类型的数据是xml数据格式的,而rest服务的数据类型是json格式的。

SOA(Service-Oriented Architecture)的定义是  面向服务的架构。就是说将软件按照功能设计成一个个服务,这些服务用标准的方式定义接口、并通过标准的协议进行调用。SOA所定义的接口和调用方式是独立于编程语言和运行平台的,广义上将SOA可以基于不同的底层技术实现。

SOAP(Simple Object Access Protoclol)的定义是  简单对象访问协议。是一个用于分布式环境的、轻量级的、基于XML进行信息交换的通信协议。对于SOAP的理解:SOAP=HTTP+XML;SOAP把XML的使用代码化为请求和响应参数的编码模式,并用HTTP做传输,SOAP是把成熟的基于Http的WEB技术与XML的灵活性和可拓展性组合在了一起;一个SOAP实现可以简单的看做遵循SOAP编码规则的HTTP请求和响应。

UDDI(Universal Description, Discovery and Integration)通用描述、发现与集成服务。是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。

WSDL( 络服务描述语言)是Web Service的描述语言,也就是说wsdl文件是soap的使用说明书

REST(Representational State Transfer)表述性状态传递,REST并没有一个明确的标准,而更像是一种设计的风格

RESTful,符合REST原则的架构方式即可称为RESTful

JSON(JavaScript Object Notation)JavaScript 对象表示法

URL(Uniform Resource Locator,统一资源定位符)

接口的定义

计算机世界里的接口这两个字具有两种众所周知的含义:

一种指软件本身的狭义“接口”,比如各种软件开发API等

一种指的是人与软件之间的交互界面,也就是“UI”

这里要说的是前一种定义: 软件不同部分之间的交互接口,就是API(Application Programming Interface,应用程序接口)

软件接口是系统之间交互信息的桥梁,所有在应用上获得成功的软件或者Web应用无一不是首先在API的设计上满足了用户的需求,即便这些用户几乎从不直接使用这些API

主流接口技术

Web Service

MQ

FTP

HTTP

Socket

中间表

MQ消息队列

MQ(Message Queue)消息队列可以简单理解为,把要传输的数据放在队列中,队列是先进先出的

把数据放到消息队列叫做生产者,从消息队列里边取数据叫做消费者

使用消息队列能解耦、异步、削峰、限流

使用消息队列会遇到的问题:

不能是单机的,需要集群或者分布式

如果消息队列挂掉,为了减少数据丢失需要做数据持久化,将消息队列数据存储在(磁盘、数据库、分布式文件系统、Redis)

保证消息没有被重复消费

保证消息传递的顺序性

一致性问题

消费者怎么得到消息队列的数据

Push,生产者将数据放到消息队列中,消息队列有数据了,主动叫消费者去拿

Pull,消费者不断去轮训消息队列,看看有没有新的数据,如果有就消费

FTP

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端

这里说的FTP接口技术是开发FTP服务接口,对外提供接口服务

所有的项目开发中需要使用FTP服务器的地方都不能直接操作FTP服务器,而是通过调用统一的接口去操作文件的上传下载等功能

主要策略:文件上传、下载、删除、列表、展示等所有的项目开发中需要使用ftp服务器的地方都不能直接操作ftp服务器,而是通过调用一个统一的接口去操作文件的上传下载等功能

CIMS、ECM属于这种

HTTP

Http接口基于Http协议,接口开发需要在接口之间做一些约定,简而言之就是一些通信规则,若是不规范的通信将不予以处理或者直接通信失败。

Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取 页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http连接是一种短连接,是一种无状态的连接。

HTTP协议的主要特点可概括如下:

支持客户/服务器模式。

简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP请求

 

 

 

 

 

HTTP协议结构

 

 

 

Web Service术语

XML(Extensible Markup Language)可扩展标记语言

XSD(XML Schema Definition)XML Schema定义,描述 XML 文档的结构

SOAP(Simple Object Access Protocol)简单对象访问协议

WSDL(Web Services Description Language)Web服务描述语言

UDDI(Universal Description,Discovery,and Integration)统一描述、发现和集成

XML

XML(Extensible Markup Language)可扩展标记语言

XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立

虽然XML占用的空间比二进制数据占用的更多,但XML极其简单易于掌握和使用

XSD

XSD(XML Schema Definition)XML Schema定义,描述 XML 文档的结构

XSD是DTD(Document Type Definition,文档类型定义)的替代品,描述XML文档的结构,作用是定义 XML 文档的合法构建模块

XSD本身是一个XML文档,它符合XML语法结构,可以用通用的XML解析器解析它

XSD定义,文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素和属性的默认和固定值

XSD是DTD替代者的原因:

据将来的条件可扩展

比DTD丰富和有用

用XML书写

支持数据类型

支持命名空间

XSD文件的后缀名是.xsd

SOAP

SOAP(Simple Object Access Protocol)简单对象访问协议

SOAP是一种轻量的、简单的、基于XML的协议,它被设计成在Web上交换结构化的和固化的信息

SOAP可以和现存的许多因特 协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途 际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序

SOAP包括三个部分:

SOAP封装:它定义了一个框架,该框架描述了消息中的内容是什么,谁应当处理它以及它是可选的还是必须的

SOAP编码规则:它定义了一种序列化的机制,用于交换应用程序所定义的数据类型的实例

SOAP RPC表示:它定义了用于表示远程过程调用和应答的协定

SOAP消息基本是从发送端到接收端的单向传输,但它们常常结合起来执行类似请求/应答的模式。所有的SOAP消息都是用XML编码。一条SOAP消息就是一个包含有一定必须的SOAP的封装包,一个可选的SOAP标头和一个必须的SOAP体块的XML文档

把SOAP绑定到HTTP提供了同时利用SOAP的样式和分散的灵活性的特点以及HTTP的丰富的特征库的优点。在HTTP上传送SOAP并不是说SOAP会覆盖现有的HTTP语义,而是HTTP上的SOAP语义会自然的映射到HTTP语义。

WSDL

WSDL(Web Services Description Language)Web服务描述语言

WSDL基于XML格式,它是Web Service客户端和服务器端都能理解的标准格式,其中描述的信息分为What、Where、How等部分,好比我们去商店买东西,首先要知道商店有什么东西可买,然后再来购买,商家的做法就是张贴广告海 。

WSDL文件保存在Web服务器上,通过URL地址可以访问到它,客户端要调用Web Service之前,要知道该服务的WSDL地址

Web Service服务提供商可以通过两种方式来暴露它的WSDL文件地址:

注册到UDDI服务器,以便被人查找

直接告诉给客户端调用者,例如,在自己 站给出信息或邮件告诉

WSDL文件是SOAP的使用说明书。只有能看懂WSDL文件,我们才可以去调用SOAP类型的Web服务,在WSDL文件中我们可以获得的信息:

soap服务的名称

soap服务的地址

soap服务暴露的方法

soap服务方法的参数

soap服务方法参数的类型和相应的返回值执行

soap服务方法通过什么方式调用

UDDI

UDDI(Universal Description,Discovery,and Integration)统一描述、发现和集成

UDDI是为解决Web服务的发布和发现问题而制定的新一代基于Internet的电子商务技术标准

包含一组基于Web的、分布式的Web服务信息注册中心的实现标准,以及一组使企业能将自己提供的Web服务注册到该中心的实现 标准

Web Service工作过程

 

 

 

Web API

Web API是一个比较宽泛的概念。这里提到Web API特指ASP.NET Web API, API接口,可以实现存储服务、消息服务、计算服务等能力,利用这些能力可以进而开发出强大功能的web应用。

Web API官方定义如下,强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建http服务的框架。

ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.

特点

基于REST-ful类型的服务,数据格式JSON

可以使用HTTP的全部特点(比如URIs、request/response头,缓存,版本控制,多种内容格式)

支持MVC的特征,例如:路由、控制器、action、filter、模型绑定、控制反转(IOC)、依赖注入(DI)、单元测试。可以使程序更简单、更健壮

可以部署在应用程序和IIS上

这是一个轻量级的框架,并且对限制带宽的设备,比如智能手机等支持的很好

请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式。

请求的回复格式支持 JSON、XML,并且可以扩展添加其他格式

 

RESTFUL

RESTFUL是一种 络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。

RESTFUL特点包括:

每一个URI代表一种资源(resource),所有 址请求接口中不能有动词,只能有名词,这点和数据库设计风格很像

客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源

通过操作资源的表现形式来操作资源

资源的表现形式是XML或者HTML

客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息

WCF和WEB API我该选择哪个h2>

如果服务需要创建一个支持消息、消息队列、双工通信,选择WCF

如果服务需要在TCP/Named Pipes/UDP (wcf 4.5),选择WCF

如果服务需要支持One Way Messaging/Message Queue/Duplex Communication,选择WCF

如果服务需要在http协议上,并且希望利用http协议的各种功能,选择Web API

如果服务需要被各种客户端(特别是移动客户端)调用,选择Web API

如果服务需要创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),选择Web API

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年4月20日
下一篇 2020年4月20日

相关推荐