>Предлагаю пример. Бронирование авиабилетов онлайн.
ОК. В success stories Franz Inc. что-то похожее проскальзывало.
>Допустим крупная авиакомпания хочет предоставлять услугу бронирования авиабилетов
>онлайн вместе с расписаниями полетов и т.п.
>Нужно сделать как минимум:
>набор отчетов
>веб интерфейс для клиентов.
>рабочее место для продавца.
>рабочее место для оператора.
>рабочее место менеджера.
>на самом деле список неполный.
Стандартный набор.
>Реализация клиент-серверного приложения предполагается в следующем виде:
>клиентская часть - веб контейнеры - сервер приложений - БД
>Клиентская часть может быть как ГУИ так и веб интерфейсом.
>Веб контейнеры формируют отчеты, принимает и отправляют запросы клиентов.
>Сервер приложений - проводит транзакции по бронированию билетов, извлекает
>данные из БД и т.п.
Так.
>Приложение должно быть масштабируемое, т.е. нужно чтобы была возможность запускать несколько веб
>контейнеров одновременно. По хорошему нужно чтобы пользовательские сессии могли реплицироваться
>между контейнерами и серверами приложений.
Естественно.
>Т.е. что нужно (по первой прикидке):
>Веб-контейнер, в котором можно писать обработчики HTTP запросов на Лиспе.
Есть несколько вариантов: аналоги Java сервлетов, HTTP сервер на Лиспе и т.п.
>Сервер-приложений,
Тут тоже есть варианты: компоненты CORBA или своя архитектура. Наверняка у Franz Inc. есть какое-то
решение.
>Библиотека по формированию pdf, xls, doc файлов для отчетов.
Взять какую-нибудь со стороны, потому что я видел только библиотеку
для формирование PDF.
>GUI с html парсером (чтобы менеджер мог видеть html отчеты у себя в приложении)
Есть.
>Библиотека с доступом к различным БД (аналог ODBC или JDBC)
Есть прямо встроенные языки для общения с БД (например у XAnalys - Common SQL)
>Библиотека для отсылки/приема писем (как минимум smpt и pop3)
Этого то добра наверняка много.
>Технология для работы ЛИСП в среде веб-приложения: HTTP запросы, пользовательские сессии,
>авторизация.
Eсть. Это наверное лучше всего реализовано. За счет свойств языка
программирование под Веб выглядит как написание настольного приложения.
>Разработка собственного веб-сервера не пройдет для промышленной системы. Слишком много рисков.
Уже есть более менее готовые веб-серверы, как минимум: Common Lisp Hypermedia Server и Allegro
Serve. Есть примочки к существующим серверам (Lisplets и mod_lisp) и т.п.
>Библиотека для парсинга XML.
Этого добра предостаточно.
>Технология для работы ЛИСП в среде сервера-приложений: HTTP запросы, пользовательские сессии,
>авторизация,
Это точно есть
>создания управляемых сервисов (модуля, которым мог бы управлять оператор например через
>веб-консоль), транзакционность
>распределенных операций, механизма обмена событиями.
Это, честно говоря, не знаю в каком объеме есть готовое.
>Разработка собственного сервера приложений не пройдет для промышленной системы. Слишком много
>рисков.
Рисков всегда много. И что такое "промышленная система" ? Красивое словосочетание, как один сказал -
"это программное обеспечение, сильное как бык и умное как автомобиль" ;-))
Какие требования к системе неизвестно, какое ожидаемое количество транзакций в единицу
времени неизвестно и т.п.
>К каким вендорам обратиться и сколько нужно заплатить за софт, чтобы сделать такую систему?
Я бы обратился в
www.franz.com для начала, и узнал, что они могут предложить. Например недавно
видел интерфейс реализованной довольно сложной системы для "clinical drug trial management",
судя по всему система полностью перенастраивается под конкретного клиента силами
самого клиента. Один из авторов утверждал (Kenneth Tilton ), что они потратили
1M$ и сделали продукт, который первосходит аналоги за 100M$.
Другая компания ITA Software заменяет мэйнфреймы авиакомпаний своими кластерами с Лиспом.
Кстати вот малюсенькая статейка в дополнение. Я думаю, что они решили даже более сложную
задачу, чем Вы здесь описали.
>Есть ли некоторые стандартные подходы к решению таких задач используя ЛИСП.
Для части задач конечно есть устоявшиеся инструменты.
> И есть ли стандарты, которые реализованы у нескольких вендоров, или у каждого вендора свой API для
решения таких задач? Риски сокращаются, если можно менять вендора по ходу выполнения проекта.
Есть стандарты вроде CORBA и т.п. которые поддерживаются всеми вендорами, но я сомневаюсь, что у всех одинаковые инструменты для более конкретных задач.
--------------------
Я бы сказал, что вопросы у Вас - сложнее некуда. Системы такого уровня на моей памяти
не проходили этап проектирования (это конечно само по себе ничего не значит). Я имею
в виду, что жизнь бывает подтверждает - там где может стоять один или два SQL сервера и работать
простая двухзвенная архитектура (масштабы среднего предприятия), иногда не стоит усложнять.
Собственно я сейчас занимаюсь довольно скромным фотограмметрическим приложением с элементами автоматической добычи знаний из эксперта, которому и не снились такие бюджеты. А Вы действительно создаете промышленные системы бронирования авиабилетов или просто интересуетесь ?
С уважением
Lisper