Kryptoautomaattiparkin pyörittäminen: käteinen, kasetit, vaatimustenmukaisuus
Kryptoautomaatti on kahteen suuntaan toimiva pankkiautomaatti: asiakas syöttää seteleitä ja saa kryptoa tai lähettää kryptoa ja ottaa seteleitä. Niiden parkin pyörittäminen on logistiikkaliiketoimintaa ohjelmistokäyttöliittymän takana. Näyttö hinnoittelee ja vahvistaa, mutta vaikeat osat ovat fyysisiä – kaseteissa lepäävä käteinen, koneet paikoissa, joissa et ole, ja jokaisessa kaapissa tapahtuva vaihto, jonka on täsmättävä senttiin asti. Kuka tahansa, joka pitää kryptoautomaattia sovelluksena, on katsonut vain helppoa puolta.
Tämä on siis purkuanalyysi operatiivisesta puolesta: kaapin sisällä olevat kaksi osajärjestelmää, lasin takana tapahtuva vaihto, kasetit, joita kukaan ei laita demoon, parkista muodostuva ennustusongelma sekä kurinalaisuus, jolla hallitaan ja täsmäytetään koneita, joita ei näe.
Kaksi konetta yhdessä kaapissa
Kryptoautomaatti on oikeastaan kaksi yhteen liitettyä osajärjestelmää: käteiskäsittelykone – setelinvastaanotin, validaattori, annostelija tai kierrättäjä ja setelit sisältävät kasetit – sekä kryptopääte – lompakko, verkkoyhteys ja näyttö, joka hinnoittelee ja vahvistaa. Osto kulkee käteisestä kryptoon: asiakas syöttää seteleitä, validaattori laskee ja pinoaa ne, ja kone lähettää kryptoa asiakkaan lompakkoon. Myynti kulkee kryptosta käteiseen: asiakas lähettää kryptoa koneen osoitteeseen, ja siirron vahvistuttua annostelija laskee setelit kasetista. Kaikki vaikea on kohdassa, jossa nämä kaksi puolta kohtaavat, koska setelit ovat fyysisiä ja peruuttamattomia pinottuina, kun taas krypto on digitaalista ja peruuttamatonta vahvistettuna – eikä kone saa sitoutua kumpaankaan puoleen, ennen kuin toinen on varma.
Vaihtotapahtuma automaatin äärellä
Jokaisella laitteella tapahtuu vaihto, ja sitä ohjaa sama lukitun kurssin periaate kuin tiskipäätettä: näyttö ilmoittaa kurssin ja pitää sen voimassa istunnon ajan laskurin kanssa, ja asiakas toimii tuota kurssia vastaan tai istunto hinnoitellaan uudelleen. Järjestys on turvamalli. Oston yhteydessä laite luovuttaa kryptoa vasta, kun setelit on validoitu ja pinottu — ei pelkästään syötetty, sillä vielä escrow-kurkussa oleva seteli ei ole vielä rahaa. Myynnin yhteydessä se ei anna ulos yhtään seteliä, ennen kuin saapuvalla siirrolla on riittävästi vahvistuksia, koska ulos annettua seteliä ei saa takaisin. Peruuttamaton toimi tehdään aina viimeisenä, vasta kun toinen puoli on lopullinen. Jos järjestys menee väärin, olet rakentanut laitteen, joka antaa kryptoa seteleistä, joita se ei koskaan saanut, tai käteistä siirrosta, joka ei koskaan saapunut.
Kasetit: fyysinen puoli, jota kukaan ei demoa
Käteinen on kaseteissa — irrotettavissa seteliLaatikoissa, tyypillisesti yksi per nimellisarvo, jotka asetetaan laitteeseen. Kierrättäjä (recycler) voi maksaa ulos samat setelit, jotka se otti vastaan; yksinkertaisempi automaatti ottaa vain operaattorin lataamista kaseteista. Jokaisella kasetilla on kaksi lukua: ohjelmiston uskoma määrä ja fyysisesti todellinen määrä. Operaattorin koko työ yhteen lauseeseen tiivistettynä on pitää nämä kaksi samoina. Jokainen hyväksytty seteli kasvattaa uskottua määrää, jokainen ulos annettu pienentää sitä, ja käteiskeräyskäynti nollaa sen fyysistä laskentaa vastaan. Kun uskottu ja lasketttu määrä eroavat keräyksessä, tuo ero on laiteparven hallinnan tärkein yksittäinen luku — se on laskuvirhe, tukos tai jotain pahempaa, ja se löytyy laskemalla, ei toivomalla.
Käteistasot ja miksi laiteparvi on ennustamisen ongelma
Yksi laite on askare; laiteparvi on ennustamisen ongelma. Tyhjäksi mennyt automaatti käännyttää asiakkaat pois, ja setelinottimen täyttynyt pinoaja lopettaa käteisen vastaanoton — molemmat ovat katkoksia, eikä kumpikaan näytä virhevaloa, jonka ohikulkija huomaisi, koska laite ei yksinkertaisesti pysty suorittamaan asiakkaan haluamaa tapahtumaa. Siksi konsoli seuraa käteistasoa kasetti- ja laitekohtaisesti ja muuttaa tasot reiteiksi: mitkä kaapit tarvitsevat täytön ja mitkä tyhjennyksen, ennen kuin kumpikaan tulee vastaan. Hyvin hoidettu laiteparvi on suurelta osin arvokuljetusaikataulu — kuka ajaa minkä kaapin luo, paljonko mukanaan ja minä päivänä — ja ohjelmisto on olemassa rakentaakseen aikataulun reaaliaikaisista tasoista arvailun ja perjantai-iltapäivän paniikin sijaan.
Etälukitus ja toiminta konsolista
Laitteet seisovat paikoissa, joissa operaattoria ei ole — aulassa, myymäläkerroksessa, aseman hallissa — joten hallinnan on oltava etänä. Konsolista operaattori voi lukita yksittäisen laitteen tai koko laiteparven välittömästi, eikä lukittu laite suorita mitään uutta. Lukitus on vastaus tukokseen, epäiltyyn vikaan, käteiseroon tai laitteeseen, joka on jäädytettävä, kun joku ajaa paikalle. Avaimet ja kasetit pysyvät, missä ovat; laite vain lopettaa tapahtumat, kunnes ihminen vapauttaa sen. Periaatteena on, että vaaralliset toimet tehdään konsolista syy liitettynä ja lokiin kirjautuen — ei napauttamalla laitteen omaa näyttöä kentällä kirjaamatta, jolloin kukaan ei voi jälkikäteen selvittää, mitä tehtiin tai miksi.
Kryptoautomaattien laiteparvi ei ole ohjelmistotuote, johon on liitetty vähän laitteistoa. Se on käteislogistiikkaa, jonka edessä on näyttö — ja jokaisen sen luvun on täsmättävä seteliin, jonka voisit pitää kädessäsi.
Laitteen täsmäytys, jota et näe
Täsmäytys on päivittäinen todiste siitä, että laiteparvi on rehellinen. Jokainen laitteen istunto jättää jäljen — setelit sisään ja krypto ulos tai krypto sisään ja setelit ulos, lukittu kurssi, lompakko-osoitteet ja vahvistukset liitettyinä. Laske laitteen istunnot yhteen edellisestä keräyksestä, ja saat käteisen, joka sillä pitäisi olla; laske kasetit käynnillä, ja saat käteisen, joka sillä on; lukujen on kohdattava. Kryptopuoli täsmäytetään samoin laitteen lompakon saldoa vastaan. Laiteparvi, joka täsmäytetään laitekohtaisesti ja päivittäin, paljastaa viallisen kaapin ensimmäisenä päivänä — tukoksen, kopioinnin, laskuvirheen — sen sijaan että vaje löytyisi neljännesvuoden lopussa selittämättömänä aukkona. Laitekohtaisen pääkirjan koko tarkoitus on, että se kestää tarkastuksen juuri siksi, ettei sen annettu koskaan ajautua pois linjasta.
Compliance on operaattorin tehtävä; ohjelmisto valvoo ja kirjaa
Kryptoautomaattien laiteparven operaattori kantaa velvoitteet. Tarvittavat luvat, tehtävät tunnistautumistarkistukset ja noudatettavat tapahtumarajat vaihtelevat sen mukaan, missä kukin laite sijaitsee, ja ne kuuluvat operaattorille — eivät laitteelle eivätkä laitteen toimittajalle. Ohjelmisto tekee tarkoituksella vain mekaanisia asioita: valvoo operaattorin määrittämiä asiakas- ja päiväkohtaisia rajoja, pyytää operaattorin vaatiman tunnistautumisvaiheen operaattorin asettamasta kynnyksestä alkaen ja kirjaa jokaisen setelin, siirron ja rajapäätöksen, jotta operaattori voi myöhemmin vastata laiteparvestaan. Laite ei päätä politiikkaa; se soveltaa operaattorin politiikkaa samalla tavalla jokaisessa kaapissa ja kirjaa, mitä tapahtui. Politiikan oikeellisuus on operaattorin vastuulla. Ohjelmiston panos on tehdä politiikasta yhtenäinen ja auditoitava laiteparvessa, jota yksikään ihminen ei pysty valvomaan kerralla.
Rehellinen rajanveto
Yksittäinen laite yhdessä paikassa tuskin tarvitsee laiteparven konsolia — taulukko ja viikoittainen laskenta riittäisivät. Tämä kokonaisuus ansaitsee paikkansa laiteparven mittakaavassa, jossa luvut eivät enää mahdu yhteen päähän: käteistasot useissa kaapeissa, kasettimäärät, jotka on täsmättävä sijainneittain, etälukitus tunnin päässä oleville laitteille ja laitekohtainen pääkirja, joka kestää tarkastuksen. Yhden kaapin kanssa tämä on turhaa taakkaa; kahdenkymmenen kanssa aikataulu, täsmäytys ja etähallinta ratkaisevat, onko kyseessä liiketoiminta vai kasa kaappeja, jotka ajautuvat hitaasti epätasapainoon. Laiteparven konsoli löytyy osoitteesta /products/atm, ja termit — kasetti, kierrättäjä, täsmäytys, selvitys — ovat sivulla /glossary.
Onko sinulla rakennettava järjestelmä?
Kerro ongelma. Palaamme arkkitehtuurilla ja suunnitelmalla.