节点服务 NODE SERVER 简介
Node Server 是基于《Node Framework for VCL》框架下的Windows服务,基于这个框架,所有信息交换和操作都通过Node Server来完成。每一个Node Server可视为一个数据交换和处理节点,由许多这样的节点组成服务群。
根据应用规模可以使用一个或多个Node Server来组成构建面向行业、机构、企业的服务。
安装
Node Server 是绿色软件,复制到Windows操作系统任意目录即可配置运行。
Node Server 对硬件要求不高,不需要专用服务器亦可运行。如果业务并发量大,对网络有一定要求。
Node Server 可视应用情况部署在内网或公网使用。
部署在内网则只能在机构、企业内网中使用,分配给其固定内网IP即可。
部署在公网则能使用互联网的地方均可以使用,需要固定的公网IP或域名。
启动
Node Server是两栖服务,可以服务模式运行也可界面模式运行。
-
界面模式
界面模式不会随Windows自动启动,主要用于前期配置和调试,配置无误后即可以服务模式运行。
运行界面模式只要在NodeServer.exe 后加参数 -UI 即可;
首次运行须通过界面运行,确保产生服务器ID编号和做关相关配置即可通过菜单安装到系统,以服务模式运行。
如果服务启动失败,请检查配置的端口号是否被其它服务或应用占用。
-
服务模式
遵循Windows服务规范,可以通过Windows命令行(管理员模式)sc 和 net 指令来管理服务。
服务模式安装成功后可以Windows的服务面板中找到Node Server, 服务名为 svrNode 。
服务模式安装成功后根据服务配置可随Windows自动启动服务。
本章只做初步介绍,具体的安装和配置待后期补《安装、配置手册》
配置
服务配置参数保存在服务目录 NodeServer.ini 文件中。
-
配置方式
支持多种配置方式,以下方式均可。
通过编辑服务 ini 文件来更改配置;
通过服务配置界面来更改配置;
通过运维客户端来更改配置;
-
动态配置
服务运行过程中也可动态更改配置。
-
远程配置
通过运维客户端远程连接运行中的服务来更改配置。
管理
日志管理
Node Server 服务所有动作都会记入日志,日志有文本型和数据型两种,可单独指定也可同时支持。文本型日志以明文保存,主要用于服务器输出调试; 数据型日志加密保存,可供管理员远程查看。日志有以下特点:
-
日期生成
每日生成日志,以年月日格式命名,如:
文本型 2019-03-01.log
数据型 2019-03-01.dat
-
自动清理
根据配置设定,服务启动后会自动清理指定天数前的日志,天数为0不清理。
-
远程查看
可通过运维客户端远程调阅和保存服务端的日志。
插件管理
Node Server 除必要的功能外,所有业务实现都通过插件包来完成。
-
插件热更新
功能包以热加载的形式提供服务,加载后可随时重新更新,无须停止服务,NodeServer会根据配置在一定时间内重新热加载功能包。
-
能力延展性
NodeServer能提供什么样的服务不由其本身决定,而由加载的插件包决定。
加载的插件包越多,NodeServer的能力延展性越高。
服务
通讯服务
NodeServer包含以下通信协议,每种协议有自己的特点或应用场景,可自由选择搭配使用。
IOCP
高效高负载的通信协议,业务数据传输,文件流传输主协议,VCL框架下主要使用协议。
目前针对IOCP协议已完成指令请求、执行类,基于这个指令类已实现部分指令集。
非常高效的一种通信协议,前前公司为国企事业单位研发的的系统使用的核心通信协议,从使用了近10年的效果看较好。
本IOCP服务端主要参考了网友(天地弦)的 DIOCP - V5,重写解析和加密器,客户端使用INDY控件自己封装写了IOCP连接类,加入了通信验证,以保证数据传输安全。
DSTCP
目前构想为: 主要用于远程设备间的消息传输和异步呼叫。(指令集待定)
DSHTTP
目前构想为: 主要用于对接其它第三方平台或设备以进行交互。(指令集待定)
数据服务
采用 FireDAC 数据引擎,支持几乎所有主流数据库。
在一个Node Server上,支持配置多个不同类型、不同架构的数据库,以数据帐套的形式存在。
在一个Node Server上,可实现不同数据帐套间的数据抽取、转换和迁移(后期再实现)。
数据帐套可通过配置程序,在本地或远程动态配置、随时创建、编辑、上下线。
数据连接池
虽然 FireDAC 本身支持池化,但并不是所有数据库都支持,而且其池化配置较复杂且不友好。因此写了个数据池管理类,不管哪种数据库都由该类接管池化能力。
传输服务
通过 Node Server 进行文件传输。
传输能力可以细分出以下应用场景:
基本的文件上传下载
应用客户端可通过此能力上传、加密、管理、下载自己的公用或私有文件。
服务端能力扩展更新
运维客户端可通过此能力动态发布、部署、级联更新功能扩展插件。
客户端应用更新
运维客户端可通过此能力动态发布、级联更新针对于应用的客户端包。
应用客户端可通过此能力在执行期动态下载、更新对应于本应用的客户端包。