RNUG 2020: Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Ci...panagenda
Virtualizing HCL Notes 11.0.1 FP2 (incl. Language Packs, Fix Packs, Connections Plugins for Notes and more) is an effective way to standardize your Notes client infrastructure, reduce costs for workstation hardware and give your users a consistent experience. In this session, you will learn how to implement, configure and tune HCL Notes 11.0.1 FP2 on platforms like Citrix XenApp/XenDesktop and get the most out of it by dramatically reducing start-up times (up to 70%), bringing a much better performance and increasing the stability into the Notes client. Beside a live demo on what we call “The Workspace (folder) Improvement” you'll also get some worst practices stories as Chris shares his experiences from real-world client virtualization projects, how these stories can help you and a detailed recipe on ”How to run the Installation and initial configuration of Notes in the best possible way for your very own infrastructure”.
ASP.NET est un ensemble de technologies de programmation Web créé par Microsoft. Ce langage est utilisé pour créer des sites Webs dynamiques, des applications web ou des web services XML.
Le développement Web avec ASP.NET est plus facile: les applications Web sont développées comme des applications Windows en utilisant le modèle ASP.net ==> il s'agit d'une insertion du code (codebehind) C# ou VB.net dans des pages HTML (ajouter du JavaScript) est envoyé au client. On dit On dit que le C# et/ou VB.NET sont utilisés pour modifier le HTML
L'objectif de cette introduction est de :
- Comprendre le fonctionnement du Framework .Net
- Comprendre les principes de base de ASP.NET
- Faire la différence entre Page web Classiques et pages ASPX crées avec ASP.NET
RNUG 2020: Virtual, Faster, Better! How to deploy HCL Notes 11.0.1 FP2 for Ci...panagenda
Virtualizing HCL Notes 11.0.1 FP2 (incl. Language Packs, Fix Packs, Connections Plugins for Notes and more) is an effective way to standardize your Notes client infrastructure, reduce costs for workstation hardware and give your users a consistent experience. In this session, you will learn how to implement, configure and tune HCL Notes 11.0.1 FP2 on platforms like Citrix XenApp/XenDesktop and get the most out of it by dramatically reducing start-up times (up to 70%), bringing a much better performance and increasing the stability into the Notes client. Beside a live demo on what we call “The Workspace (folder) Improvement” you'll also get some worst practices stories as Chris shares his experiences from real-world client virtualization projects, how these stories can help you and a detailed recipe on ”How to run the Installation and initial configuration of Notes in the best possible way for your very own infrastructure”.
ASP.NET est un ensemble de technologies de programmation Web créé par Microsoft. Ce langage est utilisé pour créer des sites Webs dynamiques, des applications web ou des web services XML.
Le développement Web avec ASP.NET est plus facile: les applications Web sont développées comme des applications Windows en utilisant le modèle ASP.net ==> il s'agit d'une insertion du code (codebehind) C# ou VB.net dans des pages HTML (ajouter du JavaScript) est envoyé au client. On dit On dit que le C# et/ou VB.NET sont utilisés pour modifier le HTML
L'objectif de cette introduction est de :
- Comprendre le fonctionnement du Framework .Net
- Comprendre les principes de base de ASP.NET
- Faire la différence entre Page web Classiques et pages ASPX crées avec ASP.NET
Support du cours - Développement côté serveur
Niveau : Licence informatique - L2
Auteur : Houda TOUKABRI
Bibliothèque ISET Kélibia [SCI11 : 02-01-2018]
Objectif général : Connaître les fondamentaux d’une API REST
Objectifs spécifiques :
Savoir définir une API
Connaître l’architecture REST
Connaître les contraintes du REST
Connaître la structure d’une requêtes HTTP
Connaître les caractéristiques d’une ressources
Se servir des méthodes HTTP
Connaître la structure d’une réponses HTTP
Connaître les codes HTTP
Support du cours - Développement côté serveur
Niveau : Licence informatique - L2
Auteur : Houda TOUKABRI
Bibliothèque ISET Kélibia [SCI11 : 02-01-2018]
Objectif général : Connaître les fondamentaux d’une API REST
Objectifs spécifiques :
Savoir définir une API
Connaître l’architecture REST
Connaître les contraintes du REST
Connaître la structure d’une requêtes HTTP
Connaître les caractéristiques d’une ressources
Se servir des méthodes HTTP
Connaître la structure d’une réponses HTTP
Connaître les codes HTTP
Potenza e controllo con le Parallel Libraries (Raffaele Rialdi)DotNetMarche
Abbiamo sentito ripetere più volte che la crescita di potenza sarà in funzione del numero di Core della CPU e non più in termini di GHz. Questo è già avvenuto e la nuova generazione di PC approda a 8 core mentre i cellulari vedranno presto i 2 e poi i 4 core.
I dati di fatto sono che non è possibile eseguire magicamente la parallelizzazione dei nostri applicativi, tantomeno è pensabile di utilizzare strumenti di basso livello come i thread.
Nel corso della sessione vedremo quanto potenti siano le nuove Parallel Libraries e come trarne vantaggio senza doverci preoccupare del numero di core presenti sul PC.
✦ Progettazione in XP
✦ Principi di progettazione: Semplicità
✦ Test Driven Development
✦ Self Documenting Code
✦ Once and Only Once
✦ You Ain’t Gonna Need It
✦ Automazione dei test in Java: JUnit
✦ Introduzione
✦ Connessioni TCP lato client: la classe
Socket
✦ Connessioni TCP lato server: la classe
ServerSocket
✦ Struttura di un server multi-threaded
1. Lezione 2: I thread
Corso di Programmazione in Rete
Laurea Magistrale in Ing. Informatica
Università degli Studi di Salerno
1
2. Outline
✦ Introduzione ai thread
✦ I thread in Java
✦ La sincronizzazione
2
3. Introduzione ai thread
✦ Sequenza statica = sequenza delle
istruzioni nel testo del programma
✦ Sequenza dinamica = sequenza in cui le
istruzioni sono eseguite durante una
particolare esecuzione del programma
✦ Tradizionalmente, ad ogni esecuzione è
associata un’unica sequenza statica detta
anche flusso di esecuzione o thread of
execution
3
4. Multi-threading
✦ Nei moderni sistemi operativi un
programma può attivare più flussi di
esecuzione (thread) che procedono
simultaneamente
✦ I programmi che sfruttano questa
possibilità sono detti multi-threaded
✦ Nota:
• Multitasking = più programmi attivi
contemporaneamente
• Multithreading = più thread attivi nello stesso
programma
4
5. Multi-threading
✦ In un programma a singolo thread:
Operazione A {
istruzione 1
istruzione 2
... ...
OperazioneA(); }
OperazioneB();
...
Operazione B {
istruzione 1
L'operazione A deve essere istruzione 2
completata prima che il programma ...
possa cominciare l'operazione B }
5
6. Multi-threading
✦ In un programma multi-threaded
Operazione A {
... istruzione 1
nuovo thread { istruzione 2
OperazioneA(); ...
} }
OperazioneB();
...
Operazione B {
istruzione 1
L’operazione A è eseguita in un istruzione 2
thread separato da quello ...
principale; B comincia prima che A }
sia terminata
(A e B sono eseguite “in parallelo”)
6
7. Multi-threading
✦ Se il computer ha più processori:
esecuzione parallela dei thread
✦ Se il computer ha un solo processore (o
un numero di processori inferiore al
numero di thread): esecuzione
concorrente (time sharing)
esecuzione parallela operazione A
operazione B
esecuzione operazione A
concorrente
operazione B
tempo
7
8. Vantaggi
✦ Sfruttare il parallelismo quando
disponibile
✦ Operazioni lunghe in “background” senza
bloccare il programma
✦ Alcuni programmi devono comunque
gestire più richieste contemporaneamente
(es. web server)
8
9. Svantaggi
✦ Ogni thread richiede memoria per lo stack
e altre risorse
✦ Il passaggio del processore da un thread
all’altro (context switch) non è
un’operazione istantanea
Quindi: non è conveniente avere un
numero molto elevato di thread
9
10. Sincronizzazione
✦ I thread di un programma hanno tutti
accesso alle risorse del programma e
possono modificarne lo stato
✦ La modifica dello stato di una struttura
dati simultaneamente da parte di più
thread può portare la struttura dati in uno
stato inconsistente
✦ È necessario un coordinamento tra i
thread che devono accedere a una stessa
struttura dati (sincronizzazione)
10
11. Sincronizzazione
✦ Esempio: supponiamo di avere una
variabile condivisa SALDO che contenga il
saldo di un conto corrente
PRELIEVO: VERSAMENTO:
x ← SALDO y ← SALDO
x ← x-50 y ← y+75
SALDO ← x SALDO ← y
✦ Cosa succede se le due operazioni sono
eseguite in due thread attivi
simultaneamente?
11
12. I thread in Java
✦ In Java è possibile creare un nuovo
thread usando la classe Thread
✦ Occorre associare il thread alle operazioni
che deve svolgere
• Creazione di una sottoclasse di Thread
• Creazione di un oggetto che implementi
l’interfaccia Runnable, da passare al costruttore di
Thread
✦ Il thread deve essere avviato con il
metodo start
12
13. Thread in Java
✦ Esempio
public class HelloThread extends Thread {
public void run() {
int i;
for(i=0; i<100; i++)
System.out.println("Hello, world");
}
}
public class TestHello1 {
public static void main(String[] args) {
// Creazione e avvio di un nuovo thread
Thread t=new HelloThread();
t.start();
// Simultaneamente, nel thread del main...
int i;
for(i=0; i<100; i++)
System.out.println("Salve, mondo");
}
}
13
14. Thread in Java
✦ Esempio
public class HelloPrinter implements Runnable {
public void run() {
int i;
for(i=0; i<100; i++)
System.out.println("Hello, world");
}
}
public class TestHello2 {
public static void main(String[] args) {
// Creazione e avvio di un nuovo thread
HelloPrinter hello=new HelloPrinter();
Thread t=new Thread(hello);
t.start();
// Simultaneamente, nel thread del main...
int i;
for(i=0; i<100; i++)
System.out.println("Salve, mondo");
}
}
14
15. Daemon thread
✦ Un programma Java termina quando tutti
i suoi thread sono terminati
✦ È possibile dichiarare un thread come “di
servizio” (daemon thread) in modo che il
programma termini quando sono rimasti
attivi solo i thread di servizio
• A tale scopo si usa il metodo:
void setDaemon(boolean isDaemon)
della classe Thread prima di chiamare start()
15
16. Sincronizzazione in Java
✦ Ogni oggetto Java contiene una struttura
dati detta mutex che consente di
garantire che l’accesso all’oggetto venga
effettuato da un solo thread per volta
(“mutua esclusione”)
✦ Combinando l’uso del mutex con
l’incapsulamento il programmatore può
gestire il problema della sincronizzazione
16
17. Synchronized
✦ Il mutex di un oggetto si utilizza tramite il
costrutto synchronized, la cui sintassi è:
synchronized (obj) {
istruzione ...
}
17
18. Synchronized
✦ Il thread che esegue synchronized
“acquisisce” il mutex dell’oggetto indicato
per tutta la durata del blocco di istruzioni
specificato
✦ Un solo thread alla volta può acquisire un
certo mutex
✦ Se un altro thread prova ad acquisire un
mutex già impegnato da un altro thread,
viene messo in attesa fino a quando
l’altro thread non rilascia il mutex
18
19. Synchronized
✦ Esempio
public class ContoCorrente {
private double saldo;
public ContoCorrente(double saldoIniziale) {
saldo=saldoIniziale;
}
public double getSaldo() {
synchronized (this) {
return saldo;
}
}
public void versa(double x) {
synchronized (this) {
saldo+=x;
}
}
}
19
20. Synchronized
✦ Spesso occorre rendere synchronized
l’intero corpo di un metodo usando il
mutex dell’oggetto corrente (this)
✦ Sintassi semplificata: premettere la
parola chiave synchronized
all’intestazione del metodo
20
21. Synchronized
✦ Esempio
public class ContoCorrente {
private double saldo;
public ContoCorrente(double saldoIniziale) {
saldo=saldoIniziale;
}
public synchronized double getSaldo() {
return saldo;
}
public synchronized void versa(double x) {
saldo+=x;
}
}
21