Siostam ruigsinneachd faidhle Cage Remote

Adhbhar an t-siostaim

Taic airson ruigsinneachd iomallach air faidhlichean air coimpiutairean air an lìonra. Bidh an siostam “cha mhòr” a’ toirt taic do ghnìomhachd faidhle bunaiteach (cruthachadh, cuir às, leughadh, sgrìobhadh, msaa) le bhith ag iomlaid ghnothaichean (teachdaireachdan) a’ cleachdadh protocol TCP.

Iarrtasan

Tha comas-gnìomh an t-siostam èifeachdach anns na cùisean a leanas:

  • ann an tagraidhean dùthchasach airson innealan gluasadach agus freumhaichte (fònaichean sgairteil, siostaman smachd air bòrd, msaa) a dh ’fheumas ruigsinneachd luath gu faidhlichean air frithealaichean iomallach an aghaidh brisidhean sealach a dh’ fhaodadh a bhith ann an conaltradh (le bhith a ’dol far-loidhne);
  • ann an DBMS luchdaichte, ma thèid giullachd cheistean a dhèanamh air cuid de luchd-frithealaidh, agus stòradh dàta air a dhèanamh air cuid eile;
  • ann an lìonraidhean corporra sgaoilte airson fiosrachadh a chruinneachadh agus a ghiullachd, a dh’ fheumas iomlaid dàta aig astar luath, call obrach agus earbsachd;
  • ann an siostaman iom-fhillte le ailtireachd microservice, far a bheil dàil ann an iomlaid fiosrachaidh eadar modalan deatamach.

structar

Tha siostam Cage (tha buileachadh - dreach beta ann am Python 3.7 air Windows) a’ toirt a-steach dà phrìomh phàirt:

  1. Cageserver - prògram frithealaiche faidhle (pasgan de ghnìomhan) a bhios a’ ruith air coimpiutairean air an lìonra far a bheil feum aig na faidhlichean air ruigsinneachd iomallach;
  2. класс Cage le leabharlann de dhòighean airson bathar-bog teachdaiche, a’ sìmpleachadh còdadh eadar-obrachadh le frithealaichean.

A 'cleachdadh an t-siostam air taobh an neach-dèiligidh

Bidh dòighean clas Cage a’ dol an àite gnìomhachd siostam faidhle àbhaisteach “àbhaisteach”: cruthachadh, fosgladh, dùnadh, cur as faidhlichean, a bharrachd air leughadh/sgrìobhadh dàta ann an cruth dà-chànanach (a 'sealltainn suidheachadh agus meud an dàta). Gu bun-bheachdail, tha na modhan sin faisg air gnìomhan faidhle cànan C, far a bheilear a’ fosgladh / a’ dùnadh fhaidhlichean “air seanalan” cuir a-steach / toradh.

Ann am faclan eile, chan eil am prògramadair ag obair le dòighean “faidhle” nithean (clas _io ann am Python), ach le dòighean clas Cage.

Nuair a thèid eisimpleir de nì Cage a chruthachadh, bidh e a’ stèidheachadh ceangal tùsail le frithealaiche (no grunn luchd-frithealaidh), air a cheadachadh leis an Client Id, agus a’ faighinn dearbhadh le àireamh puirt sònraichte airson a h-uile gnìomh faidhle. Nuair a thèid rud Cage a dhubhadh às, tha e ag iarraidh air an fhrithealaiche stad a chuir air conaltradh agus na faidhlichean a dhùnadh. Faodaidh na frithealaichean fhèin crìoch a chuir air conaltradh cuideachd.

Bidh an siostam a’ leasachadh coileanadh leughaidh / sgrìobhaidh le bhith a’ bufferadh pìosan faidhle a chleachdar gu tric de phrògraman teachdaiche anns an tasgadan RAM (bufair).
Faodaidh bathar-bog teachdaiche àireamh sam bith de nithean Cage a chleachdadh le diofar shuidheachaidhean (meud cuimhne bufair, meud bloca nuair a bhios iad ag iomlaid leis an fhrithealaiche, msaa).

Faodaidh aon nì Cage conaltradh le grunn fhaidhlichean air iomadh seirbheisiche. Tha paramadairean conaltraidh (seòladh IP no frithealaiche DNS, prìomh phort airson cead, slighe agus ainm faidhle) air an sònrachadh nuair a thathar a’ cruthachadh an nì.

Leis gum faod gach nì Cage obrachadh le grunn fhaidhlichean aig an aon àm, thathas a’ cleachdadh àite cuimhne co-roinnte airson buffering. Meud tasgadan - an àireamh de dhuilleagan agus am meud, air a shuidheachadh gu dinamach nuair a chruthaicheas tu nì Cage. Mar eisimpleir, tha tasgadan 1 GB na 1000 duilleag de 1 MB gach fear, no 10 mìle duilleag de 100 KB gach fear, no 1 millean duilleag de 1 KB gach fear. Tha taghadh meud agus àireamh dhuilleagan na obair shònraichte airson gach cùis tagraidh.

Faodaidh tu iomadh rud Cage a chleachdadh aig an aon àm gus diofar shuidheachaidhean cuimhne bufair a mhìneachadh a rèir mar a gheibhear cothrom air fiosrachadh ann am faidhlichean eadar-dhealaichte. Mar bhun-stèidh, thathas a’ cleachdadh an algairim buffering as sìmplidh: às deidh beagan cuimhne a bhith air a chaitheamh, bidh duilleagan ùra a’ cuir às do sheann fheadhainn a rèir prionnsapal cluaineas le àireamh as lugha de ruigsinneachd. Tha buffering gu sònraichte èifeachdach ann an cùis ruigsinneachd co-roinnte neo-chòmhnard (ann an seagh staitistigeil), an toiseach, gu diofar fhaidhlichean, agus, san dàrna àite, gu pìosan de gach faidhle.

Tha an clas Cage a’ toirt taic do I/O chan ann a-mhàin le seòlaidhean dàta (a’ nochdadh suidheachadh agus fad an t-sreath, gnìomhachd siostam faidhle “an àite”), ach cuideachd aig ìre “corporra” nas ìsle - a rèir àireamhan dhuilleagan ann an cuimhne bufair.

Tha an gnìomh tùsail a’ faighinn taic airson nithean Cage "cadal a' gheamhraidh" (“cadal”) - faodaidh iad a bhith air an “tuiteam sìos” (mar eisimpleir, ma thèid ceangal a chall le frithealaichean, no nuair a thèid an tagradh a stad, msaa) a-steach do fhaidhle dump ionadail air taobh an neach-dèiligidh agus ath-nuadhachadh gu sgiobalta bho am faidhle seo (às deidh conaltradh a-rithist, nuair a thòisicheas tu air an tagradh). Tha seo ga dhèanamh comasach an trafaic a lughdachadh gu mòr nuair a chuireas tu am prògram teachdaiche an gnìomh às deidh dha a dhol “far loidhne” airson ùine, leis gum bi mìrean faidhle a chleachdar gu tric san tasgadan mu thràth.

Tha cèidse timcheall air 3600 loidhne de chòd.

Prionnsabalan togail frithealaichean

Faodar frithealaichean faidhle cageserver a ruith le àireamh neo-riaghailteach de phuirt, agus tha aon dhiubh (“prìomh”) air a chleachdadh a-mhàin airson cead a thoirt don h-uile neach-dèiligidh, tha an còrr air a chleachdadh airson iomlaid dàta. Chan fheum am prògram frithealaiche Cage ach Python. Aig an aon àm, faodaidh an coimpiutair leis an fhrithealaiche faidhle obair sam bith eile a dhèanamh.

Bidh am frithealaiche a’ tòiseachadh an toiseach mar chruinneachadh de dhà phrìomh phròiseas:

  1. "Ceanglaichean" - pròiseas airson a bhith a’ coileanadh obair a bhith a’ stèidheachadh conaltradh le teachdaichean agus ga thoirt gu crìch air iomairt an t-seirbheisiche;
  2. "Obrachaidhean" - pròiseas airson gnìomhan (obair) luchd-dèiligidh a choileanadh gus obrachadh le faidhlichean, a bharrachd air a bhith a’ dùnadh seiseanan conaltraidh stèidhichte air òrdughan teachdaiche.

Chan eil an dà phròiseas air an sioncronadh agus tha iad air an eagrachadh mar lùban gun chrìoch airson a bhith a’ faighinn agus a’ cur teachdaireachdan stèidhichte air ciudha ioma-phròiseas, nithean proxy, glasan agus socaidean.
Bidh am pròiseas Ceangal a’ riarachadh port airson gach neach-dèiligidh gus dàta fhaighinn agus a tharraing. Tha an àireamh de phuirt air a shuidheachadh nuair a thòisicheas am frithealaiche. Tha am mapadh eadar puirt agus teachdaichean air a stòradh ann an cuimhne neach-ionaid co-roinnte eadar-phròiseis.

Tha am pròiseas Obrachaidhean a’ toirt taic do bhith a’ roinneadh ghoireasan faidhle gus an urrainn do dh’iomadh neach-dèiligidh eadar-dhealaichte (leth-cho-shìnte, leis gu bheil ruigsinneachd fo smachd glasan) leugh dàta bho aon fhaidhle ma bha seo ceadaichte nuair a chaidh fhosgladh an toiseach leis a’ chleachdaiche “ciad”.

Bithear a’ làimhseachadh òrdughan gus faidhlichean a chruthachadh / a dhubhadh às / fhosgladh / dùnadh air an t-seirbheisiche sa phròiseas “Operations” fhèin gu teann a’ cleachdadh fo-shiostam faidhle OS an fhrithealaiche.

Gus leughadh / sgrìobhadh a luathachadh mar as trice, bidh na h-obraichean sin air an coileanadh ann an snàithleanan a tha air an sìolachadh leis a’ phròiseas “Operations”. Tha an àireamh de snàithleanan mar as trice co-ionann ris an àireamh de fhaidhlichean fosgailte. Thèid gnìomhan leughaidh/sgrìobhaidh bho luchd-dèiligidh a chuir a-steach don ciudha coitcheann agus bidh a’ chiad snàithlean an-asgaidh a’ toirt a’ ghnìomh bhon cheann. Leigidh loidsig sònraichte leat cuir às do ghnìomhachd ath-sgrìobhaidh dàta ann an RAM an fhrithealaiche.

Bidh am pròiseas Obrachaidhean a’ cumail sùil air gnìomhachd teachdaichean agus a’ stad bho bhith gan seirbheiseachadh an dàrna cuid air na h-òrdughan aca no nuair a thèid iad thairis air an ùine neo-ghnìomhachd.

Gus dèanamh cinnteach à earbsachd, bidh Cageserver a’ cumail logaichean de gach gnothach. Ann an aon log coitcheann tha lethbhric de theachdaireachdan bho luchd-dèiligidh le gnìomhan gus faidhlichean a chruthachadh / fhosgladh / ath-ainmeachadh / cuir às. Tha log air leth air a chruthachadh airson gach faidhle obrach, anns a bheil lethbhric de theachdaireachdan le gnìomhan airson leughadh agus sgrìobhadh dàta anns an fhaidhle obrach seo air an clàradh, a bharrachd air sreath de dhàta sgrìobhte (ùr) agus sreath de dhàta a chaidh a sgrios aig àm ath-sgrìobhadh (sgrìobhadh). dàta ùr “air mullach” seann fheadhainn). ).

Bheir na logaichean sin an comas an dà chuid atharrachaidhean ùra a thoirt air ais gu cùl-taic agus susbaint gnàthach a thoirt air ais gu ìre san àm a dh’ fhalbh.

Tha timcheall air 3100 loidhne de chòd aig Cageserver.

Siostam ruigsinneachd faidhle Cage Remote

A' cur air bhog am prògram frithealaiche faidhle Cageserver

Nuair a thòisicheas tu, anns a’ chòmhradh feumaidh tu mìneachadh:
- prìomh phort airson cead;
- an àireamh de phuirt airson malairt ghnothaichean le teachdaichean ùghdarraichte (bho 1 no barrachd, bidh an cruinneachadh àireamhan a’ tòiseachadh bhon fhear ri taobh àireamh a’ phrìomh phuirt).

A 'cleachdadh an Clas Cage

clas cèidse.Cage( cage_name = "", pagesize=0, numpages=0, maxstrlen=0, server_ip={}, feitheamh=0, dùisg=Meallta, cache_file="" )

Tha nithean air an cruthachadh bhon chlas seo a bhios ag eadar-obrachadh le frithealaichean faidhle agus anns a bheil cuimhne bufair.

paramadairean

  • cage_name(str) - ainm cumhach an nì, a thathas a’ cleachdadh gus teachdaichean a chomharrachadh air taobh an fhrithealaiche
  • meud dhuilleagan(int) - meud aon duilleag de chuimhne bufair (ann am bytes)
  • àireamhan(int) - an àireamh de dhuilleagan cuimhne bufair
  • maxstrlen(int) - an fhad as motha de shreang byte ann an obair sgrìobhaidh is leughaidh
  • frithealaiche_ip(dit) - faclair le seòlaidhean nan frithealaichean a thathar a’ cleachdadh, far a bheil an iuchair ainm cumhach an fhrithealaiche (id an fhrithealaiche taobh a-staigh an tagraidh), agus tha an luach na shreang leis an t-seòladh: “seòladh ip: port” no “DNS: port” (tha coimeas eadar ainmean agus fìor sheòlaidhean sealach, faodaidh e atharrachadh)
  • feitheamh(int) - ùine feitheimh airson freagairt bhon fhrithealaiche nuair a gheibh thu puirt (ann an diogan)
  • dùisg(boolean) - bratach air mar a tha an nì air a chruthachadh (ceàrr - ma thèid rud ùr a chruthachadh, True - ma thèid nì a chruthachadh bho fhear a chaidh a “tuiteam” roimhe seo - a’ cleachdadh gnìomhachd “cadal a’ gheamhraidh, meallta gu bunaiteach)
  • tasgadan_faidhle(str) - ainm faidhle airson cadal a’ gheamhraidh

Dòighean

Cèidse.faidhle_cruthaich( frithealaiche, slighe ) - cruthaich faidhle ùr

Cèidse.faidhle_ath-ainm( frithealaiche, slighe, new_name ) - ath-ainmich am faidhle

Cèidse.faidhle_air falbh( frithealaiche, slighe) - sguab às faidhle

Cèidse.fosgailte( frithealaiche, slighe, mod ) - fosgail am faidhle

Tilleadh fchannel àireamh sianal. Paramadair 'Mhòd - is e seo am modh fosglaidh faidhle: "wm" - toirmeasgach (leugh / sgrìobh), "rs" - leughadh a-mhàin, agus air a cho-roinn a-mhàin airson a leughadh le teachdaichean eile, "ws" - leugh / sgrìobh, agus air a cho-roinn a-mhàin airson a leughadh le luchd-dèiligidh eile.

Cèidse.dùin (fchannel) - dùin am faidhle

Cèidse.sgrìobhadh (fchannel, start, data ) - sgrìobh sreang byte gu faidhle

Cèidse.leughadh (fchannel, tòisich, len_data ) - leugh sreang byte bho fhaidhle

Cèidse.cuir_duilleagan ( fchannel ) - “putadh” bhon bhufair chun t-seirbheisiche a h-uile duilleag den t-sianal ainmichte a chaidh atharrachadh. Tha e air a chleachdadh aig na puingean sin san algairim nuair a dh'fheumas tu a bhith cinnteach gu bheil a h-uile gnìomhachd air an t-sianal air a shàbhaladh gu corporra ann am faidhle air an fhrithealaiche.

Cèidse.putadh_all () - “a’ putadh” bhon bhufair chun t-seirbheisiche a h-uile duilleag de gach seanal airson eisimpleir den chlas Cage a chaidh atharrachadh. Air a chleachdadh nuair a dh’ fheumas tu a bhith cinnteach gu bheil a h-uile gnìomh air a h-uile seanal air a shàbhaladh air an fhrithealaiche.

Source: www.habr.com

Cuir beachd ann