SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Shubhra Kar | Products & Education
twitter:@shubhrakar mail:skar@strongloop.com
Frameworks or a Design Pattern ?
About me
StrongLoop Confidential and Proprietary Information – © 2015
u J2EE and SOA architect – Infosys
u Performance architect – Wily à CA
u Node, mBaaS and API stacks - StrongLoop
These guys sent me !
Bert
Belder
Ben
Noordhuis
Node Core
Raymond
Feng
Ritchie
Martori
LoopBack / Express Core
Sam
Roberts
Miroslav
Bajtos
Ryan
Graham
Plus 15 other full-time open source
developers working on Node.js core,
modules and tools.
Contributing to over 100 open source
modules.
Supporting banks, retail, IoT companies,
startups and internet companies on Node.js
Patterns evolve to serve
market needs; not opinions
Thick	
  
Web	
  
SaaS	
  
Mobile	
   IoT	
  
The new curve: Innovate or Die
10
25
50
100100
50
10
15
40
100
25
Web SaaS Mobile IoT
The new curve
Concurrent Users Latency Adoption
StrongLoop Confidential and Proprietary Information – © 2015
Pattern 0: Natal patterns
StrongLoop Confidential and Proprietary Information – © 2015
Philosophy: KISS (Keep It Simple Stupid)
u small core
u small modules
u small surface area
Patterns
u reactor
u callback
u module
u observer
Pattern 1: Convention
Web Middleware REST API
Pros and Cons
StrongLoop Confidential and Proprietary Information – © 2015
u Pseudo-Opinionated, Express and Restify are DIY
u Middleware
u Strengths
u Express: Web templating, ecosystem
u  Restify: REST API
u Low learning curve
u Restify: Dtrace and SPDY Support
u Weakness
u Manual CRUD
u Manual recursive Testing/Refactoring
Router
in
Express
StrongLoop	
  Confiden.al	
  and	
  Proprietary	
  Informa.on	
  –	
  ©	
  2015	
  
Pattern 2: Configuration
u  Opinionated
u Configuration over
Convention
u Granular HTTP/Webserver
control
u Good plug-in ecosystem
u Supported and well
documented
u Weakness
u Manual CRUD/Refactor/
Testing
u No plug & play with
Express ecosystem
StrongLoop Confidential and Proprietary Information – © 2015
Web Middleware
Router
in
hapi
StrongLoop	
  Confiden.al	
  and	
  Proprietary	
  Informa.on	
  –	
  ©	
  2015	
  
Pattern 3 : Full Stack JS
StrongLoop Confidential and Proprietary Information – © 2015
{“..”} JSON is the new first class citizen
Pattern 4: ORM & Isomorphic JS
u Model Driven Development
u Any data source
u Isomorphic JS
u Omni-Channel
u Share Models (Client/Server)
u Loopback & Meteor
u Automatic REST API
generation, routing, etc
u Weakness
u Higher learning curve
StrongLoop Confidential and Proprietary Information – © 2015
ORM & Isomorphic JS – Loopback.io
JS
client
JS
Server
Remoting
JS
client
StrongLoop Confidential and Proprietary Information – © 2015
Developer SDKs
Router &
Swagger
in Loopback
StrongLoop	
  Confiden.al	
  and	
  Proprietary	
  Informa.on	
  –	
  ©	
  2015	
  
API Economy driven by Mobile / IoT
Mobile	
  and	
  IoT	
  explosion	
  
u Sheer	
  number	
  of	
  
clients	
  has	
  
increased	
  
u Clients	
  are	
  
increasingly	
  
sophis.cated	
  
u Node.js	
  is	
  the	
  
plaHorm	
  of	
  choice	
  
for	
  these	
  API	
  
StrongLoop	
  Confiden.al	
  and	
  Proprietary	
  Informa.on	
  –	
  ©	
  2015	
  
StrongLoop Confidential and Proprietary Information – © 2015
mobile/web
clients
social &
analytics
JSON API
API
XML
SQL
SOAP
Etc.
mBaaS
Mobile API tier
Enterprise	
  
Pattern 5: mBaaS
mBaaS could be on cloud or premises
StrongLoop Confidential and Proprietary Information – © 2015
u Closed Source / Commercial
u Open Source
Key API
u Push Notification
u Geo Location
u Offline Sync
u Storage
u User Management
u Metering, Analytics
u Native SDK
u Isomorphic JS
REST
API
PUSH
GEO
OFF
SYNC
DEVICE
USER FILE
Relational Database Clustered Database Security Gateway Cloud
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK API SERVER
Quick Example of Use
App S
Add
App Server
Storage
Relational Database Clustered Database Security Gateway Cloud Firewall SOA Bus ( not sure on this one)
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK API SERVER Items for ACL
Quick Example of Use
App Server
Add On
App Server
REST
API
GATEWAY
Channel SDKs
API ENGINE
C
O
N
N
E
C
T
O
R
s
A
P
I
S
D
K
s
Open Source ORM, mBaaS and API framework
REST API
atabase Security Gateway Cloud Firewall SOA Bus ( not sure on this one)
Phone IoT SDK API SERVER Items for ACL
Quick Example of Use
App Server
Add On
App Server
API
Explorer
GeoLocation in Loopback
Is micro services a pattern too ?
StrongLoop	
  Confiden.al	
  and	
  Proprietary	
  Informa.on	
  –	
  ©	
  2015	
  
Not just infrastructure virtualization !
API “Re-Composition” is good…
Relational Database Clustered Database Security Gateway Cloud
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK API SERVER
Quick Example of Use
App Server
Relational Database Clustered Database Security Gateway
Laptop ( not requested but useful)
Connections
Tablet Phone IoT SDK
Quick E
App Server
Auth
Routing
Rate-Limit
Proxy
Mediation
Orchestration
Analytics
StrongLoop Confidential and Proprietary Information – © 2015
Why not an API Gateway pattern ? Pattern 6
Security & Social Logins
Marquee – Auth, Routing, Throttling, Proxy, Mediation, Aggregation, Virtualization
StrongLoop Confidential and Proprietary Information – © 2015
The need is “DE-COMPOSITION”
SaaS Mobile IoTWeb
App Server API Server
HTML JSON
{JSON}
{JSON}
{JSON}<SOAP/XML>
<TABLE>
StrongLoop Confidential and Proprietary Information – © 2015
Pattern 7: Micro-services (Design Time)
StrongLoop Confidential and Proprietary Information – © 2015
StrongLoop Confidential and Proprietary Information – © 2015
Pattern 8: Micro-services (Run Time)
Now I know !!!
A Shameless Plug…
StrongLoop Confidential and Proprietary Information – © 2015
First there was Node
Thank you!
JUST WIN,
BABY!

Weitere ähnliche Inhalte

Was ist angesagt?

The New 3-Tier Architecture: HTML5, Proxies, and APIs
The New 3-Tier Architecture: HTML5, Proxies, and APIsThe New 3-Tier Architecture: HTML5, Proxies, and APIs
The New 3-Tier Architecture: HTML5, Proxies, and APIs
Apigee | Google Cloud
 
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards   25-6-2014API Athens Meetup - API standards   25-6-2014
API Athens Meetup - API standards 25-6-2014
Michael Petychakis
 
Introduction to The 6 Insights of API Practice (Bill Doerrfeld)
Introduction to The 6 Insights of API Practice (Bill Doerrfeld)Introduction to The 6 Insights of API Practice (Bill Doerrfeld)
Introduction to The 6 Insights of API Practice (Bill Doerrfeld)
Nordic APIs
 
cuttingEdgepresentation0318
cuttingEdgepresentation0318cuttingEdgepresentation0318
cuttingEdgepresentation0318
Hongbiao Chen
 

Was ist angesagt? (20)

StrongLoop Overview
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
 
Getting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi FrameworkGetting Started with the Node.js LoopBack APi Framework
Getting Started with the Node.js LoopBack APi Framework
 
StrongLoop DevOps Overview
StrongLoop DevOps OverviewStrongLoop DevOps Overview
StrongLoop DevOps Overview
 
API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?API Description Languages: Which is the Right One for Me?
API Description Languages: Which is the Right One for Me?
 
Webcast: API-Centric Architecture for Building Context-Aware Apps
Webcast: API-Centric Architecture for Building Context-Aware AppsWebcast: API-Centric Architecture for Building Context-Aware Apps
Webcast: API-Centric Architecture for Building Context-Aware Apps
 
Intro to Azure Api Management - With Cats
Intro to Azure Api Management - With CatsIntro to Azure Api Management - With Cats
Intro to Azure Api Management - With Cats
 
apidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ngapidays LIVE Paris - The Business of APIs by Jed Ng
apidays LIVE Paris - The Business of APIs by Jed Ng
 
Rapid app building with loopback framework
Rapid app building with loopback frameworkRapid app building with loopback framework
Rapid app building with loopback framework
 
The New 3-Tier Architecture: HTML5, Proxies, and APIs
The New 3-Tier Architecture: HTML5, Proxies, and APIsThe New 3-Tier Architecture: HTML5, Proxies, and APIs
The New 3-Tier Architecture: HTML5, Proxies, and APIs
 
Public API
Public APIPublic API
Public API
 
API Athens Meetup - API standards 25-6-2014
API Athens Meetup - API standards   25-6-2014API Athens Meetup - API standards   25-6-2014
API Athens Meetup - API standards 25-6-2014
 
API Management within a Microservice Architecture
API Management within a Microservice ArchitectureAPI Management within a Microservice Architecture
API Management within a Microservice Architecture
 
Introduction to The 6 Insights of API Practice (Bill Doerrfeld)
Introduction to The 6 Insights of API Practice (Bill Doerrfeld)Introduction to The 6 Insights of API Practice (Bill Doerrfeld)
Introduction to The 6 Insights of API Practice (Bill Doerrfeld)
 
API Description Languages
API Description LanguagesAPI Description Languages
API Description Languages
 
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
I Love APIs 2015: Building Predictive Apps with Lamda and MicroServices
 
Gab2015 samir arezki_api management
Gab2015 samir arezki_api managementGab2015 samir arezki_api management
Gab2015 samir arezki_api management
 
Azure api management
Azure api managementAzure api management
Azure api management
 
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
apidays LIVE Hong Kong 2021 - GraphQL : Beyond APIs, graph your enterprise by...
 
cuttingEdgepresentation0318
cuttingEdgepresentation0318cuttingEdgepresentation0318
cuttingEdgepresentation0318
 
Maintainable API Docs and Other Rainbow Colored Unicorns
Maintainable API Docs and Other Rainbow Colored UnicornsMaintainable API Docs and Other Rainbow Colored Unicorns
Maintainable API Docs and Other Rainbow Colored Unicorns
 

Andere mochten auch

Andere mochten auch (8)

The Enterprise Case for Node.js
The Enterprise Case for Node.jsThe Enterprise Case for Node.js
The Enterprise Case for Node.js
 
The Business of APIs 2009 - Hoover's
The Business of APIs 2009 - Hoover'sThe Business of APIs 2009 - Hoover's
The Business of APIs 2009 - Hoover's
 
Creating Real-Time Data Mashups with Node.JS and Adobe CQ
Creating Real-Time Data Mashups with Node.JS and Adobe CQCreating Real-Time Data Mashups with Node.JS and Adobe CQ
Creating Real-Time Data Mashups with Node.JS and Adobe CQ
 
Apache Cassandra and Python for Analyzing Streaming Big Data
Apache Cassandra and Python for Analyzing Streaming Big Data Apache Cassandra and Python for Analyzing Streaming Big Data
Apache Cassandra and Python for Analyzing Streaming Big Data
 
Architecting large Node.js applications
Architecting large Node.js applicationsArchitecting large Node.js applications
Architecting large Node.js applications
 
Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture Anatomy of a Modern Node.js Application Architecture
Anatomy of a Modern Node.js Application Architecture
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
 

Ähnlich wie Design patterns talk_node_summit

Using APIs
Using APIsUsing APIs
Using APIs
Akana
 

Ähnlich wie Design patterns talk_node_summit (20)

Picking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CasePicking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use Case
 
Oracle mobile cloud service
Oracle mobile cloud serviceOracle mobile cloud service
Oracle mobile cloud service
 
TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...
TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...
TechTalk: Accelerate Mobile Development using SDKs and Open APIs With CA API ...
 
Intro to the HTML5 Application Repository Service
Intro to the HTML5 Application Repository ServiceIntro to the HTML5 Application Repository Service
Intro to the HTML5 Application Repository Service
 
AWS Webcast - Splunk and Autodesk
AWS Webcast - Splunk and AutodeskAWS Webcast - Splunk and Autodesk
AWS Webcast - Splunk and Autodesk
 
Using APIs
Using APIsUsing APIs
Using APIs
 
Oracle Developer Meetup March 2018
Oracle Developer Meetup March 2018Oracle Developer Meetup March 2018
Oracle Developer Meetup March 2018
 
Api management customer
Api management customerApi management customer
Api management customer
 
Hong Kong User Group 2019
Hong Kong User Group 2019Hong Kong User Group 2019
Hong Kong User Group 2019
 
Oracle Mobile Solution Overview
Oracle Mobile Solution OverviewOracle Mobile Solution Overview
Oracle Mobile Solution Overview
 
IoT Smart APIs using Nomos RuleX
IoT Smart APIs using Nomos RuleXIoT Smart APIs using Nomos RuleX
IoT Smart APIs using Nomos RuleX
 
What all it takes to build a successful hybrid integration strategy?
What all it takes to build a successful hybrid integration strategy? What all it takes to build a successful hybrid integration strategy?
What all it takes to build a successful hybrid integration strategy?
 
From Monolith to Microservices
From Monolith to MicroservicesFrom Monolith to Microservices
From Monolith to Microservices
 
Future of SOA & Modern APIs
Future of SOA & Modern APIsFuture of SOA & Modern APIs
Future of SOA & Modern APIs
 
Anypoint platform in a mobile-centric world
Anypoint platform in a mobile-centric worldAnypoint platform in a mobile-centric world
Anypoint platform in a mobile-centric world
 
Scala dayssrinivas v3
Scala dayssrinivas v3Scala dayssrinivas v3
Scala dayssrinivas v3
 
API, Integration, and SOA Convergence
API, Integration, and SOA ConvergenceAPI, Integration, and SOA Convergence
API, Integration, and SOA Convergence
 
Modernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIsModernizing an Existing SOA-based Architecture with APIs
Modernizing an Existing SOA-based Architecture with APIs
 
Making Networks More Agile, Open, and Application Centric - Cisco Insights
Making Networks More Agile, Open, and Application Centric - Cisco InsightsMaking Networks More Agile, Open, and Application Centric - Cisco Insights
Making Networks More Agile, Open, and Application Centric - Cisco Insights
 
S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?
S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?
S108 - 1 Billion Smartphones a year and counting – How is your CICS connected?
 

Design patterns talk_node_summit

  • 1. Shubhra Kar | Products & Education twitter:@shubhrakar mail:skar@strongloop.com Frameworks or a Design Pattern ?
  • 2. About me StrongLoop Confidential and Proprietary Information – © 2015 u J2EE and SOA architect – Infosys u Performance architect – Wily à CA u Node, mBaaS and API stacks - StrongLoop
  • 3. These guys sent me ! Bert Belder Ben Noordhuis Node Core Raymond Feng Ritchie Martori LoopBack / Express Core Sam Roberts Miroslav Bajtos Ryan Graham Plus 15 other full-time open source developers working on Node.js core, modules and tools. Contributing to over 100 open source modules. Supporting banks, retail, IoT companies, startups and internet companies on Node.js
  • 4.
  • 5. Patterns evolve to serve market needs; not opinions Thick   Web   SaaS   Mobile   IoT  
  • 6. The new curve: Innovate or Die 10 25 50 100100 50 10 15 40 100 25 Web SaaS Mobile IoT The new curve Concurrent Users Latency Adoption StrongLoop Confidential and Proprietary Information – © 2015
  • 7. Pattern 0: Natal patterns StrongLoop Confidential and Proprietary Information – © 2015 Philosophy: KISS (Keep It Simple Stupid) u small core u small modules u small surface area Patterns u reactor u callback u module u observer
  • 8. Pattern 1: Convention Web Middleware REST API
  • 9. Pros and Cons StrongLoop Confidential and Proprietary Information – © 2015 u Pseudo-Opinionated, Express and Restify are DIY u Middleware u Strengths u Express: Web templating, ecosystem u  Restify: REST API u Low learning curve u Restify: Dtrace and SPDY Support u Weakness u Manual CRUD u Manual recursive Testing/Refactoring
  • 10. Router in Express StrongLoop  Confiden.al  and  Proprietary  Informa.on  –  ©  2015  
  • 11. Pattern 2: Configuration u  Opinionated u Configuration over Convention u Granular HTTP/Webserver control u Good plug-in ecosystem u Supported and well documented u Weakness u Manual CRUD/Refactor/ Testing u No plug & play with Express ecosystem StrongLoop Confidential and Proprietary Information – © 2015 Web Middleware
  • 12. Router in hapi StrongLoop  Confiden.al  and  Proprietary  Informa.on  –  ©  2015  
  • 13. Pattern 3 : Full Stack JS StrongLoop Confidential and Proprietary Information – © 2015 {“..”} JSON is the new first class citizen
  • 14. Pattern 4: ORM & Isomorphic JS u Model Driven Development u Any data source u Isomorphic JS u Omni-Channel u Share Models (Client/Server) u Loopback & Meteor u Automatic REST API generation, routing, etc u Weakness u Higher learning curve StrongLoop Confidential and Proprietary Information – © 2015
  • 15. ORM & Isomorphic JS – Loopback.io JS client JS Server Remoting JS client StrongLoop Confidential and Proprietary Information – © 2015 Developer SDKs
  • 16. Router & Swagger in Loopback StrongLoop  Confiden.al  and  Proprietary  Informa.on  –  ©  2015  
  • 17. API Economy driven by Mobile / IoT Mobile  and  IoT  explosion   u Sheer  number  of   clients  has   increased   u Clients  are   increasingly   sophis.cated   u Node.js  is  the   plaHorm  of  choice   for  these  API   StrongLoop  Confiden.al  and  Proprietary  Informa.on  –  ©  2015  
  • 18. StrongLoop Confidential and Proprietary Information – © 2015 mobile/web clients social & analytics JSON API API XML SQL SOAP Etc. mBaaS Mobile API tier Enterprise   Pattern 5: mBaaS
  • 19. mBaaS could be on cloud or premises StrongLoop Confidential and Proprietary Information – © 2015 u Closed Source / Commercial u Open Source Key API u Push Notification u Geo Location u Offline Sync u Storage u User Management u Metering, Analytics u Native SDK u Isomorphic JS
  • 20. REST API PUSH GEO OFF SYNC DEVICE USER FILE Relational Database Clustered Database Security Gateway Cloud Laptop ( not requested but useful) Connections Tablet Phone IoT SDK API SERVER Quick Example of Use App S Add App Server Storage Relational Database Clustered Database Security Gateway Cloud Firewall SOA Bus ( not sure on this one) Laptop ( not requested but useful) Connections Tablet Phone IoT SDK API SERVER Items for ACL Quick Example of Use App Server Add On App Server REST API GATEWAY Channel SDKs API ENGINE C O N N E C T O R s A P I S D K s Open Source ORM, mBaaS and API framework REST API atabase Security Gateway Cloud Firewall SOA Bus ( not sure on this one) Phone IoT SDK API SERVER Items for ACL Quick Example of Use App Server Add On App Server API Explorer
  • 22. Is micro services a pattern too ? StrongLoop  Confiden.al  and  Proprietary  Informa.on  –  ©  2015   Not just infrastructure virtualization !
  • 23. API “Re-Composition” is good… Relational Database Clustered Database Security Gateway Cloud Laptop ( not requested but useful) Connections Tablet Phone IoT SDK API SERVER Quick Example of Use App Server Relational Database Clustered Database Security Gateway Laptop ( not requested but useful) Connections Tablet Phone IoT SDK Quick E App Server Auth Routing Rate-Limit Proxy Mediation Orchestration Analytics StrongLoop Confidential and Proprietary Information – © 2015
  • 24. Why not an API Gateway pattern ? Pattern 6 Security & Social Logins Marquee – Auth, Routing, Throttling, Proxy, Mediation, Aggregation, Virtualization StrongLoop Confidential and Proprietary Information – © 2015
  • 25. The need is “DE-COMPOSITION” SaaS Mobile IoTWeb App Server API Server HTML JSON {JSON} {JSON} {JSON}<SOAP/XML> <TABLE> StrongLoop Confidential and Proprietary Information – © 2015
  • 26. Pattern 7: Micro-services (Design Time) StrongLoop Confidential and Proprietary Information – © 2015
  • 27. StrongLoop Confidential and Proprietary Information – © 2015 Pattern 8: Micro-services (Run Time)
  • 28. Now I know !!!
  • 29. A Shameless Plug… StrongLoop Confidential and Proprietary Information – © 2015
  • 30.
  • 31. First there was Node Thank you! JUST WIN, BABY!