История
История создания WFI (Начало положено примерно в 2007 году)
-
Давным давно WFI представлял собой узконаправленный консольный CGI скрипт, написанный на языке высокого уровня PureBasic, крутился под апачами и весил 140 килобайт.
-
Со временем немного развивался, взял на себя больше функций, начал генерить странички, используя HTML шаблоны и конфигурационные файлы, позже начал немного работать с базой и в общем-то всех устраивал, за исключением того, что с повышением нагрузки начинал отъедать много ресурсов, да и неприлично каждый раз для генерации сраницы заново запускать один и тот-же EXEшник.
-
Начались работы по сдруживанию его с набиравшим в то время обороты FASTCGI, какое-то время поработал под lighttpd и еще под чем-то (уже не помню), и тут мы поняли, что хотим иметь полноценную поддержку протокола FASTCGI и работать с NGINX в виде службы со всеми отсюда вытекающими прелестями, благо появилась версия NGINX сервера под форточки.
-
А не реализовать ли на WFI полноценный сайт для заказчика? И создан был сайт. И работает он доселе.
-
Вообще-то WFI кросплатформенный, но необходимость постоянного использования его под виндовс не прибавляла желания парралельно собирать версию и без того динамически развивающегося продукта под LINUX, но к этому мы еще вернемся перед продакшеном, к тому-же сейчас полностью реализована поддержка UTF-8.
-
Как бы WFI на тот момент был просто небольшим скриптом, который заключал в себе систему управления контентом с простенькой админкой и захотелось нам выделить эту админку в отдельный модуль, и иметь возможность при желании добавлять новые модули, и сами мы не заметили, как WFI из скрипта, генерирующего WEB страницы, превратился в полноценную службу WFI-server, который занимался лишь разъяснительной работой среди множества выросших вокруг него модулей, как-то одновременно с этим сервер стал полноценно многозадачным и начал поддерживать рекурсивный вызов модулей.
-
Далее WFI избавился от всех функций, связывающих его с работой какого-либо конкретного проекта, то есть стал оболочкой, одинаковой для любого из существующих, но в тоже время кординально отличающихся проектов, предоставляющей доступ модулям каждого из них к внутренним функциям, протоколам и API функциям. На данный момент одна запущенная служба может обслуживать только один проект, это может быть несколько сайтов, но они должны быть основаны только на одинаковых модулях, но уже заложены некоторые функции, которые позволят в дальнейшем обрабатывать множество различных проектов одновременно.
-
Тут случилось невероятное: мы наконец осознали, что на базе WFI можно обсолютно все:
-
Можно генерировать любой контент на ходу, будь то web страничка, robots.txt, javascript, изображение, потоковое видео, все, что угодно в зависимости от интересующих нас условий (например, зашел на сайт поисковый робот гугла в пятницу лета, пусть любуется новым дизайном).
-
Например, можно по одному открытому порту 80 одновременно использовать протоколы FTP, SMTP, POP3 (так мы уже побаловались, но сейчас забросили встроенный веб-сервер, ибо лучше NGINX пока еще ничего не придумано).
-
Применять любой* язык программирования, а значит использовать любые технологии, а значит взаимодействовать с любым железом (делали сейсмограф, а для себя онлайн дозиметр- отключен на время ремонта).
-
Реализовали в одном из проектов фоновые задачи, когда тажелые sql запросы ставятся в очередь и выполняются без ожидания основного потока их завершения.
-
Есть идея? напиши в комментариях, а мы подумаем, реально ли это, и ответим).
-
Перед реализацией мультипроектности намечено усовершенствовать API интерфейс, доработать функции, позволяющие взаимодействовать модулям друг с другом напрямую, возможно добавить свой собственный встраиваемый в HTML код шаблона язык программирования в довесок к уже имеющимся специальным командам и, наконец, окончательно доработать фичу, позволяющую использовать с сервером WFI практически любой язык программирования, что весьма оценят программисты, не знакомые с веб девелопментом и жаждущие писать сайты на давно знакомом\привычном\любимом языке программирования.
-
Сейчас WFI-server и WFI-CMS (движок данного сайта) использует следующие возможности.
COOKIE
AJAX
JAVASCRIPT
XML-RPC
JSON
FASTCGI
SMTP
MYSQL
THREAD
HTTP get, post
.
.
-
Пришел к выводу, что порой сам не понимаю, как оно тут все работает, но оно это делает....
Третья реинкарнация WFI
Разобрался, полностью перебрал WFI сервер, вырезал из него даже привязку к MYSQL, теперь все в SDK,
готовится релиз для людей, описание, доки и примеры. Новая реализация сделала сервер еще быстрее, писать модули стало проще.
-
Новая версия готовится стать еще более безопасной, внедряется цифровая подпись для модулей. Ведутся исследования для огранизации
динамической сборки модулей и интеграции исходных кодов на любых языках программирования непосредственно в тело шаблона HTML с
последующей их динамической сборкой.
-