Limbajul Java

UNIVERSITATEA DIN CRAIOVA

FACULTATEA DE ȘTIINTE

SPECIALIZAREA INFORMATICĂ

LUCRARE DE LICENȚĂ

CRAIOVA 2016

UNIVERSITATEA DIN CRAIOVA

FACULTATEA DE ȘTIINTE

SPECIALIZAREA INFORMATICĂ

Dezvoltarea Aplicațiilor Oracle Java SE Embedded

CRAIOVA 2016

Cuprins

Introducere în limbajul Java

Istoricul și descrierea limbajului Java

Java o tehnologie inovatoare, dezvoltată de compania Sun Microsystems (ulterior afiliată cu Oracle), cu un puternic impact asupra dezvoltatorilor de software, caracterizându-se prin fiabilitate, independență și adaptabilitate. Platforma Java poate funcționa pe o varietate impresionantă de sisteme hardware și sisteme de operare.

Dezvoltarea limbajului Java a început în aprilie 1991 la Sun, cu o echipă mică condusă de James Gosling. Acesta avea o reputație renumită în trecut, fiind cunoscut ca și un legendar programator Unix prin crearea primei versiuni în limbajul C a unui editor Unix popular, denumit Emacs, dar și a sistemului de ferestre grafice NeWS. Numele echipei era The Green și acționa ca o unitate independentă de Sun, având ca scop principal dezvoltarea de software care putea fi vândut companiilor electronice de larg consum.

La scurt timp după plasarea firmei Sun Microsystems pe piața produselor electronice comerciale, au descoperit că succesul constă în crearea unei platforme de dezvoltare independentă. Însă, pentru acest lucru era necesară extinderea uneltelor și a compilatoarelor C++, ceea ce s-a dovedit a fi incompatibil. În aceste condiții, cel mai bun lucru de făcut îl reprezenta dezvoltarea unui limbaj care oferă soluțiile necesare.

Denumit inițial Oak, după un stejar care se afla în afără biroului lui Gosling, și-a schimbat apoi numele în Green, iar în final, în anul 1995, a fost redenumit Java. Scopul principal era simplu, dar ambițios: Proiectarea unui limbaj de programare, care să poată rula pe orice dispozitiv conectat la retea. Astfel, se presupunea că noua tehnologie va avea abilitatea de a rula pe o multitudine de mașini, cum ar fi calculatoarele, televizoarele sau chiar prăjitoarele de paine.

În mai 1995, Sun a introdus limbajul Java și browserul corespunzător HotJava. Crearea limbajului Java și a uneltelor de lucru asociate a durat aproximativ patru ani, dar cum echipa a dovedit, patru ani au reprezentat un timp suficient pentru un nou standard pe care restul lumii să îl urmeze.

Figura 1

Câteva luni mai târziu, în decembrie 1995, Microsoft a fost de acord să licențieze Java, ceea ce a ajutat la creșterea popularității limbajului. În zilele noastre, limbajul este disponibil open-source.

Java este limbajul proeminent al Internetului, revoluționând programarea, prin schimbarea modului de gândire asupra formei și funcției unui program. Una dintre abilitățile pe care un programator profesionist trebuie să le aibă în zilele noastre este capacitatea de a lucra în Java.

O platformă reprezintă mediul hardware sau software în care un program ruleaza. Cele mai populare sunt Microsoft Windows, Linux, Solaris OS și Mac OS. Cele mai multe platforme pot fi descrise ca o combinație intre sistemul de operare și hardware-ul corespunzator.

Platforma Java este alcatuită din două componente:

Java Virtual Machine (JVM) – reprezintă punctul esențial al acestei tehnologii, permițând rularea pe orice sistem a unui program Java.

Java Application Programming Interface (Java API) – este o colectie mare de componente software standard, asigurând astfel funcționalitatea de bază a limbajului de programare Java. Acestea sunt grupate în biblioteci de clase și interfețe, cunoscute sub numele de pachete (packages).

Fiind un limbaj independent de platformă, poate fi mai lent decât codul nativ. Cu toate acestea, progresele în domeniul compilatoarelor și al masinilor virtuale, au facut ca performanța să fie mai apropriata de cea a codului nativ, fără a pune în pericol portabilitatea.

Un element fundamental în dezvoltarea unui program Java constă în Java Development Kit (JDK). Indiferent de programul Java ce se doreste a fi dezvoltat este necesar mediul JDK deoarece este alcătuit dîntr-o serie de biblioteci Java utile scrierii unui program și un set de instrumente necesare pentru compilarea, testarea, execuția și documentarea unei aplicații Java.

Principalele instrumente sunt:

javac.exe – compilatorul Java utilizat pentru aplicații și appleturi.

java.exe – interpretor Java pentru execuția aplicațiilor de sine stătătoare (stand – alone)

appletviewer.exe – unealtă pentru vizualizarea appleturilor

javadoc.exe – generează documentație pentru proiectul Java

jar.exe – tool pentru arhive .jar

javap.exe – dezasamblează fișiere byte code.

Fișierele Java (fișiere cu extensia .java), nu sunt executate direct de către microprocesor, ci prin intermediul mașinii virtuale Java. Acestea sunt compilate într-un limbaj numit byte code (fișiere cu extensia .class), similar limbajului de asamblare, și apoi executate de un interpretor Java. Instrucțiunile unui byte code sunt traduse în instrucțiuni mașină, putând fi apoi copiate și executate pe diverse platforme cum ar fi Windows sau Unix. Independența de platformă a limbajului Java constă în faptul că la instalare, este creată o corespondență între instrucțiunile mașinii fizice și acțiunile codului binar Java, care este inspectat și decodificat, și apoi executat rând pe rând.

Figura 2

Caracteristici

Printre caracteristicile care aduc tehnologia în topul celor mai cunoscute și folosite limbaje de programare la ora actuală, se numără:

Limbaj simplu – fundamentul limbajului Java este C++, cunoscut ca cel mai renumit limbaj orientat obiect. Însă Java, elimină câteva dintre trăsăturile care faceau limbajul C++ inadecvat și mult prea complex pentru cerințele de pe piață. Astfel, alocarea și eliberarea memoriei se fac automat (garbage collection), supraîncărcarea operatorilor, moștenirea multiplă, aritmetica pointerilor sunt doar câteva dintre conceptele care fac acest limbaj usor de învațat și folosit.

Limbaj concurent –permite aplicațiilor și appleturilor să ruleze eficient simultan, deși trebuie executate de un interpretor. Java suporta tehnica cunoscuta sub numele de multithreading, care permite rularea în același timp a mai multor procese.

Limbaj orientat obiect – principiile programării orientate obiect sunt implementate folosind clase. Clasele sunt colecții de obiecte ce au aceeași structură și comportament. Un obiect este caracterizat de atribute și metode. Odata ce clasele au fost definite, pot fi folosite cu ușurință pentru a deriva alte clase. Singurele care nu pot fi văzute ca și clase sunt interfețele, deși ele sunt folosite ca niste clase, dar fără a fi implementate efectiv. Programarea procedurala este prin urmare complet îndepărtată.

Limbaj independent de platformă – datorita existenței mașinii virtuale Java, limbajul nu depinde de platforma de lucru, aceeași aplicatie putând fi rulata pe diferite sisteme. De exemplu, dispozitive mobile, servere, calculatoare. Se asigură în acest mod o îmbunătațire substanțială în economia firmelor dezvoltatoare de software.

Limbaj distribuit – domeniul dezvoltării de software se află în continua expansiune și implică tehnici de scriere a programelor astfel incât acestea să poată fi executate în rețele, cum ar fi Internetul. În programarea traditională, aplicațiile rulau pe un singur calculator și doar datele erau distribuite în rețea. În programarea distribuită, programele pot fi descărcate din rețea și executate în același timp. Această abordare presupune multe modalități în care software-ul poate fi distribuit și partajat.

Limbaj sigur – securitatea a fost o problemă cu care creatorii C++ nu au avut de-a face, lăsând totul pe seama programatorilor individuali. Din moment ce Java a fost proiectat pentru a fi un limbaj de programare distribuit, securitatea este o preocupare principală. Programele care sunt rulate pe calculator personal au fost fie downloadate, fie cumparate. Odata instalate, pot fi verificate pentru virusi, și acestia pot fi eliminați în cazul în care provoacă daune sistemului. Programele distribuite, cum ar fi appleturile, se află pe un calculator gazdă. În acest caz, când sunt rulate, mai întâi, se downloadeaza codul executabil de calculatorul gazdă, fără a avea control asupra lui. Din fericire, filozofia care stă la baza limbajului, este securitatea. Tehnologia include multe caracteristici care ajută la prevenirea problemelor: omiterea pointerilor a fost o cheie esențială pentru reducerea riscurilor de securitate.

Platforme de lucru Java

Dezvoltatorii de software construiesc aplicații care se potrivesc unui anumit grup de utilizatori. În mod firesc, utilizatorii unei aplicații vor avea fiecare nevoi diferite. Platforma Java constientizeaza diferitele provocări cu care se confruntă dezvoltatorii zi de zi și oferă alegerea diferitelor tehnologii Java în funcție de nevoile personale.

J2SE (Java 2 Standard Edition) – reprezintă platforma standard de lucru, fiind utilă pentru crearea de aplicații Desktop și appleturi. Aceste aplicații se adresează unui număr mic de utilizatori. Tehnologia Java Web Start este inclusă aici, și permite descărcarea și rularea aplicațiilor Java de pe Internet, oferind următoarele avantaje: activare ușoară cu un singur click, garantează că este tot timpul executată cea mai recenta versiune a aplicației, elimină instalarea complicată sau procedurile de actualizare.

J2EE (Java 2 Enterprise Edition) – conține multe dintre API-urile prezente în Java SE, fiind adaptat pentru aplicații mai complexe menite să se potrivească companiilor medii și mari. De regulă, acestea sunt aplicații bazate pe servere, cu informații păstrate în baze de date distribuite și alcătuite din elemente ce trebuie să fie rulate în sisteme eterogene, adresându-se unui număr larg de utilizatori.

J2ME (Java 2 Micro Edition) – oferă un mediu robust, flexibil pentru aplicații care rulează pe dispozitive încorporate și mobile: micro-controlere, senzori, gateway-uri, agende personale digitale (PDA-uri), imprimante și multe altele. Java ME include intefețe de utilizator flexibile, securitate robustă, protocoale de rețea predefinite și suport pentru aplicații în rețea și offline pentru multe dispozitive.

Oracle Java SE Embedded

Descriere

Oracle este un lider în piața de produse Java integrate, oferind o familie extinsă de platforme Java care suportă o varietate mare de medii embedded în ceea ce privește restricțiile de memorie, chip-uri, sisteme de operare și cerințe specifice din industrie. Oracle este, de asemenea, furnizorul principal pe piața de baze date utilizate în sistemele integrate, cu baze de date C și Java pentru medii cu resurse limitate (Berkeley DB).

Oracle Java Standard Edition (Java SE) Embedded reprezintă o implementare completă a platformei Java SE, optimizată pentru platforme integrate. Permite dezvoltarea de aplicații extrem de funcționale, fiabile și portabile pentru cele mai puternice sisteme integrate din ziua de astăzi. Flexibilitatea platformei Java combinată cu o bază stabilită de implementare oferă posibilitatea dezvoltării de produse sigure și inovatoare, realizând în același timp economii de costuri și având beneficii în ceea ce priveste timpul de lansare pe piață.

Java SE Embedded, cu patrimoniul său stabilit și istoria implementărilor pe o gamă largă de produse încorporate, oferă un set bogat de biblioteci de conectivitate, mature și sigure, esențiale pentru conectarea dispozitivelor la aplicații enterprise. Acest lucru face Java SE Embedded, o alegere bună, permițând crearea de aplicații de înaltă performanță, portabile, sigure care rulează pe o gamă largă de platforme integrate, fără nici o modificare.

Java oferă o capabilitate de tip write-once-run-anywhere care are avantaje distincte în spațiul produselor integrate. Nu numai că acest lucru permite dezvoltarea și testarea de aplicații pe o platformă și lansarea pe alta, la fel ca și pe platforme multiple, cu un efort minim de dezvoltare și cu avantaje pentru lansare, dar creste și productivitatea dezvoltatorilor de astfel de produse.

Oracle Java SE Embedded furnizează deja soluții de valoare într-o gamă largă de produse embedded. Toate acestea au cerințe stricte în ceea ce priveste flexibilitatea, securitatea și inovația. Licența pentru această platforma este oferită gratuit de către Oracle Technology Network.

De ce Java SE Embedded?

Pentru că Java SE Embedded are aplicabilitate in multe domenii și de cele mai multe ori se dovedește a fi o alegere inteligentă. Printre domeniile care utilizează această tehnologie se numără:

Rețele inteligente

Dispozitive de sănătate și medicale

Imprimante multifuncționale digitale/copiatoare

Stocare de date online/NAS

Casă/Clădiri

Retail/Comerț

Automatizări industriale / producție

Utilizarea platformei Java în aplicații embedded aduce reale avantaje companiilor care o folosesc. Resursele Java pot oferi asistență în domenii precum:

Arhitectură / Design / Management

Perspective de viitor (tendințele pieței și adaptarea tehnologiei la schimbări/ preziceri viitoare în tehnologie și actualizări regulate)

Java Runtime Environment

Platformele Java sunt special concepute pentru a satisface nevoile pentru clase diferite de dispozitive: Java Card (16Kb/8Kb ROM/RAM), Java ME Embedded (128 KB RAM) și Java SE (de la 10.4 MB RAM).

Oracle oferă trei familii de produse Java Runtime Environment:

Java Standard Edition (Java SE): pentru calculatoare Macintosh, Windows, Linux, și Solaris. Resursele hardware și aplicațiile Java sunt rareori o problemă pe aceste computere.

Java SE Embedded: pentru sistemele integrate cu zeci de MB de memorie pentru un JRE și aplicații Java, cu sau fără interfață utilizator.

Java Micro Edition Embedded(Java ME Embedded): pentru sisteme integrate care au 1 MB sau mai puțin de memorie pentru un JRE și aplicații.

Elementul esențial pentru Java Runtime Environment este Java Virtual Machine(JVM). JVM încarcă, verifică și execută aplicațiile și librăriile de cod. Codul poate fi executat prin interpretarea lui direct în fișiere byte code, sau poate compila blocuri byte code utilizate frecvent în instrucțiuni mașină, le poate reține în memoria cache, și le poate rula mai rapid fără interpretare. JVM, de asemenea, gestionează alocarea și eliberarea dinamică a memoriei. Trei masini virtuale Java, sunt incluse în Oracle Java SE Embedded:

Minimal JVM – pune accentul pe utilizarea minima a memoriei și nu suporta toate optiunile pentru lansarea în executie Java.

Client JVM – este optimizata pentru capacitatea de raspuns. Porneste și compileaza aplicațiile mai rapid și utilizeaza mai putina memorie decât Server JVM.

Server JVM – are functionalitate identica cu Client JVM, deși utilizeaza mai multa memorie decât aceasta. Lanseaza și compileaza aplicațiile mai incet, dar le ruleaza mai rapid, deoarece creeaza mai mult cod optimizat. Nu este disponibila pentru toate dispozitivele.

Java Runtime Environment permite și sprijină executia în siguranță a instrucțiunilor Java portabile (bytecodes), pe un anumit procesor și sistem de operare. Un JRE clasic are mai multe componente:

Java Virtual Machine verifică și translatează fișierele byte code în instrucțiuni procesor și organizează execuția lor.

un organizator de memorie ce interactionează cu sistemul de operare al computerului pentru alocarea dinamică a memoriei și eliberarea ei.

interfața de programare pentru furnizarea de servicii, cum ar fi fișierele de sistem, accesul la baza de date și interfețele grafice utilizator.

baza de date pentru fișiere resursă pentru a stoca zone de timp, fonturi și locații

un launcher JRE, o comandă a sistemului de operare care porneste rularea unei aplicații Java.

Caracteristici

Printre caracteristicile Java SE Embedded se numără:

Profiluri compacte – simplifică crearea aplicațiilor embedded care nu necesită întreaga platformă pentru a fi instalate și rulate pe dispozitive mici. Din moment ce profilurile compacte sunt mult mai mici decât întregul mediu de execuție Java SE, ele permit aplicațiilor să fie instalate pe platforme cu spațiu de stocare limitat. Cel mai mic spațiu de rulare are 11MB, care este de patru ori mai mic decât tradiționalul mediu de execuție Java SE. În plus, profilurile compacte, oferă o convergență a produselor Java ME CDC (Connected Device Configuration). Cu un suport complet pentru limba și API, dezvoltatorii au acum o singura specificație care va sprijini clasă de dispozitive Java ME CDC sub auspiciul Java SE.

Suport complet – unele soluții nu au nevoie de suport pentru capabilități interactive cum ar fi video, tastatura sau mouse. De aceea, pentru a aborda aceste soluții există o serie de variante Java SE Embedded. Pentru aplicații embedded care au nevoie de o bogată experienta interactiva, Oracle Java SE Embedded oferă două opțiuni: librăriile Swing/AWT și JavaFX pentru grafica. JavaFX este un set de instrumente de grafică de ultimă generație pentru Java, și oferă posibilitatea creării de interfețe grafice utilizator mult mai bogate și expresive.

Diagnosticare și rezolvare a problemelor avansată – Oracle Java SE Embedded oferă o gama completă de instrumente pentru a colecta în mod continuu informații de nivel scăzut și detaliate despre rulare, care să permita după ocurență analiza pentru diagnosticare de la distanță, profilare și rezolvare.

Optimizări de performanță pentru sistemele bazate pe procesoare ARM –Java SE Embedded folosește un tool pentru generarea de cod nativ mai rapid pentru sistemele bazate pe procesoare ARM; sunt valorificate instrucțiuni avansate de la ARM (ex. ARM NEON), pentru imbunatatirea performanței simultane a operațiilor în virgulă mobilă.

Minimal JVM – are aproximativ 3 MB pentru platforme ARM, permițând rularea pe o gamă largă de dispozitive cu resurse limitate. Această reducere de memorie se realizează prin eliminarea caracteristicilor mai putin esențiale cum ar fi multiple acțiuni de eliberare a memoriei, suport pentru instrumentele VM, și alte funcționalități și caracteristici de management.

Java SE Embedded vs Java SE

Java SE Embedded deriva din Java SE, având aceeași funcționalitate și suportând aceleași platforme. În plus, oferă caracteristici specifice, optimizări și suport pentru piața produselor embedded. Îmbunătățirile acordate cuprind suport pentru platforme hardware embedded, optimizări de memorie, și configurații. Exemplele de îmbunătățiri includ:

timp de rulare mai mic

unelte care permit crearea de JRE-uri personalizate și optimizate din punct de vedere al spațiului utilizat

un download și o pornire mai rapidă

JVM minimală, utilizând doar strictul necesar

optimizări pentru memoria necesară compilării

îmbunătățiri de perfomanță pentru sisteme bazate pe procesoare ARM

Raspberry Pi

Descriere

Raspberry Pi este un mini-calculator, proiectat inițial in scop educațional, inspirat de BBC Micro din 1981. Scopul creatorului Eben Upton a fost să creeze un dispozitiv cu cost redus care să îmbunătățească abilitățile de programare și de înțelegere hardware la nivel preuniversitar. Dar datorită dimensiunilor mici și a prețului accesibil, a fost adoptat rapid de persoanele pasionate de electronică pentru proiecte care necesită mai mult decât un simplu microcontroler, cum ar fi dispozitivele Arduino.

Raspberry Pi este un SBC (Single-Board Computer), de dimensiunea unui card de credit, ce poate fi conectat la un mouse și o tastatura standard. Este un dispozitiv mic, sub forma unei plăcuțe de circuit imprimat, ce permite persoanelor de toate vârstele să exploreze domeniul calculatoarelor, și să invete să programeze in limbaje precum Scratch sau Python. Platforma cu microprocesor este mai lentă decât un computer desktop sau un laptop modern, dar este un mini-calculator ce rulează un sistem de operare de tip Linux și poate îndeplini așteptările unui calculator obisnuit, de la navigarea pe Internet, redarea video in format HD, până la foi de calcul tabelar, procesare de cuvinte și jocuri, la un consum redus de energie.

Mai mult decât atât, plăcuța are capacitatea de a interacționa cu lumea exterioara, și a fost folosita într-o gamă largă de proiecte digitale, de la mașinării muzicale și detectoare parentale până la stații meteorologice și case de păsări cu camere cu infrarosu.

De-a lungul timpului, au apărut mai multe versiuni de Raspberry Pi, dupa cum urmează:

Raspberry Pi 1 model B, lansat in 2012, cu o memorie RAM de 512 MB, două porturi USB, slot pentru card SD și un port Ethernet.

Raspberry Pi 1 model A, lansat in februarie 2013, cu o memorie RAM de 256 MB, 1 port USB și slot pentru card SD.

Raspberry Pi 1 model B+, lansat in iulie 2014, cu o memorie RAM de 512 MB, patru porturi USB, slot pentru card MicroSD și un port Ethernet.

Raspberry Pi 1 model A+, lansat in noiembrie 2014, cu o memorie RAM de 256 MB, 1 port USB, slot pentru card MicroSD.

Raspberry Pi 2 model B, lansat in februarie 2015, cu o memorie RAM de 1 GB, patru porturi USB, slot pentru card MicroSD și un port Ethernet.

Raspberry Pi 3 model B, lansat in februarie 2016, cu o memorie RAM de 1 GB, patru porturi USB, slot pentru card MicroSD, un port Ethernet, wireless și bluetooth 4.1.

In comparație cu un calculator obișnuit, Raspberry Pi permite realizarea de conexiuni hardware cu alte dispozitive cu ajutorul pinilor GPIO, prezenți, de regulă, pe partea laterală a mini-calculatorului, ce pot fi controlați cu usurință prin orice limbaj de programare ce rulează pe plăcuță. Astfel, putem să atasam diferiti senzori cum ar fi senzori de umiditate, temperatură, distanta, mișcare, infraroșu, presiune barometrică. De asemenea, pot fi conectate butoane, led-uri, drivere de motoare, relee.

Cu un avantaj câștigat prin dimensiunea mică și pretul scăzut, dar cu o perfomanță ridicată, Raspberry Pi este o alegere bună pentru proiecte din diverse domenii precum robotică, jocuri 3D, imprimare 3D, stații meteorologice, servere web și nu numai.

Sistemul de operare Raspbian

Sistemul de operare utilizat pentru prima versiune a plăcuței Raspberry Pi, lansată in 2012, a fost Debian Wheezy, o versiune Debian dezvoltată pentru dispozitivele cu procesor ARM. Cum Wheezy era un sistem de operare specific procesoarelor ARM, nu ținea cont de hardware-ul plăcuței, unde se puteau face îmbunătățiri semnificative ale vitezei. Un grup mic de dezvoltatori a început să optimizeze software-ul disponibil, în mod special pentru Raspberry Pi și a lansat o nouă distribuție sub numele de Raspbian.

Așadar, Raspbian este un sistem de operare gratuit bazat pe Debian, optimizat pentru hardware-ul Raspberry Pi. Un sistem de operare este un set de programe de bază și utilitare care face plăcuța să functioneze. Mediul de lucru este simplu, cu o interfață familiară ce conține o bară de meniu la baza ecranului și un buton de meniu în colțul din stânga jos și este o alegere bună pentru persoanele care nu sunt obișnuite cu distribuțiile Linux și necesită mai puține cunoștinte tehnice decât alte sisteme de operare. De asemenea, are caracteristici bune de securitate și retea, acces la multe aplicatii gratuite și utilitati care pot fi instalate din terminal.

Raspberry Pi nu se ridică la nivelul unui computer desktop, astfel unele programe vor funcționa mai lent; de exemplu, browserele web sunt multe mai lente, cu mai putine capabilitati, însă perfect utilizabile. Cu ajutorul optimizării de software, Raspberry Pi poate reda fisiere video și audio HD fără probleme. Pentru redare in formatul MPEG-2, este necesară mai întâi achiziționarea unei licențe de la fundația Raspberry Pi, care costă doar câteva lire.

Fundația, a folosit Raspbian ca sistem de operare principal și a lansat propria versiune ce are o seleție de programe pre-instalate, în scop educațional, cum ar fi: Scratch, Python și magazinul Rasperry Pi. Cu toate acestea, Raspbian oferă mai mult decât un sistem de operare: vine cu 35000 de pachete, software pre-compilat inclus într-un format care să asigure o instalare ușoară.

Pentru conectarea la Raspberry PI, utilizând doar o sursă de alimentare și un cablu de rețea, avem urmatoarele alternative:

Conectarea prin SSH, caz in care se foloseste protocolul SSH, este disponibilă doar linia de comandă și nu și interfața grafică.

Conectarea prin VNCServer, server specializat ce poate fi instalat după conectarea prin SSH, permite vizualizarea și controlarea desktop-ului plăcuței după un alt calculator sau laptop.

Conectare prin SSH

Protocolul SSH, cunoscut și sub numele de Secure Socket Shell, este un protocol de rețea criptografic, prezent la nivelul 7 din modelul OSI, și permite autentificarea de la distanță, precum și alte servicii de retea care să funcționeze în siguranță, printr-o rețea nesecurizată.

SSH oferă un canal securizat printr-o rețea nesecurizată într-o arhitectură de tip client-server, și este specific sistemelor de operare Linux. Protocolul este utilizat pe scară largă de către administratorii de rețea pentru gestionarea de la distanță a sistemelor și aplicațiilor, permitând autentificarea de la distanță, execuția comenzilor și transferul de fișiere de pe un computer pe altul. Protocolul se imparte în două versiuni majore: SSH – 1 și SSH – 2.

Sistemul de operare Raspbian, are implicit activ serverul ce implementează protocolul SSH. Autentificarea, execuția comenzilor și a aplicațiilor pe Raspberry Pi vor fi controlate utilizând calculatorul personal.

Pentru conectarea prin SSH, mai întâi se va downloada o aplicație client SSH. Cea mai frecvent utilizată este PuTTY și poate fi descarcată gratuit de site-ul www.greenend.org.uk. Putty este o aplicație proiectată pentru a controla de la distanță unul sau mai multe servere folosind conexiunea la Internet. Utilizatorul se poate conecta și trimite comenzi de pe computerul său pe altul. Aplicația nu are un pachet de instalare, este doar un fisier executabil .exe.

Pasii pentru utilizarea aplicației sunt:

Se alimentează plăcuța cu energie. Sistemul de operare Linux trebuie să fie deja instalat și să aiba cablul de rețea conectat.

Se determină IP-ul alocat mini-calculatorului. Există mai multe metode printre care: se introduce hostname –I in linia de comandă, se utilizează tabela de ip-uri a router-ului, sau se folosește aplicația Android Fing.

IP – ul se introduce in câmpul Host Name. Portul trebuie să fie 22 și Connection Type SSH. Se apasă ulterior Open.

In fereastra de conectare nou apărută, se folosește numele de utilizator: pi și parola: raspberry. Datele de conectare sunt implicite pentru sistemul de operare Raspbian.

Se va obtine o fereastră de comandă Raspberry Pi identică cu cea implicită.

Pentru a închide PuTTy se tastează exit.

Conectare prin VNCServer

VNC (Virtual Network Computing) este un sistem grafic de partajare a desktop-ului, ce permite vizualizarea interfeței desktop de la un computer la altul. Transmite acțiunile mouse-ului și a tastaturii de la controler, și primeste actualizări pe ecran, prin rețea de la calculatorul gazdă aflat la distanță.

Desktop-ul plăcuței Raspberry Pi poate fi vizualizat în interiorul unei ferestre de pe computer, și poate fi controlat ca și cum s-ar lucra cu plăcuța in sine.

Pași pentru utilizarea conexiunii prin VNCServer:

Prin intermediul unui monitor sau SSH, se instaleaza pachetul VNC pe plăcuță.

sudo apt-get install tightvncserver

Se rulează TightVNC Server. Se solicită introducerea unei parole, ce trebuie reținută pentru o utilizare ulterioară.

tightvncserver

Se lansează un server VNC de la terminal, ce va porni automat sesiunea nr.1.

Pe calculatorul folosit pentru acces remote, se descarcă un program client VNC. Cel mai frecvent utilizat este TightVNC, ce poate fi descărcat de pe site-ul www.tightvnc.com.

Se instalează programul client downloadat. In timpul instalării, există posibilitatea alegerii între instalare Typical, Custom sau Complete. Pentru că este nevoie doar de VNC client și nu și server, se va alege Custom.

Se selectează TightVNC Server și apoi Entire feature will be unavailable. Se apasă Next și se debifează opțiunea Windows Firewall și apoi Install.

Figura 10

Odată ce instalarea este completă TightVNC Viewer se poate găsi în meniul de pornire. Cand aplicatia este rulată, se introduce ip-ul plăcuței urmat de :0 sau :1.

Figura 11

Se apasă Connect și se va introduce parola utilizată pentru configurarea VNC Server și apoi va fi lansat desktop-ul Raspberry Pi. Pentru deconectare nu se utilizează opțiunea de Log Out, ci este suficientă închiderea ferestrei TightVNC și utilizarea comenzii kill pentru a închide serverul VNC.

Figura 12

Raspberry Pi 3 vs Raspberry Pi 2

Raspberry Pi 3 este a treia generație de Raspberry Pi. A înlocuit Raspberry Pi 2 Model B in februarie 2016. Comparativ cu Raspberry Pi 2 are:

Procesor quad-core ARMv8 pe 64 de biti la 1.2 GHz.

802.11n Wireless LAN

Bluetooth 4.1

Bluetooth Low Energy (BLE)

Similarități intre Raspberry Pi 3 și Raspberry Pi 2 Model B:

4 porturi USB

40 de pini GPIO

Port Full HDMI

Port Ethernet

3.5 mm audio jack și video compozit

Interfata pentru camera(CSI)

Interfata pentru display(DSI)

Slot pentru card Micro SD

Nucleu grafic VideoCore IV 3D

Raspberry Pi 3 are un factor de formă identic cu predecesorul Pi 2(și Pi 1 Model B+) și este perfect compatibil cu Raspberry Pi 1 și 2.

Raspberry Pi 3 Model B este recomandat să fie folosit în școli sau pentru orice alt uz general. Cei care doresc să integreze Raspberry Pi într-un proiect, pot folosi și Pi Zero sau Model A+, care sunt mai utile in proiectele embedded și în proiectele care necesită o putere scăzută.

Pregatirea mediului de lucru

Instalare și configurare Raspberry Pi

Elemente esențiale pentru că Raspberry Pi să devină operațională:

1. Card micro SD, de minim 4 GB ce va conține sistemul de operare.

2. Monitor, LCD, sau plasmă cu intrare HDMI. Ținând cont de faptul că procesorul video al plăcuței nu depinde de procesorul principal, aceasta poate oferi rezoluție FULL – HD. Dacă monitorul sau celelalte dispozitive nu sunt prevăzute cu conexiune HDMI, atunci se poate utiliza un cablu HDMI – VGA sau HDMI – DVI, în funcție de tipul de conexiune suportat. Ca posibilă opțiune, prin intermediul mufei RCA , putem conecta un televizor dintr-o generație mai veche, insă redarea video va avea o calitate scăzută și o rezoluție mai mică.

3. Mouse și tastatură. Plăcuța permite conectarea unei tastaturi și a unui mouse prin intermediul porturilor USB; acestea pot fi și wireless.

4. Sursă de alimentare, care să furnizeze o tensiune de 5V și minim 700 mĂ. Conectarea alimentarii se face printr-o mufă microUSB, identică cu cea a telefoanelor inteligente. Alimentarea cu energie este partea esențială a sistemului și este necesar să fie aleasă cu atenție. Cele mai frecvente probleme care pot apărea atunci când nu este sursă de alimentare nu asigura suficient curent sunt: plăcuța se încinge și devine un potențial risc de incendiu, la transfer mare de date sistemul de operare se resetează sau se pierd date, plăcuța se poate distruge complet.

Printre elementele care nu sunt necesare, dar utile se numără:

1. Conexiune la Internet. Utilă pentru descărcarea sau actualizarea software-ului. Se poate folosi un cablu Ethernet sau un adaptor wireless.

2. Căști. In acest caz sunt necesare căști cu mufa jack de 3.5 mm.

Pentru instalarea sistemului de operare pe cardul microSD se utilizează un tool de instalare, și anume NOOBS(New Ouț Of the Box Software). Acesta este disponibil gratuit pe website-ul https://www.raspberrypi.org/downloads, în două variante: NOOBS și NOOBS Lițe. Versiunea completă are sistemul Raspbian inclus, deci acesta poate fi instalat pe cardul SD, offfline, în timp ce NOOBS Lițe necesita o conexiune la Internet. Cea mai nouă versiune de NOOBS este 1.9.0 și a apărut pe 18 Martie 2016. Sistemele de operare conținute sunt:

Raspbian, sistem de operare bazat pe Debian (distribuție Linux), elaborat de o echipă mică de dezvoltatori; nu este afiliat cu fundația Raspberry Pi.

Pidora, distribuție Fedora specializată pentru Raspberry Pi, cu o interfață și programe software diferite față de Raspbian, incluzând limbaje de programare, editoare de text și multe altele.

OpenELEC, sistem conceput pentru a consuma resurse relativ puține și pentru a porni rapid din memoria flash, bazat pe Kodi.

OSMC, Open Source Media Center, media player gratuit, open source, fondat în 2014, ce poate reda conținut media în cele mai importante formate, și suporta o varietate de protocoale de partajare.

RISC OS, un sistem de operare britanic, care a fost proiectat special pentru procesorul ARM de către aceeași echipă care a creat procesorul ARM original. Este rapid, compact și eficient, cu o serie de caracteristici unice, care îl fac diferit de Linux sau Windows.

Arch Linux, este o distribuție Linux dezvoltat de Judd Vinet și continuat de A. Griffin. Se caracterizează prin simplitate, versatilitate, pragmatism și modelul rolling-release, străduindu-se să ofere versiuni de software recente stabile.

NOOBS a fost proiectat pentru a facilita procesul de instalare al sistemului de operare pentru Raspberry Pi. Începând cu versiunea 1.3.10 (Septembrie 2014), doar Raspbian este instalat implicit. Celelalte versiuni pot fi instalate folosind o conexiune Internet.

Interfața NOOBS oferă urmatoarele funcționalități:

Instalare: instaleaza sistemul de operare selectat pe cardul micro SD. Schimbarea opțiunii selectate duce la ștergerea automată a sistemelor de operare instalate.

Edit Config: deschide un editor de text permițând configurarea sistemului de operare.

Online Help: necesită conexiune la Internet, deschide pagina de help pentru Raspberry Pi, http://www.raspberrypi.org/help/, unde se găsesc soluții pentru diverse probleme.

Exit: închide și repornește sistemul.

Language Selection: permite selectarea limbii care va fi afișată.

Display Mode Selection: modul implicit, redă imaginea prin HDMI, și permite selecția modului preferat de utilizator.

Keyboard Layout Selection: permite selectarea tastaturii ce va fi utilizată.

Pași pentru a configura un card micro SD cu NOOBS:

Se formatează cardul de memorie. În functie de sistemul de operare prezent pe calculatorul personal se pot utiliza diferite tool-uri. De exemplu, pentru Windows și Mac acesta poate fi downloadat de pe site-ul https://www.sdcard.org/.

Se descarcă și se extrage conținutul din fișierul NOOBS .zip.

Se descarcă și se extrage conținutul din fișierul NOOBS .zip.

Se copiază conținutul extras pe cardul formatat astfel încât fișierul NOOBS să se afle în directorul rădăcina.

Instalare și configurare NetBeans IDE

NetBeans IDE, permite dezvoltarea rapidă și ușoară de aplicații Java desktop, mobile sau web și HTML5 bazate pe HTML, JavaScript și CSS. De asemenea, oferă un set mare de instrumente pentru dezvoltatorii PHP și C/C++. Este gratuit, open source, și are o comunitate mare de utilizatori și dezvoltatori în întreaga lume. Se caracterizează prin editarea inteligenta și rapidă a codului, managementul eficient și ușor al proiectului, dezvoltarea rapidă a interfeței cu utilizatorul și scrierea de cod fără erori.

NetBeans Editor asigură indentarea, potrivirea de cuvinte și paranteze și evidențiază semantic și sintactic codul sursă. Prin intermediul unor tool-uri puternice, codul poate fi refactorizat, oferind în același timp șabloane, sugestii și generatoare pentru acesta. Editorul suporta o varietate de limbaje de la Java, C/C++, XML și HTML până la PHP, Groovy, Javadoc, JavaScript și JSP. Pentru că este extensibil, se pot adăuga și alte limbaje.

Păstrarea unei imagini clare a aplicațiilor de dimensiuni mari, cu mii de foldere și fișiere, și milioane de linii de cod este o sarcină dificilă. NetBeans IDE oferă metode de vizualizare diferite, de la ferestre multiple până la instrumente utile pentru configurarea și gestionarea eficientă a aplicațiilor, prin intermediul unor instrumente precum Subversion, Mercurial și Gât. Când noi programatori se alătura proiectului, ei pot înțelege structura aplicației deoarece codul este bine organizat.

Prin utilizarea editoarelor și a uneltelor de tipul drag-and-drop crearea interfețelor utilizator este promptă și fără probleme. Pentru aplicațiile Java SE, NetBeans GUI Builder are grijă automat de spațierea și aliniera corectă, fiind ușor de utilizat și intuitiv. Acest lucru a dus chiar la folosirea lui live la prezentările clienților.

Consecințele folosirii unui cod cu erori, cresc pe măsură ce acesta nu este reparat. NetBeans oferă instrumente de analiza statică, în special integrarea cu tool-ul FindBugs utilizat pe scară largă, pentru identificarea și rezolvarea problemelor din codul Java. În plus, NetBeans Debugger permite executarea pas cu pas a codului pentru a putea vedea unde sunt probleme.

NetBeans Profiler facilitează crearea de aplicații Java SE, Java EE și Java FX, oferind și asistenta specializată pentru optimizarea memoriei și a vitezei acestora. NetBeans IDE include un visual debugger, și astfel nu accesează codul sursă când verifică interfețele utilizator. Totuși, printr-un simplu click pe elementele din interfața se poate vedea codul asociat acestuia.

Descrierea Aplicației

Ce este un sistem integrat?

Un sistem integrat este un sistem de calcul dedicat, o combinație de hardware și software, proiectat să implementeze o anumită funcționalitate. Deoarece, un astfel de sistem este conceput pentru a efectua doar anumite sarcini, dimensiunea, costurile, consumul de energie, fiabilitate și performanță pot fi optimizate. Sistemele integrate, sunt, în mod obișnuit, produse pe scări largi și au funcționalități într-o varietate de medii și aplicații.

Sistemele integrate sunt gestionate de nuclee unice sau multiple de procesare sub formă de microcontrolere sau procesoare de semnal digital (DSP), porți logice programabile (FPGA), circuite integrate specifice aplicației (ASIC), tablouri de porți logice. Aceste componente de procesare, sunt integrate cu componente dedicate operării interfețelor electrice și/sau mecanice.

Principala caracteristică a unui sistem integrat este dedicarea pentru funcții specifice care au nevoie de procesoare de uz general puternice. De exemplu, routerele sau sistemele cu switch-uri sunt sisteme integrate, în timp ce un computer cu scop general, folosește un sistem de operare adecvat pentru funcționalitatea de routare. Cu toate acestea, routerele integrate funcționează mai eficient decât calculatoarele cu sistem de operare în ceea ce privește funcționalitatea de routare.

Sistemele integrate comerciale variază de la ceasuri digitale și playere MP3, până la routere gigant și switch-uri. Complexitatea este diferită putând avea chip-uri cu un singur procesor sau unități avansate cu mai multe chip-uri de procesare.

Majoritatea sistemelor integrate nu dispun de interfețe grafice utilizator convenționale, ceea ce înseamnă că nu folosesc dispozitive de intrare precum tastatura sau mouse și nici display. Mai precis, răspund intrărilor de la senzori. Un exemplu îl constituie termometrele sau acceloremetrele. Răspunsul vine prin ajustarea actuatorilor, cum ar fi alarmele sau trimiterea de mesaje.

Deși utilizatorii interacționează cu asemenea sisteme, prin butoane sau prin intermediul ecranelor senzitive, dispozitivele nu arata și nu se comportă ca un computer desktop.

Sistemele integrate au, în general, atribute care le fac destul de diferite de aplicațiile desktop:

funcționalitatea este stabilită din fabrică; sunt dedicate, nu au uz general; volumul lor de lucru este previzibil

folosesc un hardware particularizat

sunt atent optimizate pentru a foloși cele mai puține resurse computaționale pentru îndeplinirea cerințelor

nu permit funcționarea defectuoasă; de obicei,un astfel de sistem nu poate fi reparat după ce este implementat

Bibliografie

Cărți folosite:

Anthony Potts, David H. Friedel, Jr., Java Programming Language Handbook

Note de subsol:

https://java.net/downloads/jdf/Cristian_Frasinaru-Curs_practic_de_Java.pdf

Anthony Potts, David H. Friedel, Jr., Java Programming Language Handbook

Anthony Potts, David H. Friedel, Jr., Java Programming Language Handbook

http://www.oracle.com/events/global/en/java-outreach/resources/java-a-beginners-guide-1720064.pdf

http://www.oracle.com/us/technologies/java/oracle-javase-embedded-ds-365290.pdf

https://docs.oracle.com/javase/8/embedded/JEMAG.pdf

https://www.raspberrypi.org/help/what-is-a-raspberry-pi/

https://www.raspberrypi.org/documentation/remote-access/vnc/README.md

https://netbeans.org/features/index.html

http://andrei.clubcisco.ro/cursuri/f/f-sym/4si/l01.pdf

Imagini:

https://docs.oracle.com/javase/8/embedded/JEMAG.pdf

https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html

https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html

http://image.slidesharecdn.com/chapter10-131111210004-phpapp01/95/chapter-10understanding-java-related-platforms-and-integration-technologies-5-638.jpg?cb=1384203685

http://img.directindustry.com/images_di/photo-g/27142-6613799.jpg

http://www.oracle.com/us/technologies/java/oracle-javase-embedded-ds-365290.pdf

https://en.wikipedia.org/wiki/Raspberry_Pi#/media/File:Raspberry_Pi_B%2B_rev_1.2.svg

https://www.raspberrypi.org/documentation/remote-access/ssh/images/ssh-win-config.png

https://www.raspberrypi.org/documentation/remote-access/ssh/images/ssh-win-window.png

https://www.raspberrypi.org/documentation/remote-access/vnc/images/win/vnc-win-install.png

https://www.raspberrypi.org/documentation/remote-access/vnc/images/win/vnc-win-connect.png

https://www.raspberrypi.org/documentation/remote-access/vnc/images/win/vnc-win-connected.png

https://www.robofun.ro/image/data/produse/Farnell/rasv3-2.JPG

https://www.raspberrypi.org/documentation/installation/images/noobs.png

Similar Posts

  • Biserica Comuniunea Sfintilor

    === 8b5fec6f93ca49398795b4511fc595228d2ca602_103110_1 === Сuprinѕ : IΝΤRОDUСΕRΕb#%l!^Îa? ARGUΜΕΝTUL LUСRĂRII Învățătura creștină ɑ provocat mereu atenția oamenilor fie ɑ creștinilor, fie ɑ celor din afara credinței creștine, dar și aceștia erau dornici de ɑ cunoaște mai multe despre începuturile creștinismului. Credința creștină ɑ stârnit reacții, după cuvântul Mântuitorului :,,e ca un semn ce va stârni împotriviri”, cine…

  • Tipatul Atractivitatii Faciale In Societatea Contemporana la Persoanele de Gen Masculin

    === Dentar 1 -curat bun p 2 === FACULTATEA……………… SPECIALIZAREA……………………. LUCRARE DE LICENȚĂ/DISERTAȚIE Profesor(i) coordonator(i):……………… Absolvent (ă): , 2018 FACULTATEA……………… SPECIALIZAREA……………………. LUCRARE DE LICENȚĂ ´´ Tiparul atractivității faciale în societatea contemporană la persoanele de gen masculin’’ Profesor(i) coordonator(i):……………… Absolvent (ă): , 2018 Cuprins Introducere………………………………………………………………………………………………………………1 Partea personală Capitolul 5. Materiale și metode………………………………………………………………………………….. Capitolul 6. Rezultate…………………………………………………………………………………………………. Capitolul…

  • Evaluarea Si Selectia Instrumentelor Financiare

    === 1b343e45655677ddee82c3f82ab5e8580fb3caf2_105233_1 === Сuрrins Introduϲеrе СAΡIΤOLUL I INSΤRUМΕNΤΕ FINANСIARΕ 1.1 Noțiuni tеorеtiϲе 1.2 Valorilе mobiliarе ϲlasiϲе 1.3 Instrumеntеlе finanϲiarе dеrivatе СAΡIΤOLUL II ΕVALUARΕA INSΤRUМΕNΤΕLOR FINANСIARΕ 2.1 Εvaluarеa inițială 2.2 Εvaluarеa ultеrioară 2.3 Dерrеϲiеrеa aϲtivеlor finanϲiarе СAΡIΤOLUL III SΕLΕСȚIA INSΤRUМΕNΤΕLOR FINANСIARΕ 3.1 Oрinii рro și ϲontra sеlеϲțiеi instrumеntеlor finanϲiarе Сonϲluzii Bibliografiе Introduϲеrе Ρrinϲiрalеlе tiрuri dе instrumеntе…

  • Banii. Functiile Lor

    Banii si functiile lor Studenta: Ciubotaru Ioana-Valentina Specializarea: Management anul II Conceptul de moneda “Banii reprezinta un instrument social, o forma particulara imediat mobilizatoare a avuției sociale, o întruchipare transmisibilă și omnivalentă a puterii de cumpărare, care confera detinatorului dreptul asupra partii din produsul social al tarii emitente.” (Costin Kiritescu) Banii sunt esentiali si cei…

  • Analiza Firmei Petrom

    Studiu de caz Petrom este cea mai mare companie româneasca de petrol si gaze, cu activitati în sectoarele Explorare si Productie, Rafinare și Produse Petrochimice, Gaze Naturale, precum si Comercializare. Petrom exploateaza rezerve de petrol si gaze estimate la 1 miliard barili echivalent petrol, are o capacitate maxima anuală de rafinare de 8 milioane tone…

  • Analiza Particularitatilor Activitatii de Marketing In Cadrul Unei Intreprinderi Prestatoare de Servicii. Vodafone

    === 8411ca0ad52393596266f0254e8df30033c44a00_42038_1 === CUPRIΝS IΝТRОDUCЕRЕ În ultima vrеmе și mai alеs în ultimul dеcеniu, sе cοnstată accеntuarеa prеοcupărilοr în dοmеniul prοmοvării prοdusеlοr dar mai alеs a vânzărilοr. Аcеst fapt a cοndus la amplificarеa rοlului prοmοvării în cadrul activitățilοr dе markеting și ca urmarе la divеrsificarеa οbiеctivеlοr prοmοțiοnalе. Cοnținutul prοmοvării rеzidă în cοmplехitatеa cοncеptului dе prοmοvarе,…