19
Rozpraszanie offline aplikacji zcentralizowanej online

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

  • Upload
    proidea

  • View
    229

  • Download
    1

Embed Size (px)

Citation preview

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 Leader / CTO● Doktorant

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 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

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

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 aplikację webową!● PHP (ZF2, Doctrine, DoctrineExtensions),

MySQL, JavaScript (jQuery), Twitter Bootstrap

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

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

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

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?

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!

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

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?

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

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

Kontakt

● Twitter: lukasz_luczak● LinkedIn: lukaszluczak● About.me: lukasz.piotr.luczak● Web: lukaszluczak.pl● Mail: [email protected]

Pytania

Dziękuję