nap.im智能自动化处理平台
Racket
Latest commit 71b7d86 Feb 24, 2017 @saharabear start
Permalink
Failed to load latest commit information.
.data add Oct 18, 2016
core add nap.rkt Jan 1, 2017
lib add lib Oct 12, 2016
plugins add plugins Oct 19, 2016
vendors add vendors Dec 31, 2016
.gitignore change Jan 20, 2017
.gitkeep add Jan 14, 2017
LICENSE Initial commit Oct 11, 2016
README.md change readme Oct 27, 2016
build.rkt start Feb 24, 2017
main.rkt 合并代码 Dec 30, 2016
todo.org change Jan 18, 2017

README.md

nap.im智能自动化处理平台

nap.im智能自动化处理平台(后面简称nap)是基于Scheme/Racket开发的智能自动化处理平台,关注可用性,智能性,稳定性,扩展性。

产品畅想

架构说明

运行环境

目前nap计划支持下面的操作系统:

  • Linux(Kernel>3.x)
    • Slackware
    • Debian
    • Fedora
  • FreeBSD

nap需要intel x86_64架构的支持。

系统平台

nap系统平台(system)提供对操作系统/资源/网络的轻量级封装,包括但不限于以下模块:

  • 输出
  • 输出
  • 网络
  • 存储
  • 沙盒
  • 定时器
  • 状态

nap通过任务系统(tasks)完成具体的事情,任务系统(tasks)构建于nap系统平台(system)之上,nap系统平台以沙盒的形式支撑任务系统。

交互环境(cli)

最好的交互环境是基于命令行的,nap提供基于cli的交互环境

生命周期(lifetime)

nap的生命周期由五个阶段组成

  • 初始化
  • 重生并执行调度
  • 执行
  • 回收
  • 持久化

第一步:当nap启动的时候,会初始化一切系统资源,包括但不限于网络端口,硬件资源,任务系统,插件及其他资源。

第二步:如果曾经运行过nap,则读取上一次运行过程的状态信息,重新调度工作。

第三步:nap进入工作状态,在这个状态下,nap可以接受指令并调度任务系统完成自动化处理工作。

第四步:nap会不定期回收处于结束/休眠/僵死状态的任务系统,并销毁其资源。

第五步:当退出nap或者系统故障的时候,nap会将自身状态进行持久化,便于系统重启或者系统恢复。

迁移

nap的持久化数据可以通过Dropbox等应用直接进行同步,或者在停机状态直接备份系统文件进行迁移。

可视化开发(dep)

nap提供插件开发和任务系统开发这两个扩展模式,其中插件可以用于扩展nap系统平台(system),任务系统可以用于操控nap执行自动化处理工作。

任务系统

工作单元

用于把输入,处理为输出的功能模块。

服务单元

用于组合工作单位的功能模块。

调度单元

用于调配服务单元的触发条件的模块,包括但不限于:按时间触发,指令触发,智能触发。

应用案例

(待续)

  • 文件处理
  • 监控
  • 邮件自动化
  • 待办工作平台
  • 灯具管控
  • 网络摄相头监控操作
  • 其他对硬件/网络资源进行智能操控的应用

开发计划

  • 目前正处于早期开发过程中