Ключевым понятием Net:Evo 2.0 стала Среда Окружения. Новая принципиальная концепция, призванная решать те задачи, которые раньше каждый сервер должен был решать отдельно.
Среда Окружения - это сервер (подобно серверам ранних версий, например, Net:Evo 1.6), который также может получать параметры и возвращать результат. Новшество в том, что это фиксированный системный сервер, который является частью самой Net:Evo 2.0. Ранние версии не накладывали ограничений на формат взаимодействия, они лишь фиксировали способ расположения серверов на диске. Проблема заключалась в том, что каждый сервер должен был сам выбирать какой интерфейс ему поддерживать, основываясь на том, что к нему обратится какой-то абстрактный клиент, об интерфейсе которого он совершенно ничего не знает. В NE2 эта проблема решена посредством Среды Окружения (СО). Отныне каждый сервер должен уметь общаться лишь с СО и следовательно реализовывать ее интерфейс. Задача СО - быть посредником между клиентом и сервером и обеспечить поток информации в обоих направлениях в необходимом формате. Т.е. клиент передает СО данные в удобном для себя виде, СО спрашивает у сервера в каком виде он готов принять данные и передает ему уже возможно преобразованные данные. Такой способ взаимодействия абстрагирует клиента и сервера, от них требуется поддерживать спецификации СО, которые и составляют спецификации NE2.
Ряд новшеств представлен и в устройстве механизмов приема-передачи данных. Теперь данные стандартно могут передаваться как в виде параметров командной строки, так и в файле, имя которого передается в командной строке. Кроме того возврат данных осуществляется в файл, который также отдельно задается на стадии запроса. В файле возврата может быть больше одного значения (в Net:Evo 1.6 предполагался возврат лишь одной строки).
А теперь собственно о Среде Окружения 1.00.
Вот команды командной строки, которые он понимает:
Помимо этого СО понимает команду #!--INCLUDE--!# и #!--EINCLUDE--!#, которые отличаются от GO только тем, что после прочтения дочернего файла СО возвращается на 1 уровень выше и продолжает считывание текущего файла. При этом следует учесть, что выполненние команд произойдет после считывания всех файлов.
Теперь, наверное, уже понятно как будет устроена Net:Evo 2.00. Чтобы клиенту, обратиться к серверу, он запускает СО, передает все необходимые параметры, СО анализирует их и уже работает с сервером, после чего возвращает результат (который был получен от сервера+необходимая обработка). Осталось осветить этап общения с сервером. Поддержка сервером интерфейса NE2 и означает, что он должен правильно обрабатывать запросы СО.
Во-первых, СО проверяет все параметры поступившие от клиента и если на этом этапе есть ошибки, генерируется ошибка, которая записывается в выходной поток, а выполнение прекращается. Если все нормально, СО обращается к серверу и передает ему информацию о себе, спрашивая при этом параметры сервера (СО интересует, в каком виде сервер готов принять параметры, т.е. он умеет считывать данные из командной строки, либо из файла, либо и то и другое, кроме того сервер должен либо согласиться с потоком выхода, либо назначить свой). Обработав ответ сервера, СО принимает решение о передаче параметров и выполняет новый запрос. Получив результат от сервера, СО обрабатывает его и уже потом формирует ответ клиенту. Таким образом, в стандартном режиме СО обращается к серверу как минимум два раза (в первый раз СО не передает параметры пользователя), а при необходимости и больше. Задача сервера - правильно обрабатывать все запросы.
Пока вроде и все. С выходом самого net будет более подробная информация.