Atributos
Descripción: 

Este es un curso introductorio al diseño, programación y puesta en producción de servicios web.  El curso cubre tanto escenarios de negocio a negocio (B2B, por sus siglas en inglés) y negocio a consumidor (B2C, por sus siglas en inglés).  El curso cubre la teoría subyacente con énfasis en servicios basados en SOAP, junto con normas asociadas tales como XML, WSDL y UDDI. El curso cubre la creación de los servicios utilizando herramientas de diferentes tecnologías como Java, .NET y PHP.  El estudio de los servicios web SOAP se complementa con el estudio de servicios web basados en REST junto con herramientas asociadas como XML y JSON. El curso también trata el consumo de servicios web utilizando diferentes herramientas tecnológicas.  También se discuten seguridad, rendimiento y pruebas tanto el servidor como en los servicios.  El diseño del curso está enfocado a estudiantes de cuarto año de la carrera de Bachillerato en Computación e Informática con énfasis en Ingeniería de Software.  Se espera que una vez concluido este curso, el estudiante muestre la capacidad de desempeñarse como desarrollador en proyectos de programación de servicios web de mediana complejidad. Se sugieren aprendizaje basado en problemas y aprendizaje basado en proyectos como estrategias didácticas para lograr los objetivos de aprendizaje de este curso.

Objetivo general: 

El objetivo general del curso es que los estudiantes adquieran conocimientos y desarrollen habilidades para el diseño, la programación, la puesta en marcha de servicios web y su consumo, con el fin de adquirir la capacidad de colaborar en el desarrollo de arquitecturas orientadas a servicios, utilizando herramientas, normas, protocolos, patrones de diseño, modelos y arquitecturas vigentes en la industria.

Objetivos específicos: 

Durante este curso el estudiante desarrollará habilidades para:

  1. Explicar los conceptos generales de la Arquitectura Orientada a Servicios (SOA) y de la Arquitectura de Servicios Web (WSA), para identificar los usos comunes y los requerimientos de dichas arquitecturas, mediante el estudio de su marco teórico y los contextos organizacional y de negocios.
  2. Explicar el protocolo HTTP, con el fin de desarrollar aplicaciones que funcionen correctamente en él, mediante el estudio de dicho protocolo.
  3. Comprender el Lenguaje de Marcado eXtensible (XML), para poder escribir documentos XML bien formados y esquemas para un documento XML (con DTD y XML Schema), mediante la práctica de redacción, sin generación automática, de documentos XML.
  4. Aplicar conceptos de representación y análisis sintáctico de la información, en el contexto de XML y sus normas técnicas relevantes de intercambio de información, para habilitar la comunicación e interoperabilidad de plataformas computacionales heterogéneas, mediante la escritura o la generación de lenguajes de descripción de interfaces programáticas y paquetes de datos de intercambio usando normas como WSDL, WADL y SOAP.
  5. Explicar los principios de diseño y aplicación de servicios web basados en SOAP y REST, para poder desarrollar servicios web colaborativos de acuerdo a una especificación, mediante la utilización de herramientas libres o propietarias para la programación como Java, .NET y PHP con el fin de construir, probar, poner en marcha y ejecutar servicios web y aplicaciones que los consuman.
  6. Explicar las cuestiones contemporáneas con respecto de los servicios web y tecnologías relacionadas, para diseñar, probar, construir, poner en marcha y ejecutar servicios web de mayor calidad o con mayor cumplimiento de requerimientos organizacionales y empresariales, mediante el estudio de diferentes opciones tecnológicas disponibles para el desarrollo de servicios web o para acompañarlos.

  7. Identificar los requerimientos de control y seguridad de los servicios web, para ofrecer aseguramiento de la información trasegada por los servicios, mediante la aplicación de estándares y políticas de seguridad en servicios web desarrollados en el curso.

  8. Probar servicios web SOAP y RESTful, para reducir los posibles defectos en la puesta en marcha, mediante el uso de herramientas modernas de pruebas.

Contenidos: 
Objetivo específico Eje temático Desglose
1 Introducción: Arquitectura Orientada a Servicios Arquitectura Orientada a Servicios (SOA): definición, definición de servicio, historia (de objetos locales a objetos distribuidos), usos de los servicios, características de servicio, proceso de negocios heredado, cuello de botella arquitectural, proceso de negocios SOA, ecosistema de infraestructura de tecnologías de la información, integración heredada, integración SOA, pila de integración.
Bus de servicio empresarial (ESB): definición, características, limitación de la integración de aplicaciones empresariales (EAI), ejemplos de ESB.
Construcción de aplicaciones compuestas: componentes, flujo de procesos de negocios, Lenguaje de Ejecución de Procesos de Negocios (BPEL).
Arquitectura de servicios web: definición de la World Wide Web Consortium, proceso general de uso de un servicio web, metamodelo de la arquitectura, modelos de la arquitectura, pila de la arquitectura, proceso de descubrimiento, seguridad punto a punto, descubrimiento seguro, estilos de interfaces de programación de aplicaciones (API) para servicios web, tecnologías que compiten (WS * y REST), pila de tecnología WS *.
2,3 Conceptos básicos: HTTP y XML Protocolo de Transporte de HiperTexto (HTTP): breve repaso de la historia de Internet, IP, TCP, descripción y funcionamiento del protocolo HTTP, versiones, Identificador Uniforme de Recurso (URI), cookies, sesión.
Lenguaje de Marcado eXtensible (XML): historia, características de XML, especificaciones relacionadas a XML, ejemplos, software para trabajar con XML, espacios de nombres XML, Definición de Tipo de Documento (DTD), referencia a DTD, ejemplos de DTD, esquemas XML, especificación de esquemas XML, referencia a esquema XML.
4 Descripción: WSDL, WADL u otros Lenguajes para descripción de servicios web: Lenguaje de Descripción de Servicios Web (WSDL) y Lenguaje de Descripción de Aplicaciones Web (WADL).
WSDL: introducción a SDL, historia, estructura y semántica, codificación (encoding), enlace (binding), ejemplos.
WADL: estructura y semántica, ejemplos.
4,5 Servicios web SOAP Protocolo de Acceso a Objetos Simples (SOAP): definición, uso, historia, estructura y semántica, modelo de procesamiento, SOAP y HTTP, tipos de servicios (RPC y mensaje, literal y documento), manejo de errores, creación de servicios web SOAP en diferentes tecnologías como Java, .NET, Mono, PHP u otras, consumición de servicios web SOAP mediante tecnologías tales como Java, .NET, Mono, PHP u otras, comparación con REST, ventajas y desventajas.
5 Servicios web REST Transferencia de Estado REpresentacional (REST): arquitectura REST, servicios RESTful, [creación, lectura, actualización, borrado] (CRUD), métodos HTTP típicos para un servicio RESTful, tipos de medios [JSON, XML], creación de servicios web RESTful en diferentes tecnologías como Java, .NET, Mono, PHP u otras, JavaScript, consumición de servicios web RESTful mediante tecnologías tales como Java, .NET, Mono, PHP u otras.
6 Descubrimiento: UDDI Descripción, Descubrimiento e Integración Universales (UDDI): registro de servicios, descubrimiento de servicios, estructura conceptual, modelo de uso, estructura de datos, consulta, publicación, UDDI y servicios REST, WSDL a UDDI, actualidad.
6,7 Seguridad Seguridad: autenticación HTTP, SSL, Kerberos, WS-Security, Lenguaje de Marcado para Confirmaciones de Seguridad (SAML), WS-Policy, WS-Reliability.
5,8 Pruebas Pruebas: herramientas para pruebas de servicios web, pruebas de de funcionalidad, pruebas de carga (rendimiento) [de punto de referencia (baseline), de carga (load), de estrés (stress), de “remojo” (soak), de escalabilidad (scalability)], pruebas de interoperabilidad, pruebas de vulnerabilidad.
6 Direccionamiento y notificación Normas técnicas: WS Addressing, WS RF, WS Notification, WS Topics.
Bibliografía: 
  1. Barry, D Web Services and Service-Oriented Architecture Morgan Kaufmann (2003) ISBN:1558609067
  2. Basham, B., Sierra, K. & Bates, B. 2008, Head First Servlets and JSP, O'Reilly Media Inc, Sebastopol, California. ISBN 0596516681.
  3. Bean, James SOA and Web Services Interface Design Morgan Kaufmann (2010) ISBN 9780123748911
  4. Cohen, Frank. FastSOA, Morgan Kaufmann Publishers.
  5. Graham, S., et al. 2004, Building Web Services with Java™: Making Sense of XML, SOAP, WSDL and UDDI, 2nd edn, Sams. ISBN 0672321815.
  6. Hansen, Mark SOA Using Java Web Services Prentice Hall (2007) ISBN 9780130449689
  7. Harold, E.R. & Means, W.S. 2004, XML in a Nutshell, 3rd edn, O'Reilly Media Inc, Beijing; Farnham. ISBN 0596007647.
  8. Kochmer, C. & Frandsen, E. 2002, JSP™ and XML: Integrating XML and Web Services in Your JSP™ Application, Addison-Wesley Professional. ISBN 978-0-672-32354-6.
  9. McLaughlin, B. & Edelson, J. 2007, Java and XML, 3rd edn, O'Reilly Media. ISBN 9780596101497.
  10. Megginson, D, Imperfect XML, Addison-Wesley (2005) ISBN: 0131453491
  11. Morrison, M. 1999, XML Unleashed, Sams, Indianapolis, Ind. ISBN 0672315149.
  12. OASIS Group Standards: WSS Specification- SOAP Message Security, WSS X.509 Certificate Token Profile.
  13. Peter Laudati et al. Application Interoperability: Microsoft .NET and J2EE.
  14. Steve Graham, et. al. Building Web Services with Java: Making Sense of XML, SOAP, WSDL and UDDI 2nd edition, Sams, 2004. ISBN: 0672321815
  15. Web Services Working Group: WSA Specification. Requirements, Glossary, Management and Usage W3C notes.
  16. R. Daignau, Service Design Patterns, Addisson-Wesley
  17. M. P. Papazoglou, Web Services: Principles and Technology, Prentice Hall
     
LIberación de responsabilidad: 

Este no es un documento oficial. Documentos oficiales se entregan en la secretaría de la escuela.