Java overview A.Natali Marzo Java: una breve storia Dalle applicazioni embedded al network computing e oltre
Java overview A.Natali Marzo Java: linizio u Nasce nel 1966, per applicazioni embedded u Si diffonde attraverso il concetto di applet –permette di estendere il lato client di applicazioni basate su web con applicazioni sicure ed eseguibili ovunque –segue il modello ad oggetti del C++ con grosse semplificazioni –permette di costruire interfacce grafiche indipendenti dalla piattaforma
Java overview A.Natali Marzo Java: levoluzione u Nel 1999 si propone come sistema per il network computing –permette linterazione tra oggetti remoti (RMI) –semplifica la connessione con i data base (JDBC) – tiene conto dello standard CORBA (JDK1.2) –supera i limiti dello schema CGI per lestensione delle funzionalita di un server web (servlets)
Java overview A.Natali Marzo Java: non solo networking u Propone una piattaforma per la multimedialita (JavaMultimedia) u Ritorna alle applicazioni embedded (JavaCard API) u Ispira nuovi sistemi operativi (JavaOS) u Da impulso alla component software technology (JavaBeans, S.Francisco)
Java overview A.Natali Marzo Java: il conflitto u Pretende completa compatibilita delle macchine virtuali (JVM) u Impone precise specifche ai browser u Privilegia il modello CORBA, entrando in conflitto con COM/DCOM (mitigato dal controllo Active-X Java Plug-in)
Java overview A.Natali Marzo Java: a chi serve? u Agli sperimentatori di frontiera? u Ai sistemisti-sviluppatori? u Agli utenti finali?
Java overview A.Natali Marzo Java u Un linguaggio di implementazione? u Un sistema di sviluppo? u Un modello? u Una collezione di modelli?
Java overview A.Natali Marzo Client server SQL DBMS TP monitors componenti middleware CORBA Web server OTM HTML Protocolli Sicurezza dati istruzioni funzioni oggetti interfacce eventi moduli GUIprocessi thread file sockets Mobile code OOGUI Oggetti distribuiti Business Obj Agenti
Java overview A.Natali Marzo La tecnologia Java u Non e lunica disponibile u Non e sempre la piu adatta u Ma permette di ottenere una soluzione omogenea ed uniforme per lo sviluppo di ogni aspetto dellapplicazione
Java overview A.Natali Marzo Java Costrutti fondamentali
Java overview A.Natali Marzo Costrutti per algoritmi e sistemi u Dati primitivi e strutture di controllo: – identiche a quelle del linguaggio C u Interfacce –come specifiche contrattuali u Classi –come moduli /come specifiche della struttura e del comportamento di oggetti u Packages –come contenitori
Java overview A.Natali Marzo Ereditarieta u Tra interfacce: come meccanismo incrementale di specifica di contratti u Tra classi: come meccanismo di riuso di (specifiche di) implementazioni
Java overview A.Natali Marzo Costrutti e meccanismi u Classi, interfacce, istanze u Variabili istanza, variabili di classe u Costruttori, metodi, metodi di classe, (distruttori) u Modificatori di visibilita u Ereditarieta, binding dinamico u Polimorfismo u Applicazioni ed applet
Java overview A.Natali Marzo Gerarchia di classi class java.lang.ObjectObject class java.lang.reflect.ArrayArray class java.lang.ClassLoaderClassLoader class java.awt.Color (implements java.io.Serializable)ColorSerializable class java.awt.ComponentComponent (implements java.awt.image.ImageObserver,ImageObserver java.awt.MenuContainer, java.io.Serializable)MenuContainerSerializable …. CD
Java overview A.Natali Marzo Architettura u Sistemi software intesi come: –collezioni di componenti (oggetti) –in uno stesso spazio di indirizzamento o distribuiti in rete u Supportati da sistemi operativi multitasking e a finestre
Java overview A.Natali Marzo API Packages package java.appletjava.applet package java.awtjava.awt package java.awt.datatransferjava.awt.datatransfer package java.awt.eventjava.awt.event package java.awt.imagejava.awt.image package java.beansjava.beans package java.iojava.io package java.langjava.lang package java.lang.reflectjava.lang.reflect package java.mathjava.math package java.netjava.net package java.rmijava.rmi package java.rmi.dgcjava.rmi.dgc package java.rmi.registryjava.rmi.registry package java.rmi.serverjava.rmi.server package java.securityjava.security package java.security.acljava.security.acl package java.security.interfacesjava.security.interfaces package java.sqljava.sql package java.textjava.text package java.utiljava.util package java.util.zipjava.util.zip CD
Java overview A.Natali Marzo Java packages java.langjava.lang Package that contains essential Java classes, including numerics, strings, objects, compiler, runtime, security, and threads. This is the only package that is automatically imported into every Java program. java.iojava.io Package that provides classes to manage input and output streams to read data from and write data to files, strings, and other sources.
Java overview A.Natali Marzo Java packages java.utiljava.util Package that contains miscellaneous utility classes, including generic data structures, bit sets, time, date, string manipulation, random number generation, system properties, notification, and enumeration of data structures. java.netjava.net Package that provides classes for network support, including URLs, TCP sockets, UDP sockets, IP addresses, and a binary-to-text converter.
Java overview A.Natali Marzo Java packages java.awtjava.awt Package that provides an integrated set of classes to manage user interface components such as windows, dialog boxes, buttons, checkboxes, lists, menus, scrollbars, and text fields. (AWT = Abstract Window Toolkit) java.awt.imagejava.awt.image Package that provides classes for managing image data, including color models, cropping, color filtering, setting pixel values, and grabbing snapshots.
Java overview A.Natali Marzo Java packages java.awt.peerjava.awt.peer Package that connects AWT components to their platform-specific implementations (such as Motif widgets or Microsoft Windows controls). java.appletjava.applet Package that enables the creation of applets through the Applet class. It also provides several interfaces that connect an applet to its document and to resources for playing audio.