Proyectos

Publicado: 31 julio, 2010 en Investigaciones
Erick Arroyo

Automatizacion de un Sistema  Ordenes de Trabajo en una Empresa

Fredy Obregon

Nanotecnologia: Ventajas y Desventajas

Introducir este nuevo tema a la sociedad guatenalteca ya q el desarrollo de la misma pordira traer grandes ventajas pero a la vez grandes desventajas a la sociedad tales como un desastre por medio de una epidemia en base a nanobots..

Pablo Cotzajay

Control de Mora en Pago de Estudiantes Inscritos en el INTECAP

RIA: Rich Internet Applications

Publicado: 29 julio, 2010 en Investigaciones

Aplicaciones Ricas para Internet  (RIA)

 

Que es la Web 2.0 ?

La Web 2.0 es la representación de la evolución de las aplicaciones tradicionales hacia aplicaciones web enfocadas al usuario final. El Web 2.0 es una actitud y no precisamente una tecnología.

La Web 2.0 es la transición que se ha dado de aplicaciones tradicionales hacia aplicaciones que funcionan a través del web enfocadas al usuario final. Se trata de aplicaciones que generen colaboración y de servicios que reemplacen las aplicaciones de escritorio.

Es una etapa que ha definido nuevos proyectos en Internet y está preocupándose por brindar mejores soluciones para el usuario final. Muchos aseguran que hemos reinventado lo que era el Internet, otros hablan de burbujas e inversiones, pero la realidad es que la evolución natural del medio realmente ha propuesto cosas más interesantes como lo analizamos diariamente en las notas de Actualidad.

Y es que cuando el web inició, nos encontrábamos en un entorno estático, con páginas en HTML que sufrían pocas actualizaciones y no tenían interacción con el usuario.

Pero para entender de donde viene el término de Web 2.0 tenemos que remontarnos al momento en que Dale Dougherty de O’Reilly Media utilizó este término en una conferencia en la que compartió una lluvia de ideas junto a Craig Cline de MediaLive. En dicho evento se hablaba del renacimiento y evolución de la web.

Constantemente estaban surgiendo nuevas aplicaciones y sitios con sorprendentes funcionalidades. Y así se dio la pauta para la Web 2.0 conference que arranca en el 2004 y hoy en día se realiza anualmente en San Francisco, con eventos adicionales utilizando la marca en otros países.

En la charla inicial del Web Conference se habló de los principios que tenían las aplicaciones Web 2.0:

  • La web es la plataforma
  • La información es lo que mueve al Internet
  • Efectos de la red movidos por una arquitectura de participación.
  • La innovación surge de características distribuidas por desarrolladores independientes.
  • El fin del círculo de adopción de software pues tenemos servicios en beta perpetuo

 

RIA  (Rich Internet Applications)

En la evolución en Internet hemos visto diferentes transformaciones en el modo de presentar los contenidos. Desde el HTML simple y plano, hasta Multimedia y Flashintegrados. Actualmente la tendencia es hacer sitios ademas de interactivos, vistosos y bonitos: Funcionales.

La necesidad de tener un puente entre aplicaciones y contenidos web han generado RIA (Rich Internet Applications – Aplicaciones Ricas de Internet).

Las Aplicaciones Ricas de Internet (RIAs) ofrecen una experiencia rica y atractiva que mejora la satisfacción del usuario y aumenta la productividad. Mediante el amplio alcance de Internet, las RIAs pueden desplegarse sobre múltiples exploradores y escritorios.

¿Por qué las RIAs?

Existen muchas razones por las que las aplicaciones ricas de Internet pueden ser apropiadas para su negocio. A continuación algunas de las razones más comunes por las cuales las compañías despliegan RIAs:

  • Sus clientes esperan interfaces poderosas y útiles que ofrezcan la respuesta de las aplicaciones de escritorio tradicionales.
  • Es la oportunidad de aumentar los ingresos mediante tasas de conversión más altas, oportunidades de venta cruzada y vertical, mayor lealtad de sus clientes o una mayor recordación de su producto por medio de canales online.
  • Es la oportunidad de disminuir costos por medio de la reducción de errores de usuario o de interacciones de ventas directas a través de transacciones online.
Beneficios de las RIAs

Las RIAs ofrecen a las organizaciones una manera comprobada efectiva en costos para entregar aplicaciones modernas con beneficios reales de negocios:

  • Ofrecen a los usuarios una experiencia más atractiva y rica.
  • Están al día con las nuevas expectativas de los usuarios.
  • Aumentan la lealtad de los clientes y generan mayores ganancias.
  • Alcanzan el 98% de los escritorios con Internet.
  • Aprovechan personal, procesos e infraestructura existentes.

El reto, es no sobre cargar con estas nuevas herramientas la capacidad de navegación. La experiencia del usuario debe ser siempre lo más sencilla y rapida posible. Ya que el tiempo es oro y la paciencia se pierde al esperar a que se cargue una pagina.

Dentro de las desventajas de las tradicionales aplicaciones Web es la poca capacidad multimedia que posee. Para ver un vídeo, escuchar musica, desplegar una animación tenemos que usar un programas externos para su reproducción.

Los entornos RIA, en cambio, no se producen recargas de página, ya que desde el principio se carga toda la aplicación y sólo se produce comunicación con el servidor cuando se necesitan datos externos como datos de una Base de Datos o de otros ficheros externos.

Las capacidades multimedia son totales gracias a que estos entornos tienen reproductores internos y no hace falta ningún reproductor del Sistema Operativo del usuario.

Apesar de que el desarrollo de aplicaciones multimedia para navegadores web está mucho más limitada y es más dificil que otro tipo de aplicaciones de escritorio, los esfuerzos se justifican por varios motivos:

  • No necesitan instalación (solo es necesario mantener actualizado el navegador web).
  • Las actualizaciones hacia nuevas versiones son automáticas.
  • Se pueden utilizar desde cualquier ordenador con una conexión a internet sin depender del sistema operativo que este utilice.
  • Generalmente es menos probable la infección por virus, que utilizando por ejemplo programas ejecutables.
  • Más capacidad de respuesta, ya que el usuario interactua directamente con el servidor, sin necesidad de recargar la pagina.
  • Ofrecen aplicaciones interactivas que no se pueden obtener utilizando solo HTML, incluyendo arrastrar y pegar, calculos en el lado del cliente sin la necesidad de enviar la información al servidor.

 

Algunas Aplicaciones Ricas de Internet:

AJAX: Creado en 2005, AJAX, es un conjunto de técnicas ya existentes que hacen posible la creación de aplicaciones web que se ejecutan en el navegador de los usuarios, sin que sea necesario en todo momento una comunicación con el servidor.

Google Gears: Lanzado a finales de mayo de este año, Google Gears permite crear un servidor de aplicaciones dentro del navegador web. De esta manera, muchas aplicaciones no necesitan estar en permanente contacto con un servidor, facilitando el desarrollo de aplicaciones ‘desconectadas’ del sitio web original.

Esta tecnología de Google consiste en un servidor web, una base de datos y un motor javascript, que una vez instalado en el ordenador permite acceder a sitios web que ofrezcan una versión ‘offline’ para Google Gears.

HTML 5: W3C, el organismo internacional encargado de crear los estándares de Internet, ha formado un grupo de trabajo para desarrollar la próxima versión del lenguaje HTML. Según los primeros borradores con los que se está trabajando, HTML5 dará un salto importante a la hora de realizar aplicaciones para Internet, ya que posibilitará la creación de bases de datos en el navegador web de los usuarios, para poder realizar acciones sin necesidad de estar conectados a Internet.

También será un acercamiento a la llamada Web Semántica, ya que los documentos contendrán información sobre la información que muestran, como ya realiza el lenguaje XML.

Adobe AIR: En marzo de este año, la compañía Adobe anunció un nuevo software de desarrollo multimedia Adobe AIR (Adobe Integrated Runtime), que permite crear aplicaciones de Internet para ser ejecutadas localmente. Esta tecnología es multiplataforma, lo que le permite trabajar bajo sistemas operativos como Windows, Mac y Linux.

Adobe AIR utiliza otras tecnologías ya existentes como HTML, AJAX, Flash… para desarrollar aplicaciones de escritorio. Se prevee que a principios de 2008 se lance la primera versión final que incorporará un Webkit de desarrollo y un conjunto de Apis para simplificar la creación de aplicaciones.

Microsoft Silverlight: Otra de las tecnologías que quieren apostar por una experiencia más interactiva en Internet es Silverlight, cuya versión 1.0 fue presentada por Microsoft en septiembre de este año. Se trata de un conjunto de tecnologías multiplataforma que permite trabajar con animaciones, gráficos vectoriales y vídeo, así como la carga de datos desde el escritorio del usuario. Una de las características más destacadas es que permite mostar vídeo en alta calidad. Algunos ejemplos de esta tecnología pueden encontrarse enla web oficial de Silverlight.

Durante el último año y medio se han desarrollado diversos programas muy interesantes para Adobe Air, la plataforma más extendida, y Gears, la solución de Google, que además funcionan por lo general en los tres sistemas operativos más extendidos: Windows, Linux y Mac OS X.

Twhirl y TweerDeck: Twitter, el famoso sitio de microblogging, ha visto cómo se han desarrollado nuevas RIA gracias a su decisión de liberar su API. Dos de las más destacadas son Twhirl y TweetDeck, que funcionan ambas con Adobe Air. Como es lógico, estas aplicaciones sí precisan de la conexión a Internet para actualizar el estado del usuario y recibir los mensajes de los contactos.

Su baza radica en que permiten el manejo de Twitter sin necesidad de abrir la página web del sitio. Sólo se debe hacer clic en el icono del programa en el escritorio. Ambos notifican cuándo se reciben mensajes nuevos, una carencia del sitio web original, y ofrecen diversos servicios que acortan las direcciones, al estilo de TinyURL.

AlertThingy y Feedalizr: AlertThingy es otra opción distinta, también basada en Adobe Air. En su versión 3 muestra información de Twitter, Facebook, Flickr, entre otras redes sociales, con un diseño similar a TweetDeck. En la misma línea de mezclar diversas redes sociales se encuentra Feedalizr, que combina FriendFeed, Facebook y Twitter, entre otras.

Videos en Flash:  RichFLV se apoya en Adobe Air para crear un editor de los vídeos en Flash, cuya extensión es “.flv”. Con la proliferación de estos contenidos audiovisuales en sitios como YouTube, resulta atractiva la posibilidad de crear remezclas gracias a esta herramienta combinada con complementos para Firefox como DownloadHelper.

Editar Imagenes:  En el apartado de las imágenes, destaca por su utilidad Shrink O’Matic, que permite redimensionar múltiples fotografías con sólo arrastrar y soltar en la ventana del programa. Trabaja con imágenes JPG, GIF y PNG y también usa Adobe Air.

Si se trata de editar imágenes, los más profesionales pueden optar por una solución de pago como StudioCloud. Quienes busquen una solución más sencilla disponen de Splashup Light, que realiza modificaciones más básicas como recortar, redimensionar o modificar el brillo y el contraste. Por otra parte, DeskTube facilita al usuario manejar YouTube desde una aplicación, sin necesidad de entrar en el sitio web. Estos tres últimos programas también funcionan con Adobe Air.

Organizar Trabajo: Para concentrarse en el trabajo, medir el tiempo que conlleva cada tarea y evitar distracciones, se puede emplear Klok , que organiza los proyectos de trabajo y las tareas que se deben realizar en un calendario para después cronometrarlas. Kronos efectúa el mismo trabajo aunque de manera más simple y después manda los resultados a Basecamp , un software de gestión de proyectos.

Focused trata de mantener la concentración por otro método: aislar al usuario del resto de aplicaciones del ordenador (correo electrónico, Twitter, etcétera) para que pueda escribir con tranquilidad. Para lograrlo, la pantalla se maximiza completamente y se ennegrece. Si se desea recordar las tareas pendientes, MiniTask permite escribirlas y fijar alarmas para avisar. Por otro lado, Webcam to GIF hace lo que sugiere su nombre y convierte las imágenes captadas por una de estas cámaras en un GIF animado que se puede usar como avatar en los foros y en las redes sociales. Todas ellas utilizan Adobe Air.

Fácil instalación y actualización

Las RIA se instalan con facilidad cuando funcionan a través de Adobe Air y Gears. Ni siquiera se necesita reiniciar el navegador para que comience a funcionar la aplicación. Por ejemplo, en Adobe Air surge una ventana donde se confirma la instalación y se debe conceder el permiso para que accedan tanto a Internet como a los archivos del equipo. Se debe aceptar porque, en caso contrario, no funcionaría. De igual forma, estas aplicaciones web detectan cuándo necesitan una actualización y el proceso se efectúa de forma automática sin necesidad de reiniciar nada.

Que son los RIAs Services:

Las aplicaciones RIA  (Rich Internet Application) están cada vez más de moda, ya que entre otras nos permiten ofrecer una mejor experiencia de usuario. (pero pagando un coste….)

A lo largo de este post se va a intentar explicar, de una manera resumida y simplificada, los principales conceptos de RIA Services y para qué nos puede servir.

La arquitectura de una aplicación Web tradicional sería la siguiente:

 

Exceptuando ciertas funcionales Ajax que pueden suponer una parte “menor” del total, en las aplicaciones web tradicionales las diferentes capas lógicas (lógica de presentación, lógica de negocio, acceso a datos..) de las que está compuesta se distribuyen generalmente en dos capas físicas que se encuentran en el servidor.

En la parte cliente lo que tenemos es el código HTML que el servidor nos devuelve.

Una aplicación RIA sería algo así:

 

El desarrollo de una aplicación RIA supone desplazar una de las capas lógicas de la aplicación, la capa de presentación, a la parte cliente, convirtiéndole a éste en un “cliente pesado”…En el cliente tenemos parte de la aplicación, no sólo HTML.

Por ejemplo, en el caso de crear una aplicación Silverligth éste sería el caso dónde nos encontraríamos. La aplicación corre en el cliente y en éste dónde se ejecuta.

Pero claro, llevar esta parte al cliente no es gratis, ya que se complican las comunicaciones entre la lógica de presentación y la lógica de negocio.

En el caso de aplicaciones web tradicionales la lógica de presentación y de negocio suelen estar dentro de la misma capa física, por lo que la comunicación entre ambas no supone ninguna complejidad.

Si entre ambas capas metemos “internet”, la comunicación ya no se puede hacer de manera directa y tendremos que pensar en desarrollar una capa de servicios en el servidor que el cliente pueda consumir, lo que complica el desarrollo, aumentando los tiempos y problemas con los que nos podemos encontrar: Crear la capa de servicios, exponer los métodos que necesita, crear proxys, validación, autenticación…

¿Cuál es el objetivo de RIA Services?

Pues el objetivo de RIA Services es simplificar el desarrollo de aplicaciones RIA, para que podemos desarrollar aplicaciones de este tipo como si fuesen aplicaciones web tradicionales, sin tener que preocuparnos de los aspectos que mencionaba en el párrafo anterior.

Beneficiarnos de todas las bondades de tener aplicaciones RIA pero sin pagar un coste por ello (al menos no uno excesivo), pudiendo hacerlo de una manera similar al que si hiciésemos aplicaciones web tradicionales.

En algunos sitios he visto que definían RIA Services como las herramientas RAD de Microsoft para la construcción de aplicaciones RIA…no sé si será para tanto  

RIA Services nos va a servir de pegamento entre la lógica de presentación y la lógica de negocio para simplificar la comunicación entre ambas, permitiéndonos centrarnos en el desarrollo de la aplicación propiamente dicha.

En la arquitectura que se presenta a continuación podéis ver dos nuevos componentes que aporta RIA Services, uno en la parte cliente ( DomainContext ) y otro en la parte servidora ( DomainService ).

Seguro que ya todos conocéis los DataSources que tenemos actualmente disponibles en ASP.NET (XmlDataSource, SqlDataSource, ObjectDataSource, EntityDataSource etc…) y lo mucho que nos facilitan el desarrollo.

Pues bien, con RIA Services tendremos uno nuevo; DomainDataSource. Este componente es muy similar al resto de DataSources (la idea es la misma) y nos va permitir trabajar de una manera bastante cómoda y sencilla contra servicios de dominio que se exponen con RIA Services.

Por ejemplo, en una aplicación RIA hecha con Silverligth podemos tener los típicos formularios de lista/detalles, con las operaciones de selección, inserción, actualización, borrado, filtrado y ordenación como si de una aplicación web tradicional se tratase.

Por cierto, aunque menciono Silverligth, el componente DomainDataSource también se puede usar en aplicaciones ASP.NET tradicionales o para montar aplicaciones con Dynamic Data, no es algo sólo para Silverligth.

 

Que es un Cluster ?

Un cluster está formado por dos o mas servidores independientes pero interconectados. Algunos clusters están configurados de modo tal que puedan proveer alta disponibilidad permitiendo que la carga de trabajo sea transferida a un nodo secundario  si el nodo principal deja de funcionar. Otros clusters estan diseñados para proveer escalabilidad permitiendo que los usuarios o carga se distribuya entre los nodos. Ambas configuraciones son consideradas clusters.

Una caracteristica importante que tienen los clusters es que se presentan a las aplicaciones como si fueran un solo servidor. Es deseable que la administración de diversos nodos de un cluster sea lo mas parecida posiblie a la administración de una configuración de un solo nodo. El software de administración del cluster debería proveer este nivel de transparencia.

Para que los nodos puedan actuar como si fueran un solo servidor, los archivos deben estar almacenados de modo tal que puedan ser accedidos por todos los nodos del cluster

Que es Oracle Real Application Cluster ?

 Real Application Clusters es un software que permite utilizar un cluster de servidores ejecutando multiples instancias sobre una misma base de datos. Los archivos de base de datos quedan almacenados en discos física o lógicamente conectados a cada nodo, de modo tal que todas las instancias activas pueden leerlos o escribirlos.

El software de RAC maneja el acceso a los datos, de modo tal que los cambios en los datos son coordinados entre las instancias y cada instancia ve imágenes consistentes de la base. El interconnect del cluster permite que las instancias se pasen entre ellas información de coordinación e imágenes de los datos.

Esta arquitectura permite que los usuarios y aplicaciones se beneficien de la potencia de procesamiento de múltiples máquinas. La arquitectura RAC también ofrece redundancia; por ejemplo, en el caso de que un nodo quede inutilizado, la aplicación continuará accediendo a los datos via el resto de las instancias disponibles.

 

 Porqué Usar RAC.

Alta Disponibilidad: Supervivencia de Nodos y falla de Instancias

Escalabilidad: Se pueden agregar más nodos a futuro

Se paga conforme se cresca:  Se paga justo lo que se necesite.

Características del Grid Computing

  •  Se puede crecer y  reducir bajo demanda
  •  Simple agregar nodos
  •  Gestión automatica en los servicios.

 

Clusters y Escalabilidad.

 RAC elimina la instancia de la base de datos y el nodo en si mismo como un punto de falla, y asegura la integridad de la base de dato en caso de una falla.

Ejemplos de escalabilidad:

  • Permite más procesos Batch Simultaneos
  • Permite grandes grados de paralelismo
  • Permite incrementar el número de usuarios conectados en un sistema OLTP.

 

Niveles de  Escalabilidad.

La implementación exitosa de un cluster de base de datos requiere óptima escalabilidad en cuatro niveles:

  • Hardware Scalability:

                La interconectividad es la lláve para la scalabilidad de hardware, el cual depende un un alto ancho de banda y baja latencia.

  • Operating System Scalability

                Métodos de sincronización en el sistema operativo puede determinar la escalabilidad del sistema.

  • Database Managment System Scalability

                Un factor clave en una parallel architecture es si el paralelismo es afectado internamente o por procesos externos. La respuesta a ésta pregunta afecta al mecanismos de 

                sincronización

  • Application Scalability

                Las aplicaciones deben de ser especificamente diseñadas para ser escalables. 

 

VENTAJAS
Podemos señalar entre las más importantes:

a) Disponibilidad permanente
Ofrece tiempo de actividad ininterrumpido para las aplicaciones de la base de datos. Así, si un nodo en el cluster falla, la base de datos continúa funcionando en los nodos restantes. También los nodos individuales pueden ser detenidos para su mantenimiento mientras que los usuarios de las aplicaciones continúan trabajando sin ningún inconveniente con sus tareas habituales.

b) Escalabilidad bajo demanda
Se obtiene una mayor capacidad con sólo agregar servidores al cluster Así, cuando se necesita más potencia de procesamiento, simplemente se agrega otro servidor hasta un máximo de 100 nodos por cluster. Por eso, cuando se alcanza el límite de la capacidad del hardware actual, Oracle RAC permite que se mantenga la inversión proporcionando la alternativa de agregar servidores similares para ganar escalabilidad horizontal ofreciendo un cluster con disponibilidad continua.

c) Menos gastos de informática
Por lo señalado en el punto anterior, permite el uso de hardware más económico así como menores costos por inactividad, reduciendo los costos operacionales proporcionando la flexibilidad de contar sistemas más adaptativos, proactivos y ágiles.

d) Administración centralizada
El DBA tiene un solo punto de control para instalar y manejar el cluster de RAC mediante la interfaz de comando de Oracle Clusterware, una solución completa e integrada disponible en todas las plataformas de la base de datos Oracle.

e) Permite el Grid Computing

Ya que así la infraestructura informática se construye de procesos, almacenamiento y de componentes de red estandarizados, permitiendo Oracle RAC funcionar a la base de datos en esta plataforma proporcionando los niveles más altos de capacidad en términos de disponibilidad y escalabilidad. Tanto los nodos, el almacenamiento, los CPUs y la memoria pueden estar dinámicamente provisionados mientras el sistema sigue estando en línea. Esto permite que los niveles de servicio sean fácil y eficientemente mantenidos con bajo costo.