Szerző: davd

2007. július 11. 12:44

SMS Center a Nokiánál: terepszemle a budapesti fejlesztő- központban

A Siemensszel nemrégiben frigyre lépett Nokia Köztelek utcai bázisán vendégeskedtünk, ahol betekintést nyerhettünk az ott fejleszett SMS Center működésébe. Kevesen tudják, de a magyar fejlesztőgárda egyik legnagyobb megrendelője a hírhedt cenzúráját az SMS-ekre is kiterjesztő Kína.

A Siemensszel nemrégiben frigyre lépett Nokia Köztelek utcai bázisán vendégeskedtünk, ahol betekintést nyerhettünk az ott fejleszett SMS Center működésébe. Kevesen tudják, de a magyar fejlesztőgárda egyik legnagyobb megrendelője a hírhedt cenzúráját az SMS-ekre is kiterjesztő Kína.

A Nokia Networks és a Siemens-házasság

A Nokia az öreg kontinens harminckét országában van jelen. Hazánkban két Kft-t is üzemeltet, a budapesti fejlesztőközpont mellett Komáromban van mobilgyára. Míg előbbi 1995-ben jött létre, utóbbi gyártósorairól az 1999-es alapkőletétel óta már a háromszázmilliomodik (!) mobilkészülék is legördült, s egy 10 millió eurós beruházásnak köszönhetően közel tízezer négyzetméteres új épülettel bővül a nyáron. A főleg low-end készülékeket gyártó Nokia Komárom Kft. nem része a Nokia Networks-nek, tehát ne számítsunk Nokia-Siemens telefonok megjelenésére.

A Nokia-csoport életében a közelmúlt jókora változást hozott. Körülbelül egy évvel ezelőtt vette kezdetét a Siemensszel kötött házasság lebonyolítása, és a Nokia Siemens Networks 2007. április 1-én jött létre. Az összeolvadás célja a piac legszélesebb portfoliójának megteremtése, azaz a hálózati eszközök gyártásában való piacvezető pozíció kivívása volt.

A két óriás tevékenységi körében komoly átfedések vannak, így mindkét oldalról sok lesz az elbocsátás. Ám a Siemensnek nem volt például saját – jelen írás tárgyát képező – SMS Centere, így kész megoldások szállításakor más cégek (pl. LogicaCMG) SMSC megoldásait vitte a megrendelőkhöz. A házasság létrejöttével ez a probléma egycsapásra megoldódott.

Hivatalosan tehát már a köztelek utcai központ is a Nokia Siemens Networks névre hallgat. A magyar honlap egyelőre nem üzemel, tartalom nélkül fityeg a világhálón -- a domain jelenleg a C3 Alapítvány tulajdonát képezi, vélhetőleg nem sokáig. A nemzetközi honlapot a www.nsn.com címen találjuk.

Az SMS Center szerepe a mobilkommunikációban

A kötelező körök megfutása után végre szép lassan rátérhetünk az SMS Center funkciójának boncolgatására, ehhez azonban végig kell mennünk a mobilkommunikáció folyamatán.


Az SMS-küldés folyamatábrája

Amikor hívást kezdeményezünk, mobiltelefonunk először -- a köznyelvben csak éterként emlegetett közegen, -- az úgynevezett Air Interface-en keresztül a toronnyal (Base Transreceiver Station), illetve az a mögötti "intelligenciával", a mobilhálózat rádiós funkcióinak koordinálásáért felelős Base Station Controllerrel (BSC) kerül kapcsolatba. Ezután a jel a Telecom Interface révén egy Mobile Switching Centerhez (MSC), azaz mobil kapcsolóközponthoz jut el. MSC-ből természetesen több is van, ezek száma a szolgáltató kapacitásigényétől, geográfiai adottságoktól, stb. függ. Az MSC kezeli a hívás felépítését, további útvonalának meghatározását, irányítását, bontását, valamint az MSC-k közötti handovert (cellák közötti hívásátadást). A kapcsolóközpontokat szerverekként képzeljük el, amik ha úgy tetszik, bezsúfolhatók a szolgáltató egyik szerverszobájába, minimális valós (értsd: fizikai) távolságra egymástól.

Más mobilszolgáltató ügyfeléhez irányuló hívás esetén a kapcsolat az érintett szolgáltatók MSC-i között jön létre GMSC-k (Gateway MSC) segítségével. Mivel minket az SMS útja érdekel igazán, ezért híváskezdeményezés helyett most inkább szöveges üzenetet lódítsunk az éterbe! Miután az üzenet elérte az adott MSC-t, az lepasszolja az SMS Centerhez. Innen válik érdekessé a dolog…

Az SMSC "belsejében"

Az SMS-eket beérkezési sorrend szerint kezeli az SMSC. Régebben az üzenetet leküldte a Database-be, majd onnan megint csak eredeti sorrendben beolvasva megpróbálta továbbítani a címzett felé. Manapság -- a fejlesztéseknek hála -- üzeneteink kicsit gyorsabban is elérhetnek a címzetthez: amennyiben a küldő és a fogadó fél egyaránt elérhető, az SMSC a DB kiiktatásával azonnal elnyomja az SMS-t (ezt a Nokia szoftvere egyszerűen Fast Forward funkciónak becézi). Az üzenet csak akkor kerül be a DB-be, ha valamilyen oknál fogva nem sikerült továbbítani. Ezt követően a rendszer a szolgáltató beállításai szerint próbálkozik újra, egészen addig, amíg az üzenet úgynevezett. Validity Periodja (VP) le nem jár (ez a szolgáltató beállításaitól függ, de egyébként a telefonban is találhatunk ilyen opciót).

Az újrapróbálkozás késleltetése gyakorlatilag néhány másodperctől pár óráig tetszőlegesen beállítható, mi több, az újrapróbálkozások számától is függővé tehető (minden szolgáltató más-más időközökkel operál, s az újrapróbálkozási idő az újrapróbálkozások számának növekedésével általában egyre hosszabb lesz). Léteznek olyan, a továbbítást megakadályozó hibák, amelyekhez van hálózati üzenet (alert). Például, ha a fogadó ki van kapcsolva, és nem tud SMS-t fogadni, az SMSC az üzenetet a megfelelő hibakóddal ellátva leküldi a DB-be. Amikor a címzett bekapcsolja a telefont, az SMSC tudni fog erről a hozzá azonnal befutó hálózati alert révén. Megkeresi az aktiválandó üzenetet a DB-ben, és megpróbálja azt ismét elküldeni.

Az SMSC-ből az üzenet újra a Telecom Interface felé veszi az irányt (egy SMSC általában egyetlen MSC-vel áll összeköttetésben, de megadja az információt, hogy mely másik MSC felé kell az üzenetet továbbítani). Érdekesség, hogy amennyiben az üzenet a szolgáltató hálózatán belül "áramlik" (vagyis ha a feladó és a címzett ugyanahhoz a szolgáltatóhoz tartozik), akkor az MSC és a szolgáltató SMSC-je közötti kommunikációs csatornát akár egyetlen kábel is jelentheti, ha mondjuk egymás melletti szobákban vannak az adott feladatok ellátásáért felelő kiszolgálók.

Az üzenet befutásakor az SMSC megnézi, hogy a szolgáltató saját hálózatába tartozó felhasználóról van-e szó, majd megállapítja, a SIM-kártya saját hálózaton belül tartózkodik-e vagy netán roamingol valahol. Utóbbi esetben feltérképezi, melyik MSC felé kell továbbítania az üzenetet. A roamingoló felhasználókat a Visitor Location Register (ez is egy hálózati elem, akárcsak az SMSC) tartja számon, a saját ügyfeleket pedig a Home Location Register jegyzi. A VLR-t és a HLR-t különálló szerverek testesítik meg, ők látják el információval az MSC-t, hogy tudja, melyik felhasználó éppen merre van a nagyvilágban.

A felhasználó egyértelmű azonosítása szolgáltatón belül a SIM-en tárolt IMSI számmal történik. Ehhez rendelhető a külső azonosító MSISDN, ami tulajdonképpen a telefonszám. Szolgáltatóváltás esetén ma már megtehetjük, hogy MSISDN-ünket megtartva kapunk új IMSI azonosítót (ez ugyebár a telefonszám-hordozás). A betűszók tengerének újabb cseppje a HLR-be integrált Equipment Identity Register (EIR), amely azoknak a telefonoknak az IMEI számát tartalmazza, melyeket a rendszer valamiért monitoroz, esetleg a hálózatból ki lettek tiltva. Utóbbira tökéletes példát jelenthetnek az ellopott mobiltelefonok.

Az üzenetek "megbolondítása"

Az SMSC-hez lehetőség van külső programokat csatolni (ezt az Application doboz jelzi). Ezek az alkalmazások kezelik a hírküldő szolgáltatásokat vagy a szavazásokat. Ezekkel az alkalmazásokkal gyakorlatilag minden elképzelhető "SMS-varázslat" tető alá hozható. Tetszőleges metodika alapján képesek feldolgozni a bejövő üzeneteket, tárolhatják a számokat, küldhetnek választ. A technikai részletekért lelkesedő olvasók kedvéért említjük meg, hogy a szoftverek általában az SMSC-től távoli gépen futnak, melyek -- például -- TCP/IP kapcsolaton keresztül kommunikálnak az adott SMSC protokolljával. Ilyen többek között a Nokia CIMD2-je (amire igen büszkék a finnek), vagy az egyik legelterjettebb protokoll, az SMPP.

A magyar csapat az SMSC egészét tervezi és fejleszti, amely három fő komponensre osztható: telecom, kernel (mag) és a külső alkalmazásokat kezelő rész. Az egész folyamatnak a kernel a szíve: amint bekerül az üzenet a rendszerbe, futó processek tucatjai dobálják azt egymásnak. Külön kell kezelni például a prepaides, vagyis feltöltőkártyás ügyfeleket -- a tőlük érkező SMS feldolgozás előtt átmegy a billing részlegre, a kártyán lévő kreditek mennyiségét ellenőrizendő. Értsd: tud-e az illető egyáltalán üzenetet küldeni, fel van-e töltve a kártyája (ezt IACC-nek, azaz In Advance Credit Checknek hívják).

Az SMSC-t roppant nagy becsben tartják, csak cash cowként (fejőstehén) hivatkoznak rá, mivel óriási bevételt termel. A beruházást és a beállítást követően ugyanis a szolgáltatónak gyakorlatilag egyetlen forintjába sem kerül az SMS-ek továbbítása.

[oldal:A Nokia Networks SMS Centere]

Magyarországon információink szerint két mobilszolgáltató is használja a Nokia SMS Centerét. Szolgáltatásként képzeljük el a dolgot, amit a vállalat elad ügyfeleinek, s az SMSC fizikai valójában is a megrendelőnél fogja a port. A Nokia gárdája a saját irodájában végzi a különféle feature-ök fejlesztését, tesztelését, karbantartását. Elképzelhető, hogy egy-egy szolgáltató vásárol több beszállítótól is SMSC-t, de kompatibilitási problémák felmerülése miatt ez a megoldás kerülendő, ráadásul kisebb országok esetében előfordulhat, hogy egy szerver több, ugyanazon szolgáltató által lefedett országot szolgál ki. Kisebb szolgáltatók pedig egy nagyobbtól vásárolhatnak SMS szolgáltatást, úgynevezett Virtual SMSC-t.

Az SMSC kialakításánál a kulcskérdést a kapacitás jelenti. A feladatot ellátó gépek mellett ugyanis a Nokia főleg kapacitást értékesít. Egyetlen masszívabb SMSC kiszolgáló képes lehet másodpercenként 1000-2000 üzenet kezelésére is, de ha a szolgáltatónak erre nincs szüksége, akkor -- költségkímélés végett -- mindezt lekorlátozzák, mondjuk, 100 üzenetre. A rendszer kapacitása ugyanakkor növelhető több SMSC-szerver clusterbe állításával.

Lehetőség van továbbá kiegészítő licencek vásárlására, amikre általában szezonális jelleggel van szükség. Szenteste és a szilveszter a leghúzósabb időszak, ilyenkor egy átlagos naphoz képest 5-6-szorosára nő az üzenetforgalom. A rendszer mindazonáltal igen flexibilis, az előre definiált korlátok rugalmasak. Léteznek ugyanis bizonyos opciók, melyek lehetővé teszik, hogy korláttúllépés esetén a kimaradó SMS a következő másodpercben kerüljön feldolgozásra (amennyiben persze ott van még hely).

A Nokia Siemens Networks budapesti központjából kikerülő unixos gépek (HP 9000 RP4400-as széria) 1-2 ezer üzenet másodpercenkénti fogadására képesek. Elképzelhető, hogy a közeljövőben jobban skálázható linuxos szerverekre fognak váltani, ami sokkal magasabb kapacitást is lehetővé tesz. Ehhez persze a serény csapatnak sok mindent át kell majd írnia, de a részletekről egyelőre nem szívesen beszélnek. A hazai szolgáltatóknál egyébként nem kardinális kérdés a kapacitás, átlagos időszakban megelégszenek a 100-200 üzenet/másodperces feldolgozási sebességgel.

A magyar fejlesztőgárda természetesen nem csak hazai mobiltársaságokat szolgál ki. Az SMSC rengeteg olyan szolgáltatást tartalmaz, aminek itthoni alkalmazása szinte teljesen kizárt. Példának okáért ilyen a tartalomalapú szűrő plugin, amit előszeretettel használnak Kínában. A jól ismert ottani cenzúra révén kötelező az üzenetek tartalmának szűrése (az elv roppant egyszerű: bizonyos szavak esetén a rendszer elveti az SMS-t és kész). Indiában továbbá az úgynevezett Regional Baring funkciót is alkalmazzák, ami arra szolgál, hogy egyik provinciából ne lehessen SMS-t küldeni a másikba, vagy saját provinciahatárát átlépve az ügyfél ne adhasson fel üzenetet. A Lawful Trace pedig szinte mindenhol kötelezően használt plugin, ami bizonyos számok forgalmát követi nyomon, és archiválja azt (mivel a jogi végrehajtó szervek kérhetik bizonyos számok forgalmának monitorozását).

A köztelek utcai központnak a két fentebb említett ország, Kína és India a legnagyobb megrendelője. E piacokon óriási verseny alakult ki, de népességeik tudatában nem meglepő, hogy elképesztő mennyiségű SMS vándorol naponta egyik mobilról a másikra.

Szavazás, és ami mögötte van

A rendkívül sok szavazásra buzdító televíziós műsor illetve nyereményjáték újabb fejezetét képezi az SMS-kiszolgálásnak. Egy ilyen akció során hazánkban a szervezőnek (ami általában egy tévécsatorna) mindhárom szolgáltatónál elérhetővé kell tennie a kívánt, legtöbbször könnyen megjegyezhető négyjegyű telefonszámot, vagyis valamennyi mobiltársaságnál be kell köttetnie a szavazáshoz szükséges applicationt. Ilyet akár vásárolni is lehet egyes erre specializálódott cégektől.

Érdekes kulisszák mögötti adalék az esetenként túlságosan lassú kapcsolat jelentette üzenethalmozódás áthidalása. Ha a leterhelt kommunikáció mindössze néhány üzenetet bír el másodpercenként, a Nokia SMSC egyik szolgáltatása a beérkező SMS-ek tartalmát kimenti egy szövegfile-ba, hogy azt FTP-vel el lehessen érni. Amikor a televízió előtt ülve azt halljuk, hogy "jelenleg a szavazatok számlálása folyik", s feszült zene kíséretében egy bizonyos mappát keresztbe nyes a jól ismert műsorvezetői kéz, a háttérben az FTP-ről leszedett file-ok egyesítése és feldolgozása folyik. Így születik a végső eredmény, kedvencünk pedig sír vagy nevet -- ne adj’ isten, mindkettő.

Nem bírtuk megállni, hogy rá ne kérdezzünk a csalás lehetőségére, hisz’ az elmúlt években nem egyszer merült fel svindligyanú a valóságshow-k szereplőinek ki- és beszavazásakor. Azt a választ kaptuk, hogy a mobilszolgáltatóknak egyszerűen nem áll érdekükben a befolyásolás, meg aztán a saját értékeikről (vagyis hogy az ő hálózatukban kire mennyien szavaztak) gond nélkül készíthetnek kimutatást. A csalás kisördöge sokkal inkább az egyesítés során bújhat elő, ezért a szavazatok merge-öléséért felelős szoftvert közjegyzők figyelik -- ennek mikéntjéről azonban már máshol kellene kopogtatnunk.

SMS-azonosítás

Kevésbé érdekes, ám gyakorlati szempontból annál jelentősebb információ az SMS-ek kezeléséről, hogy a beérkező üzeneteket a destination address (DADDR) és a timestamp (SCTS) párosa különbözteti meg egymástól. Ez alapján egy application elvileg nem tudna 1 sec alatt több SMS-t kezelni, mert azok DADDR- és SCTS-mezői megegyeznének. A probléma feloldásaként a DADDR-hez úgynevezett suffixeket adnak, vagyis hozzácsapnak még három számjegyet, majd a folyamat későbbi fázisában eldobják azokat. Így egy application már több üzenetet is fogadhat másodpercenként. Másik lehetőség a timestamp csúsztatása beállítástól függő jövőbeni időre. Egy mobilkészülék maximum egyet fogadhat és küldhet másodpercenként. A 160 karakternél hosszabb SMS-ek -- természetesen -- feldarabolva kerülnek továbbításra.

Concatenated üzenetek

Érdekesség: ha több SMS-ből álló, azaz concatanated üzenetet küldünk, akkor általában 8 karakterrel rövidítjük SMS-einket, ami az úgynevezett UDH (User Data Header) számára kerül lefoglalásra minden rész-SMS-ben. Ez alapján fogja a telefon összeállítani helyes sorrendben az eredeti üzenetet (mivel egy-egy üzenet más úton is érkezhet).

Most nézzük meg azt, roamingolás esetén hogyan megy az SMS! Ha például Németországban roamingolunk, és egy német szám küld nekünk SMS-t, akkor az SMS a hazai szolgáltatónk érintése nélkül érkezik a telefonra. Ha viszont mi küldünk üzenetet Németországban egy német számra, akkor az előbb hazajön, majd vissza Németországba. Emiatt nem oldható meg többek között az, hogy a fogadott hívásokhoz hasonlóan a fogadott SMS-ek után is fizetni kelljen.

A "szürke hétköznapok" és a rejtélyes hálózat

Az SMS Center fejlesztésén egyébként Magyarországon a laborosokkal, fejlesztőkkel, tesztelőkkel, menedzserekkel és asszisztensekkel együtt több tucat ember dolgozik. A tesztelés során gyakran vetnek be SMS-generátorokat, amelyek egy virtuális MSC-ről küldenek nagymennyiségű üzenetet, szimulálva például a hibás SMS-eket, vagy a kikapcsolt és a megtelt memóriájú mobilokat.?/p:

A tesztelés egyik további érdekessége, hogy a Köztelek utca környékén mobiltelefonunkkal találhatunk érdekes hálózatokat, melyeket tesztelésre használnak. Állítólag létezik egy rejtélyes, csak ritkán fellelhető angliai (+44-es) hálózat is arrafelé. Ha esetleg erre rábukkannánk, a dolog természetesen nem jelenti, hogy "English man in Hungary"-ként a Köztelek utcáról az otthon ülő feleségünkkel hazai (vagyis angol) tarifával tudunk beszélni, hiszen a hálózat nem valós, az MSC nincs a külvilághoz kapcsolva. Ha azonban még egy +44-es szám (értsd: egy másik teszttelefon) bejelentkezik ott (feltéve, hogy az IMSI engedélyezve van az MSC-n, mert különben be sem engedi a hálózatba), akkor már direkt módon létrejöhet a két fél közötti kapcsolat.

Fejlesztések

Az SMSC-fejlesztések akutális csapásírányát jelenleg a B-Subscriber funkciók jelentik. Ezek segítségével tudunk majd SMS-t más számra továbbítani, esetleg carbon copy-t kérni egy másik számra, vagy ha kedvünk támad, letilthatunk bizonyos számokat, amelyekről nem kívánunk üzenetet kapni. A fejlesztők SMS-hez csatolható reklámlehetőségen is dolgoznak. Az eredeti üzenethez illesztett marketingcélú pluszkarakterek jövőbeni sikere a felhasználók oldaláról igencsak kétséges, ám szakértők egybehangzó véleménye szerint az SMS-reklám igencsak gyerekcipőben jár még. Felmerült egy olyan ötlet is, mely szerint a status report szöveges lenne, és tartalmazna reklámot. Majd meglátjuk.

Véleménye van?

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról