SlideShare a Scribd company logo
1 of 21
Download to read offline
ZF	
  Conf	
  
                                	
  




 Проектирование	
  архитектуры,	
  внедрение	
  и	
  
организация	
  процесса	
  разработки	
  на	
  примере	
  
     собственных	
  проектов	
  на	
  основе	
  ZF	
  



                                                                 	
  
                                           	
  Великанов	
  Антон	
  	
  
                                                                 	
  
                                   	
  
2	
  
3	
  
Многоуровневая	
  архитектура	
  
  Одним из основных понятий, используемых при разработке
  распределенных приложений, является уровень (tier).




 WEB-Браузер:               WEB-Сервер:
Уровень клиента        Средства представления и           Сервер баз данных
                            бизнес-логики


                       Трехуровневая	
  архитектура	
  




                                                                        4	
  
Сервисно-­‐ориентированная	
  архитектура	
  	
  

                                                                           Пользователь


Доступ к сервисам может осуществляться при помощи любого устройства, имеющего доступ в интернет




                         К примеру интеграция с CRM                                       К примеру использование API Google
                                 системами                                                    Карт в качестве фронт-энда




 Platform as a Service
     (Платформа                                                       Mashups
 в качестве сервиса)


                                                      К примеру программное обеспечение
                                                        оптимизации маршрутов, которое
                                                           использует гео-данные для
                                                          нахождения кратчайшего пути



                                   Software as a Service
                                (Программное обеспечение
                                    в качестве сервиса)




                                                          К примеру данные о
                                                          пользователях или
                                                        географические данные



                                    Data as a Service                                                                    5	
  
                               (Данные в качестве сервиса)
Архитектурный	
  шаблон,	
  используемый	
  в	
  данном	
  проекте	
  
                                                              	
  

                                                                            Google maps API

WEB-Браузер: уровень клиента


                             Модель:
                         Объекты Javascript


                                                                              Geocoding service


 Код контроллера:
   onClick(){ ... }
                                                               WEB-Сервер:
 onMouseMove{ … }                                          Уровень бизнес логики



                                                                                          Модель
              Представление

                                              WEB-служба


                                                                                                   Сервер Баз Данных
                                                                     Контроллер




                                              Представление




                                                                                                               6	
  
Диаграмма	
  последовательностей	
  
  	
  




Основной пакет::Пользователь
           USER                                 Controller                              View        Model



                          RequestPage



                                                             Zend_Controller_Dispatch




                                               View Render




                               Post Data




                                                                 Zend_Filter_Input



                                                                 Zend_Validate                          7	
  
                                                                                     Process Data
Post Data




                          Zend_Filter_Input



                          Zend_Validate

                                               Process Data



                                              ProcessResult




                          ProcessResult




            View Render




                                                              8	
  
Модель	
  базы	
  данных	
  системы	
  




                                          9	
  
Диаграмма	
  классов	
  




                           10	
  
Диаграмма	
  вариантов	
  использования.	
  
	
  
                                                                                                                   редактирование фотографий
                                                                                   «uses»




                                                                                «uses»


                                      Редактирование личной информации                                        Редактирование контактной информации

                                      *




                                                      Отправка сообщений                 «include»

                                              *


                                                                                «include»

                                                         Авторизация

                                                  *                          «include»
                        *

                        *

                                *                                              «include»        Аутентификация
                            *

                                                  Просмотр страниц сайта
                                      *
       Основной пакет::Пользователь
                   *    *
                                                                                «include»




                                                                                «include»

                                                                                    «extends»
                                                      Добавление маршрутов                                  Занесение координат в БД
                                          *



                                                                                                                   «extends»




                                              *
                                                                              «extends»
                                                       Поиск попутчиков                              Получение GPS координат ключевых точек
                                                                                                                                                     11	
  
Подсистема	
  авторизации	
  и	
  аутентификации	
  


Данная	
  система	
  состоит	
  из:	
  
• 	
  WEB	
  интерфейса,	
  обеспечивающего	
  регистрацию	
  
пользователей;	
  
• 	
  Аутентификация	
  пользователей:	
  предоставления	
  
пользователям	
  уникального	
  ключа	
  и	
  хранение	
  его	
  как	
  в	
  
браузере	
  пользователя,	
  так	
  и	
  на	
  сервере;	
  
• 	
  Авторизация	
  пользователей:	
  предоставление	
  
идентифицированным	
  пользователям	
  прав	
  на	
  выполнение	
  
действий	
  на	
  сайте.	
  




                                                                                12	
  
Пользователь


                                             Является ли
                         нет             зарегистрированным          да
                                           пользователем?



                  Регистрация                                        Авторизация




                                Идентифицированный пользователь




Личная страница    Маршруты           Личные сообщения        Сообщества (попутчики)    Фотографии
 пользователя     пользователя          пользователя              пользователя         пользователя

                                                                                                13	
  
ACL	
  

                      Ресурсы	
                                             Роли	
  




Zend_Acl_Role_Interface	
  	
                      Zend_Acl_Resource_Interface	
  	
  


getResourceId()	
                                  getRoleId()	
  	
  


Личная	
  страница	
  пользователя	
               Владелец,	
  «owner»	
  Попутчик,	
  «friend»	
  	
  
Маршруты	
  пользователя	
                         Гость,	
  зарегистрированный	
  на	
  сайте,	
  
Личные	
  сообщения	
  пользователя	
              «registered»	
  	
  
Сообщества	
  (попутчики)	
  пользователя	
        Гость,	
  незарегистрированный	
  на	
  сайте,	
  
Фотографии	
  пользователя	
                       «unregistered»	
  -­‐	
  
	
  




                                                                                                       14	
  
Подсистема	
  построения	
  маршрутов	
  
Для	
  обозначения	
  маршрутов	
  на	
  карте	
  существуют	
  три	
  способа:	
  
• 	
  Добавление	
  вручную	
  траектории	
  (всех	
  точек)	
  маршрута	
  
• 	
  Полностью	
  автоматическое	
  построение	
  маршрута	
  по	
  данным	
  геокодирования	
  
• 	
  Автоматическое	
  построение	
  маршрута	
  на	
  карте	
  с	
  возможностью	
  дальнейшего	
  
корректирования	
  
	
  




                                                                                                        15	
  
подсистема	
  геопоиска	
  в	
  Базе	
  Данных	
  MySQL	
  
нанесение	
  точек	
      Передача,	
  введенных	
                          Выполнение	
  поиска	
           Отправка	
  
                         пользователем	
  данных	
       Занесение	
           подходящих	
                 результатов	
  
  маршрутов	
  
                            для	
  обработки	
  на	
      данных	
  в	
      объектов	
  в	
  рамках	
         назад	
  
пользователя	
  на	
  
                                    сервере	
             БД	
  сайта	
     параметров	
  поиска	
         пользователю	
  
     карту	
  




                                                                                                                   16	
  
Сравнение	
  маршрутов	
  
                                                E



      А



C                                           F

                                            B

                                            D




          Схема перемещений пользователей



                                                    17	
  
Сравнение	
  скорости	
  выполнения	
  
                         геопоиска	
  	
  
3.5	
  



   3	
  


                                      SQL	
  запрос	
  без	
  ограничения	
  
2.5	
                                 радиуса	
  
                                      Хранимая	
  процедура	
  -­‐	
  
   2	
  
                                      большой	
  радиус	
  
                                      Хранимая	
  процедура	
  -­‐	
  малый	
  
1.5	
  
                                      радиус	
  
                                      Sphinx	
  (независимо	
  от	
  
   1	
  
                                      радиуса)	
  

0.5	
  



   0	
  




                                                                         18	
  
Оптимизация	
  системы	
  
   Одним	
  из	
  эффективных	
  способов	
  является	
  реализация	
  кэширования	
  статических	
  ресурсов.	
  




Диаграмма	
  
времени	
  загрузки	
  
WEB	
  интерфейса	
  
без	
  кэширования	
  




Диаграмма	
  
времени	
  загрузки	
  
с	
  кэшированием	
  
подключаемых	
  
ресурсов	
  

                                                                                                                     19	
  
Возможность	
  оптимизации	
  и	
  миграция	
  проекта	
  на	
  Zend	
  
                     Framework	
  2.0	
  




    Иерархия	
  ZF	
  1.x	
               Иерархия	
  ZF	
  2.0	
          20	
  
21	
  

More Related Content

Viewers also liked

Successful Music Video Research
Successful Music Video ResearchSuccessful Music Video Research
Successful Music Video ResearchKatherine Brittain
 
德國人真幽默!N
德國人真幽默!N德國人真幽默!N
德國人真幽默!Nguestd36489
 
Homophones Lesson
Homophones LessonHomophones Lesson
Homophones Lessonjgd7971
 
השגת רציפות טריטוריאלית במלחמת העצמאות
השגת רציפות טריטוריאלית במלחמת העצמאותהשגת רציפות טריטוריאלית במלחמת העצמאות
השגת רציפות טריטוריאלית במלחמת העצמאותhaimkarel
 
TEMA 5A Possessive Adjectives
TEMA 5A Possessive AdjectivesTEMA 5A Possessive Adjectives
TEMA 5A Possessive AdjectivesSenoraAmandaWhite
 
Homophones Lesson
Homophones LessonHomophones Lesson
Homophones Lessonjgd7971
 
Questions
QuestionsQuestions
Questionslsemi
 
Clase 2 preparación y administracion de medicamentos y sueros
Clase 2 preparación y administracion de medicamentos y suerosClase 2 preparación y administracion de medicamentos y sueros
Clase 2 preparación y administracion de medicamentos y suerosMANUEL RIVERA
 
Acordo hesperia illa da toxa
Acordo hesperia illa da toxaAcordo hesperia illa da toxa
Acordo hesperia illa da toxaoscargaliza
 
M&A Integration Check Lists and Benchmarks From Our Most Successful
M&A Integration Check Lists and Benchmarks From Our Most SuccessfulM&A Integration Check Lists and Benchmarks From Our Most Successful
M&A Integration Check Lists and Benchmarks From Our Most Successfulperegoff
 
C:\Documents And Settings\Joanne\My Documents\A Level Subjects\Media\Joanne H...
C:\Documents And Settings\Joanne\My Documents\A Level Subjects\Media\Joanne H...C:\Documents And Settings\Joanne\My Documents\A Level Subjects\Media\Joanne H...
C:\Documents And Settings\Joanne\My Documents\A Level Subjects\Media\Joanne H...guest99f048
 
C:\Documents And Settings\Freddy Kruger\Pulpit\Londyn Rada
C:\Documents And Settings\Freddy Kruger\Pulpit\Londyn RadaC:\Documents And Settings\Freddy Kruger\Pulpit\Londyn Rada
C:\Documents And Settings\Freddy Kruger\Pulpit\Londyn RadaEwa Kurzawska
 
Demanda tutela carrefour
Demanda tutela carrefourDemanda tutela carrefour
Demanda tutela carrefouroscargaliza
 
Acta asamblea congresual arousa
Acta asamblea congresual arousaActa asamblea congresual arousa
Acta asamblea congresual arousaoscargaliza
 
Hyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van WouterHyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van Wouterguest2f17d3
 
Ubay Syahru M U Iia Pe
Ubay Syahru M U Iia PeUbay Syahru M U Iia Pe
Ubay Syahru M U Iia Pejuhro
 
Hyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van WouterHyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van Wouterguest2f17d3
 

Viewers also liked (19)

Successful Music Video Research
Successful Music Video ResearchSuccessful Music Video Research
Successful Music Video Research
 
德國人真幽默!N
德國人真幽默!N德國人真幽默!N
德國人真幽默!N
 
Homophones Lesson
Homophones LessonHomophones Lesson
Homophones Lesson
 
השגת רציפות טריטוריאלית במלחמת העצמאות
השגת רציפות טריטוריאלית במלחמת העצמאותהשגת רציפות טריטוריאלית במלחמת העצמאות
השגת רציפות טריטוריאלית במלחמת העצמאות
 
TEMA 5A Possessive Adjectives
TEMA 5A Possessive AdjectivesTEMA 5A Possessive Adjectives
TEMA 5A Possessive Adjectives
 
Homophones Lesson
Homophones LessonHomophones Lesson
Homophones Lesson
 
Questions
QuestionsQuestions
Questions
 
Clase 2 preparación y administracion de medicamentos y sueros
Clase 2 preparación y administracion de medicamentos y suerosClase 2 preparación y administracion de medicamentos y sueros
Clase 2 preparación y administracion de medicamentos y sueros
 
Convegno Ordine dei dottori commercialisti di Catania - Personal Branding
Convegno Ordine dei dottori commercialisti di Catania - Personal BrandingConvegno Ordine dei dottori commercialisti di Catania - Personal Branding
Convegno Ordine dei dottori commercialisti di Catania - Personal Branding
 
Acordo hesperia illa da toxa
Acordo hesperia illa da toxaAcordo hesperia illa da toxa
Acordo hesperia illa da toxa
 
M&A Integration Check Lists and Benchmarks From Our Most Successful
M&A Integration Check Lists and Benchmarks From Our Most SuccessfulM&A Integration Check Lists and Benchmarks From Our Most Successful
M&A Integration Check Lists and Benchmarks From Our Most Successful
 
C:\Documents And Settings\Joanne\My Documents\A Level Subjects\Media\Joanne H...
C:\Documents And Settings\Joanne\My Documents\A Level Subjects\Media\Joanne H...C:\Documents And Settings\Joanne\My Documents\A Level Subjects\Media\Joanne H...
C:\Documents And Settings\Joanne\My Documents\A Level Subjects\Media\Joanne H...
 
C:\Documents And Settings\Freddy Kruger\Pulpit\Londyn Rada
C:\Documents And Settings\Freddy Kruger\Pulpit\Londyn RadaC:\Documents And Settings\Freddy Kruger\Pulpit\Londyn Rada
C:\Documents And Settings\Freddy Kruger\Pulpit\Londyn Rada
 
Mini Case2
Mini Case2Mini Case2
Mini Case2
 
Demanda tutela carrefour
Demanda tutela carrefourDemanda tutela carrefour
Demanda tutela carrefour
 
Acta asamblea congresual arousa
Acta asamblea congresual arousaActa asamblea congresual arousa
Acta asamblea congresual arousa
 
Hyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van WouterHyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van Wouter
 
Ubay Syahru M U Iia Pe
Ubay Syahru M U Iia PeUbay Syahru M U Iia Pe
Ubay Syahru M U Iia Pe
 
Hyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van WouterHyves Cbw Mitex Harry Van Wouter
Hyves Cbw Mitex Harry Van Wouter
 

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

System Сenter - как комплекс управления жизненным циклом облачной информацион...
System Сenter - как комплекс управления жизненным циклом облачной информацион...System Сenter - как комплекс управления жизненным циклом облачной информацион...
System Сenter - как комплекс управления жизненным циклом облачной информацион...Учебный центр Микротест
 
Оптимизация работы бизнес-приложений в ЦОД, Radware
Оптимизация работы бизнес-приложений в ЦОД, RadwareОптимизация работы бизнес-приложений в ЦОД, Radware
Оптимизация работы бизнес-приложений в ЦОД, RadwareДмитрий Мацкевич
 
Manage clouds - easy with Citrix CloudPortal
Manage clouds - easy with Citrix CloudPortal Manage clouds - easy with Citrix CloudPortal
Manage clouds - easy with Citrix CloudPortal Sergey Khalyapin
 
Технические особенности Docsvision 5
Технические особенности Docsvision 5Технические особенности Docsvision 5
Технические особенности Docsvision 5Docsvision
 
Clouds NN 2012 Марк Ривкин "Практика облачных вычислений на базе продуктов Or...
Clouds NN 2012 Марк Ривкин "Практика облачных вычислений на базе продуктов Or...Clouds NN 2012 Марк Ривкин "Практика облачных вычислений на базе продуктов Or...
Clouds NN 2012 Марк Ривкин "Практика облачных вычислений на базе продуктов Or...Clouds NN
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Anatoly Kireev
 
Архитектура CompanyMedia next
Архитектура CompanyMedia nextАрхитектура CompanyMedia next
Архитектура CompanyMedia nextИнтерТраст
 
Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...adam93
 
Irkutsk 181012 cloud
Irkutsk 181012 cloudIrkutsk 181012 cloud
Irkutsk 181012 cloudMicrosoft
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
Oracle ADF для Java EE разработчика
Oracle ADF для Java EE разработчикаOracle ADF для Java EE разработчика
Oracle ADF для Java EE разработчикаDmitry Nefedkin
 
решения компании Iba в области автоматизации докуметооборота на базе ibm file...
решения компании Iba в области автоматизации докуметооборота на базе ibm file...решения компании Iba в области автоматизации докуметооборота на базе ibm file...
решения компании Iba в области автоматизации докуметооборота на базе ibm file...Expolink
 
Prophix 11 overview by ksema
Prophix 11 overview by ksemaProphix 11 overview by ksema
Prophix 11 overview by ksemachim1975
 
Как заработать в облаке? FAQ для реселлеров и интеграторов
Как заработать в облаке? FAQ для реселлеров и интеграторовКак заработать в облаке? FAQ для реселлеров и интеграторов
Как заработать в облаке? FAQ для реселлеров и интеграторовMichael Kozloff
 
Governance of content
Governance of contentGovernance of content
Governance of contentrglab
 
Обзор решений виртуализации от Microsoft | Анатолий Бакал
Обзор решений виртуализации от Microsoft | Анатолий БакалОбзор решений виртуализации от Microsoft | Анатолий Бакал
Обзор решений виртуализации от Microsoft | Анатолий БакалAnatoliy Bakal
 
Константин Жуков Инновации SAP в области технологий NetWeaver, мобильная плат...
Константин Жуков Инновации SAP в области технологий NetWeaver, мобильная плат...Константин Жуков Инновации SAP в области технологий NetWeaver, мобильная плат...
Константин Жуков Инновации SAP в области технологий NetWeaver, мобильная плат...Транслируем.бел
 
"Пряники" - система мотивации и Microsoft Azure
"Пряники" - система мотивации и Microsoft  Azure"Пряники" - система мотивации и Microsoft  Azure
"Пряники" - система мотивации и Microsoft AzureAlexey Lyubko
 

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

System Сenter - как комплекс управления жизненным циклом облачной информацион...
System Сenter - как комплекс управления жизненным циклом облачной информацион...System Сenter - как комплекс управления жизненным циклом облачной информацион...
System Сenter - как комплекс управления жизненным циклом облачной информацион...
 
Оптимизация работы бизнес-приложений в ЦОД, Radware
Оптимизация работы бизнес-приложений в ЦОД, RadwareОптимизация работы бизнес-приложений в ЦОД, Radware
Оптимизация работы бизнес-приложений в ЦОД, Radware
 
Manage clouds - easy with Citrix CloudPortal
Manage clouds - easy with Citrix CloudPortal Manage clouds - easy with Citrix CloudPortal
Manage clouds - easy with Citrix CloudPortal
 
Технические особенности Docsvision 5
Технические особенности Docsvision 5Технические особенности Docsvision 5
Технические особенности Docsvision 5
 
лекц2
лекц2лекц2
лекц2
 
Clouds NN 2012 Марк Ривкин "Практика облачных вычислений на базе продуктов Or...
Clouds NN 2012 Марк Ривкин "Практика облачных вычислений на базе продуктов Or...Clouds NN 2012 Марк Ривкин "Практика облачных вычислений на базе продуктов Or...
Clouds NN 2012 Марк Ривкин "Практика облачных вычислений на базе продуктов Or...
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
 
Архитектура CompanyMedia next
Архитектура CompanyMedia nextАрхитектура CompanyMedia next
Архитектура CompanyMedia next
 
Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...
 
Irkutsk 181012 cloud
Irkutsk 181012 cloudIrkutsk 181012 cloud
Irkutsk 181012 cloud
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
Oracle ADF для Java EE разработчика
Oracle ADF для Java EE разработчикаOracle ADF для Java EE разработчика
Oracle ADF для Java EE разработчика
 
решения компании Iba в области автоматизации докуметооборота на базе ibm file...
решения компании Iba в области автоматизации докуметооборота на базе ibm file...решения компании Iba в области автоматизации докуметооборота на базе ibm file...
решения компании Iba в области автоматизации докуметооборота на базе ibm file...
 
Prophix 11 overview by ksema
Prophix 11 overview by ksemaProphix 11 overview by ksema
Prophix 11 overview by ksema
 
Как заработать в облаке? FAQ для реселлеров и интеграторов
Как заработать в облаке? FAQ для реселлеров и интеграторовКак заработать в облаке? FAQ для реселлеров и интеграторов
Как заработать в облаке? FAQ для реселлеров и интеграторов
 
Governance of content
Governance of contentGovernance of content
Governance of content
 
Обзор решений виртуализации от Microsoft | Анатолий Бакал
Обзор решений виртуализации от Microsoft | Анатолий БакалОбзор решений виртуализации от Microsoft | Анатолий Бакал
Обзор решений виртуализации от Microsoft | Анатолий Бакал
 
Константин Жуков Инновации SAP в области технологий NetWeaver, мобильная плат...
Константин Жуков Инновации SAP в области технологий NetWeaver, мобильная плат...Константин Жуков Инновации SAP в области технологий NetWeaver, мобильная плат...
Константин Жуков Инновации SAP в области технологий NetWeaver, мобильная плат...
 
"Пряники" - система мотивации и Microsoft Azure
"Пряники" - система мотивации и Microsoft  Azure"Пряники" - система мотивации и Microsoft  Azure
"Пряники" - система мотивации и Microsoft Azure
 
Лекция Android
Лекция AndroidЛекция Android
Лекция Android
 

More from ZFConf Conference

ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)
ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)
ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)ZFConf Conference
 
ZFConf 2012: Dependency Management в PHP и Zend Framework 2 (Кирилл Чебунин)
ZFConf 2012: Dependency Management в PHP и Zend Framework 2 (Кирилл Чебунин)ZFConf 2012: Dependency Management в PHP и Zend Framework 2 (Кирилл Чебунин)
ZFConf 2012: Dependency Management в PHP и Zend Framework 2 (Кирилл Чебунин)ZFConf Conference
 
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)ZFConf Conference
 
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...ZFConf Conference
 
ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги)
ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги)ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги)
ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги)ZFConf Conference
 
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf Conference
 
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...ZFConf Conference
 
ZFConf 2011: Что такое Sphinx, зачем он вообще нужен и как его использовать с...
ZFConf 2011: Что такое Sphinx, зачем он вообще нужен и как его использовать с...ZFConf 2011: Что такое Sphinx, зачем он вообще нужен и как его использовать с...
ZFConf 2011: Что такое Sphinx, зачем он вообще нужен и как его использовать с...ZFConf Conference
 
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...ZFConf Conference
 
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...ZFConf Conference
 
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...ZFConf Conference
 
ZFConf 2011: Behavior Driven Development в PHP и Zend Framework (Константин К...
ZFConf 2011: Behavior Driven Development в PHP и Zend Framework (Константин К...ZFConf 2011: Behavior Driven Development в PHP и Zend Framework (Константин К...
ZFConf 2011: Behavior Driven Development в PHP и Zend Framework (Константин К...ZFConf Conference
 
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf Conference
 
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)ZFConf Conference
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf Conference
 
ZFConf 2010: History of e-Shtab.ru
ZFConf 2010: History of e-Shtab.ruZFConf 2010: History of e-Shtab.ru
ZFConf 2010: History of e-Shtab.ruZFConf Conference
 
ZFConf 2010: Fotostrana.ru: Prototyping Project with Zend Framework
ZFConf 2010: Fotostrana.ru: Prototyping Project with Zend FrameworkZFConf 2010: Fotostrana.ru: Prototyping Project with Zend Framework
ZFConf 2010: Fotostrana.ru: Prototyping Project with Zend FrameworkZFConf Conference
 
ZFConf 2010: Performance of Zend Framework Applications
ZFConf 2010: Performance of Zend Framework ApplicationsZFConf 2010: Performance of Zend Framework Applications
ZFConf 2010: Performance of Zend Framework ApplicationsZFConf Conference
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...ZFConf Conference
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf Conference
 

More from ZFConf Conference (20)

ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)
ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)
ZFConf 2012: Кеш без промахов средствами Zend Framework 2 (Евгений Шпилевский)
 
ZFConf 2012: Dependency Management в PHP и Zend Framework 2 (Кирилл Чебунин)
ZFConf 2012: Dependency Management в PHP и Zend Framework 2 (Кирилл Чебунин)ZFConf 2012: Dependency Management в PHP и Zend Framework 2 (Кирилл Чебунин)
ZFConf 2012: Dependency Management в PHP и Zend Framework 2 (Кирилл Чебунин)
 
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)
ZFConf 2012: Capistrano для деплоймента PHP-приложений (Роман Лапин)
 
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...
ZFConf 2012: Реализация доступа к СУБД IBM DB2 посредством встраиваемого SQL ...
 
ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги)
ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги)ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги)
ZFConf 2012: Code Generation и Scaffolding в Zend Framework 2 (Виктор Фараздаги)
 
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
ZFConf 2012: Zend Framework 2, a quick start (Enrico Zimuel)
 
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
 
ZFConf 2011: Что такое Sphinx, зачем он вообще нужен и как его использовать с...
ZFConf 2011: Что такое Sphinx, зачем он вообще нужен и как его использовать с...ZFConf 2011: Что такое Sphinx, зачем он вообще нужен и как его использовать с...
ZFConf 2011: Что такое Sphinx, зачем он вообще нужен и как его использовать с...
 
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
ZFConf 2011: Как может помочь среда разработки при написании приложения на Ze...
 
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...
ZFConf 2011: Разделение труда: Организация многозадачной, распределенной сист...
 
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...
ZFConf 2011: Гибкая архитектура Zend Framework приложений с использованием De...
 
ZFConf 2011: Behavior Driven Development в PHP и Zend Framework (Константин К...
ZFConf 2011: Behavior Driven Development в PHP и Zend Framework (Константин К...ZFConf 2011: Behavior Driven Development в PHP и Zend Framework (Константин К...
ZFConf 2011: Behavior Driven Development в PHP и Zend Framework (Константин К...
 
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
 
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)
ZFConf 2011: Толстая модель: История разработки собственного ORM (Михаил Шамин)
 
ZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and DoctrineZFConf 2010: Zend Framework and Doctrine
ZFConf 2010: Zend Framework and Doctrine
 
ZFConf 2010: History of e-Shtab.ru
ZFConf 2010: History of e-Shtab.ruZFConf 2010: History of e-Shtab.ru
ZFConf 2010: History of e-Shtab.ru
 
ZFConf 2010: Fotostrana.ru: Prototyping Project with Zend Framework
ZFConf 2010: Fotostrana.ru: Prototyping Project with Zend FrameworkZFConf 2010: Fotostrana.ru: Prototyping Project with Zend Framework
ZFConf 2010: Fotostrana.ru: Prototyping Project with Zend Framework
 
ZFConf 2010: Performance of Zend Framework Applications
ZFConf 2010: Performance of Zend Framework ApplicationsZFConf 2010: Performance of Zend Framework Applications
ZFConf 2010: Performance of Zend Framework Applications
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 2, Dependency I...
 
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
ZFConf 2010: Zend Framework & MVC, Model Implementation (Part 1)
 

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

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