[[ header START ]]

Welcome to OS2.GURU site! (eComStation.RU)

Select your language: Russian English Deutch Spanish Italian Portuguese Czech Polish French

Frequently asked questions and answers:
telegram

Форум обсуждение

telegram

Send message

telegram

[ +7-981-8529467 (Санкт-Петербург)

telegram

t.me/os2_guru

eComStation.RU


ru · en · de · es · it · pt · cz · pl · fr
OS/2 - это совершенно другая операционная система для PC (ArcaOS, eComStation, IBM OS/2 Warp)
Программы, новости, статьи, поддержка пользователей, оборудование, вопросы и ответы.
 
[Что такое OS/2?  Новости  Установка  Обновление  
 
 
Применение  Будущее  Сообщество  Проекты  

eCo Software
не получает вознаграждение
из США

[Как заработать в OS/2?

Как купить OS/2 дискету?

Идеи для фанатов OS/2

*

 
Обновление

 
Программы

 
(Санкт-Петербург)

 
Преимущества (1)

 
Разработчику (1)

 
(Пайпы программ)

 
Компании: (1)

 
История (1):

 
(Бонусы)

 
Советы:

 
(Барьеры и решения)

 
Технологии: (1)

 
(Применение в науке, лаборатории, ..)

 

 
Готовые решения:

 
Новая eComStation:

 
Будущее: (1)

 
(Ссылки на другие сайты)

 
(Картинка дня)

 
Артефакты OS/2

 
Гаджеты

ArcaOS 5.0 Русская версия
Пакет русификации ArcaOS 5.0 OS/2 давно доступен. Поддерживается любая версия: 5.0, 5.0.1, 5.0.2.

eCo Software может выпустить и другие пакеты (Немецкий, Голландский, Бразильский Португальский, Испанский, Шведский и т.д.)

GoServe - WWW и Gopher сервер для OS/2


TITLE: GoServe - WWW и Gopher сервер для OS/2

DATE: 2002-01-06 00:18:50

AUTHOR: Timur Kazimirov

GoServe homepage GoServe - это многоцелевой сервер для OS/2, поддерживающий протоколы HTTP и Gopher. Сам сервер был создан в рамках программы EWS небезызвестным Mike Cowlishaw - создателем языков REXX, Object REXX и NetREXX. Целью создания GoServe было предоставить пользователям OS/2 возможность самим разворачивать на своих компьютерах серверы Internet, не вдаваясь в тонкости реализации протоколов передачи данных. Сама по себе процедура установки сервера является относительно быстрой и легкой.

Если протокол TCP/IP уже настроен, то GoServe можно настроить и запустить в работу буквально за несколько минут. Архив с GoServe включает в себя саму программу, инструкции по установке и запуску, рабочие примеры для WWW и Gopher.

Содержание:

Принципы работы сервера

GoServe, в отличие от других известных HTTP-серверов, является довольно оригинальной программой. Когда клиент запрашивает соединение, то программа читает запрос клиента и передает его без изменений фильтру. Фильтр - это обычная программа на языке REXX, которая обрабатывает запрос, совершает какие-либо действия и возвращает результат своей работы программе GoServe (это может быть специальная команда на отправку файла или сообщение об ошибке). Сервер, в свою очередь, передает все, что надо клиенту и закрывает соединение. Иными словами, GoServe служит 'посредником' между фильтром и клиентом. Использование фильтров на языке REXX придает серверу исключительную гибкость в работе - вы можете использовать как сложные фильтры с большим количеством возможностей, так и простые фильтры 'на одно действие' (если вам требуется высокая скорость). В комплект поставки GoServe входит пример такого фильтра, возможностей которого вполне достаточно для большинства непритязательных администраторов.

На каждый запрос создается отдельный тред для установки соединения, обработки запроса фильтром и ответа. GoServe берет на себя всю работу по формированию такого потока и управлению TCP/IP соединением, поэтому вам остается только модифицировать (при необходимости) фильтр и наполнять каталог данных информацией (документами, графикой и т.д.).

GoServe разработан для эффективной работы даже на дешевом оборудовании. Однако, по-умолчанию настройки предназначены скорее для большей безопасности, чем для высокой производительности. Для увеличения производительности и пропускной способности вам потребуется включить кэширование команды FAIL, уменьшить значение Connection maintenance и включить отложенный аудит (далее это будет рассмотрено более подробно). Чтобы GoServe работал быстрее, запускайте его минимизированным.

Установка WWW-сервера

Для работы вам потребуется последняя версия 2.52 пакета GoServe. Создайте на своем жестком диске каталог (например, C:\GoServe) и распакуйте в него следующие файлы:

  • gofilter.80
  • moveaud.cmd
  • goserve.exe

В комплекте поставки есть и другие файлы, но я расскажу об их назначении чуть позже, после того, как мы запустим GoServe.

Теперь создайте каталог, в котором будут храниться ваши HTML-документы, картинки и т.д. (например, C:\WWW). Вы можете взять за основу файлы из архива gohttp.zip. Стартовой страницей по умолчанию считается файл INDEX.HTM. Под стартовой страницей понимается файл в каталоге данных, который будет послан клиенту, если само имя ресурса не указано. Например, если клиент ввел в окне своего браузера http://www.yourdomain.ru, то ему будет послан файл C:\WWW\index.htm

Запустим GoServe командой GOSERVE HTTP, выберем меню Options, перейдем на закладку DataDir, введем C:\WWW и нажмем кнопку Apply (если имя каталога с данными указано неверно, то оно выделяется красным цветом).

Setting up GoServe data directory

Теперь, перейдем на закладку Filter. Здесь нужно указать имя файла программы-фильтра (в первый раз это будет GOFILTER.80). Эта программа должна находиться в том же каталоге, что и GOSERVE.EXE и иметь расширение, соответствующее номеру порта, на котором сервер 'слушает' (для WWW это, как правило, 80-й порт, а для Gopher - 70-й).

Setting up GoServe filter name

Вот, в принципе, и все - GoServe готов к работе! Теперь вы можете сообщить адрес своего компьютера друзьям (или недругам) и погрузиться в изучение HTML для создания красивых документов.

Настройка GoServe

Для настройки программы, выберите меню Options - откроется диалоговое окно настроек GoServe. В этом окне есть несколько страниц:

Страница Response показывает статистику по времени отклика и вы можете изменить график и цвета этой статистики.

Setting up GoServe response parameters

На странице General вы можете немного изменить внешний вид окна программы, включить или выключить звуковое сопровождение каждого запроса.

Setting up GoServe general parameters
  • Параметр Show menu bar отвечает за показ полосы меню GoServe. Если его выключить, то к меню можно будет добраться щелкнув правой кнопкой мыши в окне программы.
  • При включенном параметре Surface on startup окно GoServe будет автоматически минимизироваться при запуске. Я рекомендую включить этот пункт, чтобы GoServe работал быстрее.
  • Включенный параметр Sounds on connections заставит GoServe 'блипать' динамиком при каждом запросе клиента. Из своего опыта скажу, что звук лучше выключить. В первое время забавно слышать 'блип', когда к серверу кто-то обращается, однако по прошествии времени, если ваш сервер довольно часто посещается, жизнь в офисе может стать невыносимой для окружающих... Да и на скорости работы программы это не отражается в лучшую сторону.
  • А вот параметр File command cache рекомендую включить (Для каждого фильтра вопрос кэширования нужно обсуждать отдельно. Для фильтра, поставляемого с GoServe, включить кэширование можно), т.к. он отвечает за кэширование некоторых ответов сервера. Далее, мы более подробно обсудим его поведение.

На закладке Audit вы можете указать что и как GoServe будет записывать в лог-файл GOAUDIT.80 (создается в каталоге программы).

Setting up GoServe audit parameters

Я не буду подробно расписывать назначение каждого пункта - вы можете смело включить все. Если же все пункты выключены, то лог-файл создаваться не будет. Сразу оговорюсь - формат лог-файла GOAUDIT.80 абсолютно не похож на формат того же Apache и довольно мутен для понимания - в документации есть отдельная глава, посвященная его разбору. У меня, например, аудит GoServe отключен совсем, а логи ведутся фильтром. Если же вы все-таки используете аудит GoServe, то не забудьте включить параметр Lazy audit для ускорения работы.

А вот на страничке Limits я бы хотел разобрать все параметры поподробнее, потому что они довольно важны для производительности и безопасности сервера.

Setting up GoServe limits
  • Maximum at once - указывает сколько одновременно соединений (по умолчанию - 20) будет поддерживать сервер. Если максимум достигнут, то последующие соединения будут отвергаться. Учтите, что один клиентский запрос может породить несколько одновременных соединений - это зависит от настроек браузера клиента.
  • Show warning at указывает процент одновременных соединений относительно вышеизложенного, после которого в окне появится красная полоска. Это своего рода предупреждение 'за мной сказали не занимать'.
  • Open files per client указывает максимальное количество файлов, которые могут быть открыты в фильтре при обработке клиентского запроса (по умолчанию - 5 файлов). В случае простых фильтров, значение можно не изменять, однако для сложных, комплексных фильтров это значение, скорее всего, прийдется увеличить.
  • End client after inactive - это период 'неактивности' клиента в секундах. Соединение с клиентом будет закрыто, если в течение этого времени никаких переданных или принятых данных от клиента не было. По умолчанию это 60 секунд, однако вы можете увеличить или уменьшить это значение в соответствии со своим опытом. Не исключено, что если среди посетителей вашего сервера есть много дайлапщиков, то это значение можно и увеличить. Однако не стоит забывать, что увеличение этого времени может привести к быстрому расходу допустимых одновременных соединений.
  • End client after total - это период времени, после которого соединение с клиентом разрывается независимо от того - активен клиент или нет, передаются ли ему данные или нет. Это значение не может быть меньше периода 'неактивности' и, по умолчанию, равно 1200 секундам. Простое правило для расчета этого значения: это число секунд необходимое для передачи клиенту самого большого файла с вашего сервера в килобайтах (при условии, что средняя скорость передачи равна 1Кб/с). В случае медленного канала вы можете увеличить это значение в два или четыре раза.
  • Connection maintain - 'период ожидания' в секундах. Определяет время, в течение которого GoServe будет ожидать новый запрос после ответа на запрос, в заголовке которого была фраза Connection: keep-alive. Заметьте, что разрыв такого соединения считается нормальным поведением и не регистрируется как ошибочное превышение лимита.
    По умолчанию этот параметр равен нулю, что означает, что GoServe никогда не будет обрабатывать больше одного запроса на соединение. Однако вам, скорее всего, прийдется увеличить это значение. Рекомендуется указать 10-15 секунд для обработки запросов к страницам, содержащим графику или 60-120 секунд для запросов к многостраничным документам.
    Setting up GoServe limits
  • Wait for TCP/IP start определяет время, в течение которого GoServe будет при запуске ждать пока не поднимется стэк TCP/IP. Этот параметр (по умолчанию 600 секунд) имеет смысловое значение в случае, если ваш сервер имеет дайлап-доступ в Интернет.
  • Header size указывает максимальный размер (в тысячах байт) заголовка запроса от клиента. Если размер заголовка превысит это значение, то транзакция будет отвергнута. По умолчанию, максимальный размер заголовка равен 10 тысячам байт.
  • Body data size определяет максимальный размер (в тысячах байт) клиентского запроса. Если размер запроса превышает это значение, то транзакция будет отвергнута. По умолчанию этот параметр равен 50 тысячам байт.

Параметры запуска GoServe

Все свои настройки GoServe хранит в файле GOSERVE.INI, который создается в каталоге программы. При желании, вы можете изменить их в командной строке запуска. GoServe принимает следующие параметры:

  • HTTP - указывает GoServe стартовать в режиме HTTP-сервера.
  • GOPHER - указывает GoServe стартовать в режиме Gopher-сервера.
  • PORT number - указывает GoServe "слушать" указанный порт. Это может быть полезным при отладке или виртуальном хостинге. Например, команда GOSERVE HTTP PORT 8080 запустит GoServe в режиме HTTP-сервера, который будет 'слушать' порт с номером 8080 вместо стандартного 80-го порта.
  • FILTER filtername - указывает GoServe использовать программу filtername вместо указанной в настройках. Например, команда GOSERVE HTTP FILTER SRELITE.80 приведет к тому, что GoServe будет использовать фильтр SRELITE.80 вместо указанного в настройках. Учтите, что полного имени файла использовать нельзя - фильтр должен находиться в том же каталоге, что и GOSERVE.EXE.
  • DATADIR directory_name - заставляет GoServe использовать именно этот каталог данных. В строке directory_name вы можете не указывать завершающий слэш ("/") - он будет добавлен автоматически. Пример: GOSERVE HTTP DATADIR C:\OTHER_WWW
  • QUIETFAIL - сообщает GoServe, что при ошибке в фильтре GoServe должен 'тихо скончаться', не выводя при этом никаких диагностических диалоговых окон. Этот параметр очень полезен, когда вы запускаете свой сервер в режиме автопилота.
  • Есть еще ряд параметров командной строки, однако их описание я здесь не привожу - все это подробно изложено в оригинальной документации.

Применение параметров командной строки очень полезно при отладке, запуске нескольких экземпляров программы для различных нужд и т.д.

Другие фильтры для GoServe

Программ-фильтров для GoServe разработано довольно много. Наиболее мощным в настоящее время является фильтр Дэниела Хеллерштейна - SRE-http. Один только размер архива последней версии превышает полтора мегабайта! Я настоятельно рекомендую, после того как вы разберетесь с GoServe, установить этот пакет и пользоваться им. Он представляет из себя полноценный HTTP 1.1 сервер с огромным количеством возможностей, во многом не уступает, а даже превосходит другие известные HTTP-серверы для OS/2.

Если вам не требуется такой 'навороченный' сервер, вы не занимаетесь виртуальным хостингом, требования к управлению доступом у вас довольно умеренные, нововведениями HTTP 1.1 вы не пользуетесь, а вас интересует только скорость, то обратите внимание на фильтр SRE-Lite (автор тот же).


Прекрасным примером фильтра, разработанного под свои нужды, является Interdart Goserve Web Filter. Помимо того, что он обеспечивает стандартные HTTP-сервисы, в нем реализован малоизвестный интерфейс SIBOM (Simple Interface Business Objects Messaging) той же фирмы.

Предыдущие фильтры во многом заимствовали идеи и части кода из фильтра GoHTTP, написанного очень хорошим человеком Доном Мейером.

Очень оригинальным фильтром, выполняющим узкоспециализированную задачу, является фильтр из комплекта поставки POP3 сервера OS2PopS (созданного опять-таки в рамках программы EWS). Очень многие его игнорируют по одной простой причине - в документации не сказано, что для его работы требуется GoServe и вообще не сказано как его запускать. И такое бывает...


Автор статьи: Timur Kazimirov

Первая публикация: http://ns.rnlease.snc.ru/~timur/os2/gsrv.shtml

Редактор: Eugene Gorbunoff

Попробуй программу:

General network utilities - универсальные инструменты для обслуживания локальной сети.

Комментарии:

Сергей
2002-01-08 04:08:34

Нифига себе! И давно в оси такой сервер есть??

Сергей
2002-01-08 04:39:34

А на других платформах такой сервер существует? Или он затонет вместе с осью?

Timur Kazimirov
2002-01-08 05:12:27

Есть он года эдак с 1994-го, если не раньше. Бета-версия под винду также в наличии. Ну а REXX под винду также давно есть.

Sergey Posokhov
2002-01-08 13:05:32

А можно ли с помощью фильтров добиться выполнения PHP под осью? Если да - пиши продолжение статьи :-)

Deniska
2002-01-08 16:37:52

по секрету скажу, что есть альфа версия PHP-мода для IBM HTTP Server.

(PHP-emx для Apache-emx есть уже очень давно)

Timur Kazimirov
2002-01-09 02:11:10

To: Sergey Posokhov

PHP легко можно использовать в любом фильтре с поддержкой CGI. Сразу оговорюсь, что поставляемый с GoServe фильтр CGI не поддерживает, однако SRE-http, SRE-Lite, GoHTTP вполне можно настроить для работы с PHP. Что же касается использования не-CGI (что явно предпочтительнее), то можно сделать REXX-callable версию PHP.DLL и использовать ее в SRE-http по полной программе.

Eugene Gorbunoff
2002-01-09 03:25:33

Кто уже читал эту статью - обратите внимание, в конце появилось дополнение - автор прислал 3 абзаца про доп.фильтры.

Василий А. Сидоров
2002-01-09 04:57:03

Предупреждение пользующим ORexx.

Каждый вызов фильтра оставляет незакрытые семафоры (багофича ORexx'а:(), а в результате, после примерно 8064-й транзакции будет либо диалоговое окошко об ошибке в RexxStart(), либо трап системы.

Я видел и то и другое.

Timur Kazimirov
2002-01-09 07:27:32

To: Василий А. Сидоров

Это для любого фильтра или для какого-то определенного? Сам по себе GoServe семафоры для фильтра вроде бы не создает. Что же касается самих фильтров, то тут уж кто как написал :). Дэниел, в свое время, даже спец.версию своего Sre-http для ORexx'а выпустил, но поддержку ее уже прекратил.

Sergey Posokhov
2002-01-09 12:42:34

Это все потому что HTTP серверы - "системы с накоплением ошибок". Есть даже книжки про них. Такая система - как динозавр в болоте: вытащил одну лапу - завязла другая. Все семафоры и т. п. привязаны к определенному приложению, PID или EXE, и пока оно не сломается, они не будут закрыты. Пока динозавр не утонет в болоте.

Один из примеров - JSP (Resin, Tomcat, JServ и прочие). В свое время я натрахался с этим JSP, и вот почему: программу начинали делать до меня, на JSP она выглядит как макароны в тарелке - видно только хвосты. Где что сломалось понять невозможно, чтение Log'ов помогало, но не очень - причину ошибки было сложно установить. Где и когда кто-то "не закрыл" семафор, файл или SQL Statement, в логах не сообщалось :-) Все это разваливалось на глазах. Два часа работает и рушится. Никогда раньше такого не видел.

Может, можно сделать так: написать отдельный Application Server, например, на Watcom VX-REXX, чтобы он обращался к СУБД, вел Log и т. п. и делает всю работу. Ведь это не так сложно. К нему сделать оболочку под GoServe, отдельно, которая будет общаться с ним через Named Pipes и XML, посылать запросы серверу и выдавать HTML страницы пользователю. Оболочку можно и на CGI сделать - тормозов не будет.

Получим многоуровневую систему: СУБД-AppServer-GoServe (PHP или даже CGI) или AppServer-LogAnalyzer или вообще СУБД-AppServer-ЧтоНибудьТекстовое (для слежения за системой через Telnet).

Кто-нибудь делал такие проги? Если да - поделитесь полезным опытом.

Timur Kazimirov
2002-01-10 02:44:04

To: Sergey Posokhov

Обрати внимание на фильтр SRE-http. Там можно такие фишки делать. Можно, разумеется, подобный фильтр и с нуля написать, и он , скорее всего, будет работать быстрее и надежнее, однако... Для затравки:

<HTML>

<BODY>

<!-- interpret code

тут идет текст программы на REXX'е любой сложности. разделитель строк - точка с запятой, вместо SAY использовать QUEUE, EXIT не использовать. Где такое можно сделать? :)

-->

</BODY>

</HTML>

Sergey Posokhov
2002-01-10 13:24:17

Так можно сделать на PHP в Apache и на Rexx в NetData. Вопрос не в этом. А в том, как отделить код для создания страниц HTML от всей остальной программы. И сделать не с помощью объектов на языке Java или PHP 4.x - это уже все пройдено, получаются те же макароны, только завязанные в узлы. А сделать многоуровневое приложение, у которого есть ядро и внешние сервисы - если это вообще возможно...

Такая телега может состоять из:

1. СУБД - например, DB2, с вьюхами и хранимыми процедурами;

2. AppServer - например, на VX-REXX или на чем-то еще, можно на Яве, только чтобы работало быстро;

3. Протокол обмена данными - например, с помощью XML и Named Pipes;

4. Оболочки для создания страниц HTML - с помощью Apache/PHP или GoServe/REXX;

5. LogAnalyzer, текстовые отладчики - по желанию.

Самое непонятное здесь - часть третья. Невозможность сделать ее легко и просто заставляет нас строить системы на движках вроде Resin и Tomcat (это JSP, она же "condom technology"). А затем бороться с глюками.

Я и сейчас пишу на JSP. Только уже другую систмеу. Все хорошо, пока заказчик не начал ее использовать. Как только начнет - она опять развалится. И почему люди ведутся на слово "Ява", как будто это заклинание, которое спасет мир :-)

Sergey Posokhov
2002-01-10 13:36:32

Далее. Как правило, ломаться будет Часть Вторая из приведенного выше списка. Она всегда ломается, так и должно быть. Но ее надо просто разделить на несколько независимых частей. Получим два десятка AppServer'ов, которые будут работать одновременно. Что с того, если OS/2 - многозадачная система. Зато они не будут влиять друг на друга.

Когда пишешь под JSP, все запросы обслуживает только ОДНА Ява-машина. Которая постоянно набирает ошибки и рано или поздно разрушается вместе со всеми данными сразу ВСЕХ пользователей. Потому JSP так и называют... не я это придумал.

У меня вопрос - кто-нибудь строил такие многоуровневые системы? Как их делают? На чем? Как обеспечить многозадачность внутри каждого AppServer'а? И так далее.

Василий А. Сидоров
2002-01-10 16:14:22

2Тимур Казимиров

Это проблема не фильтра RexxStart(), которым его зовут.

GoServ (мною) использовался как максимально простой способ воспроизведения бага.

Timur Kazimirov
2002-01-11 08:36:28

To: Sergey Posokhov

Что касается DB2 - я не советчик. Я с ней дела не имел. С Oracle - да, кое что было примерно подобное, но не 3-х уровневое, как ты пишешь. Давай списываться - глядишь, сообща, вместе решение и найдем удовлетворительное

Timur Kazimirov
2002-01-11 08:40:33

To: Василий А. Сидоров

Очень интересно! Я, в свое время, так на OREXX и не смог переключиться аккурат, похоже, из-за этого. MFC ответа четкого на проблему так и не дал :((

Timur Kazimirov
2002-01-11 08:44:20

Я тут скоро (надеюсь) выкину статью про SRE-http. Может быть многие вопросы/проблемы разрешатся сами собой? Просто сомнения взяли - а это надо обществу?

Sergey Posokhov
2002-01-11 13:20:04

Кто о чем, а я все о том же :-) Если запустить несколько HTTP-серверов и заставить их слушать разные порты TCP/IP, получится примерно то же, что я хочу получить.

Одна часть системы будет работать, например, по адресу myhost:8080, другая - по адресу myhost:1234 и так далее. При падении-зависании одной части системы все остальные будут продолжать отвечать на запросы пользователя.

Если GoServe и SRE-http позволяет строить такие системы - напиши об этом. Такая статья будет полезна.

Пока я знаю только, как этого добиться в PHP - запустить десяток Апачей. Однако Апачи из-за использования fork() плодятся с невероятной скоростью, как кролики. Поэтому GoServe может быть лучше, хе-хе...

Sergey Posokhov
2002-01-11 13:38:30

Задача сводится к следующему: предположим (умозрительно), что некая СУБД разрешает каждому Приложению держать не более... мммм.... десяти открытых Соединений с собой. Предположим, что СУБД следит за значениями PID этих самых Приложений. Доля истины в этом есть.

Дальше, пусть одно из Приложений не закрывает Соединения по вторникам и четвергам в 14-00 и ломается в это время через десять минут работы, зависая в ExitList-е, как это делал мой любимый Resin :-)

Так вот, хотелось бы: написать систему, состоящую из нескольких HTTP-серверов (или SRE-http - ???), каждый из которых выполнен в виде отдельного Приложения и имеет свой PID, чтобы во вторник и четверг во время перерыва на обед большая часть системы продолжала все-таки работать!!

Это можно сделать с помощью CGI, когда на каждый запрос создается отдельное Приложение, то есть вызывается Perl.exe, но если есть еще решения - пишите!

Потому что я их не знаю :-(

Timur Kazimirov
2002-01-14 02:51:33

To: Sergey Posokhov

Так это же легко. Причем для любого, практически, фильтра. Накопируй их с расширениями, соответствующими номерам портов и сделай CMD-шник вида:

GOSERVE HTTP PORT 80 FILTER MYFILTER.80 DATADIR C:\WWW80

GOSERVE HTTP PORT 81 FILTER MYFILTER.81 DATADIR C:\WWW81

GOSERVE HTTP PORT 8080 FILTER MYFILTER.8080 DATADIR C:\WWW8080

и т.д.

Каталоги данных можно одинаковыми сделать. Каждый GOSERVE будет иметь свой PID. Тут другой вопрос - как отметил Василий Сидоров, в случае ORexx'а может сама REXX-подсистема слететь.

Gleb Mazursky
2002-01-14 13:05:04

Сергей, зачем так "охульно огаивать" Java/JSP ?

То что ты рассказал при динозавра и проч. действительно встречается в проектах, которые начали делать с нуля "нулевые" люди.

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

Java - это Ultimate Tech для Server-Side!

Надо просто использовать JSP для того, для чего она создана - для content presentaion. И отдельно позаботиться об отладке. И инкапсулировать логику в объектную модель, а не "расклеивать лапшу"....

Gleb Mazursky
2002-01-14 13:54:12

to Sergey Posokhov:

еще хочу прокомментировать:

>>

Когда пишешь под JSP, все запросы обслуживает только ОДНА Ява-машина. Которая постоянно набирает ошибки и рано или поздно разрушается вместе со

>>

1. У меня ничего не рушится *;)

2. Если ты не в курсе, можно настроить обработку каждой сессии в индивидуальной JVM. Это умеет Resin & Oracle AppServer. Может и Tomcat умеет, но не уверен.

>>

всеми данными сразу ВСЕХ пользователей.

>>

а то уж как напишешь... про сериализацию сессий слыхал?

klan
2002-01-14 15:27:15

Hi, All/2!

Мне не совсем понятно зачем все это?

Как я понял продукт последний раз обновлялся в 1998 году... это без коментариев.

Далее - если необходимо быстро и просто организовать веб-сервер - существует web/2 ([url]),

который поддерживает rexx, если я не ошибаюсь...

Я уже не говорю о существовании Russian Apache/2, который

подымается совсем не долго, даже если Вы не представляете,

что собственно надо!!!

Тогда чем это лучше???

Где соль?!?!?

Bye!

Timur Kazimirov
2002-01-15 02:19:28

To: klan

Что касается вопроса "зачем", то однозначного ответа я дать, конечно, не могу. Может быть просто потому, что мне это интересно :) то же касается Web/2, Apache и пр., то не только у них есть поддержка REXX, но... Но в виде CGI, а это не всегда бывает приемлемым. А то что GoServe не обновлялся с 1998 года безусловно является недостатком, но только в одной области - отсутствие встроенной поддержки HTTP/1.1 в области кэширования и разговора с прокси-серверами, однако это обходится очень и очень просто - запретом кэширования команды FILE и перекладыванием всей работы на фильтр (что, например, сделано в фильтрах SRE-Lite и SRE-http). К слову сказать, SRE-http обновлялся последний раз 2 января этого года :) А вот чем это все лучше... Я, честно говоря, не ставил своей задачей показать - какой это крутой, по сравнению с другими серверами, софт. Я просто рассказал о нём :) А вот "где соль" я сказать могу - GoServe сам по себе не делает ничего - все делают фильтры, написанные на REXX'е, то есть логика обработки запросов вынесена отдельно.

Timur Kazimirov
2002-01-15 11:14:52

В дополнение - тот же Дэниел в настоящее время делает "заменитель" GoServe - [url] пока, правда, у него не все получается, но кто знает, что там будет дальше.По крайней мере, говорить о том, что версия от 5 января - устаревшая, не стоит :)

Timur Kazimirov
2002-01-23 09:32:02

Тут, надеюсь, скоро ещё одна статья "в продолжение темы" выйдет. Про SRE-http. Сама статья вряд ли будет большой - типа обзора и быстрой установки, а вот за переводом документации прошу ко мне, если кто заинтересован

Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).


Ваше имя:

Ваш E-Mail:

CODE:
......

  

Ваш комментарий:


Как приумножить количество пользователей eComStation? Каждый осевик может установить eCS своим друзьям и родственникам, распечатать для них методичку, как пользоваться системой - Сайт LiveBook

Статьи

Операционная система
Программное обеспечение
Оборудование
Для разработчика
Разное
Колонка редактора


Готовая eComStation на SSD диске

 





Последний активный опрос: Какая высота барьера RPM?

[Google]

IBM OS/2 Warp

 
Обучение новичков

Списки протестированного OS/2 оборудования

 
Статьи


   
  Почему eComStation?
Возможности
Особенности
Применение
Ролики и скриншоты
   eComStation для
для бизнесменов
для студентов и инженеров
для продавцов компьютеров
сообщество пользователей
   Разработчик
Распространить программу
Описание API, библиотеки
Начать новый проект
Конкурсы
   Программы
Он-лайн каталог
Выбрать через eCo Market
   Служба поддержки
Отправить вопрос
Купить eComStation
Вопросы и ответы
Обучение новичков
 
 
© 2001 - 2021 eCo Software, All rights reserved
Сибирский Медведь технологическая компания
eComStation Serenity Systems International • OS/2 Warp IBM Corporation • ArcaOS Arca Noae