Kritikus rendszerek integrációja laboratórium

Hasonló dokumentumok
Kritikus rendszerek integrációja laboratórium

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Informatikai technológiák szakirány Rendszertervezés ágazat

BSc Témalaboratórum (BME VIMIAL00) Előzetes tájékoztató előadás 2018 ősz. Dr. Ráth István

Rendszermodellezés: házi feladat bemutatás

Dr. Ráth István

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Önálló laboratórium (BME VIMIA376 / VIMIAL01) és Szakdolgozat készítés (BME VIMIA411) Előzetes tájékoztató előadás 2018 tavasz

UNIX: folyamatok kommunikációja

FÉLÉVI KÖVETELMÉNYEK 2010/2011. tanév II. félév INFORMATIKA SZAK

Viczián István IP Systems JUM XIX szeptember 18.

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

JAVA webes alkalmazások

Vállalati információs rendszerek I, MIN5B6IN, 5 kredit, K. 4. A meghirdetés ideje (mintatanterv szerint vagy keresztfélében):

Dr. Pataricza András Dr. Ráth István

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

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

A felhőről általában. Kacsuk Péter MTA SZTAKI

ANDROID ALKALMAZÁS FEJLESZTÉS

TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS

Mikroelektronika Laboratórium

Felhők teljesítményelemzése felhő alapokon

Bevezetés a párhuzamos programozási koncepciókba

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

BEVEZETŐ Tantárgyi követelmények

BEVEZETŐ Tantárgyi követelmények

IBM felhő menedzsment

Nagy bonyolultságú rendszerek fejlesztőeszközei

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

01. gyakorlat - Projektalapítás

Digitális technika VIMIAA02

ALKALMAZÁS KERETRENDSZER

TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS

TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS

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

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

Programozási Technológia előadás bevezetés. Előadó: Lengyel Zsolt

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

Oracle9i Alkalmazás Szerver Üzleti folyamat integráció. Molnár Balázs Vezető értékesítési konzultáns Oracle Hungary

Digitális technika (VIMIAA02) Laboratórium 5.5

Dr. Ráth István

Integrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató

Apple Swift alapú alkalmazás fejlesztés gyakorlat. 1. Gyakorlat Bevezetés

Modell alapú tesztelés mobil környezetben

Rendszertervezés ágazat

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

A TANTÁRGY ADATLAPJA

Digitális technika VIMIAA02

Új generációs informatikai és kommunikációs megoldások ANMS. távközlési hálózatok informatikai hálózatok kutatás és fejlesztés gazdaságos üzemeltetés

Modellező eszközök, kódgenerálás

Áramlástechnikai gépek BMEGEVGAG02 és BMEGEVGAE01 Tematika és követelmények

Internet szolgáltatások és alkalmazások. Házi feladat október 15. gyakorlat

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

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Számítástechnika I. 0. Ea: Infó Mátrix (2016)

Programozási technológia 2.

webalkalmazások fejlesztése elosztott alapon

Tudásalapú információ integráció

Budapesti Műszaki és Gazdaságtudományi Egyetem Gazdaság- és Társadalomtudományi Kar. TANTÁRGY ADATLAP és tantárgykövetelmények február 1.

1. gyakorlat. Követelmények, tematika Bevezető

Gyakorlatok. VITMMA09 Okos város MSc mellékspecializáció

Folyamatok rugalmas irányítása. FourCorm Kft.

Gyakorlat és házi feladat tájékoztató

Miért is transzformáljunk modelleket? Varró Dániel

Számítástechnika I. 0. Ea: Infó Mátrix (2018)

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

ProofIT Informatikai Kft Budapest, Petzvál J. 4/a

Digitális technika VIMIAA01

TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS

A gazdaságinformatikus mesterszak tantervi hálója

Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben. Ráth István

Információs technológiák 0. Ea: Infó Mátrix (2015)

S01-8 Komponens alapú szoftverfejlesztés 2

Oktatási cloud használata

Statisztika 1. Tantárgyi útmutató

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

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

TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS

Információ menedzsment

stratégiai kutatási terve

Crawler.NET: Komponensalapú elosztott keretrendszer a web bejárására

TANTÁRGY ADATLAP és tantárgykövetelmények szeptember. Környezeti jog

Internet szolgáltatások és alkalmazások. Házi feladat október 1. gyakorlat

Adattárház kialakítása a Szövetkezet Integrációban, UML eszközökkel. Németh Rajmund Vezető BI Szakértő március 28.

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

A Java EE 5 plattform

RapidAnalytics Enterprise Edition bevezetés a Telenor Magyarországnál. Szakács Balázs - Telenor Magyarország Szücs Imre United Consult

TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS

Grid menedzsment megoldás az ARC köztesrétegben

Virtuális Obszervatórium. Gombos Gergő

S01-7 Komponens alapú szoftverfejlesztés 1

Neumann János Egyetem GAMF Műszaki és Informatikai Kar

TANTÁRGYI ADATLAP I. TANTÁRGYLEÍRÁS

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 0. TANTÁRGY ISMERTETŐ


Code review és continous integration toolok BME-MIT

Digitális technika VIMIAA02

Átírás:

Kritikus rendszerek integrációja laboratórium Hoszt gép CoolerMaster gépek o felhasználó: meres o jelszó: LaborImage Virtuális gép: o vmware-images: CSI-Lab-2017 o I copied it opció o felhasználó: meres o jelszó: LaborImage o A felhasználó sudo joggal rendelkezik

Kritikus rendszerek integrációja laboratórium Dr. Bergmann Gábor, Honfi Dávid, Klenik Attila, Semeráth Oszkár, Dr. Szatmári Zoltán, Szárnyas Gábor, Tóth Tamás Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Oktatott téma A tárgy célja o Szolgáltatás alapú rendszerintegráció Komponensek leírása, vezérlése, kommunikációja Monitorozás, elemzés, vizualizáció o Elosztott üzleti alkalmazások fejlesztése o Modell alapú folyamattervezés o Párhuzamos programozás Előfeltétel o Java alapismeretek o Angol dokumentáció megértése Oktatási módszer o Egyes technológiák kipróbálása egy egyszerű feladaton

A tárgy célja Féléven végighúzódó implementációs példafeladat o Szöveghasonlóság-vizsgálat üzletileg kritikus ajánlórendszerben o Részletes specifikáció a weben: https://github.com/ftsrg-csi/csi-lecture-notes/wiki/running-example o Az egyes mérések építenek a korábbiakon elkészült megoldásra! Segítséget adunk o Témánként bevezető segédanyag (nem tankönyv) https://github.com/ftsrg-csi/csi-lecture-notes/wiki o Személyes konzultáció a mérési alkalmak során o Virtuális gép telepített fejlesztő- és futtatókörnyezettel o Mérőpáronként GitHub repository Automatikus builddel, integrációs teszttel

Követelmények Csak olyan mérésre kapható érdemjegy, o amelyen a Hallgató részt vesz, o a mérés előtt az írásos ellenőrző kérdéseket legalább elégséges szinten megválaszolja, a beugrót komolyan vesszük! Aki felkészületlenül érkezik, az nem kezdheti el a mérést, és pótmérésen kell pótolnia! o a mérésen (mérőtárssal közösen) elvégzett munkáját a laborvezető személyes bemutatás alapján jóváhagyja, o és az elkészült megoldásról kellő részletességű jegyzőkönyvet ad be

Követelmények A félévközi ellenőrzés módja a laboratóriumi mérési feladatok sikeres elvégzése. Értékelés: o Minden laboratóriumi mérést külön pontszámmal értékelünk, ez a laboratóriumi tevékenység, és a jegyzőkönyv együttes értékeléséből adódik. o A félévközi jegy megszerzéséhez minden mérést legalább elégséges szinten (40%) kell teljesíteni! o A félévközi jegyet a méréseken szerzett pontszámok átlagából számítjuk. 40% 55% 70% 85%

Feladatok beadása A mérőpár részére kiadott Git repositoryba o Forrás (program kód, konfigurációs leírók, modellek) o Jegyzőkönyv (ld. később) o Minden mérési feladat külön Git branch! Beadás: Git tag elhelyezése határidőig (vasárnap) Előtte a kész megoldás személyes bemutatása! o Ideálisan még a mérésen, de legkésőbb péntekig o A jegyzőkönyv itt még nem kell Travis CI működése kötelező (2 pont) o GitHub / Travis / Maven repository outage-ot leszámítva

Jegyzőkönyv Dokumentáció: docs/ könyvtárba o Pl. 1-basic-java-implementation.md o Sima GitHub Markdown is jó, de persze lehet PDF o Igényes forma (követhető, rendezett) Tartalma: o A feladat (röviden) o Telepítési útmutató ( Getting Started ) o Fejlesztői útmutató ( Developer s Guide ): architektúra kihívások és ezek megoldása o Technológia és labor értékelése, jobbító javaslatok

Pótlási célból Pótlás o a szorgalmi időszakban egy pótmérési alkalmat biztosítunk, o ezen túl a pótlási időszakban is lesz egy pótmérési alkalom. A pótmérésen vagy a pótlási időszakban összesen egy mérés pótolható. A pótmérésre a megadott határidőig jelentkezni kell!

Időzítés Egy mérési alkalom ütemezése H K Sze Cs P Szo V Segédlet elérhető kb. egy héttel előbb MÉRÉS 8 30-12 00 Beugró + munka Személyes bemutatás határideje (ha a mérésen nem lett kész) Végleges kód, jegyzőkönyv beadása (tag)

MÉRÉSEK BEMUTATÁSA

1. PÉLDAFELADAT MEGVALÓSÍTÁSA JAVA NYELVEN Mérésvezető: Szárnyas Gábor

Példafeladat Részletes specifikáció: https://github.com/ftsrg-csi/csilecture-notes/wiki/running-example

2. JAVA ALKALMAZÁSOK PÁRHUZAMOSÍTÁSA Mérésvezető: Semeráth Oszkár

Java alkalmazások párhuzamosítása Követelmények o Minden tevékenység külön szálon fusson o Kommunikáció a szálak között Elosztottan vagy központi szállal Várakozás vagy értesítést concurrent package o Adatáramlás egyszerre több adat is mehet a munkafolyamatban o Kivételek legyenek kezelve o Működés naplózása (folyamatok kezdése és befejezése) o Fork és join műveletek szálak közötti kommunikációval

Párhuzamos programozás Your multi-threaded code is broken (and I can prove it): https://bss.sch.bme.hu/video/simonyikonferencia-2015-your-multi-threaded-code-isbroken-and-i-can-prove-it Concurrency: It's Harder (and Easier) Than You Think: http://www.ustream.tv/recorded/61447706

3. MUNKAFOLYAMAT KERETRENDSZER MEGVALÓSÍTÁSA Mérésvezető: Semeráth Oszkár

Munkafolyamatok megvalósítása Java nyelven Követelmények o Munkafolyamat keretrendszer megvalósítása Többszálú megoldás (ld. 2. labor) Többszálú viselkedés elfedése a csomópontok implementációjában Átkonfigurálhatóság, újrafelhasználhatóság o Java Generics megismerése Típushelyes megoldás Indokolatlan típusmegszorítások nélkül Type cast nélkül Warning nélkül (@SupressWarnings nem ér )

4. AKTOR MODELL KONKURENS ALKALMAZÁSOK KÉSZÍTÉSÉRE: AKKA Mérésvezető: Tóth Tamás

Alkalmazások Reaktív alkalmazások o Web 2.0: Google, Twitter o Pénzügy, telekommunikáció Reaktív rendszer: http://www.reactivemanifesto.org/ Skálázható Gyors válaszidejű Hibatűrő, rendelkezésre álló Eseményvezérelt

Skálázhatóság Moore-törvény Tranzisztorok száma Amdahl-törvény Gyorsulási faktor Órajel Év Processzorok száma

Párhuzamosítás Megszokott módszer: zárak alkalmazása Alternatív módszer: aktor modell (1973) Az aktorok elosztottan is futtathatók Aktor: izoláltan futó programpéldány Aszinkron kommunikáció, immutable üzenetek

5. TELJESÍTMÉNYELEMZÉST SEGÍTŐ ADATELEMZÉSI TECHNIKÁK Mérésvezető: Klenik Attila

Mérésalapú elemzés Implementációk teljesítményének mérése Hipotézis: O(n 2 ) Hipotézis: Hipotézis: Ábra forrása: Laerd Statistics

Mérés céljai Mérésalapú elemzés o Hipotézis ellenőrzése o Szűk keresztmetszetek azonosítása o Implementációk összehasonlítása Környezet o Statisztikai elemzés R-ben o Alapvető vizualizációs technikák o Regresszió

Felkészülés Implementáció/mérés rész elkészítése o Eredmény CSV formátumba Segédanyag elolvasása o A valószínűségszámítás és a statisztika alapfogalmait ismertnek feltételezzük, de linkelünk forrásokat is R szintaxisának megtanulása o DataCamp

Némi statisztika Amire szükségünk lesz o Kísérlettervezési alapok o Nagy számok törvénye o Hipotézistesztelés alapjai Kód instrumentáció o Workflow automatikus lejátszása adott késleltetéssel o Szimuláció megismételhetőség! R

6. INTEGRÁCIÓ SZABVÁNYOS TÁVOLI ELJÁRÁSHÍVÁS PLATFORMON Mérésvezető: Dr. Bergmann Gábor

Apache Thrift Platformfüggetlen szolgáltatás-leírónyelv (.thrift) o Adatstruktúrák o Szolgáltatás interfészek (RPC) Kódgenerátor o Adatstruktúra megvalósítása o Sorosítás és kommunikáció megvalósítása o Szerver és kliens váza Különféle esetek (pl. szinkron / aszinkron, nemblokkoló stb.) o Célplatformok: Java, C++, C#, Python, Erlang, JS, Szerver és kliens nyelve eltérhet!

7. MEGBÍZHATÓ ÜZENETKÜLDÉS RABBITMQ ALAPON Mérésvezető: Honfi Dávid

Megbízható üzenetküldés RabbitMQ alapon A mérés céljai o Üzenetsorok használatának elsajátítása o RabbitMQ eszköz megismerése Feladatok o Munkafolyamat kommunikációjának átalakítása üzenet alapúvá o RabbitMQ használata az üzenetkezeléshez 33

8. DEKLARATÍV ALKALMAZÁSKONTÉNER PLATFORM Mérésvezető: Dr. Szatmári Zoltán

Docker VMware, VirtualBox Unix Platform virtualizáció + Teljes izoláció Nagy overhead Alkalmazásszintű virtualizáció + Minimáis vagy nulla overhead OS függő

Docker alapismeretek Docker o Nyílt forráskódú, Go nyelven készült o Dockerfile: egy képfájlt definiál o Konténerek parancssorból építhetők és indíthatók o Docker Hub: központi hely képfájlok tárolására Előző feladat o Elosztott munkafolyamat Akka segítségével Új feladat o Docker képfájlok készítése aktorok futtatásához o Ezek telepítése és futtatása (deployment)

9. PLATFORMFÜGGETLEN MODELLEZÉS GENERATÍV PROGRAMOZÁSSAL Mérésvezető: Dr. Bergmann Gábor

Platformfüggetlen modellezés generatív programozással Célok o Különböző technológiák integrációja/lecserélése o Folyamat átstrukturálása automatikusan Bonyolult + sok + ismétlődő összekötő kód Feladat: Folyamatmodellező nyelv + kódgenerálás 1. Szétválasztani: generálható manuális kódrészeket 2. Modellezni: a generálható részt 3. Kódgenerátort készíteni: a modellező nyelvhez 4. Összekötni: generált + manuális részeket Technológiák: EMF, Xtend, Eclipse fájlkezelés

Platformfüggetlen modellezés generatív programozással x y Tokenizer Tokenizer Shinglizer Shinglizer x y x yz x y

AKTUÁLIS TEENDŐK

Aktuális teendők Mérőpárok alakítása: http://tiny.cc/csi-lab-2017 Mai óra hátralevő része o GitHub repository, build rendszer megismerése o Megoldandó feladat elolvasása, megértése o Erősen javasolt: megoldás elkezdése Sima, egyszálú Java program elég Jövő héttől minden alkalomra: o segédanyag elolvasása, felkészülés a beugróra