动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息

本月文章推荐
..Net中掌握Windows窗体间数据交互.
.100行Java代码构建一个线程池.
.Java----介绍三个集合容器库.
.一篇不错的介绍Java Socket编程的.
.java 类型提升的约定.
.Hibernate中对Session管理.
.学习DisplayTag想到的学习方法.
.Java学习:EJB的专用术语解释.
.instanceof 运算符.
.Taglib原理和实现 第六章:标签内.
.switch 语句.
.使用RMI和CORBA进行分布式程序设.
.JAVA专业术语集.
.检查Comparator接口的契约义务.
.java中文乱码的解决.
.基础知识 --> JavaDoc用法.
.一个简单实用的数据库操作框架.
.从JAR文件中读取文件.
.JGraph开发经验谈.
.JGraph 5.8 发布.

用Java Web服务打造聊天程序

发表日期:2008-1-5 |



  Web服务是什么或者应该是什么有许多定义,每个或多或少都可以理解。很有趣的事情是最简单的东西往往是最难描述的。眼前就有一个很好的例子:一个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中。它把简单的接口的实现从后端业务逻辑中分离出来。我使用了适配器设计模式,那就是说,到ChatService.java的调用被委托给一个后端处理机。业务逻辑是相当简单的。它是在一个集合中保存消息的SimpleBackendImpl.java类的单一实例。

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

  现在,这个聊天服务器只是一个Java实现。它还不是SOAP。它只是一个用于运行在相同JVM上的客户端的可工作的聊天服务器。下一步就是生成聊天服务器发言SOAP并且创建一个描述它的WSDL文档。


上一篇:浅析Struts 体系结构与工作原理 人气:615
下一篇:Java嵌入式开发之三 人气:425
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 Web Wiz Forums(论坛系统) v9.53
2008-10-7 HDWiki v4.0.1 bulid 081007 UTF
2008-10-7 迅易评选投票管理系统 v10.0
2008-10-7 HDWiki v4.0.1 bulid 081007 GBK
2008-10-7 Bitrac单用户博客 v1.14 bulid 0
2008-10-7 OpenX(广告管理系统) v2.6.2 多国
2008-10-7 乐铺网店系统免费普及版 v3.41
2008-9-29 酷狗音乐(原KuGoo)2008 v5.310 正
2008-9-29 QQTab 1.1
2008-9-29 网络传送带 Net Transport 2.64a
2008-9-29 谷歌金山词霸v1.8
2008-9-29 TweakVI 1.0 Build 1090
2008-9-29 ACDSee Pro 2.5 Build 333 汉化绿
2008-9-29 Winamp v5.541(2189) 周明波简体
2008-9-27 CCleaner 2.12.651
2008-9-27 Mozilla Thunderbird 2.0.0.17 英
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号