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

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

Technologie COM i ActiveX COM - Component Object Model

OLE: Pojęcia podstawowe

Dostrzeżenie ograniczeń schowka [koniec lat 80-tych] OLE 1.0 [1991]

Komunikacja i wymiana danych

Programowanie obiektowe

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

Microsoft Interface Definition Language

1.1. Kontrolki ActiveX. Kontrolki ActiveX. Technologia ActiveX. Technologia ActiveX. Technologia ActiveX. Technologia ActiveX.

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

Programowanie MorphX Ax

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

Programowanie współbieżne i rozproszone

Podstawy programowania. Wprowadzenie

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

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

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych

Obiekty w plikach wykonywalnych, marshaling

Projektowanie architektury systemu. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Zdarzenia (events, connection points)

Wypożyczalnia VIDEO. Technologie obiektowe

Integracja systemów sterowania i sterowanie rozproszone 5 R

Remote Method Invocation 17 listopada 2010

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

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Microsoft Visual Basic kontra Borland Delphi W wojnie o szybkość. Jacek Szarapa

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Podejście obiektowe do budowy systemów rozproszonych

Interfejs IUnknown. Każdy obiekt COM musi implementować interfejs IUnknown, który zawiera trzy metody:

Wprowadzenie. Dariusz Wawrzyniak 1

Wprowadzenie do technologii OPC

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania interfejsu automatyzacji OLE w systemie CAx

Integracja aplikacji opartych na Forms 5.0 z narzędziem do prezentowania map MapInfo Professional

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Instrukcja laboratoryjna nr.4

Aplikacje RMI

COOPERATION TASKS IN SERVER OF INFORMATION SCRIPTING SYSTEM

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Systemy Rozproszone Technologia ICE

SYSTEM SCADA DO OCHRONY KATODOWEJ SCADA SYSTEM FOR CATHODIC PROTECTION

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

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

Aplikacje w środowisku VBA. Visual Basic for Aplications

Język programowania. Andrzej Bobyk

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

METODY URUCHAMIANIA PROGRAMÓW JĘZYKA AutoLISP W ŚRODOWISKU AutoCAD

76.Struktura oprogramowania rozproszonego.

Middleware wprowadzenie października 2010

Luxriot VMS. Dawid Adamczyk

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

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

Middleware wprowadzenie października Dariusz Wawrzyniak (IIPP) 1

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

RPC Remote Procedural Call. Materiały do prezentacji można znaleźć na stronie:

//////////////////////////////////////////////////////////// // Kalkulator (prosty) - wersja agregowalna import "unknwn.idl";

Copyright by K. Trybicka-Francik 1

Wzorce projektowe. dr inż. Marcin Pietroo

Projektowanie logiki aplikacji

Kolejkowanie wiadomości Standard MQ (JMS)

Droga do DCOM DCOM (1996) Windows clipboard (1987) OLE 1 DDE (1992) OLE 2 (1993) COM (1995) Distributed computing (1980s)

Szczególne problemy projektowania aplikacji internetowych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Podejście obiektowe do budowy systemów rozproszonych

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

Autor: Bączkowski Karol Promotor: dr inż. Paweł FIGAT

Zakres tematyczny dotyczący podstaw programowania Microsoft Office Excel za pomocą VBA

EXSO-CORE - specyfikacja

Aplikacje RMI Lab4

SIMON SAYS ARCHITECTURE! Usługi zdalne. Technologie, techniki i praktyki implementacji

UML cz. II. UML cz. II 1/38

Informatyka, I stopień. Programowanie (PRO300.2)

Programowanie Komponentowe WebAPI

Kontrolka ActiveX Internet Explorer w aplikacji wizualizacyjnej InTouch

Integracja Systemów Sterowania OPC

Programowanie obiektowe

Przegląd i ewaluacja narzędzi do szybkiego tworzenia interfejsu użytkownika (RAD).

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Opis. Wykład: 30 Laboratorium: 30

Projektowanie obiektowe oprogramowania Wzorce architektury aplikacji (2) Wykład 10 Inversion of Control Wiktor Zychla 2013

Zdalne uruchamianie obiektów COM

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

Kurs Wizualizacja z WinCC SCADA - Zaawansowany. Spis treści. Dzień 1. I VBS w WinCC podstawy programowania (zmienne, instrukcje, pętle) (wersja 1410)

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

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

Systemy rozproszone System rozproszony

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

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Dokumentacja aplikacji Szachy online

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Platformy programistyczne:.net i Java WYKŁ AD 3: WPROWADZENIE DO PL ATFORMY.NET / JĘZYK C#

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Automatyzacja Testowania w WEB 2.0

Visual VM, Java Management extension i inne ciekawostki

Język Java część 2 (przykładowa aplikacja)

EJB 3.0 (Enterprise JavaBeans 3.0)

Mechanizmy pracy równoległej. Jarosław Kuchta

Diagramy klas. dr Jarosław Skaruz

Transkrypt:

Programowanie składnikowe w modelu COM wprowadzenie Jarosław Francik COM - Component Object Model Programowanie składnikowe Programowanie składnikowe 1 Program - monolit 1 Program składnikowy Składnik A Składnik B Składnik C Składnik D Składnik E 1

Architektura składnikowa a architektura klient serwer Architektura klient-serwer Program składnikowy Serwer Składnik A A B Składnik B Składnik C Programowanie obiektowe a programowanie składnikowe 1 Interfejs: Grupa właściwości i metod implementowanych przez klasę. Kontrakt pomiędzy klientem a składnikiem 1 C++: Dziedziczenie 1 COM: Interfejsy i ich implementacja 1 Java: : Jedno i drugie Programowanie składnikowe podejście firmy Microsoft 1 COM - Common Object Model OLE - Object Linking and Embedding Automatyzacja - Automation (dawniej: Automatyzacja OLE) ActiveX DirectX DAO - Data Access Objects DCOM - Distributed COM 1 COM+ - technologia dla XXI wieku 2

Programowanie składnikowe podejście firmy Microsoft Obiekt COM Programowanie składnikowe podejście firmy Microsoft 1 Obiekt: kombinacja danych i metod 1 Klasy i interfejsy COM pozwala stosować wiele interfejsów dla jednej klasy 1 Hermetyzacja 1 Polimorfizm 1 Dziedziczenie COM zapewnia tylko dziedziczenie interfejsów Programowanie składnikowe podejście firmy Microsoft 1 Obiektowość 1 Spójność 1 Niezależność od języka 1 Kontrola wersji 3

Interfejsy Składnik COM QueryInterface() {...} ptr #1 ptr #2 AddRef() {...} ptr #3 Release() {...} ptr #4 ptr #5 LookUpWord() {...} ptr #6 AddToDictionary() {...} vtable RemoveFromD...() {...} Interfejsy są niezmienne Dodanie nowej funkcjonalności wymaga zdefiniowania nowego interfejsu Typy składników COM 1 Składniki wewnątrzprocesowe - DLL 1 Składniki zewnątrzprocesowe,, lokalne - EXE 1 Składniki zewnątrzprocesowe,, zdalne 1 Formanty OLE (wewnątrzprocesowe( wewnątrzprocesowe) - OCX 4

Składniki wewnątrzprocesowe 1 Działają w obrębie procesu klienta 1 Korzystają z przestrzeni adresowej klienta 1 Mniejsza stabilność 1 Wysoka wydajność Składniki zewnątrzprocesowe Przetwarzanie żądań klienta w osobnym procesie i wątku Osobna przestrzeń adresowa Wysoka stabilność Niższa wydajność (przekazywanie danych poprzez granice procesów) Możliwość uruchomienia jako niezależnej aplikacji Przydatne przy automatyzacji i w DCOM Przetwarzanie rozproszone w relacji klient - serwer 1 Korzystanie z lokalnego składnika KLIENT PROXY COM STUB SERWER 1 Korzystanie ze zdalnego składnika KLIENT PROXY STUB PROXY STUB SERWER DCOM (RPC) 5

Automatyzacja 1 Programowalność 1 Udostepnianie interfejsów 1 Użytkowanie za pomocą Visual Basic 1 Uproszczone interfejsy : dispatch interfaces (dispinterfaces) Interfejsy (przypomnienie) Składnik COM QueryInterface() {...} ptr #1 ptr #2 AddRef() {...} ptr #3 Release() {...} ptr #4 ptr #5 LookUpWord() {...} ptr #6 AddToDictionary() {...} vtable RemoveFromD...() {...} dispinterface :: ::Invoke Składnik COM vtable Invoke() { switch(dispid) } 1: Metoda1( ) 2: Metoda2( ) 3: Metoda3( ) dispinterface 6

vtable vs. 1 Visual Basic 1 C++ vtable 1 Automatyzacja na ogół 1 dual interfaces ActiveX Interfejsy (przypomnienie) Składnik COM QueryInterface() {...} ptr #1 ptr #2 AddRef() {...} ptr #3 Release() {...} ptr #4 ptr #5 LookUpWord() {...} ptr #6 AddToDictionary() {...} vtable RemoveFromD...() {...} 7

dispinterface :: ::Invoke (przypomnienie) Składnik COM vtable Invoke() { switch(dispid) } 1: Metoda1( ) 2: Metoda2( ) 3: Metoda3( ) dispinterface Kontrolki ActiveX 1 Ewolucja: VBX Visual Basic Extension OLE Controls ActiveX Controls 1 Cechy: Składniki oparte na COM (IUnknown( IUnknown) Możliwość samorejestracji (np. przy pobieraniu z Internetu) Kontrolki ActiveX interfejs użytkownika Kontrolka ActiveX Kontener metody zdarzenia właściwości 8

Kontrolki ActiveX 1 Implementacja obejmuje wiele interfejsów COM (typu vtable) 1 Z punktu widzenia użytkownika widoczne są przede wszystkim dispinterfaces Kontrolki ActiveX IOlePlaceActiveObject IOleInPlaceObject IOleObject IDataObject IViewObject2 IRunnableObject IOleCache2 IPersistStorage IPersistStreamInit ISpecifyPropertyPages IConnectionPointContainer IConnectionPoint IProvideClassInfo2 IOleControl Kontrolka ActiveX Kontrolki ActiveX Kontener IOleInPlaceFrame IOleInPlaceUIWindow IOleInPlaceSite IOleClientSite IAdviseSink IOleControlSite IPropertyNotifySink (events) 9

Kontrolki ActiveX Kontener IOleInPlaceFrame IOleInPlaceUIWindow IOleInPlaceSite IOleClientSite IAdviseSink IOleControlSite IPropertyNotifySink (events) IOlePlaceActiveObject IOleInPlaceObject IOleObject IDataObject IViewObject2 IRunnableObject IOleCache2 IPersistStorage IPersistStreamInit ISpecifyPropertyPages IConnectionPointContainer IConnectionPoint IProvideClassInfo2 IOleControl Kontrolka ActiveX VB implementacja COM. Podsumowanie 1 Automatyzacja użycie interfejsu 1 Metody zdefiniowane w dispinterface i dostępne poprzez :: ::Invoke 1 Właściwości metody specjalnego typu dostępne w dispinterface 1 Zdarzenia wywoływanie metod dispinterface kontenera (odwrócenie sytuacji: kontener jest serwerem) VB implementacja COM. Podsumowanie Przy implementacji wszystkich typów składników COM Visual Basic korzysta z elementów technologii ActiveX 10