2008年(3500)
分类:
2008-05-04 23:06:03
Cameron Laird (Cameron@Lairds.com)
副总裁,
Phaseit, Inc.
2001 年 8 月
Web 服务正在开始应用于生产。这一关于短消息服务应用程序的个案研究分析了与电信服务 中的 Web 服务开发相关的问题。Cameron 是独立咨询公司 Phaseit, Inc. 的全职开发人员。他经常撰写关于 Web 服务以及 其它技术主题的文章。可以通过 Cameron@Lairds.com 与他 联系。
Web 服务已“投入生产”。尽管许多商业新闻坚持将 Web 服务作为一种未来的技术进行报道, 然而它已经开始为各种组织机构解决问题了。该个案研究简要描述了一个成功的公开的运用推广在为其编 码的程序员眼中是什么样的。
Web 服务方案便于管理吗?这是一个困扰着许多运用推广计划的关键的不确定因素。developerWorks Web 服务专区的读者们早已认识到 Web 服务是一项可靠的技术,它会在不久的将来变得极为重要。然而 方案计划和实行的结果又是什么呢?Web 服务工作与前几代的客户机-服务器式或基于主机的编程有何不 同呢?Lucin 的公共短消息服务(Short Message Service,SMS)为这些问题提供了线索。
服务运用的种类
首先,让我们来考虑一下
Web 服务的产业环境。如今大多数这样的方案都能归入以下四个类别之一:
该个案研究可归入这些类别中的最后一个:Web 服务为该应用程序带来了 CORBA 和 DCOM 无法与之匹 敌的重要优势。DCOM 本质上将用户限制为那些运行在 Windows 桌面的用户。而另一方面,CORBA 对于网 关所要求的简单处理来说显得过于“笨重”了。不仅如此,现实中的 CORBA 方案素有受防火墙和互操作 性问题的牵绊之名,而这些问题 Web 服务都能轻松地加以解决。
开发小组:重要统计资料
Lucin PLC 是一
个总部设在英国威尔士的 Newport 的小型软件咨询公司。Mike Clark 是它的创始人和常务董事。它投身
于面向事务的客户机-服务器应用的专业研究已有十余年。2001 年 2 月,三个工程师开始着手于一个“
Web 服务到 SMS”网关的小型演示。几周后,在 3 月份,它就将此项服务向公众开放了。
在大多数欧洲和亚太国家或地区,那里的无线电话都普遍支持“短消息服务(Short Messaging Service)”或者“短消息发送(Short Message Sending)”,尽管这在美国很少见。在日本和其它地区 热火朝天的 SMS 允许电话用户使用手机撰写短小的文本消息,并将它们进行异步传输。它们可被 视为蜂窝式电话的即时消息传递。
相关的电话技术和计算协议捆绑在一起是很自然的,这样计算机就能产生并有可能接收这样的消息了 。 这便是 Lucin 在其“Web 服务到 SMS”网关中所取得的成就;它是未来几个月中几个收费网关中的第一 个:
在 Lucin 的计划中,再过一段很短的时间,或许就是 2001 年的最后一个季度,它就会具有拨打一个传 统电话,然后用合成的语音读出一条任意消息的能力了。
然而其出发点是 Web 服务与 SMS 的集成。 让我们更仔细地看看第一步。
一种 Web 服务的结构
SMS 网关是一个小
型的软件方案。
许多关于 Web 服务的媒体宣传都设想在大型供应链方案上集成企业应用。Clark 坚持认为,这忽略了一
个要点,那就是“即时满意服务”针对普通的、明确规定的方案,已经运用到了生产中。他有意选择了
SMS 作为模型。
正如 Clark 所指出的那样,“[SMS]就象有着极好使用效果的 Web 服务一样完美地符合这一[模型]
,”但也可能遇到偶尔的供应中断或停机。
当前的基础设备导致我们不得不容忍这些问题。毕竟网络还不是百分之一百的可靠或无所不在的。
一些 Web 服务厂商将“革新”连同其 Web 服务工具的智能性一同兜售。然而不论这个软件在实验室中运 行得如何出色,看上去很少有组织能拥有足够多的连接良好的客户来把那么多重量压在现有的网络上。不 论一个程序的纠错和事务算法有多聪明:除非基础网络连接能获得一笔价格和可靠性均相当可观的订单, 否则建立复杂的 Web 服务就没什么意义。Clark 总结道:“别指望您的用户会因响应时间的缩短而感到 高兴。目前这并非是我们所能掌握的;可能两年后情况会有所不同。”
当前网络基础设备的匮乏迫使 Clark 对 Lucin 作了适当的调整:“我们为一个三年的周期作了仔细 的预算,这意味着我们能在用户基数不大的情况下顺利地维持三年。因为我相信,还需要长时间的艰苦跋 涉,才能让人们认为长期使用 Web 服务对企业来说是足够可靠且值得信赖的。”
与此同时,那几种确实能满足用户的服务可能比您期望的更为简单。Web 服务开发人员将典型的高级 设计看作是从网络上引入数据或对象,对它们进行计算然后使用 Web 服务协议将结果传回网络。Lucin 出售大量符合这一模型的 Web 服务产品并有一些内部工具来支持这样的开发。
然而对于 SMS 网关,Lucin 最终决定采用一种甚至更为简单的方法。Clark 的解释是“……如果您知 道接口的话,便只需构建一个简单的字符串变量,并替换那些您向远程 Web 服务发送数据时会改变的值 。这就节省了不得不引用[SOAP 工具包或模块]所需的时间和开销。"
Lucin 用 Visual Basic 在位于一个 NT Server 4.0 上的产品级版本的 SMS 网关上进行这一简单的 字符串替换,以及其他相关的轻量计算。它所提供的性能对于每天处理的几百条消息(通常在 300 到 800 之间)来说已是绰绰有余了。
该网关的简单性扩展至到了其 身份验证部分:一个通过超文本传输协议(HyperText Transport Protocol,HTTP)以纯文本形式发送的 用户—密码组合。Clark 指出:“您并不希望在登录 Web 站点时使用 HTTPS[安全 HTTP],那又何必用 HTTPS 让用户传递用户名及密码以验证他们使用您的 Web 服务呢?”由于使用 HTTPS 的频率相当高, Clark 指出了其在运行时性能上的缺点,并作了总结:“我们可以在一定程度上使用 HTTPS 的能力,但 差不多应该只在收到用户请求时使用。”
“Web 服务的优点之一,”根据 Clark 的观点,“就是使用简单、牢固的部件所带来的灵活性。”网 关在后端与电信厂商所提供的计量的 SMS 接口相连接。Lucin 已经两度为这个后端改变了供应商,但却 没有中断任何针对客户的服务。网关的用户只需接收关于收到他们的请求的确认;而无需知道或关心后端 的情况。
身份验证,连同验证电话国家或地区代码和本地号码的接口一起,使该网关的 Web 服务描述语言(
Web Services Description Language,WSDL)实例成为一个最广泛使用的公开可见的服务(请参阅参考
资料)。它定义了四种操作:SendTextMessage
、SendMessage
、
ValidPhoneNumber
和 GetCountryCodes
。其中第二种操作的部分定义如清单 1 所示。
清单 1:process.xml
|
Lucin 在该方案中大量地重复运用了其在 Visual Basic 及其同类技术方面的专长。Clark 透露:“ Web 服务只是 DCOM 组件的一个层。”
根据 Clark 的观点,该网关接下来的变化将是:“将它发展成为一种收费服务,”价格为每次 4.5 便士,并与电信供应商签约,合作开发上面提到过的寻呼机、传真以及其它网关。
可操作性结论
作为一个软件方案,SMS 网关是很小的:其设计、实现和部署只需要十几个工作周。由于竞争方面的原因
,Clark 不愿提供编码的细节。而他公开提出的部分观点是,Web 服务提供了基于组件的软件开发的优势
。适合于 Web 服务的几套要求常常自然分解为即使是初级编程人员也能进行的简单设计。
其它的公共 Web 服务在工程范围内同样看起来很小。XMethods.net 有一个通往 PacBell SMS(在美
国西部)的网关。它有个更为简单的公共接口(请参阅参考资料),仅处理
一个 WSDL operation
:sendMessage
。最为复杂的公共服务接口是 Lucin
的邮件列表管理器演示。它定义了二十六个不同的 operation
,所处理的所有数据类型都
很简单,如 string
。
那么,Web 服务开发有什么特别之处呢?我们都还无法确定。尚未有过任何一家从事大规模的基于 Web 服务开发的公司过多透露他们的经验。在小范围内,这一技术“感觉”就像是其它轻量级的网络的开 发。人们能够阅读 XML,并且有这么多工具可供人们管理使用,这无论如何都是个优点。
Clark 认为:“开发 Web 服务的问题并非开发周期,而是力图创建一个人们愿意为之付钱的 Web 服 务。”随着 Web 自身开始了其第二个十年,基础技术已被理解得相当透彻,但是在为人们可读的 Web 站 点建立“商业模型”方面,仍有许多不能令人满意之处,还需要做大量实验。这也将成为外部 Web 服务 — 介绍中所提到的第四个类别 — 的最大挑战。
当 Web 服务的“组件市场”在 OCX 或 VBX 实践的方式的逐渐成熟起来的时候,它的开发工作也将发 生重大变化。 这一技术已经强调了对构件的使用,而它很可能还会随着越来越多的服务联机入网而不断加强。其中的一 个不同可能就是开放源代码的影响。虽然 OCX 和 VBX 拥有所有权定义,并且授权收费的组件总是统制着 那个领域,然而由于 Web 服务是完全基于公共标准的,因此该技术的许多工具包都是开放源代码的。
参考资料