MokaByte n. 4 - Gennaio 1997

Elaborazione delle immagini in Java

Elaborazione delle immagini in Java

La terza parte del corso approfondisce il caricamento asincrono delle immagini e il ruolo delle interfacce ImageProducer, ImageObserver e ImageConsumer. Attraverso il metodo imageUpdate viene mostrato come seguire la costruzione progressiva di un'immagine e ottenere un comportamento analogo a MediaTracker. La seconda parte introduce ColorModel, DirectColorModel, IndexColorModel e MemoryImageSource, fornendo il procedimento generale per leggere e visualizzare formati grafici non supportati direttamente da Java.

Grafica vettoriale con Java

Grafica vettoriale con Java

La prima parte del corso esamina le primitive vettoriali offerte dalla classe awt.Graphics e i loro limiti nella rappresentazione tecnica sul Web. L'articolo confronta immagini raster e disegni geometrici, quindi analizza le API per linee, circonferenze, ellissi e poligoni. Propone inoltre un modello basato su oggetti Punto, più coerente con la programmazione a oggetti e potenzialmente estendibile a più dimensioni, anticipando future utility per trasformazioni, rotazioni e prospettiva.

Il nuovo JDK 1.1

Il nuovo JDK 1.1

Il JDK 1.1 amplia sensibilmente la piattaforma Java, portandola da 8 a 21 package e introducendo nuove API destinate allo sviluppo di applicazioni distribuite e portabili. L'articolo offre una panoramica di internazionalizzazione, sicurezza, AWT ed eventi, networking, serializzazione, archivi JAR, reflection, JDBC, inner class, RMI e interfaccia per i metodi nativi. Ogni area viene presentata come anticipazione degli approfondimenti previsti nelle puntate successive.

Java & WEB Security

Java & WEB Security

This article surveys the security risks associated with Java applets in early web browsers. It distinguishes browser-side and server-side attacks, including denial of service, Trojan horses, data collection, traffic redirection and damage to web services. Practical precautions cover safer browser versions, firewalls and disabling Java on untrusted sites. The final sections discuss bug fixes, digital signatures, encryption and the emerging Java Security APIs.

Java BEANS

Java BEANS

JavaBeans introduce in Java un modello di componenti riusabili e componibili, adatti sia agli strumenti visuali sia alla programmazione manuale. L'articolo illustra le caratteristiche fondamentali di un bean — introspezione, proprietà, eventi, personalizzazione e persistenza — e mostra come assemblare un'applet con componenti serializzati. Gli esempi confrontano il lavoro svolto da un generatore di applicazioni con il codice necessario per ottenere lo stesso risultato direttamente tramite le API JavaBeans.

Teoria degli Agenti mobili

Teoria degli Agenti mobili

Gli agenti mobili sono programmi capaci di trasferirsi tra macchine diverse conservando il proprio stato di esecuzione. L'articolo ne chiarisce le differenze rispetto ai servizi remoti tradizionali e ai worm, presenta possibili applicazioni nella ricerca, nell'amministrazione e nel calcolo distribuito, quindi descrive i requisiti di migrazione, serializzazione e sicurezza. La panoramica si conclude con gli ambienti Telescript e Aglets e con il ruolo previsto per Java nello sviluppo di questa tecnologia.

Thread Programming

Thread Programming

Questa introduzione teorica prepara una serie pratica sulla programmazione multithread in Java. Partendo dal multitasking e dalla gestione concorrente dei processi, l'articolo definisce i thread e ne descrive il ciclo di vita, gli stati, le priorità e lo scheduling. La seconda parte affronta sincronizzazione, monitor, wait e notify, mostrando i rischi di starvation e deadlock. Una sezione finale introduce i gruppi di thread e il loro impiego nell'organizzazione delle applicazioni concorrenti.

Thread Programming

Thread Programming

La seconda parte introduce con un taglio pratico la struttura di un programma multithread e il rapporto con la programmazione distribuita. Dopo una definizione semplificata di thread, viene proposto un modello nel quale piccoli programmi comunicano attraverso socket e collaborano alla soluzione di un problema. L'esempio di una calcolatrice distribuita mostra come suddividere addizioni e moltiplicazioni tra processi concorrenti, preparando l'implementazione prevista nella puntata successiva.