A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat Következő változat | Előző változat | ||
tanszek:oktatas:informacios_rendszerek_integralasa:feladatok [2023/05/03 20:38] knehez |
tanszek:oktatas:informacios_rendszerek_integralasa:feladatok [2023/05/08 19:41] (aktuális) knehez [9.] |
||
---|---|---|---|
Sor 3: | Sor 3: | ||
======= Architektúra ====== | ======= Architektúra ====== | ||
- | A feladatok tipikusan olyan egyszerű alkalmazás integrációk, amelyek a JBoss vagy Wildfly alkalmazás szerver, vagy sima socket kommunikációval vagy django framework vagy angularjs segítségével oldahatóak meg. | + | A feladatok tipikusan olyan egyszerű alkalmazás integrációk, amelyek a JBoss vagy Wildfly alkalmazás szerver, vagy docker segítségével megvalósíthatók. |
Sor 13: | Sor 13: | ||
====== Beadási határidő ====== | ====== Beadási határidő ====== | ||
- | Az utolsó tanítási héttel bezárólag minden gyakorlaton. Ez után pótlás lehetséges. | + | Az utolsó tanítási héttel bezárólag minden gyakorlaton. Ezután pótlás is lehetséges. |
====== Feladatok ====== | ====== Feladatok ====== | ||
Sor 29: | Sor 29: | ||
====== 3. ====== | ====== 3. ====== | ||
- | Készítsen alkalmazást, amely az 1. feladat alapján működik, annyi különbséggel, hogy a kliens egy webszolgáltatás, amely SOAP-on keresztül küldi a véletlenszerű színeket a a JBoss webszolgáltatásnak, és a webszolgáltatás küldi tovább '/queue/colorQueue' üzenetsorra pont-pont csatlakozással az üzeneteket. Az ez utáni teendők megegyeznek az 1.-es feladatban leírtakkal. | + | Készítsen alkalmazást, amely az 1. feladat alapján működik, annyi különbséggel, hogy a kliens egy webszolgáltatás, amely SOAP-on keresztül küldi a véletlenszerű színeket a a Wildfly webszolgáltatásnak, és a webszolgáltatás küldi tovább '/queue/colorQueue' üzenetsorra pont-pont csatlakozással az üzeneteket. Az ez utáni teendők megegyeznek az 1.-es feladatban leírtakkal. |
- | A lényeges különbség az, hogy a kliens nem kapcsolódik közvetlenül az üzenetsorra, hanem a JBoss ban futó szolgáltatás küldi tovább az üzenetet a sorra. | + | A lényeges különbség az, hogy a kliens nem kapcsolódik közvetlenül az üzenetsorra, hanem a Wildfly-ban futó szolgáltatás küldi tovább az üzenetet a sorra. |
====== 4. ====== | ====== 4. ====== | ||
- | Készítsen alkalmazást, amely az 2. feladat alapján működik, annyi különbséggel, hogy a kliens egy webszolgáltatás, amely SOAP-on keresztül küldi a véletlenszerű színeket a a JBoss webszolgáltatásnak, és a webszolgáltatás küldi tovább '/queue/colorQueue' üzenetsorra pont-pont csatlakozással az üzeneteket. Az ez utáni teendők megegyeznek az 2.-es feladatban leírtakkal. A lényeges különbség az, hogy a kliens nem kapcsolódik közvetlenül az üzenetsorra, hanem a JBoss ban futó szolgáltatás küldi tovább az üzenetet a sorra. | + | Készítsen alkalmazást, amely az 2. feladat alapján működik, annyi különbséggel, hogy a kliens egy webszolgáltatás, amely SOAP-on keresztül küldi a véletlenszerű színeket a a Wildfly webszolgáltatásnak, és a webszolgáltatás küldi tovább '/queue/colorQueue' üzenetsorra pont-pont csatlakozással az üzeneteket. Az ez utáni teendők megegyeznek az 2.-es feladatban leírtakkal. A lényeges különbség az, hogy a kliens nem kapcsolódik közvetlenül az üzenetsorra, hanem a Wildfly ban futó szolgáltatás küldi tovább az üzenetet a sorra. |
Sor 40: | Sor 40: | ||
====== 5. ====== | ====== 5. ====== | ||
- | Készítsen alkalmazást amelynek egyik kliense a '/queue/colorQueue' üzenetsorra véletlen szöveges üzeneteket küld. ('RED', 'GREEN', 'BLUE') szöveggel 0.5 másodpercenként. Készítsen 3 további klienst amelyek folyamatosan 'hallgatják' a '/queue/colorQueue' üzenetsort, ha valamelyik üzenetet olvas a sorról, akkor véletlenszerűen (2000-9000) milliszekundum ideig várakozik, majd utána újra hallgatja az üzenetsort. (A véletlenszerű feldolgozási idő miatt -e közben egy másik üzenetet a következő kliens fogja feldolgozni). A 3 kliensnek ne legyen konzol outputja, azaz ne írjon ki semmit a konzolra. Minden üzenet feldolgozása után a '/queue/processedColors' sorra küldjenek egy üzenetet, ami azt jelzi, hogy feldolgozták a feladatot. Készítsen egy klienst, ami a '/queue/processedColors' sort olvassa és a megjelenő üzeneteket kiírja az outputra. pl: 'Client 2, processed a 'BLUE' message'. Ennél a feladatnál nem kell a JBOSS-ban komponenst létrehozni. | + | Készítsen alkalmazást amelynek egyik kliense a '/queue/colorQueue' üzenetsorra véletlen szöveges üzeneteket küld. ('RED', 'GREEN', 'BLUE') szöveggel 0.5 másodpercenként. Készítsen 3 további klienst amelyek folyamatosan 'hallgatják' a '/queue/colorQueue' üzenetsort, ha valamelyik üzenetet olvas a sorról, akkor véletlenszerűen (2000-9000) milliszekundum ideig várakozik, majd utána újra hallgatja az üzenetsort. (A véletlenszerű feldolgozási idő miatt -e közben egy másik üzenetet a következő kliens fogja feldolgozni). A 3 kliensnek ne legyen konzol outputja, azaz ne írjon ki semmit a konzolra. Minden üzenet feldolgozása után a '/queue/processedColors' sorra küldjenek egy üzenetet, ami azt jelzi, hogy feldolgozták a feladatot. Készítsen egy klienst, ami a '/queue/processedColors' sort olvassa és a megjelenő üzeneteket kiírja az outputra. pl: 'Client 2, processed a 'BLUE' message'. Ennél a feladatnál nem kell a Wildfly-ban komponenst létrehozni. |
Sor 60: | Sor 60: | ||
====== 8. ====== | ====== 8. ====== | ||
- | Adott egy A és egy B szerverkomponens. A B komponens hozzáfér egy SQL adatbázishoz, amiben 1 db tábla van, ami személyek adatait tartalmazza (név, szül idő, stb..). Az 'A' komponensnek nincs hozzáférése az adatbázishoz. Az 'A' komponens rendelkezik viszont egy browser-ben megjelenő felülettel, ahol személyek adatait lehet lekérdezni (összes személyt egyszerre) és új személyt lehet felvenni. A 'B' komponens két funkciója: egy új személy felvétele és a személyek lekérdezése az adatbázisból. Készítse el az A és B komponenseket és hozzon létre kapcsolatot közöttük SOAP felhasználásával. Az A és B komponens és az adatbázis tetszőleges technológia lehet. | + | Adott egy A és egy B szerverkomponens. A B komponens hozzáfér egy SQL adatbázishoz, amiben 1 db tábla van, ami személyek adatait tartalmazza (név, szül idő, stb..). Az 'A' komponensnek nincs hozzáférése az adatbázishoz. Az 'A' komponens rendelkezik viszont egy browser-ben megjelenő felülettel, ahol személyek adatait lehet lekérdezni (összes személyt egyszerre) és új személyt lehet felvenni. A 'B' komponens két funkciója: egy új személy felvétele és a személyek lekérdezése az adatbázisból. Készítse el az A és B komponenseket és hozzon létre kapcsolatot közöttük SOAP felhasználásával. Az A és B komponens tetszőleges technológia lehet. |
====== 9. ====== | ====== 9. ====== | ||
- | | + | Adott egy A és egy B szerverkomponens. A B komponens hozzáfér egy NO-SQL adatbázishoz, amiben 1 db tábla van, ami könyvek adatait tartalmazza (cím, szerzők, kiadó, év, stb..). Az 'A' komponensnek nincs hozzáférése az adatbázishoz. Az 'A' komponens rendelkezik viszont egy browser-ben megjelenő felülettel, ahol könyvek adatait lehet lekérdezni (összes könyvet egyszerre) és új könyvet is fel lehet venni. A 'B' komponens két funkciója: egy új könyv felvétele és a könyvek lekérdezése az adatbázisból. Készítse el az A és B komponenseket és hozzon létre kapcsolatot közöttük JAX/RS felhasználásával. Az A és B komponens tetszőleges technológia lehet. |
+ | |||
+ | ====== 10. ====== | ||
+ | Készítsen olyan mintarendszert, ami képes működés közben updgradel-ni. Adott egy kliens komponens (A), ami 2 másodpercenként üzenetet küld a //tasks// üzenetsornak. A kezdeti üzenetek verziója V1.0. Készítsen egy consumer komponenst (B), ami feldolgozza az üzeneteket és a //finishedTasks// üzenetsorra küldi a kész üzeneteket, az üzenetekhez hozzáfűzi az aktuális időt. A B komponens fel legyen készítve arra az esetre, ha az üzenet verziószáma nem V1.0, ekkor az üzenetet az invalidTasks üzenetsorra továbbítja. | ||
+ | A (C) consumer komponens az //invalidTasks// üzenetsorról leveszi az üzeneteket és 5 másodperc késleltéssel visszateszi a //tasks// üzenetsorra. | ||
+ | Mutassuk be, ha a (A) komponens módosításával v2.0 verziószámú üzeneteket küldünk és a (B) komponensben feldogozzuk a V2.0 üzeneteket (azaz nem küldjük az //invalidTasks// sorra őket) akkor a rendszer kis késleltetéssel, de leállítás nélkül tud üzemelni. |