ayvango
|
ушастый
|
|
|
|
Рег.: 10.01.2006
|
Сообщений: 27732
|
Из: Воронеж
|
Рейтинг: 11833
|
|
на чем делать интернет-приложение
16.08.2010 10:23
|
|
|
Озаботился поиском подходящего инструмента - сервера приложений и фреймворка для создания интернет-приложений. Для разных задач адекватны разные инструменты, для небольшого сайта один, для полноценного интернет приложения - другой. Так что я опишу архитектуру, и буду ждать подсказки о существующих решениях, отвечающих архитектуре. Язык реализации - 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 апплеты.
Собственно существует ли сабж, и по каким ключевым словам его искать? Можно как одним куском, так и каскадом.
|
Сеть темна и полна ужасов |
|
Vilfred_Sagen
|
спать хочу
|
|
|
|
Рег.: 29.10.2004
|
Сообщений: 22313
|
Из: moscow
|
Рейтинг: 7125
|
|
Re: на чем делать интернет-приложение
[re: ayvango]
16.08.2010 10:42
|
|
|
на что только не пойдут люди, чтобы написать hello world
p.s. я все понимаю, ты из лучших побужденией, но мну пришел в тихий ужас по прочтении p.s.s. знаю одну CMS XWare писало ее полрамблера, продают они ее за 50 килобаксов
|
|
ayvango
|
ушастый
|
|
|
|
Рег.: 10.01.2006
|
Сообщений: 27732
|
Из: Воронеж
|
Рейтинг: 11833
|
|
|
Quote:
p.s. я все понимаю, ты из лучших побужденией, но мну пришел в тихий ужас по прочтении
а что не так? знаешь правило
Quote:
Любая достаточно сложная программа на C или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp
тут тоже самое. Если система сама не может предоставить абстракции контроллеров и сигналов-слотов, то программисты сами будут вынуждены написать нечто подобное.
|
Сеть темна и полна ужасов |
|
ayvango
|
ушастый
|
|
|
|
Рег.: 10.01.2006
|
Сообщений: 27732
|
Из: Воронеж
|
Рейтинг: 11833
|
|
|
Quote:
на что только не пойдут люди, чтобы написать hello world
чисто hello world пишется легко:
code:
module Main where
import Happstack.Server (nullConf, simpleHTTP, toResponse, ok)
main :: IO ()
main = simpleHTTP nullConf $ ok "Hello, World!"
|
Сеть темна и полна ужасов |
|
Antoir
|
newbie
|
|
|
|
Рег.: 07.06.2010
|
Сообщений: 43
|
|
Рейтинг: 80
|
|
Re: на чем делать интернет-приложение
[re: ayvango]
17.08.2010 19:49
|
|
|
Приведи пример какого-нибудь распространенного интернет-приложения оч интересно что это такое , а ппознаний в данной области мало
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31411
|
|
Рейтинг: 8953
|
|
|
|
Lexus_
|
---
|
|
|
|
Рег.: 27.11.2005
|
Сообщений: 2743
|
|
Рейтинг: 1209
|
|
|
он же на готовом движке
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31411
|
|
Рейтинг: 8953
|
|
|
от этого он перестает быть интернет-приложением? или перестает использовать инструменты, которые хочет использовать ayvango?
|
|
Lexus_
|
---
|
|
|
|
Рег.: 27.11.2005
|
Сообщений: 2743
|
|
Рейтинг: 1209
|
|
|
в общем да, понавороченне что нибудь. какое нибудь интернет-приложение на Java с кучей технологий?
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31411
|
|
Рейтинг: 8953
|
|
|
из навороченных будет SAP какой-нибудь, и другие крупные ERP-пакеты.
из ориентированных на публику (а не на внутреннее использование): интернет-банки, крупные интернет-магазины.
|
|
Sardaukar
|
работничег
|
|
|
|
Рег.: 13.07.2004
|
Сообщений: 759
|
Из: кроме мск, Владимирская обл, г. Радужный
|
Рейтинг: 268
|
|
|
во-во-во то что хочет айвенго это похоже на монструозные фреймворки от оракла (привет алепар!), сапа, лотуса ... там будет как раз так - вот этот документ отображать вот сюда, а изменения - вот туда
|
|
|