ZF	  Conf	                                  	   Проектирование	  архитектуры,	  внедрение	  и	  организация	  процесса	  р...
2	  
3	  
Многоуровневая	  архитектура	    Одним из основных понятий, используемых при разработке  распределенных приложений, являет...
Сервисно-­‐ориентированная	  архитектура	  	                                                                             П...
Архитектурный	  шаблон,	  используемый	  в	  данном	  проекте	                                                            ...
Диаграмма	  последовательностей	    	  Основной пакет::Пользователь           USER                                 Control...
Post Data                          Zend_Filter_Input                          Zend_Validate                               ...
Модель	  базы	  данных	  системы	                                            9	  
Диаграмма	  классов	                             10	  
Диаграмма	  вариантов	  использования.	  	                                                                                ...
Подсистема	  авторизации	  и	  аутентификации	  Данная	  система	  состоит	  из:	  • 	  WEB	  интерфейса,	  обеспечивающег...
Пользователь                                             Является ли                         нет             зарегистриров...
ACL	                        Ресурсы	                                             Роли	  Zend_Acl_Role_Interface	  	       ...
Подсистема	  построения	  маршрутов	  Для	  обозначения	  маршрутов	  на	  карте	  существуют	  три	  способа:	  • 	  Доба...
подсистема	  геопоиска	  в	  Базе	  Данных	  MySQL	  нанесение	  точек	      Передача,	  введенных	                       ...
Сравнение	  маршрутов	                                                  E      АC                                         ...
Сравнение	  скорости	  выполнения	                           геопоиска	  	  3.5	     3	                                   ...
Оптимизация	  системы	     Одним	  из	  эффективных	  способов	  является	  реализация	  кэширования	  статических	  ресур...
Возможность	  оптимизации	  и	  миграция	  проекта	  на	  Zend	                       Framework	  2.0	      Иерархия	  ZF	...
21	  
Upcoming SlideShare
Loading in …5
×

ZFConf 2012: Проектирование архитектуры, внедрение и организация процесса разработки на примере собственного проекта на основе ZF (Антон Велика

2,715 views
2,445 views

Published on

http://www.zfconf.ru/2012/talks/architecture-design-implementation-and-organization-of-the-development-process-on-the-example-of-own-zend-framework-project/

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

  • Be the first to like this

No Downloads
Views
Total views
2,715
On SlideShare
0
From Embeds
0
Number of Embeds
1,243
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

ZFConf 2012: Проектирование архитектуры, внедрение и организация процесса разработки на примере собственного проекта на основе ZF (Антон Велика

  1. 1. ZF  Conf     Проектирование  архитектуры,  внедрение  и  организация  процесса  разработки  на  примере   собственных  проектов  на  основе  ZF      Великанов  Антон        
  2. 2. 2  
  3. 3. 3  
  4. 4. Многоуровневая  архитектура   Одним из основных понятий, используемых при разработке распределенных приложений, является уровень (tier). WEB-Браузер: WEB-Сервер:Уровень клиента Средства представления и Сервер баз данных бизнес-логики Трехуровневая  архитектура   4  
  5. 5. Сервисно-­‐ориентированная  архитектура     ПользовательДоступ к сервисам может осуществляться при помощи любого устройства, имеющего доступ в интернет К примеру интеграция с CRM К примеру использование API Google системами Карт в качестве фронт-энда Platform as a Service (Платформа Mashups в качестве сервиса) К примеру программное обеспечение оптимизации маршрутов, которое использует гео-данные для нахождения кратчайшего пути Software as a Service (Программное обеспечение в качестве сервиса) К примеру данные о пользователях или географические данные Data as a Service 5   (Данные в качестве сервиса)
  6. 6. Архитектурный  шаблон,  используемый  в  данном  проекте     Google maps APIWEB-Браузер: уровень клиента Модель: Объекты Javascript Geocoding service Код контроллера: onClick(){ ... } WEB-Сервер: onMouseMove{ … } Уровень бизнес логики Модель Представление WEB-служба Сервер Баз Данных Контроллер Представление 6  
  7. 7. Диаграмма  последовательностей    Основной пакет::Пользователь USER Controller View Model RequestPage Zend_Controller_Dispatch View Render Post Data Zend_Filter_Input Zend_Validate 7   Process Data
  8. 8. Post Data Zend_Filter_Input Zend_Validate Process Data ProcessResult ProcessResult View Render 8  
  9. 9. Модель  базы  данных  системы   9  
  10. 10. Диаграмма  классов   10  
  11. 11. Диаграмма  вариантов  использования.     редактирование фотографий «uses» «uses» Редактирование личной информации Редактирование контактной информации * Отправка сообщений «include» * «include» Авторизация * «include» * * * «include» Аутентификация * Просмотр страниц сайта * Основной пакет::Пользователь * * «include» «include» «extends» Добавление маршрутов Занесение координат в БД * «extends» * «extends» Поиск попутчиков Получение GPS координат ключевых точек 11  
  12. 12. Подсистема  авторизации  и  аутентификации  Данная  система  состоит  из:  •   WEB  интерфейса,  обеспечивающего  регистрацию  пользователей;  •   Аутентификация  пользователей:  предоставления  пользователям  уникального  ключа  и  хранение  его  как  в  браузере  пользователя,  так  и  на  сервере;  •   Авторизация  пользователей:  предоставление  идентифицированным  пользователям  прав  на  выполнение  действий  на  сайте.   12  
  13. 13. Пользователь Является ли нет зарегистрированным да пользователем? Регистрация Авторизация Идентифицированный пользовательЛичная страница Маршруты Личные сообщения Сообщества (попутчики) Фотографии пользователя пользователя пользователя пользователя пользователя 13  
  14. 14. ACL   Ресурсы   Роли  Zend_Acl_Role_Interface     Zend_Acl_Resource_Interface    getResourceId()   getRoleId()    Личная  страница  пользователя   Владелец,  «owner»  Попутчик,  «friend»    Маршруты  пользователя   Гость,  зарегистрированный  на  сайте,  Личные  сообщения  пользователя   «registered»    Сообщества  (попутчики)  пользователя   Гость,  незарегистрированный  на  сайте,  Фотографии  пользователя   «unregistered»  -­‐     14  
  15. 15. Подсистема  построения  маршрутов  Для  обозначения  маршрутов  на  карте  существуют  три  способа:  •   Добавление  вручную  траектории  (всех  точек)  маршрута  •   Полностью  автоматическое  построение  маршрута  по  данным  геокодирования  •   Автоматическое  построение  маршрута  на  карте  с  возможностью  дальнейшего  корректирования     15  
  16. 16. подсистема  геопоиска  в  Базе  Данных  MySQL  нанесение  точек   Передача,  введенных   Выполнение  поиска   Отправка   пользователем  данных   Занесение   подходящих   результатов   маршрутов   для  обработки  на   данных  в   объектов  в  рамках   назад  пользователя  на   сервере   БД  сайта   параметров  поиска   пользователю   карту   16  
  17. 17. Сравнение  маршрутов   E АC F B D Схема перемещений пользователей 17  
  18. 18. Сравнение  скорости  выполнения   геопоиска    3.5   3   SQL  запрос  без  ограничения  2.5   радиуса   Хранимая  процедура  -­‐   2   большой  радиус   Хранимая  процедура  -­‐  малый  1.5   радиус   Sphinx  (независимо  от   1   радиуса)  0.5   0   18  
  19. 19. Оптимизация  системы   Одним  из  эффективных  способов  является  реализация  кэширования  статических  ресурсов.  Диаграмма  времени  загрузки  WEB  интерфейса  без  кэширования  Диаграмма  времени  загрузки  с  кэшированием  подключаемых  ресурсов   19  
  20. 20. Возможность  оптимизации  и  миграция  проекта  на  Zend   Framework  2.0   Иерархия  ZF  1.x   Иерархия  ZF  2.0   20  
  21. 21. 21  

×