用Java Web服务打造聊天程序 - 编程入门网
用Java Web服务打造聊天程序时间:2010-12-16Web服务是什么或者应该是什么有许多定义,每个或多或少都可以理解。很有趣的事情是最简单的东西往往是最难描述的。眼前就有一个很好的例子:一个Web服务是一个可以和外部世界交换文档的实体。这个实体是自我描述的并且拥有一个唯一的特性。 这个文档内容是XML;严格来说是SOAP。SOAP(简单对象存取协议)定义Web服务消费和生成的XML文档的内部结构。SOAP被认为是一个行业标准并且被许多跨平台软件供应商、硬件平台、操作系统或者编程语言广泛地采用。 每个Web服务都有一个地址。这是它的ID。这个地址由一个URI(亦称URL)定义。一个Web服务存在于并且被它的URI标识。这个地址经常被称为一个终端。这个ID和内容的安全性毫无关系。本教程的服务存在于http://localhost:6060/ChatService/。 Web服务带有它自己的描述。这告诉你它交换的是什么类型的文档。它说明了服务存在于什么地方(URI地址)。并且它还说明了它可以使用哪个传输协议来交换文档。Web服务描述使用的语言是WSDL(Web服务定义语言)。一个Web服务完全由它的WSDL文档描述。为了和一个独立Web服务通讯,你只需要WSDL文档。即使WSDL在它自己的上下文中描述Web服务,它还是无法描述多个Web服务组合起来所形成的美妙的乐章。 Web服务有一个地址,但是为了访问它,你需要发现它在哪儿。换句话说,你需要一个电话号簿列表Web服务。UDDI (通用描述、发现和集成)是行业标准的电话号码薄。UDDI处理寄存器并且发现Web服务。 综合起来,一个Web服务就是和现实世界交换SOAP文档的一个实体,使用一些URI定位,使用WSDL文档描述并且可以使用UDDI注册来列出并发现。 一个真实的示例 无数类型的文档可以被发送到Web服务并来源于Web服务。它可以是一个钢厂中的周期的温度报道,它可以是一个地方政府定义的退税请求,或者它可以是一个从一个软件组件到另一个组件的RPC调用的文档风格表现。同样的情况也发生在文档交换方案中。你可以设想单向的消息或者请求-响应消息传送,这里面都需要跟随一个响应文档的请求文档。 Web服务大部分当前的用法遵循XML模式上的远程过程调用。这就是为什么开发者可以很容易转到开发Web服务,而不要对现有的应用程序做重大的修改,或者之需要付出最小的努力就能创建用于Web服务的客户端。Web服务框架经常可以隐藏底层体系结构的复杂性。他们通常提供了用于从语言到WSDL和从WSDL到语言生成的工具。展示象Web服务这样的语言结构比手工处理XML文档快得多并且容易的多。现在,Web服务经常用作一个集成工具,让开发者和系统设计师互连不同的应用程序。 即使本文中的Web服务和它的客户端遵循XML模式上的远程过程调用,但是Web服务的应用范围是非常宽广的。近期,有许多基于松散耦合的纯文档交换模式实现。 一个简单的聊天服务器 在本文中,我试图创建一个比著名的股票行情服务更具挑战的应用程序,但是仍然简单易读。它是一个聊天服务器应用程序。聊天服务器的功能是非常简单的客户端或者发送新消息并读取它们。 这个聊天服务器实现是与WASP和Web服务完全互不相关的。它可以成功地被编译并且用于任何其他的Java环境。这个聊天服务器还描述预存在的业务逻辑。请查看代码来领会。你可以在这里下载用于聊天实现的源代码(而不是Web服务,那个还没有写)。 设计聊天服务器 聊天服务器的全部的实现被分割到好几个类中。接口定义在程序包com.systinet.simplechat.server.iface中。它由三个类组成;聊天服务器的接口类IChatService.java和用于聊天消息的表现两个结构和participants-ChatMessage.java和ChatPerson.java。 聊天服务器的实现在程序包com.systinet.simplechat.server.impl中。它把简单的接口的实 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |