Programowanie obiektowe



Podobne dokumenty
Programowanie obiektowe

Programowanie Komponentowe WebAPI

Programowanie współbieżne i rozproszone

Technologia informacyjna

Komunikacja i wymiana danych

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Pojęcie systemu baz danych

Programowanie w Ruby

Mapowanie obiektowo-relacyjne z wykorzystaniem Hibernate

Programowanie w Ruby

Programowanie w Ruby

Wybrane działy Informatyki Stosowanej

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

Wywoływanie metod zdalnych

1 Wprowadzenie do J2EE

Oracle11g: Wprowadzenie do SQL

Aplikacje RMI

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

WPROWADZENIE DO BAZ DANYCH

Wykład I. Wprowadzenie do baz danych

Architektury rozproszonych baz danych. Robert A. Kłopotek Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Baza danych. Modele danych

Projektowanie obiektowe oprogramowania Wykład 9 Wzorce architektury aplikacji (1) Wiktor Zychla 2013

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Spis treści. Przedmowa

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

Programowanie składnikowe. Programowanie składnikowe w modelu COM. COM - Component Object Model. wprowadzenie. Programowanie składnikowe

Podstawy programowania. Wprowadzenie

Programowanie MorphX Ax

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Systemy rozproszone System rozproszony

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

Projektowanie aplikacji z bazami danych

Remote Method Invocation 17 listopada 2010

Protokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP. Paweł Kozioł p.koziol@students.mimuw.edu.pl

Wywoływanie metod zdalnych

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Podejście obiektowe do budowy systemów rozproszonych

Programowanie obiektowe

Informatyka I BAZY DANYCH. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2017


Programowanie obiektowe

Zaawansowany kurs języka Python

Bazy danych tworzenie aplikacji bazodanowych ORM / JPA

Bazy danych 2. Wykład 1

Wypożyczalnia VIDEO. Technologie obiektowe

Załącznik Nr 5 do Zarz. Nr 33/11/12

LITERATURA. Wprowadzenie do systemów baz danych C.J.Date; WNT Warszawa 2000

Technologie COM i ActiveX COM - Component Object Model

Podstawowe informacje o bazach danych. Technologie Informacyjne

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Pojęcie bazy danych. Funkcje i możliwości.

Wybrane działy Informatyki Stosowanej

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca Norbert Potocki db4o

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Architektura składnikowa a architektura klient serwer. Programowanie składnikowe. Programowanie składnikowe w modelu COM

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

mail: strona: konsultacje: na stronie (po wcześniejszym umówieniu drogą mailową)

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Relacyjne, a obiektowe bazy danych. Bazy rozproszone

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Wzorce projektowe. dr inż. Marcin Pietroo

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Paweł Kurzawa, Delfina Kongo

Projektowanie: architektura baz danych

22 października Akademia Górniczo-Hutnicza, Automatyka i Robotyka. Porównanie LINQ i NHibernate. Mateusz Mazur Ale o co chodzi?

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Spis treci. Dzie 1. I Wprowadzenie (wersja 0911) II Dostp do danych biecych specyfikacja OPC Data Access (wersja 0911)

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Java Persistence API - zagadnienia zaawansowane

TEMAT ĆWICZENIA Zapoznanie z technologią LINQ

ORGANIZACJA ZAJĘĆ BAZY DANYCH PLAN WYKŁADU SCHEMAT SYSTEMU INFORMATYCZNEGO

Ekspert MS SQL Server Oferta nr 00/08

Metody dostępu do danych

Zdalna edycja i przeglądanie dokumentacji medycznej.

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Środowisko NetBeans. Paweł Boguszewski

Kurs programowania aplikacji bazodanowych

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Programowanie obiektowe

Podejście obiektowe do budowy systemów rozproszonych

Transkrypt:

Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015

Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29

Trwałość (persistence) Definicja Cecha danej, zmiennej lub obiektu oznaczająca zachowanie jej wartości dłużej niż czas pojedynczego uruchomienia programu. Marcin Młotkowski Programowanie obiektowe 3 / 29

Przechowywanie stanu w BD Aplikacja Baza danych Definicje klas Implementacje metod Zapis stanu Stan obiektów Odczyt stanu Marcin Młotkowski Programowanie obiektowe 4 / 29

Scenariusz użycia trwałego obiektu Odczyt obiektu (stanu obiektu z bd) Modyfikacja stanu Wywołanie metod obiektu Zapis Marcin Młotkowski Programowanie obiektowe 5 / 29

Zagadnienia Trwałość obiektów Zwykle przechowywany jest stan obiektu a nie obiekt (tj. klasa, nadklasa, metody itp) Gorliwe czy leniwe aktualizacje (odczyt/zapis) stanu Mechanizm aktualizacji zmian (dodawanie nowych pól, zmiana typów pól w nadklasie etc) Pytanie: jaka część stanu powinna być przechowywana? Marcin Młotkowski Programowanie obiektowe 6 / 29

Naturalne podejście Trwałość obiektów Połączenie aplikacji obiektowej z istniejącym systemem baz danych Rozszerzenie środowiska obiektowego o możliwości przetwarzania dużych danych Zbudowanie całego środowiska od początku Rozszerzenie systemu BD o właściwości obiektowe Marcin Młotkowski Programowanie obiektowe 7 / 29

Łączenie środowiska obiektowego z systemem baz danych Środowiska obiektowe: JAVA, C#, C++, Python... Systemy baz danych: MySQL, Oracle, PostgreSQL, Sybase, Microsoft SQL Server... Marcin Młotkowski Programowanie obiektowe 8 / 29

Strategia implementacji Odwzorowanie cech obiektowych w relacyjnych bazach danych (object-relational mapping, ORM) Implementacja warstwy pośredniej Marcin Młotkowski Programowanie obiektowe 9 / 29

Porównanie modelu relacyjnego z obiekowym Model obiektowy Ukrywanie danych i dostęp tylko przez wskazany interfejs Relacje między obiektami: asocjacje, dziedziczenie, kompozycja Tożsamość obiektów Model relacyjny Rekord Tabela: kolekcja rekordów tego samego typu Język zapytań Marcin Młotkowski Programowanie obiektowe 10 / 29

Java Data Object Trwałość obiektów definiuje specyfikację; obiekty mogą być pamiętane w plikach, relacyjnych i obiektowych bazach danych; szczegóły (gorliwość, leniwość, etc) są definowane w zewnętrznych plikach xml; przykładowa realizacja: Apache JDO, DataNucleus Marcin Młotkowski Programowanie obiektowe 11 / 29

Java Persistence API Trwałość obiektów specyfikacja; głównie do przechowywania stanu obiektów w relacyjnych BD; szczegóły są definiowane za pomocą annotacji lub w zewnętrznych plikach; Java Persistence Query Language: język zapytań przypominający SQL; implementacje: Hibernate, TopLink. Marcin Młotkowski Programowanie obiektowe 12 / 29

C#: ADO.NET Trwałość obiektów ADO - ActiveX Data Objects ADO.NET środowisko dostępu do danych w BD Marcin Młotkowski Programowanie obiektowe 13 / 29

Entity Framework Trwałość obiektów Część środowiska ADO.NET Powstanie: 2008 rok Projekt danych w postaci konceptualnego modelu danych (Entity Data Model) Automatyczne odwzorowanie na RBD i model obiektowy Zapisywanie modelu danych w pliku XML Marcin Młotkowski Programowanie obiektowe 14 / 29

LINQ: Language Integrated Query Projekt Microsoftu Dostęp na poziomie języka programowania do danych w BD za pomocą składni SQL-podobnej Marcin Młotkowski Programowanie obiektowe 15 / 29

Przykład LINQ Trwałość obiektów Northwind db = new Northwind(connectionString); var q = from o in db.orders, c in db.customers where o.quality == "200" select new { o.duedate,c.itemid}; foreach (var t in q) {... } Marcin Młotkowski Programowanie obiektowe 16 / 29

Rozszerzenia RBD na przykładzie Oracle PL/SQL rozszerzenie SQL o procedury Składnia zapożyczona z Ady Możliwość definiowania własnych programów wykonywanych na serwerze Możliwość deklarowania własnych typów danych (klas) Rozszerzenie SQL o odwołania do obiektów Marcin Młotkowski Programowanie obiektowe 17 / 29

Serwer STONE Trwałość obiektów Przechowuje obiekty Obiekty nie są kopiowane do aplikacji klienta, tylko zostają w serwerze Metody są wykonywane na serwerze Marcin Młotkowski Programowanie obiektowe 18 / 29

Rozwiązanie w Smalltalku Przechowywanie stanu aplikacji w jednym pliku (obrazie). Wady rozwiązania Kłopoty z przetwarzaniem dużych porcji danych Kłopoty z szybkim wyszukiwaniem danych Problem wielodostępu do danych Marcin Młotkowski Programowanie obiektowe 19 / 29

Plan wykładu 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 20 / 29

Obiekty trwałe: inna koncepcja Obiekt (jego stan) oraz implementacja metod jest pamiętana na serwerze Wykonanie metody powoduje odwołanie się do zdalnego obiektu, wykonanie metody na serwerze i zwrócenie klientowi wyniku Serwer dba o spójność danych, wielodostęp, transakcyjność etc Marcin Młotkowski Programowanie obiektowe 21 / 29

Postulaty dotyczące takiego środowiska Jednolity dostęp do obiektów lokalnych i odległych Łatwość tworzenia odwołań do odległych obiektów Niezależność standardów od platformy Marcin Młotkowski Programowanie obiektowe 22 / 29

Architektura Aplikacja Serwer obiekt proxy stub Marcin Młotkowski Programowanie obiektowe 23 / 29

Broker Klient Serwer Klient Serwer Broker Klient Serwer Serwer Marcin Młotkowski Programowanie obiektowe 24 / 29

Środowiska obiektów rozproszonych Java RMI CORBA SOAP DCOM Marcin Młotkowski Programowanie obiektowe 25 / 29

Java RMI RMI Remote Method Invocation Współpraca tylko między aplikacjami napisanymi w Javie java.rmi.* Całe środowisko jest częścią SDK Marcin Młotkowski Programowanie obiektowe 26 / 29

CORBA Zbiór standardów opracowanych przez OMG (Object Management Group) Niezależność od platformy/sprzętu/języka Implementacje: VisiBroker, ORBit Bardzo obszerna specyfikacja Marcin Młotkowski Programowanie obiektowe 27 / 29

SOAP Simple Object Access Protocol Oparty na XML Standard W3C Implementacje:.NET Remoting, Apache SOAP.NET Remoting: również realizacja binarna Marcin Młotkowski Programowanie obiektowe 28 / 29

DCOM Distributed Component Object Model Implementacja tylko na systemy Microsoftu Uznany za przestarzały na rzecz.net Remoting Marcin Młotkowski Programowanie obiektowe 29 / 29