Reţeta Freescale pentru IoT: i.MX6 şi Java

by donpedro

Freescale va lansa în Q4, în colaborare cu Oracle®, o platfomă pentru gateway de servicii IoT. Acest dispozitiv va dispune de un procesor de aplicaţii Freescale i.MX6 bazat pe ARM® Cortex®-A9 şi va rula Java™ SE Embedded. Acest portal inteligent va putea oferi conectivitate între senzori şi reţea într-un mod sigur şi scalabil. Soluţia va suporta de la început Wi-Fi (802.11b/g/n) precum şi interfeţe cu un consum redus de energie, cum ar fi BLE (Bluetooth® Low Energy) şi 802.15.4 (ZigBee®). Această platformă e destinată proiectelor care necesită accelerare grafică 2D/3D, accelerare video 1080p60 H.264 şi consum mic de energie. O altă versiunea a aceluiaşi gateway IoT este planificată tot în Q4, însă va beneficia de cel mai nou procesor de comunicaţie din familia Freescale QorIQ bazat pe arhitectura Layerscape. Aceasta din urmă reprezintă cea mai recentă arhitectură de procesoare de comunicaţie, axată pe nuclee ARM® Cortex®-A7. Platforma a fost concepută pentru aplicaţiile de reţea embedded, unde cerinţele sunt: fiabilitate ridicată, lăţime mare de bandă, virtualizare, motoare performante de securitate şi suport hardware pentru protocoale industriale (HDLC, CAN, ProfiBUS®).
Pe lângă portalul inteligent, Freescale, ARM şi Oracle lucrează şi la soluţia pentru nodurile cu senzori din Internet of Things. Suportul hardware în acest caz va fi bazat pe un microcontroler Freescale Kinetis® cu nucleu ARM® Cortex®-M ce poate rula Java ME (Micro Edition) sau Java SE Embedded prin intermediul unui HAL (Hardware Abstraction Layer) din cadrul proiectului ARM® mbed™.
În continuare, vom prezenta câteva detalii ale acestei platforme destinată mediului IoT, precum şi suportul actual hardware şi software oferit de Freescale. De asemenea, vom arăta cum reuşeşte Java SE Embedded să utilizeze platforma hardware a portalului de servicii IoT.

Ce înseamnă IoT sau Internet of Things

Din punct de vedere tehnologic, IoT reprezintă o imensă reţea de dispozi­tive şi maşini inteligente ce comunică M2M (Machine to Machine) şi interacţionează cu alte maşini, mediul înconjurător (M2N sau Machine-to-Nature) sau infrastructura (M2I sau Machine to Infrastructure) unei organizaţii. Datele obţinute şi schimbate în această reţea sunt procesate sub forma unor acţiuni de control sau comandă pentru obiectele din mediul înconjurător.
În jurul nostru sunt deja prezente multe dispozitive şi maşini care monitorizează stări şi automatizează sarcini, cum ar fi: lămpile cu senzori de prezenţă şi lumină, termostate de ambianţă, dispozitive medicale de biotelemetrie pentru monitorizarea ritmului cardiac sau determinarea saturaţiei oxigenului în sângele periferic, ceasurile şi brăţările ce monitorizează mişcarea corpului şi a ritmului cardiac, echipamente de monitorizare a traficului de vehicule şi semafoare inteligente, POS-uri şi automate bancare, staţii meteorologice capabile de predicţii şi atenţionări în privinţa vremii bazate pe senzorii proprii, sisteme GPS capabile să ofere atât informaţii despre ruta unui autovehicul, cât şi date tehnice, cum ar fi viteza şi cantitatea de combustibil etc.
Dacă ar fi să extragem caracteristicile comune ale dispozitivelor enumerate mai sus, acestea ar fi urmă­toarele: colectarea şi procesarea iniţială a datelor de la senzori, conexiune fără fir/cu fir, software pentru automatizarea sarcinilor, dispozitive emebedded care permit procesarea datelor de la senzori sau tri­miterea lor mai departe în cloud şi securitatea datelor – atât a conexiunii, cât şi a accesului utilizatorilor.

În viziunea Freescale, IoT înseamnă mutarea procesării informaţiilor de la nivelele înalte situate în cloud la prelucrarea distribuită între nodurile inteligente din reţea. Prin acest concept se doreşte adresarea nevoilor actuale pentru un sistem embedded: timpul până când produsul iese pe piaţă, securitatea datelor şi accentul pus pe furnizarea unor soluţii hardware eficiente din punctul de vedere al consumului şi al performanţei. Pentru primul aspect, Java oferă deja cea mai bună soluţie software, fiind deja prezentă pe foarte multe dispozitive mobile bazate pe procesoare cu arhitectură ARM. Securitatea reprezintă un lucru esenţial într-o lume liberă precum IoT, întrucât trebuie să ştim de unde vin datele, dacă acestea au fost modi­ficate şi să ne asigurăm că doar persoanele autorizate pot accesa datele din reţeaua noastră.
Cheia pentru obţinerea unei performanţe ridicate la un consum scăzut de energie, aşa cum vom vedea, o reprezintă modulele de accelerare hardware. În funcţie de modulele de accelerare, Freescale oferă două familii de procesoare de aplicaţii: i.MX6 pentru aplicaţii embedded grafice şi consum redus şi QorIQ bazat pe arhitectura Layescape pentru aplicaţii performante în reţea.
Pentru nodurile inteligente cu senzori sunt recomandate microcontrolerele Freescale Kinetis bazate pe un nucleu din familia ARM® Cortex®-M. Microcontrolerele din seria Freescale Kinetis au fost proiectate pentru platforme mobile low-power (pot funcţiona mult timp alimentate doar printr-o baterie), pot fi conectate cu senzori şi module de RF low-power (BLE, ZigBee) sau Ethernet. Unele serii de microcontrolere Freescale Kinetis includ periferice avansate, cum ar fi cele de accelerare criptografică. Un bun exemplu de nod inteligent cu senzori pentru IoT o reprezintă placa de dezvoltare Freescale Freedom FRDM-K64F. Această placă Freescale Freedom conţine un microcontroler Freescale Kinetis K64 (integrează un modul Ethernet MAC şi un modul de accelerare criptografică mmCAU (DES, 3DES, AES, MD5, SHA-1 şi SHA-256) şi poate să ruleze la o frecvenţă de 120MHz), un accelerometru, un magnetometru, un port Ethernet şi slot Arduino™ R3.

O atenţie deosebită a fost acordată spaţiului IoT din interiorul maşinii. Aici Freescale introduce arhitectura eterogenă de procesoare din seria Freescale Vybrid (bazate pe nuclee ARM® Cortex®-A5 şi ARM® Cortex®-M4) creată special pentru infotainment, adică suport audio (SPDIF sau AC97), HMI (Human Machine Interface, TFT şi captură de imagini video), USB OTG, Ethernet MAC, CAN (pentru controlul servomotoarelor sau obţinerea de informaţii de la senzorii maşinii) şi un modul criptografic Cryptographic Accelerator and Assurance Module.
Mediul IoT din maşină e întregit de platforma Freescale Qorivva (bazată pe nuclee Power Architecture® e200™ şi folosită extensiv în industria Auto) care are aplicaţii pentru tabloul de bord, comunicarea cu senzorii maşinii, servomotoare sau camerele video folosite la parcare.
În continuare vom vedea cum aceste cerinţe se regăsesc în platforma Freescale i.MX6 sau QorIQ Layerscape architecture şi care e suportul oferit de Java SE Embedded.

Suportul i.MX6 pentru Java

Pentru platforma Java SE Embeded, Freescale oferă pentru procesoarele din familia i.MX6 facilităţi de securitate şi suport software de Linux® pentru arhitectura ARM. La rândul ei, Java SE Embedded contribuie prin software dedicat pentru Internet of Things, după cum vom vedea în continuare.

Securitate

Pentru Freescale, securitatea datelor schimbate între capetele reţelei (de exem­plu între senzori şi aplicaţia bene­ficiară) reprezintă o cerinţă fundamentală în Internet of Things. În acest sens, Java oferă deja posibitatea securizării datelor pentru aplicaţiile IoT în următoarele nivele: local pe dispozitiv, pe traseul datelor în reţea şi autentificarea şi stabilirea permisiunilor utilizatorilor.

Securitatea pe dispozitiv

Pe dispozitiv, Java oferă deja algoritmi de criptare prin Java Cryptography Architecture (JCA) şi mecanisme de izolare a utilizatorilor din sistem prin Java Security Architecture (JSA) şi politici de securitate şi permisiuni. Cu toate acestea, Java SE Embedded poate folosi, pentru o mai mare performanţă, modulele de accele­rare hardware existente pe procesoarele i.MX6. Ca observaţie, folosirea acceleratoarelor hardware reprezintă cheia în obţinerea de performanţe ridicate şi consum scăzut de energie în lumea IoT.

Procesoarele i.MX6 beneficiază de următoarele capabilităţi hardware de securitate:
• Tehnologia ARM® TrustZone® permite izolarea secţiunilor software critice de un cod potenţial periculos. Prin intermediul acestei tehnologii se permite separarea întreruperilor şi a translaţiilor de memorie în funcţie de modul curent de execuţie (privilegiat sau utilizator) şi de modul de securitate (ARM TrustZone Secure sau normal).
• ARM® TrustZone® Address Space Controler (TZC-380) permite partajarea şi accesul trusted şi general în locaţii diferite din DDR.
• Pornirea în siguranţă a imaginii sistemului de operare prin modulul Advanced High Assurance Boot (A-HAB). Ultima versiune HABv4.1 permite funcţii de autentificare şi criptare.
• SNVS (Secure Non-Volatile Storage) detectează şi activează sistemele de răspuns împotriva acţiunilor externe pătrundere forţată în sistem (tamper). Este compus dintr-o maşină de stări de securitate şi un circuit de detecţie a violărilor de securitate. Împreună cu A-HAB determină dacă sistemul se află într-o stare de siguranţă sau nu. Mecanismele de răspuns sunt: declanşarea unei întreruperi speciale pentru avertizarea software-ului şi semnalarea modulului CAAM de zerorizare a tuturor cheilor de criptare – inclusiv master key. Master key reprezintă o cheie privată păstrată în memoria OTP sau Fuse Bank.
• Firewall Hardware între CPU (incluzând clienţii DMA) şi memorie sau periferice. Acestea sunt configurate la pornire de către modulul de CSU (Central Security Unit).
• Protejarea împotriva accesului la modulul de HW Debug prin interfaţa JTAG. Se blochează sau se reglementează accesul la memorie, CPU sau periferice prin intermediul interfeţei de debug. Astfel, se previn tentativele de inginerie inversă sau recoltarea datelor confidenţiale.
• Cryptographic Acceleration and Assurance Module (CAAM). Acest modul conţine 16KB de Secure RAM, un generator de numere aleatoare (RNG) certificat NIST (National Institute of Standards and Technology) cu entropie generată de un oscilator independent (oprit când generatorul nu funcţionează pentru a reduce consumul de energie) şi implementează mai multe funcţii de criptare şi hashing. De asemenea, menţine securitatea sistemului împreună cu SNVS prin protecţia datelor confidenţiale utilizând: chei de criptate, chei DRM (Digital Rights Management) sau cod proprietar. Toţi algoritmii de criptare, verificare de cifru şi hashing sunt implementaţi cu o complexitate O(n).

Platforma Java oferă deja acces dezvoltatorilor la cei mai răspândiţi algoritmi de criptografie prin intermediul API-urilor expuse în JCA. Java Cryptography Architecture reprezintă o colecţie de API-uri pentru semnături digitale, hashing, manipulare de certificate digitale, criptare simetrică sau asimetrică la nivel de bloc sau flux de octeţi şi generare de numere aleatoare. Toate sunt proiectate după următoarele principii: implementare independentă de platformă, interoperabilitate şi extensibilitate. Aceste principii permit adoptarea suportului hardware criptografic oferit de platforma Freescale i.MX6. Facilităţile modulului CAAM sunt:

• Hashing: MD5, SHA-1, SHA-224 şi SHA-256.
• Criptare folosind chei simetrice: AES (128-biţi, 192-biţi sau 256-biţi), DES (64-biţi), 3DES (128-biţi sau 192-biţi).
• Moduri de criptare pentru blocuri de date: ECB (Electronic Code Book), CBC (Cipher-block chaining), CFB (Cipher feedback), OFB (Output feedback) şi CTR (pentru AES).
• Criptare folosind chei simetrice pentru fluxuri de date: ArcFour (RC4) şi chei de 40-128 de biţi.

Freescale oferă driverul CAAM de Linux prin LEIMX (Linux Embedded for i.MX Applications Processors). Accesul la driverul de CAAM se face prin CryptoAPI din Linux. Driverul în sine este integrat cu serviciul de kernel API Crypto, iar Java poate folosi acest serviciu pentru a înlocui implementarea funcţiilor sale de criptare.

În ceea ce priveşte familia Freescale QorIQ bazată pe arhitectura Layerscape, avem de-a face cu un motor de securitate SEC v5.5 cu performanţe mult mai ridicate faţă de CAAM şi cu un set extins de algoritmi de criptare şi hashing:

• Criptare cu chei publice (asimetrice): RSA şi Diffie-Hellman (4096b) şi curbe eliptice (1024b)
• ZHA (ZUC Hardware Accelerator): suita de algoritmi recomandaţi în telefonie pentru 3GPP LTE (Long Term Evolution) cu generator de chei ZUC (spec. v1.5), autentificare ETSI/SAGE 128-EIA3 (spec. v1.5) şi criptare ETSI/SAGE 128-EEA3 (spec. v1.5)
• Chei simetrice: DES, 3DES (2K si 3K) în modurile ECB şi CBC; AES 128-, 192- şi 256-biţi, în modurile ECB, CBC, CTR, CCM, GCM, CMAC, OFB, CFB şi XTS
• Hashing: MD5, SHA-1, SHA-256/384/512, HMAC
• Kasumi F8 & F9
• Snow 3G
• CRC32, CRC32C, 802.16e OFDMA CRC

Ca diferenţă, motorul criptografic SEC este optimizat pentru performaţă, în timp ce modulul CAAM de pe i.MX6 este optimizat pentru consum redus de energie.
De asemenea, pentru motorul criptografic SEC, Freescale oferă drivere de Linux pentru ambele spaţii kernel şi utilizator. În plus, mai este oferită şi o bibliotecă, SEC RTA (Run Time Assembly) pentru bare-metal sau integrare cu alte sisteme de operare.

Securitatea transportului datelor în reţea

Odată trimise în afara sistemului embedded, datele conţinând informaţii sensibile, numere de card, parole sau alarme, trebuie să ajungă nemodificate la destinaţie şi neinteligibile pentru persoanele neautorizate. Java oferă deja protocoale de reţea standard, cum ar fi TLS sau SSL prin Java Secure Socket Extension (JSSE). JSSE foloseşte serviciile de criptografie oferite de JCA şi a fost proiectat după aceleaşi principii (implementare independent de platformă, interoperabilitate şi extensibilitate).
În partea de securitate a transportului de date în reţea, acceleratorul criptografic CAAM din i.MX6 nu oferă toate capabilităţile prezente în motorul SEC din familia QorIQ cu arhitectură Layerscape. După cum am menţionat, familia de procesoare i.MX nu este destinată aplicaţiilor cu performanţă ridicată în reţea, ci mai degrabă orientată spre accelerare grafică. Cu toate acestea, să nu uităm că portalul construit în jurul i.MX6 are un suport nativ Linux excelent pentru majoritatea protocoalelor de transport. În plus, suportul criptografic este deja accelerat de hardware. Suportul minimal este compus din:

• MAC (Message authentication code): HMAC (Hash-based message authentication code), AES-CMAC (Cipher-based MAC) şi AES-XCBC-MAC
• ICV (Integrity check value)
• Algoritmi de certificare: AES-CCM

Procesoarele din familia QorIQ cu arhitectură Layescape sunt dotate cu un motor criptografic performant SEC v5.5. Acesta suportă următoarele protocoale şi algoritmi acceleraţi de hardware: IPSec, SSL/TLS, 3G RLC, PDCP, SRTP, 802.11i (WPA2), 802.16e (WiMAX) şi 802.1ae (MACsec). Ca idee asupra performanţei, cu IPsec se poate ajunge la o procesare brută de 1.5Gbps. Acest lucru este posibil şi datorită faptului că IPsec poate fi accelerat în spaţiul kernelului de Linux prin API-ul ASF Crypto. Acest API permite o creştere de performanţă cu 200-300% faţă de IPSec nativ din Linux.

Autentificare şi autorizare

În vârful stivei de securitate se pune problema cum vor fi toate aceste sisteme integrate în mod sigur. Java are o istorie îndelungată în gestionarea identităţilor în Java Enterprise Edition prin intermediul platformei Java Authentication and Authorization Service (JAAS). Pe scurt, JAAS oferă următoarele capabilităţi: autentificarea utilizatorilor (sau determinarea identităţii utilizatorului) şi autorizarea utilizatorilor (fiecărui utilizator îi este atribuit un set de permisiuni pe baza cărora va avea dreptul la anumite acţiuni). În ceea ce priveşte administrarea identităţilor, Oracle oferă atât platforma OIM (Oracle Identity Management) cât şi soluţia de back-end scalabilă la reţeaua de dispozitive din IoT.
Toate platformele de securitate menţionate mai sus (JCA, JSSE şi JAAS) fac parte atât din Java Standard Edition, cât şi din Java Embedded SE şi vor facilita implementarea în cadrul IoT a unei securităţi de tip end-to-end între portalele IoT şi infrastructură. În ceea ce priveşte nodurile cu senzori, acestea vor rula Java ME cu un set de API-uri de securitate restrâns, însă păstrând nivelul de compatibilitate.

În continuare vom vedea care este suportul Java pentru arhitectura ARM şi familia Freescale i.MX6. De asemenea, vom arăta în ce constă suportul Java adăugat special pentru IoT, adică procesarea evenimentelor.

Suport Java pentru arhitectura ARM şi IoT

Am prezentat mai sus API-uri de securitate din Java SE Embedded, însă nu am discutat de suportul software pentru arhitectura i.MX6 şi ce aduce nou Java pentru noul val de aplicaţii din IoT. Oracle a început să livreze JRE-uri compatibilie cu arhitectura ARM (deocamdată doar pentru Linux) începând cu Java 1.6. Au mai fost lăsate ulterior versiunile 1.7 şi 1.8 ale platformei Java SE Embedded.
Vom discuta în următoarele rânduri câteva contribuţii importante pentru arhitectura ARM.
Pentru început, trebuie menţionat (poate cel mai important aspect) că vechiul slogan Sun “write once, run anywhere” (WORA) este de actualitate şi pe arhitectura ARM. Oracle susţine că platforma Java SE Embedded e complet compatibilă cu versiunile Java SE de pe servere sau cu clienţii x86 sau PowerPC. În mare, acest lucru înseamnă că un program Java care a rulat, de exemplu, pe o maşină x86 cu Java SE poate rula fără nicio altă configurare pe o arhitectură ARM (cum ar fi i.MX6) cu Java SE Embedded.

SoftFP vs HardFP

Un progres notabil a fost realizat odată cu lansarea Java SE Embedded 7, atunci când operaţiile în virgulă mobilă au fost suportate prin ABI-ul ARM HardFP. Acest suport este important pentru platforma i.MX6, întrucât aplicaţiile embedded grafice necesită multe operaţii în virgulă mobilă.
În mod normal, la compilarea unui program cu GCC pentru arhitectura ARM, în ceea ce priveşte suportul pentru operaţiile în virgulă mobilă, avem două opţiuni: una este specificarea ABI-ului pentru operaţiile în virgulă mobilă (convenţia de pasare a parametrilor operaţiilor în virgulă mobilă) şi tipul unităţii de procesare a operaţiilor în virgulă mobilă. În cazul nostru, ultima opţiune poate fi vfp (Vector Floating Point) sau neon (o extensie a VFP). Nucleul ARM Cortex-A9 folosit de familia i.MX6 deţine un VFP v3-D16 (16 regiştri speciali de 64 de biţi şi dublă precizie) iar arhitectura Layerscape datorită nucleului ARM Cortex-A7, un VFP v4 (32 de regiştri şi dublă precizie).
Prima opţiune este şi cea care influenţează perfor­manţa aplicaţiei. Aici sunt valabile următoarele opţiuni: soft, softfp sau hard. Optiunea “soft” indică faptul că toate operaţiile de FP sunt emulate (i.e. sunt generate funcţii) iar parametrii sunt trimişi pe stivă sau prin regiştri generali. Prin “softfp”, operaţiile de FP sunt executate prin instrucţiuni de virgulă mobilă sau emulate, iar parametrii sunt pasaţi tot pe stivă sau regiştri generali – apoi copiaţi în regiştri de VFP. Copierea în sau din regiştri de virgulă mobilă conduce inevitabil la blocarea pipeline-ului nucleului. Din acest motiv, opţiunea “hard” e mult mai rapidă, întrucât parametrii sunt transferaţi direct în regiştri de virgulă mobilă.
Deoarece ultima opţiune (hard) este incompatibilă cu primele două (soft şi softfp) – se aşteaptă parametrii în regiştri VFP şi nu pe stivă – bibliotecile şi aplicaţiile trebuie compilate cu aceleaşi opţiuni – softfp sau hard. Din acest motiv, Java oferă două seturi de JRE-uri pentru arhitectura ARM: una destinată pentru Linux Armel (softfp) şi alta destinată Linux Armhf (hardfp). Freescale oferă suport de Armhf pentru familia i.MX6 începând cu distribuţia de BSP (Board Support Package) de Linux 3.5.7.

Headless vs Headful. Profile compacte şi versiuni JVM

Cerinţele de RAM şi ROM pot varia de la aplicaţie la aplicaţie. În acest sens, Oracle pune la dispoziţie câteva seturi de opţiuni prin care se optimizează consumul de memorie a JVM pe sistemul embedded. Există şi o aplicaţie (jrecreate) care poate construi o configuraţie de JRE pe baza unor opţiuni.
• Headful sau Headless. Modul Headless e indicat atunci când sistemele embedded nu au conectate periferice precum LCD sau tastatură. În acest fel, cerinţele RAM (minime) şi ROM pentru JRE 8 complet (headful) pot să scadă de la 64MB / 54.4MB la 32 MB/48 MB în modul headless.
• Adaptarea resurselor folosite de JVM la tipul aplicaţiei: minimal (se caracterizează printr-un necesar redus de memorie şi renunţarea la unele facilităţi de remote debugging sau profiling), client (conţine toate capabilităţile JVM, însă este un mod optimizat pentru a compila şi a încărca aplicaţiile mult mai rapid cu un consum mult mai redus de memorie decât pe varianta server) şi server (optimizat pentru fiabilitate, poate rula doar pe arhitectură ARMv7 cu HardFP sau SoftFP, iar aplicaţiile sunt compilate mai greu, însă rulează mai rapid faţă de modul client).
• Pentru sistemele cu resurse de memorie limitate, Oracle oferă, începând cu Java SE Embedded 8, trei profile compacte de JRE: compact1 (conţine API-urile Java de bază, plus alte servicii, cum ar fi cele pentru accesul la reţea sau de criptografie şi ocupă doar 10.4 MB), compact2 (sunt adăugate serviciile de RMI, JAXP şi JDBC permiţând suportul OEP şi ocupă 17 MB) şi compact3 (include instrumente pentru monitorizarea JVM (pstack sau jvmstat), API-uri de securitate şi ocupă 24 MB. JRE-ul complet conţine în plus faţă de compact3 API-ul de CORBA, servicii web şi AWT/Swing.

AWT/Swing şi JavaFX

În ceea ce priveşte grafica, API-uri de desenat AWT şi Swing sunt disponibile doar în distribuţia Java SE Embedded Headful compilat cu opţiunea de Armhf.
Dacă nu se folosesc API-urile de AWT şi Swing şi se preferă JavaFX, atunci JRE-ul va necesita mai puţină memorie RAM – minim 32 MB, faţă de 64 MB. JavaFX foloseşte pe Linux doar dispozitivul grafic Framebuffer şi necesită, de asemenea, un sistem de operare Linux compilat cu opţiunea Armhf. Versiunea actuală de BSP de Linux pentru i.MX6, 3.10.17, oferă bibli­oteci atât de Framebuffer, cât şi pentru versiunea cu accelerare hardware 2D, DirectFB.

Oracle event processing

Special pentru Internet of Things, Oracle a dezvoltat OEP (Oracle Event Processing) inclus în suita Java SE Embedded. Prin această tehnologie, Oracle doreşte să rezolve următoarele cerinţe din reţeaua IoT: prelucrarea unor tipuri variate de date (temperatură, acceleraţie, înclinare, puls, date meteo, coordonate GPS), procesarea unui volum mare de date (senzorii de obicei efectuează foarte multe eşantionări pe secundă, iar portalul IoT ar putea fi foarte uşor depăşit de volumul mare de date) şi frecvenţa cu care se doreşte să se recepţioneze informaţiile. Oracle Event Processing pentru Java Embedded se bazează pe platforma Oracle Event Driven EE (enterprise edition) însă necesită mult mai puţină memorie ROM şi RAM. Acest lucru face posibil ca OEP să poată fi integrat uşor în portalul de servicii IoT.
Prelucrarea bazată pe evenimente permite ca datele să fie nu numai colectate, dar şi procesate în timp real de nodurile OEP. Astfel, la centrul de date vor ajunge informaţii şi nu date brute. Întrucât mai multe OEP-uri pot fi cascadate, se obţine o mai bună filtrare a informaţiilor (şi a evenimentelor generate de acestea) şi, de asemenea, se pot corela două sau mai multe evenimente (de exemplu, presiunea atmosferică în creştere şi temperatura în scădere). OEP pentru Java embedded vine împachetat opţional cu suita Java SE Embedded, adică: Java SE Embedded JVM, Java DB embedded database şi serverul de aplicaţii web, portat pentru dispozitive embedded, GlassFish (cuprinde şi suport pentru servicii web RESTful). Această suită necesită un procesor cu arhitectură ARM v6 sau ARMv7, kernel de Linux 2.6.28 şi glibc 2.9, suport VFP (Vector Floating Point) şi cel puţin 256 RAM şi 128 MB de ROM.

De ce Java şi i.MX6?

După cum am menţionat, platforma i.MX6 e destinată aplicaţiilor embedded grafice şi multimedia din lumea IoT. Dintre capabilităţile multimedia putem enumera: posibilitate de decodare şi decodificare HD 1080p/30fps, accelerare grafică 2D şi 3D (150 MTriunghiuri/s şi 1000 Mpixeli/s), suport pentru API-uri grafice (OpenGL/ES 2.0, OpenVG 1.1, OpenCL şi Direct3D 11), procesare de imagini (dispune de o unitate de procesare a imaginilor, IPU, cu funcţii de redimensionare, rotaţie, translaţii între formate de culoare sau de interlacing) şi suportă afişaje externe (până la două porturi LVDS, MIPI DSI şi HDMI v1.4). Freescale oferă suport pentru aceste capabilităţi începând cu versiunea 3.10.17 a BSP-ului de Linux pentru familia i.MX6.
Pe lângă accelerarea grafică, platforma se mai remarcă şi printr-un modul de accelerare criptografică performant (CAAM) prin intermediul căruia Java poate accelera anumite funcţii de securitate. Aşa cum am menţionat, Freescale pune un accent deosebit pe securitatea datelor în lumea IoT, adică pe păstrarea datelor confidenţiale, pe transportul datelor în siguranţă în reţea şi pe accessul la date în baza unor permisiuni. În acest sens, pentru a atinge criteriile de fiabilitate şi performanţa necesare în lumea IoT, Freescale aduce în prim plan familia QorIQ cu arhitectură Layerscape. Arhitectura Layerscape se remarcă prin accelerarea hardware a protocoalelor de securitate în reţea (IPsec, SSL sau TLS) şi implementarea hardware a celor mai răspândiţi algoritmi din domeniul criptografiei.
În concluzie, Freescale oferă prin familia de procesoare de aplicaţii i.MX6 o soluţie hardware eficientă pentru necesităţile reţelei IoT, îmbinând performanţa grafică cu securitatea datelor la un consum redus de energie. Java completează soluţia prin faptul că ştie foarte bine să gestioneze datele şi pe dispozitivele embedded.

Autor

Cătălin Horghidan
SW Developer
Freescale Semiconductor

Surse:
www.freescale.com/iot
media.freescale.com

Freescale, logo-ul Freescale, Kinetis, QorIQ şi Qorivva sunt mărci comerciale ale Freescale Semiconductor, Inc, Reg. US Pat. & Tm. Off. Layerscape şi Vybrid sunt mărci comerciale ale Freescale Semiconductor, Inc. Toate celelalte nume de produse sau servicii sunt proprietatea deţinătorilor lor. Power Arhitecture şi Power.org cuvântul, mărcile şi logo-urile Power şi Power.org şi mărcile asociate sunt mărci înregistrate şi mărci de servicii autorizate de Power.org. ARM, logo-ul ARM, Cortex şi TrustZone sunt mărci comerciale sau mărci înregistrate ale ARM Ltd. sau ale filialelor sale în UE sau în altă parte. Toate drepturile rezervate. Oracle şi Java sunt mărci înregistrate ale Oracle şi/sau afiliaţilor săi. © 2014 Freescale Semiconductor, Inc.

Freescale Semiconductor România S.R.L.

București
Tel: 021 3052 400
officero@freescale.com
www.freescale.ro

S-ar putea să vă placă și