115
Pattern Language for Service Pattern Language for Service Discovery Discovery

서비스 발견을 위한 패턴언어

  • Upload
    eva

  • View
    313

  • Download
    2

Embed Size (px)

Citation preview

Page 1: 서비스 발견을 위한 패턴언어

Pattern Language for Service Pattern Language for Service DiscoveryDiscovery

Page 2: 서비스 발견을 위한 패턴언어

자신이 원하는 정보를 자신이 원하는 정보를 어떻게 얻을 수 있을까어떻게 얻을 수 있을까 ??

Page 3: 서비스 발견을 위한 패턴언어

1. 1. 주변 지인에게 물어본다주변 지인에게 물어본다 ..

Page 4: 서비스 발견을 위한 패턴언어

2. 2. 관련 광고를 통해 얻는다관련 광고를 통해 얻는다 ..

Page 5: 서비스 발견을 위한 패턴언어

3. 3. 전문가에게 상담을 받는다전문가에게 상담을 받는다 ..

Page 6: 서비스 발견을 위한 패턴언어

동적 네트워크 환경에서는동적 네트워크 환경에서는 어떻게 정보를 얻을 수 있을까어떻게 정보를 얻을 수 있을까 ??

Page 7: 서비스 발견을 위한 패턴언어

BackGround - Dynamic NetworkBackGround - Dynamic Network

- - 동적 네트워크 안에 존재하는 노드는 들어오거나 떠날 수 있다동적 네트워크 안에 존재하는 노드는 들어오거나 떠날 수 있다 ..

Page 8: 서비스 발견을 위한 패턴언어

BackGround - Dynamic NetworkBackGround - Dynamic Network

- - 동적 네트워크 안에 존재하는 노드는 들어오거나 떠날 수 있다동적 네트워크 안에 존재하는 노드는 들어오거나 떠날 수 있다 ..

Page 9: 서비스 발견을 위한 패턴언어

BackGround - BackGround - GnutellaGnutella

- P2P - P2P 환경에서 클라이언트 간에 파일 교환을 위한 인터넷 서비스환경에서 클라이언트 간에 파일 교환을 위한 인터넷 서비스

AB

a.txt?

Page 10: 서비스 발견을 위한 패턴언어

BackGround - BackGround - GnutellaGnutella

AB

a.txt

- P2P - P2P 환경에서 클라이언트 간에 파일 교환을 위한 인터넷 서비스환경에서 클라이언트 간에 파일 교환을 위한 인터넷 서비스

Page 11: 서비스 발견을 위한 패턴언어

BackGround - NapsterBackGround - Napster

- 중앙 서버를 가진 중앙 서버를 가진 P2PP2P 환경에서 클라이언트가 요청한 정보에 환경에서 클라이언트가 요청한 정보에 대해 매칭되는 노드와 연결시켜주는 인터넷 서비스대해 매칭되는 노드와 연결시켜주는 인터넷 서비스

B

A a.txt

Page 12: 서비스 발견을 위한 패턴언어

BackGround - NapsterBackGround - Napster

B

A B

- 중앙 서버를 가진 중앙 서버를 가진 P2PP2P 환경에서 클라이언트가 요청한 정보에 환경에서 클라이언트가 요청한 정보에 대해 매칭되는 노드와 연결시켜주는 인터넷 서비스대해 매칭되는 노드와 연결시켜주는 인터넷 서비스

Page 13: 서비스 발견을 위한 패턴언어

BackGround - NapsterBackGround - Napster

B

A

a.tx

t

- 중앙 서버를 가진 중앙 서버를 가진 P2PP2P 환경에서 클라이언트가 요청한 정보에 환경에서 클라이언트가 요청한 정보에 대해 매칭되는 노드와 연결시켜주는 인터넷 서비스대해 매칭되는 노드와 연결시켜주는 인터넷 서비스

Page 14: 서비스 발견을 위한 패턴언어

BackGround – KazzaBackGround – Kazza

- 특정 노드를 특정 노드를 Super PeerSuper Peer 로 두어 중앙 서버의 역할을 수행할로 두어 중앙 서버의 역할을 수행할 수 있도록 한 인터넷 서비스수 있도록 한 인터넷 서비스 ..

SS

TransfersSearches

Page 15: 서비스 발견을 위한 패턴언어

BackGround – KazzaBackGround – Kazza

S

TransfersSearches

- 특정 노드를 특정 노드를 Super PeerSuper Peer 로 두어 중앙 서버의 역할을 수행할로 두어 중앙 서버의 역할을 수행할 수 있도록 한 인터넷 서비스수 있도록 한 인터넷 서비스 ..

Page 16: 서비스 발견을 위한 패턴언어

BackGround – KazzaBackGround – Kazza

A

B

SSa.txt

- 특정 노드를 특정 노드를 Super PeerSuper Peer 로 두어 중앙 서버의 역할을 수행할로 두어 중앙 서버의 역할을 수행할 수 있도록 한 인터넷 서비스수 있도록 한 인터넷 서비스 ..

Page 17: 서비스 발견을 위한 패턴언어

BackGround – KazzaBackGround – Kazza

A

B

SS

- 특정 노드를 특정 노드를 Super PeerSuper Peer 로 두어 중앙 서버의 역할을 수행할로 두어 중앙 서버의 역할을 수행할 수 있도록 한 인터넷 서비스수 있도록 한 인터넷 서비스 ..

Page 18: 서비스 발견을 위한 패턴언어

BackGround – KazzaBackGround – Kazza

A

B

SSB

- 특정 노드를 특정 노드를 Super PeerSuper Peer 로 두어 중앙 서버의 역할을 수행할로 두어 중앙 서버의 역할을 수행할 수 있도록 한 인터넷 서비스수 있도록 한 인터넷 서비스 ..

Page 19: 서비스 발견을 위한 패턴언어

BackGround – KazzaBackGround – Kazza

A

B

SS

- 특정 노드를 특정 노드를 Super PeerSuper Peer 로 두어 중앙 서버의 역할을 수행할로 두어 중앙 서버의 역할을 수행할 수 있도록 한 인터넷 서비스수 있도록 한 인터넷 서비스 ..

a.txt

Page 20: 서비스 발견을 위한 패턴언어

1. 1. 주변 지인에게 물어본다주변 지인에게 물어본다 ..

Page 21: 서비스 발견을 위한 패턴언어

Ask Local Network Ask Local Network

Page 22: 서비스 발견을 위한 패턴언어

ContextContext- 노드는 상황에 따라 클라이언트가 되거나 서비스가 될 수 있다노드는 상황에 따라 클라이언트가 되거나 서비스가 될 수 있다 . .

Page 23: 서비스 발견을 위한 패턴언어

ContextContext- 노드는 상황에 따라 클라이언트가 되거나 서비스가 될 수 있다노드는 상황에 따라 클라이언트가 되거나 서비스가 될 수 있다 . .

Page 24: 서비스 발견을 위한 패턴언어

ContextContext- 노드는 상황에 따라 클라이언트가 되거나 서비스가 될 수 있다노드는 상황에 따라 클라이언트가 되거나 서비스가 될 수 있다 . .

Page 25: 서비스 발견을 위한 패턴언어

ProblemProblem- - 클라이언트는 서비스를 발견할 만큼의 정보를 가지고 있지 않클라이언트는 서비스를 발견할 만큼의 정보를 가지고 있지 않다다 ..

How todiscove

r?

Page 26: 서비스 발견을 위한 패턴언어

SolutionSolution- 클라이언트는 원하는 정보를 얻기 위해 자신과 가까운 노드에게 클라이언트는 원하는 정보를 얻기 위해 자신과 가까운 노드에게

질의를 보낸다질의를 보낸다 ..

Page 27: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 클라이언트가 포함된 네트워크에는 해당 서비스가 없을 수 있다클라이언트가 포함된 네트워크에는 해당 서비스가 없을 수 있다 ..

Page 28: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

A road map of the pattern A road map of the pattern languagelanguage

Page 29: 서비스 발견을 위한 패턴언어

Overlay Network Overlay Network

Page 30: 서비스 발견을 위한 패턴언어

ContextContext- ASK LOCAL NETWORKASK LOCAL NETWORK 로 서비스 찾기로 서비스 찾기

Request

Request

Page 31: 서비스 발견을 위한 패턴언어

ProblemProblem- - 클라이언트가 속한 네트워크 영역에서는 찾고 있는 서비스가 없다클라이언트가 속한 네트워크 영역에서는 찾고 있는 서비스가 없다 ..

Page 32: 서비스 발견을 위한 패턴언어

ProblemProblem- - 소수의 노드만 응답에 관련이 되어 있다소수의 노드만 응답에 관련이 되어 있다 ..

Page 33: 서비스 발견을 위한 패턴언어

SolutionSolution- OVERLAY NETWORK- OVERLAY NETWORK 를 활용한다를 활용한다 ..

A

B

S

C

S

S

Page 34: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 구현하기 복잡할 뿐만 아니라구현하기 복잡할 뿐만 아니라 ,, 클라이언트와 서비스 수가 클라이언트와 서비스 수가

많아지게 많아지게 될 경우 관리가 어려워진다될 경우 관리가 어려워진다 .. Resource,

Super Peer Seletion,

.

.

.

S

Page 35: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

A road map of the pattern A road map of the pattern languagelanguage

Page 36: 서비스 발견을 위한 패턴언어

2. 2. 관련 광고를 통해 얻는다관련 광고를 통해 얻는다 ..

Page 37: 서비스 발견을 위한 패턴언어

Listen to Listen to AdvertisementsAdvertisements

Page 38: 서비스 발견을 위한 패턴언어

ContextContext- 노드는 상황에 따라 클라이언트가 되거나 서비스가 될 수 있다노드는 상황에 따라 클라이언트가 되거나 서비스가 될 수 있다 . .

Page 39: 서비스 발견을 위한 패턴언어

ContextContext- 노드는 상황에 따라 클라이언트가 되거나 서비스가 될 수 있다노드는 상황에 따라 클라이언트가 되거나 서비스가 될 수 있다 . .

Page 40: 서비스 발견을 위한 패턴언어

ProblemProblem- - 클라이언트는 서비스를 발견할 만큼의 정보를 가지고 있지 않클라이언트는 서비스를 발견할 만큼의 정보를 가지고 있지 않다다 ..

How todiscove

r?

Page 41: 서비스 발견을 위한 패턴언어

ProblemProblem- 클라이언트는 새로운 서비스가 출현하거나 이전 서비스가 클라이언트는 새로운 서비스가 출현하거나 이전 서비스가 없어졌을 때 어떻게 대처 해야 할지 알고 싶다없어졌을 때 어떻게 대처 해야 할지 알고 싶다 ..

Is this the latest

version?

Page 42: 서비스 발견을 위한 패턴언어

SolutionSolution- - 서비스는 정기적으로 클라이언트들에게 광고 메시지를 보낸다서비스는 정기적으로 클라이언트들에게 광고 메시지를 보낸다 . .

Page 43: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 서비스는 더 많은 대역폭과 광고만을 위한 리소스가 필요하다서비스는 더 많은 대역폭과 광고만을 위한 리소스가 필요하다 . .

Page 44: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

LISTEN TOADVERTISEMENTS

(3)

A road map of the pattern A road map of the pattern languagelanguage

Page 45: 서비스 발견을 위한 패턴언어

Use AdvertiserUse Advertiser

Page 46: 서비스 발견을 위한 패턴언어

ContextContext- 서비스를 찾기 위해 광고를 듣는 클라이언트서비스를 찾기 위해 광고를 듣는 클라이언트

Information

Information

Page 47: 서비스 발견을 위한 패턴언어

ProblemProblem - - 서비스가 광고 자체를 할 수 없거나 안 할 수도 있다서비스가 광고 자체를 할 수 없거나 안 할 수도 있다 . .

Page 48: 서비스 발견을 위한 패턴언어

SolutionSolution- - 서비스를 대표하여 광고를 할 수 있는 광고자에게 위임한다서비스를 대표하여 광고를 할 수 있는 광고자에게 위임한다 ..

Info

Page 49: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 서비스가 광고자를 찾기 위해 서비스가 광고자를 찾기 위해 ASK LOCAL NETWORK, ASK LOCAL NETWORK, LISTEN LISTEN

TO ADVERTISEMENTSTO ADVERTISEMENTS, CONSULT DIRECTORY , CONSULT DIRECTORY 방법을 방법을 사용한다사용한다 . .

Page 50: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

LISTEN TOADVERTISEMENTS

(3)

USEADVERTISER (4)

A road map of the pattern A road map of the pattern languagelanguage

Page 51: 서비스 발견을 위한 패턴언어

3. 3. 전문가에게 상담을 받는다전문가에게 상담을 받는다 ..

Page 52: 서비스 발견을 위한 패턴언어

Consult DirectoryConsult Directory

Page 53: 서비스 발견을 위한 패턴언어

ContextContext- 많은 노드와 연결된 서비스가 있다많은 노드와 연결된 서비스가 있다 ..

Page 54: 서비스 발견을 위한 패턴언어

ProblemProblem- - 클라이언트는 서비스를 발견할 만큼의 정보를 가지고 있지 않클라이언트는 서비스를 발견할 만큼의 정보를 가지고 있지 않다다 ..

How todiscove

r?

Page 55: 서비스 발견을 위한 패턴언어

SolutionSolution- - 서비스의 정보를 관리 할 수 있는 디렉터리 서버를 이용한다서비스의 정보를 관리 할 수 있는 디렉터리 서버를 이용한다 ..

Request

Response

Page 56: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 관리자 또는 서비스 프로토콜 개발자는 네트워크에서 어떠한 관리자 또는 서비스 프로토콜 개발자는 네트워크에서 어떠한

방식으로 디렉토리를 운영할 것인지를 정해야 한다방식으로 디렉토리를 운영할 것인지를 정해야 한다 ..

Page 57: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 디렉토리 서버에 어떻게디렉토리 서버에 어떻게 서비스를 등록 할 것인지 고려한다서비스를 등록 할 것인지 고려한다 ..

Register Find

Page 58: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

LISTEN TOADVERTISEMENTS

(3)

USEADVERTISER (4)

CONSULTDIRECTORY

(5)

A road map of the pattern A road map of the pattern languagelanguage

Page 59: 서비스 발견을 위한 패턴언어

Services Register In Services Register In DirectoryDirectory

Page 60: 서비스 발견을 위한 패턴언어

ContextContext- 일반적으로 서비스는 하나 또는 소수의 디렉토리에 수록된다일반적으로 서비스는 하나 또는 소수의 디렉토리에 수록된다 . .

Page 61: 서비스 발견을 위한 패턴언어

ProblemProblem- - 디렉토리는 서비스에 관련된 정보가 필요하다디렉토리는 서비스에 관련된 정보가 필요하다 ..

I needService

s.

Page 62: 서비스 발견을 위한 패턴언어

SolutionSolution- - 서비스가 스스로 디렉토리에 등록하게 하라서비스가 스스로 디렉토리에 등록하게 하라 ..

Page 63: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 서비스가 디렉토리 서버에 스스로 등록하기 위해서는 복잡한 구현 서비스가 디렉토리 서버에 스스로 등록하기 위해서는 복잡한 구현

방법이 요구된다방법이 요구된다 ..Category,Identity,

Find Server,

.

.

.

Page 64: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

LISTEN TOADVERTISEMENTS

(3)

USEADVERTISER (4)

CONSULTDIRECTORY

(5)

SERVICES REGISTER IN

DIRECTORY (6)

A road map of the pattern A road map of the pattern languagelanguage

Page 65: 서비스 발견을 위한 패턴언어

Directory Finds Directory Finds ServicesServices

Page 66: 서비스 발견을 위한 패턴언어

ContextContext- 서비스는 자신이 가진 쉽게 정보를 공개할 수 있다서비스는 자신이 가진 쉽게 정보를 공개할 수 있다 ..

Gangnam Style.mp3

Mable.jpg

One More night.mp3

Happy Sunday.avi

Screen Chart.doc

Page 67: 서비스 발견을 위한 패턴언어

ProblemProblem- - 디렉토리는 서비스에 관련된 정보가 필요하다디렉토리는 서비스에 관련된 정보가 필요하다 ..

I needService

s.

Page 68: 서비스 발견을 위한 패턴언어

ProblemProblem-- 서비스가 스스로 디렉토리 서버에 등록하는 것은 부담이다서비스가 스스로 디렉토리 서버에 등록하는 것은 부담이다 ..

Category,Identity,

Find Server,

.

.

.

Page 69: 서비스 발견을 위한 패턴언어

SolutionSolution

- - 디렉토리가 직접 서비스를 찾게 하라디렉토리가 직접 서비스를 찾게 하라 ..

Page 70: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 서비스는 자신의 정보가 변경됐을 경우 디렉토리 서버에 공지 할 서비스는 자신의 정보가 변경됐을 경우 디렉토리 서버에 공지 할

수 없기 때문에수 없기 때문에 , , 정보의 적시성은 문제가 될 수 있다정보의 적시성은 문제가 될 수 있다 ..

Is this the latest

information?

Page 71: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

LISTEN TOADVERTISEMENTS

(3)

USEADVERTISER (4)

CONSULTDIRECTORY

(5)

SERVICES REGISTER IN

DIRECTORY (6)

DIRECTORY FINDS SERVICES

(7)

A road map of the pattern A road map of the pattern languagelanguage

Page 72: 서비스 발견을 위한 패턴언어

Align Directories Align Directories With OrganizationWith Organization

Page 73: 서비스 발견을 위한 패턴언어

ContextContext- 각각 서비스는 보통 조직 또는 그것에 대한 책임이 있는 조직 각각 서비스는 보통 조직 또는 그것에 대한 책임이 있는 조직

유닛과 관련된다유닛과 관련된다 . .

Recruitment

Education

Allocation

Department of human resources

Page 74: 서비스 발견을 위한 패턴언어

ProblemProblem

- - 디렉토리 서버를디렉토리 서버를 어디에 둘 것이며 누가 운영할 것인가어디에 둘 것이며 누가 운영할 것인가 ??

A

C

B

Which node is better?

Page 75: 서비스 발견을 위한 패턴언어

SolutionSolution

- - 조직 단위가 별도의 디렉토리를 설치하도록 하라조직 단위가 별도의 디렉토리를 설치하도록 하라 ..

Page 76: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 조직 정렬이 어렵거나 디렉토리에 대한 지원이 불확실조직 정렬이 어렵거나 디렉토리에 대한 지원이 불확실 할 수 있다할 수 있다 ..

Page 77: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

LISTEN TOADVERTISEMENTS

(3)

USEADVERTISER (4)

CONSULTDIRECTORY

(5)

ALIGN DIRECTORIESWITH ORGANIZATION

(8)SERVICES REGISTER

INDIRECTORY (6)

DIRECTORY FINDS SERVICES

(7)

A road map of the pattern A road map of the pattern languagelanguage

Page 78: 서비스 발견을 위한 패턴언어

Place Directories Place Directories DynamicallyDynamically

Page 79: 서비스 발견을 위한 패턴언어

ContextContext- 어떠한 정적 구조는 디렉토리와 노드간의 분류를 지원하지 어떠한 정적 구조는 디렉토리와 노드간의 분류를 지원하지 못한다못한다 ..

Black

Coffee

Choco

Doughnut

Coffee ordoughnut?

Page 80: 서비스 발견을 위한 패턴언어

ProblemProblem

- - 디렉토리 서버를디렉토리 서버를 어디에 둘 것이며 누가 운영할 것인가어디에 둘 것이며 누가 운영할 것인가 ??

A

C

B

Which node is better?

Page 81: 서비스 발견을 위한 패턴언어

SolutionSolution- - 모든 노드가 모든 노드가 디렉토리 서버를 수행하게 하라디렉토리 서버를 수행하게 하라 ..

Page 82: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 디렉토리가 동적으로 위치하게 되면디렉토리가 동적으로 위치하게 되면 , , 클라이언트는 디렉토리를 클라이언트는 디렉토리를

찾아야 한다찾아야 한다 ..

Where is the server?

Page 83: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 디렉토리 서버의 안정성은 떨어질 수 있다디렉토리 서버의 안정성은 떨어질 수 있다 ..

Turn off after 10 minutes.

Page 84: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

LISTEN TOADVERTISEMENTS

(3)

USEADVERTISER (4)

CONSULTDIRECTORY

(5)

PLACE DIRECTORIES

DYNAMICALLY (9)

ALIGN DIRECTORIESWITH ORGANIZATION

(8)SERVICES REGISTER

INDIRECTORY (6)

DIRECTORY FINDS SERVICES

(7)

A road map of the pattern A road map of the pattern languagelanguage

Page 85: 서비스 발견을 위한 패턴언어

Separate Identity From Location

Page 86: 서비스 발견을 위한 패턴언어

ContextContext- 클라이언트는 이전에 사용한 서비스를 또 다시 사용하기 위해 클라이언트는 이전에 사용한 서비스를 또 다시 사용하기 위해

관련 정보를 저장할 수 있다관련 정보를 저장할 수 있다 ..

I remember that he had Gangnam Style

Page 87: 서비스 발견을 위한 패턴언어

ProblemProblem- - 차후 정보의 유용성을 재사용하기 위해서는 서비스의 어떠한 차후 정보의 유용성을 재사용하기 위해서는 서비스의 어떠한 정보를정보를 저장해야 될까저장해야 될까 ??

Who was he?

Page 88: 서비스 발견을 위한 패턴언어

SolutionSolution

- - 클라이언트와 디렉토리가 식별자를 이용하게 하라클라이언트와 디렉토리가 식별자를 이용하게 하라 ..

QueryQueryQueryQuery

A.COMA.COMA.COMA.COM

A.com

B.com

C.com

Page 89: 서비스 발견을 위한 패턴언어

SolutionSolution

- - 클라이언트와 디렉토리가 식별자를 이용하게 하라클라이언트와 디렉토리가 식별자를 이용하게 하라 ..

A.com

B.com

C.com

Page 90: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 식별자를 사용하기 위해서는 네트워크 주소를 매핑하기 위한 식별자를 사용하기 위해서는 네트워크 주소를 매핑하기 위한 서비스가 필요하다서비스가 필요하다 . .

InfoInfoInfoInfo

InfoInfoInfoInfo

IdentityIdentityIdentityIdentity

DNS, SIP, …

Page 91: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

LISTEN TOADVERTISEMENTS

(3)

USEADVERTISER (4)

CONSULTDIRECTORY

(5)

PLACE DIRECTORIES

DYNAMICALLY (9)

ALIGN DIRECTORIESWITH ORGANIZATION

(8)SERVICES REGISTER

INDIRECTORY (6)

DIRECTORY FINDS SERVICES

(7)

SEPARATE IDENTITY

FROM LOCATION (10)

A road map of the pattern A road map of the pattern languagelanguage

Page 92: 서비스 발견을 위한 패턴언어

Client Knows BestClient Knows Best

Page 93: 서비스 발견을 위한 패턴언어

ContextContext- 클라이언트는 질의에 대해 많은 서비스에 관련된 정보를 받는클라이언트는 질의에 대해 많은 서비스에 관련된 정보를 받는

다다 ..

Query

Page 94: 서비스 발견을 위한 패턴언어

ContextContext- 클라이언트는 질의에 대해 많은 서비스에 관련된 정보를 받는클라이언트는 질의에 대해 많은 서비스에 관련된 정보를 받는

다다 ..

A lot of Information

Page 95: 서비스 발견을 위한 패턴언어

ProblemProblem- 클라이언트가 원하는 정보와 어떠한 서비스의 응답이 클라이언트가 원하는 정보와 어떠한 서비스의 응답이 가장 관련이 있는가가장 관련이 있는가 ??

I want best

answer

A lot of Information

Page 96: 서비스 발견을 위한 패턴언어

SolutionSolution- 간단한 질의문을 이용한다간단한 질의문을 이용한다 ..

Coffee

Coffee?

Coffee?

Coffee?

Black Coffee

Espresso

Latte

Page 97: 서비스 발견을 위한 패턴언어

SolutionSolution- 검색된 결과의 수가 많아도 클라이언트에게 모두 보낸다검색된 결과의 수가 많아도 클라이언트에게 모두 보낸다 ..

Information

Information

Informati

on

Request

Request

Request

Black Coffee

Espresso

Latte

Oh, espresso.That’s it.

Page 98: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 클라이언트가 자신이 원하는 서비스를 선별하기엔 무리가 있다클라이언트가 자신이 원하는 서비스를 선별하기엔 무리가 있다 ..

Request

Request

Request

Too many

Service…

Page 99: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

LISTEN TOADVERTISEMENTS

(3)

USEADVERTISER (4)

CONSULTDIRECTORY

(5)

PLACE DIRECTORIES

DYNAMICALLY (9)

ALIGN DIRECTORIESWITH ORGANIZATION

(8)SERVICES REGISTER

INDIRECTORY (6)

DIRECTORY FINDS SERVICES

(7)

SEPARATE IDENTITY

FROM LOCATION (10)

CLIENT KNOWS BEST

(11)

A road map of the pattern A road map of the pattern languagelanguage

Page 100: 서비스 발견을 위한 패턴언어

Server Does Heavy WorkServer Does Heavy Work

Page 101: 서비스 발견을 위한 패턴언어

ContextContext- 디렉토리는 질의에 대해 많은 서비스의 정보를 얻는다디렉토리는 질의에 대해 많은 서비스의 정보를 얻는다 ..

InformationInformationInformationInformation

InformationInformationInformationInformation

InformationInformationInformationInformation

Page 102: 서비스 발견을 위한 패턴언어

ProblemProblem- - 클라이언트의 요구사항에 대한 최적화된 응답을 어떻게 할 것인클라이언트의 요구사항에 대한 최적화된 응답을 어떻게 할 것인가가 ??

I want best

answer

Response

Page 103: 서비스 발견을 위한 패턴언어

SolutionSolution- 디렉터리 서버가 복합적인 프로세스를 거쳐 검색운용을 디렉터리 서버가 복합적인 프로세스를 거쳐 검색운용을 수행하도록 하라수행하도록 하라 ..

Information

Information

Information

Information

InformationInformation

InformationInformation

RequestRequest

Searching

Searching

Page 104: 서비스 발견을 위한 패턴언어

Resulting ContextResulting Context- 디렉터리 서버는 더 복합적이고디렉터리 서버는 더 복합적이고 ,, 자원 요구 사항은 증가한다자원 요구 사항은 증가한다 . .

client's preference,popular information,

.

.

.

Page 105: 서비스 발견을 위한 패턴언어

How todiscover?

ASK LOCAL NETWORK

(1)

OVERLAYNETWORK

(2)

LISTEN TOADVERTISEMENTS

(3)

USEADVERTISER (4)

CONSULTDIRECTORY

(5)

PLACE DIRECTORIES

DYNAMICALLY (9)

ALIGN DIRECTORIESWITH ORGANIZATION

(8)SERVICES REGISTER

INDIRECTORY (6)

DIRECTORY FINDS SERVICES

(7)

SEPARATE IDENTITY

FROM LOCATION (10)

CLIENT KNOWS BEST

(11)

SERVER DOES HEAVY WORK

(12)

A road map of the pattern A road map of the pattern languagelanguage

Page 106: 서비스 발견을 위한 패턴언어

SummarySummary

Page 107: 서비스 발견을 위한 패턴언어

How to discover?How to discover?- 클라이언트가 분산처리 네트워크 상에서 정보를 찾는 방법은 클라이언트가 분산처리 네트워크 상에서 정보를 찾는 방법은 33 가지가 있다가지가 있다 ..

No.3 No.3 디렉토리 서버와 상담한다디렉토리 서버와 상담한다 ..

No.1 No.1 자신과 가까운 노드에게 물어본다자신과 가까운 노드에게 물어본다 .No.1 Ask Local NetworkNo.1 Ask Local Network

No.2 No.2 서비스의 광고를 듣고 정보를 얻는다서비스의 광고를 듣고 정보를 얻는다 ..No.2 Listen to AdvertisementsNo.2 Listen to Advertisements

No.3 No.3 Consult DirectoryConsult Directory

Page 108: 서비스 발견을 위한 패턴언어

How to discover? – No. 1How to discover? – No. 1

Ask Local NetworkAsk Local Network

더 많은 노드에게 더 많은 노드에게 쿼리를 보내고 싶다면쿼리를 보내고 싶다면 ??

Overlay NetworkOverlay Network

Page 109: 서비스 발견을 위한 패턴언어

How to discover? – No. 2How to discover? – No. 2

서비스가 스스로 광고할 서비스가 스스로 광고할 능력이 부족하다면능력이 부족하다면 ??

Listen to AdvertisementsListen to Advertisements

Use AdvertiserUse Advertiser

Page 110: 서비스 발견을 위한 패턴언어

How to discover? – No. 3How to discover? – No. 3

Directory place or operate

Directory place or operate

Services registerServices register

RequestRequest ReuseReuseReuseReuse

Consult DirectoryConsult DirectoryConsult DirectoryConsult Directory

Page 111: 서비스 발견을 위한 패턴언어

How to discover? – No. 3How to discover? – No. 3- - 디렉토리 서버에 서비스를 등록하는디렉토리 서버에 서비스를 등록하는 22 가지 패턴가지 패턴

Service Register Service Register in Directoryin Directory

Directory Finds Directory Finds ServicesServices

어 떤 종 류 의 서 비 스 를 제 공 해 야 하는지 , 언제 이 정보가 변하는지를 가장 잘 안다

서비스의 활용도를 단순화한다 .더 많은 서비스를 등록한다 .

서 비 스 스 스 로 디 렉 토 리 서 버 에 등록하게 한다 .

디 렉 토 리 서 버 가 서 비 스 를 찾 아 등록시킨다 .

Page 112: 서비스 발견을 위한 패턴언어

How to discover? – No. 3How to discover? – No. 3- - 디렉토리 서버의 위치와 운용에 관련된 디렉토리 서버의 위치와 운용에 관련된 22 가지 패턴가지 패턴

Align Directories Align Directories with Organizationwith Organization

Place Directories Place Directories DynamicallyDynamically

각각 서비스는 보통 조직 또는 그것에 대한 책임이 있는 조직 단위와 관련된다 .

모든 네트워크 노드는 동등하게 유효하다 .

조직 단위가 디렉토리를 설치하도록 구성한 후 계층별 디렉토리를 연결시킨다 .

모든 노드가 디렉토리 서버를 수행 할 수 있도록 구성하고 , 이 중에서 특정 노드를 선택한다 .

Page 113: 서비스 발견을 위한 패턴언어

How to discover? – No. 3How to discover? – No. 3

- - 서비스의 재사용을 목적으로 한 서비스 등록에 관련된 패턴서비스의 재사용을 목적으로 한 서비스 등록에 관련된 패턴

Separate Identity From LocationSeparate Identity From Location

동적 네트워크 환경에서 서버의 네트워크 주소는 동적으로 할당된다

DNS, SIP 와 같은 네트워크 식별자를 이용하여 서비스의 주소가 변경되어도 찾을 수 있도록 한다 .

Page 114: 서비스 발견을 위한 패턴언어

How to discover? – No. 3

Client Knows BestClient Knows Best Server Does Heavy WorkServer Does Heavy Work

서비스와 디렉토리는 복잡한 쿼리와 우선 순위의 정보를 처리하는 방법을 모른다 .

클라이언트가 많은 선택사항 중에서 의사결정을 하기에는 무리가 있다 .

쿼리를 단순하게 하고 , 해당 쿼리에 대한 응답을 모두 클라이언트에게 보낸다 .

디렉터리 서버가 정보를 추려서 클라이언트에게 보낸다 .

- - 검색된 정보를 클라이언트에게 알려주는 검색된 정보를 클라이언트에게 알려주는 22 가지 패턴가지 패턴

Page 115: 서비스 발견을 위한 패턴언어

Thank you!Thank you!