Sie sind auf Seite 1von 5

PREFACIO

En el modelo de curriculum de computacin del ao 2001 (Computing Curricula 2001 -


http://www.computer.org/education/cc2001/report/index.html) desarrollado por Joint
IEEE Computer Society/ACM Task Force, la computacin en red se incluye como una
rea clave de las ciencias de la computacin:

los Los ltimos avances en las redes de computacin y telecomunicaciones,


particularmente en aquellas basadas en TCP/IP, han incrementado la importancia de
las tecnologas de red en las disciplinas de computacin. La computacin en red cubre
una serie de subespecialidades, incluyendo protocolos y conceptos de redes de
comunicacin de computadores, sistemas multimedia, estndares y tecnologas web,
seguridad en redes, computacin sin cables y mvil y sistemas distribuidos.

El dominio de esta rea de trabajo necesita de teora y de prctica. Las tcnicas de


aprendizaje que supongan la realizacin de experimentos y anlisis propios, son muy
recomendadosrecomendadas, ya que refuerzan la comprensin de los conceptos de los
estudiantes y su aplicacin a los problemas de la vida real. Las prcticas de
laboratorio deberan incluir la recoleccin y sntesis de datos, modelado emprico,
anlisis de protocolos a nivel de cdigo fuente, monitorizacin de paquetes de red,
construccin de software y evaluacin de modelos de diseo alternativos. Todos estos
son conceptos importantes que pueden ser mejor comprendidos en las prcticas de
laboratorio.

El modelo de curriculum de ACM enumera una serie de temas dentro de esta rea,
especificando un mnimo de 15 horas de temas troncales y temas de libre eleccin
adicionales. La mayor parte de estos temas se cubren en una serie de cursos de
computacin distribuida que inici e impart en California Polytechnic State University
(Cal Poly), San Luis Obispo, desde 1996. Para estos cursos utilic material de varias
publicaciones, as como material propio, incluyendo transparencias, cdigos de ejemplo
y laboratorios, problemas y bsquedas? [investigacin], que proporcionaba como un
curso completo a mis estudiantes. [NO HAS TRADUCIDO ASSIGNMENTS?]

Este libro de texto es una sntesis de los materiales del curso que he acumulado a lo
largo de seis aos y ha sido diseado para impartir temas tcnicos de libre eleccin
[optativo?] a estudiantes universitarios.

Motivaciones del libro

Tradicionalmente, los cursos de computacin distribuida se ofertan a estudiantes de


postgrado. Sin embargo, con el crecimiento de Internet y de las aplicaciones para
intranets, cada vez ms estudiantes universitarios emplean la computacin basada en
red, ya sea en el trabajo o en casa. La computacin distribuida es diferente de (1)
comunicaciones y redes y (2) sistemas operativos distribuidos. Opera a un mayor nivel
de abstraccin que el nivel de red y que los sistemas operativos y se ocupa de los
paradigmas de programacin, de APIs y conjuntos de herramientas y de protocolos y de
estndares en el contexto de la computacin basada en red.
Aunque hay numerosos libros disponibles sobre programacin de redes y tecnologas,
existe una carencia de libros escritos en estilo de libro de texto que combinen la teora y
la prctica de la computacin distribuida.

Este libro tiene las siguientes caractersticas diferenciadoras:


Est diseado para introducir a los estudiantes universitarios en los fundamentos
de la computacin distribuida, temas normalmente destinados a estudiantes de
postgrado.
Se centra en las capas ms altas de la arquitectura de la computacin basada en
red, y ms especficamente en los paradigmas y abstracciones de dicha
computacin.
Incorpora temas conceptuales y prcticos, utilizando programas de ejemplo y
ejercicios para ilustrar y reforzar los conceptos presentados.
Est diseado como un libro de texto, con un estilo narrativo apropiado para el
mbito acadmico, con diagramas ilustrativos de los temas, ejercicios al final de
los captulos y lista de referencias para que los estudiantes puedan realizar sus
investigaciones.
Est diseado para el aprendizaje con la experimentacin: se presentan ejemplos
de programacin sobre los temas presentados y se incorporan actividades de
laboratorio y ejercicios al final de cada captulo.
El autor proporcionar materiales de enseanza complementarios, incluyendo
transparencias de presentacin, un sitio web y un manual para instructores.
Adems del libro impreso y de los artculos, este libro cita referencias fiables
accesibles a travs de la Web. Por ejemplo, las referencias incluyen enlaces a
sitios de archivo donde se tiene acceso a los Internet Requests for Comments
(RFC) de Internet. El autor opina que los estudiantes universitarios estn ms
motivados para buscar referencias que se encuentran disponibles en la Web.
(Nota: aunque he elegido incluir como referencias enlaces web que son fiables y
estables, es posible que alguno de ellos se queda obsoleto con el tiempo.
Apreciara cualquier informacin sobre dichos enlaces inactivos).

Lo que no encontrars en este libro

Este libro no es de redes. En sentido general las redes abarcan la computacin


distribuida ya que forma parte de las redes de computadoras. Sin embargo, en la
universidad, los cursos de redes se suelen centrar en los niveles ms bajos de la
arquitectura de red y tratan temas como la transmisin de la seal, los errores de
conexin, los protocolos del nivel de enlace, los protocolos del nivel de
transporte y el protocolo del nivel de Internet. En comparacin, este libro trata
los niveles ms altos de la arquitectura de red, en concreto los niveles de
aplicacin, presentacin y sesin, haciendo hincapi en el punto de vista de los
paradigmas y abstracciones de computacin y no en la arquitectura del sistema.
Este libro no es sobre sistemas distribuidos. El enfoque no est en la arquitectura
del sistema o en recursos del sistema.
Este libro no es sobre el desarrollo de aplicaciones web. Aunque Internet es la
red ms popular, la programacin para Internet es una forma especfica de
computacin distribuida. Este libro trata la computacin distribuida en general,
incluyendo Internet, intranets y redes de rea local.
Este libro no es sobre APIs o tecnologas. Aunque a lo largo del libro se
introducen una serie de APIs, son presentadas como conjuntos de herramientas
para paradigmas particulares; la introduccin de estas APIs tiene la intencin de
permitir a los estudiantes escribir programas para los ejercicios de laboratorio a
fin de reforzar los conceptos y fundamentos.

Para los profesores

Este libro est diseado para su uso en un curso tcnico de libre eleccin [optativo?] en
el mbito universitario. Los doce captulos del libro pueden ser cubiertos en un
cuatrimestre como mnimo o en un semestre de forma ms pausada. Los materiales no
requieren conocimientos avanzados de redes, de sistemas operativos o de ingeniera del
software. Se puede dar un curso basado en este libro para estudiantes de segundo ciclo.

En un campo tan amplio como la computacin distribuida es imposible cubrir todos los
aspectos en un solo libro. De forma particular, no se intentan cubrir las ltimas
tecnologas. Este libro tiene la intencin de dar a conocer los conceptos fundamentales
de la intercomunicacin entre procesos.

A lo largo de todo el libro est la idea de abstraccin, en el sentido de encapsulacin


cmo se aplica esta idea se aplica en varios paradigmas de computacin distribuida y la
integracin? entre las herramientas que proporcionan diversos niveles de abstraccin.
Creo firmemente que estos conceptos e ideas son importantes para todos los estudiantes
de ciencias e ingenieras de la computacin, independientemente del rea de
especializacin. Con la comprensin de estos conceptos fundamentales, los estudiantes
deberan estar bien preparados para explorar nuevas herramientas y tecnologas por s
mismos, como se espera que hagan a lo largo de su carrera profesional.

Los tres primeros captulos del libro contienen material de introduccin que puede ser
explicado en la primera o dos primeras semanas del curso acadmico. Durante este
tiempo se introducir a los estudiantes en multitud de temas que pueden o no ser nuevos
para ellos. Los siguientes captulos son ms tcnicos y detallados y pueden ser
explicados a razn de un captulo por semana.

Debido a la amplitud del tema de la computacin distribuida, es probable que se quiera


aportar materiales adicionales a este texto que se consideren importantes. Por ejemplo,
se puede aadir una introduccin a los algoritmos distribuidos o se puede profundizar
ms en el rea de seguridad. Para tener tiempo para estos aadidos se puede considerar
prescindir de algunos captulos del libro.

No se asume que los lectores de este libro tienen experiencia previa en computacin
distribuida. En Cal Poly, he utilizado este material para ensear a estudiantes con
diversos perfiles, desde estudiantes sin ninguna experiencia en programacin
multiproceso, hasta estudiantes que han desarrollado complejo software de red. Sin
embargo, los estudiantes con conocimientos avanzados [no encontrarn estos temas de
inters]. CREO QUE DICE QUE S LES RESULTAR INTERESANTE PERO
MENOS QUE A LOS NOVATOS.

Nota para los lectores


Unos comentarios sobre los tipos de letra en la redaccin de este libro:
Los trminos y frases clave estn en negrita; por ejemplo: este libro trata la
computacin distribuida.
Palabras especiales, tales como las utilizadas como identificadores de
programas, nombres de protocolo no estndares o nombres de operaciones son
expresados en letra itlica para su diferenciacin del resto de la frase; por
ejemplo: cul es la salida esperada cuando se ejecuta Thread3? Complelo y
ejectelo.
Las palabras reservadas y los identificadores, tales como los definidos por el
lenguaje Java o por los protocolos conocidos, aparecen en itlica; por ejemplo:
para dar soporte a los threading hilos en un programa, Java proporciona la clase
denominada Thread, adems de la interfaz denominado denominada Runnable.

Sobre la introduccin de artculos y enlaces web:

A lo largo del texto de este libro, se insertan extractos de artculos previamente


publicados en otros medios. Estos artculos han sido escogidos por su relevancia en los
temas y por el inters que pueden suponer para los lectores.

Muchas de las referencias listadas al final de cada captulo son enlaces web. Esta es una
eleccin premeditada, porque el autor cree que el acceso a contenido disponible en la
Web incrementar la iniciativa de los estudiantes. Los enlaces web elegidos son aquellos
que el autor considera fiables y estables. Sin embargo, la obsolescencia de alguno de
estos enlaces es inevitable, un cuyo caso el autor ofrece sus disculpas y agradece su
notificacin.

Contactar con el autor

La compilacin de un libro de texto es una tarea larga y laboriosa. Hasta el punto que
pueda intentar maximizar la precisin de los materiales presentados en este libro. Si se
descubre algn error o falta de coherencia o si se tienen sugerencias de mejora, estar
encantada de saberlo. Por favor, mndame mndeme un correo a mliu@csc.calpoly.edu.

Materiales complementarios

Los materiales complementarios, incluyendo los programas fuentes de los ejemplos de


programacin y las transparencias, estn disponibles en el URL www.aw.com.

Los materiales adicionales para profesores estn slo disponibles contactando con el
representante de ventas de Addison Wesley.

Agradecimientos

Agradezco la generosidad de diversos autores y editores que han concedido permiso de


reimpresin para permitir la inclusin de trabajos previamente publicados, en el texto de
este libro.

Estoy en deuda para siempre con mis directores de programa de doctorado, Dr.
Divyakant Agrawal y Dr. Amr El Abbadi, Computer Science Department, University of
California en Santa Barbara, que me introdujeron en el campo de la computacin
distribuida.

Debo dar las gracias a los estudiantes de Cal Poly Jared Smith, Domingo Colon, Vinh
Pham, Hafeez Jaffer, Erik Buchholz y Lori Sawdey por el regalo de su tiempo y su
esfuerzo en la revisin del libro. Tambin tengo que agradecer a los estudiantes que se
matricularon en estos cursos de Cal Poly en los aos acadmicos 2001-2003: Computer
Engineering 369, Computer Engineering 469, and Computer Science 569, por su
paciencia con los numerosos errores en los borradores del manuscrito de este libro.

Agradezco a mis compaeros del Computer Science Department y del College of


Engineering en Cal Poly, que me dieron la oportunidad de dar clases en estos cursos que
inspiraron el libro, y sin cuyos nimos el libro no hubiera sido posible.

Agradezco al personal de Addison Wesley por su inestimable direccin y asistencia que


permiti que el libro viera la luz, y a los siguientes revisores por la generosidad de
compartir su tiempo y sabidura:

Anup Talukdar
Motorola Labs, Schaumburg

Dr. Ray Toal


Loyola Marymount University

Mr. David Russo


Computer Science and Engineering
Senior Lecturer, University of Texas en Dallas

Dr. Alvin Lim


Computer Science and Software Engineering Department
Auburn University

Isaac Ghansah, Professor


Computer Science and Computer Engineering
California State University, Sacramento

Bruce Char
Department of Computer Science
Drexel University

Finalmente, agradezco a mi familia y en particular a mi hijo, Marlin, el haberme


proporcionado razones para esforzarme.

M. L. Liu
Cal Poly, San Luis Obispo
Enero, 2003

Das könnte Ihnen auch gefallen