Kolm samaaegset ühendust on vastuvõtmisotsus ja sellele vastamiseks tuleb teada, millised pesad on praegu hõivatud, mitte seda, mis juhtus eelmisel kuul. Teenus saab neljanda seansi tagasi lükata väikese aktiivsete kirjete tabeli põhjal ega pea üldse ajatelge looma. See on väide mehhanismi, mitte operaatori kohta, ja see vahe on oluline, kui loed privaatsuspoliitikat. Alljärgnev mudel näitab, mida otsus vajab ja mida saab kõrvale jätta.

Mehhanism: pesatabel, mitte logi

Lihtsaim teostus seob tellimuse kuni kolme aktiivse seansikirjega. Iga vastuvõetud seanss võtab ühe pesa ja pesa vabastatakse, kui teenus otsustab, et see seanss on lõppenud. Kirje vajab identiteeti, mis on piisavalt spetsiifiline, et ühe ühenduse vabastamine ei vabastaks teise ühenduse pesa; seetõttu on seansiidentifikaator tähtsam kui kontonimi.

Hõivatus ja ajalugu on erinevad andmestruktuurid. Hõivatus vastab praeguse aja jah- või-ei küsimusele ja selle võib kõrvale jätta hetkel, mil seanss lõpeb. Ajalugu on ainult lisatav sündmuste voog ja see püsib, sest keegi otsustas selle alles hoida. Teenusel võib olla kumbki, mõlemad või mitte kumbki.

Erinevus on väljast nähtamatu. Nähtav ühenduspiir sobib kokku tillukese mälusisese loenduriga, jagatud andmebaasitabeliga ja täieliku sündmusarhiiviga koos juhtpaneeliga. Miski piiri juures ei ütle, milline neist töötab.

What is storedWhy it exists
Active session slotsTo admit or refuse the next connection
Session event logTo investigate or bill later
Monitoring seriesTo watch capacity and error rates
Backup copiesTo restore any of the above

Miks reaalajas mudel vajab siiski koordineerimist

Kadunud ühendust ei pruugita kohe lõppenuks tunnistada. Lüüs ootab ajalõppu, keepalive-tõrget või arvestuse lõpetamist ja seni, kuni üks neist saabub, jääb pesa hõivatuks. Kasutaja, kes selle akna jooksul uuesti ühendub, näeb keeldumist, millel pole neljanda seadmega midagi pistmist.

Taaskäivitatud server peab oma oleku ühitama ja mitmel sama kontot teenindaval lüüsil on vaja ühist otsust. Muidu võib konto oma kvooti ületada, ühendudes erinevatesse asukohtadesse. Jagatud või taastatav olek lahendab selle ja jagatud olek on projekteerimisnõue, mitte järelevalve tõend.

Miski selles koordineerimises ei nõua sirvimisajalugu. Pakette edastav lüüs ei pea seansside loendamiseks teadma, milliseid saite seanss külastas, ja neid kahte andmevoogu töötlevad tavaliselt täiesti erinevad komponendid.

Loenduri hoidmine mälus ei muuda seotud fakte ka anonüümseks. Teenuse töötamise ajal paljastab tellimusega seotud kirje, et kontol on aktiivsed ühendused, ning nii juurdepääs sellele olekule kui ka selle eluiga väärib küsimist.

Kuhu olek pärast läheb

Privaatsusküsimus ei ole, kas server suudab loendada. Küsi, mis juhtub lõppenud seansiga: kas kirje eemaldatakse või muutub see sündmuseks jälgimisseerias? Seejärel küsi, millised teised komponendid nägid sama sündmust, sest autentimislogid, arvestuskirjed ja varukoopiad võivad igaüks hoida koopiat, mille jõustamistee kõrvale jättis.

RADIUS-arvestus on kõige selgem näide. Start- ja Stop-paar on olemas arvelduse ja seansihalduse toetamiseks ning see loob ühendusest kirje sõltumata sellest, kas keegi seda kunagi ajaloona pärib. Teenus, mis jõustab piire arvestuse kaudu, säilitab seega konstruktsiooni tõttu rohkem kui pesatabeli.

Kustutamisel on samuti kuju. Reaalajas tabelist eemaldatud kirje võib püsida tund varem tehtud varukoopias ja selle varukoopia säilitusaeg on omaette poliitikaavaldus. Ainult põhisalvestuse lugemine annab puuduliku vastuse.

Esitage küsimus väljade kaupa

RFC 6973 andmete minimeerimise juhis seob kogutud ja salvestatud andmed teenitava eesmärgiga. Siin rakendatuna on kasulik küsimus, milliseid välju samaaegse vastuvõtu ülesanne tegelikult vajab ja milline eesmärk õigustab igaühe hoidmist pärast selle ülesande lõppu.

Täpne teenusekirjeldus eraldab kvoodi jõustamiseks kasutatava reaalajas ühenduse oleku mis tahes pärast lõpetamist säilitatavatest kirjetest ja nimetab teised süsteemid lubaduse ulatuses. Lause, mis ütleb ainult, et kolme ühendust jõustatakse, ei tõenda ei arhiivi olemasolu ega selle puudumist.

Kui elutsükkel on ebaselge, kirjuta see vastamata säilitusküsimusena, mitte otsusena. Piiri olemasolu ei ole tõend varjatud ajaloo kohta ja usutav reaalajas oleku seletus ei ole teenusepakkuja audit.

Seotud artiklid