SlideShare a Scribd company logo
Scalable applications with HTTP
Patrice Neff, co-founder Memonic

patrice@memonic.com
twitter.com/pneff

20100407




                                   memonic
Memonic
 • Founded in 2009
 • Your personal digital notebook
 • Easy web research
 • Try it out for free: www.memonic.com




 ©   memonic
About me
 • Web developer
 • Co-Founder Memonic
 • Previously frontend developer at local.ch
 • Details & Blog: patrice.ch




 ©   memonic
I’ll talk about...
  • Service-oriented architectures
  • Motivation
  • HTTP, the protocol
  • Real-world example




  ©   memonic
Glossary

         Performance         Scalability




               ©Prosper973       ©Kelinz1




 ©   memonic
Service-oriented architectures


                                         Internet


                 Internet



                                         Frontend




 DB             Web Server

                             Service 1   Service 2   Service 3




 ©    memonic
Key points
 • Dependencies local to service
      • Database
      • Queue
      • Synchronization
 • Try the simplest service that works
                                                     Internet
 • Services are the new classes?


                                                     Frontend




                                         Service 1   Service 2   Service 3


 ©   memonic
Motivation
 • Modularity
      • Team separation
      • Clear boundaries
      • Easier migrations / replacements
 • Re-use of services
 • Best tool for the job
      • Programming language
      • Dependencies (Database, Queue, ...)
 • Scalability




 ©   memonic
Disadvantages
 • Complex full-picture view
 • Performance
 • Data joins




                               ©Eddi 07
 ©   memonic
HTTP
 • RFC 2616 defines HTTP 1.1
 • Text protocol is debuggable
 • Solved problems:
      •   Caching
      •   Compression
      •   Error handling
      •   Authentication
      •   Content negotiation
      •   Documentation




 ©   memonic
HTTP Example
GET /intl/en/about.html HTTP/1.1
Host: www.google.ch

     HTTP/1.1 200 OK
     Date: Wed, 24 Mar 2010 20:51:06 GMT
     Expires: -1
     Cache-Control: private, max-age=0
     Content-Type: text/html; charset=ISO-8859-1
     Server: gws
     X-XSS-Protection: 0

     <!doctype html>...
 ©   memonic
Caching
 • Cache-Control response header:
      • Allow or prohibit caching
      • Specify cache validity
 • ETag response header:
      • Client can validate it’s cache content
      • Avoids re-transmission of content




 ©   memonic
Caching Example
GET /1/83.76.244.123 HTTP/1.1
Host: geoip
Accept: application/json


     HTTP/1.1 200 OK
     Cache-Control: max-age=31536000
     Expires: Fri, 25 Mar 2011 17:28:44 GMT
     Content-Type: application/json; charset=UTF-8
     Content-MD5: a59a841c05fdddef931399ef2275f6d3

     {"country_code": "CH"}

 ©   memonic
Memonic Architecture

                                 Internet




                geoip                                   staticpage




                                 Frontend

               browser                                       index




                user     label              storage      pipeline




                                  mime          screenshot           html_cleanup
 ©   memonic
Links




http://www.memonic.com/user/pneff/set/presentation-http-scalability

                     or: http://mem.to/t/1Fsc




   ©   memonic
Thank you!
Patrice Neff, co-founder Memonic

patrice@memonic.com
twitter.com/pneff

20100407




                                   memonic

More Related Content

Viewers also liked

Memonic Architecture
Memonic ArchitectureMemonic Architecture
Memonic Architecture
Patrice Neff
 
Blending Formal & Informal Learning Using New Technologies in the Workplace
Blending Formal & Informal Learning Using New Technologies in the WorkplaceBlending Formal & Informal Learning Using New Technologies in the Workplace
Blending Formal & Informal Learning Using New Technologies in the Workplace
Buthaina AlOthman
 
Startup in den Wolken
Startup in den WolkenStartup in den Wolken
Startup in den Wolken
Patrice Neff
 
Getting the Most out of the Social Web to Create New Cultures of Learning & ...
Getting the Most out of the Social Web to Create New Cultures of Learning & ...Getting the Most out of the Social Web to Create New Cultures of Learning & ...
Getting the Most out of the Social Web to Create New Cultures of Learning & ...
Buthaina AlOthman
 
Passive voice
Passive voicePassive voice
Passive voice
Buthaina AlOthman
 
Present Perfect Progressive
Present Perfect ProgressivePresent Perfect Progressive
Present Perfect Progressive
Buthaina AlOthman
 
Present Perfect Versus Past Tense
Present Perfect Versus Past TensePresent Perfect Versus Past Tense
Present Perfect Versus Past Tense
Buthaina AlOthman
 

Viewers also liked (7)

Memonic Architecture
Memonic ArchitectureMemonic Architecture
Memonic Architecture
 
Blending Formal & Informal Learning Using New Technologies in the Workplace
Blending Formal & Informal Learning Using New Technologies in the WorkplaceBlending Formal & Informal Learning Using New Technologies in the Workplace
Blending Formal & Informal Learning Using New Technologies in the Workplace
 
Startup in den Wolken
Startup in den WolkenStartup in den Wolken
Startup in den Wolken
 
Getting the Most out of the Social Web to Create New Cultures of Learning & ...
Getting the Most out of the Social Web to Create New Cultures of Learning & ...Getting the Most out of the Social Web to Create New Cultures of Learning & ...
Getting the Most out of the Social Web to Create New Cultures of Learning & ...
 
Passive voice
Passive voicePassive voice
Passive voice
 
Present Perfect Progressive
Present Perfect ProgressivePresent Perfect Progressive
Present Perfect Progressive
 
Present Perfect Versus Past Tense
Present Perfect Versus Past TensePresent Perfect Versus Past Tense
Present Perfect Versus Past Tense
 

Similar to Scalable applications with HTTP

triAGENS simplevoc vs_memcached
triAGENS simplevoc vs_memcachedtriAGENS simplevoc vs_memcached
triAGENS simplevoc vs_memcached
triAGENS
 
SimpleVoc vs Memcached
SimpleVoc vs MemcachedSimpleVoc vs Memcached
SimpleVoc vs Memcached
triagens
 
Type URL, Enter, and Then …
Type URL, Enter, and Then …Type URL, Enter, and Then …
Type URL, Enter, and Then …
Jinglun Li
 
dotNET_Overview.pdf
dotNET_Overview.pdfdotNET_Overview.pdf
dotNET_Overview.pdf
valerie5142000
 
Lecture3 introduction towebpages
Lecture3 introduction towebpagesLecture3 introduction towebpages
Lecture3 introduction towebpages
amitpatil777
 
Multi-Lingual Accumulo Communications
Multi-Lingual Accumulo CommunicationsMulti-Lingual Accumulo Communications
Multi-Lingual Accumulo Communications
Accumulo Summit
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
NCCOMMS
 
Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Security
chuckbt
 
Front End Optimization [Cloud Connect 2012]
Front End Optimization [Cloud Connect 2012]Front End Optimization [Cloud Connect 2012]
Front End Optimization [Cloud Connect 2012]
Strangeloop
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_php
Jeanho Chu
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
Serdar Basegmez
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
iMOBDEV Technologies Pvt. Ltd.
 
1. web technology basics
1. web technology basics1. web technology basics
1. web technology basics
Jyoti Yadav
 
9 10 july2020
9 10 july20209 10 july2020
9 10 july2020
PreetiSaini55
 
The Web, After HTML5
The Web, After HTML5The Web, After HTML5
The Web, After HTML5
Jonathan Jeon
 
Performance tuning of Websites
Performance tuning of WebsitesPerformance tuning of Websites
Performance tuning of Websites
muHive Technologies
 
Making Joomla! site fly with nginx : Joomla! day Malaysia 2011
Making Joomla! site fly with nginx : Joomla! day Malaysia 2011Making Joomla! site fly with nginx : Joomla! day Malaysia 2011
Making Joomla! site fly with nginx : Joomla! day Malaysia 2011
phptechtalk
 
To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservic...
To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservic...To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservic...
To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservic...
Tony Erwin
 
Multimedia- How Internet Works
Multimedia- How Internet WorksMultimedia- How Internet Works
Multimedia- How Internet Works
sambhenilesh
 
Stop Those Prying Eyes Getting To Your Data SPTechCon
Stop Those Prying Eyes Getting To Your Data SPTechConStop Those Prying Eyes Getting To Your Data SPTechCon
Stop Those Prying Eyes Getting To Your Data SPTechCon
Liam Cleary [MVP]
 

Similar to Scalable applications with HTTP (20)

triAGENS simplevoc vs_memcached
triAGENS simplevoc vs_memcachedtriAGENS simplevoc vs_memcached
triAGENS simplevoc vs_memcached
 
SimpleVoc vs Memcached
SimpleVoc vs MemcachedSimpleVoc vs Memcached
SimpleVoc vs Memcached
 
Type URL, Enter, and Then …
Type URL, Enter, and Then …Type URL, Enter, and Then …
Type URL, Enter, and Then …
 
dotNET_Overview.pdf
dotNET_Overview.pdfdotNET_Overview.pdf
dotNET_Overview.pdf
 
Lecture3 introduction towebpages
Lecture3 introduction towebpagesLecture3 introduction towebpages
Lecture3 introduction towebpages
 
Multi-Lingual Accumulo Communications
Multi-Lingual Accumulo CommunicationsMulti-Lingual Accumulo Communications
Multi-Lingual Accumulo Communications
 
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
O365Con19 - Things I've Learned While Building a Product on SharePoint Modern...
 
Html5 Application Security
Html5 Application SecurityHtml5 Application Security
Html5 Application Security
 
Front End Optimization [Cloud Connect 2012]
Front End Optimization [Cloud Connect 2012]Front End Optimization [Cloud Connect 2012]
Front End Optimization [Cloud Connect 2012]
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_php
 
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
IBM Connect 2017: Your Data In the Major Leagues: A Practical Guide to REST S...
 
Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016Top 10 web application development frameworks 2016
Top 10 web application development frameworks 2016
 
1. web technology basics
1. web technology basics1. web technology basics
1. web technology basics
 
9 10 july2020
9 10 july20209 10 july2020
9 10 july2020
 
The Web, After HTML5
The Web, After HTML5The Web, After HTML5
The Web, After HTML5
 
Performance tuning of Websites
Performance tuning of WebsitesPerformance tuning of Websites
Performance tuning of Websites
 
Making Joomla! site fly with nginx : Joomla! day Malaysia 2011
Making Joomla! site fly with nginx : Joomla! day Malaysia 2011Making Joomla! site fly with nginx : Joomla! day Malaysia 2011
Making Joomla! site fly with nginx : Joomla! day Malaysia 2011
 
To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservic...
To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservic...To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservic...
To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservic...
 
Multimedia- How Internet Works
Multimedia- How Internet WorksMultimedia- How Internet Works
Multimedia- How Internet Works
 
Stop Those Prying Eyes Getting To Your Data SPTechCon
Stop Those Prying Eyes Getting To Your Data SPTechConStop Those Prying Eyes Getting To Your Data SPTechCon
Stop Those Prying Eyes Getting To Your Data SPTechCon
 

Recently uploaded

HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
Pablo Gómez Abajo
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 

Recently uploaded (20)

HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Mutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented ChatbotsMutation Testing for Task-Oriented Chatbots
Mutation Testing for Task-Oriented Chatbots
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Artificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic WarfareArtificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic Warfare
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 

Scalable applications with HTTP

  • 1. Scalable applications with HTTP Patrice Neff, co-founder Memonic patrice@memonic.com twitter.com/pneff 20100407 memonic
  • 2. Memonic • Founded in 2009 • Your personal digital notebook • Easy web research • Try it out for free: www.memonic.com © memonic
  • 3. About me • Web developer • Co-Founder Memonic • Previously frontend developer at local.ch • Details & Blog: patrice.ch © memonic
  • 4. I’ll talk about... • Service-oriented architectures • Motivation • HTTP, the protocol • Real-world example © memonic
  • 5. Glossary Performance Scalability ©Prosper973 ©Kelinz1 © memonic
  • 6. Service-oriented architectures Internet Internet Frontend DB Web Server Service 1 Service 2 Service 3 © memonic
  • 7. Key points • Dependencies local to service • Database • Queue • Synchronization • Try the simplest service that works Internet • Services are the new classes? Frontend Service 1 Service 2 Service 3 © memonic
  • 8. Motivation • Modularity • Team separation • Clear boundaries • Easier migrations / replacements • Re-use of services • Best tool for the job • Programming language • Dependencies (Database, Queue, ...) • Scalability © memonic
  • 9. Disadvantages • Complex full-picture view • Performance • Data joins ©Eddi 07 © memonic
  • 10. HTTP • RFC 2616 defines HTTP 1.1 • Text protocol is debuggable • Solved problems: • Caching • Compression • Error handling • Authentication • Content negotiation • Documentation © memonic
  • 11. HTTP Example GET /intl/en/about.html HTTP/1.1 Host: www.google.ch HTTP/1.1 200 OK Date: Wed, 24 Mar 2010 20:51:06 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=ISO-8859-1 Server: gws X-XSS-Protection: 0 <!doctype html>... © memonic
  • 12. Caching • Cache-Control response header: • Allow or prohibit caching • Specify cache validity • ETag response header: • Client can validate it’s cache content • Avoids re-transmission of content © memonic
  • 13. Caching Example GET /1/83.76.244.123 HTTP/1.1 Host: geoip Accept: application/json HTTP/1.1 200 OK Cache-Control: max-age=31536000 Expires: Fri, 25 Mar 2011 17:28:44 GMT Content-Type: application/json; charset=UTF-8 Content-MD5: a59a841c05fdddef931399ef2275f6d3 {"country_code": "CH"} © memonic
  • 14. Memonic Architecture Internet geoip staticpage Frontend browser index user label storage pipeline mime screenshot html_cleanup © memonic
  • 16. Thank you! Patrice Neff, co-founder Memonic patrice@memonic.com twitter.com/pneff 20100407 memonic