Concepts KO - k-p2p-lab/kpl-v3 GitHub Wiki

곡톡 κ°œλ…κ³Ό μ•„ν‚€ν…μ²˜

Wiki home β€Ί ν•œκ΅­μ–΄ λ¬Έμ„œ Β· μ˜μ–΄ 원문

ν”„λ‘œμ νŠΈ μ†Œκ°œ Β· κ°œλ… Β· 연ꡬ Β· 좜판·인용 Β· λ¬Έμ„œ κΈ°μ€€

버전이 λ°”λ€Œμ–΄λ„ μœ μ§€ν•˜λŠ” 섀계 μ˜λ„μ™€ μ±…μž„μ„ μ„€λͺ…ν•©λ‹ˆλ‹€. μ‹€μ œ μ„œλΉ„μŠ€Β·λ„€νŠΈμ›Œν¬Β·μž₯μ•  κ²½κ³„λŠ” v3 κ΅¬ν˜„ μ•„ν‚€ν…μ²˜μ—μ„œ ν™•μΈν•˜μ‹­μ‹œμ˜€.

섀계 원칙

원칙 의미
쀑앙 μ˜€μΌ€μŠ€νŠΈλ ˆμ΄μ…˜ 쀑앙 μ œμ–΄ μ˜μ—­μ—μ„œ μ‹€ν—˜ μ‹€ν–‰, ν”Όμ–΄ 수λͺ… 주기와 κ²°κ³Ό μˆ˜μ§‘μ„ μ‘°μ •ν•©λ‹ˆλ‹€.
닀쀑 호슀트 μ‹€ν–‰ ν˜ΈμŠ€νŠΈλ³„ κ°€μš© μš©λŸ‰κ³Ό 배치 정책을 κ³ λ €ν•΄ μ—¬λŸ¬ μ„œλ²„μ— ν”Όμ–΄ μ›Œν¬λ‘œλ“œλ₯Ό λΆ„μ‚°ν•©λ‹ˆλ‹€.
탄λ ₯적인 μ‹€ν—˜ 규λͺ¨ μ‹€ν–‰ μžμ›κ³Ό ν”Όμ–΄ 집합을 μ‘°μ •ν•˜λ©°, μš”μ²­ν•œ μ‹€ν—˜ 규λͺ¨μ™€ μ‹€μ œ λ°°μΉ˜Β·μ€€λΉ„ μƒνƒœλ₯Ό ν•¨κ»˜ κ΄€μΈ‘ν•©λ‹ˆλ‹€.
μ‹€μ œ P2P μ‹€ν–‰ ν”Όμ–΄λ₯Ό λͺ¨μ˜ 객체둜만 ν‘œν˜„ν•˜μ§€ μ•Šκ³  μ‹€μ œ ν”„λ‘œν† μ½œ κ΅¬ν˜„μ„ μ‹€ν–‰ν•˜μ—¬ λ„€νŠΈμ›Œν¬ νŠΈλž˜ν”½μ„ κ΅ν™˜ν•©λ‹ˆλ‹€.
피어별 μ»¨ν…Œμ΄λ„ˆ 격리 각 피어에 λ³„λ„μ˜ μ»¨ν…Œμ΄λ„ˆμ™€ λ„€νŠΈμ›Œν¬ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜μ—¬ κ°œλ³„ 관리가 κ°€λŠ₯ν•œ μ‹€ν—˜ λ‹¨μœ„λ‘œ λ§Œλ“­λ‹ˆλ‹€.

μ»¨ν…Œμ΄λ„ˆ κ²©λ¦¬λŠ” ν”Όμ–΄μ˜ μ‹€ν–‰ ν™˜κ²½κ³Ό λ„€νŠΈμ›Œν¬ ν™˜κ²½μ„ λΆ„λ¦¬ν•˜μ§€λ§Œ, μ „μš© 물리 μžμ›μ„ μ œκ³΅ν•˜κ±°λ‚˜ 같은 호슀트의 μžμ› 경합을 μ œκ±°ν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.

κ°œλ… μ•„ν‚€ν…μ²˜

ν…ŒμŠ€νŠΈλ² λ“œλŠ” μ‹€ν—˜ μ œμ–΄, λΆ„μ‚° ν”Όμ–΄ μ‹€ν–‰, κ΄€μΈ‘μ΄λΌλŠ” μ„Έ κ°€μ§€ μ±…μž„μ΄ μƒν˜Έμž‘μš©ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€. μ•„λž˜ 그림은 νŠΉμ • μ„œλΉ„μŠ€ 배치λ₯Ό μ „μ œν•˜μ§€ μ•Šκ³  각 μ±…μž„μ„ μžμ„Ένžˆ λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

flowchart TB
    Researcher["μ—°κ΅¬μž: 연ꡬ 질문과 비ꡐ κ³„νš"]

    subgraph Control["쀑앙 μ‹€ν—˜ μ œμ–΄"]
        Definition["μ‹€ν—˜ μ •μ˜: ν”Όμ–΄ μ§‘ν•©, ν”„λ‘œν† μ½œ, μ›Œν¬λ‘œλ“œ, 쑰건"]
        Resources["ν˜ΈμŠ€νŠΈλ³„ μš©λŸ‰κ³Ό 배치 μ •μ±…"]
        Coordination["배치, μ‹œκ°„, 수λͺ… μ£ΌκΈ°, μ›Œν¬λ‘œλ“œ λ™μž‘ μ‘°μ •"]
        State["μ‹€ν—˜ μƒνƒœμ™€ μ‹€ν–‰ μ§„ν–‰ 상황"]
        Definition --> Coordination
        Resources --> Coordination
        Coordination --> State
    end

    subgraph Execution["λΆ„μ‚° μ‹€ν–‰: ν˜ΈμŠ€νŠΈμ™€ ν”Όμ–΄ μ—°κ²°μ˜ μ˜ˆμ‹œ"]
        direction LR
        subgraph HostA["μ‹€ν–‰ 호슀트 A"]
            LocalA["ν˜ΈμŠ€νŠΈλ³„ μ›Œν¬λ‘œλ“œ 관리"]
            PeerA1["격리된 ν”Όμ–΄ A1: ν”„λ‘œν† μ½œκ³Ό μ• ν”Œλ¦¬μΌ€μ΄μ…˜"]
            PeerA2["격리된 ν”Όμ–΄ A2: ν”„λ‘œν† μ½œκ³Ό μ• ν”Œλ¦¬μΌ€μ΄μ…˜"]
            LocalA --> PeerA1
            LocalA --> PeerA2
        end
        subgraph HostB["μ‹€ν–‰ 호슀트 B"]
            LocalB["ν˜ΈμŠ€νŠΈλ³„ μ›Œν¬λ‘œλ“œ 관리"]
            PeerB1["격리된 ν”Όμ–΄ B1: ν”„λ‘œν† μ½œκ³Ό μ• ν”Œλ¦¬μΌ€μ΄μ…˜"]
            PeerB2["격리된 ν”Όμ–΄ B2: ν”„λ‘œν† μ½œκ³Ό μ• ν”Œλ¦¬μΌ€μ΄μ…˜"]
            LocalB --> PeerB1
            LocalB --> PeerB2
        end
        PeerA1 <==>|"호슀트 λ‚΄ P2P νŠΈλž˜ν”½"| PeerA2
        PeerA2 <==>|"호슀트 κ°„ P2P νŠΈλž˜ν”½"| PeerB1
        PeerB1 <==>|"호슀트 λ‚΄ P2P νŠΈλž˜ν”½"| PeerB2
    end

    subgraph Observation["κ΄€μΈ‘κ³Ό 연ꡬ 뢄석"]
        Evidence["수λͺ… μ£ΌκΈ°, ν† ν΄λ‘œμ§€, ν”„λ‘œν† μ½œ, 전달 증거 μˆ˜μ§‘"]
        Records["μ‹€ν—˜ μž…λ ₯κ³Ό κ΄€μΈ‘ 기둝 보쑴"]
        Analysis["도달λ₯ , μ§€μ—°, 쀑볡, μ˜€λ²„ν—€λ“œ 해석"]
        Results["μ‹€ν–‰ κ²°κ³Ό 비ꡐ와 λΆˆν™•μ‹€μ„± 보고"]
        Evidence --> Records --> Analysis --> Results
    end

    Researcher --> Definition
    Coordination -->|"μž‘μ—…κ³Ό 쑰건 ν• λ‹Ή"| LocalA
    Coordination -->|"μž‘μ—…κ³Ό 쑰건 ν• λ‹Ή"| LocalB
    LocalA -.->|"μƒνƒœμ™€ ν”Όμ–΄ κ΄€μΈ‘"| Evidence
    LocalB -.->|"μƒνƒœμ™€ ν”Όμ–΄ κ΄€μΈ‘"| Evidence
    Evidence -.->|"보고된 μ‹€ν–‰ μƒνƒœ"| State
    Definition -->|"μ‹€ν—˜ λ§₯락"| Records
    State -.->|"μ§„ν–‰ 상황"| Researcher
    Results -->|"λ‹€μŒ μ‹€ν—˜μ— 반영"| Researcher

ν™”μ‚΄ν‘œ μ½λŠ” 법. κ°€λŠ” 싀선은 μ§€μ‹œ λ˜λŠ” 연ꡬ μž‘μ—… 흐름, ꡡ은 μ–‘λ°©ν–₯ ν™”μ‚΄ν‘œλŠ” μ‹€ν—˜ P2P νŠΈλž˜ν”½, 점선은 관츑을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. 그림의 ν˜ΈμŠ€νŠΈμ™€ ν”Όμ–΄ 연결은 μ˜ˆμ‹œμ΄λ©°, ν•„μˆ˜ 호슀트 μˆ˜λ‚˜ κ³ μ • ν† ν΄λ‘œμ§€ λ˜λŠ” μ™„μ „ μ—°κ²° ꡬ쑰λ₯Ό λœ»ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. P2P λ„€νŠΈμ›Œν¬λŠ” 피어와 ν”„λ‘œν† μ½œ κ΄€κ³„λ‘œ ν˜•μ„±λ˜λ©°, λ³„λ„μ˜ 쀑앙 전달 μ„œλΉ„μŠ€κ°€ μ•„λ‹™λ‹ˆλ‹€.

μ±…μž„ κ°œλ…μ  경계
μ‹€ν—˜ μ •μ˜μ™€ μ œμ–΄ μ˜λ„ν•œ ν”Όμ–΄ μ§‘ν•©, ν”„λ‘œν† μ½œ μ„€μ •, μ›Œν¬λ‘œλ“œ, μ‹œκ°„κ³Ό 쑰건을 ν‘œν˜„ν•˜κ³  싀행을 μ‘°μ •ν•˜λ©° 보고된 μ§„ν–‰ 상황을 μΆ”μ ν•©λ‹ˆλ‹€. μ˜λ„ν•œ μ„€μ •κ³Ό κ΄€μΈ‘λœ λ™μž‘μ€ λ‹€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
ν˜ΈμŠ€νŠΈλ³„ μ‹€ν–‰ ν• λ‹Ήλœ μž‘μ—…μ„ κ°œλ³„ 관리 κ°€λŠ₯ν•œ ν”Όμ–΄ μ›Œν¬λ‘œλ“œλ‘œ μ‹€ν–‰ν•˜κ³  둜컬 μ‹€ν–‰ 보고λ₯Ό μˆ˜μ§‘ν•©λ‹ˆλ‹€. ꡬ체적인 μ‹€ν–‰ μˆ˜λ‹¨κ³Ό 배치 정책은 κ΅¬ν˜„μ— 따라 λ‹¬λΌμ§‘λ‹ˆλ‹€.
ν”Όμ–΄ ν”„λ‘œν† μ½œ μ‹€ν–‰ λ‹€λ₯Έ ν”Όμ–΄λ₯Ό νƒμƒ‰ν•˜κ³  μ—°κ²°ν•˜λ©°, ν”„λ‘œν† μ½œ 관계λ₯Ό μœ μ§€ν•˜κ³  μ‹€ν—˜ λ©”μ‹œμ§€λ₯Ό κ΅ν™˜ν•©λ‹ˆλ‹€. μ€‘μ•™μ—μ„œ μš”μ²­ν•œ μ›Œν¬λ‘œλ“œ λ™μž‘μ€ ν”Όμ–΄ ν™œλ™μ„ μ‹œμž‘ν•˜κ²Œ ν•˜μ§€λ§Œ, μ œμ–΄κΈ°λ₯Ό P2P μ€‘κ³„κΈ°λ‘œ λ§Œλ“€μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.
κ΄€μΈ‘κ³Ό 기둝 μ‹€ν–‰κ³Ό ν”„λ‘œν† μ½œμ˜ 증거λ₯Ό μ‹€ν—˜ λ§₯락에 μ—°κ²°ν•©λ‹ˆλ‹€. 보고가 μ§€μ—°λ˜κ±°λ‚˜ λˆ„λ½λ  수 μžˆμœΌλ―€λ‘œ μˆ˜μ§‘λœ μƒνƒœλŠ” λ„€νŠΈμ›Œν¬ 전체에 λŒ€ν•œ μ™„μ „ν•œ 지식이 μ•„λ‹Œ κ΄€μΈ‘μž…λ‹ˆλ‹€.
연ꡬ 뢄석 츑정값을 ν•΄μ„ν•˜κ³  μ‹€ν–‰ κ²°κ³Όλ₯Ό λΉ„κ΅ν•˜λ©° κ°€μ •κ³Ό λΆˆν™•μ‹€μ„±μ„ λ³΄κ³ ν•©λ‹ˆλ‹€. ν…ŒμŠ€νŠΈλ² λ“œ μ™ΈλΆ€μ—μ„œ μˆ˜ν–‰ν•˜λŠ” μ—°κ΅¬μžμ˜ μž‘μ—…λ„ ν¬ν•¨ν•˜λ©°, μžλ™ 뢄석 μ„œλΉ„μŠ€μ˜ μ œκ³΅μ„ μ˜λ―Έν•˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€.

μœ„ ꡬ뢄은 λ…Όλ¦¬μ μž…λ‹ˆλ‹€. 각 μƒμžκ°€ 별도 ν”„λ‘œμ„ΈμŠ€, μ»¨ν…Œμ΄λ„ˆ, 물리 λ„€νŠΈμ›Œν¬ λ˜λŠ” μž₯μ•  μ˜μ—­μœΌλ‘œ λΆ„λ¦¬λœλ‹€λŠ” λœ»μ€ μ•„λ‹™λ‹ˆλ‹€. λ„€νŠΈμ›Œν¬ 쑰건은 μ„ νƒν•œ μ‹€ν—˜ λ²”μœ„μ˜ νŠΈλž˜ν”½μ— μž‘μš©ν•˜λ©°, 곡유 호슀트 μžμ›κ³Ό 물리 연결망도 결과에 영ν–₯을 μ€λ‹ˆλ‹€. ꡬ체적인 μ„œλΉ„μŠ€, λ„€νŠΈμ›Œν¬ μ—°κ²°, 지원 μ œμ–΄μ™€ μΈ‘μ • ν•œκ³„λŠ” v3 μ•„ν‚€ν…μ²˜ κ°€μ΄λ“œλ₯Ό μ°Έκ³ ν•˜μ‹­μ‹œμ˜€.

μš©λŸ‰κ³Ό μ›Œν¬λ‘œλ“œ 배치

μ‹€ν—˜μ˜ λͺ©ν‘œ Peer 수, ν˜ΈμŠ€νŠΈκ°€ ν—ˆμš©ν•˜λŠ” Peer 수, μ‹€μ œ ready Peer μˆ˜λŠ” μ„œλ‘œ λ‹€λ₯Έ κ°’μž…λ‹ˆλ‹€. μš©λŸ‰μ€ μƒˆ Peer의 생성 ν—ˆμš© λ²”μœ„μ΄κ³ , 배치 정책은 κ·Έ λ²”μœ„ μ•ˆμ—μ„œ μ‹€ν–‰ν•  호슀트λ₯Ό κ³ λ¦…λ‹ˆλ‹€. 생성 μ˜ˆμ•½κ³Ό 정리 쀑인 μžμ›κΉŒμ§€ μ–΄λ–€ μƒνƒœλ₯Ό 점유둜 μ„ΈλŠ”μ§€λŠ” κ΅¬ν˜„μ²΄κ°€ μ •μ˜ν•©λ‹ˆλ‹€.

μ„œλ‘œ λ‹€λ₯Έ 크기의 ν˜ΈμŠ€νŠΈμ—λŠ” μš©λŸ‰μ— λΉ„λ‘€ν•œ 배치λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. Peer 수의 λΉ„μœ¨μ΄ CPUΒ·λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰μ˜ λΉ„μœ¨μ„ 보μž₯ν•˜μ§€λŠ” μ•ŠμœΌλ―€λ‘œ, μ—­ν• κ³Ό μ›Œν¬λ‘œλ“œλ³„ μžμ› μ‚¬μš©λŸ‰λ„ ν•¨κ»˜ κ΄€μΈ‘ν•΄μ•Ό ν•©λ‹ˆλ‹€. μžμ›μ΄ λŠ˜μ–΄λ‚˜κ±°λ‚˜ μ€„μ–΄λ“œλŠ” μƒν™©μ—μ„œλ„ λͺ©ν‘œ 규λͺ¨μ™€ μ‹€μ œ λ°°μΉ˜Β·μ€€λΉ„ μƒνƒœλ₯Ό ꡬ뢄해 κΈ°λ‘ν•˜μ‹­μ‹œμ˜€. 탄λ ₯적 싀행은 μž„μ˜μ˜ 규λͺ¨λ‚˜ μ •ν™•ν•œ μ‹€ν–‰ 간격을 보μž₯ν•œλ‹€λŠ” 뜻이 μ•„λ‹™λ‹ˆλ‹€.

v3의 κΈ°λ³Έκ°’Β·Agent별 μ˜ˆμ™Έ, λΉ„λ‘€ 배치 예제, 적용 μ‹œμ κ³Ό κΈ°μ‘΄ Peer 처리 κ·œμΉ™μ€ Agent μš©λŸ‰κ³Ό λ°°μΉ˜μ—μ„œ μ •μ˜ν•©λ‹ˆλ‹€.