® IBM Software Group EGL Simplify Innovation Enterprise Modernization “The EGL puzzle at Costaisa” Jesús Villagrasa – Assistant CIO Carlos Cercos – Main J2EE Architect www.costaisa.com EGL International Conference Zurich Oct 20-21 2008 © 2008 IBM Corporation EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Agenda Costaisa Overview A long journey to modernization Prior attempts. AMC (Arquitectura Marco de Costaisa) Description Building Blocks The role of EGL in detail / Demo Roadmap Summary 2 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Agenda Costaisa Overview A long journey to modernization Prior attempts. AMC (Arquitectura Marco de Costaisa) Description Building Blocks The role of EGL in detail / Demo Roadmap Summary 3 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Costaisa Overview From 1968 an IT consulting firm…. Developing software Integral outsourcing From IBM 360 to zSeries Specialized in the IBM Mainframe Area (VM, VSE, z-LINUX, etc.) Specialized in the Insurance and healthcare business domain. Main outsourcer for a national Healthcare organization in Spain (5000 users, 200 facilities: hospital, primary care, etc.) Around 230 FT employees. 4 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Costaisa Overview - Technology Look at IBM’s history + other mainframe providers Persistence VSAM (5%) DL/I (15%) DB2 (VSE & UDB) (20%) DOMINO (5%) ADABAS C from Software AG (50%) Other (ms-sql..) 5% 5 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Costaisa Overview Language / Development IDE Assembler 370 COBOL (PACBASE, CICS, BATCH) Natural , predict case (from software AG) Visual Basic 6, .Net, ms-VFoxpro Domino / Notes J2EE (EJB 2, jsp) Environment Z-Mainframe (VSE, VM) Z-linux Wintel (w2k, vmware, citrix) 6 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Costaisa Overview - Samples 7 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Prior Attempts in App. Modernization Conversion projects Natural to Java Fail Case tools (for j2ee) Versata (pseudo case tool) Poor customization Proprietary solution No evolution J2EE 1 project in production Very expensive No trained people Complexity 8 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMC Arquitectura Marco de Costaisa “toward the Software Factory” Software Factory / Product Lines AMC: Building blocks AMCGen: Development Process Based on controlled IBM tooling (AMCDev) Generated artifacts based on AMCBase architecture AMCBase: EGL Business Components AMCLib: Infrastructure Services and Components 9 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Legacy IT House vs Web2.0 Legacy IT House UML, XML,Relational DB, EGL, SOA, J2EE, Portal, HTTP, HTML, Javascript, CSS, Web2.0,… Where is the ball? Every project is similar Am I reinventing the wheel? Everyone knows its place Who is who? 10 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL The Paradigm Shift For several decades, the software industry has created software systems to support the needs of its customers, but... Despite all that experience, however, quality and productivity are not improving quickly. We realize about the same level of productivity today as we did 10 years agoStandish group Confront a group of developers or project managers, and ask them if they think they are successful in building software today. They almost always tend to laugh a little Few teams regularly reuse solutions created in the past We can see that we have a predictable problem on every new project 11 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Software Factory /Product Line Software asset inputs: a collection of software assets – such as requirements, source code components, test cases, architecture, and documentation – that can be configured and composed in different ways to create all of the products in a product line Production mechanism and process: the means for composing and configuring products from the software asset inputs. Product decisions are used during production to determine which software asset inputs to use and how to configure the variation points within those assets. Decision model and product decisions: The decision model describes optional and variable features for the products in the product line. Each product in the product line is uniquely defined by its product decisions - choices for each of the optional and variable features in the decision model. Software product outputs: the collection of all products that can be produced for the product line. The scope of the product line is determined by the set of software product outputs that can be produced from the software assets and decision model. 12 Related to components and utility libraries with specific function: reporting, xml processing, etc. EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Related to the access to the Related to framework: documentation, AMC: COSTAISA’s Framework Architecture resources for guidelines, change visual design: management, components, stylesheets, AMCLib etc. layouts, etc. Related to the MDA development: Uml profile, plug-in, ant extension, template customization, etc. Related to IDE (Rational Business Developer) + all supporting tooling: configuration, continuous integration, etc. Persistence Related to AMC kernel: architectural framework based in EGL Integration Related to the control and monitoring of production AMC’s based application Business Presentation AMCGui AMCDev AMCGen AMCForge AMCBase AMCOp AMCInfra Related to the deployment of AMC applications 13 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Software Factory, What makes the difference Software Factory AMC Unified Methodology AMCForge & AMCGui Unified Architecture AMCBase Unified Development Process AMCGen Unified Development Environment AMCDev Unified Infrastructure Facilities AMCLib Unified Execution Environment AMCInfra Unified SOA Governance AMCInfra Unified Operations AMCOp 14 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCGen Development process MDA based RBD Extension plugin Generates JSF Webapp & SOA Service Based on AMCBase architecture 3 scenarios New SOA application (Direct engineering) DB Modernization (DB Inverse engineering) SOA Modernization (SOAP Inverse engineering) 15 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCGen: Development process Analyst RSM WBM Data Arch. RDA Developer Tester RBD RFT RPT 1 Prod. Line Def. 1 Uml Profile 2 Team 1 Product A 2 MDA Plugin 2 Product B 3 SF Process 3 Product B 16 ® IBM Software Group EGL Simplify Innovation DEMO EGL International Conference Zurich Oct 20-21 2008 © 2008 IBM Corporation EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCGen: Development process DEMO New SOA Application (Direct engineering strategy) UML Business Entities Diagram Analysis DA Glossary (AnalysisDesignDB word) ER Logical Domain DDL Physical Domain UML Design classes diagrams SOA & JSF JET templates JSF SOA Code based on AMCBase architecture 18 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL MDD UML-ER UML Business Entities Analysis MDD ER-DDL ER Design model DB Physical model •Terms Glossary + Metainformation •Custom types dictionary Analista Funcional Desarrollador BD DB Codification Rules DB MDD DDL-EGL •JET Templates Presentación Web Web Service •DB Codification Translation EGL code SOAP/HTTP - DataItems Lógica de Negocio - Records Desarrollador EGL - Libraries - Service Registros y Persistencia JDBC/SQL - WebApp Admin 19 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL MDD UML-ER UML Business Entities Analysis MDD ER-DDL ER Design model DB Physical model •Terms Glossary + Metainformation •Custom types dictionary Analista Funcional Desarrollador BD DB Codification Rules DB MDD DDL-EGL •JET Templates Presentación Web Web Service •DB Codification Translation EGL code SOAP/HTTP - DataItems Lógica de Negocio - Records Desarrollador EGL - Libraries - Service Registros y Persistencia JDBC/SQL - WebApp Admin 20 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL MDD UML-ER UML Business Entities Analysis MDD ER-DDL ER Design model DB Physical model •Terms Glossary + Metainformation •Custom types dictionary Analista Funcional Desarrollador BD DB Codification Rules DB MDD DDL-EGL •JET Templates Presentación Web Web Service •DB Codification Translation EGL code SOAP/HTTP - DataItems Lógica de Negocio - Records Desarrollador EGL - Libraries - Service Registros y Persistencia JDBC/SQL - WebApp Admin 21 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL MDD UML-ER UML Business Entities Analysis MDD ER-DDL ER Design model DB Physical model •Terms Glossary + Metainformation •Custom types dictionary Analista Funcional Desarrollador BD DB Codification Rules DB MDD DDL-EGL •JET Templates Presentación Web Web Service •DB Codification Translation EGL code SOAP/HTTP - DataItems Lógica de Negocio - Records Desarrollador EGL - Libraries - Service Registros y Persistencia JDBC/SQL - WebApp Admin 22 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL MDD UML-ER UML Business Entities Analysis MDD ER-DDL ER Design model DB Physical model •Terms Glossary + Metainformation •Custom types dictionary Analista Funcional Desarrollador BD DB Codification Rules DB MDD DDL-EGL •JET Templates Presentación Web Web Service •DB Codification Translation EGL code SOAP/HTTP - DataItems Lógica de Negocio - Records Desarrollador EGL - Libraries - Service Registros y Persistencia JDBC/SQL - WebApp Admin 23 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL MDD UML-ER UML Business Entities Analysis MDD ER-DDL ER Design model DB Physical model •Terms Glossary + Metainformation •Custom types dictionary Analista Funcional Desarrollador BD DB Codification Rules DB MDD DDL-EGL •JET Templates Presentación Web Web Service •DB Codification Translation EGL code SOAP/HTTP - DataItems Lógica de Negocio - Records Desarrollador EGL - Libraries - Service Registros y Persistencia JDBC/SQL - WebApp Admin 24 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL MDD UML-ER UML Business Entities Analysis MDD ER-DDL ER Design model DB Physical model •Terms Glossary + Metainformation •Custom types dictionary Analista Funcional Desarrollador BD DB Codification Rules DB MDD DDL-EGL •JET Templates Presentación Web Web Service •DB Codification Translation EGL code SOAP/HTTP - DataItems Lógica de Negocio - Records Desarrollador EGL - Libraries - Service Registros y Persistencia JDBC/SQL - WebApp Admin 25 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL MDD UML-ER UML Business Entities Analysis MDD ER-DDL ER Design model DB Physical model •Terms Glossary + Metainformation •Custom types dictionary Analista Funcional Desarrollador BD DB Codification Rules DB MDD DDL-EGL •JET Templates Presentación Web Web Service •DB Codification Translation EGL code SOAP/HTTP - DataItems Lógica de Negocio - Records Desarrollador EGL - Libraries - Service Registros y Persistencia JDBC/SQL - WebApp Admin 26 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL MDD UML-ER UML Business Entities Analysis MDD ER-DDL ER Design model DB Physical model •Terms Glossary + Metainformation •Custom types dictionary Analista Funcional Desarrollador BD DB Codification Rules DB MDD DDL-EGL •JET Templates Presentación Web Web Service •DB Codification Translation EGL code SOAP/HTTP - DataItems Lógica de Negocio - Records Desarrollador EGL - Libraries - Service Registros y Persistencia JDBC/SQL - WebApp Admin 27 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL MDD UML-ER UML Business Entities Analysis MDD ER-DDL ER Design model DB Physical model •Terms Glossary + Metainformation •Custom types dictionary Analista Funcional Desarrollador BD DB Codification Rules DB MDD DDL-EGL •JET Templates Presentación Web Web Service •DB Codification Translation EGL code SOAP/HTTP - DataItems Lógica de Negocio - Records Desarrollador EGL - Libraries - Service Registros y Persistencia JDBC/SQL - WebApp Admin 28 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCGen: Development process DEMO Modernization (DB Reverse engineering strategy) DDL Physical Domain ER Logical Domain DA Glossary (AnalysisDesignDB word) UML Design classes diagrams SOA & JSF JET templates JSF SOA Code based on AMCBase architecture 29 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCBase EGL as business development language J2EE environment WAS6.1/zLinux Business Components & SOA based via Service Separation of Concerns via Service Lib Service (technical&infrastructure code) Lib (functional code) MDA generated Context propagated via parameter Composite Records via UML Design MDA EGL embed Composite Generic finder Composite CRUD 30 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCBase Tiers Separation of concerns 31 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCBase Technical Layer Business Layer 32 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMC Base BC Business, Technical layer 33 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMC Base BC Business, Functional layer 34 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMC Base BC Persistence, Functional layer 35 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMC Base BC Persistence, Technical layer, Composite Record 36 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMC Base BC Persistence, Technical layer, generic query tool Search accounts by company, year, ordered by account number. No return child entity “cuentaretenida” FROM ACODT006 ACODT006 WHERE ( ( ACODT006.KA8CIA = '01' AND ACODT006.KA8EJE LIKE '2008%' ) ) ORDER BY ACODT006.NA8CTA DESC Search accounts by company, account must begin with informed year, ordered by account name descending with some deduction (“cuentaretenida”) last month. FROM ACODT006 ACODT006, ACODT008 ACODT0080 WHERE ( ( ACODT006.KA8CIA = '01' AND ACODT006.KA8EJE LIKE '2008%' ) ) AND ( ( ( ( ACODT0080.FA8TS >= '2008-03-2213.05.51.000' ) ) AND ACODT006.CA8CTA = ACODT0080.CA8CTA AND ACODT006.KA8EJE = ACODT0080.KA8EJE AND ACODT006.KA8CIA = ACODT0080.KA8CIA ) ) ORDER BY ACODT006.NA8CTA DESC 37 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCLib COSTAISA’s technical facilities provided via EGL Library 38 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCLib: Generic Healthcare IT architecture Information infrastructure Services Datos y Servicios de Sistemas Auxiliares Servicio de Registros Clientes Informes Financieros / Sector Público Epidemiología Servicios de História Clínica Información Clínica Básica Medicación Imagen Médica Data Warehouse Laboratorio Indicadores Salud / Gestión Proveedores Ubicaciones Reglas de Negocio Indices EHR Estructuras de Mensajes Reglas de Normalización Servicios Transversales Terminología Facility Components Facility Services Common Services CHIAL Communication Services (Brokering, Routing, …) Servicio Publico de Salud Points of Service Servicio Publico de Salud Sistema Farmacia Farmaceutico PACS / RIS Radiologo Sistema Laboratorio Tec. Laboratorio HIS Clínico / Proveedor Salud Estación Clínica (visor EHR) ADT Clinico Clínico / Proveedor 39 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCLib: Common Reusable Components & Services Information Infrastructure Services Datos y Servicios de Sistemas Auxiliares Servicio de Registros Clientes Servicios de História Clínica Informes Financieros / Sector Público Epidemiología Información Clínica Básica Medicación Imagen Médica Data Warehouse Laboratorio Indicadores Salud / Gestión Proveedores Ubicaciones Reglas de Negocio Indices EHR Estructuras de Mensajes Servicios Transversales Terminología Validation Components PubSub Components EGL Facility Components Scheduler Service Terminology Service Security Service Audit Service LOPD,HIPAA,.. Configuration Services Common Services AMCLib Communication Services (Brokering, Routing, …) Servicio Publico de Salud Points of Service Reglas de Normalización Servicio Publico de Salud Sistema Farmacia Farmaceutico PACS / RIS Radiologo Sistema Laboratorio Tec. Laboratorio HIS Clínico / Proveedor Salud Estación Clínica (visor EHR) ADT Clinico Clínico / Proveedor 40 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCLib: EGL Façade EGL generated Documentation for AMCLib using a customized tool EGLDOC EGLDoc\index.html 41 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCLib Facilities: Validation via Apache Commons Validation Configuration via Apache Commons Configuration Audit via SOAP, syslog, MDB (IHE ATNA) Notification via JMS & EGL event listener Monitoring and Managemente via JMX … 42 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMCForge Support environment to assist application development teams Methodology RUP + Agile Scrumm ITIL Testing Configuration management Subversion + CQ + TRAC ticketing Clear Case + Clear Quest + UCM Continuous Integration EGLTest via eglUnit (junit customized for egl) Continuous Integration Server via Hudson, EGLBuild EGL Components dependency via Maven Project portal site Quickplace + TRAC wiki 43 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL AMC Roadmap 2008Q4 AMCInfra: First production deployments New SOA Application project (5 WS, 40 tables, 500 users) DB Modernization project (10 WS, 50 tables, 10 users) SOA Modernization - CICS Integration (5 WS, 600 users) AMCBase: First SOA Modernization project (SOA to CICS online) AMCGen: RBD AMCGen plugin 1.0 AMCGen: BIRT Reports Integration AMCForge: CI Server automation completed 2009Q2 AMC: BPM Software Factory AMCBase: BPEL, ESB, Portal, BAM 2009Q4 AMCBase: Rich User Interface 44 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Summary RBD (egl) Productive, easier than Java J2EE Your “legacy” people will be grateful Don’t worry about how will be j2ee in the future (IBM will do for you) But.. You must invest in a software factory framework (or adopt one as AMC). Invest on adapting tooling for MDA (RSM, RDA) and you will have EGL3. 45 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL COSTAISA AMC, How can we help you? There are a variety of approaches for transitioning to, or adopting, a new software product line approach , but we recommend… Use an incremental transition strategy Lifecycle strategy, product strategy, subsytem, people. Create a Pilot as a catalyst for change The pilot helps to build momentum by demonstrating to managers and engineers a practical, operational example of software product line practice and the tangible benefits it delivers. Choose an expert to help define your best approach for getting started (and become one) By leveraging our technology, pragmatic methods and proven expertise you can reduce your effort transition. Combining the right tooling (IBM) and an intense, accelerated, hands-on program that brings leading-edge software product line development methods, knowledge and experience into your organization (AMC). 46 EGLSimplify SimplifyInnovation Innovation IBM IBMSoftware SoftwareGroup Group | EGL Questions ? COSTAISA (IBM Partner) Pau Alcover 33 08017 Barcelona – SPAIN www.costaisa.com Jesús Villagrasa Assistant CIO Methodology & Quality manager jvillagrasa@costaisa.com Carlos Cercós IT Architect ccercos@costaisa.com 47