Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Rozpraszanie offline aplikacji
zcentralizowanej online
O mnie
● Łukasz Piotr Łuczak
● Ojciec i mąż
● 8/12/18 lat doświadczenia w IT
● Software Engineer / Architect
● Technical L...
Rozpraszanie offline aplikacji zcentralizowanej
online
czyli
Jak zejść z chmury
Klient
● Obsługuje zawody konne w zakresie
przygotowania list startowych, przebiegu
konkursów, przygotowywania list wyniko...
Wersja 1
● Potrzebne rozwiązanie umożliwiające
zapisywanie się na zawody oraz przetwarzanie
tych zapisów
● Potrzebne rozwi...
Wersja 1 cd
● Niech to rozwiązanie komunikuje się z
chronometrem
● W sumie możemy napisać aplikację od nowa
Wersja 1 cd
● Niech to rozwiązanie komunikuje się z
chronometrem
● W sumie możemy napisać aplikację od nowa
● Robimy aplik...
Wersja 2
● „Wygląda świetnie, ale co z przypadkami kiedy nie
będę mieć dostępu do internetu na zawodach”
● „Nie, ta aplika...
Moduł Doctrine
● Bazując na Doctrine Extenstions
● Dodając sporo ręcznych wywołań filtrów w
kodzie oraz uzupełniając widok...
Wersja 2 cd
● „Jest dobrze ale podczas zawodów uzupełniam
dane zawodników, koni i klubów. Chciałabym te
dane mieć synchron...
Wersja 3
● „A czy nie można tego zrobić jakoś inaczej. Nie
zawsze mam dostępne laptopy na zawodach”
● „Aha i jeszcze jak s...
Wersja 3 cd
● „Aha, przy rozpręrzalni potrzebuję wyświetlać
informacje kto będzie jechał a także bieżący
ranking.”
● „W su...
Hardware
● Zainstalowane środowisko
● MySQL robi problemy – zmieniamy na PostgreSQL
● Rozwiązanie udostępnia stronę po sie...
Wersja 4
● „A gdybym chciała sprzedać to klientom”
● „Ok, rozwiązanie na stronie jest dobre ale wiesz
konkurencja ma takie...
Stan obecny
● Gotowa aplikacja webowa z modułami: zapisy,
wyniki, obsługa zawodów
● Moduł obsługa zawodów opracowany jako ...
Stan obecny
● Gotowa aplikacja webowa z modułami: zapisy,
wyniki, obsługa zawodów
● Moduł obsługa zawodów opracowany jako ...
Kontakt
● Twitter: lukasz_luczak
● LinkedIn: lukaszluczak
● About.me: lukasz.piotr.luczak
● Web: lukaszluczak.pl
● Mail: l...
Pytania
Dziękuję
Upcoming SlideShare
Loading in …5
×

4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łukasz Łuczak

350 views

Published on

Łukasz Łuczak

Language: Polish

Klienci lubią zmieniać zdanie, jeśli klient mówi, że dana aplikacja nie będzie równolegle użytkowana przez wielu użytkowników to na pewno będzie. To można przewidzieć ale co w przypadku gdy część z tych użytkowników będzie potrzebowała korzystać z niej offline, synchronizując dane z częścią centralną kiedy powrócą online? A co w przypadku kiedy nagle klient postanawia aplikacje zamówioną do użytku wewnętrznego sprzedawać? Rok developmentu projektu w PHP'ie z wykorzystaniem frameworka Zend Framework 2 oraz biblioteki Doctrine 2 a klient wywraca całkowicie architekturę do góry nogami a do tego neguje słuszność wyboru technologii. Można powiedzieć, że się nie da a można spróbować podjąć wyzwanie.

Chciałbym przedstawić zakres zmian jakie musieliśmy wprowadzić w projekcie, a także przedstawić cały proces modyfikacji aplikacji od rozwiązania gdy jest całkowicie online, przez rozwiązanie wspierające offline, a dalej przez możliwość sprzedaży produktu klientom by wreszcie zrobić z tego rozwiązanie boksowe dystrybuowane na Raspberry Pi.

Wśród poruszonych tematów będą: optymalizacja aplikacji napisanych z wykorzystaniem ZF2, Doctrine 2, audyt logi i synchronizacja danych, live update danych, zabezpieczanie aplikacji PHP'owej, rozdzielanie aplikacji niepodzielnej. przygotowywanie paczki dystrybucyjnej a także przygotowanie całego stosu by działał poprawnie na Raspberry Pi.

Published in: Software
  • Be the first to comment

  • Be the first to like this

4Developers 2015: Rozpraszanie offline aplikacji zcentralizowanej online - Łukasz Łuczak

  1. 1. Rozpraszanie offline aplikacji zcentralizowanej online
  2. 2. O mnie ● Łukasz Piotr Łuczak ● Ojciec i mąż ● 8/12/18 lat doświadczenia w IT ● Software Engineer / Architect ● Technical Leader / CTO ● Doktorant
  3. 3. Rozpraszanie offline aplikacji zcentralizowanej online czyli Jak zejść z chmury
  4. 4. Klient ● Obsługuje zawody konne w zakresie przygotowania list startowych, przebiegu konkursów, przygotowywania list wynikowych oraz komunikacji z organizacjami związkowymi ● Robi to od wielu lat ● Posiada desktopowe rozwiązanie, które spełnia swoją rolę choć nie jest doskonałe
  5. 5. Wersja 1 ● Potrzebne rozwiązanie umożliwiające zapisywanie się na zawody oraz przetwarzanie tych zapisów ● Potrzebne rozwiązanie pozwalające na prezentowanie na żywo wyników konkursu ● Niech to rozwiązanie korzysta z bazy danych zawodników oraz niech zawodnicy sami mogą się dodawać do bazy
  6. 6. Wersja 1 cd ● Niech to rozwiązanie komunikuje się z chronometrem ● W sumie możemy napisać aplikację od nowa
  7. 7. Wersja 1 cd ● Niech to rozwiązanie komunikuje się z chronometrem ● W sumie możemy napisać aplikację od nowa ● Robimy aplikację webową! ● PHP (ZF2, Doctrine, DoctrineExtensions), MySQL, JavaScript (jQuery), Twitter Bootstrap
  8. 8. Wersja 2 ● „Wygląda świetnie, ale co z przypadkami kiedy nie będę mieć dostępu do internetu na zawodach” ● „Nie, ta aplikacja nigdy nie będzie sprzedawana chcę ją mieć tylko dla siebie!” ● Weźmy xamp'a! ● Ale co z synchronizacją danych? ● Dopiszmy moduł do Doctrine
  9. 9. Moduł Doctrine ● Bazując na Doctrine Extenstions ● Dodając sporo ręcznych wywołań filtrów w kodzie oraz uzupełniając widok o logikę ● Opracowujemy rozwiązanie pozwalające na logiczne blokowanie wierszy oraz obsługę ich synchronizacji
  10. 10. Wersja 2 cd ● „Jest dobrze ale podczas zawodów uzupełniam dane zawodników, koni i klubów. Chciałabym te dane mieć synchronizowane z centralą” ● Skorzystajmy z rozwiązania jakie przygotowaliśmy ● Dołóżmy do niego moduł różnicowy i niech operator się martwi
  11. 11. Wersja 3 ● „A czy nie można tego zrobić jakoś inaczej. Nie zawsze mam dostępne laptopy na zawodach” ● „Aha i jeszcze jak są zawody WKKW to operatorzy pracują na kilku stanowiskach nad jednym konkursem” ● Hmm... to może jakiś lokalny serwer dedykowany? A może jakieś rozwiązanie boksowe?
  12. 12. Wersja 3 cd ● „Aha, przy rozpręrzalni potrzebuję wyświetlać informacje kto będzie jechał a także bieżący ranking.” ● „W sumie sędziowie też powinni to widzieć” ● Na rozprężalnie można dać smart tv i niech wyświetla, a dla sędziów albo komputery albo posy albo …. ● Ok. Bierzemy Raspberry Pi!
  13. 13. Hardware ● Zainstalowane środowisko ● MySQL robi problemy – zmieniamy na PostgreSQL ● Rozwiązanie udostępnia stronę po sieci na potrzeby zawodów ● Rozwiązanie potrafi komunikować się z serwerem i synchronizować informacje ● Ale pod rozwiązanie nie można podłączyć monitora, myszki i klawiatury ● Już można
  14. 14. Wersja 4 ● „A gdybym chciała sprzedać to klientom” ● „Ok, rozwiązanie na stronie jest dobre ale wiesz konkurencja ma takie co się instaluje” ● Jak zabezpieczyć PHP'a? ● IonCube? ● Klucze Hasp?
  15. 15. Stan obecny ● Gotowa aplikacja webowa z modułami: zapisy, wyniki, obsługa zawodów ● Moduł obsługa zawodów opracowany jako moduł dostępny w sieci lokalnej i zamknięty w boksie ● Dostępny boks dla monitorów w rozprężalni, sędziów i spikera ● W testach używanie online przez klientów ● W opracowaniu rozwiązanie do użytku offline przez klientów
  16. 16. Stan obecny ● Gotowa aplikacja webowa z modułami: zapisy, wyniki, obsługa zawodów ● Moduł obsługa zawodów opracowany jako moduł dostępny w sieci lokalnej i zamknięty w boksie ● Dostępny boks dla monitorów w rozprężalni, sędziów i spikera ● W testach używanie online przez klientów ● W opracowaniu rozwiązanie do użytku offline przez klientów
  17. 17. Kontakt ● Twitter: lukasz_luczak ● LinkedIn: lukaszluczak ● About.me: lukasz.piotr.luczak ● Web: lukaszluczak.pl ● Mail: lukasz.luczak@onet.pl
  18. 18. Pytania
  19. 19. Dziękuję

×