Download 7835
Document related concepts
Transcript
SOFTWARE GUARDIÁN DE APLICACIONES DESARROLLO DE PRODUCTOS DE SOFTWARE Omar Aguilar Feijóo Fausto Correa Almazan Agenda Origen del Producto Plan de negocio El Producto El Mercado La Competencia Modelo de Negocio Plan Financiero Tecnologías utilizadas La necesidad Alternativas de solución Solución propuesta Beneficios ofrecidos Arquitectura de mensajes de Windows Técnicas de Inyección Dlls Mensajes del sistema Funciones y Estructuras Diseño del sistema Demostración Conclusiones METODOLOGÍA Identificar necesidad de administrar infraestructura de tecnología de Información. Presentación del proyecto y como resuelve la necesidad Análisis económico. Análisis de las tecnologías utilizadas. Diseño y configuración de sistema SGA. Prueba de concepto. Conclusiones y recomendaciones. Agenda Origen del Producto Plan de negocio El Producto El Mercado La Competencia Plan Financiero Modelo de Negocio Tecnologías utilizadas La necesidad Alternativas de solución Solución propuesta Beneficios ofrecidos Arquitectura de mensaje de Windows Técnicas de Inyección Dlls Mensajes del sistema Funciones y Estructuras Diseño del sistema Demostración Conclusiones La Necesidad Tecnología de Información. Redes de computadoras, software, enlaces de datos, bases de datos son en la actualidad herramientas esenciales para el desarrollo de las actividades de Instituciones y organizaciones de diferentes fines y tamaños. Tecnología e Industria. La Tecnología de Información brinda muchas ventajas competitivas y permite aumentar la productividad, siempre y cuando sea bien administrada. Software. Es por medio de los productos de software que se accede a muchos de los recursos de tecnología, ya sea este un enlace de datos, una base de datos, un servicio, producto, entre otros. Los productos de software tienen agrupadas sus opciones y menús y botones de la barra de herramientas y por medio de estas opciones permite a los usuarios interactuar y acceder a los recursos. La Necesidad Seguridad de accesos. La mayoría de las aplicaciones cuentan con un sistema de seguridad que controla los accesos y uso de los programas. Sin embargo, a veces no se acopla a la estructura de la Empresa. En otros casos se tiene muchas aplicaciones y cada una con su propio sistema de seguridad que hace que se complique la administración y control de los mismos. No permiten el control de ejecución de otros programas. Es necesario controlar el uso de programas permitiendo solo los que brinden ventajas al negocio y no a uso personal. Otras aplicaciones ni siquiera cuentan con un sistema de seguridad La Necesidad Administración de Infraestructura tecnológica. Es necesario contar con una buena herramienta que permita administrar el uso de la Infraestructura Tecnológica. Una infraestructura mal administrada puede generar costos escondidos que muchas organizaciones no cuantifican y afectan su estructura de costos La Necesidad Aplicaciones de EC Modelos de negocio B2C y B2B Administrar relaciones con Clientes CRM Optimizar procesos internos y productividad PERSONAS POLÍTICAS Y PROCESOS AREAS DE SOPORTE SERVICIOS Y PRODUCTOS SOCIOS DE NEGOCIOS SOFTWARE TECNOLOGÍA DE INFORMACIÓN Infraestructura de Seguridades Servicios de Mensajerias Infraestructura de Redes Infraestructura de aplicaciones y servicios ADMINISTRACIÓN TECNOLÓGICA Infraestructura de Bases de Datos Alternativas de Solución Utilizar editores de políticas de Windows. Esta alternativa puede llegar a deshabilitar ciertas opciones del sistema operativo para evitar que se desconfigure equipos, pero no se puede bloquear programas de terceros lo que lo hace una solución incompleta. Se pueden adquirir software que bloquean localmente programas de estaciones de trabajo pero no trabajan en un ambiente de red ocasionando una carga de actividad en la administración ya que no es centralizado. Adquirir recursos que modifiquen y mejoren a los aplicativos, pero si no se tiene los códigos fuentes nada se podrá hacer. Solución propuesta Desarrollar una herramienta que permita la administración centralizada del uso de los programas dentro de la organización y que permita integrar varias aplicaciones a los diferentes perfiles de usuarios o grupos de usuarios, brindando la facilidad de asignar restricciones de seguridad a las diferentes opciones de menús y botones de las aplicaciones, sin necesidad de contar con el código fuente de las mismas. A esta herramienta se la llamó Software Guardián de Aplicaciones SGA Beneficios ofrecidos Entre los beneficios que ofrece esta solución se tiene: Permite aplicar restricciones de seguridad a más del 70% de las aplicaciones que se ejecutan sobre Windows Ahorro de tiempo y dinero en la administración de las seguridades de las aplicaciones de toda la organización. Simplifica el control de las seguridades de menús y barras de botones por grupos de usuarios Reduce a cero el desarrollo de módulos extra de seguridad Evita perjuicios económicos por fraude o negligencia en el mal uso de programas Agenda Origen del Producto Plan de negocio El Producto El Mercado La Competencia Modelo de Negocio Plan Financiero Tecnologías utilizadas La necesidad Alternativas de solución Solución propuesta Beneficios ofrecidos Arquitectura de mensaje de Windows Técnicas de Inyección Dlls Mensajes del sistema Funciones y Estructuras Diseño del sistema Demostración Conclusiones El Producto El producto SGA, se basa en el aprovechamiento de un mecanismo de los sistemas operativos Microsoft Windows. Este mecanismo consiste en que las aplicaciones trabajan en base a eventos, los mismos que pueden ser generados por distintos dispositivos como por ejemplo, el ratón, el teclado, etc. Los eventos a su vez generan mensajes, nuestra aplicación captura dichos mensajes, específicamente los que tienen que ver con menús y botones, y los procesa de acuerdo a las reglas de ejecución configuradas para el perfil al cual pertenece el usuario que ejecuta la aplicación. Con esto se consigue el objetivo de asegurar las opciones de menús y barras de botones de las aplicaciones. El Producto APLICACIONES CORE SGA SISTEMA OPERATIVO El Producto CLIENTE 1 CLIENTE 2 CLIENTE 3 APLICACIONES APLICACIONES APLICACIONES SISTEMA OPERATIVO SISTEMA OPERATIVO SISTEMA OPERATIVO SGA CLIENTE SGA CLIENTE SGA CLIENTE LAN ETHERNET SGA ADMINISTRADOR BASE DE DATOS SGA SGA SERVIDOR El Mercado Nuestro mercado potencial está conformado por todas las instituciones y organizaciones, tanto en Ecuador como el Latinoamérica, que utilizan programas de computadora sobre sistemas operativos Microsoft Windows y que se comunican por medio de una red y necesiten controlar las aplicaciones que se ejecutan sobre la misma, con el fin de optimizar el uso de sus recursos de tecnología y alcanzar sus fines de negocio. Mercado Segmento de mercado Mercado Presupuesto de clientes Tamaño del segmento de Mercado 140,00 120,00 100,00 Clientes 80,00 60,00 40,00 20,00 0,00 2005 2006 2007 Segmento D 6,00 36,00 72,00 Segmento C 3,00 24,00 36,00 Segmento B 5,00 7,00 14,00 Segmento A 0,00 2,00 6,00 Segmento AA 0,00 1,00 2,00 Total Clientes 14 70 130 Año La Competencia Modelo de negocio Nuestro modelo de negocio consiste en la venta directa y por medio de canales de distribución del producto, ya sea en paquetes y licencias individuales, adicional de servicios de asesoría y asistencia en implementaciones. El detalle de los paquetes, los mismos que incluyen todo el sistema, es decir cliente, servidor y administración se muestra en la siguiente tabla: Modelo de negocio El costo de mantenimiento anual que incluye horas visitas técnicas en sitio y actualizaciones de versión es el 25% del valor del paquete completo adquirido Valores de servidor y licencias individuales. El módulo de administración forma parte del servidor. Plan Financiero Actualmente se cuenta con el producto terminado en su primera versión, se requiere inversión para cubrir las siguientes actividades: Adquisición de equipos. Equipar oficinas. Distribución del producto. Mantenimiento y mejoras. Cubrir sueldos y gastos operativos hasta alcanzar niveles de ingreso que permitan operar por si misma a la empresa. Plan Financiero La siguiente tabla detalla la inversión inicial que se necesita. Plan Financiero Adicional se necesitará un capital de trabajo de USD $21500, para poder operar en los meses que no haya ingreso. Este capital de trabajo será destinado para cubrir sueldos, costos operativos y costos de ventas Plan Financiero Costos Hundidos Plan Financiero Costos Operativos Plan Financiero Salarios Plan Financiero Proyección de ventas Plan Financiero Indicadores Financieros 1. CALCULO E INTERPRETACIÓN DEL VALOR ACTUAL NETO 2. CALCULO E INTERPRETACIÓN DE LA TASA INTERNA DE RETORNO (TIR) La técnica del Valor Actual Neto (VAN) o Valor presente Neto (VPN) es la que se utiliza con mayor frecuencia para tomar decisiones de inversión en activos fijos, conceptualmente es la diferencia entre el valor actual de los flujos netos de caja estimados del proyecto y la inversión neta requerida. La Tasa Interna de Retorno es la tasa de descuento que hace que el valor presente neto de la inversión igual a cero, es decir que el valor presente de los flujos de caja que genera el proyecto sea exactamente igual a la inversión neta realizada. Indicador Inversión neta USD 27.500 Sumatoria Flujos de caja USD 121.282 VAN Indicador Valor TIR 62% Valor USD 45.808 CRITERIO DE DECISIÓN De acuerdo al criterio de evaluación derivado de la aplicación de la técnica del valor actual neto, el proyecto Software Guardián de Aplicaciones SGA, es viable, el VAN es mayor que cero y positivo. Es decir el proyecto genera un rendimiento mayor que el costo de los recursos externos de financiamiento y por lo tanto desde desde punto de análisis conviene ejecutar el proyecto. CRITERIO DE DECISIÓN En relación al cuadro anterior de la Tasa Interna de retorno derivada de la alternativa presentada de composición de capital para la inversión, podemos concluir lo siguiente: que la tasa de retorno obtenida en el proyecto de SGA es muy superior al costo de los recursos de financiamiento externo, por lo tanto el proyecto puede soportar hasta un incremento en la tasa de interés por tener amplio margen de retorno de la inversión. Agenda Origen del Producto Plan de negocio El Producto El Mercado La Competencia Modelo de Negocio Plan Financiero Tecnologías utilizadas La necesidad Alternativas de solución Solución propuesta Beneficios ofrecidos Procesamiento de mensajes Windows Técnicas de Inyección Dlls Mensajes del sistema Funciones y Estructuras Diseño del sistema Demostración Conclusiones Procesamiento de mensajes en Windows Técnicas de Inyección de Dlls Windows Hook Windows Hooks Windows API Hook Procesamiento de mensajes en Windows APLICACIONES SERVIDOR SGA CORE SGA Base datos SISTEMA OPERATIVO Mensajes del sistema Mensaje Se envía cuando WM_CHAR Un carácter es ingresado desde el teclado. WM_COMMAND Es seleccionado un ítem de menú, un control envía una notificación a su ventana padre. WM_CREATE Una ventana es creada. WM_DESTROY Una ventana es destruida. WM_LBUTTONDOWN El botón izquierdo del Mouse es presionado. WM_LBUTTONUP El botón izquierdo del Mouse es liberado. WM_MOUSEMOVE El puntero del Mouse es movido. WM_QUIT La aplicación está a punto de terminar. Funciones mas utilizadas SetWindowsHookEx EnumChildWindows Funciones CallBack SendMessage WriteProcessMemory Estructuras de Menús Posiciòn Menu-Item Estructura de menus 0 0-1 0-2-1 WM_INITMENU WM_INITMENUPOPUP WM_COMMAND Posición 0 Item 0 subitem 1 Item 0 subitem 2 subsubitem 1 Botones WM_SETCURSOR Agenda Origen del Producto Plan de negocio El Producto El Mercado La Competencia Modelo de Negocio Plan Financiero Tecnologías utilizadas La necesidad Alternativas de solución Solución propuesta Beneficios ofrecidos Procesamiento de mensajes Windows Técnicas de Inyección Dlls Mensajes del sistema Funciones y Estructuras Diseño del sistema Demostración Conclusiones Diagrama de contexto Arquitectura cliente Interfases de las Aplicaciones a ejecutarse Interfaz de Usuario Estructuras de Menús y Botones Ventana de Login de Windows Usuario Nombre de la Aplicación SGA Cliente Funciones de Proceso y Control Usuario Estructuras de Menús y Botones Modificadas Interfases Modificadas de las Aplicaciones Reglas de Ejecución SGA Servidor Procesamiento de Entrada Entidad de Mantenimiento Procesamiento de la Salida Diagrama de contexto Arquitectura Servidor Interfase del Administrador Interfaz de Usuario Peticiones, Consultas e ingreso de reglas Usuario SGA Cliente Procesamient o de Entrada Respuestas e Informes SGA Servidor Reglas de Ejecución SGA Cliente Funciones de Proceso y Control Procesamient o de la Salida Diagrama de flujo de Arquitectura cliente Interfaz de Usuario Login de Windows Nombre de App Usuario Subsistema de Captura de Usuario Usuario U su ar io Procesamiento de Entrada Aplicaciones E st Nombre de App Subsistema de r u Monitoreo de Subsistema de ct Aplicaciones Sincronización u r Tipo de Nomb a Ac Bloqueo re de d tu App e ali Subsistema Tipo M za de Acceso a de e ci Bloqu Reglas n ón eo ú de Nomb Menú Re L s Re re de s y gl ec y gl App as tu Boton B as de ra es Subsistema de ot Reglas Ej Ejecución de o Locales ec n Reglas uc es ió n Funciones de Proceso y Control SGA Servidor Interfases Modificadas de las Aplicaciones Procesamiento de la Salida Entidad de Mantenimiento Diagrama de flujo de Arquitectura Servidor Interfaz de Usuario Administrador Peticiones de Datos Reglas de Usuari os SGA Cliente Usuario Datos de Cons ulta Procesamiento de Entrada Subsistema de Acceso a Datos Subsistema de Sincronización Orden de Sincroni zación Datos para Consultas Base de Datos Principal Reglas de Ejecución N ue va s R eg la s Subsistema de Sincronizac ión Cliente Funciones de Proceso y Control Subsistema de Ingreso de Reglas Procesamiento de la Salida Demostración Conclusiones Se puede desarrollar un producto con especificaciones técnicas y funcionales de primera basada en tecnologías de punta, pero si no se justifica su necesidad, y su potencial comercial, será difícil introducirlo en el mercado y garantizar que sea un negocio rentable. Se aprendió a usar al plan de negocios, como una herramienta de simulación para comercializar nuestro producto, exponer y dominar temas que no solo implican sus beneficios tecnológicos, sino que también las ventajas que ofrece al cliente final y de esta manera resaltar sus propiedades para que sea atractivo en el mercado. Conclusiones Se ha desarrollado una técnica que además de permitir controlar a las aplicaciones de una red, puede derivar otras funcionalidades. El poder controlar y administrar los mensajes que el sistema operativo y las aplicaciones se envían, nos brinda un amplio campo de aplicabilidad. El producto nos muestra que podemos controlar y modificar la interfase del usuario a nuestro criterio, esta técnica no solo funciona en menús y botones de la barra de tareas, también funciona sobre objetos que están sobre una ventana de Windows, para ello se necesita saber que mensajes y estructura de datos usan para poder controlarlos. Muchas ¿Preguntas? gracias