Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Sep 5, 2019. It is now read-only.

Commit dd47eb3

Browse files
Merge branch 'master' into video-fra
2 parents f523bec + 421f916 commit dd47eb3

File tree

3 files changed

+51
-66
lines changed

3 files changed

+51
-66
lines changed

‎00 - Introduzione.md

Lines changed: 25 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,17 @@ In particolare nel primo corso ci si era posti come obiettivi:
2020
1. `network programming` ossia programmare i socket.
2121
2. `web application` ossia siti web.
2222

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:
2424

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.
2626

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**.
3128

3229
Tutto questo tenendo conto degli aspetti della *robustezza*, *sicurezza*, *portabilità* ed *interoperabilità* delle applicazioni che impareremo a sviluppare.
3330

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.
3432

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.
3934

4035
### Cosa ci sarà di nuovo rispetto al corso di DP1?
4136

@@ -89,21 +84,19 @@ In questo corso studieremo le Web applications? No, quelle le abbiamo già fatte
8984
9085
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.
9186

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.
9288

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. ![01](immagini/lezione-00/01.png)
89+
![01](immagini/lezione-00/01.png)
9590

9691

9792

9893

9994

100-
Oppure fare in modo che si parlino a vicenda senza l'intervento di un umano o di un altro computer.
101-
102-
![02](immagini/lezione-00/02.png)
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.
10596

97+
![02](immagini/lezione-00/02.png)
10698

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.
107100

108101
#### Che cos'è il cloud computing?
109102

@@ -115,19 +108,19 @@ Un altra tecnologia per IoT è IPV6. Quindi ai giorni nostri molte applicazioni
115108
116109
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.
117110

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_.
121112

122113
Nella nuvola si hanno dei server che devono parlare tra di loro per svolgere dei servizi.
123114

124-
![03](immagini/lezione-00/03.png)Più specificatamente le tecniche che studieremmo in questo corso sono alla base per tutti questi ambienti.
115+
![03](immagini/lezione-00/03.png)
125116

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.
127118

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ù. ![04](immagini/lezione-00/04.png)
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).
129120

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ù.
130122

123+
![04](immagini/lezione-00/04.png)
131124

132125

133126

@@ -174,24 +167,22 @@ Lo svolgimento dei laboratori si tiene sempre di lunedì ma è diviso in due squ
174167

175168
I laboratori inizieranno già il **10 ottobre 2016**.
176169

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.
178171

179172

180173

181174
## Materiale di supporto
182175

183176
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).
184177

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:
186179
https://pad.polito.it:8080
187180

188181
Fuori dal campus:
189182
https://pad.polito.it
190183

191184

192185

193-
194-
195186
## Regole d'esame e assignments
196187

197188
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
212203

213204
Si consegnano gli assegnaments come quando di faceva DP1 con il sito.
214205

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.
216207

217208

218209

219210
##### Ammissione al test finale
220211

221212
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.
222213

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.
226215

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.
227217

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.
228219

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.
232221

233222

234223

@@ -242,9 +231,7 @@ Fare molta attenzione ai propri elaborati, perchè il docente, con il supporto d
242231

243232
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!
244233

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.
248235

249236

250237

@@ -272,7 +259,7 @@ Per avere la lode è necessario fare l'orale.
272259
- [email](riccardo.sisto@polito.it)
273260
- telefono ufficio: 011 090 7073
274261
- riceve su appuntamento
275-
- Ing. Serena Spinoso
262+
- ing. Serena Spinoso
276263
- [email](serena.spinoso@polito.it)
277264
- telefono ufficio: 011 090 7098
278265
- riceve su appuntamento

‎01 - A brief recall of UML NOTATION.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
4. Sequence Diagrams
1111

1212

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.
1414

1515
## Richiami su UML
1616

@@ -46,7 +46,9 @@ Si possono rappresenatare le classi in vario modo:
4646
4. Ci possono anche essere metodi astratti.
4747
5. Se un metodo ha un eccezione si può usare una "throws relazione" in cui si punta alla classe a cui è collegata l'eccezione.
4848

49-
Si può avere una classe senza altri dettagli. ![08](immagini/lezione-01/08.png)
49+
Si può avere una classe senza altri dettagli.
50+
51+
![08](immagini/lezione-01/08.png)
5052

5153

5254

@@ -129,12 +131,12 @@ Le interfacce si identificano nel seguente modo: `<<interface name>>`.
129131

130132
##### Esempio di interfaccia:
131133

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).
133135
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.
135137
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`.
136138
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.
138140

139141

140142

@@ -152,7 +154,7 @@ Praticamente *tutti gli elementi UML possono essere raggruppati in package*. Cos
152154

153155
##### Esempio di package:
154156

155-
Dentro al package `Widgets`si ha `Window class`e cosi via.
157+
Dentro al package `Widgets` c'è la `Window class`e cosi via.
156158

157159
![11](immagini/lezione-01/11.png)
158160

@@ -200,15 +202,15 @@ Il diagramma descrive nella parte superiore i diversi modi in cui possono essere
200202

201203
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.
202204

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.
204206

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.
206208

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.
208210

209-
2) `DirectoryEntry`è il tipo della classe che appartiene a `d2`.
211+
2) `DirectoryEntry`è il tipo della classe che appartiene a `d2`.
210212

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.
212214

213215
4) E' un oggetto remoto.
214216

@@ -245,23 +247,21 @@ Un esempio di sequence diagram:
245247

246248

247249

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.
253251

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.
255253

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`.
257255

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.
259257

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.
260259

260+
Nel punto `3` si vede come un oggetto venga distrutto.
261261

262262

263263

264-
## State diagram (Non è stato fatto)
264+
## State diagram
265265

266266
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).
267267
Il diagramma mostra gli stati che sono assunti dall'entità o dalla classe in risposta ad eventi esterni.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /