1.4.33 • Published 9 years ago

dpe v1.4.33

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

DPE Framework - Data Process Engine

Основное функциональное назначение деплой и управление запущенным кодом в сети узлов запущенных на различных платформах, таких как window, unix, android, ios, chrome app, chrome plugin. Поддерживает создание функций на языках JavaScript, Python, Java, C++.

Архитектурно состоит из следующих частей:

  1. Хост-сервис - обвязка для запуска и управления фоновым сервисом который содержит в себе ядро и загруженные приложения
  2. Ядро - набор связанных модулей исполняющихся в общем контексте обеспечивающих базовые функциональные возможности сервиса и основной жихненный цикл приложения
  3. Приложение - зависимый от конкретного ядра набор функций определяющих бизнес-логику и выполняющих какие-то полезные действия
  4. Компонент - составная часть ядра и приложений, по сути каждая отдельная функция которая может быть вызвана из вне
  5. Сигнал - запрос на исполнение функций в системе, представляет собой JSON объект, в котором каждый ключ это имя функции которую необходимо вызвать. Также содержит мета-данные начинающиеся с префикса _ и теги начинающиеся с префикса @
  6. Процесс - набор функций исполняющихся в определенном порядке для достижения некоторой цели в общем контексте исполнения
  7. Ресурс - объект данных в общем контексте процесса

Как начать

  1. Установить глобально npm пакет с фреймворком

    sudo npm install -g dpe
  2. Сконфигурировать сервис в системе (вызвать в любой директории)

    dpe service configure
  3. Добавить зависимости

    dpe app add -c -g https://domain.com/path/to.git name1
    dpe app add -a -f ../path/to/directory/dpe.json name2
    dpe app add -m -n npm-module-name name3

    Опции: -c, --core добавляет функции с уровнем исполнения ядра (возможно все) -m, --module добавляет функции с уровнем исполнения модуля (нормальный) -a, --app добавляет функции с уровнем исполнения приложения (песочница)

    -g, --git получить зависимость из GIT, должен содержать dpe.json в корне -f, --file загрузить локально dpe.json -n, --npm получить из NPM

  4. Запустить сервис с выбранными зависимостями

    dpe service start name1 name2
  5. Создать приложение в требуемой директории

    dpe init
  6. Создать *.js файл с функцией

    ```bash
    touch test.js
    ```

    содержимое test.js

    ```javascript
    module.exports.A = function (env, args, callback) {
        console.log('HELLO WORLD!');
        callback(null, true);
    };
    ```
  7. Добавить его в dpe.json в этой же директории, файл должен выглядеть следующим образом

    {
        "test": {
            "require": "./test.js"
        }
    }
  8. Добавить приложение в сервис (исполнять в директории приложения)

    dpe app add -a -f ./dpe.json
  9. Вызвать функцию

    dpe app call test.A

FAQ

  1. Как передать аргумент в функцию - dpe app call test -a "argName=argValue"
  2. Как определить порядок вызова функций в сигнале

    {
        "A": {
            "@before": "B"
            "arg1": "test"
        },
        "B": {
            "@target": true,
            "arg2": 100
        }
    }

В данном случае мы помещаем результат исполнения функции в одноименный ресурс, а после читаем его при следующем вызове. Функции содержащие в аргументах ресурсы не будут исполнены до тех пор пока ресурс не будет определен.

  1. Как получить состояние процесса

    dpe app call process.state -a "pid=..."
    dpe app call process.list
  2. Как остановить исполнение процесса

    dpe app call process.kill -a "pid=..."
1.4.33

9 years ago

1.4.32

9 years ago

1.4.31

9 years ago

1.4.30

9 years ago

1.4.29

9 years ago

1.4.28

9 years ago

1.4.27

9 years ago

1.4.26

9 years ago

1.4.25

9 years ago

1.4.24

9 years ago

1.4.23

9 years ago

1.4.22

9 years ago

1.4.21

9 years ago

1.4.20

9 years ago

1.4.19

9 years ago

1.4.18

9 years ago

1.4.17

9 years ago

1.4.16

10 years ago

1.4.15

10 years ago

1.4.14

10 years ago

1.4.13

10 years ago

1.4.12

10 years ago

1.4.11

10 years ago

1.4.10

10 years ago

1.4.9

10 years ago

1.4.8

10 years ago

1.4.7

10 years ago

1.4.6

10 years ago

1.4.5

10 years ago

1.4.4

10 years ago

1.4.3

10 years ago

1.4.2

10 years ago

1.4.1

10 years ago

1.4.0

10 years ago

1.3.3

10 years ago

1.3.1

10 years ago

1.3.0

10 years ago

1.2.1

10 years ago

1.2.0

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago