OCE BPM - TheOpenCloudEngine/uEngine-cloud GitHub Wiki

OCE BPM ๊ณผ์˜ ์—ฐ๋™

OCE BPM์„ ์‚ฌ์šฉํ•˜์—ฌ Bounded Context ๋ณ„๋กœ ์ด๋ฒคํŠธ ์ „๋‹ฌ์˜ ๋ฒ”์œ„๋ฅผ ์ •์žฌํ•˜์—ฌ ๋ชจ๋ธ๋งํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋ณธ BPMN์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

OCE BPM ์ฃผ์†Œ : OCE BPM

์ด๋ฒคํŠธ Process ๋ชจ๋ธ๋ง ํˆด

1. ์„œ๋น„์Šค ์—ฐ๊ฒฐ

  1. BPMN์—์„œ โ€˜์„œ๋น„์Šค ํ’€โ€˜์„ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ทธ๋ฆฐ๋‹ค.
  2. ํ•ด๋‹น pool์„ ๋”๋ธ”ํด๋ฆญํ•˜์—ฌ ์ด๋ฆ„์„ ์ด๋ฆ„์„ ์„ค์ •ํ•˜์—ฌ ์ค€๋‹ค.
  3. Role ๊ณผ System์„ ๊ณ ๋ฅผ์ˆ˜ ์žˆ๋Š”๋ฐ, System์„ ์„ค์ •ํ•˜์—ฌ Eureka์—์„œ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋Š” ๋‹ค๋ฅธ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋“ค์„ ์„ ํƒํ•œ๋‹ค.
  4. ํ•ด๋‹น pool ์€ ์ด์ œ ํ•ด๋‹น ์„œ๋น„์Šค๋กœ ์—ฐ๊ฒฐ๋˜์—ˆ๋‹ค๊ณ  ์„ ์–ธ๋˜์–ด์ง„๋‹ค.

์„œ๋น„์Šค ํ’€์„ ์„ค์ •ํ•˜๋Š” ํ™”๋ฉด

2. ์„œ๋น„์Šค์™€ ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ

  1. BPMN ์˜ ์ด๋ฒคํŠธ ์ข…๋ฅ˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ทธ์ค‘์—์„œ ๋‹ค๋ฅธ์„œ๋น„์Šค์— ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ผ์ˆ˜ ์žˆ๋Š” Message catch/throw Event ๊ฐ€ ๋งŽ์ด ์“ฐ์ธ๋‹ค.
  2. ์•„๋ž˜ ํ™”๋ฉด์€ ๊ทธ์ค‘ Message throw Event ํ™”๋ฉด์ด๋‹ค.
  3. ๋ฉ”์‹œ์ง€ ํƒ€์ž…์„ Message throw ๋กœ ์„ ์–ธ์„ ํ•˜๊ณ , ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ์„œ๋น„์Šคํ’€์—์„œ Message catch ๋กœ ์„ ์–ธ ํ•˜์—ฌ, ๋‘ ๊ฐœ์˜ ์ด๋ฒคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.
  4. Message throw Event ๋”๋ธ”ํด๋ฆญ์‹œ ์•„๋ž˜ํ™”๋ฉด์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค๊ฐ€ Target Service Pool ํ•ญ๋ชฉ์— ๋ณด์—ฌ์ง„๋‹ค.
  5. ์ด๋ฒคํŠธ๋ฅผ ๋ฐ”๋กœ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜, ์—ฐ๊ฒฐ๋œ ์„œ๋น„์Šค์˜ REST API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์‹์œผ๋กœ ๋‘ ์„œ๋น„์Šค๊ฐ„์˜ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  6. ์•„๋ž˜ ํ™”๋ฉด์€ ํ˜ธ์ถœURL ํŒจํ„ด์„ ์„ค์ •ํ•˜์—ฌ REST API๋ฅผ ํ˜ธ์ถœ ํ•˜๊ณ , Output ์— ๊ฒฐ๊ณผ(return ๊ฐ’)์„ ์ €์žฅ ์‹œํ‚ค๋Š” ํ™”๋ฉด์ด๋‹ค.

image

๋„๋ฉ”์ธ ํด๋ž˜์Šค ๋ชจ๋ธ๋ง ํˆด

์•ž์„œ ๋„๋ฉ”์ธ ์ด๋ฒคํŠธ๋ฅผ ๋„์ถœํ•œ ํ›„, ๊ฐ ์ด๋ฒคํŠธ์—์„œ ์ „๋‹ฌ / ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์„œ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ๊ธฐ์ˆ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ UML์„ ํ™œ์šฉํ•œ๋‹ค. UML์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์„œ๋ธŒ ๋„๋ฉ”์ธ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค (Bounded Context ์˜์—ญ)๋ฅผ ๋‚˜๋ˆ„์–ด ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

1. ๋„๋ฉ”์ธ ๋ชจ๋ธ ์ •์˜

  1. Class ์ •์˜ํ•˜๋Š” ํ™”๋ฉด์œผ๋กœ ๋“ค์–ด์˜จ๋‹ค.
  2. ์™ผ์ชฝ ์†๊ฐ€๋ฝ ๋ชจ์–‘ ์•„๋ž˜์— ์žˆ๋Š” ํด๋ ˆ์Šค ๋ชจํ˜•์„ ๋“œ๋ž˜๊ทธ ํ•˜์—ฌ canvas ์— ์˜ฌ๋ ค๋†“์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ์ƒ์„ฑ์ด ๋œ๋‹ค. image

2. ๋„๋ฉ”์ธ ๋ชจ๋ธ ์†์„ฑ ํŽธ์ง‘

  1. ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ๋”๋ธ”ํด๋ฆญ์‹œ Entity๋ฅผ ์„ค์ •ํ•˜๋“ฏ์ด ์ด๋ฆ„๊ณผ Type ๊ทธ๋ฆฌ๊ณ  class ์ด๋ฆ„์„ ์„ค์ • ํ• ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด ๋ณด์ธ๋‹ค.
  2. PK ๋ฒ„ํŠผ์„ ํ™œ์„ฑํ™” ์‹œ ์ด ํด๋ ˆ์Šค๋Š” Entity ๋ชจ๋ธ์˜ ID ๋ผ๊ณ  ์„ ์–ธ๋˜์–ด์ง„๋‹ค.

image

3. ๋„๋ฉ”์ธ๊ฐ„ ๋ฆด๋ ˆ์ด์…˜ ์„ค์ •

  1. ๋„๋ฉ”์ธ๋ผ๋ฆฌ ์„ ์„ ์—ฐ๊ฒฐ ํ›„ ํ•ด๋‹น ์„ ์„ ๋”๋ธ”ํด๋ฆญ์‹œ ๋‘ ๊ฐœ์˜ ๋„๋ฉ”์ธ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜ ์„ค์ •์ด ๋‚˜์˜จ๋‹ค.
  2. Relation Type ๊ณผ OneToMany, ManyToOne ์„ค์ •๋“ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

image