SlideShare a Scribd company logo
1 of 79
Download to read offline
Madarász Norbert
SAP MEGOLDÁSHOZ
KAPCSOLÓDÓ MOBIL
ALKALMAZÁS FEJLESZTÉSE
SYBASE UNWIRED PLATFORM
HASZNÁLATÁVAL
KONZULENS
Berczik Márton
Dr. Martinek Péter
BUDAPEST, 2011
Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
Elektronikai Technológia Tanszék
HALLGATÓI NYILATKOZAT
Alulírott Madarász Norbert, szigorló hallgató kijelentem, hogy ezt a szakdolgozatot
meg nem engedett segítség nélkül, saját magam készítettem, csak a megadott forrásokat
(szakirodalom, eszközök stb.) használtam fel. Minden olyan részt, melyet szó szerint,
vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen, a
forrás megadásával megjelöltem.
Hozzájárulok, hogy a jelen munkám alapadatait (szerző(k), cím, angol és magyar nyelvű
tartalmi kivonat, készítés éve, konzulens(ek) neve) a BME VIK nyilvánosan
hozzáférhető elektronikus formában, a munka teljes szövegét pedig az egyetem belső
hálózatán keresztül (vagy autentikált felhasználók számára) közzétegye. Kijelentem,
hogy a benyújtott munka és annak elektronikus verziója megegyezik. Dékáni
engedéllyel titkosított diplomatervek esetén a dolgozat szövege csak 3 év eltelte után
válik hozzáférhetővé.
Kelt: Budapest, 2011. 12. 07.
.....................................................................
Madarász Norbert
vii
Összefoglaló
A munkámat az SAP Hungary Kft.-nél készítettem el, ahol a jelenleg nagyon
aktuális mobilitás témát fedeztem fel.
A szakdolgozatom készítése során az SAP által nemrég felvásárolt amerikai cég,
a Sybase vállalati mobilizációját biztosító Sybase Unwired Platform-mal foglalkoztam.
A megoldás használatával a vállalatok nagymennyiségű adatot, információt
mobilizálhatnak, azért hogy ezek elérhetőek legyenek az emberek számára függetlenül
attól, hogy hol és mikor tartózkodnak. S mivel ezek a megoldások nyílt és platform
független technológiát használnak, ezért a vállalatok ezekkel a megoldásokkal hosszú
távon számolhatnak.
Az általam készített mobil alkalmazás a munkaerő-irányítási területre készült.
Az alkalmazással a felhasználó a rendszerben lévő munkarendeléseket tekintheti meg,
munkarendeléseket vehet fel, kérdőíveket tölthet ki és karbantartási jelentéseket
készíthet.
A fejlesztés kezdetén a platform működésével kellett leginkább
megismerkednem. Az Unwired Platform teszi ugyanis lehetővé, hogy a mobil
eszközökön futó alkalmazások mindig azokkal a legfrissebb adatokkal rendelkezzenek,
amik ténylegesen a vállalati háttérrendszerben vannak. Ehhez különféle szinkronizációs
technikákat és eljárásokat használ.
A feladatom megoldásához a mobil alkalmazások készítésére alkalmas Sybase
WorkSpace nevezetű fejlesztő eszközt használtam. Az eszközzel létrehoztam a vállalati
adatokat reprezentáló mobil üzleti objektumokat, majd azokat az Unwired Server-re
telepítettem. Az objektumokat is felhasználva a Workflow Forms Editor-ral készítettem
el az alkalmazás üzleti logikáját, a felhasználó által használt képernyőket és az ezek
közti navigációs sorrendet. Az alkalmazást aztán egy BlackBerry szimulátorra
telepítettem, ahol az elkészített alkotást funkcionális szempontból vizsgáltam,
teszteltem.
viii
Abstract
I wrote my bachelor thesis work at SAP Hungary Kft., where I discovered the
nowadays very current mobility topic.
During writing my thesis I dealt with the recently acquired Sybase company’s
Sybase Unwired Platform, which is used to mobilize the enterprise information. The
solution enables enterprise developers to simply and quickly build applications that
connect business data to mobile workers on any device, at any time. These solutions are
using open source and platform independent technologies; it means that the enterprises
can count with them in long run.
My mobile device application was developed for field technicians to be able to
view and edit work orders, confirm time and materials used, and fill out surveys related
to the examined equipment on their mobile devices.
At the beginning of the realization I had to get acquainted with the platform
itself. Because the Sybase Unwired Platform ensures the consistency of the business
data among the mobile applications on the devices and the enterprise information
system back-ends. For this purpose it uses different synchronization techniques.
To solve my task I used the Sybase WorkSpace toolkit to create the mobile
business objects and deploy those objects to the Unwired Server, wherewith mobile
device applications can be designed and developed. With Workflow Forms Editor I
created the business logic and the screen designs for the application, and the navigation
forms order. Finally, the application was deployed by generating code and run using a
BlackBerry simulator, when I examined and tested the functionality of the Work Order
application.
ix
Tartalomjegyzék
1 Bevezetés....................................................................................................................... 1
1.1 Feladatkiírás részletezése........................................................................................ 4
2 Előzmények................................................................................................................... 6
2.1 Sybase Unwired Platform ....................................................................................... 6
2.1.1 Vállalati adatok reprezentálása........................................................................ 8
2.1.1.1 Mobile Business Objects .......................................................................... 8
2.1.1.2 OData...................................................................................................... 15
2.1.2 Sybase Mobile SDK....................................................................................... 15
2.1.2.1 Native Object API alkalmazások............................................................ 17
2.1.2.2 HTML5/JS Hybrid alkalmazások ........................................................... 18
2.1.2.3 OData SDK alkalmazások ...................................................................... 19
2.1.3 Sybase Unwired Platform Runtime ............................................................... 19
2.1.3.1 Rendszertérkép........................................................................................ 20
2.1.3.2 Biztonság ................................................................................................ 23
2.1.4 Sybase Control Center ................................................................................... 26
2.1.4.1 Adminisztrálás és monitorozás............................................................... 28
2.2 SAP néhány elérhető mobil alkalmazása.............................................................. 28
2.2.1 SAP EAM Work Order.................................................................................. 29
2.2.2 SAP Field Service.......................................................................................... 31
2.2.3 SAP Retail Execution .................................................................................... 32
2.3 Összegzés.............................................................................................................. 33
3 Megoldás..................................................................................................................... 35
3.1 Tervezés................................................................................................................ 35
3.1.1 Vállalati igények............................................................................................ 36
3.1.2 Felhasználói igények...................................................................................... 37
3.2 Fejlesztés............................................................................................................... 37
3.2.1 Adatbázistáblák létrehozása........................................................................... 39
3.2.2 Adatmodellezés.............................................................................................. 42
3.2.2.1 Mobil alkalmazás projektjének létrehozása............................................ 42
3.2.2.2 Mobil üzleti objektumok elkészítése ...................................................... 42
x
3.2.2.3 Objektumok SUP szerverre telepítése.....................................................45
3.2.3 Alkalmazás elkészítése...................................................................................46
3.2.3.1 Workflow Forms Editor ..........................................................................46
3.2.3.2 Az alkalmazás kinézetének testre szabása ..............................................53
3.2.4 Alkalmazás telepítése.....................................................................................55
3.2.5 Alkalmazás futtatása, tesztelése.....................................................................56
3.2.5.1 Work Order workflow futtatása ..............................................................56
3.2.5.2 Work Order workflow tesztelése.............................................................60
3.3 Összegzés ..............................................................................................................63
4 Összefoglalás...............................................................................................................65
Irodalomjegyzék............................................................................................................67
xi
Rövidítések
ABAP Advanced Business Application Programming
AES Advanced Encryption Standard
API Application Programming Interface
ASA Adaptive Server Anywhere
BAPI Business Application Programming Interface
CDB Cache database
CRM Customer Relationship Management
CRUD Create, update, delete
DBMS Database Management System
DCN Data change notification
DMZ Demilitarized zone
EAM Enterprise Asset Management
EIS Enterprise Information System
ERP Enterprise Resource Planning
HTTP Hypertext Transfer Protocol
HTTPS Hypertext Transfer Protocol Secure
HWC Hybrid Web Container
IDE Integrated Development Environment
IIS Internet Information Server
IT Information Technology
JCo Java Connector
LAN Local Area Network
LDAP Lightweight Directory Access Protocol
MBO Mobile Business Object
OData Open Data Protocol
OPS Open Specification Promise
OS Operating System
PM Plant Maintenance
RFC Remote Function Call
SCC Sybase Control Center
SDK Software Development Kit
xii
SNMP Simple Network Management Protocol
SOAP Simple Object Access Protocol
SSL Secure Sockets Layer
SSO Single Sign-on
SUP Sybase Unwired Platform
SQL Structured Query Language
TLS Transport Layer Security
UML Unified Modeling Language
WS WorkSpace
1
1 Bevezetés
A mai felgyorsult világban nap, mint nap rengeteg új technológia, új fejlődési
irány és információ lát napvilágot. Ahhoz, hogy az emberek, cégek, vállalatok ezzel
lépést tudjanak tartani, elengedhetetlen a folyamatos naprakészség, hisz e nélkül
könnyedén hátrányba kerülhetnek más piaci versenytársakkal szemben. Ezt a
folyamatos információszerzést mi sem bizonyítja jobban, mint a manapság széles
körben elterjedt mobil eszközök. A mobil eszközök (okostelefonok, PDA-k, táblagépek)
lehetőséget nyújtanak a napra kész információk megszerzésében, időtől és helyszíntől
függetlenül.
Emellett a mobil eszközök elérték azt a fejlettségi szintet, amelyeken szinte már
probléma mentesen tudnak futni a komplexebb folyamatok, alkalmazások, programok
is. Ráadásul az is észrevehető, hogy az emberek igénye folyamatosan nő a komfortos,
jól kezelhető hordozható eszközök iránt.
Ezt a folyamatot megértve és felismerve nem kell nagy bátorság kijelenteni,
hogy a jövőben egyre inkább eltolódik az információszerzés, a napi munkavégzés egy
része a kényelmes mobil eszközök irányába. Ezt számos vállalat felismerte. Egyre több
és több ilyesfajta készülék – hozzá tartozó különböző területeken és célközönségben
használható alkalmazás – szolgáltatás jelenik meg. Ezt az igényt, vagyis a mobilitás
iránti növekvő keresletet az SAP is felismerte. Mivel az SAP-nak nem volt olyan saját
megoldása, amivel ezen igények megfelelő színvonalon kiszolgálhatóak lettek volna,
ezért 2010-ben megvásárolta a nagyon innovatív kaliforniai székhelyű Sybase nevű
amerikai szoftverfejlesztő céget.
Ezzel a vásárlással az SAP többek között szert tett az évek alatt felhalmozott
Sybase-s tapasztalatokra, fejlesztésekre. A Sybase fő profilja az adatbázis technológia
fejlesztés, információ-menedzsment, elemzés és mobilizáció. Ebből számomra a
legfontosabb és a mobilitás témához leginkább kapcsolódó terület a mobilizáció.
Ugyanis a mobil megoldások segítségével az SAP számos üzleti rendszert képes
üzemeltetni világszerte. Ezzel a technológiával a vállalatok nagymennyiségű adatot,
információt kezelhetnek, mobilizálhatnak annak érdekében, hogy ezek elérhetővé
váljanak az emberek számára függetlenül attól hol és mikor tartózkodnak, s milyen
2
eszközt használnak, mivel ezek a megoldások nyílt, platform független technológiákat
használnak. Így a vállalatok biztosítva vannak afelől is, hogy ezek a befektetések hosszú
távra szólnak.
1.1. ábra: Mobilitás [1]
A szakdolgozatom elkészítéséhez a Sybase által fejlesztett eszközöket,
megoldásokat fogom használni. Ahhoz, hogy a vállalat munkaereje mobilizálható
legyen, egy olyan platformra van szükség, melynek segítségével gyorsan lehet
fejleszteni a vállalat adatforrásaiból táplálkozó mobil alkalmazásokat. A Sybase
Unwired Platform-ja ezt lehetővé teszi. Továbbá a platform segítségével az üzleti
folyamatok kiterjeszthetőek a mobil eszközökre függetlenül az eszköz típusától és a
tartózkodási helyszíntől.
Az SUP biztosítja a mobil eszközökön futó, ugyanezen platformmal tervezett és
frissített mobil alkalmazásokat, hogy a vállalati adatokra épülő mobil üzleti folyamatok
egy központi szerver segítségével a legfrissebb adatokkal rendelkezzenek. Ez a kliens
oldali folyamatos adatkapcsolat nélkül is elérhető, ugyanis a napi munkához használt
adatok a készüléken tárolódhatnak, és szinkronizálás útján kerülhetnek vissza a
központi szerverbe, majd onnan a vállalat belső rendszereibe. [2]
3
1.2. ábra: Sybase Unwired Platform [2]
Az SUP hatékony és jól használható tervező és fejlesztő környezetet biztosító
eszközt Sybase WorkSpace-nek hívják, s segítségével a mobil üzleti folyamatokat,
valamint a készülékeken futó, az egyes lépéseket végrehajtó, megvalósító
alkalmazásokat lehet megtervezni. A WorkSpace Eclipse és Visual Studio alapon is
elérhető. Az így elkészített alkalmazásokat, munkafolyamatokat aztán a különböző
típusú eszközök (BlackBerry, iPhone) szimulátorain lehet tesztelni (1.3. ábra). [1]
1.3. ábra: SUP alkalmazások [2]
4
1.1 Feladatkiírás részletezése
A feladatom legfontosabb alkotói, mérnöki része egy munkaerő-irányítási
területen jól használható alkalmazás elkészítése a Sybase Unwired Platformján a
WorkSpace nevezetű fejlesztő eszközzel.
Az alkalmazásnak támogatnia kell a használóját abban, hogy böngészhessen,
kereshessen a már delegált munkarendelések között. Meg kell teremteni a lehetőséget
arra is, hogy a felhasználó saját maga új munkarendeléseket kreálhasson, hisz
elképzelhető, hogy a meglévő rendelés mellett más hibát is felfedez a helyszínen, vagy
egy rutinellenőrzés során vesz észre valamilyen hiányosságot az ellenőrzött eszköznél.
Természetesen mindkét esetben lehetővé kell tenni az adott rendeléshez való
karbantartási jelentéseket elkészítését. Ez egy nagyon fontos lépés a rendelés
állapotának nyomon követése, a költségek számítása, a munkaerő ütemezése és későbbi
statisztikák elkészítése miatt. Így ezeket a jelentéseket kötelező jelleggel el kell
végeztetni a felhasználóval. Ezen követelmények mellett a mobil eszközökre szánt
megoldásomnak támogatnia kell a kérdőívek kitöltését is. Persze mindegyik esetben a
megfelelő műveletet a háttérrendszerben (adatbázisban) is végre kell hajtani, aminél a
megfelelő gyorsaság, hibamentesség és optimalizáltság a legfontosabb szempontok.
Az alkalmazás elkészítése során törekednem kell a jól átlátható menürendszer és
képernyők tartalmának kialakítására, hiszen a legnagyobb probléma a mobil készülékkel
az, hogy korlátozott, kisméretű kijelzővel rendelkeznek, melyen nagyobb terjedelmű
ábrák, szövegek nehézkesen, avagy egyáltalán nem jól olvashatók. A manapság oly
fontos ergonomikus kialakítást is figyelembe kell vennem, mivel a felhasználók
többsége kevésbé bánik jól egy elektronikus készülékkel, mint ahogy kitöltene egy
papíralapú nyomtatványt, ezért a megfelelő gombok, szövegelemek és a navigáció
sorrendjét kötelező megfelelően kialakítani.
A feladat megoldásához elengedhetetlen az alkalmazásokat, szinkronizációkat és
egyéb feladatokat végrehajtó platform mély ismerete, ezért az SUP-nak az
architektúráját, a folyamatok működését, a háttérrendszerrel történő szinkronizációk
működését és a biztonsági intézkedéseket, megoldásokat megfelelő részletességgel
fogom bemutatni a szakdolgozatomban.
Fontosnak érzem, hogy kitekintsük az általam készítendő alkalmazáson kívülre,
s néhány, már elérhető SAP mobil alkalmazást bemutatassak, kitérjek az üzleti
5
funkcionalitásukra. Ezek segítségével ugyancsak alátámaszthatom a feladatom
indokoltságát, hogy igenis a mobil alkalmazások keresettek és sok helyen jól
használhatóak, sőt, akár ki is válthatják az eddigi megoldásokat.
Emellett a dolgozatom során arra a fontos kérdésre is keresni fogom a választ,
hogy a SUP fejlesztő eszközével készült alkalmazások, amik nem kizárólag egy fajta
eszközre készülnek, hanem egyszeri tervezés után több fajta készüléken futtathatók,
mennyire lesznek használhatók és mennyire elégítik ki az ügyfelek igényeit, mekkora
utómunkára van szükség a WorkSpace-ben tervezett, ill. elkészített alkalmazásokon a
későbbiekben.
A szakdolgozatom felépítésének rövid összefoglalásával segíteni szeretném az
olvasókat a könnyebb áttekinthetőségben. A bevezető rész, a feladatkiírás és részletes
elemzés után az előzmények, és az ezekből levonható következtetésekről esik szó. Ezt
követően a Sybase Unwired Platform ismertetésére kerül sor, majd a feladatom részletes
tervezésének leírásával folytatom, ahol ismertetem a döntési lehetőségeket, a választott
megoldásokat és az elkészítés menetét. Utána a megtervezett műszaki alkotást
értékelem, elemzem és a továbbfejlesztési ismereteket tárgyalom. Legvégül a
szakdolgozatom legfontosabb mondanivalóját, pontjait összegzem.
6
2 Előzmények
A feladat elkészítése előtt mindenképp szükségesnek éreztem, hogy a témával
kapcsolatos irodalmakat elolvassam, és a hasonló alkotásokat kipróbáljam, a megfelelő
következtetéseket levonjam belőlük. A Sybase termékeinek és megoldásainak többsége
bárki számára elérhető a cég saját honlapján keresztül. Itt fellelhetőek a legfontosabb
információk a SUP-val, a WorkSpace-szel, illetve a fejlesztés menetével kapcsolatban.
Ezek tanulmányozása nagyban hozzásegített a platform megértésében, a feladat
elkészítéséhez szükséges fejlesztő eszköz használatának elsajátításához, s a későbbi
hibák felderítése során is hasznos volt egyik-másik dokumentáció. Azonban ezek az
irományok nem terjednek ki egy komplexebb feladat megoldásának magyarázatára, így
a legtöbb mindent saját magamnak kellett kipróbálnom, kitapasztalnom, bár ezt
egyáltalán nem bánom. Ebben a fejezetben többek között a platform fontosnak tartott
ismereteit és részletes működését fogom tárgyalni.
Mivel a platform független mobil alkalmazások készítésére alkalmas technológia
nemcsak az SAP-on belül, hanem Sybase-s berkekben is elég újnak mondható, ezért
kevés olyan kész alkalmazás van, ami ezzel az új technológiával készült. Ezért egyre
több SAP-s munkatárs kezd bele SUP alapú alkalmazás fejlesztésébe, az adott
készülékekre való fejlesztés mellett. Jól mutatja a technológia aktualitását és
fontosságát, hogy több oldal is létrejött, ahol a platformot nemrég használók kérdéseket
tehetnek fel, amire a régebb óta ezzel foglalkozó fejlesztők, tanácsadók vagy kollégák
válaszolják meg a kérdéseket. Ezeket az oldalakat én is gyakran igénybe vettem, így az
én problémáimat, kérdéseimet másik is láthatják, s akár tanulhatnak is ezekből.
2.1 Sybase Unwired Platform
A Sybase Unwired Platform egy olyan integrált platform megoldás, ami
biztosítja a vállalati adatok és információk kiterjesztését az iroda falain kívül dolgozó
munkatársak számára, ugyanis vannak olyan felhasználók, akik sosem dolgoznak
irodában, mégis szükségük van mobil alkalmazásokra: gondolok itt például egy
raktárkezelőre, aki a munkahelyén dolgozik, de tipikusan mobilfelhasználó. Maga a
platform végzi el a szükséges feladatokat, hogy a vállalati háttérrendszer és a különböző
adatforrások a mobil eszközökkel együttműködhessenek és kapcsolatot teremthessenek
7
egymással. A platformot komplett end-to-end megoldássá az teszi, hogy mobil
alkalmazásokat fejleszthetünk, telepíthetünk, biztonsági beállításokat eszközölhetünk, s
menedzselhetjük a mobil alkalmazásokat és eszközöket. A platform a következők
összetevőkből áll:
• Sybase Mobile SDK: A platform fejlesztő eszköze, amivel a megfelelő mobil
alkalmazások elkészíthetők.
• Sybase Unwired Platform Runtime: A telepítésre és menedzselésre használt
architektúra és szolgáltatásai a mobil alkalmazások futtatását, menedzselését és
karbantartását teszi lehetővé (lásd 2.1. ábra).
2.1. ábra: Sybase Unwired Platform Runtime [3]
Így ez a megoldás az alábbiakra ad lehetőséget:
• Kapcsolat: A fejlesztés közben a heterogén adat forrásokhoz és a vállalati
háttérrendszerekhez kapcsolódhatunk.
• Fejlesztés: A Sybase Mobile SDK tartalmazza azokat a fejlesztéshez szükséges
eszközöket, amikkel elkészíthetők és tesztelhetők a szükséges alkalmazások.
• Felügyelet: Felügyelhető és karbantartható az SUP Runtime futtatási környezete,
azon belül a biztonsági beállítások és a mobil alkalmazások.
• Használat: Az alkalmazások funkcionális szempontoktól függően használhatók
online és/vagy offline módban is, miután azokat a készülékekre telepítettük. Így
8
a mobil eszközök segítségével elérhetővé válnak a vállalati adatok a vállalaton
kívül is.
2.1.1 Vállalati adatok reprezentálása
A mobil alkalmazásokból hozzáférhető vállalati adatok kétféleképpen
reprezentálhatók. Készíthetünk mobil üzleti objektumokat a Sybase Mobile SDK
segítségével, vagy használhatjuk az OData protokollt SAP Gateway-en keresztül. Mivel
a megoldásom során csak MBO-kat használtam, így részletesebben csak azok
működését ismertetem, de a teljesség kedvéért az OData rövid koncepciójára és
működési elvére is kitérek. [3]
2.1.1.1 Mobile Business Objects
Az egész architektúrának a leglényegesebb pontja a mobil üzleti objektumok
(MBO) működési elve. A natív nyelvű API (native Object API) alkalmazások és
munkafolyamatok (workflow) számára a háttérrendszerből használni kívánt adatokat a
mobil üzleti objektumok formálják, értelmezik és alakítják ki úgy az üzleti logikát, hogy
azok megjeleníthetőek legyenek a mobil alkalmazásokon és a munkafolyamatokon
keresztül.
Az MBO fejlesztés magába foglalja a háttérrendszer vállalati információs
rendszer (EIS) kapcsolatok, attribútumok, operációk és kapcsolatok adatmodelljeinek
meghatározását, amik segítségével a megfelelő adatok szinkronizálhatóvá válnak a
mobil eszközökkel is. Az MBO-kat a készítendő alkalmazás adat és a tranzakciós
követelményeinek figyelembe vételével kell fejleszteni, s azt is el kell dönteni, hogy az
alkalmazások hogyan kapcsolódjanak a vállalati információs rendszerben lévő
erőforrásokhoz, adatforrásokhoz. [4]
Egy mobil üzleti objektum (MBO) egy adatforrásból (adatbázis szerver, web
szerver vagy SAP szerver) származik. Majd ezek a származtatott objektumok az
Unwired Server-re kerülnek telepítésre, és válnak elérhetővé a megfelelő mobil
alkalmazásokat tartalmazó eszközökön. Az objektumok jellemzői:
• Az Unwired WorkSpace grafikus eszközeivel hozhatók létre, mely eszközök
egyszerűsítik és eltakarják előlünk a háttérrendszerhez szükséges
kapcsolódásokat, és egy egységes képet biztosít az objektumokról.
• Újrafelhasználhatók, segítségükkel az üzleti logika megőrizhető és több
készülék típuson is alkalmazható.
9
• Használthatók maradnak akkor is, ha egy újfajta eszközre kell telepíteni, hiszen
egy platform független megoldásról van szó.
• Olyan absztrakciót biztosítanak, amellyel az Unwired Server képes kontrollálni a
heterogén háttérrendszerek és eszközök közötti együttműködést. A 2.2. ábra ezt
jól szemlélteti.
2.2. ábra: Mobile Business Objects [5]
Az MBO-k a következőket tartalmazzák:
• Implementáció-szintű adatokat: Oszlop metaadatok, amik az adatforrások
adatairól szolgáltatnak információt.
• Absztrakció-szintű adatok: Attribútumok, vagyis azok a mobil kliensen lévő
programozható objektumok attribútumai, amik az adatforrásban lévő megfelelő
tábla megfelelő oszlopaihoz vannak rendelve. A paraméterek, vagyis azok a
szinkronizációs paraméterek, amik az adatforrás megfelelő paramétereivel
vannak összepárosítva. Például egy SQL SELECT utasításnál az
eredményhalmaz oszlopai attribútumként, a WHERE klauzulában használt
szűkítési értékek szinkronizációs paraméterként foghatók fel az objektum
szemszögéből. Így aztán a kezelő az MBO operációk attribútumain és
paraméterein keresztül módosíthatja az utasításokat abból a célból, hogy a
megfelelő EIS információkhoz hozzájusson.
• Kapcsolatok: Az objektumok attribútumai és paraméterei között kapcsolatok
definiálhatók.
10
Az objektumok létrehozásakor a fejlesztők használhatják a top-down tervezési mintát –
először az attribútumokat és paramétereket hozzák létre, majd ezeket az adatforrásokhoz
kötik –, vagy a bottom-up mintát, ahol először az adatforrást határozzák meg, s utána
abból automatikusan generálják az attribútumokat és paramétereket. Egy úgynevezett
mobil alkalmazáscsomag (application package) MBO-kat, szerepeket, adatforrásokhoz
való hozzárendeléseket és egyéb dolgokat tartalmaz. Ezek az Unwired Server-re
kerülnek telepítésre, amikor egy (alkalmazás)csomag telepítéséről beszélünk.
Amikor az adatmodell készen van, akkor legenerálódnak a szükséges kiegészítő
kódok. Az MBO package-t, ami egy vagy több objektumot tartalmaz, az Unwired
Server-re telepítjük. A szerverről aztán az alkalmazásokat az eszközre kell telepíteni,
hogy az elkészített mobil üzleti objektumok a készülékre kerüljenek. A készüléken
történt változások, módosítások így már könnyedén szinkronizálhatók a szerveren lévő
MBO-val, majd azt követően a háttérrendszerrel. Fordított irányba a folyamat úgy néz
ki, hogy a változás először az Unwired Server-en lévő MBO-ban történik, aztán a mobil
alkalmazásnak egy értesítést küld a szerver, hogy a készüléken lévő MBO adatait
frissíteni kell, mert azok a háttérrendszerben megváltoztak. [5]
Adatmodellezés
A WorkSpace fejlesztő eszközből a háttérrendszer erőforrásaihoz kapcsolódási
profilok segítségével lehet kapcsolódni. Egy-egy MBO fejlesztése során tipikusan a
háttérrendszer adatainak csupán egy részhalmazát használjuk fel a mobil
alkalmazásoknál. A fejlesztés során meg kell határozni ezeket a részhalmazokat és az
adatokon elvégzendő műveleteket.
• Az így meghatározott adatok az MBO csomaggal együtt telepítésre kerülnek az
Unwired Server-re, ahol majd az MBO-k segítségével történik a szinkronizáció
az EIS és az Unwired Server között. Így a sok adatot tartalmazó csomagok
telepítése igen sokáig tarthat.
• Az MBO-kból automatikusan generálódnak olyan objektumok, amikkel további
finomítások végezhetők el az adathalmazon, hogy annak csak egy bizonyos
része kerüljön az eszközre.
11
2.3. ábra: MBO felépítése [3]
Az attribútumok (attributes) MBO egyeddel társított adatok felépítését
definiálják. Az attribútumokban és a paraméterekben tárolt adatok vagy a szerver cache-
ben vagy az eszköz adattárában helyezkednek el. Ezeket a tárolási helyeket a
leggyakrabban a háttérrendszerből történő adat kiolvasásakor használjuk, például egy
adatbázisbeli SQL SELECT utasításkor.
Az attribútumok további metaadatokat is tartalmazhatnak, mint például
lehetséges szinkronizációs paraméter értékeit, hogy a csak felhasználónak fontos
adatokat szolgáltassuk. Például egy munkatárs, aki Budapest környékén dolgozik, nem
kíváncsi az ország más részéhez kapcsolódó adatokra, csak a sajátjaira. Ezért fejlesztés
közben be lehet állítani egy MBO-hoz, hogy az épp bejelentkezett felhasználó szerint
szűrődjenek a háttérrendszerből kinyert adatok, s csak a számára fontos adatokat
jelenítsük meg. Ezt természetesen nem kell minden egyes felhasználóra beállítani, elég
egyszer az MBO-ban. Ezzel a fajta optimalizálással az adatforrásokból származó
adathalmaz csökkenthető, amely a kérések felgyorsulását és a teljesítmény növekedését
jelenti. [3]
A mobil üzleti objektumok műveleteket (operations) is tartalmaznak, amikkel az
EIS-ből származó adatok nyerhetők ki, törölhetők vagy éppenséggel módosíthatók.
• Létrehozási, frissítési, törlési (CRUD) műveletek: Egy művelet definíciója
tartalmazza az EIS műveletekben előírt paramétereket. Egy művelettel
létrehozhatunk, módosíthatunk és törölhetünk adatokat, rekordokat a vállalati
háttérrendszerben.
12
• Más műveletek: Olyan műveletek, amik nem a fent említett műveletek, nem
okoznak állapotváltozást.
Ezeken kívül a művelet definíciójában előírhatunk validációt és hibakezelést is.
A kapcsolatok (relationships) meghatározzák a kapcsolatokat az MBO-k
attribútumai és paraméterei között, például hogy az egyik MBO-ban lévő attribútum
melyik másik MBO attribútumával áll kapcsolatban. A kapcsolatok biztosítják az
egymással kapcsolatban lévő MBO adatok egységes kezelését. Sőt, a valós idejű
detekcióval az is kiküszöbölhető, hogy több felesleges lekérdezés történjen az
adatbázisban, mivel az összekapcsolt MBO-k adatai egyazon lekérdezésben fognak az
EIS-ből rendelkezésünkre állni, így megspórolva több EIS kérést. A kapcsolatok egy-
egy, egy-több és több-egy típusúak lehetnek. Attribútumok esetén kétirányú, míg
műveletek esetén kompozit kapcsolatokat kell használnunk.
További fontos elemei az adatmodellezésnek:
• Objektum szintű lekérdezések (Object queries): Az SQL utasításokat MBO-khoz
rendeljük, és a kliensre előzőleg letöltött adatokon futnak le. A lekérdezések
általában egy-egy szűkített eredményhalmazzal térnek vissza, hisz ritkán
használunk SELECT * típusú utasítást. Az objektumokon használt lekérdezések
egyedi adatkezelést tesznek lehetővé.
• Szinkronizációs paraméterek (Synchronization parameters): Segítségükkel
meghatározhatók azok az értékek, amiket arra használunk, hogy csak az
alkalmazást használó ügyfélnek fontos adatok kerüljenek a készülékre, a
számára fontos adatok ne. A szinkronizációs paramétereket az eltárolt, cachelt
adatok szűrésére is lehet használni.
• Eredményhalmaz-szűrők (Result-set filters): Az EIS-ből kinyert adatokat
megváltoztatni, testre szabni Java API használatával lehetséges. A fejlesztők így
változtathatják és manipulálhatják az adatokat és felépítésüket, mielőtt azokat a
szerver lecachelné.
• Eredményellenőrzők (Result checkers): Az MBO-kon lefuttatott műveletek
eredményhalmazaihoz saját ellenőrzési rutinok adhatók meg egy bizonyos Java
API implementálásával. Erre azért lehet szükség, mert nem minden MBO-ban
van ellenőrzési technika definiálva.
• Személyes kulcsok (Personalization keys): Olyan kulcs, amit a felhasználó arra
használhat, hogy a számára fontos adatokat tárolja el a mobil eszközön vagy a
13
szerveren. Gyakran használják ezeket a kulcsokat a háttérrendszerhez való
csatlakozáshoz nélkülözhetetlen azonosítási adatok tárolására. Két ilyen
beépített kulcs a felhasználónév és jelszó. Segítségükkel elvégezhetők a
bejelentkezési és authentikációs folyamatok a készülékről az Unwired Server-
rel, de egyúttal használható az EIS-hez való kapcsolódásra is. A jelszót sosem
menti a szerver.
Adattárolás
Adattárolásnak hívjuk a cache adatbázis (CDB) vagy az Unwired Server cache
feltöltését EIS-ből származó adatokkal, majd ezek a letárolt adatok módosíthatók a
háttérrendszerből vagy a mobil eszközről. Az EIS és az eszköz közötti folyamatos
szinkronizáció elég nagy terhet jelent az EIS-re nézve, ezért az Unwired Platform
többféle megoldást is biztosít az adatok cache-be való betöltésre és frissítésre, így a
megfelelő adatok a megfelelő időben a legkisebb terhelés mellett kerülhetnek a mobil
eszközökre.
A megoldásoknál persze meg kell találni a kompromisszumot az idő és a tárolási
méret között. Például a bulk-féle megoldás több időt vesz igénybe, mert az összes
felhasználói adat egy nap csak egyszer szinkronizálódik.
• Bulk-féle frissítés: Minden felhasználó esetén a frissítés nagyobb
adatmennyiségenként történik.
• Particionizált adatfrissítés: Csak a felhasználó releváns adatai, vagy azoknak egy
része frissül. Ez gyorsabb teljesítményhez fog vezetni, mert nem kell a teljes
CDB-t frissíteni.
• Igény szerinti frissítés: A felhasználó hatására történnek az adatok frissítése.
• Ütemezett frissítés: Az adatok periódikusan, a beállított ütemezést követve
kerülnek frissítésre.
Az adatok megváltozása a rendszerekben inkonzisztenciához vezethet, ezért ennek
elkerülésére hozták létre az úgynevezett adatmegváltozásról szóló értesítést (DCN), ami
megkönnyíti a háttérrendszerben történt változások elterjesztését az Unwired Server
vagy egy MBO HTTP/HTTPS interfésze felé. Az EIS-ben megváltozott adatokról
információkat vagy magát a megváltozott adatokat a DCN értesítés tartalmazza, majd
ezt jelzi az Unwired Server-nek, aki frissíti a saját CDB-jét. A változásokról a szerver
bizonyos időnként (ezt az angol irodalmak change detection interval time-nak nevezik)
14
értesíti az MBO-kat, akik eszerint frissítik a saját cache-ükben lévő adataikat. A DCN
szinkronizációs megoldás akkor igazán hasznos, ha a cache frissítése nagy
adatmennyiség esetén költséges, hiszen ilyenkor csak a megváltozott adatokat kell
frissíteni, nem a teljes cache-t. [3]
Tárgykód generálása
Ahhoz, hogy az MBO-kat használhassuk mobil alkalmazásokban, először az
adott eszköz által értelmezhető tárgykódot kell generálni. Utána használhatjuk még az
eszköz IDE-jét is, amivel a megfelelő nyelven fejleszthetjük tovább az alkalmazást. A
tárgykód generálása azért fontos, mert a készülékek számára csak így lesznek
értelmezhetők az MBO-k, s egyéb más elkészített funkciók.
Minden MBO automatikusan legenerált tárgykódja ugyanazt a szabványt követi
az attribútumokra, műveletekre és absztrakcióra nézve. Támogatva van bármely
platformra való kódgenerálás. Ahhoz, hogy a mobil alkalmazás megfelelően fusson a
készülékeken az Unwired Server kliens oldali könyvtárai is szükségesek a már
legenerált tárgykód mellett. Ezek a könyvtárak többek között támogatják az adatok
biztonságát, a megbízható adatátvitelt és a megváltozott adatok esetén küldendő
jelzéseket.
Jelenleg a BlackBerry (Java), az iOS (Objective-C), a Windows Mobile (C#) és
a Windows (C#) platformokra lehet problémamentesen kódot generáltatni.
Telepítés
Az utolsó lépése a mobil üzleti objektumok fejlesztésének az MBO-k Unwired
Server-re való telepítése. A telepítés során az alábbi elemek kerülnek telepítésre:
• Az MBO tartalma, vagyis az attribútumok, műveletek, kapcsolatok, szerepek,
ütemezett csoportok és cache csoportok.
• MBO-hoz rendelt saját magunk készített eredményhalmaz-szűrők és
eredményellenőrzők.
• A háttérrendszer és az alkalmazás közötti együttműködést támogató, szükség
szerint generált szerver oldali programok.
• Az MBO modellben lévő egyéb alkotóelemek.
A telepítést megkönnyíti a WorkSpace fejlesztő eszköz varázsló szerű telepítője, ahol az
adott platformra való generálási követelmények bevihetők. Emellett az
15
adminisztrátornak megvan a lehetősége arra is, hogy web-es felületről telepítse fel az
üzleti objektumokat az Unwired Server-re.
2.1.1.2 OData
Az Open Data Protocol egy olyan web-es protokoll, mellyel közzé lehet tenni,
ill. programozott formában lehet elérni a relációs adatbázisok, fájl rendszerek és
webhelyek által tárolt információkat. A protokoll mindenki számára ingyenesen elérhető
és használható az OPS szabályzat elfogadásával. [6]
Az SAP NetWeaver Gateway támogatja az OData protokollt SAP-specifikus
kiegészítésekkel. A szolgáltatási dokumentumok – amik leírják a szolgáltatás
interakcióit és adatait – teszik lehetővé, hogy a felhasználók együttműködhessenek a
Gateway-jel, majd utána kommunikálhassanak az SAP alkalmazásokkal.
Bármilyen modell létrehozása nélkül (MBO sem kell) használhatunk OData
forrásokat – felfoghatók úgy, mint háttérrendszerben lévő alkalmazások –, mivel
ilyenkor a modell örökölhető az SAP Gateway által biztosított szolgáltatási
dokumentumokból. Ezek a szolgáltatási dokumentumok minden olyan információt
tartalmaznak, amik ahhoz kellhetnek, hogy az adatfolyamokat értelmezni és használni
tudjuk. A Sybase Unwired Platform is támogatja az OData protokoll használatát az
OData szolgáltatási dokumentumok keresésével, és minden további nélkül elérhetik
ezeket a vállalati szolgáltatásokat a mobil eszközök is.
Az OData protokollt a feladatom során nem használtam, ezért ezen rövid
ismertetőt kivéve nem tárgyalom a protokollt. A fent említett információkat csupán
érdekességnek, és az SUP alkalmazhatóságának egy újabb bemutatásaként szántam.
2.1.2 Sybase Mobile SDK
A Sybase Mobile SDK-val natív nyelvű API-kat használó, hibrid HTML5/JS és
OData SDK alkalmazásokat lehet fejleszteni. A fejlesztési folyamat végeredményeként
jön létre az a mobil alkalmazáscsomag, amit az eszközökre telepíthetünk. A következő
angol nyelvű 2.4. ábra az összes Sybase Mobile SDK-ból fejleszthető alkalmazás
felépítését és a fontosabb szolgáltatásait mutatja be.
16
2.4. ábra: Sybase Mobile SDK [3]
Az ábrán lévő szaggatott vonalakban foglalt szolgáltatásokat biztosítja a Sybase
Mobile SDK-ja. A natív nyelvű kódok elkészítésére a Mobile SDK-n kívül is van
lehetőségünk. Ekkora a biztosított alkalmazásprogramozási felületen (API) keresztül
lehet elérni a rendszer főbb és alkalmazásspecifikus szolgáltatásait anélkül, hogy
ismernénk azok belső működését. [3]
• Üzleti logika és felhasználói felület (Business Logic és Device User Interface):
Létrehozásukhoz használhatjuk az integrált fejlesztői környezetet a megfelelő
platformon és a megfelelő API-kat. HTML5/JS alkalmazások elkészítéséhez a
WorkSpace részét képező Mobile Workflow Forms Editor-t lehet használni.
• Alkalmazásspecifikus szolgáltatások (Application Specialization): Különböző
üzleti igények esetén különböző fajta alkalmazások készítendők, amiket egyedi
szolgáltatások használatával lehet elérni.
Fejlesztőeszköz Üzleti igény
Native Object API
SDK
Offline alkalmazások esetén, amikor azok az átlagnál komplexebbek. A
felhasználók offline dolgoznak az adatokkal, a szinkronizáció a
szerverrel online módra váltáskor történik.
HTML5/JS Hybrid
SDK
Push technológiás online alkalmazások esetén. Egyszerű kéréseknél és
munkafolyamatoknál használatosak.
OData SDK Olyan push technológiás online alkalmazások esetén, amik OData
protokollt használnak.
A szinkronizációs folyamat lejátszódásának eredményeként a változásról szóló
információt minden résztvevő megkapja, hogy a megváltozott adatok minden
eszköz és a szerver is letárolhassa. Push technika esetén a megváltozott adatokat
a megváltozás helyszíne küldi el a többi eszköznek. Ez a változás lehet akár
szerveren, akár eszközön is. A technikának a lényege az, hogy, így az eszköznek
17
ne kelljen folyamatosan azt figyelniük, hogy történt-e valahol változás, mert az
túl sok adatmozgást és erőforrást igényelne.
• Főbb alkalmazásszolgáltatások (Core Application Services): A szolgáltatások
halmaza egy egységes és konzisztens alapot nyújt a készítendő mobil
alkalmazásoknak. A cél az, hogy a hasonló szolgáltatások segítségével a
fejlesztés gördülékenyebbé és biztonságosabbá váljon. Az SDK több biztonsági
megoldást is tartalmaz, mint például a tanúsítványok biztonságos tárolását,
bejelentkezés használatát és ezekhez kapcsolódó adatbázis titkosítást.
2.1.2.1 Native Object API alkalmazások
A natív nyelvű API alkalmazások teljes értékű mobil alkalmazások, amik mobil
üzleti objektumokat használnak a különböző vállalati rendszerekhez való kapcsolódás
megkönnyítésére, és az offline történő működés miatt megfelelő szinkronizációt
biztosítanak.
Ilyen alkalmazások esetén lehetőség van saját kód írására is. A programozási
nyelv lehet C#, Java vagy Objektiv-C attól függően, hogy milyen eszközre készítünk
alkalmazást. A fejlesztés két lényeges részből tevődik össze: a szerver oldali MBO-k és
a kliens oldali natív nyelvű alkalmazások elkészítéséből. Az Unwired Server a két oldal
közötti adatszinkronizálást és a tranzakciók futtatását végzi.
• A szerver oldali komponensek jórészt az EIS adatforrások és a CDB-k közti
együttműködést tartják fent. A mobil üzleti objektumokban találhatók a
háttérrendszerekben tárolt adatok egy része és az üzleti logika. Ezeket
úgynevezett alkalmazáscsomagokat telepítjük aztán az Unwired Server-re.
• A kliens oldali komponensek a mobil alkalmazások részei. Ők biztosítják a
működést a cache és a mobil eszközök adattárja között. Ez a szinkronizációk
gyakoriságát, a DCN üzemeltetést és az offline létrehozott tranzakciók tárolását
jelenti.
Ezek az alkalmazások alkalmasak:
• Különböző vállalati háttérrendszer és SAP rendszer adataihoz kapcsolódni.
• Komplex adatkezelést és logikát végrehajtani.
• Optimalizálni az adatszinkronizációt a válaszidő és az azonnali adathozzáférés
figyelembevételével.
• Biztonságos és megbízható adatcserére.
18
2.1.2.2 HTML5/JS Hybrid alkalmazások
A hibrid HTML5/JS alkalmazások egyszerű üzleti funkciókat, folyamatokat
biztosítani. Ilyen egyszerűbb funkció például valamilyen rendelésnek a jóváhagyása
vagy valamilyen szolgáltatás igénylése. Természetesen ezek az alkalmazások is MBO-
kat használnak az EIS-hez való könnyebb kapcsolódás miatt. Ennél a megoldásnál a
készülékekre egy tároló, az úgynevezett Hybrid Web Container kerül telepítésre, a
munkafolyamatok pedig a tároló segítségével futnak az eszközön.
A hibrid alkalmazások jellemzői:
• Kis mennyiségű adatot kezelnek.
• Egyszerű felhasználói felületet biztosítanak.
• Egyszerű alkalmazáslogikát használnak.
• A sokáig tartó offline tranzakciók helyett online módon működnek.
• Biztonságos és megbízható adatcserére képesek.
A mobil eszközökön lévő HWC egy webböngésző plugin-t és a főbb
alkalmazásszolgáltatásokat tartalmazza. Ilyen szolgáltatás például a garantált
üzenetkezelés, cachelés, vagy a kapcsolódási és biztonsági szolgáltatás. A tároló és a
szerver közötti adatcsere online tranzakcióknak köszönhetően megy végbe.
A mobil workflow csomagok platform független HTML, JavaScript és CSS
forrásokat tartalmaznak, és ezeket használja a tároló az alkalmazás futtatásakor. A
tárolót, mint már említettem, a készülékre telepítjük, ami egy futtatási környezetet
biztosít a mobil alkalmazásoknak. A tároló három fajta kommunikációt biztosít:
• Értesítés (Notification): Az EIS-ben lefutott valamilyen üzleti folyamat
eredményéről, megtörténéséről a szerver értesíti a felhasználókat.
• Keresés (Lookup): Felhasználó által indított kérés valamilyen EIS-ben lévő
információ kinyerése érdekében.
• Akció/Döntési űrlap (Action/Detection Forms): A felhasználó űrlapkitöltéskor
valamilyen döntést (pl. jóváhagyás) hoz meg, aminek az eredményét az EIS-ben
is le kell tárolni.
Összegezve, a tároló ad helyet a beágyazott böngészőnek és futtatja a telepített mobil
alkalmazásokat. Az alkalmazásokat felhasználókhoz az adminisztrátorok rendelik.
Amint a felhasználóhoz rendelték az alkalmazásokat, úgy azokat a felhasználó minden
további nélkül indíthatja a készülékről, de a háttérrendszerben történt valamilyen
19
változás esetén az Unwired Server is kezdeményezheti az alkalmazás elindítását.
Ilyenkor a felhasználó üzenet formájában kap értesítést, hogy valamilyen változás
történt és ez valószínűsíthetően őt is érinti. Az üzenetre kattintva megnyílik a mobil
alkalmazás. [3]
2.1.2.3 OData SDK alkalmazások
Az OData SDK alkalmazások egyszerű, legtöbbször online módon működő
mobil alkalmazások, amik kihasználják az OData protokoll és RESTful Web Services
által nyújtott lehetőségeket. [7]
Ezek az alkalmazások az SAP EIS rendszereihez proxy kapcsolaton keresztül
kapcsolódnak, csakúgy, mint az SAP Business Suite esetében. Szintén kihasználják az
Online Data Proxy runtime által nyújtott lehetőséget, hogy a felhasználók valós időben
férhessenek hozzá SAP adatokhoz. A proxy kapcsolat a RESTful OData protokollt
használja, hogy az Unwired Server-en és az SAP Gateway-en keresztül az SAP vállalati
információs rendszeréhez kapcsolódjon.
Az így elkészített OData SDK alkalmazások alkalmasak:
• Online módon és az eddigieknél közvetlenebbül kapcsolódni az SAP
rendszerekhez. Az adatok ilyenkor sajnos nem perzisztensek, de cachelhetők.
• SAP adatokat és üzleti folyamatmodelleket használni.
• Egyszeri SAP bejelentkezést (SSO) megvalósítani.
• Alkalmasak biztonságos és megbízható adatcserére.
2.1.3 Sybase Unwired Platform Runtime
Az Unwired Platform futtatási környezet biztosítja a szükséges infrastruktúrát a
mobil alkalmazások telepítésére és felügyeletére. Egy vállalaton belül a vezetés igénye
szerint két féle, szinte azonos infrastruktúrát biztosíthatunk. Egyrészt installálhatjuk az
Unwired Platform Runtime-ot. Ugyancsak telepíthetjük az Online Data Proxy-t, amit
betudhatunk az Unwired Platform Runtime egy egyszerűsített, más igényekre kialakított
kiadásának.
Az architektúra felépítése:
• Szerver réteg (Server tier): A réteg feladata a szerver komponensek integrálása a
háttérrendszerekkel, különféle szolgáltatásokkal, az alkalmazások telepítésével
és a rendszert menedzselő folyamatokkal. Az Unwired Server és az Afaria
20
szerver ebben a rétegben foglal helyet. A két szerver lehet ugyanazon, de
különböző host-on is.
• Adatbázis réteg (Data tier): A réteg feladata a háttérrendszerből származó adatok
tárolására és más, futtatási környezetben létrejövő adatok tárolása. Külön
adatbázis tárolja a mobil alkalmazások szinkronizációit és cacheléseit.
• DMZ: A demilitarizált zónában (DMZ) helyezkedik el az átjátszó szerver (Relay
Server), ami igazából egy bővítmény az Apache Web szerverhez és a Microsoft
IIS-hez. Az eszközök csakis az átjátszó szerveren keresztül léphetnek
kapcsolatba a belső rendszerrel.
• Kliens réteg (Client tier): A réteg a mobil alkalmazásokat tartalmazó eszközöket
foglalja magában.
2.5. ábra: Sybase Unwired Platform architektúrája [3]
2.1.3.1 Rendszertérkép
A futtató környezet rendszertérképe (landscape) több alkotóelemet tartalmaz,
amivel biztosítható, hogy a platform képes legyen a mobilitás felé támasztott
követelményeket kielégíteni. Ezek az alkotóelemek: Unwired Server, adatbázis réteg,
Relay Server és az Afaria Server. A következőkben ezeket részletezem.
Unwired Server
A futtatási környezetért felelős szerverként az Unwired Server-nek a feladata a
vállalati adatforrásokhoz és alkalmazásaikhoz való hozzáférés, a háttérrendszerek és az
eszközök közötti kommunikáció kezelése, és a biztonság, a tranzakció feldolgozás és az
ütemezés biztosítása.
21
A létrehozott mobil alkalmazások és munkafolyamatok telepítése a szerverre
történik, ahonnan később a készülékekre telepíthetők, de az Afaria Frontline
Management termékével is delegálhatók az alkalmazások a készülékekre. API-k
használatával az Unwired Server testre szabható, hogy a szerver használható legyen
komplexebb adatkezelésre, kivételkezelésre, és egyéb biztonsági követelményeknek is
megfeleljen.
Data Tier
Az adatbázis réteg tartalmazza azokat az adatbázisokat, amelyeket az Unwired
Server, a menedzsment konzol és egyéb rendszerbeli szerverek használnak. Jó esetben a
rendszeradminisztrátornak kevés teendője van az adatbázis réteggel. A rétegbe a
következő fajta adatbázisok tartoznak:
• Cache adatbázis (CDB): Csak az Unwired Platform Runtime opció telepítésekor
találkozunk ezzel az adatbázissal. Csak szinkronizációt használó alkalmazások
esetén van szerepe, amikor is a szinkronizáció közben jelentkező cachelendő
adatokat tárolja el. Erre a háttérrendszerből való adatkinyeréskor és az
eszközökről küldött adatok esetén kerülhet sor.
• Cluster adatbázis (Cluster Database): Az Unwired Server clusterei között
szükséges ismereteket tárolja.
• Monitorozó és domain log adatbázis (Monitoring and Domain Log Database):
Ez az adatbázis tárolja az alkalmazások működésének monitorozása, nyomon
követése közben keletkezett üzeneteket és egyéb log üzeneteket.
• Üzenetkezelő adatbázis (Messaging Database): Az üzenetkezelést és értesítést
használó, hibrid és OData SDK alkalmazások esetén tárolja az aszinkron
üzeneteket addig, amíg azok feldolgozásra nem kerülnek.
Relay Server
Az átjátszó szerver egy biztonságos, megbízható kommunikációt tesz lehetővé a
mobil eszközök és az Unwired Server között. A vállalat belső tűzfalának egyetlen
portjának megnyitása nélkül, fordított proxy szerverként üzemelve biztosítja a vállalat
mobilitását, s biztosítja az áthaladó adatok érintetlenségét. A szerver a vállalat
demilitarizált zónájában foglal helyet, ezzel lehetővé téve a vállalati rendszeren kívüli
eszközök biztonságos integrálását a belső hálózatba.
Az átjátszó szerver jellemzői:
22
• Egy olyan kapcsolódási pontot biztosít a mobil eszközök számára, amin
keresztül azok anélkül kommunikálhatnak az Unwired Server-rel, hogy
bármilyen portot kellene megnyitni a vállalat tűzfalán.
• A mobil kliensek kéréseit fogadja és továbbítja az Unwired Server felé.
• A szerver web-es bővítményként fut a web szerveren. A Relay Server két web
szervert támogat: az IIS-t (Windows) és az Apache-t (Linux).
• A meglévő biztonsági beállítások, szabályok, tűzfalak változtatása nélkül
használható.
Az Unwired Platform szinkronizációi HTTPS protokollt és az átjátszó szerver
titkosítását használják ahhoz, hogy biztonságos módon működjenek a mobil eszközök.
Afaria Server
Az Afaria Server-en keresztül a vállalat menedzselheti a mobileszközeit. Az
Afaria egy olyan vállalati szintű megoldás, ami a központi web-alapú adminisztrációs
konzol felületén keresztül biztosítja az IT számára a mobilmenedzsmenttel kapcsolatos
teendők ellátását. Szorosan integrálható a már meglévő Unwired Server-rel, így a
felügyelet könnyedén kiterjeszthető bármely mobileszközre, beleértve a laptopokat,
számítógépeket, táblagépeket és kézi terminálokat is.
Az Unwired Platform az Afaria-nak köszönhetően új funkciókkal bővíthető (lásd
2.6. ábra). Ilyen funkciók például, hogy az alkalmazások és adatok távolról
kihelyezhetők, frissíthetők, a leltárok lekérdezhetők és figyelhetők vagy, hogy a vállalat
biztonsági beállításai módosíthatók, az eszközökön tárolt fájlok titkosíthatók,
törölhetők. Mindez ráadásul sávszélesség-takarékos formában történik meg. [3]
23
2.6. ábra: Afaria áltál nyújtott szolgáltatások [8]
2.1.3.2 Biztonság
A vállalat mobilitása miatt nyilvánvaló, hogy megnő a rendszer irányába történő
támadásoknak és behatolásoknak az esélye, ezért az Unwired Platform többrétegű
biztonsági megoldással csökkenti ezt a kockázatot. A platform biztonsági
intézkedéseinek az egyik célja, hogy a külső vagy belső felhasználók biztonságosan
kapcsolódhassanak a vállalat rendszereihez, a másik célja pedig hogy minden eszköz
bizalmasan tárolja a vállalati információkat, és csak megfelelő ellenőrzések után
lehessen azokhoz hozzáférni. A most következő részben ezeket a megoldásokat röviden
ismertetem. [8]
Ehhez a platform a következő támogatásokat nyújtja:
• Komponens biztonság (Component Security): Az Unwired Platform
komponensei a vállalat belső hálózatában vagy a DMZ-ben vannak.
• Kommunikációs biztonság (Communication Security): A TLS és az SSL
kriptográfiai titkosítási eljárásoknak köszönhetően a kliens-szerver
kommunikáció mindvégig biztonságos körülmények között történhet.
• Authentikációs és hozzáférési biztonság (Authentication and Access Security):
Minden alkalmazás esetében támogatott az authentikáció és a hozzáférés-
24
ellenőrzés használata, hogy a vállalati adatokhoz csak a megfelelő
jogosultsággal rendelkezők férhessenek hozzá.
A platformban használt biztonsági megoldások:
• Szerver biztonság (Server Security): A kliens kérésekor először az adatokat a
szerverek az átjásztó szervernek továbbítják a belső tűzfal egy nyitott portján át,
majd utána az átjátszó szerver küldi a kért adatot a felhasználónak. A nyitott port
miatt a szerverek védelemre szorulnak. Ez a védelem elérhető a szerverek belső
hálózatba történő telepítésével, és a kommunikációnkénti saját port
használatával.
• Adatbázis réteg biztonság (Data Tier Security): Mivel az adatbázis rétegben
található adatbázisok nagyon fontos és bizalmas adatokat tárolnak, ezért
védelmük kiemelten fontosak. Az adatbázisok a megfelelő védelmet nyújtó
infrastruktúra mellett adminisztrátori jelszóval (Database Administrator – DBA),
DBA jogokkal, az adatok és a logok titkosításával védelmezhetőek.
• DMZ biztonság (DMZ Security): A DMZ célja, hogy egy olyan biztonsági réteg
jöjjön létre, ami a vállalat helyi hálózatát (LAN) védi meg úgy, hogy a külső
támadó csak a DMZ-ben található Relay Server-hez férjen hozzá.
• Eszköz biztonság (Device Security): Az eszközök elégséges védelme több
mechanizmussal is elérhető. Első körben maga a készülék által nyújtott védelmi
funkciók használandók, aztán az Unwired Platform is biztosít védekezési
módokat. Ezen túlmenően az Afaria használata jelentheti a teljes biztonságot a
készülékek számára. Részletesebben lejjebb.
• EIS biztonság (EIS Security): DCN használatakor az értesítések biztonságosan
közlekednek az Unwired Server-hez.
Eszköz biztonság
Az Unwired Platform két fő megoldása a készülékek biztonságban tudásához az
adatok titkosítása és a bejelentkezési képernyők használata.
Az alkalmazás által használt adatok beállítástól függően több vagy kevesebb
ideig tárolódnak a készüléken. Az adatokat akkor lehet célszerű tárolni, ha a kapcsolat
az SUP szerverrel nem tartható fent folyamatosan, és az eszköz nem folyamatosan
online. Ilyenkor a futtatott kérések eredményeit meghatározott ideig tárolni lehet a
készüléken. Ennek a megadására a WorkSpace fejlesztő eszközben van lehetőség az
25
adott műveletnél. Ehhez először meg kell határozni az online kérésnél, hogy melyik
MBO-n és milyen műveletet szeretnénk végrehajtani. Ezután lehet kitölteni az On-
device cache timeout mezőt, ami azt mondja meg, hogy mennyi ideig tárolja a készülék
a lekérdezés eredményét. A beállítás a 2.7. ábrához hasonlóan történhet.
2.7. ábra: On-device cache timout beállítása
A letárolt vállalati adatokat ilyenkor megfelelő védelemmel kell ellátni ahhoz,
hogy azok ne kerüljenek rossz kezekbe. A készüléken tárolt adatok védelmére titkosítást
kell használni (lásd 2.8. ábra). Az alkalmazás létrehozásakor az objektum csomagokhoz
a DB.generateEncryptionKey() metódust használhatjuk, amely segítségével egy AES-
128 bit-es titkosított kulcsot hozunk létre az alkalmazás által használt adatbázishoz. Az
így létrehozott titkosított kulcs az úgynevezett Data Vault modellezésnek köszönhetően
van biztonságban. A DataVault API-t használva szintén titkosítani lehet a készüléken
lévő adatokat. A Data Vault szimmetrikus AES-128 kódolást használ az adatok
titkosítására.
Az alkalmazások esetében lehetőség van az MBO csomagot biztonsági
sablonokhoz rendelni. A sablonok során megadható, hogy az adott csomag esetén
végezzen-e a rendszer authentikációt, authorizációt vagy auditációt. Például egy
bizonyos package esetén az adminisztrátor kötelezővé teszi az authentikációt az LDAP
szerverhez, de nem írja elő az authorizációt és bármilyen szolgáltató felé való
auditációt. Az SSO-t biztosító szolgáltatók pedig a felhasználóneves és jelszavas
megoldás mellett támogatják a tokenes és a tanúsítványalapú (például X.509
tanúsítvány) authentikációt is a megfelelő biztonság elérése érdekében. A sikeres
bejelentkezéskor az alkalmazáshoz kapcsolódó titkosított adatokat a megfelelő
26
metódusok oldják fel, így az adatokhoz hozzá lehet férni. Ha azonban a bejelentkezés
sikertelen volt, úgy az adatok továbbra is titkosítva maradnak, és se az alkalmazásból se
azon kívülről nem lehet a még mindig titkosított adatokhoz hozzáférni.
2.8. ábra: Készüléken tárolt adatok biztonsága [8]
A már említett Afaria megoldást az Unwired Platform teljes mértékben
támogatja. Az Afaria az eszközök távoli menedzselését teszi lehetővé, amellyel a
biztonság növelhető. Az Afaria lehetővé teszi, hogy az eszközt távolról zároljuk, adatot
töröljünk róla. Az úgynevezett data fading megoldással a vállalat IT szervezete távolról
lezárhatja, letörölheti vagy újratelepítheti a készüléket, ha az egy meghatározott számú
nap után nem kapcsolódott a vállalat hálózatához vagy az Afaria szerverhez.
2.1.4 Sybase Control Center
A Sybase Control Center egy olyan egyszerű, integrált web alapú
adminisztrációs felület, melyen keresztül a legtöbb Sybase-s terméket és azok
komponenseit konfigurálni és menedzselni lehet.
Ez a felület többek között lehetővé teszi az adminisztrátornak, hogy a szerver
státuszát nyomonkövesse; műveleteket jóváhagyjon, indítson vagy megállítson; a
szervereket bekonfigurálja; alkalmazáscsomagokat telepítsen, és azok beállításait
(szinkronizációs vagy cache beállítások) megadja; push értesítéseket állítson be.
Az Unwired Platform részeként telepítésre kerülő Sybase Control Center-nek három
felhasználási területe van:
• Egyedi fejlesztési környezetben használva a fejlesztő saját igényeinek
megfelelően állíthatja be és szabhatja testre a rendszert a felületen keresztül.
27
Ilyenkor a fejlesztő az adminisztrátor, aki alkalmazásokat telepíthet,
konfigurálhat és eszközöket regisztrálhat. A szakdolgozat feladatának fejlesztése
során én is ezt a felhasználási módját használtam a Sybase Control Center-nek,
ugyanis saját fejlesztési környezetet hoztam létre azzal, hogy a saját gépemre
telepítettem a platformot, de erről részletesebben a következő, harmadik
fejezetben írok.
• Nem egyedi fejlesztési környezetben, ahol több fejlesztő dolgozik ugyanazt az
Unwired Server-t használva. Az adminisztrátor ilyenkor az SCC-t használja,
hogy a csomagokat, eszközöket felügyelje, menedzselje, vagy a szerverek log
fájljait folyamatosan ellenőrizze.
• Az már kiszállított rendszerek esetén az adminisztrátor a felületet rendszeresen
használja, hogy a saját jogosultsági körébe tartozó Unwired Server műveleteket
elvégezze, és az alkalmazások adott eszközökhöz, felhasználókhoz rendelje.
Ezek mellett rutin jelleggel figyelemmel kell kísérnie a rendszer teljesítményét
és állapotát (2.9. ábra).
2.9. ábra: Sybase Control Center [9]
28
2.1.4.1 Adminisztrálás és monitorozás
Az Unwired Platform web-es felületen keresztül teszi lehetővé Unwired Server
karbantartását, a mobil alkalmazások telepítését, és a vállalati mobil eszközök
felügyeletét és adminisztrálását.
A konzollal a következő főbb feladatok végezhetőek el:
• Szerverkonfiguráció: A szerverparaméterek konfigurálását lehetővé teszi. Itt
olyan paraméterekre kell gondolni, mint a hálózati port, az üzenetkezelés, az
SSL biztonság vagy a loggolás szintje.
• Eszközregisztráció és biztonság: A regisztrált készülékek felügyelete. A
készülékek regisztrációja, aktivációja után a megfelelő mobil alkalmazások
delegálása az eszközökre.
• Biztonsági beállítások: A szervereken futtatható műveletek jogosultságainak
beállítása, konfigurálása.
• Monitorozás: Az alkalmazások által használt historikus adatok és más
statisztikák megtekinthetők, melyekből később elemzések és statisztikák
készíthetők.
• Logok ellenőrzése: A konzolon keresztül megtekinthetők a korábbi log adatok.
• Problémamegoldás: A Sybase Unwired Platform komponenseiről gyűjtött
információk alapján könnyebben határozhatók meg és oldhatók meg a
problémák.
• Alkalmazástelepítés: Az Unwired Server-re telepített alkalmazások
felügyelhetők, karbantarthatók.
Sőt, a monitorozás nyújtotta lehetőségek még jobban is kihasználhatók, ha integráljuk a
rendszerbe az SNMP eszközeit, amivel szervereseményeket monitorozhatunk a
konzolból. [9]
2.2 SAP néhány elérhető mobil alkalmazása
Úgyszintén fontosnak tartottam az SAP pár mobil megoldásának megismerését,
hogy megfigyelhessem, és következtetéseket vonjak le a jelenlegi trendekből,
igényekből. Ezek a megoldások szintén segítenek tisztán látni az ügyfelek és az üzlet
igényeit, amely segítségével jobbá tehetem a most illetve a jövőben elkészített
alkalmazásaimat. Mivel több, mint 25 mobil alkalmazása lesz elérhető az SAP-nak az
év végéig, ezért ezekből csupán három alkalmazásról fogok bővebb ismertetőt adni. Itt
29
szeretnék majd a fent felsorolt ismereteken túl a működésükről és üzleti
funkcionalitásukról is pár szót ejteni. [10]
2.2.1 SAP EAM Work Order
Az SAP EAM Work Order mobil alkalmazás a helyszínen dolgozó
szakembereknek készült azzal a céllal, hogy a munkájuk elvégzése közben mindig
elérhetőek legyenek azok az információk, amelyek számukra fontosak és
elengedhetetlenek ahhoz, hogy az ügyfeleknél felmerült hibákat, problémákat gyorsan
és szakszerűen orvosolják.
A szakemberek saját mobil eszközein futtatható az alkalmazás, legyen az az
eszköz egy mobil készülék, táblagép, hordozható számítógép vagy akár egy kézi
terminál. A vállalat alkalmazotta képes megtekinteni az általa elvégzendő
munkarendeléseket és a hozzá kapcsolódó értesítéseket. Könnyen előfordulhat, hogy a
szakember nem tervezett hibával, problémával szembesül a helyszínen, ezért az
alkalmazás támogatja a munkarendelések és értesítések felvételét. A könnyebb
kapcsolatfelvétel céljából, a munkarendelések mellett, egyszerűen megtekinthetők a
rendelésekhez tartozó ügyfelek adatai. A munka elvégzését követően a rendeléshez
jelentés készíthető, ami tartalmazza a munka időigényét, az ahhoz felhasznált
eszközöket/anyagokat, okokat és magyarázatokat. Ennek köszönhetően nyomon
követhetőek a költségek és persze az emberek is.
Az alkalmazást teljes mértékben integrálták az SAP EAM megoldásával, az SAP
ERP PM moduljával és a Multiresource Scheduling megoldásával. Így folyamatosan a
valós információkat tartalmazza mind a vállalat ERP rendszer, mind a felhasználó mobil
eszköze, bármely oldalon is történjen az adatváltozás. Az alkalmazás az általam is
használt, Sybase Unwired Platform-on készült, ezért a megváltozott adatok
szinkronizációja automatikusan megy végbe a platform támogatásával. A legtöbb
esetben az Unwired Server a back-end-del való kapcsolat megteremtéséhez távoli
eljáráshívásokat (RFC) vagy BAPI-kat használ.
A SAP EAM Work Order a háttérrendszerhez való kapcsolódáshoz
HTTP(S)/SOAP webszolgáltatásokat használ, a vállalati információs rendszerben pedig
RFC hívásokkal kommunikál. A mobil klienseknek az adatokat az Unwired Platform
titkosított módon, push technológiát használva küldi. Az architektúrát jól szemlélteti az
alábbi 2.10-es ábra.
30
2.10. ábra: SAP EAM Work Order együttműködése a háttérrendszerekkel [10]
Az SAP EAM Work Order az általa biztosított funkcióknak köszönhetően
felgyorsítja a munkák elvégzését, hisz minden információ pár kattintással bármikor és
bárhol elérhető, legyen szó korábbi jelentésekről, eredményekről vagy értesítésekről. A
helyszínre kiküldött szakemberek azonnali dokumentációt készíthetnek anélkül, hogy
papíron kelljen ezt megtenni, így elkerülhetők az elvesztés során keletkező károk és
archiválási nehézségek. Ráadásul az adatok nyomon követhetők és azonnal elérhetőek
lesznek az operátorok és menedzserek által. Optimalizálhatóvá válnak a munkák
elvégzésének sorrendjei, mivel az irodában dolgozó munkatársak valós időben
észlelhetik, amit értesítések segítségével azonnal közölhetnek is a helyszínen dolgozó
munkatárssal.
2.11. ábra: SAP EAM Work Order működés közben
31
2.2.2 SAP Field Service
Az SAP Field Service alkalmazás (lásd 2.12. ábra) részben hasonlít a fent
említett SAP EAM Work Order-re mégpedig, hogy itt is a helyszínen dolgozó
munkatársak, mérnökök feladatának megsegítése a cél, de ebben az esetben a vállalat
CRM rendszer Service moduljában lévő ügyfelektől származó információkkal. Így a
mérnököknek számára minden információ rendelkezésre áll, hogy egy olyan gyors és
precíz szolgáltatást biztosítsanak, amivel az ügyfelek teljes mértékben meg lesznek
elégedve.
Az SAP Field Service-t használva a mérnökök az újonnan generált feladatokról
jelzéseket kapnak a központból, amiket a készülékükön keresztül elfogadhatnak vagy
visszautasíthatnak. A helyszínen a munkás a munka elvégzése után a rendelésben
rögzített adatokat és műveleteket felüldefiniálhatja, változtathatja a szolgáltatás típusát,
hogy az a valóságot tükrözze, és megfelelő költségek kerüljenek utólag meghatározásra.
A szakemberek optimalizálhatják a látogatásaik sorrendjét, mivel a helyszínek a
beépített Google Maps térképen láthatók. Folyamatosan, valós időben nyomon
követhetik az elvégzendő feladatok állapotát. Offline esetben is tökéletesen használható
a mobil alkalmazás. Ilyenkor az online állapot elérésekor szinkronizálódnak az adatok a
vállalati háttérrendszerrel.
Az alkalmazás architektúrája ugyanazon elven alapul, ahogyan az előző, SAP
EAM Work Order alkalmazásnál is volt. Az egyetlen kivétel, hogy jelen esetben az
alkalmazás a vállalat CRM rendszeréhez csatlakozik, hogy az onnan származó
ügyfélspecifikus adatokat tegye elérhetővé a világ bármely pontján tartózkodó
szakembernek.
2.12. ábra: SAP Field Service használat közben
32
2.2.3 SAP Retail Execution
Az SAP Retail Execution alkalmazás (lásd 2.13. ábra) az értékesítőket hivatott
támogatni az SAP CRM rendszerből származó azon információkkal, melyet az
ügyfélnél tett látogatásaik alkalmával felhasználhatnak, ezzel hatékonyabbá és
sikeresebbé téve az értékesítést.
A CRM-ből táplálkozó alkalmazásban az adott ügyfélnél tett látogatások
böngészhetők, s az azokhoz mellékelt feljegyzések, a helyszínen készített fotók és
videók is megtekinthetők. Ezeket a látogatásokat látva aztán újbóli látogatásokat lehet
betervezni, avagy újra megismételni azokat. Az üzletekben, kereskedőknél tett látogatás
alkalmával kérdőívek készíthetők, melyek később jó kiinduló pontot adhatnak például
az árukészlet és azok elhelyezkedésének tanulmányozásához. A planogramellenőrzés
fontos lépés ahhoz, hogy egyazon kereskedő több üzletében fenntarthassa az egységes
kinézetet azzal, hogy az árukból a polcokra ugyanannyit és ugyanoda helyezi el. Az
alkalmazással az értékesítők értékes ügyfél és általuk használt termékadatokhoz
juthatnak hozzá, amiket látogatásaik során felhasználhatnak.
2.13. ábra: SAP Retail Execution működés közben [10]
Az alkalmazás úgyszintén Sybase Unwired Platform-on alapul. Az előbbi két
alkalmazástól eltérően itt az Unwired Server az SAP EIS-hez úgy kapcsolódik, hogy
SAP Java Connector-t használ az SAP CRM rendszer által, külső rendszerek felé
biztosított RFC kapcsolódási felület eléréséhez. A SAP JCo egy olyan köztes
33
komponens, amellyel SAP-val kompatibilis komponensek és alkalmazások készíthetők
Java-ban. Az SAP JCo kétirányú kommunikációt támogat, támogatja a bejövő hívásokat
(Java hív ABAP-ot) és a kimenő hívásokat is (ABAP hív Java-t). A mobil alkalmazás
MBO-jaiban definiált műveletek az RFC interfészt implementálva, a kötelező
paramétereket kitöltve futnak le. A műveletek eredményeként az adatok megváltozása –
online esetben – azonnal érvényre jutnak a mobil eszközben vagy az EIS-ben. Offline
esetben pedig cachelt állapotban várjak a műveletek és adatok az online állapotot,
amikor azok is érvényre jutnak. A JCo-t és csak RFC-t használó kapcsolódási technika a
2.14. ábrán látható.
2.14. ábra: SAP Retail Execution együttműködése a háttérrendszerrel [10]
2.3 Összegzés
A fejezetben az irodalomkutatás során megszerzett, a szakdolgozatom
elkészítéséhez szükséges ismereteket ismertettem, néhol ismeretterjesztő szándékkal
többet is. A fejezet összeállítása során mindvégig fontosnak tartottam, hogy csak azokat
az ismereteket írjam le, amelyet elolvasva mindenki megértheti a Sybase Unwired
Platform működését és leglényegesebb részeit.
Épp ezért szó volt a fejezetben, hogy miként lehet a vállalati adatokat a
platformban reprezentálni, ezek a modellek hogyan épülnek fel, hogyan használhatók
fel mobil alkalmazások készítésére, milyen előnyei vannak és miért is egyszerűsíti meg
a fejlesztési folyamatot. Ismertettem a platformban készíthető mobil alkalmazásokat,
azoknak a jellemzőit, elkészítési és felhasználási módjukat. Mindegyik alkalmazás
különböző tulajdonsággal rendelkezik azért, hogy az SAP a Sybase Unwired Platform-
mal a különféle vállalati igényeket és infrastrukturális függőségeket támogathassa.
Szintén szó esett a platform architektúrájáról és összetevőiről, mivel úgy gondolom,
34
hogy enélkül a tudás nélkül nem lehet teljes értékű a platform ismertetése, hiszen
minden feladatot, műveletet ezek a komponensek futtatnak, hajtanak végre.
A fejezet végén hasonló alkotásokat mutattam be. Bemutatásuk során az
alkalmazások üzleti funkcionalitásukra, működésükre, illetve felépítésükre
koncentráltam. Az alkalmazások jellemzőinek, működéseinek tanulmányozása
hozzásegített ahhoz, hogy az általam készített alkalmazásban felhasználjak olyan
megoldásokat, amivel az alkalmazásom jobbá tehető, hiszen a megemlített három SAP
alkalmazás ügyfelek számára már elérhető, ezért a bennük alkalmazott megoldások
számomra is követendők voltak.
35
3 Megoldás
Ebben a fejezetben ismertetni fogom a félév során a Sybase Unwired Platform
használatával elkészített munkaerő-irányítási területre szánt mobil alkalmazásomat. Ez
egyrészt a tervezési fázis összefoglalását foglalja magába, ami tartalmazza, hogy milyen
követelményeknek kell megfelelnie egy mobil eszközre szánt alkalmazásnak. A
vállalatok és a végfelhasználók igényeit az elkészítés előtt, már a tervezési fázisban
figyelembe kell venni.
A rövidebb lélegzetvételű blokk után a fejlesztés menetének legfontosabb részeit
ismertetem, ahol az elméleti fejezetet követően gyakorlatban is látni lehet, hogy milyen
megfontolások alapján és hogyan készül egy hibrid alkalmazás a Sybase Unwired
WorkSpace fejlesztő eszköz segítségével. A fejezet végén az elkészített műszaki
alkotásomat funkcionális szempontból tesztelem, és a legtöbb szempontot figyelembe
véve próbálom meg értékelni, illetve elemezni azt.
3.1 Tervezés
Mivel az elkészített alkalmazásom egy mobil eszközökre szánt megoldás, ezért
rögtön a tervezés során felmerül az a technikai kérdés, hogy hogyan lehet a vállalat
legfontosabb adatait, folyamatait és információit a vállalat falain kívül elérhetővé tenni,
hogy azok biztonságosan jussanak el az eszközökre, és az eszközöket használók közül
csak a megfelelő emberek férhessenek hozzá ezekhez az adatokhoz. Igen nagy kihívást
jelent a vállalatoknak, hogy hogyan tudják a legfontosabb szolgáltatásaikat és adataikat
mobilizálni, mivel ezeknek az elkészített alkalmazásoknak mind a felhasználói
követelményeknek, mind a vállalati igényeknek meg kell, hogy feleljenek, s ez
egyáltalán nem könnyű.
A helyzetet leginkább az nehezíti, hogy a mai mobil megoldások nem
egységesek, többféle üzleti logikát használhatnak egyazon probléma megoldására, és
nem lehet azokat újrafelhasználni anélkül, hogy ne kelljen bennük több mindent is
módosítani, ha például egy másik fajta készülékre szeretnénk telepíteni az alkalmazást.
Emellett persze az is sok esetben előfordul, hogy egy vállalat meglévő rendszere
túlságosan bonyolult ahhoz, hogy egyszerűen mobilizálni lehessen azt. A Sybase
36
Unwired Platform ezt a problémát próbálja megoldani azzal, hogy online és offline
mobil alkalmazások készítését támogatja.
Az online alkalmazások esetében a felhasználó a mobil készülékét használja
ahhoz, hogy a vállalati adatok között keressen, és hogy a számára fontos
információkhoz minél hamarabb hozzájusson. Ilyenkor a tranzakciók, lekérdezések,
műveletek, kérések valós időben hajtódnak végre, s lefutásuk után a kért információkat
szolgáltatják a felhasználónak. Az offline alkalmazások ezzel ellentétben inkább egy IT
vagy menedzsment által üzemeltetett alkalmazásra hasonlítanak. A feladatokat és
információkat a felhasználó direktben nem éri el, azokat a felette álló valamilyen
szervezet közli üzenet vagy értesítés formájában. Erre a típusú alkalmazásra egy példa,
amikor a menedzsert üzenet formájában értesítik új emberek felvételéről, a menedzser
az üzenetre kattintva elindítja az alkalmazást, ami a képernyőn az új kolléga adatait
jeleníti meg.
3.1.1 Vállalati igények
A vállalatok nemcsak az elkészítendő mobil alkalmazással kapcsolatban, hanem
azzal a futtatási környezettel, rendszerrel szemben is követelményeket határoznak meg,
amire az alkalmazás a későbbiekben telepítésre kerül. Így a következő vállalati
követelmények fogalmazhatók meg:
Biztonság
Az eszközök és a vállalatok között mozgó adatoknak biztonságban kell lenniük,
és ha a készüléken üzleti adatokat letárolják, akkor ezek is megfelelő védelemben
részesüljenek. A védelem természetesen azt is magába kell foglalja, hogy azokhoz csak
a megfelelő emberek férhessenek hozzá. Ennek biztosítására több megoldást is biztosít a
platform.
Kapcsolat
A legtöbb közép és nagyobb vállalat esetében különböző vállalati rendszerek és
alkalmazások találhatóak, ezért joggal várják el, hogy a bevezetendő mobil megoldás
együtt tudjon működni azokkal, és támogassa az összes felhasználóját az értékesítőtől a
partnereken keresztül a dolgozókig. Emellett egy megbízható és jól működő kapcsolat
fenntartása is célként fogalmazódhat meg a bevezetendő vállalatok fejében.
37
Kézben tarthatóság
Követelményként jelenhet meg a jelenleg gyorsan növekvő és változó világban
az, hogy az alkalmazások gyorsan és a lehető legtöbb készülék típusra elérhetőek
legyenek. Az elérhetőségen túl pedig támogassák, és minél jobban használják ki az
eszköz hardware-e által nyújtotta lehetőségeket (pl. biztonság, sávszélesség). Szintén
elvárás, hogy az eszközöket és az alkalmazásokat a legegyszerűbb módon, a legkisebb
leállás mellett lehessen frissíteni és módosítani, hogy az ezekből keletkező költségek a
lehető legalacsonyabbak legyenek.
3.1.2 Felhasználói igények
A termelékenység maximalizálása miatt a felhasználói igények is fontos szerepet
játszanak egy mobil alkalmazás elkészítése során. A vállalati követelmények
figyelembe vétele mellet azt próbáltam elérni, hogy az alkalmazásomat egyszerűen és
magától értetődően lehessen használni. Az alkalmazásnak emellett hasonló módon kell
működnie, mint az adott eszközre készített egyéb alkalmazások többsége, ugyanis a
felhasználók komfort szintje azokhoz igazodik, és a mai rohanó világban kevesen
engedhetik meg maguknak, hogy minden egyes új alkalmazás használatát órákig, vagy
akár napokig kelljen tanulni.
3.2 Fejlesztés
Ebben a részben a szakdolgozat keretében, Sybase Unwired Platform
használatával elkészített mobil alkalmazásom fejlesztésének legfontosabb lépéseit
fogom bemutatni.
A munkaerő-irányítási célokra készített alkalmazásom egy, a saját gépemre
telepített minta adatbázisból nyeri ki a működéshez szükséges adatokat a
megrendelésekről, a jelentésekről, az ügyfelekről, a munka helyszíneiről és a javítandó,
karbantartandó eszközökről. Ez az adatbázis a vállalatok által adattárolásra használt
adatbázist hivatott reprezentálni, amit a vállalat ténylegesen adatok tárolására és adatok
kinyerésére használ. A kezelőnek többek között lehetősége van a fent említett
információkat megjelenítenie, és azok között böngésznie saját mobil eszközén. Emellett
új munkarendeléseket, jelentéseket hozhat létre, és a látogatás során látottak alapján
kérdőíveket tölthet ki az adott eszközről, amik szintén az adatbázisba kerülnek, hogy
azokat a vállalat később kiértékelhesse, és az elemzéseket követően megfelelő lépéseket
38
tehessen. Az üzleti adatokat (például a munkarendeléseket, ügyfelek adatait) az
alkalmazásom nem tárolja el, vagyis ha a felhasználó látni szeretné a megrendeléseket
vagy az ügyfél adatait, akkor újból és újból kapcsolódnia kell az Unwired Server-hez,
ahol az MBO-k lefuttatják a megfelelő SELECT utasítást az adatbázisban.
Természetesen az előzőleg már megfogalmazott vállalati és felhasználói
követelmények mindegyikét megpróbáltam figyelembe venni a fejlesztés során. A
biztonsági kockázatok csökkentése érdekében az alkalmazás legelső futtatásakor
aktiválni kell a készüléket, majd utána bejelentkezni ahhoz, hogy ténylegesen használni
lehessen az alkalmazást, és hozzá lehessen férni az adatbázisban tárolt adatokhoz.
A Sybase Unwired Platform-on alapuló hibrid alkalmazásom elkészítése több
lépésből állt. Ezek a lépések a következők voltak:
1. Az alkalmazás elkészítésének legelső lépése azt volt, amikor létrehoztam az
adatokat reprezentáló mobil üzleti objektumokat (MBO), és az Unwired Server-
re telepítettem őket.
2. Az alkalmazás tényleges elkészítése – vagyis a megfelelő képernyők létrehozása
a szükséges menü elemekkel, gombokkal, beviteli mezőkkel – a Workflow
Forms Editor használatával történt a Sybase Unwired WorkSpace-en belül.
3. A legutolsó lépés az alkalmazás kódjának legenerálása volt. Ekkor jöttek létre
azok a forrásfájlok, amiket a készülékre telepített tároló futtatni tud.
Generáláskor a kódokat egyből az Unwired Server-re kerültek.
Miután az alkalmazás sikeresen elkészült, valamilyen eszközre kellett szimulálni. Az
alkalmazás szimulálására én a BlackBerry hivatalos honlapjáról elérhető OS 6
szimulátort használtam. A fent említett lépéseken túlmenően saját kiegészítéseket,
kódokat is írhatunk az alkalmazáshoz, úgy ahogy azt én is tettem az alkalmazásom
kinézetének átszabásához. A fejlesztés menetének legfontosabb lépéseit és részeit az
alábbi angol nyelvű 3.1. ábra nagyon jól foglalja össze.
39
3.1. ábra: Fejlesztés menete Sybase Unwired Platform haszálatával [11]
3.2.1 Adatbázistáblák létrehozása
Mivel a feladatom megoldása során nem SAP szerverhez kapcsolódtam, és nem
használtam egyik instancia által nyújtott RFC-ket vagy BAPI-kat sem, így saját
magamnak kellett létrehozni olyan táblákat, amiben mások hátráltatása nélkül tudtam
dolgozni.
A feladatom során a felhasználó munkarendeléseket, jelentéseket és kérdőíveket
hozhat létre, ezért mindhárom entitáshoz külön adatbázis táblát hoztam létre. Mivel egy
valóságban használt vállalati rendszer működését próbáltam szimulálni, ezért
létrehoztam az ügyfeleket, az eszközöket és a munkahelyszíneket tartalmazó táblákat is.
A munkatársak adatainak tartalmazására egy további táblát készítettem.
Az adatbázistáblák definíciói az alábbiak lettek (csak az alkalmazás működéséhez
legfontosabb tábláinak mezőit magyarázom):
• Rendelések: WoOrders (ID, equipmentID, clientID, locationID, type_, priority,
status, createdBy, shortText, longText)
o ID: A rendelés egyedi azonosítója.
o equipmentID: A rendeléshez meg kell adni, hogy mely eszközhöz
kapcsolódik a munkálat.
40
o clientID: A rendeléshez meg kell adni, hogy mely ügyfélhez kapcsolódik
a munkálat.
o locationID: A rendeléshez meg kell adni, hogy mely helyszínen történik
a munkálat.
o type_: A rendelés közben elvégzendő munkálat típusa.
o priority: A munka prioritása.
o status: A munka jelenlegi állapota.
o createdBy: A rendelés létrehozója.
o shortText: A munkarendelés rövid leírása.
o longText: A munkarendelés hosszabb leírása.
• Jelentések: WoReports (ID, orderID, final_, activityType, startDate, startTime,
endDate, endTime, coment)
o ID: A jelentés egyedi azonosítója.
o orderID: Azon rendelés ID-ja, amelyikhez a jelentés tartozik. Ennek a
mezőnek a segítségével lehet csak az adott rendeléshez tartozó
jelentéseket megjeleníteni.
o final_: Ez a mező akkor TRUE értékű, ha a jelentést készítő ember
lezárja a teljes rendelést, további teendő ilyenkor nincs a rendeléssel.
o activityType: A jelentés közben elvégzett munkálat típusa.
o startDate: A munkálat kezdő dátuma.
o startTime: A munkálat kezdő időpontja.
o endDate: A munkálat befejező dátuma.
o endTime: A munkálat befejező időpontja, ezek az adatok a
költségszámítás miatt lehetnek érdekesek egy vállalat számára.
o coment: A jelentéshez fűzhető megjegyzés.
• Kérdőívek: WoSurveys (ID, equipmentID, status, locks, power, clean,
environment, lighting, coment)
o ID: A kérdőív egyedi azonosítója.
o equipmentID: Azon eszköz azonosítója, amelyikhez a leadott kérdőív
tartozik. Ennek a mezőnek a segítségével lehet a kitöltött kérdőíveket a
későbbiekben feldolgozni, hogy tudjuk, melyik eszközhöz is tartoznak a
kérdőívben foglaltak.
o status: Az eszköz állapota a helyszíni ellenőrzéskor.
41
o locks: A mező értéke TRUE, ha az eszköz megfelelő biztonságban van a
helyszínen.
o power: A mező értéke TRUE, ha az eszköznek megfelelő az
áramellátása.
o clean: A mező értéke TRUE, ha az eszköz megfelelően van karbantartva,
tisztítva.
o environment: A mező értéke TRUE, ha az eszköz körüli környezet
minden szempontból megfelelő.
o lighting: A mező értéke TRUE, ha az eszköz az adott körülményeknek
megfelelően van megvilágítva.
o coment: A kérdőívhez mellékelhető megjegyzés.
• Dolgozók: WoEmps (userNameID, firstName, lastName, phone,
notifyOfOrders, email)
• Ügyfelek: WoClients (ID, name, phone, coment)
• Eszközök: WoEquipments (ID, description)
• Helyszínek: WoLocations (ID, address, city, postalCode, country, location)
• Szolgáltatástípusok: WoActivityTypes (ID, descreption)
Az alkalmazásból a feladatnak megfelelően csupán a WoOrders, a WoReports és a
WoSurveys táblákba lehet rekordokat felvenni, így a többi táblába kézi bevitellel vittem
fel az ügyfelek, eszközök, helyszínek, stb. adatait, hogy az alkalmazás ezeket
háttértáblaként használhassa. Például az ügyfelek és az eszközök háttértáblájának
tartalma (3.2. ábra, 3.3. ábra):
3.2. ábra: WoClients adatbázis tábla tartalma
42
3.3. ábra: WoEquipments tábla tartalma
3.2.2 Adatmodellezés
Az adatmodellezés leglényegesebb mozdulata, amikor létrehoztam a mobil
üzleti objektumokat. De mielőtt ezeket az objektumokat létrehoztam volna, egy új mobil
alkalmazás projektet (mobile application project) kellett létrehozni az Eclipse alapú
WorkSpace fejlesztő eszközben. Miután az objektumok elkészültek, azokat az SUP
szerverére telepítettem.
3.2.2.1 Mobil alkalmazás projektjének létrehozása
Az alkalmazás fejlesztésének legelső lépéseként
létrehoztam a myWorkOrder_thesis nevezetű mobil alkalmazás
projektet (lásd 3.4. ábra). A projekt tartalmazza a későbbiekben
létrehozott üzleti objektumokat, személyes kulcsokat,
szinkronizációs csoportokat, az adott eszközre legenerált kódokat,
a létrehozott munkafolyamatot és a munkafolyamat generálásának
forrásait. Egyszóval a projekt maga az alkalmazás, ami mindent
tartalmaz ahhoz, hogy az alkalmazás problémamentesen működjön
bármely platform által támogatott eszközön.
3.2.2.2 Mobil üzleti objektumok elkészítése
A mobil üzleti objektumokat a szerver és a mobil eszköz közötti kapcsolat
megteremtésére használjuk. Például az MBO-k SQL utasítások segítségével
kommunikálnak az EIS-sel, hogy adatokat nyerjenek ki, vagy hozzanak létre. Az
objektumok az SUP szerveren helyezkednek el, és egy olyan adatforrásnak tekinthetők,
amik mindig az aktuális adatokat tartalmazzák.
3.4. ábra: A
myWokrOrder_thesis
projekt tartalma
43
A létrehozandó objektumok feladatai közé tartozik például az is, hogy a
felhasználó lekérdezéseit az adatbázis felé továbbítsa, aztán a megtalált adatokat a Relay
Server-nek elküldje, amely szerver aztán a mobil szolgáltatóval együttműködve a
felhasználó eszközére továbbítja az eredményhalmazt. A lenti 3.5-ös ábra ezt
szemlélteti.
3.5. ábra: Mobil üzleti objektumok szerepük és elhelyezkedésük [13]
A feladatom megoldásához az SUP szervert és az SUP által tartalmazott minta
adatbázist is a saját számítógépemre telepítettem fel. Így a képen látható ábra
elrendezéséhez képest az én tesztkörnyezetem jóval egyszerűbben nézett ki.
A MBO-k létrehozása nem túlságosan bonyolult folyamat, csupán a mobil
alkalmazás diagramra (mobile application diagram) kellett áthúzni azokat az adatbázis
táblákat, amiket használni szeretnék a mobil alkalmazásom során, a kapcsolatot köztük
ugyanis az MBO-k tartják. Az áthúzás hatására automatikusan létrejött egy SQL
SELECT utasítás, amivel az adatokat lehet kinyerni a táblákból, és a három CRUD
alapművelet közül lehetett kiválasztani, hogy melyikeket hozza még létre az eszköz az
adott MBO-hoz, mindezt egyetlen sor kódolása nélkül.
Értelemszerűen, az általam létrehozott objektumok közül csak a rendeléseket, a
jelentéseket és a kérdőíveket tartalmazó táblához hoztam létre ilyen módon
műveleteket, mivel a háttértáblákat az alkalmazást használó felhasználó csak olvasásra
használja. Az így létrejött mobil üzleti objektumok a következőképpen néznek ki (3.6.
ábra):
44
3.6. ábra: A létrehozott mobil üzleti objektumok
Látható a diagramon, hogy minden egyes MBO egy osztályként reprezentálja az
adatbázis táblákat, ahol az attribútumok a tábla oszlopainak, míg a metódusok a táblán
végezhető műveleteknek felelnek meg. A másik érdekesség, hogy az adatbázisban
használt adattípusokat az eszköz a platform számára is értelmezhető típusra fordítja át.
Persze az attribútumokat és a metódusokat törölhetünk, de újakat is vehetünk fel.
Az MBO-ra kattintva megtekinthetjük annak beállításait, ahol többek között az
oszlopok és attribútumok közötti megfeleltetést változtathatjuk, tekinthetjük meg, de
lehetőségünk van lekéréseket is írni az objektumhoz, de az adatbázishoz való
kapcsolódás adatait is megtekinthetjük (lásd 3.7. ábra, 3.8. ábra, 3.9. ábra, 3.10. ábra).
3.7. ábra: WoOrders MBO attribútumai
45
3.8. ábra: WoOrders MBO adatforrása
3.9. ábra: WoOrders MBO operációi
3.10. ábra: WoOrders MBO egyetlen lekérése
3.2.2.3 Objektumok SUP szerverre telepítése
Miután elkészítettem az
adatbázis táblákkal kapcsolatot
megteremtő mobil objektumokat, az
SUP szerverre telepítettem őket. Ezt is
könnyedén, pár kattintással lehetett
elvégezni, ami azt mutatja, hogy az
SUP használatával milyen egyszerűen
és gyorsan lehet mobil alkalmazásokat
fejleszteni. A telepítés során meg
kellett adni, hogy üzenet alapú
kommunikáció lesz az adatbázis (lásd
3.11. ábra), az SUP és az eszköz 3.11. ábra: Az objektumok telepítési módjuk és
kommunikáció típusuk megadása
46
között, ugyanis hibrid alkalmazás esetében csak ez támogatott. A replikáció alapú natív
alkalmazások esetében választható.
Ezek után a telepítendő MBO-kat egy listából választottam ki, és kijelöltem a
saját Unwired Server-emet, amire telepíteni szerettem volna az elkészített
objektumokat. Legvégül a saját adatbázis szerverem adatait kellett megadni, ahol az
MBO-kból elért táblák voltak
találhatók.
A folyamat végén (lásd 3.12.
ábra) az objektumok az SUP szerverre
kerültek, ami magába foglalta a
hozzájuk tartozó kódok automatikus
generálását is. Így az adatmodellezés végére érkeztem. Ezek után az adatbázis rétegbe
tartozó minta adatbázisom a mobil alkalmazás használatával is elérhetővé vált.
3.2.3 Alkalmazás elkészítése
Az alkalmazás elkészítésének nevezzük azt a folyamatot, amikor az alkalmazás
képernyőit létrehozzuk és a köztük lévő léptetési sorrendet definiáljuk. Ezt, amit így
elkészítünk, munkafolyamatnak, vagy angolul workflow-nak nevezünk. A kész
workflow-t fogjuk majd a készülékre telepíteni, amit az eszközön lévő HWC fog
futtatni. [12]
3.2.3.1 Workflow Forms Editor
A munkafolyamatok elkészítéséhez a Workflow Forms Editor nevezetű eszközt
használhatjuk. Én is így tettem a saját workflow-m elkészítésénél. Technikailag a
munkafolyamat egy .xbw kiterjesztésű fájlban tárolódik, és a módosítások során ennek a
fájlnak a tartalma változik.
A workflow elkészítésének első lépése az volt, hogy létrehoztam a saját,
myWorkOrder nevű munkafolyamatomat, aminek a létrehozásakor megadtam, hogy az
alkalmazás kliens által indítható legyen, hogy az alkalmazás első futtatásakor aktiválni
kelljen az eszközt, és hogy a felhasználónak authentikálnia kelljen magát az alkalmazás
használatához.
A képernyők létrehozásának menetét nem fogom részletesen leírni, mivel a
munkafolyamat igen komplex, sok képernyőt tartalmaz, a sok képernyő pedig sok-sok
3.12. ábra: Az objektumok telepítése
47
vezérlési elemet, gombot, menü elemet használ. Így minden egyes elem létrehozásának
menetét nem tartom ésszerűnek. Egyrészt mert ennek az ismertetése nagyon sokáig
tartana, másrészt egyszer olvasva nem is igen lehetne megérteni. A Sybase honlapján
számos irodalom lelhető fel egy alkalmazás részletes létrehozásával kapcsolatban.
Emiatt a továbbiakban leginkább a munkafolyamat működésére fogok koncentrálni,
hogy mi és miért történik úgy, ahogyan, és miként lehet megcsinálni benne egyet, s
mást.
Az elkészített munkafolyamatomról készített folyamatábrán (3.13. ábra) láthatók a
felhasznált képernyők és a köztük lévő navigációs logika.
3.13. ábra: Az elkészített alkalmazás képernyői közötti kapcsolatok
A következő oldalon minden egyes képernyő funkcionalitását tárgyalom.
48
• Activation: Az aktiválási képernyő csak az alkalmazás legelső indításakor
jelenik meg. Az aktiválás azért használatos, hogy az SUP hozzárendelje a
felhasználót az eszközhöz. Az aktiválást követően a bejelentkezési procedúra
következik.
• Credentials: Különféle authentikációs eljárásokat lehet megadni.
Használhatunk statikus felhasználónevet és jelszót is, de valamilyen másféle
szolgáltató által biztosított tanúsítványokat is. Az SAP rendszerekhez való
kapcsolódásnál az LDAP szerverben megadott felhasználónevet és jelszót
ellenőrzi az SUP. Mivel én most SAP rendszer nélkül használtam az SUP-t,
ezért nem volt LDAP szerverem sem, így a Sybase Control Center-ben felvett
felhasználót ellenőrizte az SUP az alkalmazás indításakor. Az alkalmazás
futtatásához az adminisztrálásra használt felhasználót, a supAdmin-t használtam.
A sikeres jelszó megadása után a legelső, Home képernyőre lép a program.
• Home: A képernyő egy navigációs kiindulópontot jelent, innen lehet eljutni a
meglévő rendelések, az új rendelés felvétel, az új kérdőív kitöltése, a beállítások,
a súgó, a kapcsolat és a bejelentkezés képernyőkhöz.
• Orders: A képernyő feladata, hogy megjelenítse az összes WoOrders táblában
lévő rendelések legfontosabb adatait. A képernyő megnyitása egy SQL SELECT
utasítást jelent az említett táblában. Ilyenkor ténylegesen lefut a fent említetett
kérés az adatbázisban, és az eredményhalmaz a képernyőn megjelenik. Az
eredményhalmaz nem kerül tárolásra a készüléken, ezért mindig, amikor a
felhasználó megnyitja ezt a képernyőt, lefut az említett SQL utasítás. A tartalom
ideiglenesen cachelhető, ha az On-device cache timeout mezőbe beírjuk a
tárolási idő hosszát. A tárolt adatok a bejelentkezési képernyő használata miatt
automatikusan titkosítva lesznek. A titkosított adatokhoz csak az alkalmazásba
bejelentkezett felhasználók férhetnek hozzá, amikor is létrejön az a kulcs, amivel
visszatitkosíthatók az adatok. Az ábrán a zöld összeköttetés jelenti azt, hogy a
képernyő valamilyen lekérdezés eredményhalmazát fogja megjeleníteni. A
képernyőről egy menü elem segítségével nyitható meg a Create new order
képernyő, amit a fenti, képernyők navigációs sorrendjét tartalmazó ábra fekete
nyíllal jelöl.
• Order detail: Az Orders képernyőről lehet idenavigálni, ha valamelyik
rendelésre kattintottak. A képernyő feladata, hogy minden adatát megjelenítse az
49
adott rendelésnek. A navigációs folyamot jelölő ábrán kék nyíl jelenti azt, hogy
a képernyő részletezetten jeleníti meg az adott entitás adatait. A másik feladata,
hogy ha a felhasználó a rendeléshez tartozó jelentéseket szeretné megtekinteni,
akkor SELECT utasítást hajtson végre a WoReports táblában a rendeléshez
tartozó azonosítóval (orderID), mint szűkítése paraméterrel (lásd 3.14. ábra).
Egy-egy menü elem biztosítja a közvetlen visszajutást a Home képernyőre, és az
új jelentés felvételét támogató oldalra.
3.14. ábra: Order detail képernyő ID beviteli mezőjének általános beállításai
• Update order: A képernyőn magát a rendelést lehet módosítani, frissíteni,
például a típust vagy az állapotot. A módosítás jóváhagyásakor az Orders MBO
update operációja hívódik meg, ami egy megfelelően létrehozott UPDATE SQL
utasítás lefutását jelenti a WoOrders adatbázis táblában. A képernyőről vissza
lehet navigálni a Home képernyőre.
• Order - client: A képernyő jeleníti meg a rendelés clientID-jához tartozó ügyfél
adatait. Ilyenkor lefut a WoClients MBO-hoz tartozó SELECT kérés, ahol a
rendeléshez tartozó ügyfél azonosítója a szűkítési paraméter.
• Order - Equipment: A képernyő jeleníti meg a rendelés equipmentID-jához
tartozó eszköz adatait. Ilyenkor lefut a WoEquipments MBO-hoz tartozó
SELECT kérés, ahol a rendeléshez tartozó eszköz azonosítója a szűkítési
paraméter.
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával
SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával

More Related Content

Similar to SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával

T day virtualization_2007
T day virtualization_2007T day virtualization_2007
T day virtualization_2007Laszlo Kredits
 
Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)Tamas Cservenak
 
Oriana Flyer partnereknek
Oriana Flyer partnereknekOriana Flyer partnereknek
Oriana Flyer partnereknekOriana
 
GCP - A felhőalapú architektúrák és szolgáltatások
GCP - A felhőalapú architektúrák és szolgáltatásokGCP - A felhőalapú architektúrák és szolgáltatások
GCP - A felhőalapú architektúrák és szolgáltatásokMárton Kodok
 
Microsoft Windows Azure Platform
Microsoft Windows Azure PlatformMicrosoft Windows Azure Platform
Microsoft Windows Azure PlatformPéter Lakos
 
Momacc prospektus kicsi
Momacc prospektus kicsiMomacc prospektus kicsi
Momacc prospektus kicsiKormos Péter
 
Magyar érettségi Linux kialakítása
Magyar érettségi Linux kialakításaMagyar érettségi Linux kialakítása
Magyar érettségi Linux kialakításaKálmán Kéménczy
 
Budapest Metropolitan Főiskola UX kurzus
Budapest Metropolitan Főiskola UX kurzusBudapest Metropolitan Főiskola UX kurzus
Budapest Metropolitan Főiskola UX kurzusmet_pd
 
Via appsters kkönyv 12 06-08
Via appsters kkönyv 12 06-08Via appsters kkönyv 12 06-08
Via appsters kkönyv 12 06-08Andras Nyiro
 
Csonka enikő alkalmazási élmény bemutatása
Csonka enikő alkalmazási élmény bemutatásaCsonka enikő alkalmazási élmény bemutatása
Csonka enikő alkalmazási élmény bemutatásaPOLYGON Informatikai Kft.
 
Bíró valentina web 2.0
Bíró valentina   web 2.0Bíró valentina   web 2.0
Bíró valentina web 2.0valentinabiro
 
III. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptxIII. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptxSzabolcs Gulyás
 
Könyvtárosok az olvasókért
Könyvtárosok az olvasókértKönyvtárosok az olvasókért
Könyvtárosok az olvasókértDaniel Takacs
 
Fehér Péter - Az üzleti és ICT architektúra kapcsolatáról
Fehér Péter - Az üzleti és ICT architektúra kapcsolatárólFehér Péter - Az üzleti és ICT architektúra kapcsolatáról
Fehér Péter - Az üzleti és ICT architektúra kapcsolatárólMKT Informatikai szakosztály
 
Málnasuli – projektterv
Málnasuli – projekttervMálnasuli – projektterv
Málnasuli – projekttervKazasE
 

Similar to SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával (20)

Zwizzer hu v2
Zwizzer hu v2Zwizzer hu v2
Zwizzer hu v2
 
T day virtualization_2007
T day virtualization_2007T day virtualization_2007
T day virtualization_2007
 
Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)Life and Death of Apache Maven (HU)
Life and Death of Apache Maven (HU)
 
Oriana Flyer partnereknek
Oriana Flyer partnereknekOriana Flyer partnereknek
Oriana Flyer partnereknek
 
GCP - A felhőalapú architektúrák és szolgáltatások
GCP - A felhőalapú architektúrák és szolgáltatásokGCP - A felhőalapú architektúrák és szolgáltatások
GCP - A felhőalapú architektúrák és szolgáltatások
 
Microsoft Windows Azure Platform
Microsoft Windows Azure PlatformMicrosoft Windows Azure Platform
Microsoft Windows Azure Platform
 
Momacc prospektus kicsi
Momacc prospektus kicsiMomacc prospektus kicsi
Momacc prospektus kicsi
 
Magyar érettségi Linux kialakítása
Magyar érettségi Linux kialakításaMagyar érettségi Linux kialakítása
Magyar érettségi Linux kialakítása
 
Budapest Metropolitan Főiskola UX kurzus
Budapest Metropolitan Főiskola UX kurzusBudapest Metropolitan Főiskola UX kurzus
Budapest Metropolitan Főiskola UX kurzus
 
Egyedi cégre szabott üzleti szoftver
Egyedi cégre szabott üzleti szoftverEgyedi cégre szabott üzleti szoftver
Egyedi cégre szabott üzleti szoftver
 
Via appsters kkönyv 12 06-08
Via appsters kkönyv 12 06-08Via appsters kkönyv 12 06-08
Via appsters kkönyv 12 06-08
 
Berkes andrás pxml architektura 2013-01-16
Berkes andrás pxml architektura 2013-01-16Berkes andrás pxml architektura 2013-01-16
Berkes andrás pxml architektura 2013-01-16
 
Csonka enikő alkalmazási élmény bemutatása
Csonka enikő alkalmazási élmény bemutatásaCsonka enikő alkalmazási élmény bemutatása
Csonka enikő alkalmazási élmény bemutatása
 
Bíró valentina web 2.0
Bíró valentina   web 2.0Bíró valentina   web 2.0
Bíró valentina web 2.0
 
III. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptxIII. Elmélet - Az ERP rendszerek implementációja 1..pptx
III. Elmélet - Az ERP rendszerek implementációja 1..pptx
 
Könyvtárosok az olvasókért
Könyvtárosok az olvasókértKönyvtárosok az olvasókért
Könyvtárosok az olvasókért
 
GA CV
GA CVGA CV
GA CV
 
Qs c cruiser-ads
Qs c cruiser-adsQs c cruiser-ads
Qs c cruiser-ads
 
Fehér Péter - Az üzleti és ICT architektúra kapcsolatáról
Fehér Péter - Az üzleti és ICT architektúra kapcsolatárólFehér Péter - Az üzleti és ICT architektúra kapcsolatáról
Fehér Péter - Az üzleti és ICT architektúra kapcsolatáról
 
Málnasuli – projektterv
Málnasuli – projekttervMálnasuli – projektterv
Málnasuli – projektterv
 

SAP megoldáshoz kapcsolódó mobil alkalmazás fejlesztése Sybase Unwired Platform használatával

  • 1. Madarász Norbert SAP MEGOLDÁSHOZ KAPCSOLÓDÓ MOBIL ALKALMAZÁS FEJLESZTÉSE SYBASE UNWIRED PLATFORM HASZNÁLATÁVAL KONZULENS Berczik Márton Dr. Martinek Péter BUDAPEST, 2011 Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Elektronikai Technológia Tanszék
  • 2.
  • 3.
  • 4.
  • 5. HALLGATÓI NYILATKOZAT Alulírott Madarász Norbert, szigorló hallgató kijelentem, hogy ezt a szakdolgozatot meg nem engedett segítség nélkül, saját magam készítettem, csak a megadott forrásokat (szakirodalom, eszközök stb.) használtam fel. Minden olyan részt, melyet szó szerint, vagy azonos értelemben, de átfogalmazva más forrásból átvettem, egyértelműen, a forrás megadásával megjelöltem. Hozzájárulok, hogy a jelen munkám alapadatait (szerző(k), cím, angol és magyar nyelvű tartalmi kivonat, készítés éve, konzulens(ek) neve) a BME VIK nyilvánosan hozzáférhető elektronikus formában, a munka teljes szövegét pedig az egyetem belső hálózatán keresztül (vagy autentikált felhasználók számára) közzétegye. Kijelentem, hogy a benyújtott munka és annak elektronikus verziója megegyezik. Dékáni engedéllyel titkosított diplomatervek esetén a dolgozat szövege csak 3 év eltelte után válik hozzáférhetővé. Kelt: Budapest, 2011. 12. 07. ..................................................................... Madarász Norbert
  • 6.
  • 7. vii Összefoglaló A munkámat az SAP Hungary Kft.-nél készítettem el, ahol a jelenleg nagyon aktuális mobilitás témát fedeztem fel. A szakdolgozatom készítése során az SAP által nemrég felvásárolt amerikai cég, a Sybase vállalati mobilizációját biztosító Sybase Unwired Platform-mal foglalkoztam. A megoldás használatával a vállalatok nagymennyiségű adatot, információt mobilizálhatnak, azért hogy ezek elérhetőek legyenek az emberek számára függetlenül attól, hogy hol és mikor tartózkodnak. S mivel ezek a megoldások nyílt és platform független technológiát használnak, ezért a vállalatok ezekkel a megoldásokkal hosszú távon számolhatnak. Az általam készített mobil alkalmazás a munkaerő-irányítási területre készült. Az alkalmazással a felhasználó a rendszerben lévő munkarendeléseket tekintheti meg, munkarendeléseket vehet fel, kérdőíveket tölthet ki és karbantartási jelentéseket készíthet. A fejlesztés kezdetén a platform működésével kellett leginkább megismerkednem. Az Unwired Platform teszi ugyanis lehetővé, hogy a mobil eszközökön futó alkalmazások mindig azokkal a legfrissebb adatokkal rendelkezzenek, amik ténylegesen a vállalati háttérrendszerben vannak. Ehhez különféle szinkronizációs technikákat és eljárásokat használ. A feladatom megoldásához a mobil alkalmazások készítésére alkalmas Sybase WorkSpace nevezetű fejlesztő eszközt használtam. Az eszközzel létrehoztam a vállalati adatokat reprezentáló mobil üzleti objektumokat, majd azokat az Unwired Server-re telepítettem. Az objektumokat is felhasználva a Workflow Forms Editor-ral készítettem el az alkalmazás üzleti logikáját, a felhasználó által használt képernyőket és az ezek közti navigációs sorrendet. Az alkalmazást aztán egy BlackBerry szimulátorra telepítettem, ahol az elkészített alkotást funkcionális szempontból vizsgáltam, teszteltem.
  • 8. viii Abstract I wrote my bachelor thesis work at SAP Hungary Kft., where I discovered the nowadays very current mobility topic. During writing my thesis I dealt with the recently acquired Sybase company’s Sybase Unwired Platform, which is used to mobilize the enterprise information. The solution enables enterprise developers to simply and quickly build applications that connect business data to mobile workers on any device, at any time. These solutions are using open source and platform independent technologies; it means that the enterprises can count with them in long run. My mobile device application was developed for field technicians to be able to view and edit work orders, confirm time and materials used, and fill out surveys related to the examined equipment on their mobile devices. At the beginning of the realization I had to get acquainted with the platform itself. Because the Sybase Unwired Platform ensures the consistency of the business data among the mobile applications on the devices and the enterprise information system back-ends. For this purpose it uses different synchronization techniques. To solve my task I used the Sybase WorkSpace toolkit to create the mobile business objects and deploy those objects to the Unwired Server, wherewith mobile device applications can be designed and developed. With Workflow Forms Editor I created the business logic and the screen designs for the application, and the navigation forms order. Finally, the application was deployed by generating code and run using a BlackBerry simulator, when I examined and tested the functionality of the Work Order application.
  • 9. ix Tartalomjegyzék 1 Bevezetés....................................................................................................................... 1 1.1 Feladatkiírás részletezése........................................................................................ 4 2 Előzmények................................................................................................................... 6 2.1 Sybase Unwired Platform ....................................................................................... 6 2.1.1 Vállalati adatok reprezentálása........................................................................ 8 2.1.1.1 Mobile Business Objects .......................................................................... 8 2.1.1.2 OData...................................................................................................... 15 2.1.2 Sybase Mobile SDK....................................................................................... 15 2.1.2.1 Native Object API alkalmazások............................................................ 17 2.1.2.2 HTML5/JS Hybrid alkalmazások ........................................................... 18 2.1.2.3 OData SDK alkalmazások ...................................................................... 19 2.1.3 Sybase Unwired Platform Runtime ............................................................... 19 2.1.3.1 Rendszertérkép........................................................................................ 20 2.1.3.2 Biztonság ................................................................................................ 23 2.1.4 Sybase Control Center ................................................................................... 26 2.1.4.1 Adminisztrálás és monitorozás............................................................... 28 2.2 SAP néhány elérhető mobil alkalmazása.............................................................. 28 2.2.1 SAP EAM Work Order.................................................................................. 29 2.2.2 SAP Field Service.......................................................................................... 31 2.2.3 SAP Retail Execution .................................................................................... 32 2.3 Összegzés.............................................................................................................. 33 3 Megoldás..................................................................................................................... 35 3.1 Tervezés................................................................................................................ 35 3.1.1 Vállalati igények............................................................................................ 36 3.1.2 Felhasználói igények...................................................................................... 37 3.2 Fejlesztés............................................................................................................... 37 3.2.1 Adatbázistáblák létrehozása........................................................................... 39 3.2.2 Adatmodellezés.............................................................................................. 42 3.2.2.1 Mobil alkalmazás projektjének létrehozása............................................ 42 3.2.2.2 Mobil üzleti objektumok elkészítése ...................................................... 42
  • 10. x 3.2.2.3 Objektumok SUP szerverre telepítése.....................................................45 3.2.3 Alkalmazás elkészítése...................................................................................46 3.2.3.1 Workflow Forms Editor ..........................................................................46 3.2.3.2 Az alkalmazás kinézetének testre szabása ..............................................53 3.2.4 Alkalmazás telepítése.....................................................................................55 3.2.5 Alkalmazás futtatása, tesztelése.....................................................................56 3.2.5.1 Work Order workflow futtatása ..............................................................56 3.2.5.2 Work Order workflow tesztelése.............................................................60 3.3 Összegzés ..............................................................................................................63 4 Összefoglalás...............................................................................................................65 Irodalomjegyzék............................................................................................................67
  • 11. xi Rövidítések ABAP Advanced Business Application Programming AES Advanced Encryption Standard API Application Programming Interface ASA Adaptive Server Anywhere BAPI Business Application Programming Interface CDB Cache database CRM Customer Relationship Management CRUD Create, update, delete DBMS Database Management System DCN Data change notification DMZ Demilitarized zone EAM Enterprise Asset Management EIS Enterprise Information System ERP Enterprise Resource Planning HTTP Hypertext Transfer Protocol HTTPS Hypertext Transfer Protocol Secure HWC Hybrid Web Container IDE Integrated Development Environment IIS Internet Information Server IT Information Technology JCo Java Connector LAN Local Area Network LDAP Lightweight Directory Access Protocol MBO Mobile Business Object OData Open Data Protocol OPS Open Specification Promise OS Operating System PM Plant Maintenance RFC Remote Function Call SCC Sybase Control Center SDK Software Development Kit
  • 12. xii SNMP Simple Network Management Protocol SOAP Simple Object Access Protocol SSL Secure Sockets Layer SSO Single Sign-on SUP Sybase Unwired Platform SQL Structured Query Language TLS Transport Layer Security UML Unified Modeling Language WS WorkSpace
  • 13. 1 1 Bevezetés A mai felgyorsult világban nap, mint nap rengeteg új technológia, új fejlődési irány és információ lát napvilágot. Ahhoz, hogy az emberek, cégek, vállalatok ezzel lépést tudjanak tartani, elengedhetetlen a folyamatos naprakészség, hisz e nélkül könnyedén hátrányba kerülhetnek más piaci versenytársakkal szemben. Ezt a folyamatos információszerzést mi sem bizonyítja jobban, mint a manapság széles körben elterjedt mobil eszközök. A mobil eszközök (okostelefonok, PDA-k, táblagépek) lehetőséget nyújtanak a napra kész információk megszerzésében, időtől és helyszíntől függetlenül. Emellett a mobil eszközök elérték azt a fejlettségi szintet, amelyeken szinte már probléma mentesen tudnak futni a komplexebb folyamatok, alkalmazások, programok is. Ráadásul az is észrevehető, hogy az emberek igénye folyamatosan nő a komfortos, jól kezelhető hordozható eszközök iránt. Ezt a folyamatot megértve és felismerve nem kell nagy bátorság kijelenteni, hogy a jövőben egyre inkább eltolódik az információszerzés, a napi munkavégzés egy része a kényelmes mobil eszközök irányába. Ezt számos vállalat felismerte. Egyre több és több ilyesfajta készülék – hozzá tartozó különböző területeken és célközönségben használható alkalmazás – szolgáltatás jelenik meg. Ezt az igényt, vagyis a mobilitás iránti növekvő keresletet az SAP is felismerte. Mivel az SAP-nak nem volt olyan saját megoldása, amivel ezen igények megfelelő színvonalon kiszolgálhatóak lettek volna, ezért 2010-ben megvásárolta a nagyon innovatív kaliforniai székhelyű Sybase nevű amerikai szoftverfejlesztő céget. Ezzel a vásárlással az SAP többek között szert tett az évek alatt felhalmozott Sybase-s tapasztalatokra, fejlesztésekre. A Sybase fő profilja az adatbázis technológia fejlesztés, információ-menedzsment, elemzés és mobilizáció. Ebből számomra a legfontosabb és a mobilitás témához leginkább kapcsolódó terület a mobilizáció. Ugyanis a mobil megoldások segítségével az SAP számos üzleti rendszert képes üzemeltetni világszerte. Ezzel a technológiával a vállalatok nagymennyiségű adatot, információt kezelhetnek, mobilizálhatnak annak érdekében, hogy ezek elérhetővé váljanak az emberek számára függetlenül attól hol és mikor tartózkodnak, s milyen
  • 14. 2 eszközt használnak, mivel ezek a megoldások nyílt, platform független technológiákat használnak. Így a vállalatok biztosítva vannak afelől is, hogy ezek a befektetések hosszú távra szólnak. 1.1. ábra: Mobilitás [1] A szakdolgozatom elkészítéséhez a Sybase által fejlesztett eszközöket, megoldásokat fogom használni. Ahhoz, hogy a vállalat munkaereje mobilizálható legyen, egy olyan platformra van szükség, melynek segítségével gyorsan lehet fejleszteni a vállalat adatforrásaiból táplálkozó mobil alkalmazásokat. A Sybase Unwired Platform-ja ezt lehetővé teszi. Továbbá a platform segítségével az üzleti folyamatok kiterjeszthetőek a mobil eszközökre függetlenül az eszköz típusától és a tartózkodási helyszíntől. Az SUP biztosítja a mobil eszközökön futó, ugyanezen platformmal tervezett és frissített mobil alkalmazásokat, hogy a vállalati adatokra épülő mobil üzleti folyamatok egy központi szerver segítségével a legfrissebb adatokkal rendelkezzenek. Ez a kliens oldali folyamatos adatkapcsolat nélkül is elérhető, ugyanis a napi munkához használt adatok a készüléken tárolódhatnak, és szinkronizálás útján kerülhetnek vissza a központi szerverbe, majd onnan a vállalat belső rendszereibe. [2]
  • 15. 3 1.2. ábra: Sybase Unwired Platform [2] Az SUP hatékony és jól használható tervező és fejlesztő környezetet biztosító eszközt Sybase WorkSpace-nek hívják, s segítségével a mobil üzleti folyamatokat, valamint a készülékeken futó, az egyes lépéseket végrehajtó, megvalósító alkalmazásokat lehet megtervezni. A WorkSpace Eclipse és Visual Studio alapon is elérhető. Az így elkészített alkalmazásokat, munkafolyamatokat aztán a különböző típusú eszközök (BlackBerry, iPhone) szimulátorain lehet tesztelni (1.3. ábra). [1] 1.3. ábra: SUP alkalmazások [2]
  • 16. 4 1.1 Feladatkiírás részletezése A feladatom legfontosabb alkotói, mérnöki része egy munkaerő-irányítási területen jól használható alkalmazás elkészítése a Sybase Unwired Platformján a WorkSpace nevezetű fejlesztő eszközzel. Az alkalmazásnak támogatnia kell a használóját abban, hogy böngészhessen, kereshessen a már delegált munkarendelések között. Meg kell teremteni a lehetőséget arra is, hogy a felhasználó saját maga új munkarendeléseket kreálhasson, hisz elképzelhető, hogy a meglévő rendelés mellett más hibát is felfedez a helyszínen, vagy egy rutinellenőrzés során vesz észre valamilyen hiányosságot az ellenőrzött eszköznél. Természetesen mindkét esetben lehetővé kell tenni az adott rendeléshez való karbantartási jelentéseket elkészítését. Ez egy nagyon fontos lépés a rendelés állapotának nyomon követése, a költségek számítása, a munkaerő ütemezése és későbbi statisztikák elkészítése miatt. Így ezeket a jelentéseket kötelező jelleggel el kell végeztetni a felhasználóval. Ezen követelmények mellett a mobil eszközökre szánt megoldásomnak támogatnia kell a kérdőívek kitöltését is. Persze mindegyik esetben a megfelelő műveletet a háttérrendszerben (adatbázisban) is végre kell hajtani, aminél a megfelelő gyorsaság, hibamentesség és optimalizáltság a legfontosabb szempontok. Az alkalmazás elkészítése során törekednem kell a jól átlátható menürendszer és képernyők tartalmának kialakítására, hiszen a legnagyobb probléma a mobil készülékkel az, hogy korlátozott, kisméretű kijelzővel rendelkeznek, melyen nagyobb terjedelmű ábrák, szövegek nehézkesen, avagy egyáltalán nem jól olvashatók. A manapság oly fontos ergonomikus kialakítást is figyelembe kell vennem, mivel a felhasználók többsége kevésbé bánik jól egy elektronikus készülékkel, mint ahogy kitöltene egy papíralapú nyomtatványt, ezért a megfelelő gombok, szövegelemek és a navigáció sorrendjét kötelező megfelelően kialakítani. A feladat megoldásához elengedhetetlen az alkalmazásokat, szinkronizációkat és egyéb feladatokat végrehajtó platform mély ismerete, ezért az SUP-nak az architektúráját, a folyamatok működését, a háttérrendszerrel történő szinkronizációk működését és a biztonsági intézkedéseket, megoldásokat megfelelő részletességgel fogom bemutatni a szakdolgozatomban. Fontosnak érzem, hogy kitekintsük az általam készítendő alkalmazáson kívülre, s néhány, már elérhető SAP mobil alkalmazást bemutatassak, kitérjek az üzleti
  • 17. 5 funkcionalitásukra. Ezek segítségével ugyancsak alátámaszthatom a feladatom indokoltságát, hogy igenis a mobil alkalmazások keresettek és sok helyen jól használhatóak, sőt, akár ki is válthatják az eddigi megoldásokat. Emellett a dolgozatom során arra a fontos kérdésre is keresni fogom a választ, hogy a SUP fejlesztő eszközével készült alkalmazások, amik nem kizárólag egy fajta eszközre készülnek, hanem egyszeri tervezés után több fajta készüléken futtathatók, mennyire lesznek használhatók és mennyire elégítik ki az ügyfelek igényeit, mekkora utómunkára van szükség a WorkSpace-ben tervezett, ill. elkészített alkalmazásokon a későbbiekben. A szakdolgozatom felépítésének rövid összefoglalásával segíteni szeretném az olvasókat a könnyebb áttekinthetőségben. A bevezető rész, a feladatkiírás és részletes elemzés után az előzmények, és az ezekből levonható következtetésekről esik szó. Ezt követően a Sybase Unwired Platform ismertetésére kerül sor, majd a feladatom részletes tervezésének leírásával folytatom, ahol ismertetem a döntési lehetőségeket, a választott megoldásokat és az elkészítés menetét. Utána a megtervezett műszaki alkotást értékelem, elemzem és a továbbfejlesztési ismereteket tárgyalom. Legvégül a szakdolgozatom legfontosabb mondanivalóját, pontjait összegzem.
  • 18. 6 2 Előzmények A feladat elkészítése előtt mindenképp szükségesnek éreztem, hogy a témával kapcsolatos irodalmakat elolvassam, és a hasonló alkotásokat kipróbáljam, a megfelelő következtetéseket levonjam belőlük. A Sybase termékeinek és megoldásainak többsége bárki számára elérhető a cég saját honlapján keresztül. Itt fellelhetőek a legfontosabb információk a SUP-val, a WorkSpace-szel, illetve a fejlesztés menetével kapcsolatban. Ezek tanulmányozása nagyban hozzásegített a platform megértésében, a feladat elkészítéséhez szükséges fejlesztő eszköz használatának elsajátításához, s a későbbi hibák felderítése során is hasznos volt egyik-másik dokumentáció. Azonban ezek az irományok nem terjednek ki egy komplexebb feladat megoldásának magyarázatára, így a legtöbb mindent saját magamnak kellett kipróbálnom, kitapasztalnom, bár ezt egyáltalán nem bánom. Ebben a fejezetben többek között a platform fontosnak tartott ismereteit és részletes működését fogom tárgyalni. Mivel a platform független mobil alkalmazások készítésére alkalmas technológia nemcsak az SAP-on belül, hanem Sybase-s berkekben is elég újnak mondható, ezért kevés olyan kész alkalmazás van, ami ezzel az új technológiával készült. Ezért egyre több SAP-s munkatárs kezd bele SUP alapú alkalmazás fejlesztésébe, az adott készülékekre való fejlesztés mellett. Jól mutatja a technológia aktualitását és fontosságát, hogy több oldal is létrejött, ahol a platformot nemrég használók kérdéseket tehetnek fel, amire a régebb óta ezzel foglalkozó fejlesztők, tanácsadók vagy kollégák válaszolják meg a kérdéseket. Ezeket az oldalakat én is gyakran igénybe vettem, így az én problémáimat, kérdéseimet másik is láthatják, s akár tanulhatnak is ezekből. 2.1 Sybase Unwired Platform A Sybase Unwired Platform egy olyan integrált platform megoldás, ami biztosítja a vállalati adatok és információk kiterjesztését az iroda falain kívül dolgozó munkatársak számára, ugyanis vannak olyan felhasználók, akik sosem dolgoznak irodában, mégis szükségük van mobil alkalmazásokra: gondolok itt például egy raktárkezelőre, aki a munkahelyén dolgozik, de tipikusan mobilfelhasználó. Maga a platform végzi el a szükséges feladatokat, hogy a vállalati háttérrendszer és a különböző adatforrások a mobil eszközökkel együttműködhessenek és kapcsolatot teremthessenek
  • 19. 7 egymással. A platformot komplett end-to-end megoldássá az teszi, hogy mobil alkalmazásokat fejleszthetünk, telepíthetünk, biztonsági beállításokat eszközölhetünk, s menedzselhetjük a mobil alkalmazásokat és eszközöket. A platform a következők összetevőkből áll: • Sybase Mobile SDK: A platform fejlesztő eszköze, amivel a megfelelő mobil alkalmazások elkészíthetők. • Sybase Unwired Platform Runtime: A telepítésre és menedzselésre használt architektúra és szolgáltatásai a mobil alkalmazások futtatását, menedzselését és karbantartását teszi lehetővé (lásd 2.1. ábra). 2.1. ábra: Sybase Unwired Platform Runtime [3] Így ez a megoldás az alábbiakra ad lehetőséget: • Kapcsolat: A fejlesztés közben a heterogén adat forrásokhoz és a vállalati háttérrendszerekhez kapcsolódhatunk. • Fejlesztés: A Sybase Mobile SDK tartalmazza azokat a fejlesztéshez szükséges eszközöket, amikkel elkészíthetők és tesztelhetők a szükséges alkalmazások. • Felügyelet: Felügyelhető és karbantartható az SUP Runtime futtatási környezete, azon belül a biztonsági beállítások és a mobil alkalmazások. • Használat: Az alkalmazások funkcionális szempontoktól függően használhatók online és/vagy offline módban is, miután azokat a készülékekre telepítettük. Így
  • 20. 8 a mobil eszközök segítségével elérhetővé válnak a vállalati adatok a vállalaton kívül is. 2.1.1 Vállalati adatok reprezentálása A mobil alkalmazásokból hozzáférhető vállalati adatok kétféleképpen reprezentálhatók. Készíthetünk mobil üzleti objektumokat a Sybase Mobile SDK segítségével, vagy használhatjuk az OData protokollt SAP Gateway-en keresztül. Mivel a megoldásom során csak MBO-kat használtam, így részletesebben csak azok működését ismertetem, de a teljesség kedvéért az OData rövid koncepciójára és működési elvére is kitérek. [3] 2.1.1.1 Mobile Business Objects Az egész architektúrának a leglényegesebb pontja a mobil üzleti objektumok (MBO) működési elve. A natív nyelvű API (native Object API) alkalmazások és munkafolyamatok (workflow) számára a háttérrendszerből használni kívánt adatokat a mobil üzleti objektumok formálják, értelmezik és alakítják ki úgy az üzleti logikát, hogy azok megjeleníthetőek legyenek a mobil alkalmazásokon és a munkafolyamatokon keresztül. Az MBO fejlesztés magába foglalja a háttérrendszer vállalati információs rendszer (EIS) kapcsolatok, attribútumok, operációk és kapcsolatok adatmodelljeinek meghatározását, amik segítségével a megfelelő adatok szinkronizálhatóvá válnak a mobil eszközökkel is. Az MBO-kat a készítendő alkalmazás adat és a tranzakciós követelményeinek figyelembe vételével kell fejleszteni, s azt is el kell dönteni, hogy az alkalmazások hogyan kapcsolódjanak a vállalati információs rendszerben lévő erőforrásokhoz, adatforrásokhoz. [4] Egy mobil üzleti objektum (MBO) egy adatforrásból (adatbázis szerver, web szerver vagy SAP szerver) származik. Majd ezek a származtatott objektumok az Unwired Server-re kerülnek telepítésre, és válnak elérhetővé a megfelelő mobil alkalmazásokat tartalmazó eszközökön. Az objektumok jellemzői: • Az Unwired WorkSpace grafikus eszközeivel hozhatók létre, mely eszközök egyszerűsítik és eltakarják előlünk a háttérrendszerhez szükséges kapcsolódásokat, és egy egységes képet biztosít az objektumokról. • Újrafelhasználhatók, segítségükkel az üzleti logika megőrizhető és több készülék típuson is alkalmazható.
  • 21. 9 • Használthatók maradnak akkor is, ha egy újfajta eszközre kell telepíteni, hiszen egy platform független megoldásról van szó. • Olyan absztrakciót biztosítanak, amellyel az Unwired Server képes kontrollálni a heterogén háttérrendszerek és eszközök közötti együttműködést. A 2.2. ábra ezt jól szemlélteti. 2.2. ábra: Mobile Business Objects [5] Az MBO-k a következőket tartalmazzák: • Implementáció-szintű adatokat: Oszlop metaadatok, amik az adatforrások adatairól szolgáltatnak információt. • Absztrakció-szintű adatok: Attribútumok, vagyis azok a mobil kliensen lévő programozható objektumok attribútumai, amik az adatforrásban lévő megfelelő tábla megfelelő oszlopaihoz vannak rendelve. A paraméterek, vagyis azok a szinkronizációs paraméterek, amik az adatforrás megfelelő paramétereivel vannak összepárosítva. Például egy SQL SELECT utasításnál az eredményhalmaz oszlopai attribútumként, a WHERE klauzulában használt szűkítési értékek szinkronizációs paraméterként foghatók fel az objektum szemszögéből. Így aztán a kezelő az MBO operációk attribútumain és paraméterein keresztül módosíthatja az utasításokat abból a célból, hogy a megfelelő EIS információkhoz hozzájusson. • Kapcsolatok: Az objektumok attribútumai és paraméterei között kapcsolatok definiálhatók.
  • 22. 10 Az objektumok létrehozásakor a fejlesztők használhatják a top-down tervezési mintát – először az attribútumokat és paramétereket hozzák létre, majd ezeket az adatforrásokhoz kötik –, vagy a bottom-up mintát, ahol először az adatforrást határozzák meg, s utána abból automatikusan generálják az attribútumokat és paramétereket. Egy úgynevezett mobil alkalmazáscsomag (application package) MBO-kat, szerepeket, adatforrásokhoz való hozzárendeléseket és egyéb dolgokat tartalmaz. Ezek az Unwired Server-re kerülnek telepítésre, amikor egy (alkalmazás)csomag telepítéséről beszélünk. Amikor az adatmodell készen van, akkor legenerálódnak a szükséges kiegészítő kódok. Az MBO package-t, ami egy vagy több objektumot tartalmaz, az Unwired Server-re telepítjük. A szerverről aztán az alkalmazásokat az eszközre kell telepíteni, hogy az elkészített mobil üzleti objektumok a készülékre kerüljenek. A készüléken történt változások, módosítások így már könnyedén szinkronizálhatók a szerveren lévő MBO-val, majd azt követően a háttérrendszerrel. Fordított irányba a folyamat úgy néz ki, hogy a változás először az Unwired Server-en lévő MBO-ban történik, aztán a mobil alkalmazásnak egy értesítést küld a szerver, hogy a készüléken lévő MBO adatait frissíteni kell, mert azok a háttérrendszerben megváltoztak. [5] Adatmodellezés A WorkSpace fejlesztő eszközből a háttérrendszer erőforrásaihoz kapcsolódási profilok segítségével lehet kapcsolódni. Egy-egy MBO fejlesztése során tipikusan a háttérrendszer adatainak csupán egy részhalmazát használjuk fel a mobil alkalmazásoknál. A fejlesztés során meg kell határozni ezeket a részhalmazokat és az adatokon elvégzendő műveleteket. • Az így meghatározott adatok az MBO csomaggal együtt telepítésre kerülnek az Unwired Server-re, ahol majd az MBO-k segítségével történik a szinkronizáció az EIS és az Unwired Server között. Így a sok adatot tartalmazó csomagok telepítése igen sokáig tarthat. • Az MBO-kból automatikusan generálódnak olyan objektumok, amikkel további finomítások végezhetők el az adathalmazon, hogy annak csak egy bizonyos része kerüljön az eszközre.
  • 23. 11 2.3. ábra: MBO felépítése [3] Az attribútumok (attributes) MBO egyeddel társított adatok felépítését definiálják. Az attribútumokban és a paraméterekben tárolt adatok vagy a szerver cache- ben vagy az eszköz adattárában helyezkednek el. Ezeket a tárolási helyeket a leggyakrabban a háttérrendszerből történő adat kiolvasásakor használjuk, például egy adatbázisbeli SQL SELECT utasításkor. Az attribútumok további metaadatokat is tartalmazhatnak, mint például lehetséges szinkronizációs paraméter értékeit, hogy a csak felhasználónak fontos adatokat szolgáltassuk. Például egy munkatárs, aki Budapest környékén dolgozik, nem kíváncsi az ország más részéhez kapcsolódó adatokra, csak a sajátjaira. Ezért fejlesztés közben be lehet állítani egy MBO-hoz, hogy az épp bejelentkezett felhasználó szerint szűrődjenek a háttérrendszerből kinyert adatok, s csak a számára fontos adatokat jelenítsük meg. Ezt természetesen nem kell minden egyes felhasználóra beállítani, elég egyszer az MBO-ban. Ezzel a fajta optimalizálással az adatforrásokból származó adathalmaz csökkenthető, amely a kérések felgyorsulását és a teljesítmény növekedését jelenti. [3] A mobil üzleti objektumok műveleteket (operations) is tartalmaznak, amikkel az EIS-ből származó adatok nyerhetők ki, törölhetők vagy éppenséggel módosíthatók. • Létrehozási, frissítési, törlési (CRUD) műveletek: Egy művelet definíciója tartalmazza az EIS műveletekben előírt paramétereket. Egy művelettel létrehozhatunk, módosíthatunk és törölhetünk adatokat, rekordokat a vállalati háttérrendszerben.
  • 24. 12 • Más műveletek: Olyan műveletek, amik nem a fent említett műveletek, nem okoznak állapotváltozást. Ezeken kívül a művelet definíciójában előírhatunk validációt és hibakezelést is. A kapcsolatok (relationships) meghatározzák a kapcsolatokat az MBO-k attribútumai és paraméterei között, például hogy az egyik MBO-ban lévő attribútum melyik másik MBO attribútumával áll kapcsolatban. A kapcsolatok biztosítják az egymással kapcsolatban lévő MBO adatok egységes kezelését. Sőt, a valós idejű detekcióval az is kiküszöbölhető, hogy több felesleges lekérdezés történjen az adatbázisban, mivel az összekapcsolt MBO-k adatai egyazon lekérdezésben fognak az EIS-ből rendelkezésünkre állni, így megspórolva több EIS kérést. A kapcsolatok egy- egy, egy-több és több-egy típusúak lehetnek. Attribútumok esetén kétirányú, míg műveletek esetén kompozit kapcsolatokat kell használnunk. További fontos elemei az adatmodellezésnek: • Objektum szintű lekérdezések (Object queries): Az SQL utasításokat MBO-khoz rendeljük, és a kliensre előzőleg letöltött adatokon futnak le. A lekérdezések általában egy-egy szűkített eredményhalmazzal térnek vissza, hisz ritkán használunk SELECT * típusú utasítást. Az objektumokon használt lekérdezések egyedi adatkezelést tesznek lehetővé. • Szinkronizációs paraméterek (Synchronization parameters): Segítségükkel meghatározhatók azok az értékek, amiket arra használunk, hogy csak az alkalmazást használó ügyfélnek fontos adatok kerüljenek a készülékre, a számára fontos adatok ne. A szinkronizációs paramétereket az eltárolt, cachelt adatok szűrésére is lehet használni. • Eredményhalmaz-szűrők (Result-set filters): Az EIS-ből kinyert adatokat megváltoztatni, testre szabni Java API használatával lehetséges. A fejlesztők így változtathatják és manipulálhatják az adatokat és felépítésüket, mielőtt azokat a szerver lecachelné. • Eredményellenőrzők (Result checkers): Az MBO-kon lefuttatott műveletek eredményhalmazaihoz saját ellenőrzési rutinok adhatók meg egy bizonyos Java API implementálásával. Erre azért lehet szükség, mert nem minden MBO-ban van ellenőrzési technika definiálva. • Személyes kulcsok (Personalization keys): Olyan kulcs, amit a felhasználó arra használhat, hogy a számára fontos adatokat tárolja el a mobil eszközön vagy a
  • 25. 13 szerveren. Gyakran használják ezeket a kulcsokat a háttérrendszerhez való csatlakozáshoz nélkülözhetetlen azonosítási adatok tárolására. Két ilyen beépített kulcs a felhasználónév és jelszó. Segítségükkel elvégezhetők a bejelentkezési és authentikációs folyamatok a készülékről az Unwired Server- rel, de egyúttal használható az EIS-hez való kapcsolódásra is. A jelszót sosem menti a szerver. Adattárolás Adattárolásnak hívjuk a cache adatbázis (CDB) vagy az Unwired Server cache feltöltését EIS-ből származó adatokkal, majd ezek a letárolt adatok módosíthatók a háttérrendszerből vagy a mobil eszközről. Az EIS és az eszköz közötti folyamatos szinkronizáció elég nagy terhet jelent az EIS-re nézve, ezért az Unwired Platform többféle megoldást is biztosít az adatok cache-be való betöltésre és frissítésre, így a megfelelő adatok a megfelelő időben a legkisebb terhelés mellett kerülhetnek a mobil eszközökre. A megoldásoknál persze meg kell találni a kompromisszumot az idő és a tárolási méret között. Például a bulk-féle megoldás több időt vesz igénybe, mert az összes felhasználói adat egy nap csak egyszer szinkronizálódik. • Bulk-féle frissítés: Minden felhasználó esetén a frissítés nagyobb adatmennyiségenként történik. • Particionizált adatfrissítés: Csak a felhasználó releváns adatai, vagy azoknak egy része frissül. Ez gyorsabb teljesítményhez fog vezetni, mert nem kell a teljes CDB-t frissíteni. • Igény szerinti frissítés: A felhasználó hatására történnek az adatok frissítése. • Ütemezett frissítés: Az adatok periódikusan, a beállított ütemezést követve kerülnek frissítésre. Az adatok megváltozása a rendszerekben inkonzisztenciához vezethet, ezért ennek elkerülésére hozták létre az úgynevezett adatmegváltozásról szóló értesítést (DCN), ami megkönnyíti a háttérrendszerben történt változások elterjesztését az Unwired Server vagy egy MBO HTTP/HTTPS interfésze felé. Az EIS-ben megváltozott adatokról információkat vagy magát a megváltozott adatokat a DCN értesítés tartalmazza, majd ezt jelzi az Unwired Server-nek, aki frissíti a saját CDB-jét. A változásokról a szerver bizonyos időnként (ezt az angol irodalmak change detection interval time-nak nevezik)
  • 26. 14 értesíti az MBO-kat, akik eszerint frissítik a saját cache-ükben lévő adataikat. A DCN szinkronizációs megoldás akkor igazán hasznos, ha a cache frissítése nagy adatmennyiség esetén költséges, hiszen ilyenkor csak a megváltozott adatokat kell frissíteni, nem a teljes cache-t. [3] Tárgykód generálása Ahhoz, hogy az MBO-kat használhassuk mobil alkalmazásokban, először az adott eszköz által értelmezhető tárgykódot kell generálni. Utána használhatjuk még az eszköz IDE-jét is, amivel a megfelelő nyelven fejleszthetjük tovább az alkalmazást. A tárgykód generálása azért fontos, mert a készülékek számára csak így lesznek értelmezhetők az MBO-k, s egyéb más elkészített funkciók. Minden MBO automatikusan legenerált tárgykódja ugyanazt a szabványt követi az attribútumokra, műveletekre és absztrakcióra nézve. Támogatva van bármely platformra való kódgenerálás. Ahhoz, hogy a mobil alkalmazás megfelelően fusson a készülékeken az Unwired Server kliens oldali könyvtárai is szükségesek a már legenerált tárgykód mellett. Ezek a könyvtárak többek között támogatják az adatok biztonságát, a megbízható adatátvitelt és a megváltozott adatok esetén küldendő jelzéseket. Jelenleg a BlackBerry (Java), az iOS (Objective-C), a Windows Mobile (C#) és a Windows (C#) platformokra lehet problémamentesen kódot generáltatni. Telepítés Az utolsó lépése a mobil üzleti objektumok fejlesztésének az MBO-k Unwired Server-re való telepítése. A telepítés során az alábbi elemek kerülnek telepítésre: • Az MBO tartalma, vagyis az attribútumok, műveletek, kapcsolatok, szerepek, ütemezett csoportok és cache csoportok. • MBO-hoz rendelt saját magunk készített eredményhalmaz-szűrők és eredményellenőrzők. • A háttérrendszer és az alkalmazás közötti együttműködést támogató, szükség szerint generált szerver oldali programok. • Az MBO modellben lévő egyéb alkotóelemek. A telepítést megkönnyíti a WorkSpace fejlesztő eszköz varázsló szerű telepítője, ahol az adott platformra való generálási követelmények bevihetők. Emellett az
  • 27. 15 adminisztrátornak megvan a lehetősége arra is, hogy web-es felületről telepítse fel az üzleti objektumokat az Unwired Server-re. 2.1.1.2 OData Az Open Data Protocol egy olyan web-es protokoll, mellyel közzé lehet tenni, ill. programozott formában lehet elérni a relációs adatbázisok, fájl rendszerek és webhelyek által tárolt információkat. A protokoll mindenki számára ingyenesen elérhető és használható az OPS szabályzat elfogadásával. [6] Az SAP NetWeaver Gateway támogatja az OData protokollt SAP-specifikus kiegészítésekkel. A szolgáltatási dokumentumok – amik leírják a szolgáltatás interakcióit és adatait – teszik lehetővé, hogy a felhasználók együttműködhessenek a Gateway-jel, majd utána kommunikálhassanak az SAP alkalmazásokkal. Bármilyen modell létrehozása nélkül (MBO sem kell) használhatunk OData forrásokat – felfoghatók úgy, mint háttérrendszerben lévő alkalmazások –, mivel ilyenkor a modell örökölhető az SAP Gateway által biztosított szolgáltatási dokumentumokból. Ezek a szolgáltatási dokumentumok minden olyan információt tartalmaznak, amik ahhoz kellhetnek, hogy az adatfolyamokat értelmezni és használni tudjuk. A Sybase Unwired Platform is támogatja az OData protokoll használatát az OData szolgáltatási dokumentumok keresésével, és minden további nélkül elérhetik ezeket a vállalati szolgáltatásokat a mobil eszközök is. Az OData protokollt a feladatom során nem használtam, ezért ezen rövid ismertetőt kivéve nem tárgyalom a protokollt. A fent említett információkat csupán érdekességnek, és az SUP alkalmazhatóságának egy újabb bemutatásaként szántam. 2.1.2 Sybase Mobile SDK A Sybase Mobile SDK-val natív nyelvű API-kat használó, hibrid HTML5/JS és OData SDK alkalmazásokat lehet fejleszteni. A fejlesztési folyamat végeredményeként jön létre az a mobil alkalmazáscsomag, amit az eszközökre telepíthetünk. A következő angol nyelvű 2.4. ábra az összes Sybase Mobile SDK-ból fejleszthető alkalmazás felépítését és a fontosabb szolgáltatásait mutatja be.
  • 28. 16 2.4. ábra: Sybase Mobile SDK [3] Az ábrán lévő szaggatott vonalakban foglalt szolgáltatásokat biztosítja a Sybase Mobile SDK-ja. A natív nyelvű kódok elkészítésére a Mobile SDK-n kívül is van lehetőségünk. Ekkora a biztosított alkalmazásprogramozási felületen (API) keresztül lehet elérni a rendszer főbb és alkalmazásspecifikus szolgáltatásait anélkül, hogy ismernénk azok belső működését. [3] • Üzleti logika és felhasználói felület (Business Logic és Device User Interface): Létrehozásukhoz használhatjuk az integrált fejlesztői környezetet a megfelelő platformon és a megfelelő API-kat. HTML5/JS alkalmazások elkészítéséhez a WorkSpace részét képező Mobile Workflow Forms Editor-t lehet használni. • Alkalmazásspecifikus szolgáltatások (Application Specialization): Különböző üzleti igények esetén különböző fajta alkalmazások készítendők, amiket egyedi szolgáltatások használatával lehet elérni. Fejlesztőeszköz Üzleti igény Native Object API SDK Offline alkalmazások esetén, amikor azok az átlagnál komplexebbek. A felhasználók offline dolgoznak az adatokkal, a szinkronizáció a szerverrel online módra váltáskor történik. HTML5/JS Hybrid SDK Push technológiás online alkalmazások esetén. Egyszerű kéréseknél és munkafolyamatoknál használatosak. OData SDK Olyan push technológiás online alkalmazások esetén, amik OData protokollt használnak. A szinkronizációs folyamat lejátszódásának eredményeként a változásról szóló információt minden résztvevő megkapja, hogy a megváltozott adatok minden eszköz és a szerver is letárolhassa. Push technika esetén a megváltozott adatokat a megváltozás helyszíne küldi el a többi eszköznek. Ez a változás lehet akár szerveren, akár eszközön is. A technikának a lényege az, hogy, így az eszköznek
  • 29. 17 ne kelljen folyamatosan azt figyelniük, hogy történt-e valahol változás, mert az túl sok adatmozgást és erőforrást igényelne. • Főbb alkalmazásszolgáltatások (Core Application Services): A szolgáltatások halmaza egy egységes és konzisztens alapot nyújt a készítendő mobil alkalmazásoknak. A cél az, hogy a hasonló szolgáltatások segítségével a fejlesztés gördülékenyebbé és biztonságosabbá váljon. Az SDK több biztonsági megoldást is tartalmaz, mint például a tanúsítványok biztonságos tárolását, bejelentkezés használatát és ezekhez kapcsolódó adatbázis titkosítást. 2.1.2.1 Native Object API alkalmazások A natív nyelvű API alkalmazások teljes értékű mobil alkalmazások, amik mobil üzleti objektumokat használnak a különböző vállalati rendszerekhez való kapcsolódás megkönnyítésére, és az offline történő működés miatt megfelelő szinkronizációt biztosítanak. Ilyen alkalmazások esetén lehetőség van saját kód írására is. A programozási nyelv lehet C#, Java vagy Objektiv-C attól függően, hogy milyen eszközre készítünk alkalmazást. A fejlesztés két lényeges részből tevődik össze: a szerver oldali MBO-k és a kliens oldali natív nyelvű alkalmazások elkészítéséből. Az Unwired Server a két oldal közötti adatszinkronizálást és a tranzakciók futtatását végzi. • A szerver oldali komponensek jórészt az EIS adatforrások és a CDB-k közti együttműködést tartják fent. A mobil üzleti objektumokban találhatók a háttérrendszerekben tárolt adatok egy része és az üzleti logika. Ezeket úgynevezett alkalmazáscsomagokat telepítjük aztán az Unwired Server-re. • A kliens oldali komponensek a mobil alkalmazások részei. Ők biztosítják a működést a cache és a mobil eszközök adattárja között. Ez a szinkronizációk gyakoriságát, a DCN üzemeltetést és az offline létrehozott tranzakciók tárolását jelenti. Ezek az alkalmazások alkalmasak: • Különböző vállalati háttérrendszer és SAP rendszer adataihoz kapcsolódni. • Komplex adatkezelést és logikát végrehajtani. • Optimalizálni az adatszinkronizációt a válaszidő és az azonnali adathozzáférés figyelembevételével. • Biztonságos és megbízható adatcserére.
  • 30. 18 2.1.2.2 HTML5/JS Hybrid alkalmazások A hibrid HTML5/JS alkalmazások egyszerű üzleti funkciókat, folyamatokat biztosítani. Ilyen egyszerűbb funkció például valamilyen rendelésnek a jóváhagyása vagy valamilyen szolgáltatás igénylése. Természetesen ezek az alkalmazások is MBO- kat használnak az EIS-hez való könnyebb kapcsolódás miatt. Ennél a megoldásnál a készülékekre egy tároló, az úgynevezett Hybrid Web Container kerül telepítésre, a munkafolyamatok pedig a tároló segítségével futnak az eszközön. A hibrid alkalmazások jellemzői: • Kis mennyiségű adatot kezelnek. • Egyszerű felhasználói felületet biztosítanak. • Egyszerű alkalmazáslogikát használnak. • A sokáig tartó offline tranzakciók helyett online módon működnek. • Biztonságos és megbízható adatcserére képesek. A mobil eszközökön lévő HWC egy webböngésző plugin-t és a főbb alkalmazásszolgáltatásokat tartalmazza. Ilyen szolgáltatás például a garantált üzenetkezelés, cachelés, vagy a kapcsolódási és biztonsági szolgáltatás. A tároló és a szerver közötti adatcsere online tranzakcióknak köszönhetően megy végbe. A mobil workflow csomagok platform független HTML, JavaScript és CSS forrásokat tartalmaznak, és ezeket használja a tároló az alkalmazás futtatásakor. A tárolót, mint már említettem, a készülékre telepítjük, ami egy futtatási környezetet biztosít a mobil alkalmazásoknak. A tároló három fajta kommunikációt biztosít: • Értesítés (Notification): Az EIS-ben lefutott valamilyen üzleti folyamat eredményéről, megtörténéséről a szerver értesíti a felhasználókat. • Keresés (Lookup): Felhasználó által indított kérés valamilyen EIS-ben lévő információ kinyerése érdekében. • Akció/Döntési űrlap (Action/Detection Forms): A felhasználó űrlapkitöltéskor valamilyen döntést (pl. jóváhagyás) hoz meg, aminek az eredményét az EIS-ben is le kell tárolni. Összegezve, a tároló ad helyet a beágyazott böngészőnek és futtatja a telepített mobil alkalmazásokat. Az alkalmazásokat felhasználókhoz az adminisztrátorok rendelik. Amint a felhasználóhoz rendelték az alkalmazásokat, úgy azokat a felhasználó minden további nélkül indíthatja a készülékről, de a háttérrendszerben történt valamilyen
  • 31. 19 változás esetén az Unwired Server is kezdeményezheti az alkalmazás elindítását. Ilyenkor a felhasználó üzenet formájában kap értesítést, hogy valamilyen változás történt és ez valószínűsíthetően őt is érinti. Az üzenetre kattintva megnyílik a mobil alkalmazás. [3] 2.1.2.3 OData SDK alkalmazások Az OData SDK alkalmazások egyszerű, legtöbbször online módon működő mobil alkalmazások, amik kihasználják az OData protokoll és RESTful Web Services által nyújtott lehetőségeket. [7] Ezek az alkalmazások az SAP EIS rendszereihez proxy kapcsolaton keresztül kapcsolódnak, csakúgy, mint az SAP Business Suite esetében. Szintén kihasználják az Online Data Proxy runtime által nyújtott lehetőséget, hogy a felhasználók valós időben férhessenek hozzá SAP adatokhoz. A proxy kapcsolat a RESTful OData protokollt használja, hogy az Unwired Server-en és az SAP Gateway-en keresztül az SAP vállalati információs rendszeréhez kapcsolódjon. Az így elkészített OData SDK alkalmazások alkalmasak: • Online módon és az eddigieknél közvetlenebbül kapcsolódni az SAP rendszerekhez. Az adatok ilyenkor sajnos nem perzisztensek, de cachelhetők. • SAP adatokat és üzleti folyamatmodelleket használni. • Egyszeri SAP bejelentkezést (SSO) megvalósítani. • Alkalmasak biztonságos és megbízható adatcserére. 2.1.3 Sybase Unwired Platform Runtime Az Unwired Platform futtatási környezet biztosítja a szükséges infrastruktúrát a mobil alkalmazások telepítésére és felügyeletére. Egy vállalaton belül a vezetés igénye szerint két féle, szinte azonos infrastruktúrát biztosíthatunk. Egyrészt installálhatjuk az Unwired Platform Runtime-ot. Ugyancsak telepíthetjük az Online Data Proxy-t, amit betudhatunk az Unwired Platform Runtime egy egyszerűsített, más igényekre kialakított kiadásának. Az architektúra felépítése: • Szerver réteg (Server tier): A réteg feladata a szerver komponensek integrálása a háttérrendszerekkel, különféle szolgáltatásokkal, az alkalmazások telepítésével és a rendszert menedzselő folyamatokkal. Az Unwired Server és az Afaria
  • 32. 20 szerver ebben a rétegben foglal helyet. A két szerver lehet ugyanazon, de különböző host-on is. • Adatbázis réteg (Data tier): A réteg feladata a háttérrendszerből származó adatok tárolására és más, futtatási környezetben létrejövő adatok tárolása. Külön adatbázis tárolja a mobil alkalmazások szinkronizációit és cacheléseit. • DMZ: A demilitarizált zónában (DMZ) helyezkedik el az átjátszó szerver (Relay Server), ami igazából egy bővítmény az Apache Web szerverhez és a Microsoft IIS-hez. Az eszközök csakis az átjátszó szerveren keresztül léphetnek kapcsolatba a belső rendszerrel. • Kliens réteg (Client tier): A réteg a mobil alkalmazásokat tartalmazó eszközöket foglalja magában. 2.5. ábra: Sybase Unwired Platform architektúrája [3] 2.1.3.1 Rendszertérkép A futtató környezet rendszertérképe (landscape) több alkotóelemet tartalmaz, amivel biztosítható, hogy a platform képes legyen a mobilitás felé támasztott követelményeket kielégíteni. Ezek az alkotóelemek: Unwired Server, adatbázis réteg, Relay Server és az Afaria Server. A következőkben ezeket részletezem. Unwired Server A futtatási környezetért felelős szerverként az Unwired Server-nek a feladata a vállalati adatforrásokhoz és alkalmazásaikhoz való hozzáférés, a háttérrendszerek és az eszközök közötti kommunikáció kezelése, és a biztonság, a tranzakció feldolgozás és az ütemezés biztosítása.
  • 33. 21 A létrehozott mobil alkalmazások és munkafolyamatok telepítése a szerverre történik, ahonnan később a készülékekre telepíthetők, de az Afaria Frontline Management termékével is delegálhatók az alkalmazások a készülékekre. API-k használatával az Unwired Server testre szabható, hogy a szerver használható legyen komplexebb adatkezelésre, kivételkezelésre, és egyéb biztonsági követelményeknek is megfeleljen. Data Tier Az adatbázis réteg tartalmazza azokat az adatbázisokat, amelyeket az Unwired Server, a menedzsment konzol és egyéb rendszerbeli szerverek használnak. Jó esetben a rendszeradminisztrátornak kevés teendője van az adatbázis réteggel. A rétegbe a következő fajta adatbázisok tartoznak: • Cache adatbázis (CDB): Csak az Unwired Platform Runtime opció telepítésekor találkozunk ezzel az adatbázissal. Csak szinkronizációt használó alkalmazások esetén van szerepe, amikor is a szinkronizáció közben jelentkező cachelendő adatokat tárolja el. Erre a háttérrendszerből való adatkinyeréskor és az eszközökről küldött adatok esetén kerülhet sor. • Cluster adatbázis (Cluster Database): Az Unwired Server clusterei között szükséges ismereteket tárolja. • Monitorozó és domain log adatbázis (Monitoring and Domain Log Database): Ez az adatbázis tárolja az alkalmazások működésének monitorozása, nyomon követése közben keletkezett üzeneteket és egyéb log üzeneteket. • Üzenetkezelő adatbázis (Messaging Database): Az üzenetkezelést és értesítést használó, hibrid és OData SDK alkalmazások esetén tárolja az aszinkron üzeneteket addig, amíg azok feldolgozásra nem kerülnek. Relay Server Az átjátszó szerver egy biztonságos, megbízható kommunikációt tesz lehetővé a mobil eszközök és az Unwired Server között. A vállalat belső tűzfalának egyetlen portjának megnyitása nélkül, fordított proxy szerverként üzemelve biztosítja a vállalat mobilitását, s biztosítja az áthaladó adatok érintetlenségét. A szerver a vállalat demilitarizált zónájában foglal helyet, ezzel lehetővé téve a vállalati rendszeren kívüli eszközök biztonságos integrálását a belső hálózatba. Az átjátszó szerver jellemzői:
  • 34. 22 • Egy olyan kapcsolódási pontot biztosít a mobil eszközök számára, amin keresztül azok anélkül kommunikálhatnak az Unwired Server-rel, hogy bármilyen portot kellene megnyitni a vállalat tűzfalán. • A mobil kliensek kéréseit fogadja és továbbítja az Unwired Server felé. • A szerver web-es bővítményként fut a web szerveren. A Relay Server két web szervert támogat: az IIS-t (Windows) és az Apache-t (Linux). • A meglévő biztonsági beállítások, szabályok, tűzfalak változtatása nélkül használható. Az Unwired Platform szinkronizációi HTTPS protokollt és az átjátszó szerver titkosítását használják ahhoz, hogy biztonságos módon működjenek a mobil eszközök. Afaria Server Az Afaria Server-en keresztül a vállalat menedzselheti a mobileszközeit. Az Afaria egy olyan vállalati szintű megoldás, ami a központi web-alapú adminisztrációs konzol felületén keresztül biztosítja az IT számára a mobilmenedzsmenttel kapcsolatos teendők ellátását. Szorosan integrálható a már meglévő Unwired Server-rel, így a felügyelet könnyedén kiterjeszthető bármely mobileszközre, beleértve a laptopokat, számítógépeket, táblagépeket és kézi terminálokat is. Az Unwired Platform az Afaria-nak köszönhetően új funkciókkal bővíthető (lásd 2.6. ábra). Ilyen funkciók például, hogy az alkalmazások és adatok távolról kihelyezhetők, frissíthetők, a leltárok lekérdezhetők és figyelhetők vagy, hogy a vállalat biztonsági beállításai módosíthatók, az eszközökön tárolt fájlok titkosíthatók, törölhetők. Mindez ráadásul sávszélesség-takarékos formában történik meg. [3]
  • 35. 23 2.6. ábra: Afaria áltál nyújtott szolgáltatások [8] 2.1.3.2 Biztonság A vállalat mobilitása miatt nyilvánvaló, hogy megnő a rendszer irányába történő támadásoknak és behatolásoknak az esélye, ezért az Unwired Platform többrétegű biztonsági megoldással csökkenti ezt a kockázatot. A platform biztonsági intézkedéseinek az egyik célja, hogy a külső vagy belső felhasználók biztonságosan kapcsolódhassanak a vállalat rendszereihez, a másik célja pedig hogy minden eszköz bizalmasan tárolja a vállalati információkat, és csak megfelelő ellenőrzések után lehessen azokhoz hozzáférni. A most következő részben ezeket a megoldásokat röviden ismertetem. [8] Ehhez a platform a következő támogatásokat nyújtja: • Komponens biztonság (Component Security): Az Unwired Platform komponensei a vállalat belső hálózatában vagy a DMZ-ben vannak. • Kommunikációs biztonság (Communication Security): A TLS és az SSL kriptográfiai titkosítási eljárásoknak köszönhetően a kliens-szerver kommunikáció mindvégig biztonságos körülmények között történhet. • Authentikációs és hozzáférési biztonság (Authentication and Access Security): Minden alkalmazás esetében támogatott az authentikáció és a hozzáférés-
  • 36. 24 ellenőrzés használata, hogy a vállalati adatokhoz csak a megfelelő jogosultsággal rendelkezők férhessenek hozzá. A platformban használt biztonsági megoldások: • Szerver biztonság (Server Security): A kliens kérésekor először az adatokat a szerverek az átjásztó szervernek továbbítják a belső tűzfal egy nyitott portján át, majd utána az átjátszó szerver küldi a kért adatot a felhasználónak. A nyitott port miatt a szerverek védelemre szorulnak. Ez a védelem elérhető a szerverek belső hálózatba történő telepítésével, és a kommunikációnkénti saját port használatával. • Adatbázis réteg biztonság (Data Tier Security): Mivel az adatbázis rétegben található adatbázisok nagyon fontos és bizalmas adatokat tárolnak, ezért védelmük kiemelten fontosak. Az adatbázisok a megfelelő védelmet nyújtó infrastruktúra mellett adminisztrátori jelszóval (Database Administrator – DBA), DBA jogokkal, az adatok és a logok titkosításával védelmezhetőek. • DMZ biztonság (DMZ Security): A DMZ célja, hogy egy olyan biztonsági réteg jöjjön létre, ami a vállalat helyi hálózatát (LAN) védi meg úgy, hogy a külső támadó csak a DMZ-ben található Relay Server-hez férjen hozzá. • Eszköz biztonság (Device Security): Az eszközök elégséges védelme több mechanizmussal is elérhető. Első körben maga a készülék által nyújtott védelmi funkciók használandók, aztán az Unwired Platform is biztosít védekezési módokat. Ezen túlmenően az Afaria használata jelentheti a teljes biztonságot a készülékek számára. Részletesebben lejjebb. • EIS biztonság (EIS Security): DCN használatakor az értesítések biztonságosan közlekednek az Unwired Server-hez. Eszköz biztonság Az Unwired Platform két fő megoldása a készülékek biztonságban tudásához az adatok titkosítása és a bejelentkezési képernyők használata. Az alkalmazás által használt adatok beállítástól függően több vagy kevesebb ideig tárolódnak a készüléken. Az adatokat akkor lehet célszerű tárolni, ha a kapcsolat az SUP szerverrel nem tartható fent folyamatosan, és az eszköz nem folyamatosan online. Ilyenkor a futtatott kérések eredményeit meghatározott ideig tárolni lehet a készüléken. Ennek a megadására a WorkSpace fejlesztő eszközben van lehetőség az
  • 37. 25 adott műveletnél. Ehhez először meg kell határozni az online kérésnél, hogy melyik MBO-n és milyen műveletet szeretnénk végrehajtani. Ezután lehet kitölteni az On- device cache timeout mezőt, ami azt mondja meg, hogy mennyi ideig tárolja a készülék a lekérdezés eredményét. A beállítás a 2.7. ábrához hasonlóan történhet. 2.7. ábra: On-device cache timout beállítása A letárolt vállalati adatokat ilyenkor megfelelő védelemmel kell ellátni ahhoz, hogy azok ne kerüljenek rossz kezekbe. A készüléken tárolt adatok védelmére titkosítást kell használni (lásd 2.8. ábra). Az alkalmazás létrehozásakor az objektum csomagokhoz a DB.generateEncryptionKey() metódust használhatjuk, amely segítségével egy AES- 128 bit-es titkosított kulcsot hozunk létre az alkalmazás által használt adatbázishoz. Az így létrehozott titkosított kulcs az úgynevezett Data Vault modellezésnek köszönhetően van biztonságban. A DataVault API-t használva szintén titkosítani lehet a készüléken lévő adatokat. A Data Vault szimmetrikus AES-128 kódolást használ az adatok titkosítására. Az alkalmazások esetében lehetőség van az MBO csomagot biztonsági sablonokhoz rendelni. A sablonok során megadható, hogy az adott csomag esetén végezzen-e a rendszer authentikációt, authorizációt vagy auditációt. Például egy bizonyos package esetén az adminisztrátor kötelezővé teszi az authentikációt az LDAP szerverhez, de nem írja elő az authorizációt és bármilyen szolgáltató felé való auditációt. Az SSO-t biztosító szolgáltatók pedig a felhasználóneves és jelszavas megoldás mellett támogatják a tokenes és a tanúsítványalapú (például X.509 tanúsítvány) authentikációt is a megfelelő biztonság elérése érdekében. A sikeres bejelentkezéskor az alkalmazáshoz kapcsolódó titkosított adatokat a megfelelő
  • 38. 26 metódusok oldják fel, így az adatokhoz hozzá lehet férni. Ha azonban a bejelentkezés sikertelen volt, úgy az adatok továbbra is titkosítva maradnak, és se az alkalmazásból se azon kívülről nem lehet a még mindig titkosított adatokhoz hozzáférni. 2.8. ábra: Készüléken tárolt adatok biztonsága [8] A már említett Afaria megoldást az Unwired Platform teljes mértékben támogatja. Az Afaria az eszközök távoli menedzselését teszi lehetővé, amellyel a biztonság növelhető. Az Afaria lehetővé teszi, hogy az eszközt távolról zároljuk, adatot töröljünk róla. Az úgynevezett data fading megoldással a vállalat IT szervezete távolról lezárhatja, letörölheti vagy újratelepítheti a készüléket, ha az egy meghatározott számú nap után nem kapcsolódott a vállalat hálózatához vagy az Afaria szerverhez. 2.1.4 Sybase Control Center A Sybase Control Center egy olyan egyszerű, integrált web alapú adminisztrációs felület, melyen keresztül a legtöbb Sybase-s terméket és azok komponenseit konfigurálni és menedzselni lehet. Ez a felület többek között lehetővé teszi az adminisztrátornak, hogy a szerver státuszát nyomonkövesse; műveleteket jóváhagyjon, indítson vagy megállítson; a szervereket bekonfigurálja; alkalmazáscsomagokat telepítsen, és azok beállításait (szinkronizációs vagy cache beállítások) megadja; push értesítéseket állítson be. Az Unwired Platform részeként telepítésre kerülő Sybase Control Center-nek három felhasználási területe van: • Egyedi fejlesztési környezetben használva a fejlesztő saját igényeinek megfelelően állíthatja be és szabhatja testre a rendszert a felületen keresztül.
  • 39. 27 Ilyenkor a fejlesztő az adminisztrátor, aki alkalmazásokat telepíthet, konfigurálhat és eszközöket regisztrálhat. A szakdolgozat feladatának fejlesztése során én is ezt a felhasználási módját használtam a Sybase Control Center-nek, ugyanis saját fejlesztési környezetet hoztam létre azzal, hogy a saját gépemre telepítettem a platformot, de erről részletesebben a következő, harmadik fejezetben írok. • Nem egyedi fejlesztési környezetben, ahol több fejlesztő dolgozik ugyanazt az Unwired Server-t használva. Az adminisztrátor ilyenkor az SCC-t használja, hogy a csomagokat, eszközöket felügyelje, menedzselje, vagy a szerverek log fájljait folyamatosan ellenőrizze. • Az már kiszállított rendszerek esetén az adminisztrátor a felületet rendszeresen használja, hogy a saját jogosultsági körébe tartozó Unwired Server műveleteket elvégezze, és az alkalmazások adott eszközökhöz, felhasználókhoz rendelje. Ezek mellett rutin jelleggel figyelemmel kell kísérnie a rendszer teljesítményét és állapotát (2.9. ábra). 2.9. ábra: Sybase Control Center [9]
  • 40. 28 2.1.4.1 Adminisztrálás és monitorozás Az Unwired Platform web-es felületen keresztül teszi lehetővé Unwired Server karbantartását, a mobil alkalmazások telepítését, és a vállalati mobil eszközök felügyeletét és adminisztrálását. A konzollal a következő főbb feladatok végezhetőek el: • Szerverkonfiguráció: A szerverparaméterek konfigurálását lehetővé teszi. Itt olyan paraméterekre kell gondolni, mint a hálózati port, az üzenetkezelés, az SSL biztonság vagy a loggolás szintje. • Eszközregisztráció és biztonság: A regisztrált készülékek felügyelete. A készülékek regisztrációja, aktivációja után a megfelelő mobil alkalmazások delegálása az eszközökre. • Biztonsági beállítások: A szervereken futtatható műveletek jogosultságainak beállítása, konfigurálása. • Monitorozás: Az alkalmazások által használt historikus adatok és más statisztikák megtekinthetők, melyekből később elemzések és statisztikák készíthetők. • Logok ellenőrzése: A konzolon keresztül megtekinthetők a korábbi log adatok. • Problémamegoldás: A Sybase Unwired Platform komponenseiről gyűjtött információk alapján könnyebben határozhatók meg és oldhatók meg a problémák. • Alkalmazástelepítés: Az Unwired Server-re telepített alkalmazások felügyelhetők, karbantarthatók. Sőt, a monitorozás nyújtotta lehetőségek még jobban is kihasználhatók, ha integráljuk a rendszerbe az SNMP eszközeit, amivel szervereseményeket monitorozhatunk a konzolból. [9] 2.2 SAP néhány elérhető mobil alkalmazása Úgyszintén fontosnak tartottam az SAP pár mobil megoldásának megismerését, hogy megfigyelhessem, és következtetéseket vonjak le a jelenlegi trendekből, igényekből. Ezek a megoldások szintén segítenek tisztán látni az ügyfelek és az üzlet igényeit, amely segítségével jobbá tehetem a most illetve a jövőben elkészített alkalmazásaimat. Mivel több, mint 25 mobil alkalmazása lesz elérhető az SAP-nak az év végéig, ezért ezekből csupán három alkalmazásról fogok bővebb ismertetőt adni. Itt
  • 41. 29 szeretnék majd a fent felsorolt ismereteken túl a működésükről és üzleti funkcionalitásukról is pár szót ejteni. [10] 2.2.1 SAP EAM Work Order Az SAP EAM Work Order mobil alkalmazás a helyszínen dolgozó szakembereknek készült azzal a céllal, hogy a munkájuk elvégzése közben mindig elérhetőek legyenek azok az információk, amelyek számukra fontosak és elengedhetetlenek ahhoz, hogy az ügyfeleknél felmerült hibákat, problémákat gyorsan és szakszerűen orvosolják. A szakemberek saját mobil eszközein futtatható az alkalmazás, legyen az az eszköz egy mobil készülék, táblagép, hordozható számítógép vagy akár egy kézi terminál. A vállalat alkalmazotta képes megtekinteni az általa elvégzendő munkarendeléseket és a hozzá kapcsolódó értesítéseket. Könnyen előfordulhat, hogy a szakember nem tervezett hibával, problémával szembesül a helyszínen, ezért az alkalmazás támogatja a munkarendelések és értesítések felvételét. A könnyebb kapcsolatfelvétel céljából, a munkarendelések mellett, egyszerűen megtekinthetők a rendelésekhez tartozó ügyfelek adatai. A munka elvégzését követően a rendeléshez jelentés készíthető, ami tartalmazza a munka időigényét, az ahhoz felhasznált eszközöket/anyagokat, okokat és magyarázatokat. Ennek köszönhetően nyomon követhetőek a költségek és persze az emberek is. Az alkalmazást teljes mértékben integrálták az SAP EAM megoldásával, az SAP ERP PM moduljával és a Multiresource Scheduling megoldásával. Így folyamatosan a valós információkat tartalmazza mind a vállalat ERP rendszer, mind a felhasználó mobil eszköze, bármely oldalon is történjen az adatváltozás. Az alkalmazás az általam is használt, Sybase Unwired Platform-on készült, ezért a megváltozott adatok szinkronizációja automatikusan megy végbe a platform támogatásával. A legtöbb esetben az Unwired Server a back-end-del való kapcsolat megteremtéséhez távoli eljáráshívásokat (RFC) vagy BAPI-kat használ. A SAP EAM Work Order a háttérrendszerhez való kapcsolódáshoz HTTP(S)/SOAP webszolgáltatásokat használ, a vállalati információs rendszerben pedig RFC hívásokkal kommunikál. A mobil klienseknek az adatokat az Unwired Platform titkosított módon, push technológiát használva küldi. Az architektúrát jól szemlélteti az alábbi 2.10-es ábra.
  • 42. 30 2.10. ábra: SAP EAM Work Order együttműködése a háttérrendszerekkel [10] Az SAP EAM Work Order az általa biztosított funkcióknak köszönhetően felgyorsítja a munkák elvégzését, hisz minden információ pár kattintással bármikor és bárhol elérhető, legyen szó korábbi jelentésekről, eredményekről vagy értesítésekről. A helyszínre kiküldött szakemberek azonnali dokumentációt készíthetnek anélkül, hogy papíron kelljen ezt megtenni, így elkerülhetők az elvesztés során keletkező károk és archiválási nehézségek. Ráadásul az adatok nyomon követhetők és azonnal elérhetőek lesznek az operátorok és menedzserek által. Optimalizálhatóvá válnak a munkák elvégzésének sorrendjei, mivel az irodában dolgozó munkatársak valós időben észlelhetik, amit értesítések segítségével azonnal közölhetnek is a helyszínen dolgozó munkatárssal. 2.11. ábra: SAP EAM Work Order működés közben
  • 43. 31 2.2.2 SAP Field Service Az SAP Field Service alkalmazás (lásd 2.12. ábra) részben hasonlít a fent említett SAP EAM Work Order-re mégpedig, hogy itt is a helyszínen dolgozó munkatársak, mérnökök feladatának megsegítése a cél, de ebben az esetben a vállalat CRM rendszer Service moduljában lévő ügyfelektől származó információkkal. Így a mérnököknek számára minden információ rendelkezésre áll, hogy egy olyan gyors és precíz szolgáltatást biztosítsanak, amivel az ügyfelek teljes mértékben meg lesznek elégedve. Az SAP Field Service-t használva a mérnökök az újonnan generált feladatokról jelzéseket kapnak a központból, amiket a készülékükön keresztül elfogadhatnak vagy visszautasíthatnak. A helyszínen a munkás a munka elvégzése után a rendelésben rögzített adatokat és műveleteket felüldefiniálhatja, változtathatja a szolgáltatás típusát, hogy az a valóságot tükrözze, és megfelelő költségek kerüljenek utólag meghatározásra. A szakemberek optimalizálhatják a látogatásaik sorrendjét, mivel a helyszínek a beépített Google Maps térképen láthatók. Folyamatosan, valós időben nyomon követhetik az elvégzendő feladatok állapotát. Offline esetben is tökéletesen használható a mobil alkalmazás. Ilyenkor az online állapot elérésekor szinkronizálódnak az adatok a vállalati háttérrendszerrel. Az alkalmazás architektúrája ugyanazon elven alapul, ahogyan az előző, SAP EAM Work Order alkalmazásnál is volt. Az egyetlen kivétel, hogy jelen esetben az alkalmazás a vállalat CRM rendszeréhez csatlakozik, hogy az onnan származó ügyfélspecifikus adatokat tegye elérhetővé a világ bármely pontján tartózkodó szakembernek. 2.12. ábra: SAP Field Service használat közben
  • 44. 32 2.2.3 SAP Retail Execution Az SAP Retail Execution alkalmazás (lásd 2.13. ábra) az értékesítőket hivatott támogatni az SAP CRM rendszerből származó azon információkkal, melyet az ügyfélnél tett látogatásaik alkalmával felhasználhatnak, ezzel hatékonyabbá és sikeresebbé téve az értékesítést. A CRM-ből táplálkozó alkalmazásban az adott ügyfélnél tett látogatások böngészhetők, s az azokhoz mellékelt feljegyzések, a helyszínen készített fotók és videók is megtekinthetők. Ezeket a látogatásokat látva aztán újbóli látogatásokat lehet betervezni, avagy újra megismételni azokat. Az üzletekben, kereskedőknél tett látogatás alkalmával kérdőívek készíthetők, melyek később jó kiinduló pontot adhatnak például az árukészlet és azok elhelyezkedésének tanulmányozásához. A planogramellenőrzés fontos lépés ahhoz, hogy egyazon kereskedő több üzletében fenntarthassa az egységes kinézetet azzal, hogy az árukból a polcokra ugyanannyit és ugyanoda helyezi el. Az alkalmazással az értékesítők értékes ügyfél és általuk használt termékadatokhoz juthatnak hozzá, amiket látogatásaik során felhasználhatnak. 2.13. ábra: SAP Retail Execution működés közben [10] Az alkalmazás úgyszintén Sybase Unwired Platform-on alapul. Az előbbi két alkalmazástól eltérően itt az Unwired Server az SAP EIS-hez úgy kapcsolódik, hogy SAP Java Connector-t használ az SAP CRM rendszer által, külső rendszerek felé biztosított RFC kapcsolódási felület eléréséhez. A SAP JCo egy olyan köztes
  • 45. 33 komponens, amellyel SAP-val kompatibilis komponensek és alkalmazások készíthetők Java-ban. Az SAP JCo kétirányú kommunikációt támogat, támogatja a bejövő hívásokat (Java hív ABAP-ot) és a kimenő hívásokat is (ABAP hív Java-t). A mobil alkalmazás MBO-jaiban definiált műveletek az RFC interfészt implementálva, a kötelező paramétereket kitöltve futnak le. A műveletek eredményeként az adatok megváltozása – online esetben – azonnal érvényre jutnak a mobil eszközben vagy az EIS-ben. Offline esetben pedig cachelt állapotban várjak a műveletek és adatok az online állapotot, amikor azok is érvényre jutnak. A JCo-t és csak RFC-t használó kapcsolódási technika a 2.14. ábrán látható. 2.14. ábra: SAP Retail Execution együttműködése a háttérrendszerrel [10] 2.3 Összegzés A fejezetben az irodalomkutatás során megszerzett, a szakdolgozatom elkészítéséhez szükséges ismereteket ismertettem, néhol ismeretterjesztő szándékkal többet is. A fejezet összeállítása során mindvégig fontosnak tartottam, hogy csak azokat az ismereteket írjam le, amelyet elolvasva mindenki megértheti a Sybase Unwired Platform működését és leglényegesebb részeit. Épp ezért szó volt a fejezetben, hogy miként lehet a vállalati adatokat a platformban reprezentálni, ezek a modellek hogyan épülnek fel, hogyan használhatók fel mobil alkalmazások készítésére, milyen előnyei vannak és miért is egyszerűsíti meg a fejlesztési folyamatot. Ismertettem a platformban készíthető mobil alkalmazásokat, azoknak a jellemzőit, elkészítési és felhasználási módjukat. Mindegyik alkalmazás különböző tulajdonsággal rendelkezik azért, hogy az SAP a Sybase Unwired Platform- mal a különféle vállalati igényeket és infrastrukturális függőségeket támogathassa. Szintén szó esett a platform architektúrájáról és összetevőiről, mivel úgy gondolom,
  • 46. 34 hogy enélkül a tudás nélkül nem lehet teljes értékű a platform ismertetése, hiszen minden feladatot, műveletet ezek a komponensek futtatnak, hajtanak végre. A fejezet végén hasonló alkotásokat mutattam be. Bemutatásuk során az alkalmazások üzleti funkcionalitásukra, működésükre, illetve felépítésükre koncentráltam. Az alkalmazások jellemzőinek, működéseinek tanulmányozása hozzásegített ahhoz, hogy az általam készített alkalmazásban felhasználjak olyan megoldásokat, amivel az alkalmazásom jobbá tehető, hiszen a megemlített három SAP alkalmazás ügyfelek számára már elérhető, ezért a bennük alkalmazott megoldások számomra is követendők voltak.
  • 47. 35 3 Megoldás Ebben a fejezetben ismertetni fogom a félév során a Sybase Unwired Platform használatával elkészített munkaerő-irányítási területre szánt mobil alkalmazásomat. Ez egyrészt a tervezési fázis összefoglalását foglalja magába, ami tartalmazza, hogy milyen követelményeknek kell megfelelnie egy mobil eszközre szánt alkalmazásnak. A vállalatok és a végfelhasználók igényeit az elkészítés előtt, már a tervezési fázisban figyelembe kell venni. A rövidebb lélegzetvételű blokk után a fejlesztés menetének legfontosabb részeit ismertetem, ahol az elméleti fejezetet követően gyakorlatban is látni lehet, hogy milyen megfontolások alapján és hogyan készül egy hibrid alkalmazás a Sybase Unwired WorkSpace fejlesztő eszköz segítségével. A fejezet végén az elkészített műszaki alkotásomat funkcionális szempontból tesztelem, és a legtöbb szempontot figyelembe véve próbálom meg értékelni, illetve elemezni azt. 3.1 Tervezés Mivel az elkészített alkalmazásom egy mobil eszközökre szánt megoldás, ezért rögtön a tervezés során felmerül az a technikai kérdés, hogy hogyan lehet a vállalat legfontosabb adatait, folyamatait és információit a vállalat falain kívül elérhetővé tenni, hogy azok biztonságosan jussanak el az eszközökre, és az eszközöket használók közül csak a megfelelő emberek férhessenek hozzá ezekhez az adatokhoz. Igen nagy kihívást jelent a vállalatoknak, hogy hogyan tudják a legfontosabb szolgáltatásaikat és adataikat mobilizálni, mivel ezeknek az elkészített alkalmazásoknak mind a felhasználói követelményeknek, mind a vállalati igényeknek meg kell, hogy feleljenek, s ez egyáltalán nem könnyű. A helyzetet leginkább az nehezíti, hogy a mai mobil megoldások nem egységesek, többféle üzleti logikát használhatnak egyazon probléma megoldására, és nem lehet azokat újrafelhasználni anélkül, hogy ne kelljen bennük több mindent is módosítani, ha például egy másik fajta készülékre szeretnénk telepíteni az alkalmazást. Emellett persze az is sok esetben előfordul, hogy egy vállalat meglévő rendszere túlságosan bonyolult ahhoz, hogy egyszerűen mobilizálni lehessen azt. A Sybase
  • 48. 36 Unwired Platform ezt a problémát próbálja megoldani azzal, hogy online és offline mobil alkalmazások készítését támogatja. Az online alkalmazások esetében a felhasználó a mobil készülékét használja ahhoz, hogy a vállalati adatok között keressen, és hogy a számára fontos információkhoz minél hamarabb hozzájusson. Ilyenkor a tranzakciók, lekérdezések, műveletek, kérések valós időben hajtódnak végre, s lefutásuk után a kért információkat szolgáltatják a felhasználónak. Az offline alkalmazások ezzel ellentétben inkább egy IT vagy menedzsment által üzemeltetett alkalmazásra hasonlítanak. A feladatokat és információkat a felhasználó direktben nem éri el, azokat a felette álló valamilyen szervezet közli üzenet vagy értesítés formájában. Erre a típusú alkalmazásra egy példa, amikor a menedzsert üzenet formájában értesítik új emberek felvételéről, a menedzser az üzenetre kattintva elindítja az alkalmazást, ami a képernyőn az új kolléga adatait jeleníti meg. 3.1.1 Vállalati igények A vállalatok nemcsak az elkészítendő mobil alkalmazással kapcsolatban, hanem azzal a futtatási környezettel, rendszerrel szemben is követelményeket határoznak meg, amire az alkalmazás a későbbiekben telepítésre kerül. Így a következő vállalati követelmények fogalmazhatók meg: Biztonság Az eszközök és a vállalatok között mozgó adatoknak biztonságban kell lenniük, és ha a készüléken üzleti adatokat letárolják, akkor ezek is megfelelő védelemben részesüljenek. A védelem természetesen azt is magába kell foglalja, hogy azokhoz csak a megfelelő emberek férhessenek hozzá. Ennek biztosítására több megoldást is biztosít a platform. Kapcsolat A legtöbb közép és nagyobb vállalat esetében különböző vállalati rendszerek és alkalmazások találhatóak, ezért joggal várják el, hogy a bevezetendő mobil megoldás együtt tudjon működni azokkal, és támogassa az összes felhasználóját az értékesítőtől a partnereken keresztül a dolgozókig. Emellett egy megbízható és jól működő kapcsolat fenntartása is célként fogalmazódhat meg a bevezetendő vállalatok fejében.
  • 49. 37 Kézben tarthatóság Követelményként jelenhet meg a jelenleg gyorsan növekvő és változó világban az, hogy az alkalmazások gyorsan és a lehető legtöbb készülék típusra elérhetőek legyenek. Az elérhetőségen túl pedig támogassák, és minél jobban használják ki az eszköz hardware-e által nyújtotta lehetőségeket (pl. biztonság, sávszélesség). Szintén elvárás, hogy az eszközöket és az alkalmazásokat a legegyszerűbb módon, a legkisebb leállás mellett lehessen frissíteni és módosítani, hogy az ezekből keletkező költségek a lehető legalacsonyabbak legyenek. 3.1.2 Felhasználói igények A termelékenység maximalizálása miatt a felhasználói igények is fontos szerepet játszanak egy mobil alkalmazás elkészítése során. A vállalati követelmények figyelembe vétele mellet azt próbáltam elérni, hogy az alkalmazásomat egyszerűen és magától értetődően lehessen használni. Az alkalmazásnak emellett hasonló módon kell működnie, mint az adott eszközre készített egyéb alkalmazások többsége, ugyanis a felhasználók komfort szintje azokhoz igazodik, és a mai rohanó világban kevesen engedhetik meg maguknak, hogy minden egyes új alkalmazás használatát órákig, vagy akár napokig kelljen tanulni. 3.2 Fejlesztés Ebben a részben a szakdolgozat keretében, Sybase Unwired Platform használatával elkészített mobil alkalmazásom fejlesztésének legfontosabb lépéseit fogom bemutatni. A munkaerő-irányítási célokra készített alkalmazásom egy, a saját gépemre telepített minta adatbázisból nyeri ki a működéshez szükséges adatokat a megrendelésekről, a jelentésekről, az ügyfelekről, a munka helyszíneiről és a javítandó, karbantartandó eszközökről. Ez az adatbázis a vállalatok által adattárolásra használt adatbázist hivatott reprezentálni, amit a vállalat ténylegesen adatok tárolására és adatok kinyerésére használ. A kezelőnek többek között lehetősége van a fent említett információkat megjelenítenie, és azok között böngésznie saját mobil eszközén. Emellett új munkarendeléseket, jelentéseket hozhat létre, és a látogatás során látottak alapján kérdőíveket tölthet ki az adott eszközről, amik szintén az adatbázisba kerülnek, hogy azokat a vállalat később kiértékelhesse, és az elemzéseket követően megfelelő lépéseket
  • 50. 38 tehessen. Az üzleti adatokat (például a munkarendeléseket, ügyfelek adatait) az alkalmazásom nem tárolja el, vagyis ha a felhasználó látni szeretné a megrendeléseket vagy az ügyfél adatait, akkor újból és újból kapcsolódnia kell az Unwired Server-hez, ahol az MBO-k lefuttatják a megfelelő SELECT utasítást az adatbázisban. Természetesen az előzőleg már megfogalmazott vállalati és felhasználói követelmények mindegyikét megpróbáltam figyelembe venni a fejlesztés során. A biztonsági kockázatok csökkentése érdekében az alkalmazás legelső futtatásakor aktiválni kell a készüléket, majd utána bejelentkezni ahhoz, hogy ténylegesen használni lehessen az alkalmazást, és hozzá lehessen férni az adatbázisban tárolt adatokhoz. A Sybase Unwired Platform-on alapuló hibrid alkalmazásom elkészítése több lépésből állt. Ezek a lépések a következők voltak: 1. Az alkalmazás elkészítésének legelső lépése azt volt, amikor létrehoztam az adatokat reprezentáló mobil üzleti objektumokat (MBO), és az Unwired Server- re telepítettem őket. 2. Az alkalmazás tényleges elkészítése – vagyis a megfelelő képernyők létrehozása a szükséges menü elemekkel, gombokkal, beviteli mezőkkel – a Workflow Forms Editor használatával történt a Sybase Unwired WorkSpace-en belül. 3. A legutolsó lépés az alkalmazás kódjának legenerálása volt. Ekkor jöttek létre azok a forrásfájlok, amiket a készülékre telepített tároló futtatni tud. Generáláskor a kódokat egyből az Unwired Server-re kerültek. Miután az alkalmazás sikeresen elkészült, valamilyen eszközre kellett szimulálni. Az alkalmazás szimulálására én a BlackBerry hivatalos honlapjáról elérhető OS 6 szimulátort használtam. A fent említett lépéseken túlmenően saját kiegészítéseket, kódokat is írhatunk az alkalmazáshoz, úgy ahogy azt én is tettem az alkalmazásom kinézetének átszabásához. A fejlesztés menetének legfontosabb lépéseit és részeit az alábbi angol nyelvű 3.1. ábra nagyon jól foglalja össze.
  • 51. 39 3.1. ábra: Fejlesztés menete Sybase Unwired Platform haszálatával [11] 3.2.1 Adatbázistáblák létrehozása Mivel a feladatom megoldása során nem SAP szerverhez kapcsolódtam, és nem használtam egyik instancia által nyújtott RFC-ket vagy BAPI-kat sem, így saját magamnak kellett létrehozni olyan táblákat, amiben mások hátráltatása nélkül tudtam dolgozni. A feladatom során a felhasználó munkarendeléseket, jelentéseket és kérdőíveket hozhat létre, ezért mindhárom entitáshoz külön adatbázis táblát hoztam létre. Mivel egy valóságban használt vállalati rendszer működését próbáltam szimulálni, ezért létrehoztam az ügyfeleket, az eszközöket és a munkahelyszíneket tartalmazó táblákat is. A munkatársak adatainak tartalmazására egy további táblát készítettem. Az adatbázistáblák definíciói az alábbiak lettek (csak az alkalmazás működéséhez legfontosabb tábláinak mezőit magyarázom): • Rendelések: WoOrders (ID, equipmentID, clientID, locationID, type_, priority, status, createdBy, shortText, longText) o ID: A rendelés egyedi azonosítója. o equipmentID: A rendeléshez meg kell adni, hogy mely eszközhöz kapcsolódik a munkálat.
  • 52. 40 o clientID: A rendeléshez meg kell adni, hogy mely ügyfélhez kapcsolódik a munkálat. o locationID: A rendeléshez meg kell adni, hogy mely helyszínen történik a munkálat. o type_: A rendelés közben elvégzendő munkálat típusa. o priority: A munka prioritása. o status: A munka jelenlegi állapota. o createdBy: A rendelés létrehozója. o shortText: A munkarendelés rövid leírása. o longText: A munkarendelés hosszabb leírása. • Jelentések: WoReports (ID, orderID, final_, activityType, startDate, startTime, endDate, endTime, coment) o ID: A jelentés egyedi azonosítója. o orderID: Azon rendelés ID-ja, amelyikhez a jelentés tartozik. Ennek a mezőnek a segítségével lehet csak az adott rendeléshez tartozó jelentéseket megjeleníteni. o final_: Ez a mező akkor TRUE értékű, ha a jelentést készítő ember lezárja a teljes rendelést, további teendő ilyenkor nincs a rendeléssel. o activityType: A jelentés közben elvégzett munkálat típusa. o startDate: A munkálat kezdő dátuma. o startTime: A munkálat kezdő időpontja. o endDate: A munkálat befejező dátuma. o endTime: A munkálat befejező időpontja, ezek az adatok a költségszámítás miatt lehetnek érdekesek egy vállalat számára. o coment: A jelentéshez fűzhető megjegyzés. • Kérdőívek: WoSurveys (ID, equipmentID, status, locks, power, clean, environment, lighting, coment) o ID: A kérdőív egyedi azonosítója. o equipmentID: Azon eszköz azonosítója, amelyikhez a leadott kérdőív tartozik. Ennek a mezőnek a segítségével lehet a kitöltött kérdőíveket a későbbiekben feldolgozni, hogy tudjuk, melyik eszközhöz is tartoznak a kérdőívben foglaltak. o status: Az eszköz állapota a helyszíni ellenőrzéskor.
  • 53. 41 o locks: A mező értéke TRUE, ha az eszköz megfelelő biztonságban van a helyszínen. o power: A mező értéke TRUE, ha az eszköznek megfelelő az áramellátása. o clean: A mező értéke TRUE, ha az eszköz megfelelően van karbantartva, tisztítva. o environment: A mező értéke TRUE, ha az eszköz körüli környezet minden szempontból megfelelő. o lighting: A mező értéke TRUE, ha az eszköz az adott körülményeknek megfelelően van megvilágítva. o coment: A kérdőívhez mellékelhető megjegyzés. • Dolgozók: WoEmps (userNameID, firstName, lastName, phone, notifyOfOrders, email) • Ügyfelek: WoClients (ID, name, phone, coment) • Eszközök: WoEquipments (ID, description) • Helyszínek: WoLocations (ID, address, city, postalCode, country, location) • Szolgáltatástípusok: WoActivityTypes (ID, descreption) Az alkalmazásból a feladatnak megfelelően csupán a WoOrders, a WoReports és a WoSurveys táblákba lehet rekordokat felvenni, így a többi táblába kézi bevitellel vittem fel az ügyfelek, eszközök, helyszínek, stb. adatait, hogy az alkalmazás ezeket háttértáblaként használhassa. Például az ügyfelek és az eszközök háttértáblájának tartalma (3.2. ábra, 3.3. ábra): 3.2. ábra: WoClients adatbázis tábla tartalma
  • 54. 42 3.3. ábra: WoEquipments tábla tartalma 3.2.2 Adatmodellezés Az adatmodellezés leglényegesebb mozdulata, amikor létrehoztam a mobil üzleti objektumokat. De mielőtt ezeket az objektumokat létrehoztam volna, egy új mobil alkalmazás projektet (mobile application project) kellett létrehozni az Eclipse alapú WorkSpace fejlesztő eszközben. Miután az objektumok elkészültek, azokat az SUP szerverére telepítettem. 3.2.2.1 Mobil alkalmazás projektjének létrehozása Az alkalmazás fejlesztésének legelső lépéseként létrehoztam a myWorkOrder_thesis nevezetű mobil alkalmazás projektet (lásd 3.4. ábra). A projekt tartalmazza a későbbiekben létrehozott üzleti objektumokat, személyes kulcsokat, szinkronizációs csoportokat, az adott eszközre legenerált kódokat, a létrehozott munkafolyamatot és a munkafolyamat generálásának forrásait. Egyszóval a projekt maga az alkalmazás, ami mindent tartalmaz ahhoz, hogy az alkalmazás problémamentesen működjön bármely platform által támogatott eszközön. 3.2.2.2 Mobil üzleti objektumok elkészítése A mobil üzleti objektumokat a szerver és a mobil eszköz közötti kapcsolat megteremtésére használjuk. Például az MBO-k SQL utasítások segítségével kommunikálnak az EIS-sel, hogy adatokat nyerjenek ki, vagy hozzanak létre. Az objektumok az SUP szerveren helyezkednek el, és egy olyan adatforrásnak tekinthetők, amik mindig az aktuális adatokat tartalmazzák. 3.4. ábra: A myWokrOrder_thesis projekt tartalma
  • 55. 43 A létrehozandó objektumok feladatai közé tartozik például az is, hogy a felhasználó lekérdezéseit az adatbázis felé továbbítsa, aztán a megtalált adatokat a Relay Server-nek elküldje, amely szerver aztán a mobil szolgáltatóval együttműködve a felhasználó eszközére továbbítja az eredményhalmazt. A lenti 3.5-ös ábra ezt szemlélteti. 3.5. ábra: Mobil üzleti objektumok szerepük és elhelyezkedésük [13] A feladatom megoldásához az SUP szervert és az SUP által tartalmazott minta adatbázist is a saját számítógépemre telepítettem fel. Így a képen látható ábra elrendezéséhez képest az én tesztkörnyezetem jóval egyszerűbben nézett ki. A MBO-k létrehozása nem túlságosan bonyolult folyamat, csupán a mobil alkalmazás diagramra (mobile application diagram) kellett áthúzni azokat az adatbázis táblákat, amiket használni szeretnék a mobil alkalmazásom során, a kapcsolatot köztük ugyanis az MBO-k tartják. Az áthúzás hatására automatikusan létrejött egy SQL SELECT utasítás, amivel az adatokat lehet kinyerni a táblákból, és a három CRUD alapművelet közül lehetett kiválasztani, hogy melyikeket hozza még létre az eszköz az adott MBO-hoz, mindezt egyetlen sor kódolása nélkül. Értelemszerűen, az általam létrehozott objektumok közül csak a rendeléseket, a jelentéseket és a kérdőíveket tartalmazó táblához hoztam létre ilyen módon műveleteket, mivel a háttértáblákat az alkalmazást használó felhasználó csak olvasásra használja. Az így létrejött mobil üzleti objektumok a következőképpen néznek ki (3.6. ábra):
  • 56. 44 3.6. ábra: A létrehozott mobil üzleti objektumok Látható a diagramon, hogy minden egyes MBO egy osztályként reprezentálja az adatbázis táblákat, ahol az attribútumok a tábla oszlopainak, míg a metódusok a táblán végezhető műveleteknek felelnek meg. A másik érdekesség, hogy az adatbázisban használt adattípusokat az eszköz a platform számára is értelmezhető típusra fordítja át. Persze az attribútumokat és a metódusokat törölhetünk, de újakat is vehetünk fel. Az MBO-ra kattintva megtekinthetjük annak beállításait, ahol többek között az oszlopok és attribútumok közötti megfeleltetést változtathatjuk, tekinthetjük meg, de lehetőségünk van lekéréseket is írni az objektumhoz, de az adatbázishoz való kapcsolódás adatait is megtekinthetjük (lásd 3.7. ábra, 3.8. ábra, 3.9. ábra, 3.10. ábra). 3.7. ábra: WoOrders MBO attribútumai
  • 57. 45 3.8. ábra: WoOrders MBO adatforrása 3.9. ábra: WoOrders MBO operációi 3.10. ábra: WoOrders MBO egyetlen lekérése 3.2.2.3 Objektumok SUP szerverre telepítése Miután elkészítettem az adatbázis táblákkal kapcsolatot megteremtő mobil objektumokat, az SUP szerverre telepítettem őket. Ezt is könnyedén, pár kattintással lehetett elvégezni, ami azt mutatja, hogy az SUP használatával milyen egyszerűen és gyorsan lehet mobil alkalmazásokat fejleszteni. A telepítés során meg kellett adni, hogy üzenet alapú kommunikáció lesz az adatbázis (lásd 3.11. ábra), az SUP és az eszköz 3.11. ábra: Az objektumok telepítési módjuk és kommunikáció típusuk megadása
  • 58. 46 között, ugyanis hibrid alkalmazás esetében csak ez támogatott. A replikáció alapú natív alkalmazások esetében választható. Ezek után a telepítendő MBO-kat egy listából választottam ki, és kijelöltem a saját Unwired Server-emet, amire telepíteni szerettem volna az elkészített objektumokat. Legvégül a saját adatbázis szerverem adatait kellett megadni, ahol az MBO-kból elért táblák voltak találhatók. A folyamat végén (lásd 3.12. ábra) az objektumok az SUP szerverre kerültek, ami magába foglalta a hozzájuk tartozó kódok automatikus generálását is. Így az adatmodellezés végére érkeztem. Ezek után az adatbázis rétegbe tartozó minta adatbázisom a mobil alkalmazás használatával is elérhetővé vált. 3.2.3 Alkalmazás elkészítése Az alkalmazás elkészítésének nevezzük azt a folyamatot, amikor az alkalmazás képernyőit létrehozzuk és a köztük lévő léptetési sorrendet definiáljuk. Ezt, amit így elkészítünk, munkafolyamatnak, vagy angolul workflow-nak nevezünk. A kész workflow-t fogjuk majd a készülékre telepíteni, amit az eszközön lévő HWC fog futtatni. [12] 3.2.3.1 Workflow Forms Editor A munkafolyamatok elkészítéséhez a Workflow Forms Editor nevezetű eszközt használhatjuk. Én is így tettem a saját workflow-m elkészítésénél. Technikailag a munkafolyamat egy .xbw kiterjesztésű fájlban tárolódik, és a módosítások során ennek a fájlnak a tartalma változik. A workflow elkészítésének első lépése az volt, hogy létrehoztam a saját, myWorkOrder nevű munkafolyamatomat, aminek a létrehozásakor megadtam, hogy az alkalmazás kliens által indítható legyen, hogy az alkalmazás első futtatásakor aktiválni kelljen az eszközt, és hogy a felhasználónak authentikálnia kelljen magát az alkalmazás használatához. A képernyők létrehozásának menetét nem fogom részletesen leírni, mivel a munkafolyamat igen komplex, sok képernyőt tartalmaz, a sok képernyő pedig sok-sok 3.12. ábra: Az objektumok telepítése
  • 59. 47 vezérlési elemet, gombot, menü elemet használ. Így minden egyes elem létrehozásának menetét nem tartom ésszerűnek. Egyrészt mert ennek az ismertetése nagyon sokáig tartana, másrészt egyszer olvasva nem is igen lehetne megérteni. A Sybase honlapján számos irodalom lelhető fel egy alkalmazás részletes létrehozásával kapcsolatban. Emiatt a továbbiakban leginkább a munkafolyamat működésére fogok koncentrálni, hogy mi és miért történik úgy, ahogyan, és miként lehet megcsinálni benne egyet, s mást. Az elkészített munkafolyamatomról készített folyamatábrán (3.13. ábra) láthatók a felhasznált képernyők és a köztük lévő navigációs logika. 3.13. ábra: Az elkészített alkalmazás képernyői közötti kapcsolatok A következő oldalon minden egyes képernyő funkcionalitását tárgyalom.
  • 60. 48 • Activation: Az aktiválási képernyő csak az alkalmazás legelső indításakor jelenik meg. Az aktiválás azért használatos, hogy az SUP hozzárendelje a felhasználót az eszközhöz. Az aktiválást követően a bejelentkezési procedúra következik. • Credentials: Különféle authentikációs eljárásokat lehet megadni. Használhatunk statikus felhasználónevet és jelszót is, de valamilyen másféle szolgáltató által biztosított tanúsítványokat is. Az SAP rendszerekhez való kapcsolódásnál az LDAP szerverben megadott felhasználónevet és jelszót ellenőrzi az SUP. Mivel én most SAP rendszer nélkül használtam az SUP-t, ezért nem volt LDAP szerverem sem, így a Sybase Control Center-ben felvett felhasználót ellenőrizte az SUP az alkalmazás indításakor. Az alkalmazás futtatásához az adminisztrálásra használt felhasználót, a supAdmin-t használtam. A sikeres jelszó megadása után a legelső, Home képernyőre lép a program. • Home: A képernyő egy navigációs kiindulópontot jelent, innen lehet eljutni a meglévő rendelések, az új rendelés felvétel, az új kérdőív kitöltése, a beállítások, a súgó, a kapcsolat és a bejelentkezés képernyőkhöz. • Orders: A képernyő feladata, hogy megjelenítse az összes WoOrders táblában lévő rendelések legfontosabb adatait. A képernyő megnyitása egy SQL SELECT utasítást jelent az említett táblában. Ilyenkor ténylegesen lefut a fent említetett kérés az adatbázisban, és az eredményhalmaz a képernyőn megjelenik. Az eredményhalmaz nem kerül tárolásra a készüléken, ezért mindig, amikor a felhasználó megnyitja ezt a képernyőt, lefut az említett SQL utasítás. A tartalom ideiglenesen cachelhető, ha az On-device cache timeout mezőbe beírjuk a tárolási idő hosszát. A tárolt adatok a bejelentkezési képernyő használata miatt automatikusan titkosítva lesznek. A titkosított adatokhoz csak az alkalmazásba bejelentkezett felhasználók férhetnek hozzá, amikor is létrejön az a kulcs, amivel visszatitkosíthatók az adatok. Az ábrán a zöld összeköttetés jelenti azt, hogy a képernyő valamilyen lekérdezés eredményhalmazát fogja megjeleníteni. A képernyőről egy menü elem segítségével nyitható meg a Create new order képernyő, amit a fenti, képernyők navigációs sorrendjét tartalmazó ábra fekete nyíllal jelöl. • Order detail: Az Orders képernyőről lehet idenavigálni, ha valamelyik rendelésre kattintottak. A képernyő feladata, hogy minden adatát megjelenítse az
  • 61. 49 adott rendelésnek. A navigációs folyamot jelölő ábrán kék nyíl jelenti azt, hogy a képernyő részletezetten jeleníti meg az adott entitás adatait. A másik feladata, hogy ha a felhasználó a rendeléshez tartozó jelentéseket szeretné megtekinteni, akkor SELECT utasítást hajtson végre a WoReports táblában a rendeléshez tartozó azonosítóval (orderID), mint szűkítése paraméterrel (lásd 3.14. ábra). Egy-egy menü elem biztosítja a közvetlen visszajutást a Home képernyőre, és az új jelentés felvételét támogató oldalra. 3.14. ábra: Order detail képernyő ID beviteli mezőjének általános beállításai • Update order: A képernyőn magát a rendelést lehet módosítani, frissíteni, például a típust vagy az állapotot. A módosítás jóváhagyásakor az Orders MBO update operációja hívódik meg, ami egy megfelelően létrehozott UPDATE SQL utasítás lefutását jelenti a WoOrders adatbázis táblában. A képernyőről vissza lehet navigálni a Home képernyőre. • Order - client: A képernyő jeleníti meg a rendelés clientID-jához tartozó ügyfél adatait. Ilyenkor lefut a WoClients MBO-hoz tartozó SELECT kérés, ahol a rendeléshez tartozó ügyfél azonosítója a szűkítési paraméter. • Order - Equipment: A képernyő jeleníti meg a rendelés equipmentID-jához tartozó eszköz adatait. Ilyenkor lefut a WoEquipments MBO-hoz tartozó SELECT kérés, ahol a rendeléshez tartozó eszköz azonosítója a szűkítési paraméter.