Standardy w zakresie systemów rozproszonych i baz danych

Slides:



Advertisements
Podobne prezentacje
Modelowanie przypadków użycia
Advertisements

Projektowanie w cyklu życia oprogramowania
Wprowadzenie do C++ Zajęcia 2.
OiZPI Część 5 narzędzia CASE w materiałach wykorzystano:
Polsko-Japońska Wyższa Szkoła Technik Komputerowych
OLAP budowa aplikacji analitycznych w MS SQL 2000 i Yukon
XML w integracji aplikacji
Projektowanie Aplikacji Komputerowych
25/08/2001 Bazy danych II 1 Piotr Górczyński Wstęp do SQL.
Architektura systemu Gra strategiczna „Strusia Jama”
UML Unified Modeling Language
Opracował: Patryk Kołakowski(s1715)
PySBQL Język zapytań dla obiektowych baz danych. Aplikacje bazodanowe Główny nurt budowania aplikacji opiera się na połączeniu: SQL JDBC Java Jak wyświetlić
Co UML może zrobić dla Twojego projektu?
Eclipse jako IDE III a.
WekaSQL Język i aplikacja przetwarzania oraz eksploracji danych.
Diagramy klas w języku UML
Enteprise Java Beans Emil Wcisło.
Wzorce projektowe w J2EE
Wstęp do programowania obiektowego
Praca Inżynierska „Analiza i projekt aplikacji informatycznej do wspomagania wybranych zadań ośrodków sportowych” Dyplomant: Marcin Iwanicki Promotor:
Projekt i implementacja aplikacji do zasilania bazy danych testowymi danymi Jacek Lis Promotor: prof. dr hab. inż. Włodzimierz KASPRZAK.
1/18 LOGO Profil zespołu. 2/18 O nas Produkcja autorskich rozwiązań informatycznych dla małych i średnich firm w zakresie systemów: Baz danych Aplikacji.
Architektura SOA.
Analiza, projekt i częściowa implementacja systemu obsługi kina
Multimedialne bazy danych
Wykład 4 Analiza i projektowanie obiektowe
Wykład 5 UML - Unified Modeling Language
Wykład 2 Cykl życia systemu informacyjnego
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
Unified Modeling Language graficzny język wizualizacji, specyfikowania, tworzenia i dokumentowania systemów informatycznych.
Rozwój aplikacji przy wykorzystaniu ASP.NET
Stanisław Jerzy Niepostyn, Ilona Bluemke Instytut Informatyki,
Rozwój aplikacji. To zestaw narzędzi do budowania i optymalizacji złożonych aplikacji opartych na przeglądarce. To zestaw narzędzi do budowania i optymalizacji.
UML 2.x Robert Pająk.
Wykład 1 – część pierwsza
Opracował : Przemysław Drzymała
Inż. Łukasz Antoniak Promotor: dr inż. Piotr Gawrysiak Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych, 2010.
MDA – Model Driven Architecture
XML – eXtensible Markup Language
Zaprojektowanie i wykonanie prototypowego systemu obiegu dokumentów (workflow) dla Dziekanatu Wydziału z wykorzystaniem narzędzi open-source i cloud computing.
Programowanie obiektowe – język C++
„Kalkulator zużycia oraz kosztu energii elektrycznej online „
Programowanie obiektowe 2013/2014
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Modelowanie obiektowe Diagramy UML – diagram przypadków użycia
Unified Modeling Language - Zunifikowany Język Modelowania
Wprowadzenie do UML dr hab. inż. Kazimierz Subieta profesor PJWSTK.
Modelowanie obiektowe Diagramy klas
UML W V ISUAL S TUDIO Mateusz Lamparski. UML D EFINICJA Unified Modeling Language (UML) to graficzny język do obrazowania, specyfikowania, tworzenia i.
Service Oriented Architecture
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Model obiektowy bazy danych
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Podstawy języka skryptów
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Hibernate Podstawy.
Odwzorowania relacyjno-obiektowe Hibernate Podstawy.
Agnieszka Kujża Konrad Drukała
Platforma .Net.
Systemy zarządzania przepływem pracy i systemy zarządzania procesami biznesowymi Karolina Muszyńska.
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Architektura Rafał Hryniów. Architektura Wizja projektu systemu, którą dzielą twórcy Struktura komponentów systemu, ich powiązań oraz zasad i reguł określających.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Inżynieria systemów informacyjnych
Projektowanie aplikacji internetowych
Strukturalny język zapytań SQL - historia
Wykład 1 – część pierwsza
JavaBeans by Paweł Wąsala
Zapis prezentacji:

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 VIDE e-learning system 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

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

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)

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

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».

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

Ogólne moduły VIDE

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

MDA w architekturze narzędzi VIDE Modelowanie niezależne od obliczeń Analiza dziedzinowa CIM Prototypowanie na poziomie PIM Modelowanie procesów Kompozycja aspektowa Modelowanie aplikacji Zapewnienie jakości PIM Wykonanie/testowanie modelu PIM PIM z adnotacjami PSM? Kod Generowanie kodu

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++, …

Przypadki użycia systemu VIDE

Funkcjonalne moduły VIDE

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

Przypadki użycia na poziomie PIM

Typowa zależność kroków rozwoju oprogramowania

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

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

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

Dostępność komponentów VIDE

Proces generacji aplikacji w ODRA Behavior PIM VIDE Textual SBQL AST SBQL CODE ODRA Server VIDE Visual ODRA DDL UML Structures

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.