1. Framework w architekturze SOA,
czyli nasz pomysł na Enterprise PHP
Olgierd Mrozik
Bartosz Sobolewski
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
2. PHP – język wolnych programistów
Dlaczego PHP stał
się ulubionym
językiem
programistów
webowych?
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
3. PHP – język wolnych programistów
Dlaczego jeszcze PHP
stał się ulubionym
językiem programistów
webowych?
pretty hot programmer
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
4. Kiedy kończy się zabawa…
Czy w PHP można napisać profesjonalną aplikację biznesową?
ang.: „PHP will probably be easier to develop initially. But you can
guarantee that, if you've got anything even resembling a deadline,
your code will become horribly unreadable given enough time. Since
you talk”
<?php Lorem ipsum dolor sit
pol.: amet, consectetur adipiscing
elit. Pellentesque porttitor,
= tortor id scelerisque gravida,
wolność programowania + deadline
lorem nibh mollis mi, ac
porttitor nunc turpis imperdiet
leo. ?>
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
5. Kiedy kończy się zabawa…
Czy w PHP można napisać profesjonalną aplikację biznesową?
J2EE, .NET
PHP
good boys
baaaad boy
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
6. Get it under control - Enterprise PHP
Czyli jak wprowadzić PHP pod strzechy największych firm.
Even my Enterprise
could use a PHP
that way
God, I’m happy .NET and that coffee thing stays on Earth
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
7. Twitto - A web framework in a tweet
1: require __DIR__.'/c.php';
2: if (!is_callable($c = @$_GET['c'] ?: function() { echo 'Woah!'; }))
throw new Exception('Error');
3:
4: $c();
Źródło: http://twitto.org
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
8. Framework SOA – Motywacja
• Przyśpieszenie wytwarzania aplikacji
• Łatwa integracja z innymi systemami
– Synchronizacja
– Import, Export
– WebServices
• Skalowalność
– Database Sharding
– Łatwe wdrożenie w chmurze
– Obsługa CDN
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
9. Framework SOA – Motywacja cd.
• Obsługa powtarzalnych funkcjonalności „w standardzie”
Walidacja danych
–
Obsługa cache
–
Autoryzacja użytkowników (LDAP, OpenID)
–
Zarządzanie użytkownikami
–
Konfiguracja ustawień aplikacji i indywidualnych użytkownika
–
Instalator aplikacji, wykonywanie kopii zapasowych
–
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
10. Framework SOA - Inspiracje
• SOA
– Service Oriented Architecture
• CBD
– Component Based Development
• Multi-tier
– Architektura wielowarstwowa
• MVC
– Model-View-Controler
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
12. Architektura frameworka cd.
1. Usługi
• Odpowiednik funkcji i metod
• Świadczy funkcjonalność innym usługom
• Bezpośredni dostęp do wszystkich usług
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
13. Architektura frameworka cd.
2. Komponenty
• Odpowiednik klas i przestrzeni nazw
• Zbiór usług realizujących powiązaną funkcjonalność
• Mogą być dowolnie przemieszczane w strukturze FW i
aplikacji
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
14. Architektura frameworka cd.
3. Warstwy
• Danych, Biznesowa, Prezentacji
• Rozlokowane są na nich komponenty
• Ściśle przestrzegany kierunek wywoływania usług
– od warstwy prezentacji do danych
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
15. Architektura frameworka cd.
4. Framework
• Najbardziej ogólne komponenty
• Nie związany z żadną konkretną aplikacją
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
16. Architektura frameworka cd.
5. Aplikacja
• Realizuje wyspecyfikowaną funkcjonalność
• Definiuje interfejs i logikę
• Jedna instancja frameworka może obsługiwać wiele
aplikacji na serwerze
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
17. Architektura frameworka cd.
6. Moduł
• Realizuje najczęściej powtarzane funkcjonalności
• Dołączany do aplikacji
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
18. Architektura frameworka cd.
7. Grupa
aplikacji
• Kilka aplikacji działających jak jedna
• Zbudowana z aplikacji i modułów
• Aplikacje można dodawać i usuwać „w locie”
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
19. Innowacyjne rozwiązania
• Wrappery danych
– przykład już za chwilę …
• Memcached z obsługą tagów
– brak w ZendFramework i Ruby on Rails
• Generowanie interfejsu ExtJs z PHP
– bez przepisania ExtJs na obiekty PHP jak w ExtPHP lub PHP-Ext
• Dokumentacja dostępna „od ręki”
– bez potrzeby generowania plików
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
20. Wrappery danych
• Pozwalają na pobieranie danych z aplikacji w wielu
formatach
• Nie ma potrzeby definiowania dodatkowych usług
• Przyjmują parametry w kilku formatach i na kilka
sposobów
Copyrights: SmartMedia sp. z o.o., Chodkiewicza 22, 80-506 Gdańsk
1. Dlaczego PHP stał się ulubionym językiem programistów webowych? 2. Czemu chętnie używaliśmy PHP do realizacji dynamicznych stron www, sklepów internetowych, prostych aplikacji? 3. Znamy swietnie PHP, ale czy da się w nim napisac aplikacje dla biznesu?<number>
<number>
1. Dlaczego PHP stał się ulubionym językiem programistów webowych? 2. Czemu chętnie używaliśmy PHP do realizacji dynamicznych stron www, sklepów internetowych, prostych aplikacji? 3. Znamy swietnie PHP, ale czy da się w nim napisac aplikacje dla biznesu?<number>
<number>
Enterprise PHP, jak?metodologie prowadzenia projektuTestyDokumentacjaStandardy kodowaniaOdpowiedni framework6
Fala microbloging, tweeterTweet to 140 znaków wiadomościKonkurs na aplikację webową w 140 znakach<number>