Komponens alapú programozás Bevezetés

Hasonló dokumentumok
A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Osztott alkalmazások fejlesztési technológiái Áttekintés

Enterprise JavaBeans 1.4 platform (EJB 2.0)

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

S01-7 Komponens alapú szoftverfejlesztés 1

A Java EE 5 plattform

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Komponens modellek. 3. Előadás (első fele)

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Áttekintés. Tartalom. Mi is az a Bean?

Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék

Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Komponens alapú fejlesztés

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

Osztott rendszerek (Distributed

Bevezető. Servlet alapgondolatok

Objektum orientált software fejlesztés (Bevezetés)

Osztott Objektumarchitektúrák

Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen

Objektumorientált paradigma és a programfejlesztés

Interfészek. PPT 2007/2008 tavasz.

S04-2 Elosztott alkalmazások készítése

UML (Unified Modelling Language)

Bevezetés a Java programozási nyelvbe

JAVA webes alkalmazások

Objektum orientált programozás Bevezetés

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

Bevezetés a Java programozási nyelvbe

S01-8 Komponens alapú szoftverfejlesztés 2

Elosztott rendszer architektúrák

Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

Komponens alapú szoftverfejlesztés. 1. Előadás Bevezetés

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Már megismert fogalmak áttekintése

Book Template Title. Author Last Name, Author First Name

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

Objektumorientált paradigma és programfejlesztés Bevezető

Mérnök informatikus (BSc) alapszak levelező tagozat (BIL) / BSc in Engineering Information Technology (Part Time)

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Interfészek. Programozás II. előadás. Szénási Sándor.

Szoftverarchitektúrák. 12. Sorozat portál (követelmény specifikáció)

A TANTÁRGY ADATLAPJA

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

Segédanyag: Java alkalmazások gyakorlat

Java I. A Java programozási nyelv

JNDI - alapok. Java Naming and Directory Interface

BMEVIHIM134 Hálózati architektúrák NGN menedzsment vonatkozások: II. Üzemeltetés-támogatás és üzemeltetési folyamatok

4. rész: Java Enterprise Edition bevezetı. Bakay Árpád dr. NETvisor kft (30)

A cloud szolgáltatási modell a közigazgatásban

Programozási nyelvek Java

Osztott rendszerek, Java EE. Általános bevezető

CORBA bevezetés. Paller Gábor Internet és mobil rendszerek menedzselése

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

Párhuzamos és Grid rendszerek

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Univerzális munkafolyamat szimulátor

A SZOFTVERTECHNOLÓGIA ALAPJAI

OOP. Alapelvek Elek Tibor

ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

JAVA PROGRAMOZÁS 2.ELŐADÁS

Szoftver-technológia II. Architektúrák dokumentálása UML-lel. Irodalom. Szoftver-technológia II.

Osztály tervezési szempontok és C++ implementációs ajánlások

Bárányfelhő vagy viharfelhő? A felhő alapú megoldások biztonsági kérdései. Császár Rudolf Műszaki fejlesztési vezető Digital Kft.

Alkalmazások architektúrája

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

Junior Java Képzés. Tematika

UML Feladatok. UML Feladatok

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Segédanyag: Java alkalmazások gyakorlat

Programming services of application software

eseményvezérelt megoldások Vizuális programozás 5. előadás

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 5. óra. Kocsis Gergely, Supák Zoltán

Adatstruktúrák, algoritmusok, objektumok

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

Utolsó módosítás:

Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Szoftver újrafelhasználás

Web Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform

Verifikáció és validáció Általános bevezető

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

C++ programozási nyelv

01. gyakorlat - Projektalapítás

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman

Átírás:

Komponens alapú programozás Bevezetés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Ez a tananyag felhasználja a TEMPUS S_JEP-12495-97 Network Computing Chapter 8 Developing of Network Computing Applications Component Based System Development (Lajos Ficsor) egyes részeit, magyar nyelvre fordítva Utolsó módosítás: 2007. 10. 08. Komponens alapú programozás KompAlap

Tartalom Miért kell a software komponens? A software komponens koncepció Komponens alapú programozás KompAlap / 2

Miért kell a software komponens? A többrészes (multi-tier) architektúra elválasztja legalább a prezentáció üzleti logika adatmanipuláció rétegeket, de ezek a rétegek még így is túl komplexek maradnak A rétegek további szétválasztása lehetséges és sokszor szükséges is Komponens alapú programozás KompAlap / 3

Miért kell a software komponens? (folyt.) Üzleti nyomás a minél rövidebb fejlesztési ciklus érdekében A komponensek segítik az újrahasználható részek fejlesztését Könnyebbé teszik a skálázható alkalmazások fejlesztését. Komponens alapú programozás KompAlap / 4

Mi a komponens? A komponens legjellegzetesebb tulajdonságai A komponens egy függetlenül telepíthető egység A komponens jól elhatárolt a környezetétől és más komponensektől Egy komponenst a használatához telepíteni kell Egy komponens sohasem telepíthető részlegesen A komponens magába zárja az általa nyújtott szolgáltatásokat A komponens felhasználójának nem kell ismernie a komponens felépítésének részleteit Komponens alapú programozás KompAlap / 5

Mi a komponens? (folyt. folyt.) A komponens egy harmadik fél számára fejlesztési egység (A component is a unit of third-party composition) Egy komponensnek elegendően zártnak kell lennie A komponenshez pontos specifikáció kell tartozzon Egy komponens a környezetével a jól definiált interface-én keresztül kommunikál Komponens alapú programozás KompAlap / 6

Mi a komponens? (folyt. folyt.) Egy komponensnek nincs perzisztens állapota Egy komponenst és a saját másolatát nem lehet megkülönböztetni lehetséges kivétel: nem funkcionális attribútumok (például licensz szám) Egy komponens tetszőleges példányban betölthető és aktivizálható egy adott rendszerben. A rendszerben jelenlevő másolatok száma lényegtelen. Komponens alapú programozás KompAlap / 7

Komponens és objektum összehasonlításasa Komponens Telepítési egység Kompozíció egysége Nincs perzisztens állapota Egységbe zárja a lehetséges funkcióit (features) Objektum Példányosítás egysége Van "terve" (osztály) Az osztály: újrafelhasználható egység Van perzisztens állapota Egységbe zárja az állapotát és a viselkedését Komponens alapú programozás KompAlap / 8

A komponenk omponens s definíci ciója A szakirodalom számos definíciót ismer. Mi az alábbit használjuk: Clemens Szyperski (Component Software, p.34) "Egy software komponens egy kompozíciós egység szerződésszerűen specifikált interfésszel és csak explicit módon függ a környezetétől. Egy software komponens függetlenül telepíthető és harmadik fél által kompozíciós egységként használható." Komponens alapú programozás KompAlap / 9

A definíci ció magyarázata Az előbbi definíció tömör, de több lényeges dolgot foglal össze. Jobb megértéséhez a továbbiakban kiemeljük és értelmezzük az egyes részeit. Komponens alapú programozás KompAlap / 10

A definíció része: A komponens interfésze "kompozíciós egység, szerződésszerűen specifikált interfésszel" Az interfész a kliens elérési pontja a komponens szolgáltatásaihoz Egy komponensnek több interfésze lehet a különböző igényű kliensek kiszolgálásához Direct (procedural) interfész Közvetlenül a komponens biztosítja Komponens alapú programozás KompAlap / 11

A komponens interfésze (folyt.) Indirect (object) interfész A komponens által elérhetővé tett objektum(ok) biztosítját Az indirekció módja: method dispatch (kb. metódus hívás továbbítás, továbbadás) Az objektum osztálya meghatározza az objektum interfészének implementációját Futásidőben egy metódus hívás feloldásánál az objektum megkeresi a cél objektum osztályát és a hívást az adott osztály megfelelő metódusához irányítja Komponens alapú programozás KompAlap / 12

has-a Word processing component 3 Word processor class has-a Text services class Indirekt interfész sz: egy példa 4 Text services mediator component 2 has-a Grammar checking component has-a Grammar checker class 1 Checker interface implements 1. A nyelvtani ellenőrző ismeri a közvetítőt (mediator) 2. A nyelvtani elemző regisztrálja magát - a közvetítő csak az absztrakt interfészt ismeri 3. A szövegszerkesztő tud a közvetítőről 4. A szövegszerkesztő szerez egy referenciát az aktuális nyelvtani ellenőrzőhöz (a szerkesztő csak az absztrakt ellenőrző interfészt ismeri) Komponens alapú programozás KompAlap / 13

Szerződésszer sszerű interfész Eredetileg: "contractually specified interface" Az interfész specifikáció egy szerződés között a kliens és a komponens, a kliens és a komponens készítője A szerződés rögzíti, mit kell a kliensnek tennie ahhoz, hogy használhassa az interfészt Elméletben a szerződés futásidőben finomítható Komponens alapú programozás KompAlap / 14

A szerződés s tartalma Minden operációra specifikálnia kell az alábbiakat: Prekondíciók: a kliensnek kell ezeket biztosítania az operáció igénybevétele előtt Postkondíciók: a komponensnek kell biztosítani, mielőtt visszatér a klienshez Specifikálni kell a működés helyességének szintjét: Részlegesen helyes (partially correctness): az operáció vagy helyes postkondíciókkal terminálódik, vagy egyátalán nem terminálódik Teljes helyesség (total correctness): az operáció mindenképpen terminálódik Komponens alapú programozás KompAlap / 15

A szerződés s tartalma (folytatás) A szerződés tartalmazhat a komponens működésére vonatkozó nem funkcionális követelményeket, mint például teljesímény rendelkezésre állás adatbiztonság kapacitás Komponens alapú programozás KompAlap / 16

Explicit környezeti k függf ggőség A definíció része: "csak explicit módon függ a környezetétől" Pontosan specifikáltnak kell lennie, mit kell a komponens környezetének biztosítania a komponens működéséhez más komponensektől igényelt interfészek a környező komponens világ pontos specifikációja (komponens modell fajtája, verziószáma). Például: CORBA x.x, Java x.x.x, COM/DCOM x.x Komponens alapú programozás KompAlap / 17

Komponens modellek lek Minden komponens modell egy adott osztott objektum modellt használ middleware-ként. A három legelterjedtebb komponens modell: Name Middleware Programming Platform Language JavaBeans/ Java RMI Java Any Enterprise JavaBeans ActiveX DCOM Any Microsoft CORBA Beans CORBA Any Any Komponens alapú programozás KompAlap / 18

References Component-based programming Clemens Szyperski: Component Software. Beyond the Object-Oriented Programing Addison-Wesley, 1999 Lajos Ficsor: Component based system development http://mazsola.iit.uni-miskolc.hu/tempus/discom/courses/net/component2.zip Komponens alapú programozás KompAlap / 19