Java ME 8 및 사물 인터넷

임베디드 시스템 은 완전한 장치에 내장 된 컴퓨터 시스템으로, 더 큰 기계 또는 전기 시스템에 전용 기능이 있습니다. 일반적으로 산업 및 소비자 애플리케이션 모두에서 사용되는 임베디드 시스템은 사물 인터넷 (IoT)으로 각광을 받고 있습니다. IoT를 막 시작한 개발자를 위해이 기사는 Oracle의 IoT 플랫폼을 구성하는 기술인 Java ME 8, Java ME Embedded, Java SE Embedded 및 Java Embedded Suite에 대해 자세히 알아볼 수있는 가이드입니다.

1991 년 당시 Xerox의 Palo Alto Research Center (PARC) 책임자 인 Mark Weiser는 다가오는 유비쿼터스 컴퓨팅 시대를 포착하려고 시도했습니다. Weiser는 "가장 심오한 기술이 사라지는 기술"이라는 점을 지적하면서 PARC의 동료들이 컴퓨터를 임베디드 시스템으로 생각하는 새로운 방식을 모색하면서 다양한 사고와 기술 실험을 수행했다고 설명했습니다. 1991 년 호버크라프트처럼 환상적으로 보였던 그들의 비전은 오늘날 빠르게 일반화되고 있습니다.

살이 깨어남 : 그녀는 커피 냄새를 맡는다. 몇 분 전 그녀의 알람 시계는 깨어나 기 전에 불안한 구르는 소리를 듣고 조용히 "커피?"라고 물었고 그녀는 "예"라고 중얼 거렸다. "예"와 "아니오"는 그것이 아는 유일한 단어입니다 ...]

아침에 Sal은 뉴스를 읽습니다. 그녀는 대부분의 사람들과 마찬가지로 여전히 종이 양식을 선호합니다. 그녀는 비즈니스 섹션에서 칼럼니스트의 흥미로운 인용문을 발견합니다. 그녀는 신문의 이름, 날짜, 섹션 및 페이지 번호를 펜으로 닦은 다음 인용문에 동그라미를칩니다. 펜은 그녀의 사무실에 견적을 전송하는 종이에 메시지를 보냅니다 ...]

Sal이 직장에 도착하면 전경 (차 안에서)은 그녀가 주차 공간을 빠르게 찾을 수 있도록 도와줍니다. 그녀가 건물 안으로 들어가면 사무실의 기계가 로그인을 준비합니다.

Weiser의 근무일 오전 시나리오에 포함 된 장치는 센서를 사용하여 인간 사용자의 상호 작용을 추적하고 무선 연결을 통해 응답을 조율합니다. Sal의 침대, 알람 시계 및 커피 메이커가 모두 연결되어 그녀가 롤링하기 전에 첫 번째 커피가 진행되도록합니다. 침대에서. Weiser와 그의 동료들에게 이것은 차분한 컴퓨팅 이었습니다 . 오늘날 우리는 이것을 사물 인터넷 (IoT)이라고 부를 수 있습니다.

PARC에서의 Weiser의 연구와 그의 유비쿼터스 컴퓨팅 이론에 대해 자세히 읽어보십시오. "침착 한 컴퓨팅 시대에 웹 서비스의 품질 보장"(Frank Sommers, JavaWorld, 2001 년 4 월).

IoT 개요

IoT의 정의 특성이 하나 있다면 상호 운용성 또는 여러 장치의 조정입니다. 위의 시나리오에서 관찰 된 것처럼 IoT는 센서를 사용하여 데이터 (이 경우 Sal의 환경에서 상호 작용에 대한 정보) 및 무선 연결을 수집하여 응답을 조정합니다. IoT는 신규 및 기존 하드웨어 플랫폼, 빅 데이터, 클라우드 컴퓨팅, M2M (Machine-to-Machine) 컴퓨팅을 포함한 기술의 융합을 기반으로합니다. API는 이러한 모든 움직이는 부분을 하나로 모으는 필수 접착제입니다.

Java 개발자에게 가장 중요한 것은 Java가 이미 많은 신흥 IoT 기술의 핵심이며 Oracle은 Java 를 IoT를위한 선도적 인 플랫폼 (플랫폼이 아닌 경우)으로 만들기 위해 노력 하고 있습니다. Java ME 8은 Java의 소형 장치 기술에 새로운 생명을 불어 넣어 차별화 된 임베디드 Java 플랫폼 제품군으로 확장합니다.

다음 섹션에서는 Oracle의 IoT 플랫폼을 구성하는 기술을 소개합니다. 링크를 따라 가면 Java ME, Java ME 8 및 Java ME Embedded, Java SE Embedded 및 Java Embedded Suite의 세 가지 임베디드 프레임 워크에 대해 자세히 알아볼 수 있습니다.

자바 ME

Java Micro Edition은 원래 소형 장치 용 애플리케이션 구축과 관련된 제약을 해결하기위한 것입니다. Java SE를 기반으로 한 Java ME (또는 1999 년에 알고 있던 J2ME)는 메모리, 디스플레이 및 전력 용량이 제한된 소형 장치에서 실행되는 Java 애플리케이션을위한 플랫폼이었습니다. 오늘날에는 산업용 제어 장치에서 휴대폰 (특히 피처 폰), 셋톱 박스 및 Blu-ray 플레이어에 이르는 임베디드 시스템을 개발하는 데 사용됩니다.

Java ME에서 작업하는 개발자는 여러 구성, 프로필 및 선택적 패키지 중에서 선택할 수 있습니다.

  • 구성 장치의 광범위한 라이브러리 및 가상 머신 기능의 가장 기본적인 세트를 제공합니다.
  • 프로파일은 장치의 좁은 범위를 지원하는 API들의 집합이다.
  • 옵션 패키지는 기술 관련 API 집합입니다. 무선 메시징 API가 한 예입니다. 선택적 패키지에 대한 자세한 내용은 Oracle의 선택적 패키지 입문서를 확인하십시오.

구성 및 프로필

시간이지나면서 두 가지 구성이 등장했습니다. CLDC (Connected Limited Device Configuration)는 소형 장치 용 구성이고, Connected Device Configuration (CDC)은 스마트 폰 및 셋톱 박스와 같은 더 많은 기능을 갖춘 모바일 장치 용 구성입니다.

Java ME 프로필은 구성의 맨 위에 있으며 특정 응용 프로그램에 사용되는 상위 수준 API를 정의합니다. 예를 들어 MIDP (Mobile Information Device Profile) 는 CLDC 위에 있으며 사용자 인터페이스, 네트워킹 및 영구 저장소 API를 제공합니다. CLDC / MIDP 환경 (게임 등)에서 실행되는 애플리케이션을 MIDlet이라고 합니다.

CLDC / MIDP를 사용한 장치 프로그래밍

"MIDP를 사용한 장치 프로그래밍"(Michael Cymerman)에는 CLDC / MIDP를 처음 사용하는 개발자를위한 실습 데모가 포함되어 있습니다. "Building MIDlet"(Jonathan Knudsen 및 Sing Li) 및 "소형 장치를위한 큰 디자인"(Ben Hui)도 참조하십시오.

CDC의 경우 Foundation, Personal Basis 및 Personal의 세 가지 프로필이 있습니다.

  • Foundation Profile은 리소스가 제한되어 있고 GUI (그래픽 사용자 인터페이스)가 필요하지 않은 저용량 장치에 맞게 조정 된 Java API 집합입니다.
  • Personal Basis Profile은 Foundation Profile API의 상위 집합이며 경량 GUI 요구 사항이있는 장치를 지원합니다. 이 프로필은 경량 GUI 구성 요소를 빌드하기위한 프레임 워크와 함께 제공되며 일부 AWT (Abstract Window Toolkit) 클래스를 지원합니다.
  • 개인 프로파일은 AWT를 기반으로하는 GUI 툴킷으로 개인 기반 프로파일을 확장합니다. 완전한 AWT 지원과 함께 완전한 Java ME 애플리케이션 환경을 제공하며 PDA, 셋톱 박스, 게임 콘솔 등과 같은 고급 장치를위한 것입니다.

CDC / Foundation / Personal Basis / Personal 환경 (예 : Blu-ray 영화 메뉴)에서 실행되는 응용 프로그램을 Xlets라고 합니다.

경량 사용자 인터페이스 툴킷

Java의 AWT (Abstract Window Toolkit)를 사용하여 광범위한 사용자의 호소력을 가진 크로스 플랫폼 모바일 애플리케이션을 만드는 것은 어렵습니다! 글꼴, 레이아웃 및 기타 차이점으로 인해 동일한 응용 프로그램이 다른 장치에서 매우 다르게 보이고 작동합니다. 또한 애니메이션 및 효과와 같은 고급 사용자 인터페이스 기능이 없습니다. 이러한 결함을 인식 한 Sun Microsystems는 MIDP 2.0을 사용하는 CLDC 1.1 및 Personal Basis Profile을 사용하는 CDC를 지원하는 Swing에서 영감을받은 Java ME 용 UI 도구 키트 인 LWUIT (Lightweight User Interface Toolkit) [PDF]를 개발했습니다. Codename One은 원래 LWUIT의 인기있는 오픈 소스 구현입니다.

자바 ME 8

2012 년 말 Oracle은 Java ME 플랫폼 표준의 주요 업데이트를 제공하기위한 야심 찬 프로젝트에 착수했습니다. 두 개의 JSR (Java Specification Request)은 임베디드 장치에 대한 현재 시장 요구 사항을 충족하고 향후 Java 플랫폼 사양을 위해 Java ME를 준비하도록 설계되었습니다. CLDC 1.1.1에 대한 진화적인 업데이트 인 JSR 360 (CLDC 8)은 가상 머신 Java 언어 및 Java SE 8 최신 라이브러리 JSR 361 (Java ME Embedded Profile / MEEP 8)은 Information Module Profile-Next Generation (IMP-NG)을 업데이트합니다.

CLDC 8 및 MEEP 8

CLDC 8은 JSR 139 (CLDC 1.1)를 기반으로하며 핵심 Java ME 가상 머신, 언어 지원, 라이브러리 및 기타 기능을 Java SE 8에 맞게 조정합니다.

  • 가상 머신이 JVM 사양의 버전 2를 준수하도록 업데이트되었습니다.
  • 이제 제네릭, 어설 션, 주석 및 try-with-resources와 같은 최신 Java SE 언어 기능이 지원됩니다.
  • 이제 Collections, NIO 하위 집합 및 Logging API 하위 집합과 같은 새로운 라이브러리가 지원됩니다.
  • 다중 프로토콜 I / O를위한 통합 및 향상된 일반 연결 프레임 워크가 지원됩니다.

MEEP 8은 원본 IMP-NG 사양을 업데이트하여 소형 임베디드 Java 플랫폼을위한 강력하고 유연한 애플리케이션 환경을 제공합니다. 사양은 다음과 같은 기능으로 CLDC 8을 기반으로합니다.

  • 새롭고 가벼운 구성 요소 및 서비스 모델
  • 공유 라이브러리
  • 다중 애플리케이션 동시성, 애플리케이션 간 통신 및 이벤트 시스템
  • 응용 관리
  • 적은 풋 프린트 사용 사례를 해결하기위한 API 옵션

MEEP 8은 임베디드 애플리케이션 개발자에게 광범위한 사용 사례 및 장치에 최적화 된 모듈 식의 강력하고 정교한 솔루션 인 임베디드 솔루션의 개발 및 배포를 용이하게하는 최신 애플리케이션 환경을 제공합니다.

Java ME 8에 대한 추가 정보

Terrence Barr의 상위 10 개 Java ME 8 기능 소개는 2014 년 4 월 릴리스에 포함 된 구성 요소를 식별합니다. 추가 설명서는 Java ME SDK 8 다운로드 페이지를 참조하십시오.

자바 임베디드

Java Embedded는 특히 임베디드 장치를 대상으로하는 세 가지 플랫폼 제품군 인 Java ME 및 Java SE의 파생물입니다. 이러한 각 제품은 매우 특화되고 최적화 된 Java 가상 머신을 제공하고 설치된 소프트웨어 및 서비스를 업데이트하는 수단을 제공합니다 (예 : OSGi 사용). 아래에서는 Java ME Embedded, Java SE Embedded 및 Java Embedded Suite에 대해 설명합니다.

임베디드 시스템 용 Java?

이 기사에서는 다루지 않지만 특정 과제와 기술은 임베디드 프로그래밍과 관련되어 있습니다. 모든 개발자가 Java가 문제 해결에 가장 적합하다는 데 동의하는 것은 아닙니다.

자바 ME 임베디드

Java ME Embedded는 실제로 Java ME Embedded 및 Java ME Embedded Client의 두 가지 버전으로 구성됩니다.

Java ME Embedded는 상시 작동, 헤드리스 (그래픽 / 사용자 인터페이스 없음) 및 연결된 장치를위한 전용 임베디드 기능을 갖춘 강력하고 유연한 애플리케이션 플랫폼을 제공하는 Java ME CLDC 구현입니다. 시스템 설계자와 개발자는 Java ME Embedded를 사용하여 엄격한 시스템 리소스 목표를 충족하면서 Java 언어, 런타임 및 에코 시스템의 이점을 활용하는 정교한 소형 임베디드 솔루션을 만들 수 있습니다. Oracle Java ME Embedded는 메모리가 1MB 미만인 장치에서 사용할 수 있습니다.

Java ME Embedded Client는 리소스가 제한된 장치의 한계에 맞게 축소되고 중저가 임베디드 시스템에 최적화 된 Java ME CDC 구현입니다. 이 제품은 작은 설치 공간을 제공하지만 Java 개발자가 Java SE에 익숙하고 익숙한 Java 언어 및 런타임 기능의 대부분을 여전히 제공합니다. Java ME Embedded Client는 메모리가 10MB 미만이고 그래픽이없는 장치에서 사용할 수 있습니다.

Java ME 8 Embedded 받기

다양한 ARM 장치 용 Java ME Embedded 8 또는 ARM, MIPS 및 x86 환경 용 Java ME Embedded Client 1.1.1을 다운로드 할 수 있습니다. 이 플랫폼을 실행하려면 Java ME SDK 8을 설치해야합니다. Oracle의 Java ME CDC에서 Java SE Embedded 8로 마이그레이션 가이드도 참조하십시오.

자바 SE 임베디드

Java SE Embedded는 임베디드 시스템에 최적화 된 Java SE 플랫폼의 완전한 기능을 구현 한 것입니다. 이 플랫폼의 최신 최신 릴리스 인 버전 8에는 다음 기능이 포함되어 있습니다.

  • 개발자 생산성을 향상시키는 새로운 Java SE 8 언어 기능
  • 맞춤형 공간 최적화 가상 머신을 생성하기위한 컴팩트 프로파일 및 도구
  • Java SE 8 덕분에 이전 버전보다 50 % 향상된 성능
  • GPU 가속 JavaFX를 사용하는 멋진 GUI 애플리케이션
  • 자세한 런타임 모니터링 및 사후 사고 분석을위한 도구

Java SE Embedded 8은 최소 11MB의 스토리지가있는 장치에서 사용할 수 있습니다. ARM, Power Architecture 및 x86 플랫폼 용 Java SE Embedded 8을 다운로드하십시오.

자바 플랫폼 통합 자

오라클은 파트너에게 Java ME Embedded, Java ME Embedded Client 및 Java SE Embedded를 포함한 Java Embedded 제품을 사용자 정의하여 다양한 장치 유형 및 시장 세그먼트에 도달 할 수있는 기능을 제공하는 Java Platform Integrator 프로그램을 도입했습니다.

자바 임베디드 스위트

Java Embedded Suite는 Java Embedded 제품군의 최종 제품입니다. 이 도구 모음은 Java SE Embedded 런타임에 엔터프라이즈 유형 기능을 추가하여 애플리케이션이 다음을 수행 할 수 있도록합니다.

  • Java DB 관계형 데이터베이스에 데이터를 저장합니다.
  • 예를 들어 GlassFish 서블릿 기반 웹 애플리케이션을 호스팅하여 장치 데이터 및 작업에 대한 보안 원격 액세스를 제공합니다.
  • JAX-RS 사양의 Oracle Jersey 구현을 사용하여 RESTful 웹 서비스를 호스팅하고 액세스합니다.

기본적으로 Java Embedded Suite는 Java SE Embedded 7 (Java 애플리케이션 용 런타임 제공)과 Java DB (로컬 콘텐츠를 안전하게 저장하기위한 데이터베이스 제공), GlassFish for Embedded Suite (웹 페이지 용 애플리케이션 서버 제공), Jersey를 결합합니다. 웹 서비스 프레임 워크 (웹 서비스 호스팅 및 액세스 용) 및 Java Embedded 용 이벤트 처리 (실시간 이벤트 처리를 처리하고 선택적 구성 요소 임).

ARM 또는 x86 용 Java Embedded Suite를 다운로드하십시오.

결론

오라클은 IoT를 궁극적 인 목표로 삼아 임베디드 장치 개발 과제를 해결하기 위해 Java ME 및 관련 기술을 포지셔닝했습니다. 이 기사에서는 Java ME에 대한 간단한 입문서를 소개 한 다음 Oracle의 Java ME 8, Java ME Embedded, Java SE Embedded 및 Java Embedded Suite 제품을 소개했습니다.

IoT 기초를 시작하는 데 도움이되는 프로그래밍 자습서 및 모범 사례를 보려면 JavaWorld의 Java ME, MIDP 및 Embedded Java 프로그래밍 페이지를 방문하십시오. 이 전략에서 IoT 및 Java에 대한 오라클의 전략에 대해 자세히 알아 보려면 Oracle Internet of Things 정보 페이지에서 다양한 기사, 비디오, 백서 ​​및 브로셔를 확인하십시오.

이 이야기, "Java ME 8 and the Internet of Things"는 원래 JavaWorld에 의해 출판되었습니다.