Patterns & Techniques for Separating Business Logic in New SOA System Development. Iyad Jabri Intelliun Corporation CEO



Similar documents
Service Oriented Architecture (SOA) An Introduction

Service Oriented Architecture 1 COMPILED BY BJ

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

Definition of SOA. Capgemini University Technology Services School Capgemini - All rights reserved November 2006 SOA for Software Architects/ 2

Practical Application of Service Oriented Architecture

Government's Adoption of SOA and SOA Examples

Technical Track Session Service-Oriented Architecture

Workflow/Business Process Management

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Integrated Development of Distributed Real-Time Applications with Asynchronous Communication

Oracle Business Activity Monitoring 11g New Features

Business-Driven Software Engineering Lecture 3 Foundations of Processes

INTEGRATING ESB / BPM / SOA / AJAX TECHNOLOGIES

Guiding Principles for Modeling and Designing Reusable Services

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

The Service Revolution software engineering without programming languages

Web Application Development for the SOA Age Thinking in XML

Business Process Management Enabled by SOA

Service Oriented Architecture and Its Advantages

Chapter 5. Regression Testing of Web-Components

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Tomáš Müller IT Architekt 21/04/2010 ČVUT FEL: SOA & Enterprise Service Bus IBM Corporation

Service-Oriented Architectures

SOA Blueprints Concepts

PIE. Internal Structure

Presentation Outline. Key Business Imperatives Service Oriented Architecture Defined Oracle SOA Platform SOA Maturity/Adoption Model Demo Q&A

SERVICE ORIENTED ARCHITECTURE

ESB Features Comparison

Service Modeling Process. initial stage that we determine the potential scope of our SOA. Figure 10.1: Common phases of an SOA delivery lifecycle.

Business Process Management Tampereen Teknillinen Yliopisto

Enterprise Architecture For Next Generation Telecommunication Service Providers CONTACT INFORMATION:

SOA REFERENCE ARCHITECTURE: SERVICE TIER

Client-server 3-tier N-tier

A Case Based Tool for Monitoring of Web Services Behaviors

Web Services - Consultant s View. From IT Stategy to IT Architecture. Agenda. Introduction

Oracle SOA Reference Architecture

EAI-Low Level Design Document

1. Introduction 1.1 Methodology

Federal Enterprise Architecture and Service-Oriented Architecture

Business Intelligence and Service Oriented Architectures. An Oracle White Paper May 2007

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

SOA Best Practices (from monolithic to service-oriented)

Information systems modelling UML and service description languages

Open ESB. Sang Shin Java Technology Evangelist Sun Microsystems, Inc. Raffaele Spazzoli Imola Informatica 1

Service-Oriented Architecture and Software Engineering

RS MDM. Integration Guide. Riversand

Definition: Software Architecture

The Challenges in Real Life ESB Deployments

Secure Identity Propagation Using WS- Trust, SAML2, and WS-Security 12 Apr 2011 IBM Impact

WHITE PAPER DATA GOVERNANCE ENTERPRISE MODEL MANAGEMENT

Business Process Management In An Application Development Environment

Reusing Existing * Java EE Applications from Oracle SOA Suite

1 What Are Web Services?

Enterprise Reference Architecture

1 What Are Web Services?

Introduction to Service-Oriented Architecture for Business Analysts

SOA and BPO SOA orchestration with flow. Jason Huggins Subject Matter Expert - Uniface

SOACertifiedProfessional.Braindumps.S90-03A.v by.JANET.100q. Exam Code: S90-03A. Exam Name: SOA Design & Architecture

So You Want an SOA: Best Practices for Migrating to SOA in the Enterprise. Eric Newcomer, CTO

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

Java Application Developer Certificate Program Competencies

Di 6.1a. Warum naive SOA scheitert Ein Erfahrungsbericht. Adam Bien. January 26-30, 2009, Munich, Germany ICM - International Congress Centre Munich

How To Understand A Services-Oriented Architecture

Comparison of Model-Driven Architecture and Software Factories in the Context of Model-Driven Development

Service-oriented Development of Federated ERP Systems

Raghu R Kodali Consulting Product Manager, & Evangelist Oracle Fusion Middleware Oracle USA Author Beginning EJB 3 Application Development (Apress)

Spring 2011 Conference Sandanski, May 13th 15th 2011 Oracle SOA Suite 11g Rapid service integration and process automation with a no-coding approach

Workflow and Forms Services for People-Driven Process Management

CSCI 5828 Spring 2010 Foundations of Software Engineering. - Arpit Sud

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

BEA AquaLogic Integrator Agile integration for the Enterprise Build, Connect, Re-use

Web and Enterprise Applications Developer Track

Automating Rich Internet Application Development for Enterprise Web 2.0 and SOA

Java 2 Platform, Enterprise Edition (J2EE) Bruno Souza Java Technologist, Sun Microsystems, Inc.

Service-Oriented Architecture (SOA) vs. Component Based Architecture. Helmut Petritsch

BPEL + Business Rules

An Oracle White Paper October Maximize the Benefits of Oracle SOA Suite 11g with Oracle Service Bus

for Java Applications solution WHITEPAPER

Approach to Service Management

CERTIFIED MULESOFT DEVELOPER EXAM. Preparation Guide

CA Repository for Distributed. Systems r2.3. Benefits. Overview. The CA Advantage

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

JOURNAL OF OBJECT TECHNOLOGY

A Software Development Platform for SOA

Best Practices for Implementing Oracle Data Integrator (ODI) July 21, 2011

Business Rule Management. Effective IT Modernization

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Enterprise IT Architectures SOA Part 2

The four (five) Sensors

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

The Oracle Fusion Development Platform

Enterprise Integration Architectures for the Financial Services and Insurance Industries

A standards-based approach to application integration

Transcription:

Patterns & Techniques for Separating Business Logic in New SOA System Development Iyad Jabri Intelliun Corporation CEO Building a Service Oriented Architecture with BPM & MDA October 16-19, 2006 Burlingame, CA

Agenda Object-Oriented Development SOA Development SOA with Model-Driven Development SOA Patterns & Techniques Summary Q&A

Object-Oriented Development Non-functional Requirements Functional Requirements Analysis Abstract Design Architecture Implementation Detailed Design

Object-Oriented Development Common Scenario Non-functional Requirements Functional Requirements Analysis Textual Document Flowcharts Glossary of Terms Actors Use Cases Interactions Analysis Class Diagram J2EE EJB Servlets/JSP SQL JUnit Architecture Abstract Design Class Diagrams Activity Diagrams Package Diagrams Implementation Detailed Design Java Interfaces SessionBeans & EntityBeans Servlets and JSP s SQL Schema JUnit Tests

Object-Oriented Development Example Problem Statement: A practice management system is needed to schedule and track patient visits to a doctor s office. The patient should be able to schedule an appointment, check-in at the doctor s office then check-out and pay the visit fee. A nurse needs to capture the patient vitals and record his/her chief complaint. The doctor needs to view the patient s vitals and medical history, examine the patient and record the diagnosis and prescribed treatment.

Object-Oriented Development Use Case Analysis Business Use-Case: Manage Patient Visits A patient calls the doctor office and asks for an appointment The office manager reviews the doctor s calendar and schedules an appointment for the patient The patient visits the doctor s office, signs in with the office manager, then fills in a patient intake form The office manager enters patient intake form into the system and queues the patient for the nurse The nurse picks the next patient in the queue and captures his/her vitals and records the chief complaint. The doctor visits with the patient, reviews the patient record then establishes the diagnosis and treatment. The patient checks out with the office manager and pays the visit fee

Object-Oriented Development Use Case Model View Doctor s Calendar Schedule Appointment Record Patient Vitals and Chief Complaint Nurse Check-in Patient View Patient Record Office Manager Manage Patients (CRUD) Generate Visit Invoice Record Diagnosis & Treatment Doctor Apply Patient Payment

Object-Oriented Development Analysis Class Diagram -owner Doctor Appointment * 1 Calendar -calendar 1 -calendar -appointments 1 * -doctor Ledger 1 -ledger 1 -ledger * -transactions -patient 0,1 Patient 1 -owner Invoice -patient 1 -visit 0,1 * -visits Visit 1 -visit * -details * -visits Transaction VisitDetail Payment

Object-Oriented Development Abstract-Design Class Diagram

Object-Oriented Development Abstract-Design Class Diagram Create a Visit Add Visit to Patient s visits Invoke Visit s queue() Update status Create an Invoice Derive Invoice details based on Visit Add Invoice to Ledger Create a Payment Add Payment to Ledger

Object-Oriented Development Requirement Change 1 Calendar -calendar Different doctors setup their practices differently: -calendar +schedule() 1 Collect payment on patient check-in -owner Doctor -doctor Create a Visit Add Visit to Patient s visits Invoke Visit s queue() Appointment +checkin() * -appointments «singleton» Practice listqueuedvisits() 1 -doctors * * Ledger 1 +add() -ledger 1 -ledger * -transactions -patient 0,1 * -patients Patient -patient 1 1 -owner Invoice -visit 0,1 * Visit +queue() +update() +checkout() 1 * -visits -visit -details * -visits Update status Create an Invoice Derive Invoice details based on Visit Add Invoice to Ledger Create a Payment Add Payment to Ledger Transaction VisitDetail Payment checkin() and checkout() has Process Logic

SOA Development Principals Agility Business Driven Approach Service Orientation Service Encapsulation, Autonomy and Reuse Service Composition Service Configurability Service Loose Coupling

The Architecture in SOA Service Definitions Business Processes (Composition and Orchestration) Complexity of Change Administrator System Integrator Developer Components (Service Implementations) Rules (Simple Rules) Rules Business Processes Components

SOA Development Non-functional Requirements Functional Requirements Analysis Architecture Service Definitions (including metadata and operations) Business Processes Rules Component Specs Buy or Implement Components Abstract Design

SOA Development Abstract Design

SOA Development Abstract Design Service Composition & Orchestration Service Implementation

SOA Development Implementation (Today) Service Implementation Traditional server-side development Service Composition & Orchestration Business process and workflow modeling XML manipulations and transformations User interface development (e.g. web development) Human interaction and usage flow Graphics design and GUI components Usability Logic (bridging the gab between coarse grain Web services and usability needs) Mixed Development/Mixed Skills

SOA Development Implementation with MDD? Service Implementation Traditional server-side development Service Composition & Orchestration Business process and workflow modeling XML manipulations and transformations User interface development (e.g. web development) Human interaction and usage flow Graphics design and GUI components Usability Logic (bridging the gab between usability needs and coarse grain Web services) Mixed Development/Mixed Skills

SOA Development Implementation with MDD?

SOA Development Implementation with MDD? public void addcpts( String[] codes ) { for( String code : codes ) { VisitDetail detail = new( VisitDetail ); detail.cptcode = code; this.details.add( detail ); } } * +notes 1 -visit Visit +addcpts() +addattachment() +addnote() #listdiagnosis() 1 -visit -visit 1 * +attachments public void addnote( String subject, Text details ) { Note note = new( Note ); note.subject = subject; note.details = details; note.author = User.current().id; note.timestamp = Timestamp.now(); this.notes.add( note ); } Note * +details Attachment +subject +details +author +timestamp +delete() VisitDetail +cptcode +diagnosis +delete() +subject +content +author +timestamp +delete() public String listdiagnosis() { return details->diagnosis.distinct().sorted(); }

SOA Development SOA and Model-Driven Development (MDD) MDD MDD

SOA Development SOA and Model-Driven Development (MDD) Interface Layer Resource Layer Application Logic Layer Services Bus Service Implementation Service Composition & Orchestration Interface Layer Resource Layer Application Logic Layer

Separating Logic in SOA/BPM/MDD The Problem Complexity of Change Administrator System Integrator Developer Rules Business Processes Components Push the Logic

Separating Logic in SOA/BPM/MDD Patterns & Techniques Business Processes Logic Flow Business Process Minimize business specific flows in the Service implementations Loose Service Coupling Minimize invoking one service from the implementation of another Usability Features Minimize service operations that are geared toward fine grain end-user usability features

Separating Logic in SOA/BPM/MDD Patterns & Techniques Business Processes Workflow User Tasks Management Extract all task assignment and task list management requirements from Service implementations Notification Emails, paging, etc. should be kept in the workflow Escalation Giving task control to another resource when a certain condition occurs (e.g. after a set time) belong in the workflow Call for Action (e.g. Approvals) Call to review, approve, decline, etc. should be separated from the service implementation and managed in the workflow

Separating Logic in SOA/BPM/MDD Patterns & Techniques Rules Parameter Rules Limit Values For example if a credit score must be greater than 600, or a student GPA higher than 3.0 Breakpoint Values For example different number of signatures (approvals) required for loans between $0-$4,999; $5,000-$9,999; $10,000-$99,999; and $100,000 and above Units and Scales Measurements, currency, etc. Algorithms and strategies For example encryption, search, domain-specific algorithms, etc.

Separating Logic in SOA/BPM/MDD Patterns & Techniques Rules Complex Rules Decision Rules using a Rule Engine Complex rules can be represented as services

Summary SOA brings new ingredients to component architecture that better its chances of success MDD offers a unified approach to SOA It s important to extract and separate rules and processes from service implementations to maximize reuse and agility It s important to maintain separation between interface and application logic

Questions & Answers Q&A