산업기술
Java 9에서 jlink라는 새로운 도구 소개되었다. 모듈을 결합하고 올인 런타임 이미지를 빌드합니다. 한편으로는 전체 32비트 ARM JDK를 PLCnext Control에서 실행할 수 있습니다. 하지만 jlink를 사용하면 및 모듈을 사용하면 Java 애플리케이션에 필요한 리소스를 줄일 수 있습니다. 애플리케이션에 필요한 JDK의 필요한 부분만 포함하는 번들을 생성합니다.
많은 플랫폼에 대한 OpenJDK 바이너리를 찾을 수 있습니다. AdoptOpenJDK에서. 이 가이드에서는 Linux arm32 jdk-12.0.2+10을 선택했습니다. Windows x64 호스트 시스템용 컨트롤러 및 펜던트용. JDK의 다음 위치를 사용하고 있습니다.
C:
---Java
|
+---jdk-12.0.2
| ...
|
---jdk-12-ARM-32bit
...
이 예에서는 Hello World만 인쇄하고 있습니다. 콘솔에. jlink를 사용하려면 이 작은 응용 프로그램을 모듈에 넣어야 합니다. 터미널의 시작점은 "HelloWorld"라는 폴더와 다음과 같은 구조의 src 폴더입니다.
HelloWorld
---src
---de.plcnext.hello
| module-info.java
|
---de
---plcnext
---hello
HelloWorld.java
이것은 HelloWorld.java 파일의 작은 코드 예입니다.
package de.plcnext.hello;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello PLCnext world!");
}
}
그리고 module-info.java는 모듈을 생성하는 데 필요합니다.
module de.pxc.hello { }
소스 폴더를 만든 후 프로젝트를 컴파일합니다. 이를 위해 터미널에서 다음 명령을 사용합니다.
C:Javajdk-12.0.2binjavac.exe -d .modulesde.plcnext.hello .srcde.plcnext.hellodeplcnexthelloHelloWorld.java .srcde.plcnext.hellomodule-info.java
모듈 폴더와 자바 클래스가 생성됩니다:
HelloWorld
---modules
---de.plcnext.hello
| module-info.class
|
---de
---plcnext
---hello
HelloWorld.class
호스트 시스템에서 모듈을 테스트하려면 다음 명령을 사용하여 실행할 수 있습니다.
C:Javajdk-12.0.2binjava.exe --module-path .modules -m de.plcnext.hello/de.plcnext.hello.HelloWorld
Hello PLCnext world!
를 출력해야 합니다. .
이제 우리는 전체 300MB JDK 없이 이것을 우리 장치에 가져오기를 원합니다. 이를 위해 첫 번째 단계에서 추가 매개변수 없이 jlink를 사용하고 있습니다. 그러나 처음에는 추가 모듈이 필요한 정보가 하나 더 필요합니다. 이것은 우리 모듈을 jdeps로 분석하여 알아낼 것입니다.
C:Javajdk-12.0.2binjdeps.exe --module-path ".modules" --add-modules "de.plcnext.hello"
이것은 java.base
이 필요하다는 것을 알려줍니다. 추가로 우리 모듈에. module-path
로 애플리케이션 경로와 대상 플랫폼 JDK의 jmod 경로를 선택합니다. 이 경우 C:Javajdk-12-ARM-32bitjmods
.
이제 jlink 호출은 다음과 같습니다.
C:Javajdk-12.0.2binjlink.exe --module-path ".modules;C:Javajdk-12-ARM-32bitjmods" --add-modules "de.plcnext.hello,java.base" --output HelloWorldjre
결과는 HelloWorldjre
입니다. 약 45MB의 폴더. 이것을 컨트롤러에 복사합니다. 이 예의 경우 /opt/plcnext/projects/java/
. HelloWorldjre 바이너리 폴더의 "java" 파일을 chmod +x java
를 통해 실행 가능하게 만들어야 합니다. 모듈 시작
./java -m de.plcnext.hello/de.plcnext.hello.HelloWorld
Hello PLCnext world!
이전과 같이 애플리케이션과 출력을 실행해야 합니다. . jlink의 몇 가지 추가 매개변수를 사용하면 --strip-debug
을 사용하여 패키지를 훨씬 더 줄일 수 있습니다(이 예에서는 28MB까지). , --no-header-files
, --no-man-pages
및 --compress=2
. 압축은 가장 안전하지만 결국 성능에 해를 끼칠 수 있는 위치입니다.
산업기술
기술적 배경 카프카 Apache Kafka는 데이터 수집, 저장, 처리 및 재배포를 위한 프레임워크입니다. 현재 전 세계 기업에 널리 보급되어 있습니다. Kafka의 공식 웹사이트는 아이디어와 배포 방법에 대한 자세한 정보를 제공합니다. 주요 기능 중 하나는 MQTT와 같은 다른 애플리케이션 및 통신 프로토콜에 대한 수많은 기존 커넥터입니다. MQTT MQTT는 견고성과 작은 설치 공간으로 인해 IoT 통신에 자주 사용되는 경량 TCP 기반 메시징 프로토콜입니다. OASIS 표준 MQTT에 대한 자세한 내용은 웹사이트에서 확인할
PLCnext 기능 앱 easymon 컨트롤의 원격 모니터링을 설정하는 번거로움을 없애줍니다. 클라우드 기반 IoT 서비스의 모든 핵심 부분을 구성하는 대신 모바일 장치에서 모니터링하려는 PLCnext 프로젝트 변수를 선택하고 알림 임계값을 설정하기만 하면 됩니다. 이 구성은 명시적으로 선택한 변수에 대한 데이터만 클라우드로 전파하기 위해 PLCnext에서 실행되는 easymon 구성기에서 발생합니다. PLCnext 저장소는 연결된 PLCnext 컨트롤러에서 기능 확장의 설치 및 관리를 용이하게 하는 데 큰 역할을 합니다.