ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ Π² ΡΠ΅ΡΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΠ° Β«Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΒ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΡΡΠ΅Π½ΠΈΠ΅, Π·Π°ΠΏΠΈΡΡ ΠΈ Π΄Ρ.) ΠΏΡΡΡΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ (ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ) ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ Π’Π‘Π .
ΠΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ :
- Π² Π½Π°ΡΠΈΠ²Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΈ embedded ΡΡΡΡΠΎΠΉΡΡΠ² (ΡΠΌΠ°ΡΡΡΠΎΠ½Ρ, Π±ΠΎΡΡΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈ Ρ.ΠΏ.), ΡΡΠ΅Π±ΡΡΡΠΈΡ Π±ΡΡΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΠΎΡΡΠ½ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ²ΠΎΠ² Π² ΡΠ²ΡΠ·ΠΈ (Ρ ΡΡ ΠΎΠ΄ΠΎΠΌ Π² ΠΎΡΡΠ»Π°ΠΉΠ½);
- Π² Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π‘Π£ΠΠ, Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΎΠ΄Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ , Π° Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ β Π½Π° Π΄ΡΡΠ³ΠΈΡ ;
- Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΡ ΡΠ΅ΡΡΡ ΡΠ±ΠΎΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, ΡΡΠ΅Π±ΡΡΡΠΈΡ Π²ΡΡΠΎΠΊΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ, ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ;
- Π² ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ, Π³Π΄Π΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ Π² ΠΎΠ±ΠΌΠ΅Π½Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΠΈΠΌΠ΅ΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
Π‘ΡΡΡΠΊΡΡΡΠ°
Π‘ΠΈΡΡΠ΅ΠΌΠ° Cage (ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ β beta-Π²Π΅ΡΡΠΈΡ Π½Π° Python 3.7 Π² ΠΠ‘ Windows) Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π΄Π²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ:
- Cageserver β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°ΠΉΠ»-ΡΠ΅ΡΠ²Π΅ΡΠ° (ΠΏΠ°ΠΊΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΉ), ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ Π² ΡΠ΅ΡΠΈ, ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ;
- ΠΊΠ»Π°ΡΡ Cage Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ³ΠΎ ΠΠ, ΡΠΏΡΠΎΡΠ°ΡΡΠ΅Π΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ²
ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° Cage Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅, Β«ΡΡΡΠΈΠ½Π½ΡΠ΅Β» ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΠΎΡΠΊΡΡΡΠΈΠ΅, Π·Π°ΠΊΡΡΡΠΈΠ΅, ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅ (Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π΄Π°Π½Π½ΡΡ ). ΠΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»ΡΠ½ΠΎ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Ρ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΠ·ΡΠΊΠ° C, Π³Π΄Π΅ ΠΎΡΠΊΡΡΡΠΈΠ΅/Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Β«Π½Π° ΠΊΠ°Π½Π°Π»Π°Ρ Β» Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Β«ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Β» ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² (ΠΊΠ»Π°ΡΡΠ° _io Π² Python), Π° Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° Cage.
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Cage ΠΎΠ½ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ (ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ), ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎ Id ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ° Π΄Π»Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. ΠΡΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Cage ΠΎΠ½ Π²ΡΠ΄Π°Π΅Ρ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·ΠΈ ΠΈ Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΡΠ·ΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ°ΠΌΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ.
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ
ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ² Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π² ΠΊΡΡΠ΅ (Π±ΡΡΠ΅ΡΠ΅) ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΠ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π»ΡΠ±ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Cage Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ (ΠΎΠ±ΡΠ΅ΠΌ Π±ΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°Π·ΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΡΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΈ Π΄Ρ.).
ΠΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ Cage ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ . ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ²ΡΠ·ΠΈ (IP-Π°Π΄ΡΠ΅Ρ ΠΈΠ»ΠΈ DNS ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΡΡΡ ΠΈ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π°) Π·Π°Π΄Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Cage ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»ΠΎΠ², Π΄Π»Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ. Π Π°Π·ΠΌΠ΅Ρ ΠΊΡΡΠ° β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ, Π·Π°Π΄Π°Π΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Cage. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΡΡ Π² 1 ΠΠ±Π°ΠΉΡ β ΡΡΠΎ 1000 ΡΡΡΠ°Π½ΠΈΡ ΠΏΠΎ 1 ΠΠ±Π°ΠΉΡ, ΠΈΠ»ΠΈ 10 ΡΡΡ. ΡΡΡΠ°Π½ΠΈΡ ΠΏΠΎ 100 ΠΠ±Π°ΠΉΡ, ΠΈΠ»ΠΈ 1 ΠΌΠ»Π½. ΡΡΡΠ°Π½ΠΈΡ ΠΏΠΎ 1 ΠΠ±Π°ΠΉΡ. ΠΡΠ±ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΡΡΠ°Π½ΠΈΡ β ΡΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΡΠ»ΡΡΠ°Ρ.
ΠΠΎΠΆΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Cage, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π±ΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ . ΠΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ: ΠΏΠΎΡΠ»Π΅ ΠΈΡΡΠ΅ΡΠΏΠ°Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΏΠ°ΠΌΡΡΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΡΡΠ΅ΡΠ½ΡΡΡ ΡΡΠ°ΡΡΠ΅ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π²ΡΠ±ΡΡΠΈΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ. ΠΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π° Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ (Π² ΡΡΠ°ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΌΡΡΠ»Π΅) ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°, Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΊ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ, ΠΈ, Π²ΠΎ-Π²ΡΠΎΡΡΡ , ΠΊ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
ΠΠ»Π°ΡΡ Cage ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΠ°ΠΌ Π΄Π°Π½Π½ΡΡ (Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΈ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, Β«Π·Π°ΠΌΠ΅Π½ΡΡΒ» ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ), Π½ΠΎ ΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ, Β«ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌΒ» ΡΡΠΎΠ²Π½Π΅ β ΠΏΠΎ Π½ΠΎΠΌΠ΅ΡΠ°ΠΌ ΡΡΡΠ°Π½ΠΈΡ Π² Π±ΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Cage ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Β«Π³ΠΈΠ±Π΅ΡΠ½Π°ΡΠΈΠΈΒ» (Β«ΡΠ½Π°Β») β ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Β«ΡΠ²Π΅ΡΠ½ΡΡΡΒ» (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ°Π·ΡΡΠ²Π° ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ, ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ Ρ.ΠΏ.) Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ Π΄Π°ΠΌΠΏ-ΡΠ°ΠΉΠ» Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π±ΡΡΡΡΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (ΠΏΠΎΡΠ»Π΅ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ, ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ). ΠΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΡ ΠΎΠ΄Π° Β«Π² ΠΎΡΡΠ»Π°ΠΉΠ½Β», ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΆΠ΅ Π±ΡΠ΄ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² ΠΊΡΡΠ΅.
Cage β ΡΡΠΎ ΠΎΠΊΠΎΠ»ΠΎ 3600 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°.
ΠΡΠΈΠ½ΡΠΈΠΏΡ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²
Π€Π°ΠΉΠ»-ΡΠ΅ΡΠ²Π΅ΡΡ Cageserver ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΠΏΠΎΡΡΠΎΠ², ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ (Β«ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉΒ») ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ΅Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ β Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Cage ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Python. ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Ρ ΡΠ°ΠΉΠ»-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΡΠ°Π±ΠΎΡΡ.
Π‘Π΅ΡΠ²Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π²Π½Π°ΡΠ°Π»Π΅ ΠΊΠ°ΠΊ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ Π΄Π²ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ²:
- Β«Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΒ» β ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ²ΡΠ·ΠΈ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ Π΅Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°;
- Β«ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈΒ» β ΠΏΡΠΎΡΠ΅ΡΡ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½ΠΈΠΉ (ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ) ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΏΠΎ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄Π»Ρ Π·Π°ΠΊΡΡΡΠΈΡ ΡΠ΅Π°Π½ΡΠΎΠ² ΡΠ²ΡΠ·ΠΈ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ².
ΠΠ±Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΈΠΊΠ»Ρ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΡΠ»ΡΡΠΈΠΏΡΠΎΡΠ΅ΡΡΠ½ΡΡ
ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ, ΠΏΡΠΎΠΊΡΠΈ-ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π·Π°ΠΌΠΊΠΎΠ² ΠΈ ΡΠΎΠΊΠ΅ΡΠΎΠ².
ΠΡΠΎΡΠ΅ΡΡ Β«Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΒ» Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΏΠΎΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ΅ΠΌΠ°-ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ
. ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΡΠΎΠ² Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΡΠ°ΠΌΠΈ ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΏΡΠΎΠΊΡΠΈ-ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠΎΡΠ΅ΡΡ Β«ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈΒ» ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ (ΠΊΠ²Π°Π·ΠΈΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄ΠΎΡΡΡΠΏ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΌΠΊΠ°ΠΌΠΈ) ΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΡΠΈ Π΅Π³ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΎΡΠΊΡΡΡΠΈΠΈ Β«ΠΏΠ΅ΡΠ²ΡΠΌΒ» ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠΌ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ /ΠΎΡΠΊΡΡΡΠΈΠ΅/Π·Π°ΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ² Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΌΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Β«ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈΒ» ΡΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΠΠ‘ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΠ»Ρ ΠΎΠ±ΡΠ΅Π³ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π½ΠΈΡ/Π·Π°ΠΏΠΈΡΠΈ ΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Π² ΠΏΠΎΡΠΎΠΊΠ°Ρ (threads), ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΠΌΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Β«ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈΒ». Π§ΠΈΡΠ»ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°Π²Π½ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΎΡΠΊΡΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°Π΄Π°Π½ΠΈΡ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΠΈΡΡ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠ΄Π°ΡΡΡΡ Π² ΠΎΠ±ΡΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΠ²ΡΠΈΠΉΡΡ ΠΏΠΎΡΠΎΠΊ Π·Π°Π±ΠΈΡΠ°Π΅Ρ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΠ· Π΅Π΅ Π³ΠΎΠ»ΠΎΠ²Ρ. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΡΠΎΡΠ΅ΡΡ Β«ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈΒ» ΡΠ»Π΅Π΄ΠΈΡ Π·Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅Ρ ΠΈΡ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎ ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, ΡΠ°ΠΊ ΠΈ ΠΏΡΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΉΠΌΠ°ΡΡΠ° Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ.
ΠΠ»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ Cageserver Π²Π΅Π΄Π΅Ρ ΠΆΡΡΠ½Π°Π»Ρ Π²ΡΠ΅Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠ΄ΠΈΠ½ ΠΎΠ±ΡΠΈΠΉ ΠΆΡΡΠ½Π°Π» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠΏΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Ρ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ Π½Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅/ ΠΎΡΠΊΡΡΡΠΈΠ΅/ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅/ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΆΡΡΠ½Π°Π», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΊΠΎΠΏΠΈΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ Ρ Π·Π°Π΄Π°Π½ΠΈΡΠΌΠΈ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠΎΠΌ ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌΡΡ (Π½ΠΎΠ²ΡΡ ) Π΄Π°Π½Π½ΡΡ ΠΈ ΠΌΠ°ΡΡΠΈΠ²Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ (Π·Π°ΠΏΠΈΡΠΈ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ Β«ΠΏΠΎΠ²Π΅ΡΡ Β» ΡΡΠ°ΡΡΡ ).
ΠΡΠΈ ΠΆΡΡΠ½Π°Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠ°ΠΊ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΡΠ΅Π·Π΅ΡΠ²Π½ΡΡ ΠΊΠΎΠΏΠΈΡΡ , ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Β«ΠΎΡΠΊΠ°ΡΠ°Β» ΠΎΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊ Π½ΡΠΆΠ½ΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ.
Cageserver β ΡΡΠΎ ΠΎΠΊΠΎΠ»ΠΎ 3100 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°ΠΉΠ»-ΡΠ΅ΡΠ²Π΅ΡΠ° Cageserver
ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ Π½Π°Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ:
β ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠΎΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ;
β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ Ρ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ (ΠΎΡ 1-Π³ΠΎ ΠΈ Π±ΠΎΠ»Π΅Π΅, ΠΏΡΠ» Π½ΠΎΠΌΠ΅ΡΠΎΠ² Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π·Π° Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°).
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Cage
class cage.Cage( cage_name=»», pagesize=0, numpages=0, maxstrlen=0, server_ip={}, wait=0, awake=False, cache_file=»» )
ΠΠ· ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠ°ΠΉΠ»-ΡΠ΅ΡΠ²Π΅ΡΠ°ΠΌΠΈ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ Π±ΡΡΠ΅ΡΠ½ΡΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
- cage_name(str) β ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ ΠΈΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ΅ΡΠ²Π΅ΡΠ°
- pagesize(int) β ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π±ΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (Π² Π±Π°ΠΉΡΠ°Ρ )
- numpages(int) β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ°Π½ΠΈΡ Π±ΡΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ
- maxstrlen(int) β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° Π±Π°ΠΉΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΡ
- server_ip(dict) β ΡΠ»ΠΎΠ²Π°ΡΡ Ρ Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², Π³Π΄Π΅ ΠΊΠ»ΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ»ΠΎΠ²Π½ΠΎΠ΅ ΠΈΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΠ° (id ΡΠ΅ΡΠ²Π΅ΡΠ° Π²Π½ΡΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ), Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΡΡΠΎΠΊΠ° Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ: βip address:portβ ΠΈΠ»ΠΈ βDNS:portβ (ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ ΠΈ ΡΠ΅Π°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ² β Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΡ)
- wait(int) β Π²ΡΠ΅ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΡΠΎΠ² (Π² ΡΠ΅ΠΊ.)
- awake(boolean) β ΡΠ»Π°Π³ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° (False β Π΅ΡΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, True β Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΈΠ· ΡΠ°Π½Π΅Π΅ Β«ΡΠ²Π΅ΡΠ½ΡΡΠΎΠ³ΠΎΒ» β ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Β«Π³ΠΈΠ±Π΅ΡΠ½Π°ΡΠΈΠΈΒ», ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ False)
- cache_file(str) β ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ Π³ΠΈΠ±Π΅ΡΠ½Π°ΡΠΈΠΈ
ΠΠ΅ΡΠΎΠ΄Ρ
Cage.file_create( server, path ) β ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ»
Cage.file_rename( server, path, new_name ) β ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ»
Cage.file_remove( server, path) β ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ»
Cage.open( server, path, mod ) β ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ»
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ fchannel Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°Π½Π°Π»Π°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ mod β ΡΡΠΎ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»Π°: Β«wmΒ» β ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΡΠΉ (ΡΡΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΠΈΡΡ), Β«rsΒ» β ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ΅Π½ΠΈΠ΅, ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌΠΈ, Β«wsΒ» β ΡΡΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΠΈΡΡ, ΠΈ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ.
Cage.close (fchannel) β Π·Π°ΠΊΡΡΡΡ ΡΠ°ΠΉΠ»
Cage.write (fchannel, begin, data ) β Π·Π°ΠΏΠΈΡΠ°ΡΡ Π±Π°ΠΉΡΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ Π² ΡΠ°ΠΉΠ»
Cage.read (fchannel, begin, len_data ) β ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π±Π°ΠΉΡΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°
Cage.put_pages ( fchannel ) β Β«Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΒ» ΠΈΠ· Π±ΡΡΠ΅ΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠ΅Ρ ΡΠΎΡΠΊΠ°Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ°Π½Π°Π»Π΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π² ΡΠ°ΠΉΠ»Π΅ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
Cage.push_all () β Β«Π²ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΡΒ» ΠΈΠ· Π±ΡΡΠ΅ΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΡΠ΅Ρ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π΄Π»Ρ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° ΠΊΠ»Π°ΡΡΠ° Cage, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ΠΎ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΡΠΌ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° Π²ΡΠ΅Ρ ΠΊΠ°Π½Π°Π»Π°Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com