灵通163百科在线-实用的手机,证券免费资源网站

您现在的位置:首页 > K-JAVA资源 > JAVA软件工具 >

用Java Web服务打造聊天程序

教程来源:www.lt163.com     点击数:     更新时间:2017-12-03 17:26

1

天极IT资讯短信服务 电脑小技巧
  介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。  
 
  

  Web服务是什么或者应该是什么有许多定义,每个或多或少都可以理解。很有趣的事情是最简单的东西往往是最难描述的。眼前就有一个很好的例子:一个Web服务是一个可以和外部世界交换文档的实体。这个实体是自我描述的并且拥有一个唯一的特性。

  这个文档内容是XML;严格来说是SOAP。SOAP(简单对象存取协议)定义Web服务消费和生成的XML文档的内部结构。SOAP被认为是一个行业标准并且被许多跨平台软件供应商、硬件平台、操作系统或者编程语言广泛地采用。

  每个Web服务都有一个地址。这是它的ID。这个地址由一个URI(亦称URL)定义。一个Web服务存在于并且被它的URI标识。这个地址经常被称为一个终端。这个ID和内容的安全性毫无关系。本教程的服务存在于:6060/ChatService/。

  Web服务带有它自己的描述。这告诉你它交换的是什么类型的文档。它说明了服务存在于什么地方(URI地址)。并且它还说明了它可以使用哪个传输协议来交换文档。Web服务描述使用的语言是WSDL(Web服务定义语言)。一个Web服务完全由它的WSDL文档描述。为了和一个独立Web服务通讯,你只需要WSDL文档。即使WSDL在它自己的上下文中描述Web服务,它还是无法描述多个Web服务组合起来所形成的美妙的乐章。

  Web服务有一个地址,但是为了访问它,你需要发现它在哪儿。换句话说,你需要一个电话号簿列表Web服务。UDDI (通用描述、发现和集成)是行业标准的电话号码薄。UDDI处理寄存器并且发现Web服务。

  综合起来,一个Web服务就是和现实世界交换SOAP文档的一个实体,使用一些URI定位,使用WSDL文档描述并且可以使用UDDI注册来列出并发现。

2

  一个真实的示例

  无数类型的文档可以被发送到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中。它把简单的接口的实现从后端业务逻辑中分离出来。我使用了适配器设计模式,那就是说,到ChatService.java的调用被委托给一个后端处理机。业务逻辑是相当简单的。它是在一个集合中保存消息的SimpleBackendImpl.java类的单一实例。

  初看起来,置配器/后端实现看起来对于用于一个简单的教程太复杂了。然而,即使复杂的现有的业务逻辑可以被重使用来变成一个没有任何改变它的代码的需要的Web服务。这是一个常见的现实的使用案例。即使应用程序没有使用原来的适配器模式,编写一个象ChatService这样的包装类,不需要重写原始的后端程序逻辑。然而,后端可以使用JDBC和一个关系数据库来实现,否则作为一个EJB,甚至调用外部非Java应用程序的本地方法。可能发生的事是无穷尽的。适配器模式只允许你很快地触发新的后端逻辑。

没有相关教程
UC浏览器 最先进实用的手机端浏览器,最大限度节省页面浏览流量,点击下载
老虎地图 绿色纯免费GPS定位省流量的最佳手机地图,点击下载
网秦手机安全系列 手机杀毒防盗,防火墙,构建手机安全,点击进入
塞班精品游戏 最流行最给力的塞班S60免签名名精品游戏合集,点击进入
阿里通 手机上轻松拨打网络电话和收发短信,高音质超省话费,资费标准
爱科手机电话 国内最好的手机网络电话领先品牌,价格低廉,点击查看
愤怒的小鸟2 全民挑战超流行休闲游戏力推新作-愤怒的小鸟2,点击查看
魔力旺旺 淘宝卖家首选的交易工具

资源下载排行
文章阅读排行