BPM ื ื•ืกื— ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ

BPM ื ื•ืกื— ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ

ื”ืขืœื, Habr!

ืื•ื ื“ื–ืขืจ ืคื™ืจืžืข ืกืคึผืขืฉืึทืœื™ื™ื–ื™ื– ืื™ืŸ ื“ืขืจ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ERP-ืงืœืึทืก ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืกืึทืœื•ืฉืึทื ื–, ื“ืขืจ ืœื™ื™ื‘ ืก ื˜ื™ื™ืœืŸ ืคื•ืŸ ื•ื•ืึธืก ืื™ื– ืคืึทืจื ื•ืžืขืŸ ื“ื•ืจืš ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœ ืกื™ืกื˜ืขืžืขืŸ ืžื™ื˜ ืึท ืจื™ื–ื™ืง ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื•ืŸ ื“ืึธืงื•ืžืขื ื˜ ืœื•ื™ืคืŸ ืื™ืŸ EDMS. ืงืจืึทื ื˜ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืคึผืจืึธื“ื•ืงื˜ืŸ ื–ืขื ืขืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ JavaEE ื˜ืขืงื ืึทืœืึทื“ื–ืฉื™ื–, ืึธื‘ืขืจ ืžื™ืจ ื–ืขื ืขืŸ ืื•ื™ืš ืึทืงื˜ื™ื•ื•ืœื™ ืขืงืกืคึผืขืจืึทืžืขื ื˜ื™ื ื’ ืžื™ื˜ ืžื™ืงืจืึธ ื‘ืึทื“ื™ื ื•ื ื’ืก. ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืžืขืจืกื˜ ืคึผืจืึธื‘ืœืขืžืึทื˜ื™ืง ื’ืขื‘ื™ื˜ืŸ ืคื•ืŸ ืึทื–ืึท ืกืึทืœื•ืฉืึทื ื– ืื™ื– ื“ื™ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืคื•ืŸ ืคืึทืจืฉื™ื“ืŸ ืกืึทื‘ืกื™ืกื˜ืึทืžื– ื•ื•ืึธืก ื’ืขื”ืขืจืŸ ืฆื• ืฉื›ื™ื™ื ื™ืฉ ื“ืึธื•ืžื™ื™ื ื–. ื™ื ื˜ืขื’ืจืึทื˜ื™ืึธืŸ ืคึผืจืึธื‘ืœืขืžืก ื”ืึธื‘ืŸ ืฉื˜ืขื ื“ื™ืง ื’ืขื’ืขื‘ืŸ ืื•ื ื“ื– ืึท ืจื™ื–ื™ืง ืงืึธืคึผื•ื•ื™ื™ื˜ื™ืง, ืจืึทื’ืึทืจื“ืœืึทืก ืคื•ืŸ ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืกื˜ื™ื™ืœื–, ื˜ืขื›ื ืึธืœืึธื’ื™ืข ืกื˜ืึทืงืก ืื•ืŸ ืคืจืึทืžืขื•ื•ืึธืจืงืก ืžื™ืจ ื ื•ืฆืŸ, ืึธื‘ืขืจ ืœืขืฆื˜ื ืก ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืคึผืจืึธื’ืจืขืก ืื™ืŸ ืกืึทืœื•ื•ื™ื ื’ ืึทื–ืึท ืคึผืจืึธื‘ืœืขืžืก.

ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ืš ื‘ืจืขื ื’ืขืŸ ืฆื• ื“ื™ื™ืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜, ืื™ืš ื•ื•ืขืœ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ื™ ื“ืขืจืคืึทืจื•ื ื’ ืื•ืŸ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืคืึธืจืฉื•ื ื’ ื•ื•ืึธืก NPO Krista ื”ืื˜ ืื™ืŸ ื“ื™ ื“ืขื–ื™ื’ื ื™ื™ื˜ื™ื“ ื’ืขื’ื ื˜. ืžื™ืจ ื•ื•ืขืœืŸ ืื•ื™ืš ืงื•ืงืŸ ืื™ืŸ ืึท ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ืึท ืคึผืฉื•ื˜ ืœื™ื™ื–ื•ื ื’ ืฆื• ืึท ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืคึผืจืึธื‘ืœืขื ืคึฟื•ืŸ ื“ื™ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’ ืคื•ืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืื•ืŸ ื’ืขืคึฟื™ื ืขืŸ ืื•ื™ืก ื•ื•ืึธืก ืื™ื– ืคืึทืจื‘ืึธืจื’ืŸ ื”ื™ื ื˜ืขืจ ื“ืขื ืคึผืึทืฉื˜ืขืก.

ืึธืคึผืœื™ื™ืงืขื ื•ื ื’

ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืื•ืŸ ื˜ืขื›ื ื™ืฉ ืกืึทืœื•ืฉืึทื ื– ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ื–ืขื ืขืŸ ืคืืจื’ืขืœื™ื™ื’ื˜ ื“ื•ืจืš ืžื™ืจ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืคึผืขืจื–ืขื ืœืขืš ื“ืขืจืคืึทืจื•ื ื’ ืื™ืŸ ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืคื•ืŸ ืกืคึผืขืฆื™ืคื™ืฉ ื˜ืึทืกืงืก. ื“ื™ ืกืึทืœื•ืฉืึทื ื– ื˜ืึธืŸ ื ื™ื˜ ืคืึธื“ืขืจืŸ ืฆื• ื–ื™ื™ืŸ ื•ื ื™ื•ื•ืขืจืกืึทืœ ืื•ืŸ ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืึธืคึผื˜ื™ืžืึทืœ ืื•ื ื˜ืขืจ ืื ื“ืขืจืข ื‘ืื“ื™ื ื’ื•ื ื’ืขืŸ ืคื•ืŸ ื ื•ืฆืŸ.

ื•ื•ืึธืก ื˜ื•ื˜ BPM ื”ืึธื‘ืŸ ืฆื• ื˜ืึธืŸ ืžื™ื˜ ืื™ื?

ืฆื• ืขื ื˜ืคึฟืขืจืŸ ื“ืขื ืงืฉื™ื, ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื“ืขืœื•ื• ืึท ื‘ื™ืกืœ ื“ื™ืคึผืขืจ ืื™ืŸ ื“ื™ ืกืคึผืขืกื™ืคื™ืงืก ืคื•ืŸ ื“ื™ ื’ืขื•ื•ืขื ื“ื˜ ืคึผืจืึธื‘ืœืขืžืก ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืกืึทืœื•ืฉืึทื ื–. ื“ืขืจ ื”ื•ื™ืคึผื˜ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื™ืŸ ืื•ื ื“ื–ืขืจ ื˜ื™ืคึผื™ืฉ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœ ืกื™ืกื˜ืขื ืื™ื– ืึทืจื™ื™ึทืŸ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื“ื•ืจืš ื‘ืึทื ื™ืฆืขืจ ื™ื ื˜ืขืจืคื™ื™ืกื™ื–, ืžืึทื ื•ืึทืœ ืื•ืŸ ืึธื˜ืึทืžื™ื™ื˜ื™ื“ ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืŸ, ืึธื ืคื™ืจืŸ ืขืก ื“ื•ืจืš ืขื˜ืœืขื›ืข ื•ื•ืึธืจืงืคืœืึธื•ื•, ืืจื•ื™ืกื’ืขื‘ืŸ ืขืก ืฆื• ืืŸ ืื ื“ืขืจ ืกื™ืกื˜ืขื / ืึทื ืึทืœื™ืกื™ืก ื“ืึทื˜ืึทื‘ื™ื™ืก / ืึทืจืงื™ื™ื•ื• ืื•ืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืจื™ืคึผืึธืจืฅ. . ืื–ื•ื™, ื“ืขืจ ืฉืœื™ืกืœ ืคื•ื ืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืกื™ืกื˜ืขื ืคึฟืึทืจ ืงืึทืกื˜ืึทืžืขืจื– ืื™ื– ื“ื™ ืึธื˜ืึทืžื™ื™ืฉืึทืŸ ืคื•ืŸ ื–ื™ื™ืขืจ ื™ื ืขืจืœืขืš ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–.

ืคึฟืึทืจ ืงืึทื ื•ื•ื™ื ื™ืึทื ืก, ืžื™ืจ ื ื•ืฆืŸ ื“ืขื ื˜ืขืจืžื™ืŸ "ื“ืึธืงื•ืžืขื ื˜" ืื™ืŸ ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ื•ื•ื™ ืขื˜ืœืขื›ืข ืึทื‘ืกื˜ืจืึทืงืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืึท ืกื›ื•ื ืคื•ืŸ ื“ืึทื˜ืŸ ืคึฟืึทืจืื™ื™ื ื™ืงื˜ืข ื“ื•ืจืš ืึท ืคึผืจืึธืกื˜ ืฉืœื™ืกืœ ืฆื• ื•ื•ืึธืก ืึท ื–ื™ื›ืขืจ ื•ื•ืึธืจืงืคืœืึธื•ื• ืงืขื ืขืŸ ื–ื™ื™ืŸ "ืœื™ื ื’ืงื˜".
ืึธื‘ืขืจ ื•ื•ืึธืก ื•ื•ืขื’ืŸ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืœืึธื’ื™ืง? ื ืึธืš ืึทืœืข, ื“ื™ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืึทืจื‘ืขื˜ ืื™ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื“ื•ืจืš ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื, ื•ื•ืึธืก ืื™ื– "ืฉื ื™ื™ึทื“ืŸ" ืื™ืŸ ืคึผืึทืจืฅ ื ื™ื˜ ืื•ื™ืฃ ื“ืขืจ ื‘ืงืฉื” ืคื•ืŸ ื“ืขืจ ืงื•ื ื”, ืึธื‘ืขืจ ืื•ื ื˜ืขืจ ื“ืขืจ ื”ืฉืคึผืขื” ืคื•ืŸ ื’ืึธืจ ืคืึทืจืฉื™ื“ืขื ืข ืกื™ื‘ื•ืช:

  • ืื•ื ื˜ืขืจื˜ืขื ื™ืง ืฆื• ืงืื ื•ื•ื™ื™'ืก ื’ืขื–ืขืฅ;
  • ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืจื™ื•ื–ื™ื ื’ ืกืึทื‘ืกื™ืกื˜ืึทืžื– ื‘ื™ื– ืึทื”ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ืคึฟืึทืจ ืื ื“ืขืจืข ืคึผืจืึธื“ื•ืงื˜ืŸ;
  • ืœื•ื™ื˜ ื“ืขืจ ืึทืจื›ื™ื˜ืขืงื˜ ืก ื“ื™ืกืงืจืขืฉืึทืŸ, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื ื™ื˜-ืคืึทื ื’ืงืฉืึทื ืึทืœ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ.

ืขืก ืื™ื– ืึท ื’ืจื•ื™ืก ื ืกื™ื•ืŸ ืฆื• ื‘ืึทื–ื•ื ื“ืขืจ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืœืึธื’ื™ืง ืคื•ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื•ื•ืึธืจืงืคืœืึธื•ื•, ืึทื–ื•ื™ ื ื™ืฉื˜ ืฆื• ื‘ืึทืฉืžื•ืฆืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืžื™ื˜ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืึทืจื˜ืึทืคืึทืงืฅ ืื•ืŸ ื‘ืึทืคืจื™ื™ึทืขืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืคื•ืŸ ื“ื™ ื ื•ื™ื˜ ืฆื• ื“ืขืœื•ื• ืื™ืŸ ื“ื™ ืกืคึผืขืกื™ืคื™ืงืก ืคื•ืŸ ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืœืึทื ื“ืฉืึทืคื˜ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื. ื“ืขืจ ืฆื•ื’ืึทื ื’ ื”ืื˜ ืึท ื ื•ืžืขืจ ืคื•ืŸ ืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื–, ืึธื‘ืขืจ ืคื™ืจ ื•ื•ื™ื™ื–ื˜ ื–ื™ื™ึทืŸ ื™ื ื™ืคืขืงื˜ื™ื•ื•ื ืึทืก:

  • ืกืึทืœื•ื•ื™ื ื’ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืคึผืจืึธื‘ืœืขืžืก ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ืคืึทืœืŸ ืฆื•ืจื™ืง ืฆื• ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ืึธืคึผืฆื™ืขืก ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืกื™ื ื˜ืฉืจืึธื ืึธื•ืก ืงืึทืœืœืก ืจืขื›ื˜ ืฆื• ื“ื™ ืœื™ืžื™ื˜ืขื“ ืคืึทืจืœืขื ื’ืขืจื•ื ื’ ืคื•ื ืงื˜ืŸ ืื™ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ื•ื•ืึธืจืงืคืœืึธื•ื• (ื“ื™ ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืคื•ืŸ ืกื™ื ื˜ืฉืจืึธื ืึธื•ืก ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ื–ืขื ืขืŸ ื“ื™ืกืงืึทืกื˜ ืื•ื ื˜ืŸ);
  • ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืึทืจื˜ืึทืคืึทืงืฅ ื ืึธืš ื“ื•ืจื›ื ืขืžืขืŸ ื”ืึทืจืฅ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ื•ื•ืขืŸ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ืคื•ืŸ ืืŸ ืื ื“ืขืจ ืกืึทื‘ืกื™ืกื˜ืึทื ืื™ื– ืคืืจืœืื ื’ื˜;
  • ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื™ื’ื ืึธืจื– ื“ื™ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืื•ืŸ ืงืขื ืขืŸ ืœื™ื™ื›ื˜ ื‘ืจืขื›ืŸ ืขืก ื“ื•ืจืš ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ื•ื•ืึธืจืงืคืœืึธื•ื•;
  • ื“ื™ ืกื™ืกื˜ืขื ืกื™ื– ืฆื• ื–ื™ื™ืŸ ืึท ืื™ื™ืŸ ื’ืึทื ืฅ ืคึฟื•ืŸ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืก ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’, "ืกื™ืžื–" ืฆื•ื•ื™ืฉืŸ ืกืึทื‘ืกื™ืกื˜ืึทืžื– ื•ื•ืขืจืŸ ื‘ืืžืขืจืงื˜, ืื•ืŸ ื™ื‘ืขืจื™ืง ื‘ืึทื ื™ืฆืขืจ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื“ืขืจืฉื™ื™ึทื ืขืŸ, ื™ื ื™ืฉื™ื™ื™ื˜ื™ื ื’ ื“ื™ ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืคื•ืŸ ื“ืึทื˜ืŸ ืคื•ืŸ ืื™ื™ืŸ ืกืึทื‘ืกื™ืกื˜ืขื ืฆื• ืื ื“ืขืจืŸ.

ืืŸ ืื ื“ืขืจ ืฆื•ื’ืึทื ื’ ืื™ื– ืฆื• ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ื™ื ื˜ืขืจืึทืงืฉืึทื ื– ื•ื•ื™ ืึท ื™ื ื˜ืึทื’ืจืึทืœ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ื”ืึทืจืฅ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื•ืŸ ื•ื•ืึธืจืงืคืœืึธื•ื•. ืฆื• ืคืึทืจืžื™ื™ื“ืŸ ื“ื™ ืงื•ื•ืึทืœืึทืคืึทืงื™ื™ืฉืึทื ื– ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืคื•ืŸ ืกืงื™ื™ืจืึทืงืึทื˜ื™ื ื’, ืฉืึทืคึฟืŸ ื ื™ื™ึทืข ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ื™ื ื˜ืขืจืึทืงืฉืึทื ื– ื–ืึธืœ ื–ื™ื™ืŸ ื’ืจื™ื ื’ ืื•ืŸ ืขืคืขืจื˜ืœืึทืก, ืžื™ื˜ ืžื™ื ื™ืžืึทืœ ื’ืขืœืขื’ื ื”ื™ื™ื˜ ืฆื• ืงืœื™ื™ึทื‘ืŸ ืึท ืœื™ื™ื–ื•ื ื’. ื“ืึธืก ืื™ื– ื”ืึทืจื“ืขืจ ืฆื• ื˜ืึธืŸ ื•ื•ื™ ืขืก ืžื™ื™ื ื˜: ื“ื™ ื’ืขืฆื™ื™ึทื’ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืฉื˜ืึทืจืง ื’ืขื ื•ื’ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ื“ื™ ืคืืจืœืื ื’ื˜ ืคืึทืจืฉื™ื™ื“ื ืงื™ื™ึทื˜ ืคื•ืŸ ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ื–ื™ื™ึทืŸ ื ื•ืฆืŸ, ืึธืŸ ืึทืœืึทื•ื™ื ื’ ืื™ื ืฆื• "ืฉื™ืกืŸ ื–ื™ืš ืื™ืŸ ื“ื™ ืคึฟื™ืก." ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ืคึฟืจืื’ืŸ ื•ื•ืึธืก ืึท ื™ื ื–ืฉืขื ื™ืจ ืžื•ื–ืŸ ืขื ื˜ืคึฟืขืจืŸ ืื™ืŸ ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืคื•ืŸ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ื˜ืึทืกืงืก, ืึธื‘ืขืจ ื•ื•ืึธืก ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื–ืึธืœ ื ื™ืฉื˜ ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ืื™ืŸ ื–ื™ื™ืŸ ื˜ืขื’ืœืขืš ืึทืจื‘ืขื˜: ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื‘ืึทื•ื ื“ืจื™ื–, ืงืึธื ืกื™ืกื˜ืขื ืกื™, ืึทื˜ืึธืžื™ืกื™ื˜ื™, ื–ื™ื›ืขืจื”ื™ื™ื˜, ืกืงื™ื™ืœื™ื ื’, ืžืึทืกืข ืื•ืŸ ืžื™ื˜ืœ ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’, ืจื•ื˜ื™ื ื’, ืžืึทืจืฉืึทืœื™ื ื’, ืคืึทืจืฉืคึผืจื™ื™ื˜ื•ื ื’ ืื•ืŸ ืกื•ื•ื™ื˜ืฉื™ื ื’ ืงืึทื ื˜ืขืงืกืฅ, ืืื–"ื• ื•. ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืคืึธืจืฉืœืึธื’ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื’ืึทื ืฅ ืคึผืฉื•ื˜ ืœื™ื™ื–ื•ื ื’ ื˜ืขืžืคึผืœืึทื˜ืขืก ืื™ืŸ ื•ื•ืึธืก ื“ื™ ืขื ื˜ืคึฟืขืจืก ืฆื• ืึทืœืข ืึทื–ืึท ืคืจืื’ืขืก ื–ืขื ืขืŸ ืฉื•ื™ืŸ ืคืึทืจื‘ืึธืจื’ืŸ. ื“ื™ ื˜ืขืžืคึผืœืึทื˜ืขืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืึทื ืฅ ื–ื™ื›ืขืจ: ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ื™ื™ืขืจ ืึธืคื˜, ื•ื•ืึธืก ื™ื ืงืจื™ืกืึทื– ื“ื™ ืจื™ื–ื™ืงื™ืจืŸ ืคื•ืŸ ื™ื ื˜ืจืึธื•ื“ื•ืกื™ื ื’ ืขืจืจืึธืจืก, ื“ื™ ืงืึธืก ืคื•ืŸ ืขืจืจืึธืจืก ืžื•ื–ืŸ ื‘ืœื™ื™ื‘ืŸ ืื•ื™ืฃ ืึท ื’ืึทื ืฅ ื ื™ื“ืขืจื™ืง ืžื“ืจื’ื”.

ืึธื‘ืขืจ ื•ื•ืึธืก ื˜ื•ื˜ BPM ื”ืึธื‘ืŸ ืฆื• ื˜ืึธืŸ ืžื™ื˜ ืื™ื? ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ื•ื•ืึธืจืงืคืœืึธื•ื• ...
ื˜ืึทืงืข, ืืŸ ืื ื“ืขืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ืื™ื– ื–ื™ื™ืขืจ ืคืึธืœืงืก ืื™ืŸ ืื•ื ื“ื–ืขืจ ืกืึทืœื•ืฉืึทื ื– - ื“ื•ืจืš ื“ื™ ื“ืขืงืœืึทืจืึทื˜ื™ื•ื•ืข ื“ืขืคึฟื™ื ื™ืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืึท ืฉื˜ืึทื˜ ื™ื‘ืขืจื’ืึทื ื’ ื“ื™ืึทื’ืจืึทืžืข ืื•ืŸ ื“ื™ ืงืฉืจ ืคื•ืŸ ื”ืึทื ื“ืœืขืจืก ืžื™ื˜ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืคึฟืึทืจ ื˜ืจืึทื ื–ื™ืฉืึทื ื–. ืื™ืŸ ื“ืขื ืคืึทืœ, ื“ื™ ืฉื˜ืึทื˜ ื•ื•ืึธืก ื“ื™ื˜ืขืจืžืึทื ื– ื“ื™ ืงืจืึทื ื˜ ืฉื˜ืขืœืข ืคื•ืŸ โ€‹โ€‹ื“ื™ "ื“ืึธืงื•ืžืขื ื˜" ืื™ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืื™ื– ืึทืŸ ืึทื˜ืจื™ื‘ื™ื•ื˜ ืคื•ืŸ ื“ื™ "ื“ืึธืงื•ืžืขื ื˜" ื–ื™ืš.

BPM ื ื•ืกื— ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ
ื“ืึธืก ืื™ื– ื•ื•ื™ ื“ืขืจ ืคึผืจืึธืฆืขืก ืงื•ืงื˜ ื•ื•ื™ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ืึท ืคึผืจื•ื™ืขืงื˜

ื“ื™ ืคึผืึธืคึผื•ืœืึทืจื™ื˜ืขื˜ ืคื•ืŸ ื“ืขื ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ื– ืจืขื›ื˜ ืฆื• ื“ืขืจ ืงืึธืจืขื•ื• ืคึผืึทืฉื˜ืขืก ืื•ืŸ ื’ื™ื›ืงื™ื™ึทื˜ ืคื•ืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ืœื™ื ืขืึทืจ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–. ืึธื‘ืขืจ, ื•ื•ื™ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืกื™ืกื˜ืขืžืขืŸ ืงืขืกื™ื™ื“ืขืจ ื•ื•ืขืจืŸ ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜, ื“ื™ ืึธื˜ืึทืžื™ื™ื˜ื™ื“ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ื•ื•ืืงืกื˜ ืื•ืŸ ื•ื•ืขืจื˜ ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜. ืขืก ืื™ื– ืึท ื ื•ื™ื˜ ืคึฟืึทืจ ื“ื™ืงืึทืžืคึผืึธื•ื–ื™ืฉืึทืŸ, ืจื™ื™ื•ื– ืคื•ืŸ ืคึผืึทืจืฅ ืคื•ืŸ ืคึผืจืึทืกืขืกืึทื–, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื‘ืจืึทื ื˜ืฉื™ื ื’ ืคึผืจืึทืกืขืกืึทื– ืึทื–ื•ื™ ืึทื– ื™ืขื“ืขืจ ืฆื•ื•ื™ื™ึทื’ ืื™ื– ืขืงืกืึทืงื™ื•ื˜ืึทื“ ืื™ืŸ ืคึผืึทืจืึทืœืขืœ. ืื•ื ื˜ืขืจ ืึทื–ืึท ื˜ื ืึธื™ื, ื“ื™ ื’ืขืฆื™ื™ึทื’ ื•ื•ืขืจื˜ ื•ืžื‘ืึทืงื•ื•ืขื, ืื•ืŸ ื“ื™ ืฉื˜ืึทื˜ ื™ื‘ืขืจื’ืึทื ื’ ื“ื™ืึทื’ืจืึทืžืข ืคืืจืœื™ืจื˜ ื–ื™ื™ึทืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ื ื”ืึทืœื˜ (ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ื™ื ื˜ืขืจืึทืงืฉืึทื ื– ื–ืขื ืขืŸ ื ื™ืฉื˜ ืฉืคื™ื’ืœื˜ ืื™ืŸ ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ื‘ื™ื™ึท ืึทืœืข).

BPM ื ื•ืกื— ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ
ื“ืึธืก ืื™ื– ื•ื•ื™ ื“ืขืจ ืคึผืจืึธืฆืขืก ืงื•ืงื˜ ื•ื•ื™ ื ืึธืš ืขื˜ืœืขื›ืข ื™ื˜ืขืจื™ื™ืฉืึทื ื– ืคื•ืŸ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืงืœืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ.

ื“ืขืจ ื•ื•ืขื’ ืื•ื™ืก ืคื•ืŸ ื“ืขื ืกื™ื˜ื•ืึทืฆื™ืข ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืžืึธื˜ืึธืจ jBPM ืื™ืŸ ืขื˜ืœืขื›ืข ืคึผืจืึธื“ื•ืงื˜ืŸ ืžื™ื˜ ื“ื™ ืžืขืจืกื˜ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–. ืื™ืŸ ื“ื™ ืงื•ืจืฅ ื˜ืขืจืžื™ืŸ, ื“ื™ ืœื™ื™ื–ื•ื ื’ ื”ืื˜ ืขื˜ืœืขื›ืข ื”ืฆืœื—ื”: ืขืก ืื™ื– ื’ืขื•ื•ืืจืŸ ืžืขื’ืœืขืš ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืงืึธืžืคึผืœืขืงืก ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ืื•ืŸ ื”ืึทืœื˜ืŸ ืึท ืคืขืจืœื™ ื™ื ืคืึธืจืžืึทื˜ื™ื•ื• ืื•ืŸ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ื“ื™ืึทื’ืจืึทืžืข ืื™ืŸ ื“ื™ ื ืึธื•ื˜ื™ื™ืฉืึทืŸ. BPMN2.

BPM ื ื•ืกื— ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ
ื ืงืœื™ื™ืŸ ื˜ื™ื™ืœ ืคื•ืŸ ืึท ืงืึธืžืคึผืœืขืงืก ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก

ืื™ืŸ ื“ื™ ืœืึทื ื’ ื˜ืขืจืžื™ืŸ, ื“ื™ ืœื™ื™ื–ื•ื ื’ ื”ืื˜ ื ื™ืฉื˜ ืœืขื‘ืŸ ืึทืจื•ื™ืฃ ืฆื• ืขืงืกืคึผืขืงื˜ื™ื™ืฉืึทื ื–: ื“ื™ ื”ื•ื™ืš ืึทืจื‘ืขื˜ ื™ื ื˜ืขื ืกื™ื˜ื™ ืคื•ืŸ ืงืจื™ื™ื™ื˜ื™ื ื’ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ื“ื•ืจืš ื•ื•ื™ื–ืฉืึทื•ื•ืึทืœ ืžื›ืฉื™ืจื™ื ื”ืื˜ ื ื™ืฉื˜ ืœืึธื–ืŸ ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ืคึผืึทืกื™ืง ืคึผืจืึธื•ื“ืึทืงื˜ื™ื•ื•ื™ื˜ื™ ื™ื ื“ื™ืงืึทื˜ืึธืจืก, ืื•ืŸ ื“ื™ ื’ืขืฆื™ื™ึทื’ ื–ื™ืš ืื™ื– ื’ืขื•ื•ืืจืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืžืขืจืกื˜ ื“ื™ืกืœื™ื™ืงื˜ ืฆื•ื•ื™ืฉืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก. ืขืก ื–ืขื ืขืŸ ืื•ื™ืš ื˜ืขื ื•ืช ื•ื•ืขื’ืŸ ื“ื™ ื™ื ืขืจืœืขืš ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ื™ ืžืึธื˜ืึธืจ, ื•ื•ืึธืก ื’ืขืคึฟื™ืจื˜ ืฆื• ื“ื™ ืื•ื™ืกื–ืขืŸ ืคื•ืŸ ืคื™ืœืข "ืคึผืึทื˜ืฉืึทื–" ืื•ืŸ "ืงืจืึทื˜ืฉื™ื–".

ื“ืขืจ ื”ื•ื™ืคึผื˜ positive ืึทืกืคึผืขืงื˜ ืคื•ืŸ ื ื™ืฆืŸ jBPM ืื™ื– ื’ืขื•ื•ืขืŸ ื“ื™ ื•ื•ื™ืกื™ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ื‘ืขื ืขืคื™ืฅ ืื•ืŸ ื”ืึทืจืžืก ืคื•ืŸ ื“ื™ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก. ืžื™ืจ ืื•ื™ืš ื’ืขื–ืขืŸ ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ื ื™ืฆืŸ ืึท ืคึผืจืึธืฆืขืก ืฆื•ื’ืึทื ื’ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ ืงืึธืžืคึผืœืขืงืก ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืคึผืจืึธื˜ืึธืงืึธืœืก ืฆื•ื•ื™ืฉืŸ ืคืึทืจืฉื™ื“ืขื ืข ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื ื™ืฆืŸ ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ื™ื ื˜ืขืจืึทืงืฉืึทื ื– ื“ื•ืจืš ืกื™ื’ื ืึทืœื– ืื•ืŸ ืึทืจื˜ื™ืงืœืขืŸ. ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืึท ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืฉื˜ืึทื˜ ืคื™ืขืกืขืก ืึท ืงืจื™ื˜ื™ืฉ ืจืึธืœืข ืื™ืŸ ื“ืขื.

ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ืื•ื™ื‘ืŸ, ืžื™ืจ ืงืขื ืขืŸ ืคืึทืจืขื ื“ื™ืงืŸ: ื“ืขืจ ืคึผืจืึธืฆืขืก ืฆื•ื’ืึทื ื’ ืื™ืŸ ื“ื™ BPM ืกื˜ื™ืœ ืึทืœืึทื•ื– ืื•ื ื“ื– ืฆื• ืกืึธืœื•ื•ืข ืึท ื‘ืจื™ื™ื˜ ืงื™ื™ื˜ ืคื•ืŸ ื˜ืึทืกืงืก ืฆื• ืึธื˜ืึทืžื™ื™ื˜ ื™ื ืงืจื™ืกื™ื ื’ืœื™ ืงืึธืžืคึผืœื™ืฆื™ืจื˜ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–, ื›ืึทืจืžืึธื•ื ื™ืึทืกืœื™ ืคึผืึทืกื™ืง ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืึทืงื˜ื™ื•ื•ื™ื˜ืขื˜ืŸ ืื™ืŸ ื“ื™ ืคึผืจืึทืกืขืกืึทื– ืื•ืŸ ื”ืึทืœื˜ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ ืึทืจื•ื™ืกื•ื•ื™ื™ึทื–ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืคึผืจืึธืฆืขืก ืื™ืŸ ืึท ืคึผืึทืกื™ืง ื ืึธื•ื˜ื™ื™ืฉืึทืŸ.

ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืคื•ืŸ ืกื™ื ื˜ืฉืจืึธื ืึธื•ืก ืจื•ืคื˜ ื•ื•ื™ ืึท ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืžื•ืกื˜ืขืจ

ืกื™ื ื˜ืฉืจืึธื ืึธื•ืก ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืจืขืคืขืจืก ืฆื• ื“ื™ ืกื™ืžืคึผืœืึทืกื˜ ื‘ืœืึทืงื™ื ื’ ืจื•ืคืŸ. ืื™ื™ืŸ ืกืึทื‘ืกื™ืกื˜ืขื ืึทืงื˜ ื•ื•ื™ ื“ื™ ืกืขืจื•ื•ืขืจ ื–ื™ื™ึทื˜ ืื•ืŸ ื™ืงืกืคึผืึธื•ื–ื™ื– ื“ื™ API ืžื™ื˜ ื“ื™ ืคืืจืœืื ื’ื˜ ืื•ืคึฟืŸ. ืืŸ ืื ื“ืขืจ ืกืึทื‘ืกื™ืกื˜ืขื ืึทืงื˜ ื•ื•ื™ ื“ืขืจ ืงืœื™ืขื ื˜ ื–ื™ื™ึทื˜ ืื•ืŸ ืื™ืŸ ื“ื™ ืจืขื›ื˜ ืฆื™ื™ื˜ ืžืื›ื˜ ืึท ืจื•ืฃ ืื•ืŸ ื•ื•ื™ื™ืฅ ืคึฟืึทืจ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜. ื“ืขืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืกื™ืกื˜ืขื ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ื“ืขืจ ืงืœื™ืขื ื˜ ืื•ืŸ ืกืขืจื•ื•ืขืจ ื–ื™ื™ื˜ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœื™ื’ืŸ ืึธื“ืขืจ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ืคึผืจืึธืฆืขืก ืึธื“ืขืจ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืึธื ืขืก. ืื™ืŸ ื“ื™ ืจื’ืข ืคืึทืœ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฆื•ืœื™ื™ื’ืŸ ืขื˜ืœืขื›ืข ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ RPC ืื•ืŸ ืฆื•ืฉื˜ืขืœืŸ ื“ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก ืื•ืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืจื•ืคืŸ.

BPM ื ื•ืกื— ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ

ื“ืขื ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืžื•ืกื˜ืขืจ ื”ืื˜ ืึท ืคืขืจืœื™ ื’ืจื•ื™ืก ื’ืึทื ื’ ืคื•ืŸ ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื–, ืึธื‘ืขืจ ืขืก ืื™ื– ื–ื™ื™ืขืจ ื•ื•ื™ื™ื“ืœื™ ื’ืขื ื™ืฆื˜ ืื™ืŸ ืคื™ืจ ืจืขื›ื˜ ืฆื• ื–ื™ื™ึทืŸ ืคึผืึทืฉื˜ืขืก. ื“ื™ ื’ื™ื›ืงื™ื™ึทื˜ ืคื•ืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืงืึทืคึผื˜ื™ื•ื•ื™ื™ืฅ ืื•ืŸ ืคืึธืจืกืขืก ืื™ืจ ืฆื• ื ื•ืฆืŸ ืขืก ื•ื•ื™ื“ืขืจ ืื•ืŸ ื•ื•ื™ื“ืขืจ ืื™ืŸ ืคึผื ื™ื ืคื•ืŸ ื“ืจื™ื ื’ืœืขืš ื“ืขื“ืœื™ื™ื ื–, ืจืขืงืึธืจื“ื™ื ื’ ื“ื™ ืœื™ื™ื–ื•ื ื’ ื•ื•ื™ ื˜ืขื›ื ื™ืฉ ื›ื•ื™ื•ื•. ืื‘ืขืจ ืขืก ืื•ื™ืš ื›ืึทืคึผืึทื ื– ืึทื– ื™ื ื™ืงืกืคึผื™ืจื™ืึทื ืกื˜ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื ื•ืฆืŸ ืขืก ืึทื ืงืึทื ืฉืึทืกืœื™, ืคืฉื•ื˜ ื ื™ืฉื˜ ืจื™ืึทืœื™ื™ื–ื™ื ื’ ื“ื™ ื ืขื’ืึทื˜ื™ื•ื• ืงืึทื ืกืึทืงื•ื•ืขื ืกืึทื–.

ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ืžืขืจืกื˜ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ืกืึทื‘ืกื™ืกื˜ืึทื ืงืึทื ืขืงื˜ื™ื•ื•ื™ื˜ื™, ืขืก ื–ืขื ืขืŸ ืื•ื™ืš ื•ื•ื™ื™ื ื™ืงืขืจ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ "ื’ืจืึธื•ื™ื ื’" ืื•ืŸ "ืกื˜ืจืขื˜ืฉื™ื ื’" ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–. ื˜ืึทืงืข, ืื•ื™ื‘ ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืžืื›ื˜ ืขื˜ืœืขื›ืข ืขื ื“ืขืจื•ื ื’ืขืŸ, ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืงืขื ืขืŸ ื ื™ื˜ ื–ื™ื™ืŸ ืึทื•ื•ื•ื™ื“ื™ื“, ืื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, ืื™ืŸ ืงืขืจ, ืคืึทืจืฉืคึผืึทืจืŸ ื–ื™ื›ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืจืขืกื•ืจืกืŸ ืึทืคืขืงื˜ืึทื“ ื“ื•ืจืš ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ. ื“ืึธืก ื”ื™ื™ืกื˜, ื‘ื™ื– ืื™ื™ืŸ ืกื•ื‘ืกื™ืกื˜ืขื ื•ื•ืืจื˜ ืื•ื™ืฃ ืืŸ ืขื ื˜ืคืขืจ ืคื•ืŸ ื“ืขื ืฆื•ื•ื™ื™ื˜ืŸ, ื•ื•ืขื˜ ืขืก ื ื™ืฉื˜ ืงืขื ืขืŸ ืคืืจืขื ื“ื™ืงืŸ ื“ื™ ื˜ืจืื ื–ืืงืฆื™ืข ืื•ืŸ ืืจืืคื ืขืžืขืŸ ื“ื™ ืœืืงืก. ื“ืขื ื‘ืื˜ื™ื™ื˜ื™ืง ื™ื ืงืจื™ืกื™ื– ื“ื™ ืจื™ื–ื™ืงื™ืจืŸ ืคื•ืŸ ืึท ืคืึทืจืฉื™ื™ื“ื ืงื™ื™ึทื˜ ืคื•ืŸ ื™ืคืขืงืฅ:

  • ื“ื™ ืจื™ืกืคึผืึทื ืกื™ื•ื•ื ืึทืก ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื ืื™ื– ืคืึทืจืคืึทืœืŸ, ื ื™ืฆืขืจืก ื•ื•ืึทืจื˜ืŸ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜ ืคึฟืึทืจ ืขื ื˜ืคึฟืขืจืก ืฆื• ืคึฟืจืื’ืŸ;
  • ื“ืขืจ ืกืขืจื•ื•ืขืจ ื‘ื›ืœืœ ืกื˜ืึทืคึผืก ืจื™ืกืคึผืึทื ื“ื™ื ื’ ืฆื• ื‘ืึทื ื™ืฆืขืจ ืจื™ืงื•ื•ืขืก ืจืขื›ื˜ ืฆื• ืึท ืึธื•ื•ื•ืขืจื•ื•ืขืœืžื“ ืคืึธื“ืขื ื‘ืขืงืŸ: ื“ื™ ืžืขืจื”ื™ื™ึทื˜ ืคื•ืŸ ืคึฟืขื“ืขื ื–ืขื ืขืŸ ืคืืจืฉืคืืจื˜ ืื•ื™ืฃ ืึท ืžื™ื˜ืœ ืคืึทืจื ื•ืžืขืŸ ื“ื•ืจืš ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ;
  • ื“ืขืึทื“ืœืึธืงืงืก ืึธื ื”ื™ื™ื‘ืŸ ืฆื• ื“ืขืจืฉื™ื™ึทื ืขืŸ: ื“ื™ ืœื™ืงืขืœื™ื”ืึธืึธื“ ืคื•ืŸ ื–ื™ื™ืขืจ ืคึผืึทืกื™ืจื•ื ื’ ืฉื˜ืืจืง ื“ืขืคึผืขื ื“ืก ืื•ื™ืฃ ื“ืขืจ ื’ืขื“ื•ื™ืขืจ ืคื•ืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, ื“ื™ ืกื•ืžืข ืคื•ืŸ โ€‹โ€‹ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื•ืŸ ืœืึทืงืก ื™ื ื•ื•ืึทืœื•ื•ื“ ืื™ืŸ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ;
  • ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื˜ื™ื™ืžืึทื•ื˜ ืขืจืจืึธืจืก ื“ืขืจืฉื™ื™ึทื ืขืŸ;
  • ื“ืขืจ ืกืขืจื•ื•ืขืจ "ืคื™ื™ืœื–" ืžื™ื˜ OutOfMemory ืื•ื™ื‘ ื“ื™ ืึทืจื‘ืขื˜ ืจื™ืงื•ื•ื™ื™ืขืจื– ืคึผืจืึทืกืขืกื™ื ื’ ืื•ืŸ ื˜ืฉืึทื ื’ื™ื ื’ ื’ืจื•ื™ืก ืึทืžืึทื•ื ืฅ ืคื•ืŸ ื“ืึทื˜ืŸ, ืื•ืŸ ื“ื™ ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืกื™ื ื˜ืฉืจืึธื ืึธื•ืก ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทื ื– ืžืื›ื˜ ืขืก ื–ื™ื™ืขืจ ืฉื•ื•ืขืจ ืฆื• ืฉืคึผืึทืœื˜ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืื™ืŸ "ืœื™ื˜ืขืจ" ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–.

ืคึฟื•ืŸ ืึท ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจืึทืœ ืคื•ื ื˜ ืคื•ืŸ ืžื™ื™ื ื•ื ื’, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ื‘ืœืึทืงื™ื ื’ ืงืึทืœืœืก ื‘ืขืฉืึทืก ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืคื™ืจื˜ ืฆื• ืึท ืึธื ื•ื•ืขืจ ืคื•ืŸ ืงืึธื ื˜ืจืึธืœ ืื™ื‘ืขืจ ื“ื™ ืงื•ื•ืึทืœื™ื˜ืขื˜ ืคื•ืŸ ื™ื—ื™ื“ ืกืึทื‘ืกื™ืกื˜ืึทืžื–: ืขืก ืื™ื– ืื•ืžืžืขื’ืœืขืš ืฆื• ืขื ืฉื•ืจ ื“ื™ ืฆื™ืœ ืงื•ื•ืึทืœื™ื˜ืขื˜ ื™ื ื“ื™ืงืึทื˜ืึธืจืก ืคื•ืŸ ืื™ื™ืŸ ืกืึทื‘ืกื™ืกื˜ืึทื ืื™ืŸ ืืคื’ืขื–ื•ื ื“ืขืจื˜ืงื™ื™ื˜ ืคื•ืŸ ื“ื™ ืงื•ื•ืึทืœื™ื˜ืขื˜ ื™ื ื“ืึทืงื™ื™ื˜ืขืจื– ืคื•ืŸ ืืŸ ืื ื“ืขืจ ืกืึทื‘ืกื™ืกื˜ืึทื. ืื•ื™ื‘ ืกืึทื‘ืกื™ืกื˜ืึทืžื– ื–ืขื ืขืŸ ื“ืขื•ื•ืขืœืึธืคึผืขื“ ื“ื•ืจืš ืคืึทืจืฉื™ื“ืขื ืข ื˜ื™ืžื–, ื“ืึธืก ืื™ื– ืึท ื’ืจื•ื™ืก ืคึผืจืึธื‘ืœืขื.

ื“ื™ ื˜ื™ื ื’ื– ื•ื•ืขืจืŸ ืืคื™ืœื• ืžืขืจ ื˜ืฉื™ืงืึทื•ื•ืข ืื•ื™ื‘ ื“ื™ ื™ื ืึทื’ืจื™ื™ื˜ื™ื“ ืกืึทื‘ืกื™ืกื˜ืึทืžื– ื–ืขื ืขืŸ ืื™ืŸ ืคืึทืจืฉื™ื“ืขื ืข ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื•ืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืžืึทื›ืŸ ืกื™ื ื˜ืฉืจืึธื ืึธื•ืก ืขื ื“ืขืจื•ื ื’ืขืŸ ืื•ื™ืฃ ื‘ื™ื™ื“ืข ื–ื™ื™ื˜ืŸ. ื•ื•ื™ ืฆื• ืขื ืฉื•ืจ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธื ืึทืœื™ื˜ื™ ืคื•ืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ?

ืื•ื™ื‘ ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืฆื• ืฆื•ืฉื˜ืขืœืŸ ืคืึทืจืœืึธื–ืœืขืš ื•ื™ืกื ืขื ื”ืึทื ื“ืœื™ื ื’ ืื•ืŸ ืคืึทืจื’ื™ื˜ื™ืงื•ื ื’, ืื•ืŸ ื“ืึธืก ื’ืึธืจ ื™ืœื™ืžืึทื ื™ื™ืฅ ื“ื™ ื”ื•ื™ืคึผื˜ ื ื•ืฅ ืคื•ืŸ ืกื™ื ื˜ืฉืจืึธื ืึธื•ืก ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทื ื– - ืคึผืึทืฉื˜ืขืก.

ืคื•ื ืื ื“ืขืจื’ืขื˜ื™ื™ืœื˜ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืื•ื™ืš ืงื•ืžืขืŸ ืฆื• ืžื™ื™ื ื•ื ื’, ืึธื‘ืขืจ ืžื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื ื•ืฆืŸ ื–ื™ื™ ืื™ืŸ ืื•ื ื“ื–ืขืจ ืกืึทืœื•ืฉืึทื ื–: ืขืก ืื™ื– ืฉื•ื•ืขืจ ืฆื• ืขื ืฉื•ืจ ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™.

"ืกืึทื’ืึท" ื•ื•ื™ ืึท ืœื™ื™ื–ื•ื ื’ ืฆื• ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืคึผืจืึธื‘ืœืขื

ืžื™ื˜ ื“ื™ ื’ืจืึธื•ื™ื ื’ ืคึผืึธืคึผื•ืœืึทืจื™ื˜ืขื˜ ืคื•ืŸ ืžื™ืงืจืึธ ื‘ืึทื“ื™ื ื•ื ื’ืก, ื“ื™ ืคืึธื“ืขืจื•ื ื’ ืคึฟืึทืจ ืกืึทื’ืึท ืžื•ืกื˜ืขืจ.

ื“ืขืจ ืžื•ืกื˜ืขืจ ืกืึทืœื•ื•ื– ื‘ื™ืฉืœื™ื™ืžืขืก ื“ื™ ืื•ื™ื‘ืŸ-ื“ืขืจืžืื ื˜ ืคืจืื‘ืœืขืžืขืŸ ืคื•ืŸ ืœืึทื ื’ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื–, ืื•ืŸ ืื•ื™ืš ื™ืงืกืคึผืึทื ื“ื– ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ืึธื ืคื™ืจื•ื ื’ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื ืคึฟื•ืŸ ื“ื™ ื–ื™ื™ึทื˜ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง: ืคืึทืจื’ื™ื˜ื™ืงื•ื ื’ ื ืึธืš ืึท ื ื™ื˜ ืึทื ื“ืขืจืฉ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืงืขืŸ ื ื™ืฉื˜ ืฆื•ืจื™ืงืงืจื™ื’ืŸ ื“ื™ ืกื™ืกื˜ืขื ืฆื• ื–ื™ื™ืŸ ืึธืจื™ื’ื™ื ืขืœ ืฉื˜ืึทื˜, ืึธื‘ืขืจ ืฆื•ืฉื˜ืขืœืŸ. ืึทืŸ ืื ื“ืขืจ ื‘ืจื™ืจื” ื“ืึทื˜ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืžืึทืจืฉืจื•ื˜. ื“ืึธืก ืื•ื™ืš ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื•ื™ืกืžื™ื™ื“ืŸ ืจื™ืคึผื™ื˜ื™ื ื’ ื”ืฆืœื—ื” ื’ืขืขื ื“ื™ืงื˜ ื“ืึทื˜ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืกื˜ืขืคึผืก ื•ื•ืขืŸ ืื™ืจ ืคึผืจื•ึผื•ื•ื˜ ืฆื• ื‘ืจืขื ื’ืขืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืฆื• ืึท "ื’ื•ื˜ืŸ" ืกืึธืฃ.

ื™ื ื˜ืขืจืขืกื˜ื™ื ื’ืœื™, ืื™ืŸ ืžืึทื ืึทืœื™ื˜ื™ืง ืกื™ืกื˜ืขืžืขืŸ ื“ืขื ืžื•ืกื˜ืขืจ ืื™ื– ืื•ื™ืš ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ื•ื•ืขืŸ ืขืก ืงื•ืžื˜ ืฆื• ื“ื™ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ืคื•ืŸ ืœื•ืกืœื™ ืงืึทืคึผืึทืœื“ ืกืึทื‘ืกื™ืกื˜ืึทืžื– ืื•ืŸ ื ืขื’ืึทื˜ื™ื•ื• ื™ืคืขืงืฅ ื’ืขืคึฟื™ืจื˜ ื“ื•ืจืš ืœืึทื ื’-ืœื•ื™ืคืŸ ื˜ืจืึทื ื–ืึทืงืฉืึทื ื– ืื•ืŸ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืžื™ื˜ืœ ืœืึทืงืก ื–ืขื ืขืŸ ื‘ืืžืขืจืงื˜.

ืื™ืŸ ื‘ืึทืฆื™ื•ื ื’ ืฆื• ืื•ื ื“ื–ืขืจ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ืื™ืŸ ื“ื™ BPM ืกื˜ื™ืœ, ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืฆื• ื–ื™ื™ืŸ ื–ื™ื™ืขืจ ื’ืจื™ื ื’ ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ "ืกืึทื’ืึทืก": ื™ื—ื™ื“ ืกื˜ืขืคึผืก ืคื•ืŸ ื“ื™ "ืกืึทื’ืึท" ืงืขื ืขืŸ ื–ื™ื™ืŸ ืกืคึผืขืกื™ืคื™ืขื“ ื•ื•ื™ ืึทืงื˜ื™ื•ื•ื™ื˜ืขื˜ืŸ ืื™ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก, ืื•ืŸ ื“ื™ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืื•ื™ืš ื‘ืึทืฉื˜ื™ืžื˜ ื“ื™ ื™ื ืขืจืœืขืš ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ "ืกืึทื’ืึท". ืึทื– ืื™ื–, ืžื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคืŸ ืงื™ื™ืŸ ื ืึธืš ืงืึธื•ืึธืจื“ืึทื ื™ื™ืฉืึทืŸ ืžืขืงืึทื ื™ื–ืึทื. ื›ืœ ืื™ืจ ื“ืึทืจืคึฟืŸ ืื™ื– ืึท ืึธื ื–ืึธื’ ืžืขืงืœืขืจ ื•ื•ืึธืก ืฉื˜ื™ืฆื˜ "ืœืคึผื—ื•ืช ืึทืžืึธืœ" ื’ืขืจืึทื ื˜ื™ื– ื•ื•ื™ ืึท ืึทืจื™ื‘ืขืจืคื™ืจืŸ.

ืึธื‘ืขืจ ื“ืขื ืœื™ื™ื–ื•ื ื’ ืื•ื™ืš ื”ืื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข "ืคึผืจื™ื™ึทื–":

  • ื’ืขืฉืขืคื˜ ืœืื’ื™ืง ื•ื•ืขืจื˜ ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜: ืคืึทืจื’ื™ื˜ื™ืงื•ื ื’ ื“ืึทืจืฃ ื–ื™ื™ืŸ ื’ืขืืจื‘ืขื˜;
  • ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื ื™ื™ื˜ื™ืง ืฆื• ืคืึทืจืœืึธื–ืŸ ืคื•ืœ ืงืึธื ืกื™ืกื˜ืขื ืกื™, ื•ื•ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ืกืคึผืขืฆื™ืขืœ ืฉืคึผื™ืจืขื•ื•ื“ื™ืง ืคึฟืึทืจ ืžืึทื ืึทืœื™ื˜ื™ืง ืกื™ืกื˜ืขืžืขืŸ;
  • ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ื•ื•ืขืจื˜ ืึท ื‘ื™ืกืœ ืžืขืจ ืงืึธืžืคึผืœื™ืฆื™ืจื˜, ืื•ืŸ ืึท ื ืึธืš ื ื•ื™ื˜ ืคึฟืึทืจ ืึท ืึธื ื–ืึธื’ ืžืขืงืœืขืจ ืื•ื™ืก;
  • ื ืึธืš ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืื•ืŸ ืึทื“ืžื™ื ื™ืกื˜ืจืึทืฆื™ืข ืžื›ืฉื™ืจื™ื ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืืจืœืื ื’ื˜ (ื›ืึธื˜ืฉ ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ื“ืึธืก ืื™ื– ื’ื•ื˜: ื“ื™ ืงื•ื•ืึทืœื™ื˜ืขื˜ ืคื•ืŸ ืกื™ืกื˜ืขื ื“ื™ื ืกื˜ ื•ื•ืขื˜ ืคืึทืจื’ืจืขืกืขืจืŸ).

ืคึฟืึทืจ ืžืึทื ืึทืœื™ื˜ื™ืง ืกื™ืกื˜ืขืžืขืŸ, ื“ื™ ื˜ืขืจืขืฅ ืคึฟืึทืจ ื ื™ืฆืŸ "ืกืึทื’" ืื™ื– ื ื™ืฉื˜ ืึทื–ื•ื™ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’. ืคึฟืึทืจ ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืื•ืŸ ืื ื“ืขืจืข ืกืึธืึท, ื•ื•ื• ืจื•ื‘ึฟ ืžืกืชึผืžื ืขืก ืื™ื– ืฉื•ื™ืŸ ืึท ืžืขืงืœืขืจ, ืื•ืŸ ืคื•ืœ ืงืึธื ืกื™ืกื˜ืขื ืกื™ ืื™ื– ืžืงืจื™ื‘ ื’ืขื•ื•ืขืŸ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜, ื“ื™ ื‘ืขื ืขืคื™ืฅ ืคื•ืŸ ื ื™ืฆืŸ ื“ืขื ืžื•ืกื˜ืขืจ ืงืขื ืขืŸ ื‘ืื˜ื™ื™ื˜ื™ืง ืึทื•ื˜ื•ื•ื™ื™ ื“ื™ ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื–, ืกืคึผืขืฆื™ืขืœ ืื•ื™ื‘ ืขืก ืื™ื– ืึท ื‘ืึทืงื•ื•ืขื ืึทืคึผื™ ืื™ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง. ืžื“ืจื’ื”.

ืขื ืงืึทืคึผืกืึทืœื™ื™ื˜ื™ื ื’ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื™ืŸ ืžื™ืงืจืึธ ื‘ืึทื“ื™ื ื•ื ื’ืก

ื•ื•ืขืŸ ืžื™ืจ ืกื˜ืึทืจื˜ืขื“ ืขืงืกืคึผืขืจื™ืžืขื ื˜ื™ื ื’ ืžื™ื˜ ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก, ืึท ื’ืœื™ื™ึทืš ืงืฉื™ื ืื™ื– ืื•ื™ืคื’ืขืฉื˜ืื ืขืŸ: ื•ื•ื• ืฆื• ืฉื˜ืขืœืŸ ื“ื™ ืคืขืœื“ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื™ืŸ ื‘ืึทืฆื™ื•ื ื’ ืฆื• ื“ื™ ืกืขืจื•ื•ื™ืก ื•ื•ืึธืก ื™ื ืฉื•ืจื– ื“ื™ ืคึผืขืจืกื™ืกื˜ืึทื ืก ืคื•ืŸ ืคืขืœื“ ื“ืึทื˜ืŸ?

ื•ื•ืขืŸ ืื™ืจ ื–ื•ื›ื˜ ืื™ืŸ ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืคื•ืŸ ืคืึทืจืฉื™ื“ืŸ BPMSs, ืขืก ืงืขืŸ ื•ื™ืกืงื•ืžืขืŸ ื’ืœื™ื™ึทืš ืฆื• ื‘ืึทื–ื•ื ื“ืขืจ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืคื•ืŸ ืคึผืขืจืกื™ืกื˜ืึทื ืก: ืฉืึทืคึฟืŸ ืึท ืคึผืœืึทื˜ืคืึธืจื ืื•ืŸ ืคืขืœื“-ืคืจื™ื™ึท ืžื™ืงืจืึธ ืกืขืจื•ื•ื™ืกืขืก ื•ื•ืึธืก ืคืึธืจืขื ืึท ืกื•ื•ื™ื•ื•ืข ืื•ืŸ ืงืึทื ื˜ื™ื™ื ืขืจ ืคึฟืึทืจ ืขืงืกืึทืงื™ื•ื˜ื™ื ื’ ืคืขืœื“ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง, ืื•ืŸ ืคึผืœืึทืŸ ื“ื™ ืคึผืขืจืกื™ืกื˜ืึทื ืก ืคื•ืŸ ืคืขืœื“ ื“ืึทื˜ืŸ ื•ื•ื™ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืคึผืœืึทืกื˜ ืคื•ืŸ ื–ื™ื™ืขืจ ืคึผืฉื•ื˜ ืื•ืŸ ืœื™ื™ื˜ื•ื•ื™ื™ื˜ ืžื™ืงืจืึธ ื‘ืึทื“ื™ื ื•ื ื’ืก. ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ืื™ืŸ ื“ืขื ืคืึทืœ ื“ื•ืจื›ืคื™ืจืŸ ืึธืจืงืขืกื˜ืจืึทื˜ื™ืึธืŸ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ื™ืกืขืก ืคื•ืŸ ื“ื™ ืคึผืขืจืกื™ืกื˜ืึทื ืก ืฉื™ื›ื˜ืข.

BPM ื ื•ืกื— ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ

ื“ืขืจ ืฆื•ื’ืึทื ื’ ื”ืื˜ ืึท ื–ื™ื™ืขืจ ื’ืจื•ื™ืก ืžื™ื™ึทืœืข: ืื™ืจ ืงืขื ืขืŸ ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืคื•ืŸ ื“ืขืจ ืคึผืœืึทื˜ืคืึธืจืžืข ื•ื•ื™ ืคื™ืœ ื•ื•ื™ ืื™ืจ ื•ื•ื™ืœื˜, ืื•ืŸ ื‘ืœื•ื™ื– ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืคึผืœืึทื˜ืคืึธืจืžืก ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ื•ื•ืขื˜ ื•ื•ืขืจืŸ "ืคืขื˜". ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ืคื•ืŸ ืงื™ื™ืŸ ืคืขืœื“ ืงืขื ืขืŸ ื’ืœื™ื™ืš ื ื•ืฆืŸ ื“ื™ ื ื™ื™ึทืข ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืคื•ืŸ ื“ืขืจ ืคึผืœืึทื˜ืคืึธืจืžืข ื•ื•ื™ ื‘ืึทืœื“ ื•ื•ื™ ืขืก ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜.

ื ืžืขืจ ื“ื™ื˜ื™ื™ืœื“ ืœืขืจื ืขืŸ ืื ื˜ืคืœืขืงื˜ ื‘ืึทื˜ื™ื™ึทื˜ื™ืง ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืคื•ืŸ ื“ืขื ืฆื•ื’ืึทื ื’:

  • ืึท ืคึผืœืึทื˜ืคืึธืจืžืข ื“ื™ื ืกื˜ ื•ื•ืึธืก ืขืงืกืึทืงื™ื•ืฅ ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืคื•ืŸ ืคื™ืœืข ื“ืึธื•ืžื™ื™ื ื– ืื™ืŸ ืึทืžืึธืœ ืงืึทืจื™ื– ื’ืจื•ื™ืก ืจื™ืกืงืก ื•ื•ื™ ืึท ืื™ื™ืŸ ืคื•ื ื˜ ืคื•ืŸ ื“ื•ืจื›ืคืึทืœ. ืึธืคื˜ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืคืึทืจื’ืจืขืกืขืจืŸ ื“ื™ ืจื™ื–ื™ืงื™ืจืŸ ืคื•ืŸ ืขืจืจืึธืจืก ื•ื•ืึธืก ืคื™ืจืŸ ืฆื• ืกื™ืกื˜ืขื-ื‘ืจื™ื™ื˜ ืคื™ื™ืœื™ืขืจื–;
  • ืคืึธืจืฉื˜ืขืœื•ื ื’ ื™ืฉื•ื–: ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืึทืจื‘ืขื˜ ืžื™ื˜ ื–ื™ื™ึทืŸ ื“ืึทื˜ืŸ ื“ื•ืจืš ืึท ืฉืžืึธืœ ืื•ืŸ ืคึผืึทืžืขืœืขืš ืฆื•ื‘ื™ื ื“:
    • ื“ื™ ื“ืึทื˜ืŸ ื•ื•ืขื˜ ื•ื•ื™ื“ืขืจ ื–ื™ื™ืŸ ืžืึทืจืฉืึทืœื“ ืื•ืŸ ืคึผืึทืžืคึผื˜ ื“ื•ืจืš ื“ื™ ื ืขืฅ ืึธื ืœื™ื™ื’ืŸ;
    • ืึท ืคืขืœื“ ื“ื™ื ืกื˜ ื•ื•ืขื˜ ืึธืคื˜ ืฆื•ืฉื˜ืขืœืŸ ืžืขืจ ื“ืึทื˜ืŸ ื•ื•ื™ ืื™ื– ืคืืจืœืื ื’ื˜ ืคึฟืึทืจ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืฆื• ืคึผืจืึธืฆืขืก ืจืขื›ื˜ ืฆื• ื ื™ื˜ ื’ืขื ื•ื’ื™ืง ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคึฟืึทืจ ืคึผืึทืจืึทืžืขื˜ืขืจื™ื™ื–ื™ื ื’ ืจื™ืงื•ื•ืขืก ืื•ื™ืฃ ื“ื™ ืžื“ืจื’ื” ืคื•ืŸ ื“ื™ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืึทืคึผื™ ืคื•ืŸ ื“ื™ ื“ื™ื ืกื˜;
    • ืขื˜ืœืขื›ืข ืคืจื™ื™ึท ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืงืขื ืขืŸ ืจื™ืคึผื™ื˜ื™ื“ืœื™ ื‘ืขื˜ืŸ ื“ื™ ื–ืขืœื‘ืข ื“ืึทื˜ืŸ ืคึฟืึทืจ ืคึผืจืึทืกืขืกื™ื ื’ (ื“ืขื ืคึผืจืึธื‘ืœืขื ืงืขื ืขืŸ ื–ื™ื™ืŸ ืžื™ื˜ืึทื’ื™ื™ื˜ื™ื“ ื“ื•ืจืš ืึทื“ื™ื ื’ ืกืขืกื™ืข ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื•ื•ืึธืก ืงืึทืฉ ื“ืึทื˜ืŸ, ืึธื‘ืขืจ ื“ืึธืก ืงืึทืžืคึผืœื™ืงื™ื™ืฅ ื“ื™ ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ ืื•ืŸ ืงืจื™ื™ื™ืฅ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ื“ืึทื˜ืŸ ืฉื™ื™ื›ื•ืช ืื•ืŸ ืงืึทืฉ ื™ื ื•ื•ืึทืœืึทื“ื™ื™ืฉืึทืŸ);
  • ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืคึผืจืึธื‘ืœืขืžืก:
    • ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ืžื™ื˜ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืฉื˜ืึทื˜, ื•ื•ืึธืก ืื™ื– ืกื˜ืึธืจื“ ื“ื•ืจืš ืึท ืคึผืœืึทื˜ืคืึธืจืžืข ื“ื™ื ืกื˜, ื–ืขื ืขืŸ ืกืชื™ืจื” ืžื™ื˜ ืคืขืœื“ ื“ืึทื˜ืŸ, ืื•ืŸ ืขืก ื–ืขื ืขืŸ ืงื™ื™ืŸ ื’ืจื™ื ื’ ื•ื•ืขื’ืŸ ืฆื• ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื;
    • ืคึผืœื™ื™ืกื™ื ื’ ืคืขืœื“ ื“ืึทื˜ืŸ ื‘ืœืึทืงื™ื ื’ ืึทืจื•ื™ืก ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ: ืื•ื™ื‘ ื“ื™ ืคืขืœื“ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ื“ืึทืจืฃ ืฆื• ืžืึทื›ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ื ืึธืš ืขืจืฉื˜ืขืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืจื™ื›ื˜ื™ืง ืคื•ืŸ ื“ื™ ืงืจืึทื ื˜ ื“ืึทื˜ืŸ, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื•ื™ืกืฉืœื™ืกืŸ ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ืึท ืงืึทืžืคึผืขื˜ื™ื˜ื™ื•ื• ืขื ื“ืขืจื•ื ื’ ืื™ืŸ ื“ื™ ืคึผืจืึทืกืขืกื˜ ื“ืึทื˜ืŸ. ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื“ืึทื˜ืŸ ื‘ืœืึทืงื™ื ื’ ืงืขื ืขืŸ ื”ืขืœืคืŸ ืกืึธืœื•ื•ืข ื“ื™ ืคึผืจืึธื‘ืœืขื, ืึธื‘ืขืจ ืึทื–ืึท ืึท ืœื™ื™ื–ื•ื ื’ ืงืึทืจื™ื– ื ืึธืš ืจื™ืกืงืก ืื•ืŸ ืจืึทื“ื•ืกืึทื– ื“ื™ ืงื•ื™ืœืขืœื“ื™ืง ืจื™ืœื™ื™ืึทื‘ื™ืœืึทื˜ื™ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื;
  • ื ืึธืš ืฉื•ื•ืขืจื™ืงื™ื™ื˜ืŸ ื•ื•ืขืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’: ืื™ืŸ ืขื˜ืœืขื›ืข ืงืึทืกืขืก, ื“ื™ ืคึผืขืจืกื™ืกื˜ืึทื ืก ื“ื™ื ืกื˜ ืื•ืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜ ืกื™ื ื’ืงืจืึทื ืึทืกืœื™ ืึธื“ืขืจ ืื™ืŸ ืึท ืฉื˜ืจืขื ื’ ืกื™ืงื•ื•ืึทื ืก.

ืœืขืกืึธืฃ, ืžื™ืจ ื”ืึธื‘ืŸ ืฆื• ื’ื™ื™ืŸ ืฆื•ืจื™ืง ืฆื• ื‘ืึทืกื™ืงืก: ืขื ืงืึทืคึผืกืึทืœื™ื™ื˜ ืคืขืœื“ ื“ืึทื˜ืŸ ืื•ืŸ ืคืขืœื“ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื™ืŸ ืื™ื™ืŸ ืžื™ืงืจืึธ ืกืขืจื•ื•ื™ืก. ื“ืขื ืฆื•ื’ืึทื ื’ ืกื™ืžืคึผืœืึทืคื™ื™ื– ื“ื™ ืžืขืจืงื•ื ื’ ืคื•ืŸ ืึท ืžื™ืงืจืึธืกืขืจื•ื•ื™ืก ื•ื•ื™ ืึท ื™ื ื˜ืึทื’ืจืึทืœ ืงืึธืžืคึผืึธื ืขื ื˜ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื ืื•ืŸ ื˜ื•ื˜ ื ื™ืฉื˜ ืคื™ืจืŸ ืฆื• ื“ื™ ืื•ื™ื‘ืŸ ืคึผืจืึธื‘ืœืขืžืก. ื“ืึธืก ืื™ื– ืื•ื™ืš ื ื™ืฉื˜ ื’ืขื’ืขื‘ืŸ ืคึฟืึทืจ ืคืจื™ื™:

  • ืึทืคึผื™ ืกื˜ืึทื ื“ืขืจื“ื™ื–ื™ื™ืฉืึทืŸ ืื™ื– ืคืืจืœืื ื’ื˜ ืคึฟืึทืจ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžื™ื˜ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง (ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ, ืฆื• ืฆื•ืฉื˜ืขืœืŸ ื‘ืึทื ื™ืฆืขืจ ืึทืงื˜ื™ื•ื•ื™ื˜ืขื˜ืŸ ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–) ืื•ืŸ ืึทืคึผื™ ืคึผืœืึทื˜ืคืึธืจืžืข ื‘ืึทื“ื™ื ื•ื ื’ืก; ืจื™ืงื•ื•ื™ื™ืขืจื– ืžืขืจ ืึธืคึผื’ืขื”ื™ื˜ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜ ืฆื• ืึทืคึผื™ ืขื ื“ืขืจื•ื ื’ืขืŸ, ืคืึธืจื•ื™ืก ืื•ืŸ ืฆื•ืจื™ืง ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™;
  • ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ืœื™ื™ื’ืŸ ื ืึธืš ืจื•ื ื˜ื™ืžืข ืœื™ื™ื‘ืจืขืจื™ื– ืฆื• ืขื ืฉื•ืจ ื“ื™ ืคืึทื ื’ืงืฉืึทื ื™ื ื’ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื™ืขื“ืขืจ ืึทื–ืึท ืžื™ืงืจืึธืกืขืจื•ื•ื™ืก, ืื•ืŸ ื“ืึธืก ื’ื™ื˜ ื”ืขื›ืขืจื•ื ื’ ืฆื• ื ื™ื™ึทืข ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืคึฟืึทืจ ืึทื–ืึท ืœื™ื™ื‘ืจืขืจื™ื–: ืœื™ื™ื˜ื ืึทืก ืื•ืŸ ืึท ืžื™ื ื™ืžื•ื ืคื•ืŸ ื˜ืจืึทื ื–ื™ื˜ื™ื•ื• ื“ื™ืคึผืขื ื“ืึทื ืกื™ื–;
  • ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื“ืึทืจืคึฟืŸ ืฆื• ืžืึธื ื™ื˜ืึธืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื•ื•ืขืจืกื™ืขืก: ืื•ื™ื‘ ืึท ืžื™ืงืจืึธืกืขืจื•ื•ื™ืก ืื™ื– ื ื™ืฉื˜ ืคื™ื™ื ืึทืœื™ื™ื–ื“ ืคึฟืึทืจ ืึท ืœืึทื ื’ ืฆื™ื™ึทื˜, ืขืก ื•ื•ืขื˜ ืจื•ื‘ึฟ ืžืกืชึผืžื ืึทื ื˜ื”ืึทืœื˜ืŸ ืึทืŸ ืึทื•ื˜ื“ื™ื™ื˜ื™ื“ ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืœื™ื™ื‘ืจืขืจื™ื–. ื“ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ืึทืŸ ืื•ืžื’ืขืจื™ื›ื˜ ืฉื˜ืขืจื•ื ื’ ืฆื• ืœื™ื™ื’ืŸ ืึท ื ื™ื™ึทืข ืฉื˜ืจื™ืš ืื•ืŸ ืงืขืŸ ื“ืึทืจืคืŸ ืžื™ื’ืจื™ื™ื˜ื™ื ื’ ื“ื™ ืึทืœื˜ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืคื•ืŸ ืึทื–ืึท ืึท ื“ื™ื ืกื˜ ืฆื• ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ืœื™ื™ื‘ืจืขืจื™ื– ืื•ื™ื‘ ืขืก ื–ืขื ืขืŸ ื™ื ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื•ื•ื™ืฉืŸ ื•ื•ืขืจืกื™ืขืก.

BPM ื ื•ืกื— ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ

ื ืฉื™ื›ื˜ืข ืคื•ืŸ โ€‹โ€‹ืคึผืœืึทื˜ืคืึธืจืžืข ื‘ืึทื“ื™ื ื•ื ื’ืก ืื™ื– ืื•ื™ืš ืคืึธืจืฉื˜ืขืœืŸ ืื™ืŸ ืึทื–ืึท ืึท ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ืึธื‘ืขืจ ื“ืขื ืฉื™ื›ื˜ืข ืื™ื– ื ื™ื˜ ืžืขืจ ืึท ืงืึทื ื˜ื™ื™ื ืขืจ ืคึฟืึทืจ ืขืงืกืึทืงื™ื•ื˜ื™ื ื’ ืคืขืœื“ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง, ืึธื‘ืขืจ ื‘ืœื•ื™ื– ื–ื™ื™ึทืŸ ืกื•ื•ื™ื•ื•ืข, ืคึผืจืึทื•ื•ื™ื™ื“ื™ื ื’ ืึทื’ื–ื™ืœื™ืขืจื™ "ืคึผืœืึทื˜ืคืึธืจืžืข" ืคืึทื ื’ืงืฉืึทื ื–. ืึทื–ืึท ืึท ืฉื™ื›ื˜ืข ืื™ื– ื“ืืจืฃ ื ื™ื˜ ื‘ืœื•ื™ื– ืฆื• ื˜ื™ื™ึทื ืขืŸ ื“ื™ ืœื™ื™ื˜ื•ื•ื™ื™ื˜ ื ืึทื˜ื•ืจ ืคื•ืŸ ืคืขืœื“ ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก, ืึธื‘ืขืจ ืื•ื™ืš ืฆื• ืกืขื ื˜ืจืึทืœื™ื™ื– ืคืึทืจื•ื•ืึทืœื˜ื•ื ื’.

ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื‘ืึทื ื™ืฆืขืจ ืึทืงื˜ื™ื•ื•ื™ื˜ืขื˜ืŸ ืื™ืŸ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ ื˜ืึทืกืงืก. ืึธื‘ืขืจ, ื•ื•ืขืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื˜ืึทืกืงืก, ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืžื•ื–ืŸ ื–ืขืŸ ื˜ืึทืกืงืก ืคื•ืŸ ืึทืœืข ื“ืึธื•ืžื™ื™ื ื– ืื™ืŸ ื“ืขืจ ืึทืœื’ืขืžื™ื™ืŸ ืจืฉื™ืžื”, ื•ื•ืึธืก ืžื™ื˜ืœ ืึทื– ืขืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืึท ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืคึผืœืึทื˜ืคืึธืจืžืข ืึทืจื‘ืขื˜ ืจืขื’ื™ืกื˜ืจืึทืฆื™ืข ื“ื™ื ืกื˜, ืงืœื™ืจื“ ืคื•ืŸ ืคืขืœื“ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง. ืึธื ื”ืึทืœื˜ืŸ ืขื ืงืึทืคึผืกื•ืœืึทื˜ื™ืึธืŸ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื™ืŸ ืึทื–ืึท ืึท ืงืึธื ื˜ืขืงืกื˜ ืื™ื– ื’ืึทื ืฅ ืคึผืจืึธื‘ืœืขืžืึทื˜ื™ืง, ืื•ืŸ ื“ืึธืก ืื™ื– ืืŸ ืื ื“ืขืจ ืงืึธืžืคึผืจืึธืžื™ืก ืคื•ืŸ ื“ืขื ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ.

ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ื“ื•ืจืš ื“ื™ ืื•ื™ื’ืŸ ืคื•ืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ

ื•ื•ื™ ื“ืขืจืžืื ื˜ ืื•ื™ื‘ืŸ, ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืึทื‘ืกื˜ืจืึทืงื˜ื™ื“ ืคื•ืŸ ื“ื™ ื˜ืขื›ื ื™ืฉ ืื•ืŸ ื™ื ื–ืฉืขื ื™ืขืจื™ืข ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ื“ื™ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืคื•ืŸ ืขื˜ืœืขื›ืข ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืึทื–ื•ื™ ืึทื– ืื™ืจ ืงืขื ืขืŸ ืจืขื›ืขื ืขืŸ ืื•ื™ืฃ ื’ื•ื˜ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึผืจืึธื•ื“ืึทืงื˜ื™ื•ื•ื™ื˜ื™.

ื–ืืœ ืก ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืกืึธืœื•ื•ืข ืึท ื’ืึทื ืฅ ืฉื•ื•ืขืจ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืคึผืจืึธื‘ืœืขื, ืกืคึผืขืฆื™ืขืœ ื™ื ื•ื•ืขื ื˜ืึทื“ ืคึฟืึทืจ ื“ืขื ืึทืจื˜ื™ืงืœ. ื“ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึท "ืฉืคึผื™ืœ" ืึทืจื‘ืขื˜ ืžื™ื˜ ื“ืจื™ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ื•ื•ื• ื™ืขื“ืขืจ ืคื•ืŸ ื–ื™ื™ ื“ื™ืคื™ื™ื ื– ืึท ื–ื™ื›ืขืจ ืคืขืœื“ ื ืึธืžืขืŸ: "ืึทืคึผ1", "ืึทืคึผ 2", "ืึทืคึผ 3".

ื™ืŸ ื™ืขื“ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ื–ืขื ืขืŸ ืœืึธื ื˜ืฉื˜ ื•ื•ืึธืก ืึธื ื”ื™ื™ื‘ืŸ ืฆื• "ืฉืคึผื™ืœืŸ ืคึผื™ืœืงืข" ื“ื•ืจืš ื“ื™ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ื•ื™ื˜ืึธื‘ื•ืก. ืึทืจื˜ื™ืงืœืขืŸ ืžื™ื˜ ื“ื™ ื ืึธืžืขืŸ "ื‘ืึทืœืœ" ื•ื•ืขื˜ ืฉืคึผื™ืœืŸ ื•ื•ื™ ืึท ืคึผื™ืœืงืข.

ื›ึผืœืœื™ื ืคื•ืŸ ื“ื™ ืฉืคึผื™ืœ:

  • ื“ืขืจ ืขืจืฉื˜ืขืจ ืฉืคึผื™ืœืขืจ ืื™ื– ื“ืขืจ ื™ื ื™ืฉื™ื™ื™ื˜ืขืจ. ืขืจ ื™ื ื•ื•ื™ื™ืฅ ืื ื“ืขืจืข ืคึผืœื™ื™ึทืขืจืก ืฆื• ื“ื™ ืฉืคึผื™ืœ, ืกื˜ืึทืจืฅ ื“ื™ ืฉืคึผื™ืœ ืื•ืŸ ืงืขื ืขืŸ ืขื ื“ื™ืงืŸ ืขืก ืื™ืŸ ืงื™ื™ืŸ ืฆื™ื™ื˜;
  • ืื ื“ืขืจืข ืคึผืœื™ื™ึทืขืจืก ื“ืขืจืงืœืขืจืŸ ื–ื™ื™ืขืจ ืึธื ื˜ื™ื™ืœ ืื™ืŸ ื“ื™ ืฉืคึผื™ืœ, "ื‘ืึทืงื•ืžืขืŸ ืฆื• ื•ื•ื™ืกืŸ" ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ ืื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืฉืคึผื™ืœืขืจ;
  • ื ืึธืš ื‘ืืงื•ืžืขืŸ ื“ื™ ืคึผื™ืœืงืข, ื“ืขืจ ืฉืคึผื™ืœืขืจ ืกืึทืœืขืงืฅ ืืŸ ืื ื“ืขืจ ืคึผืึทืจื˜ื™ืกืึทืคึผื™ื™ื˜ื™ื ื’ ืฉืคึผื™ืœืขืจ ืื•ืŸ ืคึผืึทืกื™ื– ื“ื™ ืคึผื™ืœืงืข ืฆื• ืื™ื. ื“ื™ ื’ืึทื ืฅ ื ื•ืžืขืจ ืคื•ืŸ ื˜ืจืึทื ืกืžื™ืกื™ืข ืื™ื– ื’ืขืจืขื›ื ื˜;
  • ื™ืขื“ืขืจ ืฉืคึผื™ืœืขืจ ื”ืื˜ "ืขื ืขืจื’ื™ืข" ื•ื•ืึธืก ื“ื™ืงืจื™ืกืึทื– ืžื™ื˜ ื™ืขื“ืขืจ ืคืึธืจืŸ ืคื•ืŸ ื“ื™ ืคึผื™ืœืงืข ื“ื•ืจืš ื“ืขื ืฉืคึผื™ืœืขืจ. ื•ื•ืขืŸ ื“ื™ ืขื ืขืจื’ื™ืข ืœื•ื™ืคื˜ ืื•ื™ืก, ื“ื™ ืฉืคึผื™ืœืขืจ ื‘ืœืขื˜ืขืจ ื“ื™ ืฉืคึผื™ืœ, ืึทื ืึทื•ื ืกื™ื ื’ ื–ื™ื™ืŸ ืจืขื–ืึทื’ื ื™ื™ืฉืึทืŸ;
  • ืื•ื™ื‘ ื“ืขืจ ืฉืคึผื™ืœืขืจ ืื™ื– ืœื™ื ืงืก ืึทืœื™ื™ืŸ, ืขืจ ืžื™ื“ ืึทื ืึทื•ื ืกื™ื– ื–ื™ื™ืŸ ืึธืคึผืคืึธืจ;
  • ื•ื•ืขืŸ ืึทืœืข ืคึผืœื™ื™ึทืขืจืก ื–ืขื ืขืŸ ื™ืœื™ืžืึทื ื™ื™ื˜ืึทื“, ื“ืขืจ ืขืจืฉื˜ืขืจ ืฉืคึผื™ืœืขืจ ื“ืขืจืงืœืขืจื˜ ื“ื™ ืฉืคึผื™ืœ ืื™ื‘ืขืจ. ืื•ื™ื‘ ืขืจ ื‘ืœืขื˜ืขืจ ื“ื™ ืฉืคึผื™ืœ ืคืจื™, ืขืจ ื‘ืœื™ื™ื‘ื˜ ืฆื• ื ืึธื›ืคืึธืœื’ืŸ ื“ื™ ืฉืคึผื™ืœ ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ ืขืก.

ืฆื• ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื, ืื™ืš ื•ื•ืขืœ ื ื•ืฆืŸ ืื•ื ื“ื–ืขืจ ื“ืกืœ ืคึฟืึทืจ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื•ื ื“ื– ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืœืึธื’ื™ืง ืื™ืŸ ืงืึธื˜ืœื™ืŸ ืงืึธืžืคึผืึทืงื˜ืœื™, ืžื™ื˜ ืึท ืžื™ื ื™ืžื•ื ืคื•ืŸ ืงืขืกืœ.

ื“ืขืจ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืคื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืฉืคึผื™ืœืขืจ (ืึทืงืึท ื“ืขืจ ื™ื ื™ืฉื™ื™ื™ื˜ืขืจ ืคื•ืŸ ื“ื™ ืฉืคึผื™ืœ) ื•ื•ืขื˜ ืึทืจื‘ืขื˜ืŸ ืื™ืŸ ื“ื™ ืึทืคึผ 1 ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ:

ืงืœืึทืก InitialPlayer

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 ื•ื•ืขื˜ ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืคื•ืŸ ื“ื™ ืื ื“ืขืจืข ืฉืคึผื™ืœืขืจ:

ืงืœืึทืก ืจืึทื ื“ืึธืžืคึผืœื™ื™ึทืขืจ

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 ื ื•ืกื— ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ

ืื™ืŸ ื“ื™ ืึทืคึผ 3 ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื™ืจ ื•ื•ืขืœืŸ ืžืึทื›ืŸ ืึท ืฉืคึผื™ืœืขืจ ืžื™ื˜ ืึท ื‘ื™ืกืœ ืึทื ื“ืขืจืฉ ื ืึทื˜ื•ืจ: ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ืจืึทื ื“ืึทืžืœื™ ืกืึทืœืขืงื˜ื™ื ื’ ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ืฉืคึผื™ืœืขืจ, ืขืจ ื•ื•ืขื˜ ื”ืึทื ื“ืœืขืŸ ืœื•ื™ื˜ ื“ื™ ืจืึธื•ื ื“-ืจืึธื‘ื™ืŸ ืึทืœื’ืขืจื™ื“ืึทื:

ืงืœืึทืก RoundRobinPlayer

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}")
}

ืึทื ื“ืขืจืฉ, ื“ื™ ื ืึทื˜ื•ืจ ืคื•ืŸ ื“ื™ ืฉืคึผื™ืœืขืจ ืื™ื– ื ื™ืฉื˜ ืึทื ื“ืขืจืฉ ืคื•ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข, ืึทื–ื•ื™ ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ื˜ื•ื˜ ื ื™ืฉื˜ ื˜ื•ื™ืฉืŸ.

ืื™ืฆื˜ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืึท ืคึผืจืึธื‘ืข ืฆื• ืœื•ื™ืคืŸ ืึทืœืข ื“ืขื. ืื™ืš ื•ื•ืขืœ ื’ืขื‘ืŸ ื‘ืœื•ื™ื– ื“ื™ ืงืึธื“ ืคื•ืŸ ื“ื™ ืคึผืจืึธื‘ืข ื–ื™ืš, ืึทื–ื•ื™ ื ื™ืฉื˜ ืฆื• ืงืœืึทื˜ืขืจ ื“ืขื ืึทืจื˜ื™ืงืœ ืžื™ื˜ ืึท ืงืขืกืœ (ืื™ืŸ ืคืึทืงื˜, ืื™ืš ื’ืขื•ื•ื™ื™ื ื˜ ื“ื™ ืคึผืจืึธื‘ืข ืกื•ื•ื™ื•ื•ืข ื‘ืืฉืืคืŸ ืคืจื™ืขืจ ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ื“ื™ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืคื•ืŸ ืื ื“ืขืจืข ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–):

testGame()

@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;
  • ื”ืึทื ื“ืœืขืจืก ืคื•ืŸ ื™ื ืงืึทืžื™ื ื’ ืึทืจื˜ื™ืงืœืขืŸ ืื•ืŸ ื’ืขืฉืขืขื ื™ืฉืŸ ืžื•ื–ืŸ ืื•ื™ืš ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื•ื•ืึธืก ืขื ื“ืขืจื•ื ื’ืขืŸ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก: ืื•ื™ื‘ ืึทื–ืึท ืึท ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื™ื– ืจืึธื•ืœื“ ืฆื•ืจื™ืง, ื“ื™ ืงืึทื‘ืึธืœืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืึธื ื–ืึธื’ ืžื•ื–ืŸ ื–ื™ื™ืŸ ืงืึทื ืกืึทืœื“;
  • ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืึธืก ืงืขืŸ ื ื™ืฉื˜ ื–ื™ื™ืŸ ืื™ื‘ืขืจื’ืขื’ืขื‘ืŸ ืจืขื›ื˜ ืฆื• ืขืจืจืึธืจืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืกื˜ืึธืจื“ ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืกื˜ืึธืจื™ื“ื–ืฉ ื“.ืœ.ืง. (ื˜ื•ื™ื˜ ื‘ืจื™ื•ื• ืจื™ื™). ืคึฟืึทืจ ื“ืขื ืฆื•ื•ืขืง, ืžื™ืจ ื‘ืืฉืืคืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืคึผืœืึทื˜ืคืึธืจืžืข ืžื™ืงืจืึธืกืขืจื•ื•ื™ืก ื•ื•ืึธืก ืกื˜ืึธืจื– ืึทื–ืึท ืึทืจื˜ื™ืงืœืขืŸ ืื™ืŸ ื–ื™ื™ืŸ ืกื˜ืึธืจื™ื“ื–ืฉ, ื™ื ื“ืขืงืกื™ื– ื–ื™ื™ ื“ื•ืจืš ืึทื˜ืจื™ื‘ื™ื•ืฅ (ืคึฟืึทืจ ืฉื ืขืœ ื’ืจื•ืคึผื™ื ื’ ืื•ืŸ ื–ื•ื›ืŸ), ืื•ืŸ ื™ืงืกืคึผืึธื•ื–ื™ื– ืึทืŸ ืึทืคึผื™ ืคึฟืึทืจ ื•ื•ื™ื•ื™ื ื’, ืจื™ืกืขื ื“ื™ื ื’ ืฆื• ื“ื™ ื“ืขืกื˜ื™ื ื™ื™ืฉืึทืŸ ืึทื“ืจืขืก ืื•ืŸ ื•ื™ืกืžืขืงืŸ ืึทืจื˜ื™ืงืœืขืŸ. ืกื™ืกื˜ืขื ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจืก ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ืขื ื“ื™ื ืกื˜ ื“ื•ืจืš ื–ื™ื™ืขืจ ื•ื•ืขื‘ ืฆื•ื‘ื™ื ื“;
  • ืื™ืŸ ื“ื™ ืžืขืงืœืขืจ ืกืขื˜ื˜ื™ื ื’ืก, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืกื˜ืจื•ื™ืขืจืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืขืงืกืคึผืจืขืก ืจื™ื˜ืจื™ื•ื– ืื•ืŸ ื“ื™ืœื™ื™ื– ืฆื•ื•ื™ืฉืŸ ื“ื™ืœื™ื•ื•ืขืจื– ืฆื• ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ ืœื™ืงืขืœื™ื”ืึธืึธื“ ืคื•ืŸ ืึทืจื˜ื™ืงืœืขืŸ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืื™ืŸ DLQ (ืขืก ืื™ื– ื›ึผืžืขื˜ ืื•ืžืžืขื’ืœืขืš ืฆื• ืจืขื›ืขื ืขืŸ ื“ื™ ืึธืคึผื˜ื™ืžืึทืœ ืคึผืึทืจืึทืžืขื˜ืขืจืก, ืึธื‘ืขืจ ืื™ืจ ืงืขื ืขืŸ ื”ืึทื ื“ืœืขืŸ ืขืžืคึผื™ืจื™ืงืึทืœืœื™ ืื•ืŸ ืกื˜ืจื•ื™ืขืจืŸ ื–ื™ื™ ื‘ืขืฉืึทืก ืึธืคึผืขืจืึทืฆื™ืข );
  • ื“ื™ DLQ ืงืจืึธื ืžื•ื–ืŸ ื–ื™ื™ืŸ ืงืึทื ื˜ื™ื ื™ื•ืึทืกืœื™ ืžืึธื ื™ื˜ืึธืจืขื“, ืื•ืŸ ื“ื™ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืกื™ืกื˜ืขื ืžื•ื–ืŸ ืคืœื™ื ืง ืกื™ืกื˜ืขื ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจืก ืึทื–ื•ื™ ืึทื– ื•ื•ืขืŸ ืึทื ื“ื™ืœื™ื•ื•ืขืจื“ ืึทืจื˜ื™ืงืœืขืŸ ืคืึทืœืŸ, ื–ื™ื™ ืงืขื ืขืŸ ืจื™ืกืคึผืึทื ื“ ื•ื•ื™ ื’ืขืฉื•ื•ื™ื ื“ ื•ื•ื™ ืžืขื’ืœืขืš. ื“ืึธืก ื•ื•ืขื˜ ืจืขื“ื•ืฆื™ืจืŸ ื“ื™ "ืึทืคืขืงื˜ืึทื“ ื’ืขื’ื ื˜" ืคื•ืŸ ืึท ื“ื•ืจื›ืคืึทืœ ืึธื“ืขืจ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ื˜ืขื•ืช;
  • ื“ื™ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ื•ื™ื˜ืึธื‘ื•ืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ื™ื ืกืขื ืกื™ื˜ื™ื•ื• ืฆื• ื“ื™ ืฆื™ื™ื˜ื•ื•ื™ื™ืœื™ื’ืข ืึทื•ื•ืขืง ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–: ืกืึทื‘ืกืงืจื™ืคึผืฉืึทื ื– ืฆื• ืึท ื˜ืขืžืข ืžื•ื–ืŸ ื–ื™ื™ืŸ ื“ื•ืจืึทื‘ืึทืœ, ืื•ืŸ ื“ื™ ืคืขืœื“ ื ืึธืžืขืŸ ืคื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื™ื™ื ืฆื™ืง ืึทื–ื•ื™ ืึทื– ื‘ืฉืขืช ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ื– ื ื™ื˜ืึธ, ืขืžืขืฆืขืจ ืึทื ื“ืขืจืฉ ื•ื•ืขื˜ ื ื™ืฉื˜ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืคึผืจืึธืฆืขืก ื–ื™ื™ืŸ ืึทืจื˜ื™ืงืœืขืŸ ืคึฟื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืจื™ื™.

ื™ื ืฉื•ืจื™ื ื’ ืคืึธื“ืขื ื–ื™ื›ืขืจืงื™ื™ึทื˜ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง

ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ืขื˜ืœืขื›ืข ืึทืจื˜ื™ืงืœืขืŸ ืื•ืŸ ื’ืขืฉืขืขื ื™ืฉืŸ ืื™ืŸ ืึทืžืึธืœ, ื“ื™ ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ ื•ื•ืึธืก ื•ื•ืขื˜ ืึธื ื”ื™ื™ื‘ืŸ ืื™ืŸ ืคึผืึทืจืึทืœืขืœ. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืคึฟืึทืจ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ืขื•ื•ืขืœืึธืคึผืขืจ, ืึทืœืฅ ื–ืึธืœ ื–ื™ื™ืŸ ืคึผืฉื•ื˜ ืื•ืŸ ืคืึธื“ืขื-ื–ื™ื›ืขืจ.

ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืคื•ืŸ ืึท ืคึผืจืึธืฆืขืก ืคึผืจืึทืกืขืกืึทื– ื™ืขื“ืขืจ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื’ืขืฉืขืขื ื™ืฉ ื•ื•ืึธืก ืึทืคืขืงืฅ ื“ืขื ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ื™ื ื“ื™ื•ื•ื™ื“ื–ืฉื•ืึทืœื™. ืึทื–ืึท ื’ืขืฉืขืขื ื™ืฉืŸ ืงืขืŸ ื–ื™ื™ืŸ:

  • ืœืึธื ื˜ืฉื™ื ื’ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ื‘ื™ื™ึทืฉืคึผื™ืœ;
  • ื‘ืึทื ื™ืฆืขืจ ืงืึทืžืฃ ืฉื™ื™ึทื›ื•ืช ืฆื• ื˜ืขื˜ื™ืงื™ื™ื˜ ืื™ืŸ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก;
  • ืงืึทื‘ืึธืœืข ืคื•ืŸ โ€‹โ€‹ืึท ืึธื ื–ืึธื’ ืึธื“ืขืจ ืกื™ื’ื ืึทืœ ืฆื• ื•ื•ืึธืก ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ื‘ื™ื™ึทืฉืคึผื™ืœ ืื™ื– ืึทื‘ืึธื ื™ืจืŸ;
  • ื˜ืจื™ื’ืขืจื™ื ื’ ืคื•ืŸ ืึท ื˜ื™ื™ึทืžืขืจ ื‘ืึทืฉื˜ื™ืžื˜ ื“ื•ืจืš ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ื‘ื™ื™ึทืฉืคึผื™ืœ;
  • ืงืึธื ื˜ืจืึธืœ ืงืึทืžืฃ ื“ื•ืจืš ืึทืคึผื™ (ืœืžืฉืœ, ืคึผืจืึธืฆืขืก ื™ื‘ืขืจืจื™ื™ึทืก).

ื™ืขื“ืขืจ ืึทื–ืึท ื’ืขืฉืขืขื ื™ืฉ ืงืขื ืขืŸ ื˜ื•ื™ืฉืŸ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ื‘ื™ื™ึทืฉืคึผื™ืœ: ืขื˜ืœืขื›ืข ืึทืงื˜ื™ื•ื•ื™ื˜ืขื˜ืŸ ืงืขืŸ ืกื•ืฃ ืื•ืŸ ืื ื“ืขืจืข ืงืขืŸ ืึธื ื”ื™ื™ื‘ืŸ, ืื•ืŸ ื“ื™ ื•ื•ืึทืœื•ืขืก ืคื•ืŸ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืงืขืŸ ื˜ื•ื™ืฉืŸ. ืงืœืึธื•ื–ื™ื ื’ ืงื™ื™ืŸ ื˜ืขื˜ื™ืงื™ื™ื˜ ืงืขืŸ ืคื™ืจืŸ ืฆื• ืึทืงื˜ืึทื•ื•ื™ื™ืฉืึทืŸ ืคื•ืŸ ืื™ื™ื ืขืจ ืึธื“ืขืจ ืžืขืจ ืคื•ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืึทืงื˜ื™ื•ื•ื™ื˜ืขื˜ืŸ. ื™ืขื ืข, ืื™ืŸ ืงืขืจ, ืงืขื ืขืŸ ื”ืึทืœื˜ืŸ ื•ื•ืืจื˜ืŸ ืคึฟืึทืจ ืื ื“ืขืจืข ื’ืขืฉืขืขื ื™ืฉืŸ ืึธื“ืขืจ, ืื•ื™ื‘ ื–ื™ื™ ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืงื™ื™ืŸ ื ืึธืš ื“ืึทื˜ืŸ, ืงืขื ืขืŸ ืคืึทืจืขื ื“ื™ืงืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ. ืื™ื™ื“ืขืจ ืงืœืึธื•ื–ื™ื ื’ ื“ื™ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ, ื“ื™ ื ื™ื™ึท ืฉื˜ืึทื˜ ืคื•ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืื™ื– ื’ืขืจืื˜ืขื•ื•ืขื˜ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก, ื•ื•ื• ืขืก ื•ื•ืขื˜ ื•ื•ืึทืจื˜ืŸ ืคึฟืึทืจ ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื’ืขืฉืขืขื ื™ืฉ.

ืคึผืขืจืกื™ืกื˜ืขื ื˜ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ื“ืึทื˜ืŸ ืกื˜ืึธืจื“ ืื™ืŸ ืึท ืจื™ืœื™ื™ืฉืึทื ืึทืœ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ื– ืึท ื–ื™ื™ืขืจ ื‘ืึทืงื•ื•ืขื ืคื•ื ื˜ ืคึฟืึทืจ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืื•ื™ื‘ ืื™ืจ ื ื•ืฆืŸ SELECT FOR UPDATE. ืื•ื™ื‘ ืื™ื™ืŸ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ื’ืขืจืื˜ืŸ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืคื•ืŸ ื“ื™ ื‘ืึทื–ืข ืคึฟืึทืจ ื˜ืฉืึทื ื’ื™ื ื’ ืขืก, ืงื™ื™ืŸ ืื ื“ืขืจืข ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ ืื™ืŸ ืคึผืึทืจืึทืœืขืœ ื•ื•ืขื˜ ืงืขื ืขืŸ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื–ืขืœื‘ืข ืฉื˜ืึทื˜ ืคึฟืึทืจ ืืŸ ืื ื“ืขืจ ืขื ื“ืขืจื•ื ื’, ืื•ืŸ ื ืึธืš ื“ื™ ืงืึทืžืคึผืœื™ืฉืึทืŸ ืคื•ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ื˜ืจืึทื ืกืึทืงื˜ื™ืึธืŸ, ื“ื™ ืจื’ืข ืื™ื– ื’ืขืจืึทื ื˜ื™ื“ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืฉื•ื™ืŸ ื’ืขื‘ื™ื˜ืŸ ืฉื˜ืึทื˜.

ื ื™ืฆืŸ ืคึผืขืกื™ืžื™ืกื˜ื™ืฉ ืœืึทืงืก ืื•ื™ืฃ ื“ื™ DBMS ื–ื™ื™ึทื˜, ืžื™ืจ ืžืงื™ื™ื ืึทืœืข ื“ื™ ื ื™ื™ื˜ื™ืง ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ื–ื•ื™ืขืจ, ืื•ืŸ ืื•ื™ืš ืจื™ื˜ื™ื™ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื•ื•ืึธื’ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื™ื˜ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ื“ื•ืจืš ื™ื ืงืจื™ืกื™ื ื’ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืคืœื™ืกื ื“ื™ืง ื™ื ืกื˜ืึทื ืกื™ื–.

ืึธื‘ืขืจ, ืคึผืขืกื™ืžื™ืกื˜ื™ืฉ ืœืึทืงืก ืกื˜ืจืึทืฉืขืŸ ืื•ื ื“ื– ืžื™ื˜ ื“ืขื“ืœืึธืงืงืก, ื•ื•ืึธืก ืžื™ื˜ืœ ืึทื– SELECT FOR UPDATE ื–ืึธืœ ื ืึธืš ื–ื™ื™ืŸ ืœื™ืžื™ื˜ืขื“ ืฆื• ืขื˜ืœืขื›ืข ื’ืœื™ื™ึทืš ื˜ื™ื™ืžืึทื•ื˜ ืื™ืŸ ืคืึทืœ ื“ืขื“ืœืึธืงืงืก ืคืึทืœืŸ ืื™ืŸ ืขื˜ืœืขื›ืข ืขืจื ืกื˜ ืงืึทืกืขืก ืื™ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง.

ืืŸ ืื ื“ืขืจ ืคึผืจืึธื‘ืœืขื ืื™ื– ื“ื™ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก. ื›ืึธื˜ืฉ ืขืก ืื™ื– ืงื™ื™ืŸ ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก, ืขืก ืื™ื– ืงื™ื™ืŸ ืฉื˜ืึทื˜ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก, ืึทื–ื•ื™ ื“ื™ ื“ื™ืกืงืจื™ื™ื‘ื“ ืื•ืคึฟืŸ ื•ื•ืขื˜ ื ื™ืฉื˜ ืึทืจื‘ืขื˜ืŸ. ืื•ื™ื‘ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืขื ืฉื•ืจ ื“ื™ ืื™ื™ื’ื ืืจื˜ื™ืงื™ื™ื˜ ืคื•ืŸ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ื‘ื™ื™ึทืฉืคึผื™ืœ ืื™ืŸ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืคืึทืจื ืขื, ืื™ืจ ื•ื•ืขื˜ ื“ืึทืจืคึฟืŸ ืึท ืžื™ืŸ ืคื•ืŸ ืกื™ื ื’ืงืจืึทื ืึทื–ื™ื™ืฉืึทืŸ ื›ื™ื™ืคืขืฅ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื“ืขื ืคึผืจืึธืฆืขืก ืงืœืึทืก ืื•ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืคืึทืจื ืขื. ืฆื• ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื, ืžื™ืจ ื ื•ืฆืŸ ืึท ืึทื ื“ืขืจืฉ ืœืึทืงื™ื ื’ ืžืขืงืึทื ื™ื–ืึทื ื•ื•ืึธืก ืึทืœืึทื•ื– ืื•ื ื“ื– ืฆื• ื ืขืžืขืŸ ืึท ืฉืœืึธืก ืื•ื™ืฃ ืึท ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ืžื™ื˜ืœ ืกืคึผืขืกื™ืคื™ืขื“ ื“ื•ืจืš ืึท ืฉืœื™ืกืœ ืื™ืŸ URI ืคึฟืึธืจืžืึทื˜ ื“ื•ืจืš ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื“ื™ื ืกื˜.

ืื™ืŸ ืื•ื ื“ื–ืขืจ ื‘ื™ื™ืฉืคื™ืœืŸ, ื“ื™ InitialPlayer ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ื›ึผื•ืœืœ ืึท ื“ืขืงืœืึทืจืึทืฆื™ืข

uniqueConstraint = UniqueConstraints.singleton

ื“ืขืจื™ื‘ืขืจ, ื“ืขืจ ืงืœืึธืฅ ื›ึผื•ืœืœ ืึทืจื˜ื™ืงืœืขืŸ ื•ื•ืขื’ืŸ ื’ืขื ื•ืžืขืŸ ืื•ืŸ ืจื™ืœื™ืกื™ื ื’ ื“ื™ ืฉืœืึธืก ืคื•ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’ ืฉืœื™ืกืœ. ืขืก ื–ืขื ืขืŸ ื ื™ื˜ ืึทื–ืึท ืึทืจื˜ื™ืงืœืขืŸ ืคึฟืึทืจ ืื ื“ืขืจืข ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–: ื™ื™ื ืฆื™ืง ืงืึธื ืกื˜ืจืึทื™ื ื˜ ืื™ื– ื ื™ืฉื˜ ื‘ืึทืฉื˜ื™ืžื˜.

ืคึผืจืึธื‘ืœืขืžืก ืคื•ืŸ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ืžื™ื˜ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืฉื˜ืึทื˜

ืžืืœ ื‘ืขืช ืึท ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืฉื˜ืึทื˜ ื ื™ื˜ ื‘ืœื•ื™ื– ื”ืขืœืคื˜, ืึธื‘ืขืจ ืื•ื™ืš ื˜ืึทืงืข ื›ื™ื ื“ืขืจื– ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’.
ืคึผืจืึธื‘ืœืขืžืก ืึธื ื”ื™ื™ื‘ืŸ ื•ื•ืขืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ื’ืขืžืื›ื˜ ืฆื• ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื•ืŸ / ืึธื“ืขืจ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืžืึธื“ืขืœ. ื ื™ื˜ ื™ืขื“ืขืจ ืึทื–ืึท ืขื ื“ืขืจื•ื ื’ ืื™ื– ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ ื“ื™ ืึทืœื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–. ืื•ื™ื‘ ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ืœืขื‘ืŸ ื™ื ืกื˜ืึทื ืกื™ื– ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก, ืžืื›ืŸ ื™ื ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืขื ื“ืขืจื•ื ื’ืขืŸ ืงืขื ืขืŸ ืึธื ืžืึทื›ืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืงืึธื ืคืœื™ืงื˜, ื•ื•ืึธืก ืžื™ืจ ืึธืคื˜ ื’ืขืคึผืœืึธื ื˜ืขืจื˜ ื•ื•ืขืŸ ื ื™ืฆืŸ jBPM.

ื“ืขืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ื˜ื™ืคืงื™ื™ึทื˜ ืคื•ืŸ ื“ื™ ืขื ื“ืขืจื•ื ื’ืขืŸ, ืื™ืจ ืงืขื ืขืŸ ืฉืคึผื™ืœืŸ ืื™ืŸ ืฆื•ื•ื™ื™ ื•ื•ืขื’ืŸ:

  1. ืฉืึทืคึฟืŸ ืึท ื ื™ื™ึทืข ื˜ื™ืคึผ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืึทื–ื•ื™ ื ื™ืฉื˜ ืฆื• ืžืึทื›ืŸ ื™ื ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ืึทืœื˜, ืื•ืŸ ื ื•ืฆืŸ ืขืก ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื“ื™ ืึทืœื˜ ื•ื•ืขืŸ ืœืึธื ื˜ืฉื™ื ื’ ื ื™ื™ึทืข ื™ื ืกื˜ืึทื ืกื™ื–. ืึทืœื˜ืข ืงืึธืคึผื™ืขืก ื•ื•ืขืœืŸ ืคืึธืจื–ืขืฆืŸ ืฆื• ืึทืจื‘ืขื˜ืŸ "ื•ื•ื™ ืคืจื™ืขืจ";
  2. ืžื™ื™ื’ืจื™ื™ื˜ ื“ื™ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ื•ื•ืขืŸ ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง.

ื“ืขืจ ืขืจืฉื˜ืขืจ ื•ื•ืขื’ ืื™ื– ืกื™ืžืคึผืœืขืจ, ืึธื‘ืขืจ ื”ืื˜ ื–ื™ื™ึทืŸ ืœื™ืžื™ื˜ื™ื™ืฉืึทื ื– ืื•ืŸ ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื–, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ:

  • ื“ื•ืคึผืœื™ืงืึทื˜ื™ืึธืŸ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื™ืŸ ืคื™ืœืข ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืžืึธื“ืขืœืก, ื™ื ืงืจื™ืกื™ื ื’ ื“ื™ ื‘ืึทื ื“ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง;
  • ืึธืคื˜ ืึท ื‘ืึทืœื“ื™ืง ื™ื‘ืขืจื’ืึทื ื’ ืฆื• ื ื™ื™ึท ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื™ื– ืคืืจืœืื ื’ื˜ (ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ื™ื ื˜ืึทื’ืจื™ื™ืฉืึทืŸ ื˜ืึทืกืงืก - ื›ึผืžืขื˜ ืฉื˜ืขื ื“ื™ืง);
  • ื“ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืงืขืŸ ื ื™ืฉื˜ ื•ื•ื™ืกืŸ ืื™ืŸ ื•ื•ืึธืก ืคื•ื ื˜ ืึทื•ื˜ื“ื™ื™ื˜ื™ื“ ืžืึธื“ืขืœืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืื•ื™ืกื’ืขืžืขืงื˜.

ืื™ืŸ ืคื™ืจ ืžื™ืจ ื ื•ืฆืŸ ื‘ื™ื™ื“ืข ืึทืคึผืจืึธื•ื˜ืฉื™ื–, ืึธื‘ืขืจ ื”ืึธื‘ืŸ ื’ืขืžืื›ื˜ ืึท ื ื•ืžืขืจ ืคื•ืŸ ื“ื™ืกื™ื–ืฉืึทื ื– ืฆื• ืžืึทื›ืŸ ืื•ื ื“ื–ืขืจ ืœืขื‘ืŸ ื’ืจื™ื ื’ืขืจ:

  • ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก, ื“ื™ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ืึท ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืื™ื– ืกื˜ืึธืจื“ ืื™ืŸ ืึท ืœื™ื™ื›ื˜ ืœื™ื™ื ืขื•ื•ื“ื™ืง ืื•ืŸ ืœื™ื™ื›ื˜ ืคึผืจืึทืกืขืกื˜ ืคืึธืจืขื: ืื™ืŸ ืึท JSON ืคึฟืึธืจืžืึทื˜ ืฉื˜ืจื™ืงืœ. ื“ืึธืก ืึทืœืึทื•ื– ืžื™ื’ืจื™ื™ืฉืึทื ื– ืฆื• ื–ื™ื™ืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื•ื™ืกื•ื•ื™ื™ื ื™ืง. ื•ื•ื™ ืึท ืœืขืฆื˜ืข ืจื™ื–ืึธืจื˜, ืื™ืจ ืงืขื ืขืŸ ืคืึทืจืจื™ื›ื˜ืŸ ืขืก ืžืึทื ื™ื•ืึทืœื™ (ืกืคึผืขืฆื™ืขืœ ื ื•ืฆื™ืง ืื™ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื‘ืขืฉืึทืก ื“ื™ื‘ืึทื’ื™ื ื’);
  • ื“ื™ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ื˜ื•ื˜ ื ื™ืฉื˜ ื ื•ืฆืŸ ื“ื™ ื ืขืžืขืŸ ืคื•ืŸ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–, ืึทื–ื•ื™ ืึทื– ืื™ืŸ ืงื™ื™ืŸ ืฆื™ื™ื˜ ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืคืึทืจื‘ื™ื™ึทื˜ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืคึผืึทืจื˜ื™ืกืึทืคึผื™ื™ื˜ื™ื ื’ ืคึผืจืึทืกืขืกืึทื– ืžื™ื˜ ืึท ื ื™ื™ึทืข ืžื™ื˜ ืึท ื ื™ื™ึทืข ื ืึธืžืขืŸ (ืœืžืฉืœ, "InitialPlayerV2"). ื“ื™ ื‘ื™ื™ื ื“ื™ื ื’ ืึทืงืขืจื– ื“ื•ืจืš ืึธื ื–ืึธื’ ืื•ืŸ ืกื™ื’ื ืึทืœ ื ืขืžืขืŸ;
  • ื“ืขืจ ืคึผืจืึธืฆืขืก ืžืึธื“ืขืœ ื”ืื˜ ืึท ื•ื•ืขืจืกื™ืข ื ื•ืžืขืจ, ื•ื•ืึธืก ืžื™ืจ ื™ื ืงืจืึทืžืึทื ื˜ ืื•ื™ื‘ ืžื™ืจ ืžืึทื›ืŸ ื™ื ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ืขื ืžืึธื“ืขืœ, ืื•ืŸ ื“ืขื ื ื•ืžืขืจ ืื™ื– ื’ืขืจืื˜ืขื•ื•ืขื˜ ืฆื•ื–ืืžืขืŸ ืžื™ื˜ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ื‘ื™ื™ึทืฉืคึผื™ืœ;
  • ื“ื™ ืคึผืขืจืกื™ืกื˜ืขื ื˜ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืื™ื– ืœื™ื™ืขื ืขืŸ ืคึฟื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืขืจืฉื˜ืขืจ ืื™ืŸ ืึท ื‘ืึทืงื•ื•ืขื ื›ื™ื™ืคืขืฅ ืžืึธื“ืขืœ, ื•ื•ืึธืก ื“ื™ ืžื™ื™ื’ืจื™ื™ืฉืึทืŸ ืคึผืจืึธืฆืขื“ื•ืจ ืงืขื ืขืŸ ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ืื•ื™ื‘ ื“ื™ ืžืึธื“ืขืœ ื•ื•ืขืจืกื™ืข ื ื•ืžืขืจ ืื™ื– ื’ืขื‘ื™ื˜ืŸ;
  • ื“ื™ ืžื™ื™ื’ืจื™ื™ืฉืึทืŸ ืคึผืจืึธืฆืขื“ื•ืจ ืื™ื– ื’ืขืฉื˜ืขืœื˜ ืœืขื‘ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื•ืŸ ืื™ื– ื’ืขืจื•ืคึฟืŸ "ืคื•ื™ืœ" ืคึฟืึทืจ ื™ืขื“ืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ื“ื™ ื’ืขืฉืขืคื˜ ืคึผืจืึธืฆืขืก ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ืจืขืกื˜ืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก;
  • ืื•ื™ื‘ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืžื™ื™ื’ืจื™ื™ื˜ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ืึทืœืข ืคึผืจืึธืฆืขืก ื™ื ืกื˜ืึทื ืกื™ื– ื’ืขืฉื•ื•ื™ื ื“ ืื•ืŸ ืกื™ื ื˜ืฉืจืึธื ืึธื•ืกืœื™, ืžืขืจ ืงืœืึทืกื™ืฉ ื“ืึทื˜ืึทื‘ื™ื™ืก ืžื™ื™ื’ืจื™ื™ืฉืึทืŸ ืกืึทืœื•ืฉืึทื ื– ื–ืขื ืขืŸ ื’ืขื ื™ืฆื˜, ืึธื‘ืขืจ ืื™ืจ ืžื•ื–ืŸ ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ JSON.

ืฆื™ ืื™ืจ ื“ืึทืจืคึฟืŸ ืืŸ ืื ื“ืขืจ ืคืจื™ื™ืžื•ื•ืขืจืง ืคึฟืึทืจ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–?

ื“ื™ ืกืึทืœื•ืฉืึทื ื– ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืขืจืœื•ื™ื‘ื˜ ืื•ื ื“ื– ืฆื• ื‘ืื˜ื™ื™ื˜ื™ืง ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ืื•ื ื“ื–ืขืจ ืœืขื‘ืŸ, ื™ืงืกืคึผืึทื ื“ ื“ื™ ืงื™ื™ื˜ ืคื•ืŸ ื™ืฉื•ื– ืกืึทืœื•ื•ื“ ืื™ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืžื“ืจื’ื” ืื•ืŸ ืžืึทื›ืŸ ื“ื™ ื’ืขื“ืึทื ืง ืคื•ืŸ ืกืขืคึผืขืจื™ื™ื˜ื™ื ื’ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื™ืŸ ืžื™ืงืจืึธ ื‘ืึทื“ื™ื ื•ื ื’ืก ืžืขืจ ืึทื˜ืจืึทืงื˜ื™ื•ื•. ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื“ืขื, ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืึทืจื‘ืขื˜ ืื™ื– ื’ืขื•ื•ืขืŸ ื’ืขื˜ืืŸ, ืึท ื–ื™ื™ืขืจ "ืœื™ื™ื˜ื•ื•ื™ื™ื˜" ืคืจื™ื™ืžื•ื•ืขืจืง ืคึฟืึทืจ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื– ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ืืฉืืคืŸ, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืกืขืจื•ื•ื™ืก ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืฆื• ืกืึธืœื•ื•ืข ื“ื™ ื™ื™ื“ืขื ืึทืคื™ื™ื“ ืคึผืจืึธื‘ืœืขืžืก ืื™ืŸ ื“ืขื ืงืึธื ื˜ืขืงืกื˜ ืคื•ืŸ ืึท ื‘ืจื™ื™ื˜ ืงื™ื™ื˜ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึผืจืึธื‘ืœืขืžืก. ืžื™ืจ ื”ืึธื‘ืŸ ืึท ืคืึทืจืœืึทื ื’ ืฆื• ื˜ื™ื™ืœืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ืŸ ืื•ืŸ ืžืึทื›ืŸ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคื•ืŸ ืคึผืจืึธืกื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืึธืคึฟืŸ ืึทืงืกืขืก ืื•ื ื˜ืขืจ ืึท ืคืจื™ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ. ื“ืึธืก ื•ื•ืขื˜ ื“ืึทืจืคืŸ ืขื˜ืœืขื›ืข ืžื™ ืื•ืŸ ืฆื™ื™ื˜. ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื“ื™ ืคืึธื“ืขืจื•ื ื’ ืคึฟืึทืจ ืึทื–ืึท ืกืึทืœื•ืฉืึทื ื– ืงืขืŸ ื–ื™ื™ืŸ ืึทืŸ ื ืึธืš ื™ื ืกืขื ื™ื•ื• ืคึฟืึทืจ ืื•ื ื“ื–. ืื™ืŸ ื“ื™ ืคืืจื’ืขืœื™ื™ื’ื˜ ืึทืจื˜ื™ืงืœ, ื–ื™ื™ืขืจ ืงืœื™ื™ืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ึทื˜ ืื™ื– ื‘ืึทืฆืึธืœื˜ ืฆื• ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง ื–ื™ืš, ืึธื‘ืขืจ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื–ื™ื™ ื–ืขื ืขืŸ ืงืขื ื˜ื™ืง ืคึฟื•ืŸ ื“ื™ ื‘ื™ื™ืฉืคื™ืœืŸ ื“ืขืจืœืื ื’ื˜. ืื•ื™ื‘ ืžื™ืจ ืึทืจื•ื™ืกื’ืขื‘ืŸ ืื•ื ื“ื–ืขืจ ืคืจื™ื™ืžื•ื•ืขืจืง, ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืึทืจื˜ื™ืงืœ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืฆื• ืื™ื. ืื™ืŸ ื“ืขืจ ื“ืขืจื•ื•ื™ื™ืœ, ืžื™ืจ ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ื“ืึทื ืงื‘ืึทืจ ืื•ื™ื‘ ืื™ืจ ืœืึธื–ืŸ ืึท ื‘ื™ืกืœ ื‘ืึทืžืขืจืงื•ื ื’ืขืŸ ื“ื•ืจืš ืขื ื˜ืคึฟืขืจืŸ ื“ื™ ืงืฉื™ื:

ื‘ืœื•ื™ื– ืจืขื’ื™ืกื˜ืจื™ืจื˜ ื ื™ืฆืขืจืก ืงืขื ืขืŸ ืึธื ื˜ื™ื™ืœ ื ืขืžืขืŸ ืื™ืŸ ื“ื™ ื™ื‘ืขืจื‘ืœื™ืง. ืกื™ื™ืŸ ืืจื™ื™ืŸื‘ื™ื˜ืข.

ืฆื™ ืื™ืจ ื“ืึทืจืคึฟืŸ ืืŸ ืื ื“ืขืจ ืคืจื™ื™ืžื•ื•ืขืจืง ืคึฟืึทืจ ื’ืขืฉืขืคื˜ ืคึผืจืึทืกืขืกืึทื–?

  • ืงืกื ื•ืžืงืก%ื™ื, ืื™ืš ื”ืื‘ ืฉื•ื™ืŸ ืœืื ื’ ื’ืขื–ื•ื›ื˜ ืื–ื ื–ืืš

  • ืงืกื ื•ืžืงืก%ืื™ืš ื‘ื™ืŸ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืฆื• ืœืขืจื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื“ื™ื™ืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ, ืขืก ืงืขืŸ ื–ื™ื™ืŸ ื ื•ืฆื™ืง 2

  • ืงืกื ื•ืžืงืก%ืžื™ืจ ื ื•ืฆืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืคืจืึทืžืขื•ื•ืึธืจืงืก, ืึธื‘ืขืจ ืžื™ืจ ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ืจื™ืคึผืœื™ื™ืกื™ื ื’ 1

  • ืงืกื ื•ืžืงืก%ืžื™ืจ ื ื•ืฆืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ื™ื’ื–ื™ืกื˜ื™ื ื’ ืคืจืึทืžืขื•ื•ืึธืจืงืก, ืึทืœืฅ ืื™ื– ืคื™ื™ืŸ3

  • ืงืกื ื•ืžืงืก%ืžื™ืจ ืคื™ืจืŸ ืึธืŸ ืึท ืคืจื™ื™ืžื•ื•ืขืจืง3

  • ืงืกื ื•ืžืงืก%ืฉืจื™ื™ื‘ ื“ื™ื™ืŸ 4

16 ื‘ืื ื•ืฆืขืจ ื”ืื‘ืŸ ื’ืขืฉื˜ื™ืžื˜. 7 ื‘ืื ื•ืฆืขืจ ื”ืื‘ืŸ ื–ื™ืš ืืคื’ืขื”ืืœื˜ืŸ.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’