Está en la página 1de 11

CARBON (API)

Carbon es una API procedimental del sistema operativo Mac OS y que ofrece un alto grado de retrocompatibilidad con el cdigo escrito para versiones de Mac OS Classic (de Mac OS 8.1 en adelante hasta Mac OS 9). Carbon es una de las cinco APIs ms importantes de Mac OS X, junto con Cocoa, Toolbox (para el entorno Classic (Mac OS X) obsoleto), POSIX y Java. Carbon no soporta totalmente 64 bits en Leopard.

DOS:

Esta API ofrece los servicios genricos de todo Sistema Operativo multitarea, como abrir y cerrar ficheros y colas, leer y escribir en ellos, crear nuevos THREADS, semforos, etc.

KBD, VIO y MOU:

estas tres APIs dan acceso a los denominados subsistemas, que son las partes encargadas de virtualizar el acceso a los dispositivos. El API KBD se encarga de la lectura del teclado, el API MOU del ratn, y el API VIO del acceso a la pantalla en modo texto. Todo esto se puede hacer tambin a travs del API DOS, pero el usar los subsistemas da mayor comodidad al usuario, y mayor rapidez a los programas, a costa de una perdida de portabilidad del programa.

WIN:

este API es el que da acceso al Presentation Manager, el gestor de ventanas de OS/2. Permite crear programas de tipo grfico.

ODBC para Servidor de Bases de Datos PostGreSQL ( II ) Continuando con la serie sobre ODBC para Linux, describimos en este artculo la instalacin de los diversos drivers del API ODBC en nuestro sistema operativo favorito, Presentando como ejemplo de aplicacin el complemento ideal de todo gestor de bases de datos: PHP-3.0.1 Introduccin Antes de emprender la instalacin de ODBC es preciso aclarar algunos conceptos de funcionamiento del API de ODBC. Como explicamos en el nmero anterior de Linux Actual, ODBC es un API de interfaz entre clientes de bases de datos y servidores de bases de datos. La figura 1 ilustra este esquema:

figura 1: Estructura en capas del API ODBC


La primera capa constituye la librera del API que utilizan las diversas aplicaciones que "hablan" ODBC. Microsoft proporciona para sus sistemas el fichero ODBC32.DLL, que contienen el API y el interfaz con el sistema operativo, permitiendo a los desarrolladores de controladores ODBC inclur dicha librera en sus distribuciones ( de la misma manera que para la DLL de controles Visual Basic VBRUN.DLL ). Para sistemas UNIX, el proyecto FreeODBC, ha desarrollado su propia librera GPL libodbc.so.x.x que es totalmente compatible con las especificaciones descritas por Microsoft El administrador de orgenes de datos es el responsable del "rutado" de peticiones de ODBC desde la librera hasta los controladores. Para ello se discriminan tres tipos de orgenes de datos: de usuario, de archivo y de sistema. Esta nomenclatura es motivo frecuente de confusin: cuando desde Windows se abre desde el panel de control el men de "controladores ODBC" se encuentra con esta clasificacin, y cuando abre cada una de las ventanas se encuentra con los mismos contenidos... Vamos a explicarlo un poco: Los orgenes de datos de usuario, realmente se refieren a las operaciones que realiza el usuario con su base de datos desde la aplicacin nativa para la que han sido desarrollados, y sin realizar ningn tipo de comparticin con otros usuarios. En cristiano: cuando se trabaja con MS-Access, y no compartes la base de datos ( en UNIX y en WinNT esta disgresin tiene sentido; en Win95 es cuando menos discutible ) Cuando se comparte la base de datos mediante un servidor de ficheros compartiendo fsicamente los datos almacenados en un fichero determinado hablamos de orgenes de datos de archivo. Este mtodo permite, por ejemplo a un usuario de dBase manejar una database de MS-Access, o bien que varios usuarios puedan compartir una misma database

Cuando no se comparte un fichero, sino que se trabaja con la database a travs de un sistema cliente-servidor, hablamos de un origen de datos de sistema. Las aplicaciones ofimticas mas comunes, ofrecen drivers para orgenes de datos de usuario y de archivo, para permitir a los usuarios el poder trabajar, importar y exportar datos entre diversas aplicaciones de gestin. Las aplicaciones de servidores de bases de datos, por contra, proporcionan drivers para orgenes de datos de sistema PostODBC y los drivers de PostGreSQL para iODBC pertenecen a esta ltima categora

Por ltimo, cada origen de datos tiene asociado un controlador, que acta de "pasarela" entre el API y el acceso fsico a los datos Un primer paseo por el API de ODBC En el CD-Rom que acompaa a este nmero de la revista se incluyen bajo el directorio iODBC1.0 los ficheros correspondientes a la libreria ODBC para Linux, y los drivers ODBC para PostGreSQL y MySQL bajo Linux. Descomprimamos el paquete, y echemos un vistazo a los ficheros odbc_types.h y odbc_funcs.h. Estos ficheros constiuyen el el interfaz del API ODBC tal como ha sido definido por Microsoft y definen la lista de funciones y definiciones que todo driver ODBC debe cumplir ( bien totalmente o en parte, en funcin del nivel de conformidad del driver ) Del mismo modo, descomprimiendo los ficheros de la librera iODBC, se obtienen los ficheros isql.h e isqlext.h que contienen las definiciones de tipos de datos y los codigos de las diversas llamadas a la librera del API ODBC. Podemos observar que el API ODBC no es sino una llamada a una funcin de entrada, en la que, dependiendo de los parmetros especificados se realizan unas u otras funciones. Se observa una correspondencia casi lineal entre los cdigos de entrada del API ODBC y las funciones definidas para el driver PostGreSQL. Esta correspondencia, que en Linux/UNIX es lineal, en sistemas MS-Windows "atraviesa" el sistema operativo (?) donde el administrador de orgenes de datos redirecciona las peticiones a los diferentes drivers instalados. En cambio, en Linux/UNIX, la misin del administrador de orgenes de datos es realizada por la propia librera. Existe para ello un fichero iodbc.ini donde se le especifican los drivers y los modos de acceso. Cmo se realiza la conexin entre el API y el driver?. Mediante un sistema de "dynamic loading" de los diversos drivers de cada gestor de base de datos, en funcin de las especificaciones del fichero iodbc.ini El API de ODBC en Linux Llegados a este punto preguntamos: Como funciona de cara al programador la librera ODBC?. La respuesta es ridculamente sencilla: el API ODBC consiste en un interfaz que implementa un mtodo de pasar peticiones en lenguaje SQL a travs de una serie de funciones. Con ODBC podemos: Obtener un puntero de descripcin del entorno de programacion ( algo parecido al XOpenDisplay() de X-Windows ) Crear punteros de conexin, especificando origen de datos y controlador Efectuar conexiones con la database (en nuestro lenguaje: abrir un socket) Crear punteros de peticiones SQL ( bsicamente, obtener estructuras de datos que nos permitan insertar nuestras peticiones ) Ejecutar peticiones sobre la base de datos Recoger resultados de nuestras peticiones Liberar y cerrar todos los recursos previamente asignados

En la prctica, ni todas las aplicaciones, ni todos los controladores de orgenes de datos son capaces de gestionar todas las funcionalidades previstas por el API. Por ello se establecen los denominados "niveles de conformidad SQL" en la aplicacin as como "niveles de conformidad del controlador", que permiten al administrador de orgenes de datos saber qu puede hacer tanto con el driver como con la aplicacin.

Remitimos al lector a la literatura indicada en las referencias para buscar las especificaciones y descripciones de cada nivel de compatibilidad El proyecto FreeODBC ha desarrollado una librera, denominada iODBC, que cumple con las especificaciones del API ODBC 2.0 de Microsoft, y que integra las funciones de API y de administrador de orgenes de datos. ? Cmo se aplica sto en sistemas UNIX? El proyecto FreeODBC ha desarrollado una librera, denominada iODBC, que cumple con las especificaciones del API ODBC 2.0 de Microsoft, y que integra las funciones de API y de administrador de orgenes de datos. Cada servidor de bases de datos provee un driver que hace las funciones de controlador de orgenes de datos y de origen de datos de sistema especfico de cada servidor de bases de datos. Existe un fichero ${HOME}/.iodbc.ini, que indica a la librera libodbc.so.x.x, los controladores de que dispone cada sistema, y cmo se accede a ellos. Todo el interfaz esta implementado mediante libreras dinmicas. El resultado de todo esto, es que el programador se encuentra con un API virtualmente idntico al que se encontrara si estuviera trabajando en una maquina M$Windows En el CD-Rom que se acompaa a esta revista, bajo el directorio odbc/ encontramos el fichero iODBC-1.0.tgz, que contiene: iodbc-2.12 Cdigo fuente de la librera del API de ODBC para UNIX proveniente del Proyecto FreeODBC pgodbc-0.06 Cdigo fuente del driver UNIX para conectar el API iODBC con el servidor PostGreSQL myodbc-2.50.17 Cdigo fuente del driver UNIX para conectar el API iODBC con MySQL

Su instalacin es realmente sencilla, pues basta seguir las instrucciones para tener las libreras libpgodbc.so, libmyodbc.so y libiodbc.so compiladas. Unicamente se deber tener presente el instalar los ficheros include y las libreras de manera que sean accesibles por el resto de las aplicaciones, ( por ejemplo en /usr/local/lib y /usr/local/include ), y modificar el fichero /etc/ld.so.conf para que el comando ldconfig localice dichas libreras y las incluya en el cach Navegando por el Web, podremos encontrar drivers de iODBC para casi todas las bases de datos disponibles en Linux. Buceando por las paginas web, podremos encontrar drivers de iODBC para casi todas las bases de datos disponibles en Linux. De hecho, Los desarrolladores de iODBC han decidido inclur en sus nuevas releases todos los drivers de aquellas bases de datos que libremente los provean, incluyendo adems de serie la pasarela JDBC-ODBC. Un Ejemplo prctico: PHP-3.0.1 Para que nuestro servidor de bases de datos est completo nos falta un componente imprescindible en todo servidor de informacin: el poder hacer consultas a la base de datos desde el Web. Para ello Linux dispone de la herramienta ideal: PHP PHP es un lenguaje de scripting con sintaxis tipo C, orientado a la generacin de pginas Web. Al igual que Perl, puede ser invocado como un CGI script desde el servidor, o bien, insertado en documentos HTML mediante clusulas <?php..... ?>. Estas tags son detectadas por el servidor web, que las "intercepta" y transfiere al programa PHP que las interpreta, dando por su salida estandard el cdigo HTML que el programador desea

Asmismo, PHP es capaz de tomar y procesar los parmetros procedentes de un FORM, convirtindolos directamente a variables del lenguaje, que pueden ser utilizadas a voluntad. La caracterstica de PHP que nos interesa, es que tiene soporte directo de funciones de acceso a las diversas bases de datos existentes para Linux, incluyendo -cmo no- a PostGreSQL, y a ODBC. PHP es un lenguaje de scripting con sintaxis tipo C, orientado a la generacin de pginas Web. A la hora de instalarlo en nuestro sistema deberemos decidir: Si lo vamos a instalar como programa independiente ( al estilo Perl ) o como mdulo cargable desde el servidor Apache. Esta ltima opcin es la ms recomendable, pero tiene el inconveniente de requerir la recompilacin del servidor Apache. Las funcionalidades y lista de servidores de bases de datos soportados. En relacin con nuestra serie de artculos podemos seleccionar: o Soporte para PostGreSQL o Soporte para acceso al driver ODBC o Soporte para acceso a travs de la librera iODBC Deberemos tambin especificar los diversos parmetros de funcionamiento: safe-mode, ejecucin paralela, utilidades de compresin/descompresin, utilidades grficas, modos de funcionamiento, etc.

En el Listado 1 se indican las funciones ODBC que soporta PHP, as como sus parmetros. Del mismo modo, en el CD-Rom bajo el directorio listados se incluyen una serie de ejemplos de paginas web con extensiones php ( ficheros .pthml ) que ilustran el manejo de php con accesos a la base de datos que se cre de ejemplo en el artculo anterior Unified ODBC Functions (int) odbc_autocommit($connection_id, $OnOff) (void) odbc_close($connection_id) (void) odbc_close_all(void) (int) odbc_commit($connection_id) (int) odbc_connect($dsn, $user, $password) (int) odbc_pconnect($dsn, $user, $password) (string) odbc_cursor($result_id) (int) odbc_do($connection_id, $query_string) (int) odbc_exec($connection_id, $query_string) (int) odbc_prepare($connection_id, $query_string) (int) odbc_execute($result_id, $array) (int) odbc_fetch_row($result_id, $row_number) (int) odbc_fetch_into($result_id, $row_number, $array_ptr) (int) odbc_field_len($result_id, $field_number) (string) odbc_field_name($result_id, $field_number) (string) odbc_field_type($result_id, $field) (int) odbc_free_result($result_id) (int) odbc_num_fields($result_id) (int) odbc_num_rows($result_id) (string) odbc_result($result_id, $field) (int) odbc_result_all($result_id, $format) (int) odbc_rollback($connection_id)

Listado 1: Funciones ODBC soportadas por PHP Remitimos al lector al manual para proceder a la instalacin. Es algo complicado, y normalmente implica una recompilacin del servidor Apache, pero los resultados compensan con creces el esfuerzo dedicado. Prestemos atencin a como PHP implementa las diversas funciones de llamada al API ODBC o al driver ODBC que tengamos instalado. Para ello echemos un vistazo al fichero functions/unified_odbc.c . En el se enumeran todas y cada una de las funciones del API ODBC, y se efecta una translacin entre las funciones PHP y las funciones equivalentes del API. En funcin de los parmetros de configuracin indicados en el momento de la compilacin, PHP utilizar bien el API iODBC, o bien acceder directamente al driver ODBC del servidor de bases de datos que tengamos instalado. Esta ltima configuracin tiene un inconveniente: impide que podamos tener varios servidores que hablen ODBC accesibles desde el servidor Web. En un primer momento, esto puede parecer que no tiene sentido, pero pinsese que iODBC permite el uso de varios servidores de bases de datos simultaneamente, por lo que podramos utilizar la librera como un "tnel" de acceso a un servidor de databases remoto que careciera de servidor web. Conclusin En este segundo artculo dedicado a la conectividad ODBC, se han introducido los conceptos bsicos de dicho sistema. Asimismo hemos aprendido a instalar y configurar los drivers ODBC para PostGreSQL y las libreras ODBC para Linux/UNIX, poniendo como ejemplo de aplicacin el interfaz web de acceso a base de datos PHP En el prximo nmero de Linux Actual, finalizaremos la serie sobre ODBC, explicando la forma en que debemos instalar los drivers ODBC para PostGreSQL en sistemas Microsoft Windows3.XX y Windows-95, con ejemplos de utilizacin desde MS-Access-97.

WeFi API para Android

Aprovechando el MWC 2010, la gente de WeFi, una comunidad global que localiza redes WiFi, lanz una nueva API para los desarrolladores de Android que les permitir a las aplicaciones utilizar la tecnologa detrs de WeFi.

Para ponerlo simple, eso significa que los developers de Android van a poder poner una lnea de cdigo en sus aplicaciones que permitir conexin rpida a los hotspots de WeFi en todo el mundo adems de poder crear softwares para guiar a los usuarios a las redes WiFi ms cercana, por ejemplo. Y algunos ya estn aprovechando esta API: LookATOR de Loft: una aplicacin de realidad aumentada para encontrar mejores accesos WiFi Safe Network de DroidSecurity: usa la API de WeFi para controlar los procesos de conectividad de WiFi y verificar su nivel de seguridad. ZooVision: agregador de contenido de video streaming mvil que utiliza las redes WiFi gracias a la API.

Biblioteca API de MiniSQL

Introduccin MiniSQL o mSQL es una base de datos de acceso rpido y almacenamiento simple con requerimientos mnimos de memoria, lo que la hace adecuada para publicar informacin en el Web. Como su nombre lo indica ofrece un subconjunto de sentencias SQL como interfaz de consulta. Se ha diseado para funcionar sobre plataformas Unix, y se ofrece gratuitamente en Internet. El paquete de distribucin incluye: 1. Motor("Engine") de la base de datos. 2. Programa interactivo para administracin de la base de datos. 3. Visor de Esquemas. 4. Bibliotecas API para Lenguaje C. Las bibliotecas API proveen una serie de funciones que permiten establecer comunicacin con una base de datos MiniSQL desde un programa en Lenguaje C, en el cual se pueden incrustar sentencias SQL. La razn principal por la cual las bibliotecas API se han diseado para Lenguaje C, es porque la mayora de sistemas Unix traen consigo un compilador para este lenguaje de programacin. Con un escrito C es posible construir una interfaz entre el Web y cualquier otro tipo de aplicacin; API facilita esta tarea ya que permite interactuar con una base de datos MiniSQL a travs de una serie de bibliotecas previamente elaboradas. Consecuentemente, es necesario poseer conocimientos bsicos de programacin C para construir una interfaz haciendo uso de API. Caractersticas Tanto el API como el motor de la base de datos MiniSQL se han diseado para trabajar en un ambiente Cliente/Servidor con una red TCP/IP. El "motor" de la base de datos acta como servicio (daemon), que est a la espera de solicitudes de conexin por parte de diversos clientes entre ellos los programas C que empleen API. Las principales funciones que API ofrece son: msqlConnect(): Establece una conexin con el motor de MiniSQL. msqlSelectDB(): Elige la base de datos. msqlQuery(): Enva una sentencia SQL a la base de datos seleccionada. msqlStoreResult(): Se recupera la informacin retornada desde la base de datos a partir de una consulta SELECT. msqlFreeResult(): Libera el manejador de una sentencia SELECT. msqlFetchRow(): Obtiene una fila del conjunto resultante de una sentencia SELECT. msqlDataSeek(): Mueve el cursor de una sentencia SQL hacia la prxima fila de resultado. msqlNumRows(): Obtiene el nmero de filas o registros obtenidos. msqlClose(): Cierra la conexin establecida con el motor de MiniSQL.

Para efectos de integracin con el Web, un escrito C que haga uso de API debe seguir el siguiente algoritmo:

1. Incluir archivo de cabecera para emplear bibliotecas API. 2. Descodificar entrada proveniente de la forma. 3. Imprimir Tipo de Contenido a desplegar en el Browser. 4. Establecer conexin con servicio de MiniSQL. 5. Construir dinmicamente sentencia SQL en base a datos ingresados por el usuario en el formulario. 6. Ejecutar sentencia SQL. 7. Si la sentencia SQL incluye el comando SELECT, se debe manipular la informacin proveniente de la base de datos. 8. Desplegar resultados en formato adecuado. Con API, el procedimiento para comunicarse con una base de datos MiniSQL a travs del Web da inicio cuando un usuario especifica determinados criterios en su browser, los cuales en el escrito C se transforman en sentencias SQL que son enviadas, a travs de API, al servicio de MiniSQL para obtener los resultados deseados desde la base de datos. Esto se visualiza en la Fig. 4.

Figura 4. Arquitectura del funcionamiento de Bibliotecas API para MiniSQL. Acceso a escritos C Un programa C que emplee API y adems acte como interfaz entre el Web y mSQL, es referido como cualquier programa CGI, es decir: http://<servidor_web>/<dir-cgi>/programa <servidor_web>: Es la direccin IP o alias del Servidor Web. <dir-cgi>: Ruta del directorio de escritos CGI del Servidor Web. programa: Programa ejecutable de escrito C. Requerimientos del Sistema Cualquier procesador que soporte Sistemas Unix. 8 Mb en memoria RAM(mnimo). 3 Mb espacio en disco duro.

Compilador de Lenguaje C para Unix. Servidor Web que soporte CGI.

Compatibilidad Sistemas Operativos La mayora de Sistemas Unix: Sun OS 4.1.1 Solaris 2.3 Ultrix 4.3 Linux OSF/1 HP-UX NeXT SCO Sequent, etc.

Bases de Datos MiniSQL. Servidores Web Todo Servidor Web que soporte CGI: Apache, NCSA CERN, etc. Disponibilidad La base de datos MiniSQL y su correspondiente API para C, se ofrecen gratuitamente en http://Hughes.com.au/software/msql1/. Fue desarrollada por Hughes Technologies con el objetivo de difundirla, por lo cual exige los ms mnimos requerimientos de todo sistema UNIX. La pgina Web donde se encuentra toda la informacin sobre MiniSQL es http://Hughes.com.au. El paquete de distribucin incluye: Motor("Engine") de la base de datos. Programa interactivo para administracin de la base de datos. Visor de Esquemas. Bibliotecas API para lenguaje C. Documentacin y Ejemplos.

Sumario de la Interfaz Nombre DBMS Sistema Operativo Disponibilidad Arquitectura Libreras API para MiniSQL MiniSQL ver. 1.0.16 Amplia variedad de Unix Gratuita en Internet por Hughes Technologies en: http://Hughes.com.au/software/msql1 Programas CGI ejecutables en Lenguaje C. Que deben

establecer conexin con una base de datos mSQL cada vez que se invocan. Caractersticas CGI construido a partir de un escrito C. Se debe establecer conexin con la base de datos MiniSQL cada vez que se ejecuta el escrito. Se comunica con mSQL a partir de sentencias SQL

También podría gustarte