Szintézis-Net BrainstormingSzintézis-Net Brainstorming

A cég vezetősége úgy határozott, hogy a kollégák motiválása, oktatása, csapatépítése, továbbképzése érdekében kezdeményez egy ötletfórumot. A cég biztosítja a helyszínt és a szükséges feltételeket. Mi pedig minden hónapban felvethetünk egy szakmai témát, ami elég sok embert érdekelhet vagy foglalkoztathat. Ezt a témát, egy közülünk választott témavezető segítségével átbeszéljük, kidolgozzuk. - 2009. Október 30., Szintézis-Net

  • Brainstorming 16.

    Téma: Digitális képek és utómunka...

    Témafelelős: Csikár Péter, Szintézis-NET szoftvertesztelő

    Tartalom:

    • Fényképezés
    • Fejlődés
      • Fényérzékeny anyagok
      • Lencsék
      • Felépítés
    • Színterek
      • A – Vizuális színtartomány
      • B – RGB
      • C – CYMK
    • Képtípusok
      • Rasztergrafikus
        • Felbontás (ppi, dpi)
        • Képméret (szélesség x magasság)
        • Színmélység pl: 24 bit (8x8x8)(RxGxB)
        • Filmes példa: 24x36 mm-es film (200 pont/1mm = 34,56 Megapixel)
        • Fájfejléc – fájlra vonatkozó adatok(pl: BM(bitmap), fájlméret, metaadatok, bittérkép kezdőcíme
        • Információs fejléc – Eltárolt kép jellemzői (felbontás, színmélyég, stb)
        • Paletta(opcionális) – színek RGB kódjai
        • Bittérkép – képpontok információi
        • BMP (BitMaP)
        • Jpeg (Joint Photographic Experts Group) – 5:1, 15:1 tömörítés
        • TIFF (Tagged-Image File Format) 6 különböző tömörítés
        • RAW – nyers képinfók – 2,4:1 tömörítés
      • Vektorgrafikus
    • Photoshop
      • tippek,
      • egyszerűbb képmanipulálási folyamatok,
      • maszkolás

    Full story

    Comments (0)

  • Brainstorming 15.

    Subject: .NET 4 Entity Framework and LINQ

    Instructor: Kuntner Krisztián

    Content:

    • New features in .NET 4
      • Entity Framework
      • LINQ
    • People Skills – Team Composition

    Download: Brainstroming 15: .NET 4 Entity Framework and LINQ

    Full story

    Comments (3)

  • Brainstorming 13.

    Téma: HTML 5

    Témafelelős: Pethő Ákos, Szintézis-NET szoftverfejlesztőhtml5

    Demo Oldal megtekintése >> 

    Tartalom:

    • HTML - HyperText Markup Language
    • W3C - World Wide Web Consortium
    • HTML 5 kialakulása
      • Új markup - nem SGML és nem XML alapú
      • Új és egyszerűbb Doctype - <!DOCTYPE html>
      • Kompatibilitás korábbi verziókkal - HTML4, XHTML 1
      • Újdonságok

    1. Email - type="email" <input name="email" type="email" />
    2. Url - type="url" <input name="url" type="url" />
    3. Search - type="search" <input name="search" type="search" />
    4. Number Spinbox - type="number" <input name="spinbox" type="number" min="0" max="10" step="2" value="0"/>
    5. Slider - type="range" <input name="number" type="range" min="0" max="10" value="0"/>
    6. Date picker Date - type="date"<input name="date" type="date" />
    7. Audio - <audio controls="controls"> <source src="file/music.mp3" /> <a href="file/music.mp3">Letöltés</a> </audio> 
    8. Video - <video width="300" height="200" controls preload> <source src="file/video.ogv" type="video/ogg; codecs='vorbis, theora'" /> <p> A böngész&#337;d elavult. <a href="file/video.ogv">Töltsd le a videót.</a> </p> </video> 

    WEB STORAGE

    Kliensoldali perzisztens adattárolás

    Külön specifikáció - korábban HTML5 része

    Cookie-hoz hasonló - nagyobb tárhely, kliens oldal

    Adatmodell - kulcs-érték párok: string-ek

    SessionStorage - böngészési session alatt

    LocalStorage - böngésző bezárása után is

    Storage interfész

    LocalStorage

    Geolocation API

    • Szabványosított interfész - földrajzi pozíció lekérése

    • Földrajzi pozíció meghatározása - kliens oldalon
    • GPS, GSM/CDMA cella azonosító, Wi-Fi, IP cím

    • Geolocation
      navigator.geolocation.getCurrentPosition(handle_position, handle_error, { enableHighAccuracy: true });
    • Hibakezelés - err objektum

    • Position

    Full story

    Comments (0)

  • Brainstorming 12.

    Subject: Testing workshop

    Instructor: Roland

    Content:

    • Design phase
    • Implementation phase 
    • Execution phase
    • Reporting phase
    • Raising issues 
    • Time intervals / Deadlines 

    Download: Brainstroming 12: Testing workshop

    Full story

    Comments (0)

  • Brainstorming 11.

    Subject: Testing process theory Test management

    Instructor: Roland

    Content:

    • Introduction
    • Safety critical systems
    • Testing process
    • Planning and control
    • Analysis and design
    • Implementation and execution
    • Evaluating exit criteria and reporting
    • Test closure activities
    • Test Management Documentation
    • Test Estimation
    • Scheduling Test Planning
    • Test Progress Monitoring and Control
    • Business Value of Testing
    • Risk Management
    • Test Management Issues for Safety Critical Systems
    • Incident Management
    • People Skills – Team Composition

    Download: Brainstroming 11: PowerPoint presentation

    Full story

    Comments (0)

  • Brainstroming 10.

    SharePoint

    Mi is az a SharePoint?

    • Weboldalak csoportokba szervezett, hierarchikus rendszere.
    • Nem egy külön technológia vagy termék, hanem egy portál építő infrastruktúra.
    • Egységes megjelenésű, könnyen kezelhető, dinamikus weblapok és tartalmak.
    • A weblapok funkcionálisan ASP.NET webes alkalmazások, melyeket az IIS használatával publikálunk, back end-ként az SQL Server adatbázist használva az adatok tárolására.

    Szoftverkomponensek

    • SharePoint Foundation 2010
    • SharePoint Server 2010
    • SharePoint Designer 2010
    • SharePoint Workspace 2010

    SharePoint Foundation 2010

    Korábban Windows SharePoint Services (WSS) néven volt ismert. Ingyenes bővítmény a Microsoft Windows Server 2003 és 2008 mellé. A SharePoint technológia magját, alapvető részeit tartalmazza.

    SharePoint Server 2010

    Számos funkcióval bővíti ki a SharePoint Foundation alapszolgáltatásait. Két változatban érhető el: Standard és Enterprise. Kétféle licencelési modellel érhető el: belső használatra (Client Access License, ún. „per user” license) és külső használatra (SharePoint 2010 for Internet Sites).
    A három változat (Foundation, Server Standard és Server Enterprise) funkcióinak és szolgáltatásainak listája megtekinthető itt: http://sharepoint.microsoft.com/en-us/buy/Pages/Editions-Comparison.aspx.

    SharePoint Designer 2010

    SharePoint-os webhelyek tervezésére, létrehozására és testreszabására szolgáló ingyenes program. Képes workflow-klétrehozására és testreszabására is. A program segítségével a .NET keretrendszerben történő kódolás nélkül végezhetők bizonyos műveletek a SharePoint vagy valamilyen külső forrás adatain.

    SharePoint Workspace 2010

    Korábban Microsoft Office Groove néven volt ismert. A dokumentumokkal kapcsolatos csoportmunka támogatására tervezték olyan csoportok számára, melyek tagjai gyakran dolgoznak a dokumentumokon hálózati kapcsolat nélküli közegben vagy nem azonos hálózati biztonsági jogosítványokkal rendelkeznek.

    SharePoint lehetőségei

    A felhasználóknak lehetőségük van közös naptárak, feladatlisták és névjegyzék használatára. Ez nagyban megkönnyíthet olyan folyamatokat, mint például megbeszélések szervezése, erőforrások lefoglalása (pl. tárgyaló, projektor) vagy projektek menedzselése.
    Az oldalakon elhelyezhető faliújság, hírfolyam segítségével a vezetők, illetve az arra illetékesek könnyedén értesíthetik a felhasználókat az őket érintő fontosabb dolgokról. Például az adott csoportnak mikorra kell elkészülni valamivel, bejött egy nagyon sürgős teendő vagy csak egyszerűen tegnap nyert a focicsapat és ezt szeretnénk megosztani a többiekkel.
    A fórumok és wiki oldalak létrehozásának lehetősége szintén sokat segíthet. Létrehozható például egy céges wiki oldal, ahol minden hasznos információ megtalálható a régi és új kollégák számára vagy a céges tudásbázis is kialakítható ilyen formában.
    A céges fórum szintén hasznos lehet, akár egy meeting időpontjának megbeszélésében, akár abban, hogy épp az adott napon ki honnan szeretne rendelni pizzát/kínait/gyrost (lehetne focis fórum is vagy xbox-os…).
    Könnyedén létrehozhatók kérdőívek, felmérések is a SharePoint segítségével.
    A dokumentumok kezelésére is van lehetőség, erre szolgálnak az ún. dokumentum tárak.
    Támogatja a workflow-k kezelését és RSS feedet is szolgáltat, amennyiben engedélyezzük.
    Ez csak egy rövid áttekintés a SharePoint szerteágazó lehetőségeiről, természetesen a tényleges lista sokkal hosszabb lenne.

    Tárak és listák

    SharePointban a dokumentumok nem csak egy file-t jelentenek. A feltöltött file-ok tárolása ún. tárakban történik, az egyes elemek mellékleteként. Az egyes elemekhez többféle metaadat is tartozik (pl. ki hozta létre, mikor módosult utoljára) és lehetőség van sajátok definiálására is.

    Többféle tártípus létezik a tárolt adatok típusának megfelelően.
    A főbb tártípusok:

    • dokumentum tár:
      o bármilyen típusú file megosztására, tárolására alkalmas
      o az Office-os dokumentumoknak magasabb szintű támogatása van
    • kép tár
      o képek, rajzok, ábrák rendszerezésére
      • űrlap tár
      o XML alapú űrlapok kezelése
    • wikilap tár
      o wiki lapok tárolása

    A korábban említett tárak gyakorlatilag listák, melyben az egyes elemekhez többféle információt (metaadatot) is rendelhetünk. A listák oszlopokból állnak, amik megadják, hogy milyen adatokkal rendelkezhet az adott lista egy eleme.

    Közös munka a dokumentumokon

    A SharePoint támogatja a dokumentumokon történő közös munkavégzést. A rendszerbe feltöltött dokumentumokhoz opcionálisan beállítható a verziókövetés.
    A „Check out” művelet segítségével magunkhoz vehetünk egy dokumentumot, aminek szerkesztéséra így kizárólagos jogot kapunk. Ez egészen addig így marad, amíg vissza nem tesszük a „Check in” művelettel.
    Lehetőség van egyes dokumentumokat workflow-kba bevonni (pl. egy adott munkafolyamat harmadik lépése egy megadott szerződés vagy számla kitöltése).
    Létezik egy ún. „Approve” funkció, amivel az arra jogosult személy jóváhagyhatja a dokumentum változásait (pl. az előbb említett munkafolyamat negyedik eleme lehet a kitöltés jóváhagyása).

    Kijelzők (webpart-ok)

    A kijelző egy ASP.NET-es control, melynek tartalma, viselkedése és kinézete a felhasználók által a böngészőből szerkeszthető. A SharePoint-os oldalak tartalmazhatnak kijelző-zónákat, ahol a kijelzők elhelyezhetőek. A SharePoint az aktivált szolgáltatások függvényében különböző kijelzőket tartalmaz, de lehetőség van letölteni vagy fejleszteni hozzá sajátot.

    Böngésző támogatás

    A Microsoft három szintet definiált a böngészők támogatásához:

    • támogatott: Internet Explorer 7 32bit és Internet Explorer 8 32bit
    • korlátozottan támogatott (egyes funkciókkal problémák lehetnek): Internet Explorer 7 64bit, Internet Explorer 8 64 bit, Firefox 3.6, Safari 4.04
    • nem tesztelt (gyakorlatilag nem támogatott): Internet Explorer 6

    (megjegyzés: természetesen érdemes megpróbálni az kedvenc böngészőnkkel akkor is, ha nem szerepel a fenti listán a támogatott böngészők között)
    A böngészők támogatásáról részletesebben: http://technet.microsoft.com/en-us/library/cc263526.aspx

    Egyéb hasznos információk, érdekességek

    A SharePoint egy kiszolgáló alkalmazás, böngészőből módosítható kliens oldalról.

    A jogosultságok beállításai részletesen definiálhatóak, az említett weblap hierarchia mentén öröklődnek. Természetesen ez megszakítható és saját beállításokat definiálhatunk az egyes szinteken, később pedig amennyiben szeretnénk, visszatérhetünk az örökölt tulajdonságokhoz.

    Nagyon erős Office integráció van a SharePointban (Word, Excel, Outlook stb.), de természetesen nem csak ezeket a formátumokat kezeli.

    A telepítés után automatikusan kezeli az Active Directory-s felhasználókat, például egyből besorolhatók a megfelelő jogosultsági csoportokba.

    Mindent MS SQL adatbázisban tárol. Például a feltöltött Word dokumentumot BLOB (binary large object) formában.

    A lomtár funkció segítségével a törölt elemek nem vesznek el egyből, így a véletlen adatvesztés esélye csökken.

    A felhasználók (megfelelő jogok birtokában) létrehozhatják saját oldalukat, amit ízlésüknek és igényeiknek megfelelően testreszabhatnak.

    Többnyelvű weboldalak támogatása:
    • a megfelelő nyelvi csomagok telepítése után a felhasználói felület nyelve átállítható a megadott nyelvre
    • a tartalom fordítása is megoldott, erre használhatók az ún. „Variation”-ök

    Lehetőség van az egyes oldalakhoz engedélyezni mobilos hozzáférést, így a felhasználók a mobiljukról is elérhetik azokat.

    A backup-olásra nagyon jó támogatást kapott, az admin felületről pár kattintással lementhetők a kívánt részek.

    A felhasználók feliratkozhatnak bizonyos eseményekre. Ez azt jelenti, hogy például email-ben értesítést fognak kapni, ha bekövetkezett az adott esemény (megváltozott az adott dokumentum, új file-t töltöttek fel egy mappába stb.).

    Amennyiben szükséges, lehetőség van ún. SharePoint farmokat létrehozni. Nagyobb rendszerek, illetve terhelés esetében ez több gép bevonását jelenti, azonban kisebb rendszerek esetén is ajánlott a SharePoint-ot és az adatbázisát külön gépre telepíteni.

    Full story

    Comments (0)

  • Brainstorming 8.

    CVS (Concurrent Versions System)

    1, Általános ismertetés

    CVS egy kliens-szerver architektúrára épülő, ingyenes verzió követő rendszer, melynek alapjait Dick Grune fektette le 1986 júliusában pár shell script formájában. Segítségével egyszerre több emberek dolgozhat ugyanazon a projekten (akár ugyanazokon a file-okon!), anélkül, hogy a különböző fejlesztők változatai összekeverednének. A CVS az RCS (Revision Control System) változatkezelő rendszeren alapul, kiterjesztve azt olyan módon, hogy a fájlok csoportjaira menedzsment eszközöket biztosít (az RCS egyes file-ok menedzselését valósította meg).

    2, Működése
    A projekthez szükséges file-okat egy központi „repository”-ban tárolja a CVS. A file-okat verzió-követve tárolja, vagyis minden „commit”-olás után új verzió keletkezik (de a régiek sem vesznek el!).
    Ebből a „repository”-ból (a megfelelő jogosultságok birtokában) egy adott fejlesztő bármikor készíthet egy lokális másolatot a saját filerendszerébe a „check out” paranccsal. Később, amennyiben újabb verzió érhető el valamelyik file-ból, az „update” paranccsal frissítheti azt. A „check out”-olt file-okat szabadon lehet módosítani. Ha ezalatt valamilyen módosítás kerül be a „repository”-ba, akkor az „update” össze-„merge”-öli az új részeket a lokálisan tárolt változatban a felhasználó változtatásaival. Amennyiben ezt nem tudja megtenni, „conflict” keletkezik, ami emberi beavatkozást igényel (ez akkor szokott előfordulni, ha a lokális és a központi változások azonos részeket érintenek, de még ilyenkor sem minden esetben). Ha a fejlesztő elkészült a változtatásaival, feltöltheti azokat a „repository”-ba a „commit” paranccsal. Ezzel minden érintett file verzió száma („revision”) megnő eggyel. Mivel CVS az egyes file-ok minden verzióját tárolja, így egy korábbi állapot bármikor visszaállítható.

    3, Alapfogalmak
    repository” – a cvs-ben tárolt adatok központi „raktára”
    module” – a CVS egy logikai egysége, általában egy module-t használunk projektenként
    revision” – egy filecsoport adott verziója
    revision number” – numerikus szimbólum egy filecsoport adott verziójának jelölésére a következő módon: ’.’-al elválasztott számpárok sorozata és általában 1.1-ről indul (elágaztatás, vagyis branch készítése esetén ez a számsor kibővülhet újabbakkal)
    head-revision” – az elérhető legfrissebb verzió
    check out” – az adott projekthez tarozó file-ok letöltése a „repository”-ból, lokális másolat készítése
    update” – az előző „update” (ha még nem volt akkor a „check out”) óta a „repository”-ba bekerült változtatások letöltése a felhasználó filerendszerében tárolt másolatba
    commit” – a lokális másolat változásainak feltöltése a „repository”-ba
    add” – új file hozzáadása a „head-revision”-höz (innentől a projekt része)
    remove” – már a „repository”-ban lévő file-t lehet eltávolítani a „head-revision”-ből (korábbi verziói ettől függetlenül elérhetőek)
    history” – adott file „családfáját”, azaz előzményeit (korábbi verzióit) lehet lekérdezni vele
    merge” – két különböző verzió összefésülése
    conflict” – olyan eltérés két változat között, amit a CVS maga képtelen feloldani (főként „update” vagy „commit” esetén fordulhat elő)
    status” – egy CVS felügyelet alatt álló file állapota, ami a lokális másolatra vonatkozik

    1. up-to-date: azonos a repositoryban lévő változattal
    2. locally modified: a file-t lokálisan módosították, ezért „commit” szükséges
    3. needing update: valaki más módosított és „commit”-ált egy újabb változatot a „repository”-ba, de a lokális másolat még nem módosult
    4. needing merge: valaki más módosított és „commit”-ált egy újabb változatot a „repository”-ba, és a lokális másolat is módosult

    4, Branch
    A CVS segítségével szét lehet választani a fejlesztést különböző ágakra, ezeket hívjuk „branch”-eknek. Amikor egy file-t megváltoztatunk a „branch”-ben, a módosítások nem jelennek meg a fejlesztés fő ágában („trunk”, azaz törzs). Később természetesen egybe lehet őket olvasztani a megfelelő változtatások átvitelével egyikből a másikba („merge”-ölés).
    Példáult egy fejlesztő szeretne kipróbálni valamit, de nem biztos abban, hogy az működni fog. Ilyenkor indíthat egy saját „branch’-et (ágat), ami elágazik a „trunk”-ből. Megtehetné azt is, hogy a saját renszerén kísérletezik ezzel, de így nem használná ki a CVS nyújtotta előnyöket.
    Okot adhat egy új branch létrehozására az is, ha például új „release”-t szeretnénk kiadni a szoftverből.

    CVS Branch

    5, Tag (symbolic names)
    A CVS tag-eket használ a projekt egyes verzióinak megkülönböztetésére. Egy adott tag-hez a aktuális branch vagy trunk legfrissebb file-jainak verziószámát menti el a rendszer (mintha egy pillanatkép lenne az aktuális állapotról).
    Hasznos lehet például „merge”-ölés előtt és után „tag”-elni a „branch”-ünket, így később könnyen visszaállítható ez az állapot („check out as”-el ki lehet menteni egy adott tag-hez tarzozó file-okat). Egyébként nyugodtan használható szinte bármikor, amikor úgy gondoljuk, hogy szükség lehet rá (ártani nem árt, de sokszor nagyon hasznos lehet).
    Természetesen fontos, hogy az elnevezésre itt is ügyeljünk, tartsuk be az adott „repository”-t használó csoportunk által alkalmazott konvenciókat.

    6,Források, linkek és további információ
    http://en.wikipedia.org/wiki/Concurrent_Versions_System
    http://cvshome.org/eng/
    http://ipv6.niif.hu/tipster6/papers/cvs_overview/

    Full story

    Comments (0)

  • Brainstorming 7.

    Mobil programozás

    Java ME

    A mobilprogramozás egyre fontosabb ágazata a szoftverfejlesztésnek, hiszen manapság már mindenki zsebében ott lapul egy egyszerű mobiltelefon, okostelefon vagy PDA, amelyek szolgáltatási köre egyre csak bővül. Ez alkalommal a Java alapú mobiltelefonok és okostelefonok programozásának alapjait vettük szemügyre.

    Programozási nyelv és fejlesztőkörnyezet

    Java ME – A Java nyelv mobiltelefonokra optimalizált változata. Honlap: http://java.sun.com/javame/index.jsp

    NetBeans – Ingyenes integrált fejlesztőkörnyezet. Több változatban is elérhető. A Java ME-t támogató változat több mint egy tucat mobiltelefon emulátorral tölthető le. A mobilszoftverek fejlesztése ezzel az eszközzel a leg kényelmesebb, kezdők számára is kiváló választás. Honlap: http://netbeans.org/

    Eclipse – Szintén ingyenes integrált fejlesztőkörnyezet – talán a legismertebb is. A Java ME-t csak a megfelelő plugin letöltése után támogatja. Emulátorról is külön nekünk kell gondoskodnunk. Honlap: http://www.eclipse.org/
    http://eclipseme.org/

    Platformok

    Egy új Java ME projekt indításakor választhatunk, hogy milyen platformra szeretnénk fejleszteni. A két alapvető platformtípus, amely közül választanunk kell a CLDC és CDC, ám ezeken kívül opcionálisan választhatók egyéb függvénykönyvtárak is a projekthez. Természetesen minél “hájasabb” projektet indítunk, annál több funkciót fogunk tudni elérni: RMS, BlueTooth, multimedia, stb., ám annál nagyobb helyet fog követelni magának az alkalmazás a készülék memóriában.

    Connected Limited Device Configuration (CLDC)

    Korlátozott erőforrásokkal bíró eszközök programozására optimalizált platform. Kevés memóriával, rövid akkumulátor idővel és korlátozott grafikai képességekkel rendelkező eszközök fejlesztésére alkalmas. Ide tartoznak az egyszerű, Java alapú mobiltelefonok is, habár ezek képességei egyre inkább nőnek.

    Connected Device Configuration (CDC)

    Komolyabb erőforrásokkal bíró, többfajta hálózati kommunikációra is képes eszközök fejlesztésére optimalizált platform. Ilyen eszközök a PDA-k, és okostelefonok, és sokminden egyéb.

    Mobile Information Device Profile (MIDP)

    A Java ME nyelv egyik kulcs eleme a Mobile Information Device Profile (MIDP) csomag, amely a CLDC platformmal kombinálva hasznos szolgáltatásokat nyújt napjaink modern mobiltelefonjainak programozásához, kihasználva azok minden képességét.

    Record Management System (RMS)
    A MIDP platform által nyújtott újabb platform, amelynek segítségével adatokat tárolhatunk a mobil eszközökön, azok belső memóriájában úgy, hogy az adatok kikapcsolás után is megmaradjanak. Az RMS egy egyszerű, rekord orientált adatbázisnak fogható fel, amelyben mindössze egyetlen tábla van, és a táblának egyetlen oszlopa, viszont végtelen sok sora. Ezekben a sorokban tetszőleges adatot tárolhatunk bájtsorozat formájában.

    Android OS

    · Az Android 2.2 operációsrendszer szoftver architektúra rétegeinek a rövid ismertetése:

    • alkalmazás réteg: Java nyelven elkésztett Android alkalmazások
    • alkalmazás keretrendszer: a fejlesztők számára elérhető erőforrás kezelők és különböző menedzserek
    • C/C++ könyvtárak
    • futtató környezet (Android Runtime): az alkalmazásokat futtató Dalvik virtuális gép
    • Linux kernel: vezérli az Android alap szolgáltatásait, mint a biztonság, a memória-, a folyamatmenedzsment és a hálózatkezelés

    A HTC Dream telefon hardver architektúrája

    • obe és kiviteli interfészek bemutatása
      • kapacitív érintőkijelző
      • QWERTY billentyűzet
      • trackball
      • gyorsulásmérő

    · Andriod alkalmazásfejlesztés alapjai

    • fejlesztőkörnyezet
      • ingyenes Eclipse bővítmény áll rendelkezésre
      • a telefonon is lehet hibakeresést végezni
    • építő komponensek bemutatása:
      • aktivitások
      • szervizek
      • tartalomszolgáltatók
      • szórt üzenet fogadók (Broadcast receiver)
    • aktivitások életciklusának ismertetése

    Full story

    Comments (0)

  • Brainstorming 6.

    Téma: RPC, MQ, WEBSERVICE

    Témafelelős: Matyi

    Folyamatok közötti kommunikáció

    A folyamatok közötti kommunikáció, azaz Inter-Process Communication(IPC) a különbözõ, úgynevezett címterek között biztosít kapcsolatot. Ezek a címterek jelenthetnek ugyanazon, vagy két külön gépen futó szálakat, folyamatokat. Az 1967-ben elfogadott RFC707-es "High level framework for network-based resource sharing" nevû definícíóban már ezen kapcsolat alapjai írják le. Mint minden kommunikáció alapfeltétele, a közös nyelv, az IPC esetén is elengedhetetlen. A közös nevezõt az Interface Definition Language (IDL) segítségével határozzák meg és mivel a különbözõ típusú adatok egységes reprezentációja is szükséges, így ehhez egy External Data Representation (XDR) leírás is tartozhat.

    • Tehát az IPC lehet:
      - helyi: LPC ún. Local Procedure Call, ami egy csak Microsoft Windows NT kernelek esetén alkalmazott hívás típus
      - távoli: Remote Procedure Call, továbbiakban ezt tárgyaljuk.
    • Elsõ implementációk:
       - UNIX: DCE/RPC
       - Microsoft: MSRPC/DCOM

    Az RPC-vel kapcsolatos alapvetõ jellemzõk:

    • Szinkron vagy Aszinkron módon megy végbe, vagyis blokkolja-e a hívó szálat, vagy sem. Aszinkron hívás esetén fellép bizonyos callback esemény, illetve ez valamilyen -mondjuk kommunikációs- hiba folytán el is maradhat: elveszik a kérés, vagy a válasz a kommunikációs hálózaton
    • Konkurencia: Ha a hívás egy távoli erõforrás használatára irányul, akkor valamilyen módon kezelni kell az esetleges konkurens kérések kezelését: ez történhet a kérés elutasításával, vagy várakozásra kényszerítésével.
    • Átviteli közeg: Függ a folyamatok címtereinek elhelyezkedésétõl, átviteli közegnek tekinthetõ két gép között egy RS232 kapcsolat, vagy akár távolabbi gépek esetén az Ethernet.
    • Biztonság: Egyfelõl itt felmerülhet akár a hívó, akár a kiszolgáló oldal kétséget kizáró, egyértelmû azonosítása, mely történhet bizonyítványok, vagy azonosító-jelszó páros segítségével, ez tulajdonképpen része az autentikációs folyamatnak. Másrészrõl a kommunikáció titkosítása jelenthet nagyobb biztonságot. Lehetséges a hívást lehetõvé tevõ kommunikációs közeg titkosítása, vagy magának a hívást leíró kérés titkosítása, vagy ezek kombinációja.
    • Kliens oldali stub: Olyan kód-csonk, amely lehetõvé teszi a távoli eljárások hívását, nagyon hasonlóan mintha lokálisak lennének.

    RPC analógiára épülõ megoldások:

    • JAVA RMI (Remote Method Invocation): elsõsorban JVM-ek közötti kommunikáció
    • XMLRPC: a Simple Object Access Protocol (SOAP) elõdje, bizonyos korlátozásokkal
    • Pyro: python nyelvû implementáció. Az objektumok pár sorral kiterjeszthetõk és használhatók távoli eljáráshívásra.
    • CORBA (Common Object Request Broker Architecture): célja az volt, hogy architektúrától és nyelvtõl függetlenül lehetõvé tegye az eljáráshívásokat, minezt úgy, hogy gyakorlatilag mindenhez külön implementációt készítettek. Brokerek kezelik az üzeneteket.
    • MQ (Message Queueing): Bár ez nem RPC megoldás, mégis gyakran közvetítenek rajt olyan kéréseket, amelyek távoli erõforrás elérésére irányulnak. Managerek kezelik az üzeneteket.

    JAVA RMI:
    Java Remote Method Protocol (JRMP). A protokoll a java.rmi, vagy a sun.rmi csomagok keresztül érhetõ el. Érdekesség, hogy 5-ös java elõtt a stubokat egy külön fordítóval kellett fordítani.
    Plusz szolgáltatás, hogy ún. service lookup érhetõ el, amely segíti a hívó számára nem ismert, kiajánlott szolgáltatások felderítését.

    XML-RPC:
    XML formátumon, valamint HTTP átviteli protokollon alapuló, egyszerú RPC, mely széles körû implementációkkal rendelkezik. Egyszerre csak egy metódus hívható, valamint már támogat a HTTP által biztosított egyszerû autentikációt, vagy HTTPS-en keresztüli titkosítást. Bizonyos esetekben XML helyett, egy másik "lightweight" adatformátumot, a JSON-t is használják.

    WebService:
    Az XML-RPC-re épülõ szolgáltatás, mely SOAP üzeneteket forgalmaz. Ezek az üzenetek tartalmaznak egy fej elemet, testet, valamint lehetséges MIME objektumokat csatolni. A fejléc tartalmaz üzenet azonosítót, küldõt, fogadót, valamint a hívni kívánt metódus nevét, a test pedig tartalmazza a metódusnak átadandó paramétereket, adatokat. A szolgáltatások leírására az ún. WebService Definition Language (WSDL) áll rendelkezésre, amely akár több Szerviz, Port és Metódus leírását is támogatja egyszerre. Alapvetõen állapotmentes kommunikációról beszélünk RPC esetén, viszont a WebService-hez nagyon hasonló REST interface már biztosít állapotokat. A rest különlegessége, hogy míg a WebService-ek HTTP POST kérésekkel dolgoznak, addig a REST akár a HTTP GET, vagy DELETE kérésekkel is dolgozhat.
    A WebService-ek biztonságáért a WebService Security (WSS) felelõs. Itt ugyanúgy lehetõség van a HTTP azonosítás, vagy titkosítás használatára, ezenfelül az XML üzenetet alá lehet írni egy az üzenethez csatolt karaktersorozat segítségével (XML signature), illetve akár titkosítani is lehet ám az XML formátum itt is megmarad (XML encryption).

    MQ:
    Az MQ biztosan aszinkron módon mûködik, az üzenetek pedig FIFO elv alapján kerülnek kézbesítésre, bár ezt az implementáció nem feltétlenül garantálja. A queue egy gépen helyezkedik el, ezt egy manager kezeli, ehhez csatlakoznak a kliensek. A sorba helyetett üzenetek tartósság szerint lehetnek csak memóriában tárolódóak, lemezre írottak, vagy adatbázisba mentettek. Az üzeneteknek lehet élettartama, ezután törlésre kerülnek. Elõny lehet RPC esetén az üzenetek routolása, illetve a tömeges kézbesítés, amely csak bizonyos számú összegyûlt kérés után kézbesít "burst" szerûen, így egy "költségesen elindítható" erõforrással lehet takarékoskodni.

    A különbözõ nyelveken írt RPC támogató framework-ök nagyon nagy terhet vehetnek le a fejlesztõk válláról, kiszolgáló oldalon automatikus IDL generálással, kliens oldalon pedig ezeket beolvasva automatikus stub generálással, valamint magukban foglalják a közegtõl általában független kommunikációs megoldások implementációit.

    Full story

    Comments (0)

  • Brainstorming 5.

    Téma: DB

    Témafelelős: Félis, Csongor
    Leírás: ORACLE és MSSQL adatbáziskezelők átbeszélése, alapok tisztázása, valamint egy két érdekes és hasznos kiegészítés view, index, stored producere, indexelt view.

    Full story

    Comments (0)

  1. 1
  2. 2
  3. Next page