рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА: рд╡рд┐рднрд┐рдиреНрди рдкрд╛рдпрдерди рджреБрднрд╛рд╖рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреИрд╕реЗ рдХрд░реЗрдВ! рдореБрдЭреЗ рдХрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреА рд░рд╛рдп рдореЗрдВ, рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рдкрд╕рдВрдж
рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдХрдИ рдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕рдорд╛рдзрд╛рди рдЪреБрдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрд╣ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░, рд╕реЙрдХреЗрдЯреНрд╕ рдФрд░ RPC рдХреА рддреБрд▓рдирд╛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╛рд░реНрдп рд╕реЗ рдЖрдпрд╛ рд╣реВрдВред рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИ:
рдЯреАрд╕реАрдкреА рд╕реЙрдХреЗрдЯ
рд╕реЙрдХреЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реИ, рдЖрдк рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдХреЛрдб рдХреЛ рд╕рдВрддреГрдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рд░рд╛рд╕реНрддрд╛ рдХрд╛рдВрдЯреЗрджрд╛рд░ рд╣реИ, рдФрд░ рдЧрд▓рддрд┐рдпрд╛рдБ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рд╣реИрдВред
рдирд┐рд╖реНрдХрд░реНрд╖: рдЙрдкрдпреБрдХреНрдд, рд▓реЗрдХрд┐рди рдХрдард┐рдиредZeroMQ рд▓рд╛рдЗрдмреНрд░реЗрд░реА
рдПрдХ рдмрд╣реБрдд рд╣реА рд╣реЛрдирд╣рд╛рд░ рд╡рд┐рдХрд╛рд╕ рдмреНрд░реЛрдХрд░рд▓реЗрд╕ рд╕рдВрджреЗрд╢ рдХрддрд╛рд░ред
Pyzmq рдФрд░
pyzmq-static рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рдЬрд╝реАрд░реЛрдПрдордХреНрдпреВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рд╕реА рдореЗрдВ рд▓рд┐рдЦрд┐рдд рдПрдХ рд╕рд╛рдЭрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпред рджреВрд╕рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрд╛рдЗрдирд░реА рд╣реИред рдпрд╣ рд╕рдм рдмрд╣реБрдд рдордЬрд╝реЗрджрд╛рд░ рд╢реБрд░реВ рд╣реБрдЖ, рдХреЛрдб рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдЖрдпрд░рдирдкреАрдереЙрди рдкрд░ рдирд╣реАрдВ рдЪрд▓рд╛ рдЧрдпрд╛ ...
Pyzmq рдХреЛ IronPython рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред .NET рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рд╣реИ, рдЬреЛ
clrzmq - .NET рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ; рдФрд░ рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╢реБрд░реВ рд╣реБрдИрдВред рдмрд╛рдЗрдирд░реА VisualStudio - рдирдЧреЗрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреА рдереАред рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛, рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд┐рд▓реНрдб рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рд╕рдВрд╕реНрдХрд░рдг 2 рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдирдЧреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЯреВрдЯреА рд╣реБрдИ рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИ?), 3 рдмреАрдЯрд╛ рд╕рдВрдХрд▓рд┐рдд, рд▓реЗрдХрд┐рди рдпрд╣ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреА рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛)
рдирддреАрдЬрддрди, рдмрд╛рдЗрдирд░реА 2 рднреА рдиреЗрдЯрд╡рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЦреБрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ред рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рдЧрдпрд╛, рд▓реЗрдХрд┐рди 3-рдХреЗ рдореЗрдВ рдПрдкреАрдЖрдИ рдЗрддрдирд╛ рдмрджрд▓ рдЧрдпрд╛ рдХрд┐ рдореИрдВ рд╕реМ рдмрд╛рд░ рдмрд╛рдж рдореЗрдВ рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖: рд╢реБрджреНрдз рдЕрдЬрдЧрд░ рдХреЗ рдмрд╛рд╣рд░ рдЕрдЪреНрдЫрд╛, рд▓реЗрдХрд┐рди рдХрдЪреНрдЪрд╛редрдкрд╛рдпрд░реЛ, рдЗрд╕реЗ рдЖрдЧ рд▓рдЧрд╛ рджреЛ!
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ 0mq рдХреЛ рдЦрддреНрдо рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкреНрдпреВрд░реЛ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рдпрд╛рдж рдХрд┐рдпрд╛: 90 рдХреЗ рджрд╢рдХ рдХреЗ рд╕рдВрдХрдЯ рд╕реЗ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп, рдЬреЛ рдЕрдЪреНрдЫрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЗрд╕рдХреЗ рд╕рднреА рд▓рд╛рднреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдЕрдм рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ - рджреБрднрд╛рд╖рд┐рдпреЛрдВ рдХреА рдмрд╛рддрдЪреАрддред рдмрд┐рдВрджреБ рдкрд░ рддреБрд░рдВрдд, рд╣рдо
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдЕрдВрддрд░ рдХреЗ рд╕рд╛рде рдХрд┐ рд╣рдо рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреБрднрд╛рд╖рд┐рдпреЛрдВ рдХреЗ рддрд╣рдд рдЪрд▓рд╛рддреЗ рд╣реИрдВ (рдХреЛрдб рдирд╣реАрдВ рдмрджрд▓рд╛, рдпрд╣ рдмрд╕ рдЗрд╕рдХреЗ рдЙрдкрдирд╛рдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд┐рдпрд╛)ред
рд╣рдо рдирд╛рдо рд╕рд░реНрд╡рд░ рдХреЛ Jython рдХреЗ рддрд╣рдд рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рд╡реИрд╕реЗ, рдпрд╣рд╛рдБ рдкрд╣рд▓рд╛ рд╡рд┐рд╢рд╛рд▓ рдкреНрд▓рд╕ рд╣реИ, 0mq рдкрд░ рдирд╛рдо рд╕рд░реНрд╡рд░ рдЕрднреА рддрдХ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ:
рд╡рд╛рд╣! рд╢реБрд░реВ рд╣реБрдЖ ...рдЕрдм рдЖрдпрд░рдирдкреАрдереЙрди рдХреЗ рддрд╣рдд рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ:
рдкрдВрдЬреАрдХрд░рдг рд╕рдлрд▓ рд░рд╣рд╛редрдЕрдЧрд▓рд╛ рдХрджрдо рдХреНрд▓рд╛рдЗрдВрдЯ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдЕрдЬрдЧрд░ рдХреЗ рддрд╣рдд рдХрд░рддреЗ рд╣реИрдВ (рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдИрдкреАрдбреА рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ):
рд╡рд╛рд╣! рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рдЧрдпрд╛редрдЕрдЪрд╛рд░ рд╕рдВрд╕реНрдХрд░рдг
рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрдерди 3 рдХреЗ рддрд╣рдд рдПрдХ рднрд╛рдЧ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╣реИрдХ рдХреЗ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛ :( рдмрд╛рдж рд╡рд╛рд▓реЗ рддреАрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ + рдХреЛрдИ рдорд╛рдирдХ рдореЙрдбреНрдпреВрд▓ рдирд╣реАрдВ рд╣реИрдВ (рд╣рдЯрд╛рдП рдЧрдП, рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдП рдЧрдП), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдХрд╛рд░рдг Pyro4 рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдЪрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде, рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рджреЛрд╖ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ Python 3 рдХреЛ IronPython 2 рдФрд░ Jyonon 3 рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП:
import pickle pickle.HIGHEST_PROTOCOL = 2
Pyro рдХреЛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛:
64-рдмрд┐рдЯ рдкрд╛рдпрдерди 3 рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВредрд╡реИрд╕реЗ, рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдкрд╛рдпрдерди рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдХреЗ рдмрд┐рдирд╛ .NET рдпрд╛ рдЬрд╛рд╡рд╛ рд╕реЗ рд╕реАрдзреЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдкрд╛рдЗрд░реЛрд▓рд╛рдЗрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдорд┐рдиреА рдЕрдЪрд╛рд░ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, Pyro рдХреЗ рд╕рд╛рде рд╕рдорд╛рдзрд╛рди рдХреЛ рдЕрдм рддрдХ рджреВрд╕рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡рддрдГ 0mq рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд▓рд╛рднрджрд╛рдпрдХ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЕрднреА рднреА Pyro4 рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред