BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг

BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг

рдирдорд╕реНрддреЗ, Habr!

рд╣рд╛рдореНрд░реЛ рдХрдореНрдкрдиреАрд▓реЗ ERP-рдХреНрд▓рд╛рд╕ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕рдорд╛рдзрд╛рдирд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рдорд╛ рдорд╛рд╣рд┐рд░ рдЫ, рдЬрд╕рдорд╛ рдареВрд▓реЛ рдорд╛рддреНрд░рд╛рдорд╛ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рддрд░реНрдХ рд░ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ a la EDMS рдХреЛ рд╕рд╛рде рд▓реЗрдирджреЗрди рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрд▓реЗ рдареВрд▓реЛ рд╣рд┐рд╕реНрд╕рд╛ рдУрдЧрдЯреЗрдХреЛ рдЫред рд╣рд╛рдореНрд░рд╛ рдЙрддреНрдкрд╛рджрдирд╣рд░реВрдХрд╛ рдЖрдзреБрдирд┐рдХ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ JavaEE рдкреНрд░рд╡рд┐рдзрд┐рд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрдиреН, рддрд░ рд╣рд╛рдореА рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рд╣рд░реВрдорд╛ рдкрдирд┐ рд╕рдХреНрд░рд┐рдп рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВред рддреНрдпрд╕реНрддрд╛ рд╕рдорд╛рдзрд╛рдирд╣рд░реВрдХреЛ рд╕рдмреИрднрдиреНрджрд╛ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдЫреЗрдЙрдЫрд╛рдЙрдХрд╛ рдбреЛрдореЗрдирд╣рд░реВрд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рдПрдХреАрдХрд░рдг рд╣реЛред рдПрдХреАрдХрд░рдг рдХрд╛рд░реНрдпрд╣рд░реВрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рд╕рдзреИрдВ рдареВрд▓реЛ рдЯрд╛рдЙрдХреЛ рджреБрдЦрд╛рдЗ рджрд┐рдПрдХреЛ рдЫ, рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╢реИрд▓реАрд╣рд░реВ, рдЯреЗрдХреНрдиреЛрд▓реЛрдЬреА рд╕реНрдЯреНрдпрд╛рдХрд╣рд░реВ рд░ рдлреНрд░реЗрдорд╡рд░реНрдХрд╣рд░реВ рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ, рддрд░ рд╣рд╛рд▓рд╕рд╛рд▓реИ рддреНрдпрд╕реНрддрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдкреНрд░рдЧрддрд┐ рднрдПрдХреЛ рдЫред

рддрдкрд╛рдИрдХреЛ рдзреНрдпрд╛рдирдорд╛ рд▓реНрдпрд╛рдЗрдПрдХреЛ рд▓реЗрдЦрдорд╛, рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░рдорд╛ рдПрдирдкреАрдУ рдХреНрд░рд┐рд╕реНрдЯрд╛рдХреЛ рдЕрдиреБрднрд╡ рд░ рд╡рд╛рд╕реНрддреБ рдЕрдиреБрд╕рдиреНрдзрд╛рдирдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреБред рд╣рд╛рдореА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ рдПрдХреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рдирдХреЛ рдЙрджрд╛рд╣рд░рдг рдкрдирд┐ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рдпреЛ рд╕рд░рд▓рддрд╛ рдкрдЫрд╛рдбрд┐ рд▓реБрдХреЗрдХреЛ рдЫ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗрдЫреМрдВред

рдЕрд╕реНрд╡реАрдХрд░рдг

рд▓реЗрдЦрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд░ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдореИрд▓реЗ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡рдХреЛ рдЖрдзрд╛рд░рдорд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реЗрдХреЛ рд╣реЛред рдпреА рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рднрдПрдХреЛ рджрд╛рдмреА рдЧрд░реНрджреИрдирдиреН рд░ рдкреНрд░рдпреЛрдЧрдХрд╛ рдЕрдиреНрдп рдЕрд╡рд╕реНрдерд╛рд╣рд░реВрдорд╛ рдЗрд╖реНрдЯрддрдо рдирд╣реБрди рд╕рдХреНрдЫред

BPM рд▓реЗ рдпрд╕рдХреЛ рд╕рд╛рде рдХреЗ рдЧрд░реНрдиреБ рдкрд░реНрдЫ?

рдпрд╕ рдкреНрд░рд╢реНрдирдХреЛ рдЙрддреНрддрд░рдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░рд╛ рд╕рдорд╛рдзрд╛рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧреВ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рд╣рд░реВрдорд╛ рдЕрд▓рд┐рдХрддрд┐ рдЕрдзреНрдпрдпрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╣рд╛рдореНрд░реЛ рд╕рд╛рдорд╛рдиреНрдп рд▓реЗрдирджреЗрди рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдХреЛ рдореБрдЦреНрдп рднрд╛рдЧ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╣рд░реВ рдорд╛рд░реНрдлрдд рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдбрд╛рдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрджреИ, рдореНрдпрд╛рдиреБрдЕрд▓ рд░реВрдкрдорд╛ рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдпреЛ рдбрд╛рдЯрд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрджреИ, рдХреЗрд╣реА рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдорд╛рд░реНрдлрдд рдкрд╛рд╕ рдЧрд░реНрджреИ, рдпрд╕рд▓рд╛рдИ рдЕрд░реНрдХреЛ рдкреНрд░рдгрд╛рд▓реА / рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдбрд╛рдЯрд╛рдмреЗрд╕ / рдЕрднрд┐рд▓реЗрдЦрдорд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрджреИ, рд░рд┐рдкреЛрд░реНрдЯрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджреИред рддрд╕рд░реНрде, рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рднрдиреЗрдХреЛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд╕реНрд╡рдЪрд╛рд▓рди рд╣реЛред

рд╕реБрд╡рд┐рдзрд╛рдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рд╕рдВрдЪрд╛рд░рдорд╛ "рдХрд╛рдЧрдЬрд╛рдд" рд╢рдмреНрджрд▓рд╛рдИ рдбреЗрдЯрд╛ рд╕реЗрдЯрдХреЛ рдХреЗрд╣реА рдЕрдореВрд░реНрддрддрд╛рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ, рд╕рд╛рдЭрд╛ рдХреБрдЮреНрдЬреАрджреНрд╡рд╛рд░рд╛ рдПрдХрддрд╛рдмрджреНрдз рд╣реБрдиреНрдЫ, рдЬрд╕рдорд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ "рд╕рдВрд▓рдЧреНрди" рд╣реБрди рд╕рдХреНрдЫред
рддрд░ рдПрдХреАрдХрд░рдг рддрд░реНрдХрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рд╣реЛ? рдЖрдЦрд┐рд░, рдПрдХреАрдХрд░рдгрдХреЛ рдХрд╛рд░реНрдп рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ, рдЬреБрди рдЧреНрд░рд╛рд╣рдХрдХреЛ рдЕрдиреБрд░реЛрдзрдорд╛ рд╣реЛрдЗрди, рддрд░ рдкреВрд░реНрдгрддрдпрд╛ рдлрд░рдХ рдХрд╛рд░рдХрд╣рд░реВрдХреЛ рдкреНрд░рднрд╛рд╡рдорд╛ рднрд╛рдЧрд╣рд░реВрдорд╛ "рдЖрдЙ" рдЧрд░рд┐рдПрдХреЛ рдЫ:

  • Conway рдХреЛ рдХрд╛рдиреВрди рдХреЛ рдкреНрд░рднрд╛рд╡ рдЕрдиреНрддрд░реНрдЧрдд;
  • рдЕрдиреНрдп рдЙрддреНрдкрд╛рджрдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд╣рд┐рд▓реЗ рд╡рд┐рдХрд╕рд┐рдд рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рдкреБрди: рдкреНрд░рдпреЛрдЧрдХреЛ рдкрд░рд┐рдгрд╛рдордХреЛ рд░реВрдкрдорд╛;
  • рд╡рд╛рд╕реНрддреБрдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдгрдп рдЧрд░реЗ рдЕрдиреБрд╕рд╛рд░, рдЧреИрд░-рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрдХреЛ рдЖрдзрд╛рд░рдорд╛ред

рддреНрдпрд╣рд╛рдБ рдПрдХреАрдХрд░рдг рддрд░реНрдХрд▓рд╛рдИ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рдХреЛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдмрд╛рдЯ рдЕрд▓рдЧ рдЧрд░реНрдиреЗ рдареВрд▓реЛ рдкреНрд░рд▓реЛрднрди рдЫ рддрд╛рдХрд┐ рдПрдХреАрдХрд░рдг рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВрдХреЛ рд╕рд╛рде рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд▓рд╛рдИ рдкреНрд░рджреВрд╖рд┐рдд рдирд╣реЛрд╕реН рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░рд┐рджреГрд╢реНрдпрдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВрдорд╛ рдЬрд╛рди рдирдкрд░реЛрд╕реНред рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдзреЗрд░реИ рдлрд╛рдЗрджрд╛рд╣рд░реВ рдЫрдиреН, рддрд░ рдЕрднреНрдпрд╛рд╕рд▓реЗ рдпрд╕рдХреЛ рдЕрд╕рдХреНрд╖рдорддрд╛ рджреЗрдЦрд╛рдЙрдБрджрдЫ:

  • рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рд╕реАрдорд┐рдд рд╡рд┐рд╕реНрддрд╛рд░ рдмрд┐рдиреНрджреБрд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдПрдХреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХрд▓рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рд╕рд░рд▓ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрдорд╛ рд╕реНрд▓рд╛рдЗрдб рд╣реБрдиреНрдЫ (рддрд▓ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдПрдХреАрдХрд░рдгрдХреЛ рдХрдордЬреЛрд░реАрд╣рд░реВрдорд╛ рдердк);
  • рдЕрд░реНрдХреЛ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдмрд╛рдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдБрджрд╛ рдПрдХреАрдХрд░рдг рдХрд▓рд╛рдХреГрддрд┐рд╣рд░реВрд▓реЗ рдЕрдЭреИ рдкрдирд┐ рдореБрдЦреНрдп рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдорд╛ рдкреНрд░рд╡реЗрд╢ рдЧрд░реНрджрдЫ;
  • рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдПрдХреАрдХрд░рдгрд▓рд╛рдИ рдмреЗрд╡рд╛рд╕реНрддрд╛ рдЧрд░реНрджрдЫ рд░ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реЗрд░ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рддреЛрдбреНрди рд╕рдХреНрдЫ;
  • рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ рдПрдХрд▓ рдкреВрд░реИ рд╣реБрди рдмрдиреНрдж рд╣реБрдиреНрдЫ, рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдмреАрдЪрдХреЛ "рд╕реАрдорд╣рд░реВ" рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реБрдиреНрдЫрдиреН, рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрджрдЫ рдЬрд╕рд▓реЗ рдбрд╛рдЯрд╛рд▓рд╛рдИ рдПрдХ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдмрд╛рдЯ рдЕрд░реНрдХреЛрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рдерд╛рд▓реНрдЫред

рдЕрд░реНрдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рднрдиреЗрдХреЛ рдПрдХреАрдХрд░рдг рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдореБрдЦреНрдп рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ рд░ рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣рдХреЛ рдЕрднрд┐рдиреНрди рдЕрдВрдЧрдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрдиреБ рд╣реЛред рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд╕реАрдк рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрд▓рд╛рдИ рд╕реНрдХрд╛рдЗрд░реЛрдХреЗрдЯрд┐рдЩрдмрд╛рдЯ рдЬреЛрдЧрд╛рдЙрди, рдирдпрд╛рдБ рдПрдХреАрдХрд░рдг рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рд░ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдкрдорд╛ рд╕рдорд╛рдзрд╛рди рдЫрдиреЛрдЯ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдиреНрдпреВрдирддрдо рд╡рд┐рдХрд▓реНрдкрд╣рд░реВрдХреЛ рд╕рд╛рде рд╣реБрдиреБрдкрд░реНрдЫред рдпреЛ рджреЗрдЦрд┐рдиреНрдЫ рднрдиреНрджрд╛ рдзреЗрд░реИ рдЧрд╛рд╣реНрд░реЛ рдЫ: рдЙрдкрдХрд░рдг рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рдпрд╕рдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдкрд░реНрдпрд╛рдкреНрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рд╣реБрдиреБрдкрд░реНрдЫ рд░ рдПрдХреИ рд╕рдордпрдорд╛ рдЖрдлреВрд▓рд╛рдИ рдЦреБрдЯреНрдЯрд╛рдорд╛ рдЧреЛрд▓реА рд╣рд╛рдиреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдБрджреИрдиред рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдкреНрд░рд╢реНрдирд╣рд░реВ рдЫрдиреН рдЬреБрди рдПрдХ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░рд▓реЗ рдПрдХреАрдХрд░рдг рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдЬрд╡рд╛рдл рджрд┐рдиреИ рдкрд░реНрдЫ, рддрд░ рдЬреБрди рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдЖрдлреНрдиреЛ рджреИрдирд┐рдХ рдХрд╛рдордорд╛ рд╕реЛрдЪреНрдиреБ рд╣реБрдБрджреИрди: рд▓реЗрдирджреЗрди рд╕реАрдорд╛, рд╕реНрдерд┐рд░рддрд╛, рдкрд░рдорд╛рдгреБ, рд╕реБрд░рдХреНрд╖рд╛, рд╕реНрдХреЗрд▓рд┐,, рд▓реЛрдб рд░ рд╕реНрд░реЛрдд рд╡рд┐рддрд░рдг, рдорд╛рд░реНрдЧ, рдорд╛рд░реНрд╢рд▓рд┐рдВрдЧ, рдкреНрд░рдЪрд╛рд░ рд░ рд╕реНрд╡рд┐рдЪрд┐рдЩ рд╕рдиреНрджрд░реНрднрд╣рд░реВ, рдЖрджрд┐ред рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдПрдХрджрдо рд╕рд░рд▓ рдирд┐рд░реНрдгрдп рдЯреЗрдореНрдкреНрд▓реЗрдЯрд╣рд░реВ рдкреНрд░рд╕реНрддрд╛рд╡ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЬрд╕рдорд╛ рддреНрдпрд╕реНрддрд╛ рд╕рдмреИ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рдкрд╣рд┐рд▓реЗ рдиреИ рд▓реБрдХреЗрдХреЛ рдЫред рдпреА рдврд╛рдБрдЪрд╛рд╣рд░реВ рдкрд░реНрдпрд╛рдкреНрдд рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реБрдиреБрдкрд░реНрдЫ: рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдзреЗрд░реИ рдкрдЯрдХ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ, рдЬрд╕рд▓реЗ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдкрд░рд┐рдЪрдпрдХреЛ рдЬреЛрдЦрд┐рдо рдмрдврд╛рдЙрдБрдЫ, рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рд▓рд╛рдЧрдд рдПрдХрджрдо рдХрдо рд╕реНрддрд░рдорд╛ рд░рд╣рдиреБрдкрд░реНрдЫред

рддрд░ рдЕрдЭреИ, BPM рд▓реЗ рдпрд╕рдХреЛ рд╕рд╛рде рдХреЗ рдЧрд░реНрдиреБ рдкрд░реНрдЫ? рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣ рд▓рд╛рдЧреВ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЫрдиреН ...
рд╡рд╛рд╕реНрддрд╡рдорд╛, рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдЕрд░реНрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рд╛рдореНрд░реЛ рд╕рдорд╛рдзрд╛рдирд╣рд░реВрдорд╛ рдзреЗрд░реИ рд▓реЛрдХрдкреНрд░рд┐рдп рдЫ - рд░рд╛рдЬреНрдп рд╕рдВрдХреНрд░рдордг рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдХреЛ рдШреЛрд╖рдгрд╛рддреНрдордХ рд╕реЗрдЯрд┐рдЩ рд░ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд╕рдБрдЧ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВрд▓рд╛рдИ рд╕рдВрдХреНрд░рдордгрд╣рд░реВрдорд╛ рдЬреЛрдбреНрдиреЗред рдПрдХреИ рд╕рдордпрдорд╛, рд░рд╛рдЬреНрдп рдЬрд╕рд▓реЗ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ "рдХрд╛рдЧрдЬрд╛рдд" рдХреЛ рд╣рд╛рд▓рдХреЛ рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ "рдХрд╛рдЧрдЬрд╛рдд" рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛред

BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг
рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╕реБрд░реБрдорд╛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ

рдпрд╕реНрддреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд░реИрдЦрд┐рдХ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕рд░рд▓рддрд╛ рд░ рдЧрддрд┐рдХреЛ рдХрд╛рд░рдг рд╣реЛред рдпрджреНрдпрдкрд┐, рд╕рдлреНрдЯрд╡реЗрдпрд░ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдердк рдЬрдЯрд┐рд▓ рд╣реБрдБрджреИ рдЬрд╛рдБрджрд╛, рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рднрд╛рдЧ рдмрдвреНрджреИ рдЬрд╛рдиреНрдЫ рд░ рдердк рдЬрдЯрд┐рд▓ рд╣реБрдиреНрдЫред рддреНрдпрд╣рд╛рдБ рд╡рд┐рдШрдЯрди, рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХрд╛ рднрд╛рдЧрд╣рд░реВрдХреЛ рдкреБрди: рдкреНрд░рдпреЛрдЧ, рд╕рд╛рдереИ рдлреЛрд░реНрдХрд┐рдЩ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЫ рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реБрдиреНрдЫред рдпрд╕реНрддреЛ рдЕрд╡рд╕реНрдерд╛рд╣рд░реВрдорд╛, рдЙрдкрдХрд░рдг рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реБрдиреНрдЫ, рд░ рд░рд╛рдЬреНрдп рд╕рдВрдХреНрд░рдордг рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рд▓реЗ рдпрд╕рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдЧреБрдорд╛рдЙрдБрдЫ (рдПрдХреАрдХрд░рдг рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдорд╛ рдкреНрд░рддрд┐рдмрд┐рдореНрдмрд┐рдд рд╣реБрдБрджреИрдирдиреН)ред

BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг
рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рд╕реНрдкрд╖реНрдЯ рдЧрд░реНрдиреЗ рдзреЗрд░реИ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рд╣рд░реВ рдкрдЫрд┐ рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ

рдпрд╕ рд╕реНрдерд┐рддрд┐рдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдмрд╛рдЯреЛ рдЗрдиреНрдЬрд┐рди рдХреЛ рдПрдХреАрдХрд░рдг рдерд┐рдпреЛ jBPM рдзреЗрд░реИ рдЬрдЯрд┐рд▓ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реБ рд╕рдВрдЧ рдХреЗрд╣рд┐ рдЙрддреНрдкрд╛рджрдирд╣рд░реБ рдорд╛ред рдЫреЛрдЯреЛ рдЕрд╡рдзрд┐рдорд╛, рдпреЛ рд╕рдорд╛рдзрд╛рдирд▓реЗ рдХреЗрд╣реА рд╕рдлрд▓рддрд╛ рдкрд╛рдпреЛ: рдиреЛрдЯреЗрд╢рдирдорд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд░ рдЕрдк-рдЯреБ-рдбреЗрдЯ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдХрд╛рдпрдо рд░рд╛рдЦреНрджреИ рдЬрдЯрд┐рд▓ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рд╕рдореНрднрд╡ рднрдпреЛред BPMN2.

BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг
рдПрдХ рдЬрдЯрд┐рд▓ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рд╕рд╛рдиреЛ рднрд╛рдЧ

рд▓рд╛рдореЛ рдЕрд╡рдзрд┐рдорд╛, рд╕рдорд╛рдзрд╛рдирд▓реЗ рдЕрдкреЗрдХреНрд╖рд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрди рд╕рдХреЗрди: рднрд┐рдЬреБрдЕрд▓ рдЙрдкрдХрд░рдгрд╣рд░реВ рдорд╛рд░реНрдлрдд рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдЙрдЪреНрдЪ рд╢реНрд░рдо рддреАрд╡реНрд░рддрд╛рд▓реЗ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдЙрддреНрдкрд╛рджрдХрддрд╛ рд╕реВрдЪрдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдПрди, рд░ рдЙрдкрдХрд░рдг рдЖрдлреИрдВ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рдмреАрдЪ рд╕рдмреИрднрдиреНрджрд╛ рдордирдкрд░реНрдиреЗ рдордзреНрдпреЗ рдПрдХ рднрдпреЛред рддреНрдпрд╣рд╛рдБ рдЗрдиреНрдЬрд┐рдирдХреЛ рдЖрдиреНрддрд░рд┐рдХ рд╕рдВрд░рдЪрдирд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдкрдирд┐ рдЧреБрдирд╛рд╕реЛрд╣рд░реВ рдерд┐рдП, рдЬрд╕рд▓реЗ рдзреЗрд░реИ "рдкреНрдпрд╛рдЪ" рд░ "рдмреИрд╕рд╛рдЦреА" рдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рдХреЛ рдиреЗрддреГрддреНрд╡ рдЧрд░реНрдпреЛред

jBPM рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдореБрдЦреНрдп рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рднрдиреЗрдХреЛ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рд╕реНрдерд┐рд░ рдЕрд╡рд╕реНрдерд╛рдХреЛ рдлрд╛рдЗрджрд╛ рд░ рд╣рд╛рдирд┐рдХреЛ рдЕрдиреБрднреВрддрд┐ рдерд┐рдпреЛред рд╣рд╛рдореАрд▓реЗ рд╕рдВрдХреЗрдд рд░ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдорд╛рд░реНрдлрдд рдПрд╕рд┐рдиреНрдХреНрд░реЛрдирд╕ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдмреАрдЪ рдЬрдЯрд┐рд▓ рдПрдХреАрдХрд░рдг рдкреНрд░реЛрдЯреЛрдХрд▓рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдкрдирд┐ рджреЗрдЦреНрдпреМрдВред рдпрд╕рдорд╛ рд╕реНрдерд╛рдпреА рд░рд╛рдЬреНрдпрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рд▓реЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рднреВрдорд┐рдХрд╛ рдЦреЗрд▓реНрдЫред

рдорд╛рдерд┐рдХреЛ рдЖрдзрд╛рд░рдорд╛, рд╣рд╛рдореА рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛ рдкреБрдЧреНрди рд╕рдХреНрдЫреМрдВ: BPM рд╢реИрд▓реАрдорд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЕрдЭ рдЬрдЯрд┐рд▓ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрди, рдпреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдорд╛ рд╕рд╛рдордВрдЬрд╕реНрдпрдкреВрд░реНрдг рд░реВрдкрдорд╛ рдПрдХреАрдХрд░рдг рдЧрддрд┐рд╡рд┐рдзрд┐рд╣рд░реВ рдлрд┐рдЯ рдЧрд░реНрди рд░ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рдиреЛрдЯреЗрд╢рдирдорд╛ рджреГрд╢реНрдпрд╛рддреНрдордХ рд░реВрдкрдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдХрд╛рдпрдо рд░рд╛рдЦреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддреГрдд рджрд╛рдпрд░рд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдПрдХреАрдХрд░рдг рдврд╛рдБрдЪрд╛рдХреЛ рд░реВрдкрдорд╛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХрд▓рд╣рд░реВрдХреЛ рдмреЗрдлрд╛рдЗрджрд╛рд╣рд░реВ

рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдПрдХреАрдХрд░рдгрд▓реЗ рд╕рд░рд▓ рдмреНрд▓рдХрд┐рдЩ рдХрд▓рд▓рд╛рдИ рдмреБрдЭрд╛рдЙрдБрдЫред рдПрдЙрдЯрд╛ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд▓реЗ рд╕рд░реНрднрд░ рд╕рд╛рдЗрдбрдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫ рд░ рдЗрдЪреНрдЫрд┐рдд рд╡рд┐рдзрд┐рдХреЛ рд╕рд╛рде API рд▓рд╛рдИ рдЙрдЬрд╛рдЧрд░ рдЧрд░реНрджрдЫред рдЕрд░реНрдХреЛ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫ рд░, рд╕рд╣реА рд╕рдордпрдорд╛, рдкрд░рд┐рдгрд╛рдордХреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреЛ рд╕рд╛рде рдХрд▓ рдЧрд░реНрджрдЫред рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджреИ, рдХреНрд▓рд╛рдЗрдиреНрдЯ рд░ рд╕рд░реНрднрд░ рдкрдХреНрд╖рд╣рд░реВ рдПрдЙрдЯреИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛, рд╡рд╛ рдлрд░рдХрдорд╛ рд╣реЛрд╕реНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рджреЛрд╕реНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рддрдкрд╛рдИрдВрд▓реЗ RPC рдХреЛ рдХреЗрд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд╛рдЧреВ рдЧрд░реНрди рд░ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдХреЛ рдорд╛рд░реНрд╢рд▓ рд░ рдХрд▓рдХреЛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг

рдпрд╕реНрддреЛ рдПрдХреАрдХрд░рдг рдврд╛рдБрдЪрд╛рдорд╛ рдХрдордЬреЛрд░реАрд╣рд░реВрдХреЛ рдПрдХрджрдо рдареВрд▓реЛ рд╕реЗрдЯ рдЫ, рддрд░ рдпреЛ рдпрд╕рдХреЛ рд╕рд░рд▓рддрд╛рдХреЛ рдХрд╛рд░рдг рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛ рдзреЗрд░реИ рд╡реНрдпрд╛рдкрдХ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдЧрддрд┐рд▓реЗ рдордирдореЛрд╣рдХ рдмрдирд╛рдЙрдБрдЫ рд░ рддрдкрд╛рдЗрдБрд▓рд╛рдИ "рдмрд░реНрдирд┐рдЩ" рд╕рдордпрд╕реАрдорд╛рдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рдЛрдгрдорд╛ рд╕рдорд╛рдзрд╛рди рд▓реЗрдЦреЗрд░ рдпрд╕рд▓рд╛рдИ рдмрд╛рд░рдореНрдмрд╛рд░ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫред рддрд░ рдпреЛ рдкрдирд┐ рд╣реБрдиреНрдЫ рдХрд┐ рдЕрдиреБрднрд╡рд╣реАрди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЕрдирдЬрд╛рдиреЗ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫрдиреН, рдХреЗрд╡рд▓ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рдорд╣рд╕реБрд╕ рдЧрд░реНрджреИрдирдиреНред

рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЬрдбрд╛рдирдорд╛ рд╕рдмреИрднрдиреНрджрд╛ рд╕реНрдкрд╖реНрдЯ рд╡реГрджреНрдзрд┐рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рддреНрдпрд╣рд╛рдБ "рдлреИрд▓рд┐рдПрдХреЛ" рд░ "рддрд╛рдиреНрджреИ" рд▓реЗрдирджреЗрдирдХреЛ рд╕рд╛рде рдХрдо рд╕реНрдкрд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рдЫрдиреНред рд╡рд╛рд╕реНрддрд╡рдорд╛, рдпрджрд┐ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд▓реЗ рдХреБрдиреИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджрдЫ, рддрдм рд▓реЗрдирджреЗрдирд╣рд░реВ рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рдЫрдиреН, рд░ рд▓реЗрдирджреЗрдирд╣рд░реВ, рдмрджрд▓рд╛рдорд╛, рдпреА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд┐рд╢реНрдЪрд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрд░реЛрддрд╣рд░реВ рд▓рдХ рд╣реБрдиреНрдЫрдиреНред рддреНрдпреЛ рд╣реЛ, рдЬрдмрд╕рдореНрдо рдПрдЙрдЯрд╛ рд╕рдмрд╕рд┐рд╕реНрдЯрдорд▓реЗ рдЕрд░реНрдХреЛрдмрд╛рдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрджреИрди, рдпрд╕рд▓реЗ рд▓реЗрдирджреЗрди рдкреВрд░рд╛ рдЧрд░реНрди рд░ рд▓рдХрд╣рд░реВ рдЬрд╛рд░реА рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗ рдЫреИрдиред рдпрд╕рд▓реЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рднрд╛рд╡рд╣рд░реВрдХреЛ рдЬреЛрдЦрд┐рдо рдмрдврд╛рдЙрдБрдЫ:

  • рдкреНрд░рдгрд╛рд▓реА рдЙрддреНрддрд░рджрд╛рдпрд┐рддреНрд╡ рд╣рд░рд╛рдПрдХреЛ рдЫ, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдЬрд╡рд╛рдлрдХреЛ рд▓рд╛рдЧрд┐ рд▓рд╛рдореЛ рд╕рдордп рдкрд░реНрдЦрд┐рд░рд╣реЗрдХрд╛ рдЫрдиреН;
  • рд╕рд░реНрднрд░рд▓реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдУрднрд░рдлреНрд▓реЛрдЗрдЩреНрдЧ рдереНрд░реЗрдб рдкреВрд▓рдХреЛ рдХрд╛рд░рдг рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рди рд░реЛрдХреНрдЫ: рдзреЗрд░реИ рдЬрд╕реЛ рдереНрд░реЗрдбрд╣рд░реВ рд▓реЗрдирджреЗрди рджреНрд╡рд╛рд░рд╛ рдХрдмреНрдЬрд╛ рдЧрд░рд┐рдПрдХреЛ рд╕реНрд░реЛрддрдХреЛ рд▓рдХрдорд╛ "рд╕реНрдЯреНрдпрд╛рдиреНрдб" рд╣реБрдиреНрдЫрдиреН;
  • рдЧрддрд┐рд░реЛрдзрд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрди рдерд╛рд▓реНрдЫрдиреН: рддрд┐рдиреАрд╣рд░реВрдХреЛ рдШрдЯрдирд╛рдХреЛ рд╕рдореНрднрд╛рд╡реНрдпрддрд╛ рд▓реЗрдирджреЗрдирдХреЛ рдЕрд╡рдзрд┐рдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджрдЫ, рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рд░ рд▓реЗрдирджреЗрдирдорд╛ рд╕рдВрд▓рдЧреНрди рд▓рдХрд╣рд░реВрдХреЛ рдорд╛рддреНрд░рд╛;
  • рд▓реЗрдирджреЗрди рдЯрд╛рдЗрдордЖрдЙрдЯ рдореНрдпрд╛рдж рд╕рдорд╛рдкреНрддрд┐ рддреНрд░реБрдЯрд┐рд╣рд░реВ рджреЗрдЦрд╛ рдкрд░реНрдЫрдиреН;
  • рд╕рд░реНрднрд░ OutOfMemory рдорд╛ "рдкрддреНрдЫ" рдпрджрд┐ рдХрд╛рд░реНрдпрд▓рд╛рдИ рдбреЗрдЯрд╛рдХреЛ рдареВрд▓реЛ рдорд╛рддреНрд░рд╛рдорд╛ рдкреНрд░рд╢реЛрдзрди рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдПрдХреАрдХрд░рдгрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐рд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ "рд╣рд▓реНрдХрд╛" рд▓реЗрдирджреЗрдирдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрди рдзреЗрд░реИ рдЧрд╛рд╣реНрд░реЛ рдмрдирд╛рдЙрдБрдЫред

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдмрд╛рдЯ, рдПрдХреАрдХрд░рдгрдХреЛ рдХреНрд░рдордорд╛ рдмреНрд▓рдХрд┐рдЩ рдХрд▓рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрд▓реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рдЧреБрдгрд╕реНрддрд░ рдирд┐рдпрдиреНрддреНрд░рдг рдЧреБрдорд╛рдЙрдБрдЫ: рдЕрд░реНрдХреЛ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЧреБрдгрд╕реНрддрд░ рд▓рдХреНрд╖реНрдпрд╣рд░реВрдмрд╛рдЯ рдЕрд▓рдЧрд╛рд╡рдорд╛ рдПрдХ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЧреБрдгрд╕реНрддрд░ рд▓рдХреНрд╖реНрдпрд╣рд░реВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЕрд╕рдореНрднрд╡ рдЫред рдпрджрд┐ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рд╡рд┐рднрд┐рдиреНрди рдЯреЛрд▓реАрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдиреНрдЫрдиреН рднрдиреЗ, рдпреЛ рдареВрд▓реЛ рд╕рдорд╕реНрдпрд╛ рд╣реЛред

рдпрджрд┐ рд╕рдмрд╕рд┐рд╕реНрдЯрдорд╣рд░реВ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рдЫрдиреН рд░ рджреБрд╡реИ рдкрдХреНрд╖рдорд╛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ рдЪреАрдЬрд╣рд░реВ рдЕрдЭ рд░реЛрдЪрдХ рд╣реБрдиреНрдЫрдиреНред рдпреА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд▓реЗрдирджреЗрди рдХрд╕рд░реА рдмрдирд╛рдЙрдиреЗ?

рдпрджрд┐ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЗрдирджреЗрдирд╣рд░реВрдорд╛ рдЧрд░рд┐рдиреНрдЫ рднрдиреЗ, рддрдм рдмрд▓рд┐рдпреЛ рдЕрдкрд╡рд╛рдж рд╣реНрдпрд╛рдиреНрдбрд▓рд┐рдВрдЧ рд░ рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ, рд░ рдпрд╕рд▓реЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдПрдХреАрдХрд░рдгрдХреЛ рдореБрдЦреНрдп рдлрд╛рдЗрджрд╛рд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╣рдЯрд╛рдЙрдБрдЫ - рд╕рд░рд▓рддрд╛ред

рд╡рд┐рддрд░рд┐рдд рд▓реЗрдирджреЗрдирд╣рд░реВ рдкрдирд┐ рджрд┐рдорд╛рдЧрдорд╛ рдЖрдЙрдБрдЫрдиреН, рддрд░ рд╣рд╛рдореА рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╣рд╛рдореНрд░реЛ рд╕рдорд╛рдзрд╛рдирд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрдиреМрдВ: рдпреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЧрд╛рд╣реНрд░реЛ рдЫред

"рд╕рд╛рдЧрд╛" рд▓реЗрдирджреЗрдирдХреЛ рд╕рдорд╕реНрдпрд╛рдХреЛ рд╕рдорд╛рдзрд╛рдирдХреЛ рд░реВрдкрдорд╛

рдорд╛рдЗрдХреНрд░реЛ рд╕рд░реНрднрд┐рд╕реЗрд╕рдХреЛ рдмрдвреНрджреЛ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛рд╕рдБрдЧреИ рдпрд╕рдХреЛ рдорд╛рдЧ рдкрдирд┐ рдмрдврд┐рд░рд╣реЗрдХреЛ рдЫ рд╕рд╛рдЧрд╛ рдкреИрдЯрд░реНрди.

рдпреЛ рдврд╛рдБрдЪрд╛рд▓реЗ рд▓рд╛рдореЛ рд▓реЗрдирджреЗрдирдХреЛ рдорд╛рдерд┐рдХрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрд▓рд╛рдИ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджрдЫ, рд░ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдХреЛ рдкрдХреНрд╖рдмрд╛рдЯ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рдЕрд╡рд╕реНрдерд╛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛рд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрджрдЫ: рдЕрд╕рдлрд▓ рд▓реЗрдирджреЗрди рдкрдЫрд┐ рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐рд▓реЗ рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рдпрд╕рдХреЛ рдореВрд▓ рд╕реНрдерд┐рддрд┐рдорд╛ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрди рд╕рдХреНрджреИрди, рддрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдорд╛рд░реНрдЧред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ "рд░рд╛рдореНрд░реЛ" рдЕрдиреНрддреНрдпрдорд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓реНрдпрд╛рдЙрди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрджрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдореНрдкрдиреНрди рдбрд╛рдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЪрд░рдгрд╣рд░реВ рджреЛрд╣реЛрд░реНрдпрд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдЪрд╛рдЦрд▓рд╛рдЧреНрджреЛ рдХреБрд░рд╛ рдХреЗ рдЫ рднрдиреЗ, рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛, рдпреЛ рдврд╛рдБрдЪрд╛ рдкрдирд┐ рд╕рд╛рдиреНрджрд░реНрднрд┐рдХ рд╣реБрдиреНрдЫ рдЬрдм рдпреЛ рдврд┐рд▓реЛ рд░реВрдкрдорд╛ рдЬреЛрдбрд┐рдПрдХреЛ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рдПрдХреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЖрдЙрдБрдЫ рд░ рддреНрдпрд╣рд╛рдБ рд▓рд╛рдореЛ рд▓реЗрдирджреЗрдирд╣рд░реВ рд░ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕реНрд░реЛрдд рд▓рдХрд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдкреНрд░рднрд╛рд╡рд╣рд░реВ рд╣реБрдиреНрдЫрдиреНред

BPM рд╢реИрд▓реАрдорд╛ рд╣рд╛рдореНрд░реЛ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛, рдпреЛ рд╕рд╛рдЧрд╛рд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНрди рдзреЗрд░реИ рд╕рдЬрд┐рд▓реЛ рд╣реБрдиреНрдЫ: рд╕рд╛рдЧрд╛рд╕рдХрд╛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЪрд░рдгрд╣рд░реВрд▓рд╛рдИ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рднрд┐рддреНрд░ рдЧрддрд┐рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдирд┐рд░рдиреНрддрд░ рдЕрд╡рд╕реНрдерд╛рд▓реЗ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрджрдЫ, рдмреАрдЪрдорд╛ред рдЕрдиреНрдп рдЪреАрдЬрд╣рд░реВ, рд╕рд╛рдЧрд╛рд╣рд░реВрдХреЛ рдЖрдиреНрддрд░рд┐рдХ рдЕрд╡рд╕реНрдерд╛ред рддреНрдпреЛ рд╣реЛ, рд╣рд╛рдореАрд▓рд╛рдИ рдХреБрдиреИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдордиреНрд╡рдп рд╕рдВрдпрдиреНрддреНрд░рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЫреИрдиред рддрдкрд╛рдИрд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдЫ "рдХрдореНрддрд┐рдорд╛ рдПрдХ рдкрдЯрдХ" рдпрд╛рддрд╛рдпрд╛рддрдХреЛ рд░реВрдкрдорд╛ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде рд╕рдиреНрджреЗрд╢ рдмреНрд░реЛрдХрд░ред

рддрд░ рдпрд╕реНрддреЛ рд╕рдорд╛рдзрд╛рди рдкрдирд┐ рдпрд╕рдХреЛ рдЖрдлреНрдиреИ "рдореВрд▓реНрдп" рдЫ:

  • рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реБрдиреНрдЫ: рддрдкрд╛рдИрдВ рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдмрд╛рд╣рд┐рд░ рдХрд╛рдо рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ;
  • рдпреЛ рдкреВрд░реНрдг рд╕реНрдерд┐рд░рддрд╛ рддреНрдпрд╛рдЧреНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реБрди рд╕рдХреНрдЫ;
  • рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЕрд▓рд┐ рдмрдвреА рдЬрдЯрд┐рд▓ рд╣реБрдиреНрдЫ, рддреНрдпрд╣рд╛рдБ рд╕рдиреНрджреЗрд╢ рдмреНрд░реЛрдХрд░рдХреЛ рд▓рд╛рдЧрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЫ;
  • рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдЧрдорди рд░ рдкреНрд░рд╢рд╛рд╕рди рдЙрдкрдХрд░рдгрд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫ (рдпрджреНрдпрдкрд┐ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдпреЛ рдкрдирд┐ рд░рд╛рдореНрд░реЛ рдЫ: рдкреНрд░рдгрд╛рд▓реА рд╕реЗрд╡рд╛рдХреЛ рдЧреБрдгрд╕реНрддрд░ рдмрдвреНрдиреЗрдЫ)ред

рдореЛрдиреЛрд▓рд┐рдерд┐рдХ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, "рд╕реНрдпрд╛рдЧрд╣рд░реВ" рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдФрдЪрд┐рддреНрдп рдпрддрд┐ рд╕реНрдкрд╖реНрдЯ рдЫреИрдиред рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕ рд░ рдЕрдиреНрдп SOA рдХреЛ рд▓рд╛рдЧрд┐, рдЬрд╣рд╛рдБ, рд╕рдореНрднрд╡рддрдГ, рдкрд╣рд┐рд▓реЗ рдиреИ рдмреНрд░реЛрдХрд░ рдЫ, рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд╕реБрд░реБрдорд╛ рдкреВрд░реНрдг рд╕реНрдерд┐рд░рддрд╛ рдмрд▓рд┐рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдпреЛ рдврд╛рдБрдЪрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдлрд╛рдЗрджрд╛рд╣рд░реВрд▓реЗ рдмреЗрдлрд╛рдЗрджрд╛рд╣рд░реВрд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдмрдврд╛рдЙрдБрдЫ, рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ API рдЫ рднрдиреЗред рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рд╕реНрддрд░ред

рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рд╣рд░реВрдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдХреЛ рдПрдиреНрдХреЗрдкреНрд╕реБрд▓реЗрд╢рди

рдЬрдм рд╣рд╛рдореАрд▓реЗ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рдХреЛ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдерд╛рд▓реНрдпреМрдВ, рдПрдХ рдЙрдЪрд┐рдд рдкреНрд░рд╢реНрди рдЙрдареНрдпреЛ: рдбреЛрдореЗрди рдбрд╛рдЯрд╛ рд╕реНрдерд┐рд░рддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрдиреЗ рд╕реЗрд╡рд╛рдХреЛ рд╕рдореНрдмрдиреНрдзрдорд╛ рдбреЛрдореЗрди рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХрд╣рд╛рдБ рд░рд╛рдЦреНрдиреЗ?

рд╡рд┐рднрд┐рдиреНрди BPMS рдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╣реЗрд░реНрджрд╛, рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХрд▓рд╛рдИ рджреГрдврддрд╛рдмрд╛рдЯ рдЕрд▓рдЧ рдЧрд░реНрдиреБ рдЙрдЪрд┐рдд рджреЗрдЦрд┐рдиреНрдЫ: рдкреНрд▓реЗрдЯрдлрд░реНрдо рд░ рдбреЛрдореЗрди-рд╕реНрд╡рддрдиреНрддреНрд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рд╣рд░реВрдХреЛ рдПрдХ рддрд╣ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬрд╕рд▓реЗ рдбреЛрдореЗрди рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рддрд╛рд╡рд░рдг рд░ рдХрдиреНрдЯреЗрдирд░ рдмрдирд╛рдЙрдБрдЫ, рд░ рдбреЛрдореЗрди рдбреЗрдЯрд╛ рд╕реНрдерд┐рд░рддрд╛рд▓рд╛рдИ рдЫреБрдЯреНрдЯреИ рд░реВрдкрдорд╛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрджрдЫред рдзреЗрд░реИ рд╕рд░рд▓ рд░ рд╣рд▓реНрдХрд╛ рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рддрд╣ред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓реЗ рджреГрдврддрд╛ рддрд╣рдХреЛ рд╕реЗрд╡рд╛рд╣рд░реВ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯ рдЧрд░реНрджрдЫред

BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг

рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдПрдХ рдзреЗрд░реИ рдареВрд▓реЛ рдкреНрд▓рд╕ рдЫ: рддрдкрд╛рдИрд▓реЗ рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рд▓рд╛рдИ рддрдкрд╛рдИрд▓реЗ рдЪрд╛рд╣рд╛рдиреБ рднрдПрд╕рдореНрдо рдмрдврд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рдкреНрд▓реЗрдЯрдлрд░реНрдо рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рдХреЛ рдХреЗрд╡рд▓ рд╕рдорд╛рди рддрд╣рд▓реЗ рдпрд╕рдмрд╛рдЯ "рдлреНрдпрд╛рдЯ" рд╣реБрдиреЗрдЫред рдХреБрдиреИ рдкрдирд┐ рдбреЛрдореЗрдирдмрд╛рдЯ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд▓реЗ рддреБрд░реБрдиреНрддреИ рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рдирдпрд╛рдБ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдореМрдХрд╛ рдкрд╛рдЙрдБрдЫрдиреН рдЬрдм рдпреЛ рдЕрдкрдбреЗрдЯ рд╣реБрдиреНрдЫред

рдердк рд╡рд┐рд╕реНрддреГрдд рдЕрдзреНрдпрдпрдирд▓реЗ рдпрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдгрдХреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрдордЬреЛрд░реАрд╣рд░реВ рдкреНрд░рдХрдЯ рдЧрд░реНтАНрдпреЛ:

  • рдПрдХ рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╕реЗрд╡рд╛ рдЬрд╕рд▓реЗ рдзреЗрд░реИ рдбреЛрдореЗрдирд╣рд░реВрдХреЛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд▓рд╛рдИ рдПрдХреИрдЪреЛрдЯрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрдЫ рдЕрд╕рдлрд▓рддрд╛рдХреЛ рдПрдХрд▓ рдмрд┐рдиреНрджреБрдХреЛ рд░реВрдкрдорд╛ рдареВрд▓реЛ рдЬреЛрдЦрд┐рдо рдмреЛрдХреНрдЫред рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдорд╛ рдмрд╛рд░рдореНрдмрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрд▓реЗ рдкреНрд░рдгрд╛рд▓реА-рд╡реНрдпрд╛рдкреА рд╡рд┐рдлрд▓рддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдмрдЧрд╣рд░реВрдХреЛ рдЬреЛрдЦрд┐рдо рдмрдврд╛рдЙрдБрдЫ;
  • рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рдореБрджреНрджрд╛рд╣рд░реВ: рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд▓реЗ рдпрд╕рдХреЛ рдбреЗрдЯрд╛рд╕рдБрдЧ рд╕рд╛рдБрдШреБрд░реЛ рд░ рдврд┐рд▓реЛ рдЗрдиреНрдЯрд░рдлреЗрд╕ рдорд╛рд░реНрдлрдд рдХрд╛рдо рдЧрд░реНрджрдЫ:
    • рдбрд╛рдЯрд╛ рдПрдХ рдкрдЯрдХ рдлреЗрд░рд┐ рдорд╛рд░реНрд╢рд▓ рдЧрд░рд┐рдиреЗрдЫ рд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдЯреНрдпрд╛рдХ рдорд╛рд░реНрдлрдд рдкрдореНрдк рдЧрд░рд┐рдиреЗрдЫ;
    • рд╕реЗрд╡рд╛рдХреЛ рдмрд╛рд╣реНрдп API рдХреЛ рд╕реНрддрд░рдорд╛ рдЕрдкрд░реНрдпрд╛рдкреНрдд рдХреНрд╡реЗрд░реА рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╛рдЗрдЬреЗрд╕рди рдХреНрд╖рдорддрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛ рдбреЛрдореЗрди рд╕реЗрд╡рд╛рд▓реЗ рдкреНрд░рд╛рдп: рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд▓реЗ рдкреНрд░рд╢реЛрдзрдирдХрд╛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рднрдиреНрджрд╛ рдмрдвреА рдбреЗрдЯрд╛ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреЗрдЫ;
    • рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдХрд╛ рдзреЗрд░реИ рд╕реНрд╡рддрдиреНрддреНрд░ рдЯреБрдХреНрд░рд╛рд╣рд░реВрд▓реЗ рдкреНрд░рд╢реЛрдзрдирдХрд╛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯреИ рдбрд╛рдЯрд╛рд▓рд╛рдИ рдмрд╛рд░рдореНрдмрд╛рд░ рдкреБрди: рдЕрдиреБрд░реЛрдз рдЧрд░реНрди рд╕рдХреНрдЫрдиреН (рддрдкрд╛рдИрд▓реЗ рдбрд╛рдЯрд╛ рдХреНрдпрд╛рд╕ рдЧрд░реНрдиреЗ рд╕рддреНрд░ рдмреАрдиреНрд╕ рдердкреЗрд░ рдпреЛ рд╕рдорд╕реНрдпрд╛рд▓рд╛рдИ рдХрдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рдпрд╕рд▓реЗ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рд▓рд╛рдИ рдердк рдЬрдЯрд┐рд▓ рдмрдирд╛рдЙрдБрдЫ рд░ рдбрд╛рдЯрд╛ рддрд╛рдЬрд╛рддрд╛ рд░ рдХреНрдпрд╛рд╕ рдЕрдорд╛рдиреНрдп рд╣реБрдиреЗ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрдЫ);
  • рд▓реЗрдирджреЗрди рд╕рдорд╕реНрдпрд╛рд╣рд░реВ:
    • рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рд╕реНрдерд┐рд░ рдЕрд╡рд╕реНрдерд╛рдХреЛ рд╕рд╛рде рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдбреЛрдореЗрди рдбреЗрдЯрд╛рд╕рдБрдЧ рдЕрд╕рдВрдЧрдд рдЫрдиреН, рд░ рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдХреБрдиреИ рд╕рдЬрд┐рд▓реЛ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫреИрдирдиреН;
    • рд▓реЗрдирджреЗрди рдмрд╛рд╣рд┐рд░ рдбреЛрдореЗрди рдбрд╛рдЯрд╛ рдХреЛ рд▓рдХ рд╕рд╛рд░реНрджреИ: рдпрджрд┐ рдбреЛрдореЗрди рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рдкрд╣рд┐рд▓реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд╛рдЯрд╛ рдХреЛ рд╢реБрджреНрдзрддрд╛ рдЬрд╛рдБрдЪ рдкрдЫрд┐, рдпреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбрд╛рдЯрд╛ рдорд╛ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдбреЗрдЯрд╛рдХреЛ рдмрд╛рд╣реНрдп рдЕрд╡рд░реБрджреНрдзрд▓реЗ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрди рд╕рдХреНрдЫ, рддрд░ рдпрд╕реНрддреЛ рд╕рдорд╛рдзрд╛рдирд▓реЗ рдердк рдЬреЛрдЦрд┐рдорд╣рд░реВ рдмреЛрдХреНрдЫ рд░ рдкреНрд░рдгрд╛рд▓реАрдХреЛ рд╕рдордЧреНрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдХрдо рдЧрд░реНрджрдЫ;
  • рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджрд╛ рдердк рдЬрдЯрд┐рд▓рддрд╛рд╣рд░реВ: рдХреЗрд╣реА рдЕрд╡рд╕реНрдерд╛рдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдерд┐рд░рддрд╛ рд╕реЗрд╡рд╛ рд░ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд▓рд╛рдИ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╡рд╛ рдХрдбрд╛ рдЕрдиреБрдХреНрд░рдордорд╛ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рдЕрдиреНрддрдорд╛, рдореИрд▓реЗ рдЖрдзрд╛рд░рднреВрдд рдХреБрд░рд╛рд╣рд░реВрдорд╛ рдлрд░реНрдХрдиреБрдкрд░реНтАНрдпреЛ: рдбреЛрдореЗрди рдбрд╛рдЯрд╛ рд░ рдбреЛрдореЗрди рдмреНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд▓рд╛рдИ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕рдорд╛ рдЗрдирдХреНрдпрд╛рдкреНрд╕реНрдпреБрд▓реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдЕрднрд┐рдиреНрди рдЕрдВрдЧрдХреЛ рд░реВрдкрдорд╛ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕рдХреЛ рдзрд╛рд░рдгрд╛рд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрдЫ рд░ рдорд╛рдерд┐рдХрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрд▓рд╛рдИ рдЬрдиреНрдо рджрд┐рдБрджреИрдиред рдпреЛ рдкрдирд┐ рдирд┐: рд╢реБрд▓реНрдХ рдЫреИрди:

  • рдПрдкреАрдЖрдИ рдорд╛рдирдХреАрдХрд░рдг рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ (рд╡рд┐рд╢реЗрд╖ рдЧрд░реА, рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рднрд╛рдЧ рдХреЛ рд░реВрдк рдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐рд╣рд░реБ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА) рд░ API рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╕реЗрд╡рд╛рд╣рд░реБ рд╕рдВрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЧреА рдЖрд╡рд╢реНрдпрдХ рдЫ; API рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдорд╛ рдердк рд╕рд╛рд╡рдзрд╛рди рдзреНрдпрд╛рди, рдЕрдЧрд╛рдбрд┐ рд░ рдкрдЫрд╛рдбрд┐ рдЕрдиреБрдХреВрд▓рддрд╛ рдЖрд╡рд╢реНрдпрдХ рдЫ;
  • рдпрд╕реНрддреЛ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕рдХреЛ рднрд╛рдЧрдХреЛ рд░реВрдкрдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдХреЛ рдХрд╛рд░реНрдпрд▓рд╛рдИ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЕрддрд┐рд░рд┐рдХреНрдд рд░рдирдЯрд╛рдЗрдо рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ рдпрд╕рд▓реЗ рддреНрдпрд╕реНрддрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирдпрд╛рдБ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВрд▓рд╛рдИ рдЬрдиреНрдо рджрд┐рдиреНрдЫ: рд╣рд▓реНрдХрд╛рдкрди рд░ рдиреНрдпреВрдирддрдо рдкрд╛рд░рдЧрдорди рдирд┐рд░реНрднрд░рддрд╛;
  • рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдХреЛ рдЯреНрд░рдпрд╛рдХ рд░рд╛рдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ: рдпрджрд┐ рд▓рд╛рдореЛ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд╡рд╛рд▓рд╛рдИ рдЕрдиреНрддрд┐рдо рд░реВрдк рджрд┐рдЗрдПрди рднрдиреЗ, рддреНрдпрд╕рдорд╛ рдкреНрд░рд╛рдп: рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рдкреБрд░рд╛рдиреЛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреЗрдЫред рдпреЛ рдирдпрд╛рдБ рд╕реБрд╡рд┐рдзрд╛ рдердкреНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдЕрд╡рд░реЛрдз рд╣реБрди рд╕рдХреНрдЫ рд░ рдпрджрд┐ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВ рдмреАрдЪ рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рднрдПрдорд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпрд╣рд░реВрдХреЛ рдирдпрд╛рдБ рд╕рдВрд╕реНрдХрд░рдгрд╣рд░реВрдорд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рдпрд╕реНрддреЛ рд╕реЗрд╡рд╛рдХреЛ рдкреБрд░рд╛рдиреЛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдЖрд╡рд╢реНрдпрдХ рд╣реБрди рд╕рдХреНрдЫред

BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг

рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╕реЗрд╡рд╛рд╣рд░реВрдХреЛ рдПрдХ рддрд╣ рдкрдирд┐ рдпрд╕реНрддреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ, рддрд░ рдпреЛ рддрд╣рд▓реЗ рдЕрдм рдбреЛрдореЗрди рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдХрдиреНрдЯреЗрдирд░ рдмрдирд╛рдЙрдБрджреИрди, рддрд░ рдХреЗрд╡рд▓ рдпрд╕рдХреЛ рд╡рд╛рддрд╛рд╡рд░рдг, рд╕рд╣рд╛рдпрдХ "рдкреНрд▓реЗрдЯрдлрд░реНрдо" рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдпрд╕реНрддреЛ рддрд╣ рдбреЛрдореЗрди рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рдХреЛ рд╣рд▓реНрдХрд╛рдкрди рдХрд╛рдпрдо рд░рд╛рдЦреНрди рдорд╛рддреНрд░ рд╣реЛрдЗрди, рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдирд▓рд╛рдИ рдХреЗрдиреНрджреНрд░реАрдХреГрдд рдЧрд░реНрди рдкрдирд┐ рдЖрд╡рд╢реНрдпрдХ рдЫред

рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐рд╣рд░реВрд▓реЗ рдХрд╛рд░реНрдпрд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрджрдЫред рдпрджреНрдпрдкрд┐, рдХрд╛рд░реНрдпрд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрд╛, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреАрдорд╛ рд╕рдмреИ рдбреЛрдореЗрдирд╣рд░реВрдмрд╛рдЯ рдХрд╛рд░реНрдпрд╣рд░реВ рджреЗрдЦреНрдиреИ рдкрд░реНрдЫ, рдЬрд╕рдХреЛ рдорддрд▓рдм рддреНрдпрд╣рд╛рдБ рдбреЛрдореЗрди рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдмрд╛рдЯ рдЦрд╛рд▓реА рдЧрд░рд┐рдПрдХреЛ рдЙрдкрдпреБрдХреНрдд рдХрд╛рд░реНрдп рджрд░реНрддрд╛ рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╕реЗрд╡рд╛ рд╣реБрдиреБрдкрд░реНрдЫред рдпрд╕ рд╕рдиреНрджрд░реНрднрдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдХреЛ рдЗрдиреНрдХреНрдпрд╛рдкреНрд╕реБрд▓реЗрд╢рди рд░рд╛рдЦреНрдиреБ рдПрдХрджрдо рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЫ, рд░ рдпреЛ рдпрд╕ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдХреЛ рдЕрд░реНрдХреЛ рд╕рдореНрдЭреМрддрд╛ рд╣реЛред

рдПрдХ рдЖрд╡реЗрджрди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рдХреЛ рдЖрдБрдЦрд╛ рдорд╛рд░реНрдлрдд рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реБ рдХреЛ рдПрдХреАрдХрд░рдг

рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдПрдЭреИрдВ, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛ рд░рд╛рдореНрд░реЛ рд╡рд┐рдХрд╛рд╕ рдЙрддреНрдкрд╛рджрдХрддрд╛рдорд╛ рднрд░реЛрд╕рд╛ рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрди рдзреЗрд░реИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдкреНрд░рд╛рд╡рд┐рдзрд┐рдХ рд░ рдИрдиреНрдЬрд┐рдирд┐рдпрд░рд┐рдЩреН рд╕реБрд╡рд┐рдзрд╛рд╣рд░реВрдмрд╛рдЯ рд╕рд╛рд░ рд╣реБрдиреБрдкрд░реНрдЫред

рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рд▓реЗрдЦрдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдмрд░реБ рдЧрд╛рд╣реНрд░реЛ рдПрдХреАрдХрд░рдг рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВред рдпреЛ рдПрдХ "рдЦреЗрд▓" рдХрд╛рд░реНрдп рд╣реБрдиреЗрдЫ рдЬрд╕рдорд╛ рддреАрди рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН, рдЬрд╣рд╛рдБ рдкреНрд░рддреНрдпреЗрдХрд▓реЗ рдХреЗрд╣реА рдбреЛрдореЗрди рдирд╛рдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫ: "app1", "app2", "app3"ред

рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рднрд┐рддреНрд░, рдПрдХреАрдХрд░рдг рдмрд╕ рдорд╛рд░реНрдлрдд "рдмрд▓ рдЦреЗрд▓реНрди" рд╕реБрд░реБ рдЧрд░реНрдиреЗ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕реБрд░реБ рд╣реБрдиреНрдЫрдиреНред "рдмрд▓" рдирд╛рдордХ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓реЗ рдмрд▓рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред

рдЦреЗрд▓рдХреЛ рдирд┐рдпрдо:

  • рдкрд╣рд┐рд▓реЛ рдЦреЗрд▓рд╛рдбреА рдкрд╣рд▓рдХрд░реНрддрд╛ рд╣реЛред рдЙрд╕рд▓реЗ рдЕрдиреНрдп рдЦреЗрд▓рд╛рдбреАрд╣рд░реВрд▓рд╛рдИ рдЦреЗрд▓рдорд╛ рдЖрдордиреНрддреНрд░рд┐рдд рдЧрд░реНрдЫ, рдЦреЗрд▓ рд╕реБрд░реБ рдЧрд░реНрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рд╕рдордпрдорд╛ рдЕрдиреНрддреНрдп рдЧрд░реНрди рд╕рдХреНрдЫ;
  • рдЕрдиреНрдп рдЦреЗрд▓рд╛рдбреАрд╣рд░реВрд▓реЗ рдЦреЗрд▓рдорд╛ рдЙрдиреАрд╣рд░реВрдХреЛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдШреЛрд╖рдгрд╛ рдЧрд░реНрдЫрдиреН, рдПрдХрдЕрд░реНрдХрд╛ рд░ рдкрд╣рд┐рд▓реЛ рдЦреЗрд▓рд╛рдбреАрд╕рдБрдЧ "рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реЛрд╕реН";
  • рдмрд▓ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗрдкрдЫрд┐, рдЦреЗрд▓рд╛рдбреАрд▓реЗ рдЕрд░реНрдХреЛ рд╕рд╣рднрд╛рдЧреА рдЦреЗрд▓рд╛рдбреА рдЫрдиреЛрдЯ рдЧрд░реНрдЫ рд░ рдЙрд╕рд▓рд╛рдИ рдмрд▓ рдкрд╛рд╕ рдЧрд░реНрдЫред рдкрд╛рд╕рд╣рд░реВрдХреЛ рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдЧрдгрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ;
  • рдкреНрд░рддреНрдпреЗрдХ рдЦреЗрд▓рд╛рдбреАрд╕рдБрдЧ "рдКрд░реНрдЬрд╛" рд╣реБрдиреНрдЫ, рдЬреБрди рддреНрдпреЛ рдЦреЗрд▓рд╛рдбреАрд▓реЗ рдмрд▓рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рд╕рдХреЛ рд╕рд╛рде рдШрдЯреНрдЫред рдЬрдм рдКрд░реНрдЬрд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫ, рдЦреЗрд▓рд╛рдбреА рдЦреЗрд▓рдмрд╛рдЯ рд╣рдЯрд╛рдЗрдиреНрдЫ, рдЙрдиреАрд╣рд░реВрдХреЛ рд╕реЗрд╡рд╛рдирд┐рд╡реГрддреНрддрд┐рдХреЛ рдШреЛрд╖рдгрд╛ рдЧрд░реНрджреИ;
  • рдпрджрд┐ рдЦреЗрд▓рд╛рдбреА рдПрдХреНрд▓реИ рдЫреЛрдбрд┐рдпреЛ рднрдиреЗ, рдЙрд╕рд▓реЗ рддреБрд░реБрдиреНрддреИ рдЖрдлреНрдиреЛ рдкреНрд░рд╕реНрдерд╛рди рдШреЛрд╖рдгрд╛ рдЧрд░реНрджрдЫ;
  • рдЬрдм рд╕рдмреИ рдЦреЗрд▓рд╛рдбреАрд╣рд░реВ рд╣рдЯрд╛рдЗрдиреНрдЫ, рдкрд╣рд┐рд▓реЛ рдЦреЗрд▓рд╛рдбреАрд▓реЗ рдЦреЗрд▓рдХреЛ рдЕрдиреНрддреНрдп рдШреЛрд╖рдгрд╛ рдЧрд░реНрджрдЫред рдпрджрд┐ рдЙрд╕рд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдЦреЗрд▓ рдЫреЛрдбреНрдпреЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдпреЛ рдкреВрд░рд╛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЦреЗрд▓ рдкрдЫреНрдпрд╛рдЙрди рдмрд╛рдБрдХреА рдЫред

рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдо рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореНрд░реЛ DSL рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреБ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХрдореНрддрд┐рдорд╛ рдмреЛрдЗрд▓рд░рдкреНрд▓реЗрдЯрдХреЛ рд╕рд╛рде рдХреЛрдЯрд▓рд┐рдирдорд╛ рдХрдореНрдкреНрдпрд╛рдХреНрдЯ рд░реВрдкрдорд╛ рддрд░реНрдХ рд╡рд░реНрдгрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рдПрдк рез рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛, рдкрд╣рд┐рд▓реЛ рдЦреЗрд▓рд╛рдбреАрдХреЛ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдЙрдиреА рдкрдирд┐ рдЦреЗрд▓рдХреЛ рд╢реБрд░реБрд╡рд╛рддрдХрд░реНрддрд╛ рд╣реБрдиреН) рдХрд╛рдо рдЧрд░реНрдиреЗрдЫ:

рдХрдХреНрд╖рд╛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдкреНрд▓реЗрдпрд░

import ru.krista.bpm.ProcessInstance
import ru.krista.bpm.runtime.ProcessImpl
import ru.krista.bpm.runtime.constraint.UniqueConstraints
import ru.krista.bpm.runtime.dsl.processModel
import ru.krista.bpm.runtime.dsl.taskOperation
import ru.krista.bpm.runtime.instance.MessageSendInstance

data class PlayerInfo(val name: String, val domain: String, val id: String)

class PlayersList : ArrayList<PlayerInfo>()

// ╨н╤В╨╛ ╨║╨╗╨░╤Б╤Б ╤Н╨║╨╖╨╡╨╝╨┐╨╗╤П╤А╨░ ╨┐╤А╨╛╤Ж╨╡╤Б╤Б╨░: ╨╕╨╜╨║╨░╨┐╤Б╤Г╨╗╨╕╤А╤Г╨╡╤В ╨╡╨│╨╛ ╨▓╨╜╤Г╤В╤А╨╡╨╜╨╜╨╡╨╡ ╤Б╨╛╤Б╤В╨╛╤П╨╜╨╕╨╡
class InitialPlayer : ProcessImpl<InitialPlayer>(initialPlayerModel) {
    var playerName: String by persistent("Player1")
    var energy: Int by persistent(30)
    var players: PlayersList by persistent(PlayersList())
    var shotCounter: Int = 0
}

// ╨н╤В╨╛ ╨┤╨╡╨║╨╗╨░╤А╨░╤Ж╨╕╤П ╨╝╨╛╨┤╨╡╨╗╨╕ ╨┐╤А╨╛╤Ж╨╡╤Б╤Б╨░: ╤Б╨╛╨╖╨┤╨░╨╡╤В╤Б╤П ╨╛╨┤╨╕╨╜ ╤А╨░╨╖, ╨╕╤Б╨┐╨╛╨╗╤М╨╖╤Г╨╡╤В╤Б╤П ╨▓╤Б╨╡╨╝╨╕
// ╤Н╨║╨╖╨╡╨╝╨┐╨╗╤П╤А╨░╨╝╨╕ ╨┐╤А╨╛╤Ж╨╡╤Б╤Б╨░ ╤Б╨╛╨╛╤В╨▓╨╡╤В╤Б╤В╨▓╤Г╤О╤Й╨╡╨│╨╛ ╨║╨╗╨░╤Б╤Б╨░
val initialPlayerModel = processModel<InitialPlayer>(name = "InitialPlayer",
                                                     version = 1) {

    // ╨Я╨╛ ╨┐╤А╨░╨▓╨╕╨╗╨░╨╝, ╨┐╨╡╤А╨▓╤Л╨╣ ╨╕╨│╤А╨╛╨║ ╤П╨▓╨╗╤П╨╡╤В╤Б╤П ╨╕╨╜╨╕╤Ж╨╕╨░╤В╨╛╤А╨╛╨╝ ╨╕╨│╤А╤Л ╨╕ ╨┤╨╛╨╗╨╢╨╡╨╜ ╨▒╤Л╤В╤М ╨╡╨┤╨╕╨╜╤Б╤В╨▓╨╡╨╜╨╜╤Л╨╝
    uniqueConstraint = UniqueConstraints.singleton

    // ╨Ю╨▒╤К╤П╨▓╨╗╤П╨╡╨╝ ╨░╨║╤В╨╕╨▓╨╜╨╛╤Б╤В╨╕, ╨╕╨╖ ╨║╨╛╤В╨╛╤А╤Л╤Е ╤Б╨╛╤Б╤В╨╛╨╕╤В ╨▒╨╕╨╖╨╜╨╡╤Б-╨┐╤А╨╛╤Ж╨╡╤Б╤Б
    val sendNewGameSignal = signal<String>("NewGame")
    val sendStopGameSignal = signal<String>("StopGame")
    val startTask = humanTask("Start") {
        taskOperation {
            processCondition { players.size > 0 }
            confirmation { "╨Я╨╛╨┤╨║╨╗╤О╤З╨╕╨╗╨╛╤Б╤М ${players.size} ╨╕╨│╤А╨╛╨║╨╛╨▓. ╨Э╨░╤З╨╕╨╜╨░╨╡╨╝?" }
        }
    }
    val stopTask = humanTask("Stop") {
        taskOperation {}
    }
    val waitPlayerJoin = signalWait<String>("PlayerJoin") { signal ->
        players.add(PlayerInfo(
                signal.data!!,
                signal.sender.domain,
                signal.sender.processInstanceId))
        println("... join player ${signal.data} ...")
    }
    val waitPlayerOut = signalWait<String>("PlayerOut") { signal ->
        players.remove(PlayerInfo(
                signal.data!!,
                signal.sender.domain,
                signal.sender.processInstanceId))
        println("... player ${signal.data} is out ...")
    }
    val sendPlayerOut = signal<String>("PlayerOut") {
        signalData = { playerName }
    }
    val sendHandshake = messageSend<String>("Handshake") {
        messageData = { playerName }
        activation = {
            receiverDomain = process.players.last().domain
            receiverProcessInstanceId = process.players.last().id
        }
    }
    val throwStartBall = messageSend<Int>("Ball") {
        messageData = { 1 }
        activation = { selectNextPlayer() }
    }
    val throwBall = messageSend<Int>("Ball") {
        messageData = { shotCounter + 1 }
        activation = { selectNextPlayer() }
        onEntry { energy -= 1 }
    }
    val waitBall = messageWaitData<Int>("Ball") {
        shotCounter = it
    }

    // ╨в╨╡╨┐╨╡╤А╤М ╨║╨╛╨╜╤Б╤В╤А╤Г╨╕╤А╤Г╨╡╨╝ ╨│╤А╨░╤Д ╨┐╤А╨╛╤Ж╨╡╤Б╤Б╨░ ╨╕╨╖ ╨╛╨▒╤К╤П╨▓╨╗╨╡╨╜╨╜╤Л╤Е ╨░╨║╤В╨╕╨▓╨╜╨╛╤Б╤В╨╡╨╣
    startFrom(sendNewGameSignal)
            .fork("mainFork") {
                next(startTask)
                next(waitPlayerJoin).next(sendHandshake).next(waitPlayerJoin)
                next(waitPlayerOut)
                        .branch("checkPlayers") {
                            ifTrue { players.isEmpty() }
                                    .next(sendStopGameSignal)
                                    .terminate()
                            ifElse().next(waitPlayerOut)
                        }
            }
    startTask.fork("afterStart") {
        next(throwStartBall)
                .branch("mainLoop") {
                    ifTrue { energy < 5 }.next(sendPlayerOut).next(waitBall)
                    ifElse().next(waitBall).next(throwBall).loop()
                }
        next(stopTask).next(sendStopGameSignal)
    }

    // ╨Э╨░╨▓╨╡╤И╨░╨╡╨╝ ╨╜╨░ ╨░╨║╤В╨╕╨▓╨╜╨╛╤Б╤В╨╕ ╨┤╨╛╨┐╨╛╨╗╨╜╨╕╤В╨╡╨╗╤М╨╜╤Л╨╡ ╨╛╨▒╤А╨░╨▒╨╛╤В╤З╨╕╨║╨╕ ╨┤╨╗╤П ╨╗╨╛╨│╨╕╤А╨╛╨▓╨░╨╜╨╕╤П
    sendNewGameSignal.onExit { println("Let's play!") }
    sendStopGameSignal.onExit { println("Stop!") }
    sendPlayerOut.onExit { println("$playerName: I'm out!") }
}

private fun MessageSendInstance<InitialPlayer, Int>.selectNextPlayer() {
    val player = process.players.random()
    receiverDomain = player.domain
    receiverProcessInstanceId = player.id
    println("Step ${process.shotCounter + 1}: " +
            "${process.playerName} >>> ${player.name}")
}

рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдорд╛рдерд┐рдХреЛ рдХреЛрдбрд▓реЗ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╡рд╕реНрддреБ рдореЛрдбреЗрд▓ рдЙрддреНрдкрд╛рджрди рдЧрд░реНрди рд╕рдХреНрдЫ рдЬреБрди рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдХреЛ рд░реВрдкрдорд╛ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫред рд╣рд╛рдореАрд▓реЗ рднрд┐рдЬреБрдЕрд▓рд╛рдЗрдЬрд░рд▓рд╛рдИ рдЕрдЭреИ рд▓рд╛рдЧреВ рдЧрд░реЗрдХрд╛ рдЫреИрдиреМрдВ, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓реЗ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдмрдирд╛рдЙрди рдХреЗрд╣реА рд╕рдордп рдЦрд░реНрдЪ рдЧрд░реНрдиреБрдкрд░реНтАНрдпреЛ (рдпрд╣рд╛рдБ рдореИрд▓реЗ рдорд╛рдерд┐рдХреЛ рдХреЛрдбрдХреЛ рд╕рд╛рде рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдХреЛ рд╕реНрдерд┐рд░рддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдЧреЗрдЯрд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ BPMN рдиреЛрдЯреЗрд╢рдирд▓рд╛рдИ рдереЛрд░реИ рд╕рд░рд▓ рдмрдирд╛рдПрдХреЛ рдЫреБ):

BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг

app2 рд▓реЗ рдЕрд░реНрдХреЛ рдЦреЗрд▓рд╛рдбреАрдХреЛ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрдиреЗрдЫ:

рд╡рд░реНрдЧ RandomPlayer

import ru.krista.bpm.ProcessInstance
import ru.krista.bpm.runtime.ProcessImpl
import ru.krista.bpm.runtime.dsl.processModel
import ru.krista.bpm.runtime.instance.MessageSendInstance

data class PlayerInfo(val name: String, val domain: String, val id: String)

class PlayersList: ArrayList<PlayerInfo>()

class RandomPlayer : ProcessImpl<RandomPlayer>(randomPlayerModel) {

    var playerName: String by input(persistent = true, 
                                    defaultValue = "RandomPlayer")
    var energy: Int by input(persistent = true, defaultValue = 30)
    var players: PlayersList by persistent(PlayersList())
    var allPlayersOut: Boolean by persistent(false)
    var shotCounter: Int = 0

    val selfPlayer: PlayerInfo
        get() = PlayerInfo(playerName, env.eventDispatcher.domainName, id)
}

val randomPlayerModel = processModel<RandomPlayer>(name = "RandomPlayer", 
                                                   version = 1) {

    val waitNewGameSignal = signalWait<String>("NewGame")
    val waitStopGameSignal = signalWait<String>("StopGame")
    val sendPlayerJoin = signal<String>("PlayerJoin") {
        signalData = { playerName }
    }
    val sendPlayerOut = signal<String>("PlayerOut") {
        signalData = { playerName }
    }
    val waitPlayerJoin = signalWaitCustom<String>("PlayerJoin") {
        eventCondition = { signal ->
            signal.sender.processInstanceId != process.id 
                && !process.players.any { signal.sender.processInstanceId == it.id}
        }
        handler = { signal ->
            players.add(PlayerInfo(
                    signal.data!!,
                    signal.sender.domain,
                    signal.sender.processInstanceId))
        }
    }
    val waitPlayerOut = signalWait<String>("PlayerOut") { signal ->
        players.remove(PlayerInfo(
                signal.data!!,
                signal.sender.domain,
                signal.sender.processInstanceId))
        allPlayersOut = players.isEmpty()
    }
    val sendHandshake = messageSend<String>("Handshake") {
        messageData = { playerName }
        activation = {
            receiverDomain = process.players.last().domain
            receiverProcessInstanceId = process.players.last().id
        }
    }
    val receiveHandshake = messageWait<String>("Handshake") { message ->
        if (!players.any { message.sender.processInstanceId == it.id}) {
            players.add(PlayerInfo(
                    message.data!!, 
                    message.sender.domain, 
                    message.sender.processInstanceId))
        }
    }
    val throwBall = messageSend<Int>("Ball") {
        messageData = { shotCounter + 1 }
        activation = { selectNextPlayer() }
        onEntry { energy -= 1 }
    }
    val waitBall = messageWaitData<Int>("Ball") {
        shotCounter = it
    }

    startFrom(waitNewGameSignal)
            .fork("mainFork") {
                next(sendPlayerJoin)
                        .branch("mainLoop") {
                            ifTrue { energy < 5 || allPlayersOut }
                                    .next(sendPlayerOut)
                                    .next(waitBall)
                            ifElse()
                                    .next(waitBall)
                                    .next(throwBall)
                                    .loop()
                        }
                next(waitPlayerJoin).next(sendHandshake).next(waitPlayerJoin)
                next(waitPlayerOut).next(waitPlayerOut)
                next(receiveHandshake).next(receiveHandshake)
                next(waitStopGameSignal).terminate()
            }

    sendPlayerJoin.onExit { println("$playerName: I'm here!") }
    sendPlayerOut.onExit { println("$playerName: I'm out!") }
}

private fun MessageSendInstance<RandomPlayer, Int>.selectNextPlayer() {
    val player = if (process.players.isNotEmpty()) 
        process.players.random() 
    else 
        process.selfPlayer
    receiverDomain = player.domain
    receiverProcessInstanceId = player.id
    println("Step ${process.shotCounter + 1}: " +
            "${process.playerName} >>> ${player.name}")
}

рд░реЗрдЦрд╛рдЪрд┐рддреНрд░:

BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг

app3 рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛, рд╣рд╛рдореА рдЦреЗрд▓рд╛рдбреАрд▓рд╛рдИ рдереЛрд░реИ рдлрд░рдХ рд╡реНрдпрд╡рд╣рд╛рд░рдХреЛ рд╕рд╛рде рдмрдирд╛рдЙрдиреЗрдЫреМрдВ: рдЕрдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ рдЕрд░реНрдХреЛ рдЦреЗрд▓рд╛рдбреА рдЫрдиреМрдЯ рдЧрд░реНрдиреБрдХреЛ рд╕рдЯреНрдЯрд╛, рдЙрд╕рд▓реЗ рд░рд╛рдЙрдиреНрдб-рд░реЛрдмрд┐рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдЕрдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдп рдЧрд░реНрдиреЗрдЫ:

рдХрдХреНрд╖рд╛ рд░рд╛рдЙрдиреНрдбрд░реЛрдмрд┐рди рдкреНрд▓реЗрдпрд░

import ru.krista.bpm.ProcessInstance
import ru.krista.bpm.runtime.ProcessImpl
import ru.krista.bpm.runtime.dsl.processModel
import ru.krista.bpm.runtime.instance.MessageSendInstance

data class PlayerInfo(val name: String, val domain: String, val id: String)

class PlayersList: ArrayList<PlayerInfo>()

class RoundRobinPlayer : ProcessImpl<RoundRobinPlayer>(roundRobinPlayerModel) {

    var playerName: String by input(persistent = true, 
                                    defaultValue = "RoundRobinPlayer")
    var energy: Int by input(persistent = true, defaultValue = 30)
    var players: PlayersList by persistent(PlayersList())
    var nextPlayerIndex: Int by persistent(-1)
    var allPlayersOut: Boolean by persistent(false)
    var shotCounter: Int = 0

    val selfPlayer: PlayerInfo
        get() = PlayerInfo(playerName, env.eventDispatcher.domainName, id)
}

val roundRobinPlayerModel = processModel<RoundRobinPlayer>(
        name = "RoundRobinPlayer", 
        version = 1) {

    val waitNewGameSignal = signalWait<String>("NewGame")
    val waitStopGameSignal = signalWait<String>("StopGame")
    val sendPlayerJoin = signal<String>("PlayerJoin") {
        signalData = { playerName }
    }
    val sendPlayerOut = signal<String>("PlayerOut") {
        signalData = { playerName }
    }
    val waitPlayerJoin = signalWaitCustom<String>("PlayerJoin") {
        eventCondition = { signal ->
            signal.sender.processInstanceId != process.id 
                && !process.players.any { signal.sender.processInstanceId == it.id}
        }
        handler = { signal ->
            players.add(PlayerInfo(
                    signal.data!!, 
                    signal.sender.domain, 
                    signal.sender.processInstanceId))
        }
    }
    val waitPlayerOut = signalWait<String>("PlayerOut") { signal ->
        players.remove(PlayerInfo(
                signal.data!!, 
                signal.sender.domain, 
                signal.sender.processInstanceId))
        allPlayersOut = players.isEmpty()
    }
    val sendHandshake = messageSend<String>("Handshake") {
        messageData = { playerName }
        activation = {
            receiverDomain = process.players.last().domain
            receiverProcessInstanceId = process.players.last().id
        }
    }
    val receiveHandshake = messageWait<String>("Handshake") { message ->
        if (!players.any { message.sender.processInstanceId == it.id}) {
            players.add(PlayerInfo(
                    message.data!!, 
                    message.sender.domain, 
                    message.sender.processInstanceId))
        }
    }
    val throwBall = messageSend<Int>("Ball") {
        messageData = { shotCounter + 1 }
        activation = { selectNextPlayer() }
        onEntry { energy -= 1 }
    }
    val waitBall = messageWaitData<Int>("Ball") {
        shotCounter = it
    }

    startFrom(waitNewGameSignal)
            .fork("mainFork") {
                next(sendPlayerJoin)
                        .branch("mainLoop") {
                            ifTrue { energy < 5 || allPlayersOut }
                                    .next(sendPlayerOut)
                                    .next(waitBall)
                            ifElse()
                                    .next(waitBall)
                                    .next(throwBall)
                                    .loop()
                        }
                next(waitPlayerJoin).next(sendHandshake).next(waitPlayerJoin)
                next(waitPlayerOut).next(waitPlayerOut)
                next(receiveHandshake).next(receiveHandshake)
                next(waitStopGameSignal).terminate()
            }

    sendPlayerJoin.onExit { println("$playerName: I'm here!") }
    sendPlayerOut.onExit { println("$playerName: I'm out!") }
}

private fun MessageSendInstance<RoundRobinPlayer, Int>.selectNextPlayer() {
    var idx = process.nextPlayerIndex + 1
    if (idx >= process.players.size) {
        idx = 0
    }
    process.nextPlayerIndex = idx
    val player = if (process.players.isNotEmpty()) 
        process.players[idx] 
    else 
        process.selfPlayer
    receiverDomain = player.domain
    receiverProcessInstanceId = player.id
    println("Step ${process.shotCounter + 1}: " +
            "${process.playerName} >>> ${player.name}")
}

рдЕрдиреНрдпрдерд╛, рдЦреЗрд▓рд╛рдбреАрдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдШрд┐рд▓реНрд▓реЛ рднрдиреНрджрд╛ рдлрд░рдХ рдЫреИрди, рддреНрдпрд╕реИрд▓реЗ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИрдиред

рдЕрдм рд╣рд╛рдореАрд▓рд╛рдИ рдпреЛ рд╕рдмреИ рдЪрд▓рд╛рдЙрди рдкрд░реАрдХреНрд╖рдг рдЪрд╛рд╣рд┐рдиреНрдЫред рдо рдкрд░реАрдХреНрд╖рдгрдХреЛ рдХреЛрдб рдорд╛рддреНрд░ рджрд┐рдиреЗрдЫреБ, рддрд╛рдХрд┐ рд▓реЗрдЦрд▓рд╛рдИ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯрдХреЛ рд╕рд╛рде рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реЛрд╕реН (рд╡рд╛рд╕реНрддрд╡рдорд╛, рдореИрд▓реЗ рдЕрдиреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рдкрд╣рд┐рд▓реЗ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрдВ):

рдкрд░реАрдХреНрд╖рдг рдЦреЗрд▓()

@Test
public void testGame() throws InterruptedException {
    String pl2 = startProcess(app2, "RandomPlayer", playerParams("Player2", 20));
    String pl3 = startProcess(app2, "RandomPlayer", playerParams("Player3", 40));
    String pl4 = startProcess(app3, "RoundRobinPlayer", playerParams("Player4", 25));
    String pl5 = startProcess(app3, "RoundRobinPlayer", playerParams("Player5", 35));
    String pl1 = startProcess(app1, "InitialPlayer");
    // ╨в╨╡╨┐╨╡╤А╤М ╨╜╤Г╨╢╨╜╨╛ ╨╜╨╡╨╝╨╜╨╛╨│╨╛ ╨┐╨╛╨┤╨╛╨╢╨┤╨░╤В╤М, ╨┐╨╛╨║╨░ ╨╕╨│╤А╨╛╨║╨╕ "╨┐╨╛╨╖╨╜╨░╨║╨╛╨╝╤П╤В╤Б╤П" ╨┤╤А╤Г╨│ ╤Б ╨┤╤А╤Г╨│╨╛╨╝.
    // ╨Ц╨┤╨░╤В╤М ╤З╨╡╤А╨╡╨╖ sleep - ╨┐╨╗╨╛╤Е╨╛╨╡ ╤А╨╡╤И╨╡╨╜╨╕╨╡, ╨╖╨░╤В╨╛ ╤Б╨░╨╝╨╛╨╡ ╨┐╤А╨╛╤Б╤В╨╛╨╡. 
    // ╨Э╨╡ ╨┤╨╡╨╗╨░╨╣╤В╨╡ ╤В╨░╨║ ╨▓ ╤Б╨╡╤А╤М╨╡╨╖╨╜╤Л╤Е ╤В╨╡╤Б╤В╨░╤Е!
    Thread.sleep(1000);
    // ╨Ч╨░╨┐╤Г╤Б╨║╨░╨╡╨╝ ╨╕╨│╤А╤Г, ╨╖╨░╨║╤А╤Л╨▓╨░╤П ╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╤В╨╡╨╗╤М╤Б╨║╤Г╤О ╨░╨║╤В╨╕╨▓╨╜╨╛╤Б╤В╤М
    assertTrue(closeTask(app1, pl1, "Start"));
    app1.getWaiting().waitProcessFinished(pl1);
    app2.getWaiting().waitProcessFinished(pl2);
    app2.getWaiting().waitProcessFinished(pl3);
    app3.getWaiting().waitProcessFinished(pl4);
    app3.getWaiting().waitProcessFinished(pl5);
}

private Map<String, Object> playerParams(String name, int energy) {
    Map<String, Object> params = new HashMap<>();
    params.put("playerName", name);
    params.put("energy", energy);
    return params;
}

рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН, рд▓рдЧ рд╣реЗрд░реНрдиреБрд╣реЛрд╕реН:

рдХрдиреНрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ

╨Т╨╖╤П╤В╨░ ╨▒╨╗╨╛╨║╨╕╤А╨╛╨▓╨║╨░ ╨║╨╗╤О╤З╨░ lock://app1/process/InitialPlayer
Let's play!
╨б╨╜╤П╤В╨░ ╨▒╨╗╨╛╨║╨╕╤А╨╛╨▓╨║╨░ ╨║╨╗╤О╤З╨░ lock://app1/process/InitialPlayer
Player2: I'm here!
Player3: I'm here!
Player4: I'm here!
Player5: I'm here!
... join player Player2 ...
... join player Player4 ...
... join player Player3 ...
... join player Player5 ...
Step 1: Player1 >>> Player3
Step 2: Player3 >>> Player5
Step 3: Player5 >>> Player3
Step 4: Player3 >>> Player4
Step 5: Player4 >>> Player3
Step 6: Player3 >>> Player4
Step 7: Player4 >>> Player5
Step 8: Player5 >>> Player2
Step 9: Player2 >>> Player5
Step 10: Player5 >>> Player4
Step 11: Player4 >>> Player2
Step 12: Player2 >>> Player4
Step 13: Player4 >>> Player1
Step 14: Player1 >>> Player4
Step 15: Player4 >>> Player3
Step 16: Player3 >>> Player1
Step 17: Player1 >>> Player2
Step 18: Player2 >>> Player3
Step 19: Player3 >>> Player1
Step 20: Player1 >>> Player5
Step 21: Player5 >>> Player1
Step 22: Player1 >>> Player2
Step 23: Player2 >>> Player4
Step 24: Player4 >>> Player5
Step 25: Player5 >>> Player3
Step 26: Player3 >>> Player4
Step 27: Player4 >>> Player2
Step 28: Player2 >>> Player5
Step 29: Player5 >>> Player2
Step 30: Player2 >>> Player1
Step 31: Player1 >>> Player3
Step 32: Player3 >>> Player4
Step 33: Player4 >>> Player1
Step 34: Player1 >>> Player3
Step 35: Player3 >>> Player4
Step 36: Player4 >>> Player3
Step 37: Player3 >>> Player2
Step 38: Player2 >>> Player5
Step 39: Player5 >>> Player4
Step 40: Player4 >>> Player5
Step 41: Player5 >>> Player1
Step 42: Player1 >>> Player5
Step 43: Player5 >>> Player3
Step 44: Player3 >>> Player5
Step 45: Player5 >>> Player2
Step 46: Player2 >>> Player3
Step 47: Player3 >>> Player2
Step 48: Player2 >>> Player5
Step 49: Player5 >>> Player4
Step 50: Player4 >>> Player2
Step 51: Player2 >>> Player5
Step 52: Player5 >>> Player1
Step 53: Player1 >>> Player5
Step 54: Player5 >>> Player3
Step 55: Player3 >>> Player5
Step 56: Player5 >>> Player2
Step 57: Player2 >>> Player1
Step 58: Player1 >>> Player4
Step 59: Player4 >>> Player1
Step 60: Player1 >>> Player4
Step 61: Player4 >>> Player3
Step 62: Player3 >>> Player2
Step 63: Player2 >>> Player5
Step 64: Player5 >>> Player4
Step 65: Player4 >>> Player5
Step 66: Player5 >>> Player1
Step 67: Player1 >>> Player5
Step 68: Player5 >>> Player3
Step 69: Player3 >>> Player4
Step 70: Player4 >>> Player2
Step 71: Player2 >>> Player5
Step 72: Player5 >>> Player2
Step 73: Player2 >>> Player1
Step 74: Player1 >>> Player4
Step 75: Player4 >>> Player1
Step 76: Player1 >>> Player2
Step 77: Player2 >>> Player5
Step 78: Player5 >>> Player4
Step 79: Player4 >>> Player3
Step 80: Player3 >>> Player1
Step 81: Player1 >>> Player5
Step 82: Player5 >>> Player1
Step 83: Player1 >>> Player4
Step 84: Player4 >>> Player5
Step 85: Player5 >>> Player3
Step 86: Player3 >>> Player5
Step 87: Player5 >>> Player2
Step 88: Player2 >>> Player3
Player2: I'm out!
Step 89: Player3 >>> Player4
... player Player2 is out ...
Step 90: Player4 >>> Player1
Step 91: Player1 >>> Player3
Step 92: Player3 >>> Player1
Step 93: Player1 >>> Player4
Step 94: Player4 >>> Player3
Step 95: Player3 >>> Player5
Step 96: Player5 >>> Player1
Step 97: Player1 >>> Player5
Step 98: Player5 >>> Player3
Step 99: Player3 >>> Player5
Step 100: Player5 >>> Player4
Step 101: Player4 >>> Player5
Player4: I'm out!
... player Player4 is out ...
Step 102: Player5 >>> Player1
Step 103: Player1 >>> Player3
Step 104: Player3 >>> Player1
Step 105: Player1 >>> Player3
Step 106: Player3 >>> Player5
Step 107: Player5 >>> Player3
Step 108: Player3 >>> Player1
Step 109: Player1 >>> Player3
Step 110: Player3 >>> Player5
Step 111: Player5 >>> Player1
Step 112: Player1 >>> Player3
Step 113: Player3 >>> Player5
Step 114: Player5 >>> Player3
Step 115: Player3 >>> Player1
Step 116: Player1 >>> Player3
Step 117: Player3 >>> Player5
Step 118: Player5 >>> Player1
Step 119: Player1 >>> Player3
Step 120: Player3 >>> Player5
Step 121: Player5 >>> Player3
Player5: I'm out!
... player Player5 is out ...
Step 122: Player3 >>> Player5
Step 123: Player5 >>> Player1
Player5: I'm out!
Step 124: Player1 >>> Player3
... player Player5 is out ...
Step 125: Player3 >>> Player1
Step 126: Player1 >>> Player3
Player1: I'm out!
... player Player1 is out ...
Step 127: Player3 >>> Player3
Player3: I'm out!
Step 128: Player3 >>> Player3
... player Player3 is out ...
Player3: I'm out!
Stop!
Step 129: Player3 >>> Player3
Player3: I'm out!

рдпреА рд╕рдмреИрдмрд╛рдЯ рдзреЗрд░реИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓реНрди рд╕рдХрд┐рдиреНрдЫ:

  • рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЙрдкрд▓рдмреНрдз рдЫрдиреН рднрдиреЗ, рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдмрд╛рдЯ рдЯрд╛рдврд╛ рдирднрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рдмреАрдЪ рдПрдХреАрдХрд░рдг рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫрдиреН;
  • рдПрдХреАрдХрд░рдг рдХрд╛рд░реНрдпрдХреЛ рдЬрдЯрд┐рд▓рддрд╛ (рдЬрдЯрд┐рд▓рддрд╛) рдЬрд╕рд▓рд╛рдИ рдИрдиреНрдЬрд┐рдирд┐рдпрд░рд┐рдЩреН рджрдХреНрд╖рддрд╛рд╣рд░реВ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджрдЫ рдлреНрд░реЗрдорд╡рд░реНрдХ рднрд┐рддреНрд░ рд▓реБрдХрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫ рдпрджрд┐ рдпреЛ рд╕реБрд░реБрдорд╛ рдлреНрд░реЗрдорд╡рд░реНрдХрдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рдЫред рдХрд╛рд░реНрдпрдХреЛ рдХрдард┐рдирд╛рдИ (рдХрдареАрди) рд▓реБрдХрд╛рдЙрди рд╕рдХрд┐рдБрджреИрди, рддреНрдпрд╕реИрд▓реЗ рдХреЛрдбрдорд╛ рдХрдард┐рди рдХрд╛рд░реНрдпрдХреЛ рд╕рдорд╛рдзрд╛рди рддрджрдиреБрд╕рд╛рд░ рд╣реЗрд░реНрдиреЗрдЫ;
  • рдПрдХреАрдХрд░рдг рддрд░реНрдХрдХреЛ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрджрд╛, рдЕрдиреНрддрддрдГ рд╕реНрдерд┐рд░рддрд╛ рд░ рд╕рдмреИ рдПрдХреАрдХрд░рдг рд╕рд╣рднрд╛рдЧреАрд╣рд░реВрдХреЛ рд░рд╛рдЬреНрдп рдкрд░рд┐рд╡рд░реНрддрдирдХреЛ рд░реЗрдЦреАрдпрддрд╛рдХреЛ рдХрдореАрд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдмрд╛рд╣рд┐рд░реА рдШрдЯрдирд╛рд╣рд░реВ рд╣реБрдиреЗ рдХреНрд░рдордкреНрд░рддрд┐ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдмрдирд╛рдЙрди рддрд░реНрдХрд▓рд╛рдИ рдЬрдЯрд┐рд▓ рдмрдирд╛рдЙрди рдмрд╛рдзреНрдп рдмрдирд╛рдЙрдБрдЫред рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, рдЦреЗрд▓рд╛рдбреАрд▓реЗ рдЦреЗрд▓рдмрд╛рдЯ рдмрд╛рд╣рд┐рд░рд┐рдПрдХреЛ рдШреЛрд╖рдгрд╛ рдЧрд░реЗрдкрдЫрд┐ рдЦреЗрд▓рдорд╛ рднрд╛рдЧ рд▓рд┐рди рдмрд╛рдзреНрдп рд╣реБрдиреНрдЫ: рдЕрдиреНрдп рдЦреЗрд▓рд╛рдбреАрд╣рд░реВрд▓реЗ рдЙрд╕рд▓рд╛рдИ рдмрд▓ рдкрд╛рд╕ рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫрдиреН рдЬрдмрд╕рдореНрдо рдЙрд╕рдХреЛ рдирд┐рдХрд╛рд╕рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдирдкреБрдЧреНрдЫ рд░ рд╕рдмреИ рд╕рд╣рднрд╛рдЧреАрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░рд┐рдиреНрдЫред рдпреЛ рддрд░реНрдХрд▓реЗ рдЦреЗрд▓рдХрд╛ рдирд┐рдпрдорд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрджреИрди рд░ рдЫрдиреМрдЯ рдЧрд░рд┐рдПрдХреЛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдХреЛ рдврд╛рдБрдЪрд╛ рднрд┐рддреНрд░ рдПрдХ рд╕рдореНрдЭреМрддрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛред

рдЕрд░реНрдХреЛ, рд╣рд╛рдореНрд░реЛ рд╕рдорд╛рдзрд╛рди, рд╕рдореНрдЭреМрддрд╛ рд░ рдЕрдиреНрдп рдмрд┐рдиреНрджреБрд╣рд░реВрдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╕реВрдХреНрд╖реНрдорддрд╛рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реМрдВред

рд╕рдмреИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдПрдЙрдЯреИ рд▓рд╛рдЗрдирдорд╛

рд╕рдмреИ рдПрдХреАрдХреГрдд рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд╣рд░реВрд▓реЗ рдПрдЙрдЯрд╛ рдПрдХреАрдХрд░рдг рдмрд╕рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрджрдЫ, рдЬреБрди рдмрд╛рд╣реНрдп рдмреНрд░реЛрдХрд░рдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╕рдиреНрджреЗрд╢рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ BPMQueue рд░ рд╕рдВрдХреЗрддрд╣рд░реВ (рдШрдЯрдирд╛рд╣рд░реВ) рдХреЛ рд▓рд╛рдЧрд┐ рдПрдЙрдЯрд╛ BPMTopic рд╡рд┐рд╖рдпред рдПрдЙрдЯреИ рд▓рд╛рдордмрд╛рдЯ рд╕рдмреИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрд╛рд╕ рдЧрд░реНрдиреБ рдЖрдлреИрдорд╛ рдПрдХ рд╕рдореНрдЭреМрддрд╛ рд╣реЛред рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рд╕реНрддрд░рдорд╛, рддрдкрд╛рдЗрдБ рдЕрдм рдкреНрд░рдгрд╛рд▓реА рд╕рдВрд░рдЪрдирд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдирдЧрд░реАрдХрди рдзреЗрд░реИ рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░рдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрд░рд┐рдЪрдп рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпреЛ рдПрдХ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕рд░рд▓реАрдХрд░рдг рд╣реЛ, рддрд░ рдпрд╕рд▓реЗ рдирд┐рд╢реНрдЪрд┐рдд рдЬреЛрдЦрд┐рдорд╣рд░реВ рдмреЛрдХреНрдЫ, рдЬреБрди рд╣рд╛рдореНрд░реЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛, рд╣рд╛рдореАрд▓рд╛рдИ рддреНрдпрддрд┐ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рджреЗрдЦрд┐рдПрдиред

BPM рд╢реИрд▓реА рдПрдХреАрдХрд░рдг

рдпрджреНрдпрдкрд┐, рдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рд╕реВрдХреНрд╖реНрдорддрд╛ рдЫ: рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд▓реЗ рдЖрдлреНрдиреЛ рдбреЛрдореЗрдирдХреЛ рдирд╛рдорджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╡реЗрд╢рджреНрд╡рд╛рд░рдорд╛ рд░рд╣реЗрдХреЛ рд▓рд╛рдЗрдирдмрд╛рдЯ "рдпрд╕рдХреЛ" рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджрдЫред рд╕рд╛рдереИ, рдбреЛрдореЗрди рд╕рдВрдХреЗрддрд╣рд░реВрдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдПрдХрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдорд╛ рд╕рдВрдХреЗрддрдХреЛ "рд╕реНрдХреЛрдк" рд╕реАрдорд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпрд╕рд▓реЗ рдмрд╕рдХреЛ рдмреНрдпрд╛рдиреНрдбрд╡рд┐рде рдмрдврд╛рдЙрдиреБрдкрд░реНрдЫ, рддрд░ рд╡реНрдпрд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХрд▓реЗ рдЕрдм рдбреЛрдореЗрди рдирд╛рдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ: рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд╕рдореНрдмреЛрдзрди рдЧрд░реНрди рдЕрдирд┐рд╡рд╛рд░реНрдп, рд╕рдВрдХреЗрддрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд╛рдВрдЫрдиреАрдпред

рдПрдХреАрдХрд░рдг рдмрд╕рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджреИ

рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдзреЗрд░реИ рдЪреАрдЬрд╣рд░реВ рдорд┐рд▓реЗрд░ рдмрдиреЗрдХреЛ рдЫ:

  • рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рд╕рдиреНрджреЗрд╢ рдмреНрд░реЛрдХрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рдХреЛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧ рд╣реЛ рд░ рдЕрд╕рдлрд▓рддрд╛рдХреЛ рдПрдХрд▓ рдмрд┐рдиреНрджреБ рд╣реЛ: рдпреЛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдкрдорд╛ рдЧрд▓реНрддреА-рд╕рд╣рд┐рд╖реНрдгреБ рд╣реБрдиреБрдкрд░реНрдЫред рддрдкрд╛рдИрдВрд▓реЗ рд░рд╛рдореНрд░реЛ рд╕рдорд░реНрдерди рд░ рдареВрд▓реЛ рд╕рдореБрджрд╛рдпрдХреЛ рд╕рд╛рде рд╕рдордп-рдкрд░реАрдХреНрд╖рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрдкрд░реНрдЫ;
  • рд╕рдиреНрджреЗрд╢ рдмреНрд░реЛрдХрд░рдХреЛ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЬрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рд▓рд╛рдИ рднреМрддрд┐рдХ рд░реВрдкрдорд╛ рдПрдХреАрдХреГрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдмрд╛рдЯ рдЕрд▓рдЧ рдЧрд░рд┐рдиреБ рдкрд░реНрдЫ (рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХрдХреЛ рд╕рд╛рде рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдзреЗрд░реИ рдЧрд╛рд╣реНрд░реЛ рд░ рдорд╣рдБрдЧреЛ рдЫ);
  • рджрд▓рд╛рд▓ "рдХрдореНрддреАрдорд╛ рдПрдХ рдкрдЯрдХ" рдбреЗрд▓рд┐рднрд░реА рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рдмрд╛рдзреНрдп рдЫред рдпреЛ рдПрдХреАрдХрд░рдг рдмрд╕рдХреЛ рднрд░рдкрд░реНрджреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред "рдареНрдпрд╛рдХреНрдХреИ рдПрдХ рдкрдЯрдХ" рд╕реНрддрд░ рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрдХреЛ рд▓рд╛рдЧрд┐ рдХреБрдиреИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЫреИрди: рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдкреНрд░рд╛рдп: рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд╡рд╛ рдШрдЯрдирд╛рд╣рд░реВрдХреЛ рджреЛрд╣реЛрд░реНрдпрд╛рдЗрдПрдХреЛ рдЖрдЧрдордирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реБрдБрджреИрдирдиреН, рд░ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпрд╣рд░реВрдорд╛ рдЬрд╣рд╛рдБ рдпреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ, рдирд┐рд░рдиреНрддрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рднрдиреНрджрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдорд╛ рдердк рдЬрд╛рдБрдЪрд╣рд░реВ рдердкреНрди рд╕рдЬрд┐рд▓реЛ рд╣реБрдиреНрдЫред рдмрд░реБ "рдорд╣рдВрдЧрд╛" " рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАрд╣рд░реВ;
  • рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд░ рд╕рдВрдХреЗрддрд╣рд░реВ рдкрдард╛рдЙрдиреЗ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рд░ рдбреЛрдореЗрди рдбреЗрдЯрд╛рдХреЛ рд╕реНрдерд┐рддрд┐рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирдХреЛ рд╕рд╛рде рдПрдХ рд╕рд╛рдЭрд╛ рд▓реЗрдирджреЗрдирдорд╛ рд╕рдВрд▓рдЧреНрди рд╣реБрдиреБрдкрд░реНрдЫред рд░реБрдЪрд╛рдЗрдПрдХреЛ рд╡рд┐рдХрд▓реНрдк рдврд╛рдБрдЪрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╣реБрдиреЗрдЫ рд▓реЗрдирджреЗрди рдЖрдЙрдЯрдмрдХреНрд╕, рддрд░ рдпрд╕рд▓рд╛рдИ рдбрд╛рдЯрд╛рдмреЗрд╕ рд░ рд░рд┐рд▓реЗрдорд╛ рдердк рддрд╛рд▓рд┐рдХрд╛ рдЪрд╛рд╣рд┐рдиреНрдЫред JEE рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛, рдпрд╕рд▓рд╛рдИ рд╕реНрдерд╛рдиреАрдп JTA рдкреНрд░рдмрдиреНрдзрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд░рд▓реАрдХреГрдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрд░ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдмреНрд░реЛрдХрд░рдХреЛ рдЬрдбрд╛рди рдореЛрдбрдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрдЫред XA;
  • рдЖрдЧрдорди рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд░ рдШрдЯрдирд╛рд╣рд░реВрдХреЛ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВрд▓реЗ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕реНрдерд┐рддрд┐ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рд▓реЗрдирджреЗрдирдХреЛ рд╕рд╛рде рдкрдирд┐ рдХрд╛рдо рдЧрд░реНрдиреБрдкрд░реНрдЫ: рдпрджрд┐ рдпрд╕реНрддреЛ рд▓реЗрдирджреЗрди рдлрд┐рд░реНрддрд╛ рднрдпреЛ рднрдиреЗ, рд╕рдиреНрджреЗрд╢рдХреЛ рд░рд╕рд┐рдж рдкрдирд┐ рд░рджреНрдж рдЧрд░рд┐рдиреБ рдкрд░реНрдЫ;
  • рддреНрд░реБрдЯрд┐рд╣рд░реВрдХреЛ рдХрд╛рд░рдг рдбреЗрд▓рд┐рднрд░ рд╣реБрди рдирд╕рдХреЗрдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЫреБрдЯреНрдЯреИ рд╕реНрдЯреЛрд░рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреБрдкрд░реНрдЫ D.L.Q (рдореГрдд рдкрддреНрд░ рд▓рд╛рдо)ред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдЫреБрдЯреНрдЯреИ рдкреНрд▓реЗрдЯрдлрд░реНрдо рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдпреМрдВ рдЬрд╕рд▓реЗ рддреНрдпрд╕реНрддрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рдпрд╕рдХреЛ рднрдгреНрдбрд╛рд░рдгрдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░реНрджрдЫ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ (рдЫрд┐рдЯреЛ рд╕рдореВрд╣рдмрджреНрдз рд░ рдЦреЛрдЬреАрдХрд╛ рд▓рд╛рдЧрд┐) рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ рдмрдирд╛рдЙрдБрдЫ, рд░ рд╣реЗрд░реНрди, рдЧрдиреНрддрд╡реНрдп рдареЗрдЧрд╛рдирд╛рдорд╛ рдкреБрди: рдкрдард╛рдЙрдиреЗ, рд░ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдореЗрдЯрд╛рдЙрди API рд▓рд╛рдИ рдЙрдЬрд╛рдЧрд░ рдЧрд░реНрджрдЫред рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВрд▓реЗ рдЖрдлреНрдиреЛ рд╡реЗрдм рдЗрдиреНрдЯрд░рдлреЗрд╕ рдорд╛рд░реНрдлрдд рдпрд╕ рд╕реЗрд╡рд╛рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдЫрдиреН;
  • рдмреНрд░реЛрдХрд░ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдорд╛, рддрдкрд╛рдИрдВрд▓реЗ DLQ рдорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЖрдЙрдиреЗ рд╕рдореНрднрд╛рд╡рдирд╛ рдХрдо рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдбреЗрд▓рд┐рднрд░реА рдкреБрди: рдкреНрд░рдпрд╛рд╕рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд░ рдбреЗрд▓рд┐рднрд░реАрд╣рд░реВ рдмреАрдЪрдХреЛ рдврд┐рд▓рд╛рдЗ рд╕рдорд╛рдпреЛрдЬрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ (рдЗрд╖реНрдЯрддрдо рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдЧрдгрдирд╛ рдЧрд░реНрди рд▓рдЧрднрдЧ рдЕрд╕рдореНрднрд╡ рдЫ, рддрд░ рддрдкрд╛рдИрдВрд▓реЗ рдЕрдиреБрднрд╡рд╛рддреНрдордХ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╕рдорд╛рдпреЛрдЬрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд╕рдЮреНрдЪрд╛рд▓рди);
  • DLQ рд╕реНрдЯреЛрд░рд▓рд╛рдИ рдирд┐рд░рдиреНрддрд░ рдЕрдиреБрдЧрдорди рдЧрд░рд┐рдиреБрдкрд░реНрдЫ, рд░ рдЕрдиреБрдЧрдорди рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рд╢рд╛рд╕рдХрд╣рд░реВрд▓рд╛рдИ рд╕реВрдЪрд┐рдд рдЧрд░реНрдиреБрдкрд░реНрдЫ рддрд╛рдХрд┐ рдЙрдиреАрд╣рд░реВрд▓реЗ рд╕рдХреЗрд╕рдореНрдо рдЪрд╛рдБрдбреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рди рд╕рдХреВрдиреНред рдпрд╕рд▓реЗ рдЕрд╕рдлрд▓рддрд╛ рд╡рд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рддреНрд░реБрдЯрд┐рдХреЛ "рдХреНрд╖рддрд┐ рдХреНрд╖реЗрддреНрд░" рдХрдо рдЧрд░реНрдиреЗрдЫ;
  • рдПрдХреАрдХрд░рдг рдмрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдХреЛ рдЕрд╕реНрдерд╛рдпреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐рдорд╛ рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реБрдиреБрдкрд░реНрдЫ: рд╡рд┐рд╖рдп рд╕рджрд╕реНрдпрддрд╛рд╣рд░реВ рдЯрд┐рдХрд╛рдК рд╣реБрдиреБрдкрд░реНрджрдЫ, рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдбреЛрдореЗрди рдирд╛рдо рдЕрджреНрд╡рд┐рддреАрдп рд╣реБрдиреБрдкрд░реНрдЫ рддрд╛рдХрд┐ рдЕрд░реВ рдХрд╕реИрд▓реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдХреЛ рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐рдорд╛ рд▓рд╛рдордмрд╛рдЯ рдпрд╕рдХреЛ рд╕рдиреНрджреЗрд╢ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдирдЧрд░реЛрд╕реНред

рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдХреЛ рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрджреИ

рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдЙрд╣реА рдЙрджрд╛рд╣рд░рдгрд▓реЗ рдПрдХреИрдЪреЛрдЯрд┐ рдзреЗрд░реИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд░ рдШрдЯрдирд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдЫ, рдЬрд╕рдХреЛ рдкреНрд░рд╢реЛрдзрди рд╕рдорд╛рдирд╛рдиреНрддрд░рдорд╛ рд╕реБрд░реБ рд╣реБрдиреЗрдЫред рдПрдХреИ рд╕рдордпрдорд╛, рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рдХреЛ рд▓рд╛рдЧрд┐, рд╕рдмреИ рдХреБрд░рд╛ рд╕рд░рд▓ рд░ рдереНрд░реЗрдб-рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдмрд╛рд╣реНрдп рдШрдЯрдирд╛рд▓рд╛рдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрджрдЫ рдЬрд╕рд▓реЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдкрдорд╛ рдпрд╕ рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдЕрд╕рд░ рдЧрд░реНрдЫред рдпреА рдШрдЯрдирд╛рд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреН:

  • рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╕реБрд░реБ рдЧрд░реНрджреИ;
  • рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рднрд┐рддреНрд░ рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╕рдореНрдмрдиреНрдзрд┐рдд рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛рд░реНрдп;
  • рд╕рдиреНрджреЗрд╢ рд╡рд╛ рд╕рдВрдХреЗрдд рдХреЛ рд░рд╕рд┐рдж рдЬрд╕рдорд╛ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдг рд╕рджрд╕реНрдпрддрд╛ рд▓рд┐рдЗрдПрдХреЛ рдЫ;
  • рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдЯрд╛рдЗрдорд░ рдХреЛ рд╕рдорд╛рдкреНрддрд┐;
  • API рдорд╛рд░реНрдлрдд рдХрд╛рд░реНрдп рдирд┐рдпрдиреНрддреНрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдЬрд╕реНрддреИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд░рджреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реН)ред

рдкреНрд░рддреНрдпреЗрдХ рдпрд╕реНрддреЛ рдШрдЯрдирд╛рд▓реЗ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдгрдХреЛ рдЕрд╡рд╕реНрдерд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХреНрдЫ: рдХреЗрд╣реА рдЧрддрд┐рд╡рд┐рдзрд┐рд╣рд░реВ рд╕рдорд╛рдкреНрдд рд╣реБрди рд╕рдХреНрдЫрдиреН рд░ рдЕрд░реВ рд╕реБрд░реБ рд╣реБрди рд╕рдХреНрдЫрдиреН, рдирд┐рд░рдиреНрддрд░ рдЧреБрдгрд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрди рд╕рдХреНрдЫрдиреНред рдХреБрдиреИ рдкрдирд┐ рдЧрддрд┐рд╡рд┐рдзрд┐ рдмрдиреНрдж рдЧрд░реНрджрд╛ рдирд┐рдореНрди рдордзреНрдпреЗ рдПрдХ рд╡рд╛ рдмрдвреА рдЧрддрд┐рд╡рд┐рдзрд┐рд╣рд░реВ рд╕рдХреНрд░рд┐рдп рд╣реБрди рд╕рдХреНрдЫред рддреА, рдмрд╛рд░реАрдорд╛, рдЕрдиреНрдп рдШрдЯрдирд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрди рд░реЛрдХреНрди рд╕рдХреНрдЫрдиреН, рд╡рд╛, рдпрджрд┐ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХреБрдиреИ рдЕрддрд┐рд░рд┐рдХреНрдд рдбреЗрдЯрд╛ рдЖрд╡рд╢реНрдпрдХ рдкрд░реНрджреИрди рднрдиреЗ, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕рдорд╛рди рд▓реЗрдирджреЗрдирдорд╛ рдкреВрд░рд╛ рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред рд▓реЗрдирджреЗрди рдмрдиреНрдж рдЧрд░реНрдиреБ рдЕрдШрд┐, рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдирдпрд╛рдБ рдЕрд╡рд╕реНрдерд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╣рд╛рдБ рдпрд╕рд▓реЗ рдЕрд░реНрдХреЛ рдмрд╛рд╣реНрдп рдШрдЯрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреЗрдЫред

рд░рд┐рд▓реЗрд╕рдирд▓ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдПрдХреЛ рд▓рдЧрд╛рддрд╛рд░ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдбрд╛рдЯрд╛ рдПрдХ рдзреЗрд░реИ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдкреНрд░реЛрд╕реЗрд╕рд┐рдЩ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рди рдмрд┐рдиреНрджреБ рд╣реЛ рдЬрдм рдЕрдкрдбреЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрджрд┐ рдПрдХ рд▓реЗрдирджреЗрдирд▓реЗ рдпрд╕рд▓рд╛рдИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдбреЗрдЯрд╛рдмреЗрд╕рдмрд╛рдЯ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдпреЛ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╕рдорд╛рдирд╛рдиреНрддрд░ рд░реВрдкрдорд╛ рдХреБрдиреИ рдЕрдиреНрдп рд▓реЗрдирджреЗрдирд▓реЗ рдЕрд░реНрдХреЛ рдкрд░рд┐рд╡рд░реНрддрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреЗрдЫреИрди, рд░ рдкрд╣рд┐рд▓реЛ рд▓реЗрдирджреЗрди рдкреВрд░рд╛ рднрдПрдкрдЫрд┐, рджреЛрд╕реНрд░реЛ рдПрдХ рд╣реЛред рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдЕрд╡рд╕реНрдерд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЧреНрдпрд╛рд░реЗрдиреНрдЯреАред

DBMS рдкрдХреНрд╖рдорд╛ рдирд┐рд░рд╛рд╢рд╛рд╡рд╛рджреА рд▓рдХрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореА рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдЫреМрдВ рдПрд╕рд┐рдб, рд░ рдЪрд▓рд┐рд░рд╣реЗрдХреЛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдмрдврд╛рдПрд░ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдХреЛ рд╕рд╛рде рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдорд╛рдкрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдкрдирд┐ рдХрд╛рдпрдо рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реНред

рдпрджреНрдпрдкрд┐, рдирд┐рд░рд╛рд╢рд╛рд╡рд╛рджреА рд▓рдХрд╣рд░реВрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЧрддрд┐рд░реЛрдзрдХреЛ рдзрдореНрдХреА рджрд┐рдиреНрдЫ, рдЬрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ SELECT FOR UPDATE рдЕрдЭреИ рдкрдирд┐ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдорд╛ рдХреЗрд╣реА рдЧрдореНрднреАрд░ рдХреЗрд╕рд╣рд░реВрдорд╛ рдЧрддрд┐рд░реЛрдзрдХреЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдХреЗрд╣реА рдЙрдЪрд┐рдд рдЯрд╛рдЗрдордЖрдЙрдЯрдорд╛ рд╕реАрдорд┐рдд рд╣реБрдиреБрдкрд░реНрдЫред

рдЕрд░реНрдХреЛ рд╕рдорд╕реНрдпрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реБрд░реБрд╡рд╛рдд рдХреЛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рди рдЫред рдЬрдм рддреНрдпрд╣рд╛рдБ рдХреБрдиреИ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдг рдЫреИрди, рддреНрдпрд╣рд╛рдБ рдбреЗрдЯрд╛рдмреЗрд╕рдорд╛ рдХреБрдиреИ рд░рд╛рдЬреНрдп рдЫреИрди, рддреНрдпрд╕реИрд▓реЗ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рд╡рд┐рдзрд┐рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрдиред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдПрдХ рд╡рд┐рд╢реЗрд╖ рджрд╛рдпрд░рд╛рдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд░реНрдЧ рд░ рд╕рдореНрдмрдиреНрдзрд┐рдд рджрд╛рдпрд░рд╛рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдХреБрдиреИ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рд┐рдЩреНрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рди рд╡рд╕реНрддреБ рдЪрд╛рд╣рд┐рдиреНрдЫред рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рд╣рд╛рдореА рдПрдХ рдлрд░рдХ рд▓рдХ рдЧрд░реНрдиреЗ рд╕рдВрдпрдиреНрддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ рдЬрд╕рд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдмрд╛рд╣реНрдп рд╕реЗрд╡рд╛ рдорд╛рд░реНрдлрдд URI рдврд╛рдБрдЪрд╛рдорд╛ рдХреБрдЮреНрдЬреАрджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рд╕реНрд╡реЗрдЪреНрдЫрд╛рдЪрд╛рд░реА рд╕реНрд░реЛрддрдорд╛ рд▓рдХ рд▓рд┐рди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред

рд╣рд╛рдореНрд░рд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдорд╛, InitialPlayer рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рдШреЛрд╖рдгрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ

uniqueConstraint = UniqueConstraints.singleton

рддрд╕рд░реНрде, рд▓рдЧрдорд╛ рд╕рдореНрдмрдиреНрдзрд┐рдд рдХреБрдЮреНрдЬреАрдХреЛ рд▓рдХ рд▓рд┐рдиреЗ рд░ рд░рд┐рд▓рд┐рдЬ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЫрдиреНред рдЕрдиреНрдп рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рддреНрдпрд╕реНрддрд╛ рдХреБрдиреИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЫреИрдирдиреН: unique Constraint рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред

рдирд┐рд░рдиреНрддрд░ рд░рд╛рдЬреНрдпрдХреЛ рд╕рд╛рде рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ

рдХрд╣рд┐рд▓реЗрдХрд╛рд╣реАрдБ рдПрдХ рд╕реНрдерд┐рд░ рдЕрд╡рд╕реНрдерд╛рд▓реЗ рдорджреНрджрдд рдорд╛рддреНрд░ рдЧрд░реНрджреИрди, рддрд░ рд╡рд╛рд╕реНрддрд╡рдорд╛ рд╡рд┐рдХрд╛рд╕рдорд╛ рдмрд╛рдзрд╛ рдкреБрд░реНтАНрдпрд╛рдЙрдБрдЫред
рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕реБрд░реБ рд╣реБрдиреНрдЫрдиреН рдЬрдм рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рд░ / рд╡рд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЛрдбреЗрд▓рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫред рдпрд╕реНрддреЛ рдХреБрдиреИ рдкрдирд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдкреБрд░рд╛рдиреЛ рдЕрд╡рд╕реНрдерд╛рд╕рдБрдЧ рдорд┐рд▓реНрджреЛ рдкрд╛рдЗрдБрджреИрдиред рдпрджрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдзреЗрд░реИ "рд▓рд╛рдЗрдн" рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЫрдиреН рднрдиреЗ, рддреНрдпрд╕реЛрднрдП рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрд▓реЗ рдзреЗрд░реИ рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫ, рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдкреНрд░рд╛рдп: jBPM рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рд╕рд╛рдордирд╛ рдЧрд░реНрдпреМрдВред

рдкрд░рд┐рд╡рд░реНрддрдирдХреЛ рдЧрд╣рд┐рд░рд╛рдЗрдорд╛ рдирд┐рд░реНрднрд░ рдЧрд░реНрджреИ, рддрдкрд╛рдЗрдБ рджреБрдИ рддрд░рд┐рдХрд╛рдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

  1. рдирдпрд╛рдБ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рддрд╛рдХрд┐ рдкреБрд░рд╛рдиреЛрдорд╛ рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдирдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рдирдпрд╛рдБ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рд╕реБрд░реБ рдЧрд░реНрджрд╛ рдкреБрд░рд╛рдиреЛрдХреЛ рд╕рдЯреНрдЯрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдкреБрд░рд╛рдирд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрд▓реЗ "рдкреБрд░рд╛рдиреЛ рддрд░рд┐рдХрд╛" рдХрд╛рдо рдЧрд░реНрди рдЬрд╛рд░реА рд░рд╛рдЦреНрдиреЗрдЫ;
  2. рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдЕрдкрдбреЗрдЯ рдЧрд░реНрджрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдирд┐рд░рдиреНрддрд░ рдЕрд╡рд╕реНрдерд╛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдкрд╣рд┐рд▓реЛ рддрд░рд┐рдХрд╛ рд╕рд░рд▓ рдЫ, рддрд░ рдпрд╕рдХреЛ рд╕реАрдорд┐рддрддрд╛ рд░ рдмреЗрдлрд╛рдЗрджрд╛рд╣рд░реВ рдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐:

  • рдзреЗрд░реИ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЛрдбреЗрд▓рд╣рд░реВрдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдХреЛ рдирдХреНрдХрд▓, рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЛ рдорд╛рддреНрд░рд╛ рдорд╛ рд╡реГрджреНрдзрд┐;
  • рдкреНрд░рд╛рдпрдГ рдирдпрд╛рдБ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдорд╛ рддрддреНрдХрд╛рд▓ рд╕рдВрдХреНрд░рдордг рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреНрдЫ (рд▓рдЧрднрдЧ рд╕рдзреИрдВ рдПрдХреАрдХрд░рдг рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛);
  • рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рдЫреИрди рдХреБрди рдмрд┐рдиреНрджреБрдорд╛ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдореЛрдбреЗрд▓рд╣рд░реВ рдореЗрдЯрд╛рдЙрди рд╕рдореНрднрд╡ рдЫред

рд╡реНрдпрд╡рд╣рд╛рд░рдорд╛, рд╣рд╛рдореА рджреБрдмреИ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ, рддрд░ рд╣рд╛рдореНрд░реЛ рдЬреАрд╡рдирд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрди рдзреЗрд░реИ рдирд┐рд░реНрдгрдпрд╣рд░реВ рдЧрд░реЗрдХрд╛ рдЫреМрдВ:

  • рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛, рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдирд┐рд░рдиреНрддрд░ рдЕрд╡рд╕реНрдерд╛ рд╕рдЬрд┐рд▓реИ рдкрдвреНрди рд╕рдХрд┐рдиреЗ рд░ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдкреНрд░рд╢реЛрдзрди рдЧрд░рд┐рдПрдХреЛ рдлрд╛рд░рдордорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ: JSON рдврд╛рдБрдЪрд╛ рд╕реНрдЯреНрд░рд┐рдЩрдорд╛ред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдПрдк рднрд┐рддреНрд░ рд░ рдмрд╛рд╣рд┐рд░ рджреБрдмреИ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЪрд░рдо рдЕрд╡рд╕реНрдерд╛рд╣рд░реВрдорд╛, рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рд╣реНрдпрд╛рдиреНрдбрд▓рд╣рд░реВрд╕рдБрдЧ рдЯреНрд╡реАрдХ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ (рд╡рд┐рд╢реЗрд╖ рдЧрд░реА рдбрд┐рдмрдЧрд┐рдЩрдХреЛ рд╕рдордпрдорд╛ рд╡рд┐рдХрд╛рд╕рдорд╛ рдЙрдкрдпреЛрдЧреА);
  • рдПрдХреАрдХрд░рдг рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд▓реЗ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рдирд╛рдорд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИрди, рдЬрд╕рд▓реЗ рдЧрд░реНрджрд╛ рдХреБрдиреИ рдкрдирд┐ рд╕рдордпрдорд╛ рд╕рд╣рднрд╛рдЧреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рдирдпрд╛рдБ рдирд╛рдордХреЛ рд╕рд╛рде рдмрджрд▓реНрди рд╕рдореНрднрд╡ рдЫ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, "InitialPlayerV2")ред рдмрд╛рдЗрдиреНрдбрд┐рдЩ рд╕рдиреНрджреЗрд╢ рд░ рд╕рдВрдХреЗрддрд╣рд░реВрдХреЛ рдирд╛рдо рдорд╛рд░реНрдлрдд рд╣реБрдиреНрдЫ;
  • рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЛрдбреЗрд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдирдореНрдмрд░ рдЫ, рдЬрд╕рд▓рд╛рдИ рд╣рд╛рдореАрд▓реЗ рдпреЛ рдореЛрдбреЗрд▓рдорд╛ рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реЗрдорд╛ рд╡реГрджреНрдзрд┐ рдЧрд░реНрдЫреМрдВ, рд░ рдпреЛ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдгрдХреЛ рдЕрд╡рд╕реНрдерд╛рд╕рдБрдЧреИ рднрдгреНрдбрд╛рд░рдг рдЧрд░рд┐рдиреНрдЫ;
  • рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдирд┐рд░рдиреНрддрд░ рдЕрд╡рд╕реНрдерд╛ рдЖрдзрд╛рд░рдмрд╛рдЯ рдкрд╣рд┐рд▓реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд╕реНрддреБ рдореЛрдбреЗрд▓рдорд╛ рдкрдврд┐рдиреНрдЫ рдЬреБрди рдореЛрдбреЗрд▓рдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдирдореНрдмрд░ рдкрд░рд┐рд╡рд░реНрддрди рднрдПрдХреЛ рдЦрдгреНрдбрдорд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдЫ;
  • рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрдХреЛ рдЫреЗрдЙрдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рдЫ рд░ рдбрд╛рдЯрд╛рдмреЗрд╕рдмрд╛рдЯ рдпрд╕рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛рдХреЛ рд╕рдордпрдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдЙрджрд╛рд╣рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ "рдЖрд▓рд╕реА" рднрдирд┐рдиреНрдЫ;
  • рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕рдмреИ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВрдХреЛ рд╕реНрдерд┐рддрд┐ рдЫрд┐рдЯреЛ рд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдкрдорд╛ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рднрдиреЗ, рдердк рдХреНрд▓рд╛рд╕рд┐рдХ рдбрд╛рдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рддрд░ рддрдкрд╛рдЗрдБрд▓реЗ рддреНрдпрд╣рд╛рдБ JSON рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреБрдкрд░реНрдЫред

рдХреЗ рдорд▓рд╛рдИ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЪрд╛рд╣рд┐рдиреНрдЫ?

рд▓реЗрдЦрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рд╕рдорд╛рдзрд╛рдирд╣рд░реВрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рд╣рд╛рдореНрд░реЛ рдЬреАрд╡рдирд▓рд╛рдИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рд░рд▓ рдмрдирд╛рдЙрди, рдПрдкреНрд▓рд┐рдХреЗрд╕рди рд╡рд┐рдХрд╛рд╕ рд╕реНрддрд░рдорд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░рд┐рдПрдХрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рджрд╛рдпрд░рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░реНрди рд░ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрднрд┐рд╕реЗрд╕рд╣рд░реВрдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХрд▓рд╛рдИ рдЕрд▓рдЧ рдЧрд░реНрдиреЗ рд╡рд┐рдЪрд╛рд░рд▓рд╛рдИ рдЕрдЭ рдЖрдХрд░реНрд╖рдХ рдмрдирд╛рдЙрди рдЕрдиреБрдорддрд┐ рджрд┐рдпреЛред рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐, рдзреЗрд░реИ рдХрд╛рдо рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдзреЗрд░реИ "рд╣рд▓реНрдХрд╛" рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ, рд╕рд╛рдереИ рд▓рд╛рдЧреВ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╡рд┐рд╕реНрддреГрдд рджрд╛рдпрд░рд╛рдХреЛ рд╕рдиреНрджрд░реНрднрдорд╛ рдкрд╣рд┐рдЪрд╛рди рдЧрд░рд┐рдПрдХрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╕реЗрд╡рд╛ рдШрдЯрдХрд╣рд░реВред рд╣рд╛рдореАрд╕рдБрдЧ рдпреА рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рд╕рд╛рдЭрд╛ рдЧрд░реНрдиреЗ рдЗрдЪреНрдЫрд╛ рдЫ, рд╕рд╛рдЭрд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВрдХреЛ рд╡рд┐рдХрд╛рд╕рд▓рд╛рдИ рдирд┐рдГрд╢реБрд▓реНрдХ рдЗрдЬрд╛рдЬрддрдкрддреНрд░ рдЕрдиреНрддрд░реНрдЧрдд рдЦреБрд▓рд╛ рдкрд╣реБрдБрдЪрдорд╛ рд▓реНрдпрд╛рдЙрдиред рдпреЛ рдХреЗрд╣рд┐ рдкреНрд░рдпрд╛рд╕ рд░ рд╕рдордп рдЖрд╡рд╢реНрдпрдХ рд╣реБрдиреЗрдЫред рддреНрдпрд╕реНрддрд╛ рд╕рдорд╛рдзрд╛рдирд╣рд░реВрдХреЛ рдорд╛рдЧ рдмреБрдЭреНрдиреБ рд╣рд╛рдореНрд░реЛ рд▓рд╛рдЧрд┐ рдердк рдкреНрд░реЛрддреНрд╕рд╛рд╣рди рд╣реБрди рд╕рдХреНрдЫред рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд▓реЗрдЦрдорд╛, рдлреНрд░реЗрдорд╡рд░реНрдХрдХреЛ рдХреНрд╖рдорддрд╛рд╣рд░реВрдорд╛ рдзреЗрд░реИ рдХрдо рдзреНрдпрд╛рди рджрд┐рдЗрдПрдХреЛ рдЫ, рддрд░ рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдХреЗрд╣реА рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдкреНрд░рд╕реНрддреБрдд рдЧрд░рд┐рдПрдХрд╛ рдЫрдиреНред рдпрджреНрдпрдкрд┐ рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдврд╛рдБрдЪрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░реНрдпреМрдВ рднрдиреЗ, рдПрдЙрдЯрд╛ рдЫреБрдЯреНрдЯреИ рд▓реЗрдЦ рдпрд╕рдорд╛ рд╕рдорд░реНрдкрд┐рдд рд╣реБрдиреЗрдЫред рдпрд╕ рдмреАрдЪрдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рд╢реНрдирдХреЛ рдЬрд╡рд╛рдл рджрд┐рдПрд░ рдереЛрд░реИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рдиреБрднрдпреЛ рднрдиреЗ рд╣рд╛рдореА рдЖрднрд╛рд░реА рд╣реБрдиреЗрдЫреМрдВ:

рджрд░реНрддрд╛ рднрдПрдХрд╛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорд╛рддреНрд░ рд╕рд░реНрд╡реЗрдХреНрд╖рдгрдорд╛ рднрд╛рдЧ рд▓рд┐рди рд╕рдХреНрдЫрдиреНред рд╕рд╛рдЗрди рдЗрди рдЧрд░реНрдиреБрд╣реЛрд╕реНрдХреГрдкрдпрд╛

рдХреЗ рдорд▓рд╛рдИ рд╡реНрдпрд╛рдкрд╛рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЕрд░реНрдХреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдЪрд╛рд╣рд┐рдиреНрдЫ?

  • 18,8%рд╣реЛ, рдо рд▓рд╛рдореЛ рд╕рдордп рджреЗрдЦрд┐ рдпрд╕реНрддреИ рдХреЗрд╣рд┐ рдЦреЛрдЬреНрджреИ рдЫреБред

  • 12,5%рдпреЛ рддрдкрд╛рдИрдВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдмрд╛рд░реЗрдорд╛ рдердк рдЬрд╛рдиреНрди рд░реЛрдЪрдХ рдЫ, рдпреЛ рдЙрдкрдпреЛрдЧреА рд╣реБрди рд╕рдХреНрдЫ2

  • 6,2%рд╣рд╛рдореА рдЕрд╡рд╕реНрдерд┐рдд рдлреНрд░реЗрдорд╡рд░реНрдХрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ, рддрд░ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╕реЛрдЪрд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ

  • 18,8%рд╣рд╛рдореА рдЕрд╡рд╕реНрдерд┐рдд рдлреНрд░реЗрдорд╡рд░реНрдХрд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ, рд╕рдмреИ рдХреБрд░рд╛ рд╕реВрдЯ3

  • 18,8%рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрд┐рдирд╛ рд╕рд╛рдордирд╛ 3

  • 25,0%рдЖрдлреНрдиреЛ 4 рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН

16 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдорддрджрд╛рди рдЧрд░реЗред 7 рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд░реЛрдХрд┐рдПред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди