SlideShare une entreprise Scribd logo
1  sur  28
Uri Sarid, CTO, MuleSoft
Gluecon 2017
Metadata is the Glue
@usarid
All contents © MuleSoft Inc. @usarid
Companies are becoming software companies…
2@usarid
All contents © MuleSoft Inc. @usarid
Companies are becoming software companies…
3
MANUFACTURING
HR
FINANCE
MARKETING SALES
SERVICES
R&D
@usarid
All contents © MuleSoft Inc. @usarid
But what kind of software?
4
Isn’t it already digitized?
Don’t we already have software for that?
The odds are good
but the goods are odd
@usarid
All contents © MuleSoft Inc. @usarid
But what kind of software?
5
and they’re all connected
in all sorts of ways!
@usarid
All contents © MuleSoft Inc. @usarid
Where is this going?
6@usarid
All contents © MuleSoft Inc. @usarid
Where is this going?
7@usarid
All contents © MuleSoft Inc. @usarid
Software Creation  Coherent Software Assembly
8
Order Management
All contents © MuleSoft Inc. @usarid
Software Creation  Coherent Software Assembly
9
Order Management Inventory
Shipping
& Fulfillment
All contents © MuleSoft Inc. @usarid
Software Creation  Coherent Software Assembly
10
Order Management Inventory
Shipping
& Fulfillment
Customer
Experience
application network
All contents © MuleSoft Inc. @usarid
The key is good metadata
11
All contents © MuleSoft Inc. @usarid
The key is good metadata
12
API
API
API
API
API
API
All contents © MuleSoft Inc. @usarid
The key is good metadata
13
All contents © MuleSoft Inc. @usarid
The key is good metadata
14
All contents © MuleSoft Inc. @usarid
The API spec
15
designemit domain model
docs
live console
scripting –
API Notebook
mocking
SDK
manage
All contents © MuleSoft Inc. @usarid
The functional spec
16
model
your API
product
All contents © MuleSoft Inc. @usarid
The functional spec
17
see the result as
consumers would
All contents © MuleSoft Inc. @usarid
The functional spec
18
flesh out the
request, the
response…
All contents © MuleSoft Inc. @usarid
Use common behaviors
19
reusable library
of behavior traits
common paging
behavior
common caching
behavior
apply the traits
as needed
end up with a correct,
consistent API
All contents © MuleSoft Inc. @usarid
Use common structures
20
a collection
resource type
a member
resource type
apply the
resource types
as needed
end up with a correct,
consistent API
All contents © MuleSoft Inc. @usarid
Model underlying data types
21
traits
resource types
end up with a correct,
consistent API
apply data types
as needed
All contents © MuleSoft Inc. @usarid
Policies are extensions
22
traits
resource types
data types
version your functional spec
like you version your code
this is your source code
policies are operational
extensions
they shouldn’t affect the
functional spec
reusable
security
scheme
clients see an effective API spec
with security built in
All contents © MuleSoft Inc. @usarid
Overlay usecase: implementation
23
functional API
spec
general, reusable
annotations for
AWS API Gateway
configuration
specific config
for this API’s
implementation
All contents © MuleSoft Inc. @usarid
API metadata is layered and reusable
24
All contents © MuleSoft Inc. @usarid
What format?
25
API Modeling Framework
RAML
separation of concerns
reuse - consistency
modeling
tools platforms
layered modeling
OpenAPI Spec
common description
common description
All contents © MuleSoft Inc. @usarid
What format? Yes!
26
API Modeling Framework
RAML
separation of concerns
reuse - consistency
modeling
tools platforms
layered modeling
OpenAPI Spec
common description
common description
All contents © MuleSoft Inc. @usarid
AMF: Framework for API metadata
27
SPECIFICATION
OpenAPI Spec parser/emitterRAML parser/emitter
great
tooling…
higher-level concepts…
AMF
Common document modelAPI
Common API-domain modelAPI
so meta
@usarid@mulesoft
github.com/raml-org/api-modeling-framework

Contenu connexe

Tendances

Managing your Business APIs is using WSO2 API Manager
Managing your Business APIs is using WSO2 API Manager Managing your Business APIs is using WSO2 API Manager
Managing your Business APIs is using WSO2 API Manager
WSO2
 
Node.js - Extending the Programmability of Apigee Edge
Node.js - Extending the Programmability of Apigee Edge Node.js - Extending the Programmability of Apigee Edge
Node.js - Extending the Programmability of Apigee Edge
Apigee | Google Cloud
 

Tendances (20)

DevOps and APIs: Great Alone, Better Together
DevOps and APIs: Great Alone, Better Together DevOps and APIs: Great Alone, Better Together
DevOps and APIs: Great Alone, Better Together
 
10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration10 things to consider when planning your Mule 4 migration
10 things to consider when planning your Mule 4 migration
 
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF OperationsMuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
MuleSoft Meetup Singapore - Reliable Messaging & RTF Operations
 
Creating an OData-Enabled API
Creating an OData-Enabled APICreating an OData-Enabled API
Creating an OData-Enabled API
 
Operationalizing your C4E VirtualMuleys & Deployment Considerations: Cloudhub...
Operationalizing your C4E VirtualMuleys & Deployment Considerations: Cloudhub...Operationalizing your C4E VirtualMuleys & Deployment Considerations: Cloudhub...
Operationalizing your C4E VirtualMuleys & Deployment Considerations: Cloudhub...
 
Data Driven Security
Data Driven SecurityData Driven Security
Data Driven Security
 
Bringing Partners, Teams and Systems Together through APIs
Bringing Partners, Teams and Systems Together through APIsBringing Partners, Teams and Systems Together through APIs
Bringing Partners, Teams and Systems Together through APIs
 
Raleigh MuleSoft Meetup - October
Raleigh MuleSoft Meetup  - October Raleigh MuleSoft Meetup  - October
Raleigh MuleSoft Meetup - October
 
Managing your Business APIs is using WSO2 API Manager
Managing your Business APIs is using WSO2 API Manager Managing your Business APIs is using WSO2 API Manager
Managing your Business APIs is using WSO2 API Manager
 
Node.js - Extending the Programmability of Apigee Edge
Node.js - Extending the Programmability of Apigee Edge Node.js - Extending the Programmability of Apigee Edge
Node.js - Extending the Programmability of Apigee Edge
 
Adapt or Die: Serverless Microservices
Adapt or Die: Serverless MicroservicesAdapt or Die: Serverless Microservices
Adapt or Die: Serverless Microservices
 
Unlocking Value From the Internet of Things (IoT) with APIs
Unlocking Value From the Internet of Things (IoT) with APIsUnlocking Value From the Internet of Things (IoT) with APIs
Unlocking Value From the Internet of Things (IoT) with APIs
 
Mulesoft Meetups - Salesforce & Mulesoft Integrations, Anypoint Security Poli...
Mulesoft Meetups - Salesforce & Mulesoft Integrations, Anypoint Security Poli...Mulesoft Meetups - Salesforce & Mulesoft Integrations, Anypoint Security Poli...
Mulesoft Meetups - Salesforce & Mulesoft Integrations, Anypoint Security Poli...
 
API Security Lifecycle
API Security LifecycleAPI Security Lifecycle
API Security Lifecycle
 
Apigee Edge: Intro to Microgateway
Apigee Edge: Intro to MicrogatewayApigee Edge: Intro to Microgateway
Apigee Edge: Intro to Microgateway
 
Adapt or Die DevJam: San Francisco, Sept 27 2016
Adapt or Die DevJam: San Francisco, Sept 27 2016Adapt or Die DevJam: San Francisco, Sept 27 2016
Adapt or Die DevJam: San Francisco, Sept 27 2016
 
Building APIs with Apigee Edge and Microsoft Azure
Building APIs with Apigee Edge and Microsoft AzureBuilding APIs with Apigee Edge and Microsoft Azure
Building APIs with Apigee Edge and Microsoft Azure
 
I Love APIs 2015: End to End Testing: Bug Squashing for Developers
I Love APIs 2015: End to End Testing: Bug Squashing for DevelopersI Love APIs 2015: End to End Testing: Bug Squashing for Developers
I Love APIs 2015: End to End Testing: Bug Squashing for Developers
 
Transforming Your Business Through APIs
Transforming Your Business Through APIsTransforming Your Business Through APIs
Transforming Your Business Through APIs
 
Lessons from the Trenches: Building an API-Centric Architecture
Lessons from the Trenches: Building an API-Centric ArchitectureLessons from the Trenches: Building an API-Centric Architecture
Lessons from the Trenches: Building an API-Centric Architecture
 

Similaire à Gluecon 2017: Metadata is the Glue

DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene GotimerDevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
DevOpsDays Baltimore
 
Interoperability in a B2B Word (NordicAPIS April 2014)
Interoperability in a B2B Word (NordicAPIS April 2014)Interoperability in a B2B Word (NordicAPIS April 2014)
Interoperability in a B2B Word (NordicAPIS April 2014)
Nordic APIs
 
Journey to Cloud-Native: Where to start in your app modernization process
Journey to Cloud-Native: Where to start in your app modernization processJourney to Cloud-Native: Where to start in your app modernization process
Journey to Cloud-Native: Where to start in your app modernization process
VMware Tanzu
 

Similaire à Gluecon 2017: Metadata is the Glue (20)

A Definition of Done for DevSecOps
A Definition of Done for DevSecOpsA Definition of Done for DevSecOps
A Definition of Done for DevSecOps
 
Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019Manila MuleSoft Meetup #4 January 2019
Manila MuleSoft Meetup #4 January 2019
 
How to Execute a Successful API Strategy
How to Execute a Successful API StrategyHow to Execute a Successful API Strategy
How to Execute a Successful API Strategy
 
DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene GotimerDevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
DevOpsDays Baltimore 2018: A Definition of Done for DevSecOps - Gene Gotimer
 
Analyst Resources for Chief Information Security Officers (CISOs)
Analyst Resources for Chief Information Security Officers (CISOs)Analyst Resources for Chief Information Security Officers (CISOs)
Analyst Resources for Chief Information Security Officers (CISOs)
 
Software Change estimation
Software Change estimationSoftware Change estimation
Software Change estimation
 
apidays LIVE Australia 2020 - Data with a Mission by Matt McLarty
apidays LIVE Australia 2020 -  Data with a Mission by Matt McLarty apidays LIVE Australia 2020 -  Data with a Mission by Matt McLarty
apidays LIVE Australia 2020 - Data with a Mission by Matt McLarty
 
apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...
apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...
apidays LIVE Paris - Data with a mission: a COVID-19 API case study by Matt M...
 
Governing and Sharing your Integration Assets
Governing and Sharing your Integration AssetsGoverning and Sharing your Integration Assets
Governing and Sharing your Integration Assets
 
Mule soft meetup_indonesia_june2020
Mule soft meetup_indonesia_june2020Mule soft meetup_indonesia_june2020
Mule soft meetup_indonesia_june2020
 
Interoperability in a B2B Word (NordicAPIS April 2014)
Interoperability in a B2B Word (NordicAPIS April 2014)Interoperability in a B2B Word (NordicAPIS April 2014)
Interoperability in a B2B Word (NordicAPIS April 2014)
 
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
 
Modern Application Development for the Enterprise
Modern Application Development for the EnterpriseModern Application Development for the Enterprise
Modern Application Development for the Enterprise
 
What’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour LondonWhat’s Next For AppDynamics and Cisco? AppD Global Tour London
What’s Next For AppDynamics and Cisco? AppD Global Tour London
 
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
Industry Stories: How Application Networks are Delivering Agility (Ross Mason)
 
Découvrez le Rugged DevOps
Découvrez le Rugged DevOpsDécouvrez le Rugged DevOps
Découvrez le Rugged DevOps
 
What's next for AppD and Cisco? - AppD Global Tour
What's next for AppD and Cisco? - AppD Global TourWhat's next for AppD and Cisco? - AppD Global Tour
What's next for AppD and Cisco? - AppD Global Tour
 
ModelOps and its Operationalization for Secure and Reliable AI
ModelOps and its Operationalization for Secure and Reliable AIModelOps and its Operationalization for Secure and Reliable AI
ModelOps and its Operationalization for Secure and Reliable AI
 
Using Machine Learning and Analytics to Hunt for Security Threats - Webinar
Using Machine Learning and Analytics to Hunt for Security Threats - WebinarUsing Machine Learning and Analytics to Hunt for Security Threats - Webinar
Using Machine Learning and Analytics to Hunt for Security Threats - Webinar
 
Journey to Cloud-Native: Where to start in your app modernization process
Journey to Cloud-Native: Where to start in your app modernization processJourney to Cloud-Native: Where to start in your app modernization process
Journey to Cloud-Native: Where to start in your app modernization process
 

Plus de MuleSoft

Plus de MuleSoft (20)

The CIO's Guide to Digital Transformation
The CIO's Guide to Digital TransformationThe CIO's Guide to Digital Transformation
The CIO's Guide to Digital Transformation
 
How to Get Unstuck
How to Get Unstuck How to Get Unstuck
How to Get Unstuck
 
How API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationHow API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy Modernization
 
Microservices on Anypoint Platform
Microservices on Anypoint PlatformMicroservices on Anypoint Platform
Microservices on Anypoint Platform
 
Applying UX principles and methods to APIs
Applying UX principles and methods to APIs Applying UX principles and methods to APIs
Applying UX principles and methods to APIs
 
Gathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at SplunkGathering Operational Intelligence in Complex Environments at Splunk
Gathering Operational Intelligence in Complex Environments at Splunk
 
MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes MuleSoft's Approach to Driving Customer Outcomes
MuleSoft's Approach to Driving Customer Outcomes
 
Troubleshooting Anypoint Platform
Troubleshooting Anypoint PlatformTroubleshooting Anypoint Platform
Troubleshooting Anypoint Platform
 
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
Relevancy in a Rapidly Changing World (Yvonne Wassenaar)
 
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
Leveraging APIs and the Cloud to Transform Veteran Care (Steve Rushing)
 
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
Role of Technology in the Evolution of P&C Insurance (Marcus Ryu)
 
Agility in the Age of Services and Hyperspecialization (Greg Schott)
Agility in the Age of Services and Hyperspecialization (Greg Schott)Agility in the Age of Services and Hyperspecialization (Greg Schott)
Agility in the Age of Services and Hyperspecialization (Greg Schott)
 
Know What You Don’t Know - ModusBox Presents the Metrics Dashboard
Know What You Don’t Know - ModusBox Presents the Metrics DashboardKnow What You Don’t Know - ModusBox Presents the Metrics Dashboard
Know What You Don’t Know - ModusBox Presents the Metrics Dashboard
 
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
PetSmart’s eCommerce Modernization: Using APIs To Drive Agility & Omnichannel...
 
Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...
Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...
Building the Digital Foundation for a $28Bn Enterprise using MuleSoft’s Anypo...
 
Building APIs for Core Systems with Anypoint Platform
Building APIs for Core Systems with Anypoint PlatformBuilding APIs for Core Systems with Anypoint Platform
Building APIs for Core Systems with Anypoint Platform
 
Object Store V2 Workshop
Object Store V2 WorkshopObject Store V2 Workshop
Object Store V2 Workshop
 
The RAML 1.0 Ecosystem
The RAML 1.0 EcosystemThe RAML 1.0 Ecosystem
The RAML 1.0 Ecosystem
 
Patterns in Microservices for Enterprises
Patterns in Microservices for EnterprisesPatterns in Microservices for Enterprises
Patterns in Microservices for Enterprises
 
The Platform Revolution: How Networked Markets Are Transforming the Economy -...
The Platform Revolution: How Networked Markets Are Transforming the Economy -...The Platform Revolution: How Networked Markets Are Transforming the Economy -...
The Platform Revolution: How Networked Markets Are Transforming the Economy -...
 

Dernier

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Dernier (20)

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 

Gluecon 2017: Metadata is the Glue

  • 1. Uri Sarid, CTO, MuleSoft Gluecon 2017 Metadata is the Glue @usarid
  • 2. All contents © MuleSoft Inc. @usarid Companies are becoming software companies… 2@usarid
  • 3. All contents © MuleSoft Inc. @usarid Companies are becoming software companies… 3 MANUFACTURING HR FINANCE MARKETING SALES SERVICES R&D @usarid
  • 4. All contents © MuleSoft Inc. @usarid But what kind of software? 4 Isn’t it already digitized? Don’t we already have software for that? The odds are good but the goods are odd @usarid
  • 5. All contents © MuleSoft Inc. @usarid But what kind of software? 5 and they’re all connected in all sorts of ways! @usarid
  • 6. All contents © MuleSoft Inc. @usarid Where is this going? 6@usarid
  • 7. All contents © MuleSoft Inc. @usarid Where is this going? 7@usarid
  • 8. All contents © MuleSoft Inc. @usarid Software Creation  Coherent Software Assembly 8 Order Management
  • 9. All contents © MuleSoft Inc. @usarid Software Creation  Coherent Software Assembly 9 Order Management Inventory Shipping & Fulfillment
  • 10. All contents © MuleSoft Inc. @usarid Software Creation  Coherent Software Assembly 10 Order Management Inventory Shipping & Fulfillment Customer Experience application network
  • 11. All contents © MuleSoft Inc. @usarid The key is good metadata 11
  • 12. All contents © MuleSoft Inc. @usarid The key is good metadata 12 API API API API API API
  • 13. All contents © MuleSoft Inc. @usarid The key is good metadata 13
  • 14. All contents © MuleSoft Inc. @usarid The key is good metadata 14
  • 15. All contents © MuleSoft Inc. @usarid The API spec 15 designemit domain model docs live console scripting – API Notebook mocking SDK manage
  • 16. All contents © MuleSoft Inc. @usarid The functional spec 16 model your API product
  • 17. All contents © MuleSoft Inc. @usarid The functional spec 17 see the result as consumers would
  • 18. All contents © MuleSoft Inc. @usarid The functional spec 18 flesh out the request, the response…
  • 19. All contents © MuleSoft Inc. @usarid Use common behaviors 19 reusable library of behavior traits common paging behavior common caching behavior apply the traits as needed end up with a correct, consistent API
  • 20. All contents © MuleSoft Inc. @usarid Use common structures 20 a collection resource type a member resource type apply the resource types as needed end up with a correct, consistent API
  • 21. All contents © MuleSoft Inc. @usarid Model underlying data types 21 traits resource types end up with a correct, consistent API apply data types as needed
  • 22. All contents © MuleSoft Inc. @usarid Policies are extensions 22 traits resource types data types version your functional spec like you version your code this is your source code policies are operational extensions they shouldn’t affect the functional spec reusable security scheme clients see an effective API spec with security built in
  • 23. All contents © MuleSoft Inc. @usarid Overlay usecase: implementation 23 functional API spec general, reusable annotations for AWS API Gateway configuration specific config for this API’s implementation
  • 24. All contents © MuleSoft Inc. @usarid API metadata is layered and reusable 24
  • 25. All contents © MuleSoft Inc. @usarid What format? 25 API Modeling Framework RAML separation of concerns reuse - consistency modeling tools platforms layered modeling OpenAPI Spec common description common description
  • 26. All contents © MuleSoft Inc. @usarid What format? Yes! 26 API Modeling Framework RAML separation of concerns reuse - consistency modeling tools platforms layered modeling OpenAPI Spec common description common description
  • 27. All contents © MuleSoft Inc. @usarid AMF: Framework for API metadata 27 SPECIFICATION OpenAPI Spec parser/emitterRAML parser/emitter great tooling… higher-level concepts… AMF Common document modelAPI Common API-domain modelAPI

Notes de l'éditeur

  1. When the Glue Conferences started in 2008, "Glue" was roughly about "web oriented architecture" and "Interop for the Web". This has stood the test of time, as has the quest for systems coupling that's as loose as possible and no looser; for approaches and tools that empower developers to do more and have less friction. Nine years later, we're weaving a truly huge network of applications and APIs, and perhaps the most important element of the “glue” that will enable this growth to continue and compound will be metadata.
  2. Let’s start with where things stand today, in the enterprise world. The adage of ”software is eating the world” is largely already true in companies, certainly major enterprises.
  3. Pretty much wherever you look, in every sector of an enterprise, from front office to back office, from manufacturing to marketing, from internal corporate functions to external customer-facing ones, the business is run using software – in fact, lots of software, lots of systems.
  4. So if some executive were to ask about any part of the business whether it’s already “digital”, whether it’s a good bet that if he or she were to look into how that part of the business runs, would he find that it’s run on software? The answer, as my son’s friends like to say when they consider whether they’re likely to meet people at a party, is that the odds are good, but the goods are odd. There is a high likelihood of digital systems being in place, but they are of all shapes and sizes, more often than not kludged together, some new and some semi-abandoned, some fresh and exciting but many humming away under a desk or on a rack or on someone’s personal cloud account – and that someone may no longer even be with the company. Some is 1980’s tech that came with that acquisition from 8 years ago, some was the personal project of the chief architect that left in a hurry after the delayed release, and much seemed such a good idea at that time. To be sure, much of it works, and keeps the lights on. But is it ready for today’s challenges? And can you build agility on it?
  5. The question isn’t restricted to just the software systems themselves. Because for most of them, their value derives when they’re connected to, and integrated with, other systems. So over the years and decades, thin and thick pipes have been built across these systems, spreading their complexity, leading to collective behavior that may not be fully understood by any one person in the company today. The result is delays in implementing any new or changed capabilities, fragility, and often – paralysis. The opposite of agility.
  6. So where is this going? The answer is: it’s just going to get amplified. Because functions and people within the enterprise are, if anything, becoming hyper-specialized, and so are the software systems they build or buy, so there are many more of them – and many more needed to tie together to achieve larger business goals. Developments like massive deployments of IoT devices, or massive investments in microservices, greatly increase the fragmentation of the software estate.
  7. And any illusions that this is remotely controllable by “central IT” are shattered by the dominant themes of software infrastructure moving to the cloud and the consumers of software moving to mobile. Add to that the growth of shadow IT across all functions, and the compelling value propositions of SaaS offerings, and it’s clear the genie will never go back in the bottle. Fragmentation is here to stay, so we’d better get good at dealing with it.
  8. Specifically, I argue that while virtually all companies need to become software-powered companies, most companies should not become great software-creating companies; rather, they should become great software-assembling companies. The fundamental capabilities they need, whether it’s managing orders, managing inventory, fulfilling orders, managing relations with customers, etc. etc. – all these exist, and most companies are much better off figuring out how to leverage those capabilities much better, and set themselves up for leveraging new ones as they become available. Agility comes when you can quickly compose and recompose yourself to adjust to, or get ahead of, the needs of the day and the opportunities that come up, rather than getting bogged down by having to build things from scratch every time, or having to untangle how everything was previously connected. You need a way to leverage your existing investments even if you need to recompose them, you need to create more leverage with every new project, and you need to make full use of the talent of your organization. How? In every project, if you implement it by creating small services with productized APIs, they will not only be easier to deal with for this project – they’ll form building blocks for future projects.
  9. When the next project or three show up, developers will reuse services produced before, though perhaps in new ways; they’ll innovate through new composition, but they’ll also likely to create a few new building blocks.
  10. And those in turn will be useful for the next project. It won’t be long before the reinvention of wheels goes down dramatically, and a network effect sets in: every new project adds value to the network of applications already in place. Note that those applications consist of the applications the developers were working to compose (indicated in black), as well as the composite applications they created to do so (shown in blue). We call the result an “application network”, and it is analogous to computer networks in that it’s an inherently distributed and bottoms-up concept, one that’s resilient in the face of change, one that offers plug&play advantages to its users, and one whose benefits amplify as it gains scale.
  11. For today, I want to focus on a key enabler of such a network: I argue that the key is the metadata, specifically the value you get out of having good metadata about the building blocks of the application network.
  12. To get even more specific, I’ll focus on a particularly critical part of the application network: the APIs that expose any service’s capabilities to the rest of the network of services. I include evented as well as web APIs in my definition, but we’ll focus on web APIs, specifically RESTful (or at least resource-oriented) APIs, for today.
  13. Why metadata? Because metadata lets developers be intentional, and because it allows computers and automation to help developers focus on the job at hand and do that job better. An analogy is to be found in surgery: when the surgeon can literally see what he’s doing, enhanced and augmented by cutting edge technology, he ca n make intentional decisions on what to remove and what to keep, where to cut and where to suture.
  14. And she can focus on applying her smarts and her training and her intuition and creativity to the task at hand, while letting the machines overcome the drudgery of the procedure, the miniature physical manipulation often needed, and the remoteness of the patient.
  15. The metadata that describes the API is the API specification: a machine-readable document that’s also, ideally highly readable and writeable by humans (or at least by developers). How do you get such metadata? Ideally it’s intentionally designed, like any good product, with the consumers in mind. But perhaps it’s derived from the implementation of the service. Though rare today, it might also be the result of higher-level business modeling. However it’s arrived at, it ca be put to use to generate developer-friendly documentation; a live console to greatly ease exploring and testing the service via its API; it cam be simulated – mocked – before it’s implemented, so consumers can verify it meets their needs before an investment is made in building it; it can be used to generate SDK that faithfully reflect its capabilities and connect to the service in the language of choice; it can be used to quickly script scenarios of consumption, including mashing together multiple APIs, by using the API Notebook, proving out the value of the API (even if it’s just mocked) and building up documentation in the process; and it can be used to manage the service, e.g. by applying policies to appropriate parts of the API.
  16. Let’s look at that functional spec. I find it a great way to model the domain of the service I’m creating, similar to how you’d model a UI with a tool like Balsamiq, or how we all used to model with entity-relation diagrams and database tools. You lay out your domain objects as resource paths, indicate objects that “live” within other objects, and put in the operations you’d expose on them.
  17. If you do this in an API designer, you should be seeing the user’s view of the docs forming right beside the spec, giving you more visual confirmation of what you’re building from a consuming developer’s perspective.
  18. Then you usually want to dive into a particular resource or method and flesh out any data that should be sent in the request and what the responses would look like.
  19. Very quickly you would realize that you end up repeating yourself, at least if you’re designing a consistent API that does paging similarly across its methods, that does caching similarly, etc. So you can create (or reuse) separate traits for each of these common behaviors, and refer to them back in your API spec. In fact you can include all these traits into libraries and just pull them in when you need them.
  20. Similarly, you’ll want to have common structures for your resources too. The most common ones are resources that are collections, and resources that are members of collections. Again you can model them as reusable patterns, resource types, and even give those types the appropriate behaviors, using traits for example. Then refer to them in your API spec. You’ll notice that your spec becomes very succinct, even as it’s more expressive and consistent – note all the detail reflected in the generated documentation, for example. That detail will of course be useful in all the ways we mentioned before that leverage the spec.
  21. One very important area to model is the data moving through your API. Here’s an example that has some simple base types, then bigger types that compose them and primitive types together, and finally some types that inherit from those composed types and extend them. It’s super easy to model data this way, and then again put the models in libraries so they can be reused.
  22. Now, you can add security to your API spec as well, because clients for example will need to be aware of it in order to access your API. But in terms of SDLC, security policies are often applied later in the pipeline, and often by different people than the developers who built the APIs. For example, ops teams (or automated ops systems) might apply rate limiting policies only in staging and production, and the headers that result could be useful to clients of the API, but of course they were not there in the functional spec the developers created and maintain. So a best practice is to version the functional spec like you version your product – in fact, it is the functional customer-facing aspect of your product. Then policies, at least those that modify the interface, can be expressed as extensions to the API spec in separate extension documents, and these as always can refer to reusable components, such as a common security scheme describing Oauth 2. From an SDLC perspective, the developers develop and publish the functional spec and iterate it when the functionality changes, while operationally the appropriate policies are applied to it per environment; when a policy is applied, it’s expressed as an extension to that API spec; and clients or tools who parse that extension automatically get the extended “effective” API spec they use to consume that API.
  23. That kind of separation of concerns is really important when you have lots of services in play, so you want your API lifecycle to fit into a sensible SDLC that you can use consistently. Here’s another example, this time in the context of Amazon’s AWS API Gateway and Lambda. The developer who created the service maintains the functional spec of their service, but also needs to configure the API Gateway in front of his service to authenticate traffic and to work properly with his implementation in AWL Lambda. The AWS API Gateway requires a combined configuration file that has both the implementation-specific config values as well as the functional spec. To achieve all of this in a sensible way, it’s best to leave just the functional description in the functional API spec, and separately employ a single reusable library that describes the configuration data needed by any AWS API Gateway. The values of that configuration, of course, are specific for each implemented service, so an overlay file brings them together: it references the library, it points to the functional API spec, and it overlays on that spec the configuration values for the specific implementation of that service, expressed as typed annotation values – with the types being prescribed in that library. That ensures the configuration values adhere structurally to the AWS requirements, it provides the mashed-up configuration file (functional spec + overlaid config data) needed by the API Gateway, and it keeps the functional spec pristine – in fact, by using an overlay rather than an extension, you’re *guaranteed* that the functional aspects of the API (everything describing the HTTP interactions) isn’t altered by overlaying it with the config data.
  24. And so I think it’s very effective to model API metadata as layers: the functional description is the foundation, and it reuses common behaviors (traits), common structures (resource types). It employs data representations that themselves are modeled as a set of data types. And then it’s extended to express operational policies, or overlaid with more metadata for configuring implementations, for binding to test frameworks, for automatic UI generation, and so on. There are so many things you can bind with this metadata glue…
  25. The question that often comes up is: what format should I use to express my API spec? Many of us have chosen to use RAML, the RESTful API Modeling Language, which was built specifically to enable the kind of layered modeling I showed here. It’s an open specification itself, and it’s got a healthy, broad ecosystem of tools and vendors behind it, as well as broad adoption, whether it’s large enterprises such as banks or whether it’s cutting-edge consumer companies such as Spotify. Another format is the Open API Initiative’s OpenAPI Spec (OAS), which provides a more flat description format that’s even more broadly adopted and supported. As you may have heard, MuleSoft recently joined the Open API Initiative, and along with other companies is committed to supporting OAS as a common description format everywhere. And to make RAML and OAS truly interoperable, we created the API Modeling Framework, and open sourced it as well. This has lots of benefits, among them bringing the value of API modeling via RAML to the entire Open API ecosystem: we use RAML as the source code description of our APIs (the API specs, that is); we can then leverage any OAS-based tool via AMF. And we can consume any OAS-described API by using AMF’s representation of APIs as a format-agnostic model.
  26. So the answer to whether you should use RAML or OAS is: yes! Each has their benefit, and now that they’ll be interoperable, you can use either or both, depending on where you’re using the API spec.
  27. There are lots of other benefits to AMF, which Antonio Garrote described in his talk. You can find more information at https://github.com/raml-org/api-modeling-framework. It’s useful to understand its structure, so you can explore what it can do on your own too. It’s built on an extensible basis of parsers and emitters – these are what map RAML, OAS, and any other formats in the future to and from the common document model within AMF. That layered document model is exposed via an API itself, so you can programmatically retrieve and manipulate the DOM in a format-agnostic way. And that should be the basis of excellent tooling – tooling that can support all these formats automatically, and provide common capabilities such as design, validation, documentation, etc. The document model is then expressed as a logical API-domain model: these are the resources, the methods, the responses, etc. This too is exposed for programmatic access and manipulation as an API, so tools that deal with the service model, for example mocking the service, connecting to the service, validating or governing what it exposes, etc. can be built conveniently at this layer. And finally, extending the API specification to higher levels of abstraction can be done on top of AMF – but I’ll leave that to a future talk. For now, let me note that AMF is not only open source and supports multiple open specs, it’s also built on standard open technologies from the W3C, such as RDF and SHACL, and it is being implemented in multiple languages. So let me close with an invitation to check out AMF as well as RAML and OAS, and let’s collaborate on building out this next level of glue.