Qu es Web-Development?
Web Development es el desarrollo de aplicaciones en ambiente Web. El desarrollo
en ambiente Web se hace sobre un lenguaje script llamado HTML. Sobre ese
lenguaje script (un lenguaje script es un lenguaje no compilado) se apoyan todos
los otros lenguajes tratados en Web. Cuando uno programa en ASP, ASP.NET o mismo
JAVA esos scripts se apoyan sobre el HTML para ser interpretada por un Browser.
Una caracterstica de la programacin en Web, es que se necesita usar un Browser
de Internet como programa cliente, es decir, el browser actuara como el
"traductor" del cdigo escrito por el programador y desplegara todo el contenido
en el cdigo a la pantalla del usuario.
El browser, por su vez, para interpretar algunos scripts, necesita los llamados
Pluggins. Que no son nada mas que "mdulos" que le ayudaran al programa browser
interpretar los comandos contenidos en el cdigo.
Se necesita para desarrollar y para poner a funcionar un programa en Web, lo que
se llama Web Server, que por su vez contendr los cdigos de los scripts que los
browsers de los clientes interpretaran. Un Web Server es un servidor ordinario
con algunos servicios especiales activos para servir a los browsers clientes.
Podemos apreciar la estructura bsica de un programa montado en un Web Server con
la figura abajo:
El tener que armar un Web Server es un requisito, aun que se use uno de los
clientes para subir el servicio, este ultimo es necesario que este funcionando
todo el tiempo mientras los clientes trabajan con los programas.
El proceso de traduccin de los scripts de un programa desarrollado en Web se da
por la figura abajo:
Un programa por otro lado que no se comunica mucho con el servidor, se llama un
programa de Client-Side-Process, son programas que hacen todo localmente en el
cliente y despus enva una sola respuesta al server, lo que genera un PING muy
bajo y ejecuta as la comunicacin eficientemente.
Si no desarrollado en base a reglas de ancho de banda de las conexiones usadas
puede generar programas que no funcionen bien, o que sean demasiados lentos para
ser utilizados con eficiencia.
Desventaja 3: Mano de Obra Especializada Requerida:
Entendemos que mano de obra especializada se necesita para desarrollar cualquier
programa de un nivel medio para las empresas, pero en el caso de una aplicacin
Web debemos tener mas cuidado al escoger al equipo de trabajo.
Eso se debe a que hay que hacer un enfoque especial sobre la seguridad y sobre
la velocidad de los procesos involucrados para no ocasionar Time-Out en las
operaciones. Ese grupo de trabajo adems tiene que estar capacitado en
desarrollo en HTTPS (Hyper Text Transfer Protocol Secure) para evitar
filtraciones de las encriptaciones ofrecidas por el browser, todo eso representa
un cuidado extra que se debe tener cuando se desarrolla para Web.
Desventaja 4: Inseguridad de la Database.
Aqu apreciamos un punto muy importante no llevado en cuenta por muchos
programadores actuales. La conexin de un programa Web directamente con la base
de datos es un error catastrfico. Para que se ejecute eso la autenticacin de
la base de datos debe viajar con la informacin enviada al server desde el
cliente, lo que significa que la contrasea y el login viajan por todo el
Internet hasta llegar al server para ser autenticada. Ese tipo de sistemas son
vulnerables de muchas maneras, una de ellas, la contrasea esta en el cdigo de
la pagina, al ser bajada por una persona ajena se encontrara comprometido
todo el proceso de defensa de la base de datos.
A ese problema podemos adicionar "puentes" en los programas, que se conecte con
un puente (fsicamente cerca del servidor) y de ese puente se haga la conexin
8
con la base de datos. Pero porque adoptar actitudes tan radicales? Porque si
llegan a interceptar la contrasea del puente no compromete la base de datos, en
el caso de empresas grandes, la base de datos es un recurso demasiado valioso
para correr esos riesgos.
La base de datos trae muchas herramientas de Self-Defense como son las
contraseas, pero si un programador no experimentado enva esas contraseas en
baja encriptacin por un tnel en el Internet y ese es interceptado, se puede
echar a perder toda la seguridad adquirida con el paquete de la base de datos.
Ventajas de Desarrollo en Plataforma Windows
Continuando mencionaremos las ventajas de usar un programa compilado, sobre
plataforma Windows.
Ventaja 1: Fcil Desarrollo.
Cuando nos referimos a fcil desarrollo no se trata que de que sea mas fcil
desarrollar programas compilados que programas scripts, porque no es verdad, nos
referimos que es mas fcil encontrar grupos de trabajo que tengan alguna
experiencia en el desarrollo de aplicaciones para Windows.
Al encontrar abundancia de programadores experimentados en Windows podemos decir
que es mas fcil y mas barato desarrollar en esa plataforma, pero lo que nunca
debemos decir es que es seguro y estable.
Ventaja 2: Seguridad.
Acabamos de mencionar que no es plenamente seguro desarrollar en plataforma
Windows pero si comparamos el desarrollo de programas compilados con programas
en script, indiscutiblemente los compilados son mas seguros, y sustentaremos
porque.
Un programa compilado ya esta defendido por si solo al ser una tarea muy costosa
desencriptar un programa para ver como ese funciona, en los lenguajes scripts
como no se compilan, si un programador ajeno tiene acceso a los clientes, puede
ver el cdigo del programa, lo que no pasa en programas compilados, aun que el
tenga el cliente en su maquina, no tendr acceso a los cdigos directamente.
9
Un programa compilado debe llevar una manera nica de transmitir datos a los
otros mdulos del programa (caso exista cliente-servidor). Asumiendo que lidiamos
con buenos programadores que no usan wizards ni herramientas del estilo podemos
decir que un proceso de transmisin de datos se puede hacer seguro si las
personas ajenas desconocen como funciona, eso brinda una defensa mas contra
interceptaciones de los datos transmitidos. Con un lenguaje script el programa
utilizara el mtodo de transmisin de datos del browser, que por seal es bien
conocido por todos los hackers que estn en Internet.
Ventaja 3: Rpido acceso a la Database.
En teora y asumiendo que los clientes estn conectados en Lan, podemos afirmar
que el programa tendr un tiempo de respuesta mas rpido con la base de datos
que un programa desarrollado en Web lo tendra, pero porque? Porque el nico
mtodo que un programa Web se puede conectar con la base de datos sin un
programa puente es directamente con el browser y esta comprobado que el tiempo
de repuesta es mayor que de un programa compilado que hace el mismo acceso
directamente por el sistema operativo.
Si es el caso de que el programa compilado trate de accesar la base de datos
a travs de Internet podemos decir que el tiempo de respuesta depender
totalmente del ancho de banda de la conexin, as como pasa con un programa
desarrollado en script.
Ventaja 4: Seguridad en la Database.
Como mencionamos anteriormente, los programas estn al alrededor de una base de
datos y cualquier acceso hacho a esa ultima representa un riesgo a la seguridad,
una manera de evitar esos riesgos es utilizar el sistema de defensa y
encriptacin de la misma base de datos. No estamos diciendo directamente que es
mas seguro accesar una base de datos por un programa compilado que por un
programa script si los dos hacen uso del login de la base de datos, pero si
decimos que pocos programadores que desarrollan para Web toman las molestias de
verificar los procedimientos de defensa de la base de datos y que lo traten de
10
usar, as que como es mas fcil encontrar programadores que hagan uso de ese
recurso para desarrollar programas compilados, decimos que es mas seguro
accesarla por un programa compilado.
La seguridad de un programa lo hace el programador, y de eso nadie puede negar,
todas las defensas de los paquetes como Oracle por ejemplo pueden ser daadas
por un malo programador que inclua la contrasea de la base de datos en su
cdigo.
Desventajas Desarrollo en Plataforma Windows
En el prximo modulo trataremos de poner al descubierto las desventajas de
programar en plataforma Windows mas especficamente, sus desventajas contra los
programas desarrollados para Web, caso hablaremos de desventajas de programar en
Windows contra otras plataformas como Mac o Unix tendramos que alargar el
titulo de "Tarea" a "Libro".
Desventaja 1: Costo.
Costo? Pero desarrollar en plataforma Windows no es mas barato que desarrollar
para Web? La respuesta es depende.
Cada maquina que utilizara el programa debe ser capaz de instalarlo y cargarlo
en memoria, lo que significa que si tenemos 1000 terminales que se necesita un
procesador Pentium III para arrancar el programa contra 1000 terminales que
necesitan procesador 486 y un browser actualizado estamos bajando los costos en
hasta un 80%.
No diremos que programar programas compilados sea mas barato que programar en
plataforma Web porque simplemente no lo es. La mano de obra del desarrollador
Web es mas cara que la del desarrollador en plataforma Windows. Pero el costo de
las terminales y los requisitos varan mucho de una plataforma a otra. Aunque
sinceramente los proyectos muchas veces cuestan mas desarrollarlos que el mismo
hardware fsico.
Desventaja 2: Flexibilidad cero en los Clientes.
Ese punto fue adicionado en nuestro trabajo para resaltar el principal punto del
11
desarrollo por Web. Un administrador de redes se siente el hombre mas feliz del
mundo al no tener que actualizar cada cliente por un Upgrade del cdigo fuente.
Cuando desarrollamos en plataforma Windows, la regla es si actualizas el cdigo
fuente, tendremos que actualizar todas las maquinas que lo corren. Pero, y que
pasa con las aplicaciones que se actualizan dinmicamente, buscando upgrades y
instalndolos automticamente as como hacen los juegos de video? Buena
pregunta, si se puede desarrollar aplicaciones compiladas que se actualicen
solas, desde que ests dispuesto a pagar 9000 dlares mensuales a un equipo de
programadores de primera lnea que te generen cdigos que se auto-actualizan.
Caso no tenga el presupuesto y quieras contratar un equipo recin salido de la
universidad no ser posible desarrollar aplicaciones que actualicen los clientes
automticamente, as que punto para Web.
Desventaja 3: Licencias y Nmeros Seriales.
Recordamos que estamos basando nuestro trabajo para programas desarrolladas con
herramientas que poseen su licencia debidamente autenticada en un mecanismo legal
de software.
Las licencias para desarrollo en plataforma Windows son consideradas desde caras
a absurdas. adems de comprar todos los sistemas operativos que usaras para los
clientes y la versin para servidor (que no es nada barata) debes pagar por cada
licencia de cada paquete de desarrollo comprado. Mal, mal y mal, para Web
existen muchos lenguajes sobre licencia gratis, lo que hace el costo de paquetes
de desarrollo prcticamente $0. Recordamos que desarrollo en Web no
necesariamente los clientes deben correr sobre Windows (interesante ha?
eliminamos las licencias de los sistemas operativos).
Como la empresa Microsoft solo visa la ganancia, desarrollar en plataforma
Windows siempre fue y ser caro, ya en ambiente Web, como tenemos la
colaboracin de programadores de otras plataformas que visan el avance de la
tecnologa y publican sus trabajos gratis, disponemos de herramientas gratis
para desarrollo.
12
mucho y existan muchas terminales, donde el hacer un upgrade de los clientes nos
tome mucho tiempo y recursos, en ese caso, podemos perder un poco en tiempo de
respuesta, pero nuestros clientes siempre estarn actualizados y a par con todos
los cambios del script maestro.
Conclusin
Al final podemos concluir que cada uno de los tipos de desarrollo se aplica a
una necesidad especifica, lo que viene a decir que no existe un tipo de
desarrollo mejor que el otro.
Aun que el desarrollo Web sea una tendencia, no nos guiemos por lo que dice el
mercado, porque el mercado pocas veces conoce los verdaderos objetivos de
nuestras empresas y debemos hacer que el sistema se adapte a las necesidades
especificas del problema, sea esa herramienta de tendencia o no.
Como todos los sistemas son desarrollados para las distintas necesidades y cada
uno de los estilos de desarrollar mencionados se enfocan en una necesidad
reafirmamos la conclusin de que no existe mejor solucin sino que solucin
que se aplica mejor a las necesidades dadas.
14