Curs 2015-16

Desenvolupament d'Aplicacions Distribuides

Titulació: Codi: Tipus:
Grau en Enginyeria Informàtica 21426 Obligatòria 3r curs
Grau en Enginyeria Telemàtica 22608 Optativa
Grau en Enginyeria en Sistemes Audiovisuals 22674 Optativa

 

Crèdits ECTS: 4 Dedicació: 100 hores Trimestre: 1r

 

Departament: Dept. de Tecnologies de la Informació i les Comunicacions
Coordinador: Davinia Hernández-Leo
Professorat:

Davinia Hernández-Leo, David Llanos

Idioma:

Majoritàriament en anglès

Horari:
Campus: Campus de la Comunicació - Poblenou

 

Presentació de l'assignatura

L'assignatura "Desenvolupament d'Aplicacions Distribuïdes" (DAD) és una assignatura obligatòria específica de tercer curs del Grau en Enginyeria Informàtica. 

L'objectiu principal de l'assignatura és conèixer en profunditat els principis i les aproximacions tecnològiques existents per al desenvolupament d'aplicacions composats per elements que es comuniquen per xarxa. Això inclou tan els conceptes dels sistemes distribuïts, els models d'arquitectures i middleware per a implementar aplicacions distribuïdes, les dificultats implícites d'aquests tipus de sistemes, les tècniques utilitzades per a resoldre aquests problemes intrínsecs, com les tecnologies existents conformes a aquest models i que faciliten el diseny i desenvolupament d'aquest tipus de aplicacions. Es treballen especialment les aplicacions client/servidor (Sockets) i de client/middleware/servidor orientades a objectes, components i a serveis (diverses tecnologies, amb més èmfasi a la Web com a plataforma, Servlets i Web Services).

D'altres aspectes més avançats i/o específics, com ara per exemple la computació distribuïda, el disseny de models de dades distribuïts, aspectes avançats de la programació d'aplicacions Web, o els protocols de xarxa distribuïts; queden fora dels continguts d'aquest curs. D'aquesta forma l'alumne tindrà l'oportunitat d'aprofundir en aquestes matèries a través d'assignatures optatives que complementen aquesta assignatura.

 

Prerequisits

Complementa les assignatures de "Xarxes i Serveis" i "Protocols i Aplicacions Distribuïdes". Si en aquestes assignatures es tracten els protocols de l'arquitectura TCP/IP en els qual es sustenten les xarxes de communicacions, en DAD es puja el nivell d'abstracció fins al nivell més alt, per tal de desenvolupar aplicacions en un entorn específicament distribuït. Paral·lelament, com que l'assignatura requereix elements de l'"Enginyeria del Software", els "Fonaments de Programació" i la "Programació Orientada a Objectes", es recomana també haver superat aquests tres cursos. Addicionalment, l'assignatura pressuposa coneixements respecte a les àrees de xarxes i computadors, amb la qual cosa resulta important haver cursat prèviament les assignatures de "Sistemes Operatius" i "Arquitectura de Computadors", així com seguir al llarg del curs l'assignatura d' "Arquitectura de Xarxes" que s'imparteix també durant el primer trimestre de tercer curs.

 

Competències

Competències transversalsCompetències específiques

Instrumentals

1. Capacitat d'anàlisi i síntesi.

2. Capacitat de aplicar coneixements a l'anàlisi de situacions i la resolució de
problemes.

3. Capacitat d'organitzar i planificar.

4. Capacitat de comunicació amb propietat de forma oral i escrita, tant davant audiències expertes com inexpertes.

Interpersonals

1. Capacitat de treball en equip.

Sistèmiques

1. Capacitat d'aplicar amb flexibilitat i creativitat els coneixements adquirits i d'adaptar-los a contextos i situacions noves (per exemple, d'avaluar una
nova tecnologia).

2. Capacitat per progressar en els processos de formació i aprenentatge de manera autònoma i contínua.

3. Capacitat de motivació per la qualitat i per l'assoliment.

 

1. Avaluar les implicacions d'utilitzar un
model distribuït per a la implementació
d'un sistema informàtic complex.

2. Dominar el funcionament dels protocols
utilitzats en la comunicació d'aplicacions.

3. Entendre els diferents models de
comunicació entre aplicacions i saber com
aplicar-los en el disseny d'un sistema.

4. Conèixer tecnologies utilitzades
habitualment per a la implementació de
sistemes distribuïts.

5. Saber dissenyar un sistema distribuït.

6. Tenir l'habilitat d'implementar un
sistema distribuït senzill utilitzant tecnologies
específiques.

7. Habilitat per a fer programes que
puguin inter-operar amb serveis distribuïts
existents.

 

 

Avaluació

Per a cursar amb èxit l’assignatura és necessari acomplir el que es detalla en la següent taula.

 Sistema de valoracioMínim per a poder aprovar l’assignaturaPes en la nota final de l’assignatura
Activitats en seminaris i classes de teoria

Pràctiques individuals curtes i qüestions a resoldre abans, durant i després de les sessions de seminari. S’inclou la participació d’activitats (com ara anàlisi de casos reals d'aplicacions distribuïdes) plantejades en classe de teoria.

S'han de completar tots els seminaris. (No recuperable)

 20%

Pràctiques

Una pràctica (amb dos demos/lliurements) en parelles.

Mínim de 5 sobre 10. (No recuperable)

 40%

Prova agregada escrita

Es fa al final del trimestre. Cobreix tota la matèria de l’assignatura. 

Mínim de 5 sobre 10. (Recuparable al Juliol )

 40%

L’assignatura es supera tenint un mínim de 5 punts (sobre 10) com a nota final.

 

Continguts

- Bloc de contingut 1. Conceptes bàsics dels Sistemes Distribuïts: definicions, arquitectures distribuïdes, requeriments no funcionals, transparència, concepte de middleware. 

- Bloc de contingut 2. Els origens del Middleware. Aplicacions distribuïdes en Unix. Inter-Process Comunication, programació amb Sockets. Remote Procedure Call (RPC).

- Bloc de contingut 3. Middleware Orientat a Objectes (Objectes distribuïts). Aplicacions distribuïdes amb Java: Remote Method Invocation (RMI). Aplicacions distribuïdes multi-llenguatge: Common Object Request Broker Architecture (CORBA)

- Bloc de contingut 4. Middleware Orientat a Components. Models de components orientat a lògica d'aplicació, dades o presentació. Servlets.

- Bloc de contingut 5. Middleware Orientat a Serveis. Model SOA, Web Services, SOAP, REST, JSON.

- Bloc de contingut 6. Aspectes avançats. Cloud Computing: Definicions, característiques i tipus. WebSockets.

 

 

Metodologia

TipusModalitatDescripció

Classe magistral

En aula, plenari

Es fan servir PC - projector i pissarra com a suport de les explicacions teòriques. En aquestes explicacions s'intercalen activitats (com ara, anàlisi de casos reals de disseny d'aplicacions distribuïdes, debats sobre articles sobre models i tecnologies específiques...) on els estudiants podran participar activament. 

Seminari

En aula d’ordinadors, grups reduïts Els alumnes treballen fundamentalment de manera individual per tal de realitzar petites pràctiques on s'aplican les tecnologies tractades en l’assignatura. També es convinaran diferents dinàmiques de grup per intercanviar i debatre les solucions individuals.

Pràctiques

En aula d’ordinadors, grups reduïts Projecte (pràctica llarga) centrado en el desenvolupament d’una aplicació distribuïda. Aquesta pràctica es fa en parella i s’ha de fer dos demos/lliurements. 
Preparació de seminaris, treball en pràctiques i estudio de conceptes teòrics Fora d’aula, individual i en grup Preparació dels seminaris i continuació del treball fet a seminaris i de les activitats a classe de teoria. Avanç de pràctiques i escriptura d’informes. Estudio dels conceptes teòrics per a la preparació dels seminaris, pràctiques i proves escrites.

DAD té 4 crèdits ECTS que es corresponen a 100 hores de treball de l’alumne, de les quals 36 són presencials. Aquestes 36 hores estan dividides en sessions magistrals (18 hores), sessions de grup mitjà (10 hores) i sessions de seminaris amb grups petits d’alumnes (8 hores). La distribució d’hores per blocs de contingut es detalla a la taula següent.

 Hores a l'aulaHores fora de l'aula
Blocs de contingutGrup granGrup mitjà

Grup petit

 

B1

4

 

 

8

B2

2

 

2

10

B3

2

 

 

4

B4

2

 

 2 

10

B5

4

 10

2

20

B6

4

 

2

12

Total:

 18

10

8

 64

Total: 100

 

Recursos

Com a bibliografia bàsica per a consulta es recomana: Couloris, G., Dollimore, J., Kindberg, T. (2015). Distributed Systems: Concepts and Design (4th Edition). Addison Wesley. 

La bibliografia complementària i recursos didàctics per a cada bloc s’aniran indicant al llarg de l’assignatura via el AG.