Руководство разработчика


Скачать 107.12 Kb.
Название Руководство разработчика
Тип Руководство
rykovodstvo.ru > Руководство эксплуатация > Руководство








Руководство разработчика.

TraffPro (Traffic & Protection).



Оглавление


Службы и их назначение. 3

Интеграция с прочими системами. 3

API , предоставляемое ядром административной консоли. 5

Языковые настройки для plugins. 11

Система прав для сторонних плагинов. 12


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

Службы и их назначение.


Демон контроля трафика.

Служба осуществляет постоянный контроль трафика пользователей, а так же управляет базой данной.

Демон контроля маршрутизации.

Служба управления маршрутами при использовании нескольких каналов. Отвечает за установку маршрутов, контроль состояния маршрутов, а так же фиксирует трафик каналов и их загруженность.

Демон планировщика задач.

Планировщик заданий, способный выполнять команды OS, а так же команды к базе данных в виде SQL запросов.

Демон учёта телефонных звонков.

Ведёт сбор статистики с COM порта и переносит данные в единый формат для базы данных, использует подключаемые библиотеки для разных типов МиниАТС.

Интеграция с прочими системами.

Таблицы основных данных о клиентах.


Используемые таблицы:

clients — таблица основных данных login, password и т.д.

contacts — таблица с персональными данными клиента.

clients_addr — таблица сетевых адресов клиентов.

clients_traff_check — таблица с данными о текущем трафике клиента clients_tarff_check_money — таблица с данными о текущем состоянии счёта коммерческих клиентов.

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

Управление основным функционалом.


Внесение изменений для клиента.

Изменения в таблице клиентов можно производить во время запущенной системы, не опасаясь некорректной загрузки данных в коллектор демона контроля или нарушения связи в реляционной базе данных (за исключением удаления связанных записей, а так же изменения идентификаторов связи). Любые изменения можно просматривать в административной консоли, но данные изменения не будут приняты демоном контроля до установки особого флага в таблице clients в поле delta, который сообщает демону контроля об изменениях базы данных и начале загрузки в коллектор изменений.

Данный флаг имеет несколько значений (зелёный цвет – статусы, устанавливаемые административной консолью, красный — статусы, устанавливаемые демоном контроля):

0 — запись принята и не изменялась (окончательная стадия для статусов 1 и 3).

1 — запись новая и требует загрузки (в случае если запись уже существует в коллекторе демона, она будет изменена)

2 — запись удалена (окончательная стадия для статуса 5).

3 — запись изменена, требуется загрузить данные в коллектор демона (в случае если в коллекторе демона запись отсутствует, будет добавлена новая запись).

4 — запись отключена администратором (окончательная стадия для статуса 6).

5 — подготовка записи к удалению.

6 — подготовка записи к отключению администратором.

7 — запись отключена клиентом (окончательная стадия для статуса 8).

8 — подготовка к отключению клиентом.

Алгоритмы взаимодействия:

Создание.

1 — 0;

Редактирование.

0 — 3 — 3;

6 — 3 — 6;

4 — 3 — 4;

1(3) — 3 — 3;

Удаление.

0(1,3,4,6,7,8) — 5 — 2;

Отключение администратором.

0(1,3,7,8) — 6 — 4;

Отключение пользователем.

0(3,1) — 8 — 7;

Справедливость констант можно представить списком для отдельных сущностей:

Пользователи (клиенты):

0,1,2,3,4,5,6,7,8

Группы:

0,1,2,3,4,5

Тарифные планы:

0,1,2,3,4,5

Пополнение (снятие) со счёта клиента.

Пополнение счёта клиента осуществляется в несколько этапов.

Для офис-клиента (атомарная последовательность):

  1. Внесение требуемого количества байт (положительное или отрицательное значение) в поле traff_add таблицы clients_traff_check.

  2. Установка параметра delta таблицы clients в значение 3.

Для коммерческого клиента (атомарная последовательность):

  1. Внесение требуемого количества финансовых едениц (положительное или отрицательное значение) в поле traff_money_add таблицы clients_traff_check_money.

  2. Установка параметра delta таблицы clients в значение 3.

Для офисных и коммерческих клиентов выполнение операции добавления трафика и финансовых средств, должно осуществляться нарастающим итогом в поле traff_money_add или traff_money (пример traff_money_add = traff_money_add + 100), с блокировкой транзакции чтения записи, что предотвратит потерю данных при одновременной смене данных в записи.

Данным способом может быть реализован модуль оплаты дополнительных услуг.

API , предоставляемое ядром административной консоли.


В административную консоль можно встраивать сколь угодно дополнительных плагинов, тем самым расширяя функционал системы.

Интеграция в меню сторонних плагинов.


Для того, что бы интегрировать свой плагин в меню административной консоли или клиентского кабинета, требуется.

Добавить в таблицу web_plugins id , версию, наименование, статус, уровень доступа для плагина, где:

id — уникальный идентификатор плагина (предлагается использовать числа более 200000, чтобы не иметь пересечений с плагинами штатных разработчиков traffpro).

Name — наименование плагина (латинскими буквами в нижнем регистре)

ver — версия плагина.

params — дополнительные параметры (временно не используется).

state — состояние плагина 0 — выключен, 1 — включён.

access — уровень доступа к плагину, целое значение от -65535 до 65535 (описание см. ниже).

Таблица описания местоположения пунктов меню, а так же их типа.

id — уникальный идентификатор.

id_controler — идентификатор плагина из таблицы web_plugins (см. выше), в случае значения 0 не имеет привязанного плагина (например, для родительских пунктов подменю).

name — наименование пункта меню, латинскими буквами в нижнем регистре (трансляция в языки интерфейса осуществляется посредством файлов menu_наименование_lang.php /traffpro/application/language/russian)

img — наименование иконки, которая будет отображена в пункте меню (иконки берутся из папки /traffpro/public/icons/16x16/)

type — тип меню 0 — не имеет плагина, не может быть кликабельным, 1 — имеет свой плагин, при нажатии открывает соответствующий плагин.

parent_id — идентификатор родительского меню, в случае значения 0 данный пункт помещается в корень меню.

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

id_access - уровень доступа к плагину, целое значение от -65535 до 65535 (описание см. ниже).

Классы основных, диалоговых форм и форм печати отчётов.


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

Все плагины имеют структуру controller-model-view и подчиняются всем правилам framework codeigniter!!! Для успешной разработки собственного функционала, требуется изучить работу данного framework.

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

class MY_General_controller extends Controller

// Контроллер имеет в своём составе

// Заголовок страницы и главноке меню

class MY_Face_controller extends MY_General_controller

Большинство форм приложения формируются на основе данного класса, для примера:

class Controller_test extends MY_Face_Controller {

function Controller_test () {

// Вызов предка

parent :: MY_Face_Controller();

// Проверка на доступность данного плагина пользователю с его id_access

if ($this->access->get_controller_access('controller_test', 'controller_test') == false)

exit ($this->lang->line('LANG_ERR_ACCESS_DENIT'));

}

..........................

При этом мы сразу можем получить некоторые параметры, которые нам не придётся формировать заново.

// Загрузка модели для работы с сущностью администратор

$this->load->model('controller_test/model_controller_test');

// Передаём модели готовый коннектор к БД

$this->model_controller_test->set_db_connector($this->db_connector);

где $this->db_connector — готовый коннектор для работы с БД, все данные о подключении уже загружены.

// Получить любой параметр из настроек (меню система->настройки)

$this->cfg->get_param('count_table_rows') — параметр: наименование параметра из таблицы adust (управление через плагин меню система->настройки)

// Загрузка языкового файла для данного плагина

$this->lang->load('controller_test', $this->language);

$this->language — текущий язык выбраный пользователем.

Для функций существует дополнительная функция проверки доступности действия:

if ($this->access->get_access_function_id_access(4000) == false)

exit ($this->lang->line('LANG_ERR_ACCESS_DENIT'));

позволяет разграничить доступ к функциям плагина, например, для редактирования требуется иметь доступ на уровне 35000 а для просмотра 4000.

// Контроллер печатных форм

// имеет в себе только заголовок системы

class MY_Print_controller extends MY_General_controller

// Диалоговый контроллер внутренний

// имеет в себе заголовок системы и меню

class MY_Dialog_in_controller extends MY_Face_controller

// Диалоговый контроллер внешний

// имеет в себе только заголовок системы

class MY_Dialog_out_controller extends MY_General_controller

// Диалоговый контроллер внутренний

// имеет в себе заголовок системы и меню

class My_Base_Controller extends MY_Face_controller

Кнопки в интерфейсе и таблицах, строка поиска, управляемые поля (дата, время, выпадающие списки, списки множественного выбора и прочее):


// Получение TOOLBAR

$tools['tools'] = array (

// Добавляем кнопки в toolbar

get_tools_button_submit('name_img_booton',$tools['form_name'],'',"","false",$this->lang->line('LANG_CLIENTS_TITLE_BUTTON_NEW_CLIENT')),

get_tools_button_submit('delete_user', $tools['form_name'], '', "", "message", $this->lang->line('LANG_CLIENTS_TITLE_BUTTON_DELETE_CLIENT'), $message)

);

Helper button_helper.php

// действие, имя формы с данными, показывать ли сообщение при отсутствии выбора элементов или просто переходить, текст кнопки, текст сообщения, если включены сообщения параметром show_message

function get_tools_button_submit($exec="", $form_name="", $controller_name = false, $params = false, $show_message = "false", $title = "", $message = "");

// действие, имя формы с данными, показывать ли сообщение при отсутствии выбора элементов или просто переходить, текст кнопки, текст сообщения, если включены сообщения параметром show_message

function get_tools_button_url($exec, $form_name, $control_name_full, $params = false, $show_message = "false", $title = "", $message = "") {

// действие, имя формы с данными, показывать ли сообщение при отсутствии выбора элементов или просто переходить, текст кнопки, текст сообщения, если включены сообщения параметром show_message

function get_button_table_url($exec, $form_name, $control_name_full, $params = false, $show_message = "false", $title = "", $message = "")

// действие, имя формы с данными, показывать ли сообщение при отсутствии выбора элементов или просто переходить, текст кнопки, текст сообщения, если включены сообщения параметром show_message

function get_button_sort_table_url($url, $params = false, $title = "", $order = 'ASC')

// Функция для организации поиска

// Работает вне формы (в форму не вставлять, так как вызывает submit формы)

// но в основном это для внешней части интерфейса за формой, передаёт в контроллер строку с параметрами

// имя сортировочного поля и поисковую переменную

function get_input_search($url, $name, $sort = false, $like = false)

Helper select_helper.php

// Выпадающий список или список для выбора

// Параметры имя,массив_value_title,выбраный_value,размер_показываемых_елементов,MULTIPLE true/false

function get_select($name,$array_items,$selected_value=-1,$size=0,$multiple=false,$params_sel=false,$default_opt=true)

// Календарь

function get_select_date($name, $date=false, $class = "datepicker")

// Калькулятор

function get_calc_input($name, $value=false)

// Калькулятор скорости передачи данных

function get_speed_calc_input($name, $value=false)

// Тип отчёта (сокр. Полный и так далее)

function get_select_report_type_grouped($_this, $name, $size=0)

function get_select_report_type($_this, $name, $size=0)

function get_select_report_type_group($_this, $name, $size=0)

function get_select_report_type_vpn($_this,$name,$size=0)

function get_select_report_type_short($_this,$name,$size=0)

function get_select_report_type_terminal($_this,$name,$size=0)

function get_select_report_type_top100($_this, $name, $size=0)

function get_select_report_type_top100_users($_this, $name, $size=0)

// Ввод времени

function get_select_time($name, $time='00:00:00', $with_seconds=false)

// Выбор дня недели

function get_select_week($_this,$name,$week="NNNNNNN")

Helper standart_icons_helper.php

// имя файла в стандартных иконках, не обязательный, если расширение файла не png

function get_standart_icons($exec,$size='16x16',$ext="png")

$exec — наименование операции, связанной с наименованием иконки, delete, create,edit и т.д.

$size — размер:16x16 22x22 32x32 48x48

Helper tables_property_helper.php

// Расширение функции создания таблицы codeigniter с добавлением полей

function table_property($a_data = array())

// Пагинация для таблиц

function get_pagination(&$_this,$count_record_table,$per_page,$this_page,$url,$sort=false,$like=false)

// Возвращает checkbox с заданными ID и Index где ID - идентификатор записи реальный а Index – идентификатор, используемый в таблицах для js

function row_checker($id, $index)

// Возвращает checkbox для таблиц, если необходимо выделение разом всех записей

function all_row_checker_header($n)

// Возвращает расшифровку на языке указанном пользователем статусов записей

function state_delta($_this, $delta)

Языковые настройки для plugins.


Для каждого плагина существуют языковые файлы, которые находятся по пути

/application/language/LANG/, где LANG — наименование языка (russian, english, armenian)

в каждом из этих каталогов находятся 3 типа файла

menu_lang.php — файл для пунктов меню без плагина, используемых как родительское меню для подчинённых.

menu_inspector_lang.php — пункт меню для плагина, содержит в себе текст:


// Menu items

$lang['menu_plugin'] = "Текст меню";

?>

где plugins наименование плагина.

plugin_lang.php — языковой файл для конкретного плагина, plugin — наименование плагина.

За дополнительным примером можно обратиться в предоставленный пример (шаблон) который позволяет создать на основе его простейший плагин для системы traffpro и встроить его в административную консоль!!!

Шаблон тестового плагина (рыба)

Система прав для сторонних плагинов.


Права доступа для пользователей и администраторов делятся на несколько групп, уровень доступа определяется целым числом от -65535 до 65535, при этом для пользователей это будут значения -65535 до -1, а для администраторов от 1 — 65535.

Администраторы и их уровень доступа:

65535 Главный Администратор Системы
52000 Администратор Сети
48000 Администратор Базы Данных
44000 Младший Административный персонал
40000 Генеральный директор
36000 Финансовый директор
32000 Менеджер Плановых Заданий
28000 Финансовый Менеджер
24000 Менеджер по работе с клиентами
20000 Менеджер Финансовой Отчётности
16000 Менеджер по Связям с клиентами
12000 Кассир
8000 Менеджер Не Финансовой Отчётности
4000 Только просмотр

Плагины, разработанные штатными разработчиками traffpro и уровень доступа к ним:

65535 adusts
65535 server_gw
65535 adust_for_cfg_file
65535 srv_forward
65535 db_srv
65535 dumper
44000 aggregator
44000 channels
44000 adm_sendmail
44000 adm_mail
44000 ldap_import
44000 excel_export
36000 admins
36000 groups
36000 servers
36000 timer
36000 payments
36000 sites_groups
36000 netalarm
36000 adm_log
36000 admin_cards
24000 bus_money_log
24000 dhcpd_conf
16000 srv_reports
16000 bus_reports
16000 vpn_reports
16000 top100_reports
16000 gw_reports
16000 inspector
12000 bus_tarifs
12000 bus_clients
12000 bus_tarifs_office
8000 reports
8000 firms
4000 startpage
4000 clients
4000 ats_line_group
4000 ports
4000 reports_step_by_step
4000 streets
4000 cities
4000 posts
4000 bus_active_chart
4000 bus_net
4000 departments
4000 building
4000 bus_comp
4000 bus_soft
4000 ats_codes
4000 bus_soft_type
4000 ats_codes_groups
4000 merchant
4000 adm_ip
4000 ats_internal_line
4000 about
4000 bus_gw_active_chart
4000 wm
4000 bus_nas
4000 wm_purses
4000 ats_active_chart
4000 wm_payments
4000 ats_config_station
4000 phone_book
4000 ats_external_line
4000 mail_domain
4000 adm_app_alert
4000 lp
4000 lp_purses
4000 ats_rt_mon
4000 lp_payments
4000 ats_log_call
4000 reports_url_terminal
4000 system_info
4000 adm_app
4000 sites

Клиентские права:

-1 Офис клиенты.

-2 Коммерческие клиенты.

Для своих плагинов Вы можете назначать любые права, за исключением одного правила:

Права с положительным значением отображаются в административной консоли.

Права с отрицательным значением отображаются в клиентском кабинете.


Похожие:

Руководство разработчика icon Руководство пользователя разработчика информационных систем
Список зарезервированных имён пользовательских свойств информационной сущности 21
Руководство разработчика icon Руководство пользователя разработчика информационных систем
Виды деятельности, функции, для автоматизации которых предназначены виджеты wwii 15
Руководство разработчика icon Руководство пользователя разработчика информационных систем
Виды деятельности, функции, для автоматизации которых предназначена программная платформа 7
Руководство разработчика icon Руководство разработчика Компания «аист»
Разработка системы управления сайтами NetCat: П. Филатов, Д. Спирин, К. Трунов, В. Мельников, И. Завойчинский, К. Заугольнов, Д....
Руководство разработчика icon Руководство разработчика Компания «аист»
Разработка системы управления сайтами NetCat: П. Филатов, Д. Спирин, К. Трунов, В. Мельников, И. Завойчинский, К. Заугольнов, Д....
Руководство разработчика icon Руководство разработчика
Автоматическая подгонка ширины столбцов grid'а под ширину клиентской области grid'а. 16
Руководство разработчика icon Руководство пользователя разработчика информационных систем
Информационная система. Система обеспечивающая автоматизацию бизнес-процессов отдельного подразделения/департамента организации
Руководство разработчика icon Руководство разработчика лкп 501540. 001. 58169198-08-01 34 01 Листов...
Приложение А: Спецификация механизмов, реализованных в криптопровайдере Lirjce 40
Руководство разработчика icon Руководство разработчика Интеграл
Документ ознакомит читателя с возможностями конструктора Интеграл, а также научит разрабатывать полноценные web–приложения под произвольные...
Руководство разработчика icon Руководство разработчика Интеграл
Документ ознакомит читателя с возможностями конструктора Интеграл, а также научит разрабатывать полноценные web–приложения под произвольные...
Руководство разработчика icon Руководство разработчика Интеграл
Документ ознакомит читателя с возможностями конструктора Интеграл, а также научит разрабатывать полноценные web–приложения под произвольные...
Руководство разработчика icon Руководство пользователя (разработчика программы учебной дисциплины) по работе в модуле «пуд»
Почему модуль «пуд» является удобным средством разработки программ учебных дисцилин? 4
Руководство разработчика icon Руководство разработчика для интеграции с lanbillingSuperviseServer
Основная цель данного документа – предоставить внешним разработчикам возможность реализации и интеграции с lanbilling Supervise Server...
Руководство разработчика icon Руководство разработчика сервиса
Номер абонента или 11 символов латиницы. Данные текст или номер будет указан в поле отправителя sms
Руководство разработчика icon Руководство разработчика Компания «аист»
Право на тиражирование программных компонентов и документации принадлежит компании «аист». Приобретая систему NetCat, вы автоматически...
Руководство разработчика icon Инструментарий веб-разработчика: Apache, php, Mysql, phpMyAdmin Лабораторный...
Инструментарий веб-разработчика: Apache, php, Mysql, phpMyAdmin: Лабораторный практикум по дисциплине «Сети ЭВМ и телекоммуникации»...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск