Sunteți pe pagina 1din 20

CAPITULO 4

ESTUDIO COMPARATIVO ENTRE SOFTWARE DE DESARROLLO

- 45 -

Captulo 4 ESTUDIO COMPARATIVO DE SOFTWARE DE DESARROLLO


La Bolsa Internacional de Turismo del Ecuador requiere un servidor web y un lenguaje de programacin que cumplan con todas las caractersticas necesarias como: seguridad, flexibilidad, robustez, etc., para la realizacin del portal web ETM, tomando en cuenta el costo, el tiempo para el desarrollo y la implementacin del sitio web, y considerando tambin que el evento es a nivel internacional. Es por ello que en el presente captulo se analizar los diferentes lenguajes de programacin y los diversos servidores web que existen actualmente, a fin de escoger el ms apropiado para el desarrollo del portal.

4.1

CONCEPTO DE SOFTWARE DE PROGRAMACIN.

Un software de programacin tiene como principal objetivo computarizar la parte lgica de un sistema informtico, mediante un conjunto de instrucciones o secuencias, que permiten controlar las actividades realizadas por el usuario, para ello utiliza una serie de lenguajes que facilitan el proceso de programacin.

Un lenguaje de programacin comnmente conocido como cdigo de mquina o lenguaje de mquina, consiste en un conjunto de smbolos y reglas sintcticas y semnticas que definen la estructura y el significado de las expresiones, es decir, son herramientas que permiten crear programas y software con la finalidad de controlar el comportamiento de un computador. 8

haideeperez75.blogspot.com/feeds/posts/default

- 46 -

Existen diferentes lenguajes de programacin cada uno de ellos implica objetivos distintos, lo cual facilita a los programadores especificar de manera precisa cmo deben operar los datos sobre una computadora y, que acciones deben tomar en determinadas circunstancias, adems, permite definir cmo deben ser almacenados y transmitidos dichos datos. Todo esto, a travs de la implementacin de un lenguaje que intenta estar relativamente prximo al lenguaje humano o natural, tal como sucede con el lenguaje Lxico. Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un programador pueda tener un conjunto comn de instrucciones que puedan ser comprendidas entre ellos para realizar la construccin del programa de forma conjunta.

4.1.1

Clasificacin de los Lenguajes de Programacin: 9 Segn su nivel de abstraccin

Lenguajes de bajo nivel: Los lenguajes de programacin se clasifican en lenguajes de bajo nivel debido a que se acercan al funcionamiento de una computadora, es decir, es el lenguaje de ms bajo nivel, conocido como cdigo mquina. A ste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa.

Lenguajes de medio nivel: Existen lenguajes de programacin que son como lenguajes de medio nivel (como es el caso del lenguaje C), ya que posee ciertas caractersticas que los acercan a los lenguajes de bajo nivel, pero teniendo al mismo tiempo, ciertas cualidades que lo hacen un lenguaje de alto nivel ms cercano al humano.

http://es.wikipedia.org/wiki/Lenguaje_de_programaci%C3%B3n

- 47 -

Lenguajes de alto nivel: Los lenguajes de alto nivel son normalmente fciles de aprender por los programadores, porque estn formados por elementos de lenguajes naturales, como el ingls. Segn la forma de ejecucin

Lenguajes compilados: Los programadores naturalmente escriben o desarrollan sus programas en un lenguaje de alto nivel comprensible para ellos, pero tambin las instrucciones tienen que ser entendidos por la mquina. Los programas traductores que pueden realizar esta operacin se llaman compiladores, cuya funcin es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje mquina con cdigo binario). Estos pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Se requiere una corrida de compilacin antes de procesar los datos de un problema. Al utilizar un lenguaje compilado, el programa desarrollado nunca se ejecuta mientras existan errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el cdigo.

Lenguajes interpretados: Un programador puede utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel, para ello se puede usar un lenguaje intrprete que consiste, en cargar el programa fuente en la computadora junto con los datos que se van a procesar, en lugar de utilizar un compilador que consiste en traducir el programa fuente y grabar en forma permanente el cdigo objeto. Es decir, un lenguaje intrprete, almacena en el sistema operativo, especficamente en el disco

- 48 -

duro del computador de manera permanente el programa y convierte cada proposicin del programa fuente en lenguaje de mquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el cdigo objeto para utilizarlo posteriormente.

Un lenguaje intrprete elimina la necesidad de realizar una corrida de compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o corregir errores; pero hay que tener en cuenta que un programa objeto compilado con antelacin deber ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de produccin. Segn el paradigma de programacin

Un paradigma de programacin representa un enfoque en particular para la construccin de un software, es decir, para que un computador realice una tarea en especfico, se debe programar para que cumpla con las funciones para lo cual fue construido. Es importante tener en cuenta que no es mejor uno que otro sino que cada uno tiene ventajas y desventajas. Los paradigmas de programacin, se pueden clasificar los lenguajes en:

Lenguajes imperativos: Un lenguaje imperativo es tal vez el ms conocido y utilizado en el proceso de programacin, donde los programas se desarrollan a travs de procedimientos. Imperativo proviene de la palabra latina significa "dar instrucciones". Una buena parte del software actual ha sido desarrollado y escrito en lenguajes imperativos, entre los principales lenguajes imperativos existen: Pascal, BASIC, C, Java, C++, Perl.

- 49 -

Lenguajes Funcionales: La programacin funcional se caracteriza por el uso de expresiones y funciones, es decir, un programa dentro del paradigma funcional, es una funcin o un grupo de funciones compuestas por funciones ms simples establecindose que una funcin puede llamar a otra, o el resultado de una funcin puede ser usado como argumento de otra funcin, entre los principales lenguajes funcionales existen: Lisp, Haskell, Miranda, Ocaml, etc.

Lenguajes Lgicos o declarativos: La programacin lgica es potencialmente de ms alto nivel que la programacin funcional o la imperativa. El lenguaje ms popular enmarcado dentro de este paradigma es el lenguaje PROLOG. El auge del paradigma declarativo se debe a que el rea de la lgica formal de las matemticas ofrece un sencillo algoritmo de resolucin de problemas adecuado para, usarse en un sistema de programacin declarativo de propsito general.

Lenguajes orientados a objetos: El paradigma orientado a objetos, se basa en los conceptos de objetos y clases de objetos. Un objeto es una variable equipada con un conjunto de operaciones que le pertenecen o estn definidas para ellos. El paradigma orientado a objetos actualmente es el paradigma ms popular, entre los principales lenguajes orientados a objetos existen: Action Script, VB.NET, PHP, Python, Ruby, Java, etc.

4.1.1.1

EJEMPLOS DE LENGUAJES DE PROGRAMACION Nivel Abstraccin de Forma de Ejecucin Paradigma Programacin de

Clasificacin Lenguajes

- 50 -

Bajo Nivel

Ensamblador (Borlance, mquina, etc) cdigo

Medio Nivel Alto Nivel Compilados

C, C++, BCPL, etc Lxico, Logo, Ada. Fortan, Cobol, Pascal, etc.

Interpretados Imperativos

Lisp, Algol, etc. Pascal, C, etc. Pascal, BASIC, C, Java, C++, Perl, etc.

Funcionales

Lisp,

Haskell,

Miranda, Ocaml, etc Lgicos declarativos Orientado a Objetos Prolog Payton, Ruby, Java, PHP, VB.net, etc. Tabla 2. Ejemplos de lenguajes de programacin segn su clasificacin Fuente: La autora

4.2

COMPARACIN DE SOFTWARE DE DESARROLLO.

En base a los conceptos anteriormente analizados, utilizando un lenguaje de alto nivel, un programa compilador y considerando el paradigma de programacin orientado a objetos, se realizar una comparacin entre los diferentes software de desarrollo para la Web, con la finalidad de elegir el ms apropiado para el desarrollo del portal ETM.

4.2.1 Lenguaje de Programacin Web: PHP PHP Group es el creador de PHP, cuyas siglas significan Hypertext Pre-processor, surgi en 1995 inicialmente se lo llam Personal Home Page. Es un lenguaje de alto nivel interpretado en el lado del servidor utilizado para la generacin de pginas Web dinmicas que permite la tcnica de programacin orientada a objetos, a ms que

- 51 -

facilita la incrustacin de cdigo PHP en pginas HTM, adems PHP es un lenguaje multiplataforma con la capacidad de expandir su potencial utilizando una enorme cantidad de mdulos llamados extensiones exts , tambin es un software de libre distribucin disponible bajo licencia GPL(que es), lo que facilita el acceso por medio de la web.

PHP utiliza una mezcla de interpretacin y la compilacin lo que facilita el rendimiento y la flexibilidad, es decir, PHP compila una serie de instrucciones que son ejecutadas una por una hasta que el script termina, ya que es recompilado cada vez que se solicita las instrucciones, lo que ahorra una gran cantidad de tiempo al recompilar cada vez que se realicen cambios, una vez finalizado el script automticamente se vaca la memoria RAM utilizada, pero la conexin con la base de datos permanecer abierta, adems la mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas caractersticas especficas por lo cual, PHP no soporta punteros de forma que no existen problemas de depuracin

Para su correcto funcionamiento el lenguaje de programacin PHP necesita tener instalado Apache o IIS con sus respectivas libreras, aunque PHP tambin se puede instalar en un gran nmero de servidores Web. Adems PHP utiliza una combinacin con el motor de Base de Datos MySQL, aunque cuenta con un soporte nativo para otros motores como ODBC, lo que ampla las posibilidades de conexin.

PHP es utilizado con mayor frecuencia para el desarrollo de pginas Web dinmicas, especialmente para comercio electrnico ya que brinda la confianza y rapidez necesaria para la autentificacin de informacin, mediante un conjunto de funciones de seguridad que previenen la insercin de rdenes dentro de una solicitud de datos, adems, este lenguaje viene acompaado de una excelente biblioteca de funciones, motivo por el cual, permite realizar cualquier tipo de tarea como: encriptacin, envo de correo electrnico, gestin de e-commerce, xml, creacin de PDF y acceso a bases de datos, etc. PHP utiliza el protocolo Secure Sockets Layer (SSL), mediante el cual, - 52 -

se permite a los usuarios intercambiar informacin cifrada mediante el protocolo HTTPS (seguro). SSL ofrece seguridad en ambas direcciones: la informacin se transmite al usuario mediante cifrado, y la informacin enviada por el usuario a la aplicacin est asimismo cifrada. Para utilizar SSL y cifrado, se debe obtener un certificado, dicho certificado es una firma digital que identifica al sitio de forma que no pueda representarse.

4.2.2 Lenguaje de Programacin Web: JSP La empresa Sun Microsystems es el creador de JSP, cuyas siglas significan Java Server Pages, es una tecnologa orientada a objetos para la creacin de pginas Web dinmicas mediante un lenguaje de scripting en el lado del servidor que se comunica con clases Java, objetos como: RMI, CORBA, etc., es decir, con JSP se pueden crear aplicaciones Web en mltiples plataformas que se ejecutan en diversos servidores Web, adems se puede incluir cdigo HTML/XML lo que facilita la programacin.

La tecnologa Java soporta las tres caractersticas propias del paradigma orientado a objetos como son: encapsulacin, herencia y polimorfismo, ya que Java es un lenguaje robusto porque reduce un 50% de los errores ms comunes de programacin debido a que realiza verificaciones buscando problemas tanto en tiempo de compilacin como en tiempo de ejecucin.

JSP puede precompilar el cdigo, ya que posee un motor de pginas basado en Servlets de Java (subclases que contienen mtodos para atender diversos requerimientos destinados a ejecutase en el servidor). Este motor JSP lleva a cabo una fase de traduccin de la pgina en un servlet, implementado en un archivo class (Bytecode de Java), dicha fase de traduccin se lleva a cabo habitualmente cuando se recibe la primera solicitud de la pgina .jsp, ya que al precompilar el cdigo se evita el tiempo de espera de la primera vez que un cliente solicita la pgina.

- 53 -

JSP posee caractersticas similares a las de ASP o PHP en la construccin de pginas Web potentes, y para su correcto funcionamiento se debe tener instalado un servidor de aplicaciones Tomcat, JSP mejora el rendimiento debido a que maneja mltiples peticiones en un instante dado, lo que facilita el compartir los recursos entre las diversas peticiones. Asimismo JSP permite la conexin con varias bases de datos ya que cuenta con un soporte nativo para otros motores como ODBC, adems este lenguaje de programacin es usado para la creacin de portales Web que brinden servicios de comercio electrnico, puesto que mantiene la seguridad de los datos al impedir la interrupcin de los mensajes que se envan entre los usuarios, para ello utiliza SSL similar a PHP, su principal ventaja es que el cdigo se encuentra separado de la lgica del programa, lo cual permite separar la parte dinmica de la esttica de las pginas Web, por ende el desarrollo se vuelve independiente. Una de sus mayores desventajas es que el cdigo utilizado posee cierta complejidad de aprendizaje para los programadores.

4.2.3 Lenguaje de Programacin Web: ASP.NET En 1996 la Compaa Microsoft desarroll ASP.NET cuyas siglas significan Active Server Pages .Net, es una tecnologa para la creacin de pginas Web dinmicas e interactivas al lado del servidor y permite enviar peticiones que ha solicitado el cliente (navegador Web), ejecutando previamente el cdigo que contienen (cdigo C#, C++, Visual Basic, J# etc.) y convirtiendo el resultado a cdigo HTML, que es el nico que puede interpretar adecuadamente el cliente. La clave de este proceso es que, a diferencia de la navegacin clsica en que el servidor espera (escucha) peticiones del cliente y, cuando las recibe (escucha), enva automticamente la respuesta, aqu el servidor ejecuta algn tipo de procesamiento a raz de la peticin del cliente y elabora dinmicamente la respuesta que devuelve, para el intercambio de dicha informacin entre los usuarios, ASP.net utiliza CGI (Common Gateway Interface) con lo cual se facilita la comunicacin cliente servidor ya que esta tecnologa requiere una aplicacin separada desde un documento Web para procesar todos los datos regresados al servidor. Una pgina ASP.net puede ser escrita en lenguajes de script entre los que se

- 54 -

incluyen: PerlScript, JScript y VBScript un subconjunto de Visual Basic, siendo esto una de sus grandes ventajas; ya que la mayora de los programadores tiene conocimiento de estos lenguajes, asimismo el cdigo ASP.net puede ser insertado junto con el cdigo HTML, lo que facilita la programacin de pginas Web. Para el correcto desarrollo de pginas .asp se requiere la instalacin de Internet Information Server (IIS) siendo esto su mayor limitante, ya que ASP.net no es multiplataforma debido a que corre sobre un Sistema Operativo Windows NT, aunque en la actualidad se han desarrollado herramientas para portar ASP.net a otras plataformas, la potencia de ASP.net est en el uso de objetos Active-X, que slo estn disponibles para plataformas Windows. Las pginas ASP.net hacen uso de objetos COM (Component Object Model), es decir, estas pginas a travs de IIS pueden hacer uso de los mtodos de estos objetos; para la conexin con la Base de Datos normalmente se utiliza ADO que es un adaptador universal que facilita la comunicacin ptima con la base de datos propia de Microsoft, SQL Server. ASP.net realiza varias tareas apoyndose en objetos que deben ser comprados a ciertas empresas especializadas, ya que no es un software libre. ASP.net es un lenguaje de programacin bastante seguro y es usado para la construccin de aplicaciones ECommerce ya que es ms rpido, eficiente, poderoso y extremadamente fcil de utilizar. ASP.net mantiene la integridad, confidencialidad de los datos, todo ello debido a que realiza la autenticacin y autorizacin con lo cual se permite establecer quines son los usuarios y los recursos a los pueden tener acceso. Estas caractersticas de seguridad han sido diseadas principalmente para proteger la aplicacin Web de usos no autorizados, para ello utiliza SSL como fue en el caso de PHP.

4.2.4 Lenguaje de Programacin Web: RUBY ON RAILS El japons Yukihiro Matsumoto en 1993, desarroll del lenguaje dinmico Ruby on Rails interpretado de muy alto nivel y orientado a objetos de una manera coherente (todos los tipos de dato son objetos, a diferencia de Java), su sintaxis est inspirada en Phyton y Perl. Es distribuido bajo licencia de software libre (Opensource) y es multiplataforma, es decir, Ruby on Rails es completamente cdigo abierto, est - 55 -

disponible para todos los sistemas operativos y hay libreras para casi todas las interfaces grficas, clculo cientfico, bases de datos, sockets, CGI, etc. Una de las principales ventajas de Ruby on Rails es que utiliza Active Record lo que lo hace simple, funcional, eficiente; agilitando el desarrollo de forma notable, ya que minimiza el trabajo con la base de datos (al escribir triggers y procedimientos almacenados) y emplear un nico lenguaje para todo el desarrollo, se consigue acortar los tiempos de desarrollo.

Ruby on Rails tambin conocido como RoR es un entorno de programacin web, aparentemente sencillo pero internamente complejo ya que es un lenguaje muy intuitivo casi a un nivel de lenguaje humano, tiene como principal objetivo facilitar el desarrollo de pginas web de una manera rpida y sencilla ya que su sintaxis es simple y consistente, debido a que maneja una gestin de memoria automtica que lo hace muy potente para el manejo de cadenas y expresiones regulares puesto que no se necesita declarar las variables. Qu es Ruby? Ruby es un lenguaje de programacin netamente orientado a objetos con una notable complejidad, diseado para un desarrollo rpido y sencillo de pginas web que nace como resultado de una mezcla de las fortalezas de los principales lenguajes de programacin actuales. Se caracteriza por ser: 1 2 3 4 5 6 Mxima productividad. Fcil de aprender. Posibilidad de hacer llamadas directamente al sistema operativo. Muy potente para el manejo de cadenas y expresiones regulares. La sintaxis es simple y consistente. Gestin de memoria automtica.

Qu es Rails? Rails es un entorno para desarrollar aplicaciones web con base de datos, es decir, Rails es un framework para Ruby de cdigo abierto, usado para implementar

- 56 -

aplicaciones web con acceso a bases de datos. Cumple dos principios que son: 1 Menos software, es decir, se escriben menos lneas de cdigo para implementar la aplicacin por ende el desarrollo es ms rpido y con menos errores. 2 Convencin sobre configuracin, lo cual significa que se eliminan los complejos ficheros de configuracin en XML. RoR puede cargar varias libreras de extensiones dinmicas, dispone de un manejo de excepciones y est construido en los cuatro niveles de mbito de variable: global, clase, instancia y local, adems facilita el desarrollo ya que posee la caracterstica de recoleccin de basura automtica. RoR dispone de muchas posibilidades para procesar archivos de texto y para realizar tareas de administracin del sistema (como en Perl). Es simple, directo y extensible.

4.2.5

Cuadro Comparativo entre Lenguajes de Programacin Web: Lenguajes de Programacin Caractersticas PHP SI SI SI SI SI NO JSP SI SI POBRE SI POBRE NO ASP.NET NO NO NO POBRE POBRE SI RUBY SI SI SI SI NO NO

Software Libre Multiplataforma Soporta mltiples servidores Web Conectividad con varias Bases de Datos Curva de aprendizaje Costo de Licenciamiento

Tabla 3. Cuadro comparativo entre los diferentes lenguajes de programacin Fuente: La autora

4.3

COMPARACIN DE SERVIDORES WEB.

A continuacin se realizar un estudio entre los diferentes servidores Web que existen en la actualidad, a fin de escoger el ms adecuado para el alojamiento de las pginas dinmicas que componen el portal ETM. - 57 -

4.3.1 Definicin de Servidor Web. Un servidor Web es una mquina que almacena y maneja los sitios Web, comnmente se le conoce con el nombre de hosting ya que hospeda las pginas Web utilizando un software o programa que sirve para atender y responder a las diferentes peticiones de los navegadores, usando el protocolo HTTP (HyperText Transfer Protocol), que sirve para enviar pginas Web al ordenador de un usuario, cuando ste las solicita, es decir, los archivos para cada sitio de Internet se almacenan y ejecutan en el servidor Web mediante una peticin HTTP que tiene asociada una URL, el servidor responde al cliente enviando el cdigo HTML de la pgina y cuando el navegador recibe el cdigo, lo interpreta y lo muestra en pantalla. Dependiendo del tipo de peticin, el servidor Web buscar una pgina de las muchas que componen el sitio Web o bien ejecutar un programa en el servidor. De cualquier modo, siempre devolver algn tipo de resultado HTML al cliente o navegador que realiz la peticin. Si no se dispone de un hosting (compaa dedicada al mantenimiento de servidores Web) se puede configurar un servidor Web local con lo cual se facilita el desarrollo de pginas Web, permitiendo corregir errores y realizar las diferentes pruebas de implementacin. Hay muchos servidores en Internet y variados servidores Web con diferentes caractersticas, pero comparten la funcin comn de proporcionar el acceso a los archivos y servicios, entre ellos tenemos: Apache, IIS, Cherokee, etc.

4.3.1.1

Servidor Web: Apache

Apache Software Fundation desarroll en 1995 el servidor HTTP Apache, siendo un software (libre) de cdigo abierto totalmente gratuito, multiplataforma que implementa el protocolo HTTP/1.1 y la nocin de sitio virtual. Apache presenta entre otras caractersticas mensajes de error altamente configurables, autenticacin de bases de datos, etc., pero la falta de una interfaz grfica complica su configuracin.

Hoy en da, el servidor Web Apache tiene amplia aceptacin en la red, ya que es el ms utilizado para la creacin de sitios Web, debido a que brinda ventajas como: - 58 -

velocidad, seguridad, simplicidad y facilidad de desarrollo distribuido, adems de ser rpido, estable y fcilmente adaptable a nuevas tecnologas y protocolos. Apache es un servidor altamente configurable ya que su arquitectura est formada por un diseo modular (permite construir un servidor mediante la configuracin de paquetes de pequeo tamao), adems puede trabajar con la mayora de lenguajes de programacin como, PHP, JSP, etc. y otros lenguajes script.

Apache soporta HTTPS, haciendo de esta manera ms seguro el servidor Web, ya que permite mantener un canal de comunicacin encriptado utilizando SSL (Secure Socket Layers) con lo cual, no se permite el robo de datos informacin que se est transfiriendo entre los usuarios, puesto que, permite identificar fehacientemente al servidor y, en algunos casos, al cliente. Lo que hace an mucho ms seguro a Apache, es que brinda la posibilidad de crear certificados digitales mediante la configuracin de unas lneas de cdigo en uno de sus mdulos, este proceso se realiza de la siguiente manera: Cuando un cliente Web se conecta a un servidor utilizando una conexin segura, requiere que el certificado SSL del servidor cumpla con tres condiciones: 1 El nombre de dominio del certificado debe ser el mismo que el solicitado por el cliente Web. 2 3 El certificado debe ser vlido (no debe estar vencido ni revocado). El certificado tiene que estar firmado por una autoridad certificante (empresa emisora de certificados de seguridad) en la cual el cliente confa.

4.3.1.2

Servidor Web: Internet Information Server (IIS)

Microsoft desarroll Internet Information Server, el cual fue creado para funcionar en la plataforma Windows, integra una serie de herramientas para la creacin, configuracin y administracin de sitios Web como: (FTP, SMTP, NNTP) y se - 59 -

distribuye gratuitamente junto con las versiones de Windows. IIS es el primer servidor Web que utiliza entornos corporativos, pero es el segundo ms utilizado en Internet ya que en sus versiones anteriores a la 6.0 todas las caractersticas y funcionalidades de IIS eran ejecutadas por el administrador del sistema, consecuencia principal de los diversos fallos de seguridad, a partir de esta versin todos los procesos de IIS se ejecutan bajo una cuenta especfica lo que aporta una mayor seguridad al sistema, ya que ahora toda la configuracin del servidor Web se almacena en archivos XML. La arquitectura de IIS es modular lo cual brinda la capacidad para procesar distintos tipos de pginas Web, es decir, se obtienen caractersticas parecidas a los servidores Apache y Cherokee, ya que aparecen funcionalidades mucho ms especficas lo que permite habilitar solamente los mdulos requeridos, mejorando de esta manera el rendimiento y la seguridad. Adicionalmente IIS incluye una API (Application Programming Interface) para poder programar nosotros mismos nuevos mdulos y funcionalidades para el servidor, utilizando un lenguaje de programacin basado en .NET, aunque IIS trabaja con varios lenguajes como PHP, ASP, ASP.NET, etc. Internet Information Server facilita la creacin de contenido dinmico utilizando los componentes y secuencias de comandos del servidor para crear contenido dinmico independiente del explorador mediante pginas Active Server (ASP), adems facilita la publicacin de informacin en Internet y permite autenticacin robusta y segura de los usuarios, as como comunicaciones seguras va SSL.

4.3.1.3

Servidor Web: Cherokee

El proyecto Cherokee surgi en el 2001, por el desarrollador de software Libre lvaro Lpez., Cherokee es una tecnologa multiplataforma de cdigo abierto, es decir, totalmente gratuito debido a que es software libre, publicado bajo la licencia GPL (General Public License). Su principal caracterstica es ser un servidor que posee algunas caractersticas de las cuales Apache carece, como son: mayor velocidad (cinco veces ms rpido que Apache), flexibilidad (sistema de carga dinmica de mdulos al igual que Apache) y la capacidad de incluirse dentro de otras aplicaciones. - 60 -

Su diseo es un hbrido, ya que combina caractersticas de servidores basados en sockets con las de servidores basados en hilos, en busca de obtener beneficios de ambos modelos y minimizar los aspectos negativos, Cherokee procesa varias peticiones en cada uno de sus hilos, estos hilos ni se crean ni se destruyen, se generan cuando arranca el servidor y permanecen activos hasta que termina su ejecucin. Su arquitectura est formada por tres grupos de mdulos: handlers, encoders y validators.

Handlers. Son manejadores de peticiones. Cuando el servidor procesa una peticin, decide que clase de manejador debe utilizar, estos pueden ser: files (servir ficheros al cliente), redir (redireccionar peticiones), CGIs, etc.

Encoders. Mdulos que implementan una funcionalidad de conversin de la informacin que se puede enviar a los clientes si estos lo soportan. Cherokee puede enviar ciertos elementos de una pgina Web comprimidos obteniendo de esta manera mayor rapidez de respuesta.

Validators. Mdulos que implementan posibles formas de validar al usuario.

4.3.1.4

Cuadro Comparativo entre servidores Web: Servidores Web

Caractersticas Software Libre Multiplataforma Soporta mltiples Lenguajes de Programacin Mdulos permanentes Conexiones Seguras

APACHE SI SI SI SI SI

IIS NO NO POBRE SI SI

CHEROKEE SI SI SI SI SI

- 61 -

Mayor Velocidad Mayor Seguridad Soporta SSL

SI SI SI

NO POBRE SI

SI POBRE NO

Tabla 4. Cuadro comparativo entre los diferentes Servidores Web Fuente: La autora

4.4 JUSTIFICACIN DEL SOFTWARE DE DESARROLLO A UTILIZARSE EN EL PORTAL WEB. En base a los conceptos anteriormente analizados se ha considerado conveniente utilizar Apache como servidor Web, para el Sistema Operativo Windows, debido a que es el servidor ms seguro y usado a nivel mundial y, como lenguaje de programacin a PHP, para el mismo sistema operativo, ya que es el lenguaje ms confiable para la programacin de aplicaciones de comercio electrnico, a ms de que posee una serie de libreras que facilitarn el desarrollo y la implementacin del Portal. Para el desarrollo del portal se utilizar la ltima versin del servidor Web Apache (apache_2.2.6-win32-x86-openssl-0.9.8e.msi), ya que dicha versin adicionalmente instala el kit de herramientas OpenSSL que es un mdulo de seguridad, que permite encriptar las comunicaciones o mensajes realizados entre el servidor web y el navegador del cliente. Adems existe la posibilidad de que la aplicacin se implemente en un servidor web local, ms no se utilice Hosting Externo, por lo cual ste deber contar con las garantas y seguridades necesarias. OpenSSL implementa los protocolos SSL (Secure Sockets Layer) y TLS (Transport Layer Security), as como una librera de codificacin de propsito general. El protocolo SSL se usa actualmente para la transmisin de datos segura sobre Internet; el protocolo TLS es un estndar de Internet para comunicaciones privadas (seguras) y fiables a travs de Internet. Estas herramientas OpenSSL son usadas por el mdulo mod_ssl para aportar seguridad en las comunicaciones Web.

- 62 -

GLOSARIO DE TRMINOS

LXICO.- Es un lenguaje cuyo objetivo es facilitar el aprendizaje y la enseanza de la programacin orientada a objetos. PROLOG.- Proveniente del francs Programation et Logique, es un lenguaje de programacin lgico e interpretado, bastante popular en el medio de investigacin en Inteligencia Artificial. HTTP.- HyperText Transfer Protocol es un protocolo de aplicacin para sistemas de informacin hipermediales, distribuidos y colaborativos. Es el lenguaje que utilizan los clientes y servidores web para comunicarse entre s. Es un protocolo simple, basado en texto, que no maneja estados. Esto significa que cada solicitud que el cliente enva al servidor es independiente de las solicitudes anteriores. URL.- Una URL provee una forma de localizar un recurso en Internet, asociado con algunos esquemas populares como HTTP, FTP, MAILTO, etc. CGI.- Common Gateway Interface (CGI) es uno de los estndares ms antiguos para pasar informacin desde un web server a una aplicacin externa y luego devolver la respuesta de sta al cliente. Esta tecnologa ofreci una de las primeras formas de generar contenido dinmico en la Web. HTML.- Hyper Text Markup Language (Lenguaje de marcacin de Hipertexto) es el lenguaje de marcas de texto utilizado normalmente en la www (World Wide Web). Tomado de dos herramientas preexistentes: El concepto de Hipertexto (Conocido tambin como link o ancla) el cual permite conectar dos elementos entre si y el SGML (Lenguaje Estndar de Marcacin General) el cual sirve para colocar etiquetas o marcas en un texto que indique como debe verse. XML.- Extended Markup Language (lenguaje de marcas extensible), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C. SERVLETS.- Son mdulos de cdigo escrito en Java que aaden funcionalidad a un

- 63 -

servidor Web. Fueron diseados para aceptar peticiones de un cliente y generar los mensajes de respuesta correspondiente. FTP.- Servicio para la transferencia de ficheros por red. SMTP.- Servicio para la transferencia de correo electrnico. NNTP.- Servicio para la transferencia de noticias. SSL.- (Secure Layer Socket) es una tecnologa para asegurar la privacidad y

fiabilidad de las comunicaciones entre dos aplicaciones. Utiliza un sistema de encriptacin asimtrico basado en claves publica/privada para negociar una clave que luego se simtrica. CERTIFICADO DIGITAL.- Es un bloque de caracteres que acompaa a un documento o archivo acreditando quin es su autor (autenticacin) y que no ha existido ninguna manipulacin posterior de los datos (integridad). utilizar para establecer una comunicacin basada en encriptacin

- 64 -

S-ar putea să vă placă și