Standardy w zakresie systemów rozproszonych i baz danych

22
P.Habela, K.Subieta. SSR, Wykład 8, Folia 1 kwiecień 2009 Standardy w zakresie systemów rozproszonych i baz danych Piotr Habela Kazimierz Subieta Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa Wykład 8: Wprowadzenie do systemu VIDE

description

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. Materiały. Strony internetowe projektu VIDE http://www.vide-ist.eu/ VIDE e-learning system - PowerPoint PPT Presentation

Transcript of Standardy w zakresie systemów rozproszonych i baz danych

Page 1: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 1 kwiecień 2009

Standardy w zakresie systemów rozproszonych i baz danych

Piotr HabelaKazimierz Subieta

Polsko-Japońska Wyższa SzkołaTechnik Komputerowych, Warszawa

Wykład 8:Wprowadzenie do systemu VIDE

Page 2: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 2 kwiecień 2009

Materiały• Strony internetowe projektu VIDE

– http://www.vide-ist.eu/• VIDE e-learning system

– http://www.vide-ist.eu/reflib/elearning/index.html• VIDE Cookbook

– 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

Page 3: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 3 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

Page 4: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 4 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)

Page 5: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 5 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

Page 6: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 6 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».

Page 7: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 7 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

Page 8: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 8 kwiecień 2009

Ogólne moduły VIDE

VIDE platform

<<subsystem>>Development Environment

<<subsystem>>Runtime Environment

<<subsystem>>Supporting Tools

Page 9: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 9 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

Page 10: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 10 kwiecień 2009

MDA w architekturze narzędzi VIDE

Modelowanie niezależne od obliczeńAnaliza dziedzinowa

Prototypowanie na poziomie PIM

PIM

Modelowanieprocesów Modelowanie

aplikacji

Kompozycja aspektowa

Zapewnienie jakości

Wykonanie/testowanie modelu PIM

PIM z adnotacjami

CIM

Kod Generowaniekodu

PSM?

Page 11: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 11 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++, …

Page 12: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 12 kwiecień 2009

Przypadki użycia systemu VIDE

Page 13: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 13 kwiecień 2009

Funkcjonalne moduły VIDE

Page 14: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 14 kwiecień 2009

Designer aplikacji – powiązania między-modułowe

Page 15: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 15 kwiecień 2009

Przypadki użycia na poziomie PIM

P I M leveldes cription

VIDE Designer

VIDE_ use_ cases

Process aspect weaving

Specify aspects

Analyse quality defects

Generate ODRA code

Generate Java code

Generate code

Define GUI

Use existing servicesDefine from scratch

Specify involved services

Assign performer

Define business rule

Define behaviour

Define process

Execute model to validate it

Refine specification and data modelDesign software with VIDE

<<extend>>

<<extend>>

<<extend>>

<<extend>> <<extend>>

<<include>> <<include>>

<<extend>>

<<include>>

<<include>>

<<include>>

<<extend>>

<<extend>> <<extend>>

<<extend>>

Page 16: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 16 kwiecień 2009

Typowa zależność kroków rozwoju oprogramowania

Page 17: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 17 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

Page 18: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 18 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

Page 19: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 19 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

Page 20: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 20 kwiecień 2009

Dostępność komponentów VIDE

Page 21: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 21 kwiecień 2009

Proces generacji aplikacji w ODRA

Behavior

VIDE Textual

VIDE Visual

UML Structures

PIM

ODRA DDL

SBQL AST

SBQL CODE

ODRAServer

Page 22: Standardy w zakresie systemów rozproszonych  i baz danych

P.Habela, K.Subieta. SSR, Wykład 8, Folia 22 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.