JAVA中即时通讯内容扩展的研究.docVIP

  • 2
  • 0
  • 约6.74千字
  • 约 13页
  • 2018-10-11 发布于福建
  • 举报
JAVA中即时通讯内容扩展的研究

JAVA中即时通讯内容扩展的研究   摘 要:针对目前市场中即时通信软件不能提供矢量图形、图表、公式等信息编辑功能的问题,阐述了以插件方式在即时通信软件聊天框中嵌入Word的优点,研究了嵌入及自动化操作方法,设计并实现了一款基于聊天软件Spark的扩展插件。该扩展插件能够在不影响通信系统基本功能的前提下,为即时通信软件Spark提供特殊信息的即时编辑修改功能。   关键词:JAVA;即时通信;嵌入;自动化;插件   DOIDOI:10.11907/rjdk.1511055   中图分类号:TP303   文献标识码:A 文章编号文章编号2015)012000104   基金项目基金项目:中铁四局远程教育平台项目   作者简介作者简介:徐曙民(1990-),男,湖南长沙人,中南大学软件学院硕士研究生,研究方向为即时通讯、网络技术;张伟(1972-),男,黑龙江哈尔滨人,博士,中南大学信息科学与工程学院讲师、硕士生导师,研究方向为软件工程、大数据及知识工程、模式识别。   0 引言   当前市场中腾讯QQ、MSN等即时聊天软件以其良好的交互界面、客户体验和不断完善、创新、增强的服务功能备受广大用户欢迎。此类聊天软件的设计初衷是为普通用户提供日常通讯需求,通信软件中的魔法表情、视频通信、语音通信等功能,丰富了用户的通信方式。   然而,随着信息时代专业分工日趋深化,此类即时通讯软件却不能提供专业化数据即时输入和修改功能。例如,许多大型企业在资金核算或人事调整时,需要很多图形、图表数据描述企业实时资金或人事状况,而现时却只能以图片的形式发送此类信息。   随着高等院校教学科研工作的深入开展,学生在实验、课程设计等教学科研活动中需要用到的信息也日趋复杂,目前的即时通讯软件很难满足此类信息的即时修改和输入功能。例如,数学公式、化学公式、物理公式作为描述事物内部和外部关系的一种表达方法,在现代科技中具有不可替代的作用,但此类信息却不能即时修改和输入。   本文提出一种将Word嵌入即时通信软件聊天框的方式,在即时通信过程中将图形、图表等信息以XML的形式发送和显示,使用户可以在聊天框中即时编辑以上内容。考虑到市场中绝大多数开源即时通信软件使用JAVA语言的因素,文中采用SWT图形库与ActiveX控件结合的方法,开发人员可以在不影响即时通信软件基本功能的前提下以插件的方式嵌入到该软件中。   1 聊天信息显示容器   市场中对于二维矢量图形、数学符号和公式这些复杂的信息内容,一般采用SVG(Scalable Vector Graphics)、MathML(Mathematical Markup Language)这些基于XML标准的扩展标记语言描述[12]。由于扩展语言的标准不同,所以这些信息的容器仅支持单一类型信息的显示与编辑,例如MathType、MathMagic等编辑器仅支持MathML描述的公式显示与编辑, Cairo、Graphviz等编辑器仅支持SVG描述的矢量图形修改。   2007 Microsoft Office system中采用的Office Open XML格式,使用ZIP和压缩技术来存储文档,支持多种XML标准的扩展标记语言,为SVG、MathML等语言描述的信息提供了一个良好的显示和修改容器,所以仅需将Office应用程序嵌入即时通信软件聊天框,即可实现显示和修改此类信息的需求。   2 显示容器嵌入   Office本身不支持作为即插即用对象嵌入其它应用程序,需要采用系统原生外壳包裹。SWT(Standard Widget Toolkit)作为IBM开发的一套用于Java的图形用户界面系统[3],采用如下思想创建组件:在系统组件存在的情况下,采用系统原生组件,在系统组件不存在的情况下,创建模拟组件。   如图1所示,系统提供原生组件包裹Word,SWT在原生组件上覆盖了一层JNI映射,所有操作系统的API调用将会映射到这个JNI调用上,JNI 封装部分SWT的C代码部分, JNI Wrapper部分只是各平台GUI API的JNI简单映射,SWT通过Java Peer填平了各平台差异,从而给Application提供统一的SWT API接口。例如本文中,Application采用SWT API提供的OleFrame作为OLE嵌入的顶层框架,OleClientSite作为包裹Word和Activex的容器。   图1 SWT底层结构   3 客户端中自动化技术应用   在客户端接收与发送消息时,需要将后台中的信息在嵌入了Word的聊天框中显示出来,此时通过自动化技术,在程序与COM组件之间建立一个连接,实现组件间的直接调用与数据

文档评论(0)

1亿VIP精品文档

相关文档