简单的介绍
今天的应用程序不仅需要与基于浏览器的客户端互操作,还需要与其他应用程序互操作。为了互操作性,Web应用程序通常提供Web服务API。Web服务API通过网络(例如Internet)提供对应用程序的远程访问。直到最近,Web服务API还使用繁重而复杂的基于soap的Web服务集成。这种Web服务不仅没有优势,而且需要很长时间才能实现。具有代表性的基于状态传输(rest)的服务的rails框架具有通过活动资源实现和使用Web服务的更简单、更快捷的方式。
在rails实现了restful之后,现在可以通过一个rails操作来提供特定资源的不同内容类型(或表示)。这种方法有以下好处:
资源的各种表示状态。
在控制器视图中简化了对非基于浏览器的HTML客户端的额外支持。
应用程序之间以及与新客户端的互操作性。
在本文中,您将了解rest、soap、rails活动资源,以及如何提高多个应用程序之间的互操作性。
RubyonRails
Rubyonrails(也称为rails或ROR)是一个用ruby语言编写的开源Web应用程序框架。Rubyonrails旨在帮助开发人员更轻松、更快速地开发和部署Web应用程序。与其他语言和框架相比,rails框架做了几个假设。其目的是利用敏捷开发的方法实现快速开发。
rails框架包含以下软件包:
活动记录:对象关系映射层,用于数据库相关的访问和功能;
ActionPack:控制器和视图功能管理器;
Actionmailer:电子邮件处理器;
积极支持
活动资源:提供Web服务(即动作Web服务)。
网页服务
Web服务是使用开放协议进行通信的应用程序组件,并且可以被其他应用程序使用。Web服务是简单的API,可以使用HTML访问并在托管所请求服务的远程系统上执行。Web服务是在不同平台上用不同语言和系统编写的各种应用程序的关键集成点。
休息不是协议;它是一种利用万维网技术和协议的大型网络软件的架构风格。Rest描述了如何定义和处理分布式数据对象(或资源),强调简单的信息交换和可扩展性。其余架构描述了应用于架构的六个约束。
另一方面,soap是一种协议规范,用于在计算机网络中实现Web服务时交换结构化信息。它依赖XML作为其消息格式,通常依赖于其他应用层协议(RPC和HTTP)进行消息协商和传输。Soap可以形成Web服务协议栈的基础层,并为在其上构建Web服务提供基本的消息传递框架。休息和肥皂
下表显示了休息和肥皂之间的一些区别。
Rest依赖于单个应用程序协议(HTTP)、多个URI以及通过XML标准化的多种数据格式。它使用成熟的HTTP方法(例如get和post)来命令应用程序。Rest开发人员使用URI创建一个公共基础,以便应用程序使用HTTP和XML共享数据,而不是为应用程序创建一个标准的机器可读方法来发现和使用远程系统上的应用程序组件(这是Soap用于Web服务的方法)。Rest开发人员使用XML文档而不是应用程序方法调用来告诉分布式程序如何相互使用数据。
REST支持者指出,使用soap协议直接访问远程程序的功能必然会遇到分布式计算架构如DCOM和通用对象请求代理架构遇到的互操作性问题。
活动资源
在采用restful方法在服务器和客户端应用程序之间进行Web应用程序通信之前,soap和其他XML-RPC表单被用于通过API进行通信。rails2引入的活动资源替换了操作Web服务。活动资源完全理解restful路由和XML表示。它是一个将restful资源映射到rails应用程序中的模型的类。活动资源提供工具来快速轻松地使用符合RailsRESTfulURI结构和协议约定的基于REST的Web服务。活动资源将来自任何符合条件的服务的响应映射到丰富的ruby对象。Active资源还提供了轻松执行基本crud功能所需的所有生命周期方法。
CRUD操作分别对应HTTP方法post、get、put和delete。此外,活动资源对这些HTTP方法中的每一个都有一个方法。它们接收与crud相同的参数,但返回接收到的XML的哈希表。活动资源对象本质上是RESTWeb服务器的前端。它通过回调对服务器的HTTP调用并将XML结果解析回ruby对象来检索和修改其数据。
清单1显示了一个最小活动资源的示例。假设您有一个图书馆应用程序,每个类别充当不同的客户端,而印度历史就是其中一个类别。清单1活动资源示例
?Activeresource与活动记录具有相同的方法。在上面的代码示例中,类indianhistory继承自activeresource基础。在第二行中,selfSite包含包含印度历史书URI的站点值。在这种情况下,URI是