Cage Remote File Access System

Morero oa Sisteme

Ts'ehetso bakeng sa phihlello e hole ea lifaele ho likhomphutha marang-rang. Sistimi "hoo e batlang e le" e ts'ehetsa lits'ebetso tsohle tsa mantlha tsa faele (ho theha, ho hlakola, ho bala, ho ngola, joalo-joalo) ka ho fapanyetsana litšebelisano (melaetsa) ho sebelisa protocol ea TCP.

Libaka tsa kopo

Ts'ebetso ea sistimi e sebetsa maemong a latelang:

  • lits'ebetsong tsa matsoalloa tsa lisebelisoa tsa mehala le tse kentsoeng (li-smartphone, litsamaiso tsa taolo ea boto, joalo-joalo) tse hlokang phihlello e potlakileng ea lifaele ho li-server tse hole ha ho ka ba le litšitiso tsa nakoana tsa puisano (ka ho tsoa inthaneteng);
  • ho li-DBMS tse laetsoeng, haeba ho sebetsa ha lipotso ho etsoa ho li-server tse ling, 'me polokelo ea data e etsoa ho tse ling;
  • marangrang a khoebo a ajoang bakeng sa ho bokella le ho sebetsana le tlhahisoleseling, e hlokang phapanyetsano ea data ka lebelo le holimo, ho hloka mosebetsi le ho ts'epahala;
  • ka mekhoa e rarahaneng e nang le meralo ea microservice, moo ho lieha ho fapanyetsana ha tlhahisoleseding pakeng tsa li-module ho bohlokoa.

sebopeho sa

Sistimi ea Cage (ho na le ts'ebetsong - mofuta oa beta ho Python 3.7 ho Windows) e kenyelletsa likarolo tse peli tsa mantlha:

  1. Cageserver - lenaneo la seva sa faele (sephutheloana sa mesebetsi) se sebetsang ho likhomphutha marang-rang tseo lifaele tsa tsona li hlokang phihlello e hole;
  2. класс Cage ka laeborari ea mekhoa ea software ea bareki, ho nolofatsa likhoutu tsa tšebelisano le li-server.

Ho sebelisa sistimi ka lehlakoreng la bareki

Mekhoa ea sehlopha sa Cage e nkela sebaka se tloaelehileng, se "tloaelehileng" ts'ebetso ea "file": popo, ho bula, ho kwala, ho phumula lifaele, joalo-joalo ho bala/ho ngola data ka sebopeho sa binary (e bontšang boemo le boholo ba data). Ka maikutlo, mekhoa ena e haufi le mesebetsi ea faele ea puo ea C, moo lifaele tsa ho bula / ho koala li etsoang "likanaleng" tsa ho kenya / ho tsoa.

Ka mantsoe a mang, moqapi ha a sebetse ka mekhoa ea lintho tsa "file" (class _io ka Python), empa ka mekhoa ea sehlopha sa Cage.

Ha mohlala oa ntho ea Cage e bōptjoa, e theha khokahanyo ea pele le seva (kapa li-server tse 'maloa), e lumelloa ke Client Id,' me e fumana tiiso ka nomoro ea boema-kepe e inehetseng bakeng sa lits'ebetso tsohle tsa faele. Ha ntho ea Cage e tlosoa, e laela seva hore se khaotse ho buisana le ho koala lifaele. Ho felisoa ha puisano ho ka boela ha qalisoa ke li-server ka botsona.

Sistimi e ntlafatsa ts'ebetso ea ho bala / ho ngola ka ho boloka likhechana tsa lifaele tse sebelisoang khafetsa tsa mananeo a bareki ka har'a cache ea RAM (buffer).
Software ea bareki e ka sebelisa palo efe kapa efe ea lintho tsa Cage tse nang le litlhophiso tse fapaneng (boholo ba memori ea buffer, boholo ba block ha o fapanyetsana le seva, joalo-joalo).

Ntho e le 'ngoe ea Cage e ka buisana le lifaele tse ngata ho li-server tse ngata. Mekhahlelo ea puisano (aterese ea IP kapa seva sa DNS, koung e kholo ea tumello, tsela le lebitso la faele) li hlalositsoe ha ho etsoa ntho.

Kaha ntho e 'ngoe le e' ngoe ea Cage e ka sebetsa le lifaele tse ngata ka nako e le 'ngoe, sebaka sa memori se arolelanoang se sebelisetsoa ho buffer. Cache size - palo ea maqephe le boholo ba 'ona, e behiloe ka matla ha ho etsoa ntho ea Cage. Mohlala, cache ea 1 GB ke maqephe a 1000 a 1 MB le le leng, kapa maqephe a likete tse 10 a 100 KB le leng, kapa maqephe a milione a 1 KB le leng. Ho khetha boholo le palo ea maqephe ke mosebetsi o ikhethileng bakeng sa nyeoe ka 'ngoe ea kopo.

U ka sebelisa lintho tse ngata tsa Cage ka nako e le 'ngoe ho hlalosa litlhophiso tse fapaneng tsa memori ea buffer ho latela hore na tlhahisoleseling e fumaneha joang lifaeleng tse fapaneng. E le ea mantlha, ho sebelisoa algorithm e bonolo ka ho fetesisa: kamora hore mohopolo o itseng o felile, maqephe a macha a tlosa a khale ho latela molao-motheo oa ho tlohela mosebetsi ka palo e fokolang ea phihlello. Buffering e sebetsa ka ho khetheha tabeng ea ho se leka-lekane (ka kutloisiso ea lipalo-palo) ho arolelana phihlelo, pele, ho lifaele tse fapaneng, 'me, ea bobeli, ho likhechana tsa faele ka' ngoe.

Sehlopha sa Cage se ts'ehetsa I / O eseng feela ka liaterese tsa data (e bonts'ang boemo le bolelele ba sehlopha, "ho nkela sebaka" ts'ebetso ea sistimi ea faele), empa hape le maemong a tlase, a "'mele" - ka linomoro tsa maqephe mohopolong oa buffer.

Mosebetsi oa mantlha o tšehetsoa bakeng sa lintho tsa Cage "hibernation" ("robala") - li ka "robala" (mohlala, ha ho ka ba le tahlehelo ea khokahano le li-server, kapa ha ts'ebeliso e emisitsoe, joalo-joalo) faeleng ea lehae ka lehlakoreng la bareki ebe e khutlisoa kapele. faele ena (ka mor'a hore puisano e qale, ha u qala kopo hape). Sena se etsa hore ho khonehe ho fokotsa sephethephethe haholo ha o kenya lenaneo la moreki ka mor'a ho ea "offline" ka nakoana, kaha likhechana tsa lifaele tse sebelisoang khafetsa li tla be li se li le ka har'a cache.

Cage ke mela e ka bang 3600 ea khoutu.

Melao-motheo ea kaho ea seva

Li-server tsa Cageserver li ka tsamaisoa ka palo e ikhethileng ea likou, e 'ngoe ea tsona ("ka sehloohong") e sebelisetsoang tumello ea bareki bohle, tse ling kaofela li sebelisetsoa phapanyetsano ea data. Lenaneo la seva sa Cage le hloka Python feela. Ka mokhoa o ts'oanang, komporo e nang le seva ea faele e ka etsa mosebetsi ofe kapa ofe.

Seva e qala qalong e le pokello ea lits'ebetso tse peli tsa mantlha:

  1. "Likhokahano" - ts'ebetso ea ho etsa ts'ebetso ea ho theha puisano le bareki le ho e felisa ka sepheo sa seva;
  2. "Ts'ebetso" - mokhoa oa ho etsa mesebetsi (ts'ebetso) ea bareki ho sebetsa le lifaele, hammoho le ho koala linako tsa puisano tse thehiloeng ho litaelo tsa bareki.

Mekhoa ena ka bobeli ha e lumellane 'me e hlophisitsoe e le li-loops tse sa feleng tsa ho amohela le ho romella melaetsa ho ipapisitse le mela e mengata, lintho tsa proxy, liloko le li-sockets.
Ts'ebetso ea Khokahano e fana ka boema-kepe bakeng sa moreki e mong le e mong ho amohela le ho fetisa data. Palo ea likou e behiloe ha seva e qala. 'Mapa o pakeng tsa lipalangoang le bareki o bolokoa mohopolong oa proxy o arolelanoang.

Ts'ebetso ea Ts'ebetso e ts'ehetsa ho arolelana lisebelisoa tsa faele e le hore bareki ba bangata ba fapaneng ba ka arolelana (quasi-parallel, kaha phihlello e laoloa ke linotlolo) bala data ho tsoa faeleng e le 'ngoe haeba sena se ne se lumelletsoe ha e ne e buloa qalong ke moreki oa "pele".

Ts'ebetso ea litaelo tsa ho theha / ho hlakola / ho bula / ho koala lifaele ho seva ho etsoa ts'ebetsong ea "Ts'ebetso" ka boeona ka tatellano ka tatellano e sebelisang sistimi e tlase ea seva ea OS.

Ho potlakisa ho bala / ho ngola ka kakaretso, ts'ebetso ena e etsoa ka likhoele tse hlahisitsoeng ke ts'ebetso ea "Operations". Palo ea likhoele hangata e lekana le palo ea lifaele tse bulehileng. Ho bala / ho ngola mesebetsi ho tsoa ho bareki e romelloa moleng o akaretsang mme khoele ea pele ea mahala e nka mosebetsi ho tloha hloohong ea eona. Maikutlo a khethehileng a u lumella ho tlosa ts'ebetso ea ho ngola hape data ho RAM ea seva.

Ts'ebetso ea Ts'ebetso e beha leihlo tšebetso ea bareki mme e emisa ho ba sebeletsa ka litaelo tsa bona kapa ha nako ea ho se sebetse e fetile.

Ho netefatsa ho ts'epahala, Cageserver e boloka lits'ebetso tsohle. Log e le 'ngoe e akaretsang e na le likopi tsa melaetsa e tsoang ho bareki ba nang le mesebetsi ea ho theha/ho bula/ho reha bocha/ho hlakola lifaele. Ho entsoe log e arohaneng bakeng sa faele e 'ngoe le e' ngoe e sebetsang, eo ho eona likopi tsa melaetsa e nang le mesebetsi ea ho bala le ho ngola data faeleng ena e sebetsang e rekotiloeng, hammoho le lethathamo la lintlha tse ngotsoeng (tse ncha) le mefuta e mengata ea data e senyehileng nakong ea ho ngola (ho ngola). data e ncha "ka holimo" ea khale). ).

Li-log tsena li fana ka bokhoni ba ho khutlisetsa liphetoho tse ncha ho li-backups le ho khutlisetsa litaba tsa morao-rao ho fihlela nakong e fetileng.

Cageserver ke mela e ka bang 3100 ea khoutu.

Cage Remote File Access System

Ho qala lenaneo la seva sa faele ea Cageserver

Ha u qala, ka lebokoseng u hloka ho hlalosa:
- kou e kholo ea tumello;
- palo ea likou tsa ho fapanyetsana litšebelisano le bareki ba lumelletsoeng (ho tloha ho 1 kapa ho feta, palo ea linomoro e qala ho tloha ho e haufi le nomoro ea koung e kholo).

Ho Sebelisa Sehlopha sa Cage

sehlopha sa lesaka.Cage( lebitso_la_lekhoa="", pagesize=0, numpages=0, maxstrlen=0, server_ip={}, ema=0, tsoha=Mahata, cache_file="" )

Lintho li entsoe ho tsoa sehlopheng sena tse sebelisanang le li-server tsa faele mme li na le memori ea buffer.

entsprechen

  • lebitso_lekhoakhoa(str) - lebitso la maemo a ntho, e sebelisetsoang ho khetholla bareki ka lehlakoreng la seva
  • boholo ba leqephe(eth) - boholo ba leqephe le le leng la memori ea buffer (ka li-byte)
  • lipalo(eth) — palo ea maqephe a memori a buffer
  • maxstrlen(eth) - bolelele bo boholo ba khoele ea byte ts'ebetsong ea ho ngola le ho bala
  • server_ip(qobella) - dikishinari e nang le liaterese tsa li-server tse sebelisitsoeng, moo senotlolo e leng lebitso la maemo a seva (id ea seva ka har'a kopo), 'me boleng ke khoele e nang le aterese: "ip address:port" kapa "DNS: port" (papiso ea mabitso le liaterese tsa 'nete ke ea nakoana, e ka fetoha)
  • ema(eth) - nako ea ho emela karabo ho tsoa ho seva ha u amohela likou (ka metsotsoana)
  • falimehile(boolean) - folakha ea hore na ntho e bōpiloe joang (ba bohata - haeba ntho e ncha e bōptjoa, Ke 'nete hore - haeba ntho e bōpiloe ho tloha ho "e oeleng" pele - ho sebelisoa ts'ebetso ea "hibernation", False by default)
  • cache_file(str) - lebitso la faele bakeng sa hibernation

Mekhoa

Lesaka.file_create( seva, tsela ) - theha faele e ncha

Lesaka.file_rename( seva, tsela, lebitso_lecha ) - reha faele bocha

Lesaka.file_remove( seva, tsela) - hlakola faele

Lesaka.bulehetse( seva, tsela, mod ) - bula faele

Ho khutla sekanale nomoro ea mocha. Paramethara ma - ena ke mokhoa oa ho bula lifaele: "wm" - exclusive (bala/ngola), "rs" - bala feela, 'me e arolelanoa feela bakeng sa ho baloa ke bareki ba bang, "ws" - bala/ngola, le ho arolelanoa feela bakeng sa ho baloa ke bareki. bareki ba bang.

Lesaka.haufi (sekanale) - koala faele

Lesaka.ngola (fchannel, qala, data ) - ngola khoele ea byte faeleng

Lesaka.bala (fchannel, qala, len_data ) - bala khoele ea byte ho tsoa faeleng

Lesaka.kenya_maqephe ( sekanale ) - "sututsa" ho tloha buffer ho ea ho seva maqephe ohle a kanale e boletsoeng e fetotsoeng. E sebelisoa lintlheng tseo ho algorithm ha o hloka ho etsa bonnete ba hore lits'ebetso tsohle tsa mocha li bolokiloe ka 'mele faeleng ea seva.

Lesaka.sututsa_tsohle () - "sutumetsa" ho tloha ho buffer ho ea ho seva maqephe ohle a likanale bakeng sa mohlala oa sehlopha sa Cage se fetotsoeng. E sebelisoa ha o hloka ho etsa bonnete ba hore lits'ebetso tsohle likanaleng tsohle li bolokiloe ho seva.

Source: www.habr.com

Eketsa ka tlhaloso