JSON,REST,SOAP,WSDL和SOA:它们如何链接在一起
目前正在做一些考试,我正在努力通过一些概念。 这些在我的笔记中都被“提及”了,但我并不真正了解它们是如何联系在一起的。 据我的理解是:
SOA–使服务消费者/提供者进行通信的解决scheme。 (据我所知这是所有其他的总称)
WSDL – 描述提供者服务的语言。
SOAP – 服务用来发送消息的XML协议“包装器”。 与WSDL一起工作以提供参数?
REST – 一种类似于SOAP的devise模式,但是避免了XML? (真的不知道这个)
JSON – 使用JavaScript的XML的替代品? (不知道这个或者)
在互联网环顾四周,似乎没有一个清楚的定义,所有这些是什么以及如何相互链接。
想象一下,您正在开发一个Web应用程序,并决定将function与应用程序的表示分开,因为它提供了更大的自由度。
你创build一个API,让其他人也可以实现自己的前端。 你刚刚在这里做的是实现一个SOA方法,即使用Web服务。
Web服务使function构build块可以通过标准Internet协议访问,而不受平台和编程语言的影响。
所以,你devise一个处理和生成有用的后端(web服务)和前端(消耗数据)之间的交换机制,可以是任何东西。 (网页,手机或桌面应用程序,或其他networking服务)。 这里唯一的限制是前端和后端必须“说”相同的“语言”。
这就是SOAP和REST的来源。它们是您select与Web服务进行通信的标准方式。
肥皂:
SOAP内部使用XML来回发送数据。 SOAP消息具有严格的结构,因此需要parsing响应XML。 WSDL是什么请求的参数的规范,以及它们将返回什么。 这是一个完整的API规范。
rest:
REST是一个devise概念。
万维网是代表符合REST架构风格的系统的最大实现。
它不像SOAP一样僵化。 REST风格的Web服务使用标准的URI和方法来调用Web服务。 当你请求一个URI时,它会返回一个对象的表示 ,然后你可以对它执行操作(例如GET,PUT,POST,DELETE)。 你并不局限于selectXML来表示数据,你可以select任何东西(包括JSON)
Flickr的REST API更进一步,可以让你返回图像。
JSON和XML在function上是等价的,可以select。 XML被认为是过于冗长,难以parsing,所以很多次,数据更充分地表示使用JSON。 (如序列化)
这是一个select。
WSDL:Web服务描述语言当您使用Web服务并将Web服务添加到您的项目时,您的客户端应用程序不知道Web服务function。 WSDL文件对Web服务函数等有一些描述,这个文件的types是XML。
SOA:面向服务的体系结构包括所有使用Web服务概念和体系结构的编程。
JSON:当你序列化一个对象的JavaScript的对象格式的types是JSON。 想象你有人类:
class Human{ string Name; string Family; int Age; }
你有这个类的一些实例:
Human h1 = new Human(){ Name='Saman', Family='Gholami', Age=22 }
当您将h1对象序列化为JSON时,结果如下:
[h1:{Name:'saman',Family:'Gholami',Age:'22'}, ...]
javascript可以通过eval()函数来评估这个格式,并从这个JSONstring中创build一个关联数组。