1. IDENTIFICACIÓN

Asignatura PROGRAMACIÓN DISTRIBUIDA
Área Ingeniería Aplicada Nivel 7
Código PDI-74 Pensum 10
Correquisito(s) Prerrequisito(s)
Créditos 4 TPS 4 TIS 8 TPT 64 TIT 128

2. JUSTIFICACIÓN

La programación distribuida es un paradigma de programación enfocado en desarrollar sistemas distribuidos, abiertos, multiplataforma, escalables, transparentes y tolerantes a fallos, características que demandan en la actualidad las organizaciones de sus aplicativos informáticos. Este paradigma ha sido el resultado natural del uso de las computadoras y las redes y se fundamenta en la evolución de las arquitecturas cliente-servidor.
El manejo de la programación distribuida exige un lenguaje de programación que tenga acceso máximo al hardware de un sistema (incluyendo los dispositivos móviles) y el dominio de unas técnicas de programación que garanticen un máximo aprovechamiento y un óptimo desempeño.

3. OBJETIVO GENERAL

Permitir que el estudiante obtenga una base teórico-práctica sólida para el desarrollo de sistemas distribuidos junto con un buen porcentaje de actividad práctica de dichos conocimientos usando herramientas de gran demanda por las organizaciones.

4. OBJETIVOS ESPECÍFICOS

  • Comprender y aplicar las técnicas para el desarrollo y uso de servicios Web.
  • Comprender y aplicar las técnicas para el desarrollo de aplicaciones basadas en sockets.
  • Comprender y aplicar las técnicas para el desarrollo de aplicaciones basadas en Llamadas Remotas a Procedimientos (RPC).
  • Comprender y aplicar las técnicas para el desarrollo de aplicaciones basadas en transacciones.
  • Conocer el aprovechamiento del diseño multicapa de las aplicaciones para las aplicaciones distribuidas.

  • 5. COMPETENCIAS Y CONTENIDOS TEMÁTICOS DEL CURSO

    COMPETENCIAS CONTENIDO TEMÁTICO INDICADOR DE LOGRO
    Utilizar las tecnologías avanzadas para el desarrollo de software en la implementación de soluciones empresariales seguras en ambientes de red. Servicios Web
    •Aplicaciones clientes de Servicios Web
    •Sockets
    •Aplicaciones Multicapa
    - Capa de manejo abstracto de los datos
    - Capa de acceso a datos
    - Capa reglas del negocio
    - Capa de presentación
    •Transacciones
    - Aplicaciones Web
    - Aplicaciones distribuidas
    •Servicios Web como componentes remotos
    •Aplicaciones cliente-servidor utilizando Cola de Mensajes.
    •Componentes con servicio.
    •Aplicaciones para dispositivos móviles.
    - Acceso a bases de datos móviles
    Sincronización con bases datos de servidor
    1. En un ejercicio de desarrollo de software utiliza las tecnologías basadas en componentes del lado del servidor para el desarrollo de aplicaciones empresariales..
    2. En un ejercicio de desarrollo de software utiliza las tecnologías de mensajería entre componentes de una aplicación distribuida.
    3. En un ejercicio de desarrollo de software diseña e implementa aplicaciones multicapa fundamentado en el modelo orientado a objetos y las distribuye en componentes para permitir acceso remoto
    4. En un ejercicio de desarrollo de software utiliza las tecnologías de transaccionalidad en las aplicaciones como garantía de la integridad de la información de un sistema.
    5. En un ejercicio de desarrollo de software diseña e implementa aplicaciones para dispositivos móviles con acceso a bases de datos.

    6. ESTRATEGIAS DIDÁCTICAS / METODOLÓGICAS

    Clase magistral con ayudas didácticas audiovisuales y ejercicios representativos de cada tema.
    Talleres en sala de cómputo para resolver problemas mediante codificación de programas utilizando un ambiente de desarrollo integrado para el lenguaje de programación Java.
    Talleres para trabajo independiente, que incluyen problemas para resolver mediante la codificación de programas.
    Asesorías dentro del aula de clase y resolución de dudas de talleres y trabajos independientes.
    Consulta de temas con bibliografía recomendada y con bibliografía o cibergrafía abierta.

    7. ESTRATEGIAS DE SEGUIMIENTO Y EVALUACIÓN

    INDICADORES DE LOGRO ESTRATEGIAPORCENTAJE
    En un ejercicio de desarrollo de software utiliza las tecnologías basadas en componentes del lado del servidor para el desarrollo de aplicaciones empresariales. Práctica evaluativa de una aplicación compuesta por servicios Web y un cliente de los respectivos servicios 20%
    En un ejercicio de desarrollo de software utiliza las tecnologías de mensajería entre componentes de una aplicación distribuida. Práctica evaluativa de una aplicación basada en sockets 20%
    En un ejercicio de desarrollo de software diseña e implementa aplicaciones multicapa fundamentado en el modelo orientado a objetos y las distribuye en componentes para permitir acceso remoto. Práctica evaluativa de una aplicación multicapa distribuida en componentes que se acceden remotamente. 20%
    En un ejercicio de desarrollo de software utiliza las tecnologías de transaccionalidad en las aplicaciones como garantía de la integridad de la información de un sistema. Práctica evaluativa de una aplicación distribuida basada en transacciones. 20%
    En un ejercicio de desarrollo de software diseña e implementa aplicaciones para dispositivos móviles con acceso a bases de datos. Práctica evaluativa de una aplicación para dispositivos móviles con acceso a bases de datos y sincronizable con servidores de bases de datos. 20%

    8. BIBLIOGRAFÍA

    MCLEAN, Scott, NAFTEL James y WILLIAMS, Kim. Microsoft® .NET Remoting Microsoft Press, 2002. 336 p.
    HILERA, J.R. Programación Paralela. Servicio de publicaciones de la Universidad de Alcalá de Henares, 1998.
    GUTIÉRREZ, J. M. Paradigmas de programación. Servicio de publicaciones de la Universidad de Alcalá de Henares, 2005.
    BEN-ARI, M. Principles of concurrent and distributed programming. Prentice Hall, 1990.
    ANDREWS, G. Distributed programming languages. Proceedings of the ACM '82 conference, páginas 113 117. 1982.
    KOTZ, D. y GRAY, R. Mobile Agents and the Future of the Internet. ACM Operating Systems Review, 33(3), págs. 7-13. 1999.
    PLATT, David S. Understanding COM+. Microsoft Press, 1999. 256 . ISBN 0-7356-0666-8.
    ISEMINGER, David . COM+ Developer's Reference Library. Microsoft Press, 2000. 3584 p. ISBN 0-7356-1138-6.
    DAMIEN. Programming Microsoft® .NET XML Web Services. Microsoft Press, 2003. ISBN 0-7356-1912-3. 720 p.
    Profesional C# . 2 ed. 1210 p. ISBN: 8493272027.
    RAMMER, Ingo. Advanced .Net Remoting. 402 p. ISBN: 1-59059-025-2.
    BALLINGER, K. Net Web Services Architecture And Implementation. ISBN: 0-321-11359-4. 323 p
    L™WY, JUVAL. COM+ And .NET Component Services. ISBN: 0-596-00103-7. 362 p.
    MOJICA, J. COM+ Programming with Visual Basic. 348 p. ISBN: 1-56592-840-7.