470 likes | 488 Views
Learn about Costaisa's long journey to modernization and their use of the AMC framework and EGL to achieve it. Explore the building blocks and the role of EGL in detail through a demo, and discover their roadmap for the future.
E N D
Enterprise Modernization“The EGL puzzle at Costaisa”Jesús Villagrasa – Assistant CIOCarlos Cercos – Main J2EE Architectwww.costaisa.com
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
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
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.
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%
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)
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
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
Legacy IT House vs Web2.0 • UML, XML,Relational DB, EGL, SOA, J2EE, Portal, HTTP, HTML, Javascript, CSS, Web2.0,… • Legacy IT House Where is the ball? Am I reinventing the wheel? Who is who? Every project is similar Everyone knows its place
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
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 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. 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. 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.
AMCLib AMCBase Related to components and utility libraries with specific function: reporting, xml processing, etc. Related to the access to the framework: documentation, guidelines, change management, components, etc. Related to resources for visual design: stylesheets, layouts, etc. AMC: COSTAISA’s Framework Architecture AMCForge AMCGen AMCDev AMCGui AMCOp Presentation Business Persistence Integration Related to AMC kernel: architectural framework based in EGL AMCInfra Related to the control and monitoring of production AMC’s based application 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. Related to the deployment of AMC applications
Software Factory Unified Methodology Unified Architecture Unified Development Process Unified Development Environment Unified Infrastructure Facilities Unified Execution Environment Unified SOA Governance Unified Operations AMC AMCForge & AMCGui AMCBase AMCGen AMCDev AMCLib AMCInfra AMCInfra AMCOp Software Factory, What makes the difference
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)
1 Uml Profile 2 MDA Plugin 3 SF Process AMCGen: Development process Tester Data Arch. Developer Analyst RSM WBM RDA RBD RFT RPT 1 Prod. Line Def. 2 Team 1 Product A 2 Product B 3 Product B
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
MDD UML-ER MDD ER-DDL • DB Codification Translation UML Business Entities Analysis ER Design model DB Physical model • Terms Glossary + Metainformation • Custom types dictionary DB DB Codification Rules MDD DDL-EGL • JET Templates EGL code • DataItems • Records • Libraries • Service • WebApp Admin Web Service SOAP/HTTP JDBC/SQL
MDD UML-ER MDD ER-DDL • DB Codification Translation UML Business Entities Analysis ER Design model DB Physical model • Terms Glossary + Metainformation • Custom types dictionary DB DB Codification Rules MDD DDL-EGL • JET Templates EGL code • DataItems • Records • Libraries • Service • WebApp Admin Web Service SOAP/HTTP JDBC/SQL
MDD UML-ER MDD ER-DDL • DB Codification Translation UML Business Entities Analysis ER Design model DB Physical model • Terms Glossary + Metainformation • Custom types dictionary DB DB Codification Rules MDD DDL-EGL • JET Templates EGL code • DataItems • Records • Libraries • Service • WebApp Admin Web Service SOAP/HTTP JDBC/SQL
MDD UML-ER MDD ER-DDL • DB Codification Translation UML Business Entities Analysis ER Design model DB Physical model • Terms Glossary + Metainformation • Custom types dictionary DB DB Codification Rules MDD DDL-EGL • JET Templates EGL code • DataItems • Records • Libraries • Service • WebApp Admin Web Service SOAP/HTTP JDBC/SQL
MDD UML-ER MDD ER-DDL • DB Codification Translation UML Business Entities Analysis ER Design model DB Physical model • Terms Glossary + Metainformation • Custom types dictionary DB DB Codification Rules MDD DDL-EGL • JET Templates EGL code • DataItems • Records • Libraries • Service • WebApp Admin Web Service SOAP/HTTP JDBC/SQL
MDD UML-ER MDD ER-DDL • DB Codification Translation UML Business Entities Analysis ER Design model DB Physical model • Terms Glossary + Metainformation • Custom types dictionary DB DB Codification Rules MDD DDL-EGL • JET Templates EGL code • DataItems • Records • Libraries • Service • WebApp Admin Web Service SOAP/HTTP JDBC/SQL
MDD UML-ER MDD ER-DDL • DB Codification Translation UML Business Entities Analysis ER Design model DB Physical model • Terms Glossary + Metainformation • Custom types dictionary DB DB Codification Rules MDD DDL-EGL • JET Templates EGL code • DataItems • Records • Libraries • Service • WebApp Admin Web Service SOAP/HTTP JDBC/SQL
MDD UML-ER MDD ER-DDL • DB Codification Translation UML Business Entities Analysis ER Design model DB Physical model • Terms Glossary + Metainformation • Custom types dictionary DB DB Codification Rules MDD DDL-EGL • JET Templates EGL code • DataItems • Records • Libraries • Service • WebApp Admin Web Service SOAP/HTTP JDBC/SQL
MDD UML-ER MDD ER-DDL • DB Codification Translation UML Business Entities Analysis ER Design model DB Physical model • Terms Glossary + Metainformation • Custom types dictionary DB DB Codification Rules MDD DDL-EGL • JET Templates EGL code • DataItems • Records • Libraries • Service • WebApp Admin Web Service SOAP/HTTP JDBC/SQL
MDD UML-ER MDD ER-DDL • DB Codification Translation UML Business Entities Analysis ER Design model DB Physical model • Terms Glossary + Metainformation • Custom types dictionary DB DB Codification Rules MDD DDL-EGL • JET Templates EGL code • DataItems • Records • Libraries • Service • WebApp Admin Web Service SOAP/HTTP JDBC/SQL
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
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
AMCBase • Tiers • Separation of concerns
Technical Layer Business Layer AMCBase
AMC Base • BC Business, Technical layer
AMC Base • BC Business, Functional layer
AMC Base • BC Persistence, Functional layer
AMC Base • BC Persistence, Technical layer, Composite Record
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-22-13.05.51.000' ) ) AND ACODT006.CA8CTA = ACODT0080.CA8CTA AND ACODT006.KA8EJE = ACODT0080.KA8EJE AND ACODT006.KA8CIA = ACODT0080.KA8CIA ) ) ORDER BY ACODT006.NA8CTA DESC
AMCLib • COSTAISA’s technical facilities provided via EGL Library
Servicios Transversales Common Services Communication Services (Brokering, Routing, …) AMCLib: Generic Healthcare IT architecture Information infrastructure Services Datos y Servicios de Sistemas Auxiliares Servicios de História Clínica DataWarehouse Servicio de Registros Epidemiología Informes Financieros / Sector Público Información Clínica Básica Medicación Imagen Médica Laboratorio Indicadores Salud / Gestión Clientes Proveedores Reglas de Negocio Indices EHR Estructuras de Mensajes Reglas de Normalización Ubicaciones Terminología Facility Components Facility Services CHIAL Servicio Publico de Salud Sistema Farmacia PACS / RIS Sistema Laboratorio HIS ADT Estación Clínica (visor EHR) Servicio Publico de Salud Farmaceutico Radiologo Tec. Laboratorio Clínico / Proveedor Salud Clinico Clínico / Proveedor Points of Service
Servicios Transversales Common Services Communication Services (Brokering, Routing, …) AMCLib: Common Reusable Components & Services Information Infrastructure Services Datos y Servicios de Sistemas Auxiliares Servicios de História Clínica DataWarehouse Servicio de Registros Epidemiología Informes Financieros / Sector Público Información Clínica Básica Medicación Imagen Médica Laboratorio Indicadores Salud / Gestión Clientes Proveedores Reglas de Negocio Indices EHR Estructuras de Mensajes Reglas de Normalización Ubicaciones Terminología Validation Components PubSub Components EGL Facility Components Scheduler Service Terminology Service Security Service Audit Service LOPD,HIPAA,.. Configuration Services AMCLib Servicio Publico de Salud Sistema Farmacia PACS / RIS Sistema Laboratorio HIS ADT Estación Clínica (visor EHR) Servicio Publico de Salud Farmaceutico Radiologo Tec. Laboratorio Clínico / Proveedor Salud Clinico Clínico / Proveedor Points of Service
AMCLib: EGL Façade • EGL generated Documentation for AMCLib using a customized tool EGLDOC • EGLDoc\index.html
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 • …
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
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
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.
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).
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