• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Вебклуб Perlgolf.ru
 

Вебклуб Perlgolf.ru

on

  • 1,280 views

YAPC Russia 2009 "May Perl 2"

YAPC Russia 2009 "May Perl 2"

Statistics

Views

Total Views
1,280
Views on SlideShare
1,277
Embed Views
3

Actions

Likes
0
Downloads
2
Comments
0

1 Embed 3

http://www.slideshare.net 3

Accessibility

Categories

Upload Details

Uploaded via SlideShare as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Вебклуб Perlgolf.ru Вебклуб Perlgolf.ru Presentation Transcript

    • Вебклуб perlgolf.ru Самунь Виктор Азовсков Сергей Ханов Артур Уральский Государственный Университет им. А.М.Горького YAPC::Russia 2009
    • Учебный perlgolf
      • http://cs.usu.edu.ru/langs/perl/perlgolf
      • Perlgolf.ru – рунетовский проект для игры в perlgolf и профессионального общения
      • Архитектуру программной системы можно рассматривать с различных перспектив:
      • функционально-логического деления
      • Архитектуру программной системы можно рассматривать с различных перспектив:
      • функционально-логического деления
      • деления кода на модули
      • Архитектуру программной системы можно рассматривать с различных перспектив:
      • функционально-логического деления
      • деления кода на модули
      • вычислительных потоков
      • Архитектуру программной системы можно рассматривать с различных перспектив:
      • функционально-логического деления
      • деления кода на модули
      • вычислительных потоков
      • взаимодействия пользователя с системой
      • Архитектуру программной системы можно рассматривать с различных перспектив:
      • функционально-логического деления
      • деления кода на модули
      • вычислительных потоков
      • взаимодействия пользователя с системой
      • распределения данных
      • Архитектуру программной системы можно рассматривать с различных перспектив:
      • функционально-логического деления
      • деления кода на модули
      • вычислительных потоков
      • взаимодействия пользователя с системой
      • распределения данных
      • физического деления и развёртки системы
      • Архитектуру программной системы можно рассматривать с различных перспектив:
      • функционально-логического деления
      • деления кода на модули
      • вычислительных потоков
      • взаимодействия пользователя с системой
      • распределения данных
      • физического деления и развёртки системы
      • … и другие… [ подробнее в IEEE 1471 + воображение ]
      • Архитектуру программной системы можно рассматривать с различных перспектив:
      • функционально-логического деления
      • деления кода на модули
      • вычислительных потоков
      • взаимодействия пользователя с системой
      • распределения данных
      • физического деления и развёртки системы
      • … и другие… [ подробнее в IEEE 1471 + воображение ]
    • Требования к архитектуре perlgolf.ru
      • Удобство развития и поддержки проекта
        • добавление и удаление модулей без остановки всей системы
        • низкая чувствительность модулей к изменениям окружения
    • Требования к архитектуре perlgolf.ru
      • Надежность работы всей системы
        • устойчивость системы к сбоям модулей
        • удобство тестирования компонентов системы
    • Требования к архитектуре perlgolf.ru
      • Защищенность
        • DDOS
        • атаки отдельных пользователей
      • Основные архитектуры с точки зрения деления на модули
    • Монолитная модель A B F C E D G
    • Монолитная модель A B F C E D G
      • Непосредственное взаимодействие модулей
      Монолитная модель A B F C E D G
      • Непосредственное взаимодействие модулей
      • Высокая производительность
      Монолитная модель A B F C E D G
      • Непосредственное взаимодействие модулей
      • Высокая производительность
      • Нет необходимости в создании системы связи
      Монолитная модель A B F C E D G
      • Непосредственное взаимодействие модулей
      • Высокая производительность
      • Нет необходимости в создании системы связи
      • Возможность выстраивать нетривиальные зависимости
      Монолитная модель A B F C E D G
      • Непосредственное взаимодействие модулей
      • Высокая производительность
      • Нет необходимости в создании системы связи
      • Возможность выстраивать нетривиальные зависимости
      • Высокая чувствительность модулей друг к другу
      Монолитная модель A B F C E D G
    • Модель наблюдателя A B D C
    • Модель наблюдателя A B D C
      • Взаимодействие посредством событий
      Модель наблюдателя A B D C
      • Взаимодействие посредством событий
      • Распространителю событий нет необходимости знать о подписчиках ⟶ снижение зависимости
      Модель наблюдателя A B D C
      • Взаимодействие посредством событий
      • Распространителю событий нет необходимости знать о подписчиках ⟶ снижение зависимости
      • Не расчитана на пострение связей типа «запрос-ответ»
      Модель наблюдателя A B D C
    • Событийная модель A E C D B Ядро
    • Событийная модель A E C D B Ядро
      • Все взаимодействия - событийные
      Событийная модель A E C D B Ядро
      • Все взаимодействия - событийные
      • Безличностный характер общения
      Событийная модель A E C D B Ядро
      • Все взаимодействия - событийные
      • Безличностный характер общения
      • Изменчивость окружения ⟶ написание устойчивого кода
      Событийная модель A E C D B Ядро
      • Все взаимодействия - событийные
      • Безличностный характер общения
      • Изменчивость окружения ⟶ написание устойчивого кода
      • Легкость исследования
      Событийная модель A E C D B Ядро
      • Все взаимодействия - событийные
      • Безличностный характер общения
      • Изменчивость окружения ⟶ написание устойчивого кода
      • Легкость исследования
      • Нет гарантии получения ответного события
      Событийная модель A E C D B Ядро
      • Все взаимодействия - событийные
      • Безличностный характер общения
      • Изменчивость окружения ⟶ написание устойчивого кода
      • Легкость исследования
      • Нет гарантии получения ответного события
      • Изменчивая среда ⟶ сложность расчета вычислительной нагрузки
      Событийная модель A E C D B Ядро
    • Выбираем…
      • событийная модель
      • удобство развития и поддержки, наблюдения
      • уязвимость к DDOS
    • Выбираем…
      • событийная модель
      • удобство развития и поддержки, наблюдения
      • уязвимость к DDOS
      • или
      • монолитная + наблюдатель
      • высокая производительность
      • сложность экспериментирования, развития
    • А на самом деле…
    • Стартовая подсистема
    • События Модуль Модуль Таблица обработчиков Очередь событий Пул потоков Ядро
    • Ядро
      • Direct call
      • Socket
      • Named pipe
      М М М М Ядро Ядро
      • http://dev.perlgolf.ru
    •  
    • Важные модули perlgolf.ru Ядро AAA DUF Time Golf Персональная страница Лог Starter Хранилище Config
    • Второстепенные модули perlgolf.ru Ядро Оценки Статистика Оценки Хистори Справка RSS Уведомления Чат Заставка
    • Система нечётких оценок: цели
      • Проранжировать объекты оценки в соответствии с некоторой характеристикой
    • Система нечётких оценок: цели
      • Проранжировать объекты оценки в соответствии с некоторой характеристикой
      • Как можно быстрее получить некоторый диапазон
    • Чёткие оценки
      • Преимущества
      • Недостатки
      • Детерминированность
      • Лёгкость хранения
      • Единообразие
      Сервер
    • Нечёткие оценки … сервер
    • Нечёткие оценки Wi Wi Wi Объекты оценки Субъект оценки
    • Формирование оценки
      • n групп, m пользователей
      Формула подсчета оценки выставленной группой w – вес , выставленный субъектом группе - Оценка пользователя группой - Оценка пользователя группой
    • Формирование оценки Оценка для одного пользователя:
    • Функция влияния n – число пользовтелей
    • Как считать? Данные об оценках веса сервер клиент Модуль подсчета и кэширования оценок
      • Как сохранить большое количество данных на клиенте?
      • Как сохранить большое количество данных на клиенте?
      • Как их туда передать?
    • Хранение данных
    • Передача данных HTTP TCP соединение сервер клиент
    • Сравнение производительности
    • Производительность .NET
    • Благодарности
      • Спасибо за внимание!