Mikor? Milyen alkalmazásnál?



Hasonló dokumentumok
Webszolgáltatások (WS)

API tervezése mobil környezetbe. gyakorlat

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

Web-fejlesztés NGM_IN002_1

Adatbázisok elleni fenyegetések rendszerezése. Fleiner Rita BMF/NIK Robothadviselés 2009

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

ColourSMS Protokol definíció. Version 1.2

Adatbázis rendszerek 7. előadás State of the art


Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

JAVA webes alkalmazások

Nyilvántartási Rendszer

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Mobil Informatikai Rendszerek

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

Web programoz as

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Mobil Informatikai Rendszerek

A Java EE 5 plattform

Junior Java Képzés. Tematika

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Web-fejlesztés NGM_IN002_1

RIA Rich Internet Application

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

Webes alkalmazások fejlesztése

INTERNET. internetwork röviden Internet /hálózatok hálózata/ 2010/2011. őszi félév

GIS fejlesztés Web platformra nyílt forráskódú ingyenes eszközökkel

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Bevezetés Működési elv AJAX keretrendszerek AJAX

Osztott alkalmazások fejlesztési technológiái Áttekintés

Webapp (in)security. Gyakori hibákról és azok kivédéséről fejlesztőknek és üzemeltetőknek egyaránt. Veres-Szentkirályi András

Microsoft SQL Server telepítése

SOAP komponensek Delphiben

Térinformatikai adatbázis web felületen társadalmasítási célokra

MVC. Model View Controller

NEPTUN MOBIL ALKALMAZÁS FELHASZNÁLÓI SEGÉDLET

Hálózatbiztonság Androidon. Tamas Balogh Tech AutSoft

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

Elektronikus levelek. Az informatikai biztonság alapjai II.

Multimédiás adatbázisok

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

MŰSZAKI DOKUMENTÁCIÓ. Aleph WebOPAC elérhetővé tétele okostelefonon. Eötvös József Főiskola 6500 Baja, Szegedi út 2.

Földmérési és Távérzékelési Intézet

MicroSigner Közvetítő Szerver fejlesztői dokumentáció

Mobil készülékek programozása

Hálózati architektúrák és Protokollok GI Kocsis Gergely

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

Kommunikáció. 3. előadás

Moodle-integrálás intézményi környezetben

E mail titkosítás az üzleti életben ma már követelmény! Ön szerint ki tudja elolvasni bizalmas leveleinket?

A webhelyhez kötődő szoftverek architektúrája

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

QBE Édes Otthon lakásbiztosítás tarifáló webservice. Fejlesztői dokumentáció 1.0.2

5.1 Környezet Hálózati topológia

Flex: csak rugalmasan!

Zenetár a webszerverünkön,

Budapest Főváros Kormányhivatala. Földmérési, Távérzékelési és Földhivatali Főosztály. Általános Szerződési Feltételek.

BEVEZETÉS AZ INTERNET ÉS A WORLD WIDE WEB VILÁGÁBA. Kvaszingerné Prantner Csilla, EKF

Adatbáziskezelés php-ben MySQL adatbáziskezelı rendszert használva

Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Web:

Enterprise extended Output Management. exom - Greendoc Systems Kft. 1

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

OO PDO. Tehát PDO használatával, könnyen átállhatunk egy másik adatbáziskezelőre, anélkül hogy a kódot teljes egészében újraírnánk.

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Információ és kommunikáció

TRBOnet Térinformatikai terminál és diszpécseri konzol

Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

YOUNG PARTNER NAP

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Biztonságos mobilalkalmazás-fejlesztés a gyakorlatban. A CryptTalk fejlesztése során alkalmazott módszerek. Dr. Barabás Péter Arenim Technologies

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Android Wear programozás. Nyitrai István

Integrált vezeték nélküli alkalmazások

Információ és kommunikáció

Internet of Things az új mobil forradalom

Adatbázisok webalkalmazásokban

IBM WorkLight 5.0 mobil alkalmazás platform

ELEKTRONIKUS ADATCSERE SZEREPE A GLOBÁLIS LOGISZTIKÁBAN

Mobilizálódó OSZK. A nemzeti könyvtár mobileszközöket célzó fejlesztései az elmúlt időszakban. Garamvölgyi László. Networkshop, 2013.

1. Kapcsolók konfigurálása

Párhuzamos és Grid rendszerek

Google Web Toolkit. Elek Márton. Drótposta kft.

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

Hálózati architektúrák és Protokollok GI Kocsis Gergely

XML adatbázis kezelésének lehetőségei

SAP Business One. Áttekintés, gyakorlati ismertetı. Mosaic Business System Kft.; Support:

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

Ajax és Echo 2. Bokor Attila

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

WEBFEJLESZTÉS 2. MUNKAMENET-KEZELÉS, HITELESÍTÉS

Internetes térkép publikálási technikák, szabványok, trendek, nyílt forráskódú megoldások

Silent Signal Kft. Webáruházak informatikai biztonsága Veres-Szentkirályi András Marketingtorta - 4 1

Átírás:

Témakörök Milyen alkalmazásoknál lehet erre szükség? Rossz megoldások (közvetlen adatbázis kapcsolat, statikus tartalmak) XML Web services SOAP, WSDL RSS REST JSON Push notification

Mikor? Milyen alkalmazásnál? Ha távoli adatokat kell elérjünk: 1. Példa: egy hírportálhoz készült mobil alkalmazás: El kell érjük a hírek listáját a webes formázások nélkül Keresni, rendezni, szűrni kell tudjunk 2. Példa: egy ingatlan közvetítő alkalmazás: Komplex keresési feladatok, találatok betöltése, lapozás a találatok között Kapcsolatfelvétel, üzenet küldés Titkos információk védelme (az ingatlan pontos címe, tulajdonos adatai) Ha adatokat szeretnénk eltárolni úgy, hogy azt más készüléken is elérhessük: Felhő megoldások, biztonsági másolatok Üzenetküldés: Ha két felhasználó akar egymással üzenetet váltani, egymásnak üzenetet küldeni.

Rossz megoldások Közvetlen kapcsolat az adatbázis szerverhez: A kapcsolódási adatokat az alkalmazásba kellene beégetni, ami könnyen kinyerhető mások számára A hozzáférési adatok birtokában más adatokhoz is hozzáférhetünk HTML tartalmak parse-olása: Nem kell külön adatforrás, majd a weblap adatait feldolgozzuk, átstruktúráljuk egy apróbb design módosítás is működésképtelenné teheti az alkalmazást

Stateful vs. Stateless Stateful: egy munkamenet azonosítóval azonosítja a klienst a szerver Előnye: nem kell minden kérésben minden adatot elküldeni (pl. bejelentkezési adatok, keresési, szűrési feltételek) Hátránya: a munkamenet inaktivitás után lejár, a munkamenet azonosító megszerzésével megszemélyesíthetjük a felhasználót. Mobil alkalmazásoknál ritkán használjuk

Stateful vs. Stateless Stateless: a szerver nem tárol el a korábbi tranzakcióinkból semmilyen adatot, minden tranzakcióban minden adatot meg kell adni. Előnye: nem kell külön erőforrást fordítani a munkamenet kezelésére, életben tartására Hátránya: Minden üzenetben meg kell adnunk minden adatot (pl. bejelentkezési adatok), ez növeli az üzenetek méretét

EXtensible Markup Language A legtöbb adatcsere formátum közös jellemzője, hogy XML struktúrát használ Miért szeretjük az XML-t? Szöveges állomány, ember számára is olvasható, értelmezhető Gyakorlatilag minden platformon van támogatás a feldolgozásukra, generálásukra Fejlett validálási megoldások (DTD, XSD) XML

Web services Alkalmazások közötti adatcsere szabványok és protokollok gyüjteménye A célja, hogy két különböző szoftver (pl. java és egy c++ program) egymással kommunikálni tudjon. Példa 1: egy autó alkatrész értékesítő országos hálózat Rendelkezik egy webáruházzal és telepíthető Windows alatti futó alkalmazással. A desktop alkalmazás SOAP protokollon keresztül éri el a központi adatbázist.

SOAP, WSDL SOAP - Simple Object Access Protocol Széles körben elterjedt adatcsere protokoll Példa: MNB valuta árfolyam lekérdezése SOAP segítségével: Részletes leírás: www.mnb.hu/arfolyamok.asmx

SOAP, WSDL Kérés <?xml version="1.0" encoding="utf-8"?> <soap:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/ XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <GetCurrentExchangeRates xmlns="http://www.mnb.hu/webservices/" /> </soap:body> </soap:envelope> HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length <?xml version="1.0" encoding="utf-8"?> <soap:envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/ XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:body> <GetCurrentExchangeRatesResponse xmlns="http://www.mnb.hu/webservices/"> <GetCurrentExchangeRatesResult>string</GetCurrentExchangeRatesResult> </GetCurrentExchangeRatesResponse> </soap:body> </soap:envelope>

SOAP, WSDL MNB árfolyam lekérdezése PHP-ból: $client = new SoapClient('http://www.mnb.hu/arfolyamok.asmx?WSDL'); $response_stdclass = $client->getcurrentexchangerates(); $xml = $response_stdclass->getcurrentexchangeratesresult; $parser=xml_parser_create(); xml_parse_into_struct($parser, $xml, $ertekek); WSDL: Webszolgáltatás leíró nyelv, ebben leírhatjuk, hogy milyen metódusokat tudunk SOAP-on keresztül meghívni, azoknak milyen paraméterei és visszatérési értékei vannak. Használata nem kötelező.

SOAP mobil környezetben A protokoll tökéletesen alkalmas lenne mobil alkalmazásokhoz, de sajnos a natív SDK szinte egyik platform esetén sem támogatja. 3rd party library-k léteznek android és ios platformra is, de ezek működése sajnos nem mondható tökéletesnek. Ezen okok sajnos azt eredményezik, hogy egy új projekt esetén nem javasolt SOAP-ra építeni a rendszert. Meglévő SOAP-os infrastruktúra esetén érdemes csak ebben gondolkodni

RSS Rich Site Summary Arra feljesztették ki, hogy a gyakram frissülő site-ok az új tartalmak rövid összefoglalójának terjesztésére. Ez alkalmas lehet egy mobil hírolvasó alkalmazás vagy widget működéséhez. Példa:<item> <title> <![CDATA[ Amikor még aranyból voltak a Földközi-tenger szigetei ]]> </title> <link> http://index.hu/mindekozben/poszt/2014/08/25/amikor_meg_aranybol_voltak_a_foldkozi-tenger_szigetei/ </link> </item>

REST Representational State Transfer Megszorítások: kliens-szerver architektúra: a kliensek nem foglalkoznak adattárolással, a szerverek nem foglalkoznak felhasználói felülettel állapotmentes: a szerver nem tárolja a kliens állapotát, minden kérés minden információt tartalmaz gyorsítótárazhatóság: minden kérésnek tartalmaznia kell, hogy gyorsítótárazható-e réteges felépítés: lehetőséget ad arra, hogy közvetítőn keresztül kapcsolódjunk a szolgálatatáshoz egységes interfész igényelt kód (opcionális): a szerverek képesek lehetnek a kliens funkcióinak kiterjesztésére program részletek átadásával, amit a kliens futtatni tud

JSON JavaScript Object Notation Kis méretű, szöveges, ember által olvasható adatcsere formátum Az XML-nél tömörebb, kevesebb adatforgalmat igényel Támogatott adattípusok: szám (double) karakterlánc bool tömb objektum null

JSON Példa: "vezeteknev": "Kovács", "cim" : "utcahazszam": "2. utca 21.", "varos" : "New York",, "telefonszam": [ ] "tipus" : "otthoni", "szam": "212 555-1234", "tipus" : "fax", "szam": "646 555-4567"

JSON Használata: Javascript AJAX Mobil alkalmazások és webszerverek közötti adatcsere Mobil alkalmazások: ios, Android, Windows Phone SDK-ban egyszerűen feldolgozható és generálható JSON tartalom. HTTP POST kérésben elküldjük a kérést a szerver felé A válaszban visszakapjuk a kért eredményt

JSON mobil alkalmazás Kérés: "message": példa "action": "gettask", "request": "params": "taskid": "1234"

JSON mobil alkalmazás Válasz: "message": példa... "action": "gettask", "response": "resultcode": 0, "data": [ "filingnumber": "Iktatószám", "filingdate": "Iktatás dátuma", "documentlink": "Iratpéldány hivatkozások", "externalpartner": "Külső partnerek", "ownerorganization": "Birtokló szervezet", "manager": "Ügyintéző",

Push Notification Windows Phone Push notification Google Clound Messaging Apple Push Notification Service

Push Notification A mobil készülék életben tart egy TCP kapcsolatot, amire a szerver értesítéseket tud küldeni. Android esetén Google Clound Messaging (GCM) néven érhető el ios esetén Apple Push Notification Service (APNs) Ha értesítést szeretnénk küldeni, akkor a Notification server felé kell elküldenünk az alkalmazás azonosítóját, a felhasználó azonosítóját és az üzenetet. A mobil készülék az alkalmazás azonosító alapján dönti el, hogy melyik alkalmazásnak szól és engedélyezett-e az értesítés.

Biztonság HTTPS feletti kommunikáció Forráskódba beégetett jelszavak használatának mellőzése Szerver oldalon a jogosultságok ellenőrzése minden műveletnél A szerver megszemélyesítésével járó támadásra való felkészítés: a támadó eléri, hogy az ő szervere válaszoljon az alkalmazás kérésére. Megoldás: a bizalmas üzenetek nyilvános kulccsal történő aláírása és az aláírt üzenethez egy véletlen sorozatot is fűzzünk a visszajátszás megakadályozása érdekében

A mobil alkalmazásból a felhasználó tud fiókot regisztrálni és bejelentkezni. A fiókot a saját szerverünkön tároljuk és a bejelentkezést is mi végezzük. 1. lépés: adatbázis tábla létrehozása: CREATE TABLE `users` ( `username` varchar(20) NOT NULL, `password` varchar(16) NOT NULL, `email` varchar(25) NOT NULL, PRIMARY KEY (`username`) ) Példa alkalmazás

Példa alkalmazás 2. JSON üzenetek definiálása: Regisztráció: "message": "action": "registeruser", "request": "params": "username": "Felhasználó azonosítója", "password": "Felhasználó jelszava", "email": "Felhasználó email címe" Regisztráció válasz: "message": "action": "registeruser", "response": "resultcode": 0 1

Példa alkalmazás Bejelentkezés: "message": Bejelentkezés válasz: "message": "action": "login", "request": "params": "username": "Felhasználó azonosítója", "password": "Felhasználó jelszava", "action": "login", "response": "resultcode": 0 1

Példa alkalmazás 3. Szerver oldali kód (PHP): $data = json_decode(file_get_contents('php://input')); switch ($data[ message ]) case registeruser : $resp = registeruser($data[ params ]); break; case login : $resp = login($data[ params ]); break; echo $resp;