基于Ajax和J2EE的融合通信系统及其数据传输方法

文档序号:7717883阅读:176来源:国知局
专利名称:基于Ajax和J2EE的融合通信系统及其数据传输方法
技术领域
本发明涉及融合通信领域,尤其涉及B/S架构下基于Ajax和J2EE融合通信系统的设计,以及系统中客户层与表现层之间数据传输的一种新型方法。
背景技术
传统的融合通信系统采用C/S (客户机/服务器)结构,系统分为客户机和服务器两层,该系统虽然可以直接在客户端部署应用程序,所以可以让人机交互界面更好有好,但由于服务器连接个数和数据通信量的限制,这种结构的软件适用在用户数目不多的局域网中应用。 随着Internet技术的兴起,融合通信系统开始采用B/S (浏览器/服务器)结构。B/S结构本身是对C/S结构的一种改进。传统Web应用下的B/S结构分为三层表现层、逻辑层和数据层。应用的逻辑层和表现层完全在服务器端实现,客户端只需要浏览器进行显示和用户操作即可。在这种结构中,客户端的请求以HTTP请求形式发送,而服务器端则将响应以HTML页面的形式送回客户端,由客户端浏览器负责显示HTML页面。
相比C/S结构,B/S结构的系统具有如下特点 1)客户端零安装、零部署,只需要一个浏览器,就可以运行这个平台;
2)系统更加安全;
3)数据抗风险能力加强;
4)更广泛的网络适应。 虽然融合通信系统采用传统Web应用的B/S结构优于采用传统的C/S结构,但也存在种种问题,主要表现在以下方面 1)独占式请求如果前一个请求没有得到完全响应,则后一个请求不能发送,用户在等待服务器的响应期间,浏览器一片空白; 2)频繁的页面刷新由于采用请求-页面的对应模式,每个请求都需要丢弃当前的页面来重新加载新页面,频繁的页面刷新不仅让用户处于不连续的体验中,也使服务器负担加重; 3)简陋的页面由于丰富表现的页面文件较大,如果频繁刷新,不但影响用户感觉,而且系统开销很大,因此,传统的Web应用的页面比较简陋。

发明内容
发明目的 本发明克服了现有技术中的缺点,提供了一种基于Ajax和J2EE的融合通信系统及其数据传输方法,建立一个基于Web的融合通信用户系统,这个系统支持IE, Firefox,Opera和Safari等浏览器,集成即时通信、软电话、电子邮件和通信薄等服务。基于这个系统,用户可以无需下载相关软件,可以在线同时进行QQ、MSN、收发电子邮件和电话语音服务。
技术方案 为解决上述技术问题,本发明的技术方案为 —种基于Ajax和J2EE的融合通信系统,包括相互连接的表现层模块、业务层模块
和数据层模块,表现层模块和业务层模块位于服务器端,数据层模块位于数据库端,还包括
用于部分流程控制和业务功能的客户层模块,客户层模块位于客户端,所述客户层模块由n
个浏览器组成,500《n《IOOO,每个浏览器包含四个模块 i,用于实现QQ、MSN基本功能的即时通信模块; ii,用于实现VoIP软电话基本功能的软电话模块; iii,用于记录融合通信系统好友的基本信息的通信薄模块; iv,用于实现电子邮件收发的基本功能的电子邮箱模块; 所述表现层模块包括四个Servlet程序处理模块,分别是ImServlet模块、
PhoneServlet模块、AddressServlet模块禾口 EmailServlet模块,其中, ImServlet模块负责处理客户层即时通信模块的请求,并将处理结果返回给客户
层即时通信模块; PhoneServlet模块负责处理客户层软电话模块的请求,并将处理结果返回给软电话模块; AddressServlet模块负责处理客户层通信薄模块的请求,并将处理结果返回给通信薄模块; EmailServlet模块负责处理客户层电子邮件模块的请求,并将处理结果返回给电子邮件模块。 在表现层模块和客户层模块之间还设置了由客户层发送的用于识别URI地址的
URI识别层模块,其中URI地址是用于标识表现层模块的不同的Servlet程序模块的地址。 —种基于本发明的数据传输方法,包括表现层模块、业务层模块以及数据层模块
之间的数据传输步骤,客户层模块与表现层模块间的数据传输步骤如下 a)步骤,在客户层模块中判断用户使用的浏览器类型,创建XMLHttpRequest对
象; b)步骤,浏览器的各个模块使用XMLHttpRequest对象向服务器端发出异步请求,在客户层模块中启用异步传输机制,其调度方法为 第I步、定义一个动态数组,作为浏览器各个模块发出的异步请求的存储池,浏览器各个模块的异步请求按照发送顺序动态存储在这个数组中; 第II步、当动态数组中存在异步请求时,按照优先级顺序发送异步请求,优先级顺序依次为软电话模块、即时通信模块、通信薄模块、电子邮箱模块;若动态数组中无异步请求时,停止发送请求,准备接收来自浏览器各个模块的异步请求; c)步骤,客户层模块将浏览器各个模块的异步请求发送至URI识别层模块,URI识别层模块根据浏览器各个模块的异步请求分配相应的URI地址,由URI识别层连接表现层模块中的相应的Servlet程序处理模块; d)步骤,表现层模块根据异步请求的URI地址,将浏览器各个模块发出的异步请求分配给相应的Servlet程序处理模块处理,Servlet程序处理模块通过业务层模块访问数据层模块中对应的数据项;
e)步骤,Servlet程序处理模块将访问到的数据项返回到URI识别模块中,URI识别模块根据c)步骤分配的相应的各异步请求的URI地址,将数据项返回到对应的浏览器各模块; f)步骤,浏览器各模块使用XMLHttpRequest对象解析表现层模块返回的数据项,获得服务器端响应数据; g)步骤,浏览器各模块获得响应数据后,通过文档对象模型DOM动态更新HTML页面,通过为服务器端响应数据增加层叠样式表CSS,在当前客户端的各浏览器的相应的模块显示出相应的动态效果。
有益效果 与现有技术相比,本发明有以下优点 新型B/S结构这种体系架构不同于传统的C/S结构,它告别服务器/客户端模式,采取服务器/浏览器模式,方便部署,更加安全。它也对传统Web应用的B/S结构进行了一定改进,分为四层客户层、表现层、业务层和数据层,而传统的B/S结构没有客户层。
本发明采用数据异步传输机制,避免了页面刷新,丰富用户界面,提高响应速度,带来更好的用户体验。 异步请求的调度由于在融合通信系统中存在大量的异步请求,可能发生请求冲突,本发明设计了异步请求调度的功能,根据模块的优先级处理相应的异步请求。本发明摆脱传统的C/S结构和传统Web应用的B/S结构,采取服务器/浏览器模式,方便部署,更加安全。它也对传统Web应用的B/S结构进行了一定改进,采取使用客户端Ajax技术的新型B/S结构,客户端采用Ajax技术,包含部分业务逻辑在后台工作,负责处理部分逻辑,异步提交请求,以及读取服务器响应数据,动态更新页面。客户层采用Ajax技术与服务器端的表现层进行异步通信,用户发送请求后,完全无须等待,请求的处理不会阻塞用户当前的活动,这样,用户无需等待第一次请求得到完全响应,可以立即发送第二次请求,这一个新型的数据传输方式可以提高响应速度,丰富用户界面,从而可以带来更好的用户体验。


图1是本发明融合通信系统B/S结构设计图。 图2是浏览器模块组成与关系图。 图3是表现层模块组成与关系图。 图4是表现层Servlet程序处理请求流程图。 图5是即时通信模块数据传输流程。 图6是软电话模块数据传输流程图。 图7是邮箱模块数据传输流程图。 图8是通讯薄模块数据传输流程图。
具体实施例方式
下面结合附图对本发明的技术方案进行详细说明 如图1所示,本发明采用的是B/S结构的四层模型客户层、表现层、业务层和数据层。其中,客户层位于客户端,表现层和业务层位于服务器端,数据层位于数据库中。客户层包含大量浏览器,每个浏览器使用Ajax技术中异步传输方法与服务器端的表现层进行
数据交互。本发明主要解决浏览器和表现层之间的数据异步传输的具体实现方法,以及浏
览器上如何呈现来自表现层的数据。表现层使用业务层定义的方法从数据层中存入和取出
数据,数据层负责数据的持久化,以保证数据不会因为用户退出登录或其他原因而消失。 图2显示了客户层的浏览器中的模块以及模块间的异步数据调度的方法。浏览器
包含四个模块即时通信模块、软电话模块、通信薄模块和电子邮箱模块。这是四个独立的
模块,每个模块都拥有自己独特的功能。但是每个模块都采取异步通信的方法与服务器端
的客户层进行数据交互。下面介绍一下采取异步通信的过程。 本发明的各个模块使用Ajax的XMLHtpRequest对象发送异步请求。 1)判断用户使用的浏览器。因为XMLHttpRequest对象在不同的浏览器实现的方
式不同,因而在不同的浏览器中创建XMLHttpRequest对象的方式也存在差异。本发明针对
用户使用不同的浏览器,采取了不同的方法建立XMLHttpRequest对象,尽量兼顾了不同浏
览器的实现。 2)用户使用XMLHttpRequest对象发送异步请求。与传统的请求方式不同,异步请 求不需要提交表单或者请求新的网络页面,而是通过JavaScript代码完成,这就避免了页 面的刷新,这也是异步发送请求的核心; 3)使用XMLHttpRequest对象,首先,使用open()方法连接服务器的URI,调用 setRequestHeader方法为请求设置合适的请求头。根据不同的请求,我们设置了不同的请 求头。然后,指定回调函数,XMLHttpRequest对象发生改变时,回调函数被触发而自动执行。 最后调用send方法发送请求。 各个模块发出异步请求,而异步请求之间可能会有冲突,这时候,就需要一个调度 异步请求的机制。本发明异步调度异步请求的步骤如下 1)定义一个动态数组RequestArray,用来存储各个模块发出的异步请求; 2)当动态数组RequestArray中存在异步请求时,按照优先级顺序发送异步请求;
若动态数组中无异步请求时,准备接收来自各个模块的异步请求; 3)异步请求的优先级顺序按照各模块即时性排列,优先级顺序为软电话、即时
通信、通信薄和电子邮箱,分别以数字0, 1, 2, 3编号,附带在请求数据之中; 浏览器各个模块的异步数据传输方法提高响应速度,丰富用户界面,从而可以带
来更好的用户体验;优先级调度方法保证了各个模块之间协调工作,形成一个整体。 图3显示了服务器端表现层的各个模块以及它们之间的关系。表现层的模块
为四个Servlet文件模块ImModule模块、PhoneModule模块、AddressModule模块禾口
EmailModule模块。其中ImServlet模块负责处理客户层即时通信模块的请求,并将处理结
果返回给客户层即时通信模块;IMServlet模块接收到客户层的登录请求,根据该请求的
会话ID判断该请求的发送方是否已经通过本系统的登录认证及授权。如果本次请求没有
通过登录系统的认证及授权,则返回拒绝服务信息,同时通知客户端跳转到用户登录页面,
并提示用户只有登录后才能完成操作。如果本次请求通过了登录系统的认证及授权,则获
取本次请求中的用户名及协议类型,并以此为条件对数据库进行查询操作,以判断该用户
是否有未读信息。如果没有未读信息,则返回给客户端的信息为空;如果有未读信息,则从
数据库中取出该信息,将该信息放入发送给客户端的数据缓存中,随后将未读信息发送回客户端即时通信模块并显示出来。 PhoneServlet模块负责处理客户层软电话模块的请求,并将处理结果返回给软电 话模块;PhoneServlet模块接收到客户层通话请求后,获取请求的用户名,然后根据用户 名对数据库进行查询操作,以判断该用户是否开通软电话功能。如果没有开通软电话功能, 则返回给客户端"未开通软电话"信息;如果开通软电话功能,则从数据库中查询用户的软 电话号码,然后通过调用底层支持基于IP的网络传输模块,实现具有实时特征的、端到端 的VOIP数据传输业务,然后将"正在接通电话"信息返回给客户端。 AddressServlet模块负责处理客户层通信薄模块的请求,并将处理结果返回给通 信薄模块;AddressServlet模块接收到客户层查询请求后,获取请求中的用户名和查询项 目,比如然后根据用户名和查询项目对数据库进行相应的查询操作,然后将查询结果返回 到客户层。 EmailServlet模块负责处理客户层电子邮件模块的请求,并将处理结果返回给电 子邮件模块。EmailServlet模块接收到客户层发送邮件请求后,获取请求的用户名,然后调 用底层的邮件客户程序,将编辑好的电子邮件向邮局服务器(SMTP服务器)发送,邮局服务 器鉴别接受者的地址,并向管理该地址的邮件服务器(P0P3服务器)发送消息。接受者通 过邮件服务程序连接到邮局服务器后,就会在客户端收到的服务器的通知,并且可以打开 客户端的电子信箱来查收邮件。 在表现层和客户层之间有一个URI识别层,这个层的作用是识别由客户端发送异 步信号的模块的URI地址,将其与表现层Servlet文件对应,从而找到正确的目的地址;相 反,表现层的Servlet文件也要通过这个URI识别层找到正确的返回地址。这个URI识别 层保证了异步数据传输路由的正确,如果发现异步请求或响应地址不正确,可以查找这个 层以便发现问题。 图4显示了 Servlet模块处理异步请求的流程。用户通过点击按钮或者 启动其它事件,触发异步请求,Http请求信息从浏览器的某个模块发送出去,封装 到HttpServletRequest对象中,然后传入到相对应的Servlet文件中,调用文件 中的doPost 0方法进行处理。当Servlet处理完请求信息后,将响应结果封装到 HttpServletResponse对象中,然后返回到浏览器的对应模块,然后模块处理封装信息,将 封装信息动态地显示在页面上。 图5显示了即时通信模块的数据传输的流程图。如图,用户在浏览器中输入用户 名和密码,这时,浏览器就以Ajax中的XMLHttpRequest对象异步通讯的方式将用户名和密 码发送给服务器的Servlet, Servlet处理用户名和密码信息,如果信息正确,就访问数据 库,取出与用户名和密码相关联的好友列表信息,并通过Ajax回调函数返回浏览器,此时, 浏览器获取好友列表后,就通过JavaScript脚本语言处理D0M对象和CSS,在浏览器中显示 出完整的好友列表界面,然后浏览器进行其他的相应操作。 图6显示了软电话模块的数据传输流程图。如图,在主页面中点击软电话图标,出 现软电话的对话框,用户输入好友的软电话号码,浏览器通过XMLHttpRequest对象异步传 输的方式将号码发送给服务器,服务器通过底层模块将号码已远程传输的方式通过网络端 口发送出去,从而可以拨打出V0IP软电话。如果拨通,进行电话通信;如果未拨通,继续重 拨。如果需要进行电话专接,就进行转接。
图7显示了邮箱模块的数据传输流程图。首先,配置P0P3和SMTP邮箱服务器,其 中,P0P3是目前最流行的用于检索邮件的协议;SMTP是目前最常见的邮件传输协议。然后, 当用户单击浏览器收件箱按钮以后,P0P3和SMTP服务器就将用户的收件箱中的邮件加载 到浏览器界面中,用户可以查看其中的每一封邮件。当用户需要发送邮件时,单击发件箱按 钮,在发件箱界面中输入对方邮箱地址和邮件内容,然后以Ajax方式传送到服务器端,服 务器的Servlet进行相关处理,利用SMTP服务器进行邮件传输。 图8显示了通讯薄模块的数据传输流程图。首先,点击通讯薄图标,客户端向服务 器发送异步请求,服务器处理客户端请求,利用相关方法从数据库中提取户信息,服务器发 送异步信息给浏览器,浏览器获得信息后,进行相关处理,形成动态界面。
权利要求
一种基于Ajax和J2EE的融合通信系统,包括相互连接的表现层模块、业务层模块和数据层模块,表现层模块和业务层模块位于服务器端,数据层模块位于数据库端,其特征在于还包括用于部分流程控制和业务功能的客户层模块,客户层模块位于客户端,所述客户层模块由n个浏览器组成,500≤n≤1000,每个浏览器包含四个模块i,用于实现QQ、MSN基本功能的即时通信模块;ii,用于实现VoIP软电话基本功能的软电话模块;iii,用于记录融合通信系统好友的基本信息的通信薄模块;iv,用于实现电子邮件收发的基本功能的电子邮箱模块;所述表现层模块包括四个Servlet程序处理模块,分别是ImServlet模块、PhoneServlet模块、AddressServlet模块和EmailServlet模块,其中,ImServlet模块负责处理客户层即时通信模块的请求,并将处理结果返回给客户层即时通信模块;PhoneServlet模块负责处理客户层软电话模块的请求,并将处理结果返回给软电话模块;AddressServlet模块负责处理客户层通信薄模块的请求,并将处理结果返回给通信薄模块;EmailServlet模块负责处理客户层电子邮件模块的请求,并将处理结果返回给电子邮件模块。在表现层模块和客户层模块之间还设置了由客户层发送的用于识别URI地址的URI识别层模块,其中URI地址是用于标识表现层模块的不同的Servlet程序模块的地址。
2. —种基于权利要求1所述融合通信系统的数据传输方法,包括表现层模块、业务层模块以及数据层模块之间的数据传输步骤,其特征在于客户层模块与表现层模块间的数据传输步骤如下a) 步骤,在客户层模块中判断用户使用的浏览器类型,创建XMLHttpRequest对象;b) 步骤,浏览器的各个模块使用XMLHttpRequest对象向服务器端发出异步请求,在客户层模块中启用异步传输机制,其调度方法为第I步、定义一个动态数组,作为浏览器各个模块发出的异步请求的存储池,浏览器各个模块的异步请求按照发送顺序动态存储在这个数组中;第II步、当动态数组中存在异步请求时,按照优先级顺序发送异步请求,优先级顺序依次为软电话模块、即时通信模块、通信薄模块、电子邮箱模块;若动态数组中无异步请求时,停止发送请求,准备接收来自浏览器各个模块的异步请求;c) 步骤,客户层模块将浏览器各个模块的异步请求发送至URI识别层模块,URI识别层模块根据浏览器各个模块的异步请求分配相应的URI地址,由URI识别层连接表现层模块中的相应的Servlet程序处理模块;d) 步骤,表现层模块根据异步请求的URI地址,将浏览器各个模块发出的异步请求分配给相应的Servlet程序处理模块处理,Servlet程序处理模块通过业务层模块访问数据层模块中对应的数据项;e) 步骤,Servlet程序处理模块将访问到的数据项返回到URI识别模块中,URI识别模块根据c)步骤分配的相应的各异步请求的URI地址,将数据项返回到对应的浏览器各模块;f) 步骤,浏览器各模块使用XMLHttpRequest对象解析表现层模块返回的数据项,获得服务器端响应数据;g) 步骤,浏览器各模块获得响应数据后,通过文档对象模型DOM动态更新HTML页面,通过为服务器端响应数据增加层叠样式表CSS,在当前客户端的各浏览器的相应的模块显示出相应的动态效果。
全文摘要
本发明提供一种基于Ajax和J2EE融合通信系统及其数据传输方法,涉及融合通信领域。融合通信系统包括表现层、业务层和数据层,还包括客户层,其中,客户层位于客户端,表现层和业务层位于服务器端,数据层位于数据库中;所述客户层由浏览器组成,每个浏览器使用Ajax技术中异步传输方法与服务器端的表现层进行数据交互。本发明公开了一种基于该系统中客户层与表现层之间数据传输的一种新型方法,本发明提出了异步请求调度的功能,根据模块的优先级处理相应的异步请求,摆脱传统的C/S结构和传统Web应用的B/S结构,采取服务器/浏览器模式,方便部署,更加安全。
文档编号H04L29/08GK101707628SQ200910212618
公开日2010年5月12日 申请日期2009年11月13日 优先权日2009年11月13日
发明者任梦琪, 侯旭勃, 孙庆庆, 张春, 朱一星, 王开, 王振科, 葛俊, 裴文江 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1