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).
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