KR20230043693A - 정보 중심 네트워크에서의 스토리지 노드 모집 - Google Patents
정보 중심 네트워크에서의 스토리지 노드 모집 Download PDFInfo
- Publication number
- KR20230043693A KR20230043693A KR1020220106089A KR20220106089A KR20230043693A KR 20230043693 A KR20230043693 A KR 20230043693A KR 1020220106089 A KR1020220106089 A KR 1020220106089A KR 20220106089 A KR20220106089 A KR 20220106089A KR 20230043693 A KR20230043693 A KR 20230043693A
- Authority
- KR
- South Korea
- Prior art keywords
- storage
- node
- icn
- data
- packet
- Prior art date
Links
- 238000003860 storage Methods 0.000 title claims abstract description 485
- 230000007115 recruitment Effects 0.000 title claims description 14
- 238000000034 method Methods 0.000 claims abstract description 71
- 230000004044 response Effects 0.000 claims abstract description 28
- 230000015654 memory Effects 0.000 claims description 80
- 238000012545 processing Methods 0.000 claims description 65
- 241000854291 Dianthus carthusianorum Species 0.000 claims description 31
- 230000009466 transformation Effects 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 21
- 238000000844 transformation Methods 0.000 claims description 15
- 230000006835 compression Effects 0.000 claims description 11
- 238000007906 compression Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 description 49
- 230000006870 function Effects 0.000 description 41
- 238000005516 engineering process Methods 0.000 description 16
- 230000009471 action Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 230000006855 networking Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000002776 aggregation Effects 0.000 description 9
- 238000004220 aggregation Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 5
- 230000004224 protection Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 239000000203 mixture Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- QVFWZNCVPCJQOP-UHFFFAOYSA-N chloralodol Chemical compound CC(O)(C)CC(C)OC(O)C(Cl)(Cl)Cl QVFWZNCVPCJQOP-UHFFFAOYSA-N 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 240000001436 Antirrhinum majus Species 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 241000233805 Phoenix Species 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000012813 breadcrumbs Nutrition 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000005387 chalcogenide glass Substances 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000000796 flavoring agent Substances 0.000 description 1
- 235000019634 flavors Nutrition 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 238000012994 industrial processing Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000002070 nanowire Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000011867 re-evaluation Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
ICN(information centric network)에서의 스토리지 노드 모집을 위한 시스템 및 기법들이 본 명세서에 설명된다. ICN 노드는 다른 ICN 관심들로부터 스토리지 관심을 구분하는 표시를 포함하는 스토리지 관심 패킷을 수신한다. ICN 노드는 스토리지 관심 패킷을 포워딩하고 응답하여 스토리지 데이터 패킷을 수신한다. 여기서, 스토리지 데이터 패킷은 스토리지 데이터 패킷이 스토리지 데이터 패킷을 생성한 노드에 대한 노드 정보와 함께 캐싱되지 않는다는 표시를 포함한다. 그 후 ICN 노드는 스토리지 관심 패킷에 대응하는 PIT(pending interest table) 엔트리에 따라 스토리지 데이터 패킷을 송신할 수 있다.
Description
본 명세서에 설명된 실시예들은 일반적으로 컴퓨터 네트워킹에 관한 것으로, 더 구체적으로는 정보 중심 네트워크(information centric network, ICN)에서의 스토리지 노드 모집(storage node recruitment)에 관한 것이다.
정보 중심 네트워크(ICN)들은 정보 또는 계산 서비스들을 위한 머신들 사이의 통신이 명칭에 의해 특정되는 프로토콜들 및 메커니즘들을 구현한다. 이것은 통신이 특정의 엔드포인트(end-point)들의 주소[예컨대, 호스트 IP(Internet Protocol) 주소](예를 들어, 및 포트)들을 포함하는 전통적인 (레거시) 네트워크 및 프로토콜과 대조적이다. ICN 동작에서, 관심 패킷(예를 들어, 요청)이 ICN 노드에서 도달한다. 관심 패킷은 요청된 콘텐츠에 대한 명칭을 포함한다. 콘텐츠가 ICN 노드의 콘텐츠 스토어(content store, CS)(예를 들어, 로컬 캐시)에 있는 경우, 관심은 CS로부터의 데이터에 의해 만족된다. 관심을 만족시키기 위해, ICN 노드는 관심이 그로부터 수신된 인터페이스[예를 들어, 페이스(face)] 바깥으로 콘텐츠를 포함하는 데이터 패킷을 송신한다. 콘텐츠가 CS에 없는 경우, 인커밍 관심(incoming interest)은 요청자에 관한 정보[예를 들어, 인커밍 페이스(face)]와 함께 PIT(pending interest table)에 기록된다. 관심은, (예를 들어, 일부 다른 요청자로 인해) PIT에 이미 있지 않다면, 일부 다른 노드로부터 요청된 데이터를 찾아야 할 새로운 필요성을 나타낸다. 따라서, ICN 노드는 FIB(Forwarding information base)를 참고하여 관심을 이웃 ICN 노드들로 포워드하기 위해 라우팅한다. 이러한 방식으로, 관심들은 그 콘텐츠 스토어에 요청된 데이터를 갖는 가장 가까운 노드로, 또는 원래의 게시자로 내비게이션한다. 관심에 응답한 데이터 패킷이 원래의 요청자로 되돌려 순회(traverse)할 때, 빵 부스러기의 흔적을 따르는 것과 유사하게, 중간 PIT 엔트리들이 루트를 찾기 위해 사용되고, 데이터는 데이터 패킷이 순회하는 각각의 노드에서 캐싱될 수 있다.
에지 컴퓨팅은, 예를 들어, 이러한 서비스들의 초저 레이턴시 요건들을 충족시키기 위해 컴퓨팅 리소스들을 서비스들의 소비자들에 가깝게 배치한다. 따라서, 컴퓨팅 서버들은 종종 데이터 소스들에 물리적으로 매우 근접하게 위치한다. 예를 들어, 서버들은 셀룰러 기지국들에 위치할 수 있다. 이러한 종류의 운영 환경들은 이들이 리소스 제약 환경들이기 때문에 종종 고유하다. 리소스 제약들은 처리 또는 스토리지 제한뿐만 아니라 전력을 포함할 수 있다. 종종 메인 전력(예를 들어, 상업용 그리드 운영자에 의해 제공되는 전력)은 이용불가능하고, 따라서 배터리 또는 주변 전력 생성(예를 들어, 바람 또는 태양) 전력이 사용될 수 있다. 주변 및 배터리 전력은 시간적으로 변동할 수 있고, 에지에서 실행되는 애플리케이션들의 전력 사용(예를 들어, 에지 서비스들에 대한 요구)도 시간적으로 변동할 수 있다.
반드시 실제 축척(scale)으로 그려진 것이 아닌 도면에서, 유사한 번호가 상이한 도면들 내의 유사한 컴포넌트를 기술할 수 있다. 상이한 문자 접미사들을 갖는 유사한 도면 부호들은 유사한 컴포넌트들의 상이한 경우들을 표현할 수 있다. 일반적으로, 도면은, 예시적으로 그리고 비제한적으로, 본 명세서에 논의된 다양한 실시예들을 예시한다.
도 1은 실시예에 따른, ICN에서의 스토리지 노드 모집을 위한 시스템을 포함하는 환경의 예의 블록도이다.
도 2는 실시예에 따른 ICN 노드 내의 컴포넌트들의 예를 도시한다.
도 3은 실시예에 따른 스토리지 관심 패킷의 예를 도시한다.
도 4는 실시예에 따른, 증명을 이용하여 노드들을 ICN에 합류시키는 시스템의 예를 도시한다.
도 5는 실시예에 따른, 하드웨어 강제 제약조건들의 예를 도시한다.
도 6은 에지 컴퓨팅을 위한 에지 클라우드 구성의 개관을 도시한다.
도 7은 엔드포인트들, 에지 클라우드, 및 클라우드 컴퓨팅 환경들 사이의 동작 계층들을 도시한다.
도 8은 에지 컴퓨팅 시스템에서의 네트워킹 및 서비스들을 위한 예시적인 접근법을 도시한다.
도 9는 다중의 에지 노드 및 다중의 테넌트 사이에서 동작되는 에지 컴퓨팅 시스템에서의 가상 에지 구성의 배치를 도시한다.
도 10은 에지 컴퓨팅 시스템에서 컨테이너들을 배치하는 다양한 컴퓨팅 배열을 도시한다.
도 11a는 에지 컴퓨팅 시스템 내의 컴퓨팅 노드에 배치된 컴퓨팅을 위한 예시적인 컴포넌트들의 개관을 제공한다.
도 11b는 에지 컴퓨팅 시스템 내의 컴퓨팅 디바이스 내에서의 예시적인 컴포넌트들의 추가 개관을 제공한다.
도 12는 소프트웨어를 배포하는 예시적인 소프트웨어 배포 플랫폼을 도시한다.
도 13은 실시예에 따른 예시적인 ICN(information centric network)를 도시한다.
도 14는 실시예에 따른 ICN 터널링을 위한 방법의 예의 흐름도를 도시한다.
도 15는 하나 이상의 실시예가 구현될 수 있는 머신의 예를 도시하는 블록도이다.
도 1은 실시예에 따른, ICN에서의 스토리지 노드 모집을 위한 시스템을 포함하는 환경의 예의 블록도이다.
도 2는 실시예에 따른 ICN 노드 내의 컴포넌트들의 예를 도시한다.
도 3은 실시예에 따른 스토리지 관심 패킷의 예를 도시한다.
도 4는 실시예에 따른, 증명을 이용하여 노드들을 ICN에 합류시키는 시스템의 예를 도시한다.
도 5는 실시예에 따른, 하드웨어 강제 제약조건들의 예를 도시한다.
도 6은 에지 컴퓨팅을 위한 에지 클라우드 구성의 개관을 도시한다.
도 7은 엔드포인트들, 에지 클라우드, 및 클라우드 컴퓨팅 환경들 사이의 동작 계층들을 도시한다.
도 8은 에지 컴퓨팅 시스템에서의 네트워킹 및 서비스들을 위한 예시적인 접근법을 도시한다.
도 9는 다중의 에지 노드 및 다중의 테넌트 사이에서 동작되는 에지 컴퓨팅 시스템에서의 가상 에지 구성의 배치를 도시한다.
도 10은 에지 컴퓨팅 시스템에서 컨테이너들을 배치하는 다양한 컴퓨팅 배열을 도시한다.
도 11a는 에지 컴퓨팅 시스템 내의 컴퓨팅 노드에 배치된 컴퓨팅을 위한 예시적인 컴포넌트들의 개관을 제공한다.
도 11b는 에지 컴퓨팅 시스템 내의 컴퓨팅 디바이스 내에서의 예시적인 컴포넌트들의 추가 개관을 제공한다.
도 12는 소프트웨어를 배포하는 예시적인 소프트웨어 배포 플랫폼을 도시한다.
도 13은 실시예에 따른 예시적인 ICN(information centric network)를 도시한다.
도 14는 실시예에 따른 ICN 터널링을 위한 방법의 예의 흐름도를 도시한다.
도 15는 하나 이상의 실시예가 구현될 수 있는 머신의 예를 도시하는 블록도이다.
다양한 산업에서의 데이터의 기하급수적 성장은 스토리지 요구들을 증가시켰다. 전통적인 클라우드 스토리지는 이 요구의 레이턴시, 비용, 융통성, 또는 회복성 요건을 충족하는데 어려움을 가질 수 있다. 따라서, 에지 네트워크들에서 점점 더 많은 데이터가 수신되고, 처리되고, 생성되고, 소비되고, 저장된다. 스토리지에 대한 필요성이 에지에서 증가함에 따라, 스토리지를 위해 에지 디바이스들을 시험해 보고 모집하는 것이 통상적이다. 그러나, 신뢰할 수 없는 동적 에지 디바이스들을 이용하여 신뢰할 수 있고 회복성 있는 서비스들을 제공하는 것은 도전적인 과제이다. 스토리지 서비스들을 제공하기 위해 제3자(예를 들어, 또 다른 것에 의해 제어됨) 모바일 클라이언트 디바이스 또는 다른 클라이언트 디바이스들을 모집하는 것도 도전적인 과제이다.
분산형 스토리지를 제공하는 인터넷 프로토콜(IP)을 통한 프레임워크를 제공하는 Ceph와 같은, 스토리지 노드 모집을 극복하기 위한 일부 기술들이 시도되었다. XRootD를 위한 오픈 스토리지 시스템 플러그인(Open Storage System plug-in)과 같은 ICN(예를 들어, NDN(named data network)) 기반 기술은 NDN 라우터 노드들을 통해 데이터의 분산형 캐싱을 제공하기 위해 기존 CMS(content management systems)와 NDN - ICN의 플레이버(flavor) - 을 통합한다. 그러나, 이러한 기법들은 캐싱된 데이터를 손상시키거나, 오지향시키거나, 주입하거나, 또는 관심 패킷들을 대체할 수 있는 사건들에 직면할 때 회복성(resiliency) 문제를 해결하지 못한다.
이러한 문제를 해결하기 위해, ICN 기반 스토리지 프레임워크가 아래에 설명된다. 이러한 프레임워크는 ICN 캐싱을 이용하여 중복 데이터를 유지함으로써 스토리지 효율성 및 회복성을 개선하기 위해 편재하는 에지 노드들 - 랩톱, 차량, 스마트폰 등과 같은 것 - 을 활용한다. 설명된 기술은 에지 스토리지를 증가시키는 것을 가능하게 한다. 이는 에지에 저장할 필요성을 증가시키는 갑작스러운 또는 예상치 못한 사건들이 있을 때 유익하다. 전형적으로, 계획된 스토리지는 증가된 요건들의 버스트들이 아니라 정상 상태 요구들을 커버하도록 설계된다. 더 많은 디바이스들이 에지에서의 계산을 요청함에 따라, 이러한 디바이스들을 지원하기 위한 더 강건한 스토리지가 요청될 것이다. 본 명세서에 설명된 기술은 에지에 이미 존재하는 스토리지를 발견하고 사용한다. 또한, 디바이스가 더 이상 이용가능하지 않을 경우 스토리지를 핸드오버하거나, 스토리지 노드가 고장나면 데이터를 복구하거나, 또는 스토리지가 예측불가능한 방식으로 - 개시자의 고장과 같은 것 - 변경이 필요한 경우 스토리지 리소스들을 회수(reclaim)하는 기법이 또한 설명된다. 이는 분산형 스토리지 시스템에 참여하는 사용자들이 디바이스가 참여할 때 가까운 스토리지(close storage)로부터 이익을 얻을 수 있기 때문에 크게 낮아진 스토리지 비용이라는 결과를 낳을 수 있다. 예에서, QoS(quality of service), 신뢰성, 또는 보안 메트릭들이 ICN 노드들의 증명된 메시의 일부로서 포함될 수 있으며, 여기서 메시에서의 참여는 이전에 승인된 노드들의 커뮤니티에 의한 성공적인 증명에 기초한다. 추가적인 상세사항들 및 예들이 아래에 제공된다.
도 1은 실시예에 따른, ICN에서의 스토리지 노드 모집을 위한 시스템을 포함하는 환경의 예의 블록도이다. 실선들은 ICN 노드(110)와 같은 ICN 라우터 노드들(예를 들어, ICN 노드들) 사이의 접속들을 나타내고, 점선들은 에지 디바이스(120)와 같은 에지 디바이스들에 대한 접속들을 나타낸다. 소스(105)는 스토리지를 요청하고 있는 디바이스이다. 스토리지 노드 모집을 예시하기 위해, ICN 노드(110)의 구성 및 동작들이 설명된다.
도 11b에 도시된 노드(1150), 그 중에서도 도 15에 도시된 머신(1500)과 일치할 수 있는 ICN 노드(110)는, 예를 들어, 소스(105)로부터 스토리지 관심 패킷을 수신하도록 배열되는 - 예를 들어, 설계(예로서, 하드와이어드) 또는 소프트웨어(예로서, 펌웨어, 스크립트, 실행 파일 등)에 의해 구성되는 - 처리 회로망을 포함한다. 여기서, 스토리지 관심 패킷은 다른 ICN 관심들로부터 스토리지 관심을 구분해주는 표시를 포함한다. 예를 들어, 플래그(예를 들어, 비트)가 스토리지 관심을 다른 관심 패킷들과 구분하는데 이용되거나, (예를 들어, 도 3에 도시된 바와 같이) 명칭 프리픽스가 이용될 수 있다.
예에서, 스토리지 관심 패킷은 선택기들의 세트를 포함한다. 여기서, 선택기들의 세트는, 스토리지 관심 패킷에 표시된 데이터에 대한 스토리지 요건을 결정하기 위해 (에지 노드(120)와 같은) 노드들에 의해 이용된다. 이들 스토리지 요건은 단순히 요청된 스토리지의 양일 수 있지만, 보안 - 암호화, 신뢰할 수 있는 컴퓨팅 플랫폼 지원, 등과 같은 것 -, 레이턴시, 중복성, 접속, 지리적 영역 제약조건, 또는 기타 요건들도 포함할 수 있다. 따라서, 예에서, 선택기들의 세트는 플랫폼 요건, 보안 요건, 무결성 요건, 스토리지 요건, 또는 변환 요건을 포함한다. 예에서, 스토리지 요건은 데이터를 지리적 영역에 제한한다. 예에서, 플랫폼 요건은 컴포넌트들의 최소 성능을 집행한다. 이 성능은 레이턴시, 대역폭, 타이밍, 또는 다른 성능 메트릭들에서 측정될 수 있다.
예에서, 변환 요건은 데이터에 대한 어떤 변환들이 스토리지 동안 수용가능한지를 정의한다. 예에서, 압축 또는 암호화가 데이터에 대한 변환들이다. 변환들을 제한하는 것은 데이터의 보안 또는 무결성을 보장하도록 동작할 수 있다. 예를 들어, 압축이 손실성인 경우 (예를 들어, 데이터가 압축해제될 때 일부 데이터가 손실되는 경우), 제한은 데이터의 무결성을 보존할 수 있다. 그러나, 손실성 압축이 허용되는 경우, 더 많은 에지 노드들이 스토리지 요청을 서비스할 수 있다.
ICN 노드(110)의 처리 회로망은 스토리지 관심 패킷을 포워딩하도록 배열된다. 포워딩은 ICN들에 의해 전형적으로 수행되는 방식으로 진행될 수 있다. 이는 스토리지 관심 패킷이 그 상에서 수신된 인바운드 인터페이스(예를 들어, 인-페이스(in-face))를 기록하기 위해 ICN 노드의 PIT(pending interest table)에 엔트리를 생성하는 것을 포함한다.
ICN 노드(110)의 처리 회로망은 스토리지 관심 패킷에 응답하여 스토리지 데이터 패킷을 수신하도록 구성된다. 여기서, 스토리지 데이터 패킷은 스토리지 데이터 패킷이 캐싱되지 않을 것이고, 따라서 전통적인 ICN 데이터 패킷 핸들링으로부터 이탈한다는 표시를 포함한다. 스토리지 데이터 패킷은, 스토리지 관심 패킷에 특정적인 데이터의 스토리지에 참여하는 능력을 나타내기 위해, 에지 노드(120)와 같은 노드에 의해 생성된다. 따라서, 스토리지 데이터 패킷은 스토리지 데이터 패킷을 생성한 노드(예를 들어, 에지 노드(120))에 대한 노드 정보를 포함한다. 스토리지 관심 패킷이 선택기들의 세트를 포함하는 예에서, 스토리지 데이터 패킷을 생성한 노드(예를 들어, 에지 노드(120))는 스토리지 요건들을 충족시켰다. 이 예는 에지 노드(120)가 선택자들을 추출하고 그것이 그러한 선택자들에서의 요건들에 따르는 것을 보장하도록 구성되는 것을 인정한다. 에지 노드(120)가 선택자들에서의 요건들을 충족시키지 않는 경우, 에지 노드(120)는 스토리지 데이터 패킷을 생성하여 전송하지 않을 것이다.
ICN 노드(110)의 처리 회로망은 스토리지 관심 패킷에 대응하는 PIT 엔트리에 따라 스토리지 데이터 패킷을 송신하도록 구성된다. 따라서, ICN 노드(110)는 전통적인 ICN처럼 동작하여, 스토리지 데이터 패킷을 소스(105)로 되돌려 포워딩한다.
예에서, ICN 노드(110)의 처리 회로망은 ICN 노드(110)가 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하도록 구성된다. 이 예에서, ICN 노드(110)는, 선택자들에 의해 정의된 바와 같이, 스토리지 관심 패킷에 포함된 임의의 요건들을 충족하는 것을 인정하고 있다. 처리 회로망은 ICN 노드(110)에 관한 정보를 포함하는 제2 스토리지 데이터 패킷(에지 노드(120)로부터의 스토리지 데이터 패킷에 대해 다음임)을 생성하도록 구성된다. 이 제2 데이터 패킷은 PIT 엔트리에 따라 송신된다. 여기서, PIT 엔트리는 스티키(sticky)함으로써 전통적인 ICN PIT 엔트리들로부터 이탈할 수 있다. 이 맥락에서, 스티키(sticky)는 PIT 엔트리와 매칭되는 제1 데이터 패킷에 직면할 때 PIT 엔트리가 제거되지 않는 것을 의미한다. 오히려, PIT 엔트리는 제거 조건이 충족될 때까지 "스티크(stick)"한다. 예에서, 제거 조건은, 스토리지 관심 패킷이 수신된 이후로 타이머 기간이 경과한 후에, PIT 엔트리가 삭제되도록 하는 시간이다. 예에서, 제거 조건은 소정 수의 데이터 패킷들이다. 이 수는 스토리지 관심 패킷에서 지정될 수 있다. 여기서, 일단 소정 수의 데이터 패킷들이 ICN 노드(110)에 의해 수신되었다면, PIT 엔트리는 제거된다.
예에서, ICN 노드(110)가 스토리지 요청에 참여할 제2 관심 패킷을 생성했을 때, ICN 노드(110)의 처리 회로망은 스토리지 관심 패킷을 수신하는데 이용되는 인터페이스를 통해 스토리지 관심 패킷에서 식별된 데이터에 대한 관심 패킷을 송신하도록 구성된다. 에지 노드(120)에 의해서도 역시 채택될 수 있는 이 예에서, 관심 패킷이 소스(105)에 전송되어 데이터를 실제로 요청한다. 따라서, 제1 관심 데이터 패킷 교환은 스토리지 요청에 참여하려는 노드들의 의지에 관해 소스에 경고한다. 스토리지 관심이 아닌 이 제2 관심은 스토리지 관심에서 명명된 데이터가 그 데이터를 로컬 복제(local replica)로 이동시키도록 요청한다.
예에서, ICN 노드(110)의 처리 회로망은, ICN 노드(110)가 속하는 클러스터 내의 노드(예를 들어, 에지 노드(120))가 스토리지 관심 패킷을 만족시키는 리소스들을 갖도록 구성된다. 여기서, ICN 노드(110)는 클러스터 내의 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하고 PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신할 수 있다. 예에서, ICN 노드(110)는 클러스터 내의 노드들과 주기적으로 통신하여 클러스터 내의 노드에 관한 정보를 포함하는 노드 정보를 획득한다. 예에서, ICN 노드(110)는 클러스터에 대한 스토리지 관심 패킷들 및 스토리지 데이터 패킷들을 조직화하는 클러스터 헤드이다. 오케스트레이터(125)는 클러스터 헤드의 예이다. 클러스터 헤드(125)는 클러스터의 다른 멤버들을 스토리지 관심 패킷들로부터 격리시키도록 동작할 수 있다. 이 예에서, 스토리지 관심 패킷들은 클러스터 헤드(125)에 의해 배타적으로 다루어진다. 예에서, 클러스터의 멤버들은 하나 이상의 클러스터 헤드를 클러스터 헤드가 되도록 선출한다.
예에서, ICN 노드(110)는 ICN 네트워크의 일부이고, 여기서 ICN 노드(110)는 ICN 네트워크에 합류하기 위하여 증명 프로세스(attestation process)를 통과하였다. 예에서, 증명 프로세스는, ICN 네트워크의 검증기가 ICN 네트워크의 다른 노드들로부터 증명 증거의 보증(endorsement)들 또는 참조 값들을 수신한 후에 증명 증거를 제공하는 것 및 온보딩되는 것을 포함하여, ICN 네트워크를 플레징(pledging)하는 것을 포함한다. 이것의 예가 도 4에 도시되고 아래에 설명된다.
도 2는 실시예에 따른 ICN 노드 내의 컴포넌트들의 예를 도시한다. 도시된 바와 같이, ICN 노드들은 로컬 스토리지(235), 네트워크 인터페이스(240), 및 포워딩 회로망(205)을 포함한다. 포워딩 회로망(205)은 로컬 스토리지(235)를 관리하기 위한 캐시 관리자(210), 네트워크 인터페이스(240)를 통해 패킷들을 송신하기 위한 포워더(forwarder)(215), 네트워크 인터페이스들을 관리하기 위한 페이스(face) 관리자(220), ICN 노드 상의 리소스들을 관리하기 위한 로컬 코디네이터(225), 및 로컬 스토리지에 유지된 데이터가 적절하게 저장되는 것을 보장하기 위한 스토리지 QoS 관리자(230)를 포함할 수 있다.
예에서, 포워더(215)는 데이터의 포워딩, 발견, 캐싱, 및 라우팅을 관리하도록 구성된다. 예에서, 페이스 관리자(220)는 애플리케이션들 사이에 소프트웨어 인터페이스들을 생성하거나 구성하도록 구성된다. 예에서, 스토리지 QoS 관리자(230)는 보유(retention), 스토리지를 위해 이용가능한 메모리, 스토리지, 또는 네트워크 큐 구성들 등과 같은 스토리지 정책들을 시행하도록 구성된다. 예에서, 캐시 관리자(210)는 QoS 파라미터들을 플랫폼 노브들로 변환하는 것과 같이 로컬 스토리지 리소스들을 관리하도록 구성된다. 예에서, 로컬 코디네이터(225)는 복제들 또는 데이터 가용성과 같은, 다중의 노드 사이에서 데이터 또는 구성들을 코디네이트하도록 구성된다.
추가 스토리지를 원하는 디바이스는 스토리지 관심 패킷 - 예를 들어, 명칭으로 "/스토리지"를 가짐 - 을 내보내어, 이것이 콘텐츠나 계산이 아니라 스토리지 서비스를 찾기 위한 요청으로서 자신을 식별하는 특별한 타입의 관심 패킷임을 나타낸다. 회복성 스토리지를 위한 스토리지 관심 패킷 내의 표시는 회복성 정책들에 따라 데이터를 복제하도록 ICN에 더 알릴 수 있다. 예를 들어, ICN의 노드들은 다양한 지리들에 걸쳐 데이터를 복제하도록 지시받는다. 예에서, 복제본들의 참조 카운트는 ICN 내에 낮은 워터마크 중복성이 존재하는 것을 보장하기 위해 사용될 수 있다. 예에서, 강화된 스토리지 리소스들에 대한 복제가 지향된다.
스토리지 관심 패킷은, 그 중에서도, 콘텐츠의 명칭, 콘텐츠의 크기, 또는 스토리지 노드의 타입, 보안 요건들, 또는 지리적 요건들과 같은 다른 요건들을 포함할 수 있다. 스토리지 관심 패킷은 데이터를 복제하는데 필요한 최소 개수의 노드를 포함할 수 있다.
예에서, 회복성 스토리지 전략은 스토리지 관심 패킷에 포함될 수 있고, 내구성, 신뢰성, 복구, 무결성 보호, 프라이버시 등에 대한 메트릭들을 포함할 수 있다. 여기서, 상이한 메트릭들을 갖는 노드들이 덜 엄격한 메트릭들을 커버하는 더 엄격한 전략이 준비되어 있다는 것이 보장될 수 있다. 회복성 스토리지 전략 - 또는 하나보다 많은 전략 - 은 에지에서 최적화 전략들을 통지하기 위해 컴퓨터들의 수, 이용가능한 스토리지의 크기, 또는 링크 접속들을 특정할 수 있다. 로컬 운영자들은 이러한 전략들을 투명하게 또는 불투명하게 증강시키거나 영향을 줄 수 있지만, 요청자의 원하는 전략보다 덜 엄격한 방식으로는 그렇지 않다.
예에서, 스토리지 관심 패킷은 시간 경과에 따른 특정 리소스의 활용도를 추적하기 위한 "스토리지의 시간"에 대한 필드를 포함한다. 그렇게 마킹되지 않은 경우, 데이터는 무기한으로 또는 요청 노드가 데이터가 제거될 수 있음을 나타낼 때까지 저장될 수 있다. 무기한으로 저장된 데이터에 대해, 스토리지 노드는, 구성에 기초하여, 주기적으로, 스토리지 시간(time-of-storage) 마크의 갱신을 요청할 수 있다. 스토리지 노드 구성은 스토리지를 요청한 노드가 더 이상 존재하지 않는 경우에 발생할 수 있는 정의된 시간 기간 내에 그러한 갱신이 수신되지 않은 경우에 스토리지 퍼즈(storage purge)를 강제할 수 있다. 스토리지 퍼즈 결정에는, 클러스터 관리자에게 대한 것과 같은, 제어 및 관리 계층에 대한 대응하는 메시지, 또는 저장된 데이터의 특정 사본이 삭제되는 것을 목표로 한다는 것을 직접적으로 통지하기 위한 알려진 데이터 복제본들이 뒤따를 수 있고, 이는 또 다른 노드로의 데이터 전송 또는 저장된 데이터의 모든 사본들의 스토리지 퍼즈를 트리거할 수 있다. 그러나, 스토리지 시간 마크에 의해, 스토리지 전략은 스토리지 시간이 만료된 후에 스토리지 노드가 저장된 데이터를 취급하는 방법을 나타낼 수 있다. 예를 들어, 스토리지 노드들은 데이터를 삭제하거나, 포워딩하거나, 리턴하거나, 아카이브 스토리지로 이동시키거나, 또는 전통적인 ICN 콘텐츠 상태로 리턴할 수 있다.
일단 관심 패킷이 스토리지를 갖는 노드(예를 들어, 노드 A)에 도달하였다면, 노드는, 그 노드가 데이터를 저장하고 그 노드에 관한 정보를 제공하려고 한다는 것을 인정하는 데이터 패킷을 되돌려 전송할 것이다. 예에서, 노드-A는 데이터에 대한 관심 패킷을 전송하고, 이것은 노드-A에 전송된다. 예에서, 노드-A는 노드-A가 얼마나 오랫동안 데이터를 저장할 수 있는지를 나타낼 수 있다. 예에서, NFD(NDN forwarding Daemon) - 또는 다른 ICN 구현 컴포넌트 - 은 스토리지 요청에 응답하여 전송된 데이터 패킷들이 중간 노드들에서 캐싱되지 않도록 수정된다.
예에서, 노드-A는 그 후 그에 대해 스토리지가 필요한 노드들의 수를 1만큼 감소시킨 후에 스토리지 관심 패킷을 포워딩한다. 스토리지 관심 패킷은 그 후 다른 스토리지 노드들에 의해 픽업될 수 있다.
예에서, 데이터를 저장하는 노드들(예를 들어, 데이터 스토리지 요청에 참여하는 총 노드들)의 수는, 원래의 요청자에 의해, 특정 수의 응답들이 전송된 후에 데이터를 취득하기 위한 스토리지 노드들로부터의 관심 패킷들을 거절함으로써 제한될 수 있다. 예에서, 스토리지 노드 초기 데이터 ACK(acknowledgment) 패킷은 발행 명칭을 표시하여, 중간 노드들이 고유 응답들을 추적하고 스토리지 관심 패킷, 스토리지 관심 패킷에 응답한 스토리지 데이터 패킷들, 또는 데이터를 요청하는 관심 패킷들의 포워딩을 중지하게 할 수 있다.
예에서, 노드가 네트워크를 떠나는 경우, 떠나가는 노드는 스토리지 관심 패킷을 전송하여 그 데이터를 스토리지 요청의 일부로서 또는 복제본으로서 상이한 스토리지 노드에 전송한다. 예에서, 스토리지 전략에 의해 결정된 바와 같은 다중의 대안적인 스토리지 노드들이 사용될 수 있다. 예에서, 스토리지 노드가 경고 없이 충돌하거나 또는 네트워크를 떠나는 경우, 중복 전략이 채택될 수 있다. 중복 전략은 회복성 전략에 참여하는 다른 노드들로부터의 데이터를 선행적으로 복원한다.
예에서, 원래의 요청 노드와 같은 노드들은 스토리지 디바이스들의 건강 상태를 질의하는 관심 패킷들을 전송할 수 있다. 예를 들어, 발견 관심 패킷은 명칭에 의해 특정 콘텐츠를 저장한 모든 디바이스들을 발견할 수 있다. 스토리지 노드가 응답하는데 실패하는 경우, 또 다른 스토리지 관심 패킷이 상이한 노드에서 데이터를 복제하기 위해 사용될 수 있다. 이러한 타입의 발견은 원래의 노드가 데이터 스토리지 로케이션들의 변경들을 발견하는 것을 가능하게 한다.
지오-로케이션 컴포넌트를 갖는 스토리지 전략은 로케이션 발견 통찰(location discovery insight)로부터 이익을 얻을 수 있고, 지오-로케이션 정책을 개선하거나 시행함으로써 응답할 수 있다. 예에서, 푸시 기반 접근법을 이용하여, 주기적인 하트-비트(heart-beat) 또는 스토리지-건강-상태 메시지들을 각각의 복제본 또는 스토리지 노드에 전송할 수 있다. 여기서, 전송되는 주기적인 하트-비트 또는 스토리지-건강-상태 데이터는 스토리지 노드 및 원래 요청 노드가 이러한 주기적인 데이터에 대한 명칭-프리픽스(name-prefix)에 대해 그 스토리지 선택 중에 합의한 성공적인 스토리지 선택에 응답한 것이다. 예에서, 그러한 관심들에 대한 PIT 엔트리는 만료되지 않는다.
예에서, 원래의 요청 노드는 대안적인 스토리지 노드들을 선행적으로 발견할 수 있고, 이들이 더 나은 서비스들 - 예를 들어, 더 낮은 비용, 더 나은 성능, 더 확장가능한 것, 더 안전한 것, 더 탄력적인 것 등에 의해 측정되는 바와 같이 더 나은 것 - 을 제공하는 경우 이들을 사용할 수 있다. 전개된 스토리지 전략의 선행적 발견 및 재구성은 로드 밸런싱, 데이터 분배, 또는 다른 전개 관련 목표들을 다룰 수 있다. 예에서, 스토리지 관심 패킷은 스토리지 서비스들이 종료됨을 나타내는 필드를 포함할 수 있다. 예에서, 이 스토리지 관심 패킷은 서비스가 그에 대해 종료될 필요가 있는 콘텐츠를 명명할 수 있다. 예에서, 원래의 요청 노드는, 예를 들어, 스토리지의 종료와 유사하게, 스토리지 시간을 조정할 수 있다.
예에서, 스토리지 관심 패킷은 처리된 또는 변환된 데이터를 저장하는 것이 허용되는지를 나타내는 필드를 포함한다. 필드 외에도, 스토리지 관심 패킷은 변환 함수(예를 들어, 압축)의 명칭을 포함할 수 있다. 여기서, 제한된 스토리지를 갖지만 충분한 컴퓨팅 능력을 갖는 수신 노드들은 이 변환 함수를 먼저 적용하고 그 후 데이터를 저장할 수 있다. 응답 데이터 패킷에서, 데이터가 변환 후에 또는 전에 저장되었는지를 나타내는 필드가 포함될 수 있다. 허용되는 경우, 중간 비-스토리지 노드들은 함수를 적용하고 - 패킷마다의 변환이 실행가능하다고 가정함 -, 패킷들을 더 포워딩하여 네트워크 대역폭을 절약할 수 있다. 이러한 노드들로부터 데이터를 검색하는 동안, 원래의 요청 노드는 데이터를 되돌려 전송하기 전에 스토리지 노드들이 역함수를 적용하도록 (예를 들어, 무손실 변환의 경우) 요청할 수 있다. 예를 들어, 처리는 (예를 들어, GAN(Generative Adversarial Network)과 같은 AI(artificial intelligence) 모델 또는 자동 인코더와 같은 모델을 통해) 데이터를 압축하라는 요청을 포함할 수 있다. 이는 다음으로 ICN 기반 계산 요청들의 시퀀스를 트리거할 수 있다.
예에서, 스토리지를 위한 요청은 네트워크에 이미 캐싱되어 있는 데이터에 대해 행해질 수 있다. 이 경우, 전통적인 ICN 캐싱 기간은 스토리지 요건들에 따라 수정될 수 있다.
서비스로서의 스토리지는, 감소된 네트워크 오버헤드로 스토리지 관심 패킷들의 제어된 포워딩을 적용하기 위하여 가용 스토리지의 업데이트된 발견을 수반할 수 있다. 스토리지 노드들의 네트워크는 리더(leader)(예를 들어, 로컬-코디네이터, 클러스터 헤드, 오케스트레이터 등)를 갖는 그룹들(예를 들어, 클러스터들)이 되도록 분할될 수 있다. 이러한 클러스터들은 부분적으로 중첩될 수 있다(예를 들어, 클러스터 A로부터의 노드들 전부가 아닌 일부가 또한 클러스터 B에 있다). 클러스터 헤드들은 스토리지 리소스들의 발견을 최적화하고 스토리지 관심 패킷들 또는 응답 데이터 패킷들의 포워딩을 위한 네트워크 오버헤드 최적화들을 보조하는 로컬 코디네이터들의 역할을 한다.
예에서, 클러스터 헤드는 그의 클러스터 내의 노드들에서의 이용가능한 스토리지 리소스들에 관한 정보를 수집한다. SaaS(Storage as a service)에 대해 수집된 정보는 스토리지 매체의 내구성, 스토리지의 성능(메모리 대역폭 및 액세스 레이턴시, 데이터가 어떻게 액세스될 것인지에 대한 패턴들(예를 들어, 판독 랜덤) 등), 보안의 레벨, 소유자/스토리지-소유자들, 스토리지 비용, 연결성 레벨들 및 스토리지 노드들의 타입들 등을 포함할 수 있다. 정보 수집은 주기적이거나 이벤트-트리거형 수집에 의한 것일 수 있다. 후자는 클러스터 내의 하나 이상의 노드에서 큰 변경이 있을 때 도움이 될 수 있다. 클러스터 헤드는 - 예를 들어, 리포트 크기를 줄임으로써 네트워크 오버헤드를 줄이기 위해 - 이웃 클러스터들 간에 주기적으로 공유되는 클러스터 내의 전체 SaaS 리소스들에 관한 종합 리포트를 준비할 수 있다. 예에서, 전체 보고는 더 큰 기간으로 공유될 수 있는 한편, 증분 보고 - 예를 들어, 가장 인기있는 콘텐츠 또는 가장 최근에 변경된 정보만을 가짐 - 는 전체 보고들 사이에 공유된다. 인터-클러스터 SaaS 리소스 정보 공유는 네트워크가 더 큰 영역에 걸쳐 SaaS 리소스 지식을 확산시킬 수 있게 한다.
예에서, 클러스터 헤드는 오케스트레이션 역할을 수행할 수 있다. 여기서, 클러스터 헤드는, 스토리지 관심 패킷의 수신시에, 오케스트레이터로서 동작하거나 또는 스토리지 관심 패킷을 다음 홉에 포워딩하기로 결정할 수 있다. 스토리지 관심 패킷을 포워딩할 때, 다음 홉은 클러스터 헤드가 이웃 클러스터들로부터 미리 수집한 정보에 기초하여 계산될 수 있다. 예에서, 스토리지 관심 패킷은 스토리지 매체의 내구성, 스토리지의 성능(예를 들어, 메모리 대역폭 및 액세스 레이턴시), 보안 레벨, 소유자/스토리지 소유자들, 스토리지 비용, 접속성 레벨들 및 스토리지 노드들의 타입들 등과 같은 다른 요건들과 함께 원래의 스토리지 요청자의 회복성 전략에 기초하여 데이터 복제 정보(예를 들어, 복제들의 수, 지오-다이버시티 요건들, 복제들의 최소 수 등)를 특정할 수 있다. 예에서, 복제 전략은 필요한 중복성을 추가하기 위한 코딩 방법들을 포함한다.
클러스터 헤드가, 스토리지 관심 패킷에 지정된 기준을 충족하는 요청된 스토리지 서비스들이 부근에서 이용가능하다고 결정하는 경우, 클러스터 헤드는 이 스토리지 관심 패킷에 대한 오케스트레이터로서 작용할 수 있다. 오케스트레이터로서, 클러스터 헤드는 SaaS 동작들을 최적화하기 위한 또는 감소된 네트워크 트래픽 오버헤드로 SaaS 성공 적중률(success hit ratio)을 향상시키기 위한 액션들을 취할 수 있다. 예를 들어, 클러스터 헤드는 클러스터 헤드가 오케스트레이터임을 나타내기 위해 스토리지 관심 패킷을 수정할 수 있다. 예에서, 클러스터 헤드는, 예를 들어, 원래의 스토리지 관심 패킷 요청을 원래의 스토리지 요청의 부분들에 대한 다중의 스토리지 관심 패킷이 되도록 스플릿함으로써, 특정한 또는 부분적인 스토리지 요청들에 대해 노드들 또는 기타 클러스터 헤드들에게 요청할 수 있다. 예는 스토리지 관심 패킷을 이용하여 다양한 지리적 영역들에서의 각각의 복제에 대한 스토리지를 찾는 것을 포함할 수 있다. 예에서, 클러스터 헤드는 최종 응답이 요청을 만족시키는 것을 보장하기 위해 하나 이상의 노드 또는 클러스터 헤드로의 요청들의 효율적인 라우팅을 결정하여, 종합된 응답을 스토리지 요청자에게 전송할 수 있다.
예에서, 클러스터 멤버에서의 스토리지 관심 패킷 처리는 비-클러스터 멤버에서의 스토리지 관심 패킷 처리와는 상이할 수 있다. 예를 들어, 스토리지 관심 패킷이 클러스터 멤버에 도달할 때마다, 클러스터 멤버는 CH가 응답하기 위한 대기 타이머(Wait-for-CH-to-Response-Timer)를 시작할 수 있다. 클러스터 헤드(CH)가 응답하는 경우, 클러스터 멤버는 스토리지 관심 패킷을 처리하지 않는다. 그러나, CH가 응답하기 위한 대기 타이머(Wait-for-CH-to-Response-Timer)가 경과하기 전에 클러스터 헤드가 스토리지 관심 패킷에 응답하지 않는 경우, 클러스터 멤버는 응답하거나 - 예를 들어, 클러스터 멤버가 적어도 하나의 복제본에 대한 특정 기준을 만족하는 스토리지를 요청한 경우-, 관심 패킷을 다음 홉에 포워딩할 수 있다.
예에서, 스토리지는 ICN을 통해 다른 서비스들과 조합될 수 있다. 컴퓨팅 서비스들은 동적 리소스들(예를 들어, 코드, 데이터, 하드웨어 등)을 발견함으로써 ICN을 사용하여 동적으로 오케스트레이션될 수 있다. 또한, RAID(Redundant Array of Inexpensive Disks) 구성은 프록시 노드에 의해 수행되는 다중의 스토리지 노드에 걸쳐 구현될 수 있다. 여기서, ICN은 전체 처리 및 스토리지 인스턴스들을 협상하기 위해 사용될 수 있다. 예에서, 잠재적으로 다른 노드들에서의 전체 데이터 사본들에 대한 포인터들을 갖는 일부 노드들에서의 검색가능한 데이터 요약과 같은 데이터의 검색 친화적인 중간 표현이 이러한 계산 서비스들을 통해 ICN 상에서 획득될 수 있다. 일반적으로, 데이터의 IR(Intermediate Representation)은 무손실성 또는 손실성일 수 있다. 예를 들어, 비디오 스트림은 무손실성 인코딩 후에 무손실성 또는 손실성일 수 있다. 프레임 레이트가 컬러 심도와 별개로 인코딩되는 경우, 다중의 IR이 귀결되는데, 이들 모두는 함께 무손실 IR이라는 결과를 낳는다. 그러나, 컬러 정보가 폐기될 때(예를 들어, 흑백 비디오라는 결과를 낳을 때), IR은 이제 손실성이다. 또 다른 사용 사례에서, 보안은 다중 노드에 걸쳐 스플릿되는 비밀을 저장함으로써 향상될 수 있고, 따라서 임의의 개별 노드가, 만일 손상되는 경우, 정보에 대한 액세스를 제공하지 않을 것이다. 여기서, 컴퓨트 리소스들은 ICN을 다시 사용하여 데이터를 스플릿하고 재구성하기 위해 사용될 수 있다. 이러한 복잡한 스토리지 및 계산 관계를 모델링하기 위해, 스토리지/레이드(storage/raid) 또는 스토리지/비밀과 같은 추가 식별자가 스토리지 관심 패킷에 포함되어, 예를 들어, 네트워크 RAID 제어기 또는 보안 스토리지 프록시로서 기능하기 위해 필요한 리소스를 찾는 것을 용이하게 할 수 있다. 실제로, 이것은 명시적 계층구조를 갖는 ICN 리소스들의 서비스 체인을 생성한다. 이 메커니즘은 전체 서비스 체인 처리를 한번에 발견하거나 시행하기 위해 사용될 수 있다.
다양한 노드들 간의 정책 시행은 도전적일 수 있다. 분산 시스템에서의 노드들은, 로컬 레벨에서, 시스템 또는 플랫폼 레벨 노브들에 의해 시행될 수 있는 특정 정책들로 온보딩(onboard)될 수 있다. 예를 들어, 스토리지 보유 시간 또는 데이터에 대한 보다 빠른 액세스를 제공하기 위해 고속 메모리 또는 전형적인 블록 스토리지에 데이터를 저장하는 시간. 시스템이 로컬로 또는 에지 내에서 데이터를 검색하기 위한 제한된 시간과 같은 특정 QoS 요건들을 충족시킬 필요가 있을 때 보안 또는 데드라인 인식을 위한 정책이 정의될 수 있다. 정책이 노드들의 세트 또는 스토리지 영역에 대해 적용될 때, 기본 정책 형태가 발견된 호스트들에 적용될 수 있는 경우 ICN은 발견 정보를 전송할 수 있다. 특정 정책이 적용될 수 있는 경우, 정책은 QoS가 호스트에 의해 적용될 수 있는지를 발견하기 위해 포워딩된다.
도 3은 실시예에 따른 스토리지 관심 패킷의 예를 도시한다. 도시된 스토리지 관심 패킷은 그것을 스토리지 관심 패킷으로서 마킹하는 프리픽스("/스토리지")를 갖는 명칭을 포함한다. 도시된 관심 패킷은 또한 (도 1에 관하여 앞서 설명한) 선택자들에 대한 필드를 포함한다. 도시된 바와 같이, 선택자들은 타입-길이-값 인코딩을 이용하여 필드에 인코딩될 수 있다. 논스(nonce)는 리플레이 공격(replay attack) 등을 방지하는 신선도 값(freshness value)을 제공하기 위해 사용될 수 있다.
도 4는 실시예에 따른, 증명을 이용하여 노드들을 ICN에 합류시키는 시스템의 예를 도시한다. 스토리지 디바이스 모집에 참여하는 디바이스들이 사전 인증된 신뢰된 보안 디바이스들이라는 가정이 있을 수 있다. 비신뢰된 클러스터에서, (스토리지 요청자 관점에서) 스토리지 노드들의 신뢰성을 순위화하기 위해 신용 보상 메커니즘이 사용될 수 있다. 한편, 스토리지 요청자는 그 자신의 신용과 이 스토리지 요청 트랜잭션에 대해 얼마나 많은 보상을 지불하고자 하는지를 제공할 수 있다. 양쪽 값들은 스토리지를 제공할지를 평가하고 결정하기 위해 스토리지 노드에 의해 사용될 수 있다. 스토리지 노드가 더 높은 신용을 가질수록, 이것이 스토리지 노드로서 선택될 가능성이 더 높다. 유사하게, 요청자가 더 많은 보상을 지불하기를 원할수록, 그 요청이 수락될 가능성이 더 높다.
그러나, 노드가 평판 보상(reputation-reward) 또는 다른 양태들에 참여할 수 있기 전에, ICN 네트워크에 노드를 온보딩하는 프로세스가 있을 수 있다. 성공적인 증명 및 평판 평가에 뒤이어 노드가 온보딩될 수 있다. 평가를 성공적으로 달성한 노드들의 세트가 여기서 ICN-MESH로서 지칭된다. 온보딩은 ICN-MESH에 멤버들을 추가한다. ICN-MESH 멤버들은 ICN-MESH에 합류하기 위한 기준을 설정하는 공통 평가 정책들의 세트를 공유한다. ICN-MESH에 합류한 것에 후속하여, 주기적인 재평가가 각각의 ICN-MESH 노드의 동작 거동에 대한 통찰력을 제공하는 평판을 구축한다. 평판들은 고장, 복구 시간, 가동 시간, 회복성 등과 같은 여러 거동 기준에 기초하여 피어 ICN-MESH 노드들의 순위를 매기는 것을 가능하게 한다. 평판 프로필들은 이웃 라우터들 및 노드들에 NDN 라우터 기능들이 적용되는 방법에 영향을 미칠 수 있다. 예에서, ICN-MESH 내의 모든 노드들은 온보딩에서 적용되는 프로필 표준 또는 최소 정책을 충족시킨다. 이러한 최소 표준들은 주기적으로 재평가될 수 있고, 준수하기를 벗어난 경우(if out of compliance), ICN-MESH 노드는 ICN 메시로부터 오프보딩(off-board)(예를 들어, 제거)될 수 있다.
도 4에 도시된 온보딩 요소들은 다음과 같다:
1) 플레지 노드(405)는 ICN-MESH에 어드미턴스(admittance)를 요청한다. 예에서, 모든 ICN 라우터들은 - 노드 증명 및 평판 엔진(420)을 이용하는 NDN 라우터(415)와 같이 - 직접적으로 또는 NDN 라우터(410)가 하고 있듯이 요청을 서비스하도록 허가된 노드에 포워딩함으로써 요청을 서비스할 수 있다.
2) 플레지 노드(405)는 플레지의 신뢰 루트(root-of-trust) 또는 신뢰할 수 있음 특성들(예를 들어, 현재 구성, 주요 보호, 기능 강도 등)을 기술하는 증명 증거를 제공한다.
3) 검증기(예를 들어, NDN 라우터(415))는 증명 지원 서비스들로부터의 보증들 및 참조 값들 및 ICN-MESH 소유자로부터의 평가 정책을 획득하여 플레지의 증거를 평가한다. 플레지 증명 결과가 성공적인 경우, 다른 ICN-MESH 노드들이 플레지 노드(405)가 ICN-MESH에 합류하도록 허가되었음을 통지받는다.
4) 플레지 노드(405)가 ICN MESH에 합류할 수 있게 하는 결정을 조정하기 위해 컨센서스 기법이 사용될 수 있다. 예를 들어, 다른 ICN-MESH 노드들이 플레지 증거를 검토하고, 증명 정책들이 동일한 증명 결과에 도달하는 것을 보장하기 위해 증명 정책들을 직접 적용할 수 있다. 컨센서스는 GOSSIP 프로토콜, 비잔틴 합의 프로토콜(Byzantine agreement protocol)들을 이용하여, 또는 DLT(Distributed Ledger Technology)를 통해 확립될 수 있다.
5) ICN-MESH 노드들 중 하나(예를 들어, NDN 라우터(410))는 ICN 라우팅, 포워딩, 오케스트레이션, 스토리지 등과 같은 ICN 기능들을 플레지 노드(405)에 제공함으로써 플레지 노드(405)를 온보딩한다. 플레지 노드(405)는 또한 다른 노드들에 대한 증명 및 온보딩을 수행하는 ARE(420)로서 구성될 수 있다. 역할 할당들은 온보딩 시에 승인될 수 있거나 또는 (예를 들어, X.509 인증서 발행, OAuth2 토큰들, LDAP(Lightweight Directory Access Protocol) 레지스트리들 등에 의해) 노드에 특권들을 부여하기 위한 별도의 특권 부여 권한 및 프로세스에 따라 미리 할당될 수 있다. ARE는 역할들을 부여/거부하기 위한 다양한 역할들 및 기준들을 기술하는 부가의 구성 데이터를 포함할 수 있다. ARE는 특권 부여 권한으로서 동작할 수 있다.
도 5는 실시예에 따른, 하드웨어 강제 제약조건들의 예를 도시한다. 예에서, 스토리지 관심 패킷 내에서의 요건들(예를 들어, 선택자들)은 다중의 계층(tier)이 존재하는 경우에 메모리 계층에 대한 규격을 포함할 수 있다. 각각의 메모리 계층은 데이터가 어떻게 저장되고 있는지에 영향을 미칠 수 있는 특정 기능성들 또는 특성들(예를 들어, 보안, 내구성, 성능 등)을 가질 수 있다. 따라서, 메타데이터(515)는 정확한 메모리 계층 또는 데이터 포인트에 데이터를 저장하기 위해 인프라스트럭처(505)의 회로망(510)에 의해 이용될 수 있다. 예에서, 메타데이터(515)는 3가지 타입의 요소들을 포함할 수 있다. 제1 타입은 기능적 특징들 또는 기술적 특징들을 포함한다. 이러한 특징들은 데이터가 어떻게 저장되고 있는지를 암시하는 임의 타입의 정보를 포함할 수 있다. 일부 예들은 미디어의 신뢰성 또는 내구성 또는 보안 레벨(예를 들어, 전체 암호화)을 포함할 수 있다.
제2 타입은 성능 특징들을 포함한다. 이 특징들은 데이터가 어떻게 사용될 수 있는지에 있어서 만족될 것으로 예상되는 성능 관련 KPI(key-performance-indicator)들에 관련된 임의 타입의 정보를 포함할 수 있다. 예들은 메모리 대역폭 또는 레이턴시만큼 간단할 수 있거나, 또는 데이터가 어떻게 액세스될 것인지(예를 들어, 랜덤 판독)에 대한 패턴들만큼 복잡할 수 있다.
제3 타입은 지오-펜싱 또는 경계 제한 요건들을 포함한다. 데이터가 어떻게 그리고 어디에 저장되는지에 대한 에지 관점 제어로부터의 중요한 양태. 이러한 타입의 메타데이터(515)는 데이터가 어디에 저장되는지 또는 누가 그것을 저장할 수 있는지를 선택하는데에 초점을 맞춘다. 예에서, 이 메타데이터(515) 내의 힌트들은 데이터가 저장될 수 있는 지리적 영역을 포함할 수 있다. 이것은 국가들 또는 지오-로케이션들의 리스트의 형태로 있을 수 있다. 예에서, 이 메타데이터(515) 내의 힌트들은 신뢰할 수 있고 데이터가 저장될 수 있는 엔터티들을 포함할 수 있다. 이것은 신뢰받는 잠재적 스토리지 소유자들의 리스트일 수 있다. 예를 들어, 콘텐츠 서비스 제공자 A에 의해 관리되는 임의의 로케이션은 신뢰받을 수 있지만, 데이터는 콘텐츠 서비스 제공자 B의 로케이션에 저장되지 않을 수 있다.
도 6은 이하의 예들 중 다수에서 "에지 클라우드"로서 지칭되는 처리 계층(layer)을 포함하는, 에지 컴퓨팅을 위한 구성의 개관을 보여주는 블록도이다. 도시된 바와 같이, 에지 클라우드(610)는 액세스 포인트 또는 기지국(640), 로컬 처리 허브(650), 또는 중앙 오피스(620)와 같은 에지 로케이션에서 공동 위치되고, 따라서 다중의 엔티티, 디바이스, 및 장비 인스턴스를 포함할 수 있다. 에지 클라우드(610)는 클라우드 데이터 센터(630)보다 엔드포인트(소비자 및 생산자) 데이터 소스들(660)(예를 들어, 자율주행 차량들(661), 사용자 장비(662), 비즈니스 및 산업 장비(663), 비디오 캡처 디바이스들(664), 드론들(665), 스마트 도시들 및 빌딩 디바이스들(666), 센서들 및 IoT 디바이스들(667) 등)에 훨씬 더 가깝게 위치된다. 에지 클라우드(610) 내의 에지들에서 제공되는 컴퓨팅, 메모리, 및 스토리지 리소스들은 엔드포인트 데이터 소스들(660)에 의해 사용되는 서비스들 및 기능들에 대한 초저 레이턴시 응답 시간들을 제공하는 것은 물론이고, 에지 클라우드(610)로부터 클라우드 데이터 센터(630)로 향하는 네트워크 백홀 트래픽을 감소시켜 다른 이점 중에서도 에너지 소비 및 전체 네트워크 사용을 개선하는 데 중요하다.
컴퓨팅, 메모리, 및 스토리지는 부족한 리소스들이고, 일반적으로 에지 로케이션에 좌우되어 감소한다(예를 들어, 기지국에서보다, 중앙 오피스에서보다 소비자 엔드포인트 디바이스들에서 이용가능한 처리 리소스들이 더 적다). 그러나, 에지 로케이션이 엔드포인트(예를 들어, UE(user equipment))에 더 가까울수록, 공간 및 전력이 자주 제약되는 것이 더 많아진다. 따라서, 에지 컴퓨팅은 지리적으로 그리고 네트워크 액세스 시간에서 둘 다에서 더 가깝게 위치되는 더 많은 리소스들의 분포를 통해, 네트워크 서비스들을 위해 필요한 리소스들의 양을 감소시키려고 시도한다. 이러한 방식으로, 에지 컴퓨팅은 적절한 경우 컴퓨팅 리소스들을 작업 부하 데이터로 가져오거나, 또는 작업 부하 데이터를 컴퓨팅 리소스들로 가져오려고 시도한다.
이하에서는 다중의 잠재적 배치를 커버하고 그리고 일부 네트워크 운영자들 또는 서비스 제공자들이 그들 자신의 인프라스트럭처들에서 가질 수 있는 제한들을 해결하는 에지 클라우드 아키텍처의 양태들을 설명한다. 이들은 에지 로케이션에 기초한 구성들의 변형(기지국 레벨에서의 에지들이, 예를 들어, 멀티-테넌트 시나리오에서 더 제약된 성능 및 능력들을 가질 수 있기 때문임); 에지 로케이션들, 로케이션들의 계층(tier)들, 또는 로케이션들의 그룹들에 이용가능한 컴퓨팅, 메모리, 스토리지, 패브릭, 가속, 또는 유사한 리소스들의 타입에 기초한 구성들; 서비스, 보안, 및 관리와 오케스트레이션 능력들; 및 최종 서비스들의 유용성 및 성능을 달성하기 위한 관련 목적을 포함한다. 이들 배치들은, 레이턴시, 거리, 및 타이밍 특성들에 좌우되어, "근거리 에지(near edge)", "가까운 에지(close edge)", "로컬 에지(local edge)", "중간 에지(middle edge)", 또는 "원거리 에지(far edge)" 계층(layer)들로서 간주될 수 있는 네트워크 계층들에서의 처리를 달성할 수 있다.
에지 컴퓨팅은 전형적으로, 데이터를 생산하고 소비하는 엔드포인트 디바이스들에 훨씬 더 가까운 기지국들, 게이트웨이들, 네트워크 라우터들, 또는 다른 디바이스들에서 구현되는 컴퓨팅 플랫폼(예를 들어, x86 또는 ARM 컴퓨팅 하드웨어 아키텍처)의 사용을 통해 네트워크의 "에지(edge)"에서 또는 그에 더 가깝게 컴퓨팅이 수행되는 개발 중인 패러다임이다. 예를 들어, 에지 게이트웨이 서버들은 접속된 클라이언트 디바이스들에 대한 저 레이턴시 사용 사례들(예를 들어, 자율 주행 운전 또는 비디오 감시)에 대해 실시간으로 계산을 수행하기 위해 메모리 및 스토리지 리소스들의 풀(pool)들을 갖출 수 있다. 또는 예로서, 기지국들은 백홀 네트워크들을 통해 데이터를 추가로 통신하지 않고서, 접속된 사용자 장비에 대한 서비스 작업 부하들을 직접 처리하기 위해 컴퓨팅 및 가속 리소스들로 증강될 수 있다. 또는 또 다른 예로서, 중앙 오피스 네트워크 관리 하드웨어가 가상화된 네트워크 기능들을 수행하고 접속된 디바이스들에 대한 서비스들 및 소비자 기능들의 실행을 위한 컴퓨팅 리소스들을 제공하는 표준화된 컴퓨팅 하드웨어로 대체될 수 있다. 에지 컴퓨팅 네트워크들 내에서는, 컴퓨팅 리소스가 데이터로 "이동될(moved)" 서비스들에서의 시나리오들뿐만 아니라, 데이터가 컴퓨팅 리소스로 "이동될" 시나리오들이 있을 수 있다. 또는 예로서, 기지국 컴퓨팅, 가속 및 네트워크 리소스들은 코너 사례(corner case)들, 긴급 상황들을 관리하기 위해 또는 상당히 더 길게 구현된 수명주기에 걸쳐 배치된 리소스들에 대해 오랜 수명(longevity)을 제공하기 위해 휴면 중인 용량(가입, 요구에 따른 용량(capacity on demand))을 활성화함으로써 필요에 따른 기준으로 작업 부하 요구들에 대해 스케일링하기 위해서 서비스들을 제공할 수 있다.
도 7은 엔드포인트들, 에지 클라우드, 및 클라우드 컴퓨팅 환경들 사이의 동작 계층들을 도시한다. 구체적으로는, 도 7은 네트워크 컴퓨팅의 다중의 예시적인 계층 사이에서 에지 클라우드(610)를 활용하는 계산 사용 사례들(705)의 예들을 묘사하고 있다. 이 계층들은 에지 클라우드(610)에 액세스하여 데이터 생성, 분석, 및 데이터 소비 활동들을 수행하는 엔드포인트(디바이스들 및 사물들) 계층(700)에서 시작한다. 에지 클라우드(610)는 게이트웨이들, 구내(on-premise) 서버들, 또는 물리적으로 근접한 에지 시스템들에 위치된 네트워크 장비(노드들(715))를 갖는 에지 디바이스 계층(710); 기지국들, 무선 처리 유닛들, 네트워크 허브들, 지역 데이터 센터들(DC), 또는 로컬 네트워크 장비(장비(725))를 포함하는 네트워크 액세스 계층(720); 및 그 사이에 위치된 (계층(712)에서의, 상세히 도시되지 않은) 임의의 장비, 디바이스들, 또는 노드들과 같은 다중의 네트워크 계층에 걸쳐 있을 수 있다. 에지 클라우드(610) 내에서의 그리고 다양한 계층들 사이의 네트워크 통신들은 묘사되지 않은 접속(connectivity) 아키텍처들 및 기술들을 통해 발생하는 것을 포함하여, 임의 수의 유선 또는 무선 매체들을 통해 발생할 수 있다.
네트워크 통신 거리 및 처리 시간 제약들로부터 기인하는 레이턴시의 예들은 엔드포인트 계층(700) 중에 있을 때의 밀리초(ms) 미만으로부터, 에지 디바이스 계층(710)에서의 5ms 아래에서, 네트워크 액세스 계층(720)에서의 노드들과 통신할 때의 심지어 10 내지 40ms의 범위를 가질 수 있다. 에지 클라우드(610) 너머에는 코어 네트워크(730) 및 클라우드 데이터 센터(740) 계층들이 있고, 이들 각각은 레이턴시가 증가한다(예를 들어, 코어 네트워크 계층(730)에서의 50-60ms 사이 내지 클라우드 데이터 센터 계층에서의 100ms 이상). 그 결과, 적어도 50 내지 100ms 이상의 레이턴시들을 갖는, 코어 네트워크 데이터 센터(735) 또는 클라우드 데이터 센터(745)에서의 동작들은 사용 사례들(705)의 많은 시간-중요 기능들을 달성할 수 없을 것이다. 이들 레이턴시 값들 각각은 예시 및 대비 목적을 위해 제공된다; 다른 액세스 네트워크 매체들 및 기술들의 사용이 레이턴시들을 추가로 감소시킬 수 있다는 것이 이해될 것이다. 일부 예들에서, 네트워크의 각자의 부분들은, 네트워크 소스 및 목적지에 대해, "근접 에지(close edge)", "로컬 에지(local edge)", "근거리 에지(near edge)", "중간 에지(middle edge)", 또는 "원거리 에지(far edge)" 계층들로서 범주화될 수 있다. 예를 들어, 코어 네트워크 데이터 센터(735) 또는 클라우드 데이터 센터(745)의 관점에서, 중앙 오피스 또는 콘텐츠 데이터 네트워크는 "근거리 에지(near edge)" 계층(클라우드에 "근거리(near)", 사용 사례들(705)의 디바이스들 및 엔드포인트들과 통신할 때 높은 레이턴시 값들을 가짐) 내에 위치되는 것으로서 간주될 수 있는 반면, 액세스 포인트, 기지국, 구내 서버, 또는 네트워크 게이트웨이는 "원거리 에지(far edge)" 계층(클라우드로부터 "원거리(far)", 사용 사례들(705)의 디바이스들 및 엔드포인트들과 통신할 때 낮은 레이턴시 값들을 가짐) 내에 위치되는 것으로서 간주될 수 있다. 특정 네트워크 계층을 "근접", "로컬", "근거리", "중간", 또는 "원거리" 에지를 구성하는 것으로서 다르게 범주화하는 것은 네트워크 계층들(700-740) 중 임의의 것에서의 소스로부터 측정되는, 레이턴시, 거리, 네트워크 홉들의 수, 또는 다른 측정가능한 특성들에 기초할 수 있다는 것이 이해될 것이다.
다양한 사용 사례들(705)이, 에지 클라우드를 활용하는 다중의 서비스로 인해, 인커밍 스트림들로부터의 사용 압박 하에서 리소스들에 액세스할 수 있다. 낮은 레이턴시를 갖는 결과들을 달성하기 위해, 에지 클라우드(610) 내에서 실행되는 서비스들은 (a) 우선순위(스루풋 또는 레이턴시) 및 QoS(Quality of Service)(예를 들어, 자율 주행차에 대한 트래픽은 응답 시간 요건의 관점에서 온도 센서보다 더 높은 우선순위를 가질 수 있고; 또는, 응용에 좌우되어 컴퓨팅/가속기, 메모리, 스토리지, 또는 네트워크 리소스에서 성능 민감도/병목 현상이 존재할 수 있음); (b) 신뢰성 및 회복성(예를 들어, 일부 입력 스트림들은 액션을 받을 필요가 있고 트래픽은 미션-크리티컬 신뢰성으로 라우팅될 필요가 있는 반면, 일부 다른 입력 스트림들은 응용에 좌우되어 가끔의 실패를 용인할 수 있음); 및 (c) 물리적 제약들(예를 들어, 전력, 냉각 및 폼-팩터)의 관점에서 변하는 요건들의 균형을 맞춘다.
이러한 사용 사례들에 대한 엔드-투-엔드(end-to-end) 서비스 뷰는 서비스 흐름의 개념을 수반하고 트랜잭션과 연관된다. 트랜잭션은 서비스를 소비하는 엔티티에 대한 전체 서비스 요건뿐만 아니라, 리소스들, 작업 부하들, 작업 흐름들, 및 비즈니스 기능 및 비즈니스 레벨 요건들에 대한 연관된 서비스들을 상술한다. 설명된 "조건(terms)"으로 실행되는 서비스는 서비스의 수명주기 동안 트랜잭션에 대한 실시간 및 런타임 계약 준수를 보장하는 방식으로 각각의 계층에서 관리될 수 있다. 트랜잭션 내의 컴포넌트가 그것이 SLA에 합의한 것을 놓치고 있을 때, 시스템 전체(트랜잭션 내의 컴포넌트들)는 (1) SLA 위반의 영향을 이해하고, (2) 전체 트랜잭션 SLA를 재개하기 위해 시스템 내의 다른 컴포넌트들을 증강하고, 및 (3) 교정하는 조치들을 구현하는 능력을 제공할 수 있다.
따라서, 이들 변동 및 서비스 특징을 염두에 두고서, 에지 클라우드(610) 내에서의 에지 컴퓨팅은 사용 사례들(705)의 다중의 응용(예를 들어, 객체 추적, 비디오 감시, 커넥티드 카(connected car)들 등)을 실시간으로 또는 거의 실시간으로 서빙하고 그에 응답하는 능력을 제공하고, 이들 다중의 응용에 대한 초저 레이턴시 요건들을 충족시킬 수 있다. 이러한 이점들은 완전히 새로운 클래스의 응용들(VNF(Virtual Network Function)들, FaaS(Function as a Service), EaaS(Edge as a Service), 표준 프로세스들 등)을 가능하게 하는데, 이는 레이턴시 또는 다른 제한들로 인해 종래의 클라우드 컴퓨팅을 활용할 수는 없다.
그러나, 에지 컴퓨팅의 이점들과 함께 다음의 주의사항들이 따라온다. 에지에 위치되는 디바이스들은 종종 리소스 제약되고 따라서 에지 리소스들의 사용에 대한 압박이 있다. 전형적으로, 이는 다중의 사용자(테넌트들) 및 디바이스들에 의한 사용을 위한 메모리 및 스토리지 리소스들의 풀링(pooling)을 통해 해결된다. 에지는 전력 및 냉각 제약될 수 있고, 따라서 전력 사용은 가장 많은 전력을 소비하고 있는 응용들이 책임질 필요가 있다. 이들 풀링된 메모리 리소스에는 내재된 전력-성능 절충들이 있을 수 있는데, 그 이유는 이들 중 다수가 더 많은 전력이 더 큰 메모리 대역폭을 필요로 하는 신생 메모리 기술들을 사용할 가능성이 있기 때문이다. 마찬가지로, 에지 로케이션들이 무인화(unmanned)될 수 있고 심지어 허가된 액세스를 필요로 할 수도 있기 때문에(예를 들어, 제3자 로케이션에 하우징될 때), 하드웨어의 개선된 보안과 신뢰 루트의 신뢰된 기능들(root of trust trusted functions)이 또한 요구된다. 이러한 문제들은 멀티-테넌트, 멀티-소유자, 또는 멀티-액세스 설정에서 에지 클라우드(610)에서 확대되고, 여기서 서비스들 및 응용들은 특히 네트워크 사용이 동적으로 요동하고 다중의 이해관계자, 사용 사례들, 및 서비스들의 구성(composition)이 변함에 따라, 많은 사용자들에 의해 요청된다.
보다 일반적인 레벨에서, 에지 컴퓨팅 시스템이 에지 클라우드(610)에서 동작하는 이전에 논의된 계층들(네트워크 계층들(700 내지 740))에서의 임의 수의 배치들을 포괄하는 것으로 기술될 수 있는데, 이것들은 클라이언트 및 분산 컴퓨팅 디바이스들로부터의 코디네이션(coordination)을 제공한다. 하나 이상의 에지 게이트웨이 노드, 하나 이상의 에지 집성 노드(edge aggregation node), 및 하나 이상의 코어 데이터 센터가 네트워크의 계층들에 걸쳐 분산되어, 전기통신 서비스 제공자(telecommunication service provider)("telco", 또는 "TSP"), 사물 인터넷 서비스 제공자, 클라우드 서비스 제공자(cloud service provider, CSP), 기업 엔티티, 또는 임의의 다른 수의 엔티티들에 의해 또는 그를 대신하여 에지 컴퓨팅 시스템의 구현을 제공할 수 있다. 에지 컴퓨팅 시스템의 다양한 구현들 및 구성들은, 예컨대 서비스 목적을 충족시키도록 오케스트레이션될 때, 동적으로 제공될 수 있다.
본 명세서에 제공된 예들과 일관되게, 클라이언트 컴퓨팅 노드는 데이터의 생산자 또는 소비자로서 통신 가능한 임의 타입의 엔드포인트 컴포넌트, 디바이스, 어플라이언스, 또는 다른 것으로서 구체화될 수 있다. 또한, 에지 컴퓨팅 시스템에서 사용되는 대로의 "노드" 또는 "디바이스"라는 라벨은 반드시 그러한 노드 또는 디바이스가 클라이언트 또는 에이전트/미니언(minion)/팔로워 역할에서 동작하는 것을 의미하지는 않는다; 오히려, 에지 컴퓨팅 시스템 내의 노드들 또는 디바이스들 중 임의의 것은 에지 클라우드(610)를 용이하게 하거나 사용하기 위한 이산적 또는 연결된 하드웨어 또는 소프트웨어 구성들을 포함하는 개별 엔티티들, 노드들, 또는 서브시스템들을 지칭한다.
이와 같이, 에지 클라우드(610)는 네트워크 계층들(710-730) 중에서 에지 게이트웨이 노드들, 에지 집성 노드들, 또는 다른 에지 컴퓨팅 노드들에 의해 그리고 그 내에서 동작되는 네트워크 컴포넌트들 및 기능적 특징들로부터 형성된다. 따라서, 에지 클라우드(610)는 본 명세서에서 논의되는, RAN(radio access network) 가능 엔드포인트 디바이스들(예를 들어, 모바일 컴퓨팅 디바이스들, IoT 디바이스들, 스마트 디바이스들 등)에 근접하여 위치되는 에지 컴퓨팅 또는 스토리지 리소스들을 제공하는 임의 타입의 네트워크로서 구체화될 수 있다. 다시 말해서, 에지 클라우드(610)는, 스토리지 및/또는 컴퓨팅 능력을 또한 제공하면서, 모바일 캐리어 네트워크들(예를 들어, GSM(Global System for Mobile Communications) 네트워크들, LTE(Long-Term Evolution) 네트워크들, 5G/6G 네트워크들 등)을 포함하여, 서비스 제공자 코어 네트워크들 내로의 진입 포인트(ingress point)로서 서빙하는 전통적인 네트워크 액세스 포인트들과 엔드포인트 디바이스들를 접속하는"에지(edge)"로서 상정될 수 있다. 다른 타입들 및 형식들의 네트워크 액세스(예를 들어, Wi-Fi, 광학 네트워크들을 포함하는 장거리 무선, 유선 네트워크들)가 또한 그러한 3GPP 캐리어 네트워크들 대신에 또는 그와 조합하여 활용될 수 있다.
에지 클라우드(610)의 네트워크 컴포넌트들은 서버들, 멀티-테넌트 서버들, 어플라이언스 컴퓨팅 디바이스들, 또는 임의의 다른 타입의 컴퓨팅 디바이스들일 수 있다. 예를 들어, 에지 클라우드(610)는 하우징, 섀시, 케이스 또는 셸(shell)을 포함하는 자족적인 전자 디바이스인 어플라이언스 컴퓨팅 디바이스를 포함할 수 있다. 일부 상황들에서, 하우징은 휴대성을 위해 그 치수가 정해질 수 있으며, 따라서 사람에 의해 운반되거나 선적될 수 있다. 예시적인 하우징들은 어플라이언스의 콘텐츠들을 부분적으로 또는 완전히 보호하는 하나 이상의 외부 표면을 형성하는 재료들을 포함할 수 있고, 여기서 보호는 날씨 보호, 위험한 환경 보호(예를 들어, EMI, 진동, 극한 온도들)를 포함할 수 있고, 또는 수중 사용(submergibility)을 가능하게 할 수 있다. 예시적인 하우징들은 AC 전력 입력들, DC 전력 입력들, AC/DC 또는 DC/AC 컨버터(들), 전력 레귤레이터들, 변압기들, 충전 회로망, 배터리들, 유선 입력들 또는 무선 전력 입력들과 같은, 고정식 또는 휴대용 구현들을 위한 전력을 제공하는 전력 회로를 포함할 수 있다. 예시적인 하우징들 또는 그의 표면들은 건물들, 전기통신 구조물들(예컨대, 기둥들, 안테나 구조물들 등) 또는 랙(rack)들(예컨대, 서버 랙들, 블레이드 마운트들 등)과 같은 구조물들에의 부착을 가능하게 하기 위해 마운팅 하드웨어를 포함하거나 그에 연결될 수 있다. 예시적인 하우징들 또는 그것의 표면들은 하나 이상의 센서(예를 들어, 온도 센서들, 진동 센서들, 광 센서들, 음향 센서들, 용량성 센서들, 근접 센서들 등)를 지지할 수 있다. 하나 이상의 이러한 센서가 표면 내에 포함되거나, 표면에 의해 운반되거나, 다른 방식으로 표면에 내장되거나, 또는 어플라이언스 표면에 장착될 수 있다. 예시적인 하우징들 또는 그것의 표면들은 추진 하드웨어(예를 들어, 휠들, 프로펠러들 등) 또는 관절식 하드웨어(예를 들어, 로봇 암들, 피봇가능한 부속물들 등)와 같은 기계적 연결성을 지원할 수 있다. 일부 상황들에서, 센서들은 사용자 인터페이스 하드웨어(예를 들어, 버튼, 스위치, 다이얼, 슬라이더 등)와 같은 임의 타입의 입력 디바이스들을 포함할 수 있다. 일부 상황들에서, 예시적인 하우징들은 그 안에 포함되거나, 그에 의해 운반되거나, 그 안에 내장되거나 그에 부착된 출력 디바이스들을 포함한다. 출력 디바이스들은 디스플레이들, 터치스크린들, 전구들, LED들, 스피커들, I/O 포트들(예를 들어, USB) 등을 포함할 수 있다. 일부 상황들에서, 에지 디바이스들은 특정 목적(예를 들어, 교통 신호등)을 위해 네트워크 내에 제시되는 디바이스들이지만, 다른 목적들을 위해 활용될 수 있는 처리 및/또는 다른 능력들을 가질 수 있다. 그러한 에지 디바이스들은 다른 네트워킹된 디바이스들과 독립적일 수 있으며, 그의 주요 목적에 적합한 폼 팩터를 갖는 하우징을 구비할 수 있다; 그렇지만 그의 주 작업을 방해하지 않는 다른 계산 작업들에 대해 이용가능할 수 있다. 에지 디바이스들은 사물 인터넷 디바이스들을 포함한다. 어플라이언스 컴퓨팅 디바이스는 디바이스 온도, 진동, 리소스 활용, 업데이트, 전력 문제, 물리적 및 네트워크 보안 등과 같은 로컬 문제들을 관리하기 위한 하드웨어 및 소프트웨어 컴포넌트들을 포함할 수 있다. 어플라이언스 컴퓨팅 디바이스를 구현하기 위한 예시적인 하드웨어가 도 11b와 연계하여 설명된다. 에지 클라우드(610)는 또한 하나 이상의 서버 또는 하나 이상의 멀티-테넌트 서버를 포함할 수 있다. 이러한 서버는 운영 체제를 포함하고 가상 컴퓨팅 환경을 구현할 수 있다. 가상 컴퓨팅 환경은 하나 이상의 가상 머신, 하나 이상의 컨테이너 등을 관리하는 (예를 들어, 생성(spawning), 배치, 파괴하는 등) 하이퍼바이저를 포함할 수 있다. 그러한 가상 컴퓨팅 환경들은 하나 이상의 애플리케이션 및/또는 다른 소프트웨어, 코드 또는 스크립트가 하나 이상의 다른 애플리케이션, 소프트웨어, 코드 또는 스크립트로부터 격리되면서 실행될 수 있는 실행 환경을 제공한다.
도 8에서는, 다양한 클라이언트 엔드포인트들(810)(모바일 디바이스들, 컴퓨터들, 자율주행 차량들, 비즈니스 컴퓨팅 장비, 산업 처리 장비의 형식을 가짐)이 엔드포인트 네트워크 집성의 타입에 특정적인 요청들 및 응답들을 교환한다. 예를 들어, 클라이언트 엔드포인트들(810)은 구내 네트워크 시스템(832)을 통해 요청들 및 응답들(822)을 교환함으로써 유선 광대역 네트워크를 통해 네트워크 액세스를 획득할 수 있다. 모바일 컴퓨팅 디바이스들과 같은 일부 클라이언트 엔드포인트들(810)은 액세스 포인트(예를 들어, 셀룰러 네트워크 타워)(834)를 통해 요청들 및 응답들(824)을 교환함으로써 무선 광대역 네트워크를 통해 네트워크 액세스를 획득할 수 있다. 자율주행 차량들과 같은 일부 클라이언트 엔드포인트들(810)은 거리-로케이션 네트워크 시스템(836)을 통해 무선 차량 네트워크를 통해 요청들 및 응답들(826)에 대한 네트워크 액세스를 획득할 수 있다. 그러나, 네트워크 액세스의 타입에 관계없이, TSP는 트래픽 및 요청들을 집성하기 위해 에지 클라우드(610) 내에 집성 포인트들(842, 844)을 배치할 수 있다. 따라서, 에지 클라우드(610) 내에서, TSP는 요청된 콘텐츠를 제공하기 위해, 에지 집성 노드들(840)에서와 같이, 다양한 컴퓨팅 및 스토리지 리소스들을 배치할 수 있다. 에지 클라우드(610)의 에지 집성 노드들(840) 및 다른 시스템들은 클라우드 또는 데이터 센터(860)에 연결되는데, 이것은 백홀 네트워크(850)를 사용하여 웹사이트들, 애플리케이션들, 데이터베이스 서버들 등에 대한 클라우드/데이터 센터로부터의 더 높은 레이턴시 요청들을 이행한다. 단일 서버 프레임워크 상에 배치된 것들을 포함하여, 에지 집성 노드들(840) 및 집성 포인트들(842, 844)의 추가적인 또는 통합된 인스턴스들이 또한 에지 클라우드(610) 또는 TSP 인프라스트럭처의 다른 영역들 내에 존재할 수 있다.
도 9는 다중의 에지 노드 및 이러한 에지 노드들을 이용하는 다중의 테넌트(예컨대, 사용자들, 제공자들) 간에 동작되는 에지 컴퓨팅 시스템에 걸친 가상화된 및 컨테이너 기반 에지 구성들에 대한 배치 및 오케스트레이션을 도시한다. 구체적으로, 도 9는 다양한 가상 에지 인스턴스들에 액세스하는, 다양한 클라이언트 엔드포인트들(910)(예를 들어, 스마트 도시들/빌딩 시스템들, 모바일 디바이스들, 컴퓨팅 디바이스들, 비즈니스/물류 시스템들, 산업 시스템들 등)에 대한 요청들 및 응답들을 이행하기 위한, 에지 컴퓨팅 시스템에서의 제1 에지 노드(922) 및 제2 에지 노드(924)의 코디네이션을 묘사한다. 여기서, 가상 에지 인스턴스들(932, 934)은 에지 클라우드에서의 에지 컴퓨팅 능력들 및 처리에게, 웹사이트들, 애플리케이션들, 데이터베이스 서버들 등에 대한 더 높은 레이턴시 요청들을 위한 클라우드/데이터 센터(940)로의 액세스를 제공한다. 그러나, 에지 클라우드는 다중의 테넌트 또는 엔티티에 대한 다중의 에지 노드 중에서의 처리의 코디네이션을 가능하게 한다.
도 9의 예에서, 이들 가상 에지 인스턴스는 다음을 포함한다: 제1 테넌트(Tenant 1)에게 제공되고, 에지 스토리지, 컴퓨팅, 및 서비스들의 제1 조합을 제공하는 제1 가상 에지(932); 및 에지 스토리지, 컴퓨팅 및 서비스들의 제2 조합을 제공하는 제2 가상 에지(934). 가상 에지 인스턴스들(932, 934)은 에지 노드들(922, 924) 사이에 분산되고, 요청 및 응답이 동일한 또는 상이한 에지 노드들로부터 이행되는 시나리오들을 포함할 수 있다. 분산되지만 도디네이션된 방식으로 동작하는 에지 노드들(922, 924)의 구성은 에지 프로비저닝 기능들(950)에 기초하여 발생한다. 다중의 테넌트 간에, 애플리케이션들 및 서비스들에 대한 코디네이션된 동작을 제공하는 에지 노드들(922, 924)의 기능성은 오케스트레이션 기능들(960)에 기초하여 발생한다.
(910)에서의 디바이스들 중 일부는 Tenant 1이 테넌트1 '슬라이스' 내에서 기능할 수 있는 한편 Tenant 2가 테넌트2 슬라이스 내에서 기능할 수 있는 (그리고, 추가의 예들에서, 부가의 또는 서브 테넌트들이 존재할 수 있고; 및 각각의 테넌트가 심지어 특정 하드웨어 특징들에 대해 구체적으로 하루 종일 특정 특징들의 세트를 얻을 자격이 주어지고 그것들에 트랜잭션적으로 결부될 수 있는) 멀티 테넌트 디바이스라는 것을 이해해야 한다. 신뢰된 멀티 테넌트 디바이스는 테넌트 특정적 암호 키를 추가로 포함할 수 있어서, 키와 슬라이스의 조합이 "RoT(root of trust)" 또는 테넌트 특정적 RoT로서 고려될 수 있도록 한다. RoT는 DICE(Device Identity Composition Engine) 아키텍처를 사용하여 동적으로 컴포즈(compose)되도록 추가로 계산될 수 있으며, 따라서 단일 DICE 하드웨어 빌딩 블록이 (FPGA(Field Programmable Gate Array)와 같은) 디바이스 능력들의 계층화를 위한 계층화된 신뢰된 컴퓨팅 기본 컨텍스트들을 구축하기 위해 사용될 수 있다. RoT는 멀티 테넌시(multi-tenancy)를 지원하기 위해 유용한 "팬-아웃(fan-out)"을 가능하게 하기 위해 신뢰된 컴퓨팅 컨텍스트를 위해 추가로 사용될 수 있다. 멀티 테넌트 환경 내에서, 각자의 에지 노드들(922, 924)은 노드 당 다중의 테넌트에 할당된 로컬 리소스들에 대한 보안 특징 시행 포인트들로서 동작할 수 있다. 추가적으로, 테넌트 런타임 및 애플리케이션 실행(예를 들어, 인스턴스들(932, 934)에서)은 잠재적으로 다중의 물리적 호스팅 플랫폼에 걸쳐 있는 리소스들의 가상 에지 추상화를 생성하는 보안 특징에 대한 시행 포인트로서 역할을 할 수 있다. 마지막으로, 오케스트레이션 엔티티에서의 오케스트레이션 기능들(960)은 테넌트 경계들을 따라 리소스들을 집결시키기 위한 보안 특징 시행 포인트로서 동작할 수 있다.
에지 컴퓨팅 노드들은 리소스들(메모리, CPU(central processing unit), GPU(graphics processing unit), 인터럽트 제어기, 입력/출력 I/O 제어기, 메모리 제어기, 버스 제어기 등)을 파티셔닝할 수 있고, 여기서 각자의 파티셔닝은 RoT 능력을 포함할 수 있고, 여기서 DICE 모델에 따른 팬-아웃 및 계층화가 에지 노드들에 추가로 적용될 수 있다. 클라우드 컴퓨팅 노드들은 종종 컨테이너들, FaaS 엔진들, 서블릿(Servlet)들, 서버들, 또는 각각에 대한 RoT 컨텍스트를 지원하기 위해 DICE 계층화 및 팬-아웃 구조에 따라 파티셔닝될 수 있는 다른 계산 추상화를 사용한다. 따라서, 디바이스들(910, 922 및 940)에 걸쳐 있는 각자의 RoT들은 DTCB(distributed trusted computing base)의 확립을 코디네이션할 수 있어서, 모든 요소들을 단 대 단으로 링크하는 테넌트 특정적 가상 신뢰된 보안 채널이 확립될 수 있도록 한다.
또한, 컨테이너는 이전의 에지 노드로부터 그것의 콘텐츠를 보호하는 데이터 또는 작업 부하 특정적 키들을 가질 수 있다는 것이 이해될 것이다. 컨테이너의 마이그레이션의 일부로서, 소스 에지 노드에서의 포드 제어기(pod controller)는 타겟 에지 노드 포드 제어기로부터 마이그레이션 키를 획득할 수 있는데, 여기서 마이그레이션 키는 컨테이너 특정적 키들을 랩핑(wrapping)하기 위해 사용된다. 컨테이너/포드가 타겟 에지 노드에 마이그레이션될 때, 언랩핑 키가 포드 제어기에게 노출되고 포드 제어기는 그 후 랩핑된 키들을 복호화한다. 키들은 이제 컨테이너 특정적 데이터에 대한 동작들을 수행하기 위해 사용될 수 있다. 마이그레이션 기능들은 (위에 설명된 바와 같이) 적절히 증명된 에지 노드들 및 포드 관리자들에 의해 게이팅될 수 있다.
추가 예들에서, 에지 컴퓨팅 시스템은 다중 소유자, 멀티 테넌트 환경에서 컨테이너들(코드 및 필요한 의존성들을 제공하는 컨테이닝된, 배치가능한 소프트웨어의 유닛)의 사용을 통해 다중 애플리케이션의 오케스트레이션을 제공하도록 확장된다. 도 9에서 신뢰된 '슬라이스' 개념의 프로비저닝 및 수명주기와 관련된 키 관리, 신뢰 앵커 관리, 및 다른 보안 기능들을 수행하기 위해 멀티 테넌트 오케스트레이터가 사용될 수 있다. 예를 들어, 에지 컴퓨팅 시스템은 다중의 가상 에지 인스턴스로부터 (그리고, 클라우드 또는 원격 데이터 센터로부터) 다양한 클라이언트 엔드포인트들에 대한 요청들 및 응답들을 이행하도록 구성될 수 있다. 이들 가상 에지 인스턴스들의 사용은 다중의 테넌트 및 다중의 애플리케이션(예를 들어, AR(augmented reality)/VR(virtual reality), 기업 애플리케이션들, 콘텐츠 전달(content delivery), 게이밍, 컴퓨팅 오프로드)을 동시에 지원할 수 있다. 또한, 가상 에지 인스턴스들 내에 다중 타입의 애플리케이션들(예를 들어, 정상 애플리케이션들; 레이턴시 민감 애플리케이션들; 레이턴시 임계 애플리케이션들; 사용자 평면 애플리케이션들; 네트워킹 애플리케이션들; 등)이 있을 수 있다. 가상 에지 인스턴스들은 또한 상이한 지리적 로케이션들에 있는 다중 소유자의 시스템들(또는, 다중 소유자에 의해 공동 소유되거나 공동 관리되는 각자의 컴퓨팅 시스템들 및 리소스들)에 걸쳐서 걸쳐 있을 수 있다.
예를 들어, 각각의 에지 노드(922, 924)는 하나 이상의 컨테이너의 그룹을 제공하는 컨테이너 "포드(pod)"(926, 928)의 사용에 의한 것과 같은 컨테이너들의 사용을 구현할 수 있다. 하나 이상의 컨테이너 포드들을 사용하는 환경에서, 포드 제어기 또는 오케스트레이터가 포드 내의 컨테이너들의 로컬 제어 및 오케스트레이션을 담당한다. 각자의 에지 슬라이스들(932, 934)에 대해 제공되는 다양한 에지 노드 리소스(예를 들어, 6각형들로 묘사된, 스토리지, 컴퓨팅, 서비스들)는 각각의 컨테이너의 필요에 따라 파티셔닝된다.
컨테이너 포드들의 사용에 의해, 포드 제어기가 컨테이너들 및 리소스들의 파티셔닝 및 할당을 감독한다. 포드 제어기는, 예컨대 SLA 계약들에 기초하여 KPI(key performance indicator) 타겟들을 수신함으로써, 물리 리소스들을 어떻게 최상으로 파티셔닝할지에 대해 그리고 어떤 지속기간에 대해 제어기에게 지시하는 명령들을 오케스트레이터(예를 들어, 오케스트레이터(960))로부터 수신한다. 포드 제어기는 작업 부하를 완료하고 SLA를 만족시키기 위해 어느 컨테이너가 어느 리소스들을 그리고 얼마나 오래 필요로 하는지를 결정한다. 포드 제어기는 또한: 컨테이너를 생성하는 것, 그것에게 리소스들 및 애플리케이션들을 프로비저닝하는 것, 분산된 애플리케이션 상에서 함께 작업하는 다중의 컨테이너 사이에서 중간 결과들을 코디네이션하는 것, 작업 부하가 완료될 때 컨테이너들을 해체하는 것, 및 그와 유사한 것과 같은 컨테이너 수명주기 동작들을 관리한다. 추가적으로, 포드 제어기는 올바른 테넌트가 인증할 때까지 리소스들의 할당을 방지하거나 또는 증명 결과가 만족될 때까지 컨테이너에 데이터 또는 작업 부하를 프로비저닝하는 것을 방지하는 보안 역할을 서빙할 수 있다.
또한, 컨테이너 포드들의 사용에 의해, 테넌트 경계들이 여전히 존재할 수 있지만 컨테이너들의 각각의 포드의 컨텍스트 내에서만 그러하다. 각각의 테넌트 특정적 포드가 테넌트 특정벅 포드 제어기를 갖는 경우, 전형적인 리소스 고갈 상황들을 피하기 위해 리소스 할당 요청들을 통합하는 공유 포드 제어기가 있을 것이다. 포드 및 포드 제어기의 증명 및 신뢰성을 보장하기 위해 추가 제어들이 제공될 수 있다. 예를 들어, 오케스트레이터(960)는 증명 검증을 수행하는 로컬 포드 제어기들에게 증명 검증 정책을 프로비저닝할 수 있다. 증명이 제2 테넌트 포드 제어기가 아니라 제1 테넌트 포드 제어기에 대한 정책을 만족시키는 경우, 제2 포드는 그것을 만족시키는 상이한 에지 노드로 마이그레이션될 수 있다. 대안적으로, 제1 포드는 실행하도록 허용될 수 있고, 상이한 공유 포드 제어기가 제2 포드가 실행하기 전에 설치되고 기동된다.
도 10은 에지 컴퓨팅 시스템에서 컨테이너들을 배치하는 추가적인 컴퓨팅 배열들을 예시한다. 단순화된 예로서, 시스템 배열들(1010, 1020)은 포드 제어기(예를 들어, 컨테이너 관리자들(1011, 1021), 및 컨테이너 오케스트레이터(1031))가 컴퓨팅 노드들(배열(1010) 내의 (1015))을 통한 실행을 통해 컨테이너화된 포드들, 기능들, 및 FaaS(functions-as-a-service) 인스턴스들을 론칭하거나, 또는 컴퓨팅 노드들(배열(1020) 내의 (1023))을 통한 실행을 통해 컨테이너화된 가상화된 네트워크 기능들을 개별적으로 실행하도록 적응되는 설정들을 묘사한다. 이 배열은 (컴퓨트 노드들(1037)을 사용하여) 시스템 배열(1030) 내의 다중의 테넌트의 사용을 위해 적응되는데, 여기서 컨테이너화된 포드들(예를 들어, 포드들(1012)), 기능들(예를 들어, 기능들(1013), VNF들(1022, 1036)), 및 FaaS(functions-as-a-service) 인스턴스들(예를 들어, FaaS 인스턴스(1014))은 (가상화된 네트워크 기능들의 실행 이외에) 각자의 테넌트들에 특정적인 가상 머신들(예를 들어, 테넌트들(1032, 1033)에 대한 VM들(1034, 1035)) 내에서 론칭된다. 이 배열은, 컨테이너 기반 오케스트레이션 시스템(1041)에 의해 코디네이션되는 바와 같이, 컨테이너들(1042, 1043), 또는 컴퓨팅 노드들(1044) 상에서의 다양한 기능들, 애플리케이션들, 및 기능들의 실행을 제공하는 시스템 배열(1040)에서의 사용을 위해 추가로 적응된다.
도 10에 묘사된 시스템 배열들은 애플리케이션 컴포지션(application composition)의 관점에서 VM들, 컨테이너들, 및 기능들을 동등하게 취급하는 아키텍처를 제공한다(그리고 결과적인 애플리케이션들은 이들 3개의 성분의 조합들이다). 각각의 성분은 로컬 백엔드로서 하나 이상의 가속기(FPGA, ASIC) 컴포넌트들의 사용을 수반할 수 있다. 이러한 방식으로, 애플리케이션들은, 오케스트레이터에 의해 코디네이션된, 다중의 에지 소유자들에 걸쳐 스플릿될 수 있다.
도 10의 컨텍스트에서, 포드 제어기/컨테이너 관리자, 컨테이너 오케스트레이터, 및 개별 노드들은 보안 시행 포인트를 제공할 수 있다. 그러나, 테넌트에 할당된 리소스들이 제2 테넌트에 할당된 리소스들과 구별되는 테넌트 격리가 오케스트레이션될 수 있지만, 에지 소유자들은 리소스 할당들이 테넌트 경계들에 걸쳐 공유되지 않도록 보장하기 위해 협력한다. 또는, 테넌트 경계들에 걸쳐 리소스 할당들이 격리될 수 있는데, 그 이유는 테넌트들이 가입 또는 트랜잭션/계약 기준을 통해 "사용"을 허용할 수 있기 때문이다. 이들 컨텍스트에서, 테넌시를 시행하기 위해 에지 소유자들에 의해 가상화, 컨테이너화, 엔클레이브들(enclaves) 및 하드웨어 파티셔닝 스킴들이 사용될 수 있다. 다른 격리 환경들은: 베어 메탈(bare metal)(전용) 장비, 가상 머신들, 컨테이너들, 컨테이너들 상의 가상 머신들, 또는 이들의 조합들을 포함할 수 있다.
추가 예들에서, 소프트웨어 정의된 또는 제어된 실리콘 하드웨어, 및 다른 구성 가능 하드웨어의 양태들이 에지 컴퓨팅 시스템의 애플리케이션들, 기능들, 및 서비스들과 통합될 수 있다. 소프트웨어 정의된 실리콘(Software defined silicon, SDSi)은 (예를 들어, 하드웨어 구성 자체 내에서의 새로운 특징들의 업그레이드, 재구성, 또는 프로비저닝에 의해) 자체의 일부분 또는 작업부하를 교정하는 성분의 능력에 기초하여, 일부 리소스 또는 하드웨어 성분이 계약 또는 서비스 레벨 협약을 이행하는 능력을 보장하기 위해 사용될 수 있다.
추가의 예들에서, 본 에지 컴퓨팅 시스템들 및 환경을 참조하여 논의된 컴퓨팅 노드들 또는 디바이스들 중 임의의 것이 도 11a 및 도 11b에 묘사된 컴포넌트들에 기초하여 이행될 수 있다. 각자의 에지 컴퓨팅 노드들은 다른 에지, 네트워킹, 또는 엔드포인트 컴포넌트들과 통신할 수 있는 디바이스, 어플라이언스, 컴퓨터, 또는 다른 "사물(thing)"의 타입으로서 구체화될 수 있다. 예를 들어, 에지 컴퓨팅 디바이스는 설명된 기능들을 수행할 수 있는 개인 컴퓨터, 서버, 스마트폰, 모바일 컴퓨팅 디바이스, 스마트 어플라이언스, 차량내 컴퓨팅 시스템(예를 들어, 내비게이션 시스템), 외부 케이스, 셸 등을 갖는 자족적인(self-contained) 디바이스, 또는 다른 디바이스 또는 시스템으로서 구체화될 수 있다.
도 11a에 묘사된 단순화된 예에서, 에지 컴퓨팅 노드(1100)는 컴퓨팅 엔진(본 명세서에서 "컴퓨팅 회로망"으로서 또한 지칭됨)(1102), 입력/출력(I/O) 서브시스템(1108), 데이터 스토리지(1110), 통신 회로망 서브시스템(1112), 및 선택적으로 하나 이상의 주변 디바이스(1114)를 포함한다. 다른 예들에서, 각자의 컴퓨팅 디바이스들은 컴퓨터에서 전형적으로 발견되는 것들(예를 들어, 디스플레이, 주변 디바이스들 등)과 같은 다른 또는 부가적인 컴포넌트들을 포함할 수 있다. 부가적으로, 일부 예들에서, 예시적인 컴포넌트들 중 하나 이상은 또 다른 컴포넌트 내에 통합되거나 또는 다르게는 또 다른 컴포넌트의 일부분을 형성할 수 있다.
컴퓨팅 노드(1100)는 다양한 컴퓨팅 기능들을 수행할 수 있는 임의 타입의 엔진, 디바이스, 또는 디바이스들의 컬렉션으로서 구체화될 수 있다. 일부 예들에서, 컴퓨팅 노드(1100)는 집적 회로, 내장형 시스템, FPGA(field-programmable gate array), SOC(system-on-a-chip), 또는 다른 통합 시스템 또는 디바이스와 같은 단일 디바이스로서 구체화될 수 있다. 예시적인 예에서, 컴퓨팅 노드(1100)는 프로세서(1104) 및 메모리(1106)를 포함하거나 또는 이들로서 구체화된다. 프로세서(1104)는 본 명세서에서 설명된 기능들을 수행(예를 들어, 애플리케이션을 실행)할 수 있는 임의 타입의 프로세서로서 구체화될 수 있다. 예를 들어, 프로세서(1104)는 멀티-코어 프로세서(들), 마이크로컨트롤러, 처리 유닛, 특수화된 또는 특수 목적 처리 유닛, 또는 다른 프로세서 또는 처리/제어 회로로서 구체화될 수 있다.
일부 예들에서, 프로세서(1104)는 FPGA, ASIC(application specific integrated circuit), 재구성 가능 하드웨어 또는 하드웨어 회로망, 또는 본 명세서에서 설명된 기능들의 수행을 용이하게 하기 위한 다른 특수화된 하드웨어로서 구체화될 수 있거나, 이들을 포함하거나, 이들에게 결합될 수 있다. 또한 일부 예들에서, 프로세서(1104)는 DPU(data processing unit), IPU(infrastructure processing unit), 또는 NPU(network processing unit)라고도 알려진 특수화된 x-처리 유닛(xPU)으로서 구체화될 수 있다. 그러한 xPU는 독립형 회로 또는 회로 패키지로서 구체화되거나, SOC 내에 통합되거나, (예를 들어, SmartNIC, 또는 향상된 SmartNIC 내의) 네트워킹 회로망, 가속 회로망, 스토리지 디바이스들, 또는 AI 하드웨어(예를 들어, GPU들 또는 프로그래밍된 FPGA들)와 통합될 수 있다. 이러한 xPU는 CPU 또는 범용 처리 하드웨어 외부에서, 하나 이상의 데이터 스트림을 처리하고 데이터 스트림들에 대한 특정 태스크들 및 액션들(예컨대 마이크로서비스들(microservices)을 호스팅하는 것, 서비스 관리 또는 오케스트레이션을 수행하는 것, 서버 또는 데이터 센터 하드웨어를 조직 또는 관리하는 것, 서비스 메시들을 관리하는 것, 또는 원격측정(telemetry)을 수집 및 배포하는 것)을 수행하기 위한 프로그래밍을 수신하도록 설계될 수 있다. 그러나, 프로세서(1104)의 xPU, SOC, CPU, 및 다른 변형들이 컴퓨팅 노드(1100) 내에서 그리고 그를 대신하여 많은 타입의 연산들 및 명령어들을 실행하기 위해 서로 협력하여 작동할 수 있다는 것이 이해될 것이다.
메모리(1106)는 본 명세서에서 설명된 기능들을 수행할 수 있는 임의 타입의 휘발성(예를 들어, DRAM(dynamic random access memory) 등) 또는 비휘발성 메모리 또는 데이터 스토리지로서 구체화될 수 있다. 휘발성 메모리(volatile memory)는 매체에 의해 저장된 데이터의 상태를 유지하기 위해 전력을 요구하는 스토리지 매체일 수 있다. 휘발성 메모리의 비제한적인 예들은 다양한 타입의 RAM(random access memory), 예컨대 DRAM 또는 SRAM(static random access memory)을 포함할 수 있다. 메모리 모듈에서 사용될 수 있는 하나의 특정 타입의 DRAM은 SDRAM(Synchronous Dynamic Random Access Memory)이다.
예에서, 메모리 디바이스는 NAND 또는 NOR 기술들에 기초한 것들과 같은 블록 어드레싱가능 메모리 디바이스(block addressable memory device)이다. 메모리 디바이스는 3차원 크로스포인트 메모리 디바이스(예를 들어, Intel® 3D XPointTM 메모리), 또는 다른 바이트 어드레싱가능 제자리 기입 비휘발성 메모리 디바이스(byte addressable write-in-place nonvolatile memory device)들을 또한 포함할 수 있다. 메모리 디바이스는 다이 자체 또는 패키징된 메모리 제품을 지칭할 수 있다. 일부 예들에서, 3D 크로스포인트 메모리(예를 들어, Intel® 3D XPointTM 메모리)는 메모리 셀들이 워드 라인들과 비트 라인들의 교차점에 놓이고 개별적으로 어드레싱가능하며 비트 스토리지가 벌크 저항(bulk resistance)의 변화에 기초하는 무트랜지스터 적층가능 크로스 포인트 아키텍처(transistor-less stackable cross point architecture)를 포함할 수 있다. 일부 예들에서, 메모리(1106)의 전부 또는 일부분은 프로세서(1104) 내에 통합될 수 있다. 메모리(1106)는 하나 이상의 애플리케이션과 같은 동작 동안에 사용되는 다양한 소프트웨어 및 데이터, 애플리케이션(들)에 의해 조작되는 데이터, 라이브러리들, 및 드라이버들을 저장할 수 있다.
컴퓨팅 회로망(1102)은 컴퓨팅 회로망(1102)(예를 들어, 프로세서(1104) 또는 메인 메모리(1106)를 가짐) 및 컴퓨팅 회로망(1102)의 다른 컴포넌트들과의 입력/출력 동작들을 용이하게 하는 회로망 또는 컴포넌트들로서 구체화될 수 있는, I/O 서브시스템(1108)을 통해 컴퓨팅 노드(1100)의 다른 컴포넌트들에 통신가능하게 결합된다. 예를 들어, I/O 서브시스템(1108)은 입력/출력 동작들을 용이하게 하기 위한 메모리 제어기 허브들, 입력/출력 제어 허브들, 통합된 센서 허브들, 펌웨어 디바이스들, 통신 링크들(예를 들어, 포인트-투-포인트 링크들, 버스 링크들, 와이어들, 케이블들, 도광체들(light guides), 인쇄 회로 보드 트레이스들 등), 또는 다른 컴포넌트들 및 서브시스템들로서 구체화되거나 그렇지 않으면 이들을 포함할 수 있다. 일부 예들에서, I/O 서브시스템(1108)은 SoC(system-on-a-chip)의 일부분을 형성할 수 있고, 컴퓨팅 회로망(1102)의 프로세서(1104), 메모리(1106), 및 다른 컴포넌트들 중 하나 이상과 함께 컴퓨팅 회로망(1102) 내에 통합될 수 있다.
하나 이상의 예시적인 데이터 스토리지 디바이스(1110)는, 예를 들어, 메모리 디바이스들 및 회로들, 메모리 카드들, 하드 디스크 드라이브들, 솔리드 스테이트 드라이브들, 또는 다른 데이터 스토리지 디바이스들과 같은, 데이터의 단기간 또는 장기간 스토리지를 위해 구성된 임의 타입의 디바이스들로서 구체화될 수 있다. 개별 데이터 스토리지 디바이스들(1110)은 데이터 스토리지 디바이스(1110)에 대한 데이터 및 펌웨어 코드를 저장하는 시스템 파티션을 포함할 수 있다. 개별 데이터 스토리지 디바이스들(1110)은 또한, 예를 들어, 컴퓨팅 노드(1100)의 타입에 의존하여 운영 체제들에 대한 데이터 파일들 및 실행파일들을 저장하는 하나 이상의 운영 체제 파티션을 포함할 수 있다.
통신 회로망(1112)은 컴퓨팅 회로망(1102)과 또 다른 컴퓨팅 디바이스(예를 들어, 구현 에지 컴퓨팅 시스템의 에지 게이트웨이) 사이에 네트워크를 통한 통신을 가능하게 할 수 있는 임의의 통신 회로, 디바이스, 또는 이들의 컬렉션으로서 구체화될 수 있다. 통신 회로망(1112)은 이러한 통신을 달성하기 위해 임의의 하나 이상의 통신 기술(예를 들어, 유선 또는 무선 통신) 및 연관된 프로토콜들(예를 들어, 3GPP 4G 또는 5G 표준과 같은 셀룰러 네트워킹 프로토콜, IEEE 802.11/Wi-Fi®와 같은 무선 로컬 영역 네트워크 프로토콜, 무선 광역 네트워크 프로토콜, Ethernet, Bluetooth®, Bluetooth Low Energy, IEEE 802.15.4 또는 ZigBee®와 같은 IoT 프로토콜, LPWAN(low-power wide-area network) 또는 LPWA(low-power wide-area) 프로토콜들 등)을 사용하도록 구성될 수 있다.
예시적인 통신 회로망(1112)은 HFI(host fabric interface)라고도 지칭될 수 있는 NIC(network interface controller)(1120)를 포함한다. NIC(1120)는 또 다른 컴퓨팅 디바이스(예를 들어, 에지 게이트웨이 노드)와 접속하기 위해 컴퓨팅 노드(1100)에 의해 사용될 수 있는 하나 이상의 애드-인-보드(add-in-board), 도터 카드(daughter card), 네트워크 인터페이스 카드, 제어기 칩, 칩셋, 또는 다른 디바이스로서 구체화될 수 있다. 일부 예들에서, NIC(1120)는 하나 이상의 프로세서를 포함하는 SoC(system-on-a-chip)의 일부로서 구체화되거나, 또는 하나 이상의 프로세서를 또한 포함하는 멀티칩 패키지 상에 포함될 수 있다. 일부 예들에서, NIC(1120)는 둘 다 NIC(1120)에 로컬인 로컬 프로세서(도시되지 않음) 또는 로컬 메모리(도시되지 않음)를 포함할 수 있다. 이러한 예들에서, NIC(1120)의 로컬 프로세서는 본 명세서에 설명된 컴퓨팅 회로망(1102)의 기능들 중 하나 이상을 수행할 수 있다. 부가하여 또는 대안적으로, 이러한 예들에서, NIC(1120)의 로컬 메모리는 보드 레벨, 소켓 레벨, 칩 레벨, 또는 다른 레벨들에서 클라이언트 컴퓨팅 노드의 하나 이상의 컴포넌트 내에 통합될 수 있다.
부가적으로, 일부 예들에서, 각자의 컴퓨팅 노드(1100)는 하나 이상의 주변 디바이스(1114)를 포함할 수 있다. 이러한 주변 디바이스들(1114)은, 컴퓨팅 노드(1100)의 특정 타입에 의존하여, 오디오 입력 디바이스들, 디스플레이, 다른 입력/출력 디바이스들, 인터페이스 디바이스들, 또는 다른 주변 디바이스들과 같은, 컴퓨팅 디바이스 또는 서버에서 발견되는 임의 타입의 주변 디바이스를 포함할 수 있다. 추가 예들에서, 컴퓨팅 노드(1100)는 에지 컴퓨팅 시스템 내의 각자의 에지 컴퓨팅 노드(클라이언트이든, 게이트웨이이든, 또는 집성 노드이든 간에) 또는 유사한 형식의 어플라이언스들, 컴퓨터들, 서브시스템들, 회로망, 또는 다른 컴포넌트들에 의해 구체화될 수 있다.
보다 상세한 예에서, 도 11b는 본 명세서에서 설명된 기법들(예를 들어, 동작들, 프로세스들, 방법들, 방법론들)을 구현하기 위해 에지 컴퓨팅 노드(1150) 내에 존재할 수 있는 컴포넌트들의 예의 블록도를 예시한다. 이 에지 컴퓨팅 노드(1150)는 컴퓨팅 디바이스로서 또는 그의 일부로서(예를 들어, 모바일 디바이스, 기지국, 서버, 게이트웨이 등으로서) 구현될 때 노드(1100)의 각자의 컴포넌트들의 보다 근접한 뷰를 제공한다. 에지 컴퓨팅 노드(1150)는 본 명세서에서 참조된 하드웨어 또는 논리 컴포넌트들의 임의의 조합들을 포함할 수 있고, 그것은 에지 통신 네트워크 또는 그러한 네트워크들의 조합과 함께 사용가능한 임의의 디바이스와 결합되거나 이것을 포함할 수 있다. 컴포넌트들은 에지 컴퓨팅 노드(1150)에 적응된 집적 회로(IC)들, 그의 부분들, 이산 전자 디바이스들, 또는 다른 모듈들, 명령어 세트들, 프로그래머블 로직 또는 알고리즘들, 하드웨어, 하드웨어 가속기들, 소프트웨어, 펌웨어, 또는 이들의 조합으로서, 또는 더 큰 시스템의 섀시 내에 달리 포함된 컴포넌트들로서 구현될 수 있다.
에지 컴퓨팅 디바이스(1150)는 마이크로프로세서, 멀티 코어 프로세서, 멀티스레드형 프로세서(multithreaded processor), 초저 전압 프로세서, 임베디드 프로세서, xPU/DPU/IPU/NPU, 특수 목적 처리 유닛, 특수화된 처리 유닛, 또는 다른 알려진 처리 요소들일 수 있는, 프로세서(1152) 형태의 처리 회로망을 포함할 수 있다. 프로세서(1152)는 프로세서(1152) 및 다른 컴포넌트들이 단일 집적 회로, 또는 단일 패키지, 예컨대 캘리포니아주 산타 클라라의 Intel Corporation으로부터의 EdisonTM 또는 GalileoTM SoC 보드들 내에 형성되는 SoC(system on a chip)의 일부일 수 있다. 예로서, 프로세서(1152)는 QuarkTM, AtomTM, i3, i5, i7, i9, 또는 MCU 클래스 프로세서와 같은, Intel® Architecture CoreTM 기반 CPU 프로세서, 또는 Intel®로부터 입수가능한 또 다른 그러한 프로세서를 포함할 수 있다. 그러나, 캘리포니아주 서니베일의 Advanced Micro Devices, Inc.(AMD®)로부터 입수가능한 것, 캘리포니아주 서니베일의 MIPS Technologies, Inc.로부터의 MIPS® 기반 설계, ARM Holdings, Ltd. 또는 그의 고객, 또는 그들의 면허권자들 또는 사용권자로부터 라이센싱된 ARM® 기반 설계와 같은 임의 수의 다른 프로세서들이 사용될 수 있다. 프로세서들은 Apple® Inc.로부터의 A5-A13 프로세서, Qualcomm® Technologies, Inc.로부터의 SnapdragonTM 프로세서, 또는 Texas Instruments, Inc.로부터의 OMAPTM 프로세서와 같은 유닛들을 포함할 수 있다. 프로세서(1152) 및 수반되는 회로망은 단일 소켓 폼 팩터, 다중 소켓 폼 팩터, 또는 도 11b에 도시된 모든 요소들보다 적은 요소들을 포함하는 제한된 하드웨어 구성들 또는 구성들을 포함하는 다양한 다른 포맷들로 제공될 수 있다.
프로세서(1152)는 인터커넥트(1156)(예를 들어, 버스)를 통해 시스템 메모리(1154)와 통신할 수 있다. 임의 수의 메모리 디바이스들이 주어진 양의 시스템 메모리를 제공하기 위해 사용될 수 있다. 예들로서, 메모리(1154)는 DDR 또는 모바일 DDR 표준들(예를 들어, LPDDR, LPDDR2, LPDDR3, 또는 LPDDR4)과 같은 JEDEC(Joint Electron Devices Engineering Council) 설계에 따른 RAM(random access memory)일 수 있다. 특정 예들에서, 메모리 컴포넌트는 JEDEC에 의해 공포된 DRAM 표준, 예컨대 DDR SDRAM에 대한 JESD79F, DDR2SDRAM에 대한 JESD79-2F, DDR3SDRAM에 대한 JESD79-3F, DDR4SDRAM에 대한 JESD79-4A, LPDDR(Low Power DDR)에 대한 JESD209, LPDDR2에 대한 JESD209-2, LPDDR3에 대한 JESD209-3, 및 LPDDR4에 대한 JESD209-4를 준수할 수 있다. 그러한 표준(및 유사한 표준)은 DDR 기반 표준이라고 지칭될 수 있고, 그러한 표준을 구현하는 스토리지 디바이스의 통신 인터페이스는 DDR 기반 인터페이스라고 지칭될 수 있다. 다양한 구현들에서, 개별 메모리 디바이스들은 SDP(single die package), DDP(dual die package) 또는 Q17P(quad die package)와 같은 임의 수의 상이한 패키지 타입들의 것일 수 있다. 이들 디바이스는, 일부 예들에서, 더 낮은 프로필 솔루션을 제공하기 위해 마더보드 상으로 직접 솔더링될 수 있는 한편, 다른 예들에서 디바이스들은 주어진 커넥터에 의해 마더보드에 다음으로 결합되는 하나 이상의 메모리 모듈로서 구성된다. 다른 타입의 메모리 모듈들, 예를 들어, microDIMM들 또는 MiniDIMM들을 포함하지만 이들로 제한되지는 않는 상이한 종류의 DIMM들(dual inline memory modules)과 같은, 임의 수의 다른 메모리 구현들이 사용될 수 있다.
데이터, 애플리케이션들, 운영 체제들 및 등등과 같은 정보의 영구 스토리지를 제공하기 위해, 스토리지(1158)는 또한 인터커넥트(1156)를 통해 프로세서(1152)에 결합될 수 있다. 예에서, 스토리지(1158)는 SSDD(solid-state disk drive)를 통해 구현될 수 있다. 스토리지(1158)에 사용될 수 있는 다른 디바이스들은 SD(Secure Digital) 카드들, microSD 카드들, XD(eXtreme Digital) 픽처 카드들, 및 그와 유사한 것과 같은 플래시 메모리 카드들, 및 USB(Universal Serial Bus) 플래시 드라이브들을 포함한다. 예에서, 메모리 디바이스는 칼코게나이드 유리를 사용하는 메모리 디바이스들, 다중 문턱 레벨(multi-threshold level) NAND 플래시 메모리, NOR 플래시 메모리, 단일 또는 다중 레벨 PCM(Phase Change Memory), 저항성 메모리, 나노와이어 메모리, FeTRAM(ferroelectric transistor random access memory), 반강유전성 메모리(anti-ferroelectric memory), 멤리스터 기술을 포함하는 MRAM(magnetoresistive random access memory) 메모리, 금속 산화물 기반, 산소 공동(oxygen vacancy) 베이스 및 CB-RAM(conductive bridge Random Access Memory)을 포함하는 저항성 메모리, 또는 STT(spin transfer torque)-MRAM, 스핀트로닉 자기 접합 메모리 기반 디바이스, MTJ(magnetic tunneling junction) 기반 디바이스, DW(Domain Wall) 및 SOT(Spin Orbit Transfer) 기반 디바이스, 사이리스터 기반 메모리 디바이스, 또는 상기한 것들 중 임의의 것의 조합, 또는 다른 메모리일 수 있거나 이것들을 포함할 수 있다.
저전력 구현들에서, 스토리지(1158)는 프로세서(1152)와 연관된 온-다이 메모리 또는 레지스터들일 수 있다. 그러나, 일부 예들에서, 스토리지(1158)는 마이크로 HDD(hard disk drive)를 사용하여 구현될 수 있다. 또한, 그 중에서도, 저항 변화 메모리들, 상 변화 메모리들, 홀로그래픽 메모리들, 또는 화학적 메모리들과 같은, 임의 수의 신기술들이 설명된 기술들에 부가하여 또는 그 대신에 스토리지(1158)를 위해 사용될 수 있다.
컴포넌트들은 인터커넥트(1156)를 통해 통신할 수 있다. 인터커넥트(1156)는 ISA(industry standard architecture), EISA(extended ISA), PCI(peripheral component interconnect), PCIx(peripheral component interconnect extended), PCIe(PCI express), 또는 임의 수의 다른 기술들을 포함한, 임의 수의 기술들을 포함할 수 있다. 인터커넥트(1156)는, 예를 들어, SoC 기반 시스템에서 사용되는 독점적 버스일 수 있다. 그 중에서도, I2C(Inter-Integrated Circuit) 인터페이스, SPI(Serial Peripheral Interface) 인터페이스, 포인트 투 포인트 인터페이스들, 및 전력 버스와 같은, 다른 버스 시스템들이 포함될 수 있다.
인터커넥트(1156)는, 접속된 에지 디바이스들(1162)과의 통신을 위해, 프로세서(1152)를 송수신기(1166)에 결합시킬 수 있다. 송수신기(1166)는, 그 중에서도, Bluetooth® Special Interest Group에 의해 정의되는 바와 같은 BLE(Bluetooth® low energy) 표준, 또는 ZigBee® 표준을 사용하여, IEEE 802.15.4 표준 하에서 2.4GHz(Gigahertz) 송신들과 같은 임의 수의 주파수들 및 프로토콜들을 사용할 수 있다. 특정 무선 통신 프로토콜을 위해 구성된 임의 수의 무선기(radio)들이 접속된 에지 디바이스들(1162)로의 접속들을 위해 사용될 수 있다. 예를 들어, WLAN(wireless local area network) 유닛은 IEEE(Institute of Electrical and Electronics Engineers) 802.11 표준에 따라 Wi-Fi® 통신을 구현하기 위해 사용될 수 있다. 또한, 예를 들어, 셀룰러 또는 다른 무선 광역 프로토콜에 따른 무선 광역 통신이 WWAN(wireless wide area network) 유닛을 통해 발생할 수 있다.
무선 네트워크 송수신기(1166)(또는 다중의 송수신기)는 상이한 범위에서의 통신을 위해 다중의 표준 또는 무선기를 이용하여 통신할 수 있다. 예를 들어, 에지 컴퓨팅 노드(1150)는, BLE(Bluetooth Low Energy)에 기초한 로컬 송수신기, 또는 다른 저전력 무선기를 이용하여, 예를 들어, 약 10 미터 내의 가까운 디바이스들과 통신하여, 전력을 절약할 수 있다. 예를 들어, 약 50 미터 내의, 더 멀리 있는 접속된 에지 디바이스들(1162)은 ZigBee® 또는 다른 중간 전력 무선기들을 통해 도달될 수 있다. 양쪽 통신 기법들은 상이한 전력 레벨들에서 단일 무선기를 통해 발생할 수 있거나, 또는 별개의 송수신기를 통해, 예를 들어, BLE를 사용하는 로컬 송수신기 및 ZigBee®를 사용하는 별개의 메시 송수신기를 통해 발생할 수 있다.
로컬 또는 광역 네트워크 프로토콜들을 통해 클라우드(예를 들어, 에지 클라우드(1195)) 내의 디바이스들 또는 서비스들과 통신하기 위해 무선 네트워크 송수신기(1166)(예를 들어, 무선 송수신기)가 포함될 수 있다. 무선 네트워크 송수신기(1166)는, 그 중에서도, IEEE 802.15.4, 또는 IEEE 802.15.4g 표준들을 따르는 LPWA(low-power wide-area) 송수신기일 수 있다. 에지 컴퓨팅 노드(1150)는 Semtech 및 LoRa Alliance에 의해 개발된 LoRaWANTM(Long Range Wide Area Network)을 이용하여 광역에 걸쳐 통신할 수 있다. 본 명세서에서 설명된 기법들은 이들 기술로만 제한되지 않고, 장거리, 낮은 대역폭 통신, 예컨대 Sigfox, 및 다른 기술들을 구현하는 임의 수의 다른 클라우드 송수신기들과 함께 사용될 수 있다. 또한, IEEE 802.15.4e 규격에 설명된, 시간 슬롯 채널 호핑(time-slotted channel hopping)과 같은, 다른 통신 기술들이 사용될 수 있다.
본 명세서에서 설명된 바와 같이, 무선 네트워크 송수신기(1166)에 대해 언급된 시스템들에 더하여 임의 수의 다른 무선 통신 및 프로토콜들이 사용될 수 있다. 예를 들어, 송수신기(1166)는 고속 통신을 구현하기 위해 확산 스펙트럼(SPA/SAS) 통신을 사용하는 셀룰러 송수신기를 포함할 수 있다. 또한, 네트워크 통신의 제공 및 중속(medium speed) 통신을 위해 Wi-Fi® 네트워크들과 같은 임의 수의 다른 프로토콜들이 사용될 수 있다. 송수신기(1166)는 본 개시내용의 마지막에 추가로 상세하게 논의될, 임의 수의 3GPP(Third Generation Partnership Project) 규격들, 예컨대 LTE(Long Term Evolution) 및 5세대(5G) 통신 시스템들과 양립가능한 무선기들을 포함할 수 있다. 에지 클라우드(1195)의 노드들에, 또는, (예컨대, 메시에서 동작하는) 연결된 에지 디바이스들(1162)과 같은, 다른 디바이스들에 유선 통신을 제공하기 위해 네트워크 인터페이스 제어기(NIC)(1168)가 포함될 수 있다. 유선 통신은 이더넷 연결을 제공할 수 있거나, 많은 것들 중에서도 특히, CAN(Controller Area Network), LIN(Local Interconnect Network), DeviceNet, ControlNet, Data Highway+, PROFIBUS, 또는 PROFINET와 같은 다른 타입의 네트워크들에 기초할 수 있다. 추가적인 NIC(1168), 예를 들어, 이더넷을 통해 클라우드에 대한 통신들을 제공하는 제1 NIC(1168), 및 또다른 타입의 네트워크를 통해 다른 디바이스들에 대한 통신들을 제공하는 제2 NIC(1168)가 제2 네트워크에 대한 접속을 가능하게 하기 위해 포함될 수 있다.
디바이스로부터 또 다른 컴포넌트 또는 네트워크로의 다양한 타입의 적용가능한 통신이 주어지면, 디바이스에 의해 이용되는 적용가능한 통신 회로망은 컴포넌트들(1164, 1166, 1168, 또는 1170) 중 임의의 하나 이상을 포함하거나 이에 의해 구체화될 수 있다. 따라서, 다양한 예들에서, 통신(예를 들어, 수신, 송신 등)을 위한 적용가능한 수단은 그러한 통신 회로망에 의해 구체화될 수 있다.
에지 컴퓨팅 노드(1150)는, 하나 이상의 인공 지능(AI) 가속기, 뉴럴 컴퓨팅 스틱(neural compute stick), 뉴로모픽 하드웨어(neuromorphic hardware), FPGA, GPU들의 배열, xPU들/DPU들/IPU/NPU들의 배열, 하나 이상의 SoC, 하나 이상의 CPU, 하나 이상의 디지털 신호 프로세서, 전용 ASIC, 또는 하나 이상의 특수화 작업을 달성하도록 설계된 다른 형식의 특수화 프로세서들 또는 회로망에 의해 구체화될 수 있는 가속 회로망(1164)를 포함할 수 있거나 또는 이것에 결합될 수 있다. 이들 작업은 AI 프로세싱(머신 학습, 훈련, 추론, 및 분류 동작들을 포함함), 시각 데이터 프로세싱, 네트워크 데이터 프로세싱, 객체 검출, 규칙 분석 등을 포함할 수 있다. 이들 작업은 또한 본 문서의 다른 곳에서 논의된 서비스 관리 및 서비스 동작들을 위한 특정 에지 컴퓨팅 작업들을 포함할 수 있다.
인터커넥트(1156)는 프로세서(1152)를 추가 디바이스들 또는 서브시스템들을 접속하기 위해 사용되는 센서 허브 또는 외부 인터페이스(1170)에 결합할 수 있다. 디바이스들은 가속도계들, 레벨 센서들, 흐름 센서들, 광학 광 센서들, 카메라 센서들, 온도 센서들, 글로벌 내비게이션 시스템(예를 들어, GPS) 센서들, 압력 센서들, 기압 센서들 등과 같은 센서들(1172)을 포함할 수 있다. 허브 또는 인터페이스(1170)는 에지 컴퓨팅 노드(1150)를, 전력 스위치들, 밸브 액추에이터들, 가청 사운드 발생기, 시각적 경고 디바이스, 및 이와 유사한 것과 같은, 액추에이터들(1174)에 연결시키는 데 추가로 사용될 수 있다.
일부 옵션 예들에서, 다양한 입력/출력(I/O) 디바이스들이 에지 컴퓨팅 노드(1150) 내에 존재하거나 그에 연결될 수 있다. 예를 들어, 센서 판독치 또는 액추에이터 위치와 같은, 정보를 보여주기 위해 디스플레이 또는 다른 출력 디바이스(1184)가 포함될 수 있다. 입력을 수용하기 위해 터치 스크린 또는 키패드와 같은 입력 디바이스(1186)가 포함될 수 있다. 출력 디바이스(1184)는, 이진 상태 지시기들(예를 들어, 발광 다이오드(LED)들) 및 다중 문자 시각적 출력들과 같은 단순한 시각적 출력들, 또는 디스플레이 스크린들(예를 들어, 액정 디스플레이(LCD) 스크린들)과 같은 더 복잡한 출력들을 포함하는 임의 수의 형식의 오디오 또는 시각적 디스플레이를 포함할 수 있고, 문자들, 그래픽들, 멀티미디어 객체들 등의 출력이 에지 컴퓨팅 노드(1150)의 동작으로부터 발생되거나 생성된다. 디스플레이 또는 콘솔 하드웨어는, 본 시스템의 맥락에서, 에지 컴퓨팅 시스템의 출력을 제공하고 입력을 수신하기 위해 사용될 수 있다; 에지 컴퓨팅 시스템의 컴포넌트들 또는 서비스들을 관리하고; 에지 컴퓨팅 컴포넌트 또는 서비스의 상태를 식별하고; 또는 임의의 다른 수의 관리 또는 관리 기능들 또는 서비스 사용 사례들을 수행하는 것.
배터리(1176)는 에지 컴퓨팅 노드(1150)에 전력을 공급할 수 있지만, 에지 컴퓨팅 노드(1150)가 고정된 로케이션에 장착되는 예들에서, 그것은 전기 그리드에 결합된 전원을 가질 수 있거나, 또는 배터리는 백업으로서 또는 임시 능력을 위해 사용될 수 있다. 배터리(1176)는 리튬 이온 배터리, 또는, 아연-공기 배터리, 알루미늄-공기 배터리, 리튬-공기 배터리, 및 그와 유사한 것과 같은 금속-공기 배터리일 수 있다.
배터리 모니터/충전기(1178)가, 포함된 경우, 배터리(1176)의 충전 상태(SoCh)를 추적하기 위해 에지 컴퓨팅 노드(1150)에 포함될 수 있다. 배터리 모니터/충전기(1178)는 배터리(1176)의 건강 상태(state of health, SoH) 및 기능 상태(state of function, SoF)와 같은 고장 예측들을 제공하기 위해 배터리(1176)의 다른 파라미터들을 모니터링하기 위해 사용될 수 있다. 배터리 모니터/충전기(1178)는, Linear Technologies의 LTC4020 또는 LTC2990, Phoenix Arizona의 ON Semiconductor로부터의 ADT7488A, 또는 텍사스주 달라스의 Texas Instruments로부터의 UCD90xxx 계열의 IC와 같은, 배터리 모니터링 집적 회로를 포함할 수 있다. 배터리 모니터/충전기(1178)는 배터리(1176)에 대한 정보를 인터커넥트(1156)를 통해 프로세서(1152)에 통신할 수 있다. 배터리 모니터/충전기(1178)는 프로세서(1152)가 배터리(1176)의 전압 또는 배터리(1176)로부터의 전류 흐름을 직접 모니터링할 수 있게 하는 ADC(analog-to-digital) 컨버터를 또한 포함할 수 있다. 송신 주파수, 메시 네트워크 동작, 감지 주파수, 및 그와 유사한 것과 같은 배터리 파라미터들은 에지 컴퓨팅 노드(1150)가 수행할 수 있는 액션들을 결정하기 위해 사용될 수 있다.
전력 블록(1180), 또는 그리드에 결합된 다른 전원이 배터리(1176)를 충전하기 위해 배터리 모니터/충전기(1178)와 결합될 수 있다. 일부 예들에서, 전력 블록(1180)은, 예를 들어, 에지 컴퓨팅 노드(1150) 내의 루프 안테나를 통해 무선으로 전력을 획득하기 위해 무선 전력 수신기로 대체될 수 있다. 그 중에서도, 캘리포니아주 밀피타스 소재의 Linear Technologies로부터의 LTC4020 칩과 같은, 무선 배터리 충전 회로가 배터리 모니터/충전기(1178) 내에 포함될 수 있다. 특정 충전 회로들이 배터리(1176)의 크기, 및 따라서 요구되는 전류에 기초하여 선택될 수 있다. 충전은, 그 중에서도, Airfuel Alliance에 의해 공표된 Airfuel 표준, Wireless Power Consortium에 의해 공표된 Qi 무선 충전 표준, 또는 Alliance for Wireless Power에 의해 공표된 Rezence 충전 표준을 사용하여 수행될 수 있다.
스토리지(1158)는 본 명세서에 설명된 기술들을 구현하기 위해 소프트웨어, 펌웨어, 또는 하드웨어 커맨드들의 형태의 명령어들(1182)을 포함할 수 있다. 이러한 명령어들(1182)이 메모리(1154) 및 스토리지(1158)에 포함된 코드 블록들로서 도시되어 있지만, 코드 블록들 중 임의의 것이, 예를 들어, ASIC(application specific integrated circuit) 내에 내장된 하드와이어드 회로들로 대체될 수 있다는 것이 이해될 수 있다.
예에서, 메모리(1154), 스토리지(1158), 또는 프로세서(1152)를 통해 제공되는 명령어들(1182)은 에지 컴퓨팅 노드(1150)에서 전자적 동작들을 수행하도록 프로세서(1152)에 지시하는 코드를 포함하는 비일시적 머신 판독가능 매체(1160)로서 구체화될 수 있다. 프로세서(1152)는 인터커넥트(1156)를 통해 비일시적 머신 판독가능 매체(1160)에 액세스할 수 있다. 예를 들어, 비일시적 머신 판독가능 매체(1160)는 스토리지(1158)에 대해 설명된 디바이스들에 의해 구체화될 수 있거나 또는 광학 디스크들, 플래시 드라이브들, 또는 임의 수의 다른 하드웨어 디바이스들과 같은 특정 스토리지 유닛들을 포함할 수 있다. 비일시적 머신 판독가능 매체(1160)는, 예를 들어, 위에 묘사된 동작들 및 기능성의 흐름도(들) 및 블록도(들)에 관하여 설명된 바와 같이, 액션들의 특정 시퀀스 또는 흐름을 수행하도록 프로세서(1152)에 지시하는 명령어들을 포함할 수 있다. 본 명세서에 사용되는 바와 같이, 용어들 "머신 판독가능 매체(machine-readable medium)" 및 "컴퓨터 판독가능 매체(computer-readable medium)"는 교환가능하다.
또한 특정 예에서, 프로세서(1152) 상의 명령어들(1182)은 (머신 판독가능 매체(1160)의 명령어들(1182)과 별개로, 또는 그와 조합되어) TEE(trusted execution environment)(1190)의 실행 또는 동작을 구성할 수 있다. 예에서, TEE(1190)는 명령어들의 보안 실행 및 데이터에의 보안 액세스를 위해 프로세서(1152)에 액세스가능한 보호 영역으로서 동작한다. TEE(1190), 및 프로세서(1152) 또는 메모리(1154) 내의 수반되는 보안 영역의 다양한 구현들은, 예를 들어, Intel® SGX(Software Guard Extensions) 또는 ARM® TrustZone® 하드웨어 보안 확장들, Intel® ME(Management Engine), 또는 Intel® CSME(Converged Security Manageability Engine)의 사용을 통해 제공될 수 있다. 보안 경화, 하드웨어 신뢰 루트들(hardware roots-of-trust), 및 신뢰된 또는 보호된 동작들의 다른 양태들이 TEE(1190) 및 프로세서(1152)를 통해 디바이스(1150)에서 구현될 수 있다.
도 12는, 도 12의 예시적인 컴퓨터 판독가능 명령어들(1282)과 같은, 소프트웨어를, 예시적인 프로세서 플랫폼(들)(1200) 또는 접속된 에지 디바이스들과 같은, 하나 이상의 디바이스에 배포하는 예시적인 소프트웨어 배포 플랫폼(1205)을 예시하고 있다. 예시적인 소프트웨어 배포 플랫폼(1205)은 소프트웨어를 저장하고 소프트웨어를 다른 컴퓨팅 디바이스들(예컨대, 제3자들, 또는 접속된 에지 디바이스들)에 송신할 수 있는 임의의 컴퓨터 서버, 데이터 설비, 클라우드 서비스 등에 의해 구현될 수 있다. 예시적인 접속된 에지 디바이스들은 고객들, 클라이언트들, 관리 디바이스들(예컨대, 서버들), 제3자들(예컨대, 소프트웨어 배포 플랫폼(1205)을 소유하거나 운영하는 엔티티의 고객들)일 수 있다. 예시적인 접속된 에지 디바이스들은 상업 또는 가정 자동화 환경들에서 동작할 수 있다. 일부 예들에서, 제3자는 개발자, 판매자, 또는 도 12의 예시적인 컴퓨터 판독가능 명령어들(1282)과 같은 소프트웨어의 라이센서이다. 제3자들은 사용 또는 재판매 또는 서브라이센싱을 위해 소프트웨어를 구매 또는 라이센싱하는 소비자, 사용자, 소매업자, OEM 등일 수 있다. 일부 예들에서, 분산 소프트웨어는 하나 이상의 사용자 인터페이스(UI) 또는 그래픽 사용자 인터페이스(GUI)의 디스플레이로 하여금 서로 지리적으로 또는 논리적으로 분리된 하나 이상의 디바이스(예를 들어, 접속된 에지 디바이스들)(예를 들어, 물 분배 제어(예를 들어, 펌프들), 전기 분배 제어(예를 들어, 릴레이들) 등의 책임을 진 물리적으로 분리된 IoT 디바이스들)를 식별하게 야기한다.
도 12의 도시된 예에서, 소프트웨어 배포 플랫폼(1205)은 하나 이상의 서버 및 하나 이상의 스토리지 디바이스를 포함한다. 스토리지 디바이스들은 도면들에 도시되고 본 명세서에 설명된 예시적인 컴퓨터 판독가능 명령어들에 대응할 수 있는 컴퓨터 판독가능 명령어들(1282)을 저장한다. 예시적인 소프트웨어 배포 플랫폼(1205)의 하나 이상의 서버는, 인터넷 중 임의의 하나 이상 또는 본 명세서에 기술되는 예시적인 네트워크들 중 임의의 것에 대응할 수 있는 네트워크(1210)와 통신 상태에 있다. 일부 예들에서, 하나 이상의 서버는 상업적 트랜잭션의 일부로서 요청 당사자에게 소프트웨어를 송신하라는 요청들에 응답한다. 소프트웨어의 배달, 판매 또는 라이센스에 대한 지불은 소프트웨어 배포 플랫폼의 하나 이상의 서버에 의해 또는 제3자 지불 엔티티를 통해 다뤄질 수 있다. 서버들은 구매자들 또는 라이센서들이 소프트웨어 배포 플랫폼(1205)으로부터 컴퓨터 판독가능 명령어들(1282)을 다운로드하는 것을 가능하게 한다. 예를 들어, 본 명세서에 설명된 예시적인 컴퓨터 판독가능 명령어들에 대응할 수 있는 소프트웨어는 예시적인 프로세서 플랫폼(들)(1200)(예를 들어, 예시적인 접속된 에지 디바이스들)에게 다운로드될 수 있고, 이들은 컴퓨터 판독가능 명령어들(1282)을 실행하여 기법을 구현하게 된다. 일부 예들에서, 소프트웨어 배포 플랫폼(1205)의 하나 이상의 서버는 예시적인 컴퓨터 판독가능 명령어들(1282)의 요청들 및 송신들이 통과해야만 하는 하나 이상의 보안 도메인 또는 보안 디바이스에 통신가능하게 접속된다. 일부 예들에서, 소프트웨어 배포 플랫폼(1205)의 하나 이상의 서버는, 개선들, 패치들, 업데이트들 등이 최종 사용자 디바이스들에서 소프트웨어에 배포되고 적용되는 것을 보장하기 위해, 소프트웨어(예컨대, 도 12의 예시적인 컴퓨터 판독가능 명령어들(1282))에 업데이트들을 주기적으로 제공하거나, 송신하거나, 또는 강제한다.
도 12의 예시된 예에서, 컴퓨터 판독가능 명령어들(1282)은 소프트웨어 배포 플랫폼(1205)의 스토리지 디바이스들 상에 특정 포맷으로 저장된다. 컴퓨터 판독가능 명령어들의 포맷은 특정 코드 언어(예를 들어, 자바, 자바스크립트, 파이썬, C, C#, SQL, HTML 등), 또는 특정 코드 상태(예를 들어, 컴파일링되지 않은 코드(예를 들어, ASCII), 인터프리팅된 코드, 링크된 코드, 실행가능 코드(예를 들어, 바이너리) 등)를 포함하지만, 이에 제한되지는 않는다. 일부 예들에서, 소프트웨어 배포 플랫폼(1205)에 저장된 컴퓨터 판독가능 명령어들(1282)은, 예시적인 프로세서 플랫폼(들)(1200)에 송신될 때, 제1 포맷으로 되어 있다. 일부 예들에서, 제1 포맷은 특정 타입들의 프로세서 플랫폼(들)(1200)이 실행될 수 있는 실행가능 바이너리(executable binary)이다. 그러나, 일부 예들에서, 제1 포맷은 예시적인 프로세서 플랫폼(들)(1200) 상에서의 실행을 가능하게 하기 위해 제1 포맷을 제2 포맷으로 변환할 하나 이상의 준비 태스크를 필요로 하는 컴파일링되지 않은 코드이다. 예를 들어, 수신 프로세서 플랫폼(들)(1200)은 프로세서 플랫폼(들)(1200) 상에서 실행될 수 있는 실행가능 코드를 제2 포맷으로 발생시키기 위해 컴퓨터 판독가능 명령어들(1282)을 제1 포맷으로 컴파일링할 필요가 있을 수 있다. 또 다른 예들에서, 제1 포맷은, 프로세서 플랫폼(들)(1200)에 도달할 시에, 명령어들의 실행을 용이하게 하기 위해 인터프리터에 의해 인터프리팅되는 인터프리팅된 코드이다.
도 13은 실시예에 따른 예시적인 ICN(information centric network)를 도시한다. ICN들은 전통적인 호스트 기반(예를 들어, 어드레스 기반) 통신 네트워크들과는 상이하게 동작한다. ICN은 정보 및/또는 기능들 자체가 호스트들(예를 들어, 정보를 제공하는 머신들) 대신에 네트워크로부터 명명되고 요청되는 네트워킹 패러다임에 대한 포괄적인 용어이다. 인터넷 프로토콜(IP)에서 사용되는 것과 같은 호스트 기반 네트워킹 패러다임에서, 디바이스는 호스트의 위치를 파악하고 호스트로부터 콘텐츠를 요청한다. 네트워크는 패킷 내에 지정된 어드레스에 기초하여 패킷들을 라우팅(예를 들어, 지향)하는 방법을 이해한다. 대조적으로, ICN은 특정 머신에 대한 요청을 포함하지 않고 어드레스들을 사용하지 않는다. 대신에, 콘텐츠를 얻기 위해, 디바이스(1305)(예를 들어, 가입자)는 네트워크 자체로부터 명명된 콘텐츠를 요청한다. 콘텐츠 요청은 관심이라고 불리고 관심 패킷(1330)을 통해 송신될 수 있다. 관심 패킷이 네트워크 요소들(1310, 1315 및 1320)과 같은 네트워크 디바이스들(예를 들어, 네트워크 요소들, 라우터들, 스위치들, 허브들 등)를 순회할 때, 관심의 기록은, 예를 들어, 각각의 네트워크 요소에서 PIT(pending interest table)에 유지된다. 따라서, 네트워크 요소(1310)는 관심 패킷(1330)에 대해 그 PIT(1335) 내에 엔트리를 유지하고, 네트워크 요소(1315)는 그 PIT 내에 엔트리를 유지하며, 네트워크 요소(1320)는 그 PIT 내에 엔트리를 유지한다.
관심 패킷(1330) 내의 명칭과 매칭되는 콘텐츠를 갖는 게시자(1340)와 같은 디바이스와 직면할 때, 그 디바이스(1340)는 관심 패킷(1330)에 응답하여 데이터 패킷(1345)을 전송할 수 있다. 전형적으로, 데이터 패킷(1345)은, 네트워크 요소 PIT들 내에 남겨진 관심 패킷(1330)의 트레이스를 따름으로써 네트워크를 통해 소스(예를 들어, 디바이스(1305))로 되돌려 추적된다. 따라서, 각각의 네트워크 요소에서의 PIT(1335)는 데이터 패킷(1345)이 따라갈 가입자(1305)로의 트레일 백(trail back)을 확립한다.
ICN에서 명명된 데이터를 매칭하는 것은 여러 전략들을 따를 수 있다. 일반적으로, 데이터는 URI(universal resource identifier)에 의해 그런 것처럼 계층적으로 명명된다. 예를 들어, 비디오는 www.somedomain.com 또는 videos 또는 v8675309로 명명될 수 있다. 여기서, 계층구조는 게시자, "www.somedomain.com", 서브 카테고리, "videos", 및 정규 식별 "v8675309"로서 보여질 수 있다. 관심(1330)이 ICN을 순회함에 따라, ICN 네트워크 요소들은 일반적으로 명칭을 최대 정도로 매칭시키려고 시도할 것이다. 따라서, ICN 요소가 "www.somedomain.com 또는 videos" 및 "www.somedomain.com 또는 videos 또는 v8675309" 양쪽에 대한 캐싱된 아이템 또는 루트를 가지는 경우, ICN 요소는 "www.somedomain.com 또는 videos 또는 v8675309"를 특정하는 관심 패킷(1330)에 대해 후자를 매칭시킬 것이다. 예에서, ICN 디바이스에 의한 매칭에서 표현식이 사용될 수 있다. 예를 들어, 관심 패킷은 "www.somedomain.com 또는 videos 또는 v8675*"를 지정할 수 있고, 여기서 '*'는 와일드카드이다. 따라서, 와일드카드 이외의 데이터를 포함하는 임의의 캐싱된 아이템 또는 루트가 매칭될 것이다.
아이템 매칭은 ICN 요소 내에 캐싱된 데이터에 관심(1330)을 매칭하는 것을 수반한다. 따라서, 예를 들어, 관심(1330)에서 명명된 데이터(1345)가 네트워크 요소(1315)에서 캐싱되는 경우, 네트워크 요소(1315)는 데이터(1345)를 네트워크 요소(1310)를 통해 가입자(1305)에게 리턴할 것이다. 그러나, 데이터(1345)가 네트워크 요소(1315)에서 캐싱되지 않는 경우, 네트워크 요소(1315)는 관심(1330)을 (예를 들어, 네트워크 요소(1320)에) 라우팅한다. 라우팅을 용이하게 하기 위해, 네트워크 요소들은 FIB(forwarding information base)(1325)를 사용하여 명명된 데이터를 루트에 대한 인터페이스(예를 들어, 물리적 포트)에 매칭시킬 수 있다. 따라서, FIB(1325)는 전통적인 네트워크 디바이스 상의 라우팅 테이블처럼 동작한다.
예에서, 추가적인 메타데이터가 관심 패킷(1330), 캐싱된 데이터, 또는 (예를 들어, FIB(1325) 내의) 루트에 첨부되어, 추가적인 매칭 레벨을 제공할 수 있다. 예를 들어, 데이터 명칭은 "www.somedomain.com 또는 videos 또는 v8675309"로서 지정될 수 있지만, 또한 버전 번호 - 또는 타임스탬프, 시간 범위, 보증 등을 포함할 수 있다. 이 예에서, 관심 패킷(1330)은 원하는 명칭, 버전 번호, 또는 버전 범위를 지정할 수 있다. 그 후, 매칭은, 제각기 관심 패킷(1330)에 대해 데이터 패킷(1345)으로 응답하거나 또는 관심 패킷(1330)을 포워딩하기 위해 데이터 또는 루트가 관심 패킷(1330)과 매칭되는지에 관한 궁극적 결정에 도달하기 위해, 명칭과 매칭되는 루트들 또는 캐싱된 데이터를 위치파악하고 메타데이터 또는 그와 유사한 것의 추가 비교를 수행할 수 있다.
ICN은 데이터 세그먼트들이 개별적으로 명명되기 때문에 호스트 기반 네트워킹에 비해 장점들을 갖는다. 이는 네트워크 요소가 원본 제작자(original author)(1340)만큼 쉽게 관심(1330)에 응답하여 데이터 패킷(1330)을 제공할 수 있으므로 네트워크 전체에 걸쳐 적극적인 캐싱을 가능하게 한다. 따라서, 네트워크의 동일한 세그먼트가 상이한 디바이스들에 의해 요청된 동일한 데이터의 중복(duplicate)들을 송신할 가능성이 적다.
파인 그레인드(fine grained) 암호화는 많은 ICN 네트워크들의 또 다른 특징이다. 전형적인 데이터 패킷(1345)은 관심 패킷(1330) 내의 명칭과 매칭되는 데이터에 대한 명칭을 포함한다. 게다가, 데이터 패킷(1345)은 요청된 데이터를 포함하고, (예컨대, 생성 시간, 만료 시간, 버전 등에 의해) 유사하게 명명된 데이터를 필터링하기 위한 부가 정보를 포함할 수 있다. 동일한 명칭 하에서 거짓 정보를 제공하는 악의적 엔티티들을 해결하기 위해, 데이터 패킷(1345)은 또한 그의 내용을 게시자 키로 암호화하거나 또는 데이터와 명칭의 암호화 해시를 제공할 수 있다. 따라서, [예컨대, 예상된 게시자(1340)의 인증서로부터] 키를 아는 것은 수신자가 데이터가 그 게시자(1340)로부터 온 것인지를 확인할 수 있게 해준다. 이 기법은 또한 네트워크 전체에 걸쳐 데이터 패킷들(1345)의 적극적인 캐싱을 용이하게 해주는데, 그 이유는 각각의 데이터 패킷(1345)이 자체 포함형(self-contained)이고 안전하기 때문이다. 대조적으로, 많은 호스트 기반 네트워크들은 통신을 보안 처리하기 위해 2개의 호스트 사이의 접속을 암호화하는 것에 의존한다. 이는 접속들이 확립되고 있는 동안 레이턴시들을 증가시킬 수 있고, 네트워크 요소들로부터 데이터를 숨김으로써 데이터 캐싱을 방해할 수 있다.
예시적인 ICN 네트워크들은, CCNx 0.x 및 CCN 1.x에 대한 IETF(Internet Engineering Task Force) 초안 규격들에 명시된 바와 같은 CCN(content centric networking), 및 NDN(named data networking) 기술 보고서 DND-0001에 명시된 바와 같은 NDN을 포함한다.
도 14는 실시예에 따른, ICN에서의 스토리지 노드 모집을 위한 방법(1400)의 예의 흐름도를 도시한다. 방법(1400)의 동작들은 위에서 또는 아래에서 설명되는 것과 같은 계산 하드웨어(예를 들어, 처리 회로망)에 의해 수행된다.
동작(1405)에서, ICN 노드는 스토리지 관심 패킷을 수신한다. 여기서, 스토리지 관심은 다른 ICN 관심들로부터 스토리지 관심을 구분하는 표시를 포함한다. 예에서, 스토리지 관심 패킷은 선택기들의 세트를 포함한다. 여기서, 선택기들의 세트는, 스토리지 관심 패킷에 표시된 데이터에 대한 스토리지 요건을 결정하기 위해 노드들에 의해 이용된다. 예에서, 선택기들의 세트는 플랫폼 요건, 보안 요건, 무결성 요건, 스토리지 요건, 또는 변환 요건을 포함한다. 예에서, 스토리지 요건은 데이터를 지리적 영역에 제한한다. 예에서, 플랫폼 요건은 컴포넌트들의 최소 성능을 집행한다. 예에서, 변환 요건은 데이터에 대한 어떤 변환들이 스토리지 동안 수용가능한지를 정의한다. 예에서, 압축 또는 암호화가 데이터에 대한 변환들이다.
예에서, ICN 노드는 ICN 네트워크의 일부이고, 여기서 ICN 노드는 ICN 네트워크에 합류하기 위해 증명 프로세스를 통과했다. 예에서, 증명 프로세스는, ICN 네트워크의 검증기가 ICN 네트워크의 다른 노드들로부터 증명 증거의 보증(endorsement)들 또는 참조 값들을 수신한 후에 증명 증거를 제공하는 것 및 온보딩되는 것을 포함하여, ICN 네트워크를 플레징(pledging)하는 것을 포함한다.
동작(1410)에서, 스토리지 관심 패킷이 포워딩된다.
동작(1415)에서, 스토리지 관심 패킷에 응답하여 스토리지 데이터 패킷이 수신된다. 여기서, 스토리지 데이터 패킷은 스토리지 데이터 패킷이 캐싱되지 않는다는 표시를 포함한다. 스토리지 데이터 패킷은 스토리지 데이터 패킷을 생성한 노드에 대한 노드 정보를 또한 포함한다. 스토리지 관심 패킷이 선택기들의 세트를 포함한 예에서, 스토리지 데이터 패킷을 생성한 노드는 스토리지 요건들을 충족시킨다.
동작(1420)에서, 스토리지 데이터 패킷은 스토리지 관심 패킷에 대응하는 PIT(pending interest table) 엔트리에 따라 송신된다.
예에서, 방법(1400)의 동작들은 ICN 노드가 스토리지 관심 패킷을 충족시키는 리소스들을 갖는다고 결정하는 것을 포함한다. 여기서, ICN 노드는 ICN 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하고, PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신할 수 있다. 예에서, ICN 노드는, 스토리지 관심 패킷을 수신하는데 이용되는 인터페이스를 통해 스토리지 관심 패킷에서 식별된 데이터에 대한 관심 패킷을 송신한다.
예에서, 방법(1400)의 동작들은 - ICN 노드가 속하는 - 클러스터 내의 노드가 스토리지 관심 패킷을 만족시키는 리소스들을 갖는 것을 결정하는 동작을 포함한다. 여기서, ICN 노드는 클러스터 내의 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하고, PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신할 수 있다. 예에서, ICN 노드는 클러스터 내의 노드들과 주기적으로 통신하여 클러스터 내의 노드에 관한 정보를 포함하는 노드 정보를 획득한다. 예에서, ICN 노드는 클러스터에 대한 스토리지 관심 패킷들 및 스토리지 데이터 패킷들을 조직하는 클러스터 헤드이다.
도 15는 본 명세서에서 논의된 기법들(예를 들어, 방법론들) 중 임의의 하나 이상이 수행될 수 있는 예시적인 머신(1500)의 블록도를 도시한다. 본 명세서에 설명된 바와 같이, 예들은 머신(1500) 내의 로직 또는 다수의 컴포넌트, 또는 메커니즘들을 포함할 수 있거나, 또는 이들에 의해 동작할 수 있다. 회로망(예를 들어, 처리 회로망)은 하드웨어(예를 들어, 단순 회로들, 게이트들, 로직 등)를 포함하는 머신(1500)의 유형 엔티티들에 구현되는 회로들의 컬렉션이다. 회로망 멤버쉽은 시간 경과에 따라 융통성이 있을 수 있다. 회로망들은 동작할 때 특정된 동작들을, 단독으로 또는 조합하여, 수행할 수 있는 멤버들을 포함한다. 예에서, 회로망의 하드웨어는 특정 동작을 완수하도록 불변적으로 설계될 수 있다(예를 들어, 하드와이어드). 예에서, 회로망의 하드웨어는 특정 동작의 명령어들을 인코딩하기 위하여 물리적으로 수정된 머신 판독가능 매체(예를 들어, 불변의 밀집된 입자들의 자기적으로, 전기적으로, 이동가능한 배치 등)를 포함하는 가변적으로 연결된 물리적 컴포넌트들(예를 들어, 실행 유닛들, 트랜지스터들, 단순 회로들 등)을 포함할 수 있다. 물리적 컴포넌트들을 연결할 시에, 하드웨어 구성 성분의 기초적인 전기적 성질들은, 예를 들어, 절연체로부터 전도체로, 또는 그 반대로 변경된다. 명령어들은 임베디드 하드웨어(예를 들어, 실행 유닛들 또는 로딩 메커니즘)가 동작 중에 특정 동작의 부분들을 완수하기 위해 가변 연결들을 통해 하드웨어에서 회로망의 멤버들을 생성할 수 있게 한다. 따라서, 예에서, 머신 판독가능 매체 요소들은 회로망의 일부이거나, 또는 디바이스가 동작하고 있을 때 회로망의 다른 컴포넌트들에 통신가능하게 결합된다. 예에서, 물리적 컴포넌트들 중 임의의 것은 하나보다 많은 회로망의 하나보다 많은 멤버에서 사용될 수 있다. 예를 들어, 동작 하에서, 실행 유닛들은 하나의 시점에서 제1 회로망의 제1 회로에서 사용될 수 있으며, 상이한 시간에 제1 회로망 내의 제2 회로에 의해, 또는 제2 회로망 내의 제3 회로에 의해 재사용될 수 있다. 머신(1500)에 대한 이러한 컴포넌트들의 추가적인 예들이 뒤따른다.
대안적인 실시예들에서, 머신(1500)은 독립형 디바이스로서 동작하거나, 또는 다른 머신들에 접속(예를 들어, 네트워킹)될 수 있다. 네트워킹된 배치에서, 머신(1500)은 서버-클라이언트 네트워크 환경들에서 서버 머신, 클라이언트 머신, 또는 둘 모두의 자격으로 동작할 수 있다. 예에서, 머신(1500)은 P2P(peer-to-peer)(또는 기타 분산형) 네트워크 환경에서 피어 머신으로서 역할을 할 수 있다. 머신(1500)은 PC(personal computer), 태블릿 PC, STB(set-top box), PDA(personal digital assistant), 모바일 폰, 웹 어플라이언스, 네트워크 라우터, 스위치 또는 브릿지, 또는 해당 머신에 의해 취해질 액션들을 지정하는 (순차적 또는 다른 방식의) 명령어들을 실행할 수 있는 임의의 머신일 수 있다. 또한, 단일의 머신만이 예시되어 있지만, 용어 "머신"은, 클라우드 컴퓨팅, SaaS(software as a service), 기타의 컴퓨터 클러스터 구성과 같은, 본 명세서에서 논의된 방법론들 중 임의의 하나 이상을 수행하기 위해 개별적으로 또는 공동으로 명령어의 세트(또는 다중 세트)를 실행하는 머신들의 임의의 컬렉션을 포함하는 것으로 간주되어야 할 것이다.
머신(예를 들어, 컴퓨터 시스템)(1500)은, 하드웨어 프로세서(1502)(예를 들어, CPU(central processing unit), GPU(graphics processing unit), 하드웨어 프로세서 코어, 또는 이들의 임의의 조합), 메인 메모리(1504), 정적 메모리(예를 들어, 펌웨어, 마이크로코드, BIOS(basic-input-output), UEFI(unified extensible firmware interface) 등을 위한 메모리 또는 스토리지)(1506), 및 대용량 스토리지(1508)(예를 들어, 하드 드라이브들, 테이프 드라이브들, 플래시 스토리지, 또는 다른 블록 디바이스들)를 포함할 수 있고, 이들 중 일부 또는 전부는 인터링크(예를 들어, 버스)(1530)를 통해 서로 통신할 수 있다. 머신(1500)은 디스플레이 유닛(1510), 영숫자 입력 디바이스(1512)(예를 들어, 키보드), 및 사용자 인터페이스(UI) 내비게이션 디바이스(1514)(예를 들어, 마우스)를 추가로 포함할 수 있다. 예에서, 디스플레이 유닛(1510), 입력 디바이스(1512) 및 UI 내비게이션 디바이스(1514)는 터치 스크린 디스플레이일 수 있다. 머신(1500)은, 추가적으로, 스토리지 디바이스(예를 들어, 드라이브 유닛)(1508), 신호 생성 디바이스(1518)(예를 들어, 스피커), 네트워크 인터페이스 디바이스(1520), 및 GPS(global positioning system) 센서, 나침반, 가속도계, 또는 다른 센서와 같은 하나 이상의 센서(1516)를 포함할 수 있다. 머신(1500)은, 하나 이상의 주변 디바이스(예를 들어, 프린터, 카드 판독기 등)와 통신하거나, 또는 이를 제어하기 위한 직렬(예를 들어, USB(universal serial bus)), 병렬, 또는 다른 유선 또는 무선(예를 들어, 적외선(IR), NFC(near field communication) 등) 접속과 같은 출력 제어기(1528)를 포함할 수 있다.
프로세서(1502), 메인 메모리(1504), 정적 메모리(1506), 또는 대용량 스토리지(1508)의 레지스터들은, 본 명세서에 설명된 기법들 또는 기능들 중 임의의 하나 이상을 구현하거나 그에 의해 활용되는 데이터 구조들 또는 명령어들(1524)(예를 들어, 소프트웨어)의 하나 이상의 세트가 저장되어 있는 머신 판독가능 매체(1522)일 수 있거나 이것을 포함할 수 있다. 명령어들(1524)은 또한, 머신(1500)에 의한 그 실행 동안에, 완전히 또는 적어도 부분적으로, 프로세서(1502), 메인 메모리(1504), 정적 메모리(1506), 또는 대용량 스토리지(1508)의 레지스터들 중 임의의 것 내에 존재할 수 있다. 예에서, 하드웨어 프로세서(1502), 메인 메모리(1504), 정적 메모리(1506), 또는 대용량 스토리지(1508) 중 하나 또는 임의의 조합이 머신 판독가능 매체(1522)를 구성할 수 있다. 머신 판독가능 매체(1522)가 단일의 매체로서 도시되어 있지만, "머신 판독가능 매체"라는 용어는, 하나 이상의 명령어(1524)를 저장하도록 구성된 단일의 매체 또는 다중의 매체(예를 들어, 중앙집중형 또는 분산형 데이터베이스, 또는 연관된 캐시들 및 서버들)를 포함할 수 있다.
용어 "머신 판독가능 매체"는 머신(1500)에 의한 실행을 위한 명령어들을 저장, 인코딩, 또는 운반할 수 있고 또한 머신(1500)으로 하여금 본 개시내용의 기법들 중 임의의 하나 이상을 수행하게 야기하거나, 또는 그러한 명령어들에 의해 사용되거나 그들과 연관된 데이터 구조들을 저장, 인코딩 또는 운반할 수 있는 임의의 매체를 포함할 수 있다. 비제한적인 머신 판독가능 매체 예들은 솔리드 스테이트 메모리, 광학 매체, 자기 매체, 및 신호(예를 들어, 무선 주파수 신호, 다른 광자 기반 신호, 사운드 신호 등)를 포함할 수 있다. 예에서, 비일시적 머신 판독가능 매체는 불변(예를 들어, 정지) 질량을 갖는 복수의 입자를 갖는 머신 판독가능 매체를 포함하고, 따라서 물질의 조성물이다. 따라서, 비일시적 머신 판독가능 매체는 일시적 전파 신호들을 포함하지 않는 머신 판독가능 매체이다. 비일시적 머신 판독가능 매체의 특정 예들은: 반도체 메모리 디바이스들(예컨대, EPROM(Electrically Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory)) 및 플래시 메모리 디바이스들과 같은, 비휘발성 메모리; 내부 하드 디스크 및 이동식 디스크와 같은 자기 디스크; 자기 광학 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함할 수 있다.
예에서, 머신 판독가능 매체(1522) 상에 저장되거나 다른 방식으로 제공되는 정보는, 명령어들(1524) 자체 또는 명령어들(1524)이 그로부터 도출될 수 있는 포맷과 같은, 명령어들(1524)을 나타낼 수 있다. 명령어들(1524)이 그로부터 도출될 수 있는 이 포맷은 소스 코드, (예를 들어, 압축된 또는 암호화된 형식의) 인코딩된 명령어들, (예를 들어, 다중의 패키지로 스플릿된) 패키징된 명령어들, 또는 그와 유사한 것을 포함할 수 있다. 머신 판독가능 매체(1522) 내의 명령어들(1524)을 나타내는 정보는 본 명세서에서 논의된 동작들 중 임의의 것을 구현하기 위해 처리 회로망에 의해 명령어들이 되도록 처리될 수 있다. 예를 들어, 정보로부터 명령어들(1524)을 도출하는 것(예를 들어, 처리 회로망에 의해 처리하는 것)은 다음을 포함할 수 있다: (예를 들어, 소스 코드, 객체 코드 등으로부터) 컴파일링하는 것, 인터프리팅하는 것, 로딩하는 것, 조직하는 것(예를 들어, 동적으로 또는 정적으로 링크하는 것), 인코딩하는 것, 디코딩하는 것, 암호화하는 것, 암호 해제하는 것, 패키징하는 것, 언패키징하는 것, 또는 달리 정보를 명령어들(1524)이 되도록 조작하는 것.
예에서, 명령어들(1524)의 도출은 머신 판독가능 매체(1522)에 의해 제공되는 일부 중간 또는 전처리된 포맷으로부터 명령어들(1524)을 생성하기 위해 (예를 들어, 처리 회로망에 의한) 정보의 어셈블리, 컴파일링, 또는 인터프리팅을 포함할 수 있다. 정보는, 다중의 부분으로 제공될 때, 조합, 언패킹, 및 수정되어 명령어들(1524)을 생성할 수 있다. 예를 들어, 정보는 하나 또는 수 개의 원격 서버 상의 다중의 압축된 소스 코드 패키지(또는 객체 코드, 또는 바이너리 실행가능 코드 등)에 있을 수 있다. 소스 코드 패키지들은 네트워크를 통해 전송 중일 때 암호화되고 필요한 경우 암호 해독(decrypt)되고, 압축 해제되고, 조립되고(예를 들어, 링크되고), 로컬 머신에서 (예를 들어, 라이브러리, 독립형 실행파일 등이 되도록) 컴파일링 또는 인터프리팅되고, 로컬 머신에 의해 실행될 수 있다.
명령어들(1524)은 다수의 전송 프로토콜(예를 들어, 프레임 릴레이, IP(internet protocol), TCP(transmission control protocol), UDP(user datagram protocol), HTTP(hypertext transfer protocol) 등) 중 임의의 하나를 활용하여 네트워크 인터페이스 디바이스(1520)를 통해 송신 매체를 이용하여 통신 네트워크(1526)를 통해 추가로 송신 또는 수신될 수 있다. 예시적인 통신 네트워크들은, 그 중에서도, LAN(local area network), WAN(wide area network), 패킷 데이터 네트워크(예컨대, 인터넷), LoRa/LoRaWAN, 또는 위성 통신 네트워크들, 모바일 전화 네트워크들(예컨대, 3G, 4G LTE/LTE-A, 또는 5G 표준들을 준수하는 것들과 같은 셀룰러 네트워크들), POTS(Plain Old Telephone) 네트워크들, 및 무선 데이터 네트워크들(예컨대, Wi-Fi®라고 알려진 IEEE(Institute of Electrical and Electronics Engineers) 802.11 계열의 표준들, WiMax®라고 알려진 IEEE 802.16 계열의 표준들, IEEE 802.15.4 계열의 표준들, P2P(peer-to-peer) 네트워크들)을 포함할 수 있다. 예에서, 네트워크 인터페이스 디바이스(1520)는, 통신 네트워크(1526)에 접속하기 위해 하나 이상의 물리적 잭(예를 들어, 이더넷, 동축 또는 전화 잭들) 또는 하나 이상의 안테나를 포함할 수 있다. 예에서, 네트워크 인터페이스 디바이스(1520)는, SIMO(single-input multiple-output), MIMO(multiple-input multiple-output), 또는 MISO(multiple-input single-output) 기법들 중 적어도 하나를 이용하여 무선으로 통신하기 위한 복수의 안테나를 포함할 수 있다. "송신 매체"라는 용어는, 머신(1500)에 의한 실행을 위한 명령어들을 저장, 인코딩, 또는 운반하는 것이 가능한 임의의 무형의(intangible) 매체를 포함하는 것으로 간주되어야 하며, 그러한 소프트웨어의 통신을 용이하게 하기 위한 디지털 또는 아날로그 통신 신호들 또는 다른 무형의 매체를 포함한다. 송신 매체는 머신 판독가능 매체이다.
추가적인 노트들 및 예들
예 1은 ICN(information centric network)에서의 스토리지 노드 모집을 위한 디바이스이고, 디바이스는: 명령어들을 포함하는 메모리; 및 처리 회로망을 포함하고, 처리 회로망은 동작 중에, ICN 노드에서, 스토리지 관심 패킷을 수신하고 - 스토리지 관심 패킷은 다른 ICN 관심들로부터 스토리지 관심을 구분하는 표시를 포함함 -; 스토리지 관심 패킷을 포워딩하고; 스토리지 관심 패킷에 응답하여 스토리지 데이터 패킷을 수신하고 - 스토리지 데이터 패킷은 스토리지 데이터 패킷이 캐싱되지 않는다는 표시를 포함하고, 스토리지 데이터 패킷은 스토리지 데이터 패킷을 생성한 노드에 대한 노드 정보를 포함함 -; 및 스토리지 관심 패킷에 대응하는 PIT(pending interest table) 엔트리에 따라 스토리지 데이터 패킷을 송신하도록 명령어들에 의해 구성된다.
예 1의 주제를 포함하는 예 2에서, 여기서 스토리지 관심 패킷은 선택기들의 세트를 포함하고, 여기서 선택기들의 세트는 스토리지 관심 패킷에 표시된 데이터에 대한 스토리지 요건들을 결정하기 위해 노드들에 의해 사용되고, 여기서 스토리지 데이터 패킷을 생성한 노드는 스토리지 요건들을 충족한다.
예 2의 주제를 포함하는 예 3에서, 여기서 선택기들의 세트는 플랫폼 요건, 보안 요건, 무결성 요건, 스토리지 요건, 또는 변환 요건을 포함한다.
예 3의 주제를 포함하는 예 4에서, 여기서 스토리지 요건은 데이터를 지리적 영역에 제한한다.
예 3 또는 예 4의 주제를 포함하는 예 5에서, 여기서 플랫폼 요건은 컴포넌트들의 최소 성능을 집행한다.
예 3 내지 예 5 중 어느 하나의 주제를 포함하는 예 6에서, 여기서 변환 요건은 데이터에 대한 어느 변환들이 스토리지 동안 수용 가능한지를 정의한다.
예 6의 주제를 포함하는 예 7에서, 여기서 압축 또는 암호화는 데이터에 대한 변환들이다.
예 1 내지 예 7 중 어느 하나의 주제를 포함하는 예 8에서, 여기서 명령어들은, ICN 노드가 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하고; ICN 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하고; 및 PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신하도록 처리 회로망을 구성한다.
예 8의 주제를 포함하는 예 9에서, 여기서 명령어들은, 스토리지 관심 패킷을 수신하는데 이용되는 인터페이스를 통해, 스토리지 관심 패킷에서 식별된 데이터에 대한 관심 패킷을 송신하도록 처리 회로망을 구성한다.
예 1 내지 예 9 중 어느 하나의 주제를 포함하는 예 10에서, 여기서 명령어들은, 클러스터 내의 노드가 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하고 - ICN 노드는 클러스터의 일부임 -; 클러스터 내의 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하고; 및 PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신하도록 처리 회로망을 구성한다.
예 10의 주제를 포함하는 예 11에서, 여기서 명령어들은 클러스터 내의 노드에 관한 정보를 포함하는 노드 정보를 획득하기 위해 클러스터 내의 노드들과 주기적으로 통신하도록 처리 회로망을 구성한다.
예 11의 주제를 포함하는 예 12에서, 여기서 ICN 노드는 클러스터에 대한 스토리지 관심 패킷들 및 스토리지 데이터 패킷들을 조직하도록 배열된 클러스터 헤드이다.
예 1 내지 예 12 중 어느 하나의 주제를 포함하는 예 13에서, 여기서 ICN 노드는 ICN 네트워크의 일부이고, 여기서 ICN 노드는 ICN 네트워크에 합류하기 위한 증명 프로세스를 통과했고, 여기서 증명 프로세스는 증명 증거를 제공하는 것을 포함하여 ICN 네트워크를 플레징(pledging)하는 것; 및 ICN 네트워크의 검증기가 ICN 네트워크의 다른 노드들로부터 증명 증거의 보증들 또는 참조 값들을 수신한 후에 온보딩되는 것을 포함한다.
예 14는 ICN(information centric network)에서의 스토리지 노드 모집을 위한 방법으로서, 방법은: ICN 노드에서, 스토리지 관심 패킷을 수신하는 단계 - 스토리지 관심 패킷은 스토리지 관심을 다른 ICN 관심들과 구분하는 표시를 포함함 -; 스토리지 관심 패킷을 포워딩하는 단계; 스토리지 관심 패킷에 응답하여 스토리지 데이터 패킷을 수신하는 단계 - 스토리지 데이터 패킷은 스토리지 데이터 패킷이 캐싱되지 않는다는 표시를 포함하고, 스토리지 데이터 패킷은 스토리지 데이터 패킷을 생성한 노드에 대한 노드 정보를 포함함 -; 및 스토리지 관심 패킷에 대응하는 PIT(pending interest table) 엔트리에 따라 스토리지 데이터 패킷을 송신하는 단계를 포함한다.
예 14의 주제를 포함하는 예 15에서, 여기서 스토리지 관심 패킷은 선택기들의 세트를 포함하고, 여기서 선택기들의 세트는 스토리지 관심 패킷에 표시된 데이터에 대한 스토리지 요건들을 결정하기 위해 노드들에 의해 사용되고, 여기서 스토리지 데이터 패킷을 생성한 노드는 스토리지 요건들을 충족한다.
예 15의 주제를 포함하는 예 16에서, 여기서 선택기들의 세트는 플랫폼 요건, 보안 요건, 무결성 요건, 스토리지 요건, 또는 변환 요건을 포함한다.
예 16의 주제를 포함하는 예 17에서, 여기서 스토리지 요건은 데이터를 지리적 영역에 제한한다.
예 16 또는 예 17의 주제를 포함하는 예 18에서, 여기서 플랫폼 요건은 컴포넌트들의 최소 성능을 집행한다.
예 16 내지 예 18 중 어느 하나의 주제를 포함하는 예 19에서, 여기서 변환 요건은 데이터에 대한 어느 변환들이 스토리지 동안 수용 가능한지를 정의한다.
예 19의 주제를 포함하는 예 20에서, 여기서 압축 또는 암호화는 데이터에 대한 변환들이다.
예 14 내지 예 20 중 어느 하나의 주제를 포함하는 예 21에서, ICN 노드가 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하는 단계; ICN 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하는 단계; 및 PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신하는 단계를 포함한다.
예 21의 주제를 포함하는 예 22에서, 스토리지 관심 패킷을 수신하는데 이용되는 인터페이스를 통해, 스토리지 관심 패킷에서 식별된 데이터에 대한 관심 패킷을 송신하는 단계를 포함한다.
예 14 내지 예 22 중 어느 하나의 주제를 포함하는 예 23에서, 클러스터 내의 노드가 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하는 단계 - ICN 노드는 클러스터의 일부임 -; 클러스터 내의 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하는 단계; 및 PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신하는 단계를 포함한다.
예 23의 주제를 포함하는 예 24에서, 클러스터 내의 노드에 관한 정보를 포함하는 노드 정보를 획득하기 위해 클러스터 내의 노드들과 주기적으로 통신하는 단계를 포함한다.
예 24의 주제를 포함하는 예 25에서, 여기서 ICN 노드는 클러스터에 대한 스토리지 관심 패킷들 및 스토리지 데이터 패킷들을 조직하도록 배열된 클러스터 헤드이다.
예 14 내지 예 25 중 어느 하나의 주제를 포함하는 예 26에서, 여기서 ICN 노드는 ICN 네트워크의 일부이고, 여기서 ICN 노드는 ICN 네트워크에 합류하기 위해 증명 프로세스를 통과했고, 여기서 증명 프로세스는: 증명 증거를 제공하는 것을 포함하여 ICN 네트워크를 플레징하는 것; 및 ICN 네트워크의 검증기가 ICN 네트워크의 다른 노드들로부터 증명 증거의 보증들 또는 참조 값들을 수신한 후에 온보딩되는 것을 포함한다.
예 27은 ICN(information centric network)에서의 스토리지 노드 모집을 위한 명령어들을 포함하는 적어도 하나의 머신 판독가능 매체로서, 명령어들은, 처리 회로망에 의해 실행될 때, 처리 회로망으로 하여금: ICN 노드에서, 스토리지 관심 패킷을 수신하는 동작 - 스토리지 관심 패킷은 스토리지 관심을 다른 ICN 관심들과 구분하는 표시를 포함함 -; 스토리지 관심 패킷을 포워딩하는 동작; 스토리지 관심 패킷에 응답하여 스토리지 데이터 패킷을 수신하는 동작 - 스토리지 데이터 패킷은 스토리지 데이터 패킷이 캐싱되지 않는다는 표시를 포함하고, 스토리지 데이터 패킷은 스토리지 데이터 패킷을 생성한 노드에 대한 노드 정보를 포함함 -; 및 스토리지 관심 패킷에 대응하는 PIT(pending interest table) 엔트리에 따라 스토리지 데이터 패킷을 송신하는 동작을 포함하는 동작들을 수행하게 야기한다.
예 27의 주제를 포함하는 예 28에서, 여기서 스토리지 관심 패킷은 선택기들의 세트를 포함하고, 여기서 선택기들의 세트는 스토리지 관심 패킷에 표시된 데이터에 대한 스토리지 요건들을 결정하기 위해 노드들에 의해 사용되고, 여기서 스토리지 데이터 패킷을 생성한 노드는 스토리지 요건들을 충족한다.
예 28의 주제를 포함하는 예 29에서, 여기서 선택기들의 세트는 플랫폼 요건, 보안 요건, 무결성 요건, 스토리지 요건, 또는 변환 요건을 포함한다.
예 29의 주제를 포함하는 예 30에서, 여기서 스토리지 요건은 데이터를 지리적 영역에 제한한다.
예 29 또는 예 30의 주제를 포함하는 예 31에서, 여기서 플랫폼 요건은 컴포넌트들의 최소 성능을 집행한다.
예 29 내지 예 31 중 어느 하나의 주제를 포함하는 예 32에서, 여기서 변환 요건은 데이터에 대한 어느 변환들이 스토리지 동안 수용 가능한지를 정의한다.
예 32의 주제를 포함하는 예 33에서, 여기서 압축 또는 암호화는 데이터에 대한 변환들이다.
예 27 내지 예 33 중 어느 하나의 주제를 포함하는 예 34에서, 여기서 동작들은: ICN 노드가 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하는 동작; ICN 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하는 동작; 및 PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신하는 동작을 포함한다.
예 34의 주제를 포함하는 예 35에서, 여기서 동작들은, 스토리지 관심 패킷을 수신하는데 이용되는 인터페이스를 통해, 스토리지 관심 패킷에서 식별된 데이터에 대한 관심 패킷을 송신하는 동작을 포함한다.
예 27 내지 예 35 중 어느 하나의 주제를 포함하는 예 36에서, 여기서 동작들은: 클러스터 내의 노드가 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하는 동작 - ICN 노드는 클러스터의 일부임 -; 클러스터 내의 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하는 동작; 및 PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신하는 동작을 포함한다.
예 36의 주제를 포함하는 예 37에서, 여기서 동작들은 클러스터 내의 노드들에 관한 정보를 포함하는 노드 정보를 획득하기 위해 클러스터 내의 노드들과 주기적으로 통신하는 동작을 포함한다.
예 37의 주제를 포함하는 예 38에서, 여기서 ICN 노드는 클러스터에 대한 스토리지 관심 패킷들 및 스토리지 데이터 패킷들을 조직하도록 배열된 클러스터 헤드이다.
예 27 내지 예 38 중 어느 하나의 주제를 포함하는 예 39에서, 여기서 ICN 노드는 ICN 네트워크의 일부이고, 여기서 ICN 노드는 ICN 네트워크에 합류하기 위해 증명 프로세스를 통과했고, 여기서 증명 프로세스는: 증명 증거를 제공하는 것을 포함하여 ICN 네트워크를 플레징하는 것; 및 ICN 네트워크의 검증기가 ICN 네트워크의 다른 노드들로부터 증명 증거의 보증들 또는 참조 값들을 수신한 후에 온보딩되는 것을 포함한다.
예 40은 ICN(information centric network)에서의 스토리지 노드 모집을 위한 시스템으로서, 시스템은: ICN 노드에서, 스토리지 관심 패킷을 수신하기 위한 수단 - 스토리지 관심 패킷은 스토리지 관심을 다른 ICN 관심들과 구분하는 표시를 포함함 -; 스토리지 관심 패킷을 포워딩하기 위한 수단; 스토리지 관심 패킷에 응답하여 스토리지 데이터 패킷을 수신하기 위한 수단 - 스토리지 데이터 패킷은 스토리지 데이터 패킷이 캐싱되지 않는다는 표시를 포함하고, 스토리지 데이터 패킷은 스토리지 데이터 패킷을 생성한 노드에 대한 노드 정보를 포함함 -; 및 스토리지 관심 패킷에 대응하는 PIT(pending interest table) 엔트리에 따라 스토리지 데이터 패킷을 송신하기 위한 수단을 포함한다.
예 40의 주제를 포함하는 예 41에서, 여기서 스토리지 관심 패킷은 선택기들의 세트를 포함하고, 여기서 선택기들의 세트는 스토리지 관심 패킷에 표시된 데이터에 대한 스토리지 요건들을 결정하기 위해 노드들에 의해 사용되고, 여기서 스토리지 데이터 패킷을 생성한 노드는 스토리지 요건들을 충족한다.
예 41의 주제를 포함하는 예 42에서, 여기서 선택기들의 세트는 플랫폼 요건, 보안 요건, 무결성 요건, 스토리지 요건, 또는 변환 요건을 포함한다.
예 42의 주제를 포함하는 예 43에서, 여기서 스토리지 요건은 데이터를 지리적 영역에 제한한다.
예 42 또는 예 43의 주제를 포함하는 예 44에서, 여기서 플랫폼 요건은 컴포넌트들의 최소 성능을 집행한다.
예 42 내지 예 44 중 어느 하나의 주제를 포함하는 예 45에서, 여기서 변환 요건은 데이터에 대한 어느 변환들이 스토리지 동안 수용 가능한지를 정의한다.
예 45의 주제를 포함하는 예 46에서, 여기서 압축 또는 암호화는 데이터에 대한 변환들이다.
예 40 내지 예 46 중 어느 하나의 주제를 포함하는 예 47에서, ICN 노드가 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하기 위한 수단; ICN 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하기 위한 수단; 및 PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신하기 위한 수단을 포함한다.
예 47의 주제를 포함하는 예 48에서, 스토리지 관심 패킷을 수신하는데 이용되는 인터페이스를 통해, 스토리지 관심 패킷에서 식별된 데이터에 대한 관심 패킷을 송신하기 위한 수단을 포함한다.
예 40 내지 예 48 중 어느 하나의 주제를 포함하는 예 49에서, 클러스터 내의 노드가 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하기 위한 수단 - ICN 노드는 클러스터의 일부임 -; 클러스터 내의 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하기 위한 수단; 및 PIT 엔트리에 따라 제2 스토리지 데이터 패킷을 송신하기 위한 수단을 포함한다.
예 49의 주제를 포함하는 예 50에서, 클러스터 내의 노드들에 관한 정보를 포함하는 노드 정보를 획득하기 위해 클러스터 내의 노드들과 주기적으로 통신하기 위한 수단을 포함한다.
예 50의 주제를 포함하는 예 51에서, 여기서 ICN 노드는 클러스터에 대한 스토리지 관심 패킷들 및 스토리지 데이터 패킷들을 조직하도록 배열된 클러스터 헤드이다.
예 40 내지 예 51 중 어느 하나의 주제를 포함하는 예 52에서, 여기서 ICN 노드는 ICN 네트워크의 일부이고, 여기서 ICN 노드는 ICN 네트워크에 합류하기 위해 증명 프로세스를 통과했고, 여기서 증명 프로세스는: 증명 증거를 제공하는 것을 포함하여 ICN 네트워크를 플레징하기 위한 수단; 및 ICN 네트워크의 검증기가 ICN 네트워크의 다른 노드들로부터 증명 증거의 보증들 또는 참조 값들을 수신한 후에 온보딩되기 위한 수단을 포함한다.
예 53은, 처리 회로망에 의해 실행될 때 처리 회로망으로 하여금 예 1 내지 예 52 중 어느 하나를 구현하는 동작들을 수행하게 야기하는 명령어들을 포함하는 적어도 하나의 머신 판독가능 매체이다.
예 54는 예 1 내지 예 52 중 어느 하나를 구현하는 수단을 포함하는 장치이다.
예 55는 예 1 내지 예 52 중 어느 하나를 구현하는 시스템이다.
예 56은 예 1 내지 예 52 중 어느 하나를 구현하는 방법이다.
위의 상세한 설명은 상세한 설명의 일부를 형성하는 첨부 도면들에 대한 참조들을 포함한다. 도면들은, 예시로서, 실시될 수 있는 특정 실시예들을 보여준다. 이러한 실시예들은 본 명세서에서 "예들(examples)"이라고 또한 지칭된다. 이러한 예들은 도시되거나 설명된 것 이외의 요소들을 포함할 수 있다. 그러나, 본 발명자는, 도시되거나 설명된 요소들만이 제공되는 예들을 또한 고려한다. 더구나, 본 발명자는 본 명세서에서 도시되거나 또는 설명되는 특정 예(또는 그것의 하나 이상의 양태)에 대하여, 또는 다른 예들(또는 그것들의 하나 이상의 양태)에 대하여, 도시되거나 또는 설명되는 그들 요소들의 임의의 조합 또는 치환(permutation)을 사용하는 예들(또는 그것들의 하나 이상의 양태)을 또한 고려한다.
본 문서에서 지칭되는 모든 출판물, 특허, 및 특허 문서들은, 마치 참조에 의해 개별적으로 포함되기나 한 것처럼, 그 전체가 참조에 의해 본 명세서에 포함된다. 본 문서와 참조에 의해 이와 같이 포함된 그들 문서들 사이의 불일치 사용법의 경우에, 포함된 참조문헌(들)에서의 사용은 본 문서의 사용에 대해 보충적인 것으로 간주되어야 한다; 양립할 수 없는 불일치들에 대해서는, 이 문서에서의 사용이 우선한다.
본 문서에서, "하나(a 또는 an)"라는 용어는, 특허 문서들에서 흔한 것으로, "적어도 하나" 또는 "하나 이상"의 임의의 다른 경우들 또는 사용들에 독립적으로, 하나 또는 하나보다 많은 것을 포함하기 위해 사용된다. 이러한 문서에서, 용어 "또는"은, 달리 표시되지 않는 한, "A 또는 B"가 "B가 아닌 A", "A가 아닌 B", 및 "A 및 B"를 포함하도록, 비배타적 또는을 언급하기 위해 사용된다. 첨부된 청구항들에서, 용어 "포함하는(including)" 및 "여기서(in which)"는 각자의 용어 "포함하는(comprising)" 및 "여기서(wherein)"의 평이한 동등어(plain-English equivalents)로서 사용된다. 또한, 다음의 청구항들에서, 용어 "포함하는(including)" 및 "포함하는(comprising)"은 개방적 표현인데(open-ended), 즉, 청구항에서 그러한 용어 후에 나열된 것들에 추가하여 요소들을 포함하는 시스템, 디바이스, 물품, 또는 프로세스는 여전히 그 청구항의 범위 내에 드는 것으로 간주된다. 더욱이, 이하의 청구항들에서, "제1(first)", "제2(second)", 및 "제3(third)" 등의 용어는 단순히 라벨들로서 사용되며, 그 대상에 대한 수치 요건을 부여하려는 의도는 없다.
위의 설명은 제한이 아니라 예시를 위해 의도된 것이다. 예를 들어, 위에서 설명된 예들(또는 그것의 하나 이상의 양태)은 서로 조합되어 이용될 수 있다. 다른 실시예들이, 위의 설명의 검토 시에 본 기술분야의 통상의 기술자에 의해 그런 것처럼 사용될 수 있다. 요약서는 독자로 하여금 기술적 개시내용의 속성을 빠르게 확인하는 것을 허용하기 위한 것이고, 청구항들의 범위 또는 의미를 해석 또는 제한하기 위해 사용되지는 않을 것이라는 이해 하에서 제출된다. 또한, 위의 상세한 설명에서, 본 개시내용을 간소화하기 위해 다양한 특징들이 함께 그룹화될 수 있다. 이는 청구되지 않고 개시된 특징이 임의의 청구항에 필수적인 것으로 의도하는 것으로서 해석해서는 안 된다. 오히려, 발명의 주제는 특정 개시된 실시예의 모든 특징보다 적은 것에 있을 수 있다. 따라서, 이하의 청구항들은 이로써 상세한 설명 내에 포함되는 것이며, 각각의 청구항은 그 자체로 별개의 실시예로서 성립한다. 실시예들의 범위는 첨부된 청구항들을 참조하여 이러한 청구항들에 부여된 균등물들의 전체 범위와 함께 결정되어야 한다.
Claims (25)
- ICN(information centric network)에서의 스토리지 노드 모집을 위한 디바이스로서:
명령어들을 포함하는 메모리; 및
처리 회로망을 포함하고, 상기 처리 회로망은, 동작 중에:
ICN 노드에서, 스토리지 관심 패킷을 수신하고 - 상기 스토리지 관심 패킷은 다른 ICN 관심들로부터 스토리지 관심을 구분하는 표시를 포함함 -;
상기 스토리지 관심 패킷을 포워딩하고;
상기 스토리지 관심 패킷에 응답하여 스토리지 데이터 패킷을 수신하고 - 상기 스토리지 데이터 패킷은 상기 스토리지 데이터 패킷이 캐싱되지 않는다는 표시를 포함하고, 상기 스토리지 데이터 패킷은 상기 스토리지 데이터 패킷을 생성한 노드에 대한 노드 정보를 포함함 -; 및
상기 스토리지 관심 패킷에 대응하는 PIT(pending interest table) 엔트리에 따라 상기 스토리지 데이터 패킷을 송신하도록 상기 명령어들에 의해 구성되는 디바이스. - 제1항에 있어서, 상기 스토리지 관심 패킷은 선택기들의 세트를 포함하고, 상기 선택기들의 세트는 상기 스토리지 관심 패킷에 표시된 데이터에 대한 스토리지 요건들을 결정하기 위해 노드들에 의해 사용되고, 상기 스토리지 데이터 패킷을 생성한 노드는 상기 스토리지 요건들을 충족하는 디바이스.
- 제2항에 있어서, 상기 선택기들의 세트는 플랫폼 요건, 보안 요건, 무결성 요건, 스토리지 요건, 또는 변환 요건을 포함하는 디바이스.
- 제3항에 있어서, 상기 스토리지 요건은 상기 데이터를 지리적 영역에 제한하는 디바이스.
- 제3항에 있어서, 상기 플랫폼 요건은 컴포넌트들의 최소 성능을 집행하는 디바이스.
- 제3항에 있어서, 상기 변환 요건은 상기 데이터에 대한 어느 변환들이 스토리지 동안 수용가능한지를 정의하는 디바이스.
- 제6항에 있어서, 압축 또는 암호화는 상기 데이터에 대한 변환들인 디바이스.
- 제1항에 있어서, 상기 명령어들은,
상기 ICN 노드가 상기 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하고;
상기 ICN 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하고; 및
상기 PIT 엔트리에 따라 상기 제2 스토리지 데이터 패킷을 송신하도록 상기 처리 회로망을 구성하는 디바이스. - 제8항에 있어서, 상기 명령어들은, 상기 스토리지 관심 패킷을 수신하는데 이용되는 인터페이스를 통해, 상기 스토리지 관심 패킷에서 식별된 데이터에 대한 관심 패킷을 송신하도록 상기 처리 회로망을 구성하는 디바이스.
- 제1항에 있어서, 상기 명령어들은,
클러스터 내의 노드가 상기 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하고 - 상기 ICN 노드는 상기 클러스터의 일부임 -;
상기 클러스터 내의 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하고; 및
상기 PIT 엔트리에 따라 상기 제2 스토리지 데이터 패킷을 송신하도록 상기 처리 회로망을 구성하는 디바이스. - ICN(information centric network)에서의 스토리지 노드 모집을 위한 방법으로서:
ICN 노드에서, 스토리지 관심 패킷을 수신하는 단계 - 상기 스토리지 관심 패킷은 다른 ICN 관심들로부터 스토리지 관심을 구분하는 표시를 포함함 -;
상기 스토리지 관심 패킷을 포워딩하는 단계;
상기 스토리지 관심 패킷에 응답하여 스토리지 데이터 패킷을 수신하는 단계 - 상기 스토리지 데이터 패킷은 상기 스토리지 데이터 패킷이 캐싱되지 않는다는 표시를 포함하고, 상기 스토리지 데이터 패킷은 상기 스토리지 데이터 패킷을 생성한 노드에 대한 노드 정보를 포함함 -; 및
상기 스토리지 관심 패킷에 대응하는 PIT(pending interest table) 엔트리에 따라 상기 스토리지 데이터 패킷을 송신하는 단계를 포함하는 방법. - 제11항에 있어서, 상기 스토리지 관심 패킷은 선택기들의 세트를 포함하고, 상기 선택기들의 세트는 상기 스토리지 관심 패킷에 표시된 데이터에 대한 스토리지 요건들을 결정하기 위해 노드들에 의해 사용되고, 상기 스토리지 데이터 패킷을 생성한 노드는 상기 스토리지 요건들을 충족하는 방법.
- 제12항에 있어서, 상기 선택기들의 세트는 플랫폼 요건, 보안 요건, 무결성 요건, 스토리지 요건, 또는 변환 요건을 포함하는 방법.
- 제13항에 있어서, 상기 스토리지 요건은 상기 데이터를 지리적 영역에 제한하는 방법.
- 제13항에 있어서, 상기 플랫폼 요건은 컴포넌트들의 최소 성능을 집행하는 방법.
- 제13항에 있어서, 상기 변환 요건은 상기 데이터에 대한 어느 변환들이 스토리지 동안 수용가능한지를 정의하는 방법.
- 제16항에 있어서, 압축 또는 암호화는 상기 데이터에 대한 변환들인 방법.
- 제11항에 있어서,
상기 ICN 노드가 상기 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하는 단계;
상기 ICN 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하는 단계; 및
상기 PIT 엔트리에 따라 상기 제2 스토리지 데이터 패킷을 송신하는 단계를 포함하는 방법. - 제18항에 있어서, 상기 스토리지 관심 패킷을 수신하는데 이용되는 인터페이스를 통해, 상기 스토리지 관심 패킷에서 식별된 데이터에 대한 관심 패킷을 송신하는 단계를 포함하는 방법.
- 제11항에 있어서,
클러스터 내의 노드가 상기 스토리지 관심 패킷을 충족시키는 리소스들을 갖는 것을 결정하는 단계 - 상기 ICN 노드는 상기 클러스터의 일부임 -;
상기 클러스터 내의 노드에 관한 정보를 포함하는 제2 스토리지 데이터 패킷을 생성하는 단계; 및
상기 PIT 엔트리에 따라 상기 제2 스토리지 데이터 패킷을 송신하는 단계를 포함하는 방법. - 제20항에 있어서, 상기 클러스터 내의 노드들에 관한 정보를 포함하는 노드 정보를 획득하기 위해 상기 클러스터 내의 노드들과 주기적으로 통신하는 단계를 포함하는 방법.
- 제21항에 있어서, 상기 ICN 노드는 상기 클러스터에 대한 스토리지 관심 패킷들 및 스토리지 데이터 패킷들을 조직하도록 배열된 클러스터 헤드인 방법.
- 제11항에 있어서, 상기 ICN 노드는 ICN 네트워크의 일부이고, 상기 ICN 노드는 상기 ICN 네트워크에 합류하기 위해 증명 프로세스를 통과했고, 상기 증명 프로세스는:
증명 증거(attestation evidence)를 제공하는 것을 포함하여 상기 ICN 네트워크를 플레징(pledging)하는 것; 및
상기 ICN 네트워크의 검증기가 상기 ICN 네트워크의 다른 노드들로부터 상기 증명 증거의 보증들 또는 참조 값들을 수신한 후에 온보딩되는 것을 포함하는 방법. - 처리 회로망에 의해 실행될 때, 상기 처리 회로망으로 하여금 제11항 내지 제23항 중 어느 한 항의 방법을 수행하게 야기하는 명령어들을 포함하는 적어도 하나의 머신 판독가능 매체.
- 제11항 내지 제23항 중 어느 한 항의 방법을 수행하는 수단을 포함하는 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/484,134 US20220014450A1 (en) | 2021-09-24 | 2021-09-24 | Storage node recruitment in an information centric network |
US17/484,134 | 2021-09-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230043693A true KR20230043693A (ko) | 2023-03-31 |
Family
ID=79173877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220106089A KR20230043693A (ko) | 2021-09-24 | 2022-08-24 | 정보 중심 네트워크에서의 스토리지 노드 모집 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220014450A1 (ko) |
EP (1) | EP4156654B1 (ko) |
KR (1) | KR20230043693A (ko) |
CN (1) | CN115865950A (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10855757B2 (en) * | 2018-12-19 | 2020-12-01 | At&T Intellectual Property I, L.P. | High availability and high utilization cloud data center architecture for supporting telecommunications services |
US20220245574A1 (en) * | 2019-11-05 | 2022-08-04 | Strong Force Vcn Portfolio 2019, Llc | Systems, Methods, Kits, and Apparatuses for Digital Product Network Systems and Biology-Based Value Chain Networks |
US20230259081A1 (en) * | 2021-04-16 | 2023-08-17 | Strong Force Vcn Portfolio 2019, Llc | Prioritization System for Predictive Model Data Streams |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9276840B2 (en) * | 2013-10-30 | 2016-03-01 | Palo Alto Research Center Incorporated | Interest messages with a payload for a named data network |
US10686702B2 (en) * | 2015-11-06 | 2020-06-16 | Cable Television Laboratories, Inc. | Preemptive caching of content in a content-centric network |
-
2021
- 2021-09-24 US US17/484,134 patent/US20220014450A1/en active Pending
-
2022
- 2022-08-18 CN CN202210991534.XA patent/CN115865950A/zh active Pending
- 2022-08-22 EP EP22191414.6A patent/EP4156654B1/en active Active
- 2022-08-24 KR KR1020220106089A patent/KR20230043693A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
EP4156654A1 (en) | 2023-03-29 |
CN115865950A (zh) | 2023-03-28 |
US20220014450A1 (en) | 2022-01-13 |
EP4156654B1 (en) | 2024-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210144202A1 (en) | Extended peer-to-peer (p2p) with edge networking | |
EP4156654B1 (en) | Storage node recruitment in an information centric network | |
US12058119B2 (en) | Automatic escalation of trust credentials | |
US20210328933A1 (en) | Network flow-based hardware allocation | |
US20230086899A1 (en) | Unlicensed spectrum harvesting with collaborative spectrum sensing in next generation networks | |
US20220116335A1 (en) | End-to-end network slicing (ens) from ran to core network for next generation (ng) communications | |
EP4156642B1 (en) | Information centric network tunneling | |
US20230189319A1 (en) | Federated learning for multiple access radio resource management optimizations | |
US20210014047A1 (en) | Methods, systems, apparatus, and articles of manufacture to manage access to decentralized data lakes | |
EP4156637B1 (en) | Software defined networking with en-route computing | |
US20210320988A1 (en) | Information centric network unstructured data carrier | |
US20220014579A1 (en) | Content injection using a network appliance | |
US20240195789A1 (en) | Cryptographic data processing using a dma engine | |
US20220231964A1 (en) | Nondominant resource management for edge multi-tenant applications | |
US20230319141A1 (en) | Consensus-based named function execution | |
US20220014467A1 (en) | Information centric network routing | |
US20240241960A1 (en) | Trusted provenance authority for cloud native computing platforms | |
US20210328783A1 (en) | Decentralized key generation and management | |
US20230342478A1 (en) | Attestation for bidirectional elastic workload migration in cloud-to-edge settings | |
US20230014064A1 (en) | Decentralized reputation management in a named-function network | |
US20230027152A1 (en) | Upgrade of network objects using security islands | |
US20240155025A1 (en) | Uses of coded data at multi-access edge computing server | |
EP3972295B1 (en) | Geofence-based edge service control and authentication | |
US20220014462A1 (en) | Geographic routing | |
US20210318911A1 (en) | Distributed telemetry platform |