Programmering

Java ME 8 og tingenes internett

Innebygde systemer er datasystemer innebygd i komplette enheter, hvis dedikerte funksjoner ligger i et større mekanisk eller elektrisk system. Innebygde systemer brukes vanligvis i både industrielle applikasjoner og forbrukerapplikasjoner, og kommer inn i rampelyset med Internet of Things (IoT). For utviklere som akkurat har kommet i gang med IoT, er denne artikkelen en guide for å lære mer om teknologiene som består av Oracles IoT-plattform: Java ME 8, Java ME Embedded, Java SE Embedded og Java Embedded Suite.

I 1991 forsøkte Mark Weiser, da leder av Xeroxs Palo Alto Research Center (PARC), å fange den kommende alderen for allestedsnærværende databehandling. Han la merke til at "[de] mest dype teknologiene er de som forsvinner," Weiser beskrev de forskjellige tanke- og tekniske eksperimentene som ble utført av kollegene sine i PARC, da de søkte en ny måte å tenke datamaskiner på som innebygde systemer. Deres visjon, som kanskje hadde virket like fantastisk som svevefartøy i 1991, blir raskt mer vanlig i dag:

Sal våkner: hun lukter kaffe. For noen minutter siden hadde vekkerklokken hennes, varslet av rastløs rulling før hun våknet, stille spurt: "Kaffe?", Og hun hadde mumlet "Ja." "Ja" og "nei" er de eneste ordene den kjenner [...]

Til frokost leser Sal nyhetene. Hun foretrekker fortsatt papirformen, som folk flest gjør. Hun får øye på et interessant sitat fra en spaltist i forretningsdelen. Hun tørker pennen over avisens navn, dato, seksjon og sidenummer og sirkler deretter sitatet. Pennen sender en melding til papiret, som overfører sitatet til kontoret hennes [...]

Når Sal kommer på jobb, hjelper forvisningen (i bilen hennes) henne med å raskt finne en parkeringsplass. Mens hun går inn i bygningen forbereder maskinene på kontoret seg til å logge henne på ...

De innebygde enhetene i Weisers arbeidshverdagsscenario bruker sensorer til å spore en menneskelig brukeres interaksjoner, og trådløs tilkobling for å organisere et svar: Sals seng, vekkerklokke og kaffetrakter er alle koblet sammen for å sikre at hennes første kopp kaffe er i gang før hun ruller. ute av sengen. For Weiser og hans kolleger var dette rolig databehandling; i dag kan vi kalle det Internet of Things (IoT).

Les mer om Weisers arbeid i PARC og hans teori om allestedsnærværende databehandling: "Sikre kvaliteten på webtjenester i en alder av rolig databehandling" (Frank Sommers, JavaWorld, april 2001).

IoT-oversikt

Hvis det er en definerende egenskap ved IoT, er det interoperabilitet eller koordinering av flere enheter. Som observert i scenariet ovenfor bruker IoT sensorer til å samle inn data (i så fall om Sals interaksjoner i hennes miljø) og trådløs tilkobling for å orkestrere et svar. IoT er bygget på en sammenløp av teknologier, inkludert nye og gamle maskinvareplattformer, big data, cloud computing og maskin-til-maskin (M2M) databehandling. APIer er det nødvendige limet, og bringer alle disse bevegelige delene sammen.

Viktigst for Java-utviklere er Java nøkkelen til mange av de nye IoT-teknologiene allerede, og Oracle har forpliktet seg til å gjøre Java til en ledende plattform (hvis ikke de plattform) for IoT. Java ME 8 puster nytt liv i Java sin lille enhetsteknologi, og utvider den med en differensiert linje med innebygde Java-plattformer.

De neste avsnittene vil introdusere teknologiene som består av Oracles IoT-plattform; følg lenkene for å lære mer om Java ME, Java ME 8 og de tre innebygde rammene: Java ME Embedded, Java SE Embedded og Java Embedded Suite.

Java ME

Java Micro Edition var opprinnelig ment for å takle begrensningene knyttet til å bygge applikasjoner for små enheter. Basert på Java SE, var Java ME (eller J2ME, slik vi kjente det i 1999) plattformen for Java-applikasjoner som kjører på små enheter med begrenset minne, skjerm og strømkapasitet. I dag brukes den til å utvikle innebygde systemer, alt fra industrielle kontroller til mobiltelefoner (spesielt funksjonstelefoner), til digitalboxer og Blu-ray-spillere.

Utviklere som jobber i Java ME kan velge mellom flere konfigurasjoner, profiler og valgfrie pakker:

  • EN konfigurasjon gir det mest grunnleggende settet med biblioteker og funksjoner for virtuell maskin for et bredt spekter av enheter.
  • EN profil er et sett med APIer som støtter et smalere utvalg av enheter.
  • An valgfri pakke er et sett med teknologispesifikke API-er. Trådløs meldings-API er et eksempel. Ta en titt på Oracles valgfrie pakkebegynner for å lære mer om valgfrie pakker.

Konfigurasjoner og profiler

Med tiden har to konfigurasjoner dukket opp: Connected Limited Device Configuration (CLDC) er konfigurasjonen for små enheter, og Connected Device Configuration (CDC) er konfigurasjonen for mer dyktige mobile enheter som smarttelefoner og digitalboks.

Java ME-profiler sitter på toppen av konfigurasjoner, og definerer APIer på høyere nivå som brukes til bestemte applikasjoner. Mobile Information Device Profile (MIDP)sitter for eksempel på toppen av CLDC og gir brukergrensesnitt, nettverk og vedvarende lagrings-APIer. Programmer som kjører i et CLDC / MIDP-miljø (for eksempel spill) er kjent som MIDlets.

Enhetsprogrammering med CLDC / MIDP

"Enhetsprogrammering med MIDP" (Michael Cymerman) inkluderer en praktisk demonstrasjon for utviklere som er nye for CLDC / MIDP. Se også "Building MIDlets" (Jonathan Knudsen og Sing Li) og "Big designs for small devices" (Ben Hui).

For CDC er det tre profiler, Foundation, Personal Basis og Personal:

  • Foundation Profile er et sett med Java API-er som er innstilt for enheter med lite fotavtrykk som har begrensede ressurser og ikke trenger et grafisk brukergrensesnitt (GUI).
  • Den personlige basisprofilen er et supersett av Foundation Profile API-ene og støtter enheter med lette GUI-krav. Denne profilen kommer med et rammeverk for å bygge lette GUI-komponenter og støtter noen AWT-klasser (Abstract Window Toolkit).
  • Den personlige profilen utvider den personlige basisprofilen med et GUI-verktøysett basert på AWT. Det gir et komplett Java ME-applikasjonsmiljø med full AWT-støtte og er ment for avanserte enheter som PDA-er, set-top-bokser, spillkonsoller og så videre.

Programmer som kjører i et CDC / Foundation / Personal Basis / Personal miljø (for eksempel Blu-ray filmmenyer) er kjent som Xlets.

Lett verktøygrensesnitt for brukergrensesnitt

Å bruke Java's AWT (Abstract Window Toolkit) til å lage mobilapplikasjoner på tvers av plattformer med bred brukerappell er utfordrende! Skrift, layout og andre forskjeller får samme applikasjon til å se og oppføre seg veldig forskjellig på forskjellige enheter. Videre er avanserte brukergrensesnittfunksjoner som animasjon og effekter fraværende. Sun Microsystems anerkjente disse manglene og utviklet Lightweight User Interface Toolkit (LWUIT) [PDF], et Swing-inspirert UI-verktøysett for Java ME som støtter CLDC 1.1 med MIDP 2.0 og CDC med personlig basisprofil. Codename One er en populær open source-implementering av den originale LWUIT.

Java ME 8

På slutten av 2012 startet Oracle et ambisiøst prosjekt for å levere en større oppdatering av Java ME-plattformstandarden. To Java-spesifikasjonsforespørsler (JSRer) ble designet for å oppfylle dagens markedskrav for innebygde enheter og forberede Java ME for fremtidige Java-plattformsspesifikasjoner: JSR 360 (CLDC 8), en evolusjonær oppdatering til CLDC 1.1.1, ville bringe den virtuelle maskinen, Java språk og biblioteker oppdatert med Java SE 8. JSR 361 (Java ME Embedded Profile / MEEP 8) vil oppdatere informasjonsmodulprofil - neste generasjon (IMP-NG).

CLDC 8 og MEEP 8

CLDC 8 er basert på JSR 139 (CLDC 1.1) og justerer kjernen Java ME virtuell maskin, språkstøtte, biblioteker og andre funksjoner med Java SE 8:

  • Den virtuelle maskinen er oppdatert for å overholde versjon 2 av JVM-spesifikasjonen.
  • Nyere Java SE-språkfunksjoner som generikk, påstander, merknader og prøv-med-ressurser støttes nå.
  • Nye biblioteker som samlinger, NIO-undersett og Logging API-undersett støttes nå.
  • Et konsolidert og forbedret Generic Connection Framework for multi-protocol I / O støttes.

MEEP 8 oppdaterer den originale IMP-NG-spesifikasjonen for å gi et kraftig og fleksibelt applikasjonsmiljø for små innebygde Java-plattformer. Spesifikasjonen bygger på CLDC 8 med følgende funksjoner:

  • En ny, lett komponent og tjenestemodell
  • Delte biblioteker
  • Multi-applikasjon samtidighet, kommunikasjon mellom applikasjoner og hendelsessystem
  • Programadministrasjon
  • API-mulighet for å adressere brukstilfeller med lite fotavtrykk

MEEP 8 gir innebygde applikasjonsutviklere et moderne applikasjonsmiljø som gjør det mulig å utvikle og distribuere innebygde løsninger som er modulære, robuste, sofistikerte løsninger som er optimalisert for et bredt spekter av brukstilfeller og enheter.

Mer om Java ME 8

Terrence Barrs introduksjon til topp 10 Java ME 8-funksjonene identifiserer komponentene som er inkludert i april 2014-utgivelsen. Se også nedlastingssiden for Java ME SDK 8 for ytterligere dokumentasjon.

Java innebygd

Java Embedded er en utvekst av Java ME og Java SE, en pakke med tre plattformer som spesifikt retter seg mot innebygde enheter. Hvert av disse produktene leverer en veldig spesialisert og optimalisert virtuell Java-maskin og gir mulighet for å oppdatere installert programvare og tjenester (for eksempel ved bruk av OSGi). Nedenfor beskriver jeg Java ME Embedded, Java SE Embedded og Java Embedded Suite.

Java for innebygde systemer?

Selv om det ikke er omtalt i denne artikkelen, er spesifikke utfordringer og teknikker knyttet til innebygd programmering. Ikke alle utviklere er enige om at Java passer best for å løse dem.

Java ME innebygd

Java ME Embedded består faktisk av to versjoner: Java ME Embedded og Java ME Embedded Client.

Java ME Embedded er en Java ME CLDC-implementering som gir en robust og fleksibel applikasjonsplattform med dedikert innebygd funksjonalitet for alltid på, hodeløs (betyr ikke noe grafikk / brukergrensesnitt) og tilkoblede enheter. Systemdesignere og utviklere kan bruke Java ME Embedded til å lage sofistikerte, små innebygde løsninger som utnytter fordelene med Java-språket, kjøretiden og økosystemet mens de oppfyller stramme systemressursmål. Oracle Java ME Embedded kan brukes av enheter med mindre enn en megabyte minne.

Java ME Embedded Client er en Java ME CDC-implementering som er blitt nedskalert for å passe begrensningene til ressursbegrensede enheter og optimalisert for innebygde systemer med lavt til mellomtoneområde. Selv om dette produktet har et lite fotavtrykk, gir det fremdeles det meste av Java-språk- og kjøretidsfunksjonene som Java-utviklere kjenner til og er vant til med Java SE. Java ME Embedded Client kan brukes av enheter med mindre enn 10 megabyte minne og uten grafikk.

Få Java ME 8 innebygd

Du kan laste ned Java ME Embedded 8 for forskjellige ARM-enheter eller Java ME Embedded Client 1.1.1 for ARM-, MIPS- og x86-miljøer. Du må installere Java ME SDK 8 for å kjøre denne plattformen. Se også Oracles Java ME CDC to Java SE Embedded 8 Migration Guide.

Java SE innebygd

Java SE Embedded er en fullverdig implementering av Java SE-plattformen som er optimalisert for innebygde systemer. Versjon 8, den siste utgivelsen av denne plattformen, inneholder følgende funksjoner:

  • Nye Java SE 8-språkfunksjoner for å forbedre utviklerens produktivitet
  • Kompakte profiler og verktøy for å lage tilpassede, plassoptimaliserte virtuelle maskiner
  • 50% bedre ytelse enn tidligere versjoner takket være Java SE 8
  • Flotte GUI-applikasjoner med GPU-akselerert JavaFX
  • Verktøy for detaljert kjøretidsovervåking og etter-fakta-hendelsesanalyse

Merk at Java SE Embedded 8 kan brukes av enheter med minimum 11 megabyte lagring. Last ned Java SE Embedded 8 for ARM-, Power Architecture- og x86-plattformer.

Java Platform Integrator

Oracle har introdusert Java Platform Integrator-programmet for å gi partnere muligheten til å tilpasse Java Embedded-produkter, inkludert Java ME Embedded, Java ME Embedded Client og Java SE Embedded for å nå forskjellige enhetstyper og markedssegmenter.

Java Embedded Suite

Java Embedded Suite er det siste tilbudet i Java Embedded-familien. Denne pakken med verktøy legger til bedriftstypefunksjoner til Java SE Embedded runtime, slik at applikasjoner kan gjøre følgende:

  • Lagre data i en Java DB-relasjonsdatabase.
  • Vert for GlassFish servletbaserte webapplikasjoner, for eksempel for å gi sikker ekstern tilgang til enhetsdata og operasjoner.
  • Vert og få tilgang til RESTful webtjenester med Oracle's Jersey implementering av JAX-RS spesifikasjonen.

I hovedsak kombinerer Java Embedded Suite Java SE Embedded 7 (som gir en kjøretid for Java-applikasjoner) med Java DB (som gir en database for å lagre lokalt innhold på en sikker måte), GlassFish for Embedded Suite (som gir en applikasjonsserver for websider), Jersey Web Services Framework (for hosting og tilgang til webtjenester) og Event Processing for Java Embedded (som håndterer sanntidsbehandling av hendelser, og som er en valgfri komponent).

Last ned Java Embedded Suite for ARM eller x86.

Konklusjon

Oracle har posisjonert Java ME og relaterte teknologier for å møte utfordringene med å utvikle for innebygde enheter, med IoT som sitt endelige mål. Denne artikkelen presenterte en kort primer på Java ME og introduserte deg deretter for Oracle's Java ME 8, Java ME Embedded, Java SE Embedded og Java Embedded Suite-produkter.

For programmeringsveiledninger og gode fremgangsmåter som hjelper deg med å komme i gang med IoT-grunnleggende, besøk Java ME, MIDP og Embedded Java programmeringssider på JavaWorld. Hvis du vil lære mer om Oracles strategi for IoT og Java plass i denne strategien, kan du sjekke ut de forskjellige artiklene, videoene, white paperene og brosjyrene på informasjonssiden til Oracle Internet of Things.

Denne historien, "Java ME 8 and the Internet of Things" ble opprinnelig utgitt av JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found