• No results found

3. EXPERIMENTAL APPROACH

3.1. Materials

3.2.4. Atomic Force Microscopy (AFM)

Bajo todas las especificaciones antes expuestas, y valorando los diversos recursos con que contamos actualmente, nos decidimos a usar para desarrollar

la solución Biofasis® (Biofasis® Planner), el lenguaje PHP (PHP Versión 5.1.2-2)

¿Por qué PHP?

En primer lugar, PHP es un lenguaje diseñado desde cero con el fin único de construir aplicaciones Web. Esto quiere decir que las tareas más habituales en el desarrollo de estas aplicaciones, pueden hacerse con PHP de forma fácil, rápida y efectiva. Otros lenguajes, como ASP (VBS), Perl o Java serán sin duda más completos y potentes, pero no fueron diseñados con este enfoque especializado.

En segundo lugar, PHP resulta fácil de aprender para recién llegados al mundo de la programación.

PHP es un lenguaje multiplataforma, y no propietario. Un script PHP normal puede ejecutarse sin cambiar ni una sola línea de código en cualquier servidor que interprete PHP, es decir, en servidores Windows, Linux etc. ASP, por contra, es un lenguaje propietario de Microsoft® y solo puede ejecutarse en servidores Microsoft®. Perl si puede ejecutarse bajo Windows y Unix, pero antes hay que realizar labores de adaptación de cada script al concreto sistema operativo. PHP esta en el entorno OpenSource. Esto quiere decir que en su desarrollo hay un proceso de colaboración que hace que se tengan inmediatamente disponibles, de forma gratuita, una enorme cantidad de recursos: el lenguaje en si, el servidor para ejecutarlo, manuales y tutoriales sin fin, y sobre todo scripts, que pueden ser descargados y usados en cuestión de minutos. Esta abundancia de código libremente disponible ayuda aun más en el proceso de aprendizaje. PHP combina excelentemente con otras inmejorables herramientas, como son el servidor Apache y la base de datos MySQL (o mSQL, o PosgreSQL), todas ellas gratuitas.

PHP es la gran opción de desarrollo de aplicaciones Web porque el código de PHP se ejecuta sin cambios en una gran variedad de sistemas, cosas que no pueden decir otras herramientas como ASP de Microsoft® y en distintos servidores.

PHP tiene muchas virtudes que lo han convertido en el lenguaje elegido de muchos desarrolladores. Podríamos resumir sus ventajas en la siguiente lista:

• La facilidad de aprendizaje del lenguaje.

• La gran cantidad de funciones desarrolladas (PHP incorpora mas de 1000

funciones)

• La amplia disponibilidad de secuencia de comandos regenerados en PHP

• La capacidad de incrustar código PHP en las páginas HTML

• El código fuente es abierto y gratuito

Quizás la característica más potente y destacable de PHP es su soporte para una gran cantidad de bases de datos. Escribir un interfaz vía Web para una base de datos es una tarea simple con PHP. Las siguientes bases de datos están soportadas actualmente:

• Adabas D

• Ingres

• Oracle (OCI7 and OCI8)

• dBase • InterBase • PostgreSQL • Empress • FrontBase • Solid • FilePro • MSQL • Sybase • IBM DB2 • MySQL • Velocis • Informix • ODBC • Unix dbm

PHP también tiene soporte para gran cantidad de estándares de red: LDAP, Corba, Calc, FTP, IMAP, POP3, NNTP, NIS, SMNP, HTTP y derivados. También

se pueden abrir sockets de red directos (raw sockets) e interactuar con otros protocolos.

Y además PHP también ofrece:

• Soporte de Plantillas Dinámicas y Caché de Plantillas.

• Multiplataforma y multiservidor Web

• Soporte XML, WDDX, XSLT, DOM

• Extensa documentación

• Soporte expresiones regulares (de perl, posix y propias).

• Generación on-the-fly de Imágenes, Flash y PDF.

• Con la última versión de PHP, también viene incorporado, además de

todo lo anterior, el soporte de sesiones.

Sistema de Bases de Datos: MySQL®

MySQL® se ha convertido en la más popular base de datos de código abierto del mundo, debido a su consistente rápido rendimiento, su alta fiabilidad y su facilidad de uso. Esta siendo usado en más de 8 millones de instalaciones, extendiéndose desde grandes corporaciones a aplicaciones especializadas ubicadas en cada continente en el mundo, incluida la Antártica.

No es solo MySQL® las mas popular base de datos del mundo, es también la base de datos por excelencia para una nueva generación the aplicaciones construidas en la pila de LAMP (Linux, Apache, MySQL, PHP / Perl / Python). MySQL® se ejecuta en mas de 20 plataformas, incluidas Linux, Windows, OS/X, HP-UX, AIX, Netware, dando la flexibilidad que permite su control.

Tanto para usuarios no tan avanzados en la tecnología de bases de datos o como para experimentados desarrolladores de DBA, MySQL® ofrece una amplia gama de software certificado, soporte, entrenamiento y consultoría para hacer satisfactorio el uso de esta herramienta.

Plataforma de Trabajo: Biblioteca PHPLib

PHPLib es marco de desarrollo de aplicaciones en PHP, que provee una vía orientada a objetos de fácil uso, para el manejo de sesiones, autenticación y permisos en la aplicación PHP en cuestión. PHPLib también contiene varias clases ayudantes, entre las que se destacan DB_sql, plantillas, formas HTML Orientadas a Objeto (OOH Forms) y Carrito de compras (Cart).

Esta biblioteca provee ayuda para el desarrollo de aplicaciones Web de mediano y gran tamaño, en manejo de datos. "Aplicaciones Web de mediano y gran tamaño" se define como las aplicaciones que contienen múltiples consultas a bases de datos, tienen que generar tablas desde los datos de la base de datos, necesitan de una interfaz de usuario que genere consultas SQL o una forma confortable y amigable para proteger páginas y funcionalidades en las páginas. "Aplicaciones de manejo de datos" son aquellas que usan una base de datos con soporte SQL para crear contenido HTML y que usan formas HTML para conducir las transacciones.

Las características principales de PHPLib se podrían resumir describiendo las siguientes clases:

DB_Sql. Esta clase es una abstracción de las bases de datos. Hasta el momento hay 8 implementaciones: MySQL, MSSQL (MS SQL Server), PostgreSQL, ODBC, Sybase, MSQL, Oracle y OCI8. Básicamente esta clase realiza todas las tareas de acceso a BD que se harían mediante las funciones de PHP, con la diferencia que PHPLib lo hace de forma abstracta. Esto permite cambiar de BD sin la necesidad re-escribir el código fuente.

Session. Se encarga del manejo de sesiones. El manejo de sesiones lo hace a través de cookies del navegador.

Auth. Se encarga de la "autenticación" de las sesiones. Esto se hace a través de un usuario/contraseña y se puede configurar un tiempo de expiración.

Perm. Se encarga del manejo de permisos. Se puede proteger una página entera o sólo cierta parte de ella. De no tener los permisos necesarios se muestra una pantalla de autenticación. Esta clase facilita enormemente la creación de un sistema de privilegios basado en perfiles de usuario, donde cada perfíl de usuario permitirá el acceso a sólo una cierta parte de la Base de Datos, o por ejemplo, a sólo ciertos módulos/opciones de la aplicación web.

Cart. El típico Carro de Compras para aplicaciones web de comercio electrónico.

Template. Una implementación de Templates, o plantillas HTML. Uno de los problemas fundamentales con lenguajes como PHP, donde se mezcla el código PHP con el código HTML, es que no está bien delimitado el campo del diseñador HTML y del programador y que el código resultante puede ser complejo de entender y por lo tanto, muy complicado de mantener. Esta clase permite separar el diseño de la programación de aplicaciones Web.

Se podrían destacar las siguientes ventajas del uso de PHPLib:

• El uso de clases permite crear aplicaciones de manera rápida,

reutilizando código que resulta de fácil mantención.

• La abstracción de la Base de datos permite escalar la aplicación a otro

motor de base de datos sin tener que modificar el código de la aplicación, basta con modificar un archivo de configuración del PHPLib.

• Al separar el código PHP del código HTML, mediante el uso de plantillas,

se permite que personas sin conocimientos de programación, como por ejemplo un diseñador gráfico, pueda modificar la apariencia de un sitio de manera rápida y sin problemas.

• El sistema de sesiones, autenticación y privilegios que ofrece PHPLib permite crear módulos individuales, restringidos para ciertos usuarios. Los perfiles de los usuarios se mantienen en la Base de Datos, permitiendo una fácil mantención. Las contraseñas de los usuarios se guardan encriptadas. [Muñ04]

Related documents