산업기술
Eclipse Hono는 다수의 이기종 장치를 (클라우드) 백엔드에 연결하기 위한 오픈 소스 프로젝트입니다. Hono는 비즈니스 애플리케이션뿐만 아니라 광범위하게 다른 프로토콜을 사용할 수 있는 장치 간의 균일한 통신을 가능하게 하는 서비스 인터페이스를 정의합니다. 이 프로젝트는 얼마 동안 진행되었으며 몇 년 동안 Bosch IoT Device Management에서 성공적으로 사용되었습니다. 새로운 점은 이제 메시징을 위해 Apache Kafka를 지원한다는 것입니다. 이 기사에서 Hono 사용의 이점과 변경 사항을 소개합니다.
기기에서 오는 데이터는 프로토콜 어댑터에 의해 Hono에서 균일한 메시지 형식으로 변환됩니다. (예:MQTT, HTTP 및 CoAp용이 있음) 메시징 시스템으로 전달됩니다. 비즈니스 애플리케이션은 원격 분석 메시지인 이러한 메시지를 읽습니다. 또는 이벤트 , 메시징 시스템에서 직접(명령 및 제어를 사용할 수도 있습니다. 장치에 메시지를 보내고 응답을 받기 위해). Hono의 일부는 아니지만 외부에서 제공해야 하는 메시징의 경우 지금까지 AMQP 1.0 프로토콜이 사용되었습니다.
버전 1.7부터 Hono는 기술 미리보기로 메시징용 Apache Kafka를 지원합니다. . Hono의 주요 기능은 메시징 시스템과 메시지를 주고받기 위한 API의 정의 및 구현입니다. API 정의는 메시징을 기반으로 하고 해당 속성에 직접 의존하기 때문에 새로운 메시징 시스템을 지원하는 것은 Hono의 근본적인 혁신입니다. Hono의 모든 메시징 API(원격 분석 , 이벤트 및 명령 및 제어 ), Kafka를 기반으로 하는 새로운 사양이 만들어졌으며, 둘 다 프로토콜 어댑터와 비즈니스 응용 프로그램에 대면했습니다. AMQP 기반 API와 최대한 비슷하게 작동하도록 주의를 기울였습니다.
Apache Kafka는 메시지 순서에 따라 특정 보장을 제공하면서 매우 높은 처리량을 위해 설계된 분산 이벤트 스트리밍 플랫폼입니다. 여러 가지 이유로 메시징과 관련된 Hono의 요구 사항에 매우 적합합니다. 주요 이점은 다음과 같습니다.
<울>AMQP 1.0은 피어가 서로 연결하여 메시지를 교환하는 통신 프로토콜입니다. 대조적으로 Kafka 클러스터는 영구 저장소에 대한 데이터 쓰기(및 읽기)를 조정하는 브로커로 구성됩니다. 이 차이는 두 가지 결과를 낳습니다. 첫째, 메시지가 결국 삭제되기 전에 잠시 동안 검색할 수 있습니다. AMQP가 있는 Hono에서 이 효과를 얻으려면 일반적으로 이벤트가 있는 별도의 메시지 브로커를 제공합니다. 비즈니스 응용 프로그램을 일시적으로 사용할 수 없는 경우 메시지 손실을 방지하기 위해 저장됩니다. Kafka를 사용하면 모든 메시지가 저장됩니다. 여기에는 원격 분석 메시지가 포함됩니다(단, 저장 시간은 Kafka 클러스터의 원격 분석 주제 구성에 따라 다름). 둘째, 영구 저장소를 통한 통신은 서로의 송수신 작업을 분리합니다. 현재 연결된 소비자가 없는 경우 프로토콜 어댑터는 더 이상 장치에 다시 보고할 수 없습니다. 대신, 비즈니스 애플리케이션이 언제 메시지를 읽을지 "모르는" 상태로 단순히 메시지를 저장합니다.
Hono를 설치할 때 AMQP 메시징 네트워크 또는 Kafka 클러스터를 배포해야 합니다. 둘 다 사용하도록 Hono를 구성할 수도 있습니다. 메시징 시스템. 그런 다음 AMQP 또는 Kafka를 사용하도록 각 테넌트(장치 및 구성의 하위 집합)를 구성할 수 있습니다. Hono 프로젝트는 AMQP 또는 Kafka 기반 메시징을 사용하여 Hono를 실험할 수 있는 인터넷에서 공개적으로 액세스할 수 있는 샌드박스 환경을 제공합니다.
다음에서는 Hono 샌드박스에서 Apache Kafka 기반 메시징을 사용하는 방법에 대한 작은 예를 안내합니다. 원격 측정 메시지를 HTTP 프로토콜 어댑터로 보낸 다음 Kafka 클러스터에서 읽습니다.
명령줄에서 HTTP 명령을 전송하여 인터넷 사용 장치를 시뮬레이션합니다. 이를 위해 인기 있는 오픈 소스 도구인 curl을 사용합니다. . 현재 컴퓨터에 설치되어 있지 않은 경우 curl 홈페이지의 설치 지침을 참조하십시오. 비즈니스 애플리케이션을 시뮬레이션하기 위해 Hono 다운로드 페이지에서 다운로드할 수 있는 Hono의 명령줄 클라이언트를 사용합니다. Java를 실행하려면 버전 11 이상에 Java가 설치되어 있어야 합니다.
아래에 표시된 명령 중 하나라도 작동하지 않는 경우(해당 지침에서 항상 발생할 수 있음) 자세한 내용은 설명에 포함된 Kafka 메시징 가이드를 참조하세요.
먼저 다른 사용자를 방해하지 않도록 샌드박스에 새 테넌트를 생성해야 합니다. 다음 명령은 임의의 ID로 테넌트를 생성하고 메시징에 Kafka를 사용하도록 구성합니다.
$ curl -i -H "콘텐츠 유형:애플리케이션/json" --data-binary '{ "내선":{ "메시지 유형":"카프카" } }' http://hono.eclipseprojects.io:28080/v1/tenants
출력에는 {"id":"85f63e23-1b78-4156-8500-debcbd1a8d35"}
행을 따라 무언가가 포함되어야 합니다. .
이제 이 ID를 복사하여 다음과 같이 환경 변수로 설정합니다.
$ 수출 MY_TENANT=85f63e23-1b78-4156-8500-debcbd1a8d35테넌트를 위한 장치 등록:
$ curl -i -X POST http://hono.eclipseprojects.io:28080/v1/devices/$MY_TENANT다음과 같이 반환된 ID를 환경 변수로 다시 한 번 제공합니다.
$ 내보내기 MY_DEVICE=4412abe2-f219-4099-ae14-b446604ae9c6마지막으로 기기의 비밀번호를 설정하세요:
$ 내보내기 MY_PWD=my-pwd $ curl -i -X PUT -H "콘텐츠 유형:애플리케이션/json" --data-binary '[{ "유형":"해시된 암호", "인증 ID":"'$MY_DEVICE'", "비밀":[{ "pwd-plain":"'$MY_PWD'" }] }]' http://hono.eclipseprojects.io:28080/v1/credentials/$MY_TENANT/$MY_DEVICE이제 장치를 등록했으므로 메시지를 보내고 받을 수 있습니다.
메시지를 수신하려면 두 번째 터미널 창을 엽니다. Hono 명령줄 클라이언트를 다운로드한 디렉터리로 이동합니다. 이제 다음 명령으로 클라이언트를 시작하고 my-tenant
방금 생성한 테넌트의 ID로:
출력에 다음과 유사한 줄이 포함되어 있으면 클라이언트가 메시지를 받을 준비가 된 것입니다.10:23:01.807 [vert.x-eventloop-thread-0] INFO org.eclipse.hono.cli. app.Receiver - 수신기 [테넌트:85f63e23-1b78-4156-8500-debcbd1a8d35, 모드:all]가 성공적으로 생성되었습니다. 종료하려면 ctrl-c를 누르십시오.
이제 시뮬레이션된 장치에서 Hono로 메시지를 보낼 수 있습니다. 이렇게 하려면 첫 번째 터미널 창으로 다시 전환합니다. 다음 명령은 원격 측정 메시지를 HTTP 프로토콜 어댑터로 보냅니다.
$ curl -i -u $MY_DEVICE@$MY_TENANT:$MY_PWD -H "콘텐츠 유형:애플리케이션/json" --data-binary '{"temp":42}' http://hono.eclipseprojects.io:8080 /원격 측정이제 두 번째 터미널에서 메시지가 인쇄되어야 합니다.
이벤트를 보낼 수도 있습니다. :
$ curl -i -u $MY_DEVICE@$MY_TENANT:$MY_PWD -H "콘텐츠 유형:애플리케이션/json" --data-binary '{"hello":"kafka"}' http://hono.eclipseprojects.io :8080/이벤트이제 장치에서 Hono로 메시지를 보내고 Kafka 클러스터에서 메시지를 받는 데 성공했을 것입니다. 다음 단계로 Hono의 Kafka Messaging Guide에서 더 자세한 예를 살펴볼 수 있습니다. 또한 비즈니스 애플리케이션에서 장치로 명령을 보내고 응답하는 방법을 보여줍니다. 더 깊이 파고 싶다면 Hono의 API 사양에서 찾을 수 있는 Kafka 기반 API의 사양을 살펴보는 것이 좋습니다.
메시징 시스템은 그 위에 인터페이스가 제공되기 때문에 Eclipse Hono의 핵심 기능의 기반입니다. AMQP 1.0과 함께 Kafka를 지원하는 것은 인터페이스가 서로 쉽게 매핑될 수 있도록 하는 데 중점을 둔 Hono의 매우 중대한 변화입니다. Kafka의 주요 이점은 확장성, 주문 보장, 광범위한 채택 및 풍부한 상용 서비스 제공입니다. AMQP를 사용한 메시징의 주요 차이점은 모든 메시지 유형이 중개된다는 것입니다. 즉, 받는 사람의 연결이 잠시 끊어져도 메시지를 전달할 수 있습니다. 또한 통신은 시간 면에서 분리되어 메시지를 받는 사람에서 보낸 사람에게 더 이상 직접 피드백이 불가능합니다. 간단한 실제 예에서 시뮬레이션된 장치에서 Hono 샌드박스로 메시지를 보내고 Kafka 클러스터에서 사용하는 방법을 보여주었습니다.
산업기술
기술적 배경 카프카 Apache Kafka는 데이터 수집, 저장, 처리 및 재배포를 위한 프레임워크입니다. 현재 전 세계 기업에 널리 보급되어 있습니다. Kafka의 공식 웹사이트는 아이디어와 배포 방법에 대한 자세한 정보를 제공합니다. 주요 기능 중 하나는 MQTT와 같은 다른 애플리케이션 및 통신 프로토콜에 대한 수많은 기존 커넥터입니다. MQTT MQTT는 견고성과 작은 설치 공간으로 인해 IoT 통신에 자주 사용되는 경량 TCP 기반 메시징 프로토콜입니다. OASIS 표준 MQTT에 대한 자세한 내용은 웹사이트에서 확인할
스테레오리소그래피는 미세유체 설계에서 볼 수 있는 초미세 기능을 생성할 수 있습니다. 소량의 미세유체 장치 또는 Lab-on-a-Chip을 제조하는 것은 전통적으로 CNC 가공이나 사출 성형을 사용하는 것이 어려웠지만 Protolabs는 이를 위해 3D 프린팅을 통한 미세유체 제조를 제공합니다. Microfluidics는 일반적으로 매우 평평한 표면과 밀링 및 손으로 연마된 금형에서 생산하기 어려운 깨끗하고 얇은/얕은 기능을 필요로 합니다. 이 작은 특징은 쉽게 구분할 수 없으며 신중한 연마가 필요하며 사출 성형 압력은 이젝터