|
@@ -49,21 +49,25 @@ Klish в первую очередь рассчитан на подход Cisco,
|
|
|
|
|
|

|
|
|
|
|
|
-Основа проекта klish - библиотека libklish. На ее основе построены клиент klish
|
|
|
-и сервер klishd. Основную работу выполняет сервер klishd. Он загружает
|
|
|
-конфигурацию команд и ожидает запросов от клиентов. Взаимодействие между
|
|
|
-клиентами и сервером происходит по UNIX-сокетам с использованием специально
|
|
|
-разработанного для этой цели протокола KTP (Klish Transfer Protocol). Задача
|
|
|
-клиента - передача ввода от оператора на сервер и получение от него
|
|
|
+Проект klish использует клиент-серверную модель. Слушающий сервер klishd
|
|
|
+загружает конфигурацию команд и ожидает запросов от клиентов на UNIX-сокете (1).
|
|
|
+При соединении от клиента слушающий сервер klishd порождает (fork()) отдельный
|
|
|
+процесс (2), который будет заниматься обслуживанием одного конкретного клиента.
|
|
|
+Порожденный процесс называется "обслуживающий сервер klishd". Слушающий сервер
|
|
|
+klishd продолжает ожидать новых соединений от клиентов. Взаимодействие между
|
|
|
+клиентами и обслуживающим сервером происходит по UNIX-сокетам с использованием
|
|
|
+специально разработанного для этой цели протокола KTP (Klish Transfer Protocol)
|
|
|
+(3).
|
|
|
+
|
|
|
+Задача клиента - передача ввода от оператора на сервер и получение от него
|
|
|
результата для показа оператору. Клиент не знает, какие команды существуют,
|
|
|
как их выполнять. Все это делает серверная сторона. Так как клиент имеет
|
|
|
относительно простой код, не трудно реализовать альтернативные программы -
|
|
|
клиенты, например графический клиент или клиент для автоматизированного
|
|
|
-управления. Сейчас написан только текстовый клиент klish. Когда клиент
|
|
|
-соединяется с сервером, порождается отдельный процесс для обслуживания
|
|
|
-конкретного клиента. При завершении сессии, процесс также завершается. Таким
|
|
|
-образом типичное применение klish - это заранее запущенный в системе сервер
|
|
|
-klishd и клиенты, подключающиеся к нему по мере надобности.
|
|
|
+управления. Сейчас написан только текстовый клиент klish.
|
|
|
+
|
|
|
+Основа проекта klish - библиотека libklish. На ее основе построены клиент klish
|
|
|
+и сервер klishd.
|
|
|
|
|
|
Klish имеет два типа плугинов. Плугины для загрузки конфигурации команд
|
|
|
(директория dbs/ в дереве исходных кодов) и плугины, реализующие действия для
|