You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Sep 5, 2019. It is now read-only.
Copy file name to clipboardExpand all lines: 00 - Introduzione.md
+25-38Lines changed: 25 additions & 38 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,22 +20,17 @@ In particolare nel primo corso ci si era posti come obiettivi:
20
20
1.`network programming` ossia programmare i socket.
21
21
2.`web application` ossia siti web.
22
22
23
-
In questo corso invece andremmo verso la parte di web-application ma ci si foccalizzerà su B2B interazione.
23
+
Questo corso sarà orientato vero la parte di _Web application_ focalizzandoci sulle interazioni B2B. I principali concetti chiave di questo corso sono:
24
24
25
-
In particolare ci si focalizzerà su tre concetti chiave:
25
+
1. conoscere le principali tecniche di sviluppo di software distribuito, cioè **applicazioni B2B** (Business to Business) ossia *machine to machine iteration* in contraposizione (rispetto a DP1) con con l'iterazione tra utente e servizio web. In DP2 gestiremo le interazioni tra due o più servizi web.
26
26
27
-
1. conoscere le principali tecniche di sviluppo di software distribuito, cioè **applicazioni B2B** (Business to Business) ossia `machine to machine iteration` in contraposizione (del primo corso) con con l'iterazione tra utente e machine. In altre parole nel primo corso si aveva una iterazione tra l'utente e le macchine mentre qui si vuole avere come unici attori due o più macchine.
28
-
29
-
E per fare ciò si andrà ad utilizzare XML programming e web service programing.
30
-
2. imparare a programmare utilizzando **XML** e a sviluppare **servizi Web**.
27
+
2. per fare quanto detto nel precedente punto, impareremo l'**XML** e a sviluppare **servizi Web**.
31
28
32
29
Tutto questo tenendo conto degli aspetti della *robustezza*, *sicurezza*, *portabilità* ed *interoperabilità* delle applicazioni che impareremo a sviluppare.
33
30
31
+
**XML** è uno standard che viene utilizzato per rapresentare i dati sul web (sopratuttto per lo scambio di dati tra piattaforme diverse). Si potrebbe dire che è simile a XDR. XML serve per rappresentare qualsiasi dato e ed è "charater oriented", cioè utilizzeremo solo stringhe.
34
32
35
-
36
-
XML è un metodo per rapresentare i dati sul web. Si potrebbe dire che è simile a XDR. XML serve per rappresentare qualsiasi dati e ed è "cariental oriented".
37
-
38
-
Web-service sono i programmi che interagiscono tra di loro nel web e andremmo ad usare il java per fare ciò.
33
+
I **servizi Web** sono quei programmi (o daemons) che interagiscono tra di loro nel web, per svilupparli in questo corso utilizzeremo il linguaggio Java.
39
34
40
35
### Cosa ci sarà di nuovo rispetto al corso di DP1?
41
36
@@ -89,21 +84,19 @@ In questo corso studieremo le Web applications? No, quelle le abbiamo già fatte
89
84
90
85
In questo corso studieremo l'**IoT**? No. Studieremo in modo ragionevolmente approfondito come avvengono alcuen itnerazioni tra i dispositivi coinvolti nell'**IoT** e dal un punto di vista distribuito e non centralizzato.
91
86
87
+
Ci sono due modo di pensare le connessioni tra i vari elementi dell'IoT. Il primo è quello di connettere i dispositivi tra di loro utilizzando un solo "Web service" centrale o meglio dire un server che fornisca a loro i vari servizi.
92
88
93
-
94
-
Un primo modo per connettere i dispositivi tra di loro è passare per un "service" o meglio dire un server che fornisca a loro un servizio. 
89
+

95
90
96
91
97
92
98
93
99
94
100
-
Oppure fare in modo che si parlino a vicenda senza l'intervento di un umano o di un altro computer.
101
-
102
-

103
-
104
-
Un altra tecnologia per IoT è IPV6. Quindi ai giorni nostri molte applicazioni hanno la compatibilità con ipv6 o meglio dire si cerca la compatibilità con IpV6 come fa apple.
95
+
Il secondo modo è quello in cui tali elementi comunichino tra di loro in maniera distribuita, con o senza la presenza di un server principale. Questo tende a dare un carattere più indipendente a ciascun dispositivo.
105
96
97
+

106
98
99
+
Un altra tecnologia per IoT è **IPv6**. Quindi ai giorni nostri molte applicazioni hanno la compatibilità con questo protocollo anche se non è ancora pienamente sfruttato, le aziende all'avanguardia spingono molto per _"abbandonare"_ IPv4 in favore di IPv6.
107
100
108
101
#### Che cos'è il cloud computing?
109
102
@@ -115,19 +108,19 @@ Un altra tecnologia per IoT è IPV6. Quindi ai giorni nostri molte applicazioni
115
108
116
109
In questo corso studieremo il **cloud computing**? No. Studieremo i meccanismi interni ai sistemi basati sul cloud, ovvero apriremo la nuvola e guarderemo com'è fatta dentro.
117
110
118
-
119
-
120
-
Come esempio di cloud computing non si deve solo pensare ad una nuvola che da potenza di calcolo ma anche per mettere i dati con Icloud. Quindi nella nuvola si può anche virtualizare le cose e poi si accede tramite intenert.
111
+
Quando si parla di **cloud computing** non si deve pensare ai sistemi di calcolo distribuito, per esempio servizi che forniscono potenza di calcolo, infatti, la maggior parte dei servizi di _cloud computing_ sono basati sulla **condivisione** dei dati, buona parte sull'offerta di servizi (si pensi a _GitHub_, _Trello_, _Zapier_ e via dicendo). Quindi nella _"nuvola"_ si può trovare (per così dire) _di tutto_, il fattore caratterizzante del cloud computing è che è accessibile attraverso _Internet_.
121
112
122
113
Nella nuvola si hanno dei server che devono parlare tra di loro per svolgere dei servizi.
123
114
124
-
Più specificatamente le tecniche che studieremmo in questo corso sono alla base per tutti questi ambienti.
115
+

125
116
126
-
Nel primo corso avemamo studiato la parte che c'è tra l'omino e la macchina (web-server) tra lasciando ciò che accadeva dietro le quinte.
117
+
Più specificatamente, le tecniche che studieremmo in questo corso sono alla base per tutti questi ambienti.
127
118
128
-
Qui andremmo a vedere l'iterazione tra i vari server che stanno dietro alle quinte come si può vedere con le freccie rosse nel disegno sotto. In questo modo ogni server da un contributo diverso ed in più. 
119
+
Nel primo corso avevamo studiato la parte che c'è tra l'utente e la macchina (web-server) tra lasciando ciò che accadeva **dietro le quinte** (ovvero B2B).
129
120
121
+
Qui andremmo a vedere l'iterazione tra i vari server che stanno dietro alle quinte come si può vedere con le frecce rosse nel disegno sotto. In questo modo, ogni server da un contributo diverso ed in più.
130
122
123
+

131
124
132
125
133
126
@@ -174,24 +167,22 @@ Lo svolgimento dei laboratori si tiene sempre di lunedì ma è diviso in due squ
174
167
175
168
I laboratori inizieranno già il **10 ottobre 2016**.
176
169
177
-
Una parte dei laboratori ci sarà la Serena mentre l'altra parte ci sarà Sisto.
170
+
Una parte dei laboratori sarà tenuta dall'ing. Spinoso, l'altra parte dal prof. Sisto.
178
171
179
172
180
173
181
174
## Materiale di supporto
182
175
183
176
Tutto il materiale utile può essere trovato nella [pagina del corso](https://pad.polito.it:8080/enginframe/dp2/dp2.xml?_uri=//dp2/material). Il corso è anche videoregistrato (sulla nostra pagina personale).
184
177
185
-
Dentro al campus si deve usare un link:
178
+
Per accedere alla pagina del corso si deve usare il seguente link se si è connessi direttamente alla rete del campus:
186
179
https://pad.polito.it:8080
187
180
188
181
Fuori dal campus:
189
182
https://pad.polito.it
190
183
191
184
192
185
193
-
194
-
195
186
## Regole d'esame e assignments
196
187
197
188
L'esame consiste in tre punti:
@@ -212,23 +203,21 @@ La data di consegna di solito sono due giorni lavorativi prima dell'esame in cui
212
203
213
204
Si consegnano gli assegnaments come quando di faceva DP1 con il sito.
214
205
215
-
Quando si consegnato i laboratori ci sono dei test che vengono fatti in automatico dal sistema e il laboratorio deve passare i mandatory test. Se non gli passa allora si deve ri-caricare il laboratorio con le opportune modifiche. Ci sarà anche la possibilità di provare i nostri laboratori in locale, tuttavia è buona norma mandare i laboratori non all'ultima ora ma ben prima in modo da verificare e corregere eventuali errori se non passa i tests.
206
+
Quando si consegnato i laboratori ci sono dei test che vengono fatti in automatico dal sistema e il laboratorio deve passare i mandatory test. Se quest'ultimi non venissero superati allora si deve ricaricare il laboratorio con le opportune modifiche. Ci sarà anche la possibilità di provare i nostri laboratori in locale, tuttavia è buona norma mandare i laboratori non all'ultima ora ma ben prima in modo da verificare e correggere eventuali errori se non passa i tests.
216
207
217
208
218
209
219
210
##### Ammissione al test finale
220
211
221
212
Si può essere ammessi solo se ogni assignment superi almeno i test di base. Si noti che si possono consegnare gli assignment (anche tutti assieme) solo entro due giorni **lavorativi** prima dell'inizio della prova scritta ai LABINF. Quindi, se l'esame è di lunedì, bisogna consegnare gli assignment entro mercoledì! Poiché sabato e domenica non sono due giorni lavorativi.
222
213
223
-
Possiamo anche essere esonerati se i laboratori sono molto buoni e molto diverrsi l'uno dall'altro.
224
-
225
-
Inoltre per sapere se non dobbiamo andare all'esame finale lo sapremmo solo 1 giorno prima rispetto all'esame stesso. Perché per valutarli deve aspettare che tutti abbiano consegnato e visto che la scadenza è per l'appunto due giorni lavoratori va da se che lo sapremmo solo dopo. Quindi è meglio prepararsi e poi la più non si va perché si ha avuto una buona sorpresa.
214
+
Possiamo anche essere esonerati se i laboratori sono molto buoni e molto diversi l'uno dall'altro.
226
215
216
+
Inoltre per sapere se non dobbiamo andare all'esame finale lo sapremmo solo 1 giorno prima rispetto all'esame stesso. Perché per valutarli deve aspettare che tutti abbiano consegnato e visto che la scadenza è per l'appunto due giorni lavoratori va da se che lo sapremmo solo dopo. Quindi è meglio prepararsi in ogni caso.
227
217
218
+
C'è un altro modo per essere esonerato dall'esame: fare una tesi o una "tesina" (progetto speciale) tutto relativo al corso. I numeri di progetti sono limitati quindi ci sarà una selezione se ci sono tanti studenti che ne richiedono una.
228
219
229
-
Un altro modo per non sostenere l'esame è di fare una tesi o una "tesina" (progetto speciale) tutto relativo al corso. I numeri di progetti sono limitati quindi ci sarà una selezione se ci sono tanti studenti che richiedono una.
230
-
231
-
In alcuni casi si può fare un progetto (tesi o tesina) assieme ma solo perché mettendo a ssieme il tutto si ottiene una gorssa cosa quindi è come se ci fossero molte tesi o tesine.
220
+
In alcuni casi si può fare un progetto (tesi o tesina) assieme ma solo perché mettendo assieme il tutto si ottiene una grossa cosa quindi è come se ci fossero molte tesi o tesine.
232
221
233
222
234
223
@@ -242,9 +231,7 @@ Fare molta attenzione ai propri elaborati, perchè il docente, con il supporto d
242
231
243
232
La prova finale è facoltativa. Dipende da come sono stati fatti gli assignments. Se sono di buona qualità non ci sarà bisogno di fare la prova finale e molto diversi dai nostri compagni. Tale prova consiste nello svolgimento di un nuovo assignment più una domanda aperta (relativa ai nostri laboratori su come abbiamo svolto gli assignmen), il tutto da svolgersi nell'arco di due ore oppure due ore e mezza. Questa prova verrà considerata superata se l'elaborato scritto supererà i test obbligatori. Faremo una simulazione di questa prova verso la fine del corso: è **importante** esserci!
244
233
245
-
246
-
247
-
Per passare la prova scritta si deve passare i test obbligatori se no non si passa la prova. In alcuni casi se non si passa l'esame ma l'errore è cosi piccolo allora il professore potrebbe fare passare l'esame.
234
+
Per passare la prova scritta si devono passare i test obbligatori altrimenti non si supera la prova. In alcuni casi se non si passa l'esame ma l'errore è cosi piccolo allora il professore potrebbe valutare comunque positivamente l'esame.
248
235
249
236
250
237
@@ -272,7 +259,7 @@ Per avere la lode è necessario fare l'orale.
Copy file name to clipboardExpand all lines: 01 - A brief recall of UML NOTATION.md
+20-20Lines changed: 20 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@
10
10
4. Sequence Diagrams
11
11
12
12
13
-
Questa parte è solo un richiamo per avere la stessa "base"/linguaggio/idea del professore sul UML onde evitare pastici di comprensione in futuro.
13
+
Questa parte è solo un richiamo per avere la stessa **base**/**linguaggio**/**idea** del professore sull'UML questo per evitare incomprensioni in futuro.
14
14
15
15
## Richiami su UML
16
16
@@ -46,7 +46,9 @@ Si possono rappresenatare le classi in vario modo:
46
46
4. Ci possono anche essere metodi astratti.
47
47
5. Se un metodo ha un eccezione si può usare una "throws relazione" in cui si punta alla classe a cui è collegata l'eccezione.
48
48
49
-
Si può avere una classe senza altri dettagli. 
49
+
Si può avere una classe senza altri dettagli.
50
+
51
+

50
52
51
53
52
54
@@ -129,12 +131,12 @@ Le interfacce si identificano nel seguente modo: `<<interface name>>`.
129
131
130
132
##### Esempio di interfaccia:
131
133
132
-
1. In una interfiaccia classe la parte di attributi deve essere vuota. Ma si hanno dei metodi e i metodi devono essere astratti.
134
+
1. In una classe interfaccia la parte di attributi deve essere vuota, ma si hanno dei metodi dichiarati cioè sono astratti (non implementati).
133
135
2. Altro modo per rapresentare un interfaccia senza dettagli è usare un cerchietto mettendo solo il nome.
134
-
Quindi le due interfaccie (1 e 2) sono uguali a parte per i metodi che in uno ci sono mentre nell'altro non ci sono.
136
+
Quindi le due interfacce (1 e 2) sono uguali a parte per i metodi che in uno ci sono mentre nell'altro non ci sono.
135
137
3. Questo link è simile all'ereditarietà ma rappresenta una classe che implementa un'interfaccia. Quindi `Bibliography`implementa `BigSearch`. Come per il cerchietto in cui `BigSearch`è attacato alla classe che implementa quella interfaccia. Quindi `Bibliography`implementa `BigSearch`.
136
138
4. In particolare si può vedere come ci siano due cerchietti che sono due interfaccie (`BigSearch`e `Update`) che vengono implementati da `Bibliography`.
137
-
5. Si può anche fare in modo che è possibile specificare che qualche classi usano le interfaccie. O alcune classi chiamano i metodi delle interfaccie. Ad esempio `SearchRobot class`usa l'interfaccia `BigSearch interface` e quindi `SearchRobot class` può chiamare le operazioni di `searchByTitle()`o altre di quella interfaccia.
139
+
5. Si può anche fare in modo che è possibile specificare che qualche classi usano le interfaccie. O alcune classi chiamano i metodi delle interfaccie. Ad esempio `SearchRobot class`usa l'interfaccia `BigSearch interface` e quindi `SearchRobot class` può chiamare le operazioni di `searchByTitle()`o altre di quella interfaccia.
138
140
139
141
140
142
@@ -152,7 +154,7 @@ Praticamente *tutti gli elementi UML possono essere raggruppati in package*. Cos
152
154
153
155
##### Esempio di package:
154
156
155
-
Dentro al package `Widgets`si ha `Window class`e cosi via.
157
+
Dentro al package `Widgets` c'è la `Window class`e cosi via.
156
158
157
159

158
160
@@ -200,15 +202,15 @@ Il diagramma descrive nella parte superiore i diversi modi in cui possono essere
200
202
201
203
Nella parte inferiore è riportato un esempio di istanze di due classi diverse, la classe Progetto e quella Utente, e la relazione che esiste tra l'istanza Wikipedia e l'istanziazione di tre determinati utenti.
202
204
203
-
Si rammenti che i nomi nelle classi nel object diagram è sempre sottolineato in modo da riccordare che non è una rappresentazione delle classi ma degli oggetti.
205
+
Si rammenti che i nomi nelle classi nell'**object diagram** è sempre sottolineato in modo da ricordare che non è una rappresentazione delle classi ma degli oggetti.
204
206
205
-
Ad esempio da `d1` si può andare a `d2`ma non viceversa.
207
+
Ad esempio da `d1` si può andare a `d2`ma non viceversa.
206
208
207
-
1)Rappresenta un oggetto e non una classe. `d1`è il nome dell'ogetto.
209
+
1)Rappresenta un oggetto e non una classe. `d1`è il nome dell'ogetto.
208
210
209
-
2)`DirectoryEntry`è il tipo della classe che appartiene a `d2`.
211
+
2)`DirectoryEntry`è il tipo della classe che appartiene a `d2`.
210
212
211
-
3)`FileEntry`è la classe dell'ogetto ma non si specifica il nome. Ergo si ha l'oggetto `FileEntry`senza il nome.
213
+
3)`FileEntry`è la classe dell'oggetto ma non si specifica il nome. Ergo si ha l'oggetto `FileEntry`senza il nome.
212
214
213
215
4) E' un oggetto remoto.
214
216
@@ -245,23 +247,21 @@ Un esempio di sequence diagram:
245
247
246
248
247
249
248
-
In questo diagramma l'omino è semplicemente qualche d'uno che svolge un attività e non deve essere per forza un essere umano. I nomi dentro i rettangoli che sono sottlienati sono degli oggetti.
249
-
250
-
Le liene verticali rappresentano la vita dell'oggetto. In particolare si può vedere come `x:Remote`vive più a lungo di tutti gli altri.
251
-
252
-
Al punto 1 si vede che quel rettangolo rappresenta l'attività svolta dall'oggetto `Local`.
250
+
L'omino presente in questo diagramma è semplicemente qualcuno o qualcosa che svolge un attività e non deve essere per necessariamente un essere umano. I nomi dentro i rettangoli che sono sottlienati sono degli oggetti.
253
251
254
-
Inoltre si vede come `getRemoteRef()`venga chiamato come metodo e poi viene ritornato una`x`come valore di ritorno.
252
+
Le linee verticali rappresentano la vita dell'oggetto. In particolare si può vedere come`x:Remote` vive più a lungo di tutti gli altri.
255
253
256
-
Nel punto 2 si vede come la chiamata al metodo è su se stesso. Quindi si chiama un metodo dell'ogetto stesso per ritornare all'oggetto stesso un valore di ritorno.
254
+
Al punto `1` si vede che quel rettangolo rappresenta l'attività svolta dall'oggetto `Local`.
257
255
258
-
Nel punto 3 si vede come un oggetto venga distrutto.
256
+
Inoltre si vede come `getRemoteRef()`venga chiamato come metodo e poi viene ritornato una `x`come valore di ritorno.
259
257
258
+
Nel punto `2` si vede come la chiamata al metodo è su se stesso. Quindi si chiama un metodo dell'ogetto stesso per ritornare all'oggetto stesso un valore di ritorno.
260
259
260
+
Nel punto `3` si vede come un oggetto venga distrutto.
261
261
262
262
263
263
264
-
## State diagram (Non è stato fatto)
264
+
## State diagram
265
265
266
266
Lo State Chart Diagram o Diagramma degli stati è un diagramma previsto dall'UML per descrivere il comportamento di entità o di classi in termini di stato (macchina a stati).
267
267
Il diagramma mostra gli stati che sono assunti dall'entità o dalla classe in risposta ad eventi esterni.
0 commit comments