Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° BPM стил

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° BPM стил

Π—Π΄Ρ€Π°Π²ΠΎ, Ρ…Π΅Π±Ρ€Π΅Ρ˜ΡΠΊΠΈ!

ΠΠ°ΡˆΠ°Ρ‚Π° компанија Π΅ ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π·Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° софтвСрски Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° ΠΎΠ΄ класата ERP, Ρ‡ΠΈΡ˜ лавовски Π΄Π΅Π» Π΅ ΠΎΠΊΡƒΠΏΠΈΡ€Π°Π½ ΠΎΠ΄ трансакциски систСми со ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊ Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈ a la EDMS. Π’Π΅ΠΊΠΎΠ²Π½ΠΈΡ‚Π΅ Π²Π΅Ρ€Π·ΠΈΠΈ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ сС засноваат Π½Π° JavaEE Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½ΠΎ Π½ΠΈΠ΅ исто Ρ‚Π°ΠΊΠ° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ СкспСримСнтирамС со микросСрвиситС. Π•Π΄Π½Π° ΠΎΠ΄ Π½Π°Ρ˜ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΈΡ‚Π΅ области Π½Π° Π²Π°ΠΊΠ²ΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ потсистСми ΠΊΠΎΠΈ ΠΏΡ€ΠΈΠΏΠ°Ρ“Π°Π°Ρ‚ Π½Π° сосСднитС Π΄ΠΎΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ со ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΎΡ‚ΡΠ΅ΠΊΠΎΠ³Π°Ρˆ Π½ΠΈ Π·Π°Π΄Π°Π²Π°Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° Π³Π»Π°Π²ΠΎΠ±ΠΎΠ»ΠΊΠ°, Π±Π΅Π· ΠΎΠ³Π»Π΅Π΄ Π½Π° архитСктонскитС стилови, Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΡˆΠΊΠΈΡ‚Π΅ стСкови ΠΈ Ρ€Π°ΠΌΠΊΠΈ ΡˆΡ‚ΠΎ Π³ΠΈ користимС, Π½ΠΎ Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π° ΠΈΠΌΠ° Π½Π°ΠΏΡ€Π΅Π΄ΠΎΠΊ Π²ΠΎ Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π²Π°ΠΊΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

Π’ΠΎ написот ΡˆΡ‚ΠΎ Π²ΠΈ Π³ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΠΌ ќС Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌ Π·Π° искуството ΠΈ архитСктонскитС ΠΈΡΡ‚Ρ€Π°ΠΆΡƒΠ²Π°ΡšΠ° ΠΊΠΎΠΈ НПО β€žΠšΡ€ΠΈΡΡ‚Π°β€œ Π³ΠΈ ΠΈΠΌΠ° Π²ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π°Ρ‚Π° област. ЌС ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Сдноставно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ со ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΎΠ΄ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ќС ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ΠΌΠ΅ ΡˆΡ‚ΠΎ сС ΠΊΡ€ΠΈΠ΅ Π·Π°Π΄ ΠΎΠ²Π°Π° Сдноставност.

ΠžΠ΄Ρ€Π΅ΠΊΡƒΠ²Π°ΡšΠ΅ ΠΎΠ΄ одговорност

АрхитСктонскитС ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° опишани Π²ΠΎ ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π° сС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΠ΄ ΠΌΠ΅Π½Π΅ Π²Ρ€Π· основа Π½Π° Π»ΠΈΡ‡Π½ΠΎ искуство Π²ΠΎ контСкст Π½Π° спСцифични Π·Π°Π΄Π°Ρ‡ΠΈ. ОвиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° Π½Π΅ Ρ‚Π²Ρ€Π΄Π°Ρ‚ Π΄Π΅ΠΊΠ° сС ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π½ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ сС ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈ услови Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°.

Каква врска ΠΈΠΌΠ° BPM со Ρ‚ΠΎΠ°?

Π—Π° Π΄Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌΠ΅ Π½Π° ΠΎΠ²Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π½Π°Π²Π»Π΅Π·Π΅ΠΌΠ΅ ΠΌΠ°Π»ΠΊΡƒ ΠΏΠΎΠ΄Π»Π°Π±ΠΎΠΊΠΎ Π²ΠΎ спСцификитС Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Ρ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π°. Π“Π»Π°Π²Π½ΠΈΠΎΡ‚ Π΄Π΅Π» ΠΎΠ΄ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ Ρ‚ΠΈΠΏΠΈΡ‡Π΅Π½ трансакциски систСм Π΅ Π²Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΏΡ€Π΅ΠΊΡƒ кориснички ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΈ, Ρ€Π°Ρ‡Π½Π° ΠΈ автоматска ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΎΠ²ΠΈΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π½ΠΈΠ²Π½ΠΎ ΡΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΏΡ€Π΅ΠΊΡƒ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Ρ‚Π΅ΠΊ, ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ систСм / Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡ΠΊΠ° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ / Π°Ρ€Ρ…ΠΈΠ²Π°, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°ΠΈ . Π’Π°ΠΊΠ°, ΠΊΠ»ΡƒΡ‡Π½Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° Π½Π° систСмот Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½ΠΈ Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси.

Π—Π° погодност, Π³ΠΎ користимС Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΡ‚ β€žΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚β€œ Π²ΠΎ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΊΠ°ΠΊΠΎ Π½Π΅ΠΊΠ°ΠΊΠ²Π° Π°ΠΏΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° Π½Π° Π·Π±ΠΈΡ€ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Ρ‚ΠΈ со Π·Π°Π΅Π΄Π½ΠΈΡ‡ΠΊΠΈ ΠΊΠ»ΡƒΡ‡ со кој ΠΌΠΎΠΆΠ΅ Π΄Π° сС β€žΠΏΠΎΠ²Ρ€Π·Π΅ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Ρ‚Π΅ΠΊβ€œ.
Но, ΡˆΡ‚ΠΎ Π΅ со Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°? На ΠΊΡ€Π°Ρ˜ΠΎΡ‚ Π½Π° ΠΊΡ€Π°ΠΈΡˆΡ‚Π°Ρ‚Π°, Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π° ΠΎΠ΄ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмот, која Π΅ β€žΠΏΡ€Π΅ΡΠ΅Ρ‡Π΅Π½Π°β€œ Π½Π° Π΄Π΅Π»ΠΎΠ²ΠΈ НЕ ΠΏΠΎ Π±Π°Ρ€Π°ΡšΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚, Ρ‚ΡƒΠΊΡƒ ΠΏΠΎΠ΄ влијаниС Π½Π° сосСма Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈ:

  • ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ Π½Π° Π·Π°ΠΊΠΎΠ½ΠΎΡ‚ Π½Π° КонвСј;
  • ΠΊΠ°ΠΊΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° потсистСми ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ Ρ€Π°Π·Π²ΠΈΠ΅Π½ΠΈ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ;
  • ΠΏΠΎ Π΄ΠΈΡΠΊΡ€Π΅Ρ†ΠΈΡ˜Π° Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ‚, Π²Ρ€Π· основа Π½Π° Π½Π΅Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ Π±Π°Ρ€Π°ΡšΠ°.

ΠŸΠΎΡΡ‚ΠΎΠΈ Π³ΠΎΠ»Π΅ΠΌΠΎ ΠΈΡΠΊΡƒΡˆΠ΅Π½ΠΈΠ΅ Π΄Π° сС ΠΎΠ΄Π²ΠΎΠΈ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΎΠ΄ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Π³Π»Π°Π²Π½ΠΈΠΎΡ‚ Ρ‚Π΅ΠΊ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°, Π·Π° Π΄Π° Π½Π΅ сС Π·Π°Π³Π°Π΄ΠΈ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° со Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΡšΠ΅ ΠΈ Π΄Π° сС ослободи Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΎΠ΄ ΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π΄Π° Π½Π°Π²Π»Π΅Π³ΡƒΠ²Π° Π²ΠΎ спСцификитС Π½Π° архитСктонскиот пСјзаТ Π½Π° систСмот. Овој пристап ΠΈΠΌΠ° Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ Π½Π° прСдности, Π½ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ‚Π° ја ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° нССфСктивност:

  • Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ со ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΎΠ±ΠΈΡ‡Π½ΠΎ сС Π²Ρ€Π°ΡœΠ° Π½Π° Π½Π°Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΡ‚Π΅ ΠΎΠΏΡ†ΠΈΠΈ Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ° Π½Π° синхрони ΠΏΠΎΠ²ΠΈΡ†ΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° ΠΏΡ€ΠΎΡˆΠΈΡ€ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ ΡΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π³Π»Π°Π²Π½ΠΈΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ Ρ‚Π΅ΠΊ (нСдостатоцитС Π½Π° синхроната ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° сС дискутирани ΠΏΠΎΠ΄ΠΎΠ»Ρƒ);
  • Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΈΡ‚Π΅ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° сè ΡƒΡˆΡ‚Π΅ ΠΏΡ€ΠΎΠ΄ΠΈΡ€Π°Π°Ρ‚ Π²ΠΎ основната Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΊΠΎΠ³Π° Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ потсистСм;
  • Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ја ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΈ лСсно ΠΌΠΎΠΆΠ΅ Π΄Π° ја ΠΏΡ€Π΅ΠΊΠΈΠ½Π΅ со ΠΌΠ΅Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΎΡ‚ Ρ‚Π΅ΠΊ;
  • систСмот прСстанува Π΄Π° Π±ΠΈΠ΄Π΅ СдинствСна Ρ†Π΅Π»ΠΈΠ½Π° ΠΎΠ΄ Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° корисникот, β€žΡˆΠ΅Π²ΠΎΠ²ΠΈΡ‚Π΅β€œ ΠΌΠ΅Ρ“Ρƒ потсистСмитС стануваат Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²ΠΈ ΠΈ сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ Π½Π΅ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ кориснички ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΡˆΡ‚ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΡ€Π° прСнос Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ Π΅Π΄Π΅Π½ потсистСм Π²ΠΎ Π΄Ρ€ΡƒΠ³.

Π”Ρ€ΡƒΠ³ пристап Π΅ Π΄Π° сС Ρ€Π°Π·Π³Π»Π΅Π΄Π°Π°Ρ‚ интСграцискитС ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΠΈ ΠΊΠ°ΠΊΠΎ составСн Π΄Π΅Π» ΠΎΠ΄ основната Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΎΡ‚ Ρ‚Π΅ΠΊ. Π—Π° Π΄Π° сС спрСчи Π²Ρ€Ρ‚ΠΎΠ³Π»Π°Π²ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°ΡšΠ΅Ρ‚ΠΎ Π½ΠΎΠ²ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΠΈ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ лСсно ΠΈ Π±Π΅Π· Π½Π°ΠΏΠΎΡ€, со ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° моТност Π΄Π° сС ΠΈΠ·Π±Π΅Ρ€Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Ова Π΅ ΠΏΠΎΡ‚Π΅ΡˆΠΊΠΎ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ ΡˆΡ‚ΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π°: Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π° ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ моќна Π·Π° Π΄Π° ΠΌΡƒ ја ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π½Π° корисникот ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π°Ρ‚Π° разновидност Π½Π° ΠΎΠΏΡ†ΠΈΠΈ Π·Π° нСјзина ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°, Π±Π΅Π· Π΄Π° ΠΌΡƒ Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ β€žΠ΄Π° си ΠΏΡƒΠΊΠ° Π²ΠΎ Π½ΠΎΠ³Π°β€œ. Има ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΡ€Π°ΡˆΠ°ΡšΠ° Π½Π° ΠΊΠΎΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΡ‚ ΠΌΠΎΡ€Π° Π΄Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈ Π²ΠΎ контСкст Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°, Π½ΠΎ Π·Π° ΠΊΠΎΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° размислува Π²ΠΎ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° сСкојднСвна Ρ€Π°Π±ΠΎΡ‚Π°: Π³Ρ€Π°Π½ΠΈΡ†ΠΈ Π½Π° трансакциитС, конзистСнтност, атомичност, бСзбСдност, ΡΠΊΠ°Π»ΠΈΡ€Π°ΡšΠ΅, ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ ΠΈ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π° Π½Π° рСсурси, Ρ€ΡƒΡ‚ΠΈΡ€Π°ΡšΠ΅, ΠΌΠ°Ρ€ΡˆΠ°Π»ΠΈΡ€Π°ΡšΠ΅, Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ†ΠΈΡ˜Π° ΠΈ ΠΏΡ€Π΅Ρ„Ρ€Π»ΡƒΠ²Π°ΡšΠ΅ контСксти, ΠΈΡ‚Π½. НСопходно Π΅ Π΄Π° ΠΈΠΌ сС ΠΏΠΎΠ½ΡƒΠ΄Π°Ρ‚ Π½Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Сдноставни шаблони Π·Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° Π²ΠΎ ΠΊΠΎΠΈ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π½Π° ситС Ρ‚Π°ΠΊΠ²ΠΈ ΠΏΡ€Π°ΡˆΠ°ΡšΠ° сС вСќС скриСни. ОвиС шаблони ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π±Π΅Π·Π±Π΅Π΄Π½ΠΈ: Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° сС ΠΌΠ΅Π½ΡƒΠ²Π° ΠΌΠ½ΠΎΠ³Ρƒ чСсто, ΡˆΡ‚ΠΎ Π³ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π° Ρ€ΠΈΠ·ΠΈΠΊΠΎΡ‚ ΠΎΠ΄ Π²ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠΊΠΈ, Ρ†Π΅Π½Π°Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΌΠΎΡ€Π° Π΄Π° останС Π½Π° ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ ниско Π½ΠΈΠ²ΠΎ.

Но, ΠΊΠ°ΠΊΠ²Π° врска ΠΈΠΌΠ° BPM со Ρ‚ΠΎΠ°? ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ ΠΌΠ½ΠΎΠ³Ρƒ ΠΎΠΏΡ†ΠΈΠΈ Π·Π° ΡΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΎΡ‚ Ρ‚Π΅ΠΊ...
Навистина, Π΄Ρ€ΡƒΠ³Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠΏΡƒΠ»Π°Ρ€Π½Π° Π²ΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° - ΠΏΡ€Π΅ΠΊΡƒ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΎΡ‚ Π½Π° Ρ‚Ρ€Π°Π½Π·ΠΈΡ†ΠΈΡ˜Π° Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±ΠΈ ΠΈ ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°Ρ‡ΠΈΡ‚Π΅ со Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π·Π° Ρ‚Ρ€Π°Π½Π·ΠΈΡ†ΠΈΠΈ. Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜, ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° ΡˆΡ‚ΠΎ ја ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»Π½Π°Ρ‚Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΡ˜Π° Π½Π° β€žΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΡ‚β€œ Π²ΠΎ Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π½Π° самиот β€žΠ΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚β€œ.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° BPM стил
Π’Π°ΠΊΠ° ΠΈΠ·Π³Π»Π΅Π΄Π° процСсот Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚

ΠŸΠΎΠΏΡƒΠ»Π°Ρ€Π½ΠΎΡΡ‚Π° Π½Π° ΠΎΠ²Π°Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° сС Π΄ΠΎΠ»ΠΆΠΈ Π½Π° Ρ€Π΅Π»Π°Ρ‚ΠΈΠ²Π½Π°Ρ‚Π° Сдноставност ΠΈ Π±Ρ€Π·ΠΈΠ½Π° Π½Π° создавањС Π»ΠΈΠ½Π΅Π°Ρ€Π½ΠΈ Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси. ΠœΠ΅Ρ“ΡƒΡ‚ΠΎΠ°, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ софтвСрскитС систСми ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎ стануваат послоТСни, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ Π΄Π΅Π» ΠΎΠ΄ Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс растС ΠΈ станува покомплСксСн. Има ΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΎΠ΄ Ρ€Π°Π·Π³Ρ€Π°Π΄ΡƒΠ²Π°ΡšΠ΅, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Π΄Π΅Π»ΠΎΠ²ΠΈ ΠΎΠ΄ процСси, ΠΊΠ°ΠΊΠΎ ΠΈ процСси Π½Π° Ρ€Π°Π·Π³Ρ€Π°Π½ΡƒΠ²Π°ΡšΠ΅ Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ сСкоја Π³Ρ€Π°Π½ΠΊΠ° сС ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ. Π’ΠΎ Ρ‚Π°ΠΊΠ²ΠΈ услови, Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π° станува Π½Π΅Π·Π³ΠΎΠ΄Π½Π°, Π° Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΎΡ‚ Π·Π° Ρ‚Ρ€Π°Π½Π·ΠΈΡ†ΠΈΡ˜Π° Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° ја Π³ΡƒΠ±ΠΈ ΡΠ²ΠΎΡ˜Π°Ρ‚Π° информациска содрТина (ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½ΠΈΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΠΈ Π²ΠΎΠΎΠΏΡˆΡ‚ΠΎ Π½Π΅ сС Ρ€Π΅Ρ„Π»Π΅ΠΊΡ‚ΠΈΡ€Π°Π°Ρ‚ Π½Π° Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠΎΡ‚).

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° BPM стил
Π’Π°ΠΊΠ° ΠΈΠ·Π³Π»Π΅Π΄Π° процСсот ΠΏΠΎ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡƒΠ²Π°ΡšΠ° Π½Π° ΠΏΠΎΡ˜Π°ΡΠ½ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π°.

Π˜Π·Π»Π΅Π·ΠΎΡ‚ ΠΎΠ΄ ΠΎΠ²Π°Π° ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π° бСшС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΌΠΎΡ‚ΠΎΡ€ΠΎΡ‚ jBPM Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈ со најслоТСни Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси. На ΠΊΡ€Π°Ρ‚ΠΎΠΊ Ρ€ΠΎΠΊ, ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ имашС ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ успСх: стана ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π°Ρ‚ слоТСни Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси Π΄ΠΎΠ΄Π΅ΠΊΠ° сС ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π° ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π΅Π½ ΠΈ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π΅Π½ Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌ Π²ΠΎ ΠΎΠ·Π½Π°ΠΊΠ°Ρ‚Π° BPMN2.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° BPM стил
Мал Π΄Π΅Π» ΠΎΠ΄ слоТСн Π΄Π΅Π»ΠΎΠ²Π΅Π½ процСс

На Π΄ΠΎΠ»Π³ Ρ€ΠΎΠΊ, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π΅ Π³ΠΈ ΠΎΠΏΡ€Π°Π²Π΄Π° ΠΎΡ‡Π΅ΠΊΡƒΠ²Π°ΡšΠ°Ρ‚Π°: високиот Ρ‚Ρ€ΡƒΠ΄ΠΎΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΡ‚Π΅Ρ‚ Π½Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ΅ Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси ΠΏΡ€Π΅ΠΊΡƒ Π²ΠΈΠ·ΡƒΠ΅Π»Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π°ΡˆΠ΅ Π΄Π° сС постигнат ΠΏΡ€ΠΈΡ„Π°Ρ‚Π»ΠΈΠ²ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π·Π° продуктивност, Π° самата Π°Π»Π°Ρ‚ΠΊΠ° стана Π΅Π΄Π½Π° ΠΎΠ΄ Π½Π°Ρ˜Π½Π΅Π΄ΠΎΠΏΠ°Π΄Π½Π°Ρ‚ΠΈΡ‚Π΅ ΠΌΠ΅Ρ“Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅. ИмашС ΠΏΠΎΠΏΠ»Π°ΠΊΠΈ ΠΈ Π·Π° Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° структура Π½Π° ΠΌΠΎΡ‚ΠΎΡ€ΠΎΡ‚, ΡˆΡ‚ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ појава Π½Π° ΠΌΠ½ΠΎΠ³Ρƒ β€žΠ·Π°ΠΊΡ€ΠΏΠΈβ€œ ΠΈ β€žΠΏΠ°Ρ‚Π΅Ρ€ΠΈΡ†ΠΈβ€œ.

Π“Π»Π°Π²Π½ΠΈΠΎΡ‚ ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π΅Π½ аспСкт Π½Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° jBPM бСшС свСсноста Π·Π° ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΠ²ΠΊΠΈΡ‚Π΅ ΠΈ ΡˆΡ‚Π΅Ρ‚ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΏΠΎΡΡ‚ΠΎΠ΅ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс. Ја Π²ΠΈΠ΄ΠΎΠ²ΠΌΠ΅ ΠΈ моТноста Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ процСсСн пристап Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° слоТСни ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ асинхрони ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅ΠΊΡƒ сигнали ΠΈ ΠΏΠΎΡ€Π°ΠΊΠΈ. ΠŸΡ€ΠΈΡΡƒΡΡ‚Π²ΠΎΡ‚ΠΎ Π½Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° ΠΈΠ³Ρ€Π° ΠΊΠ»ΡƒΡ‡Π½Π° ΡƒΠ»ΠΎΠ³Π° Π²ΠΎ ΠΎΠ²Π°.

Π’Ρ€Π· основа Π½Π° Π³ΠΎΡ€Π΅Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΡ‚ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π·Π°ΠΊΠ»ΡƒΡ‡ΠΈΠΌΠ΅: ΠŸΡ€ΠΎΡ†Π΅ΡΠ½ΠΈΠΎΡ‚ пристап Π²ΠΎ стилот BPM Π½ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° Ρ€Π΅ΡˆΠΈΠΌΠ΅ ΡˆΠΈΡ€ΠΎΠΊ опсСг Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π° Π΄Π° Π³ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ сè покомплСкснитС Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси, Ρ…Π°Ρ€ΠΌΠΎΠ½ΠΈΡ‡Π½ΠΎ Π΄Π° Π³ΠΈ Π²ΠΊΠ»ΠΎΠΏΠΈΠΌΠ΅ активноститС Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π²ΠΎ ΠΎΠ²ΠΈΠ΅ процСси ΠΈ Π΄Π° ја ΠΎΠ΄Ρ€ΠΆΠΈΠΌΠ΅ способноста Π·Π° Π²ΠΈΠ·ΡƒΠ΅Π»Π½ΠΎ ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ процСс Π²ΠΎ соодвСтна Π½ΠΎΡ‚Π°Ρ†ΠΈΡ˜Π°.

НСдостатоци Π½Π° синхронитС ΠΏΠΎΠ²ΠΈΡ†ΠΈ ΠΊΠ°ΠΊΠΎ шСма Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°

Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½Π°Ρ‚Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° сС однСсува Π½Π° Π½Π°Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΈΠΎΡ‚ Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‡ΠΊΠΈ ΠΏΠΎΠ²ΠΈΠΊ. Π•Π΄Π΅Π½ потсистСм Π΄Π΅Π»ΡƒΠ²Π° ΠΊΠ°ΠΊΠΎ сСрвСрска страна ΠΈ Π³ΠΎ ΠΈΠ·Π»ΠΎΠΆΡƒΠ²Π° API со ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄. Π”Ρ€ΡƒΠ³ потсистСм Π΄Π΅Π»ΡƒΠ²Π° ΠΊΠ°ΠΊΠΎ клиСнтска страна ΠΈ Π²ΠΎ вистинско Π²Ρ€Π΅ΠΌΠ΅ сС Ρ˜Π°Π²ΡƒΠ²Π° ΠΈ Π³ΠΎ Ρ‡Π΅ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚. Π’ΠΎ зависност ΠΎΠ΄ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмот, странитС Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚ ΠΈ сСрвСрот ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС Π»ΠΎΡ†ΠΈΡ€Π°Π°Ρ‚ ΠΈΠ»ΠΈ Π²ΠΎ иста Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΈ процСс, ΠΈΠ»ΠΈ Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜, Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° RPC ΠΈ Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠ°Ρ€ΡˆΠ΅Π»ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ ΠΎΠ΄ ΠΏΠΎΠ²ΠΈΠΊΠΎΡ‚.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° BPM стил

Овој ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΈΠΌΠ° ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π³ΠΎΠ»Π΅ΠΌ сСт Π½Π° нСдостатоци, Π½ΠΎ Ρ‚ΠΎΡ˜ Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΡˆΠΈΡ€ΠΎΠΊΠΎ користСн Π²ΠΎ пракса ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° Сдноставност. Π‘Ρ€Π·ΠΈΠ½Π°Ρ‚Π° Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° ΠΏΠ»Π΅Π½ΠΈ ΠΈ Π²Π΅ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΡƒΠ²Π° Π΄Π° ја користитС ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΎ услови Π½Π° ΠΏΡ€ΠΈΡ‚ΠΈΡΠΊΠ°ΡšΠ΅ Π½Π° Ρ€ΠΎΠΊΠΎΠ²ΠΈ, Π·Π°ΠΏΠΈΡˆΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎ Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈ Π΄ΠΎΠ»Π³. Но, сС случува ΠΈ нСискуснитС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Π΄Π° Π³ΠΎ користат нСсвСсно, Сдноставно Π½Π΅ ΡΡ„Π°ΡœΠ°Ρ˜ΡœΠΈ Π³ΠΈ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ послСдици.

ΠŸΠΎΠΊΡ€Π°Ρ˜ Π½Π°Ρ˜ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎΡ‚ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° поврзаноста Π½Π° потсистСмитС, ΠΈΠΌΠ° ΠΈ ΠΏΠΎΠΌΠ°Π»ΠΊΡƒ ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ со β€žΡ€Π°ΡΡ‚Π΅Ρ‡ΠΊΠΈΡ‚Π΅β€œ ΠΈ β€žΡ€Π°ΡΡ‚Π΅Ρ‡ΠΊΠΈΡ‚Π΅β€œ трансакции. Навистина, Π°ΠΊΠΎ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½Π΅ΠΊΠΎΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ, Ρ‚ΠΎΠ³Π°Ρˆ трансакциитС Π½Π΅ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚, Π° трансакциитС, ΠΏΠ°ΠΊ, Π±Π»ΠΎΠΊΠΈΡ€Π°Π°Ρ‚ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ рСсурси Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° засСгнати ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ. Односно, Π΄ΠΎΠ΄Π΅ΠΊΠ° Π΅Π΄Π΅Π½ потсистСм Π½Π΅ Ρ‡Π΅ΠΊΠ° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΠΎΡ‚, Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ја Π·Π°Π²Ρ€ΡˆΠΈ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° ΠΈ Π΄Π° Π³ΠΈ отстрани Π±Ρ€Π°Π²ΠΈΡ‚Π΅. Ова Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π³ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π° Ρ€ΠΈΠ·ΠΈΠΊΠΎΡ‚ ΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ:

  • ΠžΠ΄Π³ΠΎΠ²ΠΎΡ€Π½ΠΎΡΡ‚Π° Π½Π° систСмот Π΅ ΠΈΠ·Π³ΡƒΠ±Π΅Π½Π°, корисницитС Ρ‡Π΅ΠΊΠ°Π°Ρ‚ Π΄ΠΎΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈ Π½Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ°Ρ‚Π°;
  • сСрвСрот Π³Π΅Π½Π΅Ρ€Π°Π»Π½ΠΎ прСстанува Π΄Π° ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π° Π½Π° Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π½Π° корисницитС ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΏΡ€Π΅Π½Π°Ρ‚Ρ€ΡƒΠΏΠ°Π½ΠΈΠΎΡ‚ Π±Π°Π·Π΅Π½ Π½Π° нишки: ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ‚ Π΄Π΅Π» ΠΎΠ΄ Π½ΠΈΡˆΠΊΠΈΡ‚Π΅ сС Π·Π°ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ Π½Π° рСсурс ΠΎΠΊΡƒΠΏΠΈΡ€Π°Π½ ΠΎΠ΄ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°;
  • ΠŸΠΎΡ‡Π½ΡƒΠ²Π°Π°Ρ‚ Π΄Π° сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ ΡœΠΎΡ€-сокак: Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎΡΡ‚Π° Π·Π° Π½ΠΈΠ²Π½ΠΎ ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ силно зависи ΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Ρ‚Ρ€Π°Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° трансакциитС, износот Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ Π±Ρ€Π°Π²ΠΈΡ‚Π΅ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΈ Π²ΠΎ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π°;
  • сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ Π·Π° истСкот Π½Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π°;
  • сСрвСрот β€žΠ½Π΅ ΡƒΡΠΏΠ΅Π²Π°β€œ со OutOfMemory Π°ΠΊΠΎ Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π±Π°Ρ€Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΌΠ΅Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π° присуството Π½Π° синхрони ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π³ΠΎ ΠΎΡ‚Π΅ΠΆΠ½ΡƒΠ²Π° Π΄Π΅Π»Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° β€žΠΏΠΎΠ»Π΅ΡΠ½ΠΈβ€œ трансакции.

Од архитСктонска Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ°, ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° Π½Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‡ΠΊΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π΄ΠΎΠ²Π΅Π΄ΡƒΠ²Π° Π΄ΠΎ Π³ΡƒΠ±Π΅ΡšΠ΅ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π°Ρ‚Π° Π²Ρ€Π· ΠΊΠ²Π°Π»ΠΈΡ‚Π΅Ρ‚ΠΎΡ‚ Π½Π° ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅Ρ‡Π½ΠΈΡ‚Π΅ потсистСми: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄Π°Ρ‚ Ρ†Π΅Π»Π½ΠΈΡ‚Π΅ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ Π·Π° ΠΊΠ²Π°Π»ΠΈΡ‚Π΅Ρ‚ Π½Π° Π΅Π΄Π΅Π½ потсистСм ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΎ ΠΎΠ΄ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π·Π° ΠΊΠ²Π°Π»ΠΈΡ‚Π΅Ρ‚ Π½Π° Π΄Ρ€ΡƒΠ³ потсистСм. Ако потсистСмитС сС Ρ€Π°Π·Π²ΠΈΠ²Π°Π°Ρ‚ ΠΎΠ΄ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ‚ΠΈΠΌΠΎΠ²ΠΈ, ΠΎΠ²Π° Π΅ Π³ΠΎΠ»Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ стануваат ΡƒΡˆΡ‚Π΅ поинтСрСсни Π°ΠΊΠΎ потсистСмитС ΡˆΡ‚ΠΎ сС ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π°Ρ‚ сС Π²ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ синхрони ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π° Π΄Π²Π΅Ρ‚Π΅ страни. Како Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ трансакционалност Π½Π° ΠΎΠ²ΠΈΠ΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ?

Ако сС Π½Π°ΠΏΡ€Π°Π²Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ посСбни трансакции, Ρ‚ΠΎΠ³Π°Ρˆ ќС Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΡ‚Π΅ сигурно ΡΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со исклучоци ΠΈ ΠΊΠΎΠΌΠΏΠ΅Π½Π·Π°Ρ†ΠΈΡ˜Π°, Π° Ρ‚ΠΎΠ° цСлосно ја Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° Π³Π»Π°Π²Π½Π°Ρ‚Π° ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΠ²ΠΊΠ° ΠΎΠ΄ синхронитС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ - Сдноставноста.

ДистрибуиранитС трансакции исто Ρ‚Π°ΠΊΠ° Π΄ΠΎΠ°Ρ“Π°Π°Ρ‚ Π½Π° ΡƒΠΌ, Π½ΠΎ Π½ΠΈΠ΅ Π½Π΅ Π³ΠΈ користимС Π²ΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π°: Ρ‚Π΅ΡˆΠΊΠΎ Π΅ Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ сигурност.

β€žΠ‘Π°Π³Π°β€œ ΠΊΠ°ΠΊΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚ со Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π°

Π‘ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΠ΅Π½Π°Ρ‚Π° популарност Π½Π° микросСрвиситС, ΠΏΠΎΠ±Π°Ρ€ΡƒΠ²Π°Ρ‡ΠΊΠ°Ρ‚Π° Π·Π° Π¨Π΅ΠΌΠ° Π½Π° сагата.

Овој ΠΌΠΎΠ΄Π΅Π» ΡΠΎΠ²Ρ€ΡˆΠ΅Π½ΠΎ Π³ΠΈ Ρ€Π΅ΡˆΠ°Π²Π° Π³ΠΎΡ€Π΅Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π΄ΠΎΠ»Π³ΠΈΡ‚Π΅ трансакции, Π° исто Ρ‚Π°ΠΊΠ° Π³ΠΈ ΠΏΡ€ΠΎΡˆΠΈΡ€ΡƒΠ²Π° моТноститС Π·Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° Π½Π° систСмот ΠΎΠ΄ страната Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°: ΠΊΠΎΠΌΠΏΠ΅Π½Π·Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΏΠΎ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½Π°Ρ‚Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Π³ΠΎ Π²Ρ€Π°Ρ‚ΠΈ систСмот Π²ΠΎ ΠΏΡ€Π²ΠΎΠ±ΠΈΡ‚Π½Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°, Ρ‚ΡƒΠΊΡƒ Π΄Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π°Π»Ρ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π΅Π½ ΠΏΠ°Ρ‚ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Ова исто Ρ‚Π°ΠΊΠ° Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Ρ€ΡˆΠ΅Π½ΠΈΡ‚Π΅ Ρ‡Π΅ΠΊΠΎΡ€ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΊΠΎΠ³Π° сС ΠΎΠ±ΠΈΠ΄ΡƒΠ²Π°Ρ‚Π΅ Π΄Π° Π³ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅Ρ‚Π΅ процСсот Π΄ΠΎ β€žΠ΄ΠΎΠ±Π°Ρ€β€œ ΠΊΡ€Π°Ρ˜.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Π²ΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΈΡ‚Π΅ систСми ΠΎΠ²Π°Π° шСма Π΅ исто Ρ‚Π°ΠΊΠ° Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Π° ΠΊΠΎΠ³Π° станува Π·Π±ΠΎΡ€ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° Π»Π°Π±Π°Π²ΠΎ ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ потсистСми ΠΈ сС Π·Π°Π±Π΅Π»Π΅ΠΆΡƒΠ²Π°Π°Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ ΠΎΠ΄ Π΄ΠΎΠ»Π³ΠΎΡ‚Ρ€Π°Ρ˜Π½ΠΈΡ‚Π΅ трансакции ΠΈ соодвСтнитС Π·Π°ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ° Π½Π° рСсурситС.

Π’ΠΎ однос Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси Π²ΠΎ стилот Π½Π° BPM, ΠΈΠ·Π»Π΅Π³ΡƒΠ²Π° Π΄Π΅ΠΊΠ° Π΅ ΠΌΠ½ΠΎΠ³Ρƒ лСсно Π΄Π° сС ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π°Ρ‚ β€žSagasβ€œ: ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅Ρ‡Π½ΠΈΡ‚Π΅ Ρ‡Π΅ΠΊΠΎΡ€ΠΈ Π½Π° β€žSagaβ€œ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°Π²Π΅Π΄Π°Ρ‚ ΠΊΠ°ΠΊΠΎ активности Π²ΠΎ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс, Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс исто Ρ‚Π°ΠΊΠ° ја ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π° Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° β€žΠ‘Π°Π³Π°Ρ‚Π°β€œ. Односно, Π½Π΅ Π±Π°Ρ€Π°ΠΌΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΎΠ² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΡ˜Π°. Π‘Γ¨ ΡˆΡ‚ΠΎ Π²ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΅ Π±Ρ€ΠΎΠΊΠ΅Ρ€ Π·Π° ΠΏΠΎΡ€Π°ΠΊΠΈ ΡˆΡ‚ΠΎ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° β€žΠ±Π°Ρ€Π΅ΠΌ Π΅Π΄Π½Π°Ρˆβ€œ Π³Π°Ρ€Π°Π½Ρ†ΠΈΠΈ ΠΊΠ°ΠΊΠΎ транспорт.

Но, ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ° ΠΈ своја β€žΡ†Π΅Π½Π°β€œ:

  • Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° станува послоТСна: Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠΎΠΌΠΏΠ΅Π½Π·Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°;
  • ќС Π±ΠΈΠ΄Π΅ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ Π΄Π° сС Π½Π°ΠΏΡƒΡˆΡ‚ΠΈ цСлосната конзистСнтност, ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ особСно чувствитСлно Π·Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΈ систСми;
  • АрхитСктурата станува ΠΌΠ°Π»ΠΊΡƒ послоТСна ΠΈ сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΠΎΠ΄ Π±Ρ€ΠΎΠΊΠ΅Ρ€ Π·Π° ΠΏΠΎΡ€Π°ΠΊΠΈ;
  • ќС Π±ΠΈΠ΄Π°Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° слСдСњС ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° (ΠΈΠ°ΠΊΠΎ Π³Π΅Π½Π΅Ρ€Π°Π»Π½ΠΎ ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Ρ€ΠΎ: ΠΊΠ²Π°Π»ΠΈΡ‚Π΅Ρ‚ΠΎΡ‚ Π½Π° систСмската услуга ќС сС Π·Π³ΠΎΠ»Π΅ΠΌΠΈ).

Π—Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΈ систСми, ΠΎΠΏΡ€Π°Π²Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° "Sag" Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΡƒ ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ. Π—Π° микроуслуги ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ SOA, ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Π½Π°Ρ˜Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ вСќС ΠΈΠΌΠ° посрСдник, Π° цСлосната конзистСнтност Π΅ ΠΆΡ€Ρ‚Π²ΡƒΠ²Π°Π½Π° Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚, ΠΏΡ€ΠΈΠ΄ΠΎΠ±ΠΈΠ²ΠΊΠΈΡ‚Π΅ ΠΎΠ΄ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ²Π°Π° шСма ΠΌΠΎΠΆΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π³ΠΈ Π½Π°Π΄ΠΌΠΈΠ½Π°Ρ‚ нСдостатоцитС, особСно Π°ΠΊΠΎ постои ΡƒΠ΄ΠΎΠ±Π΅Π½ API Π²ΠΎ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½ΠΈΠ²ΠΎ.

ΠšΠ°ΠΏΡΡƒΠ»ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΠΎ микросСрвиситС

Кога ΠΏΠΎΡ‡Π½Π°Π²ΠΌΠ΅ Π΄Π° СкспСримСнтирамС со микросСрвиситС, сС појави Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅: ΠΊΠ°Π΄Π΅ Π΄Π° сС постави Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ Π²ΠΎ однос Π½Π° услугата која ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° ΠΎΠΏΡΡ‚ΠΎΡ˜ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚?

Кога сС Π³Π»Π΅Π΄Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ BPMS, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅Π΄Π° Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π΄Π° сС ΠΎΠ΄Π΄Π΅Π»ΠΈ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΠ΄ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½Π°Ρ‚Π°: Π΄Π° сС создадС слој ΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈ микросСрвиси нСзависни ΠΎΠ΄ Π΄ΠΎΠΌΠ΅Π½ ΠΊΠΎΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π°Ρ‚ срСдина ΠΈ ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ ΠΈ Π΄ΠΈΠ·Π°Ρ˜Π½ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎΡΡ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ ΠΊΠ°ΠΊΠΎ посСбСн слој ΠΎΠ΄ ΠΌΠ½ΠΎΠ³Ρƒ Сдноставни ΠΈ лСсни микросСрвиси. Π”Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси Π²ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜ Π²Ρ€ΡˆΠ°Ρ‚ ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° услугитС Π½Π° ΡΠ»ΠΎΡ˜ΠΎΡ‚ Π½Π° упорност.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° BPM стил

Овој пристап ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ Π³ΠΎΠ»Π΅ΠΌΠ° прСдност: ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја Π·Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ функционалноста Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΊΠΎΠ»ΠΊΡƒ ΡˆΡ‚ΠΎ сакатС, Π° само соодвСтниот слој Π½Π° микросСрвиси Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ќС станС β€žΠ΄Π΅Π±Π΅Π»β€œ ΠΎΠ΄ ΠΎΠ²Π°. Π”Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси ΠΎΠ΄ кој Π±ΠΈΠ»ΠΎ Π΄ΠΎΠΌΠ΅Π½ вСднаш ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° ја користат Π½ΠΎΠ²Π°Ρ‚Π° функционалност Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° вСднаш ΡˆΡ‚ΠΎΠΌ ќС сС Π°ΠΆΡƒΡ€ΠΈΡ€Π°.

ΠŸΠΎΠ΄Π΅Ρ‚Π°Π»Π½Π° ΡΡ‚ΡƒΠ΄ΠΈΡ˜Π° ΠΎΡ‚ΠΊΡ€ΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ нСдостатоци Π½Π° овој пристап:

  • услуга Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° која ја ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³Ρƒ Π΄ΠΎΠΌΠ΅Π½ΠΈ одСднаш носи Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ€ΠΈΠ·ΠΈΡ†ΠΈ ΠΊΠ°ΠΊΠΎ СдинствСна Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° нСуспСх. ЧСститС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π³ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°Π°Ρ‚ Ρ€ΠΈΠ·ΠΈΠΊΠΎΡ‚ ΠΎΠ΄ Π³Ρ€Π΅ΡˆΠΊΠΈ ΡˆΡ‚ΠΎ Π΄ΠΎΠ²Π΅Π΄ΡƒΠ²Π°Π°Ρ‚ Π΄ΠΎ нСуспСси Π½ΠΈΠ· Ρ†Π΅Π»ΠΈΠΎΡ‚ систСм;
  • ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ со пСрформанситС: Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚ΠΈ со Π½Π΅Ρ˜Π·ΠΈΠ½ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΏΡ€Π΅ΠΊΡƒ тСсСн ΠΈ Π±Π°Π²Π΅Π½ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ:
    • ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΡƒΡˆΡ‚Π΅ Сднаш ќС Π±ΠΈΠ΄Π°Ρ‚ ΠΌΠ°Ρ€ΡˆΠ°Π»ΠΈΡ€Π°Π½ΠΈ ΠΈ испумпани Π½ΠΈΠ· ΠΌΡ€Π΅ΠΆΠ½ΠΈΠΎΡ‚ оџак;
    • услугата Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ чСстопати ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° повСќС ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ ΡˆΡ‚ΠΎ Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈΡ‚Π΅ моТности Π·Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈΠΎΡ‚ API Π½Π° услугата;
    • Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ нСзависни Π΄Π΅Π»ΠΎΠ²ΠΈ ΠΎΠ΄ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΌΠΎΠΆΠ°Ρ‚ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎ Π΄Π° Π³ΠΈ Π±Π°Ρ€Π°Π°Ρ‚ иститС ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° (овој ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡƒΠ±Π»Π°ΠΆΠΈ со додавањС Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π·Π° сСсија ΠΊΠΎΠΈ ΠΊΠ΅ΡˆΠΈΡ€Π°Π°Ρ‚ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π½ΠΎ ΠΎΠ²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ја ΠΊΠΎΠΌΠΏΠ»ΠΈΡ†ΠΈΡ€Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° ΠΈ создава ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ со рСлСвантноста Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΈ нСваТСњС Π½Π° ΠΊΠ΅ΡˆΠΎΡ‚);
  • ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ со Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π°:
    • Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси со ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°, ΠΊΠΎΠΈ сС складирани ΠΎΠ΄ услуга Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, Π½Π΅ сС Π²ΠΎ согласност со ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ ΠΈ Π½Π΅ΠΌΠ° лСсни Π½Π°Ρ‡ΠΈΠ½ΠΈ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ Π½Π° овој ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ;
    • ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Π»ΠΎΠΊΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ Π½Π°Π΄Π²ΠΎΡ€ ΠΎΠ΄ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π°: Π°ΠΊΠΎ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ΠΏΡ€Π²ΠΎ ќС ја ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ исправноста Π½Π° Ρ‚Π΅ΠΊΠΎΠ²Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ Π΅ Π΄Π° сС исклучи моТноста Π·Π° ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π²ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Π‘Π»ΠΎΠΊΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π²ΠΎ Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚, Π½ΠΎ Ρ‚Π°ΠΊΠ²ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ носи Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ€ΠΈΠ·ΠΈΡ†ΠΈ ΠΈ ја Π½Π°ΠΌΠ°Π»ΡƒΠ²Π° сСвкупната довСрливост Π½Π° систСмот;
  • Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Ρ‚Π΅ΡˆΠΊΠΎΡ‚ΠΈΠΈ ΠΏΡ€ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ: Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ случаи, услугата Π·Π° упорност ΠΈ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π°Ρ‚ синхроно ΠΈΠ»ΠΈ Π²ΠΎ строга Π½ΠΈΠ·Π°.

На ΠΊΡ€Π°Ρ˜ΠΎΡ‚, ΠΌΠΎΡ€Π°Π²ΠΌΠ΅ Π΄Π° сС Π²Ρ€Π°Ρ‚ΠΈΠΌΠ΅ Π½Π° основитС: Π΄Π° Π³ΠΈ СнкапсулирамС ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ ΠΈ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ Π²ΠΎ Π΅Π΄Π½Π° микросСрвис. Овој пристап ја поСдноставува ΠΏΠ΅Ρ€Ρ†Π΅ΠΏΡ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° микросСрвисот ΠΊΠ°ΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° систСмот ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΡƒΠ²Π° Π³ΠΎΡ€Π΅Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Ова исто Ρ‚Π°ΠΊΠ° Π½Π΅ сС Π΄Π°Π²Π° бСсплатно:

  • ΠŸΠΎΡ‚Ρ€Π΅Π±Π½Π° Π΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Π΄ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Π½Π° API Π·Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π° со Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° (особСно, Π·Π° Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄Π°Ρ‚ кориснички активности ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси) ΠΈ услугитС Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° API; Π±Π°Ρ€Π° ΠΏΠΎΠ²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π½Π° API, компатибилноста Π½Π°ΠΏΡ€Π΅Π΄ ΠΈ Π½Π°Π·Π°Π΄;
  • Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ Π΅ Π΄Π° сС Π΄ΠΎΠ΄Π°Π΄Π°Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π·Π° Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ сСкој Ρ‚Π°ΠΊΠΎΠ² микросСрвис, Π° Ρ‚ΠΎΠ° Π΄ΠΎΠ²Π΅Π΄ΡƒΠ²Π° Π΄ΠΎ Π½ΠΎΠ²ΠΈ Π±Π°Ρ€Π°ΡšΠ° Π·Π° Ρ‚Π°ΠΊΠ²ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ: Π»Π΅ΡΠ½ΠΎΡ‚ΠΈΡ˜Π° ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½ΠΈ зависности;
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΈ слСдат Π²Π΅Ρ€Π·ΠΈΠΈΡ‚Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°: Π°ΠΊΠΎ микросСрвисот Π½Π΅ Π΅ Ρ„ΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ Π΄ΠΎΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Ρ‚ΠΎΠ³Π°Ρˆ Π½Π°Ρ˜Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ ќС содрТи застарСна Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅. Ова ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π½Π΅ΠΎΡ‡Π΅ΠΊΡƒΠ²Π°Π½Π° ΠΏΡ€Π΅Ρ‡ΠΊΠ° Π·Π° додавањС Π½ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±Π°Ρ€Π° ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° старата Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Ρ‚Π°ΠΊΠ²Π°Ρ‚Π° услуга Π½Π° Π½ΠΎΠ²ΠΈ Π²Π΅Ρ€Π·ΠΈΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΏΠΎΠΌΠ΅Ρ“Ρƒ Π²Π΅Ρ€Π·ΠΈΠΈ.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° BPM стил

Блој Π½Π° платформски услуги Π΅ исто Ρ‚Π°ΠΊΠ° присутСн Π²ΠΎ Ρ‚Π°ΠΊΠ²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Π½ΠΎ овој слој повСќС Π½Π΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚, Ρ‚ΡƒΠΊΡƒ само Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Ρ˜ΡœΠΈ помошни Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° β€žΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°β€œ. Π’Π°ΠΊΠΎΠ² слој Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π΅Π½ Π½Π΅ само Π·Π° ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° лСсната ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° Π½Π° микросСрвиситС Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚, Ρ‚ΡƒΠΊΡƒ ΠΈ Π·Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ.

На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, корисничкитС активности Π²ΠΎ Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π°Ρ‚ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠœΠ΅Ρ“ΡƒΡ‚ΠΎΠ°, ΠΊΠΎΠ³Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ со Π·Π°Π΄Π°Ρ‡ΠΈ, корисникот ΠΌΠΎΡ€Π° Π΄Π° Π³ΠΈ Π²ΠΈΠ΄ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ ΠΎΠ΄ ситС Π΄ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΎΠΏΡˆΡ‚Π°Ρ‚Π° листа, ΡˆΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° ΠΌΠΎΡ€Π° Π΄Π° ΠΈΠΌΠ° соодвСтна услуга Π·Π° Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, исчистСна ΠΎΠ΄ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚. ΠžΠ΄Ρ€ΠΆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π΅Π½ΠΊΠ°ΠΏΡΡƒΠ»Π°Ρ†ΠΈΡ˜Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΠΎ Ρ‚Π°ΠΊΠΎΠ² контСкст Π΅ доста ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ, Π° ΠΎΠ²Π° Π΅ ΡƒΡˆΡ‚Π΅ Π΅Π΄Π΅Π½ компромис Π½Π° ΠΎΠ²Π°Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси Π½ΠΈΠ· ΠΎΡ‡ΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Како ΡˆΡ‚ΠΎ спомСнавмС ΠΏΠΎΠ³ΠΎΡ€Π΅, Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ апстрахиран ΠΎΠ΄ Ρ‚Π΅Ρ…Π½ΠΈΡ‡ΠΊΠΈΡ‚Π΅ ΠΈ инТСнСрскитС карактСристики Π½Π° ΡΠΏΡ€ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС смСта Π½Π° Π΄ΠΎΠ±Ρ€Π° Ρ€Π°Π·Π²ΠΎΡ˜Π½Π° продуктивност.

АјдС Π΄Π° сС ΠΎΠ±ΠΈΠ΄Π΅ΠΌΠ΅ Π΄Π° Ρ€Π΅ΡˆΠΈΠΌΠ΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Ρ‚Π΅ΠΆΠΎΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°, ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»Π½ΠΎ измислСн Π·Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π°. Ова ќС Π±ΠΈΠ΄Π΅ Π·Π°Π΄Π°Ρ‡Π° β€žΠΈΠ³Ρ€Π°β€œ која Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° Ρ‚Ρ€ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ сСкоја ΠΎΠ΄ Π½ΠΈΠ² Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΎ ΠΈΠΌΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅Π½: β€žapp1β€œ, β€žapp2β€œ, β€žapp3β€œ.

Π’Π½Π°Ρ‚Ρ€Π΅ Π²ΠΎ сСкоја Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° сС лансираат Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси ΠΊΠΎΠΈ ΠΏΠΎΡ‡Π½ΡƒΠ²Π°Π°Ρ‚ Π΄Π° β€žΠΈΠ³Ρ€Π°Π°Ρ‚ со Ρ‚ΠΎΠΏΠΊΠ°β€œ ΠΏΡ€Π΅ΠΊΡƒ автобусот Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°. ΠŸΠΎΡ€Π°ΠΊΠΈΡ‚Π΅ со ΠΈΠΌΠ΅Ρ‚ΠΎ β€žΠ‘ΠΎΠ»β€œ ќС Π΄Π΅Π»ΡƒΠ²Π°Π°Ρ‚ ΠΊΠ°ΠΊΠΎ Ρ‚ΠΎΠΏΠΊΠ°.

ΠŸΡ€Π°Π²ΠΈΠ»Π° Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π°:

  • ΠΏΡ€Π²ΠΈΠΎΡ‚ ΠΈΠ³Ρ€Π°Ρ‡ Π΅ ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚ΠΎΡ€. Вој Π³ΠΈ ΠΏΠΎΠΊΠ°Π½ΡƒΠ²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΈΠ³Ρ€Π°Ρ‡ΠΈ Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π°, ја Π·Π°ΠΏΠΎΡ‡Π½ΡƒΠ²Π° ΠΈΠ³Ρ€Π°Ρ‚Π° ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ја Π·Π°Π²Ρ€ΡˆΠΈ Π²ΠΎ сСкоС Π²Ρ€Π΅ΠΌΠ΅;
  • Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΈΠ³Ρ€Π°Ρ‡ΠΈ Π³ΠΎ ΠΈΠ·Ρ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ своСто учСство Π²ΠΎ ΠΈΠ³Ρ€Π°Ρ‚Π°, сС β€žΠ·Π°ΠΏΠΎΠ·Π½Π°Π²Π°Π°Ρ‚β€œ Π΅Π΄Π½ΠΈ со Π΄Ρ€ΡƒΠ³ΠΈ ΠΈ ΠΏΡ€Π²ΠΈΠΎΡ‚ ΠΈΠ³Ρ€Π°Ρ‡;
  • ΠΏΠΎ Π΄ΠΎΠ±ΠΈΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠΏΠΊΠ°Ρ‚Π°, ΠΈΠ³Ρ€Π°Ρ‡ΠΎΡ‚ ΠΈΠ·Π±ΠΈΡ€Π° Π΄Ρ€ΡƒΠ³ ΠΈΠ³Ρ€Π°Ρ‡ учСсник ΠΈ ΠΌΡƒ ја Π΄ΠΎΠ΄Π°Π²Π° Ρ‚ΠΎΠΏΠΊΠ°Ρ‚Π°. Π‘Π΅ Π±Ρ€ΠΎΠΈ Π²ΠΊΡƒΠΏΠ½ΠΈΠΎΡ‚ Π±Ρ€ΠΎΡ˜ Π½Π° прСноси;
  • БСкој ΠΈΠ³Ρ€Π°Ρ‡ ΠΈΠΌΠ° β€žΠ΅Π½Π΅Ρ€Π³ΠΈΡ˜Π°β€œ која сС Π½Π°ΠΌΠ°Π»ΡƒΠ²Π° со сСкоС додавањС Π½Π° Ρ‚ΠΎΠΏΠΊΠ°Ρ‚Π° ΠΎΠ΄ Ρ‚ΠΎΡ˜ ΠΈΠ³Ρ€Π°Ρ‡. Кога ќС истСчС Π΅Π½Π΅Ρ€Π³ΠΈΡ˜Π°Ρ‚Π°, ΠΈΠ³Ρ€Π°Ρ‡ΠΎΡ‚ ја Π½Π°ΠΏΡƒΡˆΡ‚Π° ΠΈΠ³Ρ€Π°Ρ‚Π°, ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°Ρ˜ΡœΠΈ ΠΎΡ‚ΠΊΠ°Π·;
  • Π°ΠΊΠΎ ΠΈΠ³Ρ€Π°Ρ‡ΠΎΡ‚ останС сам, Ρ‚ΠΎΡ˜ вСднаш Π³ΠΎ Π½Π°Ρ˜Π°Π²ΡƒΠ²Π° своСто Π·Π°ΠΌΠΈΠ½ΡƒΠ²Π°ΡšΠ΅;
  • Кога ситС ΠΈΠ³Ρ€Π°Ρ‡ΠΈ ќС Π±ΠΈΠ΄Π°Ρ‚ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°Π½ΠΈ, ΠΏΡ€Π²ΠΈΠΎΡ‚ ΠΈΠ³Ρ€Π°Ρ‡ ја прогласува ΠΈΠ³Ρ€Π°Ρ‚Π° Π·Π° Π·Π°Π²Ρ€ΡˆΠ΅Π½Π°. Ако ја Π½Π°ΠΏΡƒΡˆΡ‚ΠΈ ΠΈΠ³Ρ€Π°Ρ‚Π° ΠΏΡ€Π΅Π΄Π²Ρ€Π΅ΠΌΠ΅, останува Π΄Π° ја слСди ΠΈΠ³Ρ€Π°Ρ‚Π° Π·Π° Π΄Π° ја Π·Π°Π²Ρ€ΡˆΠΈ.

Π—Π° Π΄Π° Π³ΠΎ Ρ€Π΅ΡˆΠ°ΠΌ овој ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ќС Π³ΠΎ користам Π½Π°ΡˆΠΈΠΎΡ‚ DSL Π·Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси, ΡˆΡ‚ΠΎ Π½ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎ Π΄Π° ја опишСмС Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π²ΠΎ ΠšΠΎΡ‚Π»ΠΈΠ½, со ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΊΠΎΡ‚Π΅Π».

Π”Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс Π½Π° ΠΏΡ€Π²ΠΈΠΎΡ‚ ΠΈΠ³Ρ€Π°Ρ‡ (ΠΏΠΎΠ·Π½Π°Ρ‚ ΠΊΠ°ΠΊΠΎ ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Ρ‚ΠΎΡ€ Π½Π° ΠΈΠ³Ρ€Π°Ρ‚Π°) ќС Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΠΎ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° app1:

класа 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 ќС Π³ΠΎ Π²ΠΊΠ»ΡƒΡ‡ΠΈ Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠΎΡ‚ ΠΈΠ³Ρ€Π°Ρ‡:

класа 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 ќС Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ ΠΈΠ³Ρ€Π°Ρ‡ со ΠΌΠ°Π»ΠΊΡƒ ΠΏΠΎΠΈΠ½Π°ΠΊΠ²ΠΎ ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅: намСсто ΠΏΠΎ случаСн ΠΈΠ·Π±ΠΎΡ€ Π½Π° слСдниот ΠΈΠ³Ρ€Π°Ρ‡, Ρ‚ΠΎΡ˜ ќС Π΄Π΅Ρ˜ΡΡ‚Π²ΡƒΠ²Π° спорСд ΠΊΡ€ΡƒΠΆΠ½ΠΈΠΎΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚Π°ΠΌ:

класа RoundRobin Player

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;
  • Ρ€Π°ΠΊΡƒΠ²Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° дојдовни ΠΏΠΎΡ€Π°ΠΊΠΈ ΠΈ настани ΠΌΠΎΡ€Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ ΠΈ со Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° ΡˆΡ‚ΠΎ ја ΠΌΠ΅Π½ΡƒΠ²Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс: Π°ΠΊΠΎ Ρ‚Π°ΠΊΠ²Π°Ρ‚Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° сС Π²Ρ€Π°Ρ‚ΠΈ Π½Π°Π·Π°Π΄, Ρ‚ΠΎΠ³Π°Ρˆ ΠΏΡ€ΠΈΠ΅ΠΌΠΎΡ‚ Π½Π° ΠΏΠΎΡ€Π°ΠΊΠ°Ρ‚Π° ΠΌΠΎΡ€Π° Π΄Π° сС ΠΎΡ‚ΠΊΠ°ΠΆΠ΅;
  • ΠΏΠΎΡ€Π°ΠΊΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Π° Π΄Π° сС испорачаат ΠΏΠΎΡ€Π°Π΄ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΌΠΎΡ€Π° Π΄Π° сС складираат Π²ΠΎ посСбно ΡΠΊΠ»Π°Π΄ΠΈΡ€Π°ΡšΠ΅ Π”.Π›.К. (Π Π΅Π΄ΠΎΡ‚ Π·Π° ΠΌΡ€Ρ‚Π²ΠΈ Π±ΡƒΠΊΠ²ΠΈ). Π—Π° Ρ‚Π°Π° Ρ†Π΅Π», создадовмС посСбна ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° микросСрвис ΡˆΡ‚ΠΎ Π³ΠΈ складира Ρ‚Π°ΠΊΠ²ΠΈΡ‚Π΅ ΠΏΠΎΡ€Π°ΠΊΠΈ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚Π΅Ρ‚ΠΎ, Π³ΠΈ индСксира ΠΏΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ (Π·Π° Π±Ρ€Π·ΠΎ Π³Ρ€ΡƒΠΏΠΈΡ€Π°ΡšΠ΅ ΠΈ ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΡšΠ΅) ΠΈ ΠΈΠ·Π»ΠΎΠΆΡƒΠ²Π° API Π·Π° глСдањС, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΡ€Π°ΡœΠ°ΡšΠ΅ Π΄ΠΎ Π΄Π΅ΡΡ‚ΠΈΠ½Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° адрСса ΠΈ Π±Ρ€ΠΈΡˆΠ΅ΡšΠ΅ ΠΏΠΎΡ€Π°ΠΊΠΈ. БистСмскитС администратори ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ со ΠΎΠ²Π°Π° услуга ΠΏΡ€Π΅ΠΊΡƒ Π½ΠΈΠ²Π½ΠΈΠΎΡ‚ Π²Π΅Π±-ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ;
  • Π²ΠΎ поставкитС Π½Π° Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΎΡ‚, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΠ΄ΠΈΡ‚Π΅ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡƒΠ²Π°ΡšΠ° Π·Π° испорака ΠΈ ΠΎΠ΄Π»ΠΎΠΆΡƒΠ²Π°ΡšΠ° ΠΏΠΎΠΌΠ΅Ρ“Ρƒ испоракитС Π·Π° Π΄Π° ја Π½Π°ΠΌΠ°Π»ΠΈΡ‚Π΅ Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎΡΡ‚Π° ΠΏΠΎΡ€Π°ΠΊΠΈΡ‚Π΅ Π΄Π° Π²Π»Π΅Π·Π°Ρ‚ Π²ΠΎ DLQ (рСчиси Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС прСсмСтаат ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅Ρ˜ΡΡ‚Π²ΡƒΠ²Π°Ρ‚Π΅ Смпириски ΠΈ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΠ΄ΠΈΡ‚Π΅ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° );
  • ΠŸΡ€ΠΎΠ΄Π°Π²Π½ΠΈΡ†Π°Ρ‚Π° Π½Π° DLQ ΠΌΠΎΡ€Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎ Π΄Π° сС слСди, Π° систСмот Π·Π° слСдСњС ΠΌΠΎΡ€Π° Π΄Π° Π³ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈ систСмскитС администратори Π·Π° Π΄Π° ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π°Ρ‚ ΡˆΡ‚ΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ±Ρ€Π·ΠΎ ΠΊΠΎΠ³Π° ќС сС ΠΏΠΎΡ˜Π°Π²Π°Ρ‚ нСиспорачани ΠΏΠΎΡ€Π°ΠΊΠΈ. Ова ќС ја Π½Π°ΠΌΠ°Π»ΠΈ β€žΠΏΠΎΠ³ΠΎΠ΄Π΅Π½Π°Ρ‚Π° ΠΎΠ±Π»Π°ΡΡ‚β€œ Π½Π° нСуспСх ΠΈΠ»ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ° Π²ΠΎ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°;
  • автобусот Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ нСчувствитСлСн Π½Π° ΠΏΡ€ΠΈΠ²Ρ€Π΅ΠΌΠ΅Π½ΠΎ отсуство Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ: ΠΏΡ€Π΅Ρ‚ΠΏΠ»Π°Ρ‚ΠΈΡ‚Π΅ Π½Π° Ρ‚Π΅ΠΌΠ°Ρ‚Π° ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ Ρ‚Ρ€Π°Ρ˜Π½ΠΈ, Π° ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ‚ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΡ€Π° Π΄Π° Π±ΠΈΠ΄Π΅ СдинствСно Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Π΄ΠΎΠ΄Π΅ΠΊΠ° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π΅ отсутна, нСкој Π΄Ρ€ΡƒΠ³ Π½Π΅ΠΌΠ° Π΄Π° сС ΠΎΠ±ΠΈΠ΄Π΅ Π΄Π° Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π΅Ρ˜Π·ΠΈΠ½ΠΈΡ‚Π΅ ΠΏΠΎΡ€Π°ΠΊΠΈ ΠΎΠ΄ Ρ€Π΅Π΄ΠΈΡ†Π°.

ΠžΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° бСзбСдноста Π½Π° ΠΊΠΎΠ½Π΅Ρ†ΠΎΡ‚ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°

Π˜ΡΡ‚ΠΈΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Π΄Π΅Π»ΠΎΠ²Π΅Π½ процСс ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΈΠΌΠΈ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΠΎΡ€Π°ΠΊΠΈ ΠΈ настани одСднаш, Ρ‡ΠΈΡ˜Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ќС Π·Π°ΠΏΠΎΡ‡Π½Π΅ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ. Π’ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, Π·Π° Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ, сè Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ Сдноставно ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎ Π·Π° нишки.

Π”Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Π΅Π΄Π΅Π½ процСс Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π° сСкој Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ΅Π½ настан кој влијаС Π½Π° Ρ‚ΠΎΡ˜ Π΄Π΅Π»ΠΎΠ²Π΅Π½ процСс ΠΏΠΎΠ΅Π΄ΠΈΠ½Π΅Ρ‡Π½ΠΎ. Π’Π°ΠΊΠ²ΠΈΡ‚Π΅ настани ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚:

  • Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Π΄Π΅Π»ΠΎΠ²Π΅Π½ процСс;
  • корисничко Π΄Π΅Ρ˜ΡΡ‚Π²ΠΎ ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΎ со активност Π²ΠΎ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс;
  • ΠΏΡ€ΠΈΠ΅ΠΌ Π½Π° ΠΏΠΎΡ€Π°ΠΊΠ° ΠΈΠ»ΠΈ сигнал Π½Π° кој Π΅ ΠΏΡ€Π΅Ρ‚ΠΏΠ»Π°Ρ‚Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Π΄Π΅Π»ΠΎΠ²Π΅Π½ процСс;
  • Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΡšΠ΅ Π½Π° Ρ‚Π°Ρ˜ΠΌΠ΅Ρ€ поставСн ΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Π΄Π΅Π»ΠΎΠ²Π΅Π½ процСс;
  • ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΎ Π΄Π΅Ρ˜ΡΡ‚Π²ΠΎ ΠΏΡ€Π΅ΠΊΡƒ API (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€Π΅ΠΊΠΈΠ½ Π½Π° процСсот).

БСкој Ρ‚Π°ΠΊΠΎΠ² настан ΠΌΠΎΠΆΠ΅ Π΄Π° ја ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс: Π½Π΅ΠΊΠΎΠΈ активности ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°Π²Ρ€ΡˆΠ°Ρ‚, Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚, Π° врСдноститС Π½Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΈΡ‚Π΅ ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠΌΠ΅Π½Π°Ρ‚. Π—Π°Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° која Π±ΠΈΠ»ΠΎ активност ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚ΠΈΡ€Π° со Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΅Π΄Π½Π° ΠΈΠ»ΠΈ повСќС ΠΎΠ΄ слСднитС активности. Π’ΠΈΠ΅, ΠΏΠ°ΠΊ, ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° прСстанат Π΄Π° Ρ‡Π΅ΠΊΠ°Π°Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈ настани ΠΈΠ»ΠΈ, Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ Π½Π΅ ΠΈΠΌ Ρ‚Ρ€Π΅Π±Π°Π°Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° ја Π·Π°Π²Ρ€ΡˆΠ°Ρ‚ истата Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°. ΠŸΡ€Π΅Π΄ Π΄Π° сС Π·Π°Ρ‚Π²ΠΎΡ€ΠΈ Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π°, Π½ΠΎΠ²Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс сС Π·Π°Ρ‡ΡƒΠ²ΡƒΠ²Π° Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ќС Ρ‡Π΅ΠΊΠ° Π΄Π° сС случи слСдниот Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ΅Π½ настан.

ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π·Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс складирани Π²ΠΎ Ρ€Π΅Π»Π°Ρ†ΠΈΠΎΠ½Π° Π±Π°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ сС ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠ³ΠΎΠ΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π°ΠΊΠΎ користитС Π˜Π—Π‘Π˜Π ΠΠˆ ЗА ΠΠ–Π£Π Π˜Π ΠΠŠΠ•. Ако Π΅Π΄Π½Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° успСала Π΄Π° ја Π΄ΠΎΠ±ΠΈΠ΅ ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс ΠΎΠ΄ основата Π·Π° нСјзино ΠΌΠ΅Π½ΡƒΠ²Π°ΡšΠ΅, Ρ‚ΠΎΠ³Π°Ρˆ Π½ΠΈΡ‚Ρƒ Π΅Π΄Π½Π° Π΄Ρ€ΡƒΠ³Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ја Π΄ΠΎΠ±ΠΈΠ΅ истата ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π·Π° Π΄Ρ€ΡƒΠ³Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π°, Π° ΠΏΠΎ Π·Π°Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€Π²Π°Ρ‚Π° Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°, Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ ќС ја Π΄ΠΎΠ±ΠΈΠ΅ вСќС ΠΈΠ·ΠΌΠ΅Π½Π΅Ρ‚Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°.

ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ пСсимистички Π±Ρ€Π°Π²ΠΈ Π½Π° страната Π½Π° DBMS, Π³ΠΈ исполнувамС ситС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ Π±Π°Ρ€Π°ΡšΠ° КисСлина, Π° исто Ρ‚Π°ΠΊΠ° ја Π·Π°Π΄Ρ€ΠΆΡƒΠ²Π°Π°Ρ‚ способноста Π΄Π° ја скалиратС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° со Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° со Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° инстанци ΠΊΠΎΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚.

Π‘Π΅ΠΏΠ°ΠΊ, пСсимистичкитС Π±Ρ€Π°Π²ΠΈ Π½ΠΈ сС Π·Π°ΠΊΠ°Π½ΡƒΠ²Π°Π°Ρ‚ со ΡœΠΎΡ€-сокак, ΡˆΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈ Π΄Π΅ΠΊΠ° Π˜Π—Π‘Π•Π Π•Π’Π• ЗА ΠΠ–Π£Π Π˜Π ΠΠŠΠ• сСпак Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈ Π½Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ Ρ€Π°Π·ΡƒΠΌΠ΅Π½ Ρ‚Π°Ρ˜ΠΌΠ°ΡƒΡ‚ Π²ΠΎ ΡΠ»ΡƒΡ‡Π°Ρ˜ Π΄Π° сС ΠΏΠΎΡ˜Π°Π²Π°Ρ‚ ΡœΠΎΡ€-сокак Π½Π° Π½Π΅ΠΊΠΎΠΈ СкстрСмни случаи Π²ΠΎ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°.

Π”Ρ€ΡƒΠ³ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΅ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс. Иако Π½Π΅ постои ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Π΄Π΅Π»ΠΎΠ²Π΅Π½ процСс, Π½Π΅ΠΌΠ° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ ΠΎΠΏΠΈΡˆΠ°Π½ΠΈΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ΠΌΠ° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ. Ако Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја осигуратС уникатноста Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс Π²ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ опсСг, Ρ‚ΠΎΠ³Π°Ρˆ ќС Π²ΠΈ Ρ‚Ρ€Π΅Π±Π° нСкој Π²ΠΈΠ΄ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ Π·Π° ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° ΠΏΠΎΠ²Ρ€Π·Π°Π½ со класата Π½Π° процСс ΠΈ соодвСтниот опсСг. Π—Π° Π΄Π° Π³ΠΎ Ρ€Π΅ΡˆΠΈΠΌΠ΅ овој ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, користимС Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° Π·Π°ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅ ΡˆΡ‚ΠΎ Π½ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ΠΏΡ€Π΅Π·Π΅ΠΌΠ΅ΠΌΠ΅ Π·Π°ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ рСсурс Π½Π°Π²Π΅Π΄Π΅Π½ со ΠΊΠ»ΡƒΡ‡ Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ URI ΠΏΡ€Π΅ΠΊΡƒ Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½Π° услуга.

Π’ΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ, Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс InitialPlayer содрТи Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΡ˜Π°

uniqueConstraint = UniqueConstraints.singleton

Π—Π°Ρ‚ΠΎΠ°, Π΄Π½Π΅Π²Π½ΠΈΠΊΠΎΡ‚ содрТи ΠΏΠΎΡ€Π°ΠΊΠΈ Π·Π° ΠΏΡ€Π΅Π·Π΅ΠΌΠ°ΡšΠ΅ ΠΈ ΠΎΡ‚ΠΏΡƒΡˆΡ‚Π°ΡšΠ΅ Π½Π° Π·Π°ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° соодвСтниот ΠΊΠ»ΡƒΡ‡. НСма Ρ‚Π°ΠΊΠ²ΠΈ ΠΏΠΎΡ€Π°ΠΊΠΈ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси: uniqueConstraint Π½Π΅ Π΅ поставСн.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси со ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°

ПонСкогаш ΠΈΠΌΠ°ΡšΠ΅Ρ‚ΠΎ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π΅ само ΡˆΡ‚ΠΎ ΠΏΠΎΠΌΠ°Π³Π°, Ρ‚ΡƒΠΊΡƒ ΠΈ навистина Π³ΠΎ ΠΏΠΎΠΏΡ€Π΅Ρ‡ΡƒΠ²Π° Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚.
ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π·Π°ΠΏΠΎΡ‡Π½ΡƒΠ²Π°Π°Ρ‚ ΠΊΠΎΠ³Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²Π°Ρ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ/ΠΈΠ»ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс. НС сСкоја Ρ‚Π°ΠΊΠ²Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½Π° со старата ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси. Ако ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ ΠΆΠΈΠ²ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ†ΠΈ Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Ρ‚ΠΎΠ³Π°Ρˆ ΠΏΡ€Π°Π²Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π΅ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, со ΠΊΠΎΠΈ чСсто сС ΡΡ€Π΅ΡœΠ°Π²Π°ΠΌΠ΅ ΠΊΠΎΠ³Π° користимС jBPM.

Π’ΠΎ зависност ΠΎΠ΄ Π΄Π»Π°Π±ΠΎΡ‡ΠΈΠ½Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π΄Π΅Ρ˜ΡΡ‚Π²ΡƒΠ²Π°Ρ‚Π΅ Π½Π° Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π°:

  1. ΠΊΡ€Π΅ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π½ΠΎΠ² Ρ‚ΠΈΠΏ Π½Π° Π΄Π΅Π»ΠΎΠ²Π΅Π½ процСс Π·Π° Π΄Π° Π½Π΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π½Π΅ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π° стариот ΠΈ користСтС Π³ΠΎ намСсто стариот ΠΏΡ€ΠΈ ΡΡ‚Π°Ρ€Ρ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π½ΠΎΠ²ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ†ΠΈ. Π‘Ρ‚Π°Ρ€ΠΈΡ‚Π΅ ΠΊΠΎΠΏΠΈΠΈ ќС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ β€žΠΊΠ°ΠΊΠΎ ΠΏΠΎΡ€Π°Π½ΠΎβ€œ;
  2. ја ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Π°Ρ‚ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси ΠΏΡ€ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°.

ΠŸΡ€Π²ΠΈΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½ Π΅ поСдноставСн, Π½ΠΎ ΠΈΠΌΠ° свои ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΡƒΠ²Π°ΡšΠ° ΠΈ нСдостатоци, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

  • Π΄ΡƒΠΏΠ»ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΠΎ ΠΌΠ½ΠΎΠ³Ρƒ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси, Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΎ ΠΎΠ±Π΅ΠΌΠΎΡ‚ Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°;
  • ЧСстопати Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π° ΠΈΡ‚Π½Π° Ρ‚Ρ€Π°Π½Π·ΠΈΡ†ΠΈΡ˜Π° ΠΊΠΎΠ½ Π½ΠΎΠ²Π° Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° (Π²ΠΎ однос Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° - рСчиси сСкогаш);
  • Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ΠΎΡ‚ Π½Π΅ Π·Π½Π°Π΅ Π²ΠΎ кој ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π±Ρ€ΠΈΡˆΠ°Ρ‚ застарСнитС ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π’ΠΎ пракса Π³ΠΈ користимС Π΄Π²Π°Ρ‚Π° пристапи, Π½ΠΎ донСсовмС Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ ΠΎΠ΄Π»ΡƒΠΊΠΈ Π·Π° Π΄Π° Π½ΠΈ Π³ΠΎ олСснимС ΠΆΠΈΠ²ΠΎΡ‚ΠΎΡ‚:

  • Π’ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс сС Ρ‡ΡƒΠ²Π° Π²ΠΎ лСсно Ρ‡ΠΈΡ‚Π»ΠΈΠ²Π° ΠΈ лСсно ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° Ρ„ΠΎΡ€ΠΌΠ°: Π²ΠΎ Π½ΠΈΠ·Π° со Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ JSON. Ова ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π΄Π° сС Π²Ρ€ΡˆΠ°Ρ‚ ΠΈ Π²ΠΎ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΈ Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΎ. Како послСдно срСдство, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ€Π°Ρ‡Π½ΠΎ (особСно корисно Π²ΠΎ Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π΄Π΅Π±Π°Π³ΠΈΡ€Π°ΡšΠ΅);
  • интСграциската Π΄Π΅Π»ΠΎΠ²Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π΅ Π³ΠΈ користи ΠΈΠΌΠΈΡšΠ°Ρ‚Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Π²ΠΎ сСкоС Π²Ρ€Π΅ΠΌΠ΅ Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° сС Π·Π°ΠΌΠ΅Π½ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° Π΅Π΄Π΅Π½ ΠΎΠ΄ процСситС ΡˆΡ‚ΠΎ учСствуваат со Π½ΠΎΠ² со Π½ΠΎΠ²ΠΎ ΠΈΠΌΠ΅ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, β€žInitialPlayerV2β€œ). Π’Ρ€Π·ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ сС Ρ˜Π°Π²ΡƒΠ²Π° ΠΏΡ€Π΅ΠΊΡƒ имиња Π½Π° ΠΏΠΎΡ€Π°ΠΊΠΈ ΠΈ сигнали;
  • процСсниот ΠΌΠΎΠ΄Π΅Π» ΠΈΠΌΠ° Π±Ρ€ΠΎΡ˜ Π½Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°, кој Π³ΠΎ Π·Π³ΠΎΠ»Π΅ΠΌΡƒΠ²Π°ΠΌΠ΅ Π°ΠΊΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Π½Π΅ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π½Π° овој ΠΌΠΎΠ΄Π΅Π» ΠΈ овој Π±Ρ€ΠΎΡ˜ сС Π·Π°Ρ‡ΡƒΠ²ΡƒΠ²Π° Π·Π°Π΅Π΄Π½ΠΎ со ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° Π½Π° инстанцата Π½Π° процСсот;
  • ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½Π°Ρ‚Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° процСсот сС Ρ‡ΠΈΡ‚Π° ΠΎΠ΄ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΏΡ€Π²ΠΎ Π²ΠΎ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΠΎΠ±Ρ˜Π΅ΠΊΡ‚, со кој ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ‚Π° Π·Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡ˜Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ Π½Π° Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ‚;
  • постапката Π·Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡ˜Π° Π΅ поставСна Π΄ΠΎ Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ сС Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π° β€žΠΌΡ€Π·Π»ΠΈΠ²Π°β€œ Π·Π° сСкој ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ΄ Π΄Π΅Π»ΠΎΠ²Π½ΠΈΠΎΡ‚ процСс Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΡ‚ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ Π²Ρ€Π°ΡœΠ°ΡšΠ΅ ΠΎΠ΄ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ;
  • Π°ΠΊΠΎ Ρ‚Ρ€Π΅Π±Π° Π±Ρ€Π·ΠΎ ΠΈ синхроно Π΄Π° ја ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°Ρ‚Π΅ ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° Π½Π° ситС инстанци Π½Π° процСсот, сС користат покласични Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° Π·Π° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π½ΠΎ ΠΌΠΎΡ€Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΡ‚Π΅ со JSON.

Π”Π°Π»ΠΈ Π²ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Ρ€ΡƒΠ³Π° Ρ€Π°ΠΌΠΊΠ° Π·Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси?

Π Π΅ΡˆΠ΅Π½ΠΈΡ˜Π°Ρ‚Π° опишани Π²ΠΎ ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π° Π½ΠΈ овозмоТија Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π³ΠΎ поСдноставимС Π½Π°ΡˆΠΈΠΎΡ‚ ΠΆΠΈΠ²ΠΎΡ‚, Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈΠΌΠ΅ опсСгот Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° Ρ€Π°Π·Π²ΠΎΡ˜ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π΄Π° ја Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ ΠΈΠ΄Π΅Ρ˜Π°Ρ‚Π° Π·Π° ΠΏΠΎΠ΄Π΅Π»Π±Π° Π½Π° Π΄Π΅Π»ΠΎΠ²Π½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΠΎ микроуслуги ΠΏΠΎΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π½Π°. Π—Π° Π΄Π° сС постигнС ΠΎΠ²Π°, бСшС Π½Π°ΠΏΡ€Π°Π²Π΅Π½Π° ΠΌΠ½ΠΎΠ³Ρƒ Ρ€Π°Π±ΠΎΡ‚Π°, создадСна Π΅ ΠΌΠ½ΠΎΠ³Ρƒ β€žΠ»Π΅ΡΠ½Π°β€œ Ρ€Π°ΠΌΠΊΠ° Π·Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈ процСси, ΠΊΠ°ΠΊΠΎ ΠΈ услуТни ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΡƒΠ²Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΠΎ контСкст Π½Π° ΡˆΠΈΡ€ΠΎΠΊ опсСг Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. ИмамС ΠΆΠ΅Π»Π±Π° Π΄Π° Π³ΠΈ сподСлимС ΠΎΠ²ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΈ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Ρ€Π°Π·Π²ΠΎΡ˜ΠΎΡ‚ Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡ‡ΠΊΠΈΡ‚Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ пристап ΠΏΠΎΠ΄ бСсплатна Π»ΠΈΡ†Π΅Π½Ρ†Π°. Ова ќС Π±Π°Ρ€Π° ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ Π½Π°ΠΏΠΎΡ€ ΠΈ Π²Ρ€Π΅ΠΌΠ΅. Π Π°Π·Π±ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ±Π°Ρ€ΡƒΠ²Π°Ρ‡ΠΊΠ°Ρ‚Π° Π·Π° Π²Π°ΠΊΠ²ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ˜Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ ΠΏΠΎΡ‚Ρ‚ΠΈΠΊ Π·Π° нас. Π’ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π°Ρ‚Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° ΠΌΠ½ΠΎΠ³Ρƒ ΠΌΠ°Π»ΠΊΡƒ сС ΠΎΠ±Ρ€Π½ΡƒΠ²Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° моТноститС Π½Π° самата Ρ€Π°ΠΌΠΊΠ°, Π½ΠΎ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ Π½ΠΈΠ² сС Π²ΠΈΠ΄Π»ΠΈΠ²ΠΈ ΠΎΠ΄ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ. Ако навистина ја објавимС Π½Π°ΡˆΠ°Ρ‚Π° Ρ€Π°ΠΌΠΊΠ°, ќС ѝ Π±ΠΈΠ΄Π΅ посвСтСн посСбСн напис. Π’ΠΎ ΠΌΠ΅Ρ“ΡƒΠ²Ρ€Π΅ΠΌΠ΅, ќС Π²ΠΈ Π±ΠΈΠ΄Π΅ΠΌΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π½ΠΈ Π°ΠΊΠΎ оставитС ΠΌΠ°Π»ΠΊΡƒ ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ˜Π° ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡœΠΈ Π½Π° ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅Ρ‚ΠΎ:

Π‘Π°ΠΌΠΎ рСгистрирани корисници ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° учСствуваат Π²ΠΎ Π°Π½ΠΊΠ΅Ρ‚Π°Ρ‚Π°. Најави сС, Π²ΠΈΠ΅ стС Π΄ΠΎΠ±Ρ€Π΅Π΄ΠΎΡ˜Π΄Π΅Π½ΠΈ.

Π”Π°Π»ΠΈ Π²ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Ρ€ΡƒΠ³Π° Ρ€Π°ΠΌΠΊΠ° Π·Π° Π΄Π΅Π»ΠΎΠ²Π½ΠΈΡ‚Π΅ процСси?

  • 18,8%Π”Π°, Π΄ΠΎΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π±Π°Ρ€Π°Π² Π²Π°ΠΊΠ²ΠΎ Π½Π΅ΡˆΡ‚ΠΎ

  • 12,5%ЗаинтСрСсиран сум Π΄Π° Π΄ΠΎΠ·Π½Π°Π°ΠΌ повСќС Π·Π° Π²Π°ΡˆΠ°Ρ‚Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°, ΠΌΠΎΠΆΠ΅Π±ΠΈ ќС Π±ΠΈΠ΄Π΅ корисно2

  • 6,2%ΠšΠΎΡ€ΠΈΡΡ‚ΠΈΠΌΠ΅ Π΅Π΄Π½Π° ΠΎΠ΄ ΠΏΠΎΡΡ‚ΠΎΡ˜Π½ΠΈΡ‚Π΅ Ρ€Π°ΠΌΠΊΠΈ, Π½ΠΎ размислувамС Π·Π° Π·Π°ΠΌΠ΅Π½Π°1

  • 18,8%НиС користимС Π΅Π΄Π½Π° ΠΎΠ΄ ΠΏΠΎΡΡ‚ΠΎΡ˜Π½ΠΈΡ‚Π΅ Ρ€Π°ΠΌΠΊΠΈ, сС Π΅ Π²ΠΎ Ρ€Π΅Π΄3

  • 18,8%сС снаоѓамС Π±Π΅Π· Ρ€Π°ΠΌΠΊΠ°3

  • 25,0%напиши Π³ΠΎ Ρ‚Π²ΠΎΠ΅Ρ‚ΠΎ4

Гласаа 16 корисници. 7 корисници Π±Π΅Π° Π²ΠΎΠ·Π΄Ρ€ΠΆΠ°Π½ΠΈ.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€