Найти - Пользователи
Полная версия: Сервер - структура
Начало » Network » Сервер - структура
1 2 3
slav0nic
а select не из этой же оперы?
ZZZ
Из той-же.
У меня все нити изолированые. Это решает часть проблем с безопастностью, а select, ИМХО, довольно тяжёл в программировании. Когда начинал, пытался его прикрутить, но ничего путного, по Дзэн, не вышло. Не понимаю я как с ним работать! Особенно, когда этих сокетов тысяча-другая и всем чё-то надо…
redixin
ZZZ
Особенно, когда этих сокетов тысяча-другая и всем чё-то надо…
темболее лучше переваривать все асинхронно, а не плодить тысячу-другую тредов
в twisted это все уже есть, нужно просто научиться готовить
для таких приложений треды не годятся (это не имхо, это факт. где вы видели IM сервер на тредах? или какойнить игровой сервер? или прокси сервер? веб сервер? (апач это исключение, феномен который требует изучения))
slav0nic
redixin
на сколько я знаю топикстартеру это надо для клиента на моб тел, там твистед не покатит)
ZZZ
redixin
темболее лучше переваривать все асинхронно, а не плодить тысячу-другую тредов
Как??? Я, наверное, не понял select вообще! Мне казалось, что оно как раз-таки синхронное… Буду благодарен за небольшой пример.

slav0nic
в twisted это все уже есть, нужно просто научиться готовить
В него я тоже не до конца врубился. Правильно тут кто-то сказал – нужна пара лет, на то, чтобы научится мыслить его образами.

P.S. Проблему GIL, вроде, можно решить… блин, не помню названий… использованием не CPython. Да и опять же, у меня нити связаны только СУБД, и для каждой нити своё соединение с ней.
P.P.S. Это не IM, но и его на моей архитекруре построить можно будет. Даже в планах есть.
P.P.P.S. Хреновый я архитектор… :-/
Андрей Светлов
Сказал я.
А после этого добавил, что за пару недель смог обучить других делать правильно.
Реально нужно меньше времени, через две недели народ писал весьма качественный код.

Для меня самая главная проблема в twisted была именно в “перестройке мозгов”.
Начал изучать “реактивность” с ACE от Дугласа Шмита (http://www.cs.wustl.edu/~schmidt/ACE.html). Недавно увидел перевод его книги: http://oz.by/books/more.phtml?id=106709&partner=rsdn
Несмотря на то, что язык программирования С++ - проблемы общие. Автор предлагает design patterns, иллюстрируя их на плюсах. Рекомендую.
На twisted эти шаблоны реализованы весьма изящно (лучшего еще не видел).

Для ускорения процесса рекомендую посетить следующий семинар программирования на Питоне (exception.org.ua).
Мероприятие состоится 24 мая.
Я имею честь проводить мастер-класс именно по twisted. Должно получиться не хуже, чем с метаклассами и дескрипторами.

На данный момент не имею достаточно материалов, чтобы выложить как статью. Все еще в стадии окончательной подготовки и усушки-утряски.
(По метаклассам статьи тоже не было. Главным образом потому, что написание хорошей статейки - немалый труд. Поскольку не услышал больших пожеланий видеть материал в инете - не озаботился дополнительной работой. На сайте мероприятия выложен только черновик с минимальными комментариями).

PS
По поводу архитектуры:
прочитал сегодня пост Блинкова: http://www.insight-it.ru/net/scalability/arkhitektura-livejournal/

“Мы ненавидим изобретать колесо! Но тем не менее, если колесо не существует или оно квадратное, то мы не боимся изобретать круглое колесо.” (с)
Готов подвисаться под каждым словом :)
nerezus
на сколько я знаю топикстартеру это надо для клиента на моб тел, там твистед не покатит)
Нед, точнее да, но не только ) Первоочередная задача - десктоп.
ZZZ
Андрей Светлов
Для ускорения процесса рекомендую посетить следующий семинар программирования на Питоне (exception.org.ua).
Мероприятие состоится 24 мая.
Блин. Не успеваю… Вот если бы в июне-августе…

Андрей Светлов
Я имею честь проводить мастер-класс именно по twisted. Должно получиться не хуже, чем с метаклассами и дескрипторами.
Ссылочку? Интересно…

Андрей Светлов
На данный момент не имею достаточно материалов, чтобы выложить как статью. Все еще в стадии окончательной подготовки и усушки-утряски.
Было бы хорошо, чтобы эта статья всё-таки вышла как статья.

Андрей Светлов
“Мы ненавидим изобретать колесо! Но тем не менее, если колесо не существует или оно квадратное, то мы не боимся изобретать круглое колесо.” (с)
Готов подвисаться под каждым словом :)
Вот этим я и занимаюсь. Достало, блин.


Вопрос. Как у twisted с безопастностью. У меня, как вы уже успели заметит, довольно жёсткие требования по её обоспечению. Притом, мне нужно не просто допустить или недопустить юзера по хэшу пароля из субд, а ограничивать его возможность. Нынешний вариант (уже третий!) именно под это и заточен. Вся архитектура модульная и пользователь не должен мочь использовать функуионал, который специально не разрешён ему.

Плюс. Мне нужно удобство использования для разработчиков новых модулей. Ибо их нужно много и разных. И, само собой, простота их динамического подключения.
Андрей Светлов
ZZZ
Блин. Не успеваю… Вот если бы в июне-августе…
В июне-августе, надеюсь, Иван mkdir сделает следующий exception. Тоже интересный

ZZZ
Ссылочку? Интересно…
http://exception.org.ua/media/materials/exception-conference-07/andrey_svetlov_-_metaclasses.py

ZZZ
Было бы хорошо, чтобы эта статья всё-таки вышла как статья.
Посмотрим. Дополнительная особенность в том, что я провожу мастер-классы, а не обычные лекции. Способ подачи материала сильно отличается. Соответственно отличается и способ подготовки к докладу.

ZZZ
Вопрос. Как у twisted с безопастностью. У меня, как вы уже успели заметит, довольно жёсткие требования по её обоспечению. Притом, мне нужно не просто допустить или недопустить юзера по хэшу пароля из субд, а ограничивать его возможность. Нынешний вариант (уже третий!) именно под это и заточен. Вся архитектура модульная и пользователь не должен мочь использовать функуионал, который специально не разрешён ему.
twisted не занимается вопросами безопасности. Это просто легковесный (гусары, молчать!) асинхронный фреймворк для написания сетевого взаимодействия. Плюс готовые реализации для поддержки различных протоколов. Ничего больше.

ZZZ
Плюс. Мне нужно удобство использования для разработчиков новых модулей. Ибо их нужно много и разных. И, само собой, простота их динамического подключения.
С этим - к плагинам. Твистед имеет подсистему для плагинов, но я не уверен, что она мне нравится (и использовать ее необязательно). Есть еще ряд других решений. Разговаривать можно долго, но сначала необходимо определить конкретные требования. И от них отталкиваться.
ZZZ
Андрей Светлов
В июне-августе, надеюсь, Иван mkdir сделает следующий exception. Тоже интересный
Интересный – это одно, а меня сейчас не всё интересует. Посморим.

Андрей Светлов
http://exception.org.ua/media/materials/exception-conference-07/andrey_svetlov_-_metaclasses.py
То что нужно! Огромное спасибо! Я уже с пол-года пытаюсь найти простые примеры создания и использования метаклассов. А о дескрипторах вообще узнал только месяц назад. Всё удивлялся, как property работает…

Андрей Светлов
Посмотрим. Дополнительная особенность в том, что я провожу мастер-классы, а не обычные лекции. Способ подачи материала сильно отличается. Соответственно отличается и способ подготовки к докладу.
Если не секрет, в чём отличие мастер-классов от лекций.


Андрей Светлов
twisted не занимается вопросами безопасности. Это просто легковесный (гусары, молчать!) асинхронный фреймворк для написания сетевого взаимодействия. Плюс готовые реализации для поддержки различных протоколов. Ничего больше.
Легковесный??? А чтоже тогда “тяжеловесный”? Реализация COBRA на Qt3-console??? :-)
При первом рассмотрении мне в глаза бросилось именно то, что он громоздк. При втором тоже. Куда более легковесный Ice и тот для меня слишком громоздк!..
Я привык использовать unix-way. Единственное исключение, собственно Qt, но и его я использую только для отрисовки интерфейса и иногда для коннекта к СУБД (QSqlQueryModel рулит!). (Не надо мне про unix-way в wx! Слабенький он.)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB