Your SlideShare is downloading. ×
Вебклуб Perlgolf.ru
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Вебклуб Perlgolf.ru

717

Published on

YAPC Russia 2009 "May Perl 2"

YAPC Russia 2009 "May Perl 2"

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
717
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Вебклуб perlgolf.ru Самунь Виктор Азовсков Сергей Ханов Артур Уральский Государственный Университет им. А.М.Горького YAPC::Russia 2009
  • 2. Учебный perlgolf
    • http://cs.usu.edu.ru/langs/perl/perlgolf
  • 3.
    • Perlgolf.ru – рунетовский проект для игры в perlgolf и профессионального общения
  • 4.
    • Архитектуру программной системы можно рассматривать с различных перспектив:
    • функционально-логического деления
  • 5.
    • Архитектуру программной системы можно рассматривать с различных перспектив:
    • функционально-логического деления
    • деления кода на модули
  • 6.
    • Архитектуру программной системы можно рассматривать с различных перспектив:
    • функционально-логического деления
    • деления кода на модули
    • вычислительных потоков
  • 7.
    • Архитектуру программной системы можно рассматривать с различных перспектив:
    • функционально-логического деления
    • деления кода на модули
    • вычислительных потоков
    • взаимодействия пользователя с системой
  • 8.
    • Архитектуру программной системы можно рассматривать с различных перспектив:
    • функционально-логического деления
    • деления кода на модули
    • вычислительных потоков
    • взаимодействия пользователя с системой
    • распределения данных
  • 9.
    • Архитектуру программной системы можно рассматривать с различных перспектив:
    • функционально-логического деления
    • деления кода на модули
    • вычислительных потоков
    • взаимодействия пользователя с системой
    • распределения данных
    • физического деления и развёртки системы
  • 10.
    • Архитектуру программной системы можно рассматривать с различных перспектив:
    • функционально-логического деления
    • деления кода на модули
    • вычислительных потоков
    • взаимодействия пользователя с системой
    • распределения данных
    • физического деления и развёртки системы
    • … и другие… [ подробнее в IEEE 1471 + воображение ]
  • 11.
    • Архитектуру программной системы можно рассматривать с различных перспектив:
    • функционально-логического деления
    • деления кода на модули
    • вычислительных потоков
    • взаимодействия пользователя с системой
    • распределения данных
    • физического деления и развёртки системы
    • … и другие… [ подробнее в IEEE 1471 + воображение ]
  • 12. Требования к архитектуре perlgolf.ru
    • Удобство развития и поддержки проекта
      • добавление и удаление модулей без остановки всей системы
      • низкая чувствительность модулей к изменениям окружения
  • 13. Требования к архитектуре perlgolf.ru
    • Надежность работы всей системы
      • устойчивость системы к сбоям модулей
      • удобство тестирования компонентов системы
  • 14. Требования к архитектуре perlgolf.ru
    • Защищенность
      • DDOS
      • атаки отдельных пользователей
  • 15.
    • Основные архитектуры с точки зрения деления на модули
  • 16. Монолитная модель A B F C E D G
  • 17. Монолитная модель A B F C E D G
  • 18.
    • Непосредственное взаимодействие модулей
    Монолитная модель A B F C E D G
  • 19.
    • Непосредственное взаимодействие модулей
    • Высокая производительность
    Монолитная модель A B F C E D G
  • 20.
    • Непосредственное взаимодействие модулей
    • Высокая производительность
    • Нет необходимости в создании системы связи
    Монолитная модель A B F C E D G
  • 21.
    • Непосредственное взаимодействие модулей
    • Высокая производительность
    • Нет необходимости в создании системы связи
    • Возможность выстраивать нетривиальные зависимости
    Монолитная модель A B F C E D G
  • 22.
    • Непосредственное взаимодействие модулей
    • Высокая производительность
    • Нет необходимости в создании системы связи
    • Возможность выстраивать нетривиальные зависимости
    • Высокая чувствительность модулей друг к другу
    Монолитная модель A B F C E D G
  • 23. Модель наблюдателя A B D C
  • 24. Модель наблюдателя A B D C
  • 25.
    • Взаимодействие посредством событий
    Модель наблюдателя A B D C
  • 26.
    • Взаимодействие посредством событий
    • Распространителю событий нет необходимости знать о подписчиках ⟶ снижение зависимости
    Модель наблюдателя A B D C
  • 27.
    • Взаимодействие посредством событий
    • Распространителю событий нет необходимости знать о подписчиках ⟶ снижение зависимости
    • Не расчитана на пострение связей типа «запрос-ответ»
    Модель наблюдателя A B D C
  • 28. Событийная модель A E C D B Ядро
  • 29. Событийная модель A E C D B Ядро
  • 30.
    • Все взаимодействия - событийные
    Событийная модель A E C D B Ядро
  • 31.
    • Все взаимодействия - событийные
    • Безличностный характер общения
    Событийная модель A E C D B Ядро
  • 32.
    • Все взаимодействия - событийные
    • Безличностный характер общения
    • Изменчивость окружения ⟶ написание устойчивого кода
    Событийная модель A E C D B Ядро
  • 33.
    • Все взаимодействия - событийные
    • Безличностный характер общения
    • Изменчивость окружения ⟶ написание устойчивого кода
    • Легкость исследования
    Событийная модель A E C D B Ядро
  • 34.
    • Все взаимодействия - событийные
    • Безличностный характер общения
    • Изменчивость окружения ⟶ написание устойчивого кода
    • Легкость исследования
    • Нет гарантии получения ответного события
    Событийная модель A E C D B Ядро
  • 35.
    • Все взаимодействия - событийные
    • Безличностный характер общения
    • Изменчивость окружения ⟶ написание устойчивого кода
    • Легкость исследования
    • Нет гарантии получения ответного события
    • Изменчивая среда ⟶ сложность расчета вычислительной нагрузки
    Событийная модель A E C D B Ядро
  • 36. Выбираем…
    • событийная модель
    • удобство развития и поддержки, наблюдения
    • уязвимость к DDOS
  • 37. Выбираем…
    • событийная модель
    • удобство развития и поддержки, наблюдения
    • уязвимость к DDOS
    • или
    • монолитная + наблюдатель
    • высокая производительность
    • сложность экспериментирования, развития
  • 38. А на самом деле…
  • 39. Стартовая подсистема
  • 40. События Модуль Модуль Таблица обработчиков Очередь событий Пул потоков Ядро
  • 41. Ядро
    • Direct call
    • Socket
    • Named pipe
    М М М М Ядро Ядро
  • 42.
    • http://dev.perlgolf.ru
  • 43.  
  • 44. Важные модули perlgolf.ru Ядро AAA DUF Time Golf Персональная страница Лог Starter Хранилище Config
  • 45. Второстепенные модули perlgolf.ru Ядро Оценки Статистика Оценки Хистори Справка RSS Уведомления Чат Заставка
  • 46. Система нечётких оценок: цели
    • Проранжировать объекты оценки в соответствии с некоторой характеристикой
  • 47. Система нечётких оценок: цели
    • Проранжировать объекты оценки в соответствии с некоторой характеристикой
    • Как можно быстрее получить некоторый диапазон
  • 48. Чёткие оценки
    • Преимущества
    • Недостатки
    • Детерминированность
    • Лёгкость хранения
    • Единообразие
    Сервер
  • 49. Нечёткие оценки … сервер
  • 50. Нечёткие оценки Wi Wi Wi Объекты оценки Субъект оценки
  • 51. Формирование оценки
    • n групп, m пользователей
    Формула подсчета оценки выставленной группой w – вес , выставленный субъектом группе - Оценка пользователя группой - Оценка пользователя группой
  • 52. Формирование оценки Оценка для одного пользователя:
  • 53. Функция влияния n – число пользовтелей
  • 54. Как считать? Данные об оценках веса сервер клиент Модуль подсчета и кэширования оценок
  • 55.
    • Как сохранить большое количество данных на клиенте?
  • 56.
    • Как сохранить большое количество данных на клиенте?
    • Как их туда передать?
  • 57. Хранение данных
  • 58. Передача данных HTTP TCP соединение сервер клиент
  • 59. Сравнение производительности
  • 60. Производительность .NET
  • 61. Благодарности
  • 62.
    • Спасибо за внимание!

×