基于Jabber协议的网上拍卖系统的分析和设计

2011-05-12 05:06江晓东
中国新技术新产品 2011年9期
关键词:类库用户端网络服务

江晓东

(浙江工业大学信息工程学院,浙江 杭州 310014)

1 概述

网上拍卖是电子商务系统中重要的一个组成部分,目前最大的问题就是:与顾客通信的方法要么通过 Web页面快速和单向地通信,要么就是通过电子邮件双向和缓慢地通信。这两种方法都不是真正实时交互的。如果需要获得即时响应,大多数企业只能依赖于电话。为了解决即时响应问题,本文提出一种方案,把基于XML的源代码开放的即时消息Jabber和相关的拍卖网络服务结合起来,利用目前广泛使用的即时消息工具作为网上拍卖的客户端,将即时消息的快速双向的特点融入到网上拍卖系统中去。

选择Jabber是本方案的特点:首先Jabber的服务端和客户端都是源代码开放的,同时Jabber可以和其他即时通讯工具通讯。其次,Jabber拥有丰富的服务端开发组件库,开发者可以构建基于Jabber的应用程序。第三,Jabber协议以XML形式来描述传递的消息内容,用户的存在状态和用户标示的。

从本质上讲,Jabber协议和服务结构是建立在多地址之间的XML文档内容的概念上的。作为核心,Jabber是一个既支持外部客户端又支持内部或外部服务的XML消息转换器。因此,基于Jabber的网上拍卖方案设计中的关键表现在这三个方面:①网上拍卖(竞拍人,竞拍商品和竞拍系统结果)中不同业务逻辑的数据之间的传递;②使用Jabber服务端组件库对各个即时消息客户端信息转换为SOAP可以传输的形式;③把用户输入的自然语言转换成机器可以理解的XML形式表达。

2 实现方案所涉及的相关技术和协议

2.1 Jabber的框架实现

Jabber系统包括用户端和服务器端,在Jabber里,用户端叫做节点,服务器端分三部分:主机(host)和Jabber的用户端软件。主机包括服务器(server)和网关(gateway)。Jabber的用户端软件非常简单,只要它能和服务器建立TCP通道,而且能够理解Jabber消息即可。

2.2 jabber协议

2.2.1 JID Jabber协议首先通过JID的命名规则从名字上对整体进行统一。Jabber框架中把所包含的节点,服务器,网关,外部服务器,外部客户端统称为JID.一个完整的JID的形式为:[node@]domain[/resource] [参考RFC2779]。

2.2.2 XMPP(eXtensible Messaging and Presence Protocol)XML和即时消息结合的产物,是人们在使用的过程中对即时消息达成的一项共识。XML的结构化数据的特点决定了整个jabber结构的功能能够被扩展并且能够传递任何结构化的数据。最直接的成果就是利用XML制定了表示即时和感知的XMPP(RFC2779)协议,在那里将即时消息的特点和相应功能作为一种标准固化下来。

2.3 Jabber SDK

Jabber SDK分为两种类型:一种是内部组件,是以C语言编写的,通过调用核心服务代码来访问内部的数据;相对于前面的就是外部组件,这类组件可以以任何形式的语言编写,与核心服务器通过TCP连接,使用Jabber XML API进行交流。目前绝大部分的二次开发都是基于外部组件的。

2.4 SOAP 协议

SOAP定义了如何交换类型和具有结构的信息,它是使用XML作为封装信息的标准。使用XML作为封装和交换信息的标准,SOAP可以在各种不同的平台中使用,只要不同的平台支持并且能够解析和处理SOAP的封包。

2.5 WSDL (Web Services Description language,网络服务描述语言)是一种用来描述网络服务的XML格式的语言。它抽象描述操作以及处理过程,然后绑定到特定的网络或传输协议以及消息格式。

3 网上拍卖系统设计

网上拍卖的功能模块主要包含了这三方面:第一,竞拍人的登记和管理;第二,竞拍商品的登记和管理;第三,竞拍系统和竞拍情况报告。

3.1 功能方案图

3.2 方案说明

本方案的实质是基于Jabber服务端的应用开发。

①从客户端来看,首要的好处便是无需进行客户端的开发。由图可见,非Jabber即时消息的客户端连接到JCP(Jabber Communication platform)都是以各自协议的数据形式传递到JCP。而对这些非XML格式的消息进行转换是Jabber服务器内部专门网关代理负责处理的。

②JCP(Jabber communication platform)是处理所有传入和传出信息的中心平台。从消息处理过程来看,主要有接受数据,内部传递,载入数据和连接过程;外加的功能模块主要涵盖了注册模块,过滤模块,代理转换模块等等。

③服务端类库在整个Jabber服务端开发中起着承上启下的衔接作用。

服务器端类库(Muse API)对JCP进行连接,接着在连接到Jabber服务器后,可以根据Muse API的相关接口对Jabber Server进行操作,主要分为连接服务,用户服务,表示在线状态服务,好友名单服务,聊天室服务,客户端服务和服务端服务。服务端类库调用web服务代理类,和远程的服务内容进行交互数据。WSDL和代理类的关系是后者是前者的衍生物,利用WSDL可以告诉其他应用程序:如何发现一个Web服务等。要通过网络服务自动找到相关的拍卖服务,首先编写相关的WSDL是必不可少的。WSDL的作用是把所描述的网络服务和具体的实现部分绑定在一起。

4 结语

将即时消息工具结合到电子商务的应用之中是一个大的趋势。Jabber的源代码开放还是具有一定的局限性的。首先,如果某个非Jabber即时消息的协议不公开,那么所谓的跨协议的特点也就不复存在了;其次,从安全性角度考虑,这个方案在实现中还需要进一步加强。

[1]www.jabber.org Jabber官方网站

[2]www.echomine.com Muse API网站

[3]Mark Birbeck等.XML高级编程[J].北京:机械工业出版社.

[4]李维.Delphi 6/Kylix 2 SOAP/Web service程序设计篇[M].北京:机械工业出版社.

[5]Jason Kitchen.Jabber away with instant messaging[EB/OL].www.javaworld.com July 26,2002.

[6]Jabber for Web services:Extensible Messaging to Executable Internet.a white paper,January

猜你喜欢
类库用户端网络服务
《压缩机技术》网络服务
《压缩机技术》网络服务
Android用户端东北地区秸秆焚烧点监测系统开发与应用
一种太阳能户外自动花架电气系统简介
云计算趋势下的蓝汛内容感知网络服务