avoiding a mess with your “spaghetti” integrations

27
Avoiding a Mess with Your “Spaghetti” Integrations

Upload: lambert-fleming

Post on 23-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Avoiding a Mess with Your “Spaghetti” Integrations

Avoiding a Mess with Your “Spaghetti” Integrations

Page 2: Avoiding a Mess with Your “Spaghetti” Integrations

Avoiding a Mess with Your “Spaghetti” Integrations

Page 3: Avoiding a Mess with Your “Spaghetti” Integrations

Stephen Spruce :: Agilutions Consulting

Former netFORUM Client and Technical Lead with CFP Board

Founded Agilutions Consulting in 2005 Focused on implementing and supporting netFORUM

based solutions Extensive experience with the challenges encountered

with integrating multiple independent systems to create seamless business processes

Page 4: Avoiding a Mess with Your “Spaghetti” Integrations

Goals for the Session

Identify the “Spaghetti” Integrations on our plate

Define a Functional/Integration Map and its uses

Walk through an Education Management Case Study

using a Functional/Integration Map

Empower you to untangle your own spaghetti

Disclaimers…

Page 5: Avoiding a Mess with Your “Spaghetti” Integrations

Independent Applications

Stand alone application that provides one or more

business functions

3rd Party or Common Off The Shelf (COTS)

Home Grown Database

Custom Web Application

Imported/Exported Spreadsheet

Premise Based or Hosted (SASS)

Page 6: Avoiding a Mess with Your “Spaghetti” Integrations

“Spaghetti” Integration

Exchanging of data and sharing a common work flow Data Synchronization Types of Integration

– Web Services (xWeb)– Direct API calls– Direct SQL Queries– File Import and Export– Manual Dual Entry

Single Sign On– Same Login/Password to access different applications

Page 7: Avoiding a Mess with Your “Spaghetti” Integrations

Functional/Integration Map

A picture can explain a thousand headaches Maps business functions to applications and identifies the

integrations between them Defines the Source of Record for key data

– Primary copy of the data – All changes must be synchronized with the source of record– All other applications need to refer to the source of record to get

current state Potential Tools

– PowerPoint, Visio, Whiteboard Needs a better name – Spaghetti Map?

Page 8: Avoiding a Mess with Your “Spaghetti” Integrations

Benefits of a Functional/Integration Map

Document where core business functions are supported

Identify integration points and data dependencies

Estimate scope, level of effort, and complexity for

integrations 

Develop requirements for RFPs and conduct vendor

selections

Determine short and long-term costs of ownership and

maintenance for integrations

Page 9: Avoiding a Mess with Your “Spaghetti” Integrations

Case Study: Education Management

netFORUM as AMS– iWeb for CRM, Events, Membership, Accounting, COE– eWeb for Online Access, Registration, Shopping Cart

Educational Content offered by 3 different Applications– netFORUM

• Conference Sessions• Web Seminars

– Custom Education Database• Online Courses

– Proposed LMS• Future Online Courses

Page 10: Avoiding a Mess with Your “Spaghetti” Integrations

Case Study: Education Management

Source of Records– Customers (netFORUM)

• Customer ID, Email, Password, Contact Info

– Registrations (netFORUM)• Register, Cancel

– Transactions (netFORUM)• Invoices, Payments

– Events (Shared by all 3 Applications)• Start and End Dates• Attendance and Progress• Score and Result

Page 11: Avoiding a Mess with Your “Spaghetti” Integrations

Steps to Create a Functional/Integration Map

1. List Independent Applications (The Boxes)– Web Applications– Databases– 3rd Party Software

2. Plot Business Functions to Applications (The Circles)– Modules– User Interfaces– Major Data Objects

3. Connect Integration Points (The Lines)– Use Cases– Customer Transactions– Staff SOPs

Page 12: Avoiding a Mess with Your “Spaghetti” Integrations

Step 1: List Independent Applications

netFORUM Custom Education DB

Page 13: Avoiding a Mess with Your “Spaghetti” Integrations

Steps to Create a Functional/Integration Map

1. List Independent Applications (The Boxes)– Web Applications– Databases– 3rd Party Software

2. Plot Business Functions to Applications (The Circles)– Modules– User Interfaces– Major Data Objects

3. Connect Integration Points (The Lines)– Use Cases– Customer Transactions– Staff SOPs

Page 14: Avoiding a Mess with Your “Spaghetti” Integrations

Step 2: Plot Business Functions

Registration

Transaction

Customer

Online CourseDelivery

Event

netFORUM

Web SeminarDelivery

ConferenceDelivery

Custom Education DBCustomer

Registration

Event

Page 15: Avoiding a Mess with Your “Spaghetti” Integrations

Steps to Create a Functional/Integration Map

1. List Independent Applications (The Boxes)– Web Applications– Databases– 3rd Party Software

2. Plot Business Functions to Applications (The Circles)– Modules– User Interfaces– Major Data Objects

3. Connect Integration Points (The Lines)– Use Cases and Business Process Workflows– Staff SOPs– Arrows in direction of Application that initiates the call

Page 16: Avoiding a Mess with Your “Spaghetti” Integrations

Step 3: Connect Integration Points

Registration

Transaction

Customer

Online CourseDelivery

Event

netFORUM

Web SeminarDelivery

ConferenceDelivery

Custom Education DBCustomer

Registration1. Setup

2. Setup

Event

1. Login

2. Registration List

3. Pay

5. Register

4. Add/Update

3. Login

4. Access

5. Launch

3. Launch3. Launch

Page 17: Avoiding a Mess with Your “Spaghetti” Integrations

Identify Integration Points

Look for Common Terminology– Customer, Registration, Registrant, Event, Invoice

Follow Foreign Keys– reg_cst_key, reg_evt_key

Open Remote Connections– System Options, Configuration Files (web.config), Database

Connections, Triggers– Dedicated Connections

Arm Chair Integration– User Manually logs in and enters information to complete workflow

Page 18: Avoiding a Mess with Your “Spaghetti” Integrations

Synchronization Takes Practice

Identity Fields– Customer Key, Account Number, Primary Email– What happens when one of them changes?

Synchronous vs. Asynchronous– How important is it to have the data the same? Real Time?

Document the Data Mapping– Field from Application A maps to Field from Application B

Page 19: Avoiding a Mess with Your “Spaghetti” Integrations

Use Case: Setup Education Content

Registration

Transaction

Customer

Online CourseDelivery

Event

netFORUM

Web SeminarDelivery

ConferenceDelivery

Custom Education DBCustomer

Registration1. Setup

2. Setup

Event 3. Configure

Page 20: Avoiding a Mess with Your “Spaghetti” Integrations

Use Case: Register for Education Content

Registration

Transaction

Customer

Online CourseDelivery

Event

netFORUM

Web SeminarDelivery

ConferenceDelivery

Custom Education DBCustomer

Registration

Event

1. Login

2. Register

3. Pay

5. Register

4. Add/Update

Page 21: Avoiding a Mess with Your “Spaghetti” Integrations

Use Case: Access Education Content

Registration

Transaction

Customer

Online CourseDelivery

Event

netFORUM

Web SeminarDelivery

ConferenceDelivery

Custom Education DBCustomer

Registration

Event

1. Login

2. Registration List

3. Login

4. Access

5. Launch

3. Launch3. Launch

Page 22: Avoiding a Mess with Your “Spaghetti” Integrations

Case Study: New Requirements

Purchase an LMS to develop future Educational Content and formats

Continue to support existing Educational Content and formats

Produce Universal Transcript across all Applications and forms of Educational Content

Page 23: Avoiding a Mess with Your “Spaghetti” Integrations

Use Case: Adding Proposed LMS

Registration

Transaction

Customer

Online CourseDelivery

Event

netFORUM

Web SeminarDelivery

ConferenceDelivery

Custom Education DBCustomer

Registration

Online CourseDelivery

Proposed LMSCustomer

Registration

Event

Event

1. Login

2. Register

3. Pay

5. Register

4. Add/Update

3. Login

4. Access

5. Launch

Page 24: Avoiding a Mess with Your “Spaghetti” Integrations

Use Case: Full Plate of Spaghetti

Registration

Transaction

Customer

Online CourseDelivery

Event

netFORUM

Web SeminarDelivery

ConferenceDelivery

Custom Education DBCustomer

Registration

Online CourseDelivery

Proposed LMSCustomer

Registration

1. Setup

2. Setup

2. Setup

Event

Event

1. Login

2. Registration List

3. Pay

5. Register

5. Register

4. Add/Update

4. Add/Update

3. Login

4. Access

5. Launch

3. Login

4. Access

5. Launch

3. Launch3. Launch

Page 25: Avoiding a Mess with Your “Spaghetti” Integrations

Use Case: Universal Transcript (Option 1)

Registration

Transaction

Customer

Online CourseDelivery

Event

netFORUM

Web SeminarDelivery

ConferenceDelivery

Custom Education DBCustomer

Registration

Online CourseDelivery

Proposed LMSCustomer

Registration

Event

Event

1. Login

2. Registration List

4. Access

3. Login

3. Login

4. Access

5. GetStatus

3. GetStatus3. GetStatus

UniversalTranscript

4. GetStatus

Page 26: Avoiding a Mess with Your “Spaghetti” Integrations

Use Case: Universal Transcript (Option 2)

Registration

Transaction

Customer

Online CourseDelivery

Event

netFORUM

Web SeminarDelivery

ConferenceDelivery

Custom Education DBCustomer

Registration

Online CourseDelivery

Proposed LMSCustomer

Registration

Event

Event

1. Login

2. Registration List

3. Access

3. Login

4. Access

5. GetStatus

3. GetStatus

3. GetStatus

UniversalTranscript

5. GetStatus

2. Login

Page 27: Avoiding a Mess with Your “Spaghetti” Integrations

Key Take Aways for Function/Integration Maps

Simple to make – Powerful to use Can help document and understand the complexity of your

environment Are only good as they are maintained Can be as high-level or detailed as you need

Questions?