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

Вебклуб Perlgolf.ru

866 views
817 views

Published on

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
866
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Вебклуб Perlgolf.ru

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

×