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 2. Coneixement general bàsic sobre xarxes. 3. Coneixements bàsics de la professió. 4. Resolució de problemes. Interpersonals Sistèmiques 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