Docstoc

Alternativas de software - Assembla

Document Sample
Alternativas de software - Assembla Powered By Docstoc
					Alternativas de software
En esta sección realizaremos una descripción del software de base necesario para la
implementación de EasyMoney.

Lo anterior comprende sistemas operativos, gestores de bases de datos, software de
comunicaciones, entornos de ejecución, etc.


1.1 Máquinas expendedoras
    El software de base correspondiente a las máquinas expendedoras es el siguiente:
          Microsoft Windows XP. Es necesario utilizar este sistema operativo dado que es el
            único que garantiza la compatibilidad total con los dispositivos periféricos. Sería
            preferible utilizar alguna versión reducida o compacta del sistema operativo.
          Runtime environment del lector SmartCard de tarjetas RFID
          Runtime environment del lector de huellas digitales.
          OpenVPN, para un manejo transparente de una comunicación segura.

Lo anterior es válido para el prototipo. Cabe destacar que, debido a que los componentes de
EasyMoney se hallan desacoplados, sería totalmente viable introducir un sistema embebido
con un sistema operativo mucho más básico.



1.2 Terminales de recarga
    Las terminales de recarga presentan requerimientos de software similares a las máquinas
    expendedoras:
         Microsoft Windows XP. Es necesario utilizar este sistema operativo dado que es el
            único que garantiza la compatibilidad total con los dispositivos periféricos. Sería
            preferible utilizar alguna versión reducida o compacta del sistema operativo.
         Runtime environment del lector SmartCard de tarjetas RFID
         Runtime environment del lector de huellas digitales.
         OpenVPN, para un manejo transparente de una comunicación segura.



1.3 Procesamiento central
    En el estudio de factibilidad se mencionó la necesidad de soportar una gran cantidad de
    transacciones, por lo cual se hará hincapié en determinados atributos de calidad, siendo el
    más importante la disponibilidad.

    Creemos que si bien en lo anterior se ve favorecido por buenas prácticas de programación
    y la definición de una arquitectura adecuada, también es fundamental la elección de un
    buen software de base.
       Debido a lo anterior, sería preciso que dicho software de base diera soporte a las
       siguientes features:
            Clustering, para una escalabilidad Enterprise.
            Transparent failover, para asegurar una disponibilidad total aún en condiciones de
               fallas de equipos.
            Balanceo de carga, para que se distribuya de manera proporcionada la carga de
               procesamiento.
            Caché distribuida, para una resolución más rápida de las consultas.
            Interfaz gestión remota en caliente, para la administración del servidor sin
               necesidad de detener sus servicios.
            Soporte de transacciones declarativas, para garantizar la consistencia de las
               operaciones de los usuarios.
            Soporte de mecanismos de acceso remoto, para la comunicación entre las
               máquinas expendedoras y el servidor central.
            Soporte para mensajes asincrónicos, necesarios para el procesamiento batch de
               transacciones offline.

La porción de software capaz de garantizar lo anterior es un servidor de aplicaciones
(Application Server – AS). Además de asegurar los puntos anteriores, para el caso puntual de la
tecnología Java, el servidor de aplicaciones también actúa como EJB (Enterprise JavaBeans)
container, lo cual implica que ciertas cuestiones trasversales a casi todos los problemas del
software Enterprise son resueltas de una forma relativamente transparante por el servidor,
siendo un ejemplo la persistencia de objetos.

Un application server que ha probado ser de extrema fiabilidad y que goza de importante
aprobación en el mercado es JBoss1, por el cual nos volcamos.

Por lo tanto, la elección del software de base para el servidor central es la siguiente:

          Ubuntu Linux, versión 9.04 (stable, codename Jaunty Jackalope). Ubuntu ha probado
           ser una distribución Linux con excelente soporte y comunidad, además de repositorios
           de paquetes y actualizaciones automáticas provistas por Canonical, fabricante de
           Ubuntu.
          JBoss AS versión 5.0.1. Por las características descriptas anteriormente, es una elección
           justificada. Adicionalmente se trata de software open source.



1.4 Base de Datos
    Para tener una aplicación escalable, altamente disponible y con un tiempo de respuesta
    bajo, también es importante que el software de gestión de base de datos (DBMS) esté
    acorde a los requerimientos no funcionales.

       Como software DBMS nos volcamos por PostgreSQL2, siendo los motivos principales los
       que se mencionan a continuación:

1
    http://labs.jboss.com/jbossas
              Soporte transaccional “ACID”
              Soporte de views y stored procedures
              Enterprise class database
              Point in time recovery
              Replicación asincrónica
              Backup online
              Optimizador de consultas sofisticado
              La más importante: balance costo/beneficio. Se trata de un producto gratuito,
               open source, con una gran comunidad y al nivel de software comercial como
               Oracle o DB2.

1.5 Portal Web
    El portal web estará basado en la tecnología Adobe Flex, con lo cual es necesario el
    siguiente software de base:
          Apache Tomcat versión 6. En este caso no es necesario un servidor de aplicaciones
             “full blown” ya que los requisitos no funcionales no son de tanta severidad. De
             todas formas, Apache Tomcat posibilita el balanceo de carga.
          Apache Web Server
          BlazeDS, software de comunicación para el protocolo AMF (Action Message
             Format)

1.6 Comunicaciones y seguridad
    Debido a que la seguridad también es un atributo de calidad valioso para el sistema
    EasyMoney, creemos que debería existir algún software de base que garantizara lo
    siguiente:
         Autenticación, que se pueda identificar a las unidades de la red que están
            emitiendo el mensaje de manera fehaciente.
         Integridad, que el mensaje no sea modificado en el trayecto por ningún ente.
         Protección ante ataques.

Es por lo anterior que optamos por utilizar un software VPN que garantice de una manera
transparente los requerimientos mencionados anteriormente. La elección fue OpenVPN3




2
    http://www.postgresql.org/
3
    http://openvpn.net/

				
DOCUMENT INFO
Categories:
Tags:
Stats:
views:14
posted:1/5/2012
language:Spanish
pages:3