Programování

Java ME 8 a internet věcí

Vestavěné systémy jsou počítačové systémy zabudované do kompletních zařízení, jejichž vyhrazené funkce jsou umístěny ve větším mechanickém nebo elektrickém systému. Integrované systémy, které se obvykle používají v průmyslových i spotřebitelských aplikacích, vstupují do centra pozornosti s internetem věcí (IoT). Pro vývojáře, kteří teprve začínají s IoT, je tento článek návodem, jak se dozvědět více o technologiích, které tvoří platformu Oracle IoT: Java ME 8, Java ME Embedded, Java SE Embedded a Java Embedded Suite.

V roce 1991 se Mark Weiser, tehdejší vedoucí výzkumného střediska Palo Alto Research Center (PARC) společnosti Xerox, pokusil zachytit nastávající věk všudypřítomné práce na počítači. S vědomím, že „[nejhlubšími technologiemi jsou ty, které mizí“, Weiser popsal různé myšlenkové a technické experimenty provedené jeho kolegy v PARC, když hledali nový způsob myšlení o počítačích jako vestavěných systémech. Jejich vize, která se v roce 1991 mohla zdát stejně fantastická jako vznášedlo, se dnes rychle stávají běžnějšími:

Sal se probouzí: cítí kávu. Před několika minutami se její budík, upozorněný neklidným válením před probuzením, tiše zeptal: „Káva?“ A zamumlala: „Ano.“ „Ano“ a „ne“ jsou jediná slova, která zná [...]

Na snídani Sal čte zprávy. Stále preferuje papírovou formu, stejně jako většina lidí. Všimla si zajímavého citátu publicisty v obchodní sekci. Otře si perem jméno, datum, část a číslo stránky v novinách a poté zakroužkuje nabídku. Pero odešle zprávu na papír, který předá nabídku do její kanceláře [...]

Jakmile Sal dorazí do práce, přední pohled (v jejím autě) jí pomůže rychle najít parkovací místo. Když vejde do budovy, připraví se stroje v její kanceláři na přihlášení ...

Integrovaná zařízení ve scénáři Weiserova pracovního dne ráno používají senzory ke sledování interakcí lidského uživatele a bezdrátové připojení k řízení reakce: Salina postel, budík a kávovar jsou připojeny, aby zajistily, že její první šálek kávy bude hotový, než se rozjede ven z postele. Pro Weisera a jeho kolegy to bylo klidná práce na počítači; dnes bychom to mohli nazvat internet věcí (IoT).

Přečtěte si více o Weiserově práci v PARC a jeho teorii všudypřítomných výpočtů: „Zajistěte kvalitu webových služeb ve věku klidných výpočtů“ (Frank Sommers, JavaWorld, duben 2001).

Přehled IoT

Pokud existuje jedna definující charakteristika IoT, je to interoperabilita nebo koordinace více zařízení. Jak bylo pozorováno ve výše uvedeném scénáři, IoT používá senzory ke shromažďování dat (v tom případě o interakcích Sal v jejím prostředí) a bezdrátového připojení k orchestraci odpovědi. IoT je postaveno na soutoku technologií, včetně nových a starých hardwarových platforem, velkých dat, cloudových výpočtů a výpočetních strojů (M2M). API jsou nezbytným lepidlem, které spojuje všechny tyto pohyblivé části.

Nejdůležitější pro vývojáře Java je, že Java je klíčem k mnoha nově vznikajícím technologiím IoT a společnost Oracle se zavázala, že z Java udělá vedoucí platformu (pokud the platforma) pro IoT. Java ME 8 vdechuje nový život technologii malých zařízení Java a rozšiřuje ji o diferencovanou řadu zabudovaných platforem Java.

V následujících částech budou představeny technologie, které tvoří platformu IoT společnosti Oracle; podle odkazů se dozvíte více o prostředí Java ME, Java ME 8 a třech integrovaných rámcích: Java ME Embedded, Java SE Embedded a Java Embedded Suite.

Java ME

Java Micro Edition měla původně řešit omezení spojená s vytvářením aplikací pro malá zařízení. Na základě Java SE byla Java ME (nebo J2ME, jak jsme ji znali v roce 1999) platformou pro Java aplikace běžící na malých zařízeních s omezenou pamětí, displejem a výkonovou kapacitou. Dnes se používá k vývoji vestavěných systémů, od průmyslového ovládání přes mobilní telefony (zejména běžné telefony), až po set-top boxy a přehrávače Blu-ray.

Vývojáři pracující v prostředí Java ME si mohou vybrat z několika konfigurací, profilů a volitelných balíčků:

  • A konfigurace poskytuje nejzákladnější sadu knihoven a schopností virtuálních strojů pro širokou škálu zařízení.
  • A profil je sada rozhraní API, která podporují užší škálu zařízení.
  • An volitelný balíček je sada technologicky specifických API. Příkladem je rozhraní Wireless Messaging API. Podívejte se na základní balíček volitelných balíčků Oracle a dozvíte se více o volitelných balíčcích.

Konfigurace a profily

Časem se objevily dvě konfigurace: Konfigurace připojeného omezeného zařízení (CLDC) je konfigurace pro malá zařízení a Konfigurace připojeného zařízení (CDC) je konfigurace pro schopnější mobilní zařízení, jako jsou chytré telefony a set-top boxy.

Profily Java ME sedí na vrcholu konfigurací a definují API vyšší úrovně pro použití v konkrétních aplikacích. Profil mobilního informačního zařízení (MIDP), například, sedí na vrcholu CLDC a poskytuje uživatelské rozhraní, síť a trvalá úložiště API. Aplikace spuštěné v prostředí CLDC / MIDP (například hry) jsou známé jako MIDlety.

Programování zařízení pomocí CLDC / MIDP

„Programování zařízení pomocí MIDP“ (Michael Cymerman) zahrnuje praktickou ukázku pro vývojáře, kteří začínají s CLDC / MIDP. Viz také „Budování MIDletů“ (Jonathan Knudsen a Sing Li) a „Velké návrhy pro malá zařízení“ (Ben Hui).

Pro CDC existují tři profily, Foundation, Personal Basis a Personal:

  • The Foundation Profile je sada Java API vyladěných pro zařízení s nízkou stopou, která mají omezené zdroje a nepotřebují grafické uživatelské rozhraní (GUI).
  • Profil Personal Basis je nadmnožinou API Foundation Profile a podporuje zařízení s odlehčenými požadavky na GUI. Tento profil je dodáván s rámcem pro vytváření odlehčených komponent grafického uživatelského rozhraní a podporuje některé třídy Abstract Window Toolkit (AWT).
  • Osobní profil rozšiřuje profil Personal Basis o sadu nástrojů GUI založenou na AWT. Poskytuje kompletní prostředí aplikace Java ME s plnou podporou AWT a je určen pro zařízení vyšší třídy, jako jsou PDA, set-top boxy, herní konzole atd.

Aplikace, které běží v prostředí CDC / Foundation / Personal Basis / Personal (jako jsou filmové nabídky Blu-ray), jsou známé jako Xlety.

Odlehčená sada uživatelského rozhraní

Používání Java AWT (Abstract Window Toolkit) k vytváření mobilních aplikací napříč platformami se širokou přitažlivostí pro uživatele je náročné! Písmo, rozložení a další rozdíly způsobují, že stejná aplikace vypadá a chová se na různých zařízeních velmi odlišně. Kromě toho chybí pokročilé funkce uživatelského rozhraní, jako jsou animace a efekty. Společnost Sun Microsystems, která tyto nedostatky rozpoznala, vyvinula sadu Lightweight User Interface Toolkit (LWUIT) [PDF], sadu nástrojů uživatelského rozhraní inspirovanou Swingem pro prostředí Java ME, která podporuje CLDC 1.1 s MIDP 2.0 a CDC s profilem Personal Basis. Codename One je populární open source implementace původního LWUIT.

Java ME 8

Na konci roku 2012 se společnost Oracle pustila do ambiciózního projektu, jehož cílem je poskytnout zásadní aktualizaci standardu platformy Java ME. Dva požadavky na specifikaci Java (JSR) byly navrženy tak, aby splňovaly současné tržní požadavky na vestavěná zařízení a připravovaly prostředí Java ME na budoucí specifikace platformy Java: JSR 360 (CLDC 8), evoluční aktualizace CLDC 1.1.1, přinese virtuální stroj, Java jazyk a knihovny aktuální s Java SE 8. JSR 361 (Java ME Embedded Profile / MEEP 8) by aktualizoval Information Module Profile - Next Generation (IMP-NG).

CLDC 8 a MEEP 8

CLDC 8 je založen na JSR 139 (CLDC 1.1) a sladí základní virtuální stroj Java ME, jazykovou podporu, knihovny a další funkce s Java SE 8:

  • Virtuální stroj byl aktualizován, aby vyhovoval verzi 2 specifikace JVM.
  • Novější funkce jazyka Java SE, jako jsou generika, tvrzení, anotace a prostředky vyzkoušení, jsou nyní podporovány.
  • Nové knihovny, jako jsou kolekce, podmnožina NIO a podmnožina protokolovacího API, jsou nyní podporovány.
  • Je podporován konsolidovaný a vylepšený rámec obecného připojení pro více protokolů I / O.

MEEP 8 aktualizuje původní specifikaci IMP-NG tak, aby poskytovala výkonné a flexibilní aplikační prostředí pro malé vestavěné platformy Java. Specifikace vychází z CLDC 8 s následujícími funkcemi:

  • Nový, lehký komponent a model služeb
  • Sdílené knihovny
  • Souběžnost více aplikací, komunikace mezi aplikacemi a systém událostí
  • Správa aplikací
  • Volitelnost API pro řešení případů použití s ​​nízkými nároky na prostor

MEEP 8 poskytuje vývojářům vestavěných aplikací moderní aplikační prostředí, které usnadňuje vývoj a nasazení vestavěných řešení, která jsou modulární, robustní a sofistikovaná řešení, která byla optimalizována pro širokou škálu případů použití a zařízení.

Více o prostředí Java ME 8

Úvod Terrence Barra k jeho top 10 funkcím Java ME 8 identifikuje komponenty obsažené ve verzi z dubna 2014. Další dokumentaci najdete také na stránce stahování Java ME SDK 8.

Java Embedded

Java Embedded je výsledkem prostředí Java ME a Java SE, sady tří platforem, které se konkrétně zaměřují na vestavěná zařízení. Každý z těchto produktů poskytuje velmi specializovaný a optimalizovaný virtuální stroj Java a poskytuje prostředky k aktualizaci nainstalovaného softwaru a služeb (například pomocí OSGi). Níže popisuji Java ME Embedded, Java SE Embedded a Java Embedded Suite.

Java pro vestavěné systémy?

I když to není v tomto článku, specifické problémy a techniky jsou spojeny s vestavěným programováním. Ne všichni vývojáři souhlasí s tím, že Java je pro jejich řešení nejvhodnější.

Java ME Embedded

Java ME Embedded se ve skutečnosti skládá ze dvou verzí: Java ME Embedded a Java ME Embedded Client.

Java ME Embedded je implementace Java ME CLDC, která poskytuje robustní a flexibilní aplikační platformu se specializovanou vestavěnou funkcionalitou pro vždy zapnutá, bezhlavá zařízení (bez grafické / uživatelské rozhraní) a připojená zařízení. Návrháři a vývojáři systémů mohou pomocí Java ME Embedded vytvářet sofistikovaná, malá vestavěná řešení, která využívají výhod jazyka Java, běhového prostředí a ekosystému při plnění přísných cílů systémových prostředků. Oracle Java ME Embedded mohou používat zařízení s méně než jedním megabajtem paměti.

Integrovaný klient Java ME je implementace Java ME CDC, která byla zmenšena tak, aby vyhovovala omezením zařízení omezených zdroji, a optimalizována pro vestavěné systémy nízkého a středního rozsahu. Ačkoli tento produkt nabízí malou stopu, stále poskytuje většinu funkcí jazyka Java a běhových funkcí, které vývojáři prostředí Java znají a jsou zvyklí na prostředí Java SE. Integrovaný klient Java ME může být používán zařízeními s méně než 10 MB paměti a bez grafiky.

Získejte Java ME 8 Embedded

Můžete si stáhnout Java ME Embedded 8 pro různá zařízení ARM nebo Java ME Embedded Client 1.1.1 pro prostředí ARM, MIPS a x86. Ke spuštění této platformy budete muset nainstalovat Java ME SDK 8. Viz také Průvodce migrací Java ME CDC na Java SE Embedded 8.

Java SE Embedded

Java SE Embedded je plnohodnotná implementace platformy Java SE, která byla optimalizována pro vestavěné systémy. Verze 8, aktuální nejnovější vydání této platformy, obsahuje následující funkce:

  • Nové funkce jazyka Java SE 8 pro zlepšení produktivity vývojářů
  • Kompaktní profily a nástroje k vytváření přizpůsobených, prostorově optimalizovaných virtuálních strojů
  • O 50% lepší výkon než předchozí verze díky Java SE 8
  • Skvěle vypadající aplikace s grafickým uživatelským rozhraním a JavaFX s akcelerací GPU
  • Nástroje pro podrobné monitorování běhu a následnou analýzu incidentů

Upozorňujeme, že prostředí Java SE Embedded 8 mohou používat zařízení s minimálně 11 megabajty úložiště. Stáhněte si Java SE Embedded 8 pro platformy ARM, Power Architecture a x86.

Integrátor platformy Java

Společnost Oracle představila program Java Platform Integrator, který poskytuje partnerům možnost přizpůsobit produkty Java Embedded, včetně Java ME Embedded, Java ME Embedded Client a Java SE Embedded, aby dosáhly na různé typy zařízení a tržní segmenty.

Sada Java Embedded Suite

Sada Java Embedded Suite je poslední nabídkou v rodině Java Embedded. Tato sada nástrojů přidává do prostředí Java SE Embedded runtime funkce podnikového typu a umožňuje aplikacím provádět následující:

  • Ukládejte data do relační databáze Java DB.
  • Hostujte například servletské webové aplikace GlassFish, které poskytují bezpečný vzdálený přístup k datům a operacím zařízení.
  • Hostujte a přistupujte k RESTful webovým službám s implementací specifikace JAX-RS společností Oracle.

Java Embedded Suite v zásadě kombinuje Java SE Embedded 7 (která poskytuje běh pro aplikace Java) s Java DB (která poskytuje databázi pro bezpečné ukládání místního obsahu), GlassFish pro Embedded Suite (která poskytuje aplikační server pro webové stránky), Jersey Rámec webových služeb (pro hostování a přístup k webovým službám) a zpracování událostí pro Java Embedded (které zpracovávají zpracování událostí v reálném čase a které jsou volitelnou součástí).

Stáhněte si Java Embedded Suite pro ARM nebo x86.

Závěr

Společnost Oracle postavila prostředí Java ME a související technologie tak, aby vyhověly výzvám vývoje pro vestavěná zařízení, přičemž hlavním cílem je internet věcí. Tento článek představil krátký úvod do prostředí Java ME a poté vás seznámil s produkty Oracle Java ME 8, Java ME Embedded, Java SE Embedded a Java Embedded Suite.

Výukové programy a osvědčené postupy, které vám pomohou začít se základy IoT, najdete na stránkách Java ME, MIDP a Embedded Java v JavaWorld. Chcete-li se dozvědět více o strategii společnosti Oracle pro IoT a prostředí Java v této strategii, podívejte se na různé články, videa, dokumenty white paper a brožury na informační stránce Oracle Internet of Things.

Tento příběh, „Java ME 8 a internet věcí“, původně publikoval JavaWorld.