Terapeuták munkáját támogató szoftverrendszer: a dwelling projekt
|
|
- Zsuzsanna Szabóné
- 6 évvel ezelőtt
- Látták:
Átírás
1 XX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, május Terapeuták munkáját támogató szoftverrendszer: a dwelling projekt Szerzők: Ambrus Adrián-Zoltán Babeş-Bolyai Tudományegyetem, Kolozsvár, Matematika és Informatika Kar, informatika szak, III. év Balázsi Róbert-Sándor Babeş-Bolyai Tudományegyetem, Kolozsvár, Matematika és Informatika Kar, informatika szak, III. év Témavezetők: Dr. Simon Károly Egyetemi adjunktus, Babeş-Bolyai Tudományegyetem, Kolozsvár, Matematika és Informatika Kar Projektmenedzser, Codespring Kandó Norbert Projektmenedzser, Codespring Sipos Áron Szoftverfejlesztő, Codespring
2 Kivonat A dolgozat egy szoftverprojektet mutat be, amelynek célja egy főként alternatív gyógyászatban használható foglalási és lelet-nyilvántartási szoftverrendszer kifejlesztése. A rendszer egy központi szerverből és egy webes felületből áll. A rendszer adminisztrátorai a webes felületen keresztül terápiákat vihetnek fel, terapeutákat regisztrálhatnak a rendszerbe és menedzselhetik a páciensek felhasználói fiókjait. A vendég felhasználók megtekinthetik a rendszer által támogatott terápiákat és regisztrálhatnak páciensként. A páciensek a beépített keresőmotor segítségével számukra megfelelő kezeléseket kereshetnek, és jelentkezhetnek ezekre a kezeléseket végző terapeutáknál. A terapeuták terápiákat rendelhetnek magukhoz, meghatározhatják munkaprogramjukat és -en keresztül értesülnek a foglalásokról. Felvihetik a rendszerbe a páciensek kórlapjait, egészségügyi állapotukra vonatkozó információkat, illetve kezelésekre vonatkozó adatokat rögzíthetnek.
3 Tartalomjegyzék Bevezető Alkalmazott módszerek és eszközök A dwelling projekt Funkcionalitások Vendégek számára elérhető funkcionalitások Páciensek számára elérhető funkcionalitások Adminisztrátor számára elérhető funkcionalitások Terapeuták számára elérhető funkcionalitások Architektúra A szerver megvalósítása Felhasznált technológiák Spring Boot Spring Web MVC Spring Data JPA Spring Security Spring Data Elasticsearch Hibernate Mapstruct Adatmodell Kommunikáció Adathozzáférési réteg Szolgáltatás réteg Biztonság Spring Security Autentikáció Autorizáció Web kliens Felhasznált technológiák AngularJS... 13
4 TypeScript Adatmodell Kommunikáció Biztonság Az alkalmazás működése A terapeuták számára elérhető funkciók Páciensek számára elérhető funkciók Adminisztrátorok számára elérhető funkciók Következtetések és továbbfejlesztési lehetőségek Hivatkozások... 27
5 Bevezető A dwelling projekt célja egy olyan szoftverrendszer megvalósítása, amely segítséget nyújt egészségügyi problémákkal küszködő emberek és az őket kezelő terapeuták számára. Lehetőséget ad alternatív gyógymódok, különböző komplementer terápiák megismerésére és kipróbálására. A szoftver különböző terápiákat gyűjt össze, a felhasználók ebben a gyűjteményben kereshetnek, információkat kaphatnak a kezelési eljárásokról. Az eljárásokat végző terapeutákat is nyilvántartja a rendszer, számos funkcionalitást biztosít számukra a könnyebb munkavégzés érdekében. A webes felületen keresztül a beteg megkeresheti a számára legmegfelelőbb terápiát, ebben segítséget nyújt egy kereső motor, amely képes kulcsszavak alapján kiszűrni azokat a terápiákat, amelyek megoldást jelenthetnek a látogató panaszaira. A terápiákról részletes leírást ad a rendszer és képek is segítik az érdeklődőt abban, hogy megtalálja a megfelelő kezelést. A rendszer által nyilvántartott terapeuták között is kereshet a páciens, megtekintheti a terapeuta nyilvános adataid, munkabeosztását, szabad időpontjait. Ha sikerült egy megfelelő időpontot találni, akkor lefoglalhatja ezt. A terapeuta a webes felület segítségével jegyzi a betegeit és a hozzájuk tartozó információkat (kórlapok, életmóddal és egészségi állapottal kapcsolatos információk stb.). A rendszer lehetőséget nyújt számára, hogy minden páciens részére külön-külön vezesse a kezelések kimeneteleit, leírhatja, hogy miként reagált a beteg egy adott kezelésre. Egy grafikus felület teszi lehetővé a fájdalompontok felvitelét és változásaik követését. A terapeuta így könnyen kaphat átfogó képet az adott beteg állapotáról. A terapeuta munkaprogramját is megszabhatja, beállíthatja, hogy mikor dolgozik, milyen időpontoktól kezdődnek az általa végrehajtott kezelések és azok mennyi időt tartanak. Ez a megoldás megkönnyíti az időpontfoglalásokat.
6 A dwelling szoftverrendszer két részből tevődik össze, egy szerverből és egy webes kliensalkalmazásból. A webes kliensalkalmazás segítségével a felhasználók elérhetik a rendszer szolgáltatásait. A fejlesztés során fontos szerepet kapott a reszponzivitás, hogy az alkalmazásnak optimális megjelenést, könnyű felhasználhatóságot biztosítsunk bármely képernyőméreten. A szerver fejlesztése során a többrétegű architektúra tervezési mintát követtük, a könnyebb karbantartás, továbbfejlesztés érdekében. A projekt esetében három réteget különítettünk el: megjelenítésért felelős réteg, üzleti logikáért felelős réteg, adathozzáférési réteg. A dolgozat a fentebb leírt dwelling projektet mutatja be. Az első rész a megvalósítás során használt fejlesztési folyamatot, a felhasznált eszközöket ismerteti. A második rész a projekt részletes leírását tartalmazza továbbá részletesen tárgyalja a követelményeket, a használati eseteket és a rendszer architektúráját. A harmadik részben kerül sor a szerver részletes bemutatására, itt szó esik a szerver oldalon felhasznált technológiákról, eszközökről. A negyedik rész a web kliens megvalósítását tárgyalja, a felhasznált technológiákkal együtt. A dolgozat a következtetések és továbbfejlesztési lehetőségek leírásával zárul. A projekt a Codespring Mentorprogram keretein belül született, a nyári gyakorlat kezdetén a fejlesztőcsapat elsajátította a projekt fejlesztéséhez szükséges technológiák és módszerek alapjait. A fejlesztést a cég kinevezett szakemberei irányították. Az egyetemen a Csoportos Projekt tantárgy keretein belül a fejlesztés tovább folytatódott, a csapat ideiglenesen kibővült két taggal, Hankó Lehellel és Bőr Tamással. A projekt létrejöttéért köszönet illeti mentorainkat: Kandó Norbertet, dr. Simon Károlyt és Sipos Áront.
7 1. Alkalmazott módszerek és eszközök A dwelling projekt fejlesztése során a fejlesztők több olyan népszerű, széles körben alkalmazott fejlesztői eszközt használtak, amelyek a hatékonyságot javították. A csapat a fejlesztés során Scrum [1] módszert alkalmazott, ez egy agilis módszer, amely inkrementáló és iteratív fejlesztést támogat. A fejlesztés a Scrumnak megfelelően sprintekben valósult meg (a csapat a két hetes fejlesztési ciklusokat találta a leghatékonyabbnak). A sprintek egy tervezési fázissal kezdődtek, ekkor a csapat kiválasztotta, hogy az elvégzendő feladatok közül melyek kerüljenek megvalósításra, és megbecsülte az implementáláshoz szükséges időt. A napi szintű, rövid találkozók segítették a csapatmunkát. A kéthetes fejlesztési ciklus egy bemutatóval zárult (Demo). A forráskód változásainak nyomon követesére a fejlesztői csapat a GIT osztott verziókövetőt választotta. A csapat kliensalkalmazásként SourceTree-t, illetve az IntelliJ IDEA beépített verziókövetőjét használta. A távoli tároló karbantartását egy GitLab szerver biztosította. Minden új funkcionalitás fejlesztése külön ágon történt, ha a funkcionalitás elkészült és a mentorok jóváhagyták, akkor bekerült a default ágba. A szoftverrel szemben támasztott megrendelői elvárásokat, követelményeket felhasználói történetek (User Story-k) fogalmazták meg. Ezeknek a nyilvántartásában és menedzselésében a GitLab rendszer beépített issue tracking modulja segített. A build folyamat automatizálására és a függőségek menedzselésére a csapat Gradle-t használt. Ez egy Groovy szkript alapú rendszer. A webes projekt build-elését a Gulp végezte, a Gradle indította el. Az npm csomagkezelő biztosította a webes fejlesztésben felhasznált eszközök menedzsmentjét. A folyamatos integráció (Continuous Integration) egy szoftver fejlesztési módszer, azt a célt szolgálja, hogy a rendszer mindig helyes, felépíthető és futtatható állapotban legyen. A dwelling projekt esetében a GitLab CI szolgáltatása végezte a folyamatos integrációt, nagy előnyt jelentett, hogy nem kellett összekötni más rendszereket a verziókövetővel. A különböző folyamatok leírása egy YAML állományban történt, a folyamatok egy-egy docker image-en belül hajtódtak végre. Ha új kód került a GitLab által karbantartott tárolóba akkor a rendszer automatikusan buildelte a projektet, lefuttatta az automatizált teszteket majd utolsó lépésként kitelepítette az alkalmazást a teszt szerverre. 1
8 2. A dwelling projekt A dwelling rendszer olyan valós problémákra szeretne megoldást nyújtani, amelyekkel terapeuták szembesülnek mindennapi munkavégzésük során. Ilyen probléma lehet például az online foglalási lehetőség hiánya, vagy az adatok megfelelő tárolására alkalmas rendszer hiánya. A dwelling egy könnyen áttekinthető, keresési lehetőséget támogató felületet biztosít ezeknek a problémáknak a kiküszöbölésére. A különböző terápiákat egy helyre gyűjti és a felhasználókat a megfelelő információkkal látja el a terápiákról Funkcionalitások A rendszer négy felhasználói szerepkört különít el (vendég, páciens, terapeuta és adminisztrátor), a funkcionalitásokat ennek megfelelően kategorizálhatjuk Vendégek számára elérhető funkcionalitások A vendégek számára elérhetőek az alkalmazásban szereplő terápiák, azok leírásai, a terápiákat végző terapeuták neve és értékelése. A leírások mellett egy galéria is megjelenik, amelyen a kezelésekkel kapcsolatos képek vannak feltöltve. A vendég felhasználók számára nem elérhetőek a terapeuták elérhetőségei és nem jelentkezhetnek terápiákra, viszont lehetőségük van regisztrációra, amely által elérhetővé válnak számukra az említett funkciók Páciensek számára elérhető funkcionalitások A páciensek szerkeszthetik profiljukat, ahol megadhatják elérhetőségeiket, beállíthatnak profilképet. Böngészhetik a terápiákat, teljes szöveg alapú kereséssel kereshetnek a terápiák között. Időpontot foglalhatnak terapeutákhoz. értesítéseket kapnak, ha a terapeuta elfogadta, vagy elutasította a foglalásukat, és le is mondhatják a foglalásaikat Adminisztrátor számára elérhető funkcionalitások Az adminisztrátor regisztrálhat terapeutákat a rendszerbe. Menedzselheti a felhasználókat, korlátozhatja a hozzáférésüket a rendszerhez. Az adminisztrátor feladata felvinni a különböző típusú terápiákat is. A terápiákkal kapcsolatos információk szerkesztése egy Rich Text Editor segítségével történik, és képeket is fel lehet tölteni a terápiákhoz, ezek a páciensek számára egy galériában jelennek meg. 2
9 Terapeuták számára elérhető funkcionalitások A terapeuták szerkeszthetik a profil oldalukat, ahol különböző elérhetőségeket adhatnak meg, profil képet állíthatnak be és egy rövid leírást is megadhatnak magukról. Egy naptár segítségével meghatározhatják a munkaprogramjukat, akár több hétre előre is. Az órarend szerkesztő flexibilis, ezért különböző hetekre különböző munkaprogramot is meg lehet határozni. Lehetőséget biztosítunk szünetek megadására is, amelyek lehetnek 1 órás, vagy akár egy hetes szünetek is. A szünetek alatt a foglalási lehetőség nem elérhető a páciensek számára. A terapeuták értesítést kapnak a foglalásaik helyzetéről és menedzselhetik a foglalásaikat az oldal segítségével. Egy foglalás létrejötte után a terapeuták számára elérhetővé válnak a páciensek publikus adatai, az orvosi leletek, amelyeket más terapeuták vittek fel a rendszerbe vagy a páciensre vonatkozó általános egészségügyi információk. Lehetőség van ezeknek az adatoknak a módosítására, ugyanakkor kezelésekre vonatkozó információkat is felvihetnek a terapeuták a rendszerbe. Egy virtuális emberi testen a terapeuták felvihetnek fájdalompontokat, a fájdalom kiterjedésének és mértékének megfelelően, ezekhez a fájdalompontokhoz kommentárt is fűzhetnek. A rendszerben szereplő terápiák közül kiválaszthatják azokat, amelyek esetében kompetenseknek számítanak Architektúra A projekt két fő komponense a Java alapú, Spring technológiákra épülő szerver és az AngularJS web kliens. A két komponens REST alapú kommunikáció által éri el egymást, az adatokat a DTO tervezési minta szerint küldik. A szerver komponens Controller rétege publikálja a REST erőforrásokat. Ezen a komponensen keresztül kommunikál a kliens a szerverrel. A Controller réteg a DTO objektumokat szerver oldali entitásokká alakítja, a Mapper komponensek segítségével. A Controller réteg hívja meg a Service réteg szolgáltatásait. A Repository réteg felelős az adathozzáférésért és az adatok perzisztenssé tételéért. Mindegyik szerver oldali komponens használja a Model csomagot, amely az entitásokat tartalmazza, melyek POJO-ként (Plain Old Java Object) vannak implementálva. 3
10 A kliens oldalon a Repository réteg tartja a kapcsolatot a szerver oldali erőforrás réteggel. A kliens oldali Service réteg tartalmazza a kliens oldali üzleti logikát. A prezentációért felelős Controller réteg vezérli a View-t és fogyasztja a Service réteg szolgáltatásait. A szerver oldali DTO-k tulajdonképpen a kliens oldali modelleknek felelnek meg. 1. ábra A rendszer architektúrája 3. A szerver megvalósítása A dwelling projekt szerver oldalon Java-alapú technológiákra épül. A Spring keretrendszert használja, amely egy elterjedt alternatívája a Java EE technológiának. MySQL adatbázist használ az adatok tárolására, ElasticSearch keresőmotort az adatok indexelésére és teljes szöveg alapú keresésre Felhasznált technológiák Spring Boot A Spring Boot a Spring keretrendszernek egy convention-over-configuration elvet támogató megoldása, amely a kezdeti fejlesztést felgyorsítja az előbb említett fejlesztési mintának megfelelően. Különálló Spring alkalmazások fejlesztését teszi lehetővé, biztosítva egy beépített webszervert, így szükségtelenné teszi a webszerverre vagy alkalmazásszerverre történő külön kitelepítést. Elkülöníti a konfigurációt az alkalmazástól, lehetővé téve a különböző környezetekben való futtatást. Az XML alapú konfiguráció mellett Java alapú konfiguráció is használható. 4
11 Spring Web MVC A Spring Web MVC [2] (model-view-controller) keretrendszer lehetővé teszi, hogy rugalmas, MVC mintára épülő webes alkalmazásokat fejlesszünk. Az egész keretrendszer a DispacherServlet köré épül. Ez a komponens fogadja a beérkező HTTP kéréseket és a megfelelő kezelő felé továbbítja ezeket. A keretrendszer annotációk bevezetésével lehetőséged ad a fejlesztőknek, hogy általuk implementált kezelőket definiáljanak. és a fentebb megemlített annotációk által támogatja RESTful alkalmazások fejlesztését Spring Data JPA A Spring Data JPA a JPA (Java Persistence API) szabványt implementáló ORM (Object-Relational Mapping) keretrendszerek fölött biztosít egy absztrakciós réteget, lényegesen leegyszerűsíti a CRUD (Create-Read-Update-Delete) műveletek implementációját. Gyakorlatilag csak a Repository interfészeket kell létrehozni, az implementációt a keretrendszer generálja. A lekérdezések is megadhatóak az interfészek metódusainak szintjén alkalmazott elnevezési konvenciók alapján, vagy a bonyolultabb lekérdezések annotációk segítségével, JPQL (Java Persistence Query Language) nyelvet alkalmazva, illetve natív SQL lekérdezések használatára is lehetőséget biztosít a keretrendszer Spring Security A Spring Security egy erős és rendkívül testre szabható keretrendszer, amellyel Spring alkalmazások autentikációját és autorizációját lehet megvalósítani. Alapból védelmet nyújt a legelterjedtebb biztonsági problémákkal szemben, mint a session fixation, click jacking, CSRF (Cross Site Request Forgery). A könnyű kiegészíthetőségének köszönhetően egyszerű integrálni egy JWT (JSON Web Token) alapú autentikációt. Autorizációra a Spring Security annotációkat biztosít, amelyekkel szerepkör alapján nyújthatunk hozzáférést a rendszer különböző szolgáltatásaihoz. 5
12 Spring Data Elasticsearch A Spring Data Elasticsearch [3] egy része a Spring Data keretrendszernek, amelynek célja megkönnyíteni az adathozzáférési réteg implementálását. Egy egységes, a Spring elvein alapuló, egyszerű módot biztosít erre, amely megtartja a különböző adatbázis-specifikus funkciókat, képességeket. A Spring Data Elasticsearch keretrendszer biztosítja egy Elasticsearch motor integrálását a projektbe, a keretrendszer egy POJO-centrikus modell alapján lép interakcióba ezzel a motorral. Az ElasticsearchRepository interfész (a Spring Data legfontosabb interfészének, a Repository interfésznek az ötödik rendbeli leszármazottja) felhasználásával a programozóknak elegendő csak egy metódust deklarálniuk, ebből a keretrendszer képes felépíteni a lekérdezésnek megfelelő Elasticsearch oldali parancsot. A metódusok neveit a Spring által meghatározott szabvány szerint, a megadott kulcsszavakból kell felépíteni. Ezek segítségével lehetőség van bonyolult lekérdezések végrehajtására is, ha ez nem biztosít elég mozgásteret a programozók számára, akkor az adott metódus annotációval, itt megadható egy Elasticsearch lekérdező parancs. Az Elasticsearch [4] egy könnyen skálázható, nyílt forráskódú NRT (Near Real Time) platform. Lehetőséget ad nagy mennyiségű adat tárolására, teljes szöveg alapú keresés megvalósítására és az adatok elemzésére közel valós időben Hibernate A Hibernate egy Red Hat által fejlesztett ORM keretrendszer, amely implementálja a JPA 2.1-es szabványt. Absztrakciós réteget biztosít a JDBC (Java Database Connectivity) API fölött. Célja az objektumorientált modellen belüli osztályok és az adatbázis táblák közötti megfeleltetés megvalósítása. A keretrendszer lehetőséget biztosít az adatok Java kódból történő kezelésére. A lekérdezések megírására használhatjuk a JPQL lekérdező nyelvet, vagy a Criteria Query API-t, melyek részei a JPA standardnak. A lekérdezések eredményeit a keretrendszer a Reflection API segítségével automatikusan Java objektumokká alakítja. 6
13 Mapstruct A szerver és kliens közti kommunikáció megvalósítása a DTO tervezési minta alpján történt. A DTO-k csak a kliens számára szükséges információkat tartalmazzák, adott esetben több entitás adatait vonják össze egy objektumba. Kizárólag az adatok reprezentációjára és az alrendszerek közötti megosztására vannak felhasználva, semmilyen logikát nem tartalmaznak. A minta elsődleges célja, hogy csökkentsük a kliens oldali hívások számát, a rendszerek között átvitt adatmennyiséget és ezáltal a hálózati forgalmat. A Mapstruct egy kód generátor, amely a DTO tervezési minta használatát könnyíti meg a fejlesztő számára, annotációs mechanizmus segítségével generálja az átalakításokhoz szükséges osztályokat Adatmodell A dwelling rendszer központi entitásai Java Bean-ként vannak reprezentálva, olyan POJO-k (Plain Old Java Object), amelyek privát adattagokkal, az adattagokhoz tartozó publikus getter és setter metódusokkal, valamint publikus paraméter nélküli konstruktorral vannak ellátva és szerializálhatóak. A központi entitások az edu.codespring.dwelling.backend.model csomagban kaptak helyet. Mivel a rendszer adathozzáférési rétegként Java Persistence API (JPA) specifikációt implementáló ORM keretrendszert használ, ezért az entitások JPA annotációkkal vannak felannotálva. A BaseEntity absztrakt osztály áll a modellhierarchia legfelsőbb fokán, implementálja a java.io.serializable interfészt, a rendszerben felhasznált összes entitás ősosztálya. Ellátja az entitásokat egy egyedi azonosítóval (id) és két dátum mezőt vezet be: az egyik az entitás létrejöttének, a másik az entitás utolsó módosításának megfelelő időpecsétet tárol. 7
14 A rendszer működésében a legfontosabb szerepet betöltő entitások közé tartozik a Therapist entitás. Az osztály példánya egy terapeutát reprezentál, a hozzá tartozó specifikus információkkal. A TreatmentRecord osztály példánya azokat az adatokat fogja össze, amelyek a páciens kezeléséhez kapcsolódnak. Ezek az információk csakis az adott terapeuta és páciens által ismertek, ha a pácienst mást terapeuta is kezeli, akkor annak a kezelési folyamatnak szintén van egy külön TreatmentRecord példánya. A Patient entitás reprezentál egy pácienst a rendszeren belül, tartalmazza a beteghez tartozó információkat, melyek minden terapeuta számára elérhetőek (pl. a beteg kórlapja). Egy másik fontos entitás a Therapy, ez reprezentál egy terápiát, tartalmazza a hozzá tartozó leírást, illetve a kapcsolódó képeket. A munkabeosztást és a foglalásokat összefogó entitás szintén egy fontos elem a rendszerben. A TherapistCalendar példányok segítségével valósul meg a terapeuta munkaprogramjának, valamint a terapeutához érkező időpont foglalásoknak a tárolása Kommunikáció A dwelling szerverének szolgáltatásai RESTful webszolgáltatásokon keresztül érhetőek el a külvilág számára. A REST (Representational State Transfer) egy szoftverarchitektúra típus, melyet Roy Fielding vezetett be doktori értekezésében. A REST HTTP analógián alapszik és működése általában szintén HTTP protokollra épül. A szerver által elérhetővé tett erőforrásokat a kliensalkalmazások adott konvencióknak megfelelő URI-k alapján azonosítják és a HTTP analógia alapján meghatározott műveletek (GET, POST, PUT, DELETE) alapján érhetik el vagy módosíthatják azokat. Az adatok küldése és fogadása a kliens és szerver között JSON objektumok formájában történik. A dwelling szerver esetében a különböző kéréseket kezelő osztályok az edu.codepsring.dwelling.backed.rest csomagban találhatóak. Ezek az osztályok a Spring Web MVC által annotációkkal vannak ellátva. Az annotációk szerepe, hogy egy adott URI-t az illető osztályhoz /api/therapies ) public class TherapyController { } 8
15 A példában annotáció tulajdonképpen annotációkat vonja egybe. A szerverhez beérkező, /api/therapies URI-re küldött kéréseket a TherapyController hivatott kiszolgálni, ezek a kérések a rendszer által támogatott terápiákra vonatkoznak. Az osztály szintjén annotációval bejelentett URI tovább bővíthető, és minden metódus esetében külön definiálható, hogy az adott metódus milyen típusú HTTP kérések esetében hívódjon meg. A dwelling fejlesztőcsapata betartotta a HTTP szabvány által megfogalmazott metódusok jelentéseit, a GET kérésekre a szerver válaszként a kért információt küldi vissza, ha PUT kérés érkezik, akkor az üzenetben megtalálható módosítások végrehajtódnak a szerver oldali modell objektumon, a POST kérés esetén egy új entitás kerül be a rendszerbe, a DELETE kérésnél törli a rendszer a megadott entitást. A TherapyController osztály searchtherapy metódusa szemlélteti a fent = search/{query}, method = RequestMethod.GET) public ResponseEntity<List<TherapyDTO>> query ) String query) { } A metódus által nyújtott szolgáltatást az api/therapies/search/{query} URI-en keresztül érhetjük el. Látható, hogy az osztály szintjén megadott URI kibővült a /search/{query} utótaggal. Az URI-ban paramétereként megadott {query} annotáció felhasználásával beépül a metódus paraméter listájába. A metódus feladata, hogy a kérésben megjelenő karaktersorozat alapján kikeresse a megfelelő terápiákat, az eredményből összeállítson egy listát és elküldje a válaszra váró félnek. A metódus a hozzá társított műveletet a szolgáltatási réteg megfelelő metódusainak meghívása által végzi el. A szerver és a kliens közötti kommunikáció során DTO-kat küld a rendszer, így garantálva azt is, hogy a szerver által használt entitások bizonyos információi (pl. jelszavak) nem hagyhatják el a szervert. Minden modell osztálynak van egy neki megfelelő DTO osztálya, amik nem tartalmazzák a kritikus információkat (pl. Therapy -> TherapyDTO). Az entitások átalakítása a MapStruct segítségével valósul meg. A kontroller osztályok a szolgáltatási rétegtől kapott adatokat átalakítják DTO-ká, majd ezeket küldik el a kliensnek, a klienstől kapott DTOkat pedig átalakítják modell objektumokká, ezeket továbbítják a szolgáltatási réteg irányába. 9
16 A válasz küldésekor fontos a HTTP szabványban meghatározott állapotkódok (status codes) helyes beállítása. A szerver minden válaszadás esetében egy ResponseEntity objektumot épít fel. Az objektumban helyet kap a válaszüzenet és az állapotkód. Minden sikeresen végrehajtott kérés esetében a 200-as (OK) állapotkód kerül beállításra. A Spring MVC a ResponseEntity objektumból fogja felépíteni a HTTP szabványnak megfelelő válaszüzenetet. A szerver támogatja több állapotkód megfelelő kezelését, pl.: 401 (Unauthorized), 403 (Forbidden), 404 (Not Foud), 423 (Locked) stb. A Spring Web MVC gondoskodik arról, hogy szerverhiba esetén az 500 (Internal Server Error) állapotkóddal ellátott üzenetet küldje vissza válaszként a várakozó félnek. Továbbá gondoskodik a keretrendszer arról is, hogy ha egy olyan kérés érkezik a szerverhez, amelyhez nincs társítva megfelelő kezelő osztály és metódus, akkor 404-es állapotkód legyen beállítva a válaszüzenetben Adathozzáférési réteg Az adathozzáférési réteg feladata, hogy kapcsolatot létesítsen különböző típusú adatbázisokkal, elvégezze az adatbázisok és a projekt közötti adatátvitelt. A dwelling projekt az adatok tartós tárolása érdekében egy MySQL adatbázist használ, továbbá az adatok egy részhalmazát az Elasticsearch keresőmotor is tárolja. A Spring keretrendszer a fejlesztőcsapatnak segítséget nyújtott a perzisztencia réteg megvalósításában. A Spring Data keretrendszer lehetőséget ad több fajta adattároló támogatására, úgy, hogy a projekt szintjén egy egységes kezelési módot biztosít a fejlesztőknek. A dwelling projekt esetében a Spring Data JPA és a Spring Data Elasticsearch modulok voltak felhasználva a keretrendszerből. A Spring Data JPA hivatott biztosítani a Hibernate integrálását a projektbe, továbbá egy plusz absztrakciós réteget képez az ORM keretrendszer felett, amely megkönnyíti az adathozzáféréssel kapcsolatos műveletek megvalósítását. A projekt esetében az adathozzáférési réteget alkotó interfészek az edu.codespring.dwelling.backend.repository csomagon belüli jpa és elasticsearch csomagokban kaptak helyet. A jpa csomagban található komponensek a JpaRepository interfészből származnak. Ez az interfész a Spring Data legfontosabb interfészének, a Repository interface-nek a negyedik rendbeli leszármazottja. public interface TreatmentRecordRepository extends JpaRepository<TreatmentRecord, Long>{ TreatmentRecord findbypatient_idandtherapist_id(long patientid, Long therapistid); } 10
17 A példából jól látszik, hogy a lekérdezések deklarálása tömören és egyszerűen megvalósítható. Az olyan esetekben, amikor nem előnyös ezzel az elnevezési konvenciókon alapuló módszerrel deklarálni a megfelelő lekérdezést, akkor annotációval megadhatjuk a megfelelő JPQL (Java Persistence Query Language) parancsot. Az elasticsearch csomagban található komponensek az ElasticsearchRepository interfészből származnak, amely szintén a Repository interface leszármazottja Szolgáltatás réteg A dwelling szolgáltatási rétege tartalmazza az üzleti logikával kapcsolatos műveletek megvalósításait, továbbá általa érhetőek el az adathozzáférési réteg szolgáltatásai. Az edu.codespring.dwelling.backend.service csomag tartalmazza a különböző entitásokhoz tartozó szolgáltatások megvalósításait, azaz a szerver oldali üzleti logikáért felelős komponenseket. A szolgáltatásokat a szerverhez érkező kérések fogadásáért és kiszolgálásáért felelől komponensek használják. A szerviz osztályok metódusai ellenőrzik a beérkező paraméterek helyességét, ezt követően a kérésnek megfelelő feldolgozást végeznek rajtuk, majd a választ továbbítják a hívó félnek. Az ellenőrzés és feldolgozás során felhasználják az adathozzáférési réteg szolgáltatásait. A szolgáltatási réteg annotációval ellátott Spring bean-ek. annotáció egy specifikusabb változata annotációnak, melynek szerepe, hogy jelezze a component-scanning mechanizmus során, hogy a keretrendszernek menedzselnie kell az illető szerviz osztályt. A kivételek átlátható kezelése érdekében a réteg egy saját kivételtípust határoz meg, az edu.codespring.dwelling.backend.service.exception csomagban található a ServiceException osztály, amely a RuntimeException osztályt terjeszti ki. Egy kivétel felléptekor a rendszer naplózza a kivételt a pontos típusának megfelelően, majd a felsőbb réteg számára már ezt az általánosabb, réteg-specifikus kivételt dobja tovább. A naplózást a rendszer SLF4J által biztosított absztrakciós szinten keresztül LOG4J naplózási keretrendszerrel valósítja meg. A szerviz osztályok közül megemlíthető például a TherapyService, amely searchtherapy metódusával kulcsszavak alapján képes különböző terápiákat ajánlani a rendszer felhasználóinak. Ennek megvalósítására teljes szöveg alapú keresést használ. Továbbá kiemelhető az EventService is, melynek szolgáltatásai lehetővé teszik új foglalások létrehozását és a már meglévő foglalások menedzselését. 11
18 3.6. Biztonság A rendszerben négy felhasználói szerepkör létezik. A legkevesebb jogosultsággal az anonim vendégfelhasználók rendelkeznek, ezen kívül létezik a páciens és terapeuta szerepkör, illetve az adminisztrátor felhasználók, akik az oldal karbantartásáért felelősek. Fontos volt, hogy a rendszerben szereplő terapeuták csak azokat a pácienseket láthassák, akiket már kezeltek, illetve az, hogy a páciensek ne férhessenek hozzá más páciensek adataihoz. Külön kellett kezelni a páciensek terapeuták számára publikus adatait, amelyek bármely arra jogosult terapeuta által megtekinthetőek és szerkeszthetőek. Az autorizációs mechanizmus implementációja a Spring Security keretrendszeren alapszik Spring Security A Spring Security keretrendszer előre megírt, könnyen beépíthető biztonsági megoldásokat tartalmaz. Ha egy testreszabott megoldást implementálunk, a keretrendszer alkotóelemei könnyen kiegészíthetőek, lecserélhetőek. Spring Bean-ként implementálhatjuk a megfelelő interfészt, majd bekonfigurálhatjuk az alapértelmezett megoldás helyett. A dwelling rendszer JWT token alapú autentikációs mechanizmust implementál, a szerveren semmilyen állapotinformáció nincs tárolva, így a kommunikációs mechanizmus teljesen megfelel a REST modellben meghatározott alapelveknek Autentikáció Az autentikáció során a felhasználó elküldi a bejelentkezési adatait, melyeket a szerver validál, majd létrehoz egy JWT tokent. A tokent Secure, Http-Only cookie-ként állítja be a válaszban. A JWT token-t a válasz testében is vissza lehetne küldeni, majd kliens oldalon perzisztálni, azonban ez a megoldás biztonsági kockázatot jelent. A Http-Only cookie-k Javascript-ből nem elérhetőek, így a megoldás jóval biztonságosabb. A Spring által adott User osztály és a projektben található User entitás közötti megfeleltetést egy saját UserDetailsService interfészt implementáló komponens valósítja meg. Ez a komponens az adatbázisból kinyeri a felhasználónévnek megfelelő dwelling User entitást. Az entitást átalakítja egy Spring UserDetails-t implementáló objektummá. 12
19 A JWT token minden kérés során validálva lesz, ezt a feladatot egy saját JWTFilter Spring komponens végzi. A JWTFilter komponens kiterjeszti a GenericFilterBean absztrakt osztályt, amelynek feladata az, hogy elkapja a Servlet kérést és továbbítsa a kérést a következő filter osztály felé. A JWTFilter osztály validálja a kérést, majd a tokenben található információ alapján beállítja a SecurityContextHolder context adattagját. A SecurityContextHolder-ből a kérés ideje alatt bármikor lekérdezhetőek az aktív felhasználóra vonatkozó információk Autorizáció Az autorizáció Spring annotációk és az SpEL (Spring Expression Language)-el van megvalósítva. annotáció segítségével felhasználói szerepkör alapján adhatunk hozzáférést. A PreAuthorize az annotáció értékeként SpEL kifejezéseket kaphat. Ilyen kifejezések a hasauthority, hasanyauthority stb. Ezeket a kifejezéseket a Spring Security értékeli ki a SecurityContextHolder Authentication objektuma alapján, és 403-as (hozzáférés megtagadva) hibakódot térít vissza, ha a kiértékelés hamis eredmény ad. A rendszer fejlesztése során bizonyossá vált, hogy a szerepkör alapú autorizáció nem lesz elégséges. Például, mikor egy terapeuta próbál elérni egy pácienst, szükséges annak a vizsgálata, hogy a terapeuta "ismeri"-e a pácienst vagy sem. Ezeket az ellenőrzéseket saját osztályok végzik, és a metódushívás után vannak végrehajtva. Ha a felhasználónak nincs joga az erőforrást megtekinteni/módosítani, akkor egy kivételt váltunk ki, amely 403-as hibakóddal tér vissza a kliens számára. 4. Web kliens A dwelling projekt kliens oldali alkalmazása egy AngularJs keretrendszerre épülő dinamikus webes alkalmazás. A kliensalkalmazás RESTful webszolgáltatásokon keresztül kommunikál a szerver oldallal Felhasznált technológiák AngularJS Az AngularJS [5] egy nyílt forráskódú, a Google által fejlesztett, JavaScript alapú keretrendszer, amely lehetőséget nyújt dinamikus webes alkalmazások fejlesztésére. A HTML leíró nyelv eszköztárát kibővíti az általa létrehozott alkotóelemekkel. Ezeket az újonnan létrehozott alkotóelemeket direktíváknak nevezik. A keretrendszert SPA (single-page application) típusú alkalmazások fejlesztésére tervezték. 13
20 Az AngularJS által fejlesztett applikációk az MVC (Model View Controller) szoftvertervezési mintát követik, vagy ennek valamilyen speciálisabb változatát. A keretrendszer kötelez minket a minták követésére, ezáltal a projektünk átláthatóbbá válik, elkülönül egymástól a megjelenítés, az adatmodell és a vezérlés. A keretrendszer biztosítja az adatkötést (data-binding), összeköti az adatmodellt a nézettel. A modell az egyetlen olyan egység, amely meghatározza az alkalmazás állapotát. A nézet a modell megjelenítése. Az adatkötésnek köszönhetően bármilyen változás a nézetben azonnal tükröződik a modellben is, ha a modellben történt változás, akkor az is látható a nézeten. Továbbá a keretrendszer biztosítja az alkalmazáskomponensek közötti függőségek menedzsmentjét, a Dependency Injection minta alapján TypeScript A TypeScript [6] a Microsoft által fejlesztett objektumorientált programozási nyelv. A fejlesztés célja, hogy könnyebbé váljon az összetett, nagy méretű alkalmazások fejlesztése. A TypeScript-ben megírt kódot egy fordító JavaScript-re fordítja. A TypeScript lehetőséget ad arra, hogy osztályokkal dolgozzunk, támogatja az öröklődést is. Bevezeti a típus fogalmát, ezáltal az adatmodellünk átláthatóbbá, biztonságosabbá válik, elkerüljük a típus inkompatibilitások előfordulását. A nyelv támogatja, hogy már meglévő AngularJS komponenseket is felhasználjunk a fejlesztésben, a kompatibilitás biztosításáért egy definíciós fájl felel. A definíciós fájlok biztosításáért, karbantartásáért a The TypeScript Definition Manager a felelős Adatmodell A web kliens adatmodellje TypeScript osztályok segítségével van felépítve. A szerver komponenshez hasonlóan itt is megjelennek a központi entitások, amelyek a rendszer működéséért felelősek, pl.: Therapy, Therapist, Patient. Az entitások néhány specifikus mező kivételével megfelelnek a szerver oldali adatmodellben definiált párjuknak. 14
21 4.3. Kommunikáció A szerverrel való kommunikáció implementációjának megkönnyítésére a csapat a Restangular modult hívta segítségül. A Restangular [7] egy AngularJS szolgáltatás, melynek szerepe, hogy egyszerűsítse a gyakran használt GET, POST, PUT, és DELETE típusú aszinkron kérések megvalósítását, egy minimális kliens oldali kód implementálásával. A web kliens esetében a különböző URI-ra irányuló kérések külön osztályokban vannak implementálva. Például a TherapyRepository osztály felelős minden olyan művelet megvalósításáért, amelyek a terápiákhoz kapcsolódnak. A kommunikációt megvalósító osztályok metódusai a hívó fél számára a visszajelzést IPromise-okon keresztül végzik, callback függvények segítségével. A kliens alkalmazás esetében a kontroller és a kommunikációért felelős réteg közé beépül egy szerviz réteg, ez egy átmenetet képez az előbb említett két réteg között továbbá a beérkező adatok manipulálását végzi. Tekintsük a következő példát, mely a TherapyRepository osztály getalltherapies metódusát mutatja be: public getalltherapies():ipromise<therapy[]> { var deferred = this.$q.defer(); this.restagula.all( therapies ).all( all ).getlist().then(response => { deferred.resolve(response); })..catch(error => { deferred.reject(error); }) return deferred.promise; } A fenti kódrészlet szerepe, hogy a szervertől lekérje az általa ismert terápiákat. Az /api/therapies/all URI-re küld egy GET kérést. A szerver válaszként egy terápiákból álló listát terít vissza. A JSON formátumban megkapott válaszból a Restangular Therapy objektumokat épít fel, melyeket egy listába gyűjt. 15
22 4.4. Biztonság A web kliens három különböző szerepkörrel rendelkező felhasználó típust támogat (PATIENT, THERAPITS, ADMIN), továbbá egy általános felületet biztosít a vendég felhasználók számára. A szerepköröknek megfelelően a felhasználók különböző felületeken keresztül érhetik el azokat a szolgáltatásokat, melyekre jogosultak. A felhasználók nézetei különböző állapotokhoz (state) vannak kötve, az állapotok közti navigációt az AngularUI Router [8] hivatott elvégezni. Az AngularUI Router AngularJS felhasználásával készült SPA alkalmazásokon belüli navigálást vezérlő keretrendszer. A böngésző URL-jét frissíti, annak függvényében, hogy miként navigálunk a webes alkalmazáson belül. A dwelling projekt webes alkalmazásának esetében minden állapothoz hozzárendelődik egy lista, amelyben azok a szerepkörök szerepelnek, amelyeknek hozzáférése van az adott állapothoz. Ha ez a lista üres, az azt jelenti, hogy az adott oldalt bárki megtekintheti. A következő példa szemlélteti egy állapot definiálását: export const PatientState:IState = { url: /patient/{patientid}, template : <patient patient-id= sctrl.$stateparams.patientid patient= sctrl.$stateparams.patient ><patient>, controller: PStateController, controlleras: sctrl, data: { role: [ THERAPIST ] } }; A példában látható állapot csak a THERAPIST szerepkörrel rendelkező felhasználók számára érhető el, a template mezőben egy nézet van hozzárendelve az állapothoz, ez fog megjelenni a felhasználó számára, amikor a /patient/{patientid} URL-re navigál. A kliens oldali Principal entitás felelős az aktuális felhasználó adatainak a tárolásáért és karbantartásáért. Fontos kiemelni az entitás authentication metódusát. Ez a metódus felelős azért, hogy ne engedje olyan állapotok elérését az adott felhasználónak, amelyhez nincs jogosultsága. A metódus minden állapotváltás esetében meghívásra kerül, a meghívását az Angular $statechangestart eseményére feliratkozott metódus végzi. Ha olyan oldalra akar navigálni a felhasználó, amelyhez nincs jogosultsága, akkor a metódus átirányítja a szerepkörének megfelelő alapértelmezett oldalra. 16
23 Azokban az esetekben, amikor a felhasználó olyan tartalmat szeretne elérni, amelyhez nincs jogosultsága a szerver válaszként egy 403-as állapotkóddal ellátott HTTP válaszüzenetet térít vissza. Az ilyen eseteknek a kezelését egy HTTP interceptor hivatott elvégezni. Ez az interceptor minden olyan HTTP válaszüzenetet elkap, amelyiknek a hibakódja 403-as, a felhasználót átirányítja a szerepkörének megfelelő alapértelmezett állapotra, és egy hibaüzenetet jelenít meg a számára. 5. Az alkalmazás működése Az alkalmazás mindhárom szerepkör számára ugyanazt a felületet biztosítja különböző funkciókkal. A fejezet képernyőképekkel illusztrálja ennek a felületnek a működését A terapeuták számára elérhető funkciók A terapeuták az első belépést követően kitölthetik profil adataikat, profil képet tölthetnek fel, egy rövid leírást és különböző elérhetőségeiket adhatják meg. 2. ábra Terapeuta profil szerkesztő 17
24 A következő lépés a munkaprogram meghatározása. Itt meghatározható a kezelések hossza, illetve, hogy egyszerre hány pácienst fogad egy kezelésen. Megadható, hogy az órarend hánytól hányig legyen érvényes. Az előbbi információk alapján egy naptár segítségével megadható a munkaprogram egy hétre. 3. ábra Terapeuta munkaprogram szerkesztő A terapeutáknak szüneteket is megadhatnak, amikor a pácienseik számára nem lesz elérhető a foglalás lehetősége. Ez az opció a kiválasztott időszakra felülírja a munkaprogram nézetben található órarendet. A terapeuták megtekinthetik a foglalásokat, elfogadhatják vagy elutasíthatják ezeket. 4. ábra Terapeutához érkezett foglalások listája 18
25 Megtekinthetőek azok a páciensek, akiknek már volt foglalásuk az adott terapeutához. Itt elérhetővé válnak a páciens publikus adatai (5. ábra), elérhetőek lesznek a páciens orvosi leletei (6. ábra), és a rá vonatkozó általános egészségügyi információk (7. ábra). 5. ábra Páciens adatai 6. ábra Orvosi leletek 19
26 7. ábra Páciens általános egészségügyi információi A terapeuta felvihet a kezelésekre vonatkozó információkat (8. ábra) és egy virtuális testen fájdalompontokat jelölhet meg, amelyekhez kommentárt is fűzhet (9. ábra). 8. ábra Kezelésekre vonatkozó információk 20
27 9. ábra Virtuális testre felvitt fájdalompontok 5.2. Páciensek számára elérhető funkciók A páciensek szerkeszthetik profiljukat, ahol profilképet és elérhetőségeket adhatnak meg (10. ábra). 10. ábra Páciens profil adatok A páciensek megtekinthetik a rendszerben található terápiák listáját (11. ábra), kereshetnek a terápiák között teljes szöveg alapú kereséssel (12. ábra), megtekinthetik a terapeuták listáját (13. ábra). 21
28 4. ábra Rendszerben található terápiák 12. ábra Teljes szöveg alapú keresés terápiák esetében 22
29 13. ábra A rendszer terapeutáinak listázása Miután a felhasználó megtalálta a számára megfelelő terapeutát a terapeuta profiljáról (14. ábra) a foglalási nézetre mehet (15. ábra). Miután kiválasztotta a megfelelő időpontot, véglegesítheti a foglalását (16. ábra). 14. ábra Terapeuta profilja a páciens számára megjelenítve 23
30 15. ábra Páciens számára elérhető szabad időpontok 16. ábra Kiválasztott időpont véglegesítése 24
31 5.3. Adminisztrátorok számára elérhető funkciók Az adminisztrátorok felelőssége az oldalon található terápiák menedzselése, új terápiák felvitele. A terápiák leírását egy Rich Text Editorral szerkeszthetik az oldalon belül és a galériába képeket vihetnek fel (17. ábra). 5. ábra Terápia szerkesztő Az adminisztrátorok letilthatnak bizonyos felhasználókat, ha azok megszegik az oldal használatának szabályzatát (18. ábra). 6. ábra Felhasználók listája az adminisztrátor számára megjelenítve, letiltási lehetőséggel Az adminisztrátorokon keresztül történik az oldalra a terapeuták regisztrációja is. 25
32 Következtetések és továbbfejlesztési lehetőségek A dwelling projekt keretein belül sikerült egy olyan szoftverrendszert létrehozni, amely segítségül szolgálhat egészségügyi problémákkal küszködő emberek és terapeuták számára. Egy webes alkalmazás segítségével a vendég felhasználók megtekinthetik a rendszer által támogatott terápiákat, regisztrálhatnak a rendszerbe. A páciensként regisztrált felhasználóknak lehetőségük van jelentkezni a kezelésekre. A terapeuták a rendszer segítségével meghatározhatják munkaprogramjukat, szabályozhatják mindennapi munkabeosztásukat. Felvezethetik a rendszerbe a páciensek korlapjait, kezelésekre vonatkozó adatokat rögzíthetnek. Az időpont kérésről, annak módosulásáról mind a terapeuta, mind a páciens -ben értesül. Az adminisztrátornak lehetősége van a felhasználók menedzsmentjére, továbbá az ő szerepkörébe tartozik az is, hogy új terapeutát és új terápiát vigyen fel a rendszerbe. A szoftverrendszer kiegészíthető további funkcionalitásokkal, például: Push notification szolgáltatás, melynek segítségével értesíteni lehetne a felhasználókat a különböző eseményekről (foglalás, foglalás elfogadása/elutasítása, hasznos hírek a felhasználó számára) Egy belső üzenetküldő rendszer a gyors és személyes kommunikációért. A népszerű közösségi oldalak szolgáltatásainak integrálása a projektbe (a közösségi hálók segítségével történő bejelentkezés, naptár szinkronizációja). Egy zárt e-learning rendszer bevezetése, amely azt a célt szolgálja, hogy a terapeuták különböző leírásokat, képeket, videókat tudjanak megosztani betegeikkel. Lehetőséget biztosítani a pácienseknek arra, hogy tudják értékelni a már befejezett terápiákat, illetve a terapeutákat. 26
33 Hivatkozások [1] K. Schwaber and J. Sutherland, The Scrum Guides. [Online] [Utolsó megtekintés dátuma: ] [2] Spring Doc Web MVC, Spring. [Online] [Utolsó megtekintés dátuma: ] [3] BioMed Team, Spring Data Elasticsearch. [Online] [Utolsó megtekintés dátuma: ] [4] Elasticsearch Reference, Elastic. [Online] [Utolsó megtekintés dátuma: ] [5] AngularJs hivatalos weboldala. [Online] [Utolsó megtekintés dátuma: ] [6] S. A. Basarat, TypeScript Deep Dive, 2015 [7] F. Boström, Restangular. [Online] [Utolsó megtekintés dátuma: ] [8] Austin, AngularUI Router. [Online] [Utolsó megtekintés dátuma: ] 27
JAVA webes alkalmazások
JAVA webes alkalmazások Java Enterprise Edition a JEE-t egy specifikáció definiálja, ami de facto szabványnak tekinthető, egy ennek megfelelő Java EE alkalmazásszerver kezeli a telepített komponensek tranzakcióit,
A Java EE 5 plattform
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 13. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
API tervezése mobil környezetbe. gyakorlat
API tervezése mobil környezetbe gyakorlat Feladat Szenzoradatokat gyűjtő rendszer Mobil klienssel Webes adminisztrációs felület API felhasználói Szenzor node Egyirányú adatküldés Kis számítási kapacitás
Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A Java EE 5 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 04. 17. A Java EE 5 platform A Java EE 5 plattform A J2EE 1.4 után következő verzió. Alapvető továbbfejlesztési
A TANTÁRGY ADATLAPJA
A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș-Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4
A ProfiNet szolgáltatáskereső platform
XIX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, 2016. május 19-22. A ProfiNet szolgáltatáskereső platform Szerzők: Vass Lilla Babeş-Bolyai Tudományegyetem, Kolozsvár,
Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans
Enterprise JavaBeans Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans (EJB) server oldali komponens, amely Az üzleti
Szoftverarchitektúrák. 12. Sorozat portál (követelmény specifikáció)
Szoftverarchitektúrák specifikáció Szoftverarchitektúrák 12. Sorozat portál (követelmény specifikáció) Balázs Zoltán (X0ELSN) Kiss Zoltán (BUS1FJ) Szoftverarchitektúrák specifikáció Tartalomjegyzék 1 Bevezető...
Enterprise JavaBeans 1.4 platform (EJB 2.0)
Enterprise JavaBeans 1.4 platform (EJB 2.0) Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. Az Enterprise JavaBeans Az Enterprise Javabeans Az Enterprise JavaBeans
ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu
ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu Számonkérés 2 Papíros (90 perces) zh az utolsó gyakorlaton. Segédanyag nem használható Tematika 1. félév 3 Óra Dátum Gyakorlat 1. 2010.09.28.
Szoftver Tervezési Dokumentáció. Nguyen Thai Binh
Szoftver Tervezési Dokumentáció Nguyen Thai Binh April 2010 1. fejezet Feladat Szimulációs feladat. Célja, hogy reprezentáljunk egy több komponensből álló alkalmazást, amely a megadott témakörnek megfelel,
ALKALMAZÁS KERETRENDSZER
JUDO ALKALMAZÁS KERETRENDSZER 2014 1 FELHASZNÁLÓK A cégvezetők többsége a dobozos termékek bevezetésével összehasonlítva az egyedi informatikai alkalmazások kialakítását költséges és időigényes beruházásnak
Junior Java Képzés. Tematika
Junior Java Képzés Tematika I. Szakmai törzsanyag A tematika tartalmaz algoritmuselméletet, programozási tételeket, tipikus adatfeldolgozó feladatokat, programozási nyelvi alapelemeket, technológiai ismereteket,
Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A webszolgáltatás
Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez
Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez Székely István Debreceni Egyetem, Informatikai Intézet A rendszer felépítése szerver a komponenseket szolgáltatja Java nyelvű implementáció
Összetett szoftverrendszerek fejlesztése Innovatív szoftver prototípusok a Codespring Mentorprogram keretein belül
Összetett szoftverrendszerek fejlesztése Innovatív szoftver prototípusok a Codespring Mentorprogram keretein belül Simon Károly simon.karoly@codespring.ro Miért nem? Új, természetből inspirált számítástechnikai
Bodó / Csató / Gaskó / Sulyok / Simon október 9. Matematika és Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár
Bodó / Csató / Gaskó / Sulyok / Simon Matematika és Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2016. október 9. Tudnivalók Tudnivalók: 1 Csapatok kiválasztása: a második hét végéig; 2
EGY NAGYBÓL HÚSZ KISEBB
EGY NAGYBÓL HÚSZ KISEBB JAVA EE ALKALMAZÁSÉPÍTÉS 2015-BEN - ESETTANULMÁNY KÁLMÁN ANDRÁS, KÁSA KÁROLY PRECOGNOX INFORMATIKAI KFT, 2015. WWW.PRECOGNOX.COM TARTALOM Monolit és több applikációra bontott alkalmazások
NETinv. Új generációs informatikai és kommunikációs megoldások
Új generációs informatikai és kommunikációs megoldások NETinv távközlési hálózatok informatikai hálózatok kutatás és fejlesztés gazdaságos üzemeltetés NETinv 1.4.2 Távközlési szolgáltatók és nagyvállatok
Bevezető. Servlet alapgondolatok
A Java servlet technológia Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2008. 03. 06. Servlet Bevezető Igény a dinamikus WEB tartalmakra Előzmény: CGI Sokáig
Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe
Webes alkalmazások fejlesztése Bevezetés az ASP.NET MVC 5 keretrendszerbe ASP.NET MVC Framework 2009-ben jelent meg az első verziója, azóta folyamatosan fejlesztik Nyílt forráskódú Microsoft technológia
MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák
Java Web technológiák Bevezetés Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások Áttekintés
Webes alkalmazások fejlesztése 7. előadás. Autentikáció és autorizáció (ASP.NET Core) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 7. előadás Autentikáció és autorizáció (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Autentikáció
Nyilvántartási Rendszer
Nyilvántartási Rendszer Veszprém Megyei Levéltár 2011.04.14. Készítette: Juszt Miklós Honnan indultunk? Rövid történeti áttekintés 2003 2007 2008-2011 Access alapú raktári topográfia Adatbázis optimalizálás,
Webes alkalmazások fejlesztése
Webes alkalmazások fejlesztése 3. gyakorlat Authentikáció, adatok feltöltése Szabó Tamás (sztrabi@inf.elte.hu) - sztrabi.web.elte.hu Authentikáció Manapság már elvárás, hogy a felhasználó regisztrálni
COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group
COMET webalkalmazás fejlesztés Tóth Ádám Jasmin Media Group Az előadás tartalmából Alapproblémák, fundamentális kérdések Az eseményvezérelt architektúra alapjai HTTP-streaming megoldások AJAX Polling COMET
Microsoft SQL Server telepítése
Microsoft SQL Server telepítése Az SQL Server a Microsoft adatbázis kiszolgáló megoldása Windows operációs rendszerekre. Az SQL Server 1.0 verziója 1989-ben jelent meg, amelyet tizenegy további verzió
Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás
Petőfi Irodalmi Múzeum A Digitális Irodalmi Akadémia megújuló rendszere technológiaváltás II. Partnerek, feladatok Petőfi Irodalmi Múzeum Megrendelő, szakmai vezetés, kontroll Konzorcium MTA SZTAKI Internet
Szerver oldali Java technológiák vállalati rendszerek fejlesztéséhez.
XVIII. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, 2015. május 21-24. Szerver oldali Java technológiák vállalati rendszerek fejlesztéséhez. Esettanulmány: a SkillMaster
JavaScript Web AppBuilder használata
JavaScript Web AppBuilder használata Kiss András Esri Magyarország Kft. 2015. október 8. Az ArcGIS Platform lehetővé teszi a Web GIS-t Térinformatika elérése bárhonnan Desktop Web Eszköz Egyszerű Egységes
Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting http://www.mattakis.com
Google App Engine az Oktatásban Kis 1.0 Gergely ügyvezető MattaKis Consulting http://www.mattakis.com Bemutatkozás 1998-2002 között LME aktivista 2004-2007 Siemens PSE mobiltelefon szoftverfejlesztés,
A TANTÁRGY ADATLAPJA
A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4
MVC. Model View Controller
MVC Model View Controller Szoftver fejlesztés régen Console-based alkalmazások Pure HTML weboldalak Assembly, C Tipikusan kevés fejlesztő (Johm Carmack Wolfenstein, Doom, Quake..) Szűkös erőforrások optimális
A rendszer célja. Funkciók
A rendszer célja A Megrendelő fejleszteni kívánja a kommunikációját. A mindennapi munka során egyre nagyobb igény jelentkezik az üzenetváltások pontos kezelésére, naplózására, nagyméretű, illetve sok címzettet
Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Email: info@silentsignal.hu Web: www.silentsignal.
Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Email: info@silentsignal.hu Web: www.silentsignal.hu. 1 Tartalom 1. BEVEZETŐ... 3 1.1 Architektúra (terv) felülvizsgálat...
XIX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, május FestivApp
XIX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, 2016. május 19 22. FestivApp Általános szoftverrendszer rendezvények programjának böngészésére és menedzsmentjére
A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem
A J2EE fejlesztési si platform (application model) 1.4 platform Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11.13. A J2EE application model A Java szabványok -
Zimbra levelező rendszer
Zimbra levelező rendszer Budapest, 2011. január 11. Tartalomjegyzék Tartalomjegyzék... 2 Dokumentum információ... 3 Változások... 3 Bevezetés... 4 Funkciók... 5 Email... 5 Társalgás, nézetek, és keresés...
Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft
Flash és PHP kommunikáció Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft A lehetőségek FlashVars External Interface Loadvars XML SOAP Socket AMF AMFphp PHPObject Flash Vars Flash verziótól függetlenül
Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció
ERA Elektronikus aláírás - felhasználói dokumentáció Tartalomjegyzék 1. Bevezető... 3 1.1. Általános információk... 3 2. DesktopSign... 3 2.1. Általános információk... 3 2.2. Telepítés... 3 3. MNBSubscriber...
Java Programozó képzés A&K AKADÉMIA 2019.
Java Programozó képzés A&K AKADÉMIA 2019. Kedves érdeklődő! Engedd meg, hogy a következő oldalakon részletesebben is bemutassam képzéseink modulrendszerét! Ha további kérdéseid vannak, ne habozz, tedd
Bemutató anyag. Flash dinamikus weboldal adminisztrációs felület. Flash-Com Számítástechnikai Kft. 2012. Minden jog fenntartva!
Bemutató anyag Flash dinamikus weboldal adminisztrációs felület Flash-Com Számítástechnikai Kft. 2012. Minden jog fenntartva! Testreszabott weboldalhoz egyéni adminisztrációs felület Mivel minden igény
30 MB INFORMATIKAI PROJEKTELLENŐR
INFORMATIKAI PROJEKTELLENŐR 30 MB DOMBORA SÁNDOR BEVEZETÉS (INFORMATIKA, INFORMATIAKI FÜGGŐSÉG, INFORMATIKAI PROJEKTEK, MÉRNÖKI ÉS INFORMATIKAI FELADATOK TALÁKOZÁSA, TECHNOLÓGIÁK) 2016. 09. 17. MMK- Informatikai
Név: Neptun kód: Pontszám:
Név: Neptun kód: Pontszám: 1. Melyek a szoftver minőségi mutatói? Fejlesztési idő, architektúra, programozási paradigma. Fejlesztőcsapat összetétele, projekt mérföldkövek, fejlesztési modell. Karbantarthatóság,
Web-fejlesztés NGM_IN002_1
Web-fejlesztés NGM_IN002_1 Rich Internet Applications RIA Vékony-kliens generált (statikus) HTML megjelenítése szerver oldali feldolgozással szinkron oldal megjelenítéssel RIA desktop alkalmazások funkcionalitása
Java Programozás 11. Ea: MVC modell
Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát
Földmérési és Távérzékelési Intézet
Ta p a s z ta l a to k é s g ya ko r l a t i m e g o l d á s o k a W M S s zo l gá l tatá s b a n Földmérési és Távérzékelési Intézet 2011.03.13. WMS Szolgáltatások célja A technikai fejlődéshez igazodva
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén
Szoftver technológia. Projektmenedzsment eszközök. Cserép Máté ELTE Informatikai Kar 2019.
Szoftver technológia Cserép Máté ELTE Informatikai Kar 2019. Szoftvereszközök A fejlesztőcsapat munkáját megfelelő szoftvereszközökkel kell alátámasztani projektmenedzsment eszközzel (project tracking
Univerzális munkafolyamat szimulátor
Univerzális munkafolyamat szimulátor Ütemterv Készítette: Kerek Róbert KERQABT.SZE Gazdaságinformatikus BSc III. évfolyam Külső témavezető Kesztyűs Attila Lajos Siemens PSE Kft. Belső konzulens Dr. Ferenc
iphone és Android két jó barát...
iphone és Android két jó barát... Multiplatform alkalmazásfejlesztés a gyakorlatban Kis Gergely MattaKis Consulting 1 Tartalom Miért multiplatform fejlesztés? Multiplatform fejlesztési módszerek A közös
Feltörekvő technológiák: seam, drools, richfaces és társai a JBossban
Feltörekvő technológiák: seam, drools, richfaces és társai a JBossban Török Tamás senior consultant ULX Nyílt Forráskódú Tanácsadó és Disztribúciós Kft. Miről lesz ma szó? Röviden az ULX-ről A JBoss közösségről
PlentyGO: Programajánló szoftverrendszer színházak számára
XX. reál- és humántudományi Erdélyi Tudományos Diákköri Konferencia (ETDK) Kolozsvár, 2017. május 18-21. PlentyGO: Programajánló szoftverrendszer színházak számára Szerzők: Bege István Babeş-Bolyai Tudományegyetem,
Gyakorlati vizsgatevékenység A
Gyakorlati vizsgatevékenység A Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés
1. Az Android platform bemutatása (Ekler Péter)... 1 1.1. Az Android sikerességének okai... 1 1.2. Az Android platform története... 3 1.3. Android-verziók... 5 1.4. Android Market (Google Play)... 13 1.5.
Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary
Oracle Containers for Java - j2ee alkalmazás szerver funkciók Molnár Balázs Oracle Hungary Mi is a J2EE? Szabványgyűjtemény Java alkalmazások számára A JavaSoft közösség alakította ki Összefogja az egyéni
Web programoz as 2009 2010
Web programozás 2009 2010 Áttekintés A web rövid története Kliens szerver architektúra Néhány alapfogalom Kliens- illetve szerver oldali technológiák áttekintése Áttekintés: miről lesz szó (kurzus/labor/vizsga)
Taninform KIR kapcsolat
Taninform KIR kapcsolat Cél A Taninform KIR adatkapcsolat célja, hogy a mindkét rendszerben megtalálható és tárolt, iskolai adminisztrációval kapcsolatos alapadatokat az intézmények könnyen szinkronban
CAMLAND Beruházás-megfigyelő
2016 CAMLAND Beruházás-megfigyelő Felhasználói útmutató Készítette: GeoVision Hungária Kft. Tartalomjegyzék Bevezető... 2 Bejelentkezés... 2 Vezérlőpult... 3 Kamera adatlap... 4 Nézetek kezelése... 6 Felhasználók...
Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban
Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban Vágvölgyi Csaba (vagvolgy@kfrtkf.hu) Kölcsey Ferenc Református Tanítóképző Főiskola Debrecen Moodle??? Mi is ez egyáltalán? Moodle
Gyakorlati vizsgatevékenység B
Gyakorlati vizsgatevékenység Szakképesítés azonosító száma, megnevezése: 481 04 0000 00 00 Web-programozó Vizsgarészhez rendelt követelménymodul azonosítója, megnevezése: 1189-06 Web-alkalmazás fejlesztés
Elektronikus Információs és Nyilvántartási Rendszer a Doktori Iskolák fiatal kutatói részére
Elektronikus Információs és Nyilvántartási Rendszer a Doktori Iskolák fiatal kutatói részére Adamkó Attila adamkoa@inf.unideb.hu Debreceni Egyetem Informatikai Intézet 1 Áttekintés A rendszer célja A rendszer
Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor
Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig
CabMap hálózat-dokumentáló rendszer
CabMap hálózat-dokumentáló rendszer A CabMap hálózat-dokumentáló rendszer elsősorban passzív optikai hálózatok elektronikus dokumentálására szolgál. A rendszer hatékony és rugalmas hozzáférést biztosít
webalkalmazások fejlesztése elosztott alapon
1 Nagy teljesítményű és magas rendelkezésreállású webalkalmazások fejlesztése elosztott alapon Nagy Péter Termékmenedzser Agenda Java alkalmazás grid Coherence Topológiák Architektúrák
2F Iskola fejlesztői dokumentáció
2F Iskola fejlesztői dokumentáció Tartalomjegyzék 2F Iskola fejlesztői dokumentáció...1 1. Vizió...1 2. Követelmények...1 3. Üzleti modell...4 4. Telepítési modell...6 5. Használati esetek...7 6. Felhasználói
Bóra Adatcsere. A webes modul működésének részletesebb leírását a csatolt dokumentum tartalmazza.
Bóra Adatcsere A Bóra Adatcsere a Bóra bérprogram webes modulja, ami a http://adatcsere.globo.hu címen érhető el. Természetesen a modult szeretnénk az Önök igényei alapján tovább fejleszteni, ezért kíváncsian
Webszolgáltatások (WS)
Webszolgáltatások (WS) Webszolgáltatások fogalma IBM (lényege) Egy interface, mely a hálózaton keresztül szabványos XML üzenetekkel érhető el és hozzá formálsi XML leírás tartozik. (soap, wsdl) Sun Szoftverelemek,
Felhasználói kézikönyv
Felhasználói kézikönyv Központi Jogosultsági Rendszer Nemzeti Szakképzési és Felnőttképzési Intézet 2010. július 23. Verziószám: 1.0 Végleges Tartalomjegyzék 1 Bevezető... 1 2 A Központi Jogosultsági Rendszer
Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 10. előadás Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté mcserep@inf.elte.hu http://mcserep.web.elte.hu Tesztelés
Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció
Serialization (in Java) Szerializáció Java Serialization API Standard eljárás az objektumok állapotának adatfolyamba történő kiírására (elmentésére egy bájtszekvenciába), és visszatöltésére Perzisztencia
KnowledgeTree dokumentumkezelő rendszer
KnowledgeTree dokumentumkezelő rendszer Budapest, 2011. január 11. Tartalomjegyzék Tartalomjegyzék... 2 Dokumentum információ... 3 Változások... 3 Bevezetés... 4 Funkciók... 5 Felhasználói felület... 5
Sú gó az ASIR/PA IR Públikús felú lethez
Sú gó az ASIR/PA IR Públikús felú lethez Súgó a magyarországi központi Agrárstatisztikai és Piaci Árinformációs rendszer publikus moduljához. 1 Publikus felhasználói regisztráció A publikus felület Regisztráció
Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.
Sapientia - EMTE 2008 Az előadás célja JPA - - perzisztencia ORM - - Objektumrelációs leképzés - Entitásbabok Állandóság Mechanizmus amely során az alkalmazás adatai megőrzésre kerülnek valamely perzisztens
Az ErdaGIS térinformatikai keretrendszer
Az ErdaGIS térinformatikai keretrendszer Két évtized tapasztalatát sűrítettük ErdaGIS térinformatikai keretrendszerünkbe, mely moduláris felépítésével széleskörű felhasználói réteget céloz, és felépítését
Szolgáltatási szint megállapodás
Szolgáltatási szint megállapodás Verzió: 1.1 (2017. november 30.) aai@niif.hu Tartalomjegyzék Tartalomjegyzésk 1 Műszaki szolgáltatások...3 1.1 Fájl-alapú metadata...3 1.1.1 Szolgáltatás URL...3 1.1.2
Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése
Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése 1 Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése Természetes nyelv feldolgozás 2 Tudásalapú információ-kereső rendszerek
OOP és UML Áttekintés
OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés
Abacom CRM rendszer használati utasítás
Abacom CRM rendszer használati utasítás Az Abacom CRM rendszerrel Ön nyilvántarthatja, keresheti, csoportosíthatja partnereit. Részletes listákat készíthet, melyeket Excel táblákba exportálhat, megjegyzéseket
WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31
Web programozás 2011 2012 1 / 31 Áttekintés Mi a web? / A web rövid története Kliens szerver architektúra Néhány alapfogalom Kliens- illetve szerver oldali technológiák áttekintése Miről lesz szó... (kurzus/labor/vizsga)
Integrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató
Integrációs mellékhatások és gyógymódok a felhőben Géczy Viktor Üzletfejlesztési igazgató Middleware projektek sikertelenségeihez vezethet Integrációs (interfész) tesztek HIÁNYA Tesztadatok? Emulátorok?
Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon
Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon Mi az IMDG? Nem memóriában futó relációs adatbázis NoSQL hagyományos relációs adatbázis Más fajta adat tárolás Az összes adat RAM-ban van, osztott
MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények
1. sz. melléklet MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS A) Műszaki követelmények A körkereső szoftvernek (a továbbiakban Szoftver) az alábbi követelményeknek kell megfelelnie
Szülői modul. Belépés a TANINFORM rendszerbe. Főoldal
Szülői modul Belépés a TANINFORM rendszerbe Belépni vagy a bogim.hu oldalon elhelyezett linkre való kattintással vagy a https://start.taninform.hu/application/start?intezmenyindex=032552 cím böngészőbe
Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja
1 / 15 Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja Vajna Miklós 2012. január 24. Tartalomjegyzék 2 / 15 1 Bevezető 2 Motiváció 3
JSF alkalmazások teljesítményhangolása JMeter és dynatrace segítségével
JSF alkalmazások teljesítményhangolása JMeter és dynatrace segítségével Bakai Balázs bakaibalazs@gmail.com http://seamplex.blogspot.hu 2013. október 9. Miről lesz szó? A JSF működése (röviden ) Terheléses
GeoServer, OpenLayers és WFS. Dolleschall János 2009. 08. 17.
GeoServer, OpenLayers és WFS Dolleschall János 2009. 08. 17. A GeoServer A GeoServer egy nyílt forráskódú szerver szoftver, ami lehetővé teszi térbeli adatok megosztását. Java-ban íródott, így platformfüggetlen.
A TANTÁRGY ADATLAPJA
A TANTÁRGY ADATLAPJA 1. A képzési program adatai 1.1 Felsőoktatási intézmény Babeș Bolyai Tudományegyetem 1.2 Kar Matematika és Informatika Kar 1.3 Intézet Magyar Matematika és Informatika Intézet 1.4
ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ
Budapest Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ Elméleti segédanyag Készítette: Kovács Dániel László 2007. november Tartalomjegyzék
A hibrid DB cloud biztonsági eszköztára. Kóródi Ferenc Budapest,
A hibrid DB cloud biztonsági eszköztára Kóródi Ferenc Budapest, 2016-10-11 Az adatok védelme Minden szervezet számára kritikus fontosságú Vállalati adatvagyon Szenzitív adatok Külső támadások elsődleges
DSD DSD. Egy országos méretű orvosi adatbázissal kapcsolatos informatikai kihívások. Kovács László Pataki Balázs Pataki Máté MTA SZTAKI DSD
MTA SZTAKI Department of Distributed Systems Egy országos méretű orvosi adatbázissal kapcsolatos informatikai kihívások Kovács László Pataki Balázs Pataki Máté Témakörök MTA SZTAKI bemutatása Nemzeti Rákregiszter
TOGAF elemei a gyakorlatban
TOGAF elemei a gyakorlatban Vinczellér Gábor 2009.06.0406 04 8 éves szakmai tapasztalat Bemutatkozás IT Support, Programozó, jelenleg Projektvezető, Termékfejlesztési Üzletág Vezető Tanácsadási és Szoftverfejlesztési
A Java Persistence API PersistenceAPI / 3
A Java Persistence API Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 11. 27. A Java Persistence API Előzm zmények Szerializálás Egyedi kevés automatizmus Hibernate,
Számítógépes Hálózatok. 5. gyakorlat
Számítógépes Hálózatok 5. gyakorlat PYTHON ALAPOK V. Socket programozás, UDP 2 Óra eleji kiszh Elérés: https://canvas.elte.hu Számítógépes Hálózatok Gyakorlat 1 3 A kommunikációs csatorna kétféle típusa
Flex: csak rugalmasan!
Flex: csak rugalmasan! Kiss-Tóth Marcell http://kiss-toth.hu marcell@kiss-toth.hu Magyarországi Web Konferencia 2006 2006. március 18. tartalom bevezető Adobe Flex alternatív technológiák bevezető az Internetnek
Az autorizáció részletes leírása
Az autorizáció részletes leírása 1. REGISZTRÁCIÓ ÉS FELTÉTELEI 1.1 Regisztráció Az Autorizációs kérés előtt a szervezetnek vagy a magánszemélynek regisztráltatnia kell magát. A regisztrációs lapon megadott
Osztott rendszerek, Java EE. Általános bevezető
Osztott rendszerek, Java EE Általános bevezető Osztott rendszerek Hálózati alkalmazások (java.net, java.nio, Apache Mina, stb.) Web-programozás (Servlet, JSP, JSTL, JSF, JavaFX, GWT, Struts, stb.) Webszolgáltatások
NETTUTOR AZ OKTATÁSSZERVEZÉS SZÁMÍTÓGÉPES TÁMOGATÁSA
NETTUTOR AZ OKTATÁSSZERVEZÉS SZÁMÍTÓGÉPES TÁMOGATÁSA Kis Ferenc, kis.f@szamalk-inf.hu SZÁMALK Informatika Rt. Az utóbbi években az elektronikus oktatás területén egyre több vállalat próbál különböző multimédiás
Alkalmazás technológiai frissítés migrációs és üzemeltetési tapasztalatok
Alkalmazás technológiai frissítés migrációs és üzemeltetési tapasztalatok Informix 11.50 upgrade esettanulmány 2011. január. 31. Átalakítandó architektúra (2009) Alapvetően az üzleti logikát tárolt eljárásokkal
Gyors, kényelmes, típusbiztos
REACT JAVA Cooperation over Competition MIGERAN Dr. Annamária Mattasits CEO / Co-Founder Gyors, kényelmes, típusbiztos Gergely Kis CTO / Co-Founder BEMUTATKOZÁS 10 év Migeran - Smart Software Solutions