标签:
由于REST强制所有的操作都必须是stateless的,这就没有上下文的约束,如果做分布式,集群都不需要考虑上下文和会话保持的问题。极大的提高系统的可伸缩性。
2.restful目前使用现状
目前真正实现rest概念的组件比较少,大多数程序员所谓的rest只不过是以GET访问某个URL。对java而言,后台大多数使用spring来处 理各类参数及路径参数。但这并不真正符合Rest的本义,原始的Rest是把所有资源都虚拟化为URL/URI来表示,所有操作都使用HTTP的几个动作 来完成。之前最纯正的REST实现是RestLet,RestLet基本完全按照作者的博士论文的思路来设计;后边陆续出了一些介于http与原始 rest的实现,前段时间Linkedin出了一个http://Rest.Li,该项目主要是把基于文本的协议修改为二进制协议,效率自然没得说,但引入了过多的复杂性,违背了rest简洁的本意。
现实中的大多数项目,性能的瓶颈主要集中在后端业务逻辑及算法,协议本身导致性能低下的较少。
3.SOAP Webservice和RESTful Webservice
WebService是一种能够使应用程序在不同的平台使用不同的编程语言进行通讯的技术规范,而这种技术规范的实现可以用不同的方法,比如使用基于XML形式的协议(SOAP)进行通讯或者是RESTFUL形式的。
既然我们知道可以使用上面的两种形式进行通讯,那么我们就需要对上面的两种形式进行描述,规范化。而这些规范化的工作sun已经帮我们完成了,也就是JAX-WS,JAX-RS这两种规范。
JAX-WS是一种规范,而在jdk1.6之后就有了自带的实现,但是这种实现是比较简单的,基本上就只能够传递SOAP协议格式的消息。这就是为什么我 们可以在没有axis2或者CXF的情况下开发WebService。 这时候我们就会想了,如果我们需要其他的服务,比如我想让JAX-WS与Spring集成。这种需求前辈都已经考虑过了,也实现了,不需要我们在去实现这 样的需求。而这种需求的解决方案在JAX-WS中是采用框架。而JAX-WS的框架就有AXIS2和CXF。框架使用起来可能会更加灵活,功能更加强大。 比如CXF不仅仅实现JAX-WS,也实现了JAX-RS规范。
那么选择SOAP Webservice和Restful Webservice的使用, 首先需要理解就是SOAP偏向于面向活动,有严格的规范和标准,包括安全,事务等各个方面的内容,同时SOAP强调操作方法和操作对象的分离,有WSDL 文件规范和XSD文件分别对其定义。而REST强调面向资源,只要我们要操作的对象可以抽象为资源即可以使用REST架构风格。
(原文)http://blog.csdn.net/wangyajin333/article/details/47155533
标签:
原文地址:http://www.cnblogs.com/TerrySunShine/p/5809877.html