CIM Core Model. Paller Gábor 2004.10.07. Internet és mobil rendszerek menedzselése



Hasonló dokumentumok
Bánsághi Anna 2014 Bánsághi Anna 1 of 31

és az instanceof operátor

UML (Unified Modelling Language)

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

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

Előzmények

S01-7 Komponens alapú szoftverfejlesztés 1

Programozási technológia

OOP: Java 8.Gy: Abstract osztályok, interfészek

JAVA PROGRAMOZÁS 2.ELŐADÁS

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

Metamodellezés. Simon Balázs BME IIT, 2011.

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus

Java programozási nyelv 5. rész Osztályok III.

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás I. 2. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Interfészek. PPT 2007/2008 tavasz.

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Már megismert fogalmak áttekintése

Utolsó módosítás:

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

OOP és UML Áttekintés

Programozás 1. 2.gyakorlat

Osztályok. 4. gyakorlat

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

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Enterprise JavaBeans 1.4 platform (EJB 2.0)

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

Programozási technológia

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

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.

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Objektumelvű programozás

OOP. Alapelvek Elek Tibor

Programozás II. ATM példa Dr. Iványi Péter

Objektumorientált programozás C# nyelven

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

Programozási nyelvek Java

JAVA PROGRAMOZÁS 3.ELŐADÁS

Programozási nyelvek Java

Programfejlesztési Modellek

III. OOP (objektumok, osztályok)

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

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

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

Modellalkotás UML-ben

A SZOFTVERTECHNOLÓGIA ALAPJAI

Név: Neptun kód: Pontszám:

Bevezetés a Python programozási nyelvbe

Bevezető. Servlet alapgondolatok

Java VII. Polimorfizmus a Java nyelvben

S0-02 Típusmodellek (Programozás elmélet)

OOP #14 (referencia-elv)

Java VII. Polimorfizmus a Java nyelvben

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

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

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

List<String> l1 = new ArrayList<String>(); List<Object> l2 = l1; // error

Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

ELTE SAP Excellence Center Oktatóanyag 1

Dr. Mileff Péter

UML Feladatok. UML Feladatok

Komponens alapú fejlesztés

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

Adatstruktúrák, algoritmusok, objektumok

Web-technológia PHP-vel

Objektumorientált paradigma és programfejlesztés Bevezető

Tartalom Kontextus modellek Viselkedési modellek Adat-modellek Objektum-modellek CASE munkapadok (workbench)

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

JNDI - alapok. Java Naming and Directory Interface

Objektumorientált programozás C# nyelven

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás Minta programterv a 2. házi feladathoz 1.

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

DEBRECENI EGYETEM INFORMATIKAI KAR. Az UML gyakorlati alkalmazásának bemutatása az AutoWorld rendszer tervezésén keresztül

Komplex záróvizsga témakörök Gazdaságinformatikus szak Pénzintézeti informatikus szakirány 2018

Utolsó módosítás:

Programozás módszertan p.1/46

Modell alapú tesztelés mobil környezetben

Programozási alapismeretek 4.

Generikus Típusok, Kollekciók

Programozási technológia I.

10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)

Utolsó módosítás:

ELTE, Informatikai Kar december 12.

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

Szekvencia diagram. Szekvencia diagram Dr. Mileff Péter

Abstract osztályok és interface-ek. 7-dik gyakorlat

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

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Models are not right or wrong; they are more or less useful.

TestLine - OO Programozás alapjai Minta feladatsor

Átírás:

CIM Core Model Paller Gábor 2004.10.07

Common Information Model CIM Általános formátum rendszerek leírására, mindenekelőtt (de nem kizárólag) menedzsment célból. A specifikáció magja a rendszerleírási koncepció, de az idők folyamán a CIM-hez egyéb specifikációk (pl. menedzsment protokollok) is kapcsolódtak A CIM-nek részei a Core Model és rendszerleíró modellek gyűjteményei (pl. CIM Application alkalmazásmenedzsment, CIM Device számítógépalkatrészek és perifériák, CIM Network hálózati elemek). A kész modellek specializálásával könnyen le lehet írni bármilyen konkrét rendszert A szabvány gazdája a Distributed Management Task Force (DMTF)

CIM koncepciók Objektum-orientált Instancia-osztály Öröklődés Asszociációk (objektumok kapcsolata) Örökölhető metódusok Core Model: minden CIM séma alapja A modellt UML-ben vagy a CIM saját objektumleíró nyelvén (MOF) írják le.

Unified Modeling Language UML Cél: a vevő és a szoftvergyártó által is megérthető módonleírni a rendszer aspektusait Grafikus alapú, szabványos diagramokból építkezik. Gyakorlatilag egy képi nyelv. Részei: usecasediagram osztálydiagram viselkedési diagramok állapotgép aktivitásdiagram szekvenciadiagram kollaborációs diagram implementációs diagramok komponensdiagram telepítési diagram

Usecasediagram Pálcikaember: szereplő (actor), ember vagy gép Ellipszis: felhasználói eset neve, amivel a szereplő kapcsolatban áll. Felhasználói eset: a rendszer használatának egy szcenáriója. Részei: előfeltételek, szereplők, sztori, utófeltételek

Állapotgép diagram Közbülső állapot állapotátmenet kezdőállapot végállapot esemény[feltétel]/akciók

Aktivitás diagram

objektum Szekvenciadiagram Esemény, kérés Életvonal Esemény, válasz

Kollaborációs diagram Szereplő objektum eseménysorrend+ esemény+ irány Esemény

Komponensdiagram Komponens: a rendszer kicserélhető része Interfész Model elem (pl. objektum) ami a komponens funkcióját megvalósítja

Telepítési diagram Szoftverkomponens az eszközön belül Fizikailag létező eszköz (pl. számítógép) Fizikai kapcsolat, pl. Ethernet Szoftver interfész

Osztálydiagram A legbonyolultabb és leggyakrabban használt UML diagram Osztályok és egyedeik leírására, valamint azok kapcsolatára való Igazában csak ez kell a CIM megértéséhez

Osztályok Osztály neve Változók Metódusok Vagy egyszerűen: Osztálynév

Variációk osztályokra Absztrakt osztály (nem hozhatók belőle létre egyedek, de le lehet belőle származtatni). Dőlt betű jelzi Absztrakt metódusok (az osztály nem implementálja, de a leszármazottaknak implementálniuk kell, különben ők is absztrakt osztályok lesznek) Láthatóság: + public (mindenki elérheti) - private (csak az osztályból látható) # - protected (csak az osztályból és leszármazottaiból látható) ~ - package (csak azokból az osztályokból látható, amik ugyanabban az UML csomagban vannak)

Osztály és egyedváltozók Osztályváltozó: egy osztályhoz egy van belőle. Egyedváltozó: az osztály minden egyedéhez van egy példány Egyedmetódus: osztály és egyedváltozókat is el tud érni. Osztálymetódus: csak osztályváltozókat tud elérni

Osztály és egyedei osztály "Order" egy egyede

Asszociációk Lakos Lakik * Az állandó lakcíme 1 Cím Megfejtés: Lakos lakik a címen Cím az állandó lakcíme a lakosnak Egy címhez több lakos tartozhat Egy lakosnak csak egy lakcíme lehete

Asszociációk (2) Lakos * 1 Cím Az asszociációnak lehet iránya. Ez lehetséges navigációs irányt jelent Megfejtés: Lakos lakik a címen Egy címhez több lakos tartozhat A cím objektum azonban nem tartalmaz információt a lakosokról, visszafelé navigálni nem lehet.

Asszociációs osztályok A Customer és a Video között a Rental osztály egyedei teremtenek kapcsolatot. A Customer Rental egyedeket tárol és a Rental egyedek hivatkoznak a Video egyedekre.

Leszármazás és megvalósítás Employee osztály a Person osztály leszármazottja Employee osztály megvalósítja a Person interfészt. Az interfész előírja, milyen attribútumoknak és metódusoknak kell lennie a megvalósító osztályban, de implementációt nem ad, azt a megvalósító osztálynak kell nyújtania.

Megvalósítás (2) A Drawing objektum a Circle objektumot az IFigure interfészen keresztül éri el.

Lehetséges variációk az ábrákra Ugyanazt jelenti

Aggregáció és kompozíció Aggregáció: a Computer egy vagy több HardwareDevice-ből áll. A Computer-t szétszerelhetem (megszűntethetem), de a HardwareDevice-ok megmaradnak, tehát a HardwareDevice-ok élettartama nem függ a Computer élettartamától. Kompozíció: A ShoppingBasket OrderItem-ekből áll. Az OrderItem-ek csak egy ShoppingBasket részeként élnek, önállóan nincs értelmük, így életciklusuk a ShoppingBasket életciklusához kötődik.

1. példa Minden QueueListener-hez tartozik egy Queue A QueueListener-nek része egy XMLParser, amivel az üzeneteket feldolgozza A QueueListener az üzeneteket EventAnalyser objektumoknak adja. Ezekből akármennyi lehet.

A ValveEvent még mindig absztrakt, mert az őse az Event és nem implementálja az astext-et 2. példa Az Event absztrakt osztály mert van egy astext() absztrakt metódusa A Failure egy Event leszármazott, már nem absztrakt, mert implemenálja az astext metódust A ValveOpened és ValveClosed osztályok nem absztraktak, van astext metódusuk.

Csomagok A csomagok a model elemeinek egy csoportját gyűjtik egy szimbólum alá. A csomagok újabb csomagokba gyűjthetők. Relációk: <<access>>, <<import>>

Vissza a CIM-hez

Gyenge asszociációk A CIM az UML-t a "gyenge asszociáció" fogalmával bővíti A gyenge asszociáció azt jelenti, hogy a csatolt objektum annak az objektumnak a névterében létezik, amihez csatolták. Példa: a számítógépben van egy c: meghajtó. Sok gépben van c: meghajtó, ezért ez a név csak akkor értelmes, ha megmondjuk, hogy a ws2347-es gép c: meghajtójáról van szó. A meghajtó objektum tehát gyenge asszociációval kötődik a számítógép objektumhoz. A gyenge asszociációval csatolt objektum kulcsai a csatoló objektum névterében léteznek (OSI terminológiával: ezek a kulcsok egy RDN részei) Egy System sok LogicalDevice-t tartalmazhat a SystemDevice asszociáción keresztül. A LogicalDevice kulcsai a System kulcsain keresztül értelmeződnek, ezért az asszociáció "gyenge".

CIM "top" objektumok ManagedElement az objektumfa gyökere Egy ManagedElement függőségeken keresztül kötődik más ManagedElement-ekhez és statisztikai adatok tartoznak hozzá A gyökérobjektum változatlanságának garantálása miatt más tulajdonságot itt nem definiáltak, ezeket a leszármazott osztályokban definiáljuk.

Managed Object Format Szöveges formátum: MOF [Abstract, Description ( "An abstraction or emulation of a hardware entity, that may " "or may not be Realized in physical hardware.... ") ] class CIM_LogicalDevice : CIM_LogicalElement { [Key, MaxLen (64) ] string DeviceID; [Description ( "Boolean indicating that the Device can be power managed....") ] boolean PowerManagementSupported; [Description ( "Requests that the LogicalDevice be enabled (\"Enabled\" " "input parameter = TRUE) or disabled (= FALSE)....)" ] uint32 EnableDevice([IN] boolean Enabled); };

Csak részlet! MOF (2) [] közötti szöveg: metainformáció (az osztály, attribútumok vagy metódusok leírása) Metainformáció: ez az osztály absztrakt, az ember által érthető leírása a Description() elemben van. class: A CIM_LogicalDevice osztály a CIM_LogicalElement leszármazottja A deviceid nevű attribútuma része a kulcsstruktúrának (ld. később) Van egy egy PowerManagementSupported nevű boolean attribútuma Van egy EnableDevice nevű metódusa, ami egy boolean-t vár paraméterül és egy 32 bites egészt ad vissza. [OUT] paraméter metainformáció lehetséges, a metódusnak lehet több visszatérési értéke.

Ugyanez UML-ben deviceid EnableDevice

Típusok megszorítása MOF-ban [ ValueMap {"1", "2", "3", "4", "5"}, Values {"Other", "Unknown", "Enabled", "Disabled", "Not Applicable"},.. ] uint16 StatusInfo; A ValueMap a megengedhető értékeket írja le (akkor is string, ha az alaptípus pl. egész, mert a CIM-ben minden stringre konvertálódik) A Values az érték szöveges reprezentációját adja (pl. menedzsment konzolon való kijelzésre) ValueMap elmaradhat, ekkor 0-tól egyesével számozza a felsorolást BitValues és BitMaps: használata hasonló a Value-ValueMap-hoz, de a BitMaps bitpozíciókat ír le és az alaptípust (pl. egészt) bitmap értékek tárolására használjuk.

Elnevezés CIM-ben Minden osztálynak van u.n. kulcsstruktúrája Ez attribútumok halmaza, amelyek kulcsként vannak megjelölve Az osztály konkrét egyede ezeken az attribútumokon keresztül található meg Ha az osztály gyenge asszociációval van csatolva egy másik osztályhoz, a másik osztály kulcsstruktúrája képezi az elnevezés felsőbb szintjét, aminek kontextusában az osztály kulcsstruktúrája értelmeződik.

Elnevezés CIM-ben: példa Kulcsok a CÍM_Cluster-ben és a CIM_UnitaryComputerSystem-ben: CreationClassName, Name "George" egyedi számítógép neve: CIM_UnitaryComputerSystem, George A cluster neve: CÍM_Cluster, George

Nem a Core Model része Nincs teljesen készen CIM események Objektumorientált eseménymodell a CIM részére Fogalmak Esemény (event): valami, ami érdekelheti az operátort, pl. egy memóriamodul tönkrement Jelzés (indication): konkrét üzenet, amit az ágens küld és a menedzselt rendszerben történt dolgokra vonatkozik, pl. paritáshiba az x. memóriamodulban. A jelzések eseményekre utalnak. A jelzést küldi az ágens, ebből az operátor, vagy a menedzselő rendszer eseményekre következtet. A jelzések számára a CIM objektumhierarchiát definiál A CIM jelzésobjektumok sokféle módon lehetnek kódolva, a CIM a CIM-XML kódolást definiálja (ld. később)

Fogadó (pl. menedzsment rendszer) CIM eseményarchitektúra A jelzés fizikai eljuttatása a fogadóhoz Komponens, ami ténylegesen elküldi a jelzést a fogadónak Ágens, ami nyilvántartja, milyen jelzésekre kiváncsi a fogadó A jelzés forrása (pl. hibafigyelő rendszer)

Jelzések CIM_ClassIndication: CIM osztály jött létre, módosult vagy pusztult el CIM_InstIndication: CIM egyed jött létre vagy pusztult el, metódusát hívták, attribútumát írták vagy olvasták CIM_ProcessIndication: minden, menedzselt rendszerrel kapcsolatos jelzés őse.

Példa: hogyan hozzunk létre saját jelzéseket CIM osztályok Az ACME gyártó osztályai: általános hiba és annak UPS hibára specializált változata.

Előfizetések: a jelzések szűrése Nagyon sok jelzés keletkezhet Egyes menedzsment rendszerek csak bizonyos jelzésekre lehetnek kiváncsiak A CIM eseménymodel az előfizetés (subscription) segítségével teremt kapcsolatot a generált jelzések és a fogadó között. Az előfizetések szintén menedzselhetők és számos módon keletkezhetnek (lehetnek előre létrehozottak, létrehozhatja őket az ágens, a menedzselt rendszer, stb.)

Előfizetések Szűrő: milyen jelzéseket küldjünk? Hova és milyen formátumban küldjük? Szabványos IndicationHandler: CIM_IndicationHandlerCIMXML

Szűrő példa Információ emberi operátoroknak Kulcsok: ez alapján menedzselhető az előfizetés Szűrő WQL nyelven. ACME_UPSAlertIndication-okat enged át, ahol a PerveivedServerity mező értéke Critical és a jelzés a /dev/tty0p1 portra csatolt UPS-től jött.