UNIVERSIDAD YACAMBUESTUDIOS VIRTUALES TEMA: Desarrollo de un Sistema de Información basados en tecnología WEB con acceso a base de datos. Software que permita realizar acceso a base de datos utilizando un sistema de información basado en web.(JAVA; PERL, COLD FUSION, ASP, PHP, etc) Diferencias/Características.
Java
Por la forma en que está diseñado, Java no permite el manejo directo del hardware ni de la memoria (inclusive no permite modificar valores de punteros, por ejemplo); de modo que se puede decir que es virtualmente imposible colgar un programa Java. El intérprete siempre tiene el control.
Inclusive el
compilador es suficientemente inteligente como para no permitir un montón de
cosas que podrían traer problemas, como usar variables sin inicializarlas,
modificar valores de punteros directamente, acceder a métodos o variables en
forma incorrecta, utilizar herencia múltiple, etc.
Además, Java
implementa mecanismos de seguridad que limitan el acceso a recursos de las
máquinas donde se ejecuta, especialmente en el caso de los Applets (que son
aplicaciones que se cargan desde un servidor y se ejecutan en el cliente).
También está
diseñado específicamente para trabajar sobre una red, de modo que incorpora
objetos que permiten acceder a archivos en forma remota (via URL por ejemplo).
Además, con el JDK
(Java Development Kit) vienen incorporadas muchas herramientas, entre ellas un
generador automático de documentación que, con un poco de atención al poner los
comentarios en las clases, crea inclusive toda la documentación de las mismas
en formato HTML!
Perl
Perl (Practical Extraction and Report Language)
es un lenguaje de programación desarrollado por Larry Wall
(lwall at netlabs.com) inspirado en otras herramientas de UNIX como son: sed, grep,
awk, c-shell, para la administración de tareas propias de sistemas UNIX.
No establece ninguna filosofía de programación
concreta. No se puede decir que sea orientado a objetos, modular o estructurado aunque soporta directamente
todos estos paradigmas; su punto fuerte son las
labores de procesamiento de textos y archivos.
No es ni un compilador ni un intérprete,
esta en un punto intermedio, cuando mandamos a ejecutar un programa en Perl, se
compila el código fuente a un código intermedio en memoria que se optimiza como
si se fuera a elaborar un programa ejecutable pero es ejecutado por un motor,
como si se tratase de un interprete.
Lenguaje de programación basado en scripts portable a
casi cualquier plataforma. Es muy utilizado para escribir CGIs.
Uno de sus elementos mas potentes son las expresiones regulares, que a partir de su
versión en Perl han sido adoptadas por otros lenguajes y plataformas como .NET o Javascript.
Lenguaje
optimizado para el escaneo de texto arbitrario de ficheros.
Es también un buen lenguaje para tareas de administración de sistemas. Es un lenguaje
con intención de ser práctico en lugar de bonito. Satisface las tres virtudes
del programador: flojera, impaciencia y petulancia.
Básicamente, es un lenguaje que se ha intentado que sea lo más
natural posible, lo que conlleva que en ocasiones nos encontremos estructuras
poco habituales en un lenguaje de este tipo:
print
"hola" if $saludo == 1;
Destaca también el uso de variables
especiales, muy habituales en los lenguajes de tipo script en los sistemas de
tipo Unix. Estas variables permiten realizar una
serie de operaciones sobre los datos y los archivos que aportan a Perl una
flexibilidad y potencia enormes. Además de variables que podemos encontrar en
otros lenguajes como @ARGV (indica los parámetros con
los que se ha llamado al programa) o %ENV (indica las variables de entorno de la aplicación), podemos
utilizar también variables como $_ (que representa el último
dato que llegó por la entrada estándar), o $|, que nos indica si Perl
debe enviar el texto a la salida estandar inmediatamente (o al flujo de
salida que le hayamos indicado previamente). Perl tiene implementadas las expresiones regulares, lo que le da una
potencia muy grande en el procesamiento de textos.
Cold Fusion
Cold
Fusion centra su potencialidad en la confiabilidad y el control del manejo de
datos. Reconoce la complejidad del manejo e interacción de escritos CGI,
ofreciendo una potente seguridad, veloz carga de datos, procesamiento rápido de
escritos CGI que posibilita el cumplimiento de tareas de entrada o devolución
de datos.
Utiliza
fuentes de datos ODBC de 32-bits, las cuales deberán cumplir con el nivel 1 de
los ODBC API y soportar las sentencias SQL.
Entre
las funciones de Cold Fusion están:
Para
crear aplicaciones de Cold Fusion, se necesita del conocimiento previo de
sentencias SQL para la generación de código en la selección de la correcta
información alojada en una base de datos. Gracias a las sentencias SQL se tiene
un control completo sobre qué, dónde y por qué desplegar los datos dentro de un
sitio Web.
ASP
Las
principales características de la tecnología ASP y de sus páginas asociadas
son:
ASP proporciona un método eficiente y sencillo
de crear sitios Web con páginas dinámicas y acceso a base de datos. Para que un
usuario realice una petición de páginas Web, deberá proporcionar en su
explorador una dirección que indique un archivo con extensión “asp”. La
tecnología ASP ha sido diseñada por Microsoft para facilitar la creación de
sitios web con una sencillez mayor que la empleada en la programación CGI y con
una eficiencia igual a la que proporciona ISAPI (el núcleo de funcionamiento de
ASP es una aplicación ISAPI).
PHP
PHP es un lenguaje
de script interpretado en el lado del servidor utilizado para la generación de
páginas Web dinámicas, similar al ASP de Microsoft o el JSP de Sun, embebido en
páginas HTML y ejecutado en el servidor..
La mayor parte de
su sintaxis ha sido tomada de C, Java y Perl con algunas características
específicas de sí mismo. La meta del lenguaje es permitir rápidamente a los
desarrolladores la generación dinámica de páginas. No es un lenguaje de marcas
como podría ser HTML, XML o WML. Está más cercano a JavaScript o a C, para
aquellos que conocen estos lenguajes.
A diferencia de
Java o JavaScript que se ejecutan en el navegador PHP se ejecuta en el servidor
por eso nos permite acceder a los recursos que tenga el servidor como por
ejemplo podría ser una base de datos. El programa PHP es ejecutado en el
servidor y el resultado es enviado al navegador. El resultado es normalmente
una página HTML pero también podría ser una página WML (Wap).
Al ser PHP un
lenguaje que se ejecuta en el servidor no es necesario que su navegador lo
soporte, es independiente del navegador, sin embargo, para que sus páginas PHP
funcionen el servidor donde están alojadas debe soportar PHP.
Al ser un lenguaje
libre dispone de una gran cantidad de características que lo convierten en la
herramienta ideal para la creación de páginas web dinámicas:
Un sitio con
páginas webs dinámicas es aquel que permite interactuar con el visitante, de
modo que cada usuario que visita la página vea la información modificada para
propósitos particulares.
Relación entre el análisis y diseño de sistemas basados en Web y otras áreas de la computación. Ingeniería del Software y Sistemas de Información Web
La Ingeniería del
Software orientada al Web (Web Engineering) se ocupa del establecimiento y uso
de principios de ingeniería mediante la propuesta de aproximaciones
sistemáticas y disciplinadas para el abordar con éxito el desarrollo,
implementación, y mantenimiento de aplicaciones y sistemas basados en web de
alta calidad.
Según la definición del IEEE, citada por [Lewis 1994] "software
es la suma total de los programas de computadora, procedimientos, reglas, la
documentación asociada y los datos que pertenecen a un sistema de
cómputo". Según el mismo autor, "un producto de software es un
producto diseñado para un usuario". En este contexto, la Ingeniería de
Software (SE del inglés Software Engineering) es un enfoque sistemático
del desarrollo, operación, mantenimiento y retiro del software", que en
palabras más llanas, se considera que "la Ingeniería de Software es
la rama de la ingeniería que aplica los principios de la ciencia de la
computación y las matemáticas para lograr soluciones costo-efectivas (eficaces
en costo o económicas) a los problemas de desarrollo de software", es
decir, "permite elaborar consistentemente productos correctos, utilizables
y costo-efectivos" [Cota 1994].
El proceso de ingeniería de software se
define como "un conjunto de etapas parcialmente ordenadas con la intención
de logra un objetivo, en este caso, la obtención de un producto de software de
calidad" [Jacobson 1998].El proceso
de desarrollo de software "es aquel en que las necesidades del usuario
son traducidas en requerimientos de software, estos requerimientos
transformados en diseño y el diseño implementado en código, el código es
probado, documentado y certificado para su uso operativo". Concretamente
"define quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto
objetivo" [Jacobson 1998].
El proceso de desarrollo de software requiere por
un lado un conjunto de conceptos, una metodología y un lenguaje propio. A este
proceso también se le llama el ciclo de vida del software que comprende
cuatro grandes fases: concepción, elaboración, construcción y transición. La
concepción define le alcance del proyecto y desarrolla un caso de negocio. La
elaboración define un plan del proyecto, especifica las características y
fundamenta la arquitectura. La construcción crea el producto y la transición
transfiere el producto a los usuarios.
Actualmente se encuentra en una etapa de madurez el enfoque Orientado a Objetos (OO) como paradigma del desarrollo de sistemas de información. El Object Management Group (OMG) es un consorcio a nivel internacional que integra a los principales representantes de la industria de la tecnología de información OO. El OMG tiene como objetivo central la promoción, fortalecimiento e impulso de la industria OO. El OMG propone y adopta por consenso especificaciones entorno a la tecnología OO. Una de las especificaciones más importantes es la adopción en 1998 del Lenguaje de Modelado Unificado o UML (del inglés Unified Modeling Language) como un estándar, que junto con el Proceso Unificado están consolidando la tecnología
Frameworks y arquitecturas software para sistemas basados en web
Un
framework permite el rehuso de la misma manera que las técnicas orientadas a
objetos lo hacen, pero con los frameworks es posible rehusar largos y complejos
diseños.
Un
tema importante en la tecnología de frameworks, es la necesidad de contar con
una documentación consistente y poderosa, que ayude a los usuarios de un
framework a comprender rápidamente la arquitectura del mismo y cómo utilizarlo
para poder cumplir con sus tareas.
Diversos
tipos de usuario utilizan un framework, y cada usuario, de acuerdo a su perfil,
tiene diferentes objetivos. Estos diferentes tipos de usuarios necesitan
diferentes tipos de documentación, de acuerdo con la tarea que realizan con el
framework. Por ejemplo, un usuario normal o instanciador del framework,
necesitará documentación del tipo de un cookbook. Por otro lado, un ingeniero
de software cuya tarea es modificar el diseño del framework, necesitará
documentación acerca del diseño, tal como un Exemplar [GM95] o varios
artefactos UML que describan diversas características de la arquitectura y el
funcionamiento del framework.
Más aún,
diferentes tipos de usuarios deben ser capaces de leer la misma documentación
con diferentes propiedades. Por ejemplo, el instanciador puede necesitar leer
solo el cookbook, mientras que el ingeniero de software puede necesitar leer el
mismo cookbook pero con links que vinculan las páginas del mismo con otros
documentos. Por ejemplo, navegar de una página del cookbook que menciona como
utilizar una clase en particular, a la CRC Card que describe a dicha clase. Se
requiere una documentación on-line, por lo que también es necesario tener una
aplicación de documentación.
En
este sentido, la experiencia ha demostrado que las aplicaciones hipermediales
son la forma más eficaz de organizar documentación on-line (la mayoría de los
ambientes de desarrollo, por citar solo un ejemplo, proveen una aplicación
hipermedia con la documentación de ayuda).
Inteligencia Artificial y Web
La inteligencia artificial en
la informática actual podemos definirla como la capacidad de acción de las
máquinas para realizar determinados procesos.
Este campo tiene múltiples
usos. Desde el entretenimiento, ya sea en videojuegos y juguetes, hasta en
funciones destinadas a formar parte del proceso productivo de una industria. En
general se usa en el campo de la robótica. Estas máquinas funciona básicamente
mediante algoritmos y calculo integral.
Se está promoviendo una solución para
abordar la explosión de contenido en la Web y facilitar que sean los agentes
inteligentes quienes busquen, analicen, comparen y manejen la información
presente en internet para nosotros. Pero para esto el contenido de la web debe
ser adaptado. La actual se basa en HTML y lo que se está haciendo se basa en
XML y sus derivados RDF(Resource Description Framework), y dentro de poco,
OWL(Ontology Web Language), que definen mediante el uso de
ontologías(diccionario de términos) el significado de los textos e imagenes que
se ven, permitiendo su comprensión a los agentes de software. A esta Web que se
está construyendo y es una extensión de la actual, se la ha bautizado como Web
Semántica .
Minería de Datos y Minería de Texto
Las
técnicas de minería de datos se emplean para mejorar el rendimiento de procesos
de negocio o industriales en los que se manejan grandes volúmenes de
información estructurada y almacenada en bases de datos. Por ejemplo, se usan
con éxito en aplicaciones de control de procesos productivos, como herramienta
de ayuda a la planificación y a la decisión en marketing, finanzas, etc.
Asimismo, la minería de datos es fundamental
en la investigación científica y técnica, como herramienta de análisis y
descubrimiento de conocimiento a partir de datos de observación o de resultados
de experimentos.
Se ha llamado minería de datos (ìdata miningî) al
análisis de archivos y bitácoras de transacciones con el fin de descubrir
patrones, relaciones, reglas, asociaciones o incluso excepciones que sean
útiles para la toma de decisiones. La especie humana posee habilidades
extremadamente sofisticadas para detectar patrones y descubrir tendencias. Por
tal motivo, una imagen nos dice más que mil palabras y una gráfica o una
tabulación nos permite, de una mirada, identificar tendencias en el tiempo o
relaciones entre dos mediciones de un fenómeno. Por otro lado, no es claro que
nuestras habilidades puedan realizar, con la misma eficiencia, la tarea de
analizar los trillones de datos almacenados electrónicamente al monitorear las
transacciones comerciales de una base de datos.
SSIS,
además de integrarse profundamente con las características de minería de datos
de Analysis Services, también tiene componentes de minería de texto. La minería
de texto (también denominada clasificación de texto) consiste en identificar la
relación existente entre categorías de empresas y los datos de texto (palabras
y frases). Esto permite descubrir términos clave en los datos de texto y
utilizarlos para identificar, de forma automática, texto que resulte
“interesante”. A su vez, esto puede impulsar acciones de “bucle cerrado” para
lograr objetivos empresariales, como aumentar la satisfacción del cliente o la
calidad de los productos y los servicios.
La minería de textos pretende algo similar a la minería de datos:
identificar relaciones y modelos en la información no cuantitativa. En pocas
palabras, proveer de una visión selectiva y perfeccionada de la información
contenida en documentos escritos y sacar consecuencias para la acción. Un
ejemplo ilustrativo nos lo dan Swanson y Smalheiser (artificial Intelligence
91) en su proceso de investigación de las causas de las migrañas a partir
de la literatura biomédica. Utilizando la minería de textos a las publicaciones
encuentran relaciones del tipo: el stress se asocia a las migrañas. El estrés
genera pérdidas de magnesio. Los bloqueadores de calcio previenen de las
migrañas. El magnesio es un bloqueador natural del calcio. La difusión de la
depresión cortical (SCD) aparece en casos de migraña. Altos niveles de magnesio
inhiben el SCD. Los pacientes con migraña tienen una alta agregación de
plaquetas. El magnesio puede suprimir la agregación de plaquetas.
Métricas y Calidad en Sistemas basados en Web
Como ocurre con la cuantificación de la calidad del software, la
de un documento también podría realizarse si se consigue identificar un
conjunto suficientemente representativo de variables de medida para ello. En
este sentido hay que diferenciar, por una parte, la medida de la calidad del
texto incluido en un documento, la calidad de la interfaz del documento con el
usuario, la calidad de la estructura del documento, sobre todo en documentos
hipertexto o hipermedia, y, por otro lado, la calidad de los diagramas o
modelos que aparecen en ellos como consecuencia de haber aplicado alguna
metodología de desarrollo de software. En este último caso, el establecimiento
de variables de medida es más sencillo, pues vienen impuestas por la propia técnica
de modelado, existiendo métricas tanto para modelos estructurados como orientados
a objetos.
Más
complicada es la cuantificación de la calidad global de un documento, que
normalmente se refiere a la medida de su comprensibilidad. Los principales métodos
de medida pueden agruparse en las siguientes categorías establecidas por Lehner
[1993]:
Métodos basados en las pruebas de CLOZE: Su nombre proviene de closure
construct y hace referencia a la característica humana que permite
completar caracteres incompletos según el contexto. El principal método de este
tipo es el "procedimiento de Taylor", utilizado inicialmente
en el ámbito periodístico (años cincuenta). Después se aplicó en el ámbito de
la literatura y traducción para comprobar la comprensibilidad de los textos.
También ha sido utilizado en la documentación de proyectos de software [Hall y
Zweben, 1986]. Este método consiste en eliminar palabras del texto original a
intervalos regulares, ofrecer este texto incompleto a un cierto número de
personas relacionadas con el tema, recoger las opiniones de estas personas
respecto a cuáles podrían ser las palabras que faltan, contabilizar el número
de palabras acertadas y calcular el coeficiente de comprensibilidad del
texto (entre 0 y 1) como el cociente del número de aciertos y el total de
palabras eliminadas.
Métodos
de formalización de la comprensibilidad: Se caracterizan por determinar la
comprensibilidad y legibilidad de los textos cuantificando formalmente
atributos léxicos y sintácticos. Son los métodos más científicos, que obtienen índices
de comprensibilidad a partir de diferentes fórmulas matemáticas. Algunos índices
propuestos por estos métodos son Fog index, Flesh/Kincaid index, Steiwer
index, Flesh reading ease index, New reading ease index, Automated
readability index (ARI) [Lehner, 1993].
Métodos
de ordenación/estructuración de la información: Con estos métodos se trataría
de "medir" la adecuada disposición de los contenidos según un orden
secuencial, desde aspectos generales hasta aspectos específicos. Este tema ha
estado bastante olvidado hasta la aparición de los documentos hipertexto e
hipermedia, cuyas enormes posibilidades de navegación por su contenido ha
planteado la necesidad de establecer métricas para evaluar la calidad de los
enlaces hipermediales [Johnson, 1995]. Autores como Botafogo, Rivlin y
Shneiderman [1992] han propuesto un método formal de cuantificación de la
calidad basado en el análisis de la estructura jerárquica de los hipertextos,
midiendo, entre otros, la compactación (lo intrincado de las conexiones)
y la disposición (el grado de organización, que se refiere al número
de nodos que deben ser leídos antes que otros) del documento. Otras métricas
estructurales se describen en [Aigrain y Longueville, 1992], [Blustein y
Webber,1995], [Blustein et al., 1997], [Rada, 1991], [Smeaton, 1996],
[Thistlewaite, 1995] y [Westland, 1998]. En este grupo también se incluyen los
métodos que cuantifican el grado de semejanza semántica entre los contenidos de
los nodos enlazados en un hiper-documento [Cruz et al., 1998],
[Dumais,1991], [Hu y Furuta,1998], [Salton,1989].
Métodos
basados en el medio de presentación: Se basan en cuantificar la calidad de la forma de presentar la
información al lector. Esto tiene una gran importancia en el caso de la
documentación hipermedia, cuya lectura se realiza a través de una interface de
usuario cuya calidad debería poder valorarse, ya que influirá en la atención
que se prestará en la lectura y, por ende, en la comprensión del contenido. En
este sentido existen autores como [Hammond, 1993] y [Thüring et al.,
1995], que han analizado los parámetros que influyen en la comprensión de un
hiperdocumento teniendo en cuenta el proceso cognitivo que se produce en el
lector cuando lo utiliza, estos parámetros son el control, la participación
y la síntesis.
Métodos
intuitivos basados en la experiencia: Son métodos sin justificación científica, pero que han adquirido
un cierto nivel de aceptación, como el de Reiners, que promedia la opinión de
un cierto número de lectores respecto a la comprensión individual de palabras
(o frases), verbos activos, nombres personales y sustantivos abstractos.
Métodos
basados en impresiones subjetivas: Consiste en cuantificar las opiniones subjetivas de expertos en
forma de grado de satisfacción con respecto a atributos como simplicidad,
organización, brevedad, estimulación, etc.
Métodos
basados en la relación texto-lector: Consideran la comprensión como una interrelación ente el lector y
el texto. El principal método de este tipo es el propuesto por Groeben [Lehner,
1993], que construye una teoría del conocimiento en la que la comprensión de un
texto es vista como la "construcción cognitiva de una estructura semántica".
Groeben diferencia, por primera vez, entre la "comprensión individual de
un texto", en la que se considera la influencia de los atributos del lector
en el proceso de comprensión, y la "comprensibilidad intercultural de un
texto", que describe la influencia de los atributos del texto en tal
proceso. Esta comprensibilidad se evalúa a través de cuatro dimensiones: la
estructura cognitiva del texto, la simplicidad lingüística y la brevedad semántica,
la redundancia, y la conflictividad en la estimulación cognitiva
(incongruencias, incoherencias, complejidad).
Aunque todo lo anterior es perfectamente aplicable al caso
particular de la valoración de la calidad de la documentación de los proyectos
de desarrollo de software, especial mención en el campo del software merece el
trabajo de [Arhur y Stevens, 1989], quienes han propuesto una serie de
indicadores de calidad de los documentos (DQI: Document Quality Indicators)
y los han clasificado siguiendo una estructura de descomposición en tres
niveles: en el superior se encontrarían los atributos (precisión, completitud,
usabilidad, etc.), en el segundo los factores en los que se descompone cada
atributo (consistencia sería un factor del atributo precisión, legibilidad del
atributo usabilidad, etc.) y en el tercer nivel se situarían la medidas
cuantificables en que se descomponen los factores (consistencia conceptual sería
una medida del factor consistencia, índice de comprensibilidad lo sería del
factor legibilidad,etc.).
Hay otros autores, como [Torkzadeh y Doll, 1993], que se han
especializado exclusivamente en la cuantificación de la calidad de los manuales
de usuario, por la importancia comercial de estos documentos, ya que de ellos
va a depender en gran medida el grado de satisfacción de los usuarios con la
aplicación informática que han adquirido. Estos autores han propuesto y
experimentado un método para cuantificar su calidad basado en el tratamiento estadístico
de 15 medidas. Para comprobar la incidencia de la calidad de la documentación
de usuario en la satisfacción del usuario con el software, estos autores han
establecido también un sistema de 12 medidas para valorar tal satisfacción.
Además de las métricas anteriores, si como afirmamos en [Hilera et al.,
1998], la documentación del software puede considerarse un proceso de ingeniería,
también será susceptible de ser medida como proceso, además de como producto,
utilizando métricas similares a las empleadas en otras ingenierías.
Seguridad en los sistemas basados en web
Hoy en día, se pueden tomar muchas
medidas para crear servicios Web XML seguros. A la hora de tratar la seguridad
en servicios Web XML, es necesario considerar los siguientes puntos:
Esto se consigue
respondiendo a las preguntas anteriores y, a continuación, aplicando las mismas
técnicas de seguridad que utilizaríamos para cualquier otra aplicación Web:
Como podrá comprobar
seguidamente, estas técnicas ofrecen varias opciones que se pueden combinar
para obtener beneficios adicionales. Por ejemplo, un servidor de seguridad
puede funcionar con servicios Web XML para limitar el acceso a ciertas
funcionalidades (métodos) basándose en la identidad del cliente y las
directivas definidas para cada cliente. Vamos a empezar repasando y entendiendo
el funcionamiento de cada una de las opciones disponibles actualmente para
crear una infraestructura segura.
Creación de una infraestructura segura es la clave para contar con servicios
Web XML seguros. Microsoft ofrece una amplia gama de tecnologías que, una vez
integradas en un plan general de seguridad, permiten a las empresas proteger
eficazmente una infraestructura informática. Para completar la implementación
con éxito, la planeación debe considerar lo siguiente:
Uno de los métodos más sencillos para aumentar la seguridad de los servicios Web XML consiste en asegurarse de que la conexión entre el cliente de servicios Web XML y el servidor es segura. Esto se puede llevar a cabo mediante varias técnicas, dependiendo de la extensión de la red y el perfil de actividades de las interacciones. Tres de las técnicas más comunes y accesibles son: reglas basadas en un servidor de seguridad, SSL (Secure Sockets Layer) y redes privadas virtuales(VPN).
Si sabe con
exactitud qué equipos van a tener acceso a los servicios Web XML, puede
utilizar reglas de servidor de seguridad para restringir el acceso a equipos
con direcciones IP conocidas. Esta técnica resulta particularmente útil si
desea restringir el acceso a equipos en una red privada virtual (por ejemplo,
una red LAN/WAN corporativa) y no desea mantener el contenido de los mensajes
en secreto (cifrados. Los servidores de seguridad, como Microsoft Internet
Security and Acceleration (ISA) Server, pueden ofrecer reglas avanzadas basadas
en directivas que proporcionen distintas restricciones para clientes diferentes
según su origen o identidad. Esto resulta de gran utilidad cuando se espera que
determinados clientes tengan acceso a funcionalidades (métodos) diferentes de
los mismos servicios Web XML.
Se puede utilizar SSL para establecer conexiones seguras en redes que no son de
confianza (como Internet. SSL cifra y descifra mensajes enviados entre el
cliente y el servidor. Al cifrar los datos, se evita que los mensajes sean
leídos por terceros durante la transmisión. SSL cifra el mensaje del cliente y,
a continuación, lo envía al servidor. Una vez que el servidor lo recibe, SSL lo
descifra y comprueba que procede del remitente correcto (proceso que se
denomina autenticación. El servidor, o el servidor y el cliente, pueden tener
certificados que se utilizan como parte del proceso de autenticación y que
proporcionan capacidades de autenticación además del cifrado de la conexión.
Aunque es un método muy eficaz para crear comunicaciones seguras, SSL presenta
un coste en rendimiento que debe tenerse en cuenta. Los servicios Web XML de
Microsoft admiten SSL integrado, tanto en clientes como en servidores.
Desde la perspectiva de alguien que intenta
implementar servicios Web XML, una de las ventajas de utilizar estos mecanismos
de autenticación es que no se necesita escribir nuevo código. IIS/ISA Server
completa todo el proceso de autenticación y autorización ACL antes de llamar a
los servicios Web XML. Sin embargo, al implementar el cliente será necesario
realizar algunas tareas adicionales. La aplicación cliente necesitará responder
a las peticiones de autenticación y credenciales del servidor.
Entre los métodos para la implementación de autenticación en servicios Web XML
también se incluyen servicios de terceros, como los que se encuentran en
Microsoft® . NET Passport, características de sesión de Microsoft ASP.NET o la
creación de métodos de autenticación personalizados.
Próximamente Interoperabilidad
Como puede ver, las técnicas habituales para crear aplicaciones Web seguras se pueden aplicar por separado o combinadas a la hora de proteger servicios Web XML. Estas técnicas ya se han utilizado en el pasado y resultan bastante efectivas. Sin embargo, no ofrecen una solución integrada dentro de la arquitectura de servicios Web XML. Conforme aumenta la complejidad del entorno de servicios Web XML (sobrepasando los límites de la confianza, extendiéndose a múltiples sistemas o empresas) los responsables de implementarlos tienen que recurrir a soluciones personalizadas que, si bien resultan eficaces, no ofrecen una interoperabilidad total. Para hacer frente a estas necesidades y mejorar la interoperabilidad entre servicios Web XML, Microsoft y sus socios están trabajando en un conjunto de especificaciones de seguridad basadas en el mecanismo de extensibilidad de la especificación SOAP para ofrecer funciones de seguridad mejoradas e integradas en el núcleo mismo de los servicios Web XML.Una de las principales especificaciones que se están desarrollando es el lenguaje de seguridad de servicios Web XML (WS-Security) que proporciona mejoras en la mensajería SOAP, consistentes en tres funcionalidades: transferencia de credenciales, integridad de mensajes y confidencialidad. Estas funcionalidades no proporcionan por sí mismas una solución de seguridad completa; WS-Security es una pieza que se puede utilizar en conjunción con la infraestructura y otros protocolos de servicios Web XML para hacer frente a un gran número de requisitos de seguridad de aplicaciones. La arquitectura de servicios Web XML globales de Microsoft alberga a WS-Security y otras especificaciones relacionadas y proporciona un marco para la evolución de la infraestructura de los servicios Web XML. Suponga que usted lo contrata una empresa que tiene un producto y lo quiere comercializar en la web. Elaborar el análisis y diseño del sistema a fin de poder vender este producto por la web tomando en cuenta que la empresa no posee experiencia en el uso de tecnologías basados en web y usted va a liderizar todo el proyecto. Análisis
En esta primera etapa vamos a analizar los
requerimientos Básicos de la Empresa, vamos a definir cuál es el objetivo del sitio web y estudiar la factibilidad del proyecto.
Considerando
esto vamos a elaborar una propuesta en la cual se determina el alcance, y
podamos estimar plazos y costos. Debemos conocer: ¿Cuál es el objetivo del
sitio web? ¿Desea que sea un catálogo en línea de sus productos o bien espera
vender realmente sus productos o servicios por Internet? ¿Con qué presupuesto
cuenta? ¿Quién será responsable de mantener el sitio funcionando? ¿Quién
proporcionará las ilustraciones o fotografías y el contenido del sitio? ¿Quién
será el dueño de los derechos de autor de estos materiales? ¿Qué información desea
que se muestre y cuál no.? En fin, un levantamiento de información acerca de
los productos a comercializar .
Realizaremos
una revisión exhaustiva de los Recursos Físicos Disponibles, Equipos y software,
para sustituir, mejorar o confirmar su disposición para el proyecto.
El sitio se va a desarrollar para que funcione
con las tecnologías actuales (ya sea, animación Flash, herramientas activadas
por Javascript, sonido e imagen de última generación) y las soluciones de
comercio electrónico.
Diseño
En esta etapa definimos el sitio con máximo
nivel de detalle, vamos a generar modelos del aspecto gráfico, del contenido, y
del funcionamiento.
Vamos a
personalizar completamente el producto que se quiere comprar. Una vez elegido
un modelo base , por ejemplo, el cliente puede seleccionar las opciones de un
menú para variar las características del producto de acuerdo a sus necesidades,
bien sea agregando, quitando, mejorando,
etcétera. Al terminar, puede dar clic en un botón que podemos
llamarle Recalcular (el precio), y en
segundos la página le dice cuánto aumenta el precio con las nuevas opciones.
Vamos a diseñar una base de datos con una adecuada estructura de
campos, que incluyen diferentes elementos de análisis formal y de contenido:
-Campos para la identificación y localización del recurso: título,
autoría o responsabilidad, localización web (URL u otros), tipología de
recurso, idioma,...
-Clasificación jerárquica por disciplinas.
-Indización por palabras clave o por descriptores (con otros tipos
de índices adicionales en ocasiones).
-Descripción del contenido (resumen).
-Campos de control interno: analista, fecha de creación del
registro y de la última consulta o actualización de datos,...
Diseño de una interfaz de usuario: visualización de registros,
pantallas de búsqueda simple y avanzada, así como la navegación a través del
sistema de clasificación (browsing).
En el diseño de las páginas se va a incorporar fuentes habituales, con la intención de que nuestros clientes puedan abrir o guardar un archivo fácilmente. Tales como Microsoft Frontpage y Dreamweaver de Macromedia. Las herramientas de navegación a utilizar van a ser claras y fáciles de comprender en cada una de las páginas del sistema . No todos los usuarios de Internet cuentan con exploradores que admiten gráficos y algunos desactivan intencionalmente sus programas gráficos para acelerar el tiempo de descarga. Vamos a utilizar vínculos de texto.
Incluiremos
un contenido útil y extra al producto
con la intención de que los clientes regresen
al sitio.
Vamos a fomentar la retroalimentación de los clientes. Debemos preguntar a los clientes lo que desean. ¿Encontraron lo que estaban buscando? ¿Cómo se podría mejorar el sitio para que sea más útil y fácil de usar? Prestaremos atención a todos los comentarios desfavorables de los clientes relacionados con malas experiencias. Son ellos los que le dirán qué está bien y qué está mal.
Estará a disposición una lista de correo. A casi todos los consumidores les desagradan los correos basura, también conocidos como spam o correo comercial no solicitado. Una estrategia mucho más atractiva es crear una lista de correo. Invitaremos a los clientes a que se inscriban si desean recibir un boletín informativo o notas de eventos especiales de la empresa . La idea es que esta información sea útil y pertinente para el cliente. Podemos ofrecer un cupón de descuento por una próxima compra.
Estos modelos son prototipos del sitio que lo reflejan con exactitud, los cuales vamos a ir trabajando con ustedes evolucionándolos hasta que quede satisfecho con todos los aspectos.
Es fundamental la aprobación de la empresa para
seguir avanzando, pues los cambios en etapas posteriores serán más costosos.
Codificación
En esta etapa hacemos realidad el modelo de
diseño, es decir que se elaboran y adaptan los elementos gráficos y
multimedias, se codifican las páginas, los programas y scripts, se definen y
preparan las bases de datos para que el sitio quede en funcionamiento.
En esta etapa hay que realizar pruebas
exhaustivas para asegurar el perfecto funcionamiento del mismo, se prueba la
integración con los sistemas internos de la empresa, todo esto se hace primero
en el ambiente de desarrollo y luego en el servidor de Internet en el que
realmente funcionará.
Los administradores reciben la capacitación
para desarrollar su tarea.
El
sitio está listo para comenzar a funcionar
En esta etapa habilitamos el sitio, en la Internet, para que los verdaderos usuarios comiencen a servirse del mismo; se registra el nombre de dominio. Corresponde a un nombre exclusivo que lo distingue de todos las otras computadoras conectadas a Internet. Se registra el nombre de el sitio Web con algo que se denomina "Internic" o "apodo virtual", de modo que todas las otras computadoras conectadas a la red sepan de su existencia. Una vez que se registre, cuando alguien escriba www.nombredesuempresa.com en su explorador, irá directamente a su sitio Web.
El
sitio se encuentra en pleno funcionamiento con usuarios verdaderos accediendo y
con los administradores realizando las tareas periódicas de mantenimiento como
ser, atención al cliente, actualización de contenidos y administración del
servidor.
Como todo sistema, para conseguir su objetivo,
el sitio debe evolucionar adaptándose a su medio ambiente. Aquí vamos a definir
las características de tal evolución.
Para esto vamos a analizar continuamente su
funcionamiento, considerando los resultados planificados, los realmente obtenidos
y el comportamiento del usuario, para realizar los ajustes cuando sea
apropiado.
Se genera un documento con las adaptaciones que recibirá el sitio, y se pasa al diseño para realizar las mismas.
Conclusiones.
El
crecimiento en el uso de las nuevas tecnologías y de la WWW en general está
teniendo un impacto significativo en los sistemas de información de sectores
tales como comercio, industrias, bancos, finanzas, educación, gobierno,
entretenimiento, he incluso en nuestro trabajo y vida privada. A medida que el
número y complejidad de las aplicaciones basadas en red crece, se hace
necesario reflexionar acerca de la forma en la cual éstas deben ser creadas y
cómo mantener su calidad e integridad.
En muchos casos,
las aproximaciones que se usan para desarrollo de estos sistemas son procesos
sin una planificación previa, poco estructurados, recordando los primeros días
del desarrollo de aplicaciones software. La ausencia de procesos disciplinados
en este contexto, ha motivado que exista un interés creciente en afrontar esta
problemática para abordar con éxito el desarrollo, implementación y
mantenimiento de sistemas basados en la web.
Varios expertos
coinciden en el hecho de que las ‘aplicaciones web’ que están proliferando en
la actualidad tienen un riesgo demasiado alto de fracaso. Según los sistemas se
hacen más complejos, un fallo en uno de ellos propagará y amplificará ese error
al resto de sistemas conectados. Cuando esto ocurre, la confianza en la web
puede verse gravemente dañada causando una ‘crisis del web’.
En consecuencia,
podemos concluir que para abordar todos estos problemas necesitamos de
aproximaciones rigurosas de ingeniería web así como de nuevos métodos y
herramientas para las fases de desarrollo, implementación y evaluación. Es importante
que estas aproximaciones tengan en cuenta las características especiales del
nuevo medio, los escenarios y entornos operacionales y la multitud de perfiles
de usuario que plantean retos adicionales al desarrollo de aplicaciones basadas
en web.
Recomendaciones.
Para
redactar, organizar y diseñar una información para ser publicada en un servidor
web conectado a la red Internet, deben tomarse en cuenta una serie de
cuestiones propias y específicas de esta tecnología:
1.
El hipertexto y la posibilidad de "navegar" por la información
En
una página web el hipertexto nos permite irnos desplazando de un documento a
otro con el simple acto de pulsar sobre un enlace. Esta peculiar forma de
navegar por un conjunto de información entrelazada puede provocar cierta
desorientación por parte del lector, ya que con un solo paso puede haberse
desplazado tanto a una sección diferente del mismo web, como a un web
totalmente distinto. Además, raramente podremos incluir toda nuestra
información en un solo documento; tendremos que fragmentarla en diversos
ficheros.
Estas
dos circunstancias nos obligan a intentar estructurar lo mejor posible la
información, de forma que nuestro lector esté siempre bien orientado sobre en
qué sección se encuentra y entienda la relación entre la página que está viendo
con las demás de nuestro web. Esto podemos conseguirlo con diversas ayudas:
·
Realizando páginas de índice lo más
claras posible.
·
Usando los botones de navegación que
permitan al usuario volver a las páginas de índice, a la página principal o
desplazarse a las páginas relacionadas.
·
Incluyendo
gráficos o colores diferentes según la sección de nuestro web en que nos
encontremos.
2. La
lentitud de las redes de comunicaciones
Siempre
debemos ser conscientes de que la pagina web que estamos diseñando se va a
transmitir por una red de comunicaciones que no es tan rápida como sería
deseable, que muchos de nuestros lectores tienen que pagar por hacer esa
transmisión y que desconocemos la potencia del equipo informático que poseen. Así,
tenemos que cuidar que nuestras páginas no tengan un tamaño demasiado grande,
para facilitar su carga rápida por la red. Suele considerarse como el máximo
tolerable un tamaño de unos 40 o 50 Kb (fichero + imágenes).
En
un documento web lo que ocupa más espacio son los gráficos, por lo que
deberemos valorar cuidadosamente la necesidad, cantidad y calidad de los
gráficos que ponemos.
También
debemos tener en cuenta la lentitud de la red a la hora de estructurar nuestra
información: Hay que intentar que el lector llegue a la información deseada con
el menor número de pasos intermedios que sea posible, para evitar que tenga que
cargar fichero tras fichero. Por ello, si bien las paginas con índices son
imprescindibles, no debemos abusar de ellas poniendo índices que remitan a más
índices, como a veces podemos encontrar en Internet.
3.
La existencia de diferentes programas y versiones de los programas navegadores
También
a diferencia con los documentos en papel, los lectores de nuestras páginas web
tienen que usar una herramienta para visualizarlas: los navegadores o browsers.
Los distintos fabricantes se hacen la competencia incluyendo nuevos avances
técnicos en sucesivas versiones de sus productos que normalmente no funcionan
bien en el de la competencia.
Esto
hace que una página que nosotros hemos diseñado viéndola con el programa
Netscape, nos dé alguna sorpresa desagradable al intentar visualizarla con
Internet Explorer. Y viceversa. Lo mismo puede ocurrirnos si vemos esa página
con el mismo programa empleado, pero en una versión inferior. Esta es la razón
por la que debemos valorar cuidadosamente la necesidad de emplear la
"última" tecnología de diseño de paginas www que esté de moda en este
momento y ser conscientes de que cuanto más simple sea nuestra página más
posibilidades hay de que sea correctamente visualizada por un mayor número de
lectores.
4.
El monitor del ordenador
Los
documentos web están pensados para ser visualizados en la pantalla de un
ordenador. El problema es que desconocemos el tipo de monitor desde el que se
van a leer las páginas: pequeño o grande, de cristal líquido, en color o blanco
y negro, con resolución buena o mala, etc. Así, un documento que hemos diseñado
cuidadosamente en nuestro monitor de 15 pulgadas con una resolución 600 X 800,
puede verse "encogido" en una pantalla grande, o bien parte del
contenido "salirse" de la pantalla en un monitor de baja resolución.
Por esta razón no está de más comprobar el aspecto que toma nuestra pagina en
distintos tipos de pantallas.
El
hecho de visualizar el documento en una pantalla también va a influir en la
longitud que deberemos dar a nuestras páginas, ya que no es conveniente obligar
a los lectores a desplegar páginas excesivamente largas. En todo caso es
importante que el máximo de información significativa aparezca en pantalla nada
más acceder a nuestra página.
5.
La actualización de la información
Una
de las principales ventajas del soporte web es la posibilidad de mantener
actualizada la información en un instante. Así, la tarea realizar unas páginas
web no finaliza con su publicación en un servidor: es necesario mantenerla
actualizada, trabajo que en realidad no "termina" nunca. Es necesario
considerar previamente la posible caducidad de la información que vamos a poner
en la red. Si pensamos que no vamos a ser capaces de mantener actualizada
determinada página, tal vez debamos replantearnos la oportunidad de su
publicación. Lo mismo ocurre con los tan comunes listados de enlaces
recomendados: quedan obsoletos con gran rapidez. Además, es importante indicar
en la propia página la fecha de la última modificación, de forma que el lector
esté informado de la puesta al día de la misma.
6.
Difusión y publicidad de las páginas
Poner
la información en un servidor web no es garantía suficiente de alcanzar a todos
los usuarios potenciales deseados. Necesitamos dar difusión a la existencia de
nuestras páginas si deseamos que cumplan su función. Lo más normal es que
nuestros usuarios alcancen nuestro web tras una búsqueda en alguno de los numerosos
motores
de búsqueda existentes. Para que aparezcan nuestras páginas
reflejadas en estos buscadores, debemos tener en cuenta los elementos que estos
usan para localizar información:
·
Poner claramente el título
del documento
·
Introducir algunas palabras clave en la
etiqueta <meta> del lenguaje html
·
Incluir el máximo de información
significativa posible en las primeras 25 líneas de la página, ya que algunos
motores de búsqueda las usan para indizar su base de datos.
·
Darnos
expresamente de alta en los motores de búsqueda. Casi todos los buscadores
incluyen un formulario para darse de alta. Existen además servicios que nos dan de
alta simultáneamente en muchos buscadores, aunque la mayoría de ellos son de
pago.
7.
Los contenidos y el tipo de usuarios a quienes están dirigidos
Lo
más importante en una página web son los contenidos. La búsqueda de cualquier
información en Internet suele ser una larga navegación de página en página,
necesitando emplear mucho tiempo para encontrar información útil. La manera de
diseñar y organizar nuestra información estará claramente condicionada por el
tipo de contenidos y, sobre todo, por el usuario al que van dedicados.
Infografía
1.http://www.myownbusiness.org/espanol/s9/#2
2.http://www.nexodigital.com.ar/metodologia.php
3.http://www.wikilearning.com/algunas_caracterí_sticas-wkccp-3830-5.htm
4.http://www.mmschool.com/cursos_on_line/asp/curso/asp_1/asp_1_2.htm
5.http://www.linuxcentro.net/linux/staticpages/index.php?page=CaracteristicasPHP
6.http://www.wikilearning.com/mineria_de_textos-wkccp-3285-11.htm
7.http://centros5.pntic.mec.es/ies.victoria.kent/Rincon-C/Alumnos/al-12/al-12.htm
8. http://www.uc3m.es/uc3m/web/recomendaciones.html
Participante: Mirelys M.
Petit Cedeño.