E D R , A S I H C RSS

Pattern Oriented Software Architecture

NoSmok:OpeningStatement €„

http://images.amazon.com/images/P/0471958697.01.PE_PIm.arrow,TopLeft,-2,-19_SCMZZZZZZZ_.jpg ISBN:0471958697 http://images.amazon.com/images/P/0471606952.01.PE_PIm.arrow,TopLeft,-2,-19_SCMZZZZZZZ_.jpg ISBN:0471606952


1. †Œฐœ

  • 3€€ ‹คฅธ  ˆฒจ(†Œํ”„ํŠธ›จ–ด ตฌกฐ,ชจ“  ””žธ, idioms)—„œ –ด–ปฒŒ ํŒจํ„ด ฐœƒํ•˜Š”€ ด …— ž„ธํžˆ ‚˜™€ žˆ‹ค. ดŸฌํ•œ ํ†ตํ•ฉ ธ  ‘ ‹ค†Œ ดก  ฐ™ด ณดด€งŒ,  €žŠ” 12ฐœ˜ ํŒจํ„ ‹ค œกœ ‚ฌšฉ˜Š” ˜ˆ œ งŽด ณด—ฌ €‹ค.

  • ž„ธํ•œ †ŒฐœŠ” •„งˆกด ‚ฌดํŠธ ฐธณ  ํ•˜ฉด ข‹Šต‹ˆ‹ค.
  • ˆ„ตฌ‚˜ ฐ™ด ฐธ—ฌ ํ•˜‹œŠ” „€ Œ€ ํ™˜˜ž…‹ˆ‹ค.
  • ค‘„ ค‘„— ํ•ด„ด •ˆ˜Š” €„ด‚˜ ž˜ชป ธฐˆ ํ•œ €„ žˆœฉด ˆ˜ •ํ•ด‹œฉด ฐ‚ฌ ํ•˜ฒ Šต‹ˆ‹ค. ^^;


2. Volume1

2.1. 1. Patterns

  • ํŒจํ„— Œ€ํ•œ†Œฐœ™€ ด…˜ ตฌ„— Œ€ํ•œ ฒƒ“˜ ‚ดšฉด ‚˜˜จ‹ค.

2.2. 2. Architectual Patterns

  • †Œํ”„ํŠธ›จ–ด ตฌกฐ ธ € —„œ ‚ฌšฉ˜Š” ํŒจํ„“คด ‚˜˜จ‹ค.
  • ํฌฒŒ „ฐœ˜ ทธœกœ ‚˜ˆŒ ˆ˜ žˆ‹ค.
ทธ ‚ฌ€ ํŒจํ„ „ช…
From Mud to Structure Layer, Blackboard Pattern  „ฒด ธ ‹œŠคํ…œ„ ƒํ˜ธ ํ˜‘ ฅํ•˜Š” ํ•˜€ ทธœกœ ‚˜ˆ„–ด„œ €ฆฌ ํžŒ‹ค.
Distributed Systems Broken Patterns use in distributed application
Interactive Systems Model-View-Controlled, Presentation-Abstraction-Control Pattern -
Adaptable Systems Microkernel pattern -

2.2.1. Layers

  • ˜ˆ œ(Example) : ด ํŒจํ„€ šฐฆฌ€ œ„—„œ ํ”ํžˆ งŽด ˆ˜ žˆŠ” ํŒจํ„ด‹ค. TCP/IP€ ทธ Œ€ํ‘œ ธ ˜ˆ ฒƒด‹ค.
  • ํ™˜ฒฝ(Context) : „ํ•ด€ ํ•„š”ํ•œ ํฐ ‹œŠคํ…œ
  • ƒฐ ํ•ด•ํ•  ฌธ œ(Problem - balance in following forces)
    • ตœ— ˆ˜ •˜Š” †ŒŠคŠ” ทธฒƒด †ํ•œ component—งŒ ˜ํ–ฅ„ –ด•€ ‹คฅธ component—Œ€ ˜ํ–ฅ„ ณ„œŠ” •ˆœ‹ค.
    • interfaceŠ” •ˆ • ด–ด• ํ•œ‹ค.
    • ‹œŠคํ…œ˜ ฐ €„€ ตํ™˜ €Šฅํ•ด• ํ•œ‹ค. (Design for change in general is a major facilitator of graceful system evolution - ฐ˜ œกœ €ํ™”— Œ€„ํ•œ ””žธ„ ํ•˜Š”ฒƒ€ šฐ•„ํ•œ ‹œŠคํ…œ ฐœฐœ˜ š”ํ•œ ด‰„žด‹ค.)
    • It may be necessary to build other systems at a later date with the same low-level issues as the system you are currently designing (  •ํ™•ํ•œ ˜Š” ชจฅดฒ Œ, ˆ„€ ํ•ด„€....)
    • ดํ•ดํ•˜ธฐ ‰ฝณ  œ €ณดˆ˜„ ํ•˜ธฐ ‰ฝฒŒ ํ•˜ธฐ œ„ํ•ด„œ œ ‚ฌํ•œ ํ•„š”ํ•œ ธฐŠฅ(responsibilities)„ ทธํ™” ํ•œ‹ค.
    • ธฐ€ด ˜Š” component ชจ–‘€ —†‹ค.
    • component ฒฝ„€ ตฐจ ํ•˜Š”ฒƒ€ „Šฅ˜  €ํ•˜ ดˆž˜ํ•œ‹ค. ˜ˆ “ค–ด งŽ€ –‘˜ ฐดํ„€  ˆด–ด €‚ •Œ ˜ํ•œ —ญ‹œ งŽ€ ตฐจํ•˜Š” component ฒฝ„ €‚˜ฒŒ ˜ธฐ •Œฌธด‹ค.
    • ด ‡ฒŒ  ˆด–ดกœ —ด ‚˜ˆ„–ด„œ ํ”„กœทธžจ„ งœฉด ํŒ€œกœ ž‘—…„ ํ• •Œ €” Šฅฅ  ด‹ค.
  • ํ•ดฒฐ…(Solution) : ž‹ ˜ ‹œŠคํ…œ„  ‹ํ•œ ˆซž˜  ˆด–ดกœ ‚˜ˆ„ณ  ฐ  ˆด–ด •ŒงžŠ” ˆœ„œ— งžฒŒ Œ“Š”‹ค
  • ตฌกฐ(Structure) :  ˆด–ดŠ” ‹คŒ ฐ™€ ธฐณธ ตฌกฐ €€ณ  žˆ‹ค.
    • Class :  ˆด–ด J
    • ํ•ด•ํ•  ธฐŠฅ(responsibility)
      •  ˆด–ด J+1— ˜ํ•ด„œ ‚ฌšฉ  „œ„Šค  œณตํ•œ‹ค.
      • ํ•˜€ ž‘—…„  ˆด–ด J-1—ฒŒ „˜ธด‹ค.(œ„ž„ํ•œ‹ค)
    • ํ˜‘ ฅž(collaborator) :  ˆด–ด J-1
    •  ˆด–ด ํŒจํ„˜ ค‘š”ํ•œ ตฌกฐ ธ ํŠง•€  ˆด–ด JŠ” ˜คง  ˆด–ด J+1— ˜ํ•ด„œงŒ ‚ฌšฉ  ˆ˜ žˆ‹คŠ”  ด‹ค. (Šคํƒด‚˜ –‘ํŒŒ™€ „ตํ•  ˆ˜ žˆ‹ค)
  • Dynamics
    • Scenario1 - top-down communication, €žฅ ž˜ •Œ ค„ฒƒด‹ค. ํดด–ธํŠธ€  ˆด–ด N—ฒŒ š”ฒญ„ ํ•œ‹ค. ทธŸฌฉด  ˆด–ด N€ ํ™€กœ ชจ“  ž‘—…„ ํ•  ˆ˜ —†ธฐ •Œฌธ— ํ•˜€ ž‘—…„  ˆด–ด N-1—ฒŒ „˜ธด‹ค. ทธŸฌฉด  ˆด–ด N-1€ ž‹ ˜ „ ํ•˜ณ   ˆด–ด N-2—ฒŒ ํ•˜€ ž‘—…„ „˜ธฐณ , ดŸฐ‹˜  •ด  ˆด–ด 1— „‹ฌํ• •ŒŒ€ ดฃจ–ด „‹ค. ทธž˜„œ €žฅ ‚ฎ€ ˆ˜€˜ „œ„Šค€ ˆ˜ํ–‰œ‹ค. งŒ•ฝ ํ•„š”ํ•˜‹คฉด ‹ค–‘ํ•œ š”ฒญ— Œ€ํ•œ ‘‹ต“คด  ˆด–ด 1—„œ  ˆด–ด 2, ดŸฐ‹œกœ  ˆด–ด N— „‹ฌํ• •ŒŒ€ ดฃจ–ด„‹ค. ดŸฌํ•œ top-down †Œํ†ต˜ ํŠง•€  ˆด–ด JŠ” ข…ข…  ˆด–ด J+1กœ€„˜จ ํ•˜‚˜˜ š”ฒญ„ —ฌŸฌฐœ˜ š”ฒญœกœ ฐ”ฟ”„œ  ˆด„œ J-1—ฒŒ  „ํ•œ‹ค. ดŠ”  ˆด–ด J€  ˆด–ด J-1ณด‹ค ” ถ”ƒ ดธฐ •Œฌธด‹ค. œ ถ”ƒ ธฒƒด —ฌŸฌฐœ ชจ—ฌ„œ ” ถ”ƒ ธฒƒด ˜Š” ฒƒ„ ƒฐํ•ดณดฉด ดํ•ด€ ฐˆฒƒด‹ค.(˜ˆ “ค–ด ณตžกํ•œ †Œ“ ํ”„กœทธž˜ฐ„ žฐ”—„œŠ” „‹จํ•œ ช… –ดกœ ธˆฐฉ ํ•œ‹ค.)

    • Scenario2 - bottom-up communication,  ˆด–ด 1—„œ ‹œž‘ํ•˜Š” —ฐ‡„ ธ ™ž‘“คด‹ค. top-down communicatin ํ—ทฐˆฆด ˆ˜„ žˆŠ”ฐ top-down communication€ š”ฒญ(requests)— ˜ํ•ด„œ ™ž‘ํ•˜€งŒ, bottom-up communication€ ํ†ต€(notifications)— ˜ํ•ด„œ ™ž‘ํ•œ‹ค. ˜ˆ “ค–ด„œ šฐฆฌ€ ํ‚คณด“œ žํŒ„ ˜ฉด,  ˆฒจ1 ํ‚คณด“œ—„œ ตœƒœ„  ˆฒจ N— ž… ฅ„ ฐ›•˜‹คณ  ํ†ต€ ํ•œ‹ค. bottom-up communicatin—„œŠ” top-down communicationŠ” ฐ˜Œ€กœ —ฌŸฌฐœ˜ bottom-up ํ†ต€“ค(notifications)€ ํ•˜‚˜˜ ํ†ต€กœ ••ถ•˜–ด„œ ƒœ„  ˆด–ดกœ  „‹ฌ˜‚˜ ทธŒ€กœ  „‹ฌœ‹ค.

    • Scenario3 -  ˆด–ด N-1ด cacheกœ ž‘šฉํ•˜—ฌ„œ,  ˆด–ด N˜ š”ฒญด  ˆด–ด N-1—ฒŒงŒ  „‹ฌ˜ณ  ”ดƒ ํ•˜œ„  ˆด–ดกœ  „‹ฌ˜€ •ŠŠ”‹ค. š”ฒญ„ ณด‚ดธฐงŒ ํ•˜Š”  ˆด–ด“คด ƒํƒœ€ —†Š”(stateless) ฐ˜ฉด— ดŸฌํ•œ cache  ˆด–ดŠ” ƒํƒœ  •ณด œ €ํ•œ‹ค. ƒํƒœ€ —†Š”  ˆด–ด“ค€ ํ”„กœทธžจ„ „‹จํ•˜ฒŒ ํ•œ‹คŠ” ด ด žˆ‹ค.

    • Scenario4 -  ˆด–ด 1—„œ event€ ฐ€˜—ˆ€งŒ  ˆด–ด 3Œ€งŒ €ณ  ”ดƒ €€ •ŠŠ” ฒฝšฐ™€ ฐ™€ ฒฝšฐ, ˜ˆ “ค–ด„œ „ฒฉ ธ‰ํ•œ ํดด–ธํŠธ€ ฐดํ„ š”ฒญํ•˜ณ , ชป ธฐ‹คฆฌณ  ธˆฐฉ ‹ค‹œ š”ฒญํ•˜Š” ฒฝšฐ— ฒซฒˆงธ š”ฒญœกœ ‘‹ต ฐดํ„€ €‹ค€ ‘ฒˆงธ š”ฒญด ˜คŠ”ฒƒ ตฐจํ•˜ฒŒ œ‹ค. ด•Œ ‘ฒˆงธ š”ฒญ„ ฒซฒˆงธ š”ฒญ ฐ™€ ฒƒดธฐ— ด•Œ ด š”ฒญด „ดƒ €€ •ŠฒŒ ํ•œ‹ค.

    • Scenario 5 - Nฐœ˜  ˆด–ด“คกœ ดฃจ–ด„ 2ฐœ˜ stack “คด „œกœ †Œํ†ต ํ•˜Š” ฒฝšฐด‹ค. ํ†ต‹  ํ”„กœํ† ฝœด Œ€ํ‘œ ธ ˜ˆด‹ค. ํ•œชฝ˜  ˆด–ด N—„œ ณด‚ดŠ” š”ฒญ€ ฒฐตญ ํ•˜œ„  ˆด–ด 1(ํ•˜“œ›จ–ด  ˆฒจ)„ ํ†ตํ•ด„œ ƒŒ€ํŽธ ํ•˜œ„  ˆด–ด1กœ  „ํ•ด€ณ , ดฒƒ€ ˜ N  ˆด–ดกœ ญ‰ ˜ฌ„‹ค.

  • ‹คํ–‰(implementation) - •„ž˜  •€ ชจ“  application— ฐ˜“œ‹œ €žฅ ข‹€ ฐฉฒ•ดณ  ํ•  ˆ˜Š” —†‹ค. ข…ข… bottom-upด‚˜ yo-yo ฐฉฒ•œกœ  ‘ํ•˜Š”ฒƒด ” ข‹„€„ ชจฅธ‹ค. ž‹ ˜ application— ํ•„š”ํ•˜‹ค ‹ถ€  •„ งš–ด„œ ํ•˜ฉด œ‹ค.
    • task(—…,) “ค„  ˆด–ด— ฐฐ˜ํ•˜ธฐ œ„ํ•œ ถ”ƒ ธ ธฐ€„  •˜ ํ•˜—ฌ. ‹ค œ ธ †Œํ”„ํŠธ›จ–ด ฐœฐœ—„œ šฐฆฌŠ” ข…ข… ถ”ƒ ธ ธฐ€“ค˜ ํ˜ํ•ฉ„ ‚ฌšฉํ•œ‹ค. ˜ˆ“ค–ด„œ ํ•˜“œ›จ–ด ธ € —„œ  € ˆ˜€˜  ˆฒจ“ค˜ ชจŠต„  •ํ•˜ณ , ฐœ… ธ ณตžก„œกœ ณ  ˆ˜€˜  ˆฒจ„  •ํ•œ‹ค.
    • ‹‚ฐ˜ ถ”ƒ ธ ธฐ€— ”ฐ„œ ถ”ƒ  ˆฒจ“ค˜ ˆ˜  •ํ•˜—ฌ. trade-off ƒฐํ•ดณดฉด„œ  ˆด–ด ํ†ตํ•ฉํ•˜‚˜ „ฆฌํ•ด. „ˆฌด งŽ€  ˆด–ดŠ” ํ”„กœทธžจ— ค‘ํ•œ €‹ดด ˜ณ , „ˆฌด  €  ˆด–ดŠ” ตฌกฐ œกœ ข‹€ •ŠฒŒ œ‹ค.
    •  ˆด–ด“ค˜ ด„„  •ํ•˜ณ  ฐ  ˆด–ด— tasks(—…)„  •ํ•ด –ด. ชจ“   ˆด–ด˜ tasksŠ” ž‹  ณด‹ค †’€  ˆด–ด „™€• ํ•œ‹ค.
    • services “ค„ ช…ํ™•ํžˆ ํ•˜—ฌ. €žฅ ค‘š”ํ•œ ตฌํ˜„ ›™€  ˆด–ด“คด —„ฒฉํ•˜ฒŒ ฐž „ฆฌ ˜–ด• ํ•œ‹คŠ”  ด‹ค.  ˆด–ด“ค ‚ฌด— ณตœ ˜Š” ชจ“ˆ€ —„ฒฉํ•œ layering •ฝํ•˜ฒŒ ํ•œ‹ค. ทธฆฌณ  ‚ฎ€  ˆด–ดณด‹ค †’€  ˆด–ด— ” งŽ€ service „Š”ฒƒด ” ‚ฎ‹ค.
    • Refine layering. œ„˜ 1~4ฒˆ  •„ ฐ˜ณต ํ•˜—ฌ.

~cpp 
ปดํฌ„ŒํŠธ‚˜ „œ„Šค€ ‚ฌšฉ˜Š” €„     |
 ˆด–ด“ค                              |=> ดฒƒ“ค„ ƒฐ ํ•˜ณ ‚˜„œ define components and service
 ˆด–ด“ค˜ „œ„Šค                     |  ด ˆœ„œ€ ฐ”€ŒŠ” ฒƒ€ ž˜ชปœ  •ด‹ค.
  • ฐ  ˆด–ด— Œ€ํ•œ ธํ„ฐํŽ˜ดŠค ช…ํ™•ํžˆ ํ•ด (€Šฅํ•œํ•œ black-box  ‘„ ‚ฌšฉํ•˜Š” ฒƒด ข‹‹ค, ดฒƒด ‹œŠคํ…œ ฐœ „„ „™€ธฐ •Œฌธด‹ค. ํšจœจด‚˜ ‹คฅธ  ˆด–ด˜ ‚ด€—  ‘ํ•  ํ•„š”€ žˆ„•ŒŠ” ˜ˆ™ธด‹ค.)
  • ฐ  ˆด–ด ฒด„ํ™” ํ•˜—ฌ. –ด–ค  ˆด–ด€ ณตžกํ•˜ฉด component“คกœ ‚˜ˆ„–ด  ธ• ํ•œ‹ค.
  • ธ ‘ํ•œ  ˆด–ด“ค ‚ฌด˜ †Œํ†ต„ ช…ํ™•ํžˆ ํ•˜—ฌ.
  • Decouple adjacent layers
  • €ํ˜•(variants)
    • Relaxed Layered System : ด‹œŠคํ…œ„ ํ†ตํ•ด„œ –ป€ œ —ฐ„ „Šฅ˜ ํ–ฅƒ€ œ €ณดˆ˜ Šฅ ฅ˜  €ํ•˜ € ธ˜จ‹ค. application †Œํ”„ํŠธ›จ–ด ณด‹ค infrastructure(˜ตฌ ธ) ‹œŠคํ…œ—„œ ž ณธ‹ค. UNIX, X Window System€ ทธ˜ˆด‹ค.
    • Layering Through Inheritance : ƒ† €„กœ  ˆด–ด ํŒจํ„„ ตฌํ˜„. ํ˜„žฌ œจŠ” OOPกœ ํ•  ˆ˜ žˆ‹ค.
  • ด ํŒจํ„˜ •Œ ค„ ‚ฌšฉ˜ˆ (Known Uses)
    • Virtual Muchines
    • APIs
    • Information System(IS)
    • Windows NT
  • ฒฐก 
    • žฅ 
      •  ˆด–ด˜ žฌํ™œšฉ - ํ”„กœทธž˜จธ“ค€ ํ˜„žฌ กดžฌํ•˜Š”  ˆด–ด€ ž‹ ˜ ชฉ — งž€ ‚ณŠ”‹คณ  ดžˆŠ”ฒƒ„ žฌ‚ฌšฉ ํ•˜ธฐณด‹คŠ” ƒˆกœ งœŠ” ฒฝšฐ€ งŽ‹ค. ทธŸฌ‚˜ ํ˜„žฌ กดžฌํ•˜Š”  ˆด–ด žฌ‚ฌšฉ(black-box reuse)ํ•˜Š” ฒƒ€ ฐœฐœ— “œŠ” …ธ ฅ ํ”„กœทธžจ˜ ฒฐ “ค„  œกœ ฐ†Œ ‹œํ‚ฌ ˆ˜ žˆ‹ค.
      • ธฐ€„ €›ํ•œ‹ค.
      • Dependescies are kept local : ˜กด„ด ํŠ • €„—งŒ ณ žˆธฐ •Œฌธ— ด ‡ฒŒ œ‹ค. ”ฐ„œ ‹œŠคํ…œด portabilityํ•˜ฒŒ œ‹ค.
      • Exchangeability : ํŠ •  ˆด–ด ‰ฝฒŒ ฐ”€ ˆ˜ žˆ‹ค. ทธฒƒ„ ฐ”ฟ”„  „ฒด œกœ ‹คฅธ €„€ •ˆฐ”ฟ”„ œ‹ค. ฐ”พธŠ” ฒƒ€ ‹—ฐํžˆ ทธ ฐ”€ Œ€ƒ  ˆด–ด˜ ธํ„ฐํŽ˜ดŠคฐกœ ตฌํ˜„˜–ด žˆŠ” ฒƒด–ด• ํ•œ‹ค.
    • ถˆฆฌํ•œ  (liability)
      • cascades of changing behavior :  ˆด–ด ฐ”พธŠ”ฒƒฟงŒ •„‹ˆ ทธ ธํ„ฐํŽ˜ดŠค ฐ”€ฒฝšฐ— ‹คฅธ €„Œ€ ˆ˜ •ํ•ดค˜• ํ•œ‹คŠ” ง ฐ™‹ค.
      • lower efficiency : —ฌŸฌฐœ˜  ˆด–ด €‚˜• ํ•˜‹ˆ ‹œ„ด ” ฆฌŠ” ฒƒ€ ‹—ฐํ•  ด‹ค.
      • Unnecessary work : ํ•„š”—†Š” „ ํ•˜Š” ฒฝšฐ€ žˆ‹ค.
      •  ˆด–ด  •ํ™•ํžˆ ตฌถ•ํ•˜Š”ฒƒด –ด คšด ด‹ค.
  • ˜ฒฌ : ด layer ํŒจํ„„ ‚ฌํšŒ ธ ฒƒ ฒฐ€‹œœ„œ ƒฐํ•˜ฉด €ฃŒ œ™€ „Šทํ•˜‹คณ  ƒฐํ•œ‹ค. ตฒด €Šฅํ•˜ณ , ‹จ„ œกœ ˜ฌ€ณ , ‚ด ค€ณ  ญ —ฌŸฌ€€  ด œ ‚ฌํ•˜‹ค. ด ํŒจํ„ด ‚ฌšฉํ•˜Š” ‚ฌžŒ“คด €ฃŒ œ—„œ ฐฉ•ˆํ•ด„œ ด ํŒจํ„„ ‚ฌšฉํ•˜Š” ฒƒ€ •„‹ˆฒ €งŒ ํ•˜—ฌํŠ ทธŸฌํ•œ œ ‚ฌ „ ฐœฒฌํ•˜‹ˆ ‹ ธฐํ–ˆ‹ค.

2.2.2. Pipes and Filters

  • ˜ˆ œ : —ฌธฐ„œŠ” ํ”„กœทธž˜ฐ –ธ–ด ˜ˆกœ “ค–ด„œ „ช…ํ–ˆ‹ค.
  • ํ™˜ฒฝ : ฐดํ„ฐ ํ„˜ ฒ˜ฆฌ
  • ƒฐํ•ด•ํ•  ฌธ œ
    • ถ”ํ›„˜ ‹œŠคํ…œ ํ–ฅƒด ‚ฌšฉž— ˜ํ•ด„œ กฐฐจ, ฒ˜ฆฌ ‹จ„(step)“ค„ ฐ”พธ‚˜ žฌกฐํ•ฉ ํ•˜Š”ฒƒœกœ„œ €Šฅํ•ด• ํ•œ‹ค.
    • ž‘€ ฒ˜ฆฌ ‹จ„€ ํฐ components ณด‹ค ‹ค–‘ํ•œ ํ™˜ฒฝ— žฌ‚ฌšฉ ํ•˜ธฐ ข‹‹ค.
    • ธ ‘ํ•˜€ •Š€ ‹จ„Š”  •ณด ณตœ ํ•˜€ •ŠŠ”‹ค.
    • ˜ˆ “ค–ด„œ „คํŠธ›Œํฌ —ฐฒฐด‚˜ ˜จ„  •ณด  œณตํ•˜Š” „„œ™€ ฐ™ด ‹ค–‘ํ•œ ž… ฅ ฐดํƒ€ source € กดžฌํ•œ‹ค.
    • ตœข… ฒฐ ‹ค–‘ํ•œ ฐฉฒ•œกœ  €žฅํ•˜‚˜ ‚˜ํƒ€‚ดŠ” ฒƒด €Šฅํ•ด• ํ•œ‹ค.
    • “ —ฌŸฌ€€..
  • ด ํŒจํ„€ : data source - filter - pipes - filter - data sink, ˜ ˆœ„œกœ ˜–ด žˆณ , ฐ ํ•„„—„œŠ” ฐดํ„ ฒ˜ฆฌํ•˜Š” ํ•จˆ˜€ žˆ„ ˆ˜ žˆ‹ค.  ˆด–ด ํŒจํ„ „Šทํ•œ  „ ณดด€งŒ, ด ํŒจํ„˜ ํŠง•€ ‰ฌšด žฌกฐํ•ฉ žฌ‚ฌšฉ„ด‹ค. —Ÿฌ ฒ˜ฆฌํ•˜Š” €  ‹œŠคํ…œ˜ ‹ ขฐ„„ ”ฐ€ฉด  ˆด–ด€ ” ‚ฎ‹ค.
  • ˜ฒฌ : ด ํŒจํ„€ šฐฒดตญ „Šทํ•ด ณด˜€‹ค. ใ…กใ…ก;,

2.2.3. BlackBoard

  • ˜ˆ œ : —ฌธฐ„œŠ” Œ„ธ‹ ‹œŠคํ…œ„ ˜ˆกœ “ค—ˆ‹ค. Œ„ธ‹ ํ”„กœทธžจ€ ‹จ€ ํ•˜‚˜˜ ‹จ–ด ฐ›•„“ค ฟงŒ •„‹ˆ ตฌฌธ ‹จ–ด€ ํŠ •ํ•œ application— ํ•„š”ํ•œ ‹จ–ด‚˜ ตฌฌธก — งžŠ” ฒƒœกœ  œํ•œœ ฌธžฅ  „ฒด ฐ›•„ “คธ‹ค. ›ํ•˜Š” output€ ทธ Œ„ ธ‹ํ•œฒƒ— งžŠ” ธฐ„ ธ ํ‘œํ˜„œกœ ฐ”พธŠ” ฒƒธฐ ด €ํ™˜  •—Š” Œ„„ ŒํŒŒ œกœ ธ‹ํ•˜Š” ฒƒ, –ธ–ดํ•™ ธ ฉด—„œ ธ‹ํ•˜Š”ฒƒ, ํ†ต„ ธ  „ฌธ„—„œ ธ‹ํ•˜Š” ฒƒด ํ•„š”ํ•˜‹ค.

  • ํ™˜ฒฝ :  ‹ํ•œ solutionด •„ง —†Š” „ˆ™ํ•˜€ •Š€ ˜—ญ
  • ƒฐํ•ด•ํ•  ฌธ œ : ฐฐ˜ ฌธ œ— Œ€ํ•œ ํ•ดฒฐ…€ ‹คฅธ ํ‘œํ˜„ด‚˜ paradigms ด ํ•„š”ํ•˜‹ค. งŽ€ ฒฝšฐ— –ด–ปฒŒ '€„ ธ ฌธ œ“ค„ ํ’€–ดŠ” ํ•ดฒฐ…'ด –ด–ปฒŒ กฐํ•ฉ˜–ด• ํ•˜Š”€— Œ€ํ•ด„œ ฆฌ  •˜œ  „žต€ —†‹ค. •„ž˜˜ ‚ดšฉ€ ดŸฐ ข…ฅ˜˜ ฌธ œ ํ‘ธŠ”ฐ ˜ํ–ฅ„ €˜Š” force(ด ํŒจํ„ด ‚ฌšฉ˜Š” ฒฝšฐ?)“คด‹ค.
    •  ‹ํ•œ ‹œ„— ™„ „ํ•œ ํ•ดฒฐ…„ ฐพŠ” ฒƒด ถˆ€Šฅ ํ•˜‹ค - 10ฐœ˜ ‹จ–ด(1000ฐœค‘ ํ•˜‚˜) กฐํ•ฉํ•˜—ฌ €Šฅํ•œ ตฌฌธ˜ ˆ˜=>(1000)˜ 10Š ฐ™€ ˜ˆ
    • ทธ ˜—ญด „ˆ™ํ•ด„œ, ฐ™€ ํ•˜€ task— —ฌŸฌ€€ •Œณ ฆฌฆ˜„ ‚ฌšฉํ•œ‹ค.
    • ฐ €„˜ ฌธ œ ํ’€•Œ ‹ค–‘ํ•œ •Œณ ฆฌฆ˜ด กดžฌํ•œ‹ค.
    • input€ intermediate ™€ งˆ€ง‰ result™€ งˆฐฌ€€กœ ‹ค–‘ํ•œ ํ‘œํ˜„ด žˆ‹ค. •Œณ ฆฌฆ˜“ค€ ‹ค–‘ํ•œ paradigm“ค— ˜ํ•ด„œ ˆ˜ํ–‰œ‹ค.
    • ํ•˜‚˜˜ •Œณ ฆฌฆ˜€ ณดํ†ต ‹คฅธ •Œณ ฆฌฆ˜˜ ฒฐ œ„—„œ ž‘™ํ•œ‹ค.
    • € •ํ™•ํ•œ ฐดํ„™€ ‚ฌ ธ ํ•ดฒฐ…(solution)“คด ํฌํ•จœ‹ค.
    • ฐฐ „ฆฌœ •Œณ ฆฌฆ˜„ „šฉํ•˜Š” „šฉํ•˜Š” ฒƒ€ ž žฌ ธ ํ‰ํ˜• €„ œ „ํ•œ‹ค.
    • ชจ“  €„ ธ ฌธ œ“ค€ ฐ™€ knowledge ํ‘œํ˜„„ ‚ฌšฉํ•˜—ฌ ํ•ดฒฐœ‹ค. ทธŸฌ‚˜ inputœกœ ‹ค–‘ํ•œ ํ‘œํ˜„ด ˜ฌ ˆ˜ žˆ‹ค.
    •  „ฌธ ธ ‹œŠคํ…œ ตฌกฐŠ” application of knowledge— Œ€ํ•ด„œ ‹จ€ ํ•˜‚˜˜ ถ”ก  —”„„  œณตํ•œ‹ค. ‹ค–‘ํ•œ ํ‘œํ˜„— Œ€ํ•œ ‹ค–‘ํ•œ €„ ธ ฌธ œ“ค€ „ฆฌœ ถ”ก  —”„„ ํ•„š”กœ ํ•œ‹ค.
    • -
  • ํ•ดฒฐ…(solution) : Blackboard ตฌกฐ˜ ฐ”ํƒ•— ”ฆฐ ฐœ…€ ณต™˜ ฐดํ„ตฌกฐ— Œ€ํ•ด„œ ํ˜‘™ œกœ ž‘™ํ•˜Š” …ฆฝœ ํ”„กœทธžจ“ค˜ ง‘ํ•ฉด‹ค. ทธ …ฆฝ ธ ํ”„กœทธžจ“ค€ „œกœ ‹คฅธ ํ”„กœทธžจ„ ํ˜ธถœํ•˜€ •Šณ  ˜ํ•œ ทธฒƒ˜ ํ–‰™— Œ€ํ•ด ฆฌ  •˜œ ˆœ„œŠ” —†‹ค. Œ€‹ — ‹œŠคํ…œ˜ ฐฉํ–ฅ€ กœ ํ˜„žฌ˜ ƒํƒœ‚˜ „ํ–‰(progress)— ˜ํ•ด ฒฐ •œ‹ค. ฐดํ„ฐ-€ฆฌ กฐข… ฒด„(data-directed control regime)Š” opportunistic problem solving ดณ „ ถˆฆฐ‹ค. moderator(ค‘žฌž) componentŠ” งŒ•ฝ ํ•˜‚˜ ดƒ˜ component€ contribution„ งŒ“คˆ˜ žˆ‹คฉด ํ”„กœทธžจ“คด ‹คํ–‰˜Š” ˆœ„œ ฒฐ •ํ•œ‹ค.
  • ตฌกฐ : ž‹ ˜ ‹œŠคํ…œ„ blackboard(knowledge source“ค˜ ง‘ํ•ฉ, control components)ณ  ถˆฆฌšฐŠ” componentกœ ‚˜ˆ„–ด. blackboardŠ” ค‘•™ ฐดํ„ €žฅ†Œด‹ค. solution space™€ control data“ค˜ š”†Œ“คด —ฌธฐ—  €žฅœ‹ค. ํ•˜‚˜˜ hypothesisŠ” ณดํ†ต —ฌŸฌ€€ „งˆด žˆ‹ค. ทธ „งˆกœŠ” ถ”ƒ  ˆฒจ ถ”ธก˜Š” €„˜ ‚ฌ‹ค  •„ ˜Š” ทธ €„˜ ‹œ„ „ฒฉ(ฆฌŠ” ‹œ„„ งํ•˜Š”ฐ™‹ค.)ด‹ค. 'part-of'˜Š”'in-support of'™€ ฐ™ด €„“ค ‚ฌด˜ €„ ช…ํ™•ด ํ•˜Š” ฒƒ€ ณดํ†ต œ šฉํ•˜‹ค. blackboard Š” 3ฐจ› ฌธ œ ณต„œกœ ˆ˜„ žˆ‹ค. Xถ• - time, Yถ• - abstraction, Zถ• - alternative solution. knowledge source“ค€ ง ‘ œกœ †Œํ†ต„ ํ•˜€ •ŠŠ”‹ค. ทธ“ค€ ‹จ€ blackboard—„œ ฝณ  “ธฟด‹ค. ทธŸฌ€กœ knowledge source “ค€ blackboard ˜ vocabulary“ค„ ดํ•ดํ•ด• ํ•œ‹ค. ฐ knowledge source“ค€ condition€„ action€„œกœ ‚˜ˆŒ ˆ˜ žˆ‹ค. condition €„€ knowledge source€ ธฐ—ฌ ํ• ˆ˜ žˆŠ”€ ฒฐ •ํ•˜ธฐ œ„ํ•ด„œ blackboard—  œฉด„œ ํ˜„žฌ solution process ˜ ƒํƒœ „‚ฐํ•œ‹ค. action €„€ blackboard˜ ‚ดšฉ„ ฐ”€ ˆ˜ žˆŠ” €ํ™” œํ‚จ‹ค. control component Š” ฃจํ”„ Œฉด„œ blackboard— ‚˜ํƒ€‚˜Š” €ํ™” €ฐฐํ•˜ณ  ‹คŒ— –ด–ค action„ ทจํ• € ฒฐ •ํ•œ‹ค. blackboard componentŠ” inspect™€ update˜ ‘€€ procedure €€ณ  žˆ‹ค.

~cpp 
Class : BlackBoard
 Responsibility : Manages central data
 Collaborators : -

Class : Knowledge Source
 Responsibility : Evaluates its own applicability, Computes a result, Updates Black board
 Collaborators : Blackboard

Class : Control
 Responsibility : Monitors Blackboard, Schedules Knowledge Source activations
 Collaborator : Blackboard, Knowledge Source
  • Dynamices(™ž‘)
    • ‹คŒ •„ž˜˜ ‚ดšฉ“ค€ blackboard ตฌกฐ˜ ํ–‰™— Œ€ํ•œ „œˆ ด‹ค.
      • control component˜ main loof€ ‹œž‘œ‹ค.
      • nextSource()  € blackboard €ฐฐํ•จœกœจ –ด–ค knowledge source€ ž žฌ„žˆŠ” ณตํ—Œžธ€ ฒฐ •ํ•œ‹ค.
      • nextSource() ฐ ํ›„ณด knowledge source˜ condition €„„ ถˆŸฌ‚ธ‹ค.
      • control componentŠ” ถˆŸฌ‚ knowledge source™€ •žœกœ˜ ž‘—…— ‚ฌšฉ  ํ•˜‚˜˜ hypothesis‚˜ hypothesis ง‘ํ•ฉ„ „ ํƒํ•œ‹ค. ˜ˆ œ—„œŠ” condition €„˜ ฒฐ— ˜ํ•ด„œ ทธ „ ํƒด ดฃจ–ดกŒ‹ค.
  • ตฌํ˜„(implementation) : blackboard pattern„ ตฌํ˜„ํ•˜ คฉด ‹คŒ ฐ™€ ‹จ„ ˆ˜ํ–‰ํ•˜—ฌ.
    • 1.ฌธ œ(problem)  •˜ ํ•˜—ฌ
      • ฌธ œ˜ ˜—ญ knowledge˜ ฐ˜ ธ ˜—ญ“ค„ ช…ํ™•ํžˆ ํ•˜Š” ฒƒ€ ํ•ดฒฐ…(solution)„ ฐœฒฌํ•˜Š”ฐ ํ•„š”ํ•˜‹ค.
      • ‹œŠคํ…œ— Œ€ํ•œ input„  •€ํ•˜ฒŒ กฐ‚ฌํ•˜—ฌ.
      • ‹œŠคํ…œ˜ output„  •˜ํ•˜—ฌ
      • ‚ฌšฉž€ ‹œŠคํ…œ –ด–ปฒŒ „œกœ ž‘šฉํ•˜Š”€ ž„ธํžˆ งํ•˜—ฌ.
    • 2.ทธ ฌธ œ— Œ€ํ•œ solution space(ํ•ดฒฐ ณต„)„  •˜ํ•˜—ฌ.

~cpp 
top-level solution - highest abstraction level
imtermediate solution - other level(except highest abstraction level)

complete solution - solution which solve whole problem
partial solution - solution which solve part of the problem

complete solution€ intermediate  ˆฒจ— †ํ• ˆ˜ žˆณ , partial solution€ •„งˆ„ top  ˆฒจ ฒƒด‹ค.(ฌดŠจงด€?ใ…กใ…ก;)




2.3. Thread

†Œํ”„ํŠธ›จ–ด •„ํ‚คํ…ถฐ™€ ํŒจํ„— €‹ฌด žˆŠ” ‚ฌžŒ“ค—ฒŒ ฐ• ฅ ถ”ฒœํ•ฉ‹ˆ‹ค. 1, 2ถŒ„ ชจ‘ ‚ฌธฐ ํž˜“ค‹คฉด ‹จ€ 1ถŒงŒด„ ฐ–ถ”Š” ฒƒด ข‹„ ฒƒž…‹ˆ‹ค. --JuNe

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:00
Processing time 0.0861 sec