Это продолжение серии публикация о проекте Interplay Mеdium (первая статья здесь). В этой статье я расскажу о том, как устроено «сердце» Interplay Meduim кластера — микро-сервер AXOD.
Пара слов касательно этимологии: в wiki и на сайте проекта кое-где все еще фигурирует старое название — AXON. Так я и планировал назвать микро-сервер сперва. Однако позднее, размышляя над графическим решением интерфейса, я пришел к идее о четырех базовых фигурах, которые, кроме всего прочего, просились расположиться именно так, чтобы образовать собою название (с буквой N я, после некоторых сомнений, тогда решил примириться). С одной стороны название — суть, отсыл к Маклюэну (и ранее к Хайдеггеру) с их интерпретациями роли технологий и языка (см ссылку в предыдущей статье). С другой — референция к античным представлениям о базовых элементах. Кроме этого, в процессе этимологического исследования я натолкнулся на древнеегипетские источники, содержащие интерпретации фигур, как нельзя кстати рифмующиеся с задуманным мною разделением на «органы чувств». Таким образом, получившееся воплощение, как это порой случается, оказалось сильнее изначальной интенции. В итоге, буква N приобрела новое для нее амплуа и стала буквой D, как намек на электронно-цифровую сущность все затеи :)
Архитектура микро-сервера AXOD
AXOD представляет из себя набор кастомизированных скриптов, предназначенных для контроля логики периферийных устройств (отдельных объектов или являющихся морфологической частью общего с микро-сервером объекта), именуемых «Дендриты» (Dendrites) + модульный веб интерфейс. В качестве препроцессора используется язык LUA. О последнем стоит сказать пару слов отдельно. LUA был изначально придуман, как интерпретируемый язык для описания логики в компьютерных играх, однако последнее время завоевал популярность у разработчиков встраиваемых систем, как удобное, нетребовательное к ресурсам и весьма проворное решение. В частности популярный дистрибутив для рутеоров OpenWRT вот уже несколько лет использует LUA в качестве HTTP препроцессора. Это, в свою очередь, также стало аргументом в пользу такого выбора.
Как я уже ранее написал, AXOD имеет два набора интерфейсов. Один, именуемый «Дендриты» — для периферийных устройств (т.е. по сути — это физические интерфейсы. За работой дендритов следят скрипты, являющийся частью синаптических модулей). Другой набор — это интерфейсы направленные во вне — «Синапсы». Т.е. пользовательские графические интерфейсы и API для соседних AXOD-ов (или любых внешних элементов кластера).