当前位置: 首页 > 工具软件 > QuickServer > 使用案例 >

QuickServer的学习研究(一)

曹经业
2023-12-01

        在公司项目中采用自定义的协议,通过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. 主要特点

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

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

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

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

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

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

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

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

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

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

o 支持通过IP地址限制服务

o 支持基于XMLJDBC映射

o 支持服务配置模式

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

o 在QuickServer中添加处理hooks

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

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

o 支持鉴别和查询客户端

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

 

4. 1.4版的新功能

o 为QuickServer添加安全模式:SSL, TLS

o 添加SecureManagerLoader管理安全模式

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

o 添加初始化服务hooks

o 为通信添加二进制模式

o 为QsAdminServer通信添加QSAdminAPI

o 为QuickServer 添加findAllClientByKey

o 添加ConnectionLostException

o 改进ClientHandler、安全配置

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

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

<!--EndFragment-->

 类似资料: