远程服务库API
rsl的Python项目详细描述
rsl-远程服务库
这个模块提供了一个接口集合和一个“插件”机制来 以统一的方式使用不同的协议和技术访问远程服务 太好了。
该库是作为“命令行shell服务”的一部分开发的 一体化”。它已经被分成了自己的包,允许模块化 安装,如果可能对其他项目也有用。
rsl是一个纯客户端库,允许轻松访问web服务。它 提供服务协议和技术的完整抽象,并尝试映射 python方法的每个远程服务。因此,从程序员的角度来看, 两者之间应该几乎没有区别(除了一些最小的样板)。 本地方法调用和远程调用。甚至事实上,无论是soap、json还是 无论使用什么协议,都应该完全隐藏(但不可访问)。
图书馆的主要目标之一是,使增加更多 Web服务和传输协议,而不更改所有其他部分。这个 允许逐位扩展库并使每个包更 可维护。它还允许将安装底纹保持在最小 (只需安装所需的模块)。
文件
文档目前处于非常糟糕的状态,但这将很快改变,因为 原料药稳定。此外,不断增长的用户群提供反馈, 将进一步缩短此时间范围;)。
如上所述,这些模块的核心是接口定义,以及 使用setuptools和zope的“协议插件”发现机制 接口。一般来说,给定接口背后的原理是 web服务客户机可以分成不同的组件。
- Transport:
- Every remote access needs some kind of transport. Transport protocols are plug-able and can easily be replaced to allow easier integration into other frameworks like Twisted.
- Description:
- As there are many different service description formats, which often support multiple service protocols, it is just logical to implement service descriptions as separate components.
- Proxy:
- These kind of components have the knowledge to convert the information from a description and protocols standards into a usable Python object, which acts as proxy to invoke remote services.
- De/Serialiser:
- As different protocols allow different encoding formats, de/serialisers, are implemented as independent components, which allows to reuse them wherever appropriate.
- Typesystem:
- Often XML based encoding standards, feature an own type system (mostly expressed as XML-Schema). Such Typeystems, will also be used for JSON, and probably other future encoding standards will follow. A Typesystem, tries to map between Python data types and wire-representation, and allows the actual user, to ignore the technical details.
上面所有这些组件都是独立实现的,就像 可能,便于更换,高重用性,大扩展性 和灵活性,当然容易安装。
以下模块与此模块一起开发:
- rsl.wsdl : common WSDL module
- rsl.wsdl1 : WSDL 1
- rsl.soap11 : SOAP 1.1 + WSDL 1 SOAP 1.1 extension
- rsl.mime : WSDL 1 MIME extension
- rsl.http : WSDL 1 HTTP extension
- rsl.rest : REST like services
- rsl.jsonrpc10 : JSON-RPC 1.0 implementation
- rsl.smd01 : SMD 0.1 implementation
- rsl.upnp : UPnP description
- rsl.xmlrpc : XML-RPC
- rsl.xsd : XML Schema type system
有关如何使用库的示例,请参见附加模块, 测试也包括在内。
状态
该库在命令行服务集成方面工作得非常好。 使用python eggs和easyinstall,安装非常容易。 然而,由于整个项目的规模越来越大,而且还处于早期阶段 发展阶段,有很多事情,没有解决那么优雅, 很有可能,在不久的将来会发生一些重构。 然而,大多数重构将使代码基更符合 政治公众人物-08。api更改的高度可能性也是导致这种情况的原因 发行版目前分类为alpha。
一个重要的任务是,尽可能减少图书馆的不便 这也将极大地改善图书馆的整体设计。
type系统组件有点麻烦,目前只有一个 可用于它的实现(XML模式)。我希望,这里的情况, 将改进,因为至少有第二种类型的系统实现可用。
评论
由于这个库也支持soap,所以可能会有一个问题:“为什么 soap库?“。简单的答案是,没有工作的客户端 soap库可用。我测试了三个(或者四个?)主要的soap库, 他们中没有一个使用我需要的web服务。其中大部分 对于我的用例来说,soap库太简单了,其他的有一些 主要的互操作性问题。(所以有两个原因:扩展 可用的图书馆将是相同的努力,并修复一个完整的功能。 库,因为代码基础不好,所以会更加努力。)
更改
0.2.1(2008-12-09)
- 固定源分发(缺少cchanges.txt文件)
0.2.0(2008-12-03)
- 初始版本