Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

66
HOW TO USE FME SERVER AS AN Enterprise Service Bus

Transcript of Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Page 1: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

HOW TO USE FME SERVER AS AN

Enterprise Service Bus

Page 2: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

WHO WE ARE

Dean HintzSenior Analyst,

Strategic ExpertsSafe Software

Neil HellasEnterprise Solutions Architect

Spatial DNA

Tens of thousands of data pros use FME, the data integration platform with the best support for location data.

Don MurrayPresident,

Safe Software

Page 3: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

AGENDA● FME

● Enterprise integration challenges & ESB

● FME Server as ESB

● Spatial DNA examples

● 311 ESB Demo

● Q&A

Page 4: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Technology is always changing

Innovative solutions are possible

New systems are constantly being added

System integration is hard

CHALLENGE

Page 5: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Enables data translation

Integrate virtually any system

Powerful data transformation

No coding required

FME

Page 6: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Connect to Virtually Any Format or Service with FME

Page 7: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

400+ SUPPORTED SYSTEMS AND DATA TYPES

Database servers: Oracle, SQL Server, PostGreSQL, MySQL,...

Web systems: MongoDB, CouchDB, Dropbox, Box.com, Amazon S3, OData, Google Sheets, Socrata, Salesforce, Sharepoint, Azure, OGC ...

Business Intelligence: Tableau, Excel, ElasticSearch, Qlik

Extensibility: integration with traditional and emerging systems

● JDBC - often traditional● HTTP - often cloud

Tabular, XML, JSON, CSV, HTML ...

Page 8: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

FME TERMINOLOGY

Transformers: Used to connect to systems, extract data, transform and remodel data and then load data. Over 400 available!

Transformers use and produce Features.

Features: Records or rows in spreadsheets and databases or objects in other systems.

Features have Attributes.

Attributes: Fields or columns attached to records, rows and objects.

Page 9: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Three Ways to use FME

Page 10: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

FME Server

Automate Deliver Download

** Events / messages: Our main focus here

Page 11: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB
Page 12: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

FME Server Notification Service

●●●

Page 13: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

AUTOMATION, EVENTS AND REAL-TIME

Scheduling

REST API

Messaging:

○ JMS○ SQS ○ WebSockets○ WebHooks○ Web Services

Page 14: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

API Integration Challenge

Page 15: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Enterprise Integration Challenge

● Multiple, separate applications for different business systems: HR, CRM, BI, ERP, Accounting

● Data silos, duplicate records

● Integration is manual, ad-hoc, point to point

● The more systems that are added, the more difficult it is to manage

Page 16: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Enterprise Integration Challenge: 311 Reporting

Background: Citizens submit reports on the website about problems they notice in the community: missed garbage, potholes, etc. Those reports need to go to the service delivery team who manages related services.

Challenge: The more systems that need to be connected to the 311 database, the more complex the interconnections between databases become.

Specifics: Use topics within the notification service on FME Server as an ESB. All requests between client systems and the 311 database pass through the ESB topics on Server using a common messaging structure. Each system only needs to manage connections to this bus, not other systems.

ESB Demo

Page 17: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Enterprise Integration Challenge

311 DB

EngineeringDB

SafetyDB

Initial architecture

Page 18: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 DB

EngineeringDB

SafetyDB

TransportDB

Enterprise Integration Challenge

Architecture grows

Page 19: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 DB

EngineeringDB

SafetyDB

TransportDB

Contact DB

Enterprise Integration Challenge

And grows ...

Page 20: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 DB

EngineeringDB

SafetyDB

Contact DB

Enterprise Integration Challenge: ESB Approach

More growth = easy

311

ESB

Page 21: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 DB

EngineeringDB

SafetyDB

TransportDB

Contact DB

Enterprise Integration Challenge: ESB Approach

More growth = easy

311

ESB

Page 22: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Capabilities of an ESB

An ESB can… has…

Page 23: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

An ESB can… has…• Route data between systems • Testers, Filters, Notifiers

Capabilities of an ESB

Page 24: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

An ESB can… has…• Route data between systems• Transform formats and protocols

• Testers, Notifiers• XML and JSON Templater,

Extractors and HTTPCaller

Capabilities of an ESB

Page 25: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

An ESB can… has…• Route data between systems• Transform formats and protocols• Request/Response or

Aynchronous

• Testers, Notifiers• XML and JSON Templater,

Extractors and HTTPCaller• Service Types, JobSubmitter

Capabilities of an ESB

Page 26: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

An ESB can… has…• Route data between systems• Transform formats and protocols• Request/Response or

Aynchronous• Publish/Subscribe

• Testers, Notifiers• XML and JSON Templater,

Extractors and HTTPCaller• Service Types, JobSubmitter• Notifications

Capabilities of an ESB

Page 27: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

An ESB can… has…• Route data between systems• Transform formats and protocols• Request/Response or

Aynchronous• Publish/Subscribe• Events and messages

• Testers, Notifiers• XML and JSON Templater,

Extractors and HTTPCaller• Service Types, JobSubmitter• Notifications• Publisher/Subscriber Protocols

Capabilities of an ESB

Page 28: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

• Route data between systems• Transform formats and protocols• Request/Response or

Aynchronous• Publish/Subscribe• Events and messages• Extensible & pluggable

• Testers, Notifiers• XML and JSON Templater,

Extractors and HTTPCaller• Service Types, JobSubmitter• Notifications• Publisher/Subscriber Protocols• Chaining topics

An ESB can… has…

Capabilities of an ESB

Page 29: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

• Route data between systems• Transform formats and protocols• Request/Response or

Aynchronous• Publish/Subscribe• Events and messages• Extensible & pluggable• Publish Metadata

• Testers, Notifiers• XML and JSON Templater,

Extractors and HTTPCaller• Service Types, JobSubmitter• Notifications• Publisher/Subscriber Protocols• Chaining topics• FME Server API

An ESB can… has…

Capabilities of an ESB

Page 30: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Spatial DNA

● ESB Implementation Examples

Page 31: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 IncidentManagement

ESB Demo

ESB Demo

Page 32: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

EngineeringUpdate

SafetyUpdate

311 CaseUpdate

ESB 311Topics

Page 33: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 ESB311PublicMessage

Loader.fmw

311 DB

311MessageDB Summary.fmw

EngineeringDB

ESB Demo

UpdateDepartmentDB.fmw

EngineeringUpdate

SafetyUpdate Safety

DB

311 CaseUpdate

ProcessEngMsg.fmw

ProcessSafetyMsg.fmw

Update311DB

MessageTransmitter.fmw

ProcessUpdateMessage.fmw

ESB 311Topics

Page 34: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 ESB311PublicMessage

Loader.fmw

311 DB

311MessageDB Summary.fmw

EngineeringDB

ESB Demo

EngineeringUpdate

SafetyUpdate Safety

DB

311 CaseUpdate

ProcessEngMsg.fmw

ProcessSafetyMsg.fmw

Update311DB

MessageTransmitter.fmw

ProcessUpdateMessage.fmw

UpdateDepartmentDB.fmw

ESB 311Topics

Page 35: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 ESB311PublicMessage

Loader.fmw

311 DB

311MessageDB Summary.fmw

EngineeringDB

ESB DemoESB 311Topics

EngineeringUpdate

SafetyUpdate Safety

DB

311 CaseUpdate

ProcessEngMsg.fmw

ProcessSafetyMsg.fmw

Update311DB

MessageTransmitter.fmw

ProcessUpdateMessage.fmw

UpdateDepartmentDB.fmw

Page 36: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 ESB311PublicMessage

Loader.fmw

311 DB

311MessageDB Summary.fmw

EngineeringDB

EngineeringUpdate

SafetyUpdate Safety

DB

311 CaseUpdate

ProcessEngMsg.fmw

Update311DB

MessageTransmitter.fmw

ProcessSafetyMsg.fmw

ProcessUpdateMessage.fmw

UpdateDepartmentDB.fmw

ESB 311Topics

ESB Demo

Page 37: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 ESB311PublicMessage

Loader.fmw

311 DB

311MessageDB Summary.fmw

EngineeringDB

ESB Demo

EngineeringUpdate

SafetyUpdate Safety

DB

311 CaseUpdate

ProcessEngMsg.fmw

Update311DB

MessageTransmitter.fmw

ProcessSafetyMsg.fmw

ProcessUpdateMessage.fmw

UpdateDepartmentDB.fmw

ESB 311Topics

Page 38: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 ESB311PublicMessage

Loader.fmw

311 DB

311MessageDB Summary.fmw

EngineeringDB

ESB Demo

EngineeringUpdate

SafetyUpdate Safety

DB

311 CaseUpdate

ProcessEngMsg.fmw

Update311DB

MessageTransmitter.fmw

ProcessSafetyMsg.fmw

ProcessUpdateMessage.fmw

UpdateDepartmentDB.fmw

ESB 311Topics

Page 39: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 ESB311PublicMessage

Loader.fmw

311 DB

311MessageDB Summary.fmw

EngineeringDB

ESB Demo

EngineeringUpdate

SafetyUpdate Safety

DB

311 CaseUpdate

ProcessEngMsg.fmw

MessageTransmitter.fmw

ProcessSafetyMsg.fmw

ProcessUpdateMessage.fmw

UpdateDepartmentDB.fmw

ESB 311Topics

Update311DB

Page 40: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 ESB311PublicMessage

Loader.fmw

311 DB

311MessageDB Summary.fmw

EngineeringDB

ESB Demo

EngineeringUpdate

SafetyUpdate Safety

DB

311 CaseUpdate

ProcessEngMsg.fmw

MessageTransmitter.fmw

ProcessSafetyMsg.fmw

ProcessUpdateMessage.fmw

UpdateDepartmentDB.fmw

ESB 311Topics

Update311DB

Page 41: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311 ESB311PublicMessage

Loader.fmw

311 DB

311MessageDB Summary.fmw

EngineeringDB

ESB Demo

UpdateDepartmentDB.fmw

EngineeringUpdate

SafetyUpdate Safety

DB

311 CaseUpdate

ProcessEngMsg.fmw

ProcessSafetyMsg.fmw

Update311DB

MessageTransmitter.fmw

ProcessUpdateMessage.fmw

ESB 311Topics

Page 42: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

ESB 311 Demo: Loader, Update

Page 43: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

ESB 311 Demo: Notifications

Page 44: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

ESB 311 Demo: Database Summary Report

Page 45: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

ESB Configuration on FME Server : Projects

Project Content:● Repository● Workspaces● Topics● Subscriptions● Schedules● Shared resource● DB connections● Web connections● Web socket

Page 46: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

ESB Configuration on FME Server : Topics

Page 47: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

ESB Configuration on FME Server : Schedules

Page 48: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

ESB Configuration on FME Server : DB Connections

Page 49: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

311PublicMessageLoader.fmw

To ESB

Page 50: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

MessageTransmitter.fmw - Scheduled

To ESB

Page 51: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Update Message via Engineering Topic on 311ESB

{"Status":"Open","Category":"Traffic", "Description":"Flat tire", "Email":"[email protected]", "FirstName":"Dean", "ws_topic": "ESB_EngineeringUpdate", "json_featuretype":"ServiceMessage", "Time": "2017-12-01T07:30:01","City":"Vancouver", "Source":"web form","Province":"BC", "Date":"2017-12-01", "Department":"Engineering", "Street":"123 4th st", "LastName":"Hintz", "MessageID":"70f4c197-d669-11e7-97b9-161c33569574"}

Page 52: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

ProcessSafetyMessage.fmw Subscription

From ESB

Page 53: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Update311MessageDB_Safety.fmw Scheduled

To ESB

Page 54: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

ProcessUpdateMessage.fmw Subscription

From ESB

Page 55: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Update Message via 311Update Topic

{"Status":"Closed","Category":"Traffic", "Description":"flat tire\nResolved by: Jim", "Email":"[email protected]","FirstName":"Dean", "ws_topic":"ESB_311DB_Update", "json_featuretype":"ServiceMessage", "Time":"2017-12-01T07:30:01","City":"Vancouver", "Source":"web form","Province":"BC","Date":"2017-12-01", "Department":"Engineering", "Street":"123 4th st", "LastName":"Hintz", "MessageID":"70f4c197-d669-11e7-97b9-161c33569574"}

Page 56: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

FME Server as ESB: Key Take-aways

● ESB - connection of many systems without increasing architecture complexity

● FME Server’s notification service provides ESB functions and components

● 311 ESB configuration tested using scheduled publication workspaces and

subscription workspaces connected to a set of topics

● Initial ESB design needs to be carefully laid out so the events and message

interactions are clearly mapped

● Define message structure and common data model: key elements, routing

● A good design is easily extendible: start simple, then expand

Page 57: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

EnterpriseIntegrationWorkflows

Safe Software

Common Challenges

➔ Field name mapping

➔ Field value mapping

➔ Lookup field mapping

➔ Validating values

➔ Table mapping

➔ Record type mapping

Page 58: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

JSON Transformers

Page 59: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Field Names and Values: AttributeManager

Copy from one field to another.

Provide a hard-coded default for a field.

Concatenate multiple field values together into a single field.

Copy part of a value from one field to another.

Page 60: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Value Mapping for Lookup Fields

Page 61: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Validate Values

Page 62: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Summary

● Dilemma of enterprise growth and complexity

● ESB approach / pattern helps manage growth

● FME Server’s notification service as an ESB

● Easy to add new systems and scale capacity without increasing complexity

● Notification service - a great way to integrate FME into your enterprise workflows whether or not you use ESB

Page 63: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Related Webinars● How to Use FME as an Enterprise Integration Platform (Aug 2017)

https://www.safe.com/solutions/enterprise-data-integration

● Web Services & Web Data – Best Practices for Integration (March 2017)

https://www.safe.com/webinars/web-services-fme-2017/

Upcoming:

● Deep Dive into FME Server 2018 (Feb 22, 2018)● FME Server Automations (March 28, 2018)

Page 64: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Resources● Neil’s FME UC 2017 Talk: “Making FME Your ESB”

● FME Server Playground https://playground.fmeserver.com/

● FME Server Notification Docs

● Tutorial: Notifications

● Tutorial: Automation Planning and Deployment

● Tutorial: Reading and Writing JSON

● FME Hub: Custom transformers, templates, coming: Server Projects

ESB Demo project package will be sent to all attendees

Page 65: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Thank you

Dean HintzSenior Analyst,

Strategic ExpertsSafe Software

[email protected]

Neil HellasEnterprise Solutions Architect

Spatial [email protected]

Don MurrayPresident,

Safe Software

Page 66: Integrating the Enterprise with Event-Driven Messaging – Using FME Server as an ESB

Q n A