Cage Remote File Access System

Faʻamoemoe polokalama

Lagolago mo avanoa mamao i faila i komepiuta i luga o le upega tafailagi. O le faiga "toetoe lava" e lagolagoina uma faila faila (fausia, tapeina, faitau, tusitusi, ma isi) e ala i le fefaʻasoaaʻi o fefaʻatauaiga (feʻau) e faʻaaoga ai le TCP protocol.

Talosaga

Ole fa'atinoga ole faiga e aoga ile tulaga nei:

  • i totonu o talosaga masani mo masini feaveaʻi ma masini faʻapipiʻi (smartphones, on-board control system, etc.) e manaʻomia vave ona maua faila i luga o sapalai mamao i le feagai ai ma ni faʻalavelave le tumau i fesoʻotaʻiga (faʻatasi ai ma le alu offline);
  • i DBMS utaina, pe afai o loʻo faʻatinoina fesili i luga o nisi o sapalai, ma faʻapipiʻi faʻamaumauga i luga o isi;
  • i totonu o fesoʻotaʻiga tuʻufaʻatasia tuʻufaʻatasia mo le aoina ma le faʻaogaina o faʻamatalaga, e manaʻomia ai le televave o fefaʻatauaiga o faʻamatalaga, toe faʻaleleia ma faʻamaoni;
  • i faiga fa'alavelave fa'atasi ai ma fa'ata'ita'iga microservice, lea e fa'atuai ai le fa'atuai o fa'amatalaga i le va o modules.

Faʻavae

O le Cage system (o loʻo i ai se faʻatinoga - beta version i le Python 3.7 i luga o Windows) e aofia ai vaega autu e lua:

  1. Cageserver - se polokalame faila faila (o se afifi o galuega) o loʻo taʻavale i luga o komepiuta i luga o le upega tafailagi o loʻo manaʻomia e faila le avanoa mamao;
  2. класс faga fa'atasi ai ma se faletusi o metotia mo polokalama fa'akomepiuta, fa'afaigofie le fa'avasegaina o feso'ota'iga ma 'au'aunaga.

Fa'aogaina le faiga ile itu ole tagata o tausia

O metotia a le vasega Cage e sui ai le masani, "masani" faiga faila faila: foafoaina, tatala, tapunia, tapeina faila, faapea foi faitau/tusi fa'amaumauga ile fa'asologa fa'alua (faʻaalia le tulaga ma le tele o faʻamaumauga). I le faʻataʻitaʻiga, o nei metotia e latalata i faila faila o le gagana C, lea o loʻo faʻatinoina ai faila tatala / tapunia "i luga o ala" o le faʻaoga / gaioiga.

I se isi faaupuga, e le galue le tagata fai polokalame i metotia o mea "faila" (vasega _io i le Python), ae faʻatasi ai ma metotia o le vasega Cage.

Pe a faia se faʻataʻitaʻiga o se mea o le Cage, e faʻavaeina se fesoʻotaʻiga muamua ma se 'auʻaunaga (poʻo ni nai 'auʻaunaga), e faʻatagaina e le Client Id, ma maua le faʻamaoniga ma se numera faʻamaonia mo faila uma. A tape se mea Cage, e faʻatonuina le server e taofi le fesoʻotaʻiga ma tapuni faila. Fa'amutaina feso'ota'iga e mafai fo'i ona amataina e le 'au'aunaga lava latou.

O le faiga e faʻateleina le faitau / tusitusi faʻatinoga e ala i le faʻapipiʻiina o faila faila e masani ona faʻaaogaina o polokalama a tagata o tausia i totonu ole RAM cache (buffer).
E mafai ona fa'aogaina e le polokalama fa'akomepiuta so'o se numera o mea o le Cage ma fa'atulagaga eseese (fa'amaufa'ailoga le tele, poloka poloka pe a fesuia'i ma le server, ma isi).

E mafai e se mea e tasi Cage ona fesoʻotaʻi ma faila e tele i luga o le tele o sapalai. Fesoʻotaʻiga fesoʻotaʻiga (tuatusi IP poʻo le DNS server, taulaga autu mo le faʻatagaina, ala ma le igoa faila) o loʻo faʻamaonia pe a fatuina le mea.

Talu ai o mea ta'itasi Cage e mafai ona galue i faila e tele i le taimi e tasi, e fa'aogaina avanoa fa'asoa mo le fa'apolopolo. Ole tele ole Cache – ole numera o itulau ma lo latou lapopoa, e fa'atulaga malosi pe a fatuina se mea Cage. Mo se faʻataʻitaʻiga, o le 1 GB cache e 1000 itulau o le 1 MB taʻitasi, poʻo le 10 afe itulau o le 100 KB taʻitasi, poʻo le 1 miliona itulau o le 1 KB taʻitasi. Filifilia le tele ma le numera o itulau o se galuega faʻapitoa mo mataupu faʻaoga taʻitasi.

E mafai ona e fa'aogaina le tele o mea o le Cage i le taimi e tasi e fa'amatala ai fa'aputuga fa'amaufa'ailoga eseese e fa'atatau i le auala e maua ai fa'amatalaga i faila eseese. I le avea ai o se faʻavae, o le faʻaoga faigofie faʻapipiʻi algorithm e faʻaaogaina: a maeʻa se aofaʻi o le manatua ua vaivai, o itulau fou e suia ai itulau tuai e tusa ai ma le mataupu faavae o le litaea ma se numera maualalo o avanoa. O le fa'apolopolo e sili ona aoga i le tulaga o le le tutusa (i se tulaga fa'afuainumera) avanoa fa'asoa, muamua, i faila eseese, ma, lona lua, i vaega o faila ta'itasi.

E lagolagoina e le vasega Cage le I / O e le gata i tuatusi faʻamatalaga (faʻaalia le tulaga ma le umi o le laina, "suia" faʻaogaina o faila faila), ae faʻapea foʻi i se tulaga maualalo, "faʻaletino" - e ala i numera o itulau i faʻamaufaʻailoga.

O le galuega muamua e lagolagoina mo mea faitino Cage "moemoe" ("moe") - e mafai ona "pa'ū" (mo se faʻataʻitaʻiga, i le tulaga o le leiloa o le fesoʻotaʻiga ma 'auʻaunaga, poʻo le taimi e taofi ai le talosaga, ma isi) i totonu o se faila faʻapitonuʻu i le itu o le kalani ma toe faʻaleleia vave mai. lenei faila (pe a uma ona toe amata le fesoʻotaʻiga, pe a toe amata le talosaga). O le mea lea e mafai ai ona faʻaitiitia le faʻaitiitia o feoaiga pe a faʻagaoioia le polokalama o le kalani pe a maeʻa le "offline" mo se taimi le tumau, talu ai o faila faila e masani ona faʻaaogaina o le a i totonu o le cache.

Cage e tusa ma le 3600 laina o code.

Mataupu faavae o le fausiaina o le server

O faila faila Cageserver e mafai ona faʻatautaia ma se numera faʻapitoa o ports, o se tasi o ia ("autu") e faʻaaogaina mo naʻo le faʻatagaina o tagata faʻatau uma, o isi e faʻaaogaina mo fefaʻatauaiga o faʻamatalaga. O le polokalame Cage server e manaʻomia naʻo le Python. I se tulaga tutusa, o le komepiuta ma le faila faila e mafai ona faia soʻo se isi galuega.

O le 'au'aunaga e amata i le amataga o se fa'aputuga o fa'agasologa autu e lua:

  1. "So'oga" - o se faʻagasologa mo le faʻatinoina o faʻagaioiga o le faʻavaeina o fesoʻotaʻiga ma tagata faʻatau ma faʻamutaina i le faʻamoemoe a le 'auʻaunaga;
  2. "Galue" – o se faiga mo le faatinoina o galuega (gaoioiga) a tagata e galulue ai ma faila, faapea foi ma le tapunia o fesootaiga e faavae i luga o poloaiga a le tagata o tausia.

O faiga uma e lua e le o fa'amaopoopoina ma ua fa'atulagaina o ni fa'amaufa'ailoga e le gata o le mauaina ma le lafoina o fe'au e fa'avae i luga o fa'asologa tele, mea sui, loka ma sockets.
Ole fa'agasologa ole Feso'ota'iga e tu'ufa'atasia se uafu mo tagata ta'itasi e maua ma fa'asalalau fa'amaumauga. Ole numera o ports e seti pe a amata le server. O le fa'afanua i le va o ports ma tagata fa'atau o lo'o teuina i totonu o le interprocess-shared proxy memory.

O le fa'agaioiga Fa'agaioiga e lagolagoina le fa'asoaina o punaoa faila ina ia mafai e le tele o tagata fa'atau eseese ona fa'asoa (fa'atutusa, talu ai o le avanoa e pulea e loka) faitau faʻamatalaga mai le tasi faila pe a faʻatagaina lenei mea ina ua tatalaina muamua e le "muamua" kalani.

Faʻatonuina o faʻatonuga e fatu / tape / tatala / tapunia faila i luga o le 'auʻaunaga o loʻo faʻatinoina i le "Galue" faʻagasologa lava ia faʻasolosolo faʻaogaina le faila faila o le OS server.

Ina ia masani ona faatelevave le faitau / tusitusi, o nei gaioiga o loʻo faia i filo faʻatupuina e le "Galue" faiga. Ole numera o filo e masani ona tutusa ma le numera o faila tatala. Faitau/tusi galuega mai tagata fa'atau e tu'uina atu i le laina lautele ma o le filo saoloto muamua e ave le galuega mai lona ulu. Fa'amatalaga fa'apitoa e mafai ai e oe ona fa'aumatia fa'amaumauga toe tusi i totonu ole RAM ole server.

O le fa'agaioiga o Fa'agaioiga e mata'ituina ai gaioiga a le tagata o tausia ma taofi le tautuaina a le o latou fa'atonuga po'o pe a sili atu le taimi e le toaga ai.

Ina ia mautinoa le faʻamaoni, Cageserver tausia ogalaau o fefaʻatauaiga uma. O le tasi ogalaau lautele o loʻo i ai kopi o feʻau mai tagata faʻatau ma galuega e fai / tatala / toe igoa / tape faila. E faia se ogalaau eseese mo faila faigaluega taʻitasi, lea o loʻo faʻamauina ai kopi o feʻau ma galuega mo le faitau ma le tusiaina o faʻamaumauga i totonu o lenei faila galue, faʻapea foʻi ma faʻasologa o faʻamaumauga tusitusia (fou) ma faʻasologa o faʻamaumauga na faʻaumatia i le taimi o le overwriting (tusitusi). faʻamatalaga fou "i luga" o mea tuai). ).

O nei ogalaau e maua ai le malosi e toe faʻafoʻi ai suiga fou i faʻamaumauga ma toe faʻafoʻi mea o loʻo iai nei i se tulaga i le taimi ua tuanaʻi.

Cageserver e tusa ma le 3100 laina ole code.

Cage Remote File Access System

Tatalaina le polokalame faila faila Cageserver

A amata, i le talanoaga e tatau ona e faʻamalamalamaina:
— uafu autu mo le faatagaga;
- le numera o ports mo fefaʻatauaʻiga fefaʻatauaʻiga ma tagata faʻatagaina (mai le 1 pe sili atu, o le vaitaele o numera e amata mai le tasi e sosoo ma le numera o le taulaga autu).

Fa'aaogaina o le Vasega Fale

vasega pafaga( cage_name="", pagesize=0, numpages=0, maxstrlen=0, server_ip={}, faatali=0, awake=Sese, cache_file="" )

O meafaitino e faia mai lenei vasega e fegalegaleai ma faila faila ma o lo'o iai le fa'amanatuga.

le faataamilosaga

  • igoa_cage(f) - igoa faʻamaonia o le mea faitino, lea e faʻaaogaina e faʻamaonia ai tagata faʻatau i le itu o le server
  • tele itulau(int) — lapo'a o le itulau e tasi o le fa'amanatuga (i bytes)
  • numpages(int) — numera o itulau e manatua ai le pa puipui
  • maxstrlen(int) - o le umi maualuga o se manoa paita i galuega tusitusi ma faitau
  • server_ip(faatonu) - o se lolomifefiloi ma tuatusi o 'auʻaunaga na faʻaaogaina, lea o le ki o le igoa faʻapitoa o le server (server id i totonu o le talosaga), ma o le tau o se manoa ma le tuatusi: "ip address: port" poʻo le "DNS: uafu” (o le faatusatusaga o igoa ma tuatusi moni e le tumau, e mafai ona suia)
  • faatalitali(int) - taimi faʻatali mo se tali mai le 'auʻaunaga pe a maua ports (i sekone)
  • ala(pupu) — fuʻa o le auala na faia ai le mea (sesē - pe a faia se mea fou, moni lava - pe a fai o se mea na faia mai se mea na "pa'ū" muamua - faʻaaoga le "hibernation" faʻagaioiga, False e ala i le faaletonu)
  • cache_file(f) - igoa faila mo le moe

Metotia

Fale.faila_create( server, ala ) – fai se faila fou

Fale.faila_toe igoa( server, ala, new_name ) – toe faaigoa le faila

Fale.file_remove( server, ala) - tape se faila

Fale.tatala( server, ala, mod ) - tatala faila

Toe Foi fchannel numera o auala. Parameter faasaga i - o le faiga lea e tatala ai faila: "wm" - fa'apitoa (faitau/tusi), "rs" - faitau-na'o, ma fa'asoa mo na'o le faitau e isi tagata fa'atau, "ws" - faitau/tusi, ma fa'asoa mo na'o le faitau e isi tagata fa'atau.

Fale.lata (fchannel) – tapuni le faila

Fale.tusi (fchannel, amata, data ) – tusi se manoa byte i se faila

Fale.faitau (fchannel, amata, len_data ) – faitau se manoa byte mai se faila

Fale.tuu_itulau ( fchannel ) - "tuleia" mai le paʻu i le 'auʻaunaga itulau uma o le alalaupapa faʻamaonia ua suia. E faʻaaogaina i na vaega i le algorithm pe a manaʻomia ona e mautinoa o gaioiga uma i luga o le auala e faʻasaoina faaletino i se faila i luga o le server.

Fale.tulei_uma () - "tuleia" mai le paʻu i le server itulau uma o auala uma mo se faʻataʻitaʻiga o le vasega Cage ua suia. Faʻaaogaina pe a manaʻomia le faʻamautinoa o gaioiga uma i luga o auala uma o loʻo faʻasaoina ile server.

puna: www.habr.com

Faaopoopo i ai se faamatalaga