Java ME 8 и Интернет на нещата

Вградените системи са компютърни системи, вградени в цялостни устройства, чиито специални функции се намират в по-голяма механична или електрическа система. Обикновено използвани както в индустриални, така и в потребителски приложения, вградените системи навлизат в центъра на вниманието с Интернет на нещата (IoT). За разработчиците, които тепърва започват с IoT, тази статия е ръководство за научаване на повече за технологиите, които съставляват IoT платформата на Oracle: Java ME 8, Java ME Embedded, Java SE Embedded и Java Embedded Suite.

През 1991 г. Марк Вайзер, тогава ръководител на изследователския център на Пало Алто (PARC) на Xerox, се опита да улови предстоящата епоха на повсеместните изчисления. Отбелязвайки, че „[най] дълбоките технологии са тези, които изчезват“, Вайзер описва различните мисловни и технически експерименти, проведени от колегите му от PARC, тъй като те търсят нов начин на мислене за компютрите като вградени системи. Тяхната визия, която можеше да изглежда толкова фантастична, колкото кораб на въздушна възглавница през 1991 г., бързо става все по-често срещана днес:

Сал се събужда: тя мирише на кафе. Преди няколко минути нейният будилник, алармиран от неспокойното й търкаляне преди събуждане, тихо беше попитал: „Кафе?“ И тя бе измърморила „Да“. "Да" и "не" са единствените думи, които знае [...]

На закуска Сал чете новините. Тя все още предпочита хартиената форма, както повечето хора. Тя забелязва интересен цитат на колумнист в бизнес раздела. Тя изтрива писалката си върху името, датата, раздела и номера на страницата на вестника и след това кръжи цитата. Писалката изпраща съобщение до хартията, която предава цитата в нейния офис [...]

След като Сал пристигне на работа, предвиждането (в колата й) ѝ помага бързо да намери място за паркиране. Докато влиза в сградата, машините в офиса й се подготвят да я влязат ...

Вградените устройства в сценария на Weiser за работния ден сутрин използват сензори за проследяване на взаимодействията на човешкия потребител и безжична свързаност за организиране на отговор: Леглото на Сал, будилникът и кафеварката са свързани, за да се гарантира, че първата й чаша кафе е в ход, преди да се превърти извън леглото. За Вайзер и неговите колеги това беше спокойно изчисление ; днес можем да го наречем Интернет на нещата (IoT).

Прочетете повече за работата на Weiser в PARC и неговата теория за повсеместните изчисления: „Осигурете качеството на уеб услугите в ерата на спокойните изчисления“ (Франк Сомърс, JavaWorld, април 2001 г.).

Преглед на IoT

Ако има една определяща характеристика на IoT, това е оперативната съвместимост или координацията на множество устройства. Както се наблюдава в горния сценарий, IoT използва сензори за събиране на данни (в този случай за взаимодействията на Сал в нейната среда) и безжична свързаност, за да организира отговор. IoT е изграден върху съвпадение на технологии, включително нови и стари хардуерни платформи, големи данни, облачни изчисления и изчисления машина към машина (M2M). API са необходимото лепило, което обединява всички тези движещи се части.

Най-важното за разработчиците на Java е, че Java е ключова за много от нововъзникващите IoT технологии и Oracle се ангажира да направи Java водеща платформа (ако не и платформата) за IoT. Java ME 8 вдъхва нов живот на технологията за малки устройства на Java, разширявайки я с диференцирана линия от вградени Java платформи.

Следващите раздели ще представят технологиите, които съставляват IoT платформата на Oracle; следвайте връзките, за да научите повече за Java ME, Java ME 8 и трите вградени рамки: Java ME Embedded, Java SE Embedded и Java Embedded Suite.

Java ME

Java Micro Edition първоначално е предназначен да отговори на ограниченията, свързани със създаването на приложения за малки устройства. Въз основа на Java SE, Java ME (или J2ME, както го познавахме през 1999 г.) беше платформата за Java приложения, работещи на малки устройства с ограничен капацитет памет, дисплей и мощност. Днес той се използва за разработване на вградени системи, вариращи от индустриални контроли до мобилни телефони (особено телефони с функции), до декодери и Blu-ray плейъри.

Разработчиците, работещи в Java ME, могат да избират от множество конфигурации, профили и незадължителни пакети:

  • А конфигурация осигурява най-основният набор от библиотеки и виртуални възможности на машината за широк спектър от устройства.
  • А профил е набор от интерфейси, които поддържат по-тесен кръг от устройства.
  • Един допълнителен пакет е набор от технологии, специфични интерфейси. API за безжични съобщения е един пример. Вижте незадължителния пакет за пакети на Oracle, за да научите повече за незадължителните пакети.

Конфигурации и профили

С течение на времето се появиха две конфигурации: Connected Limited Device Configuration (CLDC) е конфигурацията за малки устройства, а Connected Device Configuration (CDC) е конфигурацията за по-способни мобилни устройства като смартфони и телевизионни приемници.

Профилите на Java ME се намират на върха на конфигурациите, като дефинират API на по-високо ниво за използване на определени приложения. Профилът на мобилното информационно устройство (MIDP) , например, се намира на върха на CLDC и осигурява потребителски интерфейс, мрежови и постоянни API за съхранение. Приложенията, които се изпълняват в CLDC / MIDP среда (като игри), са известни като MIDlets .

Програмиране на устройства с CLDC / MIDP

„Програмиране на устройства с MIDP“ (Michael Cymerman) включва практическа демонстрация за разработчици, нови за CLDC / MIDP. Вижте също „Изграждане на MIDlet“ (Jonathan Knudsen и Sing Li) и „Големи проекти за малки устройства“ (Ben Hui).

За CDC има три профила, Foundation, Personal Basis и Personal:

  • Foundation Profile е набор от Java API, настроен за устройства с нисък отпечатък, които имат ограничени ресурси и не се нуждаят от графичен потребителски интерфейс (GUI).
  • Профилът Personal Basis е супер набор от API на Foundation Profile и поддържа устройства с леки GUI изисквания. Този профил се предлага с рамка за изграждане на леки GUI компоненти и поддържа някои класове на абстрактния прозорец (AWT).
  • Личният профил разширява профила на личната основа с GUI инструментариум, базиран на AWT. Той осигурява пълна среда за приложения на Java ME с пълна поддръжка на AWT и е предназначен за устройства от по-висок клас като PDA устройства, декодери, игрови конзоли и т.н.

Приложенията, които се изпълняват в CDC / Foundation / Personal Basis / Personal среда (като менюта на Blu-ray филми), са известни като Xlets .

Лек набор от инструменти за потребителски интерфейс

Използването на Java AWT (Abstract Window Toolkit) за създаване на междуплатформени мобилни приложения с широка потребителска привлекателност е предизвикателство! Шрифтът, оформлението и други разлики карат едно и също приложение да изглежда и да се държи много различно на различни устройства. Освен това липсват разширени възможности на потребителския интерфейс като анимация и ефекти. Разпознавайки тези недостатъци, Sun Microsystems разработи Лекия набор от инструменти за потребителски интерфейс (LWUIT) [PDF], вдъхновен от Swing набор от потребителски интерфейси за Java ME, който поддържа CLDC 1.1 с MIDP 2.0 и CDC с профил за лична основа. Codename One е популярна реализация с отворен код на оригиналния LWUIT.

Java ME 8

В края на 2012 г. Oracle предприе амбициозен проект за доставяне на голяма актуализация на стандарта Java ME платформа. Две заявки за спецификации на Java (JSR) са проектирани да отговорят на текущите пазарни изисквания за вградени устройства и да подготвят Java ME за бъдещите спецификации на платформата на Java: JSR 360 (CLDC 8), еволюционна актуализация на CLDC 1.1.1, ще доведе до виртуалната машина, Java език и библиотеки, актуализирани с Java SE 8. JSR 361 (Java ME Embedded Profile / MEEP 8) ще актуализира профила на информационния модул - следващо поколение (IMP-NG).

CLDC 8 и MEEP 8

CLDC 8 се основава на JSR 139 (CLDC 1.1) и подравнява основната Java ME виртуална машина, езикова поддръжка, библиотеки и други функции с Java SE 8:

  • Виртуалната машина е актуализирана, за да отговаря на версия 2 на спецификацията JVM.
  • Вече се поддържат по-нови функции на езика Java SE като генерични продукти, твърдения, анотации и опити с ресурси.
  • Вече се поддържат нови библиотеки като Collections, NIO subset и Logging API subset.
  • Поддържа се консолидирана и подобрена обща рамка за свързване за мулти-протоколни входове / изходи.

MEEP 8 актуализира оригиналната спецификация IMP-NG, за да осигури мощна и гъвкава среда за приложения за малки вградени Java платформи. Спецификацията се основава на CLDC 8 със следните характеристики:

  • Нов, лек модел на компоненти и услуги
  • Споделени библиотеки
  • Съвместимост на множество приложения, комуникация между приложения и система за събития
  • Управление на приложения
  • Незадължителност на API за справяне със случаи на употреба с нисък отпечатък

MEEP 8 дава на разработчиците на вградени приложения модерна среда за приложения, която улеснява разработването и внедряването на вградени решения, които са модулни, стабилни, сложни решения, оптимизирани за широк спектър от случаи на употреба и устройства.

Повече за Java ME 8

Въведението на Терънс Бар към първите му 10 функции на Java ME 8 идентифицира компонентите, включени в изданието от април 2014 г. Вижте също страницата за изтегляне на Java ME SDK 8 за допълнителна документация.

Java Embedded

Java Embedded е израстък на Java ME и Java SE, набор от три платформи, които специално са насочени към вградени устройства. Всеки от тези продукти предлага много специализирана и оптимизирана Java виртуална машина и предоставя средства за актуализиране на инсталирания софтуер и услуги (например чрез използване на OSGi). По-долу описвам Java ME Embedded, Java SE Embedded и Java Embedded Suite.

Java за вградени системи?

Въпреки че не са разгледани в тази статия, специфични предизвикателства и техники са свързани с вграденото програмиране. Не всички разработчици са съгласни, че Java е най-подходящата за тяхното разрешаване.

Java ME Embedded

Java ME Embedded всъщност се състои от две версии: Java ME Embedded и Java ME Embedded Client.

Java ME Embedded е реализация на Java ME CLDC, която осигурява стабилна и гъвкава платформа за приложения със специална вградена функционалност за винаги включени, без глава (което означава, че няма графичен / потребителски интерфейс) и свързани устройства. Системните дизайнери и разработчици могат да използват Java ME Embedded за създаване на усъвършенствани, малки вградени решения, които да се възползват от предимствата на езика Java, времето на изпълнение и екосистемата, като същевременно изпълняват тесни целеви системни ресурси. Oracle Java ME Embedded може да се използва от устройства с по-малко от един мегабайт памет.

Java ME Embedded Client е Java ME CDC реализация, която е намалена, за да отговаря на ограниченията на устройствата с ограничени ресурси и оптимизирана за вградени системи от нисък до среден обхват. Въпреки че този продукт предлага малък отпечатък, той все още предоставя повечето от езика и функциите на Java, които разработчиците на Java познават и са свикнали с Java SE. Java ME Embedded Client може да се използва от устройства с по-малко от 10 мегабайта памет и без графика.

Вземете Java ME 8 Embedded

Можете да изтеглите Java ME Embedded 8 за различни ARM устройства или Java ME Embedded Client 1.1.1 за ARM, MIPS и x86 среди. За да стартирате тази платформа, ще трябва да инсталирате Java ME SDK 8. Вижте също Ръководство за миграция на Java ME CDC към Java SE вградено 8.

Java SE Embedded

Java SE Embedded е пълнофункционална реализация на платформата Java SE, която е оптимизирана за вградени системи. Версия 8, актуалната последна версия на тази платформа, включва следните функции:

  • Нови езикови функции на Java SE 8 за подобряване на производителността на разработчиците
  • Компактни профили и инструменти за създаване на персонализирани, оптимизирани за пространство виртуални машини
  • 50% по-добра производителност от предишните версии благодарение на Java SE 8
  • Изключително изглеждащи GUI приложения с ускорен GPU JavaFX
  • Инструменти за подробен мониторинг по време на работа и анализ на инциденти след фактите

Имайте предвид, че Java SE Embedded 8 може да се използва от устройства с минимум 11 мегабайта място за съхранение. Изтеглете Java SE Embedded 8 за ARM, Power Architecture и x86 платформи.

Java Platform Integrator

Oracle представи програмата Java Platform Integrator, за да предостави на партньорите възможността да персонализират продуктите на Java Embedded, включително Java ME Embedded, Java ME Embedded Client и Java SE Embedded, за да достигнат до различни типове устройства и пазарни сегменти.

Java Embedded Suite

Java Embedded Suite е последното предложение от семейството Java Embedded. Този набор от инструменти добавя функции от корпоративен тип към Java SE Embedded runtime, позволявайки на приложенията да правят следното:

  • Съхранявайте данни в релационна база данни на Java DB.
  • Хоствайте уеб приложения, базирани на сървлети GlassFish, например, за да осигурите защитен отдалечен достъп до данни и операции на устройството.
  • Хоствайте и получавайте достъп до RESTful уеб услуги с внедряването на Oracle на Джърси на спецификацията JAX-RS.

По същество Java Embedded Suite комбинира Java SE Embedded 7 (който осигурява изпълнение за Java приложения) с Java DB (който осигурява база данни за безопасно съхраняване на локално съдържание), GlassFish за Embedded Suite (който осигурява сървър за приложения за уеб страници), Джърси Рамка за уеб услуги (за хостинг и достъп до уеб услуги) и обработка на събития за Java Embedded (която обработва обработка на събития в реално време и която е незадължителен компонент).

Изтеглете Java Embedded Suite за ARM или x86.

Заключение

Oracle позиционира Java ME и свързаните с тях технологии, за да отговори на предизвикателствата при разработването на вградени устройства, като IoT е основната му цел. Тази статия представи кратък буквар за Java ME и след това ви запозна с продуктите Java ME 8, Java ME Embedded, Java SE Embedded и Java Embedded Suite.

За уроци по програмиране и най-добри практики, които ще ви помогнат да започнете с основите на IoT, посетете Java ME, MIDP и вградените Java страници за програмиране в JavaWorld. За да научите повече за стратегията на Oracle за IoT и мястото на Java в тази стратегия, разгледайте различните статии, видеоклипове, бели книги и брошури на информационната страница на Oracle Internet of Things.

Тази история „Java ME 8 и Интернет на нещата“ първоначално е публикувана от JavaWorld.