curso 2012-2013

Xarxes I (12464)


Titulació / Estudis: Enginyeria en Informàtica
Curs: segon
Període: Segon trimestre
Nombre de crèdits ECTS: 4,5 crèdits
Nombre total d'hores de dedicació a l'assignatura: 112 hores
Llengua de docència: Català

1. PRESENTACIÓ DE L'ASSIGNATURA
En aquesta assignatura es pretén que l'estudiant conegui les tecnologíes per programar aplicacions distribuïdes, tant amb el model client-servidor com el model peer-to-peer. L'estudiant aplicarà aquestes tecnologies en pràctiques i al final del curs serà capaç de programar aplicacions distribuïdes senzilles sobre xarxes TCP/IP.

L'assignatura es centrarà en les tècniques que s'apliquen als nivell d'aplicació de les torres. Estudiem els fonaments teòrics de la comunicaicó client-servidor i les communicacions peer-to-peer. Analitzem i aprenem a utilitzar tecnologies claus com Remote Procedure Call (PRC), Java Remote Method Invocation (RMI), Common Object Request Broker Architecture (CORBA), Web services i Simple Object Access Protocol (SOAP), Jxtapose (JXTA) i BitTorrent. També considerem sistemes basats en la comunicació a través de missatges, com X.400, e-mail, Java Messaging System (JMS) i i l'Extensible Message and Presence Protocol (XMPP).

L'assignatura és troncal per als estudiants, ja que ensenya com crear aplicacions distribuïdes sobre xarxes TCP/IP. D'aquesta manera l'assignatura Xarxes I complementa tant l'assignatura Introducció de Xarxes d'Ordinadors, on s'estudien les bases de la tecnologia TCP/IP, com l'assignatura Arquitectura de Xarxes que cobreix els aspectes físics i aspectes d'enllaç de les xarxes. Les tres assignatures combinades donaran una visió completa de la torre de protocols OSI o TCP/IP.


2. PREREQUISITS PER AL SEGUIMENT DE L'ITINERARI FORMATIU
Per poder fer l'assignatura, cal tenir coneixements bàsics de comunicacions digitals i en particular dels protocols IP i TCP. Amés l'assignatura construeix sobre conceptes bàsics de computadors tal com l'arquitectura general d'ordinadors, el sistema operatiu i els protocols. L'estudiant ha de ser capaç de programar en Java.

Aquesta assignatura fa servir de conceptes adquirits anteriorment en les assignatures:
- Computadors I, II i III
- Sistemes Operatius
- Introducció de Xarxes d'Ordinadors

Per tant recomanem que l'estudiant hagi aprovat aquestes assignatures abans de fer l'assignatura Xarxes I.


3. COMPETÈNCIES A ASSOLIR EN L'ASSIGNATURA

Competències generals

Competències específiques

Instrumentals
1. Anàlisi i síntesi. Capacitat d'analitzar casos reals, i, sintetitzant els coneixements adquirits, aplicar-los per resoldre problemes.

2. Coneixement general bàsic sobre xarxes.

3. Coneixements bàsics de la professió.

4. Resolució de problemes.

Interpersonals
5. Cooperació i treball en grup

Sistèmiques
6. Capacitat per aplicar el coneixement a la pràctica.

7. Comprensió i anàlisi de les situacions.

8. Resoldre els problemes i les pràctiques de forma individualitzada.

1. Comprensió del model de comunicació client-servidor i el model OSI

2. Disseny d'aplicacions distribuides en C amb RPC

3. Programació d'aplicacions distribuides orientades a objectes amb RMI i CORBA

4. Analisi del concepte de Web Services

5. Programació d'aplicacions distribuides amb SOAP i WSDL

6. Comparació de sistemes de comunicació síncrons amb sistemes de comunicació bassats en missatges

7. Coneixement de sistemes de comunicació amb missatges: X.400, e-mail i XMPP

8. Programmació d'aplicacions distribuïdes amb JMS

9. Comparació del model de comunicació client-servidor amb el model peer-to-peer

10. Disseny i programació d'aplicacions peer-to-peer amb JXTA

4. OBJECTIUS D'APRENENTATGE
En aquesta assignatura es vol aconseguir que l'alumne sàpiga dissenyar i programar aplicacions distribuïdes sobre xarxes TCP/IP.
Més concretament, es pretén que l'alumne sàpiga:
- dissenyar aplicacions client-servidor i aplicacions peer-to-peer
- programar aplicacions distribuïdes amb Java Remote Method Invocation (RMI), Common Object Request Broker Architecture (CORBA) i Simple Object Access Protocol (SOAP), utilitzant Java com a lenguagte de programació
- aplicar sistemes de comunicació síncrons o bassats en missatges en funció de les característiques de l'aplicación
- programar una aplicació peer-to-peer senzilla amb Jxtapose (JXTA), utilitzant Java com a lenguagte de programació

5. AVALUACIÓ
L'avaluació de l'assignatura es fa a partir dels tres components següents:
- Examen final que es fa al final del trimestre que cobreix tota la matèria de l'assignatura (teoria, pràctiques i seminaris) i consta d'un test i un conjunt de problemes.
- Lliuraments de pràctiques que es demanaran durant el trimestre.
- Lliurament d'un treball que es farà fora de classe.
Per a aprovar l'assignatura cal haver obtingut almenys una nota de 4 a l'examen final, i almenys una nota 5 mitjana pels lliuraments de pràctiques.

Si es compleix aquesta condició, la nota final serà la suma ponderada de les següents notes: 50% de l'examen de teoria, 40% de les pràctiques i 10% dels treballs. Es a dir:
Nota_final = Nota_ examen_teoria * 0,5 + Nota_pràctiques * 0,4 + Nota_treball * 0,1

6. CONTINGUTS
6.1. Blocs de contingut
• Bloc de contingut 1. Introducció: història de la computació distribuïda, model client-servidor, protocols petició-resposta.
• Bloc de contingut 2. Aplicacions distribuïdes en Unix: Remote Procedure Call
• Bloc de contingut 3. Aplicacions distribuïdes amb Java: Remote Mehod Invocation
• Bloc de contingut 4. Aplicacions distribuïdes multi-llenguatge: Common Object Request Broker Architecture
• Bloc de contingut 5. Aplicacions distribuïdes en Internet: Web Services
• Bloc de contingut 6. Sistemes de missatgeria
• Bloc de contingut 7. Aplicacions distribuïdes peer-to-peer

6.2. Concreció dels continguts
Bloc de contingut 1. Introducció
• Breu història de la computació distribuïda
• El model client-servidor de l'ISO
• Protocols petició-resposta

Bloc de contingut 2. Remote Procedure Call
• Comunicació entre aplicacions: sockets
• Concepte de stub, skeleton i dispatcher
• Funcionament de Remote Procedure Call
• Port mapper i altres serveis de comunicació RPC
• Generació automàtica de stubs i skeletons: XDR i RPCGEN
• RPC amb missatges de text: XML-RPC

Bloc de contingut 3. Remote Mehod Invocation
• Interfícies i mètodes remots
• Resolució de referències remotes: binder
• Creació remota d'objectes: factories
• Recol·lecció de memòria
• Un exemple de programmació amb RMI: pissarra compartida

Bloc de contingut 4. Common Object Request Broker Architecture
• Creació d'aplicaciones distribuïdes multi-llenguatge
• Conceptes d'object adapter, implementation repository i interface repository
• Un exemple de programmació amb CORBA: revisitant la pissarra compartida
• Serveis adicionals CORBA

Bloc de contingut 5. Web Services
• Creació d'aplicaciones distribuïdes a través d'internet
• Les fases d'ús de web services: publicació, descubriment i invocació
• Els conceptes bàsics web services: SOAP, WSDL i UDDI
• Format de missatge SOAP
• Format de document WSDL
• Comparació entre SOAP i el protocol IIOP de CORBA

Bloc de contingut 6. Sistemes de missatgeria
• Sistema de missatgeria X.400
• Correo electrónico: SMTP, MIME i POP
• Comparació de comunicacions síncrones i comunicacions bassades en missatges
• El sistema de communicació amb missatges de Java: JMS
• El protocol de missatgeria XMPP

Bloc de contingut 7. Aplicacions peer-to-peer
• El concepte peer-to-peer
• Problemes especials d'aplicacions peer-to-peer
• Programació d'aplicacions peer-to-peer amb JXTA
• El protocol BitTorrent


7. METODOLOGIA
Enfocament metodològic de l'assignatura

Tipus

Modalitat

Descripció

Classe magistral

En aula, plenari

•­ Es fan servir PC, projector i pissarra com a suport de les explicacions teòriques.

•­ Les classes de teoria es faran a base de transparències PowerPoint que serviran com apunts de classe.

•­ Es fa la resolució de problemes i controls.

Seminari

En aula, grups reduïts

•­ Els alumnes formen grups reduïts per tal de discutir I solucionar problemes proposats. A cada una d'aquestes sessions s'assignarà a un o més grups la responsabilitat de fer una presentació o resoldre un problema a la pissarra.

Pràctiques

En aula d'ordinadors, grups reduïts

•­ Pràctiques de software, centrades en l'aprenatge de programació d'aplicacions distribuïdes amb les tecnologies tractades en l'assignatura. Aquestes pràctiques es fan de forma individual o en parella i s'ha de lliurar un informe explicant els resultats obtinguts.

Exercicis

Fora d'aula, individual i en grup

•­ Els alumnes lliuren, individualment o en grup (segons les característiques de l'exercici), solucions a problemes prèviament proposats.

•­ Aquests exercicis solen estar relacionats amb els problemes solucionats durant els seminaris.

8. FONTS D'INFORMACIÓ I RECURSOS DIDÀCTICS
8.1. Bibliografia bàsica
- Andrew S. Tanenbaum, Redes de Computadoras, ISBN 970-26-0162-2, Prentice Hall, 2003
8.2. Bibliografia complementària
- William Stallings, Comunicaciones y Redes de Computadoras, ISBN 84-205-4110-9, Prentice Hall, 2004
- I. Gallego, J. Delgado, F. Jordan, R. Martí, "Aplicaciones Distribuidas Abiertas", Edicions UPC, 1996
8.3. Recursos didàctics. Material docent de l'assignatura
- Transparències de classe, disponibles en la web de l'assignatura
8.4. Recursos didàctics. Materials i eines de suport
- Portal Moodle per l'interacció entre els alumnes i els professors, que allotjarà la web de l'assignatura