Acest capitol prezinta noile facilitati oferite de versiunea 1.4 a Java 2 SDK, Standard Edition. Aceste noi facilitati se refera la modificari si adaugiri aduse API-ului existent, sau la introducerea de noi API-uri si produse Java.
Versiunea 1.4 permite dezvoltarea de aplicatii client avansate si furnizeaza o baza pentru urmatoarea generatie de servicii web bazate pe standarde, dar îmbunatatirile cele mai semnificative sunt pe ambele parti de dezvoltare: partea de client si partea de server.
Pe partea de client, a fost îmbunatatita performanta applet-urilor si aplicatiilor bazate pe interfata cu utilizatorul care folosesc un engine de grafica 2D îmbunatatit. De asemenea au fost adaugate noi controale Swing cum ar fi: tab pane cu scroll, spinner, popup, etc. Odata cu aceasta versiune este furnizat suport complet pentru drag and drop si un suport mai avansat pentru schimb de date între aplicatii, raspunsul utilizatorului la aplicatie (auditory feedback) si suport pentru mouse wheel. Alte îmbunatatiri sunt optiunile de distributie a codului Java utilizând avantajele aduse de Java Web Start si Java Plug-in, precum si facilitati legate de internationalizare.
Pe partea de server, a fost îmbunatatita performanta din VM (Virtual Machine) datorita loader-ului de clase mai avansat, suportului pentru 64 de biti si noului pachet I/O pentru web si aplicatii server de mare performanta. Securitatea a fost îmbunatatita, pe partea de client si server, prin adaugarea de noi pachete, cum ar fi Java Cryptography Extension (JCE), Java Secure Socket Exten 121j96b sion (JSSE) si Java Authentication and Authorization Service (JAAS). De asemenea a fost adaugat la platforma suport pentru procesare XML, Certification Path pentru certificare, GSS-API pentru schimbare de mesaje între aplicatii, suport pentru IPv6 si Java DataBase Connectivity (JDBC) 3.0.
Cele mai interesante API-uri si produse care au fost introduse sunt prezentate în cele ce urmeaza.
XML (Extensible Markup Language) este tehnologia preferata pentru multe din aplicatiile de transfer de informatii deoarece are abilitatea de a coda informatia într-un format care este usor de citit, procesat si generat. Java suporta XML. Java si XML au caracteristici comune: ambele limbaje au o evolutie similara, au aceleasi scopuri (simplicitate, portabilitate si flexibilitate) si continua sa fie dezvoltate în grupuri care implica industria, dezvoltarea în comunitate si medii academice. Din aceste motive se poate spune ca Java este mediul cel mai preferat pentru dezvoltarea de aplicatii pe partea de server si partea de client bazate pe XML.
Java API pentru procesare XML include facilitatile de baza pentru lucrul cu documente XML prin urmatorul set de API-uri standardizare:
Document Object Model (DOM) Level 2
Simple API for XML Parsing (SAX) 2.0
XML Stylesheet Language Transformations (XSLT)
Plugability Layer
Tehnologiile XML si Java sunt complementare. Tehnologia Java furnizeaza cod portabil si gestionabil pentru procesarea de date reutilizabile în format XML.
Document Object Model (DOM) reprezinta un set de interfete definite de grupul de lucru W3C DOM. DOM descrie facilitati de reprezentare programatica a unui document parsat XML. Specificatia DOM Level 2 defineste aceste interfete folosind Interface Definition Language (IDL) într-un mod independent de limbaj si include legatura cu limbajul Java.
API-ul inclus în Java pentru procesarea XML este implementat în pachetul org.w3c.dom care este parte din Common DOM API (un set de pachete Java).
Simple API for XML (SAX) este un API public dezvoltat în colaborare cu membrii grupului de discutii XML-DEV. Acesta furnizeaza o interfata condusa de evenimente pentru procesul de parsare a documentelor XML.
Interfata condusa de evenimente furnizeaza un mecanism de confirmari pentru codul aplicatiei în timp ce parserul recunoaste constructiile sintactice XML din document. SAX API este compus din pachetele org.xml.sax, org.xml.sax.helpers si org.xml.sax.ext.
XML Stylesheet Language Transformations (XSLT) descrie un limbaj pentru transformarea documentelor XML în alte documente XML sau alt format text, fiind definit de grupul de lucru W3C XSL. Acest API este implementat în pachetul javax.xml.transform.
API-urile Java XML furnizeaza functionalitati utile si foarte cuprinzatoare. Cu toate acestea un parser SAX sau DOM în mod normal necesita cunostinte despre o implementare specifica a parserului. Furnizarea functionalitatilor API-urilor adoptate de platforma Java, în timp ce se permite alegerea implementarii parserului, necesita un strat de interconectare (Plugability layer).
Specificatia Java
pentru procesarea XML defineste un mecanism
de interconectare pentru a permite unui
parser conform SAX sau DOM
sa fie folosit cu API-urile
definite în pachetele javax.xml.parsers si javax.xml.transform.
New I/O (NIO) API furnizeaza noi caracteristici si performante îmbunatatite în domeniul de gestiunii a buferelor, lucrul cu seturi de caractere, cautare de expresii, operatii I/O cu fisiere si operatii I/O scalabile în retea.
NIO API prezinta urmatoarele caracteristici:
Operatii scalabile pentru fisiere si socketuri, în forma de cereri asincrone sau polling.
Buferare rapida binara în operatii I/O, care include abilitatea de a aloca fisiere în memorie atunci când aceasta este suportata de platforma.
Buferare rapida de caractere în operatii I/O, care include facilitati de parsare simpla bazata pe expresii si un stil de formatare simplu.
Convertoare de seturi de caractere, care include o interfata furnizata de serviciu pentru convertoare conectabile.
Set de exceptii I/O foarte bogat si independent de platforma.
O noua interfata cu sistemul de fisiere care suporta acces la atributele fisierului (care include si tipurile de continut MIME), iesire la API-uri specifice sistemului de fisiere si o interfata furnizata de serviciu conectabila pentru implementari legate de sistemul de fisiere.
NIO API îmbunatateste modelele existente în I/O API curent, fiind interoperabil cu clasele de baza stream. Pentru eficienta, noile clase nu sunt în mare parte sincronizate, lasând posibilitatea de sincronizare la dispozitia celui care le apeleaza.
Eficienta este obtinuta prin introducerea de modele simple I/O orientate pe bufer care constau din streamuri de bytes si caractere de baza împreuna cu clase super-optimizate care combina suportul de buferare, formatare si parsare.
Java Image I/O API furnizeaza o arhitectura interconectabila pentru citirea si scrierea imaginilor în diverse formate.
Image I/O API este destinat utilizarii în diverse contexte. Aplicatiile de pe partea client pot sa utilizeze acest API pentru a încarca date imagine din fisiere aflate pe un disc local sau din retea. Aplicatiile de pe partea de server pot sa utilizeze Image I/O API pentru a genera imagini în mod dinamic ca raspuns la cererile clientilor, de exemplu prin utilizarea Servlet API.
Image I/O API poate fi utilizat în conjunctie cu alte API-uri cum ar fi Java Advanced Imaging, Java 3D si Java Media Framework, pentru dezvoltarea de aplicatii multimedia sofisticate.
Constructia Image I/O API a fost influentata de nevoia de a îndeplini câteva scopuri principale. Fiecare scop furnizeaza justificarea pentru un set de trasaturi particulare ale API-ului.
O aplicatie scrisa pentru a utiliza Image I/O API va putea beneficia de avantajele componentelor (plug-ins) fara a fi nevoie de vreo rescriere de cod sau recompilare. Acest lucru necesita ca plugin-urile sa implementeze pe cât posibil un set de interfete independente de format. Cu toate acestea, orice format de imagine are proprietati si functionaltati unice, pe care plugin-urile trebuie sa le asigure aplicatiilor. Aceasta se poate realiza prin permiterea plugin-urilor sa extinda un numar de interfete din API. Aplicatiile care nu sunt informate despre extensiile specifice plugin-ului pot sa utilizeze în continuare posibilitatiile plugin-urilor normale, în timp ce aplicatiile informate pot sa utilizeze interfetele extinse.
API-ul suporta acces la date non-imagine (metadate) de tip generic si specific plugin-urilor, prin permiterea plugin-urilor sa furnizeze acces la metadate în formate multiple. Aceste pot sa includa formate specifice plugin-urilor, format independent de plugin definit de API si formate standarde industriale.
Pentru aplicatii simple care doresc sa încarce imagini fara interventia utilizatorului, este important sa se permita ca un plug-in cititor sa fie selectat automat pe baza continutului fisierului.
Un plugin trebuie sa determine daca poate sa manipuleze o imagine particulara fara a încarca tot codul lui. Pentru a putea efectua aceasta, plugin-urile sunt instalate printr-un mecanism interfata furnizoare de servicii, care permit executarea de interogari simple fara încarcarea blocului principal de cod a plugin-ului.
Toate fisierele .class asociate cu un plugin pot fi combinate într-un fisier JAR, care poate fi instalat permanent în Java Runtime Environment, sau poate fi încarcat dinamic folosind mecanismul CLASSPATH al aplicatiei.
Cu toate ca selectarea automata a plugin-ului este convenabila pentru multe aplicatii, este posibil ca pentru aplicatii mai sofisticate sa fie nevoie de un control mai mare asupra procesului de selectare a plugin-ului. Aceasta se poate face prin mijloacele unui registru de rulare a plugin-urilor care poate fi interogat si manipulat de o aplicatie.
Din ce în ce mai mult, aplicatiile trebuie sa lucreze cu date bazate pe disc si bazate pe retea. În multe cazuri, chiar si datele bazate pe disc trebuie sa se confrunte cu o forma de InputStream datorita nevoilor API-urilor. Image I/O API ofera un set de interfete care permit date din obiecte File, InputStream si alte surse sa fie manipulate într-o maniera unificata în timp ce se pastreaza abilitatea de cautare înainte si în urma. API-ul permite noi interfete I/O, incluzând utilizarea de interfete directe la achizitia imaginilor si dispozitive de iesire, fara rescrierea codului aplicatiei.
Metadatele stocate împreuna cu imaginile pot fi la fel de importante ca si imaginile. Java Image I/O API furnizeaza acces flexibil si direct la metadate. Deoarece metadatele pot sa fie organizate în diverse forme si pot sa contina informatii foarte specializate, este dificil sa asiguram acces direct la asemenea metadate. În schimb, API-ul solicita plugin-urilor sa transforme metadatele sub forma unei structuri de document XML, posibil îmbunatatit cu referinte Object ca adaos la datele textuale. Odata ce acest lucru a fost realizat, metadatele pot fi accesate si editate folosind interfete XML DOM (Document Object Model).
Sintaxa pentru obiectele Document variaza de la plugin la plugin, dar structura poate fi parcursa, afisata si editata fara cunostintele specifice ale plugin-ului care se utilizeaza.
Pentru a suporta aplicatii avansate, API-ul furnizeaza acces la caracteristici cum ar fi imagini "thumbnail" (imagini de previzualizare), imagini multiple stocate într-un fisier, procesare de imagini multi-rezolutie si procesare de imagini segmentata. API-ul furnizeaza posibilitatea de decodare a portiunilor dintr-o imagine mai mare si efectuarea de subesantionari în timpul decodarii pentru a permite deplasarea peste imaginile foarte mari. Atunci când se scrie imagini, este posibil sa se scrie date imagine portiune-cu-portiune, fara a se stoca întreaga imagine în memorie deodata.
Serverele web moderne genereaza în mod normal o mare cantitate din continutul lor în mod dinamic. API-urile Java Servlet si Java Server Pages (JSP) furnizeaza modalitati portabile de a genera pagini HTML ca raspuns la cererile venite de la browserele web.
În multe cazuri, continutul de imagini trebuie generat în mod dinamic, de exemplu grafice cu evolutia la bursa.
De asemenea pe partea de server, se poate utiliza configurarea imaginilor generate pentru a furniza imagini optimale pentru toti utilizatorii, cu rezolutia imaginii si caracteristicile de culoare alese de preferintele utilizatorului.
Securitatea în Java a fost îmbunatatita prin includerea urmatoarelor API-uri: Java Cryptography Extension (JCE), Java Secure Socket Extension (JSSE), Java Authentication and Authorization Service (JAAS), Java GSS-API si Java Certification Path API.
Java Cryptography Extension (JCE) furnizeaza cadrul si implementarile pentru algoritmi de criptare, generare de chei si validare a cheilor si Message Authentication Code (MAC). Suportul pentru criptare contine cifruri simetrice, asimetrice, bloc si flux. De asemenea suporta fluxuri securizate si sigilare de obiecte.
J2SDK, versiunea 1.4 contine un furnizor JCE denumit SunJCE, care este preinstalat si înregistrat si care furnizeaza urmatoarele servicii criptografice:
Implementare pentru algoritmii DES, Triplu DES, criptare Blowfish pentru modurile Electronic Code Book (ECB), Cipher Block Chaining (CBC), Cipher Feedback (CFB), Output Feedback (OFB) si Propagating Cipher Block Chaining (PCBC).
Generatoare de chei pentru generare de chei potrivite pentru algoritmii DES, Triplu DES, Blowfish, HMAC-MD5 si HMAC-SHA1.
Implementare pentru algoritmi MD5 cu criptare bazata pe parola (PBE - password-based encryption) DES-CBC.
Generatoare de chei secrete (secret-key factories) care furnizeaza conversatii bidirectionale între obiecte chei DES, Triplu DES si PBE netransparente si reprezentari transparente ale substratului cheie.
Implementare pentru algoritmul de validare a cheilor Diffie-Hellman între doua sau mai multe parti.
Generator de perechi de chei Diffie-Hellman pentru generarea de perechi publice sau private potrivite pentru algoritmul Diffie-Hellman.
Generator de parametrii pentru algoritmul Diffie-Hellman
Un generator de chei (key factory Diffie-Hellman pentru furnizarea de conversatii bidirectionale între obiecte chei Diffie-Hellman netransparente si reprezentari transparente ale substratului cheie material.
Manageri pentru parametri de algoritm Diffie-Hellman, DES, Triplu DES, Blowfish si PBE.
O implementare a algoritmilor HMAC-MD5 si HMAC-SHA1.
Implementare a schemei de adaugare (padding) descrise în PKCS
Implementare pentru stocare de chei keystore) pentru tipul keystore privat numit "JCEKS".
Java Secure Socket Extension (JSSE) permite comunicatii prin Internet securizate. Acest API furnizeaza o structura si o implementare pentru versiunea Java a protocoalelor Secure Sockets Layer (SSL) si Transport Layer Security (TSL) si include functionalitati pentru criptarea datelor, autentificarea serverelor, integritatea mesajelor si optional autentificarea clientilor.
Utilizând JSSE, programatorii pot sa furnizeze transmiterea securizata a datelor dintre un client si un server care ruleaza orice protocol de aplicatie, cum ar fi Hypertext Transfer Protocol (HTTP), Telnet, sau FTP, peste TCP/IP.
Caracteristicile JSSE sunt enumerate în cele ce urmeaza:
Impelmentare 100 Java
Suport pentru SSL versiunile 2.0 si 3.0 si implementare pentru SSL versiunea 3.0
Suport si implementare pentru TSL versiunea 1.0
Include clase care pot fi instantiate pentru a crea canale securizate
Suport pentru suita de negociere cifrata, care este continuta în partea de negociere (handshaking) a SSL utilizata pentru a initia sau verifica comunicatii securizate.
Furnizeaza suport pentru autentificare client si server, care este parte componenta pentru o negociere normala din SSL.
Furnizeaza suport pentru Hypertext Transfer Protocol (HTTP) încapsulat în protocolul SSL (HTTPS) care permite accesul la date, cum ar fi paginile web folosind HTTPS.
Furnizeaza API-uri pentru gestiunea sesiunilor în server si pentru gestiunea sesiunilor SSL rezidente în memorie.
Furnizeaza suport pentru câtiva algoritmi criptografici utilizati frecvent în suite de cifrare.
Infrastructura Java Authentication and Authorization Service (JAAS) poate fi divizata în doua componente principale: o componenta de autentificare si o componenta de autorizare. Componenta JAAS de autentificare furnizeaza abilitatea de a determina în mod fiabil si securizat cine executa cod Java, în functie daca codul ruleaza ca aplicatie, ca aplet, ca componenta bean, sau ca servlet. Componenta JAAS de autorizare suplimenteaza securitatea de baza din infrastructura Java 2 prin furnizarea de mijloace de restrictionare a executiei de cod Java care realizeaza functii sensibile, depinzând de codul sau sursa si de cine este autentificat.
Autentificarea din JAAS este efectuata într-o maniera bazata pe componente conectabile. Aceasta permit aplicatilor Java sa ramâna independente de tehnologiile de autentificare din nivelele inferioare. Cu toate acestea noi tehnologii sau tehnologii revizuite pot fi conectate într-o aplicatie fara a avea nevoie de modificari.
Aplicatiile permit procesul de autentificare prin instantierea unui obiect LoginContext, care referentiaza un obiect Configuration pentru a determina tehnologia de autentificare, sau LoginModule, pentru a executa autentificarea.
Java GSS-API este o implementare pentru Generic Security Service Application Programming Interface (GSS-API) definit în RFC-2853 si este utilizat pentru schimbare securizata de mesaje între aplicatii. Acest API ofera programatorilor de aplicatii acces la servicii de securitate deasupra mecanismelor de securitate de la nivele inferioare.
GSS-API si JAAS sunt strâns legate si de multe ori sunt utilizate împreuna. Pentru a furniza servicii de securitate, GSS-API utilizeaza un asa numit "mecanism de securitate". Implementarea GSS-API disponibila cu platforma J2SE beneficiaza de suportul implementarii mecanismului Kerberos V5 împreuna cu alte variante furnizate de diferiti vendori.
Pentru a executa autentificare între un client si un server si pentru a stabili cheile de criptare pentru comunicatie securizata, un mecanism GSS-API are nevoie de câteva privilegii (credentials) pentru entitatea locala din fiecare parte a conexiunii. Privilegiul utilizat la partea client este un jeton Kerberos, iar pe partea de server, este reprezentat de o cheie Kerberos secreta pe termen lung. Java GSS-API necesita ca mecanismul sa obtina aceste privilegii de la un obiect Subject asociat cu contextul pentru controlul accesului al firului de executie. Un Subject reprezinta sursa unei cereri si este o entitate, cum ar fi o persoana sau un serviciu.
Pentru a popula un Subject cu asemenea privilegii, aplicatiile client si server în mod normal vor executa pentru început o autentificare JAAS folosind modulul Kerberos.
Java GSS-API si JSSE furnizeaza aceleasi caracteristici de baza în ceea ce priveste securitatea:
Autentificare client-server
Criptarea si protectia integritatii datelor transmise
Cu toate acestea, exista câteva diferente esentiale între aceste doua tehnologii:
Suport pentru semnatura Kerberos unica
În Java 2 Standard Edition, GSS-API contine suport pentru Kerberos ca fiind mecanismul de securitate obligatoriu. Aceasta înseamna ca daca se pot scrie aplicatii bazate pe Java GSS-API care nu vor solicita utilizatorului vre-o parola.
În momentul de fata JSSE nu suporta suite de cifruri bazate pe Kerberos, suportul pentru astfel de suita de cifruri este dependenta de standardizarea din protocolul TLS de la Internet Engineering Task Force (IETF).
Communications API
JSSE suporta un API bazat pe socket-uri. Socket-urile extind clasele socket din pachetul java.net si producatorii (factories) de socket-uri JSSE extind producatori de socket-uri din pachetul javax.net. Socket-urile JSSE au nevoie de un mediu de transport fiabil, iar implementarile tipice utilizeaza TCP.
Java GSS-API este un API bazat pe jetoane care depind de aplicatie pentru executarea comunicatiei. Aceasta înseamna ca aplicatia utilizeaza socket-uri TCP, datagrame UDP, sau orice alt canal care permite transportul jetoanelor generate de Java GSS-API. Java GSS-API poate sa citeasca si sa scrie jetoane folosind stream-uri de intrare si iesire.
Delegare de privilegii
Java GSS-API permite clientului sa delege privilegiile sale serverului atunci când se utilizeaza Kerberos. Java GSS-API este util daca aplicatia este distribuita într-un mediu multi-tier unde intermediarii trebuie sa reprezinte clientii atunci când se comunica cu partile terminale.
Criptare selectiva
Deoarece Java GSS-API este bazat pe jeton, se poate alege pentru a cripta selectiv anumite mesaje si nu toate. Java GSS-API este o tehnica potrivita pentru aplicatiile care necesita sa împrastie mesaje text simple si text cifrate.
Necesitatile protocolului
JSSE suporta protocolul TLS. Pe de alta parte, Java GSS-API suporta protocolul mecanism GSS-API Kerberos. Tehnologia JSSE este potrivita pentru unele servere HTTPS care necesita utilizarea TLS. Java GSS-API cu Kerberos este potrivit a se utiliza cu servere LADP care folosesc SASL.
Java Certification Path API reprezinta un set de clase si interfete pentru manipularea de cai de certificare, cunoscute si sub numele de lanturi de certificare. O cale de certificare este o lista ordonata de certificate. Daca o cale de certificare îndeplineste câteva reguli de validare, poate fi utilizata pentru a stabili în mod securizat o alocare de chei publice pentru un subiect.
Acest API defineste interfete si clase abstracte pentru crearea, construirea si validarea cailor de certificare. Implementarile pot fi conectate în folosirea unei interfete furnizate de un vendor. API-ul este bazat pe arhitectura Cryptographic Service Provider, descrisa în (Java Cryptography, 2001).
Clasele continute sunt specifice algoritmilor pentru constructia si validarea cailor de certificate X.509 conform standardelor PKIX dezvoltate de IETF.
Java Print Service este un nou API care permite tiparirea pe toate platformele Java, incluzând platforme care necesita resurse limitate, cum ar fi un profil J2ME, suportând în continuare API-ul curent Java 2 Print API. Acest serviciu include un atribut de tiparire extensibil bazat pe atributele standard specificate de Internet Printing Protocol (IPP) 1.1. Cu atributele, aplicatiile client si server pot sa descopere si sa selecteze imprimante care au posibilitatile specificate de atribute.
Serviciile de tiparire de la diversi furnizori, care permit aplicatiilor sa transforme datele în diverse formate, pot fi instalate în mod dinamic printr-un mecanism Service Provider Interface
Java Logging API faciliteaza aplicatiile bazate pe servicii si întretinere pe partea utilizator prin producerea de rapoarte pentru analiza destinate utilizatorilor finali, administratorilor de sistem, inginerilor de serviciu pe teren si pentru echipele de dezvoltare. Logging API captureaza informatie, cum ar fi caderi ale securitatii, erori de configurare, congestii si/sau erori în aplicatie sau platforma.
Platforma de baza include suport pentru distributia de rapoarte sub forma de text simplu sau formatat XML în memorie, fluxuri de iesire, console, fisiere, sau socket-uri. De asemenea API-ul este capabil de interactiune cu serviciile de efectuare de rapoarte existente din sistemul de operare gazda.
Java Web Start este o noua tehnologie pentru distributia aplicatiilor oferind posibilitatea de a lansa aplicatii cu toate trasaturile lor specifice prin intermediul unui singur click dintr-un browser web. Pentru a nu compromite integritatea datelor si a fisierelor, Java Web Start include trasaturile legate de securitate din platforma Java 2. În plus, aceasta tehnologie permite utilizarea celor mai recente tehnologii Java 2 cu orice browser web.
Cu Java Web Start, se poate lansa aplicatii prin simpla activare a unui link de pe o pagina Web. Daca aplicatia nu este prezenta în calculator, Java Web Start încarca automat toate fisierele necesare. Apoi pre-încarca fisierele în calculator pentru ca aplicatia sa fie întotdeauna pregatita de relansare, dintr-o icoana de pe desktop sau de la link-ul browserului. Indiferent de metoda de lansare a aplicatiei, este prezentata întotdeauna cea mai recenta versiune a aplicatiei.
Java Web Start este o aplicatie ajutatoare care este asociata unui browser web. Atunci când browser-ul încarca un tip special de fisier (JNLP), acesta cauzeaza pornirea programului Java Web Start, care apoi automat încarca, stocheaza si executa aplicatia Java respectiva asociata acelui fisier. Întregul proces se face fara interventia utilizatorului.
Din punct de vedere tehnologic Java Web Start are urmatoarele avantaje:
Lanseaza aplicatii scrise pentru platforma J2SE, aplicatiile pot fi accesate de pe un server web pentru o varietate mare de platforme cum ar fi Windows 95/98/NT/2000, Linux si Solaris.
Suporta mai multe versiuni J2SE, sau poate automat încarca o versiune mai noua daca este nevoie.
Aplicatiile pot fi lansate independent de browser-ul web, pentru operatii off-line.
Beneficiaza de avantajele modelului de securitate a platformei Java.
Este independent de browser si platforma
Aplicatiile care au fost lansate deja sunt stocate local, ele fiind considerate instalate.
Tehnologia folosita de Java Web Start este Java Network Launching Protocol (JNLP) si API. Java Web Start este implementarea de referinta pentru specificatia JNLP.
Tehnologia JNLP defineste un format de fisier standard care descrie modul de lansare a unei aplicatii denumit fisier JNLP.
JDBC 3.0 API este compus din pachetele java.sql si javax.sql si furnizeaza acces universal la date prin limbajul de programare Java. Folosind acest API se poate accesa practic orice sursa de date, de la baze de date relationale pâna la foi de calcul tabelar si fisiere obisnuite. Tehnologia JDBC asigura de asemenea o baza comuna pe care pot fi construite unelte si interfete alternative.
Noile trasaturi includ posibilitatea de a specifica puncte de salvare în tranzactie, de a tine setul de rezultate deschis dupa ce o tranzactie a fost comisa, de a obtine chei care sunt generate automat si de a avea mai multe seturi de rezultate deschise la un moment dat.
Exista de asemenea doua noi tipuri de date JDBC: BOOLEAN si DATALINK. Cu DATALINK este posibil sa se gestioneze date din afara unei surse de date. O alta noua trasatura este stabilirea relatiei dintre JDBC Service Provider Interface si arhitectura Connector.
Aceasta noua tehnologie este un API pentru gestiunea datelor de preferinta si configuratie definite de utilizatori. Aplicatiile necesita date de preferinte si configurare pentru a se adapta nevoilor diferitilor utilizatori si diferitelor medii.
Pachetul java.util.prefs furnizeaza o modalitate pentru aplicatii de a stoca si extrage datele de preferinte si configuratie pentru utilizator si sistem. Datele sunt stocate în mod persistent într-un mediu de stocare dependent de implementare. Exista doi arbori compusi din noduri de preferinte, unul pentru utilizatorii finali si unul pentru preferinte sistem.
Toate metodele care verifica datele de preferinte pot opera asincron. Acestea pot returna imediat si eventual schimbarile vor fi propagate la mediul de stocare persistent. Exista metode care pot fi folosite pentru a forta actualizari spre mediul de stocare.
Metodele din clasa Preferences pot fi invocate concurent prin thread-uri multiple într-o singura JVM fara sa fie nevoie de sincronizare externa si rezultatele vor fi echivalente cu o executie seriala. Daca clasa este utilizata concurent de mai multe JVM care stocheaza datele de preferinte în acelasi mediu de stocare, mediul de stocare nu va fi compromis, dar nu exista nici o garantie cu privire la consistenta datelor pentru preferinte.
Pe lânga numeroasele îmbunatatiri la arhitectura de retea a J2SE, se remarca suportul pentru IPv6 (Internet Protocol version 6) în aplicatiile bazate pe TCP si UDP si suport pentru socket-uri neconectate/nelegate, permitând crearea, legarea si conectarea mai flexibila.
Alta caracteristica este existenta unei noi clase, URI, care permite construirea de URI (Uniform Resource Identifier) si translatarea fara prezenta unui handler de protocol. Handler-ul de protocol pentru FTP a fost refacut pentru a fi în conformitate cu standardele curente. Setul de caractere implicit este acum UTF8 si au fost adaugate API-uri pentru a permite alte scheme de caractere.
Suportul IPv6 implementat în J2SE, include multicast, tipuri de adrese speciale IPv6, nod cu stiva duala, etc. si este conform cu standardele urmatoare: RFC2373 (arhitectura de adresare IPv6), RFC2553 (BasicSocket Interface Extensions pentru IPv6) si RFC2732 (formatul pentru adresele literale IPv6 în URL-uri).
Unele caracteristici interesante ale IPv6, cum ar fi tunelarea, autoconfigurarea adreselor, IP mobil, etc., nu sunt suportate la nivelul Java API, ele fiind manipulate automat de straturile inferioare ale sistemului de operare sau a sistemului suport.
The Java Tutorial Sun Microsystems, https://java.sun.com, 2001
Java 2 SDK, Standard Edition Documentation, v1.4.0 Sun Microsystems, https://java.sun.com, 2001
"Generic Security Service API Version 2, Java Bindings" (RFC 2853), IETF, https://www.ietf.org/rfc/rfc2853.txt, 2001
"Java Cryptography Architecture Sun Microsystems, https://java.sun.com, 2001
Java Community Process, Sun Microsystems, https://java.sun.com/jcp, 2001
|