OCE BPM - TheOpenCloudEngine/uEngine-cloud GitHub Wiki
OCE BPM ๊ณผ์ ์ฐ๋
OCE BPM์ ์ฌ์ฉํ์ฌ Bounded Context ๋ณ๋ก ์ด๋ฒคํธ ์ ๋ฌ์ ๋ฒ์๋ฅผ ์ ์ฌํ์ฌ ๋ชจ๋ธ๋งํ ์ ์๋๋ก ๊ธฐ๋ณธ BPMN์ ์์ฑํ ์ ์๋ค.
OCE BPM ์ฃผ์ : OCE BPM
์ด๋ฒคํธ Process ๋ชจ๋ธ๋ง ํด
1. ์๋น์ค ์ฐ๊ฒฐ
- BPMN์์ โ์๋น์ค ํโ์ ์๋์ ๊ฐ์ด ๊ทธ๋ฆฐ๋ค.
- ํด๋น pool์ ๋๋ธํด๋ฆญํ์ฌ ์ด๋ฆ์ ์ด๋ฆ์ ์ค์ ํ์ฌ ์ค๋ค.
- Role ๊ณผ System์ ๊ณ ๋ฅผ์ ์๋๋ฐ, System์ ์ค์ ํ์ฌ Eureka์์ ์ฐ๊ฒฐ๋์ด์๋ ๋ค๋ฅธ ๋ง์ดํฌ๋ก ์๋น์ค๋ค์ ์ ํํ๋ค.
- ํด๋น pool ์ ์ด์ ํด๋น ์๋น์ค๋ก ์ฐ๊ฒฐ๋์๋ค๊ณ ์ ์ธ๋์ด์ง๋ค.
2. ์๋น์ค์ ์ด๋ฒคํธ ์ฐ๊ฒฐ
- BPMN ์ ์ด๋ฒคํธ ์ข
๋ฅ๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์๋๋ฐ, ๊ทธ์ค์์ ๋ค๋ฅธ์๋น์ค์ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ์ ์๋ Message catch/throw Event ๊ฐ ๋ง์ด ์ฐ์ธ๋ค.
- ์๋ ํ๋ฉด์ ๊ทธ์ค Message throw Event ํ๋ฉด์ด๋ค.
- ๋ฉ์์ง ํ์
์ Message throw ๋ก ์ ์ธ์ ํ๊ณ , ์ฐ๊ฒฐํ๋ ค๋ ์๋น์คํ์์ Message catch ๋ก ์ ์ธ ํ์ฌ, ๋ ๊ฐ์ ์ด๋ฒคํธ๋ฅผ ์ฐ๊ฒฐํ๋ค.
- Message throw Event ๋๋ธํด๋ฆญ์ ์๋ํ๋ฉด์ฒ๋ผ ์ฐ๊ฒฐ๋ ์๋น์ค๊ฐ Target Service Pool ํญ๋ชฉ์ ๋ณด์ฌ์ง๋ค.
- ์ด๋ฒคํธ๋ฅผ ๋ฐ๋ก ํธ์ถํ๊ฑฐ๋, ์ฐ๊ฒฐ๋ ์๋น์ค์ REST API๋ฅผ ํธ์ถํ๋ ์์ผ๋ก ๋ ์๋น์ค๊ฐ์ ํต์ ์ ํ ์ ์๋ค.
- ์๋ ํ๋ฉด์ ํธ์ถURL ํจํด์ ์ค์ ํ์ฌ REST API๋ฅผ ํธ์ถ ํ๊ณ , Output ์ ๊ฒฐ๊ณผ(return ๊ฐ)์ ์ ์ฅ ์ํค๋ ํ๋ฉด์ด๋ค.
๋๋ฉ์ธ ํด๋์ค ๋ชจ๋ธ๋ง ํด
์์ ๋๋ฉ์ธ ์ด๋ฒคํธ๋ฅผ ๋์ถํ ํ, ๊ฐ ์ด๋ฒคํธ์์ ์ ๋ฌ / ์ฌ์ฉ๋๋ ๋ฌธ์๋ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋๋ฉ์ธ ๋ชจ๋ธ์ ๊ธฐ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก UML์ ํ์ฉํ๋ค. UML์ ์ฌ์ฉํ์ฌ ๊ฐ ์๋ธ ๋๋ฉ์ธ์ ๋ถ๋ฆฌํ์ฌ ๋ง์ดํฌ๋ก ์๋น์ค (Bounded Context ์์ญ)๋ฅผ ๋๋์ด ํ์ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
1. ๋๋ฉ์ธ ๋ชจ๋ธ ์ ์
- Class ์ ์ํ๋ ํ๋ฉด์ผ๋ก ๋ค์ด์จ๋ค.
- ์ผ์ชฝ ์๊ฐ๋ฝ ๋ชจ์ ์๋์ ์๋ ํด๋ ์ค ๋ชจํ์ ๋๋๊ทธ ํ์ฌ canvas ์ ์ฌ๋ ค๋์ผ๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ์์ฑ์ด ๋๋ค.
2. ๋๋ฉ์ธ ๋ชจ๋ธ ์์ฑ ํธ์ง
- ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋๋ธํด๋ฆญ์ Entity๋ฅผ ์ค์ ํ๋ฏ์ด ์ด๋ฆ๊ณผ Type ๊ทธ๋ฆฌ๊ณ class ์ด๋ฆ์ ์ค์ ํ ์ ์๋ ํ๋ฉด์ด ๋ณด์ธ๋ค.
- PK ๋ฒํผ์ ํ์ฑํ ์ ์ด ํด๋ ์ค๋ Entity ๋ชจ๋ธ์ ID ๋ผ๊ณ ์ ์ธ๋์ด์ง๋ค.
3. ๋๋ฉ์ธ๊ฐ ๋ฆด๋ ์ด์
์ค์
- ๋๋ฉ์ธ๋ผ๋ฆฌ ์ ์ ์ฐ๊ฒฐ ํ ํด๋น ์ ์ ๋๋ธํด๋ฆญ์ ๋ ๊ฐ์ ๋๋ฉ์ธ์ ์ฐ๊ฒฐํ๋ ๋ฆด๋ ์ด์
์ค์ ์ด ๋์จ๋ค.
- Relation Type ๊ณผ OneToMany, ManyToOne ์ค์ ๋ฑ์ด ๊ฐ๋ฅํ๋ค.