Download diapos - Software Libre
Document related concepts
no text concepts found
Transcript
Proyectos de desarrollo corporativo con Software Libre Sergio Machuca smachuca@telematica.com.uy Gabriela Sasco gsasco@telematica.com.uy JAIO – JSL 08/2012 – La Plata, Argentina AGENDA Introducción Arquitectura utilizada Integración Gestión de los proyectos Resumen estadístico Conclusiones Introducción (1) Crecimiento significativo en la complejidad de la infraestructura tecnológica de TI. Aplicaciones móviles y de Internet. Ambiente competitivo. Interacción con plataformas heterogéneas: – variedad de tecnologías – seguridad (encripción, puertos de comunicación) – administración de los sistemas – formas de interacción (sincrónica o asíncrona, unidireccional o bidireccional), restricciones sobre ella (atomicidad transaccional, niveles de robustez y performance, compatibilidad con lenguajes u otras plataformas). Utilización de mecanismos estándares u opciones ad-hoc. – disponibilidad (por ejemplo tolerancia fallas de componentes) – nivel de programación (facilidad de uso, nivel de abstracción); etc. Introducción (2) Plataformas de desarrollo empresarial - todos los componentes integrados en la herramienta de forma nativa. Herramientas de software libre - los desarrolladores deberán dedicar tiempo en investigación e incluso debiendo construir componentes de bajo nivel. Arquitectura utilizada (1) Plataforma Base (basados en J2EE): –Servidor de aplicaciones: JBOSS –Framework de desarrollo: Eclipse –Técnicas y herramientas: • AJAX (Asynchronous JavaScript And XML) • MVC (Model View Controller) • STRUTS • HIBERNATE • JPA • JSF • RichFaces Arquitectura utilizada (2) Usabilidad - WEB = paradigma basado en request–response - Estándares y políticas que definen componentes y comportamientos de las interfaces de usuario y como ser implementados. Arquitectura utilizada (3) Servicios de Seguridad (1) –Repositorio de usuarios. • Garantizar la existencia de un usuario común para diferentes servicios –Autenticación de usuarios: • OpenLdap –mediante la configuración de servidores de aplicaciones y, en Windows NT, desde la aplicación accediendo a través de una dll de acceso al Ldap. –Delegación: • clientes corporativos gestionan las cuentas de sus usuarios. • Definida mediante una estructura en el LDAP donde se definen usuarios supervisores que pueden delegar la administración de sus cuentas a otros usuarios Arquitectura utilizada (4) Servicios de Seguridad (2) – SSO (Single Sign On): • CAS (Central Authentication Service) – permite presentar las credenciales una única vez y que el ambiente las recuerde. – Certificación. • OpenSSL- herramienta de dominio público para generar certificados • Bibliotecas de interfaces con openSSL (generación automática de certificados). – Cumplimiento de seguridad. • Documento de estándares de aplicaciones seguras basado en OWASP (Open Web Applicaction Security Project). • Tests de penetración y análisis de vulnerabilidades • Procedimiento que incluye la realización de escaneos, previo a la liberación de servicios y la realización de auditorias en forma periódica en producción. . Integración (1) Heterogeneidad y restricciones impuestas por las tecnologías y aplicaciones legadas: –IBM zSeries (390), iSeries (AS/400), aplicaciones legadas 3270 y 5250, CICS (Transaction Server for OS/390), con mecanismos de comunicación previsto como IBM MQSeries, UNIX propietarias, etc. . Integración (2) Tecnologías utilizadas (1): – Web Services: • basados en XML (SOAP, WSDL, UDDI) • Conexiones tanto sincrónicas request/reply como asíncronas (no necesariamente J2EE) • HTTP como protocolo de transporte – IBM MQSeries: • transporte genérico de mensajes con un API de alto nivel (mensajes y colas). • Se utilizaron para interactuar con aplicaciones en Windows y 390. – EHLL API, HATS, HACL • Son APIs para la comunicación con entornos OS/390. • Comunicación a través de la navegación entre pantallas (contenido de las pantallas es manejado en un array de 24x80) • HACL - implementación particular mediante clases Java y las • HATS – herramienta que facilita el desarrollo • Para las aplicaciones legadas orientadas a terminales IBM 3270, se crearon macros, que emulaban la navegación y la entrada de la información requerida. Luego, analizando sintácticamente los resultados, traduciendo códigos de retorno y mensajes en textos, se despliegan los resultados en páginas web.. Integración (3) Tecnologías utilizadas (2): – APPC (Advanced Program to Program Communications) y CPI-C (Common Programming Interface - Communications) • Protocolos y APIs para la comunicación de programas entre diferentes equipos en un entorno SNA (IBM Systems Network Architecture). • Interfaces de programación de un relativo bajo para comunicaciones bidireccionales – CICS: • monitor de transacciones difundido en entornos mainframes 390. – CTG (CICS Transaction Gateway) • implementación de un cliente CICS • puede realizar invocaciones a un servidor CICS remoto • Provee APIS para poder invocarlo desde entornos JAVA y .NET. – RSH (remote shell)/SSH (secure shell) • Aplicable para sistemas altamente especializados donde no es posible instalar software adicional y únicamente es posible interactuar con el sistema mediante comandos. • Permiten el loging y la ejecución remota de comandos. Son apropiados para la ejecución batch de scripts. • Se utilizaron en aplicaciones que requerían comunicarse con sistemas de tiempo real y de aprovisionamiento de servicios mediante un encapsulado java en entornos UNIX HP e IBM (AIX pSeries). Gestión de los proyectos (1) Basados en PMBOK®, seleccionamos caso a caso los procesos adecuados para lograr los diferentes objetivos. • Se agregan tareas y entregables para la creación del entorno de trabajo (de investigación y adquisición de componentes, de integración, de adaptación de código existente, etc.). • Pasamos del proceso de adquisición de la herramienta de desarrollo a construir la misma. Gestión de los proyectos (2) • La adquisición del equipo del proyecto debe contemplar capacidades y habilidades no requeridas en el desarrollo de software propietario: – arquitecto, con la habilidad de investigar y diseñar una arquitectura capaz de integrar ambientes heterogéneo e ínter operar con sistemas ya existentes en sistemas 390, as/400, AIX, Linux y Windows. – expertos en diferentes tecnologías (experto LDAP, experto MQ, experto en CICS, experto en EHLLAP, programadores JAVA programadores JAVA con experiencia en componentización, programadores Java Web, etc.) – Experto en seguridad – Diseñadores Web, que diseñen la comunicación con el usuario final y midan los resultados. – Expertos funcionales, con conocimientos tanto de los objetivos del proyecto como del funcionamiento de los sistemas existentes que bebían se integrados para alcanzar dicho objetivo. - . . Gestión de los proyectos (3) Dedicación mayor a los procesos de gestión del alcance y gestión de la configuración, debido a las constante actualizaciones y cambios de tendencia provocadas por la comunidad. Es de esperar que los proyectos sufran mas cambios a lo largo del ciclo de vida Cambios de alcance y/o de configuraciones, deben ser comunicados en forma ágil a los miembros del equipo (estado de arte, versionado, etc. de los componentes de la solución). Gestión de riesgos: existen riesgos intrínsicos al utilizar tecnologías muchas veces inmaduras que obligan a reformular el objetivo de utilizar total o parcialmente herramientas de software libre. Riesgo de tiempo de armado del ambiente de desarrollo. El solo hecho de integrar sistemas muy heterogéneos, que son el corazón mismo de la organización, introduce un alto riesgo debido a la complejidad que esto tiene. . Resumen estadístico Más de 120.000 usuarios en LDAP Más de 70 aplicaciones Web Más de 50 aplicaciones que acceden a equipos 390 y AS/400. Aplicaciones distribuidas en más de 20 servidores heterogéneos. Conclusiones Necesidad de interconectar aplicaciones - sistemas 390, as/400 y Unix. - No siempre se puede utilizar Web Services (comúnmente utilizados en .NET y J2EE) Heterogeneidad y restricciones impuestas por tecnologías y aplicaciones legadas. Complejidades adicionales sobre todo en etapas iniciales: - armado de la solución, - preparación del equipo de trabajo y su ambiente, - complejidad de adaptar e integrar herramientas de desarrollo. - roles y capacidades adicionales (arquitecto investigador, expertos en LDAP, MQ, etc.) Impacto en las áreas y procesos de la gestión del proyecto: - gestión del alcance y de la configuración - planes de comunicación - Riesgos intrínsicos a utilizar tecnologías muchas veces inmaduras, en el armado del ambiente de desarrollo, etc. Preguntas Sergio Machuca smachuca@telematica.com.uy Gabriela Sasco gsasco@telematica.com.uy JAIO – JSL 08/2012 – La Plata, Argentina