2. Oprogramowanie rozproszone?
❑ System rozproszony to „kolekcja niezależnych
komputerów, które z punktu widzenia użytkownika
wyglądają jak pojedynczy, spójny system”
[Distributed Systems: Principles and Paradigms,
wyd. 2. Upper Saddle River, NJ: Prentice-Hall]
❑ Korzyści tworzenia systemów jako rozwiązań
rozproszonych:
✓ Współużytkowanie zasobów
✓ Otwartość
✓ Współbieżność
✓ Skalowalność
✓ Tolerancja na awarie
[Coulouris G., Dollimore J., Kindberg., Blair G. 2011.
Distributed Systems: Concepts and Design, 5th
Edition. Harlow, UK: Addison Wesley]
3. Zagadnienia Inżynierii Oprogramowania nt.
oprogramowania rozproszonego
❑ Systemy rozproszone
… problemy projektowe: przezroczystość, otwartość,
skalowalność, zabezpieczenia, jakość usług, zarządzanie
awariami … modele interakcji to proceduralna (np. Java
RMI) lub komunikatowa (wyk. middleware)
❑ Przetwarzanie klient – serwer
model architektoniczny aplikacji (np. klient - apka na
smartfonie korzysta z usług serwera albo serwer www
i przeglądarką na PC)
❑ Wzorce architektoniczne systemów rozproszonych
architektura master-slave, dwupoziomowa architektura
klient-serwer, wielopoziomowa architektura klient-serwer,
architektura rozproszonych komponentów, architektura
peer-to-peer.
❑ Oprogramowanie jako usługa
O tym dalsza prezentacja …
4. SaaS (Software as a service)
❑ Kluczowe w Saas to:
❑ Oprogramowanie
jest wdrażane na
serwerze
(najczęściej w tzw
chmurze)
❑ Właścicielem jest
dostawca usługi/ a
nie użytkownik
❑ Użytkownicy mogą/
ale nie muszą płacić
za wykorzystanie
usług Usługo-centryczna inżynieria oprogramowania
5. Usługo-centryczna inżynieria
oprogramowania
▪ O czym pisze I. Sommervile,
m.in.:
✓ Architektury usługocentryczne
(SOA, SOAP, WSDL, WS-BPEL, XML)
✓ Usługi RESTful
(lżejsze podejście do architektury
usług www)
✓ Inżynieria usług
(proces wytwarzania usług do
wielokrotnego użycia w aplikacjach
usługo-centrycznych)
✓ Komponowanie usług
(tworzenie usług z wykorzystaniem i
konfigurowaniem innych usług)
Rysunek poglądowy dla architektury REST
6. Realizacja projektów
Jakie usługi? Wybierz coś
z np.
▪API Google Cloud Platform
http://bityl.pl/T80Hy
▪API Amazon Web Services
http://bityl.pl/pC2Yw
▪API Facebook
http://bityl.pl/aYdqF
Diagram use case stworzony „na szybko on-line”
w: https://app.diagrams.net/ (jak masz więcej czasu,
to skorzystaj z bardziej wyspecjalizowanego narzędzia
wspierającego notację UML)
Zastąp szablonowe przypadki użycia
– własnymi pomysłami