Informática Electrónica Interfaces para los programas de aplicación (APIs)



Documentos relacionados
Interfaces y Manejadores de Dispositivos

Interfaces y Manejadores de Dispositivos

Capítulo 1 Introducción a la Computación

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

ARC 101 Architecture Overview Diagram

Tema 1. Introducción a JAVA

5.1 Introducción a Servicios Web

INTRODUCCIÓN A JAVA. Índice

U2. Introducción al desarrollo de aplicaciones móviles Smartphone y Android Desarrollo de Aplicaciones III TIC-UTSV Enero 2015 I.S.C.

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

MS_10978 Introduction to Azure for Developers

Tema 2: Implementación del núcleo de un Sistema Operativo

Desarrollo de apps para móviles Android. Introducción a Android

Cátedra de Sistemas Distribuidos Escuela de Ingeniería Electrónica Departamento de Sistemas e Informática

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

Seminario de Java. Contenido

Contenido. Sistemas de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida

La obra se proporciona bajo los términos de esta licencia pública de Sisoft de México

Modelo de aplicaciones CUDA

Arquitecturas GPU v. 2013

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Microsoft Office 2010 Illustrated. Tipos de Software

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Guía de Instalación de la JDK y del Eclipse

Historia de revisiones

RFID RFID. MIDDLEWARE RFID software de conectividad

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Unidad I. Introducción a la programación de Dispositivos Móviles

Introducción a la Computación

3.1 Introducción a Wireshark

ENVÍO DE POR MEDIO DE SMTP

Información sobre seguridad

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

TEMA 1. Introducción

Servicio de Mapas. Portal Inteligente Medellín Documentación de la Arquitectura de Software

4 ARQUITECTURA DE COMUNICACIONES

Curso Tecnologías Móviles

Extensión K2B proyectos para Smart Devices

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Capitulo 1: Plataforma Android

Programando con memoria unificada. Contenidos [15 diapositivas] Aportaciones de la memoria unificada. I. Descripción

OMG UML 2.0 Marcando un hito en el desarrollo de software Resumen Keywords Historia del Surgimiento

Programación de Sistemas

Prototipado y ejecución de aplicaciones SD con GeneXus

Sistema en Terreno SmartPhone Android

NOMBRE DEL EXPERIMENTO AUTOR CATEGORÍA PALABRAS CLAVE QUÉ SE PRETENDE MOSTRAR? DIRIGIDO A. Construye y Controla tu Robot en un día.

4. Programación Paralela

Enseñanza de programación multihilo y controladores de dispositivo en entornos Windows para alumnos de electrónica

Sumario... 5 Prólogo Unidad didáctica 1. Introducción a la computación distribuida Objetivos de la Unidad... 12

Información sobre seguridad

MDM Cloud. Conociendo el servicio. Alestra Información Restringida.

E-Government con Web Services

Programación Concurrente

TEMARIO DE PROFESORES TÉCNICOS DE F.P. SISTEMAS Y APLICACIONES INFORMÁTICAS

Permite compartir recursos en forma coordinada y controlada para resolver problemas en organizaciones multiinstitucionales

Sistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux

Tema 2: Introducción a Android

Service Oriented Architecture

Acoplamiento e interoperabilidad

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Dispositivos de Entrada/Salida

DEPARTAMENTO DE INFORMÁTICA CICLO FORMATIVO DE GRADO SUPERIOR ADMINISTRACIÓN DE SISTEMAS INFORMÁTICOS MÓDULO: REDES DE ÁREA LOCAL CURSO:

TEMA: DESARROLLO DE APLICACIONES WEB INTERACTIVAS UTILIZANDO LA TÉCNICA AJAX AUTOR: MERY SUSANA ZAMBONINO BAUTISTA

Requerimiento Tecnológico para acceso a Sistemas del SIAF

Arquitectura y Diseño de la Solución

Sistemas Operativos Práctica 3

DESARROLLO DE COMPONENTES PARA LA INTEGRACIÓN DEL PORTAL CORPORATIVO DEL CITI CON LA BPMS BIZAGI

DIPLOMADO EN SEGURIDAD INFORMATICA

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

INGENIERÍA DEL SOFTWARE I Práctica 4 Interacciones

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

INFRAESTRUCTURA Y COMUNICACIONES DGA

Clases y Objetos. Informática II Ingeniería Electrónica

Software de sistema: Programas genéricos que permiten gestionar los recursos del ordenador.

MODELO DE IMPLEMENTACIÓN

J2ME ENTORNO DE EJECUCIÓN. Un entorno de ejecución determinado de J2ME se compone entonces de una selección de:

Modelo de actualización y soporte

Getting Started. 1. Introducción. 2. Requerimientos de software

DIRECCIÓN REGIONAL DE EDUCACIÓN PUNO INSTITUTO DE EDUCACIÓN SUPERIOR TECNOLÓGICO PÚBLICO MACUSANI

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Unidad I. Introducción a la programación de Dispositivos Móviles (Continuación )

Capitulo 4: Componentes Android

QUE ES COMLINE MENSAJES? QUE TIPO DE MENSAJES PROCESA COMLINE MENSAJES?

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

CURSO INTERNACIONAL EN PROGRAMACIÓN DE APLICACIONES PARA ANDROID

Desarrollo de una plataforma de enseñanza de laboratorio para educación a distancia.

Capitulo 2 Android SDK

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

TRANSFERENCIA DE FICHEROS FTP

Escritorios virtuales

PROYECTOS DE INVESTIGACIÓN EN LAS AULAS DE CLASE, DE ESTUDIANTES PARA ESTUDIANTES - AQUÍ ESTOY! Y USADIR

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

SISTEMAS OPERATIVOS AVANZADOS

Transcripción:

Informática Electrónica Interfaces para los programas de aplicación (APIs) DSI- EIE FCEIA 2015

Que es un API? Application Program Interface (interface para programas aplicativos) es el mecanismo mediante el cual un programa aplicativo accede a servicios de otros componentes de software Un API puede tomar distintas formas: Librerías Procedimientos Protocolos Objetos DSI EIE - FCEIA Informática Electrónica 2

Componentes de un API Convenciones de utilización Estructuras de datos Protocolos de invocación Mecanismos de sincronización DSI EIE - FCEIA Informática Electrónica 3

API: Conceptos Conceptualmente, un API expone a los programas del usuario un conjunto de funcionalidades accesibles un forma controlada Un API puede permitir el acceso a dispositivos físicos (device drivers), a servicios de plataforma tales como E/S y comunicaciones o a funcionalidades específicas de una pieza de software DSI EIE - FCEIA Informática Electrónica 4

API: Arquitectura Aplicación API Software/hardware DSI EIE - FCEIA Informática Electrónica 5

API: Arquitectura Llamada Aplicación Respuesta API DSI EIE - FCEIA Informática Electrónica 6

APIs Síncronas / Asíncronas En el primer caso, la respuesta se produce como consecuencia de la llamada: existe una relación causal entre ambas y un ordenamiento temporal secuencial En el caso asíncrono la respuesta se produce por la ocurrencia de un evento externo, ante el cual el aplicativo es informado por el API DSI EIE - FCEIA Informática Electrónica 7

APIs Síncronas Aplicativo API solicitud t 0 t 1 respuesta DSI EIE - FCEIA Informática Electrónica 8

APIs Asíncronas Aplicativo Registra interés en evento e API t 0 t 1 registrado t 2 t Suceso: evento e 3 Evento e t t DSI EIE - FCEIA Informática Electrónica 9

API: Tipos Dependiente del lenguaje: disponible para ser utilizada desde un lenguaje de programación específico. Ejemplo: API de sockets de UNIX (C) Independiente del lenguaje: diseñada de forma tal que puede utilizarse por programas escritos en distintos lenguajes de programación. Ejemplo: web services, NMEA, ELCOM DSI EIE - FCEIA Informática Electrónica 10

API: Ejemplos POSIX: Interface a los servicios de los sistemas operativos UNIX/POSIX WIN32: Interface a los servicios de Windows Nvidia CUDA: (Compute Unified Device Architecture) compilador y conjunto de herramientas de desarrollo que permiten a los programadores usar una variación del lenguaje C para codificar algoritmos en GPUs de nvidia NMEA: interface a instrumentos de navegación DSI EIE - FCEIA Informática Electrónica 11

Componentes de un API Uno o mas archivos de encabezado (*.h) Una o mas librerías (*.o, *.lib, *.dll, etc.) Un paquete de clases (Java: *.jar) Usualmente encapsuladas en un SDK (software Development Kit) Una especificación de protocolo y mensajes DSI EIE - FCEIA Informática Electrónica 12

Modelos Un API puede utilizar uno o mas mecanismos para comunicarse con los programas aplicativos, por ejemplo: Llamada a funciones Invocación de métodos Paso de mensajes DSI EIE - FCEIA Informática Electrónica 13

API Basada en Funciones Un API basada en funciones se presenta como una librería que se carga dinámica o estáticamente, y un conjunto de funciones o procedimientos que pueden invocarse desde un programa aplicativo Para utilizarla se debe compilar el aplicativo junto con los encabezados (*.h) y vincular con uno o mas archivos *.lib Si la librería es dinámica se carga sólo en el momento de ejecución, y toma la forma de DLLs (Windows) o SO (Unix/Linux) DSI EIE - FCEIA Informática Electrónica 14

API Basada en Funciones Es un modelo utilizado en lenguaje C Ejemplos: Placas adquisidoras de datos y conversores A/D Placas de comunicaciones Placas de captura de video DSI EIE - FCEIA Informática Electrónica 15

APIs basadas en Eventos Utilizadas para comunicaciones asíncronas con dispositivos de interface que producen estímulos desde el entorno, por ejemplo un sensor de nivel o un pulsador Frecuentemente la interacción se lleva a cabo mediante funciones de call-back Similar a las rutinas de atención de interrupción (ISR) DSI EIE - FCEIA Informática Electrónica 16

Funciones de Call-Back Cuando un programa tiene interés de conocer la ocurrencia de un evento, se registra como tal llamando una función del API e indicando como uno de sus argumentos un puntero a una función, que será invocada por el API ante la ocurrencia del evento en cuestión DSI EIE - FCEIA Informática Electrónica 17

Call-Back: Ejemplo El uso de señales en POSIX permite que un programa de aplicación sea notificado de la ocurrencia de un evento de su interés El programa aplicativo puede asociar un manejador de señal, que es una función que actúa en consecuencia a la notificación del evento El API de señales está incluido en <signal.h> DSI EIE - FCEIA Informática Electrónica 18

Callbacks: signal() La función signal() permite asociar un manejador a la ocurrencia de una señal mediante un puntero a función, utilizando el mecanismo de callback: int (*signal(int sig, void (*func)()))() DSI EIE - FCEIA Informática Electrónica 19

Ejemplo: señales #include <stdio.h> #include <signal.h> void sigproc(void); void quitproc(void); main(){ } signal(sigint, sigproc); signal(sigquit, quitproc); printf("ctrl c deshabilitado\n"); for(;;); void sigproc() { signal(sigint, sigproc); printf("ctrl c presionado \n"); } void quitproc() { printf("presione ctrl \\ para salir\n"); exit(0); } DSI EIE - FCEIA Informática Electrónica 20

API Basada en Mensajes Establecen protocolos de diálogo en una arquitectura similar al modelo OSI Incluyen al menos una capa física, una de enlace y una de aplicación Como el intercambio está basado en mensajes, permiten independizar el lenguaje del aplicativo Ejemplos: NMEA Garmin ELCOM DSI EIE - FCEIA Informática Electrónica 21

APIs Basada en Objetos Utilizable cuando el lenguaje de programación soporta el modelo de objetos: Java, C++,.Net Se presenta como un paquete de clases que brindan las funcionalidades requeridas mediante la instanciación de objetos y la posterior invocación de métodos sobre estos objetos Ejemplos: Android SDK para dispositivos móviles Componentes de comunicaciones: TcpSocket, etc. DSI EIE - FCEIA Informática Electrónica 22

Código: Ejemplos Funcional: int nbytes = send(tx_buf, len);/* C */ Objetos: sf::tcpsocket socket; socket.connect(sf::ipaddress(address), port); // c++ DSI EIE - FCEIA Informática Electrónica 23

Caso de Estudio En la práctica 5 trabajaremos con un API (NMEA) y dos device drivers: el del reloj de tiempo real y un puerto serie de una PC El informe debe entregarse en formato electrónico antes del 20 de junio DSI EIE - FCEIA Informática Electrónica 24