avoiding a mess with your “spaghetti” integrations
TRANSCRIPT
Avoiding a Mess with Your “Spaghetti” Integrations
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
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…
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)
“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
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?
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
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
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
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
Step 1: List Independent Applications
netFORUM Custom Education DB
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
Step 2: Plot Business Functions
Registration
Transaction
Customer
Online CourseDelivery
Event
netFORUM
Web SeminarDelivery
ConferenceDelivery
Custom Education DBCustomer
Registration
Event
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
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
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
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
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
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
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
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
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
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
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
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
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?