Cage Cianda Córas Rochtana Comhad

Cuspóir an chórais

Tacaíocht do chianrochtain ar chomhaid ar ríomhairí ar an líonra. Tacaíonn an córas “beagnach” le gach oibríocht bhunúsach comhad (cruthú, scriosadh, léamh, scríobh, etc.) trí idirbhearta (teachtaireachtaí) a mhalartú ag baint úsáide as an bprótacal TCP.

Iarratais

Tá feidhmiúlacht an chórais éifeachtach sna cásanna seo a leanas:

  • i bhfeidhmchláir dhúchasacha ar ghléasanna soghluaiste agus leabaithe (fóin chliste, córais rialaithe ar bord, etc.) a éilíonn rochtain thapa ar chomhaid ar fhreastalaithe cianda in aghaidh cur isteach sealadach féideartha sa chumarsáid (le dul as líne);
  • i DBMS luchtaithe, má dhéantar próiseáil fiosrúcháin ar roinnt freastalaithe, agus má dhéantar stóráil sonraí ar fhreastalaithe eile;
  • i líonraí corparáideacha dáilte chun faisnéis a bhailiú agus a phróiseáil, a éilíonn malartú sonraí ardluais, iomarcaíocht agus iontaofacht;
  • i gcórais chasta le hailtireacht micriseirbhíse, áit a bhfuil moilleanna ar mhalartú faisnéise idir modúil ríthábhachtach.

Struchtúr

Cuimsíonn an córas Cage (tá cur i bhfeidhm - leagan béite i Python 3.7 ar Windows) dhá phríomhchuid:

  1. Cageserver — clár freastalaí comhad (pacáiste feidhmeanna) a ritheann ar ríomhairí ar an líonra a dteastaíonn cianrochtain ar a gcuid comhad;
  2. rang Cage le leabharlann de mhodhanna le haghaidh bogearraí cliant, ag simpliú códú idirghníomhaíochta le freastalaithe.

Ag baint úsáide as an gcóras ar thaobh an chliaint

Tagann modhanna an ranga Cage in ionad na n-oibríochtaí córas comhaid “gnáthamh” is gnách: cruthú, oscailt, dúnadh, scriosadh comhaid, chomh maith le sonraí a léamh/scríobh i bhformáid dhénártha (a léiríonn suíomh agus méid na sonraí). Go coincheapúil, tá na modhanna seo gar d’fheidhmeanna comhaid na teanga C, áit a ndéantar comhaid a oscailt/a dhúnadh “ar chainéil” ionchuir/aschuir.

I bhfocail eile, ní oibríonn an ríomhchláraitheoir le modhanna chun rudaí “comhad” (rang _io i Python), ach le modhanna an rang Cage.

Nuair a chruthaítear sampla de réad Cage, bunaíonn sé nasc tosaigh le freastalaí (nó le roinnt freastalaithe), tá sé údaraithe ag an gCliant Aitheantas, agus faigheann sé deimhniú le huimhir phoirt tiomnaithe do gach oibríocht comhaid. Nuair a scriostar réad Cage, tugann sé treoir don fhreastalaí stop a chur le cumarsáid agus na comhaid a dhúnadh. Is féidir leis na freastalaithe féin tús a chur le deireadh a chur le cumarsáid.

Feabhsaíonn an córas feidhmíocht léamh/scríofa trí chodanna comhaid a úsáidtear go minic de chláir na gcliant a mhaolánú sa taisce RAM (maolán).
Is féidir le bogearraí cliant úsáid a bhaint as aon líon rudaí Cage le socruithe éagsúla (méid cuimhne maoláin, méid bloc agus iad ag malartú leis an bhfreastalaí, etc.).

Is féidir le réad amháin Cage cumarsáid a dhéanamh le comhaid iolracha ar fhreastalaithe iolracha. Sonraítear paraiméadair chumarsáide (seoladh IP nó freastalaí DNS, príomhchalafort údaraithe, cosán agus ainm comhaid) agus an réad á chruthú.

Ós rud é gur féidir le gach réad Cage oibriú le comhaid iolracha ag an am céanna, úsáidtear spás cuimhne roinnte le haghaidh maoláin. Tá méid taisce – líon na leathanach agus a méid, socraithe go dinimiciúil agus réad Cage á chruthú. Mar shampla, is ionann taisce 1 GB agus 1000 leathanach de 1 MB an ceann, nó 10 míle leathanach de 100 KB an ceann, nó 1 milliún leathanach de 1 KB an ceann. Is tasc sonrach é méid agus líon na leathanach a roghnú do gach cás iarratais.

Is féidir leat il-rudaí Cage a úsáid ag an am céanna chun socruithe cuimhne maoláin éagsúla a shainiú ag brath ar an gcaoi a bhfuil rochtain ar fhaisnéis i gcomhaid éagsúla. Mar cheann bhunúsach, úsáidtear an algartam maolánacha is simplí: tar éis méid áirithe cuimhne a bheith ídithe, díláithríonn leathanaigh nua na seanchinn de réir phrionsabal an scoir le líon íosta rochtana. Tá maolán éifeachtach go háirithe i gcás rochtain chomhroinnte éagothrom (sa chiall staitistiúil), ar an gcéad dul síos, ar chomhaid éagsúla, agus, ar an dara dul síos, ar blúirí de gach comhad.

Tacaíonn an rang Cage le I/O ní hamháin trí sheoltaí sonraí (a léiríonn suíomh agus fad an eagar, oibríochtaí córais comhaid “athsholáthair”), ach freisin ag leibhéal níos ísle, “fisiciúil” - de réir líon na leathanach sa chuimhne maolánach.

Tá an fheidhm bhunaidh tacaithe le haghaidh rudaí Cage "caimhriú" (“codlata”) - is féidir iad a “titim” (mar shampla, i gcás caillteanas nasc le freastalaithe, nó nuair a stoptar an feidhmchlár, etc.) isteach i gcomhad dumpála áitiúil ar thaobh an chliaint agus iad a athchóiriú go tapa ó an comhad seo (tar éis cumarsáid a atosú, nuair a atosóidh tú an feidhmchlár). Mar sin is féidir an trácht a laghdú go suntasach agus an clár cliant á ghníomhachtú tar éis dul “as líne” go sealadach, mar go mbeidh blúirí comhaid a úsáidtear go minic sa taisce cheana féin.

Tá thart ar 3600 líne de chód i gcliabhán.

Prionsabail tógála freastalaí

Is féidir freastalaithe comhad Cageserver a reáchtáil le líon treallach calafort, agus úsáidtear ceann amháin acu (“príomhlíon”) le haghaidh údarú na gcliant go léir, úsáidtear an chuid eile le haghaidh malartú sonraí. Ní éilíonn an clár freastalaí Cage ach Python. Ag an am céanna, is féidir leis an ríomhaire leis an bhfreastalaí comhad aon obair eile a dhéanamh.

Tosaíonn an freastalaí ar dtús mar bhailiúchán de dhá phríomhphróiseas:

  1. "Naisc" – próiseas chun na hoibríochtaí a chomhlíonadh chun cumarsáid a bhunú le cliaint agus chun í a fhoirceannadh ar thionscnamh ón bhfreastalaí;
  2. "Oibríochtaí" – próiseas chun tascanna (oibríochtaí) na gcliant a chomhlíonadh chun oibriú le comhaid, agus chun seisiúin chumarsáide a dhúnadh bunaithe ar orduithe na gcliant.

Níl an dá phróiseas sioncronaithe agus eagraítear iad mar lúba gan teorainn chun teachtaireachtaí a ghlacadh agus a sheoladh bunaithe ar scuainí ilphróisis, seachfhreastalaí, glais agus soicéid.
Leithdháileann an próiseas Nasc calafort ar gach cliant chun sonraí a fháil agus a tharchur. Socraítear líon na gcalafort nuair a thosaíonn an freastalaí. Stóráiltear an mhapáil idir calafoirt agus cliaint i gcuimhne seachfhreastalaí roinnte idirphróisis.

Tacaíonn an próiseas Oibríochtaí le comhroinnt acmhainní comhaid ionas gur féidir le cliaint éagsúla éagsúla a roinnt (leath-chomhthreomhar, ós rud é go bhfuil rochtain á rialú ag glais) léigh sonraí ó chomhad amháin má cheadaítear é seo nuair a d'oscail an cliant "an chéad" é ​​ar dtús.

Déantar próiseáil orduithe chun comhaid ar an bhfreastalaí a chruthú/a scriosadh/a oscailt/a dhúnadh sa phróiseas “Oibríochtaí” féin go docht seicheamhach ag baint úsáide as fochóras comhaid an fhreastalaí OS.

Chun léitheoireacht/scríbhneoireacht a bhrostú go ginearálta, déantar na hoibríochtaí seo i snáitheanna a sceitheann an próiseas “Oibríochtaí”. Is gnách go mbíonn líon na snáitheanna comhionann le líon na gcomhad oscailte. Cuirtear tascanna léamh/scríobh ó chliaint isteach sa scuaine ghinearálta agus tógann an chéad snáithe in aisce an tasc óna cheann. Ceadaíonn loighic speisialta duit oibríochtaí athscríobh sonraí a dhíchur i RAM an fhreastalaí.

Déanann an próiseas Oibríochtaí monatóireacht ar ghníomhaíocht cliant agus stopann sé iad a sheirbhísiú de réir a n-orduithe nó nuair a sháraítear an teorainn ama neamhghníomhaíochta.

Chun iontaofacht a chinntiú, coimeádann Cageserver logaí de gach idirbheart. I loga ginearálta amháin tá cóipeanna de theachtaireachtaí ó chliaint le tascanna chun comhaid a chruthú / a oscailt / a athainmniú / a scriosadh. Cruthaítear loga ar leith do gach comhad oibre, ina dtaifeadtar cóipeanna de theachtaireachtaí le tascanna le léamh agus le scríobh sonraí sa chomhad oibre seo, chomh maith le eagair de shonraí scríofa (nua) agus eagair sonraí a scriosadh le linn forscríobh (scríobh sonraí nua “ar bharr” na sean). ).

Soláthraíonn na logaí seo an cumas athruithe nua a chur ar ais ar chúltacaí agus ábhar reatha a rolladh siar go pointe san am a chuaigh thart.

Tá thart ar 3100 líne de chód ag Cageserver.

Cage Cianda Córas Rochtana Comhad

Ag seoladh an chláir freastalaí comhad Cageserver

Agus tú ag tosú, sa dialóg is gá duit a shainiú:
— an príomhchalafort le haghaidh údaraithe;
— líon na gcalafort chun idirbhearta a mhalartú le cliaint údaraithe (ó 1 nó níos mó, tosaíonn an chomhthiomsú uimhreacha ón gceann in aice leis an bpríomhuimhir phoirt).

Ag baint úsáide as an Rang Cage

ranga cage.Cage( cage_name="", pagesize=0, numpages=0, maxstrlen=0, server_ip={}, fan=0, dúisigh=Bréagach, cache_file="" )

Cruthaítear réada ón aicme seo a idirghníomhaíonn le freastalaithe comhad agus a bhfuil cuimhne mhaoláin iontu.

Paraiméadair

  • cage_ainm(str) - ainm coinníollach an ruda, a úsáidtear chun cliaint a aithint ar thaobh an fhreastalaí
  • leathanaigh(int) — méid leathanach amháin de chuimhne mhaoláin (i mbeart)
  • uimhreacha(int) — líon na leathanach cuimhne maolánach
  • maxstrlen(int) - uasfhad teaghrán beart in oibríochtaí scríobh agus léamh
  • freastalaí_ip(dict) - foclóir le seoltaí na bhfreastalaithe a úsáidtear, áit arb é an eochair ainm coinníollach an fhreastalaí (aitheantas an fhreastalaí laistigh den fheidhmchlár), agus is teaghrán é an luach leis an seoladh: “seoladh IP:port” nó “DNS: port” (is sealadach é comparáid ainmneacha agus seoltaí réadacha, is féidir é a athrú)
  • fanacht(int) — am feithimh le freagra ón bhfreastalaí nuair a fhaigheann tú poirt (i soicindí)
  • awake(Boole) — bratach faoin gcaoi a gcruthaítear an réad (Bréagach - má chruthaítear réad nua, True - má chruthaítear réad ó réad “titithe” roimhe seo - ag baint úsáide as an oibríocht “caibriú”, Bréagach de réir réamhshocraithe)
  • taisce_chomhad(str) - ainm comhaid le haghaidh geimhridh

Modhanna

Cage.comhad_cruthaigh( freastalaí, cosán ) – cruthaigh comhad nua

Cage.comhad_athainmnigh( freastalaí, cosán, ainm_nua ) – athainmnigh an comhad

Cage.comhad_bhaint( freastalaí, cosán) - comhad a scriosadh

Cage.oscailt( freastalaí, cosán, mod ) - comhad a oscailt

Tuairisceáin fchannel uimhir chainéil. Paraiméadar mod - is é seo an modh oscailt comhad: "wm" - eisiach (léamh/scríobh), "rs" - inléite amháin, agus roinnte le léamh ag cliaint eile amháin, "ws" - léamh/scríobh, agus roinnte le léamh ag cliaint eile amháin cliaint eile.

Cage.gar (fchannel) – dún an comhad

Cage.scríobh (fchannel, tús, sonraí ) – teaghrán beart a scríobh chuig comhad

Cage.léamh (fchannel, tús, len_data ) – léamh teaghrán beart ó chomhad

Cage.cuir_leathanaigh ( fchannel ) – “brúigh” ón maolán go dtí an freastalaí gach leathanach den chainéal sonraithe a athraíodh. Úsáidtear é ag na pointí sin san algartam nuair is gá duit a bheith cinnte go ndéantar gach oibríocht ar an gcainéal a shábháil go fisiciúil i gcomhad ar an bhfreastalaí.

Cage.bhrú_all () – “brúigh” ón maolán go dtí an freastalaí gach leathanach de gach cainéal le haghaidh sampla den aicme Cage a athraíodh. Úsáidtear é nuair is gá duit a bheith cinnte go ndéantar gach oibríocht ar gach cainéal a shábháil ar an bhfreastalaí.

Foinse: will.com

Add a comment