Python Web 服务开发者 第 7 部分: 第十届国际 Python 大会
2008-09-30 12:59:49 来源:WEB开发网许多开发者谈了他们一直在做的 Web 服务领域的工程。Andrew Kuchling 谈了在他的 MEMS Exchange 工程中,他们是如何使用基于 Web 的服务来使结构的测试变得简便的。接着,他谈了谈他的 Web 开发环境 Quixote。Quixote 建立在 Python 模板语言(Python Template Language)的基础上,该语言扩展了 python 解释器以使它更适合于基于 Web 的开发。顺便说一下,在主题演讲结束之际,Andrew 因他为 Python 作出的贡献被授予了 Frank Willision 奖。
Mike Olson 和 Uche Ogbuji 就如何使用 4Suite XML 资源库作为构建基于 Web 服务的应用程序的基础进行了介绍。他们谈了怎样可以创建动态数据驱动的应用程序,以及怎样可以通过包括 HTTP、SOAP、XML-RPC、DCOM、FTP 和 CORBA 在内的各种协议连接到这些应用程序。
Tim Berners-Lee 主题演讲
Tim 主题演讲的内容是 Web 化的 Python。在演讲中,他就如何使 Python 成为用于 Web 的更好的编程语言提出了一些想法。在演讲的开头,他谈了他如何喜欢目前这个样子的 Python 语言,以及他如何喜欢那数量极多的用于创建可在 Web 上使用的应用程序的第三方库。他提出的几个想法与本专栏密切相关。他提出的第一个想法是对图(graph)的本机支持。他建议创建一种本机图(native graph)数据类型,这种数据类型看起来有点像字典,但是考虑到了用三元组的存储来表示图。他建议采用类似这样的语法:
x = {sky color blue,gray; madeof air. sea color grey. gray sameAs grey}
在上述代码中,有五条弧(arc):sky color blue、sky color gray、sky madeof air、sea color grey 和 gray sameAs grey。接着,我们可以对这个图进行简单的查询。与上面所示类似的对图的本机支持是存储关于 Web 服务结点的可扩展和有效数据的理想方式。毕竟,“有语义的 Web”是一组非常巨大的图,使用它的应用程序需要有效地表示、查询和遍历这些图。
他提出的第二个想法是关于使程序自身成为对 Web 更加友好的。Python 程序中的所有标识符都应是 URI,这项要求根据的正是这一想法。以模块为例,要用完整的 URI 对它们进行引用:
import http://www.w3.org/2000/10/swap/llyn
http://www.w3.org/2000/10/swap/llyn.doSomething()
从上面的代码中,我们很容易就可以得到其模块版本如下
import http://www.python.org/2002/10/15/string
和
import http://www.python.org/2001/12/25/string
它们将是两个不同的被导入模块,使开发者能够创建他们的代码和(在这个例子中是)标准字符串模块的特定版本之间的更健壮的链接。
从模块被作为 URI 进行引用的想法,Tim 过渡到了其它一些想法,例如模块级变量,这些变量接着可以作为 URL 片段被访问。
print http://www.python.org/2001/12/25/string#hexdigits
类似这样的变化可以通过许多种方式把 Web 服务中的一些更有用的方面直接构建到 Python 中。
在本专栏的下一部分中,我们将回到我们的编码示例中。我们将不再讨论用 SOAPy 和 ZSI 写的客户机和服务器代码,而是要看看要使 Python SOAP 实现之间具有互操作性需要做些什么。
更多精彩
赞助商链接