lunes, 17 de junio de 2013

Ejemplo de desarrollo de proyectos con Software Libre


A continuación presento un ejercicio académico de cómo se podría afrontar un gran protecto tecnológico con Software Libre y Tecnologías Alternativas.

Una gran empresa proveedora de soluciones integrales en Tecnologías de la Información y de las Comunicaciones (TIC), tanto de hardware como de software, ha decidido aprovechar la experiencia de la Universidad en el desarrollo e implantación de sistemas basados en software libre para poner en marcha una nueva plataforma tecnológica que ofrezca servicios TIC en la nube a una gran variedad de usuarios.

De esta forma, la plataforma tendrá que prestar apoyo tecnológico al personal de gestión del proyecto, al personal docente y a los grupos de investigación directamente implicados, así como a las empresas y profesionales colaboradores, que también podrán participar y  adherirse a la plataforma, para eventualmente desplegar y ofrecer servicios a través suyo.

La infraestructura de la plataforma será independiente y complementaria a los sistemas que ya utilizan los diferentes miembros del proyecto y se ubicará a las instalaciones de la Universidad.

Concretamente, se espera que la plataforma ofrezca los siguiente servicios:

• Red local del proyecto
   ◦ Acceso a la red cableado o inalámbrico.
   ◦ Conexión a Internet con cortafuegos y filtro de contenidos.
   ◦ Hasta una cincuentena de equipos (entre fijos y portátiles) y una docena de impresoras compartidas.
   ◦ Servicios básicos de red: asignación dinámica de direcciones, resolución de nombres, autenticación de usuarios, compartición de ficheros (hasta 100GB por usuario) y de impresoras.
   ◦ Gestor empresarial (ERP).
   ◦ Servicio de telefonía sobre IP (VoIP).
   ◦ Gestor de recursos humanos.
• Servicios docentes
   ◦ Hasta una cincuentena de profesores.
   ◦ Acceso a los servicios vía web.
   ◦ Gestor de contenidos (CMS).
   ◦ Servicio de educación a distancia.
• Servicios de investigación
   ◦ Hasta un centenar de investigadores.
   ◦ Acceso a los servicios mediante conexión segura.
   ◦ Plataforma de desarrollo/programación.
   ◦ Plataforma de cálculo en cluster.
   ◦ Servidor de aplicaciones.
   ◦ Servicio de bases de datos.
• Servicios de empresa
   ◦ Hasta un centenar de empresas.
   ◦ Acceso a los servicios vía web.
   ◦ Servicio de relación con los clientes (CRM).
• Servicios comunes
   ◦ Autenticación de usuarios centralizada.
   ◦ Servicio de publicación web y de transferencia de ficheros.
   ◦ Correo electrónico por usuario (hasta 5GB por cuenta).
   ◦ Herramienta de trabajo cooperativo (groupware).
   ◦ Herramienta de planificación de proyectos.
   ◦ Gestor documental (hasta 10GB por usuario).

Con esta definición general del sistema se pone de relieve la voluntad de los promotores de integrar múltiples funcionalidades en un solo sistema, de forma que se pueda garantizar la disponibilidad de los recursos, la concurrencia de los servicios y de los usuarios, la seguridad de los accesos y conexiones, y la redundancia de los servicios.
Además, también serán factores importantes del sistema la facilidad y la sencillez de utilización, la eficacia y la eficiencia para proveer los servicios, la funcionalidad y la operativa de las interfaces, y las posibilidades de expansión futura.

1. Definición general del proyecto

a) Título del proyecto y organización responsable.

Título: Desarrollo e implantación de plataforma tecnológica para servicios TIC en la nube, basada en software libre.

La organización responsable de dirigir el proyecto es la Universidad, aún cuando hayan más organizaciones participantes, es la Universidad quien debe velar por el desarrollo e implantación de la plataforma. La metodología PMI establece la necesidad de conformar un equipo gestor de proyectos, el cual tendrá un gestor líder el cual será el director de proyectos senior.

b) Objetivos y áreas de actuación.

Gestión del proyecto.
Lograr articular la gestión de los equipos de la Universidad y la empresa.
Establecer una metodología eficiente que produzca el resultado final en 6 meses.

Desarrollo tecnológico
Lograr una plataforma desarrollada con software libre, que sea utilizable en la nube y que sirva para articular muchas iniciativas de distintos actores.
Realizar pruebas en los diversos ambientes de trabajo, que permitan satisfacer las necesidades de la empresa y alcanzar la expectativa de todos los interesados.

c) Tipología y alcance.

Este es un proyecto de desarrollo tecnológico que implica la coordinación conjunta de al menos 2 entidades diferentes: universidad y empresa.

Alcance: Desarrollo de una plataforma de software libre que ofrezca servicios TIC en la nube a una gran variedad de usuarios y que además disponga de recursos específicos para la administración de redes locales, gestores de contenidos y servicios, plataformas de experimentación y desarrollo de software en la nube.



d) Requisitos, ordenados por prioridad y clasificados según tipología.


Usar Software libre
Gestión conjunta entre empresa y universidad
Definir politicas de Acceso a la red, Implemenat servidor de Autenticación
Implementar servicios de red: firewall, dhcp, SSH, SSL
Instalar servicios: web server, ERP, VoIP, CMS, CRM, Mail, groupware, gestión documental
Implementar plataforma de virtualización
Implementar servidor de aplicaciones y Bases de Datos
Implementar servidor de almacenamiento
Probar usabilidad con empresas y clientes


2. Gestión del proyecto

a) Metodología de gestión de proyectos seleccionada. Modificaciones necesarias para adecuarse al proyecto.

Se utilizará la metodología del Instituto de Gestión de Proyectos PMI, como marco de referencia para la dirección estratégica del proyecto. La metodología de PMI es flexible ya que puede enmarcar cualquier tipo de proyecto, no solo proyectos tecnológicos, así que se implementará lo que corresponda pertinente a este emprendimiento.

b) Planteamiento general y estrategia de análisis, diseño, desarrollo e implantación.

La metodología PMI establece 5 macroprocesos de la gerencia de proyectos. En el caso de este proyecto se plantean generalmente asi:

Iniciación: Definición inicial del proyecto; Aquí se debe reunir el equipo de la Universidad y el de la empresa y definir conjuntamente el alcance del proyecto, la organización de equipos de trabajo y hacer un levantamiento de información inicial.

Planificación: El equipo gestor del proyecto, en cabeza del Director de proyecto hacen el cronograma de trabajo, que se basa en el establecimiento de requerimientos, entregables y responsables para el desarrollo de plataforma.

Ejecución: Aquí, el desarrollo propio de la plataforma TIC debe estar enmarcado en procesos y procedimientos según lo planeado y a medida que avanza el proyecto, para garantizar desarrollo de entregables;

Seguimiento y control: Aquí se fijan las metodologías que le grupo gestor (universidad y empresa) van a seguir para hacer vigilancia del cumplimiento de entregable y la gestión del alcance del proyecto.

Cierre: Se refiere a como se garantiza que la empresa contratante y demás interesados en el proyecto, se involucran efectivamente y ven sus expectativas satisfechas, al cierra de la etapa de ejecución del proyecto.

c) Tareas y subtareas necesarias. Por cada una de ellas definir:

Para el desarrollo de este ítem se usó la metodología de PMI en el proceso de planeación, que establece el desarrollo de una Estructura de Desglose de Trabajos EDT para definir las tareas (aunque PMI habla de los entregables) del proyecto.




Definición de alcance, aliado y objetivos
  • En esta tarea el director y equipo gestor deben desarrollar el acta de inicio del proyecto, en donde se establece claramente el alcance del proyecto, sus limitantes y la definición de a quienes involucra.
  • 1 semana
  • No depende de otras tareas
  • Director y equipo gestor

Establecimiento de equipo gestor
  • Documento con organización de responsables de cada proceso de gestión en el proyecto.
  • 1 semana
  • No depende de otras tareas
  • Director y equipo gestor

Plan de gestión, cronograma, herramientas de control
  • Documentos de gestión, herramientas de seguimiento, herramienta EDT completa y desglosada.
  • 1 semana
  • Depende del desarrollo del acta de inicio
  • Director y equipo gestor

Diseño de requerimientos
  • Documento que describa técnicamente los requerimientos de la empresa para con el software. Descripción de los requerimientos físicos y lógicos.
  • 1 semana
  • Depende del plan de gestión
  • Encargado de tecnología (técnico)

Selección de herramientas
  • Documento en el que se definen lenguajes de programación y herramientas libres de programación (frameworks libres) para lograr los requisitos de la plataforma TIC en la nube.
  • 1 semana
  • Depende del diseño de requerimientos
  • Encargado de tecnología (técnico)

Programación
  • Código fuente y software binario para cumplir requerimientos.
  • 5 meses
  • Depende del diseño de requerimientos
  • Equipo técnico de desarrollo

Pruebas locales
  • Documentación de pruebas locales al código fuente y software binario desarrollado.
  • 1 meses
  • Depende del desarrollo de programación
  • Equipo técnico de pruebas

Pruebas en nube
  • Documentación de pruebas remotas al código fuente y software binario desarrollado.
  • 1 meses
  • Depende del desarrollo de programación
  • Equipo técnico de pruebas

Pruebas con involucrados
  • Documentación de pruebas con empresas y aliados, con el código fuente y software binario desarrollado.
  • 1 meses
  • Depende del desarrollo de programación
  • Equipo técnico de pruebas


d) Mecanismos de seguimiento del proyecto. Definición y ubicación de los hitos de seguimiento y control.

El Director de Proyecto, deberá registrar todas las actividades llevadas a cabo en el proyecto, esto será realizado en la Bitácora de Diseño (anexo 1), en esta se registrará la actividad llevada a cabo, el responsable de la misma, las entradas requeridas para la ejecución de la actividad, las salidas o los entregables, fecha programada para realizar esta actividad, para finalizar la actividad o para la hacer entrega de algún entregable ya establecido anteriormente, la persona a la que se le va a realizar esta entrega, la fecha real en la que se realiza esta entrega, el resultado de la revisión realizada a la actividad después de finalizada o entregada y el control de cambios si es necesario, es decir si se requiere la realización de algún cambio en la planeación establecida.

Hitos:
  • Fin de Planeación inicial
  • Fin de desarrollo teórico de solución
  • Fin de desarrollo de software
  • Fin de pruebas y realimentación


e) Calendario1 de ejecución, que tenga en cuenta las tareas y subtareas, el seguimiento y los hitos del proyecto.

Plan de implementación: El Director de Proyecto debe planear un cronograma en el cual se especifiquen las fechas en que los entregables serán realizados y las actividades anexas e importantes se ejecutarán.

 

f) Gestión de riesgos. Para cada uno de ellos, definir la probabilidad


La Matriz de Riesgo, es elaborada por el Director de Proyecto, el cual debe evaluar los posibles riesgos que se pueden presentar en la ejecución del proyecto y a su vez plantear posibles soluciones que pueden ayudar a mitigar los riesgos detectados. Es de vital importancia documentar y dejar el plan a realizar en caso de ocurrencia del evento detectado, esto se realiza en la Matriz de Riesgo.




II. Diseño tecnológico (30%)
Una vez planificada la gestión del proyecto, es necesario definir la estrategia tecnológica para implementar el sistema.
Concretamente, hay que dar respuesta y justificar las siguientes cuestiones:

1. Planteamiento general y estrategia tecnológica

Como la experiencia de la Universidad es en desarrollo de sistemas con tecnologías libres, la estrategia se basará en usar la máximo el uso de tecnologías que se basen en usar estándares abiertos, códigos abiertos e implementaciones alternativas a las que han impuesto los monopolios tecnológicos.
Por el área de la infraestructura de comunicaciones es posible desarrollar sistemas basados en el sistema operativo GNU/Linux y usar equipamiento que tiene este sistema operativo como base de sus sistemas embebidos. Además se usará hardware de gran rendimiento son sistemas basados en Linux. Con esta estrategia se puede desarrollar una red de datos grande, robusta y con equipos profesionales; todo con precios muy inferiores a los del monopolio.

Como estrategia en el software se usarán frameworks y lenguajes de programación libres, para el desarrollo de la plataforma. Se usarán distribuciones de GNU/Linux como plataformas servidores de aplicaciones de servicios para la red a desarrollar. En general se tendrá mucho cuidado con el licenciamiento libre de todas las herramientas a usar.

La solución física se estructurá así:

Salón de equipos
Ubicación de servidores
Ubicación de equipos de comunicaciones
Software de red y servicios
Refrigeración de equipos
Interconexión con redes externas
Servicios Docentes
Red Local
Red Inalámbrica
Servicios de investigación
Red Local
Red Inalámbrica




2. Infraestructura
a) Estado del arte2 de la infraestructura de comunicaciones.


Elemento
Mercado

Enrutadores: Es el principal elemento en las redes de datos ya que es quien implementa el protocolo TCP/IP. Permite encaminar paquetes de forma lógica desde y hacia destinos programables.
Pueden actuar al interior de la red local o como interconexión de dicha red con redes externas (router de borde).
CISCO es la empresa que más ha impulsado el desarrollo de protocolos, estpandares y dispositivos, sin embargo el sistema oerativo GNU/Linux ha sido una gran plataforma de desarrollo para equipamientos de red.
Grandes fabricantes como TP-Link, Ubiquiti, Linksys, etc., han desarrollado sus plataformas pasadas en GNU/Linux.

Switch: Es un elemento importante que permite realizar distribución sobre gran cantidad de terminales de datos. También permite hacer segmentación de redes por medio de redes virtuales.
Nuevamente Cisco es principal fabricante de este tipo de equipos, sin embargo bajo sistemas GNU/Linux se están desarrollando soluciones bastante competitivas.

Access Points: Son los equipos que crean zonas inalámbricas para acceso por dicho medio a las redes de datos. Su configuración es básica ya que son elementos “transparentes” a la red.
El mercado de soluciones inalámbricas es muy variado, sin embargo el desarrollo de la distribución GNU/Linux OpenWRT ha hecho que muchos fabricantes puedan producir sus propios equipos equipos; ejemplo: Ubiquiti. De forma privativa se puede citar nuevamente a Cisco.

Cableado: Hacen parte de la “capa 1” de la red de datos según el modelo estándar OSI. Se compone de cables, conectores, sistemas de conexiones, niveles de tensión, etc.
El mercado está usando como estándar en el cableado, la categoria 6 de estos elementos, que permite tener tasas de tranferencia de datos en el orden delos gigabits por segundo.

Servidores: Los servidores de servicios de red cumplen un gran papel al dotar las redes de datos de funcionalidades como protección contra invasiones externas, asignación automática de direcciones IP, resolución de nombres de dominio, etc.
Se detalla en los numerales 3 y 4


b) Material necesario y coste de adquisición.

Se propone usar el equipamiento de red producido por las Marcar Mikrotik y Ubiquiti, ya que son alternativas basadas en sistemas libres, y que además económicamente le compiten a monopolios como lo ha representado Cisco.

Elemento
Costo
1 Router de borde: Mikrotik RB1100
US$ 500
1 Switch capa 2: Mikrotik RB250G
US$ 50
2 x Access Point: Ubiquiti Picostation2
US$200
Cableado:

- Caja Cable Ubiquiti categoria 6
US$250
- Rack de comunicaciones
US$400
- 2 Patch panel:
US$50
- 2 x Ducteria y cableado para cada sala
US$2000
- Equipos de aire acondicionado para sala de equipos
US$1000

c) Diagrama descriptivo.


El siguiente diagrama muestra la estructura lógica de la red de comunicaciones del proyecto. Se tendrá una infraestructura de borde que se encarga de la interconexión con redes externas como internet; una serie de servidores internos que posibilitarán los servicios de la plataforma, y una estructura de distribución en redes locales y redes inalámbricas.



3. Hardware
a) Estado del arte de los equipos para los clientes y los servidores3.


Elemento
Mercado

Equipos de clientes

El desarrollo de los procesadores para computadores personales lleva a la época actual a la línea de procesadores Intel Core i7 y los AMD Phenom II, como tecnologías de procesadores de múltiples núcleos. Las tarjetas madre, las tarjetas de red, sonido, video, etc., van desarrollandose a mediado que los procesadores lo hacen, es esa la razón por la cual el procesador es el referente en el estado del arte.


Uno de los equipos que se encuentran en la oferta actual del mercado de PC es:

HP Compaq Pro 4300 PC con procesador Intel Core i5


Equipos servidores

Los equipos servidores precisan de una arquitectura que les permita operar ininterrumpidamente por mucho tiempo. Para este propósito se desarrollan sistemas de ventilación internos, fuentes de poder más estables y procesadores más eficientes. Al respecto los referentes son los Intel Xeon o los AMD Opteron .


Uno de los equipos que se encuentran en la oferta actual del mercado de servidores que cumplen con las necesidades que necesita el proyecto es:

HP ProLiant DL120 G7 Server
Intel® Xeon® E3

Periféricos.

Las labores de planeación y desarrollo del proyecto necesitan ciertos accesorios de los equipos de computo:

Escaner
Impresora
Proyector
El mercado actual ofrece periféricos compatibles con puertos seriales universales, redes LAN y WLAN como:

Escaner/impresora: Epson Gts.50



b) Material necesario y coste de adquisición.

Elemento
Propósito
Costo
6 x HP ProLiant DL120 G7 Server
2 para cluster
3 para servicios
1 para red
US$9000
47 xHP Compaq Pro 4300 PC
3 para desarrollo
4 para planeación y administración
20 para LAN1
20 para LAN2
US$ 40000
2 x Escaner/impresora: Epson Gts.50

US$ 500

US$ 500

c) Organización de los servicios por servidor.

Servidor de Red
Servidor DHCP
Servidor cortafuegos
Servidor DNS
Servidor de Autenticación
Servidor Servicios 1
Servidor VoIP
Servidor Servicios 2
Servidor Web
Servidor ERP
Servidor CMS
Servidor FTP
Servidor Servicios 3
Servidor de Base de Datos
Servidor de Almacenamiento
Servidores de desarrollo
Plataforma de cálculo en cluster.



d) Diagrama descriptivo.


4. Software

a) Estado del arte del software para los clientes y los servidores.

Software para clientes:

La estructura cliente-servidor que necesita el proyecto para el desarrollo de la plataforma, las pruebas de los investigadores y la interacción de las empresas impone los mayores retos al lado del servidor, y simplifica las soluciones de software al lado del cliente. Usualmente un sistema operativo de escritorio ya tendrá todo lo necesario para acceder a plataformas servidores solo precisando de ciertos complementos de software.
Sistemas operativos libres y de escritorio existen de gran variedad. Las 2 distribuciones que han desarrollado mayores esfuerzos en aplicaciones de escritorio son GNU/Linux Ubuntu y GNU/Linux Fedora, los respectivos desarrollos de Debian y Red Hat.


Software servidor:

En los equipos servidores, los sistemas operativos que mayor y mejor desempeño presentan actualmente son los basados en UNIX tal como lo son los sistemas GNU/Linux. Las distribuciones de Red Hat son las de mayor uso en plataformas servidores, tanto en implementaciones individuales, como en estructuras de cluster.
Como software de servicios a usar para proveer todos los servicios que necesita el proyecto, existe una gran variedad de software libre que puede satisfacer las necesidades que van desde servicios de red hasta servicios de aplicación especial como el de gestión documental.

El uso de software libre permite el desarrollo personalizado más rápido y económico, además de ser autónomos tecnológicamente.


b) Selección y justificación del software para cada servicio del sistema (para clientes y para servidores).


Las siguientes son las alternativas de software libre más populares para los servicios necesarios:



Servicio
Software Libre
Definir politicas de Acceso a la red, Implementar servidor de Autenticación
Servidor FreeRadius
Implementar servicios de red: firewall, dhcp, SSH, SSL
IPTables – PfSense
Squid
web server
Apache2
Educación a distancia.
Moodle
Big Blue button
servidor de aplicaciones
Glassfish
Cluster
Mpich2
ERP
Openbravo
VoIP
Asterisk
CMS
Drupal
CRM
SugarCMR
Correo Electrónico
Postfiix
Groupware
Open-Xchange
OpenGroupware
Gestión documental
Orfeo
Implementar plataforma de virtualización
VirtualBox
QEMU
Implementar servidor de aplicaciones y Bases de Datos
MySQL
Implementar servidor de almacenamiento
FreeNAS
FTP


c) Modificaciones y extensiones necesarias a realizar.

En general todo el software libre proporciona una solución genérica totalmente personalizable; en muchos casos otros programadores realizan modificaciones, plugins, etc., y los publican, haciendo robusto el software original.
Algunas de las modificaciones y extensiones serían:

- Personalización de servidor de autenticación, autorización y conteo Freeradius, para que pueda usar los perfiles de usuarios definidos por el proyecto, limite la cantidad de usuarios por departamento y haga más seguro el uso de la red inalámbrica.

- Personalización del servidor FTP y de almacenamiento para que pueda dar servicio a los diferentes departamentos, maneje las políticas de seguridad y cree los espacios definidos de almacenamiento.

- Personalizar servidor de red Pfsense para que a red interna pueda interactuar con internet, se puedan crear perfiles especiales para que docentes, investigadores y empresas puedan acceder remotamente y de forma personalizada. Además para diseñar la red interna y segmentar el tráfico.

- El servidor web con las aplicaciones de educación a distancia y CMS necesitará instalar los software base y desde allí programar las plataformas deseadas.
- El servidor VoIP debe ser programado para crear la red interna de voz que se necesite, así como los servicios de buzones virtuales, menús IVR, desvíos de llamadas, interconexión con la red pública de telefonía, etc.

- Los sistemas CMR y ERP deben ser implementados de forma planificada y con los plugin necesarios según los requerimientos, y como se desee que las empresas hagan uso de las empresas. Además se puede precisar el desarrollo de plugin personalizados para alcanzar tales metas.


5. Presupuesto
a) Recursos materiales.


Elemento
Costo
1 Router de borde: Mikrotik RB1100
US$ 500
1 Switch capa 2: Mikrotik RB250G
US$ 50
2 x Access Point: Ubiquiti Picostation2
US$200
Cableado:

- Caja Cable Ubiquiti categoria 6
US$250
- Rack de comunicaciones
US$400
- 2 Patch panel:
US$50
- 2 x Ducteria y cableado para cada sala
US$2000
- Equipos de aire acondicionado para sala de equipos
US$1000
6 x HP ProLiant DL120 G7 Server
US$9000
47 xHP Compaq Pro 4300 PC
US$ 40000
2 x Escaner/impresora: Epson Gts.50
US$ 500
US$ 500
TOTAL
US$ 54450


b) Recursos humanos adicionales4.

No aplica

c) Otros gastos.

10% de imprevistos (gestión de riesgos) : US$ 5445
III. Desarrollo de negocio (15%)

Una vez finalizada la implantación de la plataforma y validado su funcionamiento con la comunidad de usuarios inicial, la empresa y la Universidad acuerdan poner en marcha una nueva iniciativa empresarial (spin-off) para la explotación comercial a gran escala de la plataforma.

En este sentido, lo que se plantea es el despliegue y la comercialización de nuevos servicios en la nube basados íntegramente en software libre y principalmente dirigidos a empresas, en ámbitos como ERP, CRM, CMS, gestión documental, de recursos humanos o de inteligencia empresarial, entre otros.
Como paso previo a la puesta en marcha de la spin-off , se decide realizar un análisis de mercado de vuestro entorno local con el objetivo de identificar el modelo de negocio y el ámbito de aplicación que presentan mayor potencial y posibilidades de éxito comercial.

Concretamente, hay que dar respuesta a las siguientes cuestiones:

1. Estudio de mercado

a) Identificar, en vuestro entorno local, el mercado objetivo de los servicios ofrecidos a través de la plataforma y las características y necesidades de los clientes potenciales.

Software CMR.

SAP es una de las principales representantes del software privativo y ofrece una solución CMR como base de su SAP business suite diseñada para ayudar en la gestión empresarial.

Oracle, otra gran empresa representante del software propietario tiene su propia solución CMR llamada Oracle CRM On Demand.

Existen otras soluciones propietarias CMR como Zoho CRM, CONTACTO CRM, etc.

Por otro lado existen opciones de fuentes abierta como CiviCRM o HiperGate, Vtiger y SugarCRM. En general son soluciones que tienen comunidades de desarrolladores y ofrecen versiones comunitarias gratuitas y algunas personalizaciones empresariales pagas, sin embargo el código está disponible para quien quiera usarlo.


Software ERP

El software ERP en general apoya la administración de empresas. También existen alternativas propietarias y libres.

SAP business suite, como se dijo anteriormente, es una solución propietaria completa para la gestión de empresas.

Microsoft Dynamics es otras solución propietaria que presenta Microsoft como alternativa de software para la dirección de empresas.

Como alternativa del software libre existe OpenERP software como de código abierto que cubre las necesidades de las áreas de contabilidad, finanzas, ventas, RRHH, compras, proyectos y almacén entre otras.


Software de Gestión Documental.


Existen muchas alternativas de software propietario desarrollado por graes empresas; software como Lotus Documents de IBM y Onbase de la compañía Hyland.

Como experiencia del software libre existe Orfeo, un software de gestión documental impulsado por la Superintendencia de Servicios Públicos de Colombia y ampliamente usado en cientos de instituciones públicas y privadas.


b) Identificar, preferiblemente en vuestro entorno, al menos tres empresas que propongan soluciones empresariales basadas en software libre. Describir brevemente sus productos y servicios, así
como su modelo de negocio.

Fundación Corre Libre (http://www.correlibre.org/). Es la organización que desarrolla y cuida del código del software libre de gestión documental OrfeoGPL. Aunque incentivan el desarrollo de una comunidad al rededor del software, como empresa prestan una serie de servicios a las empresas e instituciones públicas, como:
  • Formación y Certificación en OrfeoGPL
  • Instalacion y Parametrizacion de OrfeoGPL
  • OrfeoGPL Tematico
  • OrfeoGPL Alta Disponibilidad

Su modelo de negocio se basa en la prestación de servicios al rededor del software, así como la adaptación de Orfeo a necesidades específicas, pero siempre manteniendo la licencia libre del software.

IDE Soluciones. (http://idesoluciones.com/). Es una empresa dedicada al desarrollo de software basada en software libre. Además de desarrollo de software especìfico se ha especializado en el uso y desarrollo de software de apoyo a empresas como lo es CRM (Vtiger), un sistema de información para la administración, basada en la relación con los clientes; Help Desk (GLPI - Mesa de ayuda) es una herramienta para administrar las fallas, incidencias o requerimientos relacionados con las TIC; y OrfeoGPL para gestión documental.
Su modelo de negocio se basa en desarrollos nuevos de software o personalizaciones de software libre para funciones especìficas.

Grupo Lyunxi Ltda. (http://iyu.com.co/). Esta empresa al igual que IDE soluciones desarrolla software a partir de software libre, desde desarrollos independientes hasta personalizaciones de software libre de apoyo a gestión de empresas.

c) Identificar, preferiblemente en vuestro entorno, empresas proveedoras de soluciones empresariales en la nube. Describir brevemente los productos y servicios que ofrecen, así como su modelo de negocio.


Heinsohn Business Company (http://www.heinsohn.com.co/). Es una empresa basada en software propietario; sus soluciones estàn basadas en el software de SAP y otros software para la gestión de negocios (ERP). Ademàs ofrece soluciones en software para el manejo de recursos humanos y la gestión financiera. Aunque anuncian tener desarrolladores propios, sus productos principales es la comercialización y soporte de software de grandes casas de software propietarios.



EForces (http://www.eforcers.com/). Esta empresa se especializa en prestar servicios en la nube basados en las plataformas de Google. Esta empresa ha desarrollado software propio (propietario) para la interacción masiva de personal con aplicaciones de Google.
El Negocio de EForces se basa en apoyarse de las grandes fortalezas que tiene google en el trabajo en Nube de documentación y sistemas de comunicación empresariales, para ofrecer soporte y servicios propios.

SisComputo (http://www.siscomputo.com/aplicaciones/web/portalweb.nsf). Esta empresa se ha encargado de desarrollar soluciones propias (propietarias) para la gestión de negocios, la gestión documental y la atención al cliente. Ofrecen soluciones en los equipos terminales o soluciones en la nube.
Su modelo de negocios se basa en la explotación del licenciamiento de sus productos, y su posterior soporte.


2. Modelo de negocio

a) Seleccionar el ámbito de aplicación empresarial en el que es más factible ofrecer soluciones novedoses a través de la plataforma.

Personalización y soporte de Software.
La industria de aplicaciones para la gestión de clientes, gestión del negocio, gestión de contenidos, etc., para empresas ya tiene muchas alternativas para satisfacer las necesidades generales de cualquier empresa, desde pequeñas y medianas empresas hasta empresas muy grandes. Sin embargo el éxito de las implementaciones está en ofrecer la personalización de las plataformas de software a las necesidades de las empresas, y más aún, la integración con sus sistemas de información Asì, no vender simplemente licencias de software y soporte sobre fallas del mismo, sino poder integrarse a otros sistemas existentes y ser altamente personalizable, son razone smuy poderosas para impulsar soluciones empresariales basadas en software libre.


b) Definir los modelos de negocio basados en software libre que la spin-off puede explotar teniendo en cuenta el mercado y la competencia.

  • Diseño personalizado de software. Realizar implementaciones personalizadas de las grandes plataformas de software libre para las empresas.
  • Integración/Migración de plataformas. Realizar integración entre diversas plataformas; aquí será un argumento muy fuerte el usar software libre que permita acceder al código de las diferentes plataformas y el uso de formatos estándares y abiertos que permitan la compatibilidad de sistemas.
  • Soporte. Realizar soporte oportuno, especialmente sobre las piezas personalizadas (y libres) de software.


c) Describir los principales productos y servicios que se pueden comercializar en el mercado objetivo.

  • CMR a la medida. Usar las plataformas de software libre para adaptar el software a las necesidades del cliente y dejarlo compatible con otros software.
  • ERP a la medida. Usar las plataformas de software libre para adaptar el software a las necesidades del cliente y dejarlo compatible con otros software.
  • Plataformas CMS, CMR y ERP en la nube.
  • Desarrollo de software libre para integración de plataformas. La integración de plataformas de distintos proveedores usa estándares de almacenamiento y comunicación, independizando los datos y patrimonios de las empresas clientes, de los software que usen.
  • Soporte a desarrollos, migraciones e integraciones. Migración de plataformas privativas, desarrollo de software que estandarice las comunicaciones y almacenamientos.

d) Describir las principales diferencias entre las soluciones que proponéis y las de la competencia.

Las soluciones centradas en la implementación personalizada del software libre y en la integración de plataformas ofrece gran independencia a las empresas, quienes pueden administrar el desarrollos autónomo de cada una de ellas sin depender de proveedores o contratistas.
Además estas implementaciones basadas en software libre permiten la escalabilidad libre de los sistemas, sin depender de licenciamientos restrictivos.
La empresa desarrolladora se beneficia al conseguir contratos cada vez más específicos de personalización y soporte; Liberar el software garantizará la autonomía de la empresa cliente, y probablemente su fidelidad.

Los modelos propietarios en la proyección económica a lo largo del tiempo son muchísimo más caros para las empresas clientes, ya que están sometidos a restrictivos esquemas de licenciamiento por usuarios, actualizaciones y tiempos de uso. Las empresas pierden autonomía en el manejo de sus plataformas y hasta de sus datos. En el caso de la gestión documental, hay software propietario que terminan usando formatos cerrados que privatizan la información y arrodillan al cliente al uso exclusivo de ciertos software.

IV. Implantación de nuevos servicios (25%)
Una vez realizado el análisis de mercado y la definición de negocio, la spin-off inicia su actividad con un equipo formado inicialmente por parte de los miembros del equipo de gestión y de implantación del proyecto de creación de la plataforma:
1 director de proyectos senior.
2 técnicos informáticos de grado medio, expertos en el desarrollo de aplicaciones.
1 técnico informático de grado superior, expertos en sistemas.
1 técnico informático de grado medio, experto en redes.
Además, para el desarrollo y despliegue de los nuevos servicios, el equipo del proyecto ha decidido utilizar la metodología SCRUM5.
De este modo, se plantea analizar las diferentes soluciones en software libre que pueden dar respuesta a las necesidades detectadas en los clientes, realizar las adaptaciones que se consideren necesarias y desplegar el nuevo servicio de la plataforma.

En concreto, se pide resolver las siguientes cuestiones:

1. Análisis de alternativas en software libre

a) Seleccionar dos proyectos/aplicaciones de software libre del ámbito de aplicación identificado en el punto 2a de la tercera parte.

Se seleccionan las siguientes plataformas de software libre
  • Servidor AAA (Autenticación, Autorización y Conteo – Accounting-) para controlar acceso a la red FreeRadius
  • Administracdor de contenidos CMS, para le desarrollo de plataformas web: Drupal

b) Realizar un análisis comparativo de ambos proyectos, considerando:



FreeRADIUS
Drupal
Nombre del proyecto y organización o empresa que lo desarrolla.
FreeRADIUS. Ha desarrollado una comunidad de usuarios y desarrolladores bajo el mismo nombre, sin embargo el código y desarrollos son protegidos por la empresa Network RADIUS Inc.
Drupal. Es un CMS basado en la filosofía del software GPL. Tiene una gran comunidad de desarrolladores en todo el mundo, sin embargo existe una fundación llamada Drupal Association que se encarga de mantener la infraestructura, el código, velar por la licencia y promover la educación sobre el CMS.
Licencia.
GPL V2, incluye un servidor Radius con licencia BSD.
GPLv2 y posteriores.
Fechas de la primera y de la última release estable.
Versiòn 1.1.0 – 12 Enero 2006
Version 2.2.0 - 10 Septiembre 2012
Drupal 1.0.0, 2001-01-15
Drupal 7.17, 2012-11-07

Tecnología sobre la cual se ha desarrollado.
Lenguaje C, Apache
PHP, HTML, JAvaScript
Coste (si es aplicable).
no
no
Principales funcionalidades soportadas.
Autenticación de clientes en redes.
Interacción con fabricantes de equipos de comunicaciones con protocolo Radius.
Validación contra bases de datos SQL.
Autenticación segura 802.1x
Plataformas web.
Contrucción modular basado en un core libre.
Multiplataforma.
Integración con muchos lenguajes de programación web.
Usabilidad y curva de aprendizaje.
Altamente usado en grandes redes corporativas establecer medidas de seguridad de acceso a las redes de datos.
Es un tema muy especializado y la curva de aprendizaje es muy lenta. Requiere de conocimientos avanzados de redes y programación.
Es usado en cualquier tipo de plataforma web, desde pequeños blogs hasta grandes y concurridos sitios web.
Ofrece un entorno fácil de usar, modular y gráfico.
La curva de aprendizaje hasta nivel intermedio es muy rápida.
Requerimientos técnicos.
Sistemas operativos GNU/Linux (aunque hay una versión para Win32).
Librerias C
Librerias Apache
Servidor Web
Servidor PHP5
Servidor SQL
Principales ventajas e inconvenientes.
Es el servidor Radius más difundido, altamente personalizable y estable.
Se requieren conocimientos técnicos muy avanzados.
Flexible y fácil de usar hasta un nivel intermedio. Altamente personalizable y estable.
Ha ido corrigiendo problemas de compatibilidad entre browser web.


c) Seleccionar una de las soluciones para su despliegue en la plataforma.

Se selecciona Drupal, como base de todas las plataformas web en la estructura cliente-servidor.


2. Desarrollo de software
a) ¿El proyecto seleccionado resuelve todas las necesidades identificadas en el mercado o para ser desplegado directamente en la plataforma? ¿Qué habría que adaptar, extender o complementar?

Drupal presenta todo lo necesario en su código fuente para implementar en pocos minutos un completo CMS, sin embargo la instalación original presenta una interfaz simple y básica; se necesita una profunda modificación para poder lograr las metas de las plataformas web necesarias: Implementación de módulos, desarrollos de módulos, interacción entre bases de datos de sistemas CMR y ERP, etc.


b) ¿Cómo se adecúa el proyecto al desarrollo de código siguiendo una metodología ágil? ¿Qué habría que adaptar?

El desarrollos sobre Drupal es ágil ya que es un software modular; por ejemplo, si se requiere modificar el sistema de logging de la plataforma, solo se debe modificar el módulo (on programar) destinado a esto, sin tener que modificar el código core. Lo anterior permite que le desarrollo de entornos personalizados sea bastante rápido, se pueda reutilzar módulos desarrollado por la comunidad de usuarios, e incluso, integrar presentaciones gráficas de otros diseñadores. Esto permit6e aplicar perfectamente la metodología Scrum al avanzar en el desarrollos global y poder devolverse a pequeñas personalizaciones modulares.

c) ¿Qué estrategia de relación se podría establecer con la comunidad de usuarios del proyecto?

La relación con la comunidad de usuarios de Drupal es muy importante y útil, desde hallar buenos testers, hasta poder reciclar código de miles de módulos existentes y liberados por sus desarrolladores. Muchas necesidades de la plataforma, como la integración con otros CMR, ya han sido desarrolladas en forma de módulos y liberada por la comunidad; esto puede significar gran ahorro de tiempo y desarrollo.

d) ¿Qué estrategia de releasing y packaging se podría considerar para las adaptaciones?

Drupal de packing tiene una estrategia llamada Distribuciones. Son llamadas asì, las configuraciones y personalizaciones de Drupal, con módulos, temas y código específico que servirán para aplicaciones concretas.
Se empaca el código core junto con los módulos usados y el código de personalización. Esto permite instalaciones completas y muy rápidas de plataformas específicas muy completas.
Sería posible desarrollar una distribución drupal que integre soluciones de ERP, CMR, RRHH, etc., compatible con otras plataformas web y fácilmente integrable.

e) ¿Sería suficiente la plataforma actual para desplegar la nueva solución? ¿A cuántos clientes se podría dar servicio inicialmente?

No, es necesario programar y desarrollar módulos para las necesidades. Las capacidades de la plataforma dependen exclusivamente de las capacidades del hardware. Así Drupal es base de plataformas web muy usadas en internet y que soportan miles de usuarios concurrentes las 24 horas.

3. Plan de desarrollo y despliegue
a) Definir los roles utilizados en la metodología SCRUM.

ScrumMaster: Director del proyecto. Es quein organiza y lidera las labores del desarrollo del proyecto. En este caso, es el director de proyectio de la Universidad
ProductOwner: Es el patrocinador del proyecto; usualmente quien coloca los recursos y fija los requerimientos. En este caso la empresa contratante y todas las empresas y usuarios que se puedan involucrar en la fase de desarrollo.
Team: Es el equipo de desarrollo. En este caso los técnicos de sistemas, software y redes.


Product Backlog: Requerimientos. Fija el alcance del proyecto
Sprint Planning: Reuniones de planeación en la que se fijan los entregables a proporcionar en tiempos definidos al ProductOwner.
Sprint: jornada de tiempo para desarrollo del software con el fin de hacer entregas definidas de vances.


b) Elaborar una planificación para el desarrollo y despliegue, definiendo para cada iteración lo siguiente:






Sprint 1
Sprint 2
Sprint 3
Sprint 4
Descripción breve.
Levantamiento de requerimientos (Product Backlog), información del estado del arte.
Instalación de sistema base, integracipon de moduloos bàsicos
Desarrollos e integración
Pruebas
Resultados o funcionalidades esperadas.
- Documento Product Backlog.
- Preselecciòn de software a usar
Servidor programado.
Sistema base instalado.
Selección final de módulos básicos a usar.
Desarrollo de mòdulos necesarios, Modificación de módulos existentes.
Integración de Base de datos con SugarCMR y OpenERP
Pruebas de funcionalidad.
Pruebas de integración.
Pruebas con usuarios
Realimentación y retoques finales
Recursos humanos necesarios.
2 Técnicos
1 Director de proyectos ScrumMaster
1 representante de ProductOwner
3 Técnicos
1 Director de proyectos
3 Técnicos
1 Director de proyectos
2 Técnicos
1 representante de ProductOwner
Duración.
2 semanas
3 Semanas
4 semanas
4 semanas




3 comentarios: