Transcript Document

Standardy w zakresie systemów rozproszonych
i baz danych
Wykład 8:
Wprowadzenie do systemu VIDE
Piotr Habela
Kazimierz Subieta
Polsko-Japońska Wyższa Szkoła
Technik Komputerowych, Warszawa
P.Habela, K.Subieta. SSR, Wykład 8, Folia 1
kwiecień 2009
Materiały
•
Strony internetowe projektu VIDE
–
•
VIDE e-learning system
–
•
http://www.vide-ist.eu/reflib/elearning/index.html
VIDE Cookbook
–
•
http://www.vide-ist.eu/
http://www.vide-ist.eu/reflib/cookbook.html
Prace opublikowane nt. projektu VIDE
http://www.si.pjwstk.edu.pl/publications/pl/index.html
–
–
–
–
–
–
G.Falda, P.Habela, K.Kaczmarski, K.Stencel, K.Subieta: Object Oriented Database Prototype as a Model Execution Engine
for Executable UML. Proceedings of the 1st International Conference on Object Databases, ICOODB 2008, Berlin 13-14
March 2008, pp.167-178
P.Habela, K.Kaczmarski, K.Stencel, K.Subieta: OCL as the Query Language for UML Model Execution. Computational
Science - ICCS 2008, 8th International Conference, Kraków, Poland, June 23-25, 2008, Proceedings, Part III. Lecture Notes
in Computer Science 5103 Springer 2008, pp.311-320
G.Falda, P.Habela, K.Kaczmarski, K.Stencel, K.Subieta: Executable Platform Independent Models for Data Intensive
Applications. Computational Science - ICCS 2008, 8th International Conference, Kraków, Poland, June 23-25, 2008,
Proceedings, Part III. LNCS 5103 Springer 2008, pp. 301-310
R.Adamus, G.Fałda, P.Habela,K.Kaczmarski, K.Stencel, K.Subieta: Project VIDE – Challenges of Executable Modelling of
Business Applications. Proc. of NEPTUNE’2008 Conf. on Model-Driven Engineering, Paris 8-9 April 2008, Genie Logiciel
85, 2008, pp.53-56
P.Habela, K.Kaczmarski, K.Stencel, K.Subieta: Implementing OCL as a Database Query Language. On the Move to
Meaningful Internet Systems 2007: OTM 2007 Workshops, OTM Confederated International Workshops and
Posters,Vilamoura, Portugal, November 25-30, 2007, Proceedings, Part I., LNCS 4805, Springer, 2007, pp. 17-18
G.Fałda, P.Habela, K.Kaczmarski, K.Stencel, K.Subieta. Platform-independent programming of data-intensive applications
using UML 2nd IFIP Central and East European Conference on Software Engineering Techniques CEE-SET 2007, Poznań
2007
P.Habela, K.Subieta. SSR, Wykład 8, Folia 2
kwiecień 2009
Geneza projektu VIDE (1)
• Projekt europejski (VIsualize all moDel drivEn programming)
– 6-ty Program Ramowy Unii Europejskiej
•
•
•
•
Autor pomysłu i wniosku grantowego: Grzegorz Fałda
Czas trwania projektu: lipiec 2006 – grudzień 2008
Dofinansowanie: UE ~ 2 300 000 €, rządy ~ 1 700 000 €
9-ciu partnerów:
–
–
–
–
–
–
–
–
–
PJWSTK (Polska), koordynacja projektu
Bournemouth University (Wielka Brytania)
Fraunhofer Instititute (Niemcy)
DFKI - German Research Center for Artificial Intelligence (Niemcy)
Rodan Systems (Polska)
Softeam (Francja)
TNM Software GmbH (Niemcy)
SAP AG (Niemcy)
ALTEC (Grecja)
• Zakończony sukcesem, bardzo pochlebne opinie recenzentów
P.Habela, K.Subieta. SSR, Wykład 8, Folia 3
kwiecień 2009
Geneza projektu VIDE (2)
• Dotyczy podejścia Model Driven Architecture (MDA)
– VIDE realizuje postulaty wykonywalnego UML (Executable UML)
• Język akcji o nazwie VIDE, zgodny z UML 2.1 – standard OMG
• Kodowanie tekstowe i graficzne.
• Szeroki zakres potencjalnych zastosowań (biznesowych) opartych
o bazy danych.
• Implementacja OCL 2.0 – standard OMG - jako języka zapytań do
obiektowej bazy danych
• Programowanie aspektowe
• Mechanizmy kontroli jakości oprogramowania
• Specyfikacji procesów biznesowych (workflow)
• Kompilatory z VIDE do zewnętrznych platform (Java i ODRA)
• Integracja zewnętrznych zasobów i oprogramowania (relacyjne
bazy danych, XML, OfficeObjectsWorkflow, …)
• Prototyp zrealizowany dla platformy ODRA (PJWSTK)
P.Habela, K.Subieta. SSR, Wykład 8, Folia 4
kwiecień 2009
Prototyp VIDE – najważniejsze informacje (1)
• VIDE jest językiem programowania opartym na standardzie UML
2.1 i zgodnie z postulatami podejścia MDA
• Ma służyć do specyfikowania w UML oprogramowania (włączając
w to pełną logikę aplikacji) na poziomie modelu niezależnego od
platformy
• Model taki pozwala na jego transformowanie na wybraną
platformę docelową, poprzez wygenerowanie z odpowiednich
konstrukcji modelu kodu źródłowego lub maszynowego dla tejże
platformy
• Specyfikowanie szczegółów zachowania w języku UML służą
niedawno wprowadzone do jego specyfikacji części Structured
Activities oraz Actions
– W edytorze wizualnym - pojęcia bezpośrednio występujące w ww. częściach
metamodelu UML
– W edytorze tekstowym –instrukcje języka programowania
– W UML nie zestandaryzowano dotychczas składni dla tych konstrukcji - ani
wizualnej ani tekstowej
– Obie składnie natomiast są odwzorowywane odpowiednio na te same,
zestandaryzowane elementy metamodelu UML
P.Habela, K.Subieta. SSR, Wykład 8, Folia 5
kwiecień 2009
Prototyp VIDE – najważniejsze informacje (2)
• Specyfikowane zachowanie jest odwzorowywane na model
stanowiący instancję metamodelu UML.
• Zachowanie aplikacji specyfikujemy w VIDE poprzez budowę ciał
metod, związanych z operacjami w klasach znajdujących się w
modelu klas UML.
• Strukturalna warstwa modelu jest realizowana przez pojęcia
pakietów oraz klas, połączonych w kompozycje i asocjacje oraz
mogących wykorzystywać relację generalizacji.
• Szczególną rolę odgrywać może klasa modułowa - specjalna klasa,
której instancji nie powołujemy w normalny sposób.
• Zakłada się, że w momencie uruchomienia aplikacji istnieje
dokładnie jedna instancja takiej klasy, która pełni rolę punktu
wejścia dla uruchamiania funkcjonalności aplikacji.
• Klasę modułową, która musi mieć nazwę identyczną z nazwą
zawierającego ją pakietu, definiujemy przypisując jej stereotyp
«module».
P.Habela, K.Subieta. SSR, Wykład 8, Folia 6
kwiecień 2009
Prototyp VIDE – najważniejsze informacje (3)
• Funkcjonalność aplikacji można wywołać:
– wołając jedną z operacji klasy modułowej
– wydobywając z atrybutów klasy modułowej obiekty i wywołując operacje
• UML 2.1 wprowadza akcje do odczytu pojedynczych wartości
– Jest to niewystarczające dla aplikacji z bazą danych
• Konieczny jest język zapytań a la SQL
• W tej roli OCL (Object Constraint Language), stworzony do
formułowania ograniczeń w modelu
– Rola OCL jest zmieniona, w VIDE występuje jako język zapytań
• Specyfikacje UML 2.1 i OCL 2.0 są mocno niedojrzałe
– Toczą się prace nad precyzyjną, „wykonywalną” semantyką UML
– UML Actions oraz Structured Activities nie posiadają określonej w
standardzie składni konkretnej
• Stąd na potrzeby VIDE trzeba było zaprojektować konkretną
składnię i semantykę
– Jest to przedmiot wniosku do OMG
P.Habela, K.Subieta. SSR, Wykład 8, Folia 7
kwiecień 2009
Ogólne moduły VIDE
VIDE platform
<<subsystem>>
Development Environment
<<subsystem>>
Supporting Tools
<<subsystem>>
Runtime Environment
P.Habela, K.Subieta. SSR, Wykład 8, Folia 8
kwiecień 2009
VIDE a MDA
• VIDE wspiera podejście MDA. W tym celu wyróżnia 4 warstwy modeli i
artefaktów:
– Computation Independent Model (CIM) – przykrywający wiedzę dziedzinową i
opisujący logikę biznesową w sposób abstrahujący od konkretnych rozwiązań
programistycznych
– Platform Independent Model (PIM) – opisujący struktury i zachowanie
(behaviour) wytwarzanego oprogramowania bez określania detali docelowej
platformy implementacyjnej
– Platform Specific Model (PSM) –model precyzujący decyzje projektowe w
terminach pewnej technologii programistycznej
– Kod – kod źródłowy oprogramowania, automatycznie wygenerowany z PSM
• VIDE idzie nieco dalej niż typowe założenia MDA, mianowicie oferuje
kodowanie, uruchamianie i testowanie programów już na poziomie PIM
– Inne rozwiązanie zmuszałoby do uruchamiania i testowania oprogramowania
dopiero na poziomie PSM lub na poziomie kodu, co oznaczałoby niższy poziom
abstrakcji w programowaniu, niższy potencjał ponownego użycia, większą
pracochłonność, gorszą jakość,…
– Na poziomie PSM tylko drobne poprawki, jeżeli w ogóle ktoś będzie chciał
wprowadzać PSM
• Generowanie kodu bezpośrednio z poziomu PIM
– Odpowiednie adnotacje do modelu PIM, specyficzne dla danej platformy
P.Habela, K.Subieta. SSR, Wykład 8, Folia 9
kwiecień 2009
MDA w architekturze narzędzi VIDE
Analiza dziedzinowa
CIM
Modelowanie niezależne od obliczeń
Prototypowanie na poziomie PIM
Modelowanie
procesów
PIM
Kompozycja aspektowa
Modelowanie
aplikacji
Wykonanie/testowanie
modelu PIM
Zapewnienie jakości
PIM z
adnotacjami
PSM?
Kod
P.Habela, K.Subieta. SSR, Wykład 8, Folia 10
Generowanie
kodu
kwiecień 2009
VIDE jako nowy język programowania
• Poprzez to, że można programować już na poziomie PIM, powstaje
pewna sprzeczność z założeniami MDA
– Jeżeli programujemy na poziomie PIM, to po co PSM i kod?
• PIM staje się w ten sposób PSM, który jest jednocześnie kodem
– po co generować kod w Java, C#, itd. jeżeli wszystko, co można zrobić z tym
kodem, to go skompilować?
– przykryć jakimś makefile i zapomnieć o tych językach i ich kompilatorach
• VIDE jest nowym obiektowym językiem programowania
– z bazą danych/obiektów
– ze schematem obiektów zapisanym w UML
– złożone obiekty, kolekcje, typy, klasy, metody, asocjacje, dziedziczenie,…
• Można także uważać, że w VIDE piszemy tylko prototyp, który
wprawdzie jest wykonywalny, ale ze słabą wydajnością,
uproszczonymi interfejsami, itd.
– Ale wtedy powstaje zadanie optymalizacyjne: jak zrobić VIDE w pełni
wydajnym językiem, z właściwymi interfejsami, itd.
– Aby nie tracić istniejących bibliotek – pomosty do Java, .Net, C++, …
P.Habela, K.Subieta. SSR, Wykład 8, Folia 11
kwiecień 2009
Przypadki użycia systemu VIDE
P.Habela, K.Subieta. SSR, Wykład 8, Folia 12
kwiecień 2009
Funkcjonalne moduły VIDE
P.Habela, K.Subieta. SSR, Wykład 8, Folia 13
kwiecień 2009
Designer aplikacji – powiązania między-modułowe
P.Habela, K.Subieta. SSR, Wykład 8, Folia 14
kwiecień 2009
Przypadki użycia na poziomie PIM
P.Habela, K.Subieta. SSR, Wykład 8, Folia 15
kwiecień 2009
Typowa zależność kroków rozwoju oprogramowania
P.Habela, K.Subieta. SSR, Wykład 8, Folia 16
kwiecień 2009
Unikalne cechy systemu VIDE (1)
• Zuniformizowany język programowania bazujący na UML
pozwalający na precyzyjną specyfikację zachowania
– Większa elastyczność dla procesów rozwoju oprogramowania
– Mniejsze problemy komunikacyjne pomiędzy społecznościami analizy,
projektowania i programowania
• Język OCL jako język zapytań pozwala na zapis wymaganej
funkcjonalności w sposób krótki, koncepcyjny i deklaracyjny
– Zapytania oraz zdania imperatywne są bezszwowo zintegrowane w jeden
język
– Zestandaryzowany metamodel
– Brak niezgodności impedancji
• Podejście aspektowe oraz wykrywanie defektów podniesione na
poziom PIM
– Sprzyja ponownemu użyciu
– Sprzyja walce ze złożonością aplikacji
P.Habela, K.Subieta. SSR, Wykład 8, Folia 17
kwiecień 2009
Unikalne cechy systemu VIDE (2)
• Pełne pokrycie procesu przejścia z modelu
biznesowego do wykonywalnego kodu
– Wykonywalny model PIM posiada pomosty do istniejących
usług (np.WS), silnika workflow, itd.
– Prototypowanie i testowanie pry pomocy GUI
• Narzędzie do modelowania “pre-CIM” dla
użytkowników biznesowych
– Pozwala im na efektywne włączenie się w rozwój aplikacji
• Rozszerzony język na poziomie CIM bazujący na
notacji BPMN
– Przejście z CIM do PIM w terminach odwzorowania
pomiędzy modelami jako punkt wyjściowy do specyfikacji
aplikacji oraz jako wzorzec dla projektowania
wykonywalnych procesów workflow
P.Habela, K.Subieta. SSR, Wykład 8, Folia 18
kwiecień 2009
Standardy wspomagane lub używane przez VIDE
•
•
•
•
•
•
•
•
•
•
•
•
BPMN - Business Process Modeling Notation
XPDL - XML Process Definition Language
UML - Unified Modeling Language
OCL - Object Constraint Language
XML - Extensible Markup Language
XMI - XML Metadata Interchange
SOAP – Simple Object Access Protocol
WS - Web Services
WSDL - Web Service Definition Language
UDDI - Universal Description, Discovery and Integration
JDBC – Java Data Base Connectivity
SQL – Structured Query Language
P.Habela, K.Subieta. SSR, Wykład 8, Folia 19
kwiecień 2009
Dostępność komponentów VIDE
P.Habela, K.Subieta. SSR, Wykład 8, Folia 20
kwiecień 2009
Proces generacji aplikacji w ODRA
Behavior
VIDE
Textual
VIDE
Visual
SBQL
AST
SBQL
CODE
ODRA
Server
PIM
ODRA
DDL
UML
Structures
P.Habela, K.Subieta. SSR, Wykład 8, Folia 21
kwiecień 2009
Eclipse SDK
• Dla systemu VIDE wybrano Eclipse jako zintegrowane środowisko
deweloperskie (IDE) dla edytowania programów tekstowych
– Jest to popularne i uniwersalne środowisko open-source, jakkolwiek nie wolne
od wad takich jak złożoność, trudności w nauczeniu się i błędy w
oprogramowaniu
• Bazujące na Eclipse implementacje MDT metamodeli dla UML i OCL
tworzą mechanizm odwzorowania pomiędzy modelami
– Programy zapisane w PIM odwzorowuje się na graf abstrakcyjnej składni
określony w/w metamodelami
– Abstrakcyjna składnia może być dalej przedmiotem przetwarzania, np. w
związku z aspektowością i wykrywaniem defektów
– Po zakończeniu przetwarzania, abstrakcyjna składnia może być odwzorowana
na kod. Obecnie dwa kompilatory kodu są dostępne: Java + Hibernate oraz
ODRA
– openArchiectureware framework dla kompilatora modelu dla Java
• Dla edytorów wizyjnych wykorzystano framework GMF
• Wybór Eclipse i popularnych frameworków do zapisu i odwzorowania
modeli znacznie ułatwia projektowanie funkcjonalności aplikacji.
P.Habela, K.Subieta. SSR, Wykład 8, Folia 22
kwiecień 2009