anonymous@RULINUX.NET~# | Last login: 2024-12-25 10:04:23 |
Регистрация Вход | Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск |
Форум - Talks | [RSS] |
копипаста сообщения одного программиста
Озаботился поиском подходящего инструмента - сервера приложений и фреймворка для создания интернет-приложений. Для разных задач адекватны разные инструменты, для небольшого сайта один, для полноценного интернет приложения - другой. Так что я опишу архитектуру, и буду ждать подсказки о существующих решениях, отвечающих архитектуре. Язык реализации - java или stackless python (либо stackless pypy, поскольку у обычного питона туго с параллельностью). Лицензия - как минимум бесплатная для некоммерческого использования, как максимум - тру опенсорс (бсд). Интерес - познавательный, хочется узнать существует ли сабж, и накатать на нём условный хелло ворлд (условный потому что для тестинга фич потребуется нечто изощрённее)
0. backend - открытая БД, мускуль или постгресс
+ persistence API, позволяющий по выбору либо автоматически мапить классы в БД, либо кастомно вытаскивать данные в конструкторе/деструкторе с помощью определённой для этих целей вспомогательной удобной либы. Просто SQL запросы - нехорошо, я рассчитываю, что сабж будет предоставлять какие-то неймспейсы или другие тулзы, позволяющие не думать о взаимном расположении данных в таблицах, коллизиях и прочих проблем ручной аллокации таблиц.
1. server-side
классы с логикой, обработкой данных, общением с таблицей (посредством persistence API и не только). Может работать в statefull либо stateless режиме (в последнем случае - через персистенс в бэкенд БД). Плюс механизм публикации объектов, чтобы клиенты могли затребовать себе соединение с одним из них.
2. client-side
классы для представления контроллера на стороне клиента. Получают/передают события от клиента к серверу. Смысл фреймворка в том, чтобы это происходило прозрачно, неотличимо в сетевом случае от локального. Клиент/сервер обмениваются сообщениями, которые тригаются в асинхронном цикле обработки, наподобие того как это сделано для сигнал/слотов QT. Вместе с сигналами можно послать контент - в виде plain data, причём можно выбирать как синхронный вариант, так и асинхронный. Можно посылать "мгновенные" короткие сообщения, можно открывать канал передачи данных пайпом, который автоматически уходит в отдельный тред (например массивные картинки аплодить отдельным тредом от треда управления) точно также как и server side можно заставить переключиться на stateless мод через персистенс апи.
3. Далее к контроллеру можно напрямую привязать UI, например JavaFX, а можно заюзать один из нескольких вариантов создания веб-морды
1. Отдельный веб-фрейморк
2. Темплатирование - один или несколько вариантов
3. Генератор веб-страничек, вроде Java Server Faces.
Общая концепция: есть один или несколько серверов БД, между которыми распределяется нагрузка (можно вручную). Один или несколько серверов приложений, на которых распределена нагрузка server-side и client-side, можно один сервер растянуть на несколько машин, а можно наоборот на одну машину запихать все сервера и клиенты, прописав им распределение поглощаемых ресурсов. Соответственно необходима панель управления. Другой вариант использования заключается в том, что мы не генерим веб-морду, а раздаём сразу клиенты на удалённые машины, те же самые Java апплеты.
Собственно существует ли сабж, и по каким ключевым словам его искать? Можно как одним куском, так и каскадом.
anonymous(*) (2010-08-16 10:45:00)
Opera/9.80 (X11; Linux i686; U; en) Presto/2.6.30 Version/10.60
|
|
|
|
|
|
Этот тред читают 1 пользователь: |
Анонимных: 1 Зарегистрированных: 0 |
Re: их в семером не удержать
мне кажется, или тут описано классическое клиент-серверное приложение на лиспе?:)
>Собственно существует ли сабж, и по каким ключевым словам его искать?
а хотябы в туже вику заглянуть перед постингом?
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.9) Gecko/20100402 Linux Mint/8 (Helena) Firefox/3.5.9