Интернет-операционные системы::Журнал СА 4.2003
www.samag.ru
Журнал «БИТ. Бизнес&Информационные технологии»      
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Работа с Debian  

О Linux с любовью или Debian: через знание к любви

Конечно, одним лишь перечислением замечательных качеств любовь к Linux не возникнет. Для

 Читать далее...

Опрос  

Защита личных и клиентских данных: как мошенники используют ИИ и как защититься?

По данным RED Security, общее число кибератак на российские компании в 2024

 Читать далее...

Опрос  

Облачные инструменты для разработчиков

Эксперты ИТ-отрасли отвечают на вопросы «Системного администратора» > Как с помощью облака сделать

 Читать далее...

Опрос  

Рынок мобильных приложений: что будет актуальным в 2025 году?

Эксперты ИТ-отрасли отвечают на вопросы «Системного администратора» > Ваши прогнозы: чего ожидать от

 Читать далее...

Рынок труда  

Как успешно пройти все этапы собеседования на ИТ-должность?

По оценкам государства, дефицит ИТ-специалистов составляет от 740 тысяч до 1 миллиона

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 7473
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7734
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 5101
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3293
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 4090
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 4094
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6595
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3440
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3712
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7583
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10954
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12673
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14434
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9392
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7352
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5640
Комментарии: 4
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4855
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3709
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3391
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3611
Комментарии: 1
Рецензия на книгу «MongoDB в действии»

 Читать далее...

Друзья сайта  

 Интернет-операционные системы

Архив номеров / 2003 / Выпуск №4 (5) / Интернет-операционные системы

Рубрика: Администрирование /  Продукты и решения

ИГОРЬ ТЕТЕРИН

Интернет-операционные системы

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

Что такое «Интернет-операционная система»?

Интернет-операционная система (ИОС, либо более понятное название WebOS) – программный продукт, предоставляющий некий сервис для программ более высокого уровня, которые, в свою очередь, основываются на этом сервисе. ИОС принципиально ставит перед собой задачу – облегчить труд программиста, а значит, сэкономить, структуризировать, разбить задачи создателя сайта на более мелкие и иметь более четкое и безопасное решение для своего интернет-проекта. Возможно, вы привыкли к обычному пониманию фразы – операционная система. В голове сразу начинают появляться слова Windows, DOS, Linux... На самом деле операционная система – это всего лишь программа, предоставляющая интерфейс для работы остальных программ, суть этого интерфейса в стандартизации, едином синтаксисе написания программ, единых стандартов и т. п. А так как мы рассматриваем ИОС или WebOS, то, соответственно, ограничиваем себя следующими задачами: предоставить некий интерфейс для работы с интернет-сайтами (в случае WebOS) или с некоторым комплексом процессов интернет-сервисов (в случае ИОС). В чем разница? Разница лишь в том, что ИОС должна решать значительно больше задач. Мы хоть и рассматриваем именно ИОС, но нас интересует ограниченное направление. Позже мы коснемся темы микро-ИОС. Вам пока лишь стоит понять, что мы будем рассматривать сайты, имеющие широкий спектр возможностей, а позже касаясь микро-ИОС, коснемся ограниченных возможностей.

Движки сайтов

Мы часто можем слышать о движках сайтов. Обычно под этим понимается комплекс программ (скриптов и шаблонов), которые обеспечивают необходимый уровень содержания сайта, и чаще всего удаленного содержания. Так все и привыкли понимать их. Существует достаточно и хороших движков и очень уж специфичных, многие начинающие программисты пишут собственные движки сайтов, основываясь на чьих-то исходниках. Таких вещей очень много, но и при этом достать что-то универсальное – практически невозможно. Каждый из них имеет собственное направление, специфику, ограничения.

Что касается коммерческих движков, то тут стоит заметить, что коммерческие движки – есть коммерческие, они либо заставляют нас нарушать закон, либо отказываться от них, либо покупать. Поэтому движки – сейчас настоящая проблема для средних программистов. Теперь посмотрим на движки с другой стороны. Основной задачей для них является управление контентом, реализация хорошего интерфейса клиента и администратора. Остальное отходит на задний план. Именно к этому стремились некоторое время назад. Технические решения представляют собой достаточно сложные программы, где, на мой взгляд, достаточно мусора, но не это главное, главное нам понять, что такое движок.

Сравнение ИОС и движков

Давайте попробуем сравнить ИОС и движки. В чем разница? Так как на свете нет бесплатных ИОС, то понимание разницы должно заставить вас понять и то, насколько необходима ИОС вообще. Принципиальная разница в назначении этих двух вещей и уровне программирования/реализации. Давайте вспомним, что же такое ИОС и что такое движок и для начала определим сходства. Они имеют примерно одинаковый уровень программирования, но только примерно, они оба начинают работать по запросу клиента. Можно даже запутаться. Тут тоже может возникнуть подозрение, что в принципе некоторые задачи могут быть одинаковыми. Дело в том, что в идеале обработка запроса сайтом происходит по следующей упрощенной цепочке:

1. сервер (Apache)

2. Perl

3. ОС

4. движок

3. ОС

2. Perl

1. сервер (Apache)

Тут мы схематично можем представить, где находится ИОС. Другими словами, движок строится на веб-операционной системе, которая построена на Perl, Си, Python или, на худой конец, на PHP. Как и любой программе, движку предоставляется выбор: либо использовать функции ОС, либо писать, используя только язык программирования. А ИОС предоставляет этот выбор. Создает некоторую выгоду использования себя.

Схема построения сайтов при помощи ИОС и движков

Давайте рассмотрим детальнее, как будет выглядеть обычная обработка запроса. Клиент вводит URL в браузере. Запрос посылается на указанный IP, где управление получает сервер, для примера пусть это будет Apache, который ищет страницу по умолчанию index.html (для примера). В странице оказываются SSI-ссылки на выполнение скрипта, пусть это будут новости. Apache запускает интерпретатор (я все привожу в очень простой форме) и передает параметр (имя скрипта и возможные параметры для скрипта). Следующим шагом интерпретатор запускает скрипт и передает ему параметры.

Далее мы рассмотрим 2 варианта: с ИОС и без нее.

Без ИОС. Скрипт читает файл с новостями, файл с шаблоном, параметрами, возможно, эти операции разделяются (а, возможно, работа происходит через SQL), в общем итоге составляется код HTML, который передается в stdout.

C ИОС управление получает скрипт ОС, который подгружает необходимую минимальную базу модулей, проделывает базовые операции: форматирует входящие параметры, устанавливает обработчик ошибок, устанавливается кешеризатор вывода. Затем управление передается нужному скрипту движка, который вызывает функции чтения и указывает, что читать (шаблон5, 20 последних новостей). В общем итоге получается HTML, который отправляется якобы в stdout. Ядро собирает заголовки, отправляет, что получилось у движка, и в случае наличия ошибок, могут быть отправлены данные и об этом. При наличии серьезных ошибок вызывается некое событие.

В общем, вот простой пример, как происходит совместная работа, и в чем разница между отсутствием и присутствием ИОС.

Функциональное наполнение ИОС

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

  • Перехват, обработка ввода/вывода, возможность управления этими процессами из движка (кеширование как один из видов обработки).
  • Обработка ошибок, предупреждений, исключений, максимум прозрачности для движка.
  • Функции СУБД. При отсутствии SQL должна быть альтернатива, предоставляющая способ работы с данными, избегая при этом работы с файловой системой.
  • Некоторые функции безопасности. Фильтры, конверторы.
  • Независимая от платформы база пользователей и удобный, гибкий интерфейс к ней.
  • Универсальная система логирования.
  • Система работы, создания и обработки событий и другие не менее значимые функции.

Зависимости

Давайте взглянем на примитивную схему ИОС: ИОС представляет собой несколько модулей. Будем исходить из того, что ОС написана на Perl. У ИОС не должно быть как такового ядра. Программист движка будет сам выбирать, что ему нужно. Отсюда каждая часть ИОС должна быть максимально независимой. Это действительно должно быть так, но связей и зависимостей не избежать. Обязательные зависимости должны быть решены жестко, подключением необходимых модулей, а остальные связи должны общаться через единую систему взаимодействия. Эта система обязательна для всех модулей. Я бы назвал ее системой событий. Именно события придают гибкость и возможность взаимодействия самых разных уровней решения задач.

Кратко опишем, как должна работать система событий. События – это отдельный модуль с единственной открытой функцией: создать событие. При его создании передаются параметры, характеризующие его. По параметрам проверяется база событий, при совпадении параметров (при совпадении идентификатора события) выполняется код, принадлежащий данному событию. Независимо от всего событие может быть залогировано. В такой системе событий (все тут описано очень примитивно) весьма удобно изменять движок и ОС. При такой схеме движку предоставляется интерфейс событий, поэтому могут писаться любые события, основанные даже на функциях движка.

Вопрос о способе вызова скриптов и взаимосвязь с ИОС

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

Эти две модели можно наблюдать в Perl и PHP. Perl не предоставляет функций включения кода в HTML, хотя это и несложно реализовать. PHP принципиально позволяет делать это.

Какой способ лучше? На мой взгляд, возможность встраивания кода в HTML лишняя, хотя и удобная. В чем недостатки такого метода?

  • Лишние проблемы с безопасностью.
  • Размазывание границы между версткой и программированием.

Почему я поднял вообще этот вопрос? Потому что это важно для ИОС. Важно это в том плане, что ИОС должна гарантировать безопасность со своей стороны, и предоставлять базовый интерфейс для работы с контентом, а без продуманной системы могут возникнуть какие-либо ограничения. Ограничения – очень нехорошая штука. Я все же не даю конкретных решений, а всего лишь рекомендую строить свою систему на базе подключения внешних скриптов.

Перспективы ИОС

В ближайшем будущем все же должны появиться аналоги WebOS. Все же наложение еще одного уровня несет в себе какие-то затраты на изучение документации, прикручивание этого уровня и затачивания движка под ОС. Успех будет, но не скоро. Не каждый сможет решиться на данный шаг. Ну а как правильнее развиваться аналогам ИОС покажет их бесплатность и открытость. Коммерческие ОСи в любом случае будут ограничивать использование законами.

Некоторые принципы ИОС

По ходу были указаны некоторые принципы ИОС, давайте еще раз взглянем на них:

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

Микро-WebOS

Вот, наконец, мы и дошли до темы «микро». Микро-WebOS обозначает минимум кода. Наложение дополнительного уровня – достаточно ресурсоемкий ход. Для минимизации затрат, ресурсов и времени работы необходима микро-WebOS. Это значит, что вся функциональность ОС должна быть реализована по минимуму. Насчет минимизации и оптимизации кода есть пара прекрасных вещей, о которых я расскажу в следующей статье.

ret WebOS проект

ret WebOS – это микро-операционная система для WEB, основанная на Perl. Бесплатный, открытый проект, сочетающий в себе некоторые принципы ИОС.

ret рассчитан на бесплатные хостинги и некрупные проекты, хотя это относится лишь к некоторым частям ОС. Итак, что представляет из себя ret? Несколько компактных модулей, отвечающих за конкретные задачи:

  • cru.pm – модуль, отвечающий за преобразование данных (фильтры, хеши, подсветки и др.);
  • data.pm – собственная микро-СУБД;
  • err.pm – модуль, перехватывающий и обрабатывающий ошибки, предупреждения и др.;
  • logs.pm – система ведения логов и обработка событий;
  • rights.pm – система ведения прав (интересно то, что в данной системе нет стандартных пользователей типа root, которым дозволено все);
  • wim.pm – модуль, обрабатывающий входящие данные, в том числе и приходящие файлы.

Каждый модуль самостоятелен, кроме модуля rights.pm, который зависит от СУБД. Программист волен подключать только то, что ему будет по душе. Чем интересен данный проект? Во-первых, основным принципом: код ret не должен превышать 50 Кб. СУБД ret предоставляет простые функции (например GetRec, Put), но внутренняя сложность структуры данных зависит только от фантазии программиста.

Очень интересная вещь – события. Изначальных событий в код не встроено. Но создана база для того, чтобы можно было очень просто добавлять собственные события. Для примера у вас есть свой скрипт, читающий новости. Его вы вызываете из скрипта, который показывает новости. Последний получает новости в отформатированном виде посредством события обработки текста новостей из первого, который явно вызывает это событие, определенное в logs.pm.

В чем заслуга такой системы? Заслуга в том, что модуль logs просто коллекционирует все события, создавая некий стандарт описания событий.

Система прав построена достаточно интересно. Существуют шаблоны и собственно сами пользователи, весь интерес в том, как накладываются шаблоны на права пользователей, и какие преимущества это дает.

Вообще весь ret построен так, что нет ничего обязательного, нет никаких ограничений (по крайней мере, к этому стремились). Но есть база для создания тех же ограничений, есть атрибуты, которые можно было бы назвать типами, но атрибуты – это нечто большее. Даже синтаксис описания событий не имеет под собой никаких ограничений, событие может быть описано как угодно. Существуют лишь рекомендации и принципы.

С точки зрения ret событие описывается следующим образом: a:b:c, где a – виновник события, b – тип события, c – детализация; но правильно описанным событием будет считаться и событие, описанное, например, так: jhskdjhkajsdh. Конечно, смысла в этих символах нет, но если событие с таким именем описано, то оно произойдет. Поэтому хотелось бы подчеркнуть, что ret предоставляет некую базу, на основе которой можно строить логику движка.

К минусам ret можно отнести то, что данный проект не закончен и многое еще предстоит сделать, он рассчитан на бесплатные хостинги, где нет поддержки SQL, поэтому SQL нигде не фигурирует и поддержки для него писать не предвидится, потому как это и не надо, Perl предоставляет все, что необходимо, на достаточно неплохом уровне. В ret нет той мультиплатформенности, которую хотелось бы получить, но это лишь вопрос времени.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru