que es un paradigma y api

16
Que es un paradigma Que es un paradigma El Paradigma de programación es una El Paradigma de programación es una forma de representar y manipular el forma de representar y manipular el conocimiento. Representan un enfoque conocimiento. Representan un enfoque particular o filosofía para la particular o filosofía para la construcción del software. Cada uno construcción del software. Cada uno tiene ventajas y desventajas. También tiene ventajas y desventajas. También hay situaciones donde un paradigma hay situaciones donde un paradigma resulta más apropiado que otro. resulta más apropiado que otro.

Upload: davidleggio

Post on 26-Jul-2015

463 views

Category:

Business


2 download

TRANSCRIPT

Que es un paradigmaQue es un paradigmaEl Paradigma de programación es una forma de El Paradigma de programación es una forma de representar y manipular el conocimiento. representar y manipular el conocimiento. Representan un enfoque particular o filosofía Representan un enfoque particular o filosofía para la construcción del software. Cada uno para la construcción del software. Cada uno tiene ventajas y desventajas. También hay tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más situaciones donde un paradigma resulta más apropiado que otro.apropiado que otro.

Programación Programación orientada a eventosorientada a eventos La programación por eventos, consiste en que, en La programación por eventos, consiste en que, en

lugar de que el usuario espere al programa, el lugar de que el usuario espere al programa, el programa espera al usuario. Ahora el sistema espera programa espera al usuario. Ahora el sistema espera la ocurrencia de eventos y actúa en consecuencia. la ocurrencia de eventos y actúa en consecuencia. Esto quiere decir, el programa debe saber cómo Esto quiere decir, el programa debe saber cómo manejar los objetos disponibles y responder a los manejar los objetos disponibles y responder a los estímulos que vienen del usuario.estímulos que vienen del usuario.

Un claro ejemplo de esto lo podemos ver en Word que Un claro ejemplo de esto lo podemos ver en Word que al arrancar el programa este se queda en esperando al arrancar el programa este se queda en esperando las ordenes o eventos realizados por el usuario, entre las ordenes o eventos realizados por el usuario, entre estos están para abrir y modificar un archivo, o bien estos están para abrir y modificar un archivo, o bien comenzar a crearlo desde el principio.comenzar a crearlo desde el principio.

Métodos para la P.O.EMétodos para la P.O.E

Los Los métodosmétodos son funciones que también son son funciones que también son llamadas desde programa, pero a diferencia de los llamadas desde programa, pero a diferencia de los procedimientos vienen ya pre-programadas con el procedimientos vienen ya pre-programadas con el lenguaje. Los métodos realizan tareas típicas, lenguaje. Los métodos realizan tareas típicas, previsibles y comunes para todas las aplicaciones.previsibles y comunes para todas las aplicaciones.

En general solo pueden ser ejecutados en tiempos En general solo pueden ser ejecutados en tiempos de ejecución no en tiempo de diseño. de ejecución no en tiempo de diseño.

Las aplicaciones se inician creando la pantalla Las aplicaciones se inician creando la pantalla principal e iniciando la cola de eventos.principal e iniciando la cola de eventos.

Administración de Administración de concurrenciaconcurrencia Los eventos son procesados en orden, obteniéndolos Los eventos son procesados en orden, obteniéndolos

de la cola de eventos, y el proceso de cada evento de la cola de eventos, y el proceso de cada evento implica despacharlo al componente correcto.implica despacharlo al componente correcto.

No se controla el orden en que se producen los No se controla el orden en que se producen los eventos, es importante que responda con prontitud.eventos, es importante que responda con prontitud.

APIAPI

Una API (Application Programming Interface o Una API (Application Programming Interface o Interfase de Programación de Aplicaciones) es un Interfase de Programación de Aplicaciones) es un conjunto de funciones que facilitan el intercambio de conjunto de funciones que facilitan el intercambio de mensajes o datos entre dos aplicaciones. Es una mensajes o datos entre dos aplicaciones. Es una forma de que dos aplicaciones que trabajan al mismo forma de que dos aplicaciones que trabajan al mismo tiempo.tiempo.

En Internet, una API permite que un sitio web brinde En Internet, una API permite que un sitio web brinde determinado servicio a otro, a través de determinado servicio a otro, a través de llamadas a llamadas a funciones documentadas y publicadasfunciones documentadas y publicadas, facilitando , facilitando de esta manera el “mash-up” o mezcla de servicios. de esta manera el “mash-up” o mezcla de servicios.

Por ejemplo, hoy es posible que desde un blog Por ejemplo, hoy es posible que desde un blog personal se puedan publicar noticias del sitio de un personal se puedan publicar noticias del sitio de un famoso periódico, mezcladas con fotos que ya están famoso periódico, mezcladas con fotos que ya están alojadas en un sitio de fotografías, a través de alojadas en un sitio de fotografías, a través de llamadas a la APIllamadas a la API de estos dos servicios. de estos dos servicios.

APIAPI

Una API detalla solamente la forma de llamar a cada Una API detalla solamente la forma de llamar a cada función y lafunción y latarea que esta desempeña, sin importar cómo se lleva tarea que esta desempeña, sin importar cómo se lleva a cabo dicha tarea.a cabo dicha tarea.

Detalles técnicosDetalles técnicos

Un API es un conjunto de reglas para escribir Un API es un conjunto de reglas para escribir funciones ofunciones ohacer llamados a subrutinas y acceder a otras hacer llamados a subrutinas y acceder a otras funciones en una librería.funciones en una librería. Los programas que usan Los programas que usan estas reglas o funciones en sus llamadas API pueden estas reglas o funciones en sus llamadas API pueden comunicarse con cualquiera que use dicha API.comunicarse con cualquiera que use dicha API.

Detalles técnicosDetalles técnicos

Las API ofrecen distintos tipos de diálogos con el Las API ofrecen distintos tipos de diálogos con el proveedor para actualizar información en el mismo, proveedor para actualizar información en el mismo, como son:como son:

Acceso a bases de datosAcceso a bases de datos Comunicación cliente/servidorComunicación cliente/servidor Comunicación peer-to-peerComunicación peer-to-peer Comunicación en tiempo realComunicación en tiempo real Event-driven (orientada a eventos)Event-driven (orientada a eventos) Store and forwardStore and forward Procesamiento de transaccionesProcesamiento de transacciones

Detalles técnicosDetalles técnicos

Una API puede combinar recuperación de errores, Una API puede combinar recuperación de errores, traducción de datos, seguridad, manejo de colas y traducción de datos, seguridad, manejo de colas y nomenclatura con una interfase fácil de asimilar, que nomenclatura con una interfase fácil de asimilar, que comprende acciones y comandos simples pero con comprende acciones y comandos simples pero con muchas opciones.muchas opciones.

Para invocar una API, el programa debe llamar a una Para invocar una API, el programa debe llamar a una función tipo “send”, especificando parámetros para el función tipo “send”, especificando parámetros para el nombre de destino, indicadores de datos y opciones nombre de destino, indicadores de datos y opciones de confirmación.de confirmación.

Detalles técnicosDetalles técnicos

La API toma la información y hace que todo el trabajo La API toma la información y hace que todo el trabajo específico de comunicación sea transparente para la específico de comunicación sea transparente para la aplicación. Hay cuatro tipos de APIs que posibilitan el aplicación. Hay cuatro tipos de APIs que posibilitan el intercambio de datos entre diferentes aplicaciones de intercambio de datos entre diferentes aplicaciones de software en plataformas individuales o distribuidas:software en plataformas individuales o distribuidas:

Tipos de APIsTipos de APIs Remote Procedure Calls (RPCs) o Llamadas a Procedimientos Remote Procedure Calls (RPCs) o Llamadas a Procedimientos

RemotosRemotos

Con las RPCs, los programas pueden comunicarse a través deCon las RPCs, los programas pueden comunicarse a través deprocedimientos (o tareas) que actúan en buffers compartidos deprocedimientos (o tareas) que actúan en buffers compartidos deinformación.información.

Standard Query Language (SQL)Standard Query Language (SQL)Un lenguaje de acceso de datos sin procedimientos que permite elUn lenguaje de acceso de datos sin procedimientos que permite el

intercambio de datos entre aplicaciones, accediendo a bases de datosintercambio de datos entre aplicaciones, accediendo a bases de datoscomunes.comunes.

Transferencia de archivosTransferencia de archivos Habilita el intercambio de datos enviando archivos formateados entre Habilita el intercambio de datos enviando archivos formateados entre

aplicaciones.aplicaciones.

Envío de mensajesEnvío de mensajesProvee el intercambio de datos por comunicaciones de interprogramaciónProvee el intercambio de datos por comunicaciones de interprogramación

directa, a través de pequeños mensajes formateados entre aplicacionesdirecta, a través de pequeños mensajes formateados entre aplicacionesemparejadas.emparejadas.

APIsAPIs Se pueden desarrollarse para cualquier plataforma y Se pueden desarrollarse para cualquier plataforma y

sistema operativo. También desde hace unos años se sistema operativo. También desde hace unos años se vienen desarrollando como forma de vienen desarrollando como forma de acceder a acceder a servicios webservicios web. En este sentido, las API más . En este sentido, las API más conocidas son las de:conocidas son las de:

Una Una interfaz de programación de aplicacionesinterfaz de programación de aplicaciones o o APIAPI (del (del inglésinglés application programming interface) es application programming interface) es el conjunto de el conjunto de funciones y procedimientosfunciones y procedimientos (o (o métodosmétodos, , en la en la programación orientada a objetosprogramación orientada a objetos) que ofrece ) que ofrece cierta cierta bibliotecabiblioteca para ser utilizado por otro software para ser utilizado por otro software como una capa de abstracción. Usados generalmente como una capa de abstracción. Usados generalmente en las bibliotecas.en las bibliotecas.

Características Características

Una interfaz de programación representa una interfaz Una interfaz de programación representa una interfaz de comunicación entre componentes de de comunicación entre componentes de softwaresoftware. Se . Se trata del conjunto de llamadas a ciertas bibliotecas trata del conjunto de llamadas a ciertas bibliotecas que ofrecen acceso a ciertos servicios desde los que ofrecen acceso a ciertos servicios desde los procesos y representa un método para conseguir procesos y representa un método para conseguir abstracciónabstracción en la en la programaciónprogramación, generalmente entre , generalmente entre los niveles o capas inferiores y los superiores del los niveles o capas inferiores y los superiores del software. Uno de los principales propósitos de una API software. Uno de los principales propósitos de una API consiste en proporcionar un conjunto de consiste en proporcionar un conjunto de funcionesfunciones de de uso general, por ejemplo, para dibujar uso general, por ejemplo, para dibujar ventanasventanas o o iconosiconos en la en la pantallapantalla. De esta forma, los . De esta forma, los programadoresprogramadores se benefician de las ventajas de la API se benefician de las ventajas de la API haciendo uso de su funcionalidad, evitándose el haciendo uso de su funcionalidad, evitándose el trabajo de programar todo desde el principio. trabajo de programar todo desde el principio.

EjemploEjemplo

se puede ver la tarea de escribir "se puede ver la tarea de escribir "Hola MundoHola Mundo" sobre la pantalla en diferentes " sobre la pantalla en diferentes niveles de niveles de abstracciónabstracción::

Haciendo todo el trabajo desde el principio: Haciendo todo el trabajo desde el principio: – Traza, sobre Traza, sobre papelpapel milimetrado, la forma de las letras (y espacio) "H,o, l, milimetrado, la forma de las letras (y espacio) "H,o, l,

a,M,u, n, d, o".a,M,u, n, d, o".– Crea una Crea una matrizmatriz de de cuadradoscuadrados negros y blancos que se asemeje a la negros y blancos que se asemeje a la

sucesión de letras.sucesión de letras.– Mediante instrucciones en Mediante instrucciones en ensambladorensamblador, escribe la información de la , escribe la información de la

matriz en la matriz en la memoria intermediamemoria intermedia ("buffer") de pantalla. ("buffer") de pantalla.– Mediante la instrucción adecuada, haz que la Mediante la instrucción adecuada, haz que la tarjeta gráficatarjeta gráfica realice el realice el

volcadovolcado de esa información sobre la pantalla. de esa información sobre la pantalla. Por medio de un Por medio de un sistema operativosistema operativo para hacer parte del trabajo: para hacer parte del trabajo:

– Carga una Carga una fuentefuente tipográfica proporcionada por el sistema operativo. tipográfica proporcionada por el sistema operativo.– Haz que el sistema operativo borre la pantalla.Haz que el sistema operativo borre la pantalla.– Haz que el sistema operativo dibuje el texto "Hola Mundo" usando la Haz que el sistema operativo dibuje el texto "Hola Mundo" usando la

fuente cargada.fuente cargada. Usando una Usando una aplicaciónaplicación (que a su vez usa el sistema operativo) para realizar la (que a su vez usa el sistema operativo) para realizar la

mayor parte del trabajo: mayor parte del trabajo: Escribe un documento Escribe un documento HTMLHTML con las palabras "Hola Mundo" para que un con las palabras "Hola Mundo" para que un

navegador Webnavegador Web como como MozillaMozilla, , FirefoxFirefox, Opera o Internet Explorer pueda , Opera o Internet Explorer pueda representarlo en el monitor.representarlo en el monitor.

EjemploEjemplo

Como se puede ver, la primera opción requiere Como se puede ver, la primera opción requiere más pasos, cada uno de los cuales es mucho más más pasos, cada uno de los cuales es mucho más complicado que los pasos de las opciones siguientes. complicado que los pasos de las opciones siguientes. Además, no resulta nada práctico usar el primer Además, no resulta nada práctico usar el primer planteamiento para representar una gran cantidad de planteamiento para representar una gran cantidad de información, como un artículo enciclopédico sobre la información, como un artículo enciclopédico sobre la pantalla, mientras que el segundo enfoque simplifica pantalla, mientras que el segundo enfoque simplifica la tarea eliminando un paso y haciendo el resto más la tarea eliminando un paso y haciendo el resto más sencillos y la tercera forma simplemente requiere sencillos y la tercera forma simplemente requiere escribir "Hola Mundo". Sin embargo, las APIs de alto escribir "Hola Mundo". Sin embargo, las APIs de alto nivel generalmente pierden flexibilidad; por ejemplo, nivel generalmente pierden flexibilidad; por ejemplo, resulta mucho más difícil en un navegador web hacer resulta mucho más difícil en un navegador web hacer girar texto alrededor de un punto con un contorno girar texto alrededor de un punto con un contorno parpadeante que programarlo a bajo nivel. Al elegir parpadeante que programarlo a bajo nivel. Al elegir usar una API se debe llegar a un cierto equilibrio entre usar una API se debe llegar a un cierto equilibrio entre su potencia, simplicidad y pérdida de flexibilidad.su potencia, simplicidad y pérdida de flexibilidad.

APIAPI

Una API ofrece al programador un cierto nivel de Una API ofrece al programador un cierto nivel de abstracción que enmascara la complejidad de acceso a un abstracción que enmascara la complejidad de acceso a un sistema o aplicación, proponiéndole un conjunto de sistema o aplicación, proponiéndole un conjunto de funciones de las cuales sólo se conocen los parámetros y los funciones de las cuales sólo se conocen los parámetros y los valores devueltos. Asimismo, por analogía con un automóvil, valores devueltos. Asimismo, por analogía con un automóvil, el conductor no necesita conocer la mecánica del motor el conductor no necesita conocer la mecánica del motor para conducir el automóvil. El conductor sólo tiene acceso a para conducir el automóvil. El conductor sólo tiene acceso a la interfaz compuesta por el volante, los pedales la interfaz compuesta por el volante, los pedales (acelerador, embrague, freno), los controles (indicadores, (acelerador, embrague, freno), los controles (indicadores, luces delanteras, caja de cambios), interruptores (luces de luces delanteras, caja de cambios), interruptores (luces de emergencia, luces antiniebla, bocina, etc.). En cierta forma, emergencia, luces antiniebla, bocina, etc.). En cierta forma, es similar a la interfaz presentada al usuario. es similar a la interfaz presentada al usuario.

Gracias a las API, un desarrollador no necesita Gracias a las API, un desarrollador no necesita preocuparse de cómo funciona una aplicación remota ni de preocuparse de cómo funciona una aplicación remota ni de la forma en que las funciones fueron implementadas, para la forma en que las funciones fueron implementadas, para poder utilizarla en un programa. Una API puede estar poder utilizarla en un programa. Una API puede estar disponible para un lenguaje específico o para diversos disponible para un lenguaje específico o para diversos lenguajes de programaciónlenguajes de programación