domingo, 7 de octubre de 2012

APLICACIONES WEB

 

En la ingeniería de software se denomina aplicación web a aquellas herramientas que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web en la que se confía la ejecución al navegador.
 
Es importante mencionar que una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información. Esto permite que el usuario acceda a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones, como por ejemplo rellenar y enviar formularios, participar en juegos diversos y acceder a gestores de base de datos de todo tipo.
 

TEMAS:
 
 
 

 

INTRODUCCIÓN

Las aplicaciones web son populares debido a lo práctico del navegador web como cliente ligero, a la independencia del sistema operativo, así como a la facilidad para actualizar y mantener aplicaciones web sin distribuir e instalar software a miles de usuarios potenciales. Existen aplicaciones como los web mails, wikis, weblogs, tiendas en línea y la propia Wikipedia que son ejemplos bien conocidos de aplicaciones web.




Estructura de las aplicaciones web:
Una aplicación web está normalmente estructurada como una aplicación de tres-capas.

El navegador web manda peticiones a la capa de en medio que ofrece servicios valiéndose de consultas y actualizaciones a la base de datos y a su vez proporciona una interfaz de usuario.
Características de las aplicaciones web:
  • El usuario puede acceder fácilmente a estas aplicaciones empleando un navegador web (cliente) o similar.
  • Si es por internet, el usuario puede entrar desde cualquier lugar del mundo donde tenga un acceso a internet.
  • Pueden existir miles de usuarios pero una única aplicación instalada en un servidor, por lo tanto se puede actualizar y mantener una única aplicación y todos sus usuarios verán los resultados inmediatamente.
  • Emplean tecnologías como Java, JavaFX, JavaScript, DHTML, Flash, Ajax... que dan gran potencia a la interfaz de usuario.
  • Emplean tecnologías que permiten una gran portabilidad entre diferentes plataformas. Por ejemplo, una aplicación web flash podría ejecutarse en un dispositivo móvil, en una computadora con Windows, Linux u otro sistema, en una consola de videojuegos, etc.
Ventajas:
  • Ahorra tiempo: Se pueden realizar tareas sencillas sin necesidad de descargar ni instalar ningún programa.
  • No hay problemas de compatibilidad: Basta tener un navegador actualizado para poder utilizarlas.
  • No ocupan espacio en nuestro disco duro.
  • Actualizaciones inmediatas: Como el software lo gestiona el propio desarrollador, cuando nos conectamos estamos usando siempre la última versión que haya lanzado.
  • Consumo de recursos bajo: Dado que toda de la aplicación no se encuentra en nuestro ordenador, muchas de las tareas que realiza el software no consumen recursos nuestros porque se realizan desde otro ordenador.
  • Multiplataforma: Se pueden usar desde cualquier sistema operativo porque sólo es necesario tener un navegador.
  • Portables: Es independiente del ordenador donde se utilice porque se accede a través de una página web.
  • La disponibilidad suele ser alta porque el servicio se ofrece desde múltiples localizaciones para asegurar la continuidad del mismo.
  • Los virus no dañan los datos porque éstos están guardados en el servidor de la aplicación.
  • Colaboración: Gracias a que el acceso al servicio se realiza desde una única ubicación es sencillo el acceso y compartición de datos por parte de varios usuarios.
  • Los navegadores ofrecen cada vez más y mejores funcionalidades para crear aplicaciones web ricas (RIAs).
Inconvenientes:
  • Habitualmente ofrecen menos funcionalidades que las aplicaciones de escritorio. Se debe a que las funcionalidades que se pueden realizar desde un navegador son más limitadas que las que se pueden realizar desde el sistema operativo.
  • La disponibilidad depende de un tercero, el proveedor de la conexión a internet o el que provee el enlace entre el servidor de la aplicación y el cliente.
  • Las aplicaciones web requieren navegadores web totalmente compatibles para funcionar. Incluso muchas veces requieren las extensiones apropiadas y actualizadas para operar.
  • Muchas veces requieren una conexión a internet para funcionar, si la misma se interrumpe, no es posible utilizarla más. De todas maneras, en ocasiones, pueden ser descargadas e instaladas localmente para su uso offline.
  • Muchas no son de código abierto, perdiendo flexibilidad.
  • La aplicación web desaparece si así lo requiere el desarrollador o si el mismo se extingue. Las aplicaciones tradicionales, en general, pueden seguir usándose en esos casos.
  • El usuario, en general, no tiene libertad de elegir la versión de la aplicación web que quiere usar. Un usuario podría preferir usar una versión más antigua, hasta que la nueva sea probada.
  • En teoría, el desarrollador de la aplicación web puede rastrear cualquier actividad que el usuario haga. Esto puede traer problemas de privacidad.
Interfaz gráfica de las aplicaciones web:


La interfaz gráfica de una aplicación web puede ser sumamente completa y funcional, gracias a las variadas tecnologías web que existen: Java, JavaScript, DHTML, Flash, Silverlight, Ajax, entre otras. Prácticamente no hay limitaciones, las aplicaciones web pueden hacer casi todo lo que está disponible para aplicaciones tradicionales: acceder al mouse, al teclado, ejecutar audio o video, mostrar animaciones, soporte para arrastrar y soltar, y otros tipos de tecnologías de interacción usuario-aplicación. Ajax es un ejemplo de una tecnología de desarrollo web que le da gran poder de interactividad a las aplicaciones web.
Lenguajes de programación:

Existen numerosos lenguajes de programación empleados para el desarrollo de aplicaciones web en el servidor, entre los que destacan:
  • PHP: Es un lenguaje de programación utilizado para la creación de sitio web. PHP es un acrónimo recursivo que significa “PHP Hypertext Pre-processor”, (inicialmente se llamó Personal Home Page). Surgió en 1995, desarrollado por PHP Group.
  • Java, con sus tecnologías Java Servlets y JavaServerPages (JSP): Lenguaje de programación orientado a objetos creado por Sun Microsystem que permite crear pequeñas aplicaciones de todo tipo de envergadura en diferentes tipos de ordenadores y sistemas operativos.
  • Javascript: Este es un lenguaje interpretado, no requiere compilación. Fue creado por Brendan Eich en la empresa Netscape Communications. Utilizado principalmente en páginas web. Es similar a Java, aunque no es un lenguaje orientado a objetos, el mismo no dispone de herencias.
  • Perl: Permite resolver los problemas fáciles fácilmente, y resolver también problemas difíciles. Es rápido hacer una pequeña aplicación Web.
  • Ruby: Es un lenguaje interpretado de muy alto nivel y orientado a objetos. Desarrollado en el 1993 por el programador japonés Yukihiro “Matz” Matsumoto. Su sintaxis está inspirada en Phyton, Perl. Es distribuido bajo licencia de software libre (Opensource).
  • Python: Es un lenguaje de programación creado en el año 1990 por Guido van Rossum, es el sucesor del lenguaje de programación ABC. Python es comparado habitualmente con Perl. Los usuarios lo consideran como un lenguaje más limpio para programar. Permite la creación de todo tipo de programas incluyendo los sitios web.
  • HTML: Es un lenguaje estático para el desarrollo de sitios web (acrónimo en inglés de HyperText Markup Language, en español Lenguaje de Marcas Hipertextuales). Desarrollado por el World Wide Web Consortium (W3C). Los archivos pueden tener las extensiones (htm, html).
  • XML: Siglas en inglés de eXtensible Markup Language ('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C). Deriva del lenguaje 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) para estructurar documentos grandes.
  • ASP:Es una tecnología del lado de servidor desarrollada por Microsoft para el desarrollo de sitio web dinámicos. ASP significa en inglés (Active Server Pages), fue liberado por Microsoft en 1996.
    • ASP.NET: Este es un lenguaje comercializado por Microsoft, y usado por programadores para desarrollar entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnología ASP, fue lanzada al mercado mediante una estrategia de mercado denominada .NET.
Se utilizan para servir los datos adecuados a las necesidades del usuario, en función de cómo hayan sido definidos por el dueño de la aplicación




.

INSTALAR EVALUAR LOS PRINCIPALES PARÁMETROS DE LA JVM Y SERVIDOR WEB


 
Cómo instalar Java:
El procedimiento de descarga de Java consiste, a grandes rasgos, en:
 


  1. Descargar e instalar
  2. Activar y configurar
  3. Probar la instalación
 
Se instalará el siguiente software en su equipo:
  1. La descarga de Java, que incluye el software del complemento Java y los componentes de la Máquina virtual de Java (JVM) necesarios para ejecutar en un navegador web applets basados en la tecnología Java.
  2. El software Java Web Start, que simplifica el inicio y la ejecución de programas basados en Web que emplean el software de Java.
La descarga e instalación de Java es sencilla y gratuita. Hay varias formas de obtener Java para Windows:
  
En línea:
La instalación manual descarga un archivo de programa ejecutable para instalar desde la red (IFTW) y apenas requiere intervención del usuario. Al ejecutarlo, el programa obtiene de la red todos los archivos necesarios, por lo que es imprescindible permanecer conectado a Internet durante la instalación.
  • Instrucciones para descargar e instalar Java para Windows en línea.
  • Necesita permisos de administrador para instalar Java en Microsoft Windows.
  • Si tiene alguna dificultad con la opción Descarga en línea, pruebe con la opción Fuera de línea.
Fuera de línea:
Para esta instalación es necesario descargar un archivo ejecutable disponible en la página de descarga manual de Java y que incluye todos los archivos necesarios para que el usuario realice la instalación completa. No es necesario permanecer conectado a Internet durante la instalación. El archivo puede copiarse también e instalarse en otro equipo que no tenga conexión a Internet.
  • Instrucciones para descargar e instalar Java para Windows fuera de línea.
  • Necesita permisos de administrador para instalar Java en Microsoft Windows.
Descargar e instalar:
Se recomienda, antes de proceder con la instalación en línea, desactivar el cortafuego de Internet. En algunos casos, la configuración del cortafuegos predeterminado se establece para rechazar todas las instalaciones automáticas o en línea, como la instalación en línea de Java. Si el cortafuego no se configura correctamente, podría impedir la operación de descarga/instalación de Java en determinadas circunstancias.
  1. Vaya a la página de descarga del manual.
  2. Haga clic en Windows 7/XP/Vista/2000/2003/2008 en línea.
  3. Aparecerá el cuadro de diálogo descarga de archivos y le pedirá que ejecute o guarde el archivo descargado
  4. Se iniciará el proceso de instalación. El instalador presenta una opción para ver el contrato de licencia. Haga clic en el botón instalar para aceptar los términos de la licencia y continuar con la instalación.
  5. Oracle colabora con empresas que ofrecen distintos productos. Es posible que el instalador le ofrezca la opción de instalar estos programas como parte de la instalación de Java. Una vez seleccionados los programas que desee, haga clic en el botón siguiente para proseguir con el proceso de instalación.
  6. Se abrirán varios cuadros de diálogo con información para completar las últimas etapas del proceso de instalación; haga clic en cerrar en el último cuadro de diálogo.


HACER EL DEPLOYMENT DE UNA APLICACIÓN (J2EE+ WS) Y VER LOS PRINCIPALES INDICADORES

 
Un descriptor de despliegue (en inglés Deployment Descriptor) (DD) es un componente de aplicaciones J2EE que describe cómo se debe desplegar una aplicación web. Esto dirige una herramienta de despliegue para desplegar un módulo o aplicación con opciones de contenedor específicas y describe requisitos de configuración específicos que puede resolver un desplegador.
 
El término descriptor de despliegue también se usa como referencia general a un fichero de configuración para un artefacto que es desplegado en algún contenedor/motor.
 
IBM WebSphereApplication Server (WAS, servidor de aplicaciones WebSphere), un servidor de aplicaciones de software, es el producto estrella dentro de la familia WebSphere de IBM. WAS está construido usando estándares abiertos tales como J2EE, XML, y Servicios Web. Varios laboratorios de IBM alrededor del mundo participaron en la creación de los productos run-time WebSphere y las herramientas de desarrollo.


  • Base
  • Network Deployment(Despliegue de Red). Esta versión soporta el despliegue de una configuración en celdas con cluster y soporte a tolerancia de fallos J2EE.
  • Enterprise Edition. Esta versión añadió un motor de workflow, llamado el Coreógrafo de Procesos, la primera vez, pero elimina el estándar BPEL.
  • WebSphereApplication Server para z/OS. Esta versión esencialmente es el mismo que el producto de Network Deployment excepto que está optimizado para tomar ventaja total de las características z/OS, tales como el Gestor de Carga de Trabajo.
 
Versión 6
 
 
Muchas extensiones del modelo de programación previamente encontradas en WebSphereApplication Server V5.0 Enterprise Edition fueron extraídas del enterprise hacia el Express y Base. Estas APIs incluyeron perfil de aplicación, beans de inicio, el planificador, y los beans asíncronos.
 
El clustering fue reescrito para usar el gestor de alta disponibilidad. Esto gestiona todos los singletons en el entorno WebSphere y puede suministrar recuperación en caliente para esos singletons. WebSphere fue modificado para que un sistema de ficheros compartido pudiera usarse para almacenar logs de transacciones y esto significa que cualquier miembro del cluster con ese sistema de ficheros compartido montado puede recuperar en caliente las transacciones XA dudosas sin software HA externo.



El ObjectGrid es la primera pieza del framework de cacheado distribuido de IBM. V6 de XD se entrega con soporte para cacheado de Objetos locales Java así como también cacheado peer to peer con invalidación/push de datos asíncronos. Esto está diseñado para instalar framework extensible de cliente para cachear objetos. Todos los aspectos del framework núcleo tienen puntos de plugin. Esto permite a los clientes añadir funciones así como también permite a IBM extenderlo en futuros niveles del producto. Esto está diseñado para ejecutarse independientemente del WebSphere.
 


 

OBTENCIÓN DE LOS PARÁMETROS DEL SISTEMA Y CORRELACIONARLOS CON LOS DE LOS NIVELES SUPERIORES

 
El interés de la TGS, son las características y parámetros que establece para todos los sistemas. Aplicada a la administración la TS, la empresa se ve como una estructura que se reproduce y se visualiza a través de un sistema de toma de decisiones, tanto individual como colectivamente.
 

Desde un punto de vista histórico, se verifica que:
  • La teoría de la administración científica usó el concepto de sistema hombre-máquina, pero se limitó al nivel de trabajo fabril.
  • La teoría de las relaciones humanas amplió el enfoque hombre-máquina a las relaciones entre las personas dentro de la organización. Provocó una profunda revisión de criterios y técnicas gerenciales.
  • La teoría estructuralista concibe la empresa como un sistema social, reconociendo que hay tanto un sistema formal como uno informal dentro de un sistema total integrado.
  • La teoría del comportamiento trajo la teoría de la decisión, donde la empresa se ve como un sistema de decisiones, ya que todos los participantes de la empresa toman decisiones dentro de una maraña de relaciones de intercambio, que caracterizan al comportamiento organizacional.
  • Después de la segunda guerra mundial, a través de la teoría matemática se aplicó la investigación operacional, para la resolución de problemas grandes y complejos con muchas variables.
  • La teoría de colas fue profundizada y se formularon modelos para situaciones típicas de prestación de servicios, en los que es necesario programar la cantidad óptima de servidores para una esperada afluencia de clientes.
Características de los sistemas:
Sistema es un todo organizado y complejo; un conjunto o combinación de cosas o partes que forman un todo complejo o unitario. Es un conjunto de objetos unidos por alguna forma de interacción o interdependencia. Los límites o fronteras entre el sistema y su ambiente admiten cierta arbitrariedad.

  • Propósito u objetivo: todo sistema tiene uno o algunos propósitos.
  • Globalismo o totalidad: un cambio en una de las unidades del sistema, con probabilidad producirá cambios en las otras.
  • Entropía: es la tendencia de los sistemas a desgastarse, a desintegrarse, para el relajamiento de los estándares y un aumento de la aleatoriedad.
  • Homeostasia: es el equilibrio dinámico entre las partes del sistema. El sistema total es aquel representado por todos los componentes y relaciones necesarios para la realización de un objetivo, dado un cierto número de restricciones.
Tipos de sistemas:
En cuanto a su constitución, pueden ser:
 
 
En cuanto a su naturaleza puede ser:
 

Parámetros de los sistemas:
El sistema se caracteriza por ciertos parámetros, los cuales son constantes arbitrarias que caracterizan, por sus propiedades, el valor y la descripción dimensional de un sistema específico o de un componente del sistema.

Los parámetros de los sistemas son:
  • Entrada o insumo o impulso (input): es la fuerza de arranque del sistema, que provee el material o la energía para la operación del sistema.
  • Salida o producto o resultado (output): es la finalidad para la cual se reunieron elementos y relaciones del sistema.
  • Procesamiento o procesador o transformador (throughput): es el fenómeno que produce cambios, es el mecanismo de conversión de las entradas en salidas o resultados.
  • Retroacción o retroalimentación o retroinformación (feedback): es la función de retorno del sistema que tiende a comparar la salida con un criterio preestablecido, manteniéndola controlada dentro de aquel estándar o criterio.
  • Ambiente: es el medio que envuelve externamente el sistema. Está en constante interacción con el sistema, ya que éste recibe entradas, las procesa y efectúa salidas.
 


HACER TUNING DEL SISTEMA Y CONSIDERAR EL CAMBIO DE CONFIGURACIONES.


Una vez evaluado el rendimiento de un sistema informático, hay una serie de medidas que se pueden tomar para sintonizarlo, es decir, mejorar sus prestaciones en algún aspecto.

 
 En concreto, puede hacerse algo de lo siguiente:
 
  • Ajuste de parámetros del sistema operativo: hay algunos parámetros que el supe usuario, o administrador del sistema, puede modificar, usando programas suministrados con el sistema operativo o recompilando alguna parte, generalmente el kernel, como sucede en algunas versiones de UNIX. Estos parámetros son, por ejemplo, el tamaño del quantum, o rodaja temporal asignada a cada uno de los programas, prioridad interna asignada a un programa de usuario, tamaño de la partición de memoria, etc.
     
  • Ajuste de parámetros del hardware, es decir, examinar la configuración hardware del sistema y ver que parámetros se pueden alterar, tales como por ejemplo la activación de caches hardware, el reloj del sistema, frecuencia del bus.

  •  Algunos de estos cambios pueden ser peligrosos:
 
En ordenadores con placas madres antiguas se tendrá que hacer mediante cambios de jumper, y en ordenadores modernos accediendo al setup al arrancar el ordenador.