Standard CORBA. Oprogramowanie systemów równoległych i rozproszonych Wykład 8. Zalety (I) Model komunikacji. Dr inż. Tomasz Olas
|
|
- Marian Skowroński
- 6 lat temu
- Przeglądów:
Transkrypt
1 Standard CORBA Oprogramowanie systemów równoległych i rozproszonych Wykład 8 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska CORBA (Common Object Request Broker Architecture) jest standardem przeznaczonym do kompleksowego tworzenia obiektowych aplikacji rozproszonych. Specyfikacja technologii CORBA została opracowana przez konsorcjum OMG (Object Management Group) utworzone w 1989 r. Zajmuje się ono rozwojem, adaptacja i promowaniem standardów dla rozwijania i rozpowszechniania aplikacji heterogenicznych i rozproszonych. Skupia ponad 800 czołowych firm rozwojowych, producentów sprzętu komputerowego oraz dostawców oprogramowania a także użytkowników (m. in. takie firmy jak: Apple, AT&T Digital, HP, Intel, Inprise, IBM, Novell, Oracle, Software AG, Sybase, Symantec, Xerox itd). Model komunikacji 1/47 Zalety (I) Wykład 8 p Centralnym elementem architektury CORBA jest ORB (Object Request Broker) jest odpowiedzialny za wszystkie operacje, jakie sa dokonywane pomiędzy klientem a programem implementujacym usługi, czyli serwerem. 3/47 Otwartość. Architektura CORBA jest otwartym rozwiazaniem opartym na opublikowanej specyfikacji. Uniwersalność. Jest niezależna od sprzętu i systemu operacyjnego. Współdziałajace komponenty moga działać na różnych architekturach sprzętowych i pod kontrola różnych systemów operacyjnych. (Jest zaimplementowana i obsługiwana na wielu różnych systemach operacyjnych). Elastyczność. Obiekt programowy zgodny z architektura CORBA posiada ściśle zdefiniowany interfejs, poprzez który odbywa się komunikacja. Zmiany w implementacji obiektu nie maja wpływu na inne obiekty, o ile nie zostanie zmieniony interfejs. Współpraca. Komunikacja pomiędzy obiektami programowymi zgodnymi z CORBA odbywa się przy wykorzystaniu protokołu IIOP. Obiekty programowe moga ze soba w pełni współpracować, nawet jeżeli działaja na różnych systemach operacyjnych i zostały utworzone z wykorzystaniem różnych języków programowania. Wykład 8 p
2 Zalety (II) Usługi CORBA Przenośność. Obiekty programowe zgodne ze standardem CORBA sa przenośne. To znaczy, że obiekty zbudowane na jednej platformie moga być wykorzystane na każdej innej z obsługiwanych platform. Obiektowość. Budowa aplikacji odbywa się zgodnie z zasadami techniki obiektowej. Przeźroczystość dostępu. Z punktu widzenia użytkownika (programisty) nie ma różnicy pomiędzy dostępem do lokalnych i zdalnych obiektów. Przeźroczystość położenia. Jest możliwy dostęp do obiektów bez konieczności określania ich położenia. usługa nazewnictwa (naming service) umożliwia obiektom wzajemna lokalizację przy wykorzystaniu ich nazw, usługa zdarzeń (event service) pozwala obiektom być subskrybentem kanału zdarzeń dzięki czemu moga oni być powiadamiani o wystapieniu określonych zdarzeń, usługa transakcji (transaction service) definiuje reguły transakcyjności, koordynuje dwufazowe zatwierdzanie operacji pomiędzy obiektami, usługa bezpieczeństwa (security service) zapewnia funkcję autentyfikacji, autoryzacji i szyfrowania. Służa one do ochrony danych i kontroli dostępu użytkowników do aplikacji i usług. 5/47 Wykład 8 p Schemat architektury aplikacji w Corbie Struktura mechanizmu ORB Warstwa ORB stanowi centralny obiekt Corby. Dlatego sposób jego budowy decyduje o tym, że Corba to technologia niezależna od platformy sprzętowo programowej. W architekturze ORG zdefiniowano pojęcie mostu, który odpowiada za dostęp do implementacji obiektu oraz komunikację z klientem. Most jest odpowiedzialny za unifikację danych przekazywanych w warstwie ORB. Pozwala on również na tworzenie domen, które odpowiedzialne sa za poszczególne obiekty Corby (umożliwia to np. ograniczenie dostępności pewnych obiektów, do których maja dostęp tylko klienci z wybranej dziedziny. 7/47 Wykład 8 p
3 Komunikacja między domenami ORB Adapter obiektu Za komunikację wewnatrz domeny odpowiada protokół o nazwie GIOP (The General Inter-ORB Protocol). Główne jego zadanie to zapewnienie komunikacji poszczególnym obiektom ORB. Do komunikacji pomiędzy domenami ORB została utworzona specyfikacja protokołu IIOP (Internet Inter-ORB Protocol). IIOP wykorzystuje stos TCP/IP do komunikacji. Dzięki protokołom GIOP i IIOP możliwy jest dostęp do Corby z poziomu różnych, nawet bardzo odmiennych od siebie, języków programowania. Realizacja wywołania zdalnej metody w Corbie wymaga, aby po stronie serwera znajdował się mechanizm, który jest odpowiedzialny za bezpieczeństwo tej operacji, utworzenia referencji do obiektu oraz za aktywację implementacji. Taki mechanizm nazywa się adapterem obiektu. W chwili obecnej CORBA zawiera dwa podstawowe typy adapterów: Adapter BOA (Basic Object Adapter) charakteryzuje się niskim poziomem skomplikowania w implementacji. Jego wada jest ograniczenie tylko do podstawowych operacji. Z tego powodu wielu producentów serwerów Corby dodaje do niego własne rozwiazania, co powoduje brak zgodności pomiędzy różnymi implementacjami. Adapter POA (Portable Object Adapter) zastępuje adapter BOA i zawiera brakujace operacje, które nie występuja w adapterze BOA. Wywołanie zdalnych operacji 9/47 Repozytorium Interfejsu Dostęp do zdalnych obiektów może odbywać się w sposób statyczny lub dynamiczny: Statyczne wywołanie operacji następuje poprzez pieniek IDL (ang. IDL stub). Programista specyfikuje pieniek wykorzystujac język IDL. Pieniek jest funkcja klienta, która pozwala statycznie wywoływać zdalne operacje poprzez wywołanie zwykłej lokalnej funkcji (badź metody w przypadku języka obiektowego np. C++). Dynamiczne wywołanie operacji. Aplikacja może w trakcie działania może dokonać specyfikacji usługi, która jest wymagana. Niezbędna jest przy tym informacja o interfejsie i o niezbędnych typach. Taka informację można otrzymać od programisty lub programowo z interfejsu repozytorium. Repozytorium Interfejsu umożliwia uzyskanie dostępu do interfejsów obiektów, operacji jakie sa przez nie udostępnione oraz parametrów i typów jakie sa w nich wykorzystywane. Można je traktować jako bazę danych zawierajac a definicję obiektów. Repozytorium interfejsu zawiera te same informacje, które znajduja się w plikach IDL. 11/47
4 Repozytorium Implementacji Tworzenie aplikacji Repozytorium Implementacji zawiera informacje o klasach serwera, instancjach obiektów i ich identyfikatorach. Wykorzystywane jest do zarzadzania obiektami. Używane jest również do lokalizacji i aktywacji zaimplementowanych obiektów. Obiekt po zarejestrowaniu w Repozytorium Implementacji uruchamiany jest automatycznie w momencie wystapienia żadania od klienta. Proces tworzenia aplikacji z wykorzystaniem technologii CORBA można podzielić na następujace etapy: zdefiniowanie interfejsów obiektów w IDL, generacja kodu pieńka klienta przy wykorzystaniu kompilatora IDL, utworzenie implementacji obiektu po stronie serwera (servant), utworzenie kodu klienta, utworzenie kodu serwera. OMG IDL 13/47 Składnia OMG IDL OMG IDL (Interface Definition Language - język definiowania interfejsu) jest podstawowym mechanizmem w Corbie umożliwiajacym odseparowanie interfejsu obiektu (deklaracji obiektu) od jego implementacji. Jest językiem typowo deklaracyjnym i nie pozwala na realizację obiektów. Gramatyka języka IDL jest podzbiorem ANSI C++ z dodatkowymi konstrukcjami, wspierajacymi mechanizm wywoływania operacji. 15/47
5 OMG IDL - typy danych (I) OMG IDL - typy danych (II) typy podstawowe: typy definiowane Deklaracja typu definiowanego (typedef) może być używana w celu przypisania nazwy do definicji dowolnego typu, np. typedef string MemoVal; W praktyce, typedef wykorzystuje się dla tablic i typów szablonowych. tablice IDL dostarcza możliwości tworzenia wielowymiarowych tablic stałego rozmiaru do przechowywania elementów dowolnego typu. Rozmiar każdego wymiaru musi być określony w definicji, np. typedef long CellValues[10][20]; Należy używać typedef dla tablic, które sa używane jako parametr, atrybut lub wartość zwracana. 17/47 OMG IDL - typy danych (III) OMG IDL - typy danych (IV) typy szablonowe sekwencja (sequence) Sekwencja jest zmiennej długości lista elementów dowolnego typu IDL. Sekwencje możemy określić jako jednowymiarowa tablicę zmiennej długości. Długość sekwencji może być ograniczona (określamy jej maksymalny rozmiar) lub nie. typedef sequence <octet,10> s1; typedef sequence <octet> s2; string String jest sekwencja znaków (char). Podobnie jak sekwencja może być ograniczony lub nie: typedef string <15> Name; typedef string Description; typ wyliczeniowy Jest to najprostszy z typów konstrukcyjnych. Przykład: enum Petcat, dog, fish, bird, rat, horse; struktury Struktura podobnie jak kilka elementów w IDL, ma te same możliwości jak w C++, a ponadto umożliwia tworzenie typów rekurencyjnych. Przykład: struct Osoba string<10> imie; string<10> nazwisko; long rok_urodzenia; ; 19/47
6 OMG IDL - typy danych (V) OMG IDL - moduł Unie Unia w IDL zawiera identyfikator pola określajacy, która zmienna składowa unii jest bieżaco przypisana z wartościa. union nazwa_unii switch(typ) case wielkość_stała_1: typ nazwa1; case wielkość_stała_2: typ nazwa2; default: typ nazwa; ; Przykład: union Reference switch(short) case 1:Title: string; Author: string; case 2: URL: string; case 3: TopicID: long; ; Moduł w IDL pełni rolę głównie porzadkow a (jest opcjonalny). Stanowi przestrzeń nazw i z tego powodu, gdy IDL jest tłumaczony na C++ jest automatycznie zamieniany na namespace. module BazaDanych Istnieje możliwość ponownego otwierania przestrzeni nazw, jaka stwarza moduł: module Modul1 module Modul2 module Modul1 OMG IDL - stałe 21/47 OMG IDL - interfejsy (I) IDL zezwala na deklaracje stałych - wykorzystane jest przy tym słowo kluczowego const: const unsigned long LenghtOfNameString=15; W IDL nie sa obsługiwane stałe typu octet. Liczby całkowite moga być określane z użyciem dziesiętnej (ang. decimal), ósemkowej (ang. octal) lub szesnastkowej (ang. hexadecimal) notacji. Interfejsy (ang. Interfaces) - definiuja zbiór metod (operacji), które moga być wywoływane klient. Można rozumieć je jako definicję klasy, bez zawartej w niej sekcji implementacyjnej. Interfejsy sa deklarowane z użyciem słowa kluczowego interface. Wewnatrz deklaracji interfejsu jest lista atrybutów i metod. Wszystkie metody sa publiczne. Przykład: interface Example1 readonly attribute string Name; attribute long Value; long AddToValue(in long Summand, out long Resualt); ; 23/47
7 OMG IDL - interfejsy (II) OMG IDL - atrybuty IDL dopuszcza trzy typy interfejsu: interfejs abstrakcyjny (abstract)- stanowiacy podstawę hierarchii obiektowej stosowanej w danej aplikacji, interfejs lokalny (local), interfejs zwykły, który stanowi obiekt publiczny w środowisku aplikacji. Zapis interfejsu przedstawia się następujaco: abstract local interface <nazwa> : lista dziedziczenia Interfejs może posiadać atrybuty. Atrybuty w przeciwieństwie do innych obiektowych języków programowania sa tylko publiczne. Deklaracja atrybutu w interfejsie jest poprzedzona słowem kluczowym attribute. Dodanie słowa kluczowego readonly powoduje, iż nowo zadeklarowany atrybut jest przeznaczony tylko do odczytu. Przykład: attribute float liczba; readonly attribute double suma; 25/47 OMG IDL - wyjatki OMG IDL - metody (I) Każdy interfejs może definiować wiele wyjatków (ang. exceptions), które zgłaszane sa momencie wystapienia błędu w trakcie wykonania operacji. interface Konto exception BrakSrodkow ; ; Po słowie kluczowym raises występuje lista wyjatków, które moga być zgłaszane podczas wykonania operacji. Podczas wykonania operacji moga być zgłaszane również wyjatki standardowe sygnalizowane przez ORB, które nie musza być wymieniane po słowie raises. Deklaracja metody zawiera typ zwracanej wartości, nazwę metody oraz jej parametry. Każdy parametr musi zawierać słowo kluczowe określajace kierunek przesyłanego parametru, typ parametru i jego nazwę. Stosowane sa następujace słowa kluczowe: in (kierunek wejściowy), out (kierunek wyjściowy), inout (kierunek wejściowo - wyjściowy). Klient po wywołaniu metody jest blokowany - oczekuje na zakończenie działania operacji i na zwrócona wartość. W przypadku, gdy klient nie musi czekać na zwracana wartość, to należy ja zadeklarować z użyciem słowa kluczowego oneway przed typem zwracanej wartości. 27/47
8 OMG IDL - metody (II) OMG IDL - dziedziczenie W celu określenia możliwości wystapienia wyjatków w metodzie należy użyć słowa kluczowego raises, po którym w nawiasach okragłych po przecinku należy wymienić nazwy wyjatków. Wyjatki powinny być zdefiniowane wcześniej słowem kluczowym exception. Przykład: interface Calka double Suma(in double a, in double b); double Iloczyn(in double a, in double b); interface Drzewo exception ObiektIstnieje ; void NowyElement(in double a) raises(obiektistnieje); oneway void Reorganizacja(); ; CORBA dopuszcza możliwość dziedziczenia przez interfejs atrybutów i metod innych interfejsów. interface Baza ; interface InterfejsPochodny: Baza ; CORBA umożliwia dziedziczenie wielokrotne, o ile interfejsy przodków nie maja definicji z identyczna nazwa. Wszystkie interfejsy IDL dziedzicza bezpośrednio od CORBA interface object. 29/47 OMG IDL - dyrektywy preprocesora Interfejs obiektu w IDL W plikach IDL moga zostać wykorzystane dyrektywy preprocesora: #define #elif #else #endif #ifdef #ifndef #include Przykład: Plik kalkulator.idl: interface Kalkulator double dodaj(in double x1, in double x2); ; #include <baza.idl> 31/47
9 Generacja szkieletu w C++ POA - architektura (I) W przypadku implementacji omniorb kompilator IDL nazywa się omniidl. Standardowo do wygenerowania kodu w języku C++ wykorzystywana jest opcja -bcxx: omniidl -bcxx kalkulator.idl w wyniku otrzymujemy dwa pliki: kalkulator.hh kalkulatorsk.cc Po dodaniu opcji -Wbexample (omniidl -bcxx -Wbexample hello.idl) wygenerowany zostaje ponadto plik kalkulator_i.cc. POA zawiera kilkanaście komponentów dość precyzyjnie zdefiniowanych w specyfikacji: Klient - Program wywołujacy operacje na obiektach poprzez ich referencję. Serwer - Program odpowiedzialny za realizację zadań stawianych przez klienta. Zawiera implementację obiektów servant oraz POA. Obiekt - W architekturze POA oznacza abstrakcyjna jednostkę zdefiniowana dzięki technologii CORBA. Każdy obiekt zawiera identyfikator, interfejs i implementację interfejsu. Servant - Stanowi jednostkę (obiekt) w języku programowania użytym do implementacji interfejsu. Jest to element programu serwera. Menadżer servant - Obiekt tworzony przez programistę, przeznaczony do kontroli poszczególnych obiektów servant (np. do ich tworzenia oraz usuwania). POA - architektura (II) 33/47 Hierarchia obiektów POA komponenty POA cd.: ObjectID - Identyfikator obiektu - jest niepowtarzalnym ciagiem wartości typu octec (może być wygenerowany przez system lub podany przez użytkownika). Referencja obiektu - Służy do określania położenia obiektu oraz zawiera identyfikatory nadane przez POA. Policy - Definiuje zachowanie obiektów implementowanych przez POA. POA - Jednostka składowa programu serwera (zawiera pozostałe elementy architektury jak servant czy inne obiekty POA). Menadżer POA - Umożliwia zmianę stanów obiektów POA (kolejkowanie poszczególnych żadań, odrzucanie, tworzenie nowych oraz usuwanie obiektów POA). Obiekty POA tworza hierarchię. Pierwszym obiektem występujacym w każdym serwerze jest korzeń hierarchii POA (RootPOA). W przeciwieństwie do pozostałych obiektów POA korzeń zawsze jest dostępny i nie trzeba go tworzyć. Pozostałe obiekty POA moga być tworzone przy użyciu RootPOA badź przez menadżera POA. Zadaniem obiektów POA jest przechowywanie obiektów servant. 35/47
10 AOM Zmiana stanu obiektu POA (I) Obiekt POA zawiera specjalny obiekt o nazwie Active Object Map (AOM) - mapa aktywnych obiektów. Gdy do obiektu POA przychodzi żadanie od klienta, adapter sprawdza, czy w AOM istnieje referencja do obiektu. Jeżeli taka referencja istnieje, to odszukiwany jest odpowiedni obiekt servant. W przypadku braku referencji POA odwołuje się do domyślnego obiektu servant lub do menadżera obiektów servant, których zadaniem jest utworzenie nowego lub odszukanie istniejacego obiektu servant. Każdy obiekt POA jest wyposażony w menadżera, którego zadaniem jest zmiana stanu obiektu POA. Obiekt POA może znajdować się w jednym z czterech stanów: active - żadania sa obsługiwane na bieżaco, holding - żadania sa dołaczane do kolejki, discarding - żadania sa odrzucane, a klient otrzymuje wyjatek TRANSIENT, inactive - żadania nie sa obsługiwane, obiekt POA jest w trakcie procedury usuwania. Zmiana stanu obiektu POA (II) 37/47 CORBA - przykład Po wywołaniu metody create_poa obiekt POA znajduje się w stanie holding. Przetwarzanie żadań odbywa się dopiero po wywołaniu metody activate z menadżera POA. Usunięcie obiektu może zostać wykonane poprzez przez wywołanie metody menadżera deactivate. Proces tworzenia aplikacji z wykorzystaniem technologii CORBA można podzielić na następujace etapy: zdefiniowanie interfejsów obiektów w IDL, generacja kodu pieńka klienta przy wykorzystaniu kompilatora IDL, utworzenie implementacji obiektu po stronie serwera (servant), utworzenie kodu klienta, utworzenie kodu serwera. 39/47
11 Interfejs obiektu w IDL Generacja szkieletu w C++ Plik hello.idl: interface Hello string say_hello(in string client); ; W przypadku implementacji omniorb kompilator IDL nazywa się omniidl. Standardowo do wygenerowania kodu w języku C++ wykorzystywana jest opcja -bcxx: omniidl -bcxx hello.idl w wyniku otrzymujemy dwa pliki: hello.hh hellosk.cc Po dodaniu opcji -Wbexample (omniidl -bcxx -Wbexample hello.idl) wygenerowany zostaje ponadto plik hello_i.cc. 41/47 hello.hh (I) hello.hh (II) class Hello; class _objref_hello; class _impl_hello; typedef _objref_hello* Hello_ptr; typedef Hello_ptr HelloRef; class Hello public: // Declarations for this interface type. typedef Hello_ptr _ptr_type; typedef Hello_var _var_type; static _ptr_type _duplicate(_ptr_type); static _ptr_type _narrow(corba::object_ptr); static _ptr_type _unchecked_narrow(corba::object_ptr); static _ptr_type _nil(); // for internal use ; class _objref_hello : public virtual CORBA::Object, public virtual omniobjref public: char* say_hello(const char* client); // for internal use ; class _impl_hello : public virtual omniservant public: virtual ~_impl_hello(); virtual char* say_hello(const char* client) = 0; ; class POA_Hello : public virtual _impl_hello, public virtual PortableServer::ServantBase public: virtual ~POA_Hello(); inline ::Hello_ptr _this() return (::Hello_ptr) _do_this(::hello::_pd_repoid); ; 43/47
12 Servant Serwer class Hello_impl : public POA_Hello public: virtual char * say_hello(const char * client); ; char * Hello_impl::say_hello(const char * client) cout << "omniorb C++ server: " << client << endl; char * server = CORBA::string_alloc(32); strncpy(server, "omniorb C++ server", 32); return server; Typowe czynności jakie powinien wykonać serwer moga wygladać następujaco: nawiazanie kontaktu z ORB, uzyskanie obiektu-korzenia POA, odczytanie menadżera, utworzenie obiektu zawierajacego implementacje interfejsu, aktywacja implementacji, zapis IOR, aktywacja menadżera, uruchomienie pętli zdarzeń ORB. 45/47 Usługa nazw Kod serwera II Klient może na różne sposoby uzyskać referencje do zdalnego obiektu. Wygodnym mechanizmem jaki może być w tym celu wykorzystany jest mechanizm o nazwie usługa nazw (Naming Service). Umożliwia ona na identyfikacje obiektów posługujac się ich nazwami symbolicznymi. int main(int argc, char ** argv) try CORBA::ORB_ptr orb = CORBA::ORB_init(argc, argv); CORBA::Object_var poa_obj = orb->resolve_initial_references("rootpoa"); PortableServer::POA_var poa = PortableServer::POA::_narrow(poa_obj); PortableServer::POAManager_var manager = poa->the_poamanager(); Hello_impl * service = new Hello_impl; try CORBA::Object_var ns_obj = orb->resolve_initial_references("nameservice"); if (!CORBA::is_nil(ns_obj)) CosNaming::NamingContext_ptr nc = CosNaming::NamingContext::_narrow(ns_obj); CosNaming::Name name; name.length(1); name[0].id = CORBA::string_dup("TestServer"); name[0].kind = CORBA::string_dup(""); nc->rebind(name, service->_this()); cout << argv[0] << ": server TestServer bound" << endl; catch (CosNaming::NamingContext::NotFound &) cerr << "not found" << endl; catch (CosNaming::NamingContext::InvalidName &) cerr << "invalid name" << endl; catch (CosNaming::NamingContext::CannotProceed &) cerr << "cannot proceed" << endl; manager->activate(); orb->run(); delete service; orb->destroy(); catch (CORBA::UNKNOWN) cerr << "unknown exception" << endl; catch (CORBA::SystemException &) cerr << "system exception" << endl; 47/47
13 Kod klienta II int main(int argc, char ** argv) try CORBA::ORB_ptr orb = CORBA::ORB_init(argc, argv); Hello_ptr hello = 0; try CORBA::Object_var ns_obj = orb->resolve_initial_references("nameservice"); if (!CORBA::is_nil(ns_obj)) CosNaming::NamingContext_ptr nc = CosNaming::NamingContext::_narrow(ns_obj); CosNaming::Name name; name.length(1); name[0].id = CORBA::string_dup("TestServer"); name[0].kind = CORBA::string_dup(""); CORBA::Object_ptr obj = nc->resolve(name); if (!CORBA::is_nil(obj)) hello = Hello::_narrow(obj); catch (CosNaming::NamingContext::NotFound &) cerr << "not found" << endl; catch (CosNaming::NamingContext::InvalidName &) cerr << "invalid name" << endl; catch (CosNaming::NamingContext::CannotProceed &) cerr << "cannot proceed" << endl; if (!CORBA::is_nil(hello)) char * server = hello->say_hello("omniorb C++ client"); cout << "answer from: " << server << endl; CORBA::string_free(server); orb->destroy(); catch (CORBA::UNKNOWN) 49/47
Programowanie współbieżne i rozproszone
Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)
Bardziej szczegółowoCommon Object Request Broker Architecture (CORBA)
Budowa aplikacji sieciowych Common Object Request Broker Architecture (CORBA) dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Standard Corba
Bardziej szczegółowoPlan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone
Plan wykładu CORBA Wprowadzenie Architektura CORBA IDL język definicji interfejsów ORB Object Request Broker Usługi i POA Aplikacje CORBA tworzenie serwera tworzenie klienta Aplikacje rozproszone Cechy
Bardziej szczegółowoZdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu
Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja
Bardziej szczegółowoOprogramowanie systemów równoległych i rozproszonych Wykład 7
Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie
Bardziej szczegółowoKurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
Bardziej szczegółowoWywoływanie metod zdalnych
Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia
Bardziej szczegółowoKurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016
Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,
Bardziej szczegółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowoWywoływanie metod zdalnych
Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia
Bardziej szczegółowoKurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
Bardziej szczegółowoProtokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP. Paweł Kozioł p.koziol@students.mimuw.edu.pl
Protokoly w technologii obiektow rozproszonych - CORBA, RMI/IIOP, COM, SOAP Paweł Kozioł p.koziol@students.mimuw.edu.pl Na początek - moja praca magisterska Narzędzie dla środowiska Eclipse wspierające
Bardziej szczegółowoKurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Bardziej szczegółowo1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Bardziej szczegółowoWyjątki (exceptions)
Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak 1
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak
Bardziej szczegółowo1 Atrybuty i metody klasowe
1 Atrybuty i metody klasowe Składowe klasowe (statyczne) Każdy obiekt klasy posiada własny zestaw atrybutów. Metody używają atrybutów odpowiedniego obiektu. Czasem potrzeba atrybutów wspólnych dla wszystkich
Bardziej szczegółowoAplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów
Bardziej szczegółowoProgramowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoJava RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoSzablony funkcji i klas (templates)
Instrukcja laboratoryjna nr 3 Programowanie w języku C 2 (C++ poziom zaawansowany) Szablony funkcji i klas (templates) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp
Bardziej szczegółowoRozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury
Rozproszone systemy internetowe Wprowadzenie. Koncepcja zdalnego wywołania procedury Zakres tematyczny przedmiotu Aplikacje rozproszone Technologie /standardy internetowe Programowanie obiektowe 2 Co będzie
Bardziej szczegółowoPodejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia
Bardziej szczegółowoJava RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoKlasy abstrakcyjne i interfejsy
Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie
Bardziej szczegółowoUML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.
UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami
Bardziej szczegółowoWstęp do programowania
wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych
Bardziej szczegółowoPodczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
Bardziej szczegółowoFunkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów
Funkcje. Spotkanie 5 Dr inż. Dariusz JĘDRZEJCZYK Tworzenie i używanie funkcji Przekazywanie argumentów do funkcji Domyślne wartości argumentów Przeładowanie nazw funkcji Dzielenie programu na kilka plików
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Bardziej szczegółowoSystemy Rozproszone Technologia ICE
Systemy Rozproszone Technologia ICE Zespół Systemów Rozproszonych () Katedra Informatyki AGH Kraków Kornel Skałkowski skalkow@agh.edu.pl Opracowano na podstawie książki: Henning M, Spruiell M. Distributed
Bardziej szczegółowoRemote Method Invocation 17 listopada 2010
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoPARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
Bardziej szczegółowoRemote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1
interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów
Bardziej szczegółowoWstęp do Programowania 2
Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 5 W programowaniu obiektowym programista koncentruje się na obiektach. Zadaje sobie pytania typu:
Bardziej szczegółowoWprowadzenie do szablonów szablony funkcji
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
Bardziej szczegółowoInterfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Bardziej szczegółowoServer-Side C++ Mapping
Server-Side C++ Mapping Streszczenie Pojęcia podstawowe Przekazywanie parametrów Zgłaszanie wyjątków Tie classes ORB, POA i serwant request ORB POA Manager POA Servants Mapping dla interfejsów IDL: Interface
Bardziej szczegółowoZdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1
Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego
Bardziej szczegółowoPodejście obiektowe do budowy systemów rozproszonych
Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm
Bardziej szczegółowoProjektowanie klas c.d. Projektowanie klas przykład
Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegółowo76.Struktura oprogramowania rozproszonego.
76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie
Bardziej szczegółowoTworzenie aplikacji rozproszonej w Sun RPC
Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki
Bardziej szczegółowoProgramowanie Obiektowe Ćwiczenie 4
Programowanie Obiektowe Ćwiczenie 4 1. Zakres ćwiczenia wyjątki kompozycja 2. Zagadnienia Założeniem, od którego nie należy odbiegać, jest by każdy napotkany problem (np. zatrzymanie wykonywanej metody)
Bardziej szczegółowoSkładnia C++ Programowanie Obiektowe Mateusz Cicheński
Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory
Bardziej szczegółowoWprowadzenie do szablonów szablony funkcji
Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do
Bardziej szczegółowoCzęść 4 życie programu
1. Struktura programu c++ Ogólna struktura programu w C++ składa się z kilku części: część 1 część 2 część 3 część 4 #include int main(int argc, char *argv[]) /* instrukcje funkcji main */ Część
Bardziej szczegółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoSzablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowoMiddleware wprowadzenie października 2010
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak/middleware
Bardziej szczegółowoTEMAT : KLASY POLIMORFIZM
TEMAT : KLASY POLIMORFIZM 1. Wprowadzenie do polimorfizmu i funkcji wirtualnych w języku C++ Język C++ zakłada, że w pewnych przypadkach uzasadnione jest tworzenie klas, których reprezentanci w programie
Bardziej szczegółowoMiddleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl poznan pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak/middleware
Bardziej szczegółowoProgramowanie obiektowe
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
Bardziej szczegółowoProgramowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31
Programowanie w C++ Wykład 8 Katarzyna Grzelak 7 maja 2018 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31 STL - powtórzenie STL Standard Template Libarary standardowa biblioteka szablonów Składowe biblioteki:
Bardziej szczegółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoKurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Bardziej szczegółowoJAVA W SUPER EXPRESOWEJ PIGUŁCE
JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie
Bardziej szczegółowoKurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017
Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania
Bardziej szczegółowoSzablony. Szablony funkcji
Szablony Szablony sa mechanizmem ponownego wykorzystania kodu (reuse) W przypadku funkcji ponownie wykorzystany jest algorytm W przypadku klas ponownie wykorzystane sa wszystkie skladowe Deklaracja szablonu
Bardziej szczegółowoNarzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl
Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z
Bardziej szczegółowoPARADYGMATY PROGRAMOWANIA Wykład 2
PARADYGMATY PROGRAMOWANIA Wykład 2 Definiowanie klas w C++ - ciąg dalszy Lista inicjalizująca konstruktora Przeznaczenie - do inicjalizacji pól klasy z kwalifikatorem const i inicjalizacji obiektów składowych
Bardziej szczegółowoTworzenie aplikacji w języku Java
Tworzenie aplikacji w języku Java Wykład 1 Piotr Czapiewski Wydział Informatyki ZUT 2 października 2009 Piotr Czapiewski (Wydział Informatyki ZUT) Tworzenie aplikacji w języku Java 2 października 2009
Bardziej szczegółowoSwift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)
Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności
Bardziej szczegółowoProgramowanie obiektowe w języku C++ dr inż. Jarosław Forenc
Rok akademicki 2016/2017, Wykład nr 4 2/45 Plan wykładu nr 4 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017
Bardziej szczegółowoObiekty w plikach wykonywalnych, marshaling
Obiekty w plikach wykonywalnych, marshaling Komponent w pliku exe Odczyt IClassFactory komponencie umieszczonym w pliku dll ładowanym w przestrzeń adresową klienta następuje poprzez wywołanie eksportowanej
Bardziej szczegółowoIMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi
IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji
Bardziej szczegółowoJava. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak
Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego
Bardziej szczegółowoRemote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1
P d jś i bi kt d b d t ó Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java),wywiedziony idi z Remote obie kt aplikacja klie ncka interfe js serw
Bardziej szczegółowoMultimedia JAVA. Historia
Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania
Bardziej szczegółowoKlasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C
#import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:
Bardziej szczegółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
Bardziej szczegółowo1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Bardziej szczegółowoAbstrakcyjny typ danych
Abstrakcyjny typ danych Abstrakcyjny Typ Danych (abstract data type-adt): zbiór wartości wraz z powiązanymi z nimi operacjami; operacje są zdefiniowane w sposób niezależny od implementacji; operacje są
Bardziej szczegółowoWprowadzenie CORBA ORB
Plan wykładu 1. CORBA (Common Object Request Broker Architecture) wprowadzenie, rodzaje obiektów, typy i interfejsy, model operacji, struktura ORB, język IDL. 2. Przykład aplikacji rozproszonej CORBA.
Bardziej szczegółowoDeklaracja struktury w C++
Struktury to złożone typy danych pozwalające przechowywać różne informacje. Za pomocą struktur możliwe jest grupowanie wielu zmiennych o różnych typach w jeden obiekt. Strukturę można nazywać obiektem
Bardziej szczegółowoZaawansowane programowanie w języku C++ Klasy w C++
Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Bardziej szczegółowoZofia Kruczkiewicz, ETE8305_2 1
Wprowadzenie do programowania obiektowego w C++ 1. Główne zasady programowania obiektowego: hermetyzacja, dziedziczenie, polimorfizm 2. Pojęcie klasy: sposoby deklarowania i definiowania składowych klasy,
Bardziej szczegółowo2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
Bardziej szczegółowoJava - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Bardziej szczegółowoWstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this
Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE
Bardziej szczegółowoWspółbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Bardziej szczegółowoProgramowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Bardziej szczegółowoPodstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.
Podstawowe elementy proceduralne w C++ Program i wyjście Zmienne i arytmetyka Wskaźniki i tablice Testy i pętle Funkcje Pierwszy program // Niezbędne zaklęcia przygotowawcze ;-) #include using
Bardziej szczegółowoW2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :
Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;
Bardziej szczegółowoProgramowanie obiektowe, wykład nr 6. Klasy i obiekty
Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
Bardziej szczegółowoAda-95. Dariusz Wawrzyniak
Część I Wskaźniki Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Wskaźniki
Bardziej szczegółowoOprogramowanie systemów równoległych i rozproszonych. Wykład 6
Wykład 6 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 6 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Wykład 6 p.
Bardziej szczegółowoMateriały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
Bardziej szczegółowoAutomatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) { zdefiniuje. Integer::operator=(ri);
Przeciążanie operatorów [] Przykład: klasa reprezentująca typ tablicowy. Obiekt ma reprezentować tablicę, do której można się odwoływać intuicyjnie, np. Tab[i] Ma być też dostępnych kilka innych metod
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Bardziej szczegółowoPlan prezentacji. Budowa aplikacji w technologii Enterprise JavaBeans. Przegląd architektur: CORBA. Cele budowy aplikacji rozproszonych
Plan prezentacji Budowa aplikacji w technologii Enterprise JavaBeans Przegląd architektur aplikacji rozproszonych: CORBA,, Wprowadzenie do Enterprise JavaBeans () Budowa komponentów sesyjnych Budowa komponentów
Bardziej szczegółowoTEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
Bardziej szczegółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Bardziej szczegółowoJAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.
JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod
Bardziej szczegółowoKlasy abstrakcyjne, interfejsy i polimorfizm
Programowanie obiektowe 12 kwietnia 2011 Organizacyjne Klasówka będzie 20 IV 2011. Sale jeszcze są pertraktowane. Materiał do wyjątków włącznie. Można mieć swoje materiały nieelektroniczne. Wywołanie z
Bardziej szczegółowoWykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest
Bardziej szczegółowo