Bejegyzés

Nem tudok meghalni, mert van egy Herald Tribune előfizetésem

Évek óta problémát jelent nagyvállalati ügyfeleinknél, hogy szoftverünk nagy terhelés mellett elég sok memóriát fogyaszt. Enterprise ügyfeleinknek nem illik mondani, hogy 4 naponta indítsák újra a felhasználói alkalmazást (apropó, Winword működik 4 napig?). Nem programozó kollégák is kíváncsiak voltak arra, hogy mi okozza a problémát. De hogy beszéljek nekik az agysebészet rejtelmeiről, ha nem láttak még orvosi műtőt belülről? Találtam azonban egy hasonlatot

Egy sztori, mint hasonlat:

“Nem tudok meghalni, mert van egy újság előfizetésem a Herald Tribune-nél. A kiadó tudja a címemet, ezért ha a kaszás jönne értem, nem vihet el, mert akkor a címen nem lakik senki! A halotti anyakönyvi kivonat persze automatikusan lemondja az előfizetést, de azt nem állítják ki, amíg élek.”

Van erre egy programozói kifejezés, Dead lock (vegyük észre benne a dead szót!), azaz a függőségek egymáshoz vannak láncolva. De mit is takar ez programozói szempontból és miért fontos ez most nekünk?

“Profi programozó nem használ Pascal nyelvet” tartja a mondás, pedig a memória problémák ott sokkal egzaktabbul kiküszöbölhetőek. Mi C# nyelvet használunk, amely kényelmes, gyorsan fejleszthető, kézre áll, sok benne az automatikus dolog. Például a memória felszabadítás. Na pont ez a probléma!

 

Esemény hivatkozások láncolata

Egy főiskolai vizsgaprogram, amely egy négy táblás adatbázisban valósít meg egy videotéka nyilvántartást, vélhetően nem fog sok memóriát lefoglalni, sőt esemény hivatkozásokat (event/delegate) sem fog tartalmazni. Nagyobb rendszerek viszont ezek nélkül nem képzelhetőek el! A Symbol Ügyvitel moduljai is számos eseményre feliratkoznak, hogy értesüljenek a programban bekövetkezett változásokról. Például új terméket választottam ki a számla tételben, ennek mennyiségi egységét, ÁFA kulcsát, árait a rendszer kérje le és frissítse.

A probléma ott áll elő, amikor a feliratkozott objektumra (az újság előfizetőjére) már nincs szükség. A rendszerbe beépített kaszás (Garbage Collector) viszont nem tudja őt a másvilágra küldeni, mert van egy előfizetése! Logikus lenne a “véget ér lassan az életem” állapotban az előfizetést lemondani, de ezt az állapotot nehéz felismerni. Mindenki sokáig akar élni!

I. Megoldás 

Megoldás lehetne a WeakReference Event, amely egy laza előfizetés. Ha látóköröm kívül kerül az előfizető, akkor az azonnali lemondással jár. Végre szabadon mozoghatok, akár meg is halhatok, nincs kötöttségem. De mégis van! Ha látótávolságon kívülre kerülök, akkor több újságot nem kapok. Így még a sarki boltba sem mehetek le, mert már nem lát az újság kiadója.

 

II. Megoldás

A megoldást nem árulom el (szakirodalom szerint nincs is egzakt megoldás, csak helyzetfüggő), de annyi biztos, hogy Symbol Ügyvitel rendszerünkben sikerült drasztikusan csökkenteni a kószáló, halálra váró, de előfizetéssel rendelkező “dolgok” számát.

 

Biztos nem volt nehéz…

A dolog nem volt egyszerű! A feliratkozások szálai olyan mélységekbe vezettek, hogy az újság kiadója sem tudta megmondani, hogy ki és mire fizetett elő. Talán az újságra már nem fizetek elő, de egy benne lévő melléklet miatt mégis kapom az újságot. Vagy az újság mellékletének egyik almelléklete miatt kapom a lapot úgy, hogy a kiadót egy nagyobb kiadó már megvette, ezzel átvéve az előfizetői listát.

 

Kinyomoztuk

Nem biztos, hogy teljesen a végére jutottunk, de a halálesetek (amik ebben a környezetben szükségesek) számát jelentősen növelni tudtuk, az eddigi túlnépesedést megállítottuk.

Örülünk Vincent? (Ponyvaregény 1984)

Symbol Tech 2012#1: VoIP

A 2012-es évre négy, a céget érintő változást ígértünk. Az első ilyen a most lezárult VoIP telefonközpont átállásunk. Kis lépésnek tűnhet az ügyfeleknek, de nagy lépés volt nekünk. A bejegyzésben részletesen le is írom, hogy miért.

Minden induló vállalkozás a kollégák, vezetők mobiltelefonjait használja kapcsolattartásra. Ez velünk is így volt. Az új kollégák is mobiltelefonokat kaptak, hiszen ez flottában olcsó, belső beszélgetés ingyen van. A weboldalra azonban nem szerencsés egy mobilszámot kirakni. Sokan a személyes kapcsolattartás lehetőségére hivatkozva teszik ezt. Mi amellett döntöttünk, hogy a kapcsolattartás stílusa legyen személyes, de a módja legyen céges!

10 évvel ezelőtt nem volt ritka, hogy a több száz-ezer Forintos könyvelő rendszerekhez lehetett hívni “A programozót”. Ő volt az ügyvezető, ő fejlesztett, ő szállt ki az ügyfelekhez. És ő is betegedett meg, amikor jött a tél. Így az egyszemélyes cég nem tudott működni.


Symbol Tech, mint cég

Mi a kezdetektől céges formában lépünk fel ügyfeleink előtt. Amikor a cégméretünk elérte a kritikus szintet, nem volt kétséges, hogy valamilyen központi rendszerben kell gondolkodni és a központi számot kell közzétenni. Évek óta jelen van a piacon a VoIP, mint megoldás. Sőt elárulom, hogy a mezei analóg vonalak is csak az első póznáig analógok, onnan digitális jeltovábbítással (tipikusan IP alapon) meg tovább a jel. Mi is a VoIP mellett tettük le a voksunkat!

A VoIP számos előnyt kínált nekünk azon túl, hogy lehet vele telefonálni:

1. Dinamikusan tudjuk bővíteni a mellékek számát. A kollégáink egy része soft-phone-t használ, azaz a számítógépre telepített hívásfogadó és indító programmal tudnak beszélgetni. Mint egy Skype kliens, de a céges telefonközpontra kapcsolódik.

2. Távmunka lehetőséget biztosítunk. Bárki, bárhonnan be tud lépni a saját soft-phone-jával a céges VoIP központba és helytől függetlenül a saját mellékén tud hívást fogadni és indítani. Ez a megoldás a külföldről való telefonálást is ingyenessé teszi (nincs plusz költsége, hogy a mellékemet épp külföldről csatlakoztatom a központhoz).

3. Nem kell vezetékezni. A meglévő hálózati infrastruktúra (100MB/1GB, épületen belül üveg) kiszolgálja a VoIP igényeket, nem kell telefonvezetékeket kihúzni.

4. IVR. A hangos menü, azaz a kellemes hang, amely felsorolja a választható menüket a VoIP mellékterméke. Enélkül szinte nem is árulnak VoIP megoldást. Kihasználtuk és elkülönítettük 1-4-ig az üzletágakat. A hang tulajdonosa Moser Károly.

5. Hívásrögzítés. A marketingeseink a hívások tartalma alapján tanácsokat tudnak adni a kollégáknak, hogy milyen módon finomítsák a mondanivaló jellegét, hangszínét. Erre eddig nem volt lehetőségünk. A rögzített hívások az ügyfelekkel való vitás esetek rendezésére is alkalmasak (eddig nem volt ilyen igény, ne is legyen rá szükség)

 

Szabvány ide vagy oda, voltak buktatók

Hiába szabvány az egész világ, a VoIP bevezetése hónapokat vett igénybe. A hangátvitel elég érzékeny. Speciális router (egyik hálózati elemünk) kellett hozzá, hogy a beszélgetések ne szakadjanak meg, ne akadozzon az ügyfél hangja. A U**-s hálózatból nem lehetett melléket választani, mert annyira nem SIP kompatibilisek a csomagjaik. Ezt is megoldottuk, de sok időbe telt.

 

Milyen előnyökkel jár még a VoIP?

Nem is mi lennénk, ha nem indulna be a fantáziánk egy digitális eszköz láttán. A LAB-os kollégák gyorsan meglátták benne a lehetőséget: “A telefon kiírja az ügyfél számát, de vajon ki lehet ez az ügyfél és milyen terméket vásárolt nálunk?”. Pár nap alatt integrálták a bejövő hívásokat (mellékekre bontva) képernyőn megjelenítő Symbol Ügyvitel kiegészítőt. Az értékesítés vagy az ügyfélszolgálat körben-forgó csengetése közben lehet látni, hogy melyik ügyfél hív minket, milyen Symbol Ügyvitel terméke van, mennyi a kintlévősége és érvényes-e még a termékkulcsa. Sőt, az értékesítők nem fogják az ügyfelet egymás között kapcsolgatni, mindenki tudja, hogy melyik ügyfelet ki “szokta felvenni”.

 

Nem kell ódzkodni!

Sokuknak lehet rossz tapasztalata az IVR-ekkel kapcsolatban, de a választható menü kevesebb átkapcsolást jelent, mai kornak megfelelő ügyfélirányítást valósít meg. A Symbol Tech egyre magasabb szintű ügyfél kiszolgálásra törekszik, ennek első lépése a céges szintű fellépés és az IVR.