Sei sulla pagina 1di 68

IN VETRINA

Learning JavaScript Mobile 3D Graphics


di S. Power di A. Malizia

Attraverso gli esempi più Il libro illustra gli elementi fonda-


recenti di pratiche di sviluppo mentali per la programmazione
per i moderni browser, il libro grafica 3D mobile con gli standard
insegna come integrare il API, trattando sia le interfacce di
linguaggio con l’ambiente del base che quelle avanzate, oltre ai
browser. principali device wireless e mobile
Attraverso la lettura di questo che supportano la programma-
libro si padroneggerà l’uso del- zione grafica 3D mobile. Include
l’intero linguaggio JavaScript e una spiegazione esaustiva sulla
di molti object model presenti programmazione 3D mobile; un
O’ Reilly Springer
nei browser web; sarà anche lungo elenco di esempi di codice in
351 pp - 31,00 Euro 162 pp - 58,60 Euro
possibile creare applicazioni C e in Java; combina metodi grafici
ISBN 0596527462 ISBN 1846283833
Ajax elementari. 2D e 3D.

Ajax trucchi e segreti An introduction to Design


di B. W. Perry Patterns in C++ with Qt 4
di A. Ezust, P. Ezust

Il libro presenta una serie di


soluzioni pronte all’uso e svela
tutte le potenzialità di Ajax.
Imparerete a dotare le form
HTML di funzionalità Ajax,
personalizzandole per rispon- Si tratta di un tutorial completo
dere alle aspettative degli che non dà per scontate pregresse
utenti, esplorare e combinare conoscenze di C, C++, oggetti o
tra loro le API di Google Maps, pattern.
Tecniche Nuove Prentice Hall
di Yahoo! Maps e di GeoURL e Una guida a piccoli passi corredata
432 pp - 29,90 Euro 656 pp - 46,70 Euro
molto altro ancora. di numerosi esempi ed esercizi di
ISBN 8848119751 ISBN 0131879057 Qt 4.1.

Java Generics and Enterprise Service


Collections Oriented Architectures.
di M. Naftalin, P. Wadler Concepts, Challenges,
Recommendations
J. McGovern et al

Il libro copre ogni ambito,


dagli usi dei generics fino ai
casi più particolari. Enterprise Service Oriented Archi-
Insegna tutto ciò che serve tectures permette al lettore di far
sulle collections libraries, comunicare diverse applicazioni in
permettendo di sapere modo “loosely coupled”.
sempre quale sia la collection Si tratta di un classico attraverso
O’ Reilly appropriata per il compito cui si possono imparare i principi
dato e come usarla. Springer basilari e fondamentali di un’archi-
294 pp - 34,95 Euro 408 pp - 57,80 Euro
ISBN 0596527756 tettura service-oriented.
ISBN 140203704X

Visual Basic 2005 Reti domestiche


Tecniche e soluzioni di S. Lowe
di J. Kent

Questa guida all’autoapprendi-


mento inizia spiegando i concetti
fondamentali della programma-
zione. Quindi illustra come creare Al giorno d’oggi milioni di compu-
sofisticati elementi dell’interfaccia ter sono connessi a Internet, ma il
utente grafica, tra cui menu, collegamento di pochi computer in
barre degli strumenti e finestre una rete casalinga risulta ancora
di dialogo. Al termine del libro, il difficile.
lettore sarà in grado di realizzare Con un linguaggio chiaro e senza
applicazioni Windows e Web termini gergali, e con un tocco di
Mc Graw Hill O’ Reilly/Tecniche Nuove
anche con l’utilizzo di database. umorismo, il libro aiuta a capire
300 pp, euro 26.00 250 pp - 24,90 Euro
Corredato di quiz alla fine di ogni tutto ciò che è necessario per
ISBN 8838644470 ISBN 8848118437
capitolo ed un esame finale. installare una rete domestica.
VBJ 72
Programmare con Visual Firewall e VPN
Basic 2005 Express di T. Behrens et al.
di W. Wang
Vero e proprio punto di riferi-
La maggior parte dei libri di pro- mento nella protezione delle reti
grammazione cerca di insegnare e configurazione di Firewall e
contemporaneamente come scri- VPN. Oltre alla teoria necessaria
vere un programma utilizzando un generale è presente un’attenta
linguaggio specifico, come program- descrizione delle procedure
mare, come scrivere un programma con il software 7.0 per l’intera
utilizzando un particolare ambiente famiglia di Firewall Cisco PIX
di sviluppo e un compilatore. Ciò può della serie 500. Questo volume
portare alla confusione. Visual Basic spiega dettagliatamente come
2005 Express offre una introduzione sfruttare le funzionalità integrate
O’ Reilly/Tecniche Nuove su come funziona la program- Mc Graw Hill per reti virtuali reti private virtuali
560 pp - 39,90 Euro mazione indipendentemente dal 590 pp - 44,00 Euro ad accesso remoto e site-to-site
ISBN 8848119484 linguaggio usato. ISBN 8838644624 offerte dai Firewall Cisco PIX.

Riparazione & upgrade Scrivi a book@infomedia.it specificando


per pc, workstation e nell’oggetto della e-mail:
server
di S. Mueller et al
IN VETRINA Visual Basic e .NET Journal n. 72
Da quasi 20 anni i testi di Scott Mueller
OPPURE
sono il riferimento per la manutenzio- inviaci il coupon al numero di fax 0587/732232
ne e la comprensione dei computer.
Ora anche gli amministratori di
workstation e server troveranno sod- Potrai acquistare i libri qui riportati
disfazione in un testo con spiegazioni
complete sulla riparazione e sull’up- con uno SCONTO ECCEZIONALE
grade. Questo libro è la prima linea di
difesa per le società che gestiscono del 10% anche se acquisti solo un libro
Mc Graw Hill installazioni e supporto dei propri
1050 pp - 74,00 Euro computer e un eccellente riferimento OPPURE
ISBN 8838644640 per gli amministratori esperti.
del 20% se acquisti 3 libri

VBJ 72
© 2006 Microsoft Corporation. Tutti i diritti riservati. Tutti i marchi registrati citati sono di proprietà delle rispettive società.

Nuovo Visual Studio 2005, ora anche in italiano.


La differenza si vede.
Scopri la differenza! Appena inizierai a sviluppare, sarà evidente.
Visual Studio 2005 Team System mette a tua disposizione strumenti
efficienti, estensibili e integrati per gestire al meglio l’intero ciclo
di vita del software. Così potrai ridurre i tempi di sviluppo e ottenere
processi più affidabili. Per saperne di più, visita
microsoft.com/italy/difference/
Partecipa ai webcast (eventi on line interattivi) per conoscere le
potenzialità di Visual Studio 2005: microsoft.com/italy/webcast_msdn/

025275-Visual 205x275 M 1 19-10-2006 15:01:54


���� ��������
��������
���������������������������
��
��������������������������������������������������
��������������������������������������������������������������������������������������
��������������������������������������������������������������������������������������
����������������������������
�������������������

���
��������������������������������
�� ������������������������������������������������������������������������������������������
���������������������������������������������������������������������������������������
����������������������������������������������������������������������
�������������

�������
�����������������������������������������
�� ��������������������������������������������������������������������������������������
��������������������������������
�������������������

������
��������������������������������������������
�� ����������������������������������������������������������������������������������������
���������������
������������������

�������������������
��������������������������������������������
�� ���������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������������
���������������������������������������������
������������������

��������������� ��������
������������������������������������������������������������������������������������ � ����������
��������������������������������������������������������������������������������������
������������������������������������������������������������������������������������������� �� ����������
������������������������������������������������������������������� �� ���������������

����������������������������������� �
�������������������
������������������������������
����������������������������

��������������������������
��������������������������������������

��������������������
���� ������� ������
�����������������������������������������

��������������������
����������������
�������������������������������
�������������
�����������������
�����������������
�������������������


���������������� ������������������������������������������������������������
��������������
����������� ����������������������������������������������������������
��������������������������������������������������
���������������������������������������

��������� ������� ���� ����� ���� �������� ������ ��� ��� ��������
�����������������������������������������������������������
�����������������������������������������������������������
���������������������������������������������������������������
��������������������������������������������������������������
���������������������������������������������������������������
����������������������������������������������������
����������
�������������������������������� ��������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������
������������������������� �������������������������������������������������������������������������������������
�����������������������
�����������������������
������������������������������������������������������������������������������������
����������������������������������������������������������������������������������
��������������� �������������������������������������������������������������������������������
����������� ��� ������������� ���� �� ���� ������������ �������� ����������� �������������� �� �������������
������������������������������
�����������������������������������������������������������������������������������
������� ��������������������������������������������������������������������������������������
�������������������������������������� ��������������������������������������������������
��������������
������������������������������ ���������������������������������������������������������������������������������������
�������������������������������������������������������������������������������������
�����������
�������������
�������������������������������������������������������������������������������������
������������������� �����������������������������������������������������������������������������������

����������������������������������������������������������������������������������������
������ �����������������������������������������������������������������������������������
������������������������ �����������������������������������������������������������������������������������
���������������������� �����������������������������������������������������������������������������������������
�����������������������������������������������������������������������������������
������������������� ���������������������������������������������������������������
����������������������������������
��������������������������������� ������������������������������������������������������������������������������������
����������������
�������������������������������������������������������������������������������������
������������������������������� ������������������������������������������������������������������������������������
������������������������������������������������ ���������������������������������������������������������������������������������
���������������������������������� ���������������������������������������������������������������������������������������
��������������������
������������������������� ������������������������������������������������������������������������������

���������������������������������������������������������
���������������������������������������������������� ����������������
������������������������������������
��������������������������
����������������������������������������������������������������
���������������������������������������������������������
�������������������������������������
�������������������������������������������������������������������������
�����������������������������������������������������
����������������������������������� �
SPECIALE

Visual Studio
Team System:
coniugare metodi agili e
certificazione di qualità
Come costruire un processo per il ciclo di vita del software
basato su metodi agili e conforme alle norme Vision 2000
utilizzando il sistema di gestione dei team integrato nel
nuovo Visual Studio 2005

di Francesco Arrigo

Allo stato attuale esistono parecchie aziende un team di progetto softwa-


che, per vari motivi, possiedono processi certi- re. Si vedrà inoltre come gli
ficati ISO9001: 2000 (Vision 2000) per l’analisi, stessi componenti possono
progettazione e sviluppo software e parecchie applicare in maniera traspa-
altre che, adottando i metodi agili (extreme rente il Microsoft Solution
programming, SCRUM, ecc.), dicono di essersi Framework nella versione 4.0
liberate dall’oppressione della documentazione una volta definita una meto-
a tutti i costi a vantaggio della velocità, produt- dologia basata sui paradigmi
tività e soprattutto dell’abbattimento dei costi. di programmazione agili uti-
Non sono tante, invece, quelle che riescono lizzando Visual Studio Team
ad adottare metodologie di sviluppo agili, che System.
nello stesso tempo fanno parte integrante di
un sistema conforme alle norme Vision 2000. Vision 2000 e metodi
In questo articolo vedremo come raggiungere agili: convergenza o
questo obiettivo in maniera tale che si adatti contraddizione?
naturalmente alle esigenze dei componenti di Quando si parla della certifica-
zione ISO 9001 si pensa subito
che questa serva per poter di-
Francesco Arrigo è laureato in Scienze dell’Informazione
presso l’Università di Catania. È team leader del software mostrare pubblicamente che
Eraclito® per la progettazione e simulazione di reti di fluidi l’azienda segue un processo
sviluppato in C++ e prodotto dalla Proteo S.p.A. di Catania. documentato, indipendente-
È responsabile della qualità nel software nella stessa azienda
certificata ISO9001:2000 dal 1999. mente dal fatto che questo,
poi, risulti burocraticamente

N. 72 - Novembre/Dicembre 2006 VBJ 11


SPECIALE

Figura 1 Modello di Sistema di gestione per la qualità basato sui processi

insostenibile. D’altra parte all’interno delle vamente sono state introdotte anche delle
comunità sostenitrici dei metodi agili c’è linee guida ISO IEC 90003 2004, pubblicate
chi dice che la quantità di documentazio- ufficialmente il 15 febbraio del 2004, che
ne richiesta per ottenere la certificazione aiutano ad applicare i requisiti Vision 2000
ne contraddice i principi fondamentali, alla progettazione e sviluppo del software.
perchè un processo documentato è ine-
rentemente non agile. Spesso, però non
si comprende che essa riguarda l’intera
azienda e non solo il processo di sviluppo Le norme ISO 9001:2000
software, anche nel caso in cui questo rap- dette anche Vision 2000
presenti il suo core-business. Tali opinioni
nascono soprattutto dal fatto che le prime
sono intensivamente
versioni dello standard ISO davano risalto orientate ai processi
alla documentazione delle procedure piut- e richiedono una
tosto che alla qualità delle stesse. Inoltre
erano piuttosto generali in modo da poter organizzazione che li
essere utilizzate nell’ambito di un processo identifica, gestisce e
produttivo qualunque. Le cose però sono
cambiate da quando lo standard corrente
migliora continuamente
è basato sulla qualità all’interno di un pro-
cesso, infatti le norme ISO 9001:2000 – det-
te anche Vision 2000 – sono intensivamen- La principale novità introdotta è un più
te orientate ai processi e richiedono una rilevante coinvolgimento del top manage-
organizzazione che li identifica, gestisce e ment aziendale nello stabilire la politica
migliora continuamente, come è illustrato della qualità e gli obiettivi per assicurare
nel modello proposto in Figura 1. Successi- che le necessità del cliente siano sod-

12 VBJ N. 72 - Novembre/Dicembre 2006


SPECIALE

disfatte. Il miglioramento continuo, se- Bisogna trovare, quindi, un equilibrio tra


condo i sostenitori dei metodi agili, può produttività e gestione del processo ed in
rappresentare ancora un ostacolo perché questo compito ci aiuterà il MSF (Micro-
aggiunge “overhead” all’agilità del proces- soft Solution Framework) che discuteremo
so di sviluppo. Il punto chiave, però, non nel prossimo paragrafo.
è il processo ma l’abilità di dimostrare che
esso può raggiungere gli obiettivi delle
Vision 2000 e cioè gestire e migliorare la
qualità. Non c’è nulla di esplicito o impli-
cito nei metodi agili che precluda tutto Il nucleo di ogni processo
questo. Anzi si può dire che le Vision 2000 di sviluppo agile è il modo
forniscono chiarezza e stabilità ai metodi
agili e dimostreremo più avanti come la
in cui si partiziona e si
loro agilità fornisca naturalmente e senza pianifica il lavoro
appesantimenti gli elementi necessari per
il miglioramento del processo.

Modelli di ciclo di vita del software:


stato dell’arte ed applicabilità in MSF (Microsoft Solution Framework)
contesti concreti Il Microsoft Solution Framework (MSF)
Sebbene le Vision 2000 non definiscano è un template di metodologie (metamo-
un particolare modello di ciclo di vita, dello) che consente alle organizzazioni di
esse sembrano fare riferimento in qualche definire una metodologia propria, a parti-
modo al vecchio processo di sviluppo a re da un insieme di linee guida di base,
cascata del software (V-model). Questo per- per la gestione dell’intero ciclo di vita del
ché la classificazione delle norme ci porta software. MSF, giunto alla versione 4.0,
a pensare ad un’esecuzione sequenziale rappresenta un cambiamento rispetto a
delle fasi di analisi dei requisiti, design, quello che erano state le strategie Micro-
implementazione, testing e manutenzione. soft del passato. Il colosso di Redmond
La storia dei progetti software ci dimostra non era certo stato un riferimento per le
però che la sequenzialità è un’utopia, in metodologie di sviluppo software poiché
quanto si basa sulla stabilità dei requisiti. la precedente versione del MSF era legata
Il continuo cambiamento di questi ultimi alla sequenzialità delle fasi. La filosofia
ha consentito l’affermazione dei modelli di MSF è fornire linee guida per il pro-
evolutivi che hanno aggiunto al modello a cesso di sviluppo che siano produttive,
cascata una fase di prototipazione in grado integrate negli strumenti ed estendibili.
di ottenere migliori requisiti. La mossa vincente, però, è stata quella
Da qui la nascita dei metodi iterativi e quindi di trasformare un modello in un metamo-
agili, che si sono rivelati i più vicini al proces- dello e soprattutto nel fornire un’appli-
so di sviluppo reale e tra di essi possiamo di- cazione che consenta di utilizzarlo, cosa
stinguere diversi gradi di agilità, che vanno essenziale e non banale per evitare che le
da DSDM (Dynamic System Development linee guida teoriche rischiassero di rima-
Method) ad XP (Extreme Programming). nere tali. Nei prossimi paragrafi vedremo
L’eccessiva agilità può condurre, però, anche i Team Foundation Services di Visual
alla perdita del controllo del progetto, soprat- Studio Team System. Per ora diciamo
tutto nell’applicazione di una metodologia che Microsoft fornisce due metodologie
come XP, in cui compiti e ruoli si scambiano di default insieme al framework e cioè
all’interno del team di sviluppo. “MSF for Agile Software Development” e

N. 72 - Novembre/Dicembre 2006 VBJ 13


SPECIALE

“MSF for CMMI Process Improvement”. MSF, sono racchiusi in poche persone che
La prima è destinata a team di sviluppo hanno uguale importanza. Grande impor-
da tre a venti persone, mentre la seconda tanza ha il cliente ed il suo rapporto con il
è più rigida ed è pensata per team più team di sviluppo. I metodi agili dicono che
numerosi e fornisce un modello per mi- il cliente deve lavorare fianco a fianco con
gliorare continuativamente un processo il team di sviluppo, ma questa situazione
(CMMI infatti sta per Capability Maturi- ideale quasi mai può avvenire. Microsoft
ty Model Integration). Comunque anche all’interno dei propri team ha introdotto il
se le due metodologie hanno in comune concetto di “persona” che svolge il ruolo
l’approccio agile, prenderemo in consi- di cliente interno e cioè la persona che
derazione “MSF for Agile Development” rappresenta un gruppo di clienti “reali”.
perché è la metodologia che più si addice Inoltre i metodi agili possono essere ap-
alla maggior parte dei team di sviluppo. Il plicati ai grandi progetti nel momento
nucleo di ogni processo di sviluppo agile in cui anche gli architetti forniscono un
è il modo in cui si partiziona e si pianifica design per componenti del progetto che
il lavoro. Inizialmente, un progetto è sud- viene via via raffinato. Si parla infatti di
diviso in periodi fissati nei quali si svolge “shadow” design che rimane disallineato
lo sviluppo. Questi periodi fissati sono le con la codifica durante l’iterazione per poi
iterazioni. La lunghezza di una iterazione riallinearsi alla fine. Infine, all’interno di
è solitamente fissata tra le due e le otto una iterazione, MSF richiede le unità di
settimane sebbene possa capitare che, per test (unit test) come parte delle attività di
piccoli progetti, le iterazioni possano esse- sviluppo.
re lunghe giorni o addirittura ore. La pri-
ma iterazione (iterazione zero) è quella in
cui sono fissati gli scenari ed i requisiti di
qualità del servizio (per esempio le perfor- Microsoft all’interno dei
mance, la piattaforma richiesta, i requisiti
di sicurezza). Inoltre la prima iterazione è propri team ha introdotto il
quella in cui gli sviluppatori forniscono concetto di “persona” che
una stima di massima degli scenari e dove
vengono stabilite le priorità. All’iterazione
svolge il ruolo di cliente
successiva gli scenari vengono dettagliati interno e cioè la persona
maggiormente e tarati sulla velocità del- che rappresenta un gruppo
l’iterazione precedente, mentre gli svilup-
patori dividono gli scenari in task e for- di clienti “reali”
niscono stime più dettagliate per ciascun
task. L’aspetto che riguarda la stima è
molto importante: l’errore nella stima del
software è sempre stato uno dei problemi
critici che le metodologie agili risolvono
con brevi iterazioni e raffinamenti succes- Architettura di
sivi dei requisiti. Oltre agli sviluppatori, Visual Studio Team Foundation
anche gli architetti ed i tester creano task Per poter applicare concretamente MSF
all’interno di una iterazione ed alla fine di dobbiamo compiere il primo passo e cioè
essa c’è sempre una fase di integrazione l’installazione di Visual Studio 2005 sulle
(continuous_integration)._Comunque, macchine client degli utenti del team di
i tradizionali ruoli nel ciclo di vita del sviluppo e l’installazione di Team Foun-
software, all’interno di un processo agile dation Server su un server Windows 2003

14 VBJ N. 72 - Novembre/Dicembre 2006


SPECIALE

Listato 1 Esempio di ProcessTemplate.xml

<?xml version=”1.0” encoding=”utf-8”?> <dependency groupId=”Classification” />


<ProcessTemplate> </dependencies>
<metadata> <taskList filename=”Groups and Permissions\Groupsand
<name>Agile Software Development with Scrum</name> Permissions.xml” />
<description>Scrum is an agile, lightweight process </group>
that can be used to manage and control software <group id=”WorkItemTracking” description=”Workitem
and product development using iterative, incremental definitions uploading.”
practices. Wrapping existing engineering completionMessage=”Workitem definitions uploaded.”>
practices, including Extreme Programming and RUP, <dependencies>
Scrum generates the benefits of agile development with the <dependency groupId=”Classification” />
advantages of a simple implementation. </dependencies>
Scrum significantly increases productivity and reduces time <taskList filename=”WorkItemTracking\WorkItems.xml” />
to benefits while </group>
facilitating adaptive, empirical systems development. <group id=”Portal” description=”Creating project Site”
</description> completionMessage=”Project site created.”>
<plugins> <dependencies>
<plugin name=”Microsoft.ProjectCreationWizard. <dependency groupId=”Classification” />
Classification” wizardPage=”false” /> <dependency groupId=”WorkItemTracking” />
<plugin name=”Microsoft.ProjectCreationWizard. <dependency groupId=”VersionControl” />
WorkItemTracking” wizardPage=”false” /> </dependencies>
<plugin name=”Microsoft.ProjectCreationWizard. <taskList filename=”Wss\Wss.xml” />
Reporting” wizardPage=”false” /> </group>
<plugin name=”Microsoft.ProjectCreationWizard.Portal” <group id=”Reporting” description=”Project reports
wizardPage=”true” /> uploading.”
<plugin name=”Microsoft.ProjectCreationWizard.Groups” completionMessage=”Project reports uploaded.”>
wizardPage=”false” /> <dependencies>
<plugin name=”Microsoft.ProjectCreationWizard.Version <dependency groupId=”Classification” />
Control” wizardPage=”true” /> <dependency groupId=”Portal” />
</plugins> </dependencies>
</metadata> <taskList filename=”Reports\Reports.xml” />
<groups> </group>
<group id=”Classification” description=”Structure <group id=”VersionControl” description=”Creating
definition for the project.” Version control.”
completionMessage=”Project Structure uploaded.”> completionMessage=”Version control task completed.”>
<dependencies> <dependencies>
</dependencies> <dependency groupId=”Classification” />
<taskList filename=”Classification\Classification.xml” /> <dependency groupId=”WorkItemTracking” />
</group> </dependencies>
<group id=”Groups” description=”Create Groups and <taskList filename=”VersionControl\VersionControl.xml” />
assign Permissions.” </group>
completionMessage=”Groups created and Permissions assigned.”> </groups>
<dependencies> </ProcessTemplate>

SP 1 (edizione Standard o Enterprise) con client-server che di una a tre livelli in cui il
SQL Server 2005 SP1 e gli SharePoint Ser- server contiene solo i dati ed i Team Foun-
vices 2.0 SP2 o superiore. Sorvoleremo, in dation Services (web service a cui i client
questo articolo, sui dettagli di configura- richiedono i servizi disponibili) si trovano
zione perchè questi richiederebbero un su server localizzati su aree geografiche
articolo dedicato. Diciamo soltanto che il diverse. Tipicamente, per piccoli team (da
server non deve essere un domain control- tre a venti persone), è sufficiente un’archi-
ler e può far parte sia di una architettura tettura client-server.

N. 72 - Novembre/Dicembre 2006 VBJ 15


SPECIALE

Figura 2 Architettura di Visual Studio Team Foundation

Sicuramente introdurre Visual Studio quelli dei risultati dei test e della genera-
Team System all’interno di un'organiz- zione del codice (“team build”).
zazione non è cosa semplice e comporta • Application server, in cui sono esposti i
l’assunzione di decisioni che influenzano web service dei diversi strumenti e attra-
l’amministrazione dell’intero sistema in- verso i quali è possibile accedere ai dati
formativo aziendale. archiviati. Inoltre questo livello gestisce
Premesso ciò, supponiamo di aver ter- l’hosting del sito Windows SharePoint
minato la fase di installazione e di voler Services per il portale del progetto ne-
creare un nuovo “team project” su Team cessario per presentare documenti, fogli
Foundation Server. Abbiamo la seguente di calcolo e piani di attività favorendo in
partizione logica del server: tal modo la comunicazione tra i mem-
bri del team. I servizi di report di SQL
• Database server SQL Server 2005 neces- Server, infine, consentono in qualunque
sario per gestire e tracciare tutte le attività momento di avere a disposizione la situa-
pianificate per il team di progetto. Tali at- zione dettagliata del progetto.
tività sono chiamate “elementi di lavoro” o
“work item” e su di esse è costruito un da- Il livello client di Team Foundation,
tawarehouse ibrido relazionale ed OLAP invece, utilizza Team Explorer, un add-
per metriche ed indicatori sul progetto e in dell’ambiente di sviluppo di Visual
di processo. Tutti i dati non possono esse- Studio, per accedere al livello di appli-
re acceduti direttamente e tra di essi sono cazione, ma non solo. Esistono add-in
inclusi i dati per il controllo delle versioni, per il pacchetto Office, in particolare

16 VBJ N. 72 - Novembre/Dicembre 2006


SPECIALE

per Excel, Word e Project 2003. Essi intendono avvalersi delle caratteristiche
permettono ai membri non tecnici del di estensibilità di Team Foundation, pos-
team di progetto di lavorare nella ma- sono accedere ai web service del livello
niera in cui sono soliti fare, accedendo di applicazione attraverso un modello ad
a tutte le funzionalità senza necessità di oggetti ed un set di API che fungono da
installare un ambiente IDE come Visual proxy avanzati come vedremo nel pros-
Studio che potrebbe rivelarsi piuttosto simo paragrafo. L’intera architettura è
ostico da utilizzare. Gli sviluppatori che illustrata in Figura 2.

Listato 2 Codice C# per aggiungere un nuovo work item in TFS

using System; WorkItem workItem = new WorkItem(workItemTypes[0]);


using System.Collections.Generic; Console.WriteLine(“Creato un nuovo work item di
using System.Text; tipo {0}”, workItem.Type.Name);
using System.Collections;
using Microsoft.TeamFoundation.Client; workItem.Title = “Creato per esempio”;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
// Salva il workitem
namespace Microsoft.Samples.TeamFoundation workItem.Save();
{ Console.WriteLine(“Creato work item: {0}”,
class Attachments workItem.Id);
{
static void Main() Console.WriteLine(“Salvato work item.”);
{ }
string server = GetServer(); catch (Exception e)
{
try Console.WriteLine(“Errore: {0}”, e.Message);
{ }
// Ottiene il work item store da TeamFoundationServer }
Console.WriteLine(“Connessione a {0}...”,
server); // Metodo di ausilio per ottenere il nome del server
TeamFoundationServer tfs = TeamFoundationServer di TFS server a cui si è connessi.
Factory.GetServer(server); private static string GetServer()
WorkItemStore store = {
(WorkItemStore)tfs.GetService(typeof(WorkIt string server =
emStore)); Environment.GetEnvironmentVariable
(“TEAM_FOUNDATION_SERVER_NAME”);
// Crea un nuovo work item if (server != null)
if (store.Projects.Count <= 0) {
{ server = server.Trim();
Console.WriteLine(“Non ci sono progetti }
nel server”);
return; while (server == null || server.Length == 0)
} {
Console.WriteLine(“Inserisci il nome del Team
WorkItemTypeCollection workItemTypes = store. Foundation Server,\n oppure impostalo nella variabile di
Projects[0].WorkItemTypes; ambiente TEAM_FOUNDATION_SERVER_NAME:”);
if (workItemTypes.Count <= 0) server = Console.ReadLine();
{ server = server.Trim();
Console.WriteLine(“Non c’è nessun tipo di }
work item in questo progetto”); return server;
return; }
} }
}

N. 72 - Novembre/Dicembre 2006 VBJ 17


SPECIALE

ISO 9001:2000 Sviluppo agile con Visual Studio Team System


7.3 Progettazione e sviluppo

I work item che danno evidenza della pianificazione sono


7.3.1 Pianificazione della progettazione e dello sviluppo definiti nella metodologia applicata dal team di sviluppo e
L’organizzazione deve pianificare e tenere sotto controllo memorizzata in TFS. In questa metodologia sono definite
lo sviluppo del prodotto, stabilire le fasi, attività di riesame, le fasi (iterazioni), stabilite le regole per le attività di riesa-
verifica, validazione, ruoli e responsabilità per la progetta- me, verifica, validazione. Le group policy definiscono ruoli
zione. Inoltre deve assicurare comunicazioni efficaci e e responsabilità. Lo sviluppo del prodotto è tenuto sotto
garantire che i risultati della pianificazione siano aggiornati controllo mediante il sistema di controllo delle versioni di
con il progredire della progettazione e dello sviluppo. TFS. Le comunicazioni efficaci e aggiornate sono assicura-
te in ogni momento mediante il portale SharePoint.

7.3.2 Input di design e sviluppo I requisiti sono definiti mediante i work item e conservati
Gli elementi in ingresso riguardanti i requisiti del prodotto in TFS. È possibile definire una tipologia di work item per
devono essere definiti e conservati. Essi devono compren- ogni tipologia di requisito. Ogni work item può contenere
dere requisiti funzionali, prestazionali, cogenti applicabili, ogni tipo di informazione aggiuntiva ed il riesame avviene
informazioni da progettazioni precedenti. Gli elementi in stabilendo opportune politiche di check-in per TFS. Ogni
ingresso devono essere riesaminati, completi, non ambi- work item è dotato di identificatore univoco e di numero
gui, non in conflitto tra loro. di revisione.

7.3.3 Output di design e sviluppo Gli output di design e sviluppo sono rappresentati dal codi-
Gli output di design e sviluppo devono essere forniti in ce eseguibile e da tutto quello che sta a corredo (help, do-
una forma che consenta le verifiche secondo gli input e cumentazione, ecc.). TFS gestisce la cronologia dei work
devono essere approvati prima del loro rilascio. Gli ou- item oltre alle revisioni. I work item possono contenere
tput di design e sviluppo devono soddisfare i requisiti in riferimenti ad altri work item, al codice sorgente ed agli
ingresso, fornire informazioni per l’approvvigionamento, unit test necessari a completarli. Le politiche di check-in in
la produzione ed erogazione di servizi, contenere o ri- TFS consentono di raggruppare in un unico blocco (chan-
chiamare i criteri di accettazione per i prodotti e precisare geset) un insieme di file associati e di stabilire il routing di
le caratteristiche dei prodotti essenziali per una sicura e approvazione. I report di SQL Server consentono di fornire
adeguata utilizzazione. tutte le informazioni sul progetto.

7.3.4 Riesame del design e dello sviluppo


In fasi opportune devono essere effettuati riesami siste-
Al termine di ogni iterazione stabilita viene effettuata una
matici del design e dello sviluppo in accordo a quanto
fase di integrazione al fine di valutare il completamento
pianificato (vedi 7.3.1), al fine di valutare le capacità dei
dei work item. Ogni iterazione consente il raffinamento
risultati del design e dello sviluppo di ottemperare ai
dei work item precedenti o l’aggiunta di nuovi di tipo bug
requisiti, individuare tutti i problemi e proporre le azioni
legati ai precedenti. Ovviamente i responsabili dei work
necessarie. A tale riesame devono partecipare rappresen-
item sono coinvolti e tutte le azioni sono tracciate e man-
tanti delle funzioni coinvolte nel design e sviluppo oggetto
tenute in TFS.
del riesame. Risultati e azioni susseguenti devono essere
conservati.

7.3.5 Verifica del design e dello sviluppo Le verifiche del design e dello sviluppo sono effettuate
Devono essere effettuate verifiche in accordo con quanto mediante gli unit test legati al codice sorgente e quindi ad
pianificato (7.3.1) per assicurare che i risultati di output del uno o più work item. Possono essere stabilite delle politi-
design e dello sviluppo siano compatibili con gli elementi che che impediscono il check-in dell’intero changeset (co-
di input. Le registrazioni dei risultati delle verifiche e delle dice-work item-test) che non abbia superato lo unit test.
eventuali azioni intraprese devono essere conservate. Tutte le attività vecchie e nuove sono memorizzate in TFS.

7.3.6 Validazione del design e dello sviluppo


Deve essere effettuata la validazione in accordo con Come nel punto precedente ad un intero gruppo di work
quanto pianificato (7.3.1) per assicurare che i risultati di item possono essere associati test di regressione in modo
output del design e dello sviluppo siano compatibili con da coprire l’intero prodotto software. Il superamento dei
gli elementi di input. Le registrazioni dei risultati della vali- test, memorizzati in TFS, è condizione necessaria per il
dazione e delle eventuali azioni intraprese devono essere completamento dei work item.
conservate.

8.2 Monitoraggi e misurazioni

8.2.3 Monitoraggio e misurazione dei processi Il datawarehouse di TFS consente di definire opportune
L’organizzazione deve adottare adeguati metodi per misure per l’analisi del processo. La visualizzazione dei
monitorare e misurare i processi in modo tale da dimo- risultati è effettuata mediante i servizi di reporting di SQL
strare di ottenere i risultati pianificati. Server 2005.

8.2.4 Monitoraggio e misurazione dei prodotti Il datawarehouse di TFS consente di definire opportune
L’organizzazione deve monitorare e misurare le caratteri- misure per l’analisi del prodotto. La visualizzazione dei
stiche dei prodotti per verificare che i relativi requisiti sia- risultati è effettuata mediante i servizi di reporting di SQL
no stati soddisfatti. Deve essere documentata l’evidenza Server 2005.
della conformità ai criteri di accettazione.

Tabella 1 Mappatura norme ISO 9001:2000 / Azioni in VSTS

18 VBJ N. 72 - Novembre/Dicembre 2006


SPECIALE

Applicazione concreta di MSF Agile: in cui si discosti da uno predefinito di un


adattare il metodo al team e non solo file) con la seguente sintassi:
viceversa
Una volta definita l’architettura di Team witimport / f nomefile.xml /t <nome server> /p nomeprogetto
Foundation abbiamo a disposizione un
sistema integrato per applicare una me- Il file XML che guida l’intera crea-
todologia agile nel modo più naturale zione e deployment del metodo è
possibile. Fino a questo momento sia ProcessTemplate.xml, un esempio del qua-
per poter adottare una metodologia agile le è fornito nel Listato 1.
che per seguire un processo ISO9001: Una volta personalizzato il metodo è
2000 era necessario muoversi tra diversi possibile costruire applicazioni .NET per
strumenti o documenti in varie forme l’integrazione con TFS. In questo com-
con l’inevitabile conseguenza di compro- pito ci supporta il modello ad oggetti di
mettere sia l’agilità che il rispetto delle Team Foundation (TFOM) appositamente
norme. In questo paragrafo illustreremo studiato da Microsoft per accedere ai dati
come l’utilizzo degli strumenti di esten- di SQL Server 2005 e per poter costruire
sibilità di Visual Studio Team System gli add-in personalizzati per il pacchetto
(disponibili scaricando ed installando Office e Visual Studio stesso. Inoltre è
il Visual Studio 2005 SDK di settembre possibile utilizzare TFOM per impor-
2006) ci consente comunque di muoverci tare i dati di task e bug da altri sistemi
tra diversi strumenti, ma solo per la vo- esistenti verso TFS. In questo modo si
lontà di adottare MSF Agile senza scon- ottiene l’unica fonte dati dalla quale at-
volgere le abitudini del team. Allo stesso tingono strumenti di sviluppo ed appli-
tempo, però, Team Foundation Server cazioni fornendo il punto di partenza per
(TFS) li integra, fornendoci la possibili- il sistema integrato. Il Listato 2 descrive
tà di definire un metodo personalizzato un esempio di utilizzo realizzato crean-
o applicarne uno esistente, tracciare il do lo scheletro di un’applicazione in C#
workflow ed ottenere indicatori di pro- mediante il wizard delle applicazioni di
cesso per poter rispondere alle norme. Visual Studio.
Utilizziamo come punto di partenza
“MSF for Agile Development” e provia-
mo a scaricare il metodo dall’IDE Visual
Studio 2005. Per farlo è necessario con-
nettersi al server di Team Foundation Le Vision 2000 forniscono
e, attraverso Team Explorer, utilizzare
un wizard detto “Gestore dei template
chiarezza e stabilità ai
di processo” per avere a disposizione metodi agili
un insieme di file XML, i “Process De-
finition Files”. Tali file possono essere
modificati per personalizzare il metodo
secondo le nostre esigenze definendo
utenti, gruppi, permessi, politiche per Per poter utilizzare gli oggetti del TFOM
il controllo delle versioni e tipi di query bisogna aver cura di aggiungere i riferi-
per i work item. Definiremo così un no- menti agli assembly (.dll) di Team Foun-
stro metodo che può essere importato in dation (i cui nomi iniziano per Microsoft.
TFS per intero sia mediante il wizard, TeamFoundation), visibili nel browser
sia utilizzando il prompt dei comandi di dei componenti una volta installato Vi-
Visual Studio (utile per esempio nel caso sual Studio SDK. Nell’esempio si vede

N. 72 - Novembre/Dicembre 2006 VBJ 19


SPECIALE

come aggiungere un un nuovo work item Conclusioni


in un progetto di Team System. TFOM Abbiamo visto come agilità e qualità pos-
consente inoltre di personalizzare l’inte- sono andare d’accordo senza che neces-
grazione con il sistema di controllo delle sariamente l’una debba escludere l’altra.
versioni. Sicuramente il rigore nel progettare e svi-
luppare un’applicazione è imprescindibile.
Mappatura di una metodologia agile Il segreto è tutto nel pensare che le nor-
alle norme Vision 2000 mali attività di un project manager, di uno
Dopo aver adeguato gli strumenti alle sviluppatore o di un tester possono creare
attività di un team di sviluppo agile, la valore aggiunto se ben indirizzate. Visual
Tabella 1 descrive come il compimento Studio Team System è solo uno strumento
delle attività mediante gli strumenti che ci ha aiutato a raggiungere l’obiettivo.
possa essere conforme alle norme. Sono
stati presi in considerazione alcuni dei Riferimenti
requisiti più significativi (7.3 e 8.2) rela- [1]_Graham Wright – “Lecture Notes in
tivi rispettivamente alla progettazione e Computer Science”, Springer Berlin 2003
sviluppo del prodotto e ai monitoraggi e [2]_http://www.stsc.hill.af.mil/crosstalk/
misurazioni. I requisiti 8.4 e 8.5 riguarda- 2005/12/0512miller.html
no l’analisi dei dati ed il miglioramento. [3]_“Sistemi di gestione per la qualità – Re-
È facilmente intuibile come la presenza quisiti (ISO9001:2000)”
del datawarehouse di TFS sia uno stru- [4]_http://www.microsoft.com/italy/msdn/
mento essenziale. library/vs2005/team_foundation.mspx

20 VBJ N. 72 - Novembre/Dicembre 2006


WEB

I servizi UDDI
in Microsoft .NET
Questo articolo vuole essere un’introduzione all’uso dei servizi UDDI. In
particolare si fa riferimento all’implementazione UDDI della Microsoft
(versione 2.0). Viene mostrato un esempio di uso minimale dell’assembly
Microsoft.UDDI tramite frammenti di codice C# per effettuare ricerche di
servizi web e di fornitori di servizi

di Ciro Verde

L
uso sempre più diffuso dei web service versi fornitori di software, sia
in ambito aziendale ha reso necessario su piattaforme proprietarie
l’adozione di specifiche standardiz- che open source.
zate racchiuse nella sigla UDDI (Universal
Description, Discovery & Integration) per La Microsoft ha approntato il
la descrizione, la ricerca e l’integrazione componente opzionale UDDI
dei web service nelle applicazioni software. Services, disponibile con la
versione del sistema operati-
La specifica UDDI è gestita dal consorzio vo Windows Server 2003, che
OASIS (Organization for the Advancement of consente di utilizzare le fun-
Structured Information Standards, le specifi- zionalità UDDI come servizi
che sono disponibili all’URL http://uddi.org/ web sia interni che esterni
specification.html); è inquadrata in un contesto all’organizzazione aziendale.
basato sull’infrastruttura SOA (Services Orien-
ted Architecture) che tenga presente la necessi- Cosa sono i servizi UDDI
tà di garantire l’interoperabilità tra piattaforme In origine era un progetto nato
eterogenee (Java e Microsoft .NET). nel 2000 per l’iniziativa, tra gli
altri, di Microsoft e IBM. Suc-
Lo standard UDDI è stato implementato da di- cessivamente il progetto si è
evoluto in una serie di specifi-
che giunte alla terza versione e
Ciro Verde si occupa di architetture software per applicazioni affidate in gestione ad un con-
distribuite, in particolare di applicazioni sviluppate su piatta-
forma .NET. In passato si è occupato di svariati argomenti, sorzio internazionale – OASIS
dalle metodologie del ciclo di vita del software allo sviluppo appunto – responsabile dei
di applicazioni web. È interessato alle tecnologie Microsoft, processi di standardizzazione
soprattutto allo sviluppo di applicazioni .NET sia ASP.NET che
di numerosi servizi web.
generiche. Ha sviluppato soluzioni di Business Intelligence su
SQL Server, Analisys services e Reporting Services. Laureato UDDI è esso stesso un servizio
con 110 e lode in Scienze dell’Informazione, Università di web che consente di centraliz-
Salerno, nel lontano 1991, ha lavorato per Olivetti e Finsiel zare le informazioni relative ai
prima di approdare ad un importante istituto finanziario.
servizi web, così come un elen-

22 VBJ N. 72 - Novembre/Dicembre 2006


WEB

co telefonico costituisce un punto centrale Provider sono individuati una o più per-
di raccolta delle utenze telefoniche. sone di riferimento.
Utilizzando tali servizi è possibile individua- •_Binding: è l’attributo di un Service che
re (Discovery) i servizi web censiti, recupe- identifica la locazione (URL) a cui ri-
rare la descrizione degli stessi (description) sponde il servizio web.
nel formato WSDL ed ottenere l’URL trami- •_TModel: è un’entità utilizzata per fornire
te cui richiamarli in modo programmatico. informazioni tecniche su un’interfaccia.
Esiste una rete di registri centrali disponi- Di solito identifica il file WSDL che de-
bili pubblicamente su internet, nota come scrive un servizio web. Più in generale
UBR (Uddi Business Register) distribuita rappresenta dei metadati abbinati ad un
sui server UDDI. servizio web e che possono essere utiliz-
Ogni organizzazione può replicare questa zati per classificare e creare categorie.
infrastruttura al proprio interno per censire •_Instance Info: rappresenta un riferimen-
i servizi web e permettere ai diversi gruppi to ad un TModel. Questa entità è abbina-
di lavoro di accedervi in modo condiviso. ta ad un Binding.
Dal punto di vista tecnico, UDDI è un ser-
vizio web basato su SOAP. Oltre alle entità sopra descritte, i servizi
UDDI Microsoft definiscono 4 ruoli che
regolano l’accesso all’infrastruttura:
Lo standard UDDI è stato
•_User: è il ruolo di base che può solo effettua-
implementato da diversi re ricerche sui servizi web. Da prove effet-
fornitori di software, sia su tuate, l’accesso ai servizi UDDI è consenti-
to anche ad utenti che non sono censiti.
piattaforme proprietarie che •_Publisher: può censire Provider e pub-
open source blicare servizi web, oltre ad avere le
stesse funzionalità dello User. Può modi-
ficare solo le entità possedute.
Modello ad oggetti UDDI •_Coordinator: oltre ad attivare le stesse
(implementazione Microsoft) funzionalità del Publisher, può modifi-
Dal punto di vista concettuale UDDI è care tutti i metadati delle entità censite
costituito da 6 entità descritte secondo la sul server UDDI.
specifica terminologia: •_Administrator: ruolo di amministrazione
del server UDDI.
•_Provider: è un’organizzazione (o un sotto-
gruppo strutturato) che mette a disposi- Per poter utilizzare i servizi basilari è ne-
zione uno o più servizi web. In un conte- cessario considerare e configurare almeno
sto aziendale tipicamente è un gruppo di 2 entità principali:
lavoro che, al fine di favorire il riutilizzo
del codice sviluppato, pubblica servizi 1) _Business (Provider): è l’organizzazione
web che possono essere richiamati da (oppure una struttura organizzativa)
altre applicazioni aziendali sviluppate in responsabile dell’implementazione del
altri progetti o da altri gruppi di lavoro. servizio web.
•_Service: è un’entità che rappresenta un 2)_Service: è l’entità che rappresenta un
servizio web. Deve necessariamente es- servizio web.
sere abbinato ad un Provider.
•_Contact: descrive un riferimento per un UDDI consente di effettuare ricerche sia
determinato Provider. Di solito, per ogni sulle entità Business che sui Servizi.

N. 72 - Novembre/Dicembre 2006 VBJ 23


WEB

La soluzione Microsoft inquadra UDDI nel sempre allo stesso registro UDDI e allo
contesto dei servizi di directory; non a caso stesso service key.
è prevista la possibilità di integrarli in Ac- Viceversa, un’applicazione che ha configu-
tive Directory. rato l’accesso ad un servizio web inserendo
La struttura delle entità UDDI ricalca quel- nel file di configurazione l’Url del servizio,
la di Active Directory, cioè è di tipo gerar- è direttamente coinvolta in ogni manuten-
chico: prima di poter censire un servizio è zione sistemistica e deve essere riconfigu-
necessario censire un fornitore. rata opportunamente.

Il Registro UDDI identifica ogni fornitore Censimento di un servizio web


in modo univoco tramite un UUID detto (Pubblicazione)
Provider Key (è una stringa di questo tipo: Il sistema operativo Windows Server 2003
0933f6cd-a9f7-4867-91e2-564cb66900ae) a è equipaggiato con gli UDDI Services, la
cui possono essere associati più nomi e soluzione Microsoft che implementa gli
descrizioni. standard e che consente la gestione di regi-
Allo stesso modo, ogni servizio web viene stri UBR anche su una intranet aziendale.
censito con un identificativo univoco detto Il censimento di un servizio web permette
Service Key. ad altri gruppi di lavoro di poterlo cercare
nel registro UDDI e quindi utilizzarlo.
Identificare un servizio web con una Come scritto nel paragrafo precedente, il
chiave univoca rende possibile separare servizio web è reso disponibile dall’entità
il servizio web dalla sua URL; in questo Provider, quindi si deve censire inizial-
modo un’applicazione utilizzerà la chiave mente il fornitore del servizio, inserendo
per accedere al registro UDDI ed ottenere (preferibilmente) almeno un contatto re-
l’URL del servizio. Cambiare l’URL di un sponsabile della gestione del servizio.
servizio equivale a cambiare un attributo Il fornitore consente l’inserimento di nomi
del servizio nel registro UDDI e non com- ed attributi cosa che in apparenza potreb-
porta nessuna variazione nelle applica- be sembrare una stravaganza: che senso
zioni che richiamano il servizio tramite il ha associare ad un unico UUID più nomi e
Service Key. descrizioni?
Questo disaccoppiamento è utile in orga- La risposta proviene dal contesto azien-
nizzazioni strutturate, in cui lo scenario dale: col termine fornitore si indica sia la
tipico è rappresentato da una miriade di struttura responsabile dello sviluppo tec-
applicazioni ospitate su diversi applica- nico del servizio (scrittura del software),
tion server che utilizzano dei servizi web sia la struttura che ha commissionato il
pubblicati su altri application server. Ogni servizio ed intende pubblicarlo al fine di
applicazione richiama i servizi web utiliz- renderlo accessibile facilmente tramite
zando le informazioni (il Service Key) pre- servizi web.
senti nel file di configurazione. Se si rende Il censimento si conclude con l’assegna-
necessario cambiare l’Url dei servizi web, zione, da parte del sistema, di un Provider
per esempio per manutenzione dei server, key che identifica in modo univoco il for-
si agisce direttamente nei registri UDDI, nitore.
modificando la proprietà URL di ogni ser-
vizio web presente sul server mantenuto. Il fornitore è collegato anche ad un’altra
Le applicazioni che richiamano i servizi entità che potrebbe risultare molto impor-
web tramite service key non saranno per tante, i Contacts.
niente consapevoli delle manutenzioni Censire in modo esauriente questa sezione
sistemistiche avvenute, poichè puntano dà la possibilità agli utenti di contattare i

24 VBJ N. 72 - Novembre/Dicembre 2006


WEB

Figura 1 Censimento di un servizio web che si occupa della conversione Euro-Lire

responsabili del servizio (sia funzionali che zioni che intendono distribuire il carico di
tecnici). lavoro e rendono disponibile il servizio su
diversi web server.
Espletati questi compiti, si censisce il Anche in questo caso il censimento si con-
servizio web, dandogli un nome ed una clude con l’assegnazione di un service key
descrizione. Come per il fornitore, anche che identifica in modo univoco il servizio
per il servizio è possibile inserire più di all’interno dei registri UDDI.
un nome e di una descrizione; l’utilità di
queste informazioni ridondanti consiste Da notare che in ambito aziendale è neces-
nell’avere degli alias, però solo uno dei sario censire lo stesso servizio per ognuna
nomi indicati verrà mostrato nei risultati delle tipologie di ambiente disponibile, di
delle ricerche. solito gli ambienti sono di Test, Collaudo e
Produzione. Per ognuno di questi ambienti
La sezione Binding realizza l’abbinamento il servizio web avrà un diverso service key
del servizio ad un url, detto anche Access nella directory UDDI.
Point.
Anche in questo caso è possibile censire Opzionalmente, si potrebbe censire un’en-
più binding: ognuno di essi rappresenta tità TModel che indica il file WSDL.
una valida url per accedere al servizio; I servizi web creati con piattaforma Micro-
questa caratteristica è tipica di organizza- soft restituiscono il proprio WSDL sempli-

N. 72 - Novembre/Dicembre 2006 VBJ 25


WEB

cemente richiamando il servizio col suf- deve essere configurata in modo da poter
fisso “?WSDL” secondo la modalità delle accedere al registro UDDI ed ottenere
query string. Però, dato che i servizi UDDI l’URL del servizio web tramite il service
sono una specifica standard, possono esse- key.
re censiti anche servizi web sviluppati su Il “Microsoft Platform SDK for Windows
altre piattaforme e potrebbe tornare utile Server 2003 R2” rende disponibile un
il TModel per localizzare il documento assembly che si può refenziare da un pro-
WSDL. gramma .NET . Tramite questa libreria è
possibile utilizzare in via programmatica
Nella Figura 1 è mostrato il censimento di i servizi UDDI .
un servizio web che si occupa della conver- L'assembly_di_riferimento_è
sione Euro-Lire. Microsoft.UDDI.dll ed è strutturato in un
namespace principale Microsoft.UDDI ed
Ricerca di un servizio web altri 4 namespace secondari (Businesses,
La ricerca può essere effettuata in diverse Extensions, Services, TModel) .
modalità e può essere basata sia sui forni- Via codice è possibile implementare le
tori che sui servizi. stesse ricerche effettuate via browser,
La ricerca attraverso i fornitori consente di come mostrato nell’esempio sottostante.
ottenere l’elenco dei servizi web abbinati al L’esempio è scritto in C# , ovviamente re-
fornitore cercato. plicabile in VB.NET; gli oggetti istanziati
appartengono al namespace principale
Ricerca tramite browser Microsoft.Uddi salvo diversa indicazione.
I criteri si basano sui servizi oppure sui
fornitori, le ricerche sono simili. Nel caso C#
di ricerca tramite i servizi, l’utente si col-
lega all’indirizzo del server UDDI ospitato /* Istanzia una stringa di connessione al server UDDI, è
su un server Windows 2003, imposta i para- la prima operazione da compiere. */
metri di ricerca, ottiene una lista di servizi /* sia l’url del server UDDI che il service key possono
e identifica l’url per richiamarne uno in essere memorizzati nel file di
particolare. configurazione dell’applicazione */
La ricerca può essere svolta indicando il public string host = “http://myserverUDDI/uddi”;
nome (anche parziale) di un servizio oppu- public UddiConnection conn = null;
re utilizzando il carattere “%” per ottenere conn = new UddiConnection(host + “/inquire.asmx”);
la lista di tutti i servizi registrati su UDDI.
Lo stesso meccanismo vale anche per le /* Istanzia una query sui provider: il % estende la ri-
ricerche sui fornitori, i risultati mostreran- cerca a tutti i provider censiti*/
no per ogni fornitore la lista dei servizi che FindBusiness TrovaBiz = new FindBusiness(“%”);
fornisce. BusinessList elenco = TrovaBiz.Send(conn);
Questa modalità di ricerca è utile in fase di
analisi e progettazione di un’applicazione /* Istanzia una query sui servizi web: il % estende la
in quanto consente sia l’individuazione ricerca a tutti i servizi web censiti*/
fisica del servizio che la conoscenza del- FindService TrovaServizio = new FindService(“%”);
l’interfaccia utilizzata, in termini di para- ServiceList elenco = TrovaServizio.Send(conn)
metri di input/output del servizio prima di
scrivere codice applicativo. L’oggetto elenco, a seconda della classe
istanziata, conterrà una Collection di tipi
Ricerca via software Microsoft .NET Microsoft.UDDI.Businesses.BusinessInfo
In fase di runtime l’applicazione client oppure di Microsoft.UDDI.Services.Service

26 VBJ N. 72 - Novembre/Dicembre 2006


WEB

Info. Tale collection può essere analizzata bisogna prestare attenzione a censire in
con un ciclo foreach. modo univoco sia i fornitori che i servizi,
Il tipo BusinessInfo ha 3 collection degne assegnando nomi che non siano simili per
di nota: Descriptions (contiene le descri- non dare adito ad errori nella ricerca e
zioni del provider), Names (contiene i nomi avendo cura di non modificarli successi-
attribuiti al Provider) ma soprattutto Ser- vamente.
viceInfos che permette di ottenere la lista
dei servizi web abbinati al provider.
Nell’esempio sopra riportato la query
avrebbe restituito tutto l’elenco dei forni-
tori e dei servizi web a loro associati.
La Microsoft ha approntato
È utile ricordare che esiste una gerar- il componente opzionale
chia tra BusinessInfo e ServiceInfo: ad
un oggetto BusinessInfo possono corri- UDDI Services
spondere uno o più oggetti ServiceInfo,
identificati con la proprietà ServiceKey
e collegati al provider tramite la proprie-
tà BusinessKey. Un oggetto ServiceInfo
non può esistere se non è collegato ad un L’impressione che se ne ricava è che il
BusinessInfo. Questa gerarchia riflette problema si circoscrive, ma è sempre pro-
quella esistente tra Provider e servizi babile che accada di non trovare il servizio
web. che si ricerca o peggio ancora di ritrovare
un servizio col nome simile ma diverso da
Il service key di un servizio è esposto attra- quello ricercato: esiste una soluzione defi-
verso la proprietà Microsoft.Uddi.Services. nitiva? La risposta è sì.
ServiceInfo.ServiceKey.
In modo analogo, un provider espone il L’assembly rende disponibile una classe
provider key tramite la proprietà Micro- per ottenere l’URL di un servizio web a
soft.Uddi.BusinessInfo.BusinessKey. partire dal suo service key (quest’ultimo
può essere ottenuto in fase di progettazio-
ne tramite una ricerca da browser).
Il codice fin qui esaminato effettua ricer- Qui vengono riportate le righe di codice
che generiche che ritrovano tutti i servizi necessarie.
web(FindService(“%”)) con la possibilità
di raggrupparli in base al fornitore (Find- C#
Business(“%”)): che succede se il registro
UDDI censisce centinaia di servizi web? // sia l’url del server UDDI che il service key possono
Le query in oggetto restituirebbero troppi essere memorizzati nel file di
elementi e, per motivi prestazionali, non // configurazione dell’applicazione
è ipotizzabile lavorare con un elenco di public string host = “http://myserverUDDI/uddi”;
centinaia di elementi allorquando ne serve UddiConnection conn = new UddiConnection(host + “/
solo uno. inquire.asmx”);
/* Istanzia una query fornendo un service key già noto */
Il problema potrebbe essere circoscritto GetServiceDetail gs = new GetServiceDetail(“bc213d4b-
utilizzando il nome del fornitore oppure 3b84-40e4-8615-f02338a1f966”);
il nome del servizio come parametro alter- // ottiene un reference al servizio web identificato
nativo al ‘%’ ed ottenendo così un elenco dalla chiave
ridotto di elementi; a questo punto, però ServiceDetail Dettaglio = gs.Send(conn);

N. 72 - Novembre/Dicembre 2006 VBJ 27


WEB

public string Nome_del_servizio , URL_del_servizio; Ricerca integrata in Visual Studio .NET


foreach (BusinessService bizServ in Dettaglio.Business Da Visual Studio è disponibile un wizard
Services) { che consente la ricerca di servizi web in
Nome_del_servizio = bizServ.Names[0].Text; fase di progetto.
URL_del_servizio = bizServ.BindingTemplates[0].Access Effettuare questo tipo di ricerca presume
Point.Text ;//URL che i servizi UDDI siano stati configurati
} in Active Directory.
Sono state effettuate delle prove, però al
Da notare che l’Url del servizio viene espo- momento i risultati non sono stati entusia-
sto come proprietà AccessPoint degli ele- smanti, per cui è preferibile utilizzare le
menti della collection BindingTemplates. modalità sopra descritte.
Esiste una classe simile che recupera i
dettagli di un provider tramite il Busines-
sKey.
In modo simile al ServiceKey, anche il Bu- La specifica UDDI è gestita
sinessKey può essere ottenuto con un’in-
terrogazione via browser. dal consorzio OASIS
Il campo BusinessKey è riportato in ogni
oggetto ServiceInfo, in modo da poter risa-
lire dal servizio al proprio provider.
Segue il frammento di codice C# che trova
un provider a partire dal BusinessKey. Conclusioni
Con questo articolo introduttivo su UDDI
C# sono stati descritti e verificati (vedi fram-
menti di codice C#) dei metodi per uti-
// sia l’url del server UDDI che il business key possono lizzare i servizi da applicazioni scritte su
essere memorizzati nel file di piattaforma Microsoft.NET .
// configurazione dell’applicazione Questo articolo può essere utile per chiun-
public string host = “http://myserverUDDI/uddi”; que voglia organizzare in modo sistematico
UddiConnection conn = new UddiConnection(host + “/ i servizi utilizzando la soluzione Microsoft
inquire.asmx”); e per chi voglia interfacciarsi con un regi-
/* Istanzia una query fornendo un business key già noto */ stro UDDI implementato su piattaforma
GetBusinessDetail gbd = new GetBusinessDetail(“bc213d4b- Microsoft.
3b84-40e4-8615-f02338a1f966”);
// ottiene un reference al provider identificato dalla Riferimenti
chiave [1]_MSDN, Microsoft UDDI SDK http://
BusinessDetail BD = gbd.Send(conn); msdn.microsoft.com/library/default.asp?url=/
public string Nome_del_provider , Descrizione_del_ library/en-us/uddi/uddi/portal.asp
provider; [2]_Specifiche UDDI – http://uddi.org/
foreach ( BusinessEntity BE in BD.BusinessEntities) specification.html
{ [3]_MSDN, Servizi UDDI – http:
foreach ( Microsoft.Uddi.Name nn in BE.Names ) //www.microsoft.com/windowsserver2003/
Nome_del_provider = nn.Text ; technologies/idm/uddi/default.mspx
foreach ( Description dd in BE.Descriptions) [4]_MSDN, download SDK – http://
Descrizione_del_provider = dd.Text ; www.microsoft.com/downloads/details.asp
} x?FamilyId=A55B6B43-E24F-4EA3-A93E-
40C0EC4F68E5&amp;displaylang=en

28 VBJ N. 72 - Novembre/Dicembre 2006


.NET TOOLS
SQL Server Migration Assistant re una conversione, è buona norma leggere la
di Fabio Perrone sezione dell’ottima documentazione dedicata a
come preparare un database Access per evitare
Uno strumento Microsoft per transitare a spiacevoli inconvenienti al momento del “tra-
SQL Server vaso” dei dati, nonché (consiglio banale ma pur
sempre utile) sia bene farsi una copia di backup
SQL Server 2005, con le numerose edizioni del database che ci si accinge a convertire. Il se-
(Enterprise/Developer, Standard, Workgroup, condo step da eseguire è controllare, con estre-
Express e Everywhere) è in grado di coprire un ma attenzione, le impostazioni di default del
ampio target di clientela, dalla grande azien- progetto che permettono di gestire in maniera
da al piccolo programmatore che si diletta a granulare le diverse sfaccettature che si devono
scrivere la gestione della biblioteca di casa. affrontare quando si appronta una conversione
Tuttavia, per conquistare gli utenti di databa- tra database, prima tra tutte come convertire cor-
se precedenti, è necessario poter recuperare rettamente i tipi di dato dall’origine al database
lo schema e i dati di database esistenti, qua- di SQL Server.
lunque sia la loro dimensione. Ecco allora che Come è fin troppo semplice prevedere, viene
viene incontro al futuro utilizzatore di SQL già fornito un elenco abbastanza copioso di
Server 2005, SQL Server Migration Assistant conversione tra i tipi, ma è sempre meglio
che, con le sue versioni per Access, Oracle e verificare per eventualmente aggiungere ul-
Sybase (previste a breve DB2 e Informix), offre teriori conversioni personalizzate. A questo
la possibilità di migrare un database intero. punto si aggiunge il database Access che si
L’applicazione è completamente gratuita, desidera convertire e poi si scelgono gli oggetti
previa una piccola procedura di registrazione del database che si desiderano migrare. Prima
la prima volta che il prodotto viene avviato. I di partire a convertire, ecco il vero asso nella
principali requisiti per poter utilizzare il pro- manica di questa applicazione: la possibilità
gramma sono il .NET Framework 2.0 (almeno) di creare dei report di valutazione di singoli
e ovviamente la possibilità di connettersi ad oggetti del database o del database comple-
un’istanza di SQL Server 2005. to fornendo un elenco di errori, warning e
Affinché chiunque possa effettuare le pro- messaggi informativi (in stile Visual Studio),
ve, per semplicità tratteremo SQL Server nonché una stima di tempo dell’eventuale
Migration Assistant per Access, ma le funzio- conversione per ogni oggetto che ha presen-
nalità sono del tutto equivalenti alle versioni tato degli errori. Tali oggetti “problematici”
per gli altri database. vengono evidenziati in un treeview creato dal
Come prima cosa, è necessario “mettere in report per poterli dividere non solo per gravità
moto” il programma creando un nuovo proget- dell’errore ma anche per tipo di oggetto (query,
to di conversione, in cui si andranno a creare il tabelle, etc.). Risulta ovviamente sconsigliato
cosiddetto “Access metadata explorer” e il “SQL effettuare una conversione di un database con
Server metadata explorer”, i due strumenti con errori, non solo perché la conversione potreb-
cui andremo ad interagire per effettuare qualsia- be non andare a buon fine, ma essenzialmente
si operazione sui due database. Prima di inizia- perché si potrebbe verificare una perdita di

30 N. 72 - Novembre/Dicembre 2006
.NET TOOLS

dati. Per quanto riguarda la conversione da un nel passo precedente, qui è possibile migrare
database Access, è bene rimarcare questo fat- i dati, ancora una volta sotto controllo: si può
to: non è ovviamente possibile convertire tutti migrare l’intero database o solo alcune tabelle.
gli oggetti di Access. Per esempio, un oggetto Questo passo è semplice come premere il tasto
report non viene convertito, così come un form destro del mouse sul database Access e sce-
o un modulo, mentre un oggetto query viene gliere “Migrate Data”. A questo punto il gioco
convertito in una vista (tenendo presente che è fatto: il nostro nuovo database SQL Server
non tutte le query sono convertibili in viste, 2005 è pronto all’uso. Ovviamente la durata
quindi quelle che non lo sono non verranno della migrazione dipende sia dalla potenza
convertite). Passo successivo: caricare gli og- della macchina utilizzata per fare il lavoro
getti convertiti in SQL Server. Anche qui, vie- (nelle nostre prove abbiamo sperimentato un
ne fornita una doppia scelta: più rapida e meno notevole miglioramento di prestazioni su una
controllata o meno rapida ma più controllata. macchina con 2 GB di RAM rispetto ad una
La prima consiste semplicemente nell’effet- macchina da 1 GB) e la quantità di dati da spo-
tuare la conversione all’interno di SSMA, la stare. I tempi previsti nell’assess report non
seconda prevede la creazione di script in T- sono ovviamente sempre precisi al minuto, ma
SQL su cui eventualmente sporcarsi le mani si avvicinano con un buon margine del 10%.
per controllare maggiormente la conversione. Il solo pensiero di migrare dei dati da un da-
Superato questo step si sale l’ultimo gradino: tabase ad un altro può scoraggiare anche il
lo spostamento dei dati. Poiché lo schema e più temerario dei DBA o degli sviluppatori,
gli oggetti del database sono già stati caricati ma grazie alla semplicità d’utilizzo, all’effet-

N. 72 - Novembre/Dicembre 2006 VBJ 31


.NET TOOLS

tivo controllo di ogni azione e alle possibilità di ricercare immediatamente su internet infor-
di personalizzazione fornite da SQL Server mazioni al riguardo, nella speranza di non es-
Migration Assistant, un processo complesso sere incappati in un virus o suoi simili. L’idea
come la migrazione di un database si può tra- che sta alla base dell’applicazione è proprio
mutare in un impegno di poche ore. questa, cioè avere una sorta di Task Manager
intelligente che in tempo reale, collegandosi
ad un particolare sito, estrae le informazioni
Prodotto
SQL Server Migration Assistant for Access
direttamente legate al dato processo che ha
destato la nostra attenzione.
Url di riferimento
http://www.microsoft.com/sql/solutions/migration/default.mspx
Stato Release
Stabile
ProcessInfo è un tool
Semplicità d’uso ªªªªª
Chiunque abbia un minimo di esperienza con Visual Studio e i da-
tabase riesce a diventare produttivo in pochissimo tempo.
semplice che può farci
Utilità ªªªªª risparmiare tempo
Per chiunque intenda passare a SQL Server 2005 è uno strumen-
to indispensabile.
Qualità prodotto ªªªªª
Nei test sul prodotto eseguiti non abbiamo riscontrato partico-
lari problemi, anche le prestazioni hanno fornito risultati soddi- L’applicazione
sfacenti.
ProcessInfo, sviluppato in C#, utilizza il .NET
Qualità documentazione ªªªª² framework 1.1 ed è testato su Windows XP SP2
Senza esagerare ma adatta per eseguire le operazioni dell’appli-
cazione. Sono ovviamente necessarie le conoscenze dei database
con .NET framework 1.1. ProcessInfo è basato
di origine e di destinazione. Sia il programma che la documenta- su una finestra di dialogo composta da due
zione sono in lingua inglese. sezioni principali, come descritto in Figura
1. La prima è molto somigliante al Task Ma-
nager di Windows, ma è caratterizzata dalla
presenza di tre pannelli: quello dei processi
attivi (Processes), dei processi avviati automa-
ProcessInfo ticamente (Startup) e quello che conserva la
di Raffaele Di Natale storia dei processi per i quali abbiamo chiesto
informazioni (Summary). La seconda sezione
Un tool che interroga il Web per ottenere colleziona invece tutte le informazioni inerenti
informazioni sui processi attivi nel nostro al processo precedentemente selezionato nella
sistema parte sinistra della finestra. La parte superio-
re descrive una sintesi delle caratteristiche
ProcessInfo è un tool semplice da usare, del processo, tra le quali il produttore e la di-
pensato per uno scopo specifico: ridurre rectory contenente il file. Infine, nella parte
drasticamente il tempo necessario per avere bassa abbiamo la descrizione vera e propria
un quadro completo dei processi che sono stati del processo, con eventuali raccomandazioni
eseguiti o sono in esecuzione nel nostro siste- sul modo di interagire con lo stesso.
ma, al fine di anticipare o risolvere eventuali
problemi. Prima di partire
Cominciamo subito con l’affermare che l’ap-
Quante volte, dopo aver lanciato Task Manager plicazione scaricabile direttamente da [1] non
di Windows, ci siamo imbattuti in un processo funziona! Infatti è presente un bug, peraltro
dal nome sospetto? L’esperienza ci suggerisce documentato nella sezione FAQ, per cui, una

32 VBJ N. 72 - Novembre/Dicembre 2006


.NET TOOLS

volta lanciato ProcessInfo, viene visualizzato il codice sorgente e commentare le righe di co-
seguente errore: “Eccezione non gestita di tipo dice da 184 a 187 del file ProcessInfo.cs. Com-
‘System.IO.DirectoryNotFoundException’_in pilato il tutto e generato il nuovo eseguibile
mscorlib.dll”. potremo finalmente vedere questo programma
all’opera.

Come funziona
Il sito da cui estrapola Per ottenere chiarimenti circa un processo
tutte le informazioni elencato all’interno del pannello Processes o
inerenti al processo è Startup è sufficiente selezionarlo. Automatica-
mente parte una ricerca che aggiorna le caselle
www.processlibrary.com delle informazioni. Nel caso in cui la voce di
menu Options/Save html files è selezionata,
il risultato di tale ricerca è conservato nella
Per aggirare l’errore è necessario scaricare il directory download all’interno della stessa

N. 72 - Novembre/Dicembre 2006 VBJ 33


.NET TOOLS

cartella in cui è presente l’eseguibile di Proces- senti tutte le informazioni di cui necessitiamo,
sInfo. Nella parte bassa della finestra di dialo- la classe si limita ad eseguire il parsing della
go è presente una progress bar che descrive il stessa usando un’espressione regolare. Al ter-
numero di elementi tipici di una descrizione mine del parsing saranno popolati i relativi
che sono stati ritrovati. La ricerca delle infor- control della finestra di dialogo.
mazioni viene effettuata, per default, all’inter-
no del sito www.processlibrary.com, una sorta Conclusioni
di enciclopedia dei processi più comuni. Nel È evidente che ProcessInfo vive in funzione
frattempo, il pannello Processes è continua- del sito processlibrary.com. Un benché mini-
mente aggiornato: il nome dei processi termi- mo cambiamento nella struttura del sito o del-
nati diventano blu, mentre in verde si colorano la pagina significherebbe dover metter mano
i nomi dei processi appena avviati. al codice sorgente. ProcessInfo è senz’altro un
tool di basse pretese, ma che in alcune circo-
stanze può venirci incontro. Evitare di passare
L’elenco dei processi è da Task Manager a Google per avere un quadro
continuamente aggiornato completo di tutti i processi che stanno giran-
do o sono stati eseguiti all’interno del nostro
evidenziando i processi sistema ci farà senz’altro risparmiare tempo
terminati e quelli in prezioso. Inoltre, la possibilità di lanciare un
“search all” consente di creare all’interno della
esecuzione directory download una sorta di fotografia dei
processi da utilizzare, quando ciò si renderà
Sito di riferimento necessario.
Il sito su cui ProcessInfo basa automati-
camente le proprie ricerche è, come detto, Bibliografia e riferimenti
processlibrary.com. È comunque possibile va- [1]_http://www.codeproject.com/cs/system/
riare tale riferimento a patto di aggiornare ed ProcessInfo.asp
eventualmente modificare i parametri della ri-
cerca. Infatti, il semplice cambiamento del sito
Prodotto
mediante la voce di menu Options/Set search ProcessInfo
url, potrebbe non produrre alcun risultato. Nel
Url di riferimento
caso in cui la ricerca nel sito prestabilito non http://www.codeproject.com/cs/system/ProcessInfo.asp
restituisca alcun risultato, il pulsante search
Stato Release
web esegue direttamente una ricerca su Google
v. 1.4
(sito eventualmente modificabile da codice).
Semplicità d’uso ªªª²²
Il tool meriterebbe un 5/5 per la sua semplicità d’uso, ma la neces-
La classe MatchCollection sità di intervenire per forza sul codice lascia un po’ a desiderare.
MatchCollection è la classe responsabile del-
Utilità ªªªª²
l’estrapolazione di tutte le informazioni che Se si ha la necessità di controllare spesso i processi che girano
sono visualizzate al termine della ricerca all’in- in una data macchina, allora ProcessInfo può fare risparmiare un
terno della finestra di dialogo. ProcessInfo par- po’ di tempo.
te dall’assunto che il sito processlibrary.com ca- Qualità prodotto ªªª²²
taloghi i processi noti utilizzando indirizzi del Vale lo stesso discorso fatto per la semplicità d’uso.
tipo: http://www.processlibrary.com/directory? Qualità documentazione ªªªª²
files=nomeprocesso, dove nomeprocesso è pro- La documentazione disponibile all’interno del sito (in lingua ingle-
se) ne spiega il funzionamento ed i limiti, ma non è presente né
prio la stringa relativa al nome del processo del
un manuale né una guida online.
quale vogliamo reperire qualche informazione.
Pertanto, nota la pagina nella quale sono pre-

34 VBJ N. 72 - Novembre/Dicembre 2006


WINDOWS

.NET 3.0:
Windows Presentation
Foundation
Vediamo i componenti chiave di .NET 3.0, la nuova versione di API
managed per Windows XP, Windows 2003 e Windows Vista

di Roberto Brunetti (www.devleap.com)

Q
uando si sente parlare di Windows articolo è dapprima chiarire il
Presentation Foundation (Avalon per ruolo di WPF per poi vederne
gli amici) si pensa subito alle sfere ani- alcune funzionalità spesso
mate, a bottoni tridimensionali con dei video al- non “presentate”.
l’interno, a “cose” in tridimensione che ruotano
nell’interfaccia utente. Questo perché spesso la .NET 3.0 e WPF
tecnologia viene presentata come interfaccia Per prima cosa dobbiamo sot-
utente 3D per Windows Vista, che necessita di tolineare che .NET 3.0 non è
schede grafiche di prossima generazione (quelle realmente la versione 3 della
di ultima generazione sono già vecchie J ...). piattaforma .NET, almeno per
Le domande e affermazioni più frequenti a fron- come siamo abituati a pensare
te di simili presentazioni sono (giustamente): la una nuova versione: la versio-
mia applicazione deve girare ancora su macchi- ne 3.0 infatti non porta con sé
ne XP, a cosa mi servono le palline animate e i un nuovo Visual Studio, lavo-
pulsanti 3D su un gestionale? Noi stiamo pas- ra ancora con i compilatori e
sando adesso a Visual Studio 2005 ed è già uscito i linguaggi della versione 2.0
il nuovo .NET 3.0! e si appoggia a molte librerie
Tutte queste affermazioni e domande sono più della versione 2.0. .NET 3.0
che lecite e derivano da messaggi male inter- (precedentemente conosciuto
pretati o mal presentati. L’obiettivo di questo come WinFx) è una estensio-
ne (in termini di librerie) al
Framework .NET 2.0 accessi-
bile dagli strumenti attuali di
sviluppo.
Roberto Brunetti è un consulente e autore specializzato
nello sviluppo di applicazioni Web e soluzioni mobile ba- Windows Presentation Foun-
sate sul Framework .NET di Microsoft. Roberto fa parte dation è il componente di
del gruppo DevLeap. Può essere contattato via email: .NET 3.0 che si incarica della
roberto@devleap.it. Mantiene il blog personale all’indirizzo
http://blogs.devleap.com/rob/
presentazione dei dati con
modalità differenti rispetto

36 VBJ N. 72 - Novembre/Dicembre 2006


WINDOWS

alle classiche Windows Form. L’idea ini- prendono lo spazio orizzontale del padre:
ziale è unire il meglio del web e il meglio questo consente di creare interfacce utente
di Windows per creare interfacce utente indipendenti dalla risoluzione video, inter-
di nuova generazione (che non vuol dire facce che si adattano, senza perdere in de-
necessariamente 3D), che espongano fun- finizione grazie alla vettorialità, a schermi
zionalità più vicine alle necessità degli di differenti risoluzioni e orientamento (si
utenti moderni. Se ci soffermiamo un at- pensi al Tablet PC o agli Ultra Mobile PC
timo a pensare da quanto tempo vediamo – UMPC – che possono ruotare lo schermo
la X in alto a destra di tutti i form di tutte da verticale a orizzontale).
le applicazioni Windows, forse cambiamo
punto di vista: non è dall’uscita di .NET Composition
che le finestre Windows sono piatte, spes- Un secondo concetto molto importante è
so grigie e con la “X” in alto a destra; i più il meccanismo di composition: con que-
“anziani” ricorderanno Windows 95: la X sto termine si indica la possibilità per un
era un po’ più bruttina di quella di XP, ma controllo di ospitare al suo interno altri
sempre della X stiamo parlando. Il salto da controlli. Un esempio per capire il con-
Windows 3.x a Windows 95 fu abbastanza cetto: è possibile inserire un’immagine in
lungo, ma riflettendo bene, la X e i pulsanti un controllo di tipo Button, creando un
rettangolari erano presenti già nel 93. bottone esteticamente molto, ma molto,
più gradevole rispetto al classico bottone
rettangolare a cui siamo abituati.
In questo esempio viene inserita un’imma-
.NET 3.0 è un insieme gine in un pulsante. Per provare l’esempio
non è necessario Visual Studio, è sufficien-
di librerie managed, te installare il .NET Framework 3.0 SDK e
che estendono il .NET copiare il codice in XAMLPad.
Framework 2.0 XAML - .NET 3.0

<Page xmlns=”http://schemas.microsoft.com/winfx/2006/
xaml/presentation” xmlns:x=”http://schemas.microsoft.com/
Il Web, dall’altro lato, si è evoluto molto winfx/2006/xaml” Background=”#cccccc”>
più di Windows in termini di interfacce <Viewbox>
grafiche: non c’è niente da fare, una inter- <Button>
faccia basata su browser è più accattivante <Border BorderThickness=”10” BorderBrush=”White”
di un form rettangolare. Da qui una delle HorizontalAlignment=”Center” VerticalAlignment=
prime idee di WPF: creare un linguaggio ”Center” CornerRadius=”10” >
(e un runtime) in grado di programmare <Border.LayoutTransform>
l’interfaccia grafica in modo più semplice <RotateTransform Angle=”-5” />
e che offra potenzialità mai viste in VB </Border.LayoutTransform>
6 e in .NET. Si abbandona il modello di
form per dare spazio a un contenitore di <Image Source=”C:\TEMP\foto.jpg” Width=”300”
controlli (Page o Window) che, renderizzati Height=”200” Stretch=”UniformToFill” />
in vettoriale, si adattano appunto al loro </Border>
contenitore. Per default non si lavora in </Button>
modo posizionale (Top, Left, Width, Len- </Viewbox>
ght), ma bensì per contenimento. I con- </Page>
trolli figli, come impostazione predefinita,

N. 72 - Novembre/Dicembre 2006 VBJ 37


WINDOWS

Figura 1 Listbox di immagini con WPF

Come si può notare, all’interno della pagi- osservare il risultato (omettiamo il codice
na è presente un elemento ViewBox che per brevità) della ridefinizione di un item
contiene un <Button>: come accennato in di una listbox.
precedenza, grazie al meccanismo di com-
position si può inserire un altro elemento
all’interno di qualunque controllo. In que-
sto caso abbiamo inserito un’immagine .NET 3.0 funziona anche
(con path fissa per semplicità).
Il pulsante resta un pulsante: espone tutte su Windows XP Service
le funzionalità di un classico <Button>, Pack 2 e su Windows
compreso l’evento Click per gestirne la
pressione, ma il suo rendering è decisa-
Server 2003
mente migliore. Con lo stesso criterio è
possibile definire come visualizzare un
Item di una Listbox: continuando con
l’esempio è possibile visualizzare un Incredibile! Senza l’utilizzo di controlli
ListItem come immagine; gli elementi esterni e con semplici tag XAML è possi-
saranno comunque contenuti in una List- bile creare una interfaccia utente accat-
Box e quindi il metodo per il caricamento tivante e intuitiva. In questo esempio il
sarà sempre ListBox.Items.Add (oppure riempimento della listbox viene fatto con
ovviamente associabili tramite data bin- una collection di classi Photo: la classe
ding), avremo sempre il puntatore all’ele- photo è una normalissima classe .NET che
mento selezionato e l’evento di notifica di espone una proprietà di tipo Image (oppu-
spostamento dell’elemente selezionato; re potrebbe essere il path fisico dell’imma-
l’unica differenza, si fa per dire, sarà che gine). Il binding viene effettuato tramite la
invece di vedere una lista di stringhe, proprietà DataContext dell’elemento List-
avremo un elenco di immagini. Non solo, Box. È persino possibile definire uno stile
grazie al meccanismo di composition, visuale da associare ad una classe .NET,
un elemento di una listbox può essere a prescindere dalla sua collocazione. Nel-
composto da un testo e da una immagine l’esempio precedente, infatti, anziché defi-
rendendo “spettacolare” il contenuto che nire il template per gli item della listbox,
mantiene comunque tutte le caratteristi- è stato definito un template per la classe
che di una listbox. In Figura 1 è possibile Photo. Ecco il codice:

38 VBJ N. 72 - Novembre/Dicembre 2006


WINDOWS

XAML - .NET 3.0 WCF per la comunicazione con l’appli-


cation server sottostante. L’elenco di im-
<DataTemplate DataType=”{x:Type ps:Photo}”> magini rappresenta un elenco di case che
<Border un’ipotetico venditore di un’agenzia immo-
VerticalAlignment=”Center” biliare può mostrare al suo cliente. Anche
HorizontalAlignment=”Center” in questo caso si tratta di una ListBox con
Padding=”4” qualche abbellimento grafico che ha ri-
Margin=”2” chiesto uno sforzo minimo. Si può notare
Background=”White”> come sia più chiara e fruibile l’applicazio-
<Image Source=”{Binding Source}” /> ne, rispetto alle classiche interfacce utente
</Border> a caratteri.
</DataTemplate>

In pratica abbiamo definito un DataTem-


plate che si applica al tipo (tipo e classe in
.NET sono equivalenti) Photo che contiene
un bordo con qualche parametro visuale
WPF non si occupa
e l’elemento Image la cui espressione di solo di grafica
binding lega la proprietà Source dell’ele- tridimensionale e
mento alla proprietà Source dell’elemento
in bind, che nel nostro caso è appunto una animazioni
delle Photo della collection associata al Da-
taContext della ListBox.
In Figura 2 è mostrato un altro esempio di
un’applicazione smart client che utilizza
WPF per la parte di rendering grafico e

Figura 2 Un’applicazione smart client realizzata con WPF e WCF

N. 72 - Novembre/Dicembre 2006 VBJ 39


WINDOWS

XAML, controlli e strumenti quanto facciamo oggi per l’ambiente


La definizione della interfaccia utente, web. L’idea appunto è quella di unire il
come abbiamo visto negli esempi prece- grafico e lo sviluppatore anche nel mon-
denti, può essere fatta con un nuovo lin- do Windows per creare interfacce utente
guaggio XAML (che ritroviamo anche in innovative, sicuramente più carine, ma
Windows Workflow Foundation) oppure soprattutto più funzionali e piacevoli da
sempre tramite righe di codice. Il codice usare per l’utente finale. Soffermiamoci
XAML viene infatti analizzato (da un par- ancora un secondo su questo tema: le
ser) per produrre una classe C# o VB.NET, persone sono abituate a navigare su siti
sfruttando le ormai note partial class, con “spettacolari” che visualizzano il cata-
un meccanismo simile a quanto avviene logo prodotti con schede di dettaglio,
in ASP.NET per il codice di una pagina zoom, analisi comparative e poi sono
ASPX. costrette a vedere una DataGrid, se pur
colorata, sull’applicazione che usano per
lavoro tutti i giorni.

Standalone e Navigation Application


Tramite la composition Con WPF viene unito il mondo dell’in-
terfaccia utente a caratteri con elementi
possiamo includere qualsiasi visuali, documenti e media sfruttando la
controllo in qualsiasi altro grafica vettoriale, la GPU e l’accelerazio-
ne hardware. Spaventati dall’acquisto in
controllo di WPF massa di nuove schede grafiche? Nien-
t’affatto: è chiaro che se l’applicazione
vuole spingersi su modelli 3D avanzati
e in movimento occorra una scheda
grafica potente, ma per un’applicazio-
Ogni elemento dell’interfaccia utente ne gestionale, dove adesso è possibile,
ha una serie di caratteristiche disponi- senza grossi sforzi, incorporare piccole
bili ad oggi solo con controlli di terze scene 2D e elementi visuali vettoriali,
parti: ad esempio un bottone può avere tutto questo non è necessario: i PC su
i bordi smussati, un riempimento fatto cui abbiamo testato WPF sono PC nor-
con Brush (Linear o Gradient) che crea- malissimi, senza schede grafiche da
no, con due righe di definizione, effetti paura e mantenendosi nei confini di una
molto carini e soprattutto impostabili normale applicazione il tutto funziona
anche da un programmatore che non ha egregiamente.
predisposizione (come la maggioranza Le applicazioni possono essere tradizionali
di noi) grafica. A proposito di grafica: e cioè basate su finestre, oppure Naviga-
molti strumenti grafici come Adobe Il- tion Application che predispongono una
lustrator, Maya, Blender per citarne solo interfaccia simil-web in cui l’utente trova
alcuni, sono già in grado di produrre file i pulsanti di Back e Forward e la storia
XAML: questo consente ad un grafico di delle pagine visitate. Una Navigation Ap-
produrre una interfaccia utente accatti- plication è infatti un’insieme di Page con
vamente che il programmatore può poi gli stessi elementi che potrebbero essere
“riempire” con le logiche di business e ospitati in una Window, ma con una navi-
i dati nel modo tradizionale. A pensarci gazione simile a quanto siamo abituati sul
bene questo modello ricorda davvero web.

40 VBJ N. 72 - Novembre/Dicembre 2006


WINDOWS

Queste due tipologie di applicazioni sono la superficie visibile della finestra il testo
utilizzabili secondo due modelli di deploy- viene riarrangiato di conseguenza. Altro
ment: applicazione classica installata sul capitolo è rappresentato da XPS, acroni-
PC su cui deve girare e Web Browser Ap- mo di XML Paper Specification, ovvero
plication; quest’ultima viene scaricata dal una piattaforma per la gestione di docu-
browser, non viene installata sulla macchi- menti a layout fisso che espone funziona-
na client, e viene eseguita nella sandbox lità native come firma digitale dei docu-
del browser stesso: viene utilizzato l’ormai menti, possibilità di eseguire annotazioni
conosciuto ClickOnce per il deployment e evidenziare parti del contenuto: tale
da remoto. La sandbox di esecuzione è in- formato è nativo in Windows Presentation
tegrata con Code Access Security e solleva Foundation e viene utilizzato da tutti gli
appunto una SecurityException se si cerca stumenti della suite Microsoft 2007 Office
di eseguire operazioni non ammesse: sono System. Il tutto è integrato con Windows
ammesse operazioni sull’Isolated Storage RMS (Right Management System) per la
(il file system virtuale e sicuro di .NET), gestione dei permessi di accesso ai docu-
è consentito l’accesso al “Site of Origin”, menti.
l’utilizzo delle periferiche di stampa, la
grafica 3D, la gestione documentale e le Conclusioni
animazioni, mentre non è consentito per Nei prossimi mesi, con la progressiva ado-
default l’accesso al File System, il pieno zione di WPF da parte del mercato, potre-
supporto a WCF, l’accesso al Registry e così mo scendere nei dettagli della piattaforma.
via. In questo primo articolo introduttivo era
importante chiarire e forse ratificare, con
una breve introduzione, l’idea alla base
di WPF, che spesso viene erroneamente
passata da articoli e blog, come una “cosa”
Una parte più nascosta 3D lontana dalle applicazioni reali. WPF va
invece ben oltre la semplice grafica e con-
di WPF risiede nella sente di progettare e scrivere applicazioni
gestione dei documenti dall’interfaccia utente innovativa con poco
sforzo da parte dello sviluppatore e, come
accade per il Web da anni, con l’aiuto di un
grafico si arriva ad avere qualcosa di stupe-
facente e funzionale.

Riferimenti
Document Services e XPS [1]_Paolo Pialorsi – “WinFx: Windows
Una parte più nascosta di WPF risiede Communication Foundation”, Visual Basic
nella gestione dei documenti. Uno dei Journal n° 69
building block dell’architettura è infatti [2]_Paolo Pialorsi – “WinFx: Windows
rappresentato dai Document Services: è Workflow Foundation”, Visual Basic Journal
possibile creare Flow Document che con- n° 70
sentono di gestire il contenuto in modo [3] http://www.netfx3.com/
elastico, rielaborando allineamento e nu- [4] http://wpf.netfx3.com/
mero di colonne (comprese le immagini [5] http://www.devleap.com/winfx/
eventualmente presenti nel documento)
in base alla dimensione della finestra di
visualizzazione; allargando o diminuendo

N. 72 - Novembre/Dicembre 2006 VBJ 41


OFFICE

Smart Tag con


Visual Studio Tools
for Office
In questo articolo vedremo come creare uno Smart Tag in
ambiente Office utilizzando la tecnologia .Net

VSTO2
di Emanuele Mattei

Continua la serie di articoli riguardante la pro- Aggiunta di un riferimento


grammazione di Microsoft Office 2003 con la Dopo aver fatto questa breve
tecnologia .Net e l’ambiente di sviluppo Visual introduzione alla tecnologia,
Studio Tools for Office [1]. In questo articolo passiamo alla pratica crean-
vedremo come creare uno smart tag, tecnologia done uno.
già disponibile dalla versione Office XP. Si apra Visual Studio Tools
Ricordiamo che uno Smart Tag permette di for Office e si crei un nuovo
eseguire delle azioni da un menu che appare progetto di tipo Office (come
posizionando il mouse sopra una determinata illustrato nell’articolo prece-
parola. dente); dopo aver selezionato
Prima della tecnologia VSTO, la creazione di il linguaggio di proprio inte-
Smart Tag comportava una maggiore stesura resse, aggiungiamo al proget-
di codice nonché la modifica del registro di si- to un riferimento a Smart Tag
stema di Windows, oltre a dover implementare 2.0. Questo riferimento per-
alcune classi della libreria di Smart Tag [2] se mette di inglobare nel nostro
occorreva crearne con determinate funzionalità. progetto le funzionalità per
Altrimenti, nei casi più semplici, si può ricorre- la creazione degli Smart Tag;
re alla creazione di un file xml [3] che, copiato in per inserire un riferimento,
un’apposita cartella, permette la visualizzazione selezionare tramite il tasto
di alcuni tipi di Smart Tag. destro del mouse il nome del
progetto nella finestra Esplora
Soluzione e dal menu di scel-
ta rapida selezionare la voce
Emanuele Mattei è sviluppatore presso una società d’infor- Aggiungi Riferimento. In al-
matica di Roma. Attualmente collabora con altri webmaster ternativa, dal menu Progetto
al sito www.shareoffice.it il primo usergroup italiano dedicato
alla programmazione di Office, tramite la tecnologia .NET. selezionare la voce Aggiungi
Riferimento. Verrà aperta una

N. 72 - Novembre/Dicembre 2006 VBJ 43


OFFICE

Aggiunta dei namespace


Per la creazione e la gestione degli Smart Tag
dobbiamo utilizzare il namespace Microsoft.
Office.Tools.Word, il quale offre una serie
di classi per la gestione. Inseriamo tale
namespace, in alto, sopra ad ogni dichiara-
zione, come riportato qui di seguito

VB .Net

Imports Microsoft.Office.Tools.Word

C#
Figura 1 Smart tag di word quando si incolla un testo
using Microsoft.Office.Tools.Word;

In questo modo abbiamo inserito nel pro-


finestra (Figura 2) selezionare la linguetta getto una serie di classi appartenenti al
COM, e poi la voce “Microsoft Smart Tag namespace Microsoft.Office.Tools.Word, le
2.0 type library”; a questo punto chiudere quali ci permettono di gestire tutto quanto
la finestra tramite il pulsante Ok. concerne gli Smart Tag.

Figura 2 Finestra per aggiungere la possibilità di programmare gli smart tag

44 VBJ N. 72 - Novembre/Dicembre 2006


OFFICE

Figura 3 Il risultato finale, lo smart tag che si attiva tramite la parola Infomedia

Creazione di un gestore degli eventi VB .Net


Il compito dello Smart Tag che andremo a
creare sarà quello di impostare la parola Private Sub Sito(ByVal sender As Object, ByVal e As
“Infomedia” digitata nel documento, con ActionEventArgs)
la formattazione che Microsoft Word im- ‘Oggetto azione, ossia ritorna la voce del menu selezionato
posta per le parole chiave degli Smart Tag Dim ActionAzione As Action = CType(sender, Action)
(Figura 3), qualora nel documento si trova If ActionAzione.Caption = “Informazioni” Then
tale parola, posizionando il puntatore del System.Diagnostics.Process.Start(“http://
mouse su essa verrà visualizzato lo smart www.infomedia.it”)
tag, il quale presenta due voci di menu. che Else
in base alla voce selezionata, dovrà esegui- System.Diagnostics.Process.Start(“mailto:
re una determinata azione piuttosto che info@infomedia.it”)
un’altra. Di conseguenza dobbiamo creare End If
una funzione, che avrà il compito di fare da
gestore di eventi, in particolare per l’evento End Sub
click del menu dello smart tag. Il compito
della funzione sarà quella di visualizzare il C#
sito di Infomedia, se la voce del menu dello
smart tag selezionato corrisponde al testo private void Sito(object sender, ActionEventArgs e)
“Informazioni”, altrimenti per l’altra voce {
di menu, avvia il browser di posta elettroni- //Oggetto azione, ossia ritorna la voce del menu selezionato
ca predefinito, per l’invio di un messaggio Action ActionAzione = (Action)sender;
di posta elettronica in modalità di scrittura. if (ActionAzione.Caption == «Informazioni»)
Di seguito si riporta il codice delle suddet- {
te operazioni. System.Diagnostics.Process.Start(«http://

N. 72 - Novembre/Dicembre 2006 VBJ 45


OFFICE

www.infomedia.it»); Come si vede di seguito, il codice da inseri-


} re nell’evento startup del documento deve
else essere simile a quello riportato:
{
System.Diagnostics.Process.Start(«mailto: VB .Net
info@infomedia.it»);
} ‚oggetto smart tag
} Dim SmartTagEsempio As SmartTag = New SmartTag(„http:
//www.infomedia.it/esempio#SmartTagEsempio“, „Esempio
SmartTag“)
‚imposto il termine da ricercare

Prima della tecnologia SmartTagEsempio.Terms.Add(„Infomedia“)


‚imposto le voci di menu, ne creo due
VSTO, la creazione di Dim azione As Action = New Action(“Informazioni”)

Smart Tag comportava ‘seconda voce


Dim azione2 As Action = New Action(“email”)
una maggiore stesura di ‘aggiungo le azioni allo smart tag
SmartTagEsempio.Actions = New Action() {azione, azione2}
codice nonché la modifica ‘aggiungo un gestore di evento

del registro di sistema di AddHandler azione.Click, AddressOf Me.Sito


AddHandler azione2.Click, AddressOf Me.Sito
Windows ‘aggiungo lo smart tag al documento
Me.VstoSmartTags.Add(SmartTagEsempio)

C#

Creazione dell’oggetto Smart Tag //oggetto smart tag


A questo punto non ci resta che creare
SmartTag SmartTagEsempio = new SmartTag(“http:
l’oggetto Smart Tag prima dell’apertura
//www.infomedia.it/esempio#SmartTagEsempio”, “Esempio
del documento, in modo che quando verrà
SmartTag”);
digitata la parola “Infomedia”, ad essa sarà
//imposto il termine da ricercare
applicata un sottolineatura di colore viola,
che sta ad indicare appunto una parola SmartTagEsempio.Terms.Add(“Infomedia”);

chiave di tipo Smart Tag. //imposto le voci di menu, ne creo due

Utilizzeremo la classe SmartTag, che Action azione = new Action(“Informazioni”);


rappresenta l’oggetto per la personalizza- //seconda voce
zione degli smart tag; tale classe accetta Action azione2 = new Action(“Email”);
due argomenti nel costruttore, il primo è //aggiungo le azioni allo smart tag
un Identificatore composto dall’URI e dal SmartTagEsempio.Actions = new Action[] {azione, azione2};
nome di un tipo di tag; questi due valori //aggiungo un gestore di evento
sono separati dal simbolo cancelletto (#); azione.Click += new ActionClickEventHandler(this.Sito);
il secondo argomento è il testo del titolo azione2.Click += new ActionClickEventHandler(this.Sito);
dello Smart Tag. //aggiungo lo smart tag al documento
L’altro oggetto che utilizzeremo sarà ac-
this.VstoSmartTags.Add(SmartTagEsempio);
tion, il quale avrà il compito di gestire le
voci del menu dello Smart Tag.

46 VBJ N. 72 - Novembre/Dicembre 2006


OFFICE

stesse operazioni con un notevole di rispar-


mio di codice e di potenziali errori.
Sul sito FTP di Infomedia (ftp.infomedia.it/
Uno Smart Tag permette pub/) trovate il codice sorgente dell’appli-
di eseguire delle azioni cazione.

da un menu che appare Bibliografia


posizionando il mouse [1] Homepage MSDN per lo sviluppo di
Visual Studio Tools for Office
sopra una determinata http://msdn.microsoft.com/office/tool/vsto/
parola default.aspx
[2] Articolo sulla creazione di uno Smart
Tag con Visual Studio 2003 per Microsoft
Office 2003
Conclusioni http://blog.shareoffice.it/emanuele/
In questo articolo si è visto come creare articles/1036.aspx
degli Smart Tag personalizzati, utili per [3] Articolo sulla creazione di uno Smart
gli utilizzatori avanzati di Microsoft Office. Tag per Microsoft Office 2003, tramite file
Da notare come sia cambiata la program- xml
mazione in ambiente Office tramite Visual http://blog.shareoffice.it/emanuele/
Studio 2005, il quale permette effettuare le articles/182.aspx

N. 72 - Novembre/Dicembre 2006 VBJ 47


Prodotti News
Potete inviare i vostri comunicati stampa all’indirizzo:
comunicatistampa@infomedia.it

Switch wireless symbol less IPS) che permette alle aziende con chiavi, monete e altri oggetti
WS5100 di implementare le applicazioni in metallici.
modo sicuro ed effettuare il tracking
Symbol annuncia una nuova versione degli asset in rete. È inoltre possibile Specialistiche:
dello switch wireless WS5100, basato visualizzare le statistiche relative Per soddisfare tutte le esigenze del
sull’architettura Wi-NG (Wireless a copertura RF, bilanciamento dei consumatore, sono arrivate anche le
Next Generation), che offre il suppor- carichi di lavoro, ridondanza, utilizzo batterie specialistiche, ideali per tele-
to avanzato di tutte le applicazioni di della rete e livello delle minacce. comandi, orologi, calcolatrici…
mobilità aziendale e multimediali, La gamma include due tipologie
un elevato livello di sicurezza, e una Per ulteriori informazioni: di batterie: Super Alkaline e pile
grande facilità di gestione. www.symbol.com/wireless. dall’innovativa tecnologia Lithium,
La versione 3.0 del wireless switch che garantisce una maggiore durata
Symbol WS5100 permette di imple- anche a bassissime temperature.
mentare le Antenne Wi-Fi sia nelle Movida, energia in
reti Layer 2 che in quelle Layer 3 e movimento Per informazioni: Ufficio Stampa – STU-
il roaming a livello di sede aziendale, Una gamma completa e in conti- DIO SUITNER s.r.l. Tel. 011/8196450
a tutto vantaggio degli utenti mobili, nua evoluzione, come le esigenze (r.a.) e-mail: segreteria.stsuit@iol.it
che possono sfruttare tutte le funzio- del consumatore. Ottimo rapporto
ni più avanzate delle reti mobili in qualità/prezzo
qualsiasi punto dell’azienda. Inoltre,
consente di effettuare lo switch Super Alkaline: FUJITSU presenta il CMOS
clustering, che permette di realizza- Batterie testate dal Politecnico di DAC a 14 bit più veloce del
re reti wireless ad alte prestazioni, Torino con prove comparative che mondo
flessibili e scalabili. Le funzionalità di hanno certificato la qualità superiore Una versatilità superiore permette di
sicurezza integrano un potente siste- MOVIDA. Certificazione ISO 9002: realizzare soluzioni di piattaforma
ma di intrusion detection e di moni- 2000 / ISO 14400:1996, conforme alle efficaci
toraggio di tutte le frequenze radio, normative europee in tema di basso
un gateway per VPN (virtual private impatto ambientale. Nessuna presen- Fujitsu Microelectronics Europe (FME)
network) IPSec e una nuova gestione za di metalli pesanti. ha presentato il nuovo convertitore
sicura degli accessi temporanei. digitale-analogico (DAC) MB86065 a
La mobilità Layer 3, resa possibile Ricaricabili: 14 bit da 1,3 GSa/s, un dispositivo a
dal nuovo wireless switch WS5100, Batterie dalle caratteristiche quali- singolo canale che deriva da un altro
permette agli utenti mobili di sfrut- tative elevatissime, a base di N-MH modello di grande successo, il DAC
tare una connettività trasparente ad Nikel metalidrato, prive di cadmio, doppio MB86064 a 14 bit da 1 GSa/s.
applicazioni come la voce e il video sostanza nociva per l’ambiente, e
durante gli spostamenti all’interno senza effetto memoria. La potenza Il DAC MB86065 è il secondo esem-
della sede aziendale, mentre le fun- di 2400 MAh garantisce prestazioni plare di Application Specific Standard
zionalità di clustering semplificano altamente competitive e affidabilità Product (ASSP) basato sulla tecnolo-
l’adozione all’interno delle sedi assoluta, unendo una resistenza di gia DAC Fujitsu di seconda genera-
aziendali di grandi dimensioni. Inol- durata per oltre 1000 ricariche. zione, e fa leva sulla superiorità delle
tre, la tecnologia Wi-Fi MultiMedia Caricatori dalla tecnologia innovati- architetture High Direct-IF rese possi-
(WMM), grazie alle estensioni “power va: ricarica ultraveloce da 1 a 4 ore, bili dal modello MB86064. Si tratta di
save”, prolunga la durata delle batte- con l’esclusivo microprocessore che un chip che raggiunge performance
rie e migliora le funzioni di gestione assicura sempre il 100% di ricarica e eccellenti dove non esiste un secon-
della voce di tutti gli apparati com- si ferma automaticamente con il di- do canale di trasmissione o diversità,
patibili. spositivo AUTO STOP, indispensabile ed è ideale per realizzare sistemi
per non danneggiare la pila. multi-settore a basso costo.
Il software Symbol per la gestione I caricatori MOVIDA caricano pile
della radio-frequenza permette di stilo e mini stilo e sono utili e comodi L’innalzamento della velocità di con-
monitorare e gestire tutti gli apparati per chi viaggia, perché il particolare versione, ora a 1,3 GSa/s, permette di
wireless lungo l’intero spettro delle sistema multivoltaggio permette di spingere - e garantire - le frequenze
frequenze, garantendo la continuità utilizzarli in Italia e negli Stati Uniti. Direct-IF oltre i 400 MHz, ampliando
e le prestazioni dell’intero sistema Servizio esclusivo di MOVIDA RICA- di conseguenza la regione libera
anche nei momenti di picco, e la ca- RICABILI: tutte le pile sono dotate da spurie e alleggerendo i requisiti
pacità di pianificare, valutare e mo- dell’esclusivo contenitore salva dfiltraggio a valle. Uno dei principali
nitorare la rete. La suite include un energia incluso nel prezzo: una par- vantaggi di queste architetture High
location engine e un sistema wireless ticolare protezione che salva la pila Direct-IF è costituito dalla superiore
di Intrusion Protection System (Wire- dalla smagnetizzazione a contatto versatilità rispetto alla conversione

N. 72 - Novembre/Dicembre 2006 VBJ 49


Prodotti News

diretta, accorgimento che permette combinazione con il pre-processing gamma di soluzioni per il design
di realizzare soluzioni di piattaforma digitale implementato mediante le di sistema realizzate dalla propria
velocemente adattabili a differenti nuove tecnologie FPGA o ASIC da Mixed Signal Division di Maidenhead,
esigenze di mercato o di frequenza. 65nm. In particolare, le implementa- nel Regno Unito, dove è stato svilup-
L’impatto commerciale di queste zioni riprogrammabili garantiscono pato il nuovo DAC. La realizzazione
architetture sulle applicazioni finali flessibilità senza influire negativa- di questo dispositivo avanzato riflette
è significativo: la riduzione della fase mente sul componente mixed signal la leadership della società nei con-
progettuale limita infatti il costo di che definisce le performance del vertitori digitale-analogico ad alte
possesso e permette di velocizzare il sistema. “Un sistema che risponde prestazioni.
time-to-market. alle varie necessità di frequenza e
carrier senza imporre sostanziali Il nuovo MB86065 è alloggiato all‘interno
Il dispositivo è compatibile verso riprogettazioni della circuiteria ana- del package Enhanced Fine-Pitch Ball
il basso con il canale “DAC A” del logica e dei relativi algoritmi di cali- Grid Array (EFBGA) di Fujitsu. Questa
precedente MB86064, di cui integra brazione, come il guadagno I&Q e la variante da 120 ball misura 12 x 12 mm.
il medesimo modulo WMM (Wave- compensazione di fase, permette di
form Memory Module) per scaricare risparmiare significativamente nello Kit di sviluppo e campionature sa-
ed eseguire on-chip le forme d’on- sviluppo di interi portafogli di pro- ranno disponibili da inizio 2007. La
da evitando così l’esigenza di un dotti riducendo in ultima analisi il produzione di massa è prevista per
generatore di dati ad alta velocità TCO”, ha commentato Paul Maddox, aprile 2007. Il listino prevede prezzi
a scopo di test e valutazione del Technical Marketing Manager della di 34 dollari per quantitativi di 10.000
dispositivo. Il nuovo MB86065 con- Mixed Signal Division di FME. pezzi.
tinua a offrire la miglior soluzione
al partizionamento di sistema in Fujitsu propone inoltre una vasta

50 VBJ N. 72 - Novembre/Dicembre 2006


Prodotti News

N. 72 - Novembre/Dicembre 2006 VBJ 51


Prodotti News

Avanade® annuncia il sup- AMD presenta la piatta- 8 core che AMD renderà disponibile
porto per Microsoft® Offi- forma Quad FX con archi- nel 2007.
ce 2007, Windows Vista e tettura Dual Socket Direct Con la tecnologia AMD64 e l’archi-
Exchange Server 2007 Connect tettura Dual Socket Direct Connect,
Grazie alle numerose installazioni ef- la nuova piattaforma AMD Quad FX
fettuate presso i clienti e a programmi Una piattaforma destinata agli utenti offre nuove prestazioni scalabili sulla
intensivi, Avanade è pronta ad aiuta- più appassionati, basata su processo- propria workstation grazie, anche,
re le aziende a migliorare la propria ri della serie AMD Athlon 64 FX-70, alle innovazioni architetturali di
efficienza e produttività per entrare nell’era del megatasking nuova generazione come la memoria
multi-core. DDR2 unbuffered a bassa latenza
Avanade, principale Technology Inte-
e supporto della tecnologia NUMA
grator a livello mondiale specializzato AMD ha annunciato la piattaforma
(Non-Uniform Memory Access) sui
nello sviluppo e implementazione di Quad FX con architettura Dual Soc-
soluzioni basate su tecnologia Mi- sistemi operativi compatibili.
ket Direct Connect (DSDC), la prima
crosoft, ha annunciato il proprio piattaforma con due socket e quattro
supporto al lancio di Microsoft Offi- NVIDIA, partner di lancio della AMD
core per PC desktop, progettata per
ce 2007, Windows Vista e Exchange Quad FX Platform per quanto riguar-
poter utilizzare le nuove funzionalità
Server 2007. Avanade è attualmente da chipset e multi-GPU, è altrettanto
di Windows Vista Ultimate. La nuova
impegnata con oltre una trentina di entusiasta delle potenzialità della
piattaforma di AMD, destinata agli
aziende clienti a livello internaziona- nuova piattaforma dual-socket AMD.
utenti più appassionati di informati-
le, nello sviluppo di programmi fina- Grazie alla flessibilità della AMD Quad
ca, ridefinisce i livelli di prestazioni
lizzati a far apprezzare loro i vantaggi, FX Platform è possibile configurare i
della nuova generazione di applica-
in termini di efficienza e produttività,
zioni multi-threaded. sistemi in modo da supportare una
che queste nuove tecnologie offrono
La piattaforma AMD Quad FX si basa serie di esigenze, come quelle degli
ai professionisti e alle aziende. Come
su coppie di processori dual-core aspiranti produttori audio/video. Dan
già in passato, anche oggi Avanade
utilizza i sistemi di Microsoft Office della serie AMD Athlon 64 FX-70, gli Gregoire è un artista digitale che an-
2007, Windows Vista ed Exchange ultimi modelli entrati a far parte della novera tra i propri clienti numerosi
Server 2007 all’interno del proprio famiglia AMD Athlon 64 FX. La nuova studi pubblicitari e cinematografici.
network per servire oltre 5.000 pro- piattaforma si rivolge in particolare Come innovatore della tecnica di
fessionisti, ed in particolare Exchange agli utenti che desiderano sfruttare al storyboarding digitale tridimensio-
Server 2007, per la sua facilità d’in- massimo le potenzialità del computer nale chiamata “pre-visualizzazione”
stallazione. nel gioco, nell’editing audio/video e attualmente in voga nell’industria
nello streaming di contenuti in alta del cinema, Dan sa bene quali siano
Grazie alla comprovata esperienza definizione. Ora che i consumatori le esigenze di velocità e prestazioni,
sul campo dopo molte installazioni sono vicini a conoscere le nuove e può apprezzare il percorso di up-
presso i clienti, un focus mirato sulle funzionalità introdotte da Microsoft
grade offerto dalla tecnologia multi-
soluzioni Microsoft e una rete di con- Windows Vista e che il settore del
core AMD.
sulenti tecnici altamente specializzati, software si sta spostando sempre
Avanade vanta un’ineguagliabile abi- più verso ambienti multi-threaded, la
lità nell’aiutare i clienti a beneficiare piattaforma AMD Quad FX soddisfa
dei nuovi applicativi in tempi rapidi e AMD Quad FX Platform: capacità
appieno le esigenze di tutti coloro
senza interruzioni nel loro business. senza precedenti
che lavorano in “megatasking”, ovve-
La piattaforma AMD Quad FX pro-
ro utilizzano contemporaneamente
Al fine di far adottare alle aziende pone livelli assoluti di prestazioni,
più applicazioni e giochi multi-threa-
clienti tecnologie sempre più per- flessibilità e personalizzazione con
ded.
formanti, Avanade ha sviluppato un caratteristiche innovative come do-
Con l’introduzione dell’architettura
vasto portafoglio di soluzioni che dici controller SATA per un massimo
Dual Socket Direct Connect, i con-
include anche i nuovi prodotti di
sumatori avranno a disposizione di nove terabyte di capacità storage
Microsoft. Attualmente, ad esempio,
una piattaforma scalabile in grado con le tecnologie per hard disk at-
sta utilizzando il pacchetto Microsoft
di sostenere le applicazioni più tualmente sul mercato (l’equivalente
Office 2007 in modo tale da creare
applicazioni self-service e soluzioni di impegnative, ed al tempo stesso di di oltre 450 film in alta definizione),
knowledge management; ottimi stru- migrare facilmente ad una piattafor- e una superiore distanza tra gli slot
menti che portano produttività. ma che integrerà fino a un totale di PCI-E per poter inserire fino a quat-

52 VBJ N. 72 - Novembre/Dicembre 2006


Prodotti News

tro schede grafiche ad alte presta- processore scegliendo una configu- IONA lancia CELTIX
zioni. La piattaforma AMD Quad FX razione dual-socket. ENTERPRISE
è progettata per far sì che i clienti L’ESB open source abbatte i costi di
possano creare un proprio sistema ingresso per l’adozione delle SOA
custom, inclusa la possibilità di pi- Disponibilità e prezzi
lotare quattro o anche otto monitor I nuovi processori dual-core AMD IONA Technologies, azienda leader
contemporaneamente installando Athlon 64 FX-70, FX-72 e FX-74 nella fornitura di soluzioni SOA di-
quattro schede grafiche PCI-E. sono venduti rispettivamente a stribuite per ambienti IT che richie-
599, 799 e 999 dollari a coppia dono prestazioni elevate, annuncia la
in versione boxata (PIB). I listini disponibilità di Celtix Enterprise, l’ESB
(Enterprise Service Bus) open source
Dual Socket Direct Connect Archi- dettagliati sono pubblicati all’in-
dell’azienda. Celtix Enterprise offre
tecture dirizzo:_<http://www.amd.com/
sofisticate funzionalità ESB, suppor-
L’architettura Dual Socket Direct pricingwww.amd.com/pricing
tate dalla consolidata struttura di
Connect (DSDC) implementa la I processori dual-core AMD Athlon
servizi IONA. Questa potente combi-
comunicazione high-bandwidth tra 64 FX-70 Series saranno disponibili in
nazione di tecnologia e consulenza,
coppie omogenee di processori tutto il Nordamerica dal 30 novembre training e supporto, rappresenta la
dual-core AMD Athlon 64 FX-70, presso NewEgg. La disponibilità nel base necessaria alle aziende che desi-
AMD Athlon 64 FX-72 e AMD Athlon resto del mondo è prevista per gli derano implementare SOA basate su
64 FX-74. L’architettura DSDC è inizi del 2007. I sistemi basati su AMD tecnologie open source.
pensata per un futuro multi-core e Quad FX Platform saranno proposti da
multi-threaded fino a un massimo di Vigor, Cyber Power, IBUYPOWER e altri La disponibilità di Celtix Enterprise
otto core. Gli utenti possono dunque system builder nel prossimo futuro. fa leva sulla strategia IONA volta a
raddoppiare il numero di core di fornire ai grandi clienti internazionali

N. 72 - Novembre/Dicembre 2006 VBJ 53


Prodotti News

una gamma completa di soluzioni framework leggero, progettato per Solution Suite 2.0, l’ultima versio-
per infrastrutture SOA distribuite, essere estensibile, utilizzato per la ne della soluzione più diffusa per
che possono essere implementate creazione e il collegamento di Web l’imaging aziendale e l’elaborazione
in maniera incrementale al fine di Service. Il core si basa su codice delle immagini, che oggi comprende
aiutare le aziende a semplificare e del progetto Apache Incubator CXF, anche il supporto per Microsoft Vista
modernizzare i loro sistemi IT, al che è un’evoluzione dei progetti e Windows x64-bit. Symantec Ghost
tempo stesso generando un ROI più ObjectWeb Celtix e Codehaus Xfire. Solution Suite 2.1 assicura un’instal-
elevato e riducendo i costi fissi delle In aggiunta, Celtix Enterprise imple- lazione, una migrazione e una distri-
attività IT. Al centro di Celtix Enterpri- menta lo standard JAX-WS per faci- buzione del software veloce e affida-
se si trova un service engine leggero litare lo sviluppo di servizi Java con- bile su Windows ed è riconosciuto
e pluggable che permette ai clienti di vertendo automaticamente il codice in tutto il mondo come soluzione
implementare le funzionalità di base Java in Web Service. Gli strumenti collaudata, affidabile e accessibile
necessarie per raggiungere l’obiettivo basati sul progetto Eclipse SOA Tools per l’acquisizione e la gestione dei
di un progetto, e di aggiungere nuo- sono anch’essi integrati all’interno di sistemi Windows.
ve capacità a mano a mano che busi- Celtix Enterprise.
ness e tecnologia evolvono. Tenendo · Infrastruttura di messaggistica. La Il suo design intuitivo, unito ai tu-
in considerazione il fatto che molte piattaforma Celtix Advanced Messa- torial completi integrati, fa sì che
aziende non adottano in toto tecno- ging è una piattaforma di messaggi- Ghost Solution Suite 2.0 sia veloce e
logie open source, Celtix Enterprise è stica distribuita ad alte prestazioni semplice da implementare, configu-
compatibile con numerose tecnolo- basata sul protocollo AMQP aperto rare e apprendere. Inoltre, la console
gie SOA commerciali, tra cui quelle come utilizzato nel progetto Apache centralizzata semplifica la gestione
della famiglia di prodotti Artix come Incubator Qpid. Celtix Advanced di desktop, notebook e server oggi
Artix ESB e Artix Orchestration. Messaging supporta svariati schemi sempre più complessi, nonché dei
di messaggistica tra cui message sistemi remoti e mobili avanzati.
Con Celtix Enterprise, IONA ha rac- queuing point-to-point e publish-
colto vari standard SOA esistenti ed subscribe. In aggiunta, il progetto Più veloce
emergenti insieme a software svilup- Apache Incubator ActiveMQ è inte- Ghost Solution Suite 2.0 permette
pato dalle comunità ed elementi di grato per fornire l’infrastruttura di agli uffici IT di ottenere una riduzio-
innovazione SOA. La funzionalità di messaggistica JMS all’interno di Celtix ne fino al 90 percento dei tempi e
Celtix deriva da diversi progetti di Enterprise. del budget rispetto all’installazione e
infrastruttura SOA open source che · Implementazione flessibile. Celtix alla migrazione manuale dei sistemi
sono stati testati e certificati da IONA Enterprise offre ai clienti diversi Windows. Ghost Solution Suite 2.0
per compatibilità e interoperabilità e modelli di implementazione tra cui la fornisce gli strumenti che occorrono
integrati al fine di fornire funzionalità possibilità di utilizzare container leg- agli amministratori IT per installare o
ESB critiche. Tra questi: geri basati sul framework Spring e/o ripristinare facilmente e nel giro di
sul progetto Apache Tomcat. I servizi pochi minuti lo stato iniziale di un’im-
· Codice del progetto Apache Incu- Celtix Enterprise possono essere magine o di un’applicazione operati-
bator CXF per fornire il framework implementati in qualsiasi container va in un PC. Ghost Solution Suite
dei servizi J2EE o JBI. La flessibilità permette a 2.0 migliora e sfrutta l’installazione
· Tooling basato su Eclipse dal proget- Celtix Enterprise di essere adottato in di Vista consentendo agli ammini-
to SOA Tool Platform stratori informatici di personalizzare
modo semplice in tutta l’azienda e su
· Codice del progetto Apache Incu- l’ambiente operativo standard e di
tecnologie diverse.
bator Qpid per fornire un’implemen- creare un unico file di immagini che
tazione open source delle specifiche possa essere contemporaneamente
AMQP (Advance Messaging Queueing trasferito su vari tipi di macchine e su
Protocol) Symantec Ghost Solution centinaia di computer. Tutto questo
Suite 2.0 facilita la riduce la necessità di mantenere file
Celtix Enterprise offre ai clienti le migrazione a Windows d’immagini multipli e permette agli
funzionalità e l’accesso alla consu- Vista amministratori informatici di tenere
lenza, formazione e supporto di cui Una soluzione di portata mondiale aggiornati i file d’immagini senza do-
hanno bisogno per rendere l’open per l’imaging aziendale che permette ver realizzare revisioni multiple.
source parte integrante della loro alle PMI di gestire efficacemente gli Le funzioni di migrazione permet-
strategia di implementazione SOA: ambienti Windows misti con una so- tono di trasferire velocemente e
luzione affidabile con facilità i dati, i parametri delle
· Struttura di servizi estensibile. Cel- applicazioni e i parametri di con-
tix Advanced Service Engine è un Symantec Corp. ha annunciato Ghost figurazione di Windows dei singoli

54 VBJ N. 72 - Novembre/Dicembre 2006


Prodotti News

utenti durante l’installazione di un ad esempio il trasferimento di file di quanto un singolo drive sia in
nuovo sistema operativo, riducendo multicast effettuato gestendo la grado di fare.
al minimo l’impatto delle modifiche larghezza di banda della rete. Ghost Solution Suite 2.0 è facile da im-
sui computer o sul sistema operativo plementare, configurare e utilizzare e
e limitando nel contempo i problemi Maggiore funzionalità non necessita di personale IT specializ-
per l’utente finale. Un’altra novità di Ghost Solution zato o di servizi di consulenza. Inoltre,
Suite 2.0 è la possibilità di elaborare Ghost Solution Suite 2.0 comprende
Facilità d’uso le immagini NTFS. Questa funzione, tutorial completi e integrati per il sof-
Con Ghost Solution Suite 2.0, la aggiunta alla capacità esistente di tware, mentre Symantec offre corsi di
migrazione dei sistemi dell’utente elaborare le immagini FAT ed EXT2/ trainig per aiutare le imprese a sfrutta-
finale è semplificata grazie alla 3, permette agli amministratori di re al meglio l’intera gamma di funzioni
funzione di migrazione integrata e aggiungere, eliminare e modificare offerte da Ghost Solution Suite e, di
alla guida per la migrazione peer- file e cartelle all’interno delle im- conseguenza, aumentare il ROI.
to-peer. Gli IT manager possono magini di Ghost indipendentemente
oggi configurare una mansione dal sistema di file sottostante. Ghost Disponibilità
per creare un’immagine di back- Solution Suite 2.0 introduce inoltre il Symantec Ghost Solution Suite 2.0
up, raccogliere i dati e i parametri supporto per la tabella di partizione sarà distribuita a breve attraverso la
dell’utente, installare un nuovo GUID (GPT) che consente l’imaging rete mondiale di Symantec di riven-
sistema operativo, effettuare una di partizioni più ampie e facilita la ditori a valore aggiunto, distributori
configurazione post-clonazione e migrazione a Windows Vista. Oggi e integratori di sistemi. Le organizza-
recuperare i dati e i parametri del- gli amministratori possono utilizzare zioni che desiderano reperire un ri-
l’utente. Possono inoltre utilizzare Ghost Solution Suite 2.0 per creare venditore o un distributore possono
con facilità altre funzioni di Ghost e realizzare immagini di array RAID contattare Symantec all’indirizzo http:
Solution Suite per semplificare dell’hardware con WinPE, che per- //enterprisesecurity.symantec.com.
ulteriormente l’operazione, come mette di creare partizioni più grandi

N. 72 - Novembre/Dicembre 2006 VBJ 55


SICUREZZA

Minacce alla sicurezza:


il rapporto F-Secure
A chiusura del 2006, il tradizionale rapporto semestrale di F-Secure evidenzia un
calo degli attacchi massivi, cui corrisponde però una crescita degli attacchi mirati,
che fanno meno rumore, ma causano ugualmente ampi danni

a cura di F-Secure (www.fsecure.com)

Sebbene il numero di virus scoperti sia stato in molti, visto che tali tipi di at-
forte crescita per tutto il 2006, nello stesso pe- tacchi risultano essere in cre-
riodo si è osservata una battuta d’arresto nella scita inarrestabile e si fanno
quantità effettiva di attacchi da worm, virus e al- sempre più sofisticati. Ultima-
tro malware. Purtroppo però sono divenuti cosa mente, capita addirittura che
comune gli attacchi mirati, che usano backdoor, i siti creati dai phisher siano
rootkit e file booby-trapped contenenti codici attivi per un’ora appena, suffi-
maligni. Inoltre, anche lo spam ha raggiunto ciente per fare incetta di infor-
nuovi vertici di diffusione. mazioni sottratte a navigatori
Anziché dai massicci assalti di malware del ingenui e poi scomparire nel
passato, il 2006 è stato caratterizzato da attac- nulla senza lasciare traccia.
chi mirati, spesso poco pubblicizzati e con un PayPal ed eBay continuano a
unico obiettivo: i soldi. Attacchi dove un hacker essere le organizzazioni pre-
punta a un precisa azienda e usa uno strumento se più di mira da attacchi di
occulto quale una rootkit per nascondere una phishing, insieme ad alcune
backdoor e quindi prelevare informazioni che, banche tedesche.
talvolta, rivende a terzi. In molti casi, questi
criminali riescono a entrare nel sistema usando Nomi di dominio
false email con un documento di Microsoft Offi- contraffatti supportano il
ce booby-trapped. phishing
Un altro tipo di assalto malware mosso dal dena- A ottobre, il team di ricercato-
ro è il phishing, anch’esso in grande crescita nel ri dei laboratori di F-Secure è
2006, che utilizza tecniche di social engineering stato attratto da un fermento
sempre più argute e siti contraffatti per sottrarre in atto nella compravendita di
denaro a chi ci casca. E probabilmente sono in nomi di domini registrati. Siti
come hell.com e auction.com
a ottobre erano in vendita per
F-Secure (www.fsecure.com) è leader mondiale nel settore
degli antivirus e della prevenzione dalle minacce provenienti cifre di molti milioni di dollari
da Internet e dalle reti mobili: secondo ricerche indipendenti, l’uno. Cosa impressionante se
nel 2004, nel 2005 e nel 2006 il tempo di risposta di FSecure si pensa che tali domini erano
alle nuove minacce è stato in maniera significativa più veloce
di quello di tutti i suoi concorrenti.
stati originariamente registra-
ti per 5-15 dollari.

N. 72 - Novembre/Dicembre 2006 VBJ 57


SICUREZZA

Figura 1 Siti PayPal fraudolenti

In generale comunque, la maggior parte consigliere delegato Jeremiah Johnston


dei nomi di domini veniva rivenduta per affermando che la società desidera “tutela-
poche centinaia o migliaia di dollari. I re in ugual misura i diritti di tutti “.
principali “commercianti” di domini sono A fine agosto, il team dei lab di F-Secure
Sedo e Moniker. Ma la cosa che ha attrat- ha individuato un sito PayPal colpito da
to il team di ricercatori di F-Secure è che phishing, apparentemente disegnato per
molti di questi domini in vendita avevano sferrare un attacco del tipo man-in-the-
nomi molto vicini a quelli di istituzioni fi- middle mirato alla sottrazione di password.
nanziarie ben note: chasebankonline.com, Il sito mostrava un box di login identico in
citi-bank.com, bankofameriuca.com, ecc. tutto e per tutto all’originale, dove all’uten-
La domanda è: a chi potrebbe interessare te veniva richiesto di digitare user name
l’acquisto di tali domini se non alla banca e password PayPal. Secondo gli esperti di
stessa o a un phisher? F-Secure, probabilmente il truffatore ave-
I ricercatori di F-Secure hanno anche va creato un finto login sul sito ufficiale
notato che i commercianti di domini ave- PayPal allo scopo appunto di rubare i dati
vano messo in vendita nomi di dominio riservati dell’utente. Per fortuna, il trucco è
creati usando le vocali “i” e “a” in forma stato scoperto prima che potesse fare danni
accentata, in grado di creare facile confu- e ne sono state informate le autorità prepo-
sione. Domini quali vísa.com, pàypal.com, ste. F-Secure prevede che il phishing man-
paypàl.com, quasi indistinguibili dai siti in-the middle diverrà un grande problema
legittimi. Interrogata sulla discutibile in futuro. Sempre sul tema delle aziende
messa in vendita di domini ingannevoli che supportano senza saperlo questo tipo
dal nome simile a quello di siti legittimi, di attività illecite, in agosto si è scoperto
Sedo ha replicato per bocca del proprio che Tripod, il servizio di web hosting gra-

58 VBJ N. 72 - Novembre/Dicembre 2006


SICUREZZA

tuito di Lycos, aveva alcuni siti phishing volta che il file worm è attivato, mostra un
ospitati sui suoi server. messaggio esca e si installa sul sistema
Ecco alcuni esempi dei siti attivi indivi- creando una chiave di startup per sé stes-
duati: so nel registro di Windows e avviandosi
• pay-pal-redirect.tripod.com quando il sistema viene avviato. Esso resta
• pay-pal-jack-pot.tripod.com quindi attivo nella memoria del sistema e
• pay-pal-upgrade.tripod.com/asfafsa.html cerca sugli hard disk tutti i file contenenti
• gontham5.tripod.com/paypal.html indirizzi e-mail. Quindi si collega a un mail
• wakabu2.tripod.com/paypal.html server e si autoinvia a tutti gli indirizzi che
• pp-account.tripod.com/paypal.html ha trovato.
I ricercatori di F-Secure si domandano La cosa interessante di questo worm è che
come mai Tripod non abbia fatto di più è in grado di autodiffondersi, come faceva-
per impedire che qualcuno creasse siti con no i suoi antenati, e che lo ha fatto davvero
nomi quali “pay-pal-redirect” o che almeno bene, rappresentando l’attacco più capillare
di tanto in tanto non facesse una scansione di questo tipo sferrato nel 2006. Tutte le
delle pagine create dai propri utenti per sue varianti all’inizio usavano lo stesso sito
individuare copie evidenti delle pagine di per download di componenti aggiuntivi e
login di eBay o PayPal. update - gadesunheranwui.com – un do-
minio registrato appositamente dall’autore
Warezov, il worm “dal sapore antico”, di questo malware. A novembre, l’obiettivo
che causa non pochi fastidi di Warezov appariva più che raggiunto e la
Nel 2006, solo due sono stati gli attacchi relativa propagazione dello spam era mas-
massivi “tradizionali” da email worm: siccia. I computer infettati da Warezov sca-
Nyxem e Warezov. Lanciato in agosto, Wa- ricavano ulteriori componenti che, dopo un
rezov e le sue molte varianti si autoinvia- intervallo di tempo variabile, cominciavano
no come allegati email a indirizzi trovati a sparare messaggi spam contenenti pub-
su computer precedentemente infettati. blicità di pseudo Viagra, Vialis, Valium e
In alcuni casi, gli allegati infetti possono Xanax. Messaggi come quello di Figura 2.
attivarsi automaticamente, in altri è neces- Agli esperti di F-Secure è apparso subito
sario aprirli per essere infettati. Warezov chiaro il collegamento tra il virus e lo spam
tenta inoltre di scaricare varianti aggior- in questione, osservando che il nome di
nate di se stesso da specifici siti web. Una dominio usato dalla banda Warezov per il

Figura 2 Un messaggio generato dal worm “Warezov”

N. 72 - Novembre/Dicembre 2006 VBJ 59


SICUREZZA

download dei componenti del virus era lo che le stesse informazioni per la registrazio-
stesso usato per l’hosting dei falsi siti sul ne. Tutti i domini che gli esperti di F-Secure
Viagra. hanno individuato possono essere classifi-
Warezov si diffonde spammando diverse cati in 3 gruppi: domini registrati a “Wang
versioni del downloader, che vengono Pang”, “Dima Li” o “Bai Ming” (Figura 4). E
modificate dagli spammer non appena gli quando si confrontano i nomi di domini usa-
antivirus aggiungono la capacità di inter- ti dal virus con i domini dei messaggi spam,
cettare quel particolare componente. Una si vede subito che sono uguali, offrendo la
volta eseguito sul computer, il downloader prova che sono entrambi parte della stessa
si collega a un URL di download, che può operazione: A novembre, Warezov appariva
essere come questo: ancora molto attivo e altrettanto attiva è F-
Secure nell’aggiornare la protezione contro
• yuhadefunjinsa.com/chr/grw/lt.exe di esso. Avendo potuto ricomporre molti
pezzi del puzzle, le nuove varianti del worm
I messaggi spam linkano a falsi siti sul Via- vengono ora bloccate automaticamente da
gra come quello di Figura 3: Interessante F-Secure Internet Security 2007. Tuttavia,
notare che i domini usati dai falsi shop il worm Warezov sembra destinato a creare
online di Viagra non solo hanno nomi simili fastidi a esperti di sicurezza e utenti ancora
all’URL del downloader, ma contengono an- per un po’.

Figura 3 Falso sito sul Viagra

60 VBJ N. 72 - Novembre/Dicembre 2006


SICUREZZA

invece, sfruttava una vul-


nerabilità di Macromedia
Flash per reindirizzare
gli utenti di MySpace
verso una pagina web di
dubbio gusto. A luglio,
MySpace è stato anche
il target di un banner
pubblicitario maligno
collocato sul sito, che ha
sfruttato la vulnerabilità
WMF di Windows per
sparare adware a oltre
un milione di utenti con
computer privi della
patch idonea. In segui-
to a questi attacchi, gli
esperti di F-Secure hanno
deciso di andare a vedere
quanto altre popolari
social network fossero
al sicuro dai worm che
sfruttano la vulnerabilità
XSS. Sono stati esamina-
Figura 4 Domini dei falsi shop online di Viagra
ti due dei principali di
tali siti che insieme con-
tano 80 milioni di utenti.
In appena mezz’ora, è stata scoperta oltre
Social network sotto la minaccia dei una mezza dozzina di vulnerabilità XSS
worm potenzialmente sfruttabili in ciascun sito!
Alla fine di luglio, il team dei lab si è imbat- Se questi sono i risultati di mezz’ora di in-
tutto in ulteriori esempi di worm che sfrut- dagine, possiamo solo immaginarci quanti
tano le vulnerabilità Cross Site Scripting altri “buchi” vi siano all’interno di tali siti.
(XSS) dei siti web. Si tratta di una nuova In meno di un giorno di lavoro, un malin-
categoria di malware, che rappresenta una tenzionato con una conoscenza appena
crescente preoccupazione per tutti i siti, in decente di javascript potrebbe creare un
particolare per quelli di Social Networking, worm che sfrutta anche solo una di queste
presi particolarmente di mira a causa del- vulnerabilità. E qui c’è una considerazio-
la loro popolarità e ampia base di utenti. ne da fare: il banner WMF ha raggiunto
MySpace, ad esempio, è già stato colpito con successo circa un milione di utenti.
da due di tali worm: Samy nell’ottobre del Un worm automatico che utilizzasse un
2005 e da un worm “Flash” lo scorso luglio. exploit WMF o browser simile – o anche un
Samy è stato scritto da qualcuno che ambi- exploit zero-day – potrebbe potenzialmen-
va a due minuti di popolarità su MySpace te raggiungere un target molto, ma molto
e che ha progettato il worm per poter ag- più ampio di macchine prive di patch. Teo-
giungere vorticosamente persone alla sua ricamente, l’intera base di utenti... F-Secu-
lista di amici. Il risultato? Oltre 1 milione re raccomanda pertanto agli sviluppatori
di “amici” in un paio d’ore. Il worm Flash, di applicazioni web di iniziare a prendere

N. 72 - Novembre/Dicembre 2006 VBJ 61


SICUREZZA

Figura 5 La raccomandazione 925568 di Microsoft ha risolto l’exploit VML

più sul serio il problema della sicurezza e ma per fortuna Outlook tratta le e-mail
agli utenti di installare sempre le patch: come se arrivassero da siti potenzialmente
c’è poco da scherzare con il problema XSS. pericolosi, disabilitando le funzionalità di
Con l’avvento di phishing e worm che inte- “Binary and Scripting Behaviour”.
ressano le applicazioni web e sono in grado
di sfruttare un’imponente base di milioni F-Secure apre un laboratorio di ricer-
di utenti in pochissimo tempo, si tratta di ca a Kuala Lumpur
un rischio serio. Ovviamente, gli esperti di A settembre, F–Secure ha aperto un nuo-
F-Secure hanno riferito delle vulnerabilità vo Technology Centre in Malesia, a Kuala
individuate ai responsabili dei due siti in Lumpur, che ospita un Security Lab. Il
questione paese è stato scelto quale hub chiave per le
operazioni in Asia per la presenza in loco di
L’exploit VML mette a rischio gli utenti qualificate risorse umane, le iniziative delle
di Explorer autorità locali per incoraggiare le aziende
A fine settembre, F-Secure ha riferito del- high tech ad avviare attività sul posto e per
l’esistenza di un exploit VML in Internet il fuso orario della regione rispetto all’Eu-
Explorer che consentiva l’esecuzione da ropa. Data la differenza di fuso orario con
remoto di codice senza alcuna azione ri- gli altri lab di F-Secure che monitorano la
chiesta all’utente: per infettarsi, bastava situazione malware a livello mondiale, il
semplicemente visitare una pagina su cui lavoro può essere suddiviso tra le diverse
fosse presente il codice maligno usando il sedi senza sovrapposizioni. In questo modo,
browser Internet Explorer o una email for- F-Secure può continuare a mantenere la sua
mattata. Fortunatamente per gli utenti di promessa di rispondere agli attacchi dei vi-
IE, Microsoft ha subito pubblicato una rac- rus più velocemente dei concorrenti.
comandazione (925568) a questo proposito,
rendendo disponibile un aggiornamento a Malware mobile – i soliti sospetti e
ottobre. Gli utenti sono stati avvertiti di alcune stranezze
eliminare dal registro la dll incriminata Sul fronte dei dispositivi mobili, il malwa-
come misura preventiva minima. Per la re è apparso ancora in costante crescita
maggior parte degli utenti, la vulnerabilità nella seconda metà del 2006. A luglio, il
rappresenta una minaccia ridotta poiché il numero di malware noto ha superato quota
componente vgx.dll gestisce solamente il 300 e continua a crescere. Come sempre,
Vector Markup Language (VML), qualco- Symbian continua a essere la piattaforma
sa che non molti siti usano oggi. Il client preferita dagli autori di malware mobile, in
email Microsoft Outlook era anch’esso po- ragione della sua leadership nel mercato
tenzialmente vulnerabile a questo exploit, degli smartphone.

62 VBJ N. 72 - Novembre/Dicembre 2006


SICUREZZA

Worm cross-platform: preoccupanti per gli utenti di dispositivi


il malware del futuro? mobili. Tuttavia, gli autori di virus potreb-
In autunno, il team di ricercatori di F- bero usarlo come base per malware più
Secure si è imbattutto in un worm cross- maligno. Commwarrior: ancora lui! Sem-
platform teoricamente in grado di diffon- pre in autunno, il team di ricercatori di
dersi da un PC a un dispositivo mobile e F-Secure ha ricevuto un nuovo campione
viceversa. Il worm “Mobler” – come è sta- Commwarrior: SymbOS/Commwarrior.Q.
to battezzato – si muove tra le piattaforme Niente di particolare da rilevare se non
Symbian e Windows. Sebbene i danni che il fatto che questo Commwarrior.Q non è
può causare in ambiente Windows siano una pura riedizione di Commwarrior.B,
preoccupanti, esso non ne causa di rile- ma piuttosto una nuova variante dotata di
vanti ai dispositivi Symbian, limitandosi funzionalità aggiuntive. Commwarrior.Q è
a copiare se stesso sulla scheda di memo- basato su Commwarrior.C e ha le sue stes-
ria e cercando di spingere con l’inganno se funzionalità e qualcuna in più. Come
l’utente a infettare il suo PC. Tecnicamen- Commwarrior.C, la variante Q si diffonde
te parlando, non vi è un meccanismo au- via Bluetooth e messaggi MMS e infetta le
tomatico di diffusione mediante il quale memory card. In più, Commwarrior.Q va
Mobler possa copiarsi da una piattaforma alla ricerca di file di installazione SIS e si
all’altra. Esso crea semplicemente un inietta in tutti quelli che trova. Ciò signifi-
pacchetto di installazione Symbian che ca che oltre a cercare di diffondere se stes-
inserisce un eseguibile Windows sulla so, Commwarrior.Q cerca anche di spinge-
memory card del dispositivo mobile. Tale re gli utenti a distribuirlo. Ad esempio, se
eseguibile è visibile come folder di sistema un utente ha un file SIS di installazione
in Windows Explorer e dunque, in teoria, di un gioco e lo copia sul dispositivo di
l’utente potrebbe aprirlo accidentalmente un amico. Commwarrior.Q è anche il pri-
e infettare il proprio PC mentre naviga mo malware Symbian che usa un file di
nei file della propria memory card. Nella installazione SIS di dimensione random
sua forma attuale, Mobler non presenta quando si replica. La dimensione varia da
dunque rischi immediati particolarmente 32100 a 32200 byte, il che lo rende difficile
Giu 2004

Figura 6 Crescita costante del malware sui dispositivi mobili

N. 72 - Novembre/Dicembre 2006 VBJ 63


SICUREZZA

da riconoscere. Se installato, dopo un po’ previste perfino funzioni per la localizza-


Commwarrior.Q visualizza sul browser zione dell’utente. Ciò significa in pratica
del dispositivo una pagina HTML che lo che la vittima con un’applicazione spia do-
rivela. Di conseguenza, è improbabile che tata di tutte queste funzionalità installata
possa diffondersi su vasta scala. In ogni sul suo telefono deve dimenticarsi la pri-
caso, Commwarrior.Q viene individuato vacy: chi controlla tale software ha libero
e bloccato dall’attuale F-Secure Mobile accesso a tutte le sue informazioni priva-
Anti- Virus. te, mediante le funzionalità sopra descrit-
te. I venditori di tale software spyware si
Spyware mobile: legittimo o no? difendono affermando che i loro prodotti
Sempre sul fronte mobile, F-Secure conti- devono essere usati in ottemperanza alle
nua a investigare la questione dei trojan leggi locali e che l’applicazione tipica di
spia liberamente commercializzati per i tali strumenti è il controllo di un marito
telefoni mobili Symbian o basati su altre fedifrago o dei figli. Ma ovviamente questi
piattaforme. Il team di ricerca dapprima strumenti possono aver ben altri, anche
pensava che tale software potesse costi- più discutibili impieghi quali spionaggio
tuire un fenomeno circoscritto a solo un industriale, furto d’identità e pedinamen-
paio di fornitori di tali strumenti. Ma ora ti. Una delle applicazioni spyware che
la situazione è cambiata e si è creata una gli esperti di F-Secure hanno indagato è
sorta di piccola e fiorente industria fatta Acallno.A (nome fittizio dato dai ricerca-
di fornitori che o sviluppano software per tori per non fare pubblicità gratuita al tool
smartphone Symbian o producono ver- spia preso in esame), un tool SMS spia che
sioni modificate nell’hardware di quasi forwarda tutti i messaggi inviati o ricevuti
tutti i telefoni disponibili. Un tipico set a un numero impostato da chi ha instal-
di funzionalità di questo tipo di strumenti lato il software sul cellulare. F-Secure ha
include intercettazione e reindirizzamen- identificato come spyware questo stru-
to degli SMS, raccolta di informazioni su mento e ne ha abilitato l’individuazione in
mittenti e destinatari di SMS e telefonate F-Secure Mobile Anti-Virus. Poiché i tool
e ascolto a distanza. In alcuni casi sono di monitoraggio non sempre sono illega-
li e potrebbero anche
essere contemplati usi
legittimi di Acallno.A
o di qualunque altro
software simile, F-
Secure dà comunque
agli utenti la facoltà di
annullarne il blocco da
parte di Anti-Virus. Per
fortuna, Acallno.A può
essere installato sul
cellulare solo da chi è
a conoscenza del codice
IMEI del dispositivo.
Non può essere sempli-
cemente incluso in un
Figura 7 Symbian è la piattaforma preferita dagli autori di malware trojan o diffuso con un
altro metodo di installa-
zione massiva.

64 VBJ N. 72 - Novembre/Dicembre 2006


SICUREZZA

Le vulnerabilità di Centrino aprono di vulnerabilità non è un problema solo di


potenzialmente la porta a virus WLAN Intel Centrino. Anche sistemi operativi
A inizio agosto, Intel ha pubblicato un set come Mac, ad esempio, hanno rivelato di
di patch per Intel Centrino. Niente di par- avere sui driver “porte aperte” potenzial-
ticolarmente rilevante se non per il fatto mente sfruttabili dagli hacker. In tutti i
che Centrino non è solo un processore: casi il consiglio degli esperti di F-Secure è
esso infatti integra funzionalità WLAN e di di accertarsi sempre che i propri driver Wi-
altro tipo per i notebook. Le vulnerabilità Fi siano aggiornati.
non sono connesse al processore in sé ma
alle funzionalità wireless. La peggiore, “po- E per finire
trebbe potenzialmente essere sfruttata da Il produttore di giocattoli svedese Brio ha
malintenzionati stazionanti entro il raggio creato una serie di personaggi per bambini
di copertura della stazione Wi-Fi per ese- che impersonificano le entità che “vivo-
guire codice arbitrario sul sistema preso di no” dentro al PC. La linea di giocattoli,
mira acquisendo privilegi a livello di ker- in legno, include anche i virus. Non solo,
nel”. Ciò significa che, teoricamente, qual- hanno anche creato un sito dedicato a sup-
cuno potrebbe scrivere un virus WLAN in porto del gioco con questi personaggi, che
grado di balzare da un notebook a un altro include anche un filmato. La speranza dei
che si trovasse vicino all’interno del raggio tecnici di F-Secure è che i bambini si iden-
di copertura di un access point. Questo tipo tifichino nei buoni e non nei virus…

N. 72 - Novembre/Dicembre 2006 VBJ 65