UNIVERSIDAD YACAMBÚ
MAESTRÍA EN GERENCIA DE LAS FINANZAS Y DE LOS NEGOCIOS

SISTEMAS DE INFORMACIÓN GERENCIAL
FECHA: ABRIL - JUNIO 2007
Prof. Msc. Yaros Pérez
TRABAJO N°2
NUEVAS TECNOLOGÍAS EN TORNO A SISTEMAS DE INFORMACIÓN BASADOS EN WEB, XML, JSP, ASP Y PHP
AUDITORIAS EN SISTEMAS DE INFORMACIÓN
Autores:
Tema: Nuevas Tecnologías en torno a sistemas de información basados en web
2.- Nuevas Tecnologías en torno a desarrollos basados en web
3.-Características de las Tecnologías
4.- Elaborar un diseño de un sistema de información basado en web para una empresa ficticia
NUEVAS TECNOLOGÍAS EN TORNO A SISTEMAS DE INFORMACIÓN BASADOS EN WEB, XML, JSP, ASP Y PHP
1.- INTRODUCCIÓN
El gran en el desarrollo de las
nuevas tecnologías ha tenido sobre la sociedad, con la aparición de Internet
como ejemplo el cambiado el modo tradicional de administrar la perspectiva
tradicional de los servicios que ofrecen las unidades de información (Centros de
documentación, bibliotecas, archivos, información empresarial). Por tanto son
herramientas que permiten la redefinición de la sociedad, produce gran velocidad
en los ámbitos sociológicos y humanos, estableciéndose como la SOCIEDAD DE LA
INFORMACION.
Las nuevas tecnologías en el sistema de información, obtiene,
procesa, almacena y distribuye la información, permitiendo facilitar la toma de
las desiciones y control en las organizaciones. Apoya en la coordinación,
análisis del problema y la visualización.
1.1.- CONCEPTOS.
WEB. Es la fuente de información adaptada para World Wide Web, el cual es
accesible mediante un navegador en Internet, es presentada generalmente en
formato HTML o estar constituido por varios formando un arreglo de marcos (frame),
pueden ser cargadas en un ordenador local o remoto llamado Servidor Web, este
puede ser restringido a una red privada (Intranet) o publicar las páginas en el
World Wide Web. Las páginas Web cuando son almacenadas en un directorio común de
un servidor Web, se convierte en Website, que consiste en un grupo de páginas
ligadas entre sí
JSP (Java Serve Pages). Es una tecnología para aplicaciones Web, su
funcionamiento se basa en Scripts (Un conjunto de comandos escritos en un
lenguaje interpretado para automatizar ciertas tareas de aplicación. A veces, se
utiliza también el término inglés "scenario".) JSP es una tecnología java que
permite a los programadores generar contenido dinámico para Web, en forma de
documentos HTML, XML o de otro tipo. Su ventaja principal frente a otros
lenguajes es permitir integrar con clases de Java(.class) lo que permite separar
e niveles de aplicaciones Web, almacenando en clase Java las partes que consumen
mas recursos y dejando la parte encargada de formatear el documento Html en
archivo JSP. JAVA es conocido por ser un lenguaje muy portable y sumado a las
capacidades de JSP se hace una combinación muy atractiva. Esta teniendo mucho
peso en el desarrollo Web profesional (Intranets).
ASP (Active Server Pages). Es una tecnología del lado servidor de
Microsoft para páginas Web generadas dinámicamente. Esta estrechamente
relacionada con el modelo tecnológico de su fabricante. Intenta ser solución
para un modelo de programación rápida, ya que programar en ASP es programar en
Visual Basic. Con este modelo tecnológico se puede utilizar diversos componentes
ya desarrollados como algunos controles Active X. Sin embargo ASP clásico está
siendo reemplazado por ASP.NET, reemplaza los lenguajes interpretados como
VBScript o JScript por lenguajes compilados a código intermedio.
XML (Extensible Markup Language). Lenguaje de marcas extensibles,
etiquetas desarrolladas por el World Wide Web, es una simplificación y
adaptación del SGML y permite definir la gramática de lenguajes específicos (de
la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo
tanto XML no es realmente un lenguaje en particular, sino una manera de definir
lenguajes para diferentes necesidades. XML no ha nacido sólo para su
aplicación en internet, sino que se propone como un estándar para el intercambio
de información estructurada entre diferentes plataformas. Se puede usar en bases
de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.
Es una tecnología sencilla que tiene a su alrededor otras que la complementan y
la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel
muy importante en la actualidad ya que permite la compatibilidad entre sistemas
para compartir la información de una manera segura, fiable y fácil.
PHP. Es un lenguaje de programación usado frecuentemente para la creación
de contenido para sitios Web con los cuales se puede programar las paginas html
y los códigos de fuente. Su interpretación y ejecución se da en el servidor Web,
en el cual se encuentra almacenado el script, y el cliente sólo recibe el
resultado de la ejecución. Cuando el cliente hace una petición al servidor para
que le envíe una pagina Web, generada por un script PHP, el servidor ejecuta el
intérprete de PHP, el cual procesa el script solicitado que generará el
contenido de manera dinámica, pudiendo modificar el contenido a enviar, y
regresa el resultado al servidor, el cual se encarga de regresárselo al cliente.
Además es posible utilizar PHP para generar archivos PDF, Flash, así como
imágenes en diferentes formatos, entre otras cosas. Los principales usos del PHP
son los siguientes:
• Programación de página Web dinámicas, habitualmente en combinación con el
motor de base datos MySOL, aunque cuenta con soporte nativo para otros motores,
incluyendo el estándar ODBC, lo que amplía en gran medida sus posibilidades de
conexión.
• Creación de aplicaciones gráficas independientes del navegador, por medio de
la combinación de PHP y GTK (GIMP Tool Kit), lo que permite desarrollar
aplicaciones de escritorio en los sistemas operativos en los que está soportado.
La Web se basa en una gran diversidad de tecnologías, donde cada una de ellas busca cubrir determinadas necesidades de la WEB, asegurando la interoperabilidad de cada una de ellas.
Existe un organismo llamado World Wide Web Consortium:
Consorcio para el World Wide Web, conocido comúnmente como W3C, el cual
desarrolla los estándares y tecnologías para la Web, buscando siempre guiar la
Web hacia su máximo potencial, basándose en siete puntos principalmente:
Acceso Universal
Web Semántica
Confianza
Interoperabilidad
Capacidad de evolución
Descentralización
Multimedia más atractiva
Se puede afirmar que se ha presentando un cambio importante en el correr de los años en cuanto a la evolución de las tecnologías se refiere:
Tabla I
Cambios en las Tecnologías basados en web
|
Ítems |
En el Pasado |
En la Actualidad |
|
Formatos en la web |
Muchos formatos y Una herramienta para cada formato |
Un formato y cualquier herramienta |
|
Desde el punto de vista del usuario final |
Se aseguraba que los sitios Web tenían mejor calidad en Internet Explorer, resolución mínima de 800x600 y 65.000 colores |
Se asegura que los sitios Web tienen mejor calidad: con CUALQUIER AGENTE de usuarios, a cualquier resolución con o sin colores |
|
Desde el punto de vista de los Desarrolladores de páginas Web |
Escritura larga (no
se utilizaban los TAGS). Ejm:
<b>W3C</b>
<font size="+2">Nuevas
tecnologías desarrolladas por W3C</font> |
Uso de TAGS o
Etiquetas abreviadas. Ejm:
<h1>W3C</h1>
<h2Nuevas
tecnologías desarrolladas por W3C </h2> |
Esta evolución ha permitido el desarrollo a través de los
años de diferentes tecnologías, entre las cuales podemos destacar las
siguientes:
Tabla II
Evolución de Tecnologías web
|
1996 |
1997 |
1998 |
1999 |
2000 |
2001 |
2002 |
2003 |
2004-Actualidad |
|
PICS Labels |
HTML 3.2 |
CSS 2 |
CSS 1 |
DOM 2 Core |
Canonical XML |
XML Signatura |
DOM 2 HTML |
DOM 3 Validation |
|
Pics Rating |
PICS Rules |
PICS DSig |
WCAG 1.0 |
DOM 2 Events |
Schema Primer |
P3P 1.0 |
SVG 1.1 |
Infoset |
|
|
|
SMIL 1.0 |
Style Sheets PI |
DOM 2 Style |
Sxhema Structure |
XHTML 1.0 |
SVG Mobile |
Namespaces 1.1 |
|
|
|
DOM 1 |
MathML 1,01 |
DOM 2 Traversal |
Schema Types |
XPath Filter |
XPTR Element |
XML 1.0 |
|
|
|
|
XPath 1.0 |
DOM 2 Viiews |
Ruby |
XML Encription |
XPPR Framewk. |
XML 1.1 |
|
|
|
|
XSLT 1.0 |
XHTML Basic |
XHTML 1.1 |
UAAG 1.0 |
XPPR Xmlns |
OWL Guide |
|
|
|
|
HTML 4.01 |
|
XLink n1.0 |
|
SOAP Adjuncts |
OWL Overview |
|
|
|
|
|
|
XML Base |
|
SOAP Framewk. |
OWL Semantics |
|
|
|
|
|
|
SMIL 2.0 |
|
SOAP Primer |
OWL Tests |
|
|
|
|
|
|
SMIL Animation |
|
SOAP Tests |
OWL Use Cases |
|
|
|
|
|
|
XSL 1.0 |
|
XForms 1.0 |
RDF Concepts |
|
|
|
|
|
|
Web CGM |
|
XML Events |
RDF Primer |
|
|
|
|
|
|
|
|
MathML 2.0 |
RDF Schema |
|
|
|
|
|
|
|
|
PNG |
RDF Semantics |
|
|
|
|
|
|
|
|
|
RDF Test Cases |
|
|
|
|
|
|
|
|
|
RDF / XML |
|
|
|
|
|
|
|
|
|
VoiceXML 2.0 |
En la actualidad podemos destacar las siguientes nuevas tecnologías:
XSL: El Lenguaje de Hoja de Estilo Extensible (Extensible Stylesheet Language, XSL) es una familia de lenguajes que permiten describir como los archivos codificados en xml serán formateados (para mostrarlos) o transformados.
XSL Transformations (XSLT).
XSL Formatting Objects (XSL-FO).
XML Path Language.
Xlink Lenguaje de Enlace: es una aplicación XML que intenta superar las limitaciones que tienen los enlaces de hipertexto en HTML. Es una especificación que todavía está en desarrollo.
Tecnologías de Hojas de estilos.
XSL-FO.
XSLT.
XLink.
XPointer.
Hojas de Estilo en Cascada (CSS).
Tecnologías para Programación.
JDOM.
SAX.
STAX.
Simple Outline XML: es un XML simplificado que se puede convertir sin problemas en XML completo.
YAML y OGDL. Estos dos son ficheros de sólo texto que no están emparentados con XML como el SOX, antes comentado.
BBCode: tiene un uso muy restringido para dar formato nada más.
SLIP.
EBML: lenguaje basado en XML en formato binario.
Web Semántica: RDF y OWL.
Servicios WEB: SOAP y WSDL.
Gráficos y Multimedia: SVG y SMIL.
Diálogos de Voz: VoiceXML.
Formularios Interactivos: XForms.
Documentos de Texto: XHTML, MathML.
Presentación de Contenido: CCS.
Tecnologías no basadas en XML: WebCGM y PNG.
Active Server Pages ASP.
ASP.net.
Java Server Pages JSP.
El cuadro que se muestra a continuación, muestra gráficamente un resumen de la
evolución de las tecnologías:
Figura N°1
Evolución de las tecnologías

3.- CARACTERÍSTICAS DE LAS TECNOLOGÍAS
3.1.- ASP
La tecnología ASP surge en diciembre de 1996 con el
lanzamiento del service pack 3 de Windows NT 4.0 como parte del IIS 3.0. Este
fue el primer acercamiento de Microsoft hacia la tecnología scripting en
internet. La gran ventaja que tenía ASP era que uno podía diseñar su página y
programar la lógica que haría que su página desplegara datos.
ASP es una tecnología
propietaria de Microsoft. Se trata básicamente de un lenguaje de tratamiento de
textos (scripts), basado en Basic, y que se denomina VBScript (Visual Basic
Script). Se utiliza casi exclusivamente en los servidores Web de Microsoft
(Internet Information Server y Personal Web Server). Los scripts ASP se
ejecutan, por lo tanto, en el servidor y puede utilizarse conjuntamente con HTML
y Javascript para realizar tareas interactivas y en tiempo real con el cliente.
Es en efecto el servidor quien se ocupa de ejecutarlo, interpretarlo y enviarlo
al cliente (navegador) en forma de código HTML. Es por ello que todas las partes
del archivo que están escritas en ASP estarán siempre delimitadas por los
símbolos: <% y %>.
ASP no es en sí mismo un lenguaje de programación, si no más
bien un marco sobre el que se construyen aplicaciones basadas en Internet. Lo
interesante de este modelo tecnológico es poder utilizar diversos componentes ya
desarrollados como algunos controles ActiveX. Otros problemas que han hecho
evolucionar esta tecnología es el no disponer de información que oriente a
quienes desean aprenderla y resulta muy costosa en tiempo descubrir aquí y allá
toda la información para volverla altamente útil.
ASP ha pasado por cuatro
iteraciones mayores, ASP 1.0 (distribuido con IIS 3.0), ASP 2.0 (distribuido con
IIS 4.0), ASP 3.0 (distribuido con IIS 5.0) y ASP.NET (parte de la plataforma .
NET de Microsoft). Las versiones pre-.NET se denominan actualmente (desde 2002)
como ASP clásico.
En el último ASP clásico,
ASP 3.0, hay seis objetos integrados disponibles para el programador,
Application, ASPError, Request, Response, Server y Session. Cada objeto tiene un
grupo de funcionalidades frecuentemente usadas y útiles para crear páginas web
dinámicas.
3.1.1.- Funcionamiento de ASP
El esquema de funcionamiento de ASP se explica en la
figura que tenemos a continuación. Una maquina cliente realiza una petición de
una página ASP. Esta petición llega a una maquina servidor la cual interpreta el
código de esa página ASP. Dicho código puede tener accesos a ficheros o bases de
datos (Base de Información).
El resultado de interpretar
la página ASP es una página HTML, la cual se le envía al usuario. Es decir, el
usuario no llega a ver el código ASP, sino que ve el resultado de interpretar
dicho código: una página HTML.
En conclusión podríamos decir que una aplicación en ASP tiene
como objetivo diseñar una página web. Todas las salidas de información que se
realicen en una página ASP serán de código HTML o texto.
3.1.2.-
Características generales de ASP
Las principales características de la tecnología ASP y de
sus páginas asociadas son:
Es gratuita. Viene implementada por defecto en los servidores web PWS (Windows 95-98-Millenium) e IIS (Windows NT-2000-XP). Además también es posible implementarla en otros servidores, aunque hace falta la instalación de las extensiones adecuadas.
Se puede mezclar código ASP con código HTML y código de script en cliente, sin tener que compilarlos por separado. Esto facilita la construcción de páginas ASP, siendo posible escribirlas en un simple editor de textos (Notepad, Word, etc.).
El código ASP se ejecuta en el servidor web, produciendo como salida HTML puro (junto con código de script en el cliente, si así se precisa). Por este motivo, su resultado es interpretado correctamente por cualquier navegador web estándar, aunque se utilice VBScript, compatible tan sólo con Internet Explorer y los navegadores en él basados (aunque es posible ejecutar código VBScript en Nestcape Navigator usando el plug-in ScriptActive, de la casa NetCompass).
Permite usar componentes escritos en otros lenguajes de programación, como Visual Basic, Delphi, etc., que pueden ser llamados desde los propios guiones ASP.
Se ha portado a la plataforma Java, lo que hace que pueda ser utilizado en casi cualquier sistema operativo.
Permite acceder a las bases de datos de una forma rápida y sencilla, siendo éste uno de sus principales usos.
También permite el uso de componentes OLE, acceso a ficheros, a login del sistema, enviar correo, etc.
Tiene persistencia de variables en memoria entre distintas visualizaciones de página, permitiendo con ello manejar sesiones de usuario, con lo que se resuelve uno de los mayores problemas de la programación web, derivado de la no orientación a conexión del protocolo HTTP.
3.1.3.- Limitaciones
ASP no es realmente un
lenguaje como tal, es el acrónimo de Active Server Pages, el lenguaje usado en
realidad para programar ASP es Visual Basic Script o JScript. El mayor
inconveniente de ASP es que se trata de un sistema propietario que es usado
nativamente sólo por Microsoft Internet Information Server (IIS). Esto limita su
disponibilidad a servidores basados en Win32.
En el modelo de desarrollo Web basado en páginas activas, la programación ASP actual tiene diversas limitaciones:
Para que todo ocurra en una página Web, es habitual escribir una gran cantidad de código para resolver necesidades sencillas. ASP.NET incorpora un modelo declarativo a la programación Web: los controles de servidor funcionan en una página Web simplemente declarándolos. Cuando se carga la página ASP.NET, se instancian los controles listados en la página ASP y es responsabilidad del control emitir código HTML que el navegador pueda entender.
ASP es un tanto desorganizado. En una página ASP podemos incluir casi todo: HTML plano, código de scripting, objetos COM y texto. No hay una distinción formal entre el contenido de una página y su comportamiento: simplemente, insertamos código en la página, y a ver qué pasa. ASP.NET impone un cierto orden sobre el modelo de programación estándar ASP.
La tercera limitación en el desarrollo con ASP es que con el tradicional utilizamos lenguajes de scripting no tipados como VBScript o JScript. Podemos instalar otros motores de scripting que impongan verificación de tipos; sin embargo, no son universalmente conocidos o utilizados como los anteriores. ASP.NET claramente separa la porción basada en script de una página Web de su contenido.
3.1.4.-
Aplicaciones de las páginas ASP
La facilidad para conectar con una Base de datos y extraer
datos de la misma dinámicamente visualizándolos en el navegador es la utilidad
más practicada de las páginas ASP.
Puede conectarse a gestores de Base de datos SQL, Access, Oracle, o cualquier
otro motor que disponga de driver ODBC. Comercio electrónico, portales, sedes
personales y todas aquellas aplicaciones en las que el protagonista es la
información dinámica.
3.1.5.-
Requisitos
Para procesar una página ASP no existe ninguna restricción
especial en el lado del cliente, por lo que es indiferente la utilización del
navegador Internet Explorer o Netscape Comunicator sin embargo, en el lado del
servidor, es necesario un servidor Web de Microsoft. Se utiliza el archivo
ASP.DLL para interpretar el código, siendo el servidor más extendido Internet
Information Server (más conocido como IIS).
Estos son los servidores de contenidos ASP posibles para plataformas Microsoft:
Internet Information Server 3.0 o superior (para sistema operativo NT).
Personal Web Server (Para Windows 95 y Windows 98).
Para plataformas Unix es necesario añadir un software que actué de intérprete siendo algunos de los más conocidos:
Chilisoft.
Instant ASP.
3.1.6.-
Marcas de código ASP
Para identificar las marcas de código ASP se utilizan los
tags <% (como marca de inicio del código) y %> (Como marca final del código).
Ejemplo de código ASP
<% Response.write ("hola") %>
3.1.7.- Contenido de una página ASP
Además del código HTML habitual para las páginas Web, el
autor de las páginas ASP puede escoger entre dos lenguajes de script para
codificar los contenidos dinámicos. Estos lenguajes son VBScript y JScript, el
primero de ellos es el más utilizado y tiene su origen en el conocido lenguaje
Visual Basic. Por el contrario JScript se parece a JavaScript.
<%@ LANGUAGE="VBSCRIPT" %>
<%@ LANGUAGE="JSCRIPT" %>
3.1.8.-
Tratamiento de los comentarios
Para especificar un comentario en una página ASP debe
introducir una comilla simple
Ejemplo:
<% 'Esta línea no será procesada por tratarse de un comentario %>
3.1.9.- Tratamiento de las Variables
Todas las variables de una página ASP son de tipo
Variante por lo que no debe especificarse entre Integer, string u otro tipo de
objeto.
Su declaración es opcional
aunque su práctica es una buena costumbre ya que evita errores y facilita la
lectura del código. En la declaración se utiliza la palabra reservada "Dim"
pudiéndose anidar varias declaraciones mediante el separador ",".
Para forzar a que se
declaren todas las variables de una página debe introducirse el código "Option
Explicit"
Ejemplo de creación y asignación de variables
<%@ LANGUAGE="VBSCRIPT" %>
<%
Option explicit
' declaración de 3 variables
Dim nombre, fecha_nacimiento, edad
'asignación de valores
nombre = "Alex Morales"
fecha_nacimiento = "12/03/69"
edad = 31
%>
3.1.10.-
Objetos y las funciones en las páginas ASP
Los objetos son programas compilados e instalados en el
servidor y que han sido programados para realizar un conjunto de operaciones
fácilmente accesibles por otros programas y que reciben el nombre de Métodos.
Los 6 objetos intrínsecos que tiene ASP son:
Request, es el objeto que maneja las peticiones realizadas por el usuario y recoge toda la información que se recibe en dichas peticiones. Incluido las cabeceras de los mensajes HTTP y sus respectivas cookies. Además permite el acceso a protocolos de comunicación cifrados como SSL.
Response, nos sirve para devolver una respuesta al cliente. Además de poderle enviar una respuesta nos permite acceder a las cabeceras HTTP de respuesta, en las cuales podremos incluir cookies.
Application, nos permite mantener información compartida entre las diferentes sesiones que se establezcan sobre el servidor. Dicha información se inicializará cuando se arranque el servidor. Debido que el acceso a dicha información se hará de forma concurrente deberemos de tomar las medidas oportunas bloqueando dicho acceso.
Session, nos permite mantener información por cada sesión. Dicha información se almacenará en el servidor ayudándonos ante las carencias del HTTP que es un protocolo sin estado (no guarda información entre peticiones). La información de la sesión durará lo que dure la vida de la sesión, aunque también especifica un tiempo de inactividad pasado el cual la sesión es eliminada.
Server, este objeto nos presenta una serie de funcionalidades ofrecidas por el servidor, como son el acceso mapeado a directorio virtuales, codificación y decodificación de cadenas de texto,... y la más importante, creación de objetos de servidor, mediante los cuales podremos añadir nuevas funcionalidades al lenguaje.
ASPError, mediante este objeto podremos tener acceso a los errores cometidos en tiempo de ejecución para evaluarlos y tomar las acciones necesarias para su recuperación o para informar de los mismos.
Debido a que el resultado de
procesar una página ASP es una página HTML, el objeto Response es probablemente
el más utilizado en las páginas ASP ya que permite la comunicación entre el
servidor y el cliente.
Ahora el método Write,
mediante el cual enviaremos información al navegador. Entre esta información
podremos incluir el valor de las variables y tags html que condicionan el
aspecto de la página.
Utilización del objeto
Response
<%@ LANGUAGE="VBSCRIPT" %>
<HTML>
<BODY>
<%
Dim nombre
nombre = "Alex Morales"
' Imprime el nombre de la variable
' Concatenar strings utilizando VBSCRIPT
Response.Write("<h1>Mi nombre es: <b>" & nombre & "</b></h1>")
' Imprime la cadena de texto entre comillas.
' El mismo resultado que Response.Write utilizando el signo igual
(="Mi primera página ASP")
%>
</BODY>
</HTML>
3.1.11.-
Organización del código en Funciones
ASP permite crear funciones y subrutinas (las primeras se
distinguen de las segundas porque retornan un valor). Si conoces Visual Basic
observarás que el sistema es idéntico en las páginas ASP.
Ejemplo de subrutina
<%@ LANGUAGE="VBSCRIPT" %>
<%
' Declaración de la subrutina Sumar
sub Sumar(valorA, valorB, res)
res = valorA + valorB
end sub
%>
<HTML>
<BODY>
<% Dim result
'Llamada a la subrutina Sumar
Call Sumar 30, 40, c
Response.write "El resultado de: 30 + 40 es " & c %>
</BODY>
</HTML>
Ejemplo de Función
<%@ LANGUAGE="VBSCRIPT" %>
<%
' Declaración de la Función Sumar
function Sumar(valorA, valorB)
Sumar = valorA + valorB
end function
%>
<HTML>
<BODY>
<% Dim result
'Llamada a la Función Sumar
Response.write "El resultado de: 30 + 40 es " & Sumar (30,40) %>
</BODY>
</HTML>
Ejemplo sencillo:
Hola, bienvenido al Observatorio tecnológico, estamos a : <%=Now( )%>
La función NOW() de VBScript nos devuelve la fecha y hora actuales.
Cuando el servidor Web procese la página nos devolverá el siguiente resultado al
explorador:
Hola, bienvenido al Observatorio tecnológico, estamos a: 6/10/2003 22:03:55 PM
Se puede ver, el cliente, no recibe el código asp, recibe el resultado de la
ejecución de dicho código.
Dentro de los delimitadores ASP se puede incluir cualquier instrucción,
expresión, procedimiento u operador válido para el lenguaje de programación que
estemos usando. Un ejemplo de esto seria una página que nos mostraría:
Buenos días
si la ejecutamos antes de las 12:00 o:
Buenas Tardes
si la ejecutamos después de esta hora, el código seria el siguiente:
<HTML>
<BODY>
<% If Time( ) >= #12:00:00 AM# And Time( ) <#12:00:00 PM# Then%>
Buenos días
<%Else%>
Buenas Tardes
<%End If%>
</BODY>
</HTML>
3.2.- PHP
PHP es un lenguaje de programación usado frecuentemente para la creación de contenido para sitios web con los cuales se puede programar las páginas html y los códigos de fuente. PHP es un acrónimo recursivo que significa "PHP Hypertext Pre-processor" (inicialmente PHP Tools, o, Personal Home Page Tools), y se trata de un lenguaje interpretado usado para la creación de aplicaciones para servidores, o creación de contenido dinámico para sitios web. Últimamente también para la creación de otro tipo de programas incluyendo aplicaciones con interfaz gráfica usando las librerías GTK+-.
El fácil uso y la similitud con los lenguajes más comunes de programación estructurada (perl y c), donde los programas son más fáciles de leer, sencillos y rápidos y sus estructuras son más claras porque sus instrucciones están más ligadas entre sí y eso facilita la lógica porque se pueden detectar y corregir los errores, se reducen los costos de mantenimiento y los códigos son autoexplicativos lo que apoya el contenido del documento; permiten a la mayoría de los desarrolladores de softwares experimentados ,crear aplicaciones complejas con una curva de aprendizaje muy suave. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones y prácticas.
Debido al diseño de PHP, también es posible crear aplicaciones con una interfaz gráfica de usuario ( PHP-GUI ), que es un tipo de programa que utiliza un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz, utilizando la extensión PHP-GTK. GTK es un software libre que contiene un grupo importante de bibliotecas y rutinas para realizar interfaces. También puede ser usado desde una Línea de Comandos (o CLI, por sus iniciales en inglés) es un método para manipular con instrucciones escritas al programa que subyace debajo. Se interactúa con la información de la manera más simple posible, sin gráficas ni nada más que el texto crudo. Las órdenes se escriben como líneas de texto (de ahí el nombre), y, si los programas responden, generalmente lo hacen poniendo información en las líneas siguientes. Esta versión de PHP se llama PHP CLI (Command Line Interface).
Su interpretación y ejecución se da en el servidor web, en el cual se encuentra almacenado(archivo de procesamiento por lotes ) un programa usualmente simple, que generalmente se almacena en un archivo de texto plano (Script), y el cliente sólo recibe el resultado de la ejecución. Cuando el cliente hace una petición al servidor para que le envíe una página web, generada por un Script- PHP, el servidor ejecuta el intérprete de PHP, el cual procesa el script solicitado que generará el contenido de manera dinámica, pudiendo modificar el contenido a enviar, y regresa el resultado al servidor, el cual se encarga de regresárselo al cliente.
Además es posible utilizar PHP para generar archivos:
PDF: Es un formato de almacenamiento de documentos, desarrollado por la empresa Adobe Sistem. Está especialmente ideado para documentos susceptibles de ser impresos, ya que especifica toda la información necesaria para la presentación final del documento, determinando todos los detalles de cómo va a quedar.
FLASH: Un programa informático para edición multimedia.
Imágenes en diferentes formatos.
Permite la conexión a diferentes tipos de servidores de bases de datos tales como:
MySQL:
Postgres
Oracle
OBDC:
DBD
Microsoft SQL Servir
Firebird
Sqlite
Todos estos sistemas permiten la creación de aplicaciones WEB muy robustas(Una aplicación web es un sistema informático que los usuarios utilizan accediendo a un servidor WEB a través de Internet o de una Intranet. PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos tales como Unix (y de ese tipo, como Linux), Windows y Mac OSX, y puede interactuar con los servidores WEB más populares ya que existe en versión CGI, módulo HTTP Apache, e Isapi.
PHP fue originalmente diseñado en Perl, seguidos por la escritura de un grupo de CGI binarios escritos en el lenguaje C por el programador danés-canadiense Rasmus Lerdorf en el año 1994 para mostrar su currículo vitar y guardar ciertos datos, como la cantidad de tráfico que su página web recibía. El 08 de junio de 1955 fue publicado "Personal Home Page Tools" después de que Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI.
Dos programadores israelíes del Technion, Zeev Suraski y Andi Gutmans, reescribieron el analizador sintáctico (parser en inglés) en el año 1997 y crearon la base del PHP3, cambiando el nombre del lenguaje a la forma actual. Inmediatamente comenzaron experimentaciones públicas de PHP3 y fue publicado oficialmente en junio del 1998. Para1999, Suraski y Gutmans reescribieron el código de PHP, produciendo lo que hoy se conoce como Zend Engine o motor Zend, También fundaron Zend Technologies en Ramat Gan, Israel.
En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine 1.0. La última versión de PHP 4 disponible en febrero de 2007 es la 4.4.5. El soporte a PHP 4 continúa activo lanzando parches de seguridad para aquellas aplicaciones que lo requieren.
El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine II (o Zend Engine 2). La versión más reciente de PHP es la 5.2.1, que incluye todas las ventajas que provee el nuevo Zend Engine 2 como:
Soporte sólido para Programación Orientada a Objetos ( o OOP con PHP Data Objects
Mejoras de rendimiento
Mejor soporte para MySQL con extensión completamente reescrita
Mejor soporte a XML( XPath, DOM... )
Soporte nativo para SQLite
Soporte integrado para SOAP
Iteradores de datos
Excepciones de errores
La última versión a febrero 2007 es la 5.2.1.
Está previsto el lanzamiento en breve de la rama 6 de PHP, cuando se lance esta nueva versión, quedarán tres ramas activas en desarrollo ( PHP 4, 5 y 6). Las diferencias que encontraremos frente a PHP 5 son:
Soportará Unicode
Limpieza de funcionalidades obsoletas como register_globals, safe_mode...
PECL
Mejoras en orientación a objetos
Tabla III
Historia de PHP
|
Versión |
Fecha |
Cambios más importantes |
|
PHP 1.0 |
8 de Junio de 1995 |
Oficialmente llamado "Herramientas personales de trabajo (PHP Tools)". Es el primer uso del nombre "PHP". |
|
PHP Version 2 (PHP/FI) |
16 de Abril de 1996 |
Considerado por el creador como la "más rapida y simple herramienta" para la creación de páginas webs dinámicas . |
|
PHP 3.0 |
6 de Junio de 1998 |
Desarrollo movido de una persona a muchos desarrolladores. Zeev Suraski y Andi Gutmans reescriben la base para esta versión. |
|
PHP 4.0 |
22 de Mayo de 2000 |
Se agregan avanzadas de dos etapas analizar/ejecutar la etiqueta-análisis sistema llamado entorno motor Zend. |
|
PHP 4.1 |
10 de Diciembre de 2001 |
Introducidas las variables superglobals ($_GET, $_SESSION, etc.) |
|
PHP 4.2 |
22 de Abril de 2002 |
Se deshabilitan register_globals por defecto |
|
PHP 4.3 |
27 de Diciembre de 2002 |
Introducido la CLI, en adición a la CGI |
|
PHP 4.4 |
11 de Julio de 2005 |
|
|
PHP 5.0 |
13 de Julio de 2004 |
Motor Zend II con un nuevo modelo de objetos. |
|
PHP 5.1 |
25 de Noviembre de 2005 |
|
|
PHP 5.2 |
2 de Noviembre de 2006 |
Habilitado el filtro de extensiones por defecto |
3.2.2.-Características Principales
El fácil uso y la similitud con los lenguajes más comunes de programación estructurada, como C y Perl, permiten a la mayoría de los programadores experimentados crear aplicaciones complejas con una curva de aprendizaje muy suave. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones y prácticas.
Debido al diseño de PHP, también es posible crear aplicaciones con una interfaz gráfica para el usuario (también llamada GUI), utilizando la extensión PHP-GTK.También puede ser usado desde la líneas de órdenes, de la misma manera comoPerl o Python pueden hacerlo, esta versión de PHP se llama PHP CLI (Command Line Interface).
Su interpretación y ejecución se da en el servidor web, en el cual se encuentra almacenado el script y el cliente sólo recibe el resultado de la ejecución. Cuando el cliente hace una petición al servidor para que le envíe una página web. generada por un script PHP, el servidor ejecuta el intérprete de PHP, el cual procesa el script solicitado que generará el contenido de manera dinámica, pudiendo modificar el contenido a enviar, y regresa el resultado al servidor, el cual se encarga de regresárselo al cliente. Además es posible utilizar PHP para generar archivos PDF, flash, así como imágenes en diferentes formatos, entre otras cosas.
Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQL Lite; lo cual permite la creación de Aplicaciones web muy robustas.
PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos tales como UNIX (y de ese tipo, como Linux), Windows y Mac OS X, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.
El modelo PHP puede ser visto como una alternativa al sistema de Microsoft que utiliza ASP.NET/C#/VB.NET, a ColdFusion de la compañía Macromedia, a JSP/Java de Sun Microsystems, y al famoso CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un IDE comercial llamado Zend Optimizer.
En resumen, podríamos decir, que las principales características del lenguaje PHP son:
Soporte sólido para Programación Orientada a Objetos con PHP Data objets.
Mejoras de rendimiento.
Mejor soporte para MySQL con extensión completamente reescrita.
Mejor soporte a XML( XPath, DOM... ).
Soporte nativo para SQLite.
Soporte integrado para SOAP.
Iteradores de datos.
Excepciones de errores.
Soportará Unicode.
Limpieza de funcionalidades obsoletas como register_globals, safe_mode.
PECL.
Mejoras en orientación a objetos.
3.2.3.- Usos de PHP
Los principales usos del PHP son los siguientes:
Programación de páginas WEB dinámicas, habitualmente en combinación con el motor de base datos MyQSL, aunque cuenta con soporte nativo para otros motores, incluyendo el estándarOBDC, lo que amplía en gran medida sus posibilidades de conexión.
Programación en consola, al estilo de Perl o Shell Scripting.
Creación de aplicaciones gráficas independientes del navegador, por medio de la combinación de PHP y GTK(GIMP Tool Kit), lo que permite desarrollar aplicaciones de escritorio en los sistemas operativos en los que está soportado.
3.2.4.- Ventajas de PHP
Es unlenguaje multiplataforma.
Capacidad de conexión con la mayoría de los manejadores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL.
Leer y manipular datos desde diversas fuentes, incluyendo datos que pueden ingresar los usuarios desde formularios HTML.
Capacidad de expandir su potencial utilizando la enorme cantidad de módulos (llamados ext's o extensiones.
Posee una amplia documentación en su página oficial, entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda.
Es un software libre, por lo que se presenta como una alternativa de fácil acceso para todos.
Permite las técnicas de programación orientada a objetos.
Permite crear los formularios para la web.
Biblioteca nativa de funciones sumamente amplia e incluida.
No requiere definición de tipos de variables ni manejo detallado del bajo nivel.
3.3.- JSP
JavaServer Pages (JSP), en el campo de la informática, es una tecnología para crear aplicaciones web. Es un desarrollo de la compañía Sun Microsystems y su funcionamiento se basa en scripts, que utilizan una variante del lenguaje java.
La JSP es una tecnología Java que permite a los programadores generar contenido dinámico para web, en forma de documentos HTML, XML o de otro tipo. Las JSP's permiten al código Java y a algunas acciones predefinidas ser incrustadas en el contenido estático del documento web.
En las JSP se escribe el texto que va a
ser devuelto en la salida (normalmente, código HTML) incluyendo código java
dentro de él, para poder modificar o generar contenido dinámicamente. El código
java se incluye dentro de las marcas de etiqueta
<%
y
%>;
a ésto se le denomina scriptlet.

En una posterior especificación, se incluyeron taglib; esto es, la posibilidad de definir etiquetas nuevas que ejecuten código de clases java. La asociación de las etiquetas con las clases java se declara en archivos de configuración en XML..
La principal ventaja de JSP frente a otros lenguajes es que permite integrarse con clases Java (.class) lo que permite separar en niveles las aplicaciones web, almacenando en clases java las partes que consumen más recursos (así como las que requieren más seguridad) y dejando la parte encargada de formatear el documento html en el archivo jsp. La idea fundamental detrás de este criterio es el de separar la lógica del negocio de la presentación de la información.
Independientemente de la certeza de la aseveración, Java es conocido por ser un lenguaje muy portable (su lema publicitario reza: escríbelo una vez, córrelo donde sea) y sumado a las capacidades de JSP se hace una combinación muy atractiva.
Sin embargo, JSP no se puede considerar un script al 100%, ya que, antes de ejecutarse, el servidor web compila el script y genera un servlet. Por lo tanto, se puede decir que aunque este proceso sea transparente para el programador no deja de ser una aplicación compilada. La ventaja de ello es algo más de rapidez y disponer del API de Java en su totalidad.
Por todo ello, la tecnología JSP, así como Java, está teniendo mucho peso en el desarrollo web profesional (sobre todo en intranets).
Microsoft, la más directa competencia de Sun, ha visto en esta estrategia de Sun una amenaza, lo que le ha llevado a que su plataforma .NET incluya su lenguaje de scripts ASP.NET que permite ser integrado con clases .NET (ya estén hechas en C++, VisualBasic o C#) del mismo modo que jsp se integra con clases Java.
Ejemplo de código de una página JSP:
<%@ page errorPage="myerror.jsp" %>
<%@ page import="com.foo.bar" %>
<html>
<head>
<%! int serverInstanceVariable = 1;%>
...
<% int localStackBasedVariable = 1; %>
<table>
<tr><td></td></tr>
...
Ejemplo de una compilación o "Salida" JSP:
package jsp_servlet;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import com.foo.bar; //imported as a result of <%@ page import="com.foo.bar" %>
import ...
class _myservlet implements javax.servlet.Servlet, javax.servlet.jsp.HttpJspPage {
//inserted as a
//result of <%! int serverInstanceVariable = 1;%>
int serverInstanceVariable = 1;
...
public void _jspService( javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response )
throws javax.servlet.ServletException,
java.io.IOException
{
javax.servlet.ServletConfig config = ...;//get the servlet config
Object page = this;
PageContext pageContext = ...;//get the page context for this request
javax.servlet.jsp.JspWriter out = pageContext.getOut();
HttpSession session = request.getSession( true );
...
Para ejecutar las páginas JSP, se necesita un servidor Web con un contenedor Web que cumpla con las especificaciones de JSP y de Servlet. Tomcat 5 es una completa implementación de referencia para las especificaciones Java Servlet 2.2 y JSP 1.1.
A partir de la versión 2.0 de JSP se incluyeron nuevas funcionalidades con el fin de aumentar la productividad, reutilización de código y separar de manera clara la presentación y la lógica de negocio (normalmente implementada en clases Java)
Se desarrolló Expression Language (EL) para hacer referencia a componentes Java de una manera limpia y elegante evitando el uso de scriptlets.
Se simplificó la creación de bibliotecas de etiquetas personalizadas.
3.3.1.- Ventajas que se encuentran en el sistema
Java frente al Microsoft
JSP y ASP sirven para hacer, más o menos, el mismo tipo de aplicaciones web. Sin
embargo, en el fondo tienen bastantes diferencias. Después de mi experiencia en
el trabajo con JSP, un día un cliente me preguntó por qué no programaba la
página en ASP en lugar de JSP, ya que había oido hablar que el sistema de
Microsoft tenía unas características muy apropiadas para su modelo de negocio. A
partir de esta sugerencia, y para que mi cliente quedase satisfecho con la
tecnología JSP -que es la que prefiero utilizar-, preparé una lista de ventajas
de utilizar páginas dinámicas Java frente a las de Microsoft.
Plataforma e independencia del servidor: JSP sigue la filosofía de la arquitectura JAVA de "escribe una vez ejecuta donde quieras". La implantación de ASP está limitada para arquitecturas basadas en tecnología Microsoft. Así, JSP se puede ejecutar en los sistemas operativos y servidores web más populares, como por ejemplo Apache, Netscape o Microsoft IIS. Mientras que ASP sólo tiene soporte nativo para los servidores IIS y Personal Web Server, que son los dos servidores web para sistemas Microsoft, el primero con tecnología NT y el segundo para sistemas Windows 98 y similares.
Proceso de desarrollo abierto (open source). El API JSP se beneficia de la extendida comunidad JAVA existente, por el contrario la tecnología ASP es específica de Microsoft que desarrolla sus procesos internamente.
TAGS. Mientras que tanto JSP como ASP usan una combinación de tags y scripts para crear páginas Web dinámicas, la tecnología JSP permite a los desarrolladores crear nuevos tags. Así los desarrolladores pueden crear nuevos tags y no depender tanto de los scripts.
Reusabilidad entre plataformas. Los componentes JSP son reusables en distintas plataformas (UNIX, Windows).
Ventaja Java. La tecnología JSP usa Java como lenguaje de Script mientras que ASP usa VBScript o Jscript. Java es un lenguaje mas potente y escalable que los lenguajes de Script. Las páginas JSP son compilados en Servlets por lo que actúan como una puerta a todos los servicios Java de Servidor y librerías Java para aplicaciones http. Java hace el trabajo del desarrollador más fácil p. e. ayuda a proteger el sistema contra las "caídas" mientras que las aplicaciones ASP sobre sistemas NT son más susceptibles a sufrirlas, también ayuda en el manejo de la memoria protegiendo contra fallos de memoria y el duro trabajo de buscar los fallos de perdida de punteros de memoria que pueden hacer mas lento el funcionamiento de una aplicación.
Mantenimiento. Las aplicaciones que usan JSP tiene un mantenimiento más fácil que las que usan ASP.
Los lenguajes de Script están bien para pequeñas aplicaciones, pero no encajan bien para aplicaciones grandes. Java es un lenguaje estructurado y es más fácil de construir y mantenimientos grandes como aplicaciones modulares.
La tecnología JSP hace mayor énfasis en los componentes que en los Scripts, esto hace que sea más fácil revisar el contenido sin que afecte a la lógica o revisar la lógica sin cambiar el contenido.
La arquitectura EJB encapsula la lógica de p. e.: acceso a BD, seguridad, integridad transaccional y aislamiento de la aplicación.
Debido a que la tecnología JSP es abierta y multiplataforma, los servidores web, plataformas y otros componentes pueden ser fácilmente actualizados o cambiados sin que afecte a las aplicaciones basadas en la tecnología JSP.
En conclusión, las ventajas sobre utilizar la tecnología Java con respecto a la propietaria de Microsoft (ASP) son, como se ha podido ver, diversas e interesantes. Sin embargo, podemos apuntar una ventaja de la programación en ASP, pues resulta bastante más fácil de aprender que JSP, por lo menos si no se tiene una experiencia previa en programación. Esto es debido a que Java es un lenguaje muy potente, pero un poco más complicado de usar porque es orientado a objetos y la manera de escribir los programas es más rígida.
3.4.- XML
XML, sigla en inglés de eXtensible Markup Language («lenguaje de marcas extensible»), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTML es a su vez un lenguaje definido por SGML). Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML.
XML no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.
XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil.
3.4.1.- HTML e Internet
Para comprender plenamente cuales fueron
las razones que llevaron a la creación del XML por parte del W3C, es necesario
comenzar aclarando la evolución de Internet y del lenguaje HTML. El lenguaje
HTML es originariamente un subconjunto del SGML ( Lenguaje de Marcas Estándar
Generalizado, Standard Generalized Markup Language), especializado en la
descripción de documentos en pantalla a través de marcas. El proyecto inicial se
basaba en una colección de etiquetas que permitían describir documentos de texto
y vínculos de hipertexto que permitían desplazarse entre diferentes documentos,
siempre con independencia de la máquina. Conociendo las normas de actuación de
estas etiquetas y disponiendo de un sencillo editor de textos ASCII, se pueden
confeccionar fácilmente documentos HTML.
HTML, no es un lenguaje de programación, es un lenguaje de
especificación de contenidos para un tipo específico de documentos SGML. Es
decir, mediante HTML podemos especificar, usando un conjunto de marcas, cómo va
a representarse la información en un navegador o browser. La facilidad de uso y
la particularidad que no es propiedad de nadie, hizo al HTML el sistema idóneo
para compartir información en Internet. La expansión de Internet le ha dado una
posición de privilegio y ha hecho que la idea inicial se modifique
considerablemente.
En principio, la intención de HTML era que las etiquetas
fueran capaces de marcar la información de acuerdo con su significado, sin
importar cómo se mostraban en la pantalla. Lo importante era el contenido y no
la forma, o sea, que era un lenguaje de marcas orientado a describir los
contenidos, dejando a cada navegador la tarea de dar el formato del documento
según su criterio de interpretar las marcas. Esto producía presentaciones
diferentes, pero permitía controlar fácilmente su contenido. Si una persona o un
motor de búsqueda quería conocer el título del documento, el autor de la página
o las cabeceras de los capítulos, siempre buscaba en el código las etiquetas
TITLE, ADDRESS o Hx. Además, si a alguien no le gustaba la idea de dejar a cada
aplicación la decisión de cómo mostrar el contenido de las etiquetas, siempre le
quedaba la posibilidad de controlar el formato del documento con descripciones
particulares, como es el caso de las hojas de estilo en cascada (CSS).
Por diversos motivos, los creadores de los navegadores fueron
añadiendo más etiquetas HTML dirigidas a controlar la presentación, como FONT,
I, CENTER, xCOLOR, etc., y los usuarios las utilizaron para que sus documentos
estuviesen perfectamente formateados, sin permitir diferencias importantes entre
visualizadores distintos, por lo que HTML pasó a ser un lenguaje de marcas más
dirigido al control de la presentación [Montero R. XML].
Aunque los estándares visuales y de interfase de usuario son
una capa necesaria, no son suficientes para representar y administrar los datos.
Hasta hace pocos años, Internet era un simple medio de acceso a texto e
imágenes. No había ningún estándar establecido para la búsqueda inteligente, el
intercambio de datos, la presentación adaptable ni para la personalización.
Internet debía ir más allá del establecimiento de un estándar
de acceso y presentación de información, de forma de poseer un estándar para la
comprensión de la información, una forma común de representar los datos para que
el software pueda buscar, desplazar, presentar y manipular mejor los datos
ocultos en una oscuridad contextual. HTML no puede hacerlo porque es un formato
que describe la apariencia que debería tener una página Web, pero no representa
datos [MSDN en línea. Por qué XML]. Por ejemplo, HTML:
No ofrece una forma estándar para que un médico pueda enviar una receta a un farmacéutico.
No habilita a un laboratorio médico para publicar datos estadísticos en un formato que puedan analizar todos los receptores.
No describe un pago electrónico de forma que todos los receptores puedan descodificarlo y procesarlo.
No ofrece una forma estándar de buscar documentos de pleitos sobre un tema determinado en bibliotecas legales.
No especifica cómo se pueden transmitir los datos del catálogo de una empresa de forma que un comercial pueda trabajar fuera de línea, mostrar el catálogo a los clientes, recibir pedidos ni enviar dichos pedidos en un formato estándar.
Aunque HTML ofrece amplias facilidades de
presentación, no ofrece ninguna forma basada en estándares para administrar los
datos. Un estándar de representación de datos ampliaría Internet del mismo modo
que el estándar de visualización HTML lo hizo hace pocos años. El estándar de
datos sería el vehículo para las transacciones comerciales, la publicación de
perfiles de preferencias personales, la colaboración automatizada y el uso
compartido de bases de datos. Los historiales médicos, los datos de
investigación farmacéutica, las hojas de piezas semiconductoras y los pedidos de
compra se escribirían todos en el mismo formato. Permitirá una gran variedad de
nuevos usos, todos basados en una representación estándar para el desplazamiento
de datos estructurados por todo la Web tan fácilmente como desplazamos las
páginas HTML hoy en día.
En resumen, llegado a un punto en el que HTML dejó de servir
para su función inicial, no le quedó más remedio al Consorcio World Wide Web
(W3C) la descripción de un nuevo subconjunto del SGML que sirva para describir
contenidos de documentos, al que ha denominado XML, publicando las
especificaciones de la versión 1.0 del mismo en 1998. Creo que en este momento
podemos empezar a hablar de XML con un poco de visión retrospectiva de los
motivos de su aparición.
3.4.2.- Estándares abiertos
XML se basa en una tecnología desarrollada a partir de
estándares probados y optimizada para la Web. La iniciativa XML consta de un
conjunto de estándares relacionados entre sí:
XML (Extensible Markup Language). Es una recomendación, que significa que el estándar es estable y que los desarrolladores de Web y de herramientas pueden adoptarlo plenamente.
Namespaces. En XML es una recomendación que describe la sintaxis y la compatibilidad de los espacios de nombres para los intérpretes de XML.
DOM (Document Object Model). Es una recomendación que ofrece un estándar para el acceso mediante programación a los datos estructurados (a través de scripts), de modo que los desarrolladores puedan interactuar de forma coherente con los datos basados en XML y computarlos.
XSL (Extensible Stylesheet Language). XLS es la cara de presentación del XML. Este debe representar de forma independiente a la plataforma utilizada la información existente en los documentos XML.
XML Linking Language. Es un lenguaje que ofrece vínculos en XML parecidos a los de HTML, pero más potentes. Los vínculos pueden tener varias direcciones y pueden existir en el nivel de los objetos, no sólo en el nivel de las páginas.
3.4.3.- Características Principales
a.- Extensible. Dentro de XML se pueden definir un conjunto ilimitado de etiquetas. Mientras que las etiquetas de HTML pueden utilizarse para desplegar una palabra en negrita o itálicas, el XML proporciona un marco de trabajo para etiquetado de datos estructurados. Un elemento de XML puede declarar que sus datos asociados sean el precio de venta al público, un impuesto de venta, el título de un libro o cualquier otro elemento de datos deseado. Al irse adoptando las etiquetas XML a lo largo de una intranet de alguna organización y a lo ancho de la Internet, habrá una correspondiente habilidad para buscar y manipular datos sin importar las aplicaciones dentro de las cuales se encuentre.
b.- Representación estructural de los datos. El XML proporciona una representación estructural de los datos que ha probado ser ampliamente implementable y fácil de distribuir. Las implementaciones industriales en la comunidad del SGML y en otros lugares han demostrado que la calidad intrínseca y la fortaleza industrial del formato de datos con estructura de árbol del XML. El XML es un subconjunto del SGML que está optimizado para su transmisión por Web; al estar definido por el Consorcio de la World Wide Web, asegura que los datos estructurados serán uniformes e independientes de aplicaciones o compañías. Esta interoperabilidad resultante está dando el impuso de inicio a una nueva generación de aplicaciones de Web para comercio electrónico [MSDN en línea. Introducción al XML]. El lenguaje XML proporciona un estándar de datos que puede codificar el contenido, la semántica y el esquema de una amplia variedad de casos que van desde simples a complejos, por ejemplo XML puede ser utilizado para marcar lo siguiente:
Un documento ordinario.
Un registro estructurado, tal como un registro de citas u órdenes de compra.
Un registro de datos, tal como el resultado de una consulta.
Metacontenido acerca de un sitio Web, tal como un Formato de Definición de Canal (Channel Definition Format, CDF).
Presentaciones gráficas, tales como la interfase de usuario de una aplicación.
Una vez que los datos estén en el escritorio del cliente, pueden ser manipulados, editados, y presentados de una gran variedad de maneras, sin viajes de regreso al servidor.Los servidores se pueden convertir ahora en más escalables, debido a las menores cargas de cálculo y ancho de banda. Además, dado que los datos son intercambiados en el formato XML, pueden ser fácilmente mezclados desde diferentes fuentes.
c.- Los datos son separados de la presentación y el proceso. El
poder y la belleza del XML es que mantiene la separación entre la interfase de
usuario y los datos estructurados. El HTML especifica como visualizar datos en
un navegador, en cambio XML define el contenido. XML solo utiliza etiquetas para
describir los datos, tales como el nombre de la ciudad, temperatura y presión
barométrica. Para presentar los datos en un navegador XML, este utiliza hojas de
estilo tales como el Lenguaje de Estilo Extensible (XSL) y las Hojas de Estilo
en Cascada (CSS). El XML separa los datos de la presentación y el proceso,
permitiendo desplegar y procesar los datos tal como usted desee, al aplicar
diferentes hojas de estilo y aplicaciones.
Esta separación de datos de la presentación permite una
integración de datos perfecta de fuentes diversas. La información de clientes,
ordenes de compra, resultados de investigaciones, pagos de facturas, registros
médicos, datos de catálogo y cualquier otra información se puede convertir a XML,
permitiendo a los datos ser intercambiados en línea tan fácilmente como las
páginas de HTML despliegan datos hoy. Los datos codificados en XML pueden ser
transmitidos sobre la Web hasta el escritorio. No es necesario retroajustar
información en formatos propietarios almacenados en bases de datos o documentos
de mainframes y, debido a que se usa el HTTP para transmitir documentos XML
sobre la red, no se necesitan cambios para esta función. Los documentos XML son
fáciles de crear; si está familiarizado con el HTML, puede aprender rápidamente
a crear uno.
d.- Conversión de los datos XML en autodescriptivos. Los datos
codificados en XML son autodescriptivos, pues las etiquetas descriptivas están
entremezcladas con los datos. El formato abierto y flexible utilizado por XML
permite su uso en cualquier lugar donde sea necesario intercambiar y transferir
información. Dado que el XML es independiente del HTML, se puede insertar código
XML en documentos HTML. El W3C ha definido un formato mediante el cual se pueden
encapsular en páginas HTML los datos basados en XML. Al incrustar datos XML en
una página HTML, se pueden generar varias vistas a partir de los datos
entregados, utilizando los datos semánticos que contiene el XML.
3.4.4.- DTD
El DTD (definición del tipo de documento, Document Type
Definition) proporciona la gramática para una clase de documentos XML. Esta
gramática contiene la definición del conjunto de etiquetas que puede contener
esa clase de documentos XML, los nombres que pueden utilizarse en los elementos,
dónde pueden aparecer y cómo se interrelacionan entre ellos. Se puede decir que
un DTD es una definición exacta de la gramática de un documento [Goldfarb C.,
Precod P. 1999].
Los documentos XML enviados con un DTD se reconocen como "XML
válido". En este caso, un intérprete de XML podría comparar los datos entrantes
con las normas definidas en el DTD para comprobar que los datos se han
estructurado correctamente. Los datos enviados sin un DTD se reconocen como
"bien formados". En XML no existen DTDs predefinidos, por lo que es labor del
diseñador especificar su propia DTD para cada tipo de documento XML. En la
especificación de XML se describe la forma de definir DTDs particularizadas para
documentos XML, que pueden ser internas (cuando van incluidas junto al código
XML) o externas (si se encuentran en un documento propio).
Un ejemplo de un DTD que defina la estructura de un documento
XML relacionado con libros, podría ser un documento conteniendo el siguiente
código:
<!ELEMENT LIBROS (LIBRO)+>
<!ELEMENT LIBRO (TITULO,AUTOR,PRECIO)>
<!ELEMENT TITULO (#PCDATA)>
<!ELEMENT AUTOR (#PCDATA)>
<!ELEMENT PRECIO (#PCDATA)>
En el DTD del ejemplo se definen los elementos (!ELEMENT) que
integran el documento XML. En la primera línea se indica que el elemento
principal es LIBROS, del que dependen uno o más (+) elementos LIBRO. La segunda
línea sirve para especificar que el elemento LIBRO contiene tres elementos (TITULO,AUTOR,PRECIO)
que se deben marcar en dicho orden. Las restantes líneas aclaran que los
elementos TITULO, AUTOR y PRECIO contienen valores de cadenas de texto.
3.4.5.- Esquemas
Últimamente se está imponiendo otra forma más eficaz de
definir la estructura de un documento XML, conocida como esquemas. Un esquema es
una especificación formal de las normas de un documento XML, que indica qué
elementos se permiten en un documento y en qué combinaciones están permitidas.
Los nuevos lenguajes de esquemas, definidos en las propuestas XML-Data (Datos de
XML) y DCD (Descripción del contenido del documento) enviadas por el XML-Data
Working Group al W3C, proporcionan las mismas funciones que un documento DTD. No
obstante, puesto que estos lenguajes de esquema son extensibles, los
desarrolladores pueden ampliarlos con información adicional, como los tipos de
datos, la herencia y las normas de presentación. Esto hace que los nuevos
lenguajes de esquemas sean mucho más potentes que los DTD.
La expresión de esquemas dentro de XML aumenta la potencia
del formato XML, pues permite que el software examine determinados datos para
comprender su estructura, sin necesitar ninguna descripción previa incorporada
de la estructura de los datos. Con un esquema, un autor puede definir
exactamente qué nombres de elementos se permiten en un documento y, dentro de
cada elemento, qué subelementos, atributos y relaciones se admiten. El autor
puede importar fragmentos de otros esquemas, así como ampliar tipos a través de
la herencia. Todo ello permite establecer relaciones complejas entre los
elementos sin perder la simplicidad de la estructura de árbol léxico [MSDN en
línea. Introducción al XML]. Por más información consultar http://www.schema.net
y http://www.w3.org/XML/Schema.
3.4.6.- Fortalezas y Debilidades del XML
La meta fundamental del XML es hacer la cooperación y la
interoperabilidad más fáciles entre módulos que pertenecen a diferentes
sistemas, e incluso a diferentes organizaciones. Entonces, ¿por qué el XML se ha
convertido en tecnología del alto nivel tan rápidamente? La respuesta es simple:
XML es texto simple, pero es también elegante.
Un lenguaje de marcas hace fácil identificar (y extraer en un tiempo posterior)
segmentos específicos de información con significados especiales. Usar texto
simple y mantener el contenido universalmente interpretable son dos condiciones
para implementar una tecnología exitosamente entre sistemas heterogéneos. Una
cadena del texto se puede transferir y se puede manejar fácilmente en cualquier
plataforma destino. Sin embargo, si usted solo planea definir un protocolo
basado en texto para hacer que sus módulos se comuniquen, usted no necesita
necesariamente XML. El ASCII, de hecho, ha existido durante mucho tiempo. La
diferencia recae en las etiquetas XML que se utilizan para delimitar segmentos
de información.
La principal fortaleza del XML es también, actualmente, su
debilidad principal. El XML es demasiado genérico para ser utilizado sin definir
externamente la sintaxis exacta de un documento y cómo puede localizarse y
extraerse cada fragmento de datos intercambiados. Tal estandarización es más
simple alcanzar dentro de una sola aplicación corporativa, incluso si atraviesa
varias plataformas heterogéneas de hardware y de software. Conseguir el mismo
resultado en un contexto más amplio requiere un enorme esfuerzo para llegar a
algunas definiciones estándares. Este proceso puede tomar años en ser completado
[MSDN Latinoamérica].
Desgraciadamente, cuando se trata de integrar sistemas de
diferentes organizaciones, especialmente de una manera abierta, el XML muestra
algunas limitaciones. El XML trata de la descripción de los datos, pero
solamente es útil cuando la gente está de acuerdo en la manera que los datos
deben ser descritos. Una factura, por ejemplo, es lógicamente el mismo tipo de
documento para cualquier proceso que lo manipule. Pero diferentes procesos
pueden convertirla en formatos binarios diferentes. A pesar del formato de
almacenamiento físico, el documento necesita ser transmitido y ser recibido en
un formato comúnmente reconocido disponible en todas las plataformas. Por
supuesto, el XML se puede utilizar como este formato.
Imagine el enorme costo que supondría para los consumidores y
las empresas si cada empresa definiera su propia forma de publicar la
información. Incluso con la Web, los costos asociados a la configuración y el
mantenimiento de un sitio Web superan la capacidad de algunas empresas. Al no
haber ningún límite al número de empresas que podrían publicar esta información,
la falta de estándares que definan el modo de publicarla de una forma segura y
controlada tendría como consecuencia miles y miles de implementaciones, enfoques
de exploración de la Web y profundidad del contenido distintos.
Por este motivo, en la actualidad se están definiendo
esquemas por grupos sectoriales con similares intereses, de forma que existirán
esquemas estándares avalados por asociaciones de empresas y organismos que
garanticen que cualquier usuario que las adopte como suyas, trabaje con las
mismas etiquetas. Como ejemplos de estos esquemas estándares tenemos: CDF -
Channel Definition Format (define canales para enviar información periódica a
los clientes), CML - Chemical Markup Language (define información del sector
químico), MathML - Mathematical Markup Language (define datos matemáticos), SMIL
- Synchronized Multimedia Integration Lannguage (define presentaciones de
recursos multimedia).
3.4.7.- Documentos XML en la WEB
3.4.7.1.- Desplegar
documentos XML
Un navegador, después de chequear la sintaxis del
código del documento, debe presentar la información del documento con un formato
determinado. Los documentos HTML utilizan las descripciones de formatos internas
del propio navegador, o si existen descripciones CSS (que son opcionales),
utilizan la información de la hoja de estilo para ajustar la presentación en la
pantalla. Los documentos XML siempre necesitan normas que describan su
presentación. Para describir cómo se deben presentar los documentos XML podemos
optar por dos soluciones: las mismas descripciones CSS que se utilizan con HTML
y/o las descripciones que se basan en XSL.
Si ya existía una forma de definir las presentaciones de los
documentos Web, la interrogante que puede surgir es cual fue el motivo que llevó
a desarrollar otra forma específica para XML? La respuesta es que CSS es eficaz
para describir formatos y presentaciones, pero no sirve para decidir qué tipos
de datos deben ser mostrados y cuáles no. Esto es, CSS se utiliza con documentos
XML en los casos en los que todo su contenido debe mostrarse sin mayor problema.
XSL no solo permite especificar cómo queremos presentar los datos de un
documento XML, sino que también sirve para filtrar los datos de acuerdo a
ciertas condiciones. Se parece un poco más a un lenguaje de programación.
3.4.7.2.- CSS
Las especificaciones CSS (hojas de estilo en cascada ,
Cascading Style Sheets) deben comprenderse como una descripción del formato en
el que se desea que aparezcan las entidades definidas en un documento . Por
ejemplo, si se define una hoja de estilo ligada con un documento HTML con el
siguiente código:
P {font-family:Verdana; font-size:10 pt}
TABLE {border:2; font-family:Tahoma; font-size:9 pt}
H3 {font-family:Comic Sans MS; font-size:12 pt; color:blue}
Se indica al navegador que presente los textos incluidos
entre <P> y </P> con un tipo de letra Verdana de 9 puntos, las tablas con una
fuente de letra Tahoma de 9 puntos y un ancho de 2 en los bordes, y los
titulares incluidos entre <H3> y </H3> con una letra Comic Sans MS de 12 puntos
y color azul. Utilizar CSS con XML es similar, con la excepción de que las
etiquetas son diferentes a las de HTML [Young M. 2000]. Un código como el
siguiente indica para un documento XML como debe mostrar las etiquetas <AUTOR>,
<PRECIO> y <TITULO>:
AUTOR {display:block; font-family:Arial; font-size:small; width:30em}
PRECIO {display:block; padding:1.2em; font-size:x-small}
TITULO {display:block; font-size:x-large; text-align:center; color:#888833}
3.4.7.3.- XSL
SGML tiene su propio estándar para la representación de sus
documentos, el DSSSL (Document Style Semantics and Specification Language,
ISO10179), que en realidad es un lenguaje de programación completo y muy
potente. Por tanto, ya que XML es una versión reducida de SGML parecía lógico
hacer también una versión reducida del DSSSL, llamada en este caso XSL (lenguaje
de hojas de estilo extensible, Extensible Stylesheet Language) [Gómez O.
Tutorial sobre XML].
Básicamente, XSL es un lenguaje de hojas de estilos diseñado
para su utilización en el Web. XLS debe representar de forma independiente a la
plataforma utilizada o al medio de representación la información recogida en los
documentos XML.
En cuanto a la inclusión de imágenes en las páginas XML,
estas son enlaces, que pueden representarse por alguno de los tipos soportado
por las especificaciones XLink y XPointer. XSL, además de permitir la
descripción de la presentación física, también posibilita la ejecución de
bucles, sentencias del tipo IF...THEN, selecciones por comparación, operaciones
lógicas, ordenaciones de datos, utilización de plantillas, etc. Para que el
lector se haga un pequeña idea de cómo es un código XSL, a continuación se
muestra un sencillo ejemplo que permitiría mostrar todos los contenidos de las
etiquetas <TITULO>, <AUTOR> y <PRECIO> de un documento XML, mediante un bucle
sin condiciones:
<xsl:template match="/">
<HTML>
<BODY>
<xsl:for-each select="/LIBROS/LIBRO">
Título:
<xsl:value-of select="TITULO"/><BR/>
Autor:
<xsl:value-of select="AUTOR"/><BR/>
Precio:
<xsl:value-of select="PRECIO"/> pesetas<BR/>
</xsl:for-each>
</BODY>
</HTML>
</xsl:template>
3.4.7.4.- Vínculos entre Documentos XML(XLink/XPointer)
Los enlaces e hipervínculos son tan importantes para los
documentos XML que el W3C ha sacado las especificaciones que las controlan fuera
de las descripciones del DTD, creando 2 normas: XLink y XPointer. Estas definen
el modo de enlace entre diferentes documentos. Este lenguaje va más allá de los
enlaces simples que sólo soporta el HTML [Pitts N. 1999]. Esta especificación
soporta por ejemplo las siguiente características:
Denominación independiente de la ubicación.
Enlaces que pueden ser también bidirecccionales.
Enlaces que pueden especificarse y gestionarse desde fuera del documento a los que se apliquen (esto permitirá crear en un entorno intranet/extranet un banco de datos de enlaces en los que se puede gestionar y actualizar automáticamente).
Hiperenlaces múltiples (anillos, múltiples ventanas, etc).
Enlaces agrupados (múltiples orígenes).
XLink define la forma en la que los documentos XML deben conectarse entre sí.
XPointer describe cómo se puede apuntar a un lugar específico de un determinado
documento XML. Resumiendo, XLink determina el documento al que se desea acceder
y XPointer marca el lugar exacto en dicho documento. Al contrario de lo que
ocurre con HTML, en XML existen dos tipos básicos de hipervínculos: simples y
extendidos. Un ejemplo de un hipervínculo simple sería:
<AUTOR xlink:href="autores.xml#juan" xlink:show="new">
<NOMBRE>Juan Primero Segundo</NOMBRE>
</AUTOR>
Otro ejemplo de un hipervínculo extendido podría ser:
<EDITOR_AUTOR xlink:extended>
<xlink:locator href="#ana" id="editor"/>
<xlink:locator href="autores.xml#juan" id="autor"/>
<xlink:arc from="editor" to="autor" show="replace"/>
</EDITOR_AUTOR xlink:extended>
En el primero se puede observar la definición de un
hipervínculo simple que se abre en una nueva ventana (show="new"), mientras que
en el segundo se definen un hipervínculo con tres posibilidades diferentes: a
una sección determinada del documento (#ana), o a un determinado lugar de otro
documento (autores.xml#juan), o a una zona delimitada por dos marcadores (editor
y autor). El funcionamiento de un hipervínculo simple no tiene secretos, pues es
similar al que se utiliza en HTML .
3.4.8.- Aplicaciones de
XML
La respuesta a si ya se puede utilizar XML en la Web es
un rotundo si, aunque dado que es una normativa nueva, no todas las herramientas
relacionadas con Internet son capaces de trabajar con XML. Con un editor de
textos ASCII (el Bloc de notas, por ejemplo) y con un visualizador que incluya
un intérprete de XML (Microsoft Internet Explorer 5, por ejemplo), ya se pueden
crear y ver documentos XML. No obstante, existen muchas herramientas nuevas que
facilitan un poco la labor del diseñador. Existen otros varios navegadores que
admiten XML, como Amaya, HotMetal o HyBrick, aunque casi cada día están saliendo
nuevos productos (intérpretes, navegadores, Bases de Datos, editores, DTDs,
etc.) [Santamaria F. XML]. Si el lector solicita información en un buscador
sobre XML, se sorprenderá de la enorme relación de recursos que surgirán.
Se pueden establece cuatro tipos de aplicaciones que
impulsarán el desarrollo del XML:
Aplicaciones que exijan que el cliente Web medie entre dos o más Bases de Datos. Se hará posible la integración de bases de datos distribuidas en los navegadores que admitan XML, pudiéndose modificar el contenido y la estructura de esta.
Aplicaciones que intentan transferir una parte significativa de la carga del proceso del servidor al cliente Web. Esta carga hará que muchas de las funciones de modificación puedan desarrollarse desde el mismo navegador Web del cliente. El lado más negativo es que se necesitará mayor ancho de banda y mayor potencia del procesador del equipo para poder soportar esta arquitectura de tres capas.
Aplicaciones que precisen que el cliente Web presente diferentes versiones de los mismos datos a diferentes usuarios.
Aplicaciones en las que agentes Web inteligentes intentan adaptar la búsqueda de información a las necesidades de los usuarios individuales. Habrá una interacción entre la información requerida y las preferencias del usuario de la aplicación. Con el XML vendrá una segunda generación de aplicaciones con una mayor precisión de la búsqueda.
3.4.9.- Productos
El número de productos para utilizar XML con Bases de Datos
está creciendo a una gran velocidad. Nuevos productos entran al mercado de forma
constante. Aquí se realiza una clasificación de estos productos, mencionando
cuales son las características genéricas de los mismos, que funcionalidades
brindan y se analizan algunos de estos productos existentes en el mercado.
Antes de continuar, hay que realizar la aclaración de que los
documentos XML pertenecen a dos categorías: "basados en datos" y "basados en
documentos". Los documentos XML "basados en datos" son en los que XML es usado
como un transporte de datos. Estos son por ejemplo órdenes de compra, registros
de pacientes y datos científicos. Los "basados en documentos" son en los que XML
es usado para representar documentos, como un manual de usuario, páginas
estáticas, folletos de marketing. Este último tipo de documento se caracteriza
por su estructura irregular.
Para grabar y recuperar datos en un documento "basados en
datos", se necesitará una Base de datos, como puede ser una Base de Datos
relacional o una orientada a objetos.
Para grabar y recuperar datos en un documento "basados en
documentos", se necesita una Base de Datos de XML o un Sistema de Administración
de Contenidos. Ambos está diseñados para almacenar fragmentos del contenido,
como procedimientos, capítulos, y glosarios, y pueden incluir metadatos, como
nombre del autor, fecha de revisión, etc. Un Sistema de Administración de
Contenidos generalmente tiene funcionalidades adicionales, como editores,
controladores de versiones, etc [Bourret R.,XML].
Para realizar esta división de los productos que están
vinculados a la tecnología XML se tomó en cuenta cuales son las características
de los mismos, las funciones que cumplen y como interactúan con las Bases de
Datos. Cabe destacar que a veces las diferencias entre algunas de estas
categorías es un poco arbitraria, ya que los productos ofrecen funcionalidades
muy variadas que implica que se superpongan entre las categorías. Se puede
establecer que siete categorías de productos:
Middleware: Software que es invocado desde nuestras aplicaciones para transferir datos entre documentos XML y Bases de Datos. Orientados a aplicaciones "basados en datos".
Bases de Datos XML-Enabled: Bases de Datos que pueden transferir datos entre documentos XML y ellas mismas. Orientados principalmente para aplicaciones "basados en datos".
Bases de Datos de XML Nativo: Base de Datos que almacenan XML en su forma "nativa", generalmente tanto texto indexado como alguna variante del DOM. Son tanto para aplicaciones "basados en datos" o "basados en documentos".
Servidores XML: Plataforma que brinda servicio de datos (en forma de documentos XML) desde y hacia aplicaciones distribuidas, como e-commer Los documentos XML deben ser fáciles de crear ce y aplicaciones business to business. Orientados principalmente a aplicaciones "basados en datos".
Servidores de Aplicaciones XML: Servidores de aplicaciones Web que brindan servicio de XML a los navegadores. Son tanto para aplicaciones "basados en datos" o "basados en documentos".
Sistemas de Administración de Contenidos: Sistemas para administrar documentos legibles e incluyen soporte para editar, controlar las versiones, crear nuevos documentos a partir de documentos existentes. Principalmente destinados a aplicaciones "basados en documentos".
Motores de consulta de XML: Aplicaciones que permiten realizar consultas sobre documentos XML.
Se llama documentos "bien formados" (del inglés well formed) a los documentos que cumplen con todas las definiciones básicas de formato y pueden, por lo tanto, ser analizados correctamente por cualquier analizador sintáctico (parser) que cumpla con la norma. Se separa esto del concepto de validez que se explica más adelante.
Los documentos han de seguir una estructura estrictamente jerárquica con lo que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar correctamente incluida en otra, es decir, las etiquetas deben estar correctamente anidadas. Los elementos con contenido deben estar correctamente cerrados.
Los documentos XML sólo permiten un elemento raíz del que todos los demás sean parte, es decir, sólo puede tener un elemento inicial.
Los valores atributos en XML siempre deben estar encerrados entre comillas simples o dobles.
El XML es sensible a mayúsculas y minúsculas. Existe un conjunto de caracteres llamados espacios en blanco (espacios, tabuladores, retornos de carro, saltos de línea) que los procesadores XML tratan de forma diferente en el marcado XML.
Es necesario asignar nombres a las estructuras, tipos de elementos, entidades, elementos particulares, etc. En XML los nombres tienen alguna característica en común.
Las construcciones como etiquetas, referencias de entidad y declaraciones se denominan marcas; son partes del documento que el procesador XML espera entender. El resto del documento entre marcas son los datos entendibles por las personas.
una declaración XML. Es la sentencia que declara al documento como un documento XML.
una declaración de tipo de documento. Enlaza el documento con su DTD, o el DTD puede estar incluido en la propia declaración o ambas cosas al mismo tiempo.
uno o más comentarios e instrucciones de procesamiento.
<!-- Esto es un comentario -->
<!-- Otro comentario -->
Esta relación entre elementos se especifica en un documento externo o definición (expresada como DTD (Document Type Definition = Definición de Tipo de Documento) o como XShema). Crear una definición equivale a crear un nuevo lenguaje de marcado, para una aplicación específica.
Internas o externas
Analizadas o no analizadas
Generales o parametrizadas
Usan sintaxis de XML, al contrario que los DTDs.
Permiten especificar los tipos de datos.
Son extensibles.
4.- ELABORAR UN DISEÑO DE UN SISTEMA DE INFORMACIÓN BASADO EN WEB PARA UNA EMPRESA FICTICIA
Utilizando como base el Modelo de Gane-Sarson, a continuación se presenta un Diagrama de Flujo de Datos (DFD) correspondiente al Ciclo de Reposición de Equipos de Telefónica Movistar.
El diagrama de nuestro ejemplo, representa el procedimiento a seguir al momento de reponer el stock de equipos del Almacén de la Compañía. Básicamente consiste en realizar la solicitud del Pedido al Proveedor quien debe entregar la Cotización correspondiente a la Solicitud de Reposición entregada inicialmente por el Departamento de Almacén, para que el Departamento de Compras genere la Orden de Compra, se despachen los equipos y se entregue finalmente el Remito y las facturas correspondientes.
Es importante destacar que el DFD es una herramienta de modelización que permite describir, de un sistema, la transformación de entradas en salidas; el DFD también es conocido con el nombre de Modelo de Procesos de Negocios (BPM, Business Process Model).
El objetivo del DFD es:
Describir el contexto del sistema, determinando lo que ocurrirá en cada una de las áreas de la empresa, denominadas Entidades externas, que participen de este sistema de información basado en web
Detallar los procesos a ser realizados por cada una de las Entidades externas involucradas
Enumerar los archivos de datos necesarios, en cada proceso.
Definir los flujos de datos, que participen en el procedimiento.
En otras palabras, el DFD permite representar de forma completa el sistema de información, al relacionar los datos almacenados en los archivos de datos del sistema, con los procesos que transforman a estos dados.
En nuestro ejemplo, los elementos involucrados son:
Entidades externas:
Departamento de Compras.
El Almacén.
Los Proveedores.
Procesos:
Generar Orden de Compra (O/C).
Generar Orden de Despacho.
Recibir Equipos.
Flujos de Información:
Solicitud de Reposición de Equipos
Solicitud de Cotización al Proveedor
Cotización
Nota de Reposición
Orden de Compra (O/C)
Aprobación y verificación de la O/C
Remito del proveedor
Remito aprobado por el Área de Compras
Envío de equipos
Factura de recepción de equipos
Archivos:
Proveedores (Base de datos de proveedores que ya tienen acuerdos con el área de Compras y están previamente autorizados)
Equipos
Figura N°2
Ciclo de Reposición de Equipos Motorola en Telefónica Movistar

Este sistema de flujo de información esta enmarcado dentro de una estructura web, que permite la comunicación directa entre empresa-proveedor, así como los diferentes departamentos involucrados en cada una de estas entidades, apoyándose su gestión con tecnologías como intercambio electrónico de datos y RPM, así como las redes y programas maestros de control de stock, ventas e inventarios (apoyándose en en los lenguajes de programación citados anteriormente en este trabajo).
Diseño N°2 - Control Estadístico de Servicio
Los
lenguajes basados en objetos empleados en la web, en su calidad de estándar del
sector para expresar datos estructurados, ofrecen muchas ventajas a las
organizaciones, desarrolladores de software, sitios Web y usuarios finales. Las
oportunidades aumentarán cuantos más formatos de datos de mercado vertical se
creen para mercados claves, como el mercado de búsquedas avanzadas en bases de
datos, banca en línea, médico, legal, comercio electrónico, etc. Cuando los
sitios ofrezcan datos, en lugar de limitarse a las vistas de datos, las
oportunidades serán extraordinarias.
Dado que la mayoría de las aplicaciones empresariales
implican la manipulación o la transferencia de datos y registros en las Bases de
Datos, como pedidos de compra, facturas, información del cliente, citas, etc.,
estos lenguajes y tecnologías van a revolucionar las posibilidades de los
usuarios finales en Internet, permitiendo la implementación de un amplio abanico
de aplicaciones empresariales.
Tras el análisis realizado de las principales características
de estas tecnologías, podemos afirmar que entraremos en una segunda fase de la
World Wide Web y, por lo tanto, habrá un desarrollo de aplicaciones más
inteligentes alrededor de estos lenguajes, siguiendo evolucionando hacia nuevas
tecnologías con ventajas y poder de ejecutar aplicaciones mayores. Habrá que
salvar algunos obstáculos, como que las grandes compañías deberán acogerse con
los estándares aprobados por el W3C, para que los futuros programas se convierta
en algo más que los sucesores de HTML,XML, PHP, PDA.
![]()
Tema: Auditorias en Sistemas de Información
2.- Auditorias de Información.
3.- Consultoria en Normas, Estandares y Seguridad Informática.
AUDITORIAS EN SISTEMAS DE INFORMACIÓN
1.- INTRODUCCIÓN
Las sociedades avanzadas de fines del siglo XX son
denominadas frecuentemente sociedades de la información, pues el volumen de
datos que es procesado, almacenado y transmitido es inconmensurablemente mayor
que es cualquier época anterior. Actualmente en el siglo XXI la información es
poder, por ello las organizaciones la valoran mucho.
Además, no sólo el volumen, sino la
importancia de esta información para el desarrollo económico y social, no tienen
ningún antecedente con la que tuvo en el pasado. De hecho, en la actualidad, las
organizaciones consideran que la información es un bien más de sus activos y en
muchos casos, prioritario sobre los restantes de la organización.
Pero gran parte de esos datos que
nosotros, o las entidades de nuestra sociedad, manejamos, han sido tratados, sea
durante su proceso, o almacenamiento, o transmisión, mediante las llamadas
tecnologías de la información, entre las que ocupa un lugar focal la
informática.
Consiguientemente, la seguridad de las
tecnologías de información, y por ende las informática, se convierte en un tema
de crucial importancia para el continuo y espectacular progreso de nuestra
sociedad, e incluso para su propia supervivencia.
Por otro lado, la evolución en los últimos
años de las redes informáticas y fundamentalmente de Internet, ha sido el factor
fundamental que ha hecho que la Seguridad Informática y sus estándares cobrasen
una importancia vital en el uso de sistemas informáticos conectados.
Desde el momento en que nuestra
computadora se conecta a Internet, se abren ante nosotros toda una nueva serie
de posibilidades (Derechos y Obligaciones), sin embargo éstas traen consigo toda
una serie de nuevos y en ocasiones complejos tipos de ataque. Más aun, mientras
en un ordenador aislado el posible origen de los ataques o amenazas es bastante
restringido, al conectarnos a Internet, cualquier usuario de cualquier parte del
mundo puede considerar nuestro sistema un objetivo apetecible
(Vulnerabilidades).
Existe un acuerdo y conciencia general
sobre la importancia de la Seguridad de los Sistemas de Información (denominado
SSI). La SSI está relacionada con la disponibilidad, confidencialidad e
integridad de la información tratada por las computadoras y las redes de
comunicación. Se usan comúnmente otros términos que en esencia tienen el mismo
significado, tales como seguridad de la información, seguridad de las
computadoras, seguridad de datos o protección de la información, pero en aras de
la consistencia, usaremos el término Seguridad de los Sistemas de Información en
las páginas siguientes.
En la actualidad con los procesos de
Globalización que están aconteciendo en el mundo las empresas deben adoptar
estándares de calidad y seguridad mayores, para poder ser más competitivos, ya
que los mercados a los que deben de incursionar así lo requieren.
Adicionalmente las empresas u
organizaciones ven al área de informática como un mal necesario dentro de la
organización, ya que generalmente solo representa gastos y no es palpable el
retorno de inversión en informática. Esto sucede generalmente porque en el
crecimiento de la organización no se tomo en cuenta al departamento de IT como
parte importante de la planeación estratégica, lo cual indica que no asigna un
papel importante en el rol de la empresa. Esto lleva a que los departamentos de
informática son remitidos a un segundo plano en la empresa u organización, lo
cual limita su crecimiento y recursos.
Esta visión de IT es Errónea debido a que
es la medula espinal del flujo de información que mantiene a las empresas u
organizaciones con información fresca y oportuna es el departamento de
informática, es simple de demostrar, cuando una empresa se queda sin correo
electrónico (algo muy básico y cotidiano en la actualidad) los gerentes o
directivos dan un grito que se escucha hasta en el cielo, pero aun así no captan
la importancia de área de IT (en pocas ocasiones toman la conciencia de la
importancia de IT).
El ingeniero(s) (generalmente es un equipo
de técnicos con un líder a cargo de la actividad) que tiene la responsabilidad
de ejecutar la auditoría de sistemas, primero que nada debe concertar reuniones
de trabajo con los responsables de las áreas administrativas, recursos humanos,
seguridad industrial, con el objetivo de conocer cual es la visión que tiene la
empresa u organización del valor de la información y rol que tiene el
departamento de IT de forma global.
Al establecer estos puntos de vista, y
tomar nota de los mismos, podrá empezar su labor de auditoría en el área, ya que
generalmente las fortalezas o debilidades de un departamento de informática
inician por el concepto global (visión, misión, metas, objetivos empresariales u
organizacionales) que tiene una empresa del área a auditar.
2.1.- DEFINICIÓN DE AUDITORIA.
Metodología basada en Riesgo vs. Control vs. Coste. El
auditor revisa o audita los controles con la ayuda de una lista de control (checklist)
que consta de una serie de preguntas o cuestiones a verificar. La evaluación
consiste en identificar la existencia de unos controles establecidos.
Las listas de control suelen utilizarse
por los auditores, generalmente por auditores con poca experiencia, como una
guía de referencia, para asegurar que se han revisado todos los controles.
La naturaleza especializada de la
auditoría de los sistemas de información y las habilidades necesarias para
llevar a cabo este tipo de auditorías, requieren el desarrollo y la promulgación
de Normas Generales para la Auditoría de los Sistemas de Información.
La auditoría de los sistemas de
información se define como cualquier auditoría que abarca la revisión y
evaluación de todos los aspectos (o de cualquier porción de ellos) de los
sistemas automáticos de procesamiento de la información, incluidos los
procedimientos no automáticos relacionados con ellos y las interfaces
correspondientes.
Para hacer una adecuada planeación de la
auditoría en informática, hay que seguir una serie de pasos previos que
permitirán dimensionar el tamaño y características de área dentro del organismo
a auditar, sus sistemas, organización y equipo.
A continuación, la descripción de los dos principales
objetivos de una auditoría de sistemas, que son, las evaluaciones de los
procesos de datos y de los equipos de cómputo, con controles, tipos y seguridad.
En el caso de la auditoría en informática, la planeación es fundamental, pues habrá que hacerla desde el punto de vista de los dos objetivos:
Evaluación de los sistemas y procedimientos.
Evaluación de los equipos de cómputo.
Para hacer una planeación eficaz, lo
primero que se requiere es obtener información general sobre la organización y
sobre la función de informática a evaluar. Para ello es preciso hacer una
investigación preliminar y algunas entrevistas previas, con base en esto planear
el programa de trabajo, el cual deberá incluir tiempo, costo, personal necesario
y documentos auxiliares a solicitar o formular durante el desarrollo de la
misma.
La auditoría de sistemas debe abarcar tres grandes áreas:
Auditoría de Infra Estructura Física y Lógica.
Auditoría de Aplicaciones y estaciones de trabajo.
Auditoría de Sistemas y su Administración.
Este tipo de auditorías generalmente son
realizadas por un equipo de expertos en diferentes ramas de la informática, con
el objetivo de poder revisar a fondo el área asignada y utilizar herramientas de
software que permitan obtener “Logs o Bitácoras” de que esta aconteciendo en
cada área, con lo cual podrán analizar y dictaminar el estatus de un
departamento de informática.
2.2.- AUDITORIAS DE INFRA ESTRUCTURA FÍSICA
Esta etapa de la auditoría es muy importante de revisar,
ya que en muchas ocasiones las empresas u organizaciones poseen pocos recursos,
y esto puede crear vulnerabilidades, también existen situaciones opuestas en las
cuales tienen muchos recursos y están siendo sub utilizados.
Hay que revisar el Hardware de los
servidores que utilizan, y el propósito de uso del servidor en sí, con el
objetivo de comprender si los recursos que posee cada servidor son los óptimos
para prestar el tipo de servicio o función para lo que ha sido designado. Hay
que tomar en cuenta que cada sistema operativo de servidor consume una “X”
cantidad de recursos de Memoria RAM y procesador, y según el uso destinado
deberán ser las características del equipo analizado. Es conveniente que se
posean estudios de Benchmark del caso, para poder tener parámetros de
comparaciones y recomendaciones.
Generalmente se pueden encontrar redes de
tipo LAN, WAN, MAN dentro de una institucion, por lo cual hay que revisar el
equipo y cableado que lo conforma.
Referente al cableado estructurado
(verificar que realmente cumpla con este estándar) chequeando desde la categoría
de cable utilizado para cada punto de red, el tipo de configuración que se
utilizada para cada cable (568 A o B) y que dicha configuración sea la misma en
todos y cada uno de los puntos de red. Verificar con equipos especiales la
transmisión de datos de cada punto, certificando que se esta cumpliendo con el
estándar mínimo de transmisión de paquetes por punto. Establecer si se posee un
plano del diseño del cableado estructurado en el cual se tiene la ubicación e
identificación de cada punto de red tanto en el edificio como en el Patch panel
respectivo. Idealmente el plano debe tener identificado también el departamento,
nivel, puesto que tiene asignado cada punto de red, con lo cual se simplificará
la ubicación física del mismo. Verificar que la distancia máxima de cada punto
de red sea de 90 metros del equipo activo y que el Patch Cord de la estación de
trabajo no sea mayor a 10 metros, para cumplir con el estándar de distancias
máximas de 100 metros.
Seguidamente hay que revisar el diseño de
la red a nivel físico, esto significa revisar que tipo de equipo activo y equipo
pasivo que poseen. En relación al equipo pasivo se debe verificar que los patch
panel sean los adecuados para la cantidad de puntos de red existentes, de
preferencia si el patch panel esta usando una configuración de espejo previo a
conectarse al equipo activo del caso.
El equipo activo de una red LAN puede
estar conformado por una “X” cantidad de concentradores entre los que se pueden
encontrar HUB o SWITCH, de existir aun Hub en una red es recomendable
reemplazarlos por Switch para que se pueda mantener el Qos de la red LAN. Ya que
el HUB no realiza Qos.
Hay que revisar que el Rack o Gabinete
sean aptos para el equipo pasivo y activo que soportan, así como para el caso de
que posean servidores de Rack. Se debe verificar que posean tomas de corriente
apta para la cantidad de equipos que tiene cada estructura.
En los casos que la empresa u organización
están alojadas en un edificio de más de 3 niveles se recomienda que se posea un
BACK BONE para comunicar los diferentes niveles del edificio o edificios que
conforman la red.
Así mismo colocar un equipo activo en cada
nivel del edificio para que brinde servicio a los diferentes puntos de red, este
equipo activo deberá contar con su respectivo patch panel y estar alojados en un
gabinete con llave para protección del equipo activo como pasivo.
El equipo activo debe contar con un mínimo
de 2 puertos de Fibra Óptica o GBIC los cuales se deben conectar a un Router que
atenderá a la red LAN y con esto se lograra segmentar y direccionar
correctamente el trafico de paquetes de la red. Dicho Router debe tener la
capacidad de manejar la misma tecnología con que recibirá la señal de los switch
de cada nivel.
Hay que tomar en cuenta que el área de
servidores debe poseer su propio Switch para servicio exclusivo de los mismos,
con lo cual se optimiza la comunicación entre dicho FARM (granja de servidores)
y esto permite que el tiempo de respuesta en la comunicación entre servidores
sea óptimo. El Switch que se debe utilizar en este segmento de red deberá ser de
fibra óptica o GBIC para que la velocidad de comunicación y transferencia de
paquetes sea excelente. Se debe tomar en cuenta que los modelos de servidores
existentes soporten este tipo de tecnología de redes.
En los casos que una empresa u
organización posea red WAN o MAN se debe establecer la cantidad de usuarios que
hay en cada oficina remota, con lo cual se deben de revisar las configuraciones
de cableado estructurado de cada oficina, ya que deberán de cumplir con lis
estándares que se tienen en las oficinas centrales. Al existir este tipo de
redes se entiende que existe un Router que tiene como objetivo brindarles
servicio y optimizar el tráfico de estas redes. Esto significa que dicho tráfico
accede únicamente al área de servidores y muy poco o prácticamente nulo a la red
LAN. La razón del poco acceso o prácticamente nulo a la red LAN central es
porque todos los archivos o programas compartidos deben estar alojados en los
servidores.
En esta fase no se audita aun el equipo
del Gateway y/o Firewall que pueda tener una empresa, ya que estos equipos son
parte de la infra estructura Física pero su funcionamiento y configuración
dependen de la infra estructura Lógica de la red. Las únicas revisiones que se
deben de hacer son relacionadas a que cumplan con estándares relacionados a
cableado estructurado.
Es importante recomendar que un auditor
revise si el equipo activo existente en la organización tiene las facultades de
administrarse de forma remota.
2.3.- AUDITORIA DE INFRA ESTRUCTURA LÓGICA
Esta etapa de la auditoría debe de revisar múltiples
áreas de la infra estructura, tales como lo son:
Diseño Lógico de la Red LAN.
Diseño Lógico de la Red WAN o MAN.
Diseño de DNS.
Tipos de servicios o aplicaciones que se ejecutaran en los servidores.
Fin o propósito de cada servidor y su respectiva configuración.
Cantidad de usuarios a los que se presta servicio con el objetivo de establecer si el performance de cada servidor es el adecuado para las aplicaciones y cantidad de usuarios a los que presta servicio.
2.3.1.- Diseño Lógico de la Red LAN.
Esta parte de una red abarca varias áreas, tales como lo
son las diferentes SUB NET que se tendrán en la red, el propósito de cada una de
ellas, los servicios o aplicaciones que correrán sobre dicha red. En el caso de
que una empresa u organización posea un edificio de más de 3 niveles para sus
oficinas, es recomendable que se asigne una sub net para cada nivel del
edificio. Importante resaltar que los rangos de direccionamiento IP a utilizar
deben ser de tipo privados. En caso de que se utilice DHCP es recomendable que
se tengan bien definidos los grupos a los que pertenece cada estación de
trabajo, para que así se pueda llevar un control de la sub net asignada a dicho
grupo.
Para el área de servidores se debe de
contemplar tener direccionamiento FIJO y una sub net, especifica a la cual
apuntaran las estaciones de trabajo. Es recomendable que se haga un buen diseño
de las sub net y se deje documentado el propósito de las mismas. Tomar en cuenta
que los DNS y el Gateway deben pertenecer a un sub net diferente a la de cada
nivel o ubicación y a la del sub net de servidores, esto permite que se tenga
una mejor seguridad.
2.3.2.- Diseño Lógico de la Red WAN o MAN.
Tomar en cuenta que son parte de la misma empresa u
organización, la única diferencia es que están retiradas de la central. Pero
tienen derecho a acceder a ciertas áreas de la red, específicamente a servidores
que les brindan algún tipo de servicio o aplicación. Para ello es recomendable
que se diseñe un sub net que utilice direccionamiento IP privado, de preferencia
que sea fijo y no dinámico, ya que esto simplifica la administración remota.
Los DNS generalmente son los mismos si
tienen una sola salida al Internet, y su GateWay es variante, según la dirección
IP que nos asigno el ISP para el enlace de punto a punto (esto varia según cada
escenario en el que practica la auditoría). Aunque si hay servidores de DNS
segundarios que brindan servicios a locaciones remotas, es posible que esto
cambie. Es por ello que es importante que se posea documentación de cómo se
estructuro lógicamente la red.
2.3.3.- Diseño de DNS.
En la mayoría de los casos una empresa u organización en
Latinoamérica empieza de ser una empresa pequeña, después pasa a ser una empresa
mediana. El negocio o giro es bueno y los dueños crean otras empresas que de
igual manera tienen un crecimiento, posteriormente deciden unificarlas. Esto en
la mayoría de casos es muy complejo y difícil, ya que cada empresa tenia su
propio domino, por ende sus propios DNS. Al unificarse el dominio, se puede
complicar la unificación porque existen diversidad de aplicaciones y servicios
en cada empresa, que están apuntando a su servidor de DNS. Al momento de
integrar todas las empresas inicia el problema, por ello es que se recomienda
que se tenga cuidado al realizar este tipo de consolidaciones organizacionales y
estructurales ya que esto puede repercutir duramente en la red.
Hay que hacer un análisis y re
configuración de los DNS en estos casos y dejar bien configuradas las
replicaciones o re direccionamientos en casos de ausencias de un servidor padre.
2.3.4.-Tipos de servicios o aplicaciones que se ejecutaran
en los servidores.
Es importante tener claro las aplicaciones que utiliza
una empresa, como los son los ERP, CRM, SCM, u otros, servicios como Correo
Electrónico, File Server, etc., las cuales se ubicaran en un “X” servidor, y la
cantidad de usuarios que accederán a dicha aplicación. Hay que determinar que
Benchmark se necesita para cada conexión de usuario a la aplicación, para
establecer si es correcta o no la configuración Física (Hardware) del servidor,
con lo cual se puede establecer si el servidor posee suficientes recursos para
atender las necesidades de cada requerimiento de conexión a la aplicación o
servicio.
2.3.5.- Fin o propósito de cada servidor y su respectiva
configuración.
Inicialmente un servidor se adquirió con un fin o
propósito especifico, y por ellos posee un Hardware capaz de brindar servicios
para dicho fin. En mi experiencia he encontrado casos en que hay un servidor que
esta haciendo 5 o 7 cosas mas de las que fueron su propósito inicial, y por ello
es que un servicio o aplicación presentan problemas de respuesta o lentitud, ya
que los recursos del Hardware son menores a lo que requiere el Benchmark para el
Software de las 5 o 7 aplicaciones corriendo simultáneamente. Es por ello que se
recomienda que un auditor verifique el Propósito inicial con el que se adquirió
un servidor de arquitectura, y en el caso de que no sea el adecuado se pueda
hacer las recomendaciones del caso.
2.3.6.- Cantidad de usuarios.
Hay que establecer la cantidad de usuarios a los que se
presta servicio con el objetivo de establecer si el performance de cada servidor
es el adecuado para las aplicaciones y cantidad de usuarios a los que presta
servicio.
2.4.- AUDITORIA DE APLICACIONES
Esta parte es muy compleja de revisar, ya que hay
múltiples factores a tomar en cuenta de la aplicación a revisar, tales como:
Lenguaje de Programación.
Actualizaciones de la Aplicación.
Fabricante.
Trayectoria del Fabricante.
Soporte en sitio.
Tipo de base datos que utiliza.
Diccionario de la estructura de la base de datos.
Compatibilidad con programas generadores de reporte de terceros.
Arquitectura de la aplicación.
Métodos de acceso de los usuarios.
Establecer si un usuario del mas bajo nivel puede acceder a las partes mas delicadas de la aplicación, de forma intuitiva, ya que hay que recordar que los Hacker`s mas cercanos que tenemos son los mismos usuarios por su propia curiosidad humana en el mejor de los casos.
Revisar si la aplicación posee bitácoras de tipo transaccional, con las cuales se pueda hacer rastreos de lo ejecutado por cada usuario en su sesión de trabajo.
2.5.- AUDITORIA DE ESTACIONES DE TRABAJO
Generalmente las empresas poseen un departamento de
recursos Humanos que tiene definidos los Roles, funciones, atribuciones de cada
uno de los empleados, por consiguiente informática debe tener conocimiento de
que funciones tiene un empleado, para poder instalar el Software necesario para
el trabajo del empleado. Así poder determinar que no tenga juegos o herramientas
que distraigan su atención, o que solamente consuman recursos de la estación de
trabajo necesarios para su trabajo cotidiano. Por ello es que una empresa debe
tener clara estas definiciones. Además se debe revisar que los usuarios no sean
Administradores de sus equipos, para que no puedan instalar SW (Software) a su
discreción. Revisar que se posea el licenciamiento de los programas instados en
la estación de trabajo. Hay que hacer las revisiones del caso con Software
destinado a realizar inventarios de HW (Hardware) y SW instalados en la estación
de trabajo.
2.6.- AUDITORIA DE LAS INSTALACIONES FÍSICAS DEL DEPARTAMENTO DE INFORMÁTICA
Esta parte es muy importante, ya que la seguridad Física es parte
fundamental, ya que las amenazas de este tipo son latentes, los puntos a revisar
son:
Métodos de acceso al cuarto de servidores.
Bitácoras de acceso al área de servidores.
Sistema de monitoreo por medio de video.
Bitácoras de Video.
Temperatura ambiente del área de servidores.
Circuito eléctrico independiente del cuarto de servidores.
Sistema de protección de descargas electro atmosféricas para el cuarto de servidores.
Ubicación, distribución de los Rack y propósito del rack.
Sistemas detectores de Humo.
Equipos para apagado de Fuego a base de CO2.
Circulación del aire acondicionado en el cuarto de servidores.
Canales aéreos de trasporte del cableado estructurado que ingresa al cuarto.
Rack independiente para equipos activos y pasivos de Voz, Datos, Video.
Mapas disponibles de los diferentes puntos de red y su uso.
Métodos de limpieza del área de servidores, frecuencia, entrenamiento del personal que la realiza, etc.
2.7.- AUDITORIA DE LOS CONOCIMIENTOS DEL PERSONAL DEL
DEPARTAMENTO DE INFORMÁTICA
Hay múltiples factores a evaluar según la función y puesto
del personal, ya que el perfil y conocimientos de cada uno pueden variar según
sus funciones y atribuciones. Generalmente hay 6 tipos de personal en IT:
1. Gerente de Informática.
2. Administrador(es) de red LAN, WAN.
3. Administrador(es) de seguridad Perimetral e interna.
4. Desarrolladores de aplicaciones.
5. Administrador de bases de datos.
6. Técnico de atención a usuarios.
Según el puesto se recomienda hacer una
batería de pruebas en conocimientos de las áreas que son responsables, para
conocer las fortalezas y debilidades, con el objetivo de recomendar capacitación
en las áreas débiles.
3.-
CONSULTORIA EN NORMAS, ESTÁNDARES Y SEGURIDAD INFORMÁTICA
3.1.- Revisión Estatus actual del área IT de la Organización: Esto se logra mediante una AUDITORÍA sorpresa para que se conozcan las condiciones cotidianas de trabajo de la empresa u organización.
3.2.- Definición de Alcances de las necesidades de la Organización: Se
logra al concluir las reuniones con la alta dirección de la empresa, y acorde a
la misión y visión de la empresa u organización.
3.3.- Problemas y Riesgos Encontrados en área IT: Resultado de la
auditoría, así como de las posibles quejas indicadas por el personal de IT, pero
generalmente son resultado de la auditoría como tal.
3.4.- Recomendaciones para lograr con cumplir con los requisitos de la
organización:
a.- Infra Estructura de Comunicaciones Red LAN.
Cada auditoría es un caso diferente y único, por lo cual se
deben de tratar como independientes, lo que se toma como base son los estándares
de la industria informática en este tema. Importante que se tengan como mínimo
los equipos adecuados para una red de este tipo.
b.- Infra Estructura de Comunicaciones Red WAN.
Cada auditoría es un caso diferente y único, por lo cual se
deben de tratar como independientes, lo que se toma como base son los estándares
de la industria informática en este tema. Importante que se tengan como mínimo
los equipos adecuados para una red de este tipo. Para los enlaces de datos es
recomendable que se tenga previsto una tolerancia a fallos por medio del ISP que
esta brindando el servicio de datos, es bueno tener redundancia.
c.- Redundancia en las Telecomunicaciones.
Una empresa debe poseer como mínimo 2 enlaces de Internet y
un número igual de direcciones IP Publicas para que con esto tenga la
factibilidad de redundancia en casos de falla. Los anchos de Banda dependerán
del uso que se le de al Internet, así como la cantidad de usuarios que tienen
acceso al servicio.
d.- Inventario de Hardware y Software Organización.
El objetivo de esta actividad es poder tener claro que tipos
de equipos se están utilizando en la empresa u organización, los modelos, y
tipos, además de saber que Software posee sus respectivas licencias por cada
equipo que lo tiene instalada.
Esto permite que el departamento de IT
pueda llegar a tener un estándar de equipos, con semejantes configuraciones, y
así al momento de tener que realizar algún tipo de reparación, poder saber que
tipo de piezas son las que necesita, o si tiene en stock para una sustitución
mucho mas rápida.
Es muy conveniente que una empresa u
organización seria tenga todo el software que existe dentro de sus equipos de
cómputo, debidamente licenciado, ya que esto les brinda un respaldo de tipo
legal. El tener un inventario de HW y SW permite que el personal de IT sean
consientes de que poseen y que pueden utilizar dentro de sus recursos.
e.- Definición de Políticas de Administración de Dominio.
Estas políticas son definidas en base a una serie de
temas a considerar, tales como:
Misión, Visión de la empresa.
Grupos de trabajo.
Funciones y atribuciones de los grupos de trabajo.
Definición de puestos y sus funciones.
Establecer a que servicios o aplicaciones tiene derecho el usuario o grupo de trabajo.
Horarios de trabajo.
Políticas de seguridad física y lógicas de la empresa u organización.
f.- Definición de Políticas de uso Recursos de la
organización.
De igual forma estas políticas son definidas en base a una
serie de puntos a considerar, pero realmente son más puntuales, tales como:
Derechos de uso de impresoras de red.
Cantidad de impresiones por usuario.
Horarios de usos de los recursos.
Correo electrónico.
Internet.
Carpetas compartidas.
Aplicaciones o herramientas de trabajo.
Etc., son muy diversos los escenarios de cada empresa u organización.
g.- Definición de Políticas de Almacenaje de Información.
Este es un tema delicado desde cualquier punto de vista,
ya que dependen varios factores del mismo, tales información generada por cada
usuario, información generada por las aplicaciones en sus respectivas bases de
datos, información de correos electrónicos de la organización, etc.
Lo importante de resaltar en este tema es
que el almacenaje de información de usuarios debe ser centralizado, con el
objetivo de que sea fácil la generación de copias de seguridad, y de forma
rápida. Esto minimiza el problema clásico de que en las estaciones de trabajo se
guardan los documentos de cada usuario y que al tener problemas con su equipo o
estación de trabajo, pierden el acceso temporal o definitivo a sus archivos.
Por ello es conveniente que se creen los
denominados FILE SERVER que tiene como propósito el almacenaje de esta
información de tipo labora.
Para aquellos archivos de tipo personal es conveniente crear una política en la
cual puedan guardar archivos en su disco duro, y que la capacidad de almacenaje
no sea mayor a 700 MB. Con relación a las herramientas o aplicaciones de la
empresa u organización, es recomendable que las bases de datos sean monitoreadas
diariamente, además de crear las copias de respaldo del caso.
h.- Definición de Políticas de Back Up.
El respaldo de la información de la empresa es Vital y
por ellos se debe tomar como una actividad diaria y de prioridad alta. Para ello
se deben definir políticas de Back Up que permitan tener copias de seguridad
incrementales y totales de la información tanto del FILE SERVER con del DB
SERVER, MAIL SERVER, etc., para que al momento de una problema de tipo físico o
lógico se pueda restaurar la información en un tiempo prudente.
Las políticas se deben de fijar en función de nivel crítico
de los datos, y del volumen. La frecuencia de cada BACK UP como mínimo debe ser
diaria, semanal y como máxima mensual.
Adicionalmente cada TAPE, DVD, CD de
información debe ser almacenado en un lugar seguro y debidamente etiquetado, con
el objetivo de poder ser ubicados correctamente. Esta actividad debe ser
presupuestada por el gerente de área, ya que es un rubro importante.
i.- Definición de Políticas de Servicios como Correo
Electrónico e Internet.
Este tema es básicamente simple, pero detallista, se
deben de tomar en cuanta los siguientes puntos:
Fijar la política de que usuarios deben poseer correo electrónico, y el tipo de permisos del correo electrónico, tales como correo externo, correo entrante, saliente, tipo de archivos a recibir, tipo de archivos a enviar.
Limitar el uso de herramientas de mensajera instantánea.
Limitar el uso de Internet a usuarios que no deben utilizarlo.
Limitar a páginas específicas en los casos de que un usuario lo deba de tener que utilizar.
Fijar horarios de uso del Internet para dichos usuarios.
Adquirir software para monitorio y administración del uso de Internet, este software debe ser capaz de ligarse estrechamente a las políticas del directorio maestro (Active Directory.
j.- Definición de Políticas de Mantenimiento Preventivo –
Correctivo de equipo de cómputo.
En la mayoría de empresas u organizaciones utilizan al
personal de IT para hacer tareas de este tipo, pero hay que reconocer que esto
es un mal uso del personal informático. Por ello se recomienda que sub contraten
servicios externos para este tipo de actividades, tales como:
Contratación de una empresa que brinde el servicio de mantenimiento preventivo de las estaciones de trabajo. Este tipo de mantenimiento se recomienda que se haga de forma Trimestral. Se deberá de incluir las Computadoras e impresoras de la organización. Esta empresa debe de tener personal calificado y de preferencia certificado en mantenimiento de estaciones de trabajo e impresoras.
Contratación de una empresa capaz de brindar mantenimiento a los servidores de la empresa, esta empresa deberá de tener personal certificado por el fabricante, para dicha actividad. El ciclo de mantenimiento es semestral para este equipo.
Contratación de un servicio de mantenimiento de preventivo para equipo activo, por una empresa con personal certificado en este equipo.
k.- Control de Acceso área de Servidores.
Generalmente este tema se descuida, por ello es importante tomar en cuanta
lo siguiente:
Implementar herramientas electrónicas de control de accesos, para que solamente el personal autorizado pueda ingresar al área.
Implementación de sistema de monitoreo de la temperatura del cuarto de servidores.
Implementación de cámaras de video para vigilar el acceso al área de servidores.
Implementación de detectores de Humo.
Implementación de extinguidor de fuego, a base de Co2.
l.- Administración IT.
Este es un tema muy complejo y delicado, ya que las
recomendaciones se basan en las evaluaciones que ha realizado el auditor, tanto
de conocimientos como de procedimientos y hábitos del departamento de
informática. Es importante resaltar que debe ser una crítica constructiva, con
el afán de estandarizar procedimientos, conocimientos y funciones y atribuciones
de cada uno de los miembros.
m.- Definición de funcionamiento de aplicaciones
administrativo contables (ERP) y/o de Administración de clientes (CRM) u otras.
Estas aplicaciones deben cumplir con los estándares de la
industria informática, deben ser robustas, centralizadas, arquitectura cliente
servidor, segura y confiable, Base de datos segura y confiable, de fabricantes
de renombre, con una base instalada amplia (lo cual permite obtener soporte
local), que permita flexibilidad y seguridad transaccional, que sea altamente
parametrizable a las necesidades de la empresa, debe ser un sistema
transaccional que refleja en tiempo real las transacciones que se están
realizando dentro del sistema, debe tener capacidad multi empresa, multi
sucursal, multi bodega, multimoneda, un sistema capaz de no requerir cierres
mensuales, capaz de aceptar funcionalidades adicionales según las
características de la empresa, que sea capaz de interactuar con otras
aplicaciones de la empresa, debe de manejar controles de acceso mediante la
definición de perfiles de cada usuario o grupo de usuarios, dándoles un nivel de
acceso limitado a las diferentes áreas de la aplicación, capaz de manejar
prioridades en el perfil de cada usuario, mapas de acceso, y procesos para el
usuario especifico. Capacidad de manejar la administración de la empresa de
forma fácil y amigable para los usuarios. Debe ser intuitiva. La gestión de las
empresas de hoy en día se establece en 4 grandes áreas de la empresa:
Administración: Donde se procesan diariamente las operaciones de Inventarios, Compras, Cuentas por Cobrar, Cuentas por Pagar, Caja y Bancos, Facturación o Ventas de la empresa.
Contabilidad: Donde se procesa de forma mensual las transacciones de las áreas administrativas antes mencionadas.
Nomina: Proceso de administración del capital humano y su remuneración, debe ser un sistema altamente configurable a las necesidades de la empresa.
Administración de clientes (CRM) u otras.
Se recomienda contemplar la adquisición de
una CRM por el tamaño de la organización.Se recomienda adquirir una herramienta
de Help Desk para monitoreo del desempeño del departamento de Informática.
n.- Cantidad de Direcciones IP Públicas.
Es importante tener un inventario de las direcciones publicas
que posee la empresa, así como el uso o propósito de cada una, ya que de no
existir un control de esto, estas direcciones se convierten en una
vulnerabilidad fuerte para la empresa u organización.
o.- Uso de servicios de accesos remotos (Web Server)
Este servidor generalmente esta ubicado en una DMZ, y
permite que usuarios remotos o externos, tengan acceso a servicios o reportes
que necesiten consultar. Es importante que este tipo de servidores cuenten con
un muy alto nivel de seguridad y que exista un muy cercano control de los
accesos al mismo.
Muchas empresas u organizaciones utilizan
herramientas de acceso remoto para poder ingresar a estos portales, con lo cual
optimizar sus recursos tanto de performance de ancho de banda como uso de
servidor.
p.- Seguridad de la red LAN.
Según el giro de la empresa u organización son los niveles de
seguridad a implementar en este tema, tales como:
Implementar políticas de navegación más complejas y robustas a nivel de Firewall de Software que se integre al controlador de dominio para restringir el acceso a páginas o recursos de Internet por IP y usuario y al mismo tiempo optimizar el uso del ancho de banda contratado del enlace y optimizar el tiempo de los empleados. Esta tarea también se puede implementar a través de la soluciones de Web Security que permite realizar filtros de navegación a nivel de usuario de dominio.
Actualizar los parches de seguridad y vulnerabilidades de todos los servidores de la organización y las estaciones de trabajo. Al mantener actualizados los sistemas operativos de las máquinas críticas se reduce el riesgo de que se filtre un ataque diseñado a propagarse aprovechando alguna vulnerabilidad del sistema operativo. Esto se puede realizar a través de la herramienta de Microsoft Software Update Services (SUS).
Utilizar la herramienta de Microsoft Baseline Security Analyzer antes y después de aplicar parches a través de Windows Update. Al ejecutar esta herramienta reporta los parches que aun no han sido aplicados en una forma más eficiente así se puede tomar una acción preventiva.
Se recomienda que internamente se haga un piloto de cada uno de las soluciones seguridad (Antivirus) y validar cual da mayores beneficios a la organización con el objetivo de estandarizar a una sola herramienta.
Se recomienda montar una solución en el Servidor de correo que monitoree los buzones de los usuarios para spam y antivirus que se podrían estar enviando internamente.
Implementar una solución de IDS con sus respectivas bitácoras para poder tener certeza de que es esta sucediendo en al red LAN.
Implementar una solución IPS para que al momento de que el IDS detecte el ataque, el IPS lo bloquee inmediatamente.
Implementar herramientas anti Spam.
Implementar herramientas anti Adware, Spyware, Phishing, etc.
q.- Seguridad de Perímetro Organizacional red WAN e
Internet.
Este tema es muy complejo y diverso, pero importante de
que exista como tal, ya que la mayor cantidad de ataques hoy en día provienen
del exterior. Por la topología de una red WAN hay que certificar que los
usuarios que están intentando acceder a la misma son los usuarios permitidos, y
que cuentan con el certificado de autenticidad del caso, de preferencia si es
emitido por el servidor de dominio.
Con relación a los accesos del Internet es importante que la empresa posea un FIREWALL que sea capaz de hacer las funciones de:
Antivirus.
IDS.
IPS.
Filtrado de Contenido.
Anti Spam.
Inspección total de paquetes en transito.
Esto evitara que tengamos agujeros de
seguridad en la puerta principal. Además hay que tomar en cuenta que se deben de
des activar todos los Modem que existen en las estaciones de trabajo o
servidores, para evitar que estos mismos sean una puerta trasera.
r.- Accesos Remotos de aplicaciones de la organización.
Estos deben cumplir con un mínimo de tres métodos de
autenticación:
Usuario registrado para acceder a la aplicación o recurso.
Password de usuarios, con características de complejidad alta, o sea que lleve letras, símbolos y números en el password como tal.
Llave física o Token que contengan el certificado emitido por el controlador de dominio, el cual valida y verifica al usuario.
s.- Página Web de la Organización.
Esta generalmente es la imagen de la empresa u
organización y es capas de decir mucho o poco de la misma. Pero su diseño y
seguridad son muy importantes, así como su administración, por ello es que se
recomienda que este punto sea evaluado en función del rol, necesidades y
servicios que presta una empresa a sus clientes o usuarios.
CONCLUSIONES
El Cómo seleccionar el sistema perfecto para un negocio en crecimiento es una
tarea muy compleja y requiere de conocer de muchas tecnologías. Al elegir los
pasos y herramientas más acertadas para favorecer el crecimiento de la compañía
es esencial considerar como cada decisión contribuirá a alcanzar las metas de la
organización, incluida una de las partidas mas importantes… la tecnología. Al
determinar como la tecnología apoya el crecimiento de la compañía, se debe de
considerar su posición actual en el mercado y su norte en términos de su visión,
metas y objetivos. Tener una misión definida ayudara a alcanzar con mayor
precisión lo que falta y las necesidades futuras.
La selección de las soluciones tecnológicas adecuadas puede diferenciar entre
ser el líder del mercado o solo un seguidor.
El manejo de la información y la rapidez para reaccionar a las necesidades del
consumidor son las herramientas clave para el crecimiento de cualquier compañía,
Aquí la tecnología se convierte en el elemento estratégico para todos los
niveles de la organización y para las fases de interacción de sus miembros.
La tecnología mejora el perfil competitivo de las empresas y aumenta la
productividad, la agilidad en la toma de decisiones, el manejo y el mejoramiento
de la relación con el cliente. Sin embargo para incrementar las ganancias de una
empresa, es imprescindible establecer un balance entre la tecnología que desea
adquirir y el presupuesto disponible.
Por esto, su elección tecnología debe de buscar una solución tecnología
adaptable, productivas y accesibles, con una capacidad de soportar la evolución
de la compañía, para cada una de las áreas que la integran, a tono con el
presupuesto, metas y necesidades de compañías enfocadas a los retos que presenta
el futuro.
Con el presupuesto disponible y las necesidades por cubrir, deben de conocer las prioridades de la compañía y enfocarse en las áreas principales:
Almacenar data.
Aumentar la Productividad.
Reducir los costos.
Se debe de diseñar la base para una infra estructura tecnológica capaz de
reaccionar y ajustarse a las demandas de la organización, lo cual inicia con la
adquisición del equipo según nuestro plan estratégico.
El objetivo de una Consultorìa y auditoria es mostrar las fortalezas y debilidades de la empresa contratante.
Fortalezas.
Debilidades.
Oportunidades.
Amenazas.
Aspectos para Auditorías de Sistemas de Información y Tecnologías
Informáticas e implementación de estándares de Seguridad Informática.
Cristian E. R. Bailey E. Consultor en Informática - IT CONSULTORES
PROFESIONALES. Computadoras Equipos Redes Básicas Estructuradas S.A. – CERBESA.
![]()
Ultima revisión: Mayo 2007
