0% found this document useful (0 votes)
41 views38 pages

Komponentowe W1

Uploaded by

artur.zelik7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views38 pages

Komponentowe W1

Uploaded by

artur.zelik7
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

POLITECHNIKA LUBELSKA

WYDZIAŁ ELEKTROTECHNIKI I INFORMATYKI


INFORMATYKA

Komponentowe podejście do wytwarzania


aplikacji W1
Podstawy podejścia komponentowego

Dr inż. Marek Miłosz, prof. uczelni


Plan wykładu
• Zagadnienia konstrukcji oprogramowania
komponentowego
• Miejsce technologii komponentowej w cyklu
życia oprogramowania
• Zalety i wady podejścia komponentowego
• Przegląd środowisk programowania
komponentowego (CCM, EJB, COM+, .Net, ...)
• Architektura wielowarstwowa. Serwery aplikacji
• Systemy dedykowane
Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 2
Zagadnienia konstrukcji
oprogramowania
komponentowego

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 3


Wytwarzanie oprogramowania
w oparciu o komponenty
• Ang. Component-Based Software Development,
CBSD
• Bazuje na komponentach (ang. Component) –
modułach oprogramowania o określonej, dobrze
zdefiniowanej funkcjonalności
• Komponent to oprogramowanie wielokrotnego
użytku w formie binarnej, które można podłączyć
do innych komponentów od innych dostawców
przy stosunkowo niewielkim wysiłku
• Komponent == jednostka oprogramowania
wielokrotnego użycia (ang. Reuse)
Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 4
Komponent oprogramowania –
cechy (1)
• Jest samodzielny i wielokrotnego użytku
• Oferuje wyraźnie określone usługi poprzez
wyraźnie określony interfejs
• Może mieć wpływ/być pod wpływem innych
składników oprogramowania (jawnie zdefiniowane
zależności)
• Powinien mieć jedną udokumentowaną
specyfikację (komponent oprogramowania opisany
na wysokim poziomie abstrakcji)
• Może być użyty wyłącznie na podstawie specyfikacji
Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 5
Komponent oprogramowania –
cechy (2)
• Może mieć kilka niezależnych implementacji, tj.
jeden komponent może być zaimplementowany
w kilka różnych języków programowania oraz
może mieć kilka wykonywalnych (binarnych)
kształtów, tzn. jeden komponent może być
wykonany w różnych środowiska
oprogramowania
• Można go łatwo łączyć z innymi komponentami
• Zarządzaniem komponentami zajmuje się
kontener (tworzenie/usuwanie instancji, …)
Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 6
Komponent oprogramowania –
skład
• Specyfikacja
• Implementacja
• Kod binarny
• Interfejs oferowany (API, ang. Application
Programming Interface)
• Jawnie zdeklarowane wymagane zależności

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 7


Komponent vs. obiekt
Obiekt Komponent
• Częściowa hermetyzacja • Wymuszona hermetyzacja –
komunikacja tylko poprzez
interfejsy
• Dobrowolne definiowanie
• Wymuszone definiowanie
interfejsów
abstrakcyjnych interfejsów
(do komunikacji)
• Powszechne stosowanie • Rzadkie stosowanie
dziedziczenia dziedziczenia (głównie dla
interfejsów)
• Powtórne użycie kodu • Powtórne użycie kodu na
poprzez polimorfizm i poziomie binariów
późne wiązanie wywołań
Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 8
Kontener
• Komponenty nie są jednostkami aktywnymi
(w przeciwieństwie do obiektów) – nie tworzą
i nie usuwają swoich instancji
• Zarządzaniem komponentami zajmuje się
kontener:
• Zarządza cyklem życia komponentów
(tworzy/usuwa/odtwarza)
• Rozwiązuje zależności pomiędzy komponentami
• Zajmuje się „techniczną” stroną (zarządza zasobami
i transakcjami, kolejkuje żądania, wyrównuje
obciążenia itd.)
Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 9
Miejsce technologii
komponentowej
w cyklu życia
oprogramowania

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 10


Cykle życia oprogramowania
w technologii komponentowej
• Cykl życia dla komponentu oprogramowania
• Cykl życia dla aplikacji wielokomponentowej
oprogramowania (integracja wielu
komponentów)
• Cykl życia całego systemu informatycznego (SI)
w technologii komponentowej

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 11


Komponentowy cykl życia SI –
fazy
Faza Opis
Analiza Proces zdefiniowania i zrozumienia działań, które mają być
wspomagane przez SI. Wyszukanie komponentów/aplikacji
Projektowanie Opracowanie szczegółowego opisu (modelu) SI, wykorzystującego
szczegółowe specyfikacje komponentów /aplikacji
Implementacja Pozyskanie komponentów/aplikacji. W szczególnych przypadkach:
wytworzenie komponentów/aplikacji
Integracja Integracja komponentów/aplikacji w SI
Testowanie Identyfikacja i eliminacja niepożądanych skutków i błędów SI oraz
jego weryfikacja
Konserwacja Proces utrzymania działania SI, w tym aktualizacja i wymiana
komponentów/aplikacji na nowe wersje
Administracja Czynności administracyjne (głównie: zarządzanie użytkownikami
i ich uprawnieniami)

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 12


Tworzenie komponentów vs.
tworzenie SI w CBSD

Źródło: K. -K. Lau, F. M. Taweel and C. M. Tran, "The W


Model for Component-Based Software
Development," 2011 37th EUROMICRO Conference on
Software Engineering and Advanced Applications,
2011, pp. 47-50, doi: 10.1109/SEAA.2011.17.

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 13


V kształtny model cyklu życia
CBSD

Źródło: I. Crnkovic, S. Larsson and M.


Chaudron, "Component-based
development process and component
lifecycle," 27th International
Conference on Information Technology
Interfaces, 2005., 2005, pp. 591-596,
doi: 10.1109/ITI.2005.1491195.

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 14


Szczegółowy V kształtny model
cyklu życia CBSD

Źródło: I. Crnkovic, S.
Larsson and M. Chaudron,
"Component-based
development process and
component lifecycle," 27th
International Conference
on Information Technology
Interfaces, 2005., 2005, pp.
591-596, doi:
10.1109/ITI.2005.1491195.

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 15


Y kształtny model cyklu życia
CBSD

Źródło: https://ir.lib.uwo.ca/cgi/viewcontent.cgi?article=1037&context=electricalpub

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 16


W kształtny model cyklu życia
CBSD

Źródło: K. -K. Lau, F. M. Taweel and C. M. Tran, "The W


Model for Component-Based Software
Development," 2011 37th EUROMICRO Conference on
Software Engineering and Advanced Applications,
2011, pp. 47-50, doi: 10.1109/SEAA.2011.17.

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 17


Zalety i wady podejścia
komponentowego

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 18


Zalety i wady podejścia
komponentowego
ZALETY WADY
• wysoka • dodatkowy koszt
niezawodność przygotowania
elementów
• zmniejszenie ryzyka ponownego użycia
• efektywne • ryzyko uzależnienia
wykorzystanie się od dostawcy
specjalistów komponentów
• narzucenie • niedostatki
standardów istniejących narzędzi

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 19


CBSD – wyzwania i problemy
• Heterogeniczność komponentów
• Optymalny wybór komponentów
• Kosztowne i nieodpowiednie testowanie
komponentów
• Złożona specyfikacja interfejsu
• Ciągłe wersjonowanie
• Nieprawidłowa praca z powodu zmian w aplikacji
• Konfiguracja i certyfikacja komponentów

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 20


Przegląd środowisk
programowania
komponentowego

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 21


Środowiska programowania
komponentowego
• Enterprise JavaBean (EJB), firmy Sun/ORACLE –
architektura komponentów po stronie serwera
dla platformy Java, Enterprise Edition (Java EE 5)
• CORBA Component Model (CCM) (CORBA – ang.
Common Object Request Broker Architecture) –
technologia zapewniająca komunikację pomiędzy
obiektami pracującymi w heterogenicznych
systemach komputerowych; rozwijany przez
OMG (ang. Object Management Group)
• .NET firmy Microsoft; następca Component
Object Model, COM+

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 22


Enterprise JavaBean
• Technologia EJB umożliwia szybkie i uproszczone
tworzenie rozproszonych, transakcyjnych,
bezpiecznych i przenośnych aplikacji opartych na
technologii Java
• Specyfikacja EJB 3.0:
https://www.oracle.com/java/technologies/enterprise-
javabeans-doc.html
definiuje interfejs EJB API, w tym Java Persistence
API do zarządzania trwałością i mapowaniem
obiektowo-relacyjnym w środowiskach Java

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 23


EJB – komponenty
• Jednostki danych (encje)
• Sesje przetwarzania danych
• Obsługa komunikatów

• Stanowi kontener do obsługi komponentów

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 24


CORBA Component Model
(CCM)
• CCM zapewnia usługi współpracy z kontenerami
poprzez dobrze zdefiniowane interfejsy (porty,
ang. Ports)

Źródło: L.Grochowski.
Programowanie komponentowe
w środowisku WWW. Studia
Informatyczne, vol. 1, 2010

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 25


Implementacje CCM
• CORBA/Java ORM w JDK (Java IDL) firmy ORACLE
• VisiBroker firmy Visigenic
• SOM ComponentBroker firmy IBM
• ObjectBroker Iceberg firmy BEA Systems
• ….
• Serwisy webowe (ang. Webservice)
• Chmury obliczeniowe

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 26


Architektura
wielowarstwowa.
Serwery aplikacji

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 27


Wymagania stawiane architekturze
systemów komponentowych
• Zdalna komunikacja – przeźroczysta, niezależna od
platformy
• Efektywne i zróżnicowane metody uruchamiania
zdalnych komponentów
• Efektywne mechanizmy odszukiwania i tworzenia
zdalnych komponentów
• Zapewnienie transakcyjności przetwarzań
(utrzymania spójnego stanu systemu przy realizacji
wielu współbieżnych operacji)
• Bezpieczeństwo autentykacji i autoryzacji, a także
zapewnienie poufności danych

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 28


Architektura systemów
komponentowych
• Podział systemu na rozdzielne warstwy,
realizujące poszczególne funkcje przetwarzania,
zarządzania danymi i prezentacji
• Logiczne i fizycznie rozdzielone (oddzielne
komputery – serwery rzeczywiste lub wirtualne)

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 29


Architektura warstwowa -
przykład ogólny

Źródło: https://bulldogjob.pl/readme/najwazniejsze-wzorce-architektoniczne

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 30


Architektura n-warstwowa –
przykład
• Warstwa interfejsu użytkownika (np. web client,
mobile client)
• Warstwa zarządzania treścią, tzw. backend (np.
CMS)
• Warstwa usług: web services & data services (np.
dostarczanie danych innym modułom)
• Warstwa uwierzytelnienia i autoryzacji
• Warstwa pamięci trwałej (np. baza danych)

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 31


Architektura warstwowa -
przykład EJB

Źródło: https://bulldogjob.pl/readme/najwazniejsze-wzorce-architektoniczne

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 32


Systemy dedykowane

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 33


Modele systemów – posiadanie
• Własne systemy, utrzymywane w firmie
• Model ang. Application Service Provision, ASP

• Oprogramowanie jako usługa – ang. Software as


a Service (SaaS)
• Platforma jako usługa – ang. Platform as a
Service (PaaS)
• Infrastruktura jako usługa – ang. Infrastructure as
a Service (IaaS)
Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 34
Systemy dedykowane w modelu
PaaS (w chmurze) – przykłady
• Microsoft Dynamics 365 (w chmurze) –
modułowy system klasy ERP – język
programowania: X++
• SAP ERP – firma SAP SE (niem. Systeme,
Anwendungen und Produkte in der
Datenverarbeitung) – język programowania:
ABAP (ang. Advanced Business Application
Programming), C++
• Comarch ERP Optima – firma Comarch – język
programowania: C#
Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 35
Salesforce
• Firma: Salesforce Inc.; język programowania:
Apex

Źródło: https://en.wikipedia.org/wiki/Salesforce
Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 36
Pytania?
Dziękuję

Marek Miłosz Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga 37


POLITECHNIKA LUBELSKA
WYDZIAŁ ELEKTROTECHNIKI I INFORMATYKI
INFORMATYKA

Materiały zostały opracowane w ramach projektu


„Zintegrowany Program Rozwoju Politechniki Lubelskiej – część druga”,
umowa nr POWR.03.05.00-00-Z060/18-00
w ramach Programu Operacyjnego Wiedza Edukacja Rozwój 2014-2020
współfinansowanego ze środków Europejskiego Funduszu Społecznego

You might also like