Ssssssssss Non fare quello che gli altri sanno fare sicuramente meglio e/o hanno già fatto. In generale lo sviluppo di applicazioni software “vere” pone.

Slides:



Advertisements
Presentazioni simili
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Advertisements

Gli ipertesti del World Wide Web Funzionamento e tecniche di realizzazione a cura di Loris Tissìno (
Programmazione in Java
Corso di Fondamenti di Informatica
Architetture dei sistemi distribuiti Prof
Digital FX!32 Conte Davide Crivello Emanuele Ferrando Elisa.
Interazione Uomo - Macchina
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Applet Java.
Crea il tuo sito con Web Matrix e il Web Hosting su ASP.NET
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Web Services.
Java Enterprise Edition (JEE)
Massa Laura Mela Enrica
Generalità Linguaggio e Macchina Astratta
Confronto di sistemi per
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Introduzione ai Web Services. E' un nuovo meccanismo RPC ottimizzato per l'uso in Internet Un qualunque Client su una generica piattaforma deve poter.
IL NOSTRO LABORATORIO. Di INFORMATICA..
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Distributed Object Computing
ICT (Information and Communication Technology):
Introduzione al linguaggio Java
Architettura del World Wide Web
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Gestione dei Progetti Software 2 (a.a. 204/05) - Lezione 4 1 Il package java.awt Gestione dellI/O orientato alla grafica: le finestre Sviluppo di interfacce.
Struttura dei sistemi operativi (panoramica)
CAPITOLO 2 INTRODUZIONE AL LINGUAGGIO JAVA E ALL'AMBIENTE HOTJAVA.
JAVA Security. Jdk1.0 sandBox Ilo sistema di sicurezza JAVA si basa sulla struttura della seandBox. In base a tale politica tutte le applicazioni eseguite.
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
Elaborazione di Franco Grivet Chin
Introduzione ad ASP.net
Architettura Java/J2EE
Introduzione a Java.
Applicazioni mobile Better Software 2009 Massimiliano Zani Sms Italia.
Guida IIS 6 A cura di Nicola Del Re.
Modulo 1 - Hardware u.d. 3 (syllabus – 1.3.5)
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Server Web in una rete Windows Sommario Meccanismi di accesso remoto Meccanismi di accesso remoto Introduzione ai Server Web Introduzione ai Server.
Sistemi Informativi sul Web
Un problema importante
Il World Wide Web Lidea innovativa del WWW è che esso combina tre importanti e ben definite tecnologie informatiche: Documenti di tipo Ipertesto. Sono.
ASP – Active Server Pages Introduzione Pagine Web Statiche & Dinamiche(ASP)
Introduzione. Introduzione Un’applet Java: Una applet ("applicazioncina") è una applicazione non autonoma, ma pensata per far parte di una pagina Internet.
Distributed System ( )7 TCP/IP four-layer model.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
Creato da Riccardo Nuzzone
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
InternetInternet Sede: Salvo D’acquisto 2010/2011 Docente: Vito Monno.
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Support for Emulation of Services and Applications in Mobile Environments with Bluetooth Gruppo: Davide Bonomo Salvatore Baglieri Referente: Ing. Dario.
Java  2 Platform Enterprise Edition (J2EE  ) 1.3.
UML: Introduzione Corso IS I /03 Gianna Reggio Versione 0.0.
Servizi Internet Claudia Raibulet
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
Ingegneria del software Modulo 3 -Tecniche d’implementazione Unità didattica 1 -Ingegneria dei componenti Ernesto Damiani Università degli Studi di Milano.
Layered Grid Architecture. Application Fabric “Controlling elements locally”: Access to, & control of, resources Connectivity “Talking to Grid elements”:
Progettazione e realizzazione di un’applicazione J2EE Parte 2.
Eprogram informatica V anno.
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
Architetture software
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
Programmazione orientata agli Oggetti Introduzione a Java.
Eprogram informatica V anno. Programmare in rete.
OpenShift Origin – Cosa è
Transcript della presentazione:

ssssssssss Non fare quello che gli altri sanno fare sicuramente meglio e/o hanno già fatto. In generale lo sviluppo di applicazioni software “vere” pone sempre gli stessi problemi e questi problemi sono ben noti.

The Java Technology Corso TAPS 2001/02 Gianna Reggio

Sources ogni cosa disponibile in linea –specifiche (specification) *descrizioni tecniche precise –tutorial/demo/esempi –software *tutto libero, eccetto le versioni “ricche” di alcuni strumenti di sviluppo

Java Technology sia linguaggio di programmazione (Java ) sia una piattaforma Java –imperative OO, ma molto di più (es. multithread) –"write once, run anywhere" *compilatore/tradutttore (1 solo) *programmi Java -> Java bytecodes *vari interpreti per il bytecodes per le diverse piattaforme *Java bytecodes: linguaggio macchina per la Java Virtual Machine (Java VM) *interprete del Java bytecodes = implementazione della Java VM *stesso programma può essere eseguito su ogni computer che ha una Java VM

Java Platform 1 platform –ambiente hardware o software dove sono eseguiti i programmi (Windows 2000, Linux, Solaris, MacOS) –una platform in genere può essere descritta come una combinazione di sistema operativo e hardware la Java platform è solamente software e viene eseguita al di sopra di altre piattaforme basate sull’hardware

Java Platform 2 consiste di – Java Virtual Machine (Java VM) – Java Application Programming Interface (Java API) Java API –collezione di software components/artifacts pronti per l’uso, es. per gestire Graphical User Interface (GUI) –organizzate in librerie di classi e interfaces correlate (packages) Java API e Java VM isolano il programma dall’hardware

Software Development Kit Integrated Development Environment Java Platform: più dettagliata (hardware based) piattaforme JRE (Java Runtime Environment) Java VM (Java Virtual Machine) API (Application Programming Interface)

Cosa supporta l’API Gli essenziali –oggetti, tipi base, strutture dati, threads, input/output,... Applets/servlets (programmi speciali client/server side) Networking: URLs, TCP, UDP, sockets e indirizzi IP Internazionalizzazione –aiuta i programmi ad adattarsi alla locazione di uso Sicurezza ad alto e basso livello –firma elettronica, gestione delle chiavi pubbliche e private, dei certificati, e controllo degli accessi Software components: JavaBeans  Object serialization –permette persistenza “leggera” e comunicazione via Remote Method Invocation (RMI). Java Database Connectivity (JDBC  ) –permette l’accesso uniforme a database relazionali grafica 2D e 3D, accessibilità, server, collaborazione, telefonia, parola, animazione …..

Java 2 Platform Tre edizioni –Standard Edition (J2SE  ) fornisce compilatori, strumenti, runtime support e API essenziali per scrivere, installare ed eseguire applicazioni ed applet Java –Enterprise Edition (J2EE  ) le sue tecnologie e il suo component model semplifica lo sviluppo e l’installazione di applicazioni “enterprise” (a unit of economic organization or activity; especially: a business organization) –Micro Edition (J2ME  ) un Java runtime environment altamente ottimizzato indirizzato specificamente a “computer piccoli”: smart card, pager, telefonini, set-top box (dispositivo che permette ad una televisione di diventare una user interface per Internet e ricevere e decodificare trasmissioni digitali)

API / SPI / “componenti” (1) Java Application Programming Interface (API) –codice già scritto organizzato in packages relativi ad argomenti comuni –Java package A package is a collection of related classes and interfaces providing access protection and namespace management. *per usare una classe o un’interfaccia in un package ˚usare il nome qualificato completo java.awt.BorderLayout ˚inportare la classe o l’interfaccia import java.awt.BorderLayout; ˚importare tutto il package import java.awt.*; –interfaces (intese come in Java) A Java  programming language keyword used to define a collection of method definitions and constant values. It can later be implemented by classes that define this interface with the "implements" keyword.

API / SPI / “componenti” (2) Service Provider Interface (SPI) –il mezzo con cui certe API precisano come gli sviluppatori possano scrivere il codice corrispondente ai servizi di cui necessitano per funzionare –Java package Componenti leggerissime (“veline”) –componente model = commenti –component framework = Java interfaces + packages

J2SE

Java 2 Standard Edition (J2SE  ) v1.4.1 JavaTM 2 SDK, Standard Edition Documentation Version Disponibile on line a download a

J2SE  overview Solaris Linux Windows MacOS Other Java Hotspot VM Runtime Java Hotspot Client CompilerJava Hotspot Server Compiler LangUtilNew I/ONetworking CollectionsJNISecurity XMLLoggingBeans Locale Support Java 2DSound Input Methods Accessibility Swing Java Web StartJava Plug-in Java Compiler Java Debugger JavadocJPDA RMIJDBCJNDICorba Platforms Java Virtual Machine Core APIs Integration APIs User Interface Toolkits Deployment Technologies Development Tools & APIs JREJRE SDKSDK Preferences AWT

Platforms implementazioni Sun del Java 2 SDK and Java Runtime Environment per –Microsoft Windows –Linux –Solaris Operating Environment (Sun) implementazioni non-Sun per altri sistemi operativi –Macintosh

Java  Virtual Machines 2 implementazioni della Java VM –Java HotSpot Client VM *default *miglior performance se eseguita su un client –Java HotSpot Server VM * miglior performance se eseguita su un server Common features della tecnologia HotSpot –Adaptive compiler *applicazioni sono eseguite da un interprete standard, ma il codice è analizzato per scoprire possibili performance bottlenecks, o “hot spots”, che vengono quindi compilati –Rapid memory allocation (per gli oggetti) e garbage collection –Thread synchronization *Java supporta multiple threads (concurrent paths of program execution)

API: Lang & Util Lang :le classi fondamentali per il linguaggio Java –asserzioni (nuovo in Java 2) Util: varie cose, tra cui –espressioni regolari –zip/gzip –jar (file in formato Java Archive = zip + manifesto) –supporto per riflettività (il linguaggio accede e manipola I suoi programmi) permette alle applicazioni di immagazzinare e recuperare preferenze degli utenti e del sitema, e dati sulla configurazione API: Preferences

Collections Framework collection = oggetto che rappresenta un gruppo di oggetti (come la classe Vector) il framework offre strumenti di rappresentare e manipolare in modo unitario le collections indipendentemente dai dettagli delle loro implentazioni –Collection Interfaces, per *vari tipi di insiemi, liste, mappe –diverse implementazioni *General-purpose *Legacy *….. –algoritmi *metodi che eseguono varie funzioni, come ordinare una lista –Array Utilities *Utility functions for arrays of primitives and reference objects.

Logging supporto per produrre log reports –catturando informazioni come *security failures *configuration errors *performance bottlenecks *…. –ritornandole come testo o XML in memoria o su streams, sockets,... offre il supporto di base per lavorare con documenti XML prossimamente nel corso XML

New I/O offre nuove features e migliori performance per gestire l’I/O supplementa le facilities del package java.io

Networking supporto per implementare applicazioni di (in, sulla) rete –supporto per usare IP e UDP –socket per comunicare con ogni server su Internet o per implementarsene uno –classi per usare gli Universal Resource Locators (URLs) per recuperare dati su Internet –socket sicuri per comunicare in modo sicuro usando SSL, e opzionalmente per criptare i dati ed autenticare coloro con cui si comunica

Security supporto per stabilire e gestire “politiche di accesso” alle risorse da parte del codice (permessi di read/write, restrizioni sulle applet) crittografia –supporto per *firma digitale *sintesi dei messaggi *creazione e gestione di chiavi *gestione dei certificati *Kerberos –basata su SPI (Service Provider Interface) componenti *per conneterle a “classi” (componenti) che realizzano effettivamente le funzionalità *per scegliere quale algoritmo utilizzare tools

JNI (Java Native Interface) permette al codice eseguito da una Java Virtual Machine di interoperare con applicazioni e librerie scritte utilizzando altri linguaggi di programmazione, come C, C++, e assembler aiuta a sviluppare applicazioni adattabili alle varie lingue e regioni (es. messaggi all’utente, formato dei numeri e date) Internationalization

Java Beans aggiunge la (una?) tecnologia a componenti (dette beans) alla piattaforma prossimamente Corba Common Object Request Broker Architecture (CORBA) –è uno standard OMG –per un framework (middleware) *object-oriented *distribuito *che supporta l’interoperabilità

Java Naming and Directory Interface  (JNDI) fornisce funzionalità per “naming” *come dei nomi sono associati a delle cose e come le cose sono ritrovati usando i loro nomi “directory” *ai nomi sono associati anche degli attributi, le cose si possono cercare anche usando questi attributi esempi: Unix/Linux file naming system, DNS indipendenti dalla loro implementazione per accedere in modo comune una varietà di servizi N&D consiste di –una API (Application Programming Interface) –uno SPI (Service Provider Interface) Service Provider implementati da SUN –DNS, RMI Registry Service Provider, COS name server per accedere a referenze ad oggetti CORBA,...

Java  Remote Method Invocation (RMI) Distributed Object Applications –costituite da diversi programmi *server ˚di solito crea degli oggetti remoti, rende i riferimenti a tali oggetti accessibili, e poi aspetta che i clienti chiamino i metodi di tali oggetti *client ˚di solito ottiene dei riferimenti a degli oggetti remoti su un server, e poi chiama dei loro metodi –oggetto remoto *i suoi metodi possono essere chiamati da un’altra Java VM, possibilmente su un altro host *ha una o più interfacce remote (scritte in Java) che dichiarano i suoi metodi remoti *Remote method invocation (RMI) è l’azione di invocare un metodo di una interfaccia remota di un oggetto remoto

Distributed Object Applications necessitano di: –localizzare oggetti remoti *un’applicazione può registrare i suoi oggetti remoti usando rmiregistry, il semplice naming system di RMI *le applicazioni possono semplicemente scambiarsi riferimenti ad oggetti remoti –comunicare con gli oggetti remoti *RMI si prende cura di ciò, al programmatore la comunicazione remota sembra la solita chiamata di metodo –caricare il bytecodes per le classe degli oggetti passati come parametri o valori di ritorno *RMI offre I meccanismi per caricare il codice degli oggetti e per trasmettere I suoi dati

esempio client server registry web server RMI URL protocol URL protocol URL protocol (HTTP, FTP, …) web server registrazione richiesta riferimento comunicazione class loading

I/O speciali Sound –per catturare, processare e suonare dati audio e MIDI, include un sound engine Input Methods – per inputtare testo senza usare la tastiera solita (lingue orientali, handwriting, voce) Accesibility –per creare semplicemente applicazioni utilizzabili da disabili (lettori di schermo, riconoscimento del parlato, braille displays)

JDBC  non un acronimo, ma si può pensare come “Java Database Connectivity” è una API (Java puro) per accedere virtualmente ogni genere di dati tabulari: database relazionali (anche al sapore OO), file contenenti data tabulari, rende facile mandare query SQL (qualunque dialetto) con JDBC è possibile scrivere applicazioni eseguibili su ogni Java VM non dipendenti dal tipo di database usato Open Database Connectivity (ODBC)

Abstract Window Toolkit (AWT) support la programmazione di Graphical User Interface (GUI) include –un ricco insieme di costituenti (component) di interfacce –un robusto meccanismo per gestire eventi –strumenti per gestire disegni ed immagini (forme, colori, font) –gestori del layout, per organizzare il layout delle finestre senza dipendere dalla misura della finestra o dalla risoluzione dello schermo –classi per gestire il trasferimento di dati via cut-and- paste attraverso clipboard della piattaforma

Project Swing implementa un insieme di GUI components usando solo Java che dovrebbero avere lo stesso aspetto su ogni piattaforma (Microsoft Windows, Solaris, Macintosh) contiene la versione 100% Java puro certificata delle componenti GUI di AWT (Button, Scrollbar, Label, etc.), più un ricco insieme di componenti a più alto livello (come tree view, list box, e tabbed panes)

Java  Web Start –una tecnologia per il deployment che permette di lanciare applicazioni complete con un click da un Web browser (es. uno spreadsheet, un Internet chat client) senza complicate procedure di installazione The Java  Plug-in Component permette ad applets di essere eseguite nei Web browsers Netscape Navigator e Microsoft Internet Explorer

Development Tools & APIs Java Compiler –traduce i programmi Java in Bytecode Java Debugger –aiuta a trovare gli errori nei programmi Java Javadoc –produce pagine HTML da file che contengono classi Java utilizzando i commenti Java Platform Debugger Architecture (JPDA) –aiuta a sviluppare debuggers per applicazioni Java

IDE (Integrated Development Tool) Sun  ONE Studio 4 update 1 - Community Edition (free) In laboratorio

Riferimenti su JESE The Java Technology Phenomenon ex.html J2SE  il sito J2SE  documentazione

THE END