A Java legújabb lépései
Zsemlye Tamás Rendszermérnök Sun Microsystems
[email protected]
Szolgáltatás központú hálózat webtop.com
portal.com Consumer
Industry
Business
Chat Utilities Purchasing Travel Calendar ManufacFinance turing ERPInventory Entertainment Telecommunica t ions Supply Chain E-mail Personal Finance Education Data Warehousing Productivity Apps Government Shopping
datacenter.com
Java alapokon
Java az a szoftver N|UQ\H]HWPHO\OHKHWYp teszi a szolgáltatás vezérelt hálózat kialakítását
The Java ™ 2 Platform
Java Technológia elnyei v LOWA (Learn Once… Write Anywhere) v Alkalmazások dinamikus megjelenése v &V|NNHQWHWWIHMOHV]WpVLN|OWVpJLG7W0 v Felhasználói megjelenés v
Dinamikus, grafikus tartalom
v
Gyors interakció (local operation)
v
.DSFVRODW QpONOL P&YHOHWHN
v
Intelligens hálózati sávsélesség felhasználás
v Cc. 2.5 millió Java IHMOHV]W v )HMOHV]WLHV]N|]|NWiPRJDWRWWViJD v 6]pOHVN|U&HV]N|]|N
Java 2 Platform
Industry
Business
datacenter.com
Chat Utilities Purchasing Travel Calendar ManufacFinance turing ERPInventory Entertainment Telecommunica t ions Supply Chain E-mail Personal Finance Education Data Warehousing Productivity Apps Government Shopping
Consumer
portal.com
webtop.com
Szolgáltatás központú hálózat
Java Platform, SE
Java 2 SE • Általában desktop környezet • Fókusz a GUI és az I/O funkciók
teljesítményének javításán • Nyomtatási teljesítmény növelés • SSL, Authentikáció • JMF 2.0 • XML • Java 2 v1.3 •
Skálázódó virtuális gépek
™
J2SE Platform Roadmap —I v “Feature release” minden 18 hónapban v Új tulajdonságok, új API-k 1.3 “Kestrel”
1.2
1998
1999
2000
1.4 “Merlin”
2001
2002
1.5 “Tiger”
2003
™
J2SE Platform Roadmap —II v 1, 2 “Maintenance Releases” változatonként v
Hiba javítás, teljesítmény tuning, API változatlan
1.3 “Kestrel”
1.2
1998
1999 1.2.2 “Cricket”
2000
1.4 “Merlin”
2001
1.3.1 “Ladybird”
2002 1.4.1
1.5 “Tiger”
2003
™
J2SE Platform Trendek v Nag\RQHUVNOLHQVROGDOLGUI fejlesztés v
full-scale, top-quality Java™ IDEs
v (UVV]HUYHUROGDOLIHMOHV]WpV v J2SE™ technológiára alapoz a
Java™ 2 Platform, Enterprise Edition (J2EE™)
v 0LQVpJVRNNDOIRQWRVDEEPLQWD
WXODMGRQViJRNEYOpVH v Teljesítmény és skálázódás a fókuszban
Új GUI tulajdonságok
Java 2D
™
API —I
v )WHOMHVtWPpQ\ “re-architect” v
(J\V]HU&VtWHWWdrawing pipe-line
v
Optimalizálás a tipikusan használt elemekre (JFC/Swing,... )
v
Hardware accelerator felhasználás
v
No impact on Java 2D™ API
v JFC/Swing teljesítmény javulás v X Window támogatás v
Remote X, drawing pipeline
v
X parancsok (nem bitmap)
Java 2D
™
APIs —II
v Jobb font renderHOpVLPLQVpJ v True type font hinting
v ,OOHV]WKHWimage I/O (JSR-015) v Támogatja: GIF, JPEG, PNG
v Printing extensions (JSR-006) v Nagyobb lapozási kontrol v -REEQ\RQWDWiVLPLQVpJ
™
Java Foundation Classes v Teljesítmény javulás v
Memory optimalizálás
v
Java 2D™ javulása itt jelentkezik
v FileChooser, teljes drag-and-drop támogatás v New JSpinner, JProgressBar control v JTabbedPanel scrollable tabs v Archiving JavaBeans™ components (JSR-057)
Új kom munikációs tulajdonságok
X ML v Eredetileg sok XML lett volna a Merlin-ben v DE XML W~OJ\RUVDQIHMOGLN
v Gyorsabban mint a J2SE™ változatok v Jobb, ha az XML API-k unbundled-ként jelennek meg
v Core JAXP API Merlin-ben: v SAX 1.0 & DOM 1.0 (JSR-005) v SAX 2.0 & DOM 2.0 (JSR-063) v XSLT support (JSR-063)
v eVIRO\DPDWRVDQIHMOGLN
Networking v IPv6 support v OS támogatás IPv6
v Új URL class v Támogatja a W3C URLs
Security —I +3 security opcionális csomag: v Java™ Secure Socket Extension (JSSE) => SSL és HTTPS támogatás
v Java™ Authentication and Authorization
Service (JAAS) API v Java™ Cryptography Extension (JCE)
Security —II v Kerberos támogatás GSS-API (JSR-
072)-n keresztül v Single sign-on Kerberos-al
JDBC
™
APIs
v Teljes JDBC™ 3.0 APIs a J2SE™ platformban •
Csúsztatható markerek
•
SQL3 típus támogatás, komplex típus leképezések
•
Java REMHNWXPRNWiUROiViQDNpVHOKtYiViQDNWHOMHV támogatása
•
Connection Pool
v Néhány APIs a JTA specifikációból v
JTA—Java™ Transaction API, csak a legszükségesebb
Java Naming and Directory ™ Interface v DNS service provider •
LDAP, NIS, NIS+, DNS kapcsolódás
•
Egységes címtár szolgáltatások
•
Objektum azonositás
•
XML és LDAP kapcsolat
v Támogatja a GSSAPI Kerberos V5 SASL v Secure hozzáférés a DirServ.-hez (MS AC, ...)
C O RBA v Teljes Portable Object Adaptor (POA)
támogatás v Javított CosNaming támogatás v Persistent CosNaming implementáció
V M és Alap könyvtárak
Virtual Machine v 64-bit támogatás v
32 bit VM mellett, SPARC™ HOV]|UVPDMGIntel IA64
v Java™ API-k változatlanok v
64-bit native code, 64-bit VM
v Teljesítmény javulás, GC teljesítmény v
Java HotSpot™ virtual machine
v
Nagy memória (very large heaps)
v
Better recovery, hiba üzenetek
v
Hotswap osztályok (JPDA)
Core Libraries v New I/O APIs (JSR-051) (nio) v
Skálázódó I/O: socket és file, gyors bufferelt (bináris és karakter) I/O
v
Regular expression támogatás
v Preferences API (JSR-010) v
Felhasználói alkalmazás preferenciák mentése
v (J\V]HU& assertion támogatás (JSR-041) v Java™ Logging APIs (JSR-047) v
Konzisztens NHUHWDQDSOy]iVKR]NpVEEOLEUDU\LQIR
v Exception láncolás v Unicode 3.0 támogatása
Nincs a Merlinben …
Nincs a Merlin-ben v Java™ RMI Security (JSR-76) Custom Remote Refs (JSR-78) v
JCP Community Review ballot elvetette
v
Jini™ Community Process program keresztül
v
De lehet, hogy a Tiger-ben lesz
v Generics v
Tiger-ben lesz javasolt...
v XML Data Binding v .O|QOHV]HOpUKHW
Lehet csatlakozni…
[email protected] De aki tagja a JDC-nek, SDC-nek...
Teljesítmény növelés • Java Performance Modell • Nativ thread támogatás • Tömörített objektum tárolás (2GB heap -> 4GB, 1.3.1) • Gyors memória foglalás és felszabadítás • Concurrent GC, Paralell GC, Incremental GC
• Javított szinkronizáció • Alap osztályok nativ könytár támogatása (JNI) • JIT? HotSpot: JDK 1.2, .... • Lecserélhetõ virtuális gép (pluggable) • 64 bit VM – 1.4
• Kliens és szerver oldal elkülönül
Profiling v Mikor-hogyan-mit mérünk v Profiler és Loadtester v
Methodusok, alkalmazás terhelés
v 6WDUWXSLG&38LGPpUpVH v Memória felhasználás v Eszközök: v
hProf: JVMPI
v
HAT: +HDS$QDO\VLV7RROOHW|OWKHW
JV M inditási paraméterek v Szerver és kliens VM különbözik!!! v Thread kezelés: v
Standard libthread, LWP bázis
v
Bound thread
v Memória méret: v
*& LG FV|NNHQWpV
v
,QGXOiVL LG FV|NNHQWpV
v
Nagy memória igény esetén: -Xms/-Xmx azonos méret!
Java Platform, EE
Java 2 EE felépítése
Enterprise technológiák •
Servletek
•
JavaServer Pages • API szerver oldali szkriptek Javaban
•
CORBA interoperabilitás
•
JTA: Tranzakció API • Java interfész tranzakciós rendszerekhez
•
Java Messaging Service • Aszinkron kommunikáció • Megbízható sor kezelés • Garantált információ továbbítás
•
JAXP, JAXB, JAXM
X M L és Java v JAXP: v 1.0 v
XML feldolgozás, parsing
v
Referencia implementáció
v JAXB: EA v
XML dokumentumok adattartalmának Java objektumokra való automatikus leképzése
v
A séma alapján automatukis Java osztály, objektum létrehozása
v JAXM: JSR 67 v
XML üzenetek becsomagolása, továbbítása
v
HTTP, SMTP protokol
v ebXML
Java 2 EE JavaServer Pages (JSP 1.1) template adatok alapján (HTML or XML), egyedi elemekkel, script nyelvvel, és szerver oldali dinamikus Java objektumok felhasználásával generál dinamikus tartalmat..
Enterprise JavaBeans (EJB 1.1) komponens architektúra..
Java Servlet 2.2 Java program, mely request-response elv alapján generál dinamikus web lapot.
Java Data Base Connectivity (JDBC 2.0) adatbázis független kapcsolatot biztosit a J2EE platform és NO|QE|]
között.
DGDWIRUUiVRN
Java Naming and Directory Interface (JNDI 1.2) biztositja a név és directory szolgáltatást, standard ”lookup” mechanizmus segitségével.
Java 2 EE Java Transaction API (JTA 1.0) Programozói interfész a tranzakciük kezelésére J2EE környezetben.
Java Transaction Service (JTS 1.0) Specifikálja a transaction manager implementálási követelményeit (JTA) valamint a Java objektumok megfeleltetését az OMG Object Transaction Service (OTS) 1.1 specifikációnak PHJIHOHOHQ HUIRUUpV PHQHG]VHPHQW, szinkronizáció, ....).
Java Message Service (JMS 1.0) Message-oriented middleware (MOM) tulajdonságokkal ruházza fel a J2EE platformot (TIBCO Rendezvous és MQSeries).
JavaMail 1.1 Standard interfész email küldéséhez és fogadásához.
Java 2 EE Connector: 6WDQGDUG NLWHUMHV]W PHFKDQL]PXV segitségével a “container”-ek HJ\V]HU&HQ WXGQDN NDSFVRODWRW felépiteni a vállalati információs backend rendszerrel (EIS). A connector (,6 VSHFLILNXV HUIRUUiV NDSFVRORW pV IHMOHV]W környezetet is tartalmaz..
RMI-IIOP 1.0 RMI protokol implementációja, mely a CORBA IIOP protokoljét használja fel.. “RMI over IIOP” biytositja ay interopabilitást a CORBA objektumok felé is, bármilyen nyelven is irták azt.
EJB: Enterprise JavaBeans • A Java 2 Enterprise platform magja • Szerver oldali komponens modell • Egy tranzakció alapú, objektum-orientált
middleware • Üzleti alkalmazások fejlesztéséhez tervezett • n-utas architektúrák kialakítása és telepítése • Üzleti logika és a megjelenítés
szétválaszthatósága • Kliens semleges megoldás
W ORA • 7HWV]OHJHVSODWIRUPWHWV]OHJHV(-%N|UQ\H]HW •
Komponens független az EJB gyártójától EJB Szerver, EJB konténer
• 7HWV]OHJHV(-%N|UQ\H]HWEHQNLIHMOHV]WKHWN
WHWV]OHJHV(-%N|UQ\H]HWEHQIXWWDWKDWyN •
PiVWUDQ]DNFLyNH]HOUHQGV]HUDOi
•
más perzisztenciát biztosító adatbázis alá
• Kliens kommunikáció •
A Jáva kliens használhat RMI-t IIOP felett (Java2)
•
CORBA kliensek az EJB kliens interfész CORBA IDL megfeleltetés révén IIOP-t
EJB szerver, EJB konténer •
Szerver: Komponens futtató rendszer, amely run-time szolgáltatásokat biztosít • többszálúság, elosztott tranzakció kezelés, security • állapot kezelés, életciklus kezelés, perzisztencia •
HU IRUUiV PHJRV]WiV WHUKHOpV PHJRV]WiV
•
Konténer: Az Enterprise JavaBean-ek futtató környezete
•
A konténer biztosítja az EJB-k számára a szükséges szolgáltatások elérését standard API-n keresztül • Név azonosítási környezet, Biztonság • Életciklus kezelés • Tranzakció, Perzisztencia kezelés
Komponens típusok • Állapot nélküli objektumok •
stateless session bean
• Állapotot tároló objektumok •
Tipikusan egy adott klienssel folytatott kommunikációt állapotot reprezentáló objektumok
•
stateful session bean
• Perzisztens objektumok •
megoszthatók több kliens között
•
entity bean (a perzisztenciát kezelheti a bean és a konténer is)
Kapcsolatok az adatbázissal
J2EE 1.3
J2EE 1.2/1.2.1
• • • • •
• • • • •
• •
JAXP 1.1 JSP/Servlet – XML -06 N|WHOH] J2EE Connector 1.0 EJB 2.0 – MD Bean – Container man. Pers. – EJB Query Lang. RMI-IIOP – Interoperabilitás, OMG spec. Servlet 2.3, JSP 1.2 – Filter, alkalmazás esemény, migráció támogatása, EJB autentikáció – Inkrementális fejlesztés
• •
XML parser nem kell Részleges JSP – XML Opcionális JMS ???? EJB 1.1 – Nincs aszinkron komm. – Els FRQWDLQHU-k – Nincs QL RMI-IIOP – ??? Servlet 2.2, JSP 1.1
Java Platform, ME
PDA, és.... v KVM: optimalizált VM PDA-ra v Palm, Psion, set-top box, mobil telefon v Connected Limited Device Configuration v Mobil Information Device Profile v JavaPhone, Java TV API v Java Embedded Server
SmartCard-JavaCard • HW token, HW alapú biztonság • Privát kulcs és digitális aláirás a • • • • •
SmartCard-on Kriptográfiai koprocesszor Szerver oldalon, kryptográfiai gyorsitóval HJ\WWP&N|GpV Java Extension => Integráció Web technológia, SIMera, WAP Jini támogatás beágyazott eszközökben
Java Handsets:JavaOne 2001 DoCoMo SO503i, Sony, PDC
Siemens SX45, GSM
DoCoMo P503iS, Matsushita, PDC Siemens SL45i, GSM DoCoMo F503i, Fujitsu, PDC
Nokia 9210, GSM
DoCoMo N503i, NEC, PDC
Nokia CDMA prototype
DoCoMo D503i, Mitsubishi, PDC
Samsung prototype, CDMA
Motorola i50sx, Nextel, TDMA
LG iBook P510, CDMA
Motorola i85s, Nextel TDMA
LG iBook P520, CDMA
Motorola Accompli 008, GSM
RIM Blackberry, GSM
Motorola Accompli 009, GSM
Sharp Zaurus MI-L1, PDC
Motorola Timeport 270c, CDMA
Sharp Zaurus US proto, CDMA
J-Phone, J-SH07, Sharp, PDC
Sony J9, GSM
KDDI C451H, Hitachi, CDMA
Inventec KM100 proto, GSM
Java elnyök …felhasználói oldal v Intelligens eszköz v Interaktív alkalmazások v (J\V]HU&RSHUiFLy v Beépített biztonsági
funkciók v “Get all you want, save only you need”
Java elnyök …gyártók v Device/Browser flexibilitás v Network flexibilitás v Business model flexibilitás v -|YEHPXWDWy v (J\V]HU&LQWHJUiFLyDEackend-hez v 2.5 milliyVIHMOHV]WLEi]LV v Széles ipari támogatottság
J2ME Kliens Architektúra
Core Classes PJVM/CVM
POS/EFT Profile
Handheld Profile
Wireless Profile
TV Profile
Car Profile
Personal Profile
Back-end menedzsment és modulok
Profiles: TV STB, Wireless phone, PDA…
Core Classes J2ME Konfigurációk KVM
Connected Device Connected Limited Configuration (CDC) Device Configuration (CLDC)
J2ME ésJava CardTM PersonalJava™ Wireless Phone Technology Jini™ Jini™ alapú Kommunikáció A többi eszköz felé
J2ME Java Card technológia technológia kapcsolata
PAWT
Headless Profile
Core Libraries
Wireless (MID) Profile
Core Libraries
JVM
JVM
CDC
CLDC
Java Card API
Card VM Java Card
Wired Design Center PersonalJava
Wired Design Center v PersonalJava kliens megoldás v PersonalJava 3.1 v
2.0 M footprint
v
Finoman hangolt security
v
AWT alpú UI
v
optimalizált consumer eszközökre
Wireless Design CenterMobility profile
Wireless Design Center v Wireless Profile kliens megoldás v Wireless 1.0 v
KVM (K virtual machine) v
alacsony teljesítmény igény
v
limitált memória
v
limitált processzálási teljesítmény
v
256K total footprint
v
speciális wireless UI
Java Wireless értéke v Wireless operátorok “Java technology provides a secure platform to dynamically deploy value added data services and increase revenue with targeted, context derived Services” v Handset gyártók “Java technology makes wireless handsets more attractive and provides room for differentiation and value added services” v $ONDOPD]iVIHMOHV]WN “Java technology creates a new market by providing portability across a wide number of mobile information devices”
Wireless Szolgáltatások fejldése Hang •Hang alapú kommunikáció •Hang alalú üzenet
VOICE
Adat •Paging •Rövid text msg •Text browsing
SMS WAP HTML
Kiterjesztett • 9pJSRQWIJJ • Dinamikus letöltés • Interactív Grapfika • Off-Line Operáció • Biztonság • Eszköz függetlenség • .O|QE|] “Billing Models”
Java-’startalomszolgáltatás, Wireless Mobile Communication Services Email CRM Instant Messaging
Mobile Commerce Services
Mobile Information Services
SMART Wireless Portal Infrastructure
News Stock Updates Weather forecast Directories Location-based services
Music Mobile Entertainment Games Video Services
Streaming
Auctions Banking and Trading Travel Reservations
Mobile Enterprise Services
Productivity Collaboration Work-Force Automation
Felhasználóiigény alapján Ki? Mikor? Merre? Mit? Mennyi? Mennyit? Kivel? Hogyan? ? 7DUWDORPIJJYH]pUHOWV]ROJiOWDWiV
Java alapú szolgáltatás felderítés Provisioning Adaptor
WML
Provisioning Adaptor
CHTML
Provisioning Adaptor
XML
Provisioning Adaptor
Other (any)
Provisioning Adaptor
PUSH
Provisioning Adaptor
'LQDPLNXVDQHV]N|]IJJ
Vending Machine Client Interface
HTML
HQ-függetlenül
User User Service Service Interface Interface Location Location Service Service Interface Interface Advertising Advertising Service Service Interface Interface Java Java Application Application Storage Storage Interface Interface Other Other Service Service Interfaces Interfaces
Vending Machine Service Interface
Billing Billing Service Service Interface Interface
Hozzáférés A szolgáltató Információhoz
Szolgáltatás Infrastruktúra Portal Session Management
Web Interface
Java Service Containers
Web Services
Java Service Java Java Service Service Java Service
Other Content Other Other Content Content Other Content
Content Manager
Profile Manager App Server
J2EE szolgáltatás biztosító és futtató Platform Server-Side Business Logic
Client-Side Presentation
Server-Side Presentation
Browser
Web Server
EJB Container
Pure HTML
JSP
EJB
Java Applet EJB
Pure Java Client
Java Application
J2SE/J2ME
Java Servlet
EJB
Enterprise Information Systems
F J2ME Adaptációk Handset Handset Manufacturers Manufacturers
Wireless Wireless Operators Operators
Java WireLess • NTT DoCoMo
i-appli
• NexTel, Motorola i85 i50sx
J2ME + MIDP (Mobil Information Device Profile)
Bosch Siemens Sony AT&T Sprint Motorola Nokia Ericsson Siemens
OpenTV Philips Panasonic Sony AT&T BBC Fox Bloomberg
GTE Cisco Echelon Sony
Nokia Ericsson Siemens
NTT Vodafone Nokia Motorola Ericsson Palm Gemplus Schlumb. AOL … Symbian Telcordia
Zsemlye Tamás
[email protected]