Cactus设计之功能特性

我希望的Cactus

我希望Cactus是能够管理多个应用程序的。如果探测一个程序就完整地运行一个Cactus,对于多个应用程序来说,管理上就会比较混乱
我希望Cactus能够尽量少得占用服务器的端口资源。对于一些服务器来说,开通个端口可是个老大不容易的事情
我希望Cactus能够兼顾很强的安全性。在数据传输、文件读取方面做到足够的安全设计
我希望Cactus能够尽量小的影响应用程序。如果影响太大的话,Cactus是很容易被放弃的

我的实现想法

Cactus的交互模式

Cactus应该主要是Client端+Server端模式运行的,然后有一个UI界面用于与用户交互。
Cactus交互模式
Client可以有很多,每个应用程序对应一个Client,注册或连接到一个Server端,与Server单独通讯,互不影响。

Cactus的通讯方式

Client端与Server端的通讯应该是双向的。Client端可以把数据发给Server端,Server端也可以把指令下发到Client端,实现双向通讯。同时兼顾到应用程序所在服务器的端口占用情况,理想的状态是不使用一个固定的端口,由Client端主动向Server端发起连接,并保持连接不断开,这样应用程序所在主机就不需要做什么操作了,只需要保证能够连通到Server端所在的主机就可以了。
Cactus的通讯方式

Cactus的安全设计

通讯传输的每一条数据都应该是加密的,同时也要兼顾加解密的效率。Client端与Server端使用AES算法通过约定的足够复杂的密码加密通讯数据。在UI交互端,也应该使用https的方式对通讯信息进行安全保证。

Cactus的安全设计

Cactus-Client的运行方式

Client端应该是运行在应用程序上并使用不同的类加载器加载的。使用某种特定的方式,将Client程序附着在应用程序上,与应用程序共用一个JVM实例。Client运行需要加载自己的类和类库,以实现Client的功能,Client加载的类和类库,是不应该与应用程序共用的(Client需要的类和类库由额外的类加载器加载,但Java的系统类是不在此列的,比如包名为java开头的)。如果应用程序和Client共同引用了一个类库,但版本不一致(同一个类加载器加载相同名称的类时只会加载一个),那么就有可能导致应用程序或Client运行出现问题。
Cactus-Client的运行方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值