Acelerando el desarrollo de APIs con API Management

Santos Garcia, Francisco (2017). Acelerando el desarrollo de APIs con API Management. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S. de Ingenieros Informáticos (UPM), Madrid, España.

Descripción

Título: Acelerando el desarrollo de APIs con API Management
Autor/es:
  • Santos Garcia, Francisco
Director/es:
  • Medinilla Martínez, Nelson
Tipo de Documento: Proyecto Fin de Carrera/Grado
Grado: Grado en Ingeniería Informática
Fecha: Enero 2017
Materias:
Palabras Clave Informales: API; REST; API Management; Ciclo de vida; Integración continua; Entorno de desarrollo; Life Cycle; Continuous Integration; Development environment
Escuela: E.T.S. de Ingenieros Informáticos (UPM)
Departamento: Lenguajes y Sistemas Informáticos e Ingeniería del Software
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[img]
Vista Previa
PDF (Document Portable Format) - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (3MB) | Vista Previa

Resumen

El presente proyecto expone cómo una empresa o autónomo puede trabajar en el desarrollo de APIs haciendo uso de herramientas de API Management. Para ello, se define un ciclo de vida en un entorno de desarrollo funcional, y se explica cómo debe ser dimensionado el sistema y el conjunto de máquinas para poder escalar a otros entornos, como por ejemplo, el de producción. El proyecto se divide en tres partes principales. La primera parte, se basa en una investigación previa acerca de las diferentes soluciones de API Management existentes. En concreto, se han estudiado las herramientas que ofrecen las compañías de IBM, Axway y CA Technologies, empresas líderes en el sector de las Tecnologías de la Información y la Comunicación. A partir de este estudio, se ha tomado una decisión sobre qué herramienta utilizar durante el desarrollo del proyecto. La segunda parte, se basa en la definición y configuración de un entorno de desarrollo funcional, accesible y escalable. Además, se ha definido un ciclo de vida que incluye la práctica de integración continua basada en algunas herramientas destinadas para este fin, como pueden ser Git para el control de versiones o Jenkins para la automatización de tareas. Para esto, se hace uso de un servidor NAS Synology accesible desde Internet (a través de una conexión VPN), y un equipo de desarrollo, donde se ejecutan todas las herramientas necesarias, tanto a nivel local como remoto. Por último, en la tercera parte es donde se encuentra el grueso del proyecto y de donde se han extraído las principales conclusiones rentables para las empresas o autónomos. Se ha utilizado el entorno previamente configurado para desarrollar cinco APIs REST con diferente grado de dificultad de implementación. Cada una de estas APIs, ha transitado por las distintas fases que incluye el ciclo de vida del proyecto, desde su diseño e implementación, pasando por un conjunto de pruebas funcionales y no funcionales, hasta su exposición en un portal web. Se trata de un proyecto complejo y próximo a una situación real, donde se ha intentado sacar el máximo rendimiento a las herramientas mencionadas anteriormente, estudiando las ventajas y desventajas de cada una de ellas para poder extraer conclusiones certeras sobre cómo se puede acelerar o mejorar el desarrollo de APIs.---ABSTRACT---This project explains how a company or self-employed can develop APIs using API Management tools. For this, a Life Cycle will be defined in a fully functional development environment. Also they will be explained how the system and the set of machines should be sized and organized to be able to scale to other environments, such as production environment. We can divide the project into three main parts. The first one, is based on a previous research on different API Management solutions. They will be studied the tools offered by IBM, Axway and CA Technologies for this purpose. The three of them are leaded companies in the Information Technology sector, and from this study, a decision will be made on the tool to be used for the development of the project. The second part, is based on the definition of the development environment and its configuration for being functional, accessible and scalable. Also, a Life Cycle and a Continuous Integration system will be included based on some tools intended for this purpose, such as Git for version control and Jenkins for task automation. In addition, a Synology NAS Server and a development computer will be used for execute all necessary tools, both locally and remotely. Finally, in the third part is where the bulk of the project is focused and from which the main useful conclusions for the companies will be extracted. The configured environment will be used to develop five REST APIs with different degree of implementation difficulty. These APIs will be included in the Life Cycle of the project and will go through different phases, from their implementation, through a set of functional and non-functional tests, until their exposure in a web Portal. It is a complex project and close to a real situation, where it has tried to exploit the performance of the tools mentioned above, studying their advantages and disadvantages to draw conclusions about how to accelerate or improve the API Development.

Más información

ID de Registro: 47181
Identificador DC: http://oa.upm.es/47181/
Identificador OAI: oai:oa.upm.es:47181
Depositado por: Biblioteca Facultad de Informatica
Depositado el: 12 Jul 2017 10:40
Ultima Modificación: 12 Jul 2017 10:40
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • e-ciencia
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM