`
longgangbai
  • 浏览: 7255762 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

QuickServer的学习研究(一)

阅读更多

        在公司项目中采用自定义的协议,通过QuickServer实现不同系统的交互,交互格式为JSON格式,实现不同系统的快速交互,采用QuickServer的好处,可以使我们在服务器端不用关心底层Socket的相关的信息,可以实现部分功能可以通过xml实现QuickServer的部署,实现相关的业务交互,减少了底层相关Socket信息开发和维护。

           闲着没事干,自己参照demo开发一个简单的QucikServer的完成的程序。

QuickServer简单介绍:

QuickServer是一个免费的开源Java库,用于快速创建健壮的多线程、多客户端TCP服务器应用程序。使用QuickServer,用户可以只集中处理应用程序的逻辑/协议,从而方便的建立功能强大的服务器应用。该程序由Akshathkumar Shetty设计和实现。

    QuickServer安装目录下的example中有演示其功能的例子,最新的例子和文档可以通过网站 http://www.quickserver.orghttp://quickserver.sourceforge.net获得。

    该指南适用于所有想要学习和使用QuickServer的人,阅读该指南应具备基本的Java编程知识,基本的网络和sockets方面的知识也会有所帮助

 

1. 为什么需要QuickServer

    无论何种编程语言,socket编程对程序员来说都不是一件容易的事,创建多线程、多客户端的服务器socket更像一场恶梦了。在每个新的软件中处理多socket连接,我们都要浪费大把时间编写大量重复的代码。QuickServer因而诞生——使用Java创建多线程、多客户端服务器应用。

 

2. 基本构造

QuickServer在应用逻辑上为开发者提供了四个类

o ClientCommandHandler

    处理与客户端的交互——使用字符串命令

o ClientObjectHandler [可选类]

    处理与客户端的交互——使用对象命令

o Authenticator [可选类]

    客户端验证

o ClientData [可选类]

    客户端数据载体(支持类)

下面的图表显示了QuickServer库的基本构造。QuickServer模块上七个辐条表示七个方法:

o java.lang.String info()

o int getServiceState()

o boolean initService(java.lang.Object[] config)

o boolean startService()

o boolean resumeService()

o boolean suspendService()

o boolean stopService()

 

 

    与QuickServer模块相连接的四个组件中只有ClientCommandHandler是必须的。

    QuickServerConfig对象由initService()方法构建。它实现了QuickServer,在读取XML配置后,QuickServerConfig用于QuickServer配置。

    ClientHandler线程对象用于客户端缓冲池。可选的ClientData类与ClientHandler类关联,ClientHandler对象容器参考ClientCommandHandlerClientObjectHandler(可选)Authenticator(可选)对象包含在QuickServer主函数中。

    注意:上图中并未显示QSAdminServer,它是图中QuickServer的组成部分。

 

3. 主要特点

创建多线程、多客户端TCP服务器应用程序

支持安全服务的创建:SSL, TLS

清楚的分离服务、协议、验证逻辑

o GUI图形界面远程管理支持

o Command Shell对服务器的本地管理

无须断开客户端连接的重启或延迟服务

为线程的再利用和大多数的使用对象建立缓冲池

完全的日志支持(Java构建)

支持发送和接收字符串、字节、二进制、序列化Java对象

在同样的xml中支持能够存贮指定应用数据的XML配置

支持通过IP地址限制服务

支持基于XMLJDBC映射

支持服务配置模式

支持从xml加载/重新加载用于jar

QuickServer中添加处理hooks

指定允许的最大客户端连接数

在通常的TCP连接上支持谈判安全连接

支持鉴别和查询客户端

附带典型例子——FTPServer, CmdServer,EchoWebServer, ChatServer

 

4. 1.4版的新功能

QuickServer添加安全模式:SSL, TLS

添加SecureManagerLoader管理安全模式

在通常的TCP连接上添加谈判安全连接

添加初始化服务hooks

为通信添加二进制模式

QsAdminServer通信添加QSAdminAPI

QuickServer 添加findAllClientByKey

添加ConnectionLostException

改进ClientHandler、安全配置

新例子——XmlAdder:一个简单的xml服务,可添加两个整数

新例子——PipeServer:一个简单的重定向服务

<!--EndFragment-->

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics