SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
Canonical Modeling for
API Interoperability
QCON NEW YORK, JUNE 2014
TED EPSTEIN, FOUNDER AND CEO
MODELSOLV, INC.
1COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Overview
• How APIs help developers, how they don’t
• Canonical models: promises and challenges
• Tackling variability in message representations
• A Better Client Library
• Demo and walkthrough
2COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Developers in the API
Jungle
3COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Services Built in isolation
• Many services built to
service a single
application or org unit.
• No data or API
governance, no shared
data models.
• No meaningful
guidelines. “Just use
schema.”
• No easy path to eventual
integration or promotion
to shared services.
4COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Heavy Burden on Developers
5COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Heavy Burden on Developers
• Find the right
service
6COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Heavy Burden on Developers
• Find the right
service
• Negotiate
data formats
7COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Heavy Burden on Developers
• Find the right
service
• Negotiate data
formats
• Point-to-point
integrations:
each one is
different
8COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Strained Ecosystem
• Bloated code
9COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Strained Ecosystem
• Bloated code
• Memory footprint
10COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Strained Ecosystem
• Bloated code
• Memory footprint
• High integration
costs
11COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Strained Ecosystem
• Bloated code
• Memory footprint
• High integration
costs
• Slow delivery
12COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Canonical Models:
Promises and
Challenges
13COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
A Modest Proposal
• Define a common model for
all data communicated
between systems.
• Common recommendation
in one form or another
◦ Patterns of Enterprise Integration
(Fowler)
◦ SOA Design Patterns (Erl)
14COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Different Uses for Canonical Data
Models:
API Design
◦ SOA Governance: Enforce
consistency with the canonical
model (“canonical schema”)
◦ Tools: Compose message formats
from canonical data models
SDK Development
◦ Abstract physical format
◦ Optimize for performance and/or
developer productivity
Integration
◦ Transform messages to/from
canonical format.
◦ Boundary translation to/from
industry standards
Analysis
◦ Analyzing data landscape, service
landscape
◦ Compliance, internal audit, MDM,
large-scale integration efforts.
15COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Why is this so hard?
Intrinsic Challenges
◦ Getting everyone to the table, getting to
agreement
◦ Versioning, Change impact analysis, and
lifecycle management
Economic Alignment Challenges
◦ Service developers need to get it done
◦ Code-first frameworks promise low-cost
to service developers
Modeling Mismatch: Viewpoint
◦ What's the purpose of the model?
◦ What level of abstraction? What level of
detail?
◦ How does it related to concrete
representations?
Modeling Mismatch: Language
and Method
◦ ER, UML, OWL, etc.
◦ The attractive nuisance of XML Schema
Result: confusion about what the
canonical model is supposed to
be.
16COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
The Pervasive Problem: Variability
• One size fits none
• Message representations vary by
◦ Level of detail
◦ Perspective
◦ Topology, Granularity
◦ Contextual constraints
◦ Metadata
17COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Realization: Decoupling
Models and Messages
18COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Another Look at the Variability Problem
• There’s a common theme
(canon) underneath these
variations.
• Can we describe the theme
and variations separately?
• Can we model the variations
as adaptations,
augmentations of the theme?
• There’s a name for that:
Realization.
19COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Realization: Property Subset
20COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
API requests or
responses may
only need a subset
of properties
defined in the
canonical model.
Realization model
may specify a list
of included
properties.
Realization:
Perspective
21COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Message and resource
structures project
different views from the
same logical data model
Canonical model should
support bi-directional
references.
Realization model should
allow embedded or linked
representations.
Realization:
Metadata
22COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Business Information Model
Account ID
Balance
Margin
Status
Account
Party ID
Name
Party
1
0..n
Data Aspects
· Deltas
· Data Source
· Data Security
· Explicit Null Values
...
Message Structure
<party dataSource=“MSDB”>
<partyId>123</partyId>
<partyName xsi:nil=“true” nullValue=“Not Available” />
<accounts>
<account dataSource=“A2” transType=“insert”>
<accountId>XYZ</accountId>
<balance xsi:nil=“true” isRestricted=“true” />
…
</account>
…
</accounts>
</party>
APIs may need to augment
essential data with descriptive
metadata.
Data aspects are cross-cutting
concerns that may be woven
together with canonical data
as part of the interface
realization.
Realization: Contextual Constraints
<=$10MM
Asset
Class =
Bond
23COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Trade
Services may have specific
constraints that are not
intrinsic to the data
definitions.
Realization model may
specify constraints on
requests or responses.
Constraints may take
different forms: range,
subtype, logical
expression, etc.
Canonical Modeling Reloaded
• New understanding of the model vs. message:
• Canonical data models describe business information at the conceptual level
◦ Semantically rich
◦ Technology independent
• Realization models afford variability, with clear limits
◦ Bend the canonical model, don’t break it
◦ Realized representations must be recognizable as instances of the canonical model.
• Some new terms:
◦ Interface Data Model: A realization model used to define data exchanged through an API.
◦ Resource Data Model: An interface data model for a RESTful (resource-oriented) API.
24COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
A Better Client Library
25COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Today’s
Client Library
26COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
How many ways from Sunday does this
suck?
1. Canonical data model gets lost in the translation.
2. Awkward structures introduced by message format.
3. Annotations are specific to a single API, message format.
4. Not usable as business objects
5. Extra code to populate these DTOs, move data between them and
internal representations.
6. High memory footprint
27COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Just say no
to DTO.
Canonical
Serializer
No DTOs, no need to
code transformations
Single object graph
serialized to multiple
RDMs, message
formats.
Canonical
classes/interfaces can
be used as business
objects.
Flexibility: pluggable
formats for canonical
model, RDM, object
graph and media type.
28COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Canonical Serializer: Implementation
What do we call a serializer that
shoots representations out of a canon?
Kaboom Serializer!
https://github.com/modelsolv/Kaboom
(Just a demo now, but feedback & contributions welcome.)
29COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Scenario
• TaxBlaster: new tax preparation app.
• Integrates with e-filing service
• Integrates with client billing service
• Common data model, different views
30COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
TaxBlaster: Canonical Data Model
31COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
filingID : string
jurisdiction : string
currency : string
year : date
period : int
grossIncome : decimal
taxLiability : decimal
TaxFiling
taxpayerID : string
lastName : string
firstName : string
otherNames : string*
Person
street 1 : string
street2: string
city : string
stateOrProvince : string
postalCode : string
Address
companyID : string
companyName : string
EIN : string
form : string
active : boolean
Company
employees
employer 0..1
0..*
taxpayer
1..1
0..*
addresses
Internal Metamodel
Pluggable
implementations:
• CDM
• RDM
• Canonical Object
Reader/Writer
• Serializer
32COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
name : string
CanonicalDataType
type : primitiveDataType
CDMPrimitiveProperty
CDMReferenceProperty
name : string
cardinality : Cardinality
CDMProperty
properties0..*
inverseProperty
targetDataType
name : string
ResourceDataModel
type : primitiveDataType
RDMPrimitiveProperty
RDMReferenceProperty
name : string
cardinality : Cardinality
RDMProperty
includedProperties0..*
linkRelation : string
ReferenceLink
ReferenceEmbed
embeddedDataModel
Recipe for a model-oriented API client
◦ A canonical modeling language
◦ Data available at runtime that conforms to the canonical model
◦ An API description facility that
◦ Realizes the canonical model as an Interface Data Model
◦ Described as formalized variations
◦ A runtime serializer/deserializer that
◦ Interprets the API model
◦ Serializes and deserializes between the the canonical object graph and the
the realized message format.
33COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Conclusion
Canonical models are a way to capture organizational agreement on
data definitions
We need the right degree of coupling between the canonical model
and API representations.
We do this by identifying the kinds of variations that we need to
support, and formalizing these in a realization mapping.
Tooling can support realization modeling and apply it in client libraries,
SDKs, middleware, etc.
Potential benefits: better interoperability, lower integration cost,
higher developer productivity.
34COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
Questions
THANK YOU!
35COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.

Contenu connexe

Tendances

Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action Alex Movila
 
Oracle Forms Introduction
Oracle Forms IntroductionOracle Forms Introduction
Oracle Forms IntroductionSekhar Byna
 
Azure Industrial Iot Edge
Azure Industrial Iot EdgeAzure Industrial Iot Edge
Azure Industrial Iot EdgeRiccardo Zamana
 
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)Kai Wähner
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NETRajkumarsoy
 
iPaaS: A platform for Integration technology convergence
iPaaS: A platform for Integration technology convergenceiPaaS: A platform for Integration technology convergence
iPaaS: A platform for Integration technology convergenceRaveendra Babu Darsi
 
Dotnet framework difference faqs- 3
Dotnet framework difference faqs- 3Dotnet framework difference faqs- 3
Dotnet framework difference faqs- 3Umar Ali
 
1 - Introduction to PL/SQL
1 - Introduction to PL/SQL1 - Introduction to PL/SQL
1 - Introduction to PL/SQLrehaniltifat
 
C# Tutorial
C# Tutorial C# Tutorial
C# Tutorial Jm Ramos
 
ADA programming language
ADA programming languageADA programming language
ADA programming languageAisha Kalsoom
 
Oracle Forms Tutorial
Oracle Forms TutorialOracle Forms Tutorial
Oracle Forms TutorialATR Login
 
Three layer API Design Architecture
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design ArchitectureHarish Kumar
 
PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts Bharat Kalia
 
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...Marco Brambilla
 
Introduction to Oracle Cloud
Introduction to Oracle CloudIntroduction to Oracle Cloud
Introduction to Oracle Cloudjohnnhernandez
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and DesignRa'Fat Al-Msie'deen
 

Tendances (20)

Spring Boot in Action
Spring Boot in Action Spring Boot in Action
Spring Boot in Action
 
Oracle Forms Introduction
Oracle Forms IntroductionOracle Forms Introduction
Oracle Forms Introduction
 
Azure Industrial Iot Edge
Azure Industrial Iot EdgeAzure Industrial Iot Edge
Azure Industrial Iot Edge
 
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
iPaaS: A platform for Integration technology convergence
iPaaS: A platform for Integration technology convergenceiPaaS: A platform for Integration technology convergence
iPaaS: A platform for Integration technology convergence
 
Dotnet framework difference faqs- 3
Dotnet framework difference faqs- 3Dotnet framework difference faqs- 3
Dotnet framework difference faqs- 3
 
1 - Introduction to PL/SQL
1 - Introduction to PL/SQL1 - Introduction to PL/SQL
1 - Introduction to PL/SQL
 
C# Tutorial
C# Tutorial C# Tutorial
C# Tutorial
 
ADA programming language
ADA programming languageADA programming language
ADA programming language
 
Oracle Forms Tutorial
Oracle Forms TutorialOracle Forms Tutorial
Oracle Forms Tutorial
 
Three layer API Design Architecture
Three layer API Design ArchitectureThree layer API Design Architecture
Three layer API Design Architecture
 
ISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİISTQB PROJELERDE HATA YÖNETİMİ
ISTQB PROJELERDE HATA YÖNETİMİ
 
Sql - Structured Query Language
Sql - Structured Query LanguageSql - Structured Query Language
Sql - Structured Query Language
 
PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts PL/SQL Introduction and Concepts
PL/SQL Introduction and Concepts
 
Asp.net web api
Asp.net web apiAsp.net web api
Asp.net web api
 
SOA
SOASOA
SOA
 
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...IFML -  Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
IFML - Interaction Flow Modeling Language - tutorial on UI and UX modeling &...
 
Introduction to Oracle Cloud
Introduction to Oracle CloudIntroduction to Oracle Cloud
Introduction to Oracle Cloud
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 

Similaire à Canonical Modeling for API Interoperability

Data Modeling in the API Economy
Data Modeling in the API EconomyData Modeling in the API Economy
Data Modeling in the API EconomyTed Epstein
 
Meetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfMeetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfRed Hat
 
Designing a Future-proof API Program
Designing a Future-proof API ProgramDesigning a Future-proof API Program
Designing a Future-proof API ProgramPronovix
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesRich Mills
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesRich Mills
 
MuleSoft London Community August 2017 - API Led Connectivity
MuleSoft London Community August 2017 - API Led ConnectivityMuleSoft London Community August 2017 - API Led Connectivity
MuleSoft London Community August 2017 - API Led ConnectivityPace Integration
 
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road AheadOpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road AheadTed Epstein
 
Enabling digital transformation api ecosystems and data virtualization
Enabling digital transformation   api ecosystems and data virtualizationEnabling digital transformation   api ecosystems and data virtualization
Enabling digital transformation api ecosystems and data virtualizationDenodo
 
APIs as a Product Strategy
APIs as a Product StrategyAPIs as a Product Strategy
APIs as a Product StrategyRavi Kumar
 
Transform the internal it landscape with APIs and integration
Transform the internal it landscape with APIs and integrationTransform the internal it landscape with APIs and integration
Transform the internal it landscape with APIs and integrationJudy Breedlove
 
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays
 
apidays LIVE Australia 2021 - Overcoming the 3 Largest Obstacles to Digital T...
apidays LIVE Australia 2021 - Overcoming the 3 Largest Obstacles to Digital T...apidays LIVE Australia 2021 - Overcoming the 3 Largest Obstacles to Digital T...
apidays LIVE Australia 2021 - Overcoming the 3 Largest Obstacles to Digital T...apidays
 
Continuous API Strategies for Integrated Platforms
 Continuous API Strategies for Integrated Platforms Continuous API Strategies for Integrated Platforms
Continuous API Strategies for Integrated PlatformsBill Doerrfeld
 
Building the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemBuilding the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemMitch Colleran
 
INTERFACE by apidays - API Success: Running a Successful API Program by Nelso...
INTERFACE by apidays - API Success: Running a Successful API Program by Nelso...INTERFACE by apidays - API Success: Running a Successful API Program by Nelso...
INTERFACE by apidays - API Success: Running a Successful API Program by Nelso...apidays
 
Apachecon 2014 Keynote: The Apache Way in the Cloud with Cloud Foundry
Apachecon 2014 Keynote: The Apache Way in the Cloud with Cloud Foundry Apachecon 2014 Keynote: The Apache Way in the Cloud with Cloud Foundry
Apachecon 2014 Keynote: The Apache Way in the Cloud with Cloud Foundry James Watters
 
O365Con18 - How to Run a Search Project in SharePoint - Matthew McDermott
O365Con18 - How to Run a Search Project in SharePoint -  Matthew McDermottO365Con18 - How to Run a Search Project in SharePoint -  Matthew McDermott
O365Con18 - How to Run a Search Project in SharePoint - Matthew McDermottNCCOMMS
 

Similaire à Canonical Modeling for API Interoperability (20)

Data Modeling in the API Economy
Data Modeling in the API EconomyData Modeling in the API Economy
Data Modeling in the API Economy
 
Meetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdfMeetup 2022 - API Gateway landscape.pdf
Meetup 2022 - API Gateway landscape.pdf
 
Cloud Customer Architecture for API Management
Cloud Customer Architecture for API ManagementCloud Customer Architecture for API Management
Cloud Customer Architecture for API Management
 
Designing a Future-proof API Program
Designing a Future-proof API ProgramDesigning a Future-proof API Program
Designing a Future-proof API Program
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in Microservices
 
DevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in MicroservicesDevOps Patterns to Enable Success in Microservices
DevOps Patterns to Enable Success in Microservices
 
MuleSoft London Community August 2017 - API Led Connectivity
MuleSoft London Community August 2017 - API Led ConnectivityMuleSoft London Community August 2017 - API Led Connectivity
MuleSoft London Community August 2017 - API Led Connectivity
 
Api enablement-mainframe
Api enablement-mainframeApi enablement-mainframe
Api enablement-mainframe
 
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road AheadOpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
OpenAPI v.Next - Events, Alternative Schemas & the Road Ahead
 
Enabling digital transformation api ecosystems and data virtualization
Enabling digital transformation   api ecosystems and data virtualizationEnabling digital transformation   api ecosystems and data virtualization
Enabling digital transformation api ecosystems and data virtualization
 
APIs as a Product Strategy
APIs as a Product StrategyAPIs as a Product Strategy
APIs as a Product Strategy
 
Transform the internal it landscape with APIs and integration
Transform the internal it landscape with APIs and integrationTransform the internal it landscape with APIs and integration
Transform the internal it landscape with APIs and integration
 
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
apidays LIVE Paris 2021 - APIs - How did we get here and where are we going n...
 
apidays LIVE Australia 2021 - Overcoming the 3 Largest Obstacles to Digital T...
apidays LIVE Australia 2021 - Overcoming the 3 Largest Obstacles to Digital T...apidays LIVE Australia 2021 - Overcoming the 3 Largest Obstacles to Digital T...
apidays LIVE Australia 2021 - Overcoming the 3 Largest Obstacles to Digital T...
 
Continuous API Strategies for Integrated Platforms
 Continuous API Strategies for Integrated Platforms Continuous API Strategies for Integrated Platforms
Continuous API Strategies for Integrated Platforms
 
Building the Eventbrite API Ecosystem
Building the Eventbrite API EcosystemBuilding the Eventbrite API Ecosystem
Building the Eventbrite API Ecosystem
 
INTERFACE by apidays - API Success: Running a Successful API Program by Nelso...
INTERFACE by apidays - API Success: Running a Successful API Program by Nelso...INTERFACE by apidays - API Success: Running a Successful API Program by Nelso...
INTERFACE by apidays - API Success: Running a Successful API Program by Nelso...
 
Apachecon 2014 Keynote: The Apache Way in the Cloud with Cloud Foundry
Apachecon 2014 Keynote: The Apache Way in the Cloud with Cloud Foundry Apachecon 2014 Keynote: The Apache Way in the Cloud with Cloud Foundry
Apachecon 2014 Keynote: The Apache Way in the Cloud with Cloud Foundry
 
O365Con18 - How to Run a Search Project in SharePoint - Matthew McDermott
O365Con18 - How to Run a Search Project in SharePoint -  Matthew McDermottO365Con18 - How to Run a Search Project in SharePoint -  Matthew McDermott
O365Con18 - How to Run a Search Project in SharePoint - Matthew McDermott
 
Cloud Customer Architecture for Hybrid Integration
Cloud Customer Architecture for Hybrid IntegrationCloud Customer Architecture for Hybrid Integration
Cloud Customer Architecture for Hybrid Integration
 

Dernier

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 

Dernier (20)

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 

Canonical Modeling for API Interoperability

  • 1. Canonical Modeling for API Interoperability QCON NEW YORK, JUNE 2014 TED EPSTEIN, FOUNDER AND CEO MODELSOLV, INC. 1COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 2. Overview • How APIs help developers, how they don’t • Canonical models: promises and challenges • Tackling variability in message representations • A Better Client Library • Demo and walkthrough 2COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 3. Developers in the API Jungle 3COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 4. Services Built in isolation • Many services built to service a single application or org unit. • No data or API governance, no shared data models. • No meaningful guidelines. “Just use schema.” • No easy path to eventual integration or promotion to shared services. 4COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 5. Heavy Burden on Developers 5COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 6. Heavy Burden on Developers • Find the right service 6COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 7. Heavy Burden on Developers • Find the right service • Negotiate data formats 7COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 8. Heavy Burden on Developers • Find the right service • Negotiate data formats • Point-to-point integrations: each one is different 8COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 9. Strained Ecosystem • Bloated code 9COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 10. Strained Ecosystem • Bloated code • Memory footprint 10COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 11. Strained Ecosystem • Bloated code • Memory footprint • High integration costs 11COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 12. Strained Ecosystem • Bloated code • Memory footprint • High integration costs • Slow delivery 12COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 13. Canonical Models: Promises and Challenges 13COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 14. A Modest Proposal • Define a common model for all data communicated between systems. • Common recommendation in one form or another ◦ Patterns of Enterprise Integration (Fowler) ◦ SOA Design Patterns (Erl) 14COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 15. Different Uses for Canonical Data Models: API Design ◦ SOA Governance: Enforce consistency with the canonical model (“canonical schema”) ◦ Tools: Compose message formats from canonical data models SDK Development ◦ Abstract physical format ◦ Optimize for performance and/or developer productivity Integration ◦ Transform messages to/from canonical format. ◦ Boundary translation to/from industry standards Analysis ◦ Analyzing data landscape, service landscape ◦ Compliance, internal audit, MDM, large-scale integration efforts. 15COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 16. Why is this so hard? Intrinsic Challenges ◦ Getting everyone to the table, getting to agreement ◦ Versioning, Change impact analysis, and lifecycle management Economic Alignment Challenges ◦ Service developers need to get it done ◦ Code-first frameworks promise low-cost to service developers Modeling Mismatch: Viewpoint ◦ What's the purpose of the model? ◦ What level of abstraction? What level of detail? ◦ How does it related to concrete representations? Modeling Mismatch: Language and Method ◦ ER, UML, OWL, etc. ◦ The attractive nuisance of XML Schema Result: confusion about what the canonical model is supposed to be. 16COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 17. The Pervasive Problem: Variability • One size fits none • Message representations vary by ◦ Level of detail ◦ Perspective ◦ Topology, Granularity ◦ Contextual constraints ◦ Metadata 17COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 18. Realization: Decoupling Models and Messages 18COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 19. Another Look at the Variability Problem • There’s a common theme (canon) underneath these variations. • Can we describe the theme and variations separately? • Can we model the variations as adaptations, augmentations of the theme? • There’s a name for that: Realization. 19COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 20. Realization: Property Subset 20COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED. API requests or responses may only need a subset of properties defined in the canonical model. Realization model may specify a list of included properties.
  • 21. Realization: Perspective 21COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED. Message and resource structures project different views from the same logical data model Canonical model should support bi-directional references. Realization model should allow embedded or linked representations.
  • 22. Realization: Metadata 22COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED. Business Information Model Account ID Balance Margin Status Account Party ID Name Party 1 0..n Data Aspects · Deltas · Data Source · Data Security · Explicit Null Values ... Message Structure <party dataSource=“MSDB”> <partyId>123</partyId> <partyName xsi:nil=“true” nullValue=“Not Available” /> <accounts> <account dataSource=“A2” transType=“insert”> <accountId>XYZ</accountId> <balance xsi:nil=“true” isRestricted=“true” /> … </account> … </accounts> </party> APIs may need to augment essential data with descriptive metadata. Data aspects are cross-cutting concerns that may be woven together with canonical data as part of the interface realization.
  • 23. Realization: Contextual Constraints <=$10MM Asset Class = Bond 23COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED. Trade Services may have specific constraints that are not intrinsic to the data definitions. Realization model may specify constraints on requests or responses. Constraints may take different forms: range, subtype, logical expression, etc.
  • 24. Canonical Modeling Reloaded • New understanding of the model vs. message: • Canonical data models describe business information at the conceptual level ◦ Semantically rich ◦ Technology independent • Realization models afford variability, with clear limits ◦ Bend the canonical model, don’t break it ◦ Realized representations must be recognizable as instances of the canonical model. • Some new terms: ◦ Interface Data Model: A realization model used to define data exchanged through an API. ◦ Resource Data Model: An interface data model for a RESTful (resource-oriented) API. 24COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 25. A Better Client Library 25COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 26. Today’s Client Library 26COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 27. How many ways from Sunday does this suck? 1. Canonical data model gets lost in the translation. 2. Awkward structures introduced by message format. 3. Annotations are specific to a single API, message format. 4. Not usable as business objects 5. Extra code to populate these DTOs, move data between them and internal representations. 6. High memory footprint 27COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED. Just say no to DTO.
  • 28. Canonical Serializer No DTOs, no need to code transformations Single object graph serialized to multiple RDMs, message formats. Canonical classes/interfaces can be used as business objects. Flexibility: pluggable formats for canonical model, RDM, object graph and media type. 28COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 29. Canonical Serializer: Implementation What do we call a serializer that shoots representations out of a canon? Kaboom Serializer! https://github.com/modelsolv/Kaboom (Just a demo now, but feedback & contributions welcome.) 29COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 30. Scenario • TaxBlaster: new tax preparation app. • Integrates with e-filing service • Integrates with client billing service • Common data model, different views 30COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 31. TaxBlaster: Canonical Data Model 31COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED. filingID : string jurisdiction : string currency : string year : date period : int grossIncome : decimal taxLiability : decimal TaxFiling taxpayerID : string lastName : string firstName : string otherNames : string* Person street 1 : string street2: string city : string stateOrProvince : string postalCode : string Address companyID : string companyName : string EIN : string form : string active : boolean Company employees employer 0..1 0..* taxpayer 1..1 0..* addresses
  • 32. Internal Metamodel Pluggable implementations: • CDM • RDM • Canonical Object Reader/Writer • Serializer 32COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED. name : string CanonicalDataType type : primitiveDataType CDMPrimitiveProperty CDMReferenceProperty name : string cardinality : Cardinality CDMProperty properties0..* inverseProperty targetDataType name : string ResourceDataModel type : primitiveDataType RDMPrimitiveProperty RDMReferenceProperty name : string cardinality : Cardinality RDMProperty includedProperties0..* linkRelation : string ReferenceLink ReferenceEmbed embeddedDataModel
  • 33. Recipe for a model-oriented API client ◦ A canonical modeling language ◦ Data available at runtime that conforms to the canonical model ◦ An API description facility that ◦ Realizes the canonical model as an Interface Data Model ◦ Described as formalized variations ◦ A runtime serializer/deserializer that ◦ Interprets the API model ◦ Serializes and deserializes between the the canonical object graph and the the realized message format. 33COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 34. Conclusion Canonical models are a way to capture organizational agreement on data definitions We need the right degree of coupling between the canonical model and API representations. We do this by identifying the kinds of variations that we need to support, and formalizing these in a realization mapping. Tooling can support realization modeling and apply it in client libraries, SDKs, middleware, etc. Potential benefits: better interoperability, lower integration cost, higher developer productivity. 34COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.
  • 35. Questions THANK YOU! 35COPYRIGHT © 2014, MODELSOLV, INC. | ALL RIGHTS RESERVED.