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

Rendszermodellezés: házi feladat bemutatás

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

Dr. Ráth István

Ö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

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

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

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

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

JAVA webes alkalmazások

UNIX: folyamatok kommunikációja

Dr. Pataricza Andrá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

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

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

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

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

ANDROID ALKALMAZÁS FEJLESZTÉS

BEVEZETŐ Tantárgyi követelmények

BEVEZETŐ Tantárgyi követelmények

Digitális technika VIMIAA02

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

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

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.

Digitális technika VIMIAA01

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

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

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

Nagy bonyolultságú rendszerek fejlesztőeszközei

01. gyakorlat - Projektalapítás

IBM felhő menedzsment

Digitális technika (VIMIAA02) Laboratórium 5.5

ALKALMAZÁS KERETRENDSZER

Dr. Ráth István

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

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

Modell alapú tesztelés mobil környezetben

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

Digitális technika VIMIAA01 9. hét

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

Rendszertervezés ágazat

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

A TANTÁRGY ADATLAPJA

Digitális technika VIMIAA02

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

Á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

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

Mikroelektronika Laboratórium

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

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

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

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

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

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

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

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

Gépipari Technológiai Intézet

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

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

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

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

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

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

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

S01-8 Komponens alapú szoftverfejlesztés 2

A gazdaságinformatikus mesterszak tantervi hálója

webalkalmazások fejlesztése elosztott alapon

Digitális technika VIMIAA02

Statisztika 1. Tantárgyi útmutató

Programozási technológia 2.

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

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

Ú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

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

Üzleti folyamatok rugalmasabb IT támogatása. Nick Gábor András szeptember 10.

Programozási technológia

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

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

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

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

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

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

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

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

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

Számítógép hálózatok gyakorlat

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

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

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

Automatikus tesztgenerálás modell ellenőrző segítségével

KONZULTÁCIÓS BEOSZTÁS 2015/2016/I. félév GAZDÁLKODÁSI ÉS MENEDZSMENT

Részletes tantárgyprogram és követelményrendszer

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

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

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

Átírás:

Kritikus rendszerek integrációja laboratórium Bergmann Gábor, Honfi Dávid, Nagy András Szabolcs, Salánki Ágnes, Semeráth Oszkár, 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 Maven Central, JCenter outage esetén ettől eltekintünk

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 Első alkalom (laborismertető): szeptember 5. További mérések: # Téma Mérésvezető Időpont 2. Java alkalmazások párhuzamosítása Semeráth Oszkár 09.12. 3. Munkafolyamat keretrendszer megvalósítása Tóth Tamás 09.19. 4. Aktor modell konkurens alkalmazások készítésére Szárnyas Gábor 09.26. 5. Teljesítményelemzést segítő adatelemzési technikák Salánki Ágnes 10.03. 6. Integráció szabványos távoli eljáráshívás platformon Bergmann Gábor 10.10. 7. Megbízható üzenetküldés MQ alapon Honfi Dávid 10.17. 8. Deklaratív alkalmazáskonténer platform Nagy András Szabolcs 10.24. 9. Platformfüggetlen modellezés kódgenerálással Bergmann Gábor 11.07. Pótmérés a szorgalmi időszakban: november 21. o Pót-pótmérés (reméljük ilyen nem lesz): pótlási hét.

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ő: Tóth Tamás

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ő: Szárnyas Gábor

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ő: Salánki Ágnes

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ő: 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ő: Nagy András Szabolcs

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ő: 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-2016 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 megkezdé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