IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  SOA and Web services  >

Python Web 服务开发者 第 7 部分: 第十届国际 Python 大会

developerWorks
文档选项

未显示需要 JavaScript 的文档选项


级别: 初级

Mike Olson (mike.olson@fourthought.com), 首席顾问, Fourthought, Inc.
Uche Ogbuji (uche.ogbuji@fourthought.com), 首席顾问, Fourthought, Inc.

2002 年 4 月 01 日

本文我们稍稍休息一下,暂不讨论编写代码的问题,而来谈谈第十届 Python Web 服务专题会议上发生的一些事情。

2002 年 2 月,全世界的许多开发者齐聚一堂,对他们特别喜爱的主题:Python,进行了为期四天的讨论。第十届国际 Python 大会分成三部分:教程、大会专题和开发者节。既然本专栏已经提供了一份讲述 Web 服务的教程,那我就着重谈谈 Web 服务及协议专题会议上发生的事情。

Web 服务及协议专题会议讨论的重点是 Web 服务领域的前沿开发工具。尽管给出了这些主题,但在关于以下问题的演示期间和间隔期间,还有许多一般性讨论:

  • 何谓 Web 服务?
  • 人们如何使用它?
  • Web 服务有没有前途?
毫无疑问,作为一次 Python 大会,这些讨论都带有一点 Python的味道。对于 Python 中的 Web 服务工具的现状,以及一直以来人们如何使用这些工具来解决实际问题方面的示例,人们都很感兴趣。

谈谈 Web 服务

在 Web 服务及协议专题会议上,首先是 Paul Prescod 的两个演讲,对 Web 服务作了一番介绍。Paul 在他的讨论中定义了许多首字母缩写词,在基于 Web 服务的讨论中,到处都有这些缩写词的身影,Paul 还对这些不同技术作了精彩的总体介绍。在他的演讲中,Paul 还一一讲述了其中许多技术:SOAP、WSDL、UDDI、HTTP 和 XAML 等等,他还给出了一些在 Python 中使用其中一些技术的示例代码。

贯穿这场专题会议的随后的演讲都是对 Web 服务领域的介绍。Matthew Allum 详细而精彩地讲解了 Jabber 通信协议,还谈了谈开放源代码的 jabberpy 工程。对于不太熟悉 Jabber 协议的人,可以这个协议在原始 TCP/IP 上传递 XML 消息。该协议最初是为即时消息传递而设计的,但为了使它成为更健壮的消息传递协议,人们已经对它进行了扩展,使它有了诸如“存在(presence)”之类的概念,这个概念有点类似于 UDDI 中的目录条目。对于您们中对 SOAP 的现状不满意的人,Jabber 是一个值得关注的很不错的协议,因为它是 XML 消息很好的替代传输协议。作为一种更成熟的技术,Jabber 可能促成更稳定的实现的出现并使实现之间具有更好的互操作性。

有一种技术,它并不总是与 Web 服务联系在一起,但用在分布式应用程序方面迄今已有 10 年以上,这种技术就是 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)。Duncan Grisby 对 CORBA 和开放源代码的 ORB ― omniORB ― 进行了简要介绍。随着 Web 服务开始飞速发展,围绕 CORBA 冒出了许多谬论,于是 Duncan Grisby 就把他的演示的许多时间,也即该会议余下的时间,用在了为 CORBA 辩护上。他展示了一些示例,用来证明 CORBA 不是“太复杂”,不是“太臃肿”,也“不是与 SOAP 一样”,等等。在整个会议期间,他都在辩称 Web 服务实际上完全是多此一举。诸如 CORBA 之类的技术用在分布式应用程序方面已有很长时间,也得到了很多深刻的教训,而这些教训 SOAP 将不得不重学一遍。

Mike Olson 和 Uche Ogbuji(本专栏的作者)作了一篇介绍 RDF 及如何在 Web 服务中使用 RDF 的演讲。我们使用 4RDF(4suite 的一个组件)来给出示例,说明如何使用 RDF,并谈了谈使用 RDF 来创建基于 Web 的解决方案的实际用例。我们简要谈了谈如何把 RDF 用作诸如 WSDL 之类技术的替代技术。至于 WSDL,它将成为用来定义 Web 服务的 RDFS。

我们还演示了许多本专栏一直在讨论的内容,根据最新的 4Suite 发行版(0.12)作了更新。

在关于 Web 服务是什么的讨论会中,人们最感兴趣的是由 Paul Prescod 主持的专家座谈讨论会。专家组成员有 Uche Ogbuji、Mike Olson、Duncan Grisby 和 Keith Jackson。听众向专家们提了许多问题,问他们认为 Web 服务将向何处发展,Web 服务的前景如何,专家组成员对 Web 上分布式应用程序的实际实现有什么看法。在座谈会进行到约一半的时候,Tim Berners-Lee 来了,临时成了专家组的第五位成员。此时,讨论会开始讨论如何学习 RDF 以及 RDF 在 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 实现之间具有互操作性需要做些什么。



参考资料



作者简介

Mike Olson 的照片

Mike Olson 是 Fourthought Inc.的顾问和合伙创始人,该公司是一家软件供应商并专门提供企业知识管理应用程序的 XML 解决方案方面的咨询。Fourthought 开发的 4Suite和 4Suite Server是供 XML 中间件使用的开放源代码平台。您可以通过 mike.olson@fourthought.com与 Olson 先生联系。


Uche Ogbuji 的照片

Uche Ogbuji 是 Fourthought Inc.的一名顾问,也是该公司的创始人之一,这个公司是一个软件供应商,专门从事企业知识管理应用程序的 XML 解决方案方面的咨询工作。Fourthought 开发了 XML 中间件的开放源代码平台 4Suite4Suite Server。Mr. Ogbuji 是一位出生于尼日利亚的计算机工程师和作家,在美国科罗拉多州的博耳德(Boulder)工作、居住。您可以通过 uche.ogbuji@fourthought.com与 Mr. Ogbuji 联系。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款