Architectural Alternatives in Component Based Development Barry Zukose

Architectural Alternatives in Component Based Development Barry Zukose Everware, Inc. BZukose@everware. com www. everware. com Session: Other 501 April 1, 2003

Everware Profile • Small Business – Full Lifecycle Applications Development • Diversified Customer Base • Recognized Leader in Component-Based Development – – Inventory of Component Products Research & Development to Advance Business-Level EJBs Founding Member of Component Advisory Board (1996) Participants in the NASCIO, Software Component Exchange (NSCE) Development Program • Focus on Business Solutions – Methods and Techniques for Component Architecture

Agenda • General Software Architectural Principles • Enterprise Solutions – From an Architectural Perspective • Alternative Architectures – Component Architecture – Service Based Approaches – Layers of Abstractions and Architectural Complexities • Open Discussion (Time Permitting)

Types of Architectures Component (Candidates) Application (Project Scope) Enterprise (Strategic Roadmap) Technical (Underlying Hardware and Software Infrastructure)

Component Architecture Definition A description of components and the dependencies between them Provides an overview of what has been built, and a plan of what needs to be built

Component Architecture RI Component Definition Guidelines Repository of Pre-existing Components Component XYZ Architecture Documentation and Communication Procedures Referential Integrity Guidelines UML-Based Development: Interface Specifications, Use-Cases, Class Definitions, Sequence Diagrams…

Enterprise Application Requirements • • • Reliability Security Scalability Transaction Support for Persistence Open Architectures and Standards

Enterprise Applications Today Purchase Order System • Redundant Data • Redundant Processes Customer • Redundant Business Rules Purchase Order • Lack of Openness Customer • Inflexible to Change • Vendor-Dependent Reporting Architectures Item Address Invoice System Invoice ID Generation

Component-Based Enterprise Applications • Normalized Data Stores • Reusable Processes • Non-Redundant Business Rules • Well-Defined Interfaces • Agile Applications • Open Architecture Purchase Order System Invoice System Purchase Order Invoice Customer Reporting Item ID Generation Address

Component Architecture Mind Shift Application A Application B Application C Application A Applications as governor of logic in a bounded environment Application B Application C Applications as assemblies of logic, operating in an open environment in support of a business process

Interface Focus Component A Component B Are written to work with “A set of services provided and required by any component supporting that set” Interface C Are implementations of Component C 1 Component C 2 Component C 3 Source: “Migrating to e-business using CBD”, Paul Allen, Director - Component Strategies, Sterling Software Component C 4

Implementation Independence of Interfaces B Component Specifications A Depends on C Are implementations of Is an implementation of Are implementations of Written and delivered independently Source: “Migrating to e-business using CBD”, Paul Allen, Director - Component Strategies, Sterling Software

Service-Based Approach New Millennium • • Business Oriented Useful Granularity Easily Rewired Transparent • Where, How, Who • Outsourcing • Build and Execution COMPONENTS PROVIDE ENABLING TECHNOLOGY 3 rd party service providers Extranet Internet consumers • Virtual organizations • e-commerce direct to consumers • e-business Source: “Migrating to e-business using CBD”, Paul Allen, Director - Component Strategies, Sterling Software

Advantages of Service-Based Architectures ØMethods can take responsibility for transactions involving multiple domain objects. ØServices permit schema hiding. ØMany applications can share a suite of services, while also using services that are unique to each application. ØServices provide a very concrete unit of work to test during QA.

Web Service’s Three Big Players • Sun Microsystems – Open Net Environment (ONE) • Microsoft -. Net • IBM - ? • Oracle - ? A web service is a larger grained interface that offers a well-defined service, accessible using the SOAP protocol.

Web Services Microsoft Sun IBM Oracle Web Services Smart Web Services Dynamic Web Services SOAP Y Y WSDL Y Y UDDI Y Y Framework . Net Sun ONE + J 2 EE Service Description Availability 2002 ? ? Naming

Architecture Layering Component Category Application /UI Assembly Application UI Assembly UIC 1 User Interface Control UIC 2 PC 3 PC 2 PC 1 BD 1 BI 1 BD 2 BI 2 TI 1 Business Domain BD 3 BI 4 BI 3 TI 2 Process TI 3 Source: “Migrating to e-business using CBD”, Paul Allen, Director - Component Strategies, Sterling Software Business Infrastructure Technical Infrastructure

Why A Layered Architecture? • Encapsulation Each layer can hide details about its operations from other layers. Thus the layer can to evolve as needed behind a fixed API without affecting its clients. • Separation of concerns Complexity in the system is easier to manage because each layer is focused on a cohesive set of responsibilities. • Reuse Adding additional functionality is faster, because each layer can provide services to objects in the layer above it. Furthermore, classes in a given layer can inherit reusable behavior from a superclass, thus abstracting the responsibilities of classes of that layer.

A 4 Layered Architecture Works Well in Advantage Gen Environments Presentation Business Component Business Process / Workflow Transaction Process Data Business Component

A 5 Layered Architecture Works Well in J 2 EE Environments Client Server Presentation Manages Screen Real Estate Application Services Handles Exceptions Domain Specific Services Domain Persistence Business Behavior Object-to-Relational Mapping Semantic Validation Invokes Services Manages User Interaction Single Behavior Services Basic CRUD Maintains Conversational State HTML Management Syntax Validation Transaction Support External Services Mediation Between Presentation and Service Simple Data Types Transaction Control Application Objects Domain Objects Or Or Entity Beans Object State

Layers of Abstraction Web App Web Server EJB Browser Wireless App CRM Wireless Application Protocol Order Wireless Mobile/Voice Web Services Customer Mobil e Voice App Web Service App Mobile/Voice Server CO M ERP Item Web Server TP M SAP Invoice Scan App Scan Other Servers ? App Other EAI OMS Inventory

Application Complexity Multi-System As a system scales, increasingly complex design strategies are necessary Increasing Complexity Multi-Platform Connection Pooling Data Cashing EJBs Legacy Interfacing Database Access 10 100 1, 000 Number of Concurrent Users 10, 000 100, 000

Servicing a Single Web Request Client Web Server Client Java servlets or JSPs assemble dynamic content Servlets or components pull data from database Database access is mapped Object methods produce results for HTML stream to client RDB RDB

References • • Interact, “The Journal of Web Service & Component Based Business”, CBDi Forum, January, February, and May 2001 Editions, www. cbdiforum. com i. Commerce Design Issues and Solutions, “How to Build a Really Big Distributed J 2 EE System Using Tools You Have Around the Office”, Gemstone Systems, Inc. , February 2000, www. gemstone. com Jon Hopkins, Chairman & CTO, “Hierarchies of Components”, Blueprint Technologies, September 2000, www. blueprint. com Ken Hines and Ross Ortega, “The Embedded Systems Design Challenge”, Consystant Design Technologies, Inc. , March 2002, www. consystant. com White Paper, “Adapting Your Enterprise To A World Beyond the Browser”, Cysive, Inc. , Second Quarter 2002, www. cysive. com Dr Yuan Sun, Principal Consultant, “Making Enterprise Applications WEB Ready”, Compuware Corp. , April 2000, www. compuware. com Paul Allen, Director – Component Strategies, “Migrating to e-business using CBD”, Sterling Software, April 2000

- Slides: 25