RPC VS. REST VS. GraphQL

Size: px
Start display at page:

Download "RPC VS. REST VS. GraphQL"

Transcription

1 RPC VS. REST VS. GraphQL An API throwdown February 27, 2018

2 WHICH API STYLE IS BEST? {

3 THE DEBATE IS STILL RAGING

4 DEBATES MISS THE POINT

5 API DESIGN EVOLUTION? NOT QUITE. REST RPC

6 Coupling Chattiness Client complexity Cognitive complexity Caching Discoverability Versioning { MANY DESIGN CONSIDERATIONS

7 GOAL: Understand the practical tradeoffs

8 RPC Remote procedure call

9 "Call a function on another server" Fundamental unit: function

10 RPC API EXAMPLE Service definition listconversations(); listmessages(int conversationid); sendmessage(int conversationid, string body);

11 RPC API EXAMPLE Service definition GET /listconversations GET /listmessages?id=123 POST /sendmessage?id=123

12 RPC API EXAMPLE Get all conversations GET /listconversations [ { "id": 2, "title": "vi or emacs?", "author": 1008,... ]

13 RPC API EXAMPLE Get all messages in a conversation GET /listmessages?id=2 [ { "id": 100, "message": "Atom", "author": 3001, { "id": 101, "message": "Real programmers use Notepad.", "author": 3009 ]

14 RPC API EXAMPLE Reply to conversation POST /sendmessage?id=2 { "body": "Editor debates are silly"

15 Cutting edge of RPC Apache Thrift grpc Twirp

16 ADVANTAGES OF RPC Simple and easy to understand Lightweight payloads High performance

17 PROBLEMS WITH RPC Tight coupling No discoverability Function explosion

18 FUNCTION EXPLOSION /listconversations /listconversationsv2 /listmessages /sendmessage /sendmessagertl /checksendstatus /getauthordetails /getauthordetailsv2 /getfullauthordetailsv3 /deletemessage /deletemessageadmin /gettopconversations /gettopconversationsv2 /getsystemstatus

19 REST Representational state transfer

20 "Here are some resources and what you can do with them" Fundamental unit: resource

21 { "conversations": { "href": " "rel": [ "collection" ], "desc": "View all conversations", "messages:" { "href": " "rel": [ "collection" ] REST API EXAMPLE Entry point GET

22 REST API EXAMPLE Get all conversations GET { "count": 2, "value": [ { "href": " "title": "vim or emacs?", "author": " "messages": " ]

23 REST API EXAMPLE Get all messages in a conversation GET { "count": 3, "value": [ { "href": " "conversation": " "text": "Real programmers use Notepad.", "author": " ]

24 REST API EXAMPLE Describe operations on resources "create": { "href": " "method": "POST", "desc": "Reply to conversation", "value": [ { "name": "text", "desc": "Your reply" ]

25 REST API EXAMPLE Reply to a conversation POST { "text": "Editor debates are silly"

26 REST API EXAMPLE Get author info GET { "href": " "name": "Joe Brogrammer", "location": "None of your business", "messages": { "href": " "rel" [ "collection" ], "desc": "View user's messages"

27 REST API EXAMPLE Get recent conversations + replies + authors GET GET GET GET GET GET GET

28 REST!= JSON over HTTP REST!= "RESTful procedure call"

29 Hypertext As The Engine Of Application State Goal: decouple the client and server

30 Cutting edge of REST HAL JSON-API Ion

31 ADVANTAGES OF REST Decoupled client and server API can evolve over time Reuses HTTP

32 PROBLEMS WITH REST No single spec Big payloads and "chattiness"

33 REST API "CHATTINESS" GET GET GET GET GET GET GET

34 GraphQL Graph query language

35 "Ask for exactly what you want" Fundamental unit: query

36 GRAPHQL API EXAMPLE Schema definition type Query { listconversations: [Conversation] type Mutation { sendmessage(text: String): Message type Conversation { id: Int title: String messages: [Message] type Message { id: ID text: String author: User type User { id: ID name: String

37 GRAPHQL API EXAMPLE Get all conversations and messages { listconversations { title, messages { text { "data": { "listconversations": [ { "title": "vim or emacs?", "messages": [ { "text": "Real programmers use Notepad." ] ]

38 GRAPHQL API EXAMPLE Get all conversations + messages + author names { listconversations { title, messages { text, author { name { "data": { "listconversations": [ { "title": "vim or emacs?", "messages": [ { "text": "Real programmers use Notepad." "author": { "name": "Joe Brogrammer" ] ]

39 GRAPHQL API EXAMPLE Reply to a conversation mutation { sendmessage(text: "vscode is best") { id { "data": { "sendmessage": { "id": "103"

40 ADVANTAGES OF GRAPHQL Low network overhead Typed schema Fits graph-like data very well

41 Complexity PROBLEMS WITH GRAPHQL Caching Versioning Still early

42 DESIGN CONSIDERATIONS Coupling Chattiness Client complexity Cognitive complexity Caching Discoverability Versioning RPC Functions High Medium Low Low Custom Bad Hard REST Resources Low High Medium Low HTTP Good Easy GraphQL Queries Medium Low High High Custom Good???

43 THE DEBATE IS STILL RAGING WHICH API STYLE IS BEST? WHO USES MY API?

44 USE CASE: MANAGEMENT API Focus on objects or resources Many varied clients Discoverability and documentation Consider: REST (Ion, HAL, JSON-API)

45 USE CASE: COMMAND API Action-oriented Simple interactions Consider: RPC

46 USE CASE: MICROSERVICES High message rate Low overhead Consider: RPC (grpc, Twirp) or REST

47 USE CASE: DATA OR MOBILE API Data is graph-like Optimize for high latency Consider: GraphQL

48 NO SILVER BULLET

49 LEARN MORE YouTube: Les Hazlewood on REST API design YouTube: Eric Baer on GraphQL Phil Sturgeon's blog:

SERVICE API SPECIALIST Certification. Service API Specialist

SERVICE API SPECIALIST Certification. Service API Specialist SERVICE API SPECIALIST Certification Service API The new generation SOACP program from Arcitura is dedicated to excellence in the fields of contemporary service-oriented architecture, microservices, service

More information

LOG8430: Architecture logicielle et conception avancée

LOG8430: Architecture logicielle et conception avancée LOG8430: Architecture logicielle et conception avancée Microservices, REST and GraphQL Automne 2017 Fabio Petrillo Chargé de Cours This work is licensed under a Creative 1 Commons Attribution-NonCommercialShareAlike

More information

{ REST } vs. Battle of API s

{ REST } vs. Battle of API s { REST } vs Battle of API s Software Engineer at Sensedia Who am I? MBA in java projects Java and microservice enthusiastic Microservices Agenda REST grpc Demo Questions Moving to Microservices Monolith

More information

Internet of Things Workshop ST 2015/2016

Internet of Things Workshop ST 2015/2016 Internet of Things Workshop ST 2015/2016 Architecture Johan Lukkien John Carpenter, 1982 1 Architectural styles (patterns) Remember: An architecture is the fundamental organization of a system embodied

More information

The EHRI GraphQL API IEEE Big Data Workshop on Computational Archival Science

The EHRI GraphQL API IEEE Big Data Workshop on Computational Archival Science The EHRI GraphQL API IEEE Big Data Workshop on Computational Archival Science 13/12/2017 Mike Bryant CONNECTING COLLECTIONS The EHRI Project The main objective of EHRI is to support the Holocaust research

More information

The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh

The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh The Future of the Realtime Web BETTER APIS WITH GRAPHQL Josh Price @joshprice STEPPING STONES TO FP Language (Elixir) Strongly-Typed APIs (GraphQL) GRAPHQL WAS HERE? http://whiteafrican.com/2008/05/12/crossing-the-mapping-chasm/

More information

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav BUILDING MICROSERVICES ON AZURE ~ Vaibhav Gujral @vabgujral About Me Over 11 years of experience Working with Assurant Inc. Microsoft Certified Azure Architect MCSD, MCP, Microsoft Specialist Aspiring

More information

GraphQL: Mind Your Ps and QLs

GraphQL: Mind Your Ps and QLs GraphQL: Mind Your Ps and QLs Misha Kotov Sr. Product Manager @mish_capish Cristian Partica MTS 1, Software Engineer @magento_chris The Beginning GraphQL Data query language developed internally by Facebook

More information

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup Managing Data at Scale: Microservices and Events Randy Shoup @randyshoup linkedin.com/in/randyshoup Background VP Engineering at Stitch Fix o Combining Art and Science to revolutionize apparel retail Consulting

More information

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

Basic Concepts of the Energy Lab 2.0 Co-Simulation Platform

Basic Concepts of the Energy Lab 2.0 Co-Simulation Platform Basic Concepts of the Energy Lab 2.0 Co-Simulation Platform Jianlei Liu KIT Institute for Applied Computer Science (Prof. Dr. Veit Hagenmeyer) KIT University of the State of Baden-Wuerttemberg and National

More information

RESTful API Design APIs your consumers will love

RESTful API Design APIs your consumers will love RESTful API Design APIs your consumers will love Matthias Biehl RESTful API Design Copyright 2016 by Matthias Biehl All rights reserved, including the right to reproduce this book or portions thereof in

More information

GraphQL - when REST API is not

GraphQL - when REST API is not GraphQL - when REST API is not GraphQL - when RESTlearned API is enough - lessons not enough - Marcin lessons Stachniuk learned Marcin Stachniuk Marcin Stachniuk mstachniuk.github.io /mstachniuk/graphql-java-example

More information

Web APIs that Developers Love. Kai

Web APIs that Developers Love. Kai 1 Web APIs that Developers Love Kai Spichale @kspichale 2 Communication among developers Decoupling from implementation Client API Implementation Operations with input and output Integration & reuse 3

More information

OCF Specification Overview Core Technology Specification. OCF 2.0 Release June 2018

OCF Specification Overview Core Technology Specification. OCF 2.0 Release June 2018 OCF Specification Overview Core Technology Specification OCF 2.0 Release June 2018 Core Framework Topics Outline (1 of 2) Objectives RESTful Architecture OCF Roles Resources Basic Operations Organization

More information

Tools of the Trade Web Development at Fairfax Media

Tools of the Trade Web Development at Fairfax Media Tools of the Trade Web Development at Fairfax Media Who am I? George Wright Technology Director - Metro Publishing Fairfax Media Janette Chiu Software Engineer - Metro Publishing Fairfax Media I am responsible

More information

How we build TiDB. Max Liu PingCAP Amsterdam, Netherlands October 5, 2016

How we build TiDB. Max Liu PingCAP Amsterdam, Netherlands October 5, 2016 How we build TiDB Max Liu PingCAP Amsterdam, Netherlands October 5, 2016 About me Infrastructure engineer / CEO of PingCAP Working on open source projects: TiDB: https://github.com/pingcap/tidb TiKV: https://github.com/pingcap/tikv

More information

MongoDB Web Architecture

MongoDB Web Architecture MongoDB Web Architecture MongoDB MongoDB is an open-source, NoSQL database that uses a JSON-like (BSON) document-oriented model. Data is stored in collections (rather than tables). - Uses dynamic schemas

More information

Web Services Week 10

Web Services Week 10 Web Services Week 10 Emrullah SONUÇ Department of Computer Engineering Karabuk University Fall 2017 1 Recap BPEL Process in Netbeans RESTful Web Services Introduction to Rest Api 2 Contents RESTful Web

More information

Albis: High-Performance File Format for Big Data Systems

Albis: High-Performance File Format for Big Data Systems Albis: High-Performance File Format for Big Data Systems Animesh Trivedi, Patrick Stuedi, Jonas Pfefferle, Adrian Schuepbach, Bernard Metzler, IBM Research, Zurich 2018 USENIX Annual Technical Conference

More information

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles Jørgen Thelin Chief Scientist Cape Clear Software Inc. Abstract The three common software architecture styles

More information

Microservices. Webservices with Scala (II) Microservices

Microservices. Webservices with Scala (II) Microservices Microservices Webservices with Scala (II) Microservices 2018 1 Content Deep Dive into Play2 1. Database Access with Slick 2. Database Migration with Flyway 3. akka 3.1. overview 3.2. akka-http (the http

More information

Writing REST APIs with OpenAPI and Swagger Ada

Writing REST APIs with OpenAPI and Swagger Ada Writing REST APIs with OpenAPI and Swagger Ada Stéphane Carrez FOSDEM 2018 OpenAPI and Swagger Ada Introduction to OpenAPI and Swagger Writing a REST Ada client Writing a REST Ada server Handling security

More information

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture

Goal: Offer practical information to help the architecture evaluation of an SOA system. Evaluating a Service-Oriented Architecture Evaluating a Service-Oriented Architecture Paulo Merson, SEI with Phil Bianco, SEI Rick Kotermanski, Summa Technologies May 2007 Goal: Offer practical information to help the architecture evaluation of

More information

416 Distributed Systems. RPC Day 2 Jan 11, 2017

416 Distributed Systems. RPC Day 2 Jan 11, 2017 416 Distributed Systems RPC Day 2 Jan 11, 2017 1 Last class Finish networks review Fate sharing End-to-end principle UDP versus TCP; blocking sockets IP thin waist, smart end-hosts, dumb (stateless) network

More information

Apache Thrift Introduction & Tutorial

Apache Thrift Introduction & Tutorial Apache Thrift Introduction & Tutorial Marlon Pierce, Suresh Marru Q & A TIOBE Index Programming Language polyglotism Modern distributed applications are rarely composed of modules written in a single language.

More information

Discover GraphQL with Python, Graphene and Odoo. FOSDEM Stéphane Bidoul Version 1.0.4

Discover GraphQL with Python, Graphene and Odoo. FOSDEM Stéphane Bidoul Version 1.0.4 Discover GraphQL with Python, Graphene and Odoo FOSDEM 2019-02-03 Stéphane Bidoul Version 1.0.4 2 / 47 A short story Why this talk 3 / 47 /me in a nutshell @sbidoul CTO of (https://acsone.eu)

More information

Introduction to GraphQL and Relay. Presenter: Eric W. Greene

Introduction to GraphQL and Relay. Presenter: Eric W. Greene Introduction to GraphQL and Relay Presenter: Eric W. Greene Welcome to the Webinar! Welcome to the webinar on GraphQL and Relay!!! We will review a few slides, then experiment with GraphQL and review GraphQL

More information

416 Distributed Systems. RPC Day 2 Jan 12, 2018

416 Distributed Systems. RPC Day 2 Jan 12, 2018 416 Distributed Systems RPC Day 2 Jan 12, 2018 1 Last class Finish networks review Fate sharing End-to-end principle UDP versus TCP; blocking sockets IP thin waist, smart end-hosts, dumb (stateless) network

More information

Investigating Source Code Reusability for Android and Blackberry Applications

Investigating Source Code Reusability for Android and Blackberry Applications Investigating Source Code Reusability for Android and Blackberry Applications Group G8 Jenelle Chen Aaron Jin 1 Outline Recaps Challenges with mobile development Problem definition Approach Demo Detailed

More information

Web-APIs. Examples Consumer Technology Cross-Domain communication Provider Technology

Web-APIs. Examples Consumer Technology Cross-Domain communication Provider Technology Web-APIs Examples Consumer Technology Cross-Domain communication Provider Technology Applications Blogs and feeds OpenStreetMap Amazon, Ebay, Oxygen, Magento Flickr, YouTube 3 more on next pages http://en.wikipedia.org/wiki/examples_of_representational_state_transfer

More information

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

Service Oriented Architectures (ENCS 691K Chapter 2)

Service Oriented Architectures (ENCS 691K Chapter 2) Service Oriented Architectures (ENCS 691K Chapter 2) Roch Glitho, PhD Associate Professor and Canada Research Chair My URL - http://users.encs.concordia.ca/~glitho/ The Key Technologies on Which Cloud

More information

Semantic Interoperability Requires Self-describing Interaction Models

Semantic Interoperability Requires Self-describing Interaction Models Semantic Interoperability Requires Self-describing Interaction Models IRTF T2TRG Meeting, San Jose, CA, USA, 2016 Matthias Kovatsch (kovatsch@inf.ethz.ch) Klaus Hartke (hartke@tzi.org) 1 Information Model

More information

Layered UI and Adaptation Policies for Ubiquitous Web Applications

Layered UI and Adaptation Policies for Ubiquitous Web Applications Layered UI and Adaptation Policies for Ubiquitous Web Applications Centering ideas for upcoming standards 25 October 2007 José M. Cantera.- Telefónica I+D jmcf@tid.es Introduction Introduction Developing

More information

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE

SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE SOFTWARE ARCHITECTURES ARCHITECTURAL STYLES SCALING UP PERFORMANCE Tomas Cerny, Software Engineering, FEE, CTU in Prague, 2014 1 ARCHITECTURES SW Architectures usually complex Often we reduce the abstraction

More information

GraphQL in Python and Django. Patrick

GraphQL in Python and Django. Patrick GraphQL in Python and Django Patrick Arminio @patrick91 Who am I Patrick Arminio Backend Engineer @ Verve Chairperson at Python Italia @patrick91 online GraphQL? WEB 1.0 WEB 2.0 REST APIs While REST

More information

Shackbus. interconnecting your Shack. Tobias

Shackbus. interconnecting your Shack. Tobias Shackbus interconnecting your Shack Tobias Wellnitz @DH1TW Today we have: - Proprietary Protocols - Legacy Hardware - No / very limited interoperability What we want: Interconnected devices in our Shacks!

More information

Remote Procedure Calls

Remote Procedure Calls CS 5450 Remote Procedure Calls Vitaly Shmatikov Abstractions Abstractions for communication TCP masks some of the pain of communicating over unreliable IP Abstractions for computation Goal: programming

More information

Towards a Zero-Configuration Wireless Sensor Network Architecture for Smart Buildings

Towards a Zero-Configuration Wireless Sensor Network Architecture for Smart Buildings Towards a Zero-Configuration Wireless Sensor Network Architecture for Smart Buildings By Lars Schor, Philipp Sommer, Roger Wattenhofer Computer Engineering and Networks Laboratory ETH Zurich, Switzerland

More information

REST Easy with Infrared360

REST Easy with Infrared360 REST Easy with Infrared360 A discussion on HTTP-based RESTful Web Services and how to use them in Infrared360 What is REST? REST stands for Representational State Transfer, which is an architectural style

More information

Semantic Web Systems Introduction Jacques Fleuriot School of Informatics

Semantic Web Systems Introduction Jacques Fleuriot School of Informatics Semantic Web Systems Introduction Jacques Fleuriot School of Informatics 11 th January 2015 Semantic Web Systems: Introduction The World Wide Web 2 Requirements of the WWW l The internet already there

More information

Distributed File Systems II

Distributed File Systems II Distributed File Systems II To do q Very-large scale: Google FS, Hadoop FS, BigTable q Next time: Naming things GFS A radically new environment NFS, etc. Independence Small Scale Variety of workloads Cooperation

More information

Architectural Code Analysis. Using it in building Microservices NYC Cloud Expo 2017 (June 6-8)

Architectural Code Analysis. Using it in building Microservices NYC Cloud Expo 2017 (June 6-8) Architectural Code Analysis Using it in building Microservices NYC Cloud Expo 2017 (June 6-8) Agenda Intro to Structural Analysis Challenges addressed during traditional software development The new world

More information

Architectural patterns and models for implementing CSPA

Architectural patterns and models for implementing CSPA Architectural patterns and models for implementing CSPA Marco Silipo THE CONTRACTOR IS ACTING UNDER A FRAMEWORK CONTRACT CONCLUDED WITH THE COMMISSION Application architecture Outline SOA concepts and

More information

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca CSCI-1680 RPC and Data Representation Rodrigo Fonseca Today Defining Protocols RPC IDL Problem Two programs want to communicate: must define the protocol We have seen many of these, across all layers E.g.,

More information

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006 Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006 John Hohwald Slide 1 Definitions and Terminology What is SOA? SOA is an architectural style whose goal is to achieve loose coupling

More information

XML: the document format of the future?

XML: the document format of the future? Arco User Conference 99 XML: the document format of the future? Hans C. Arents senior IT market analyst I.T. Works Guiding the IT Professional Innovation Center, Technologiepark 3, B-9052 Gent (Belgium),

More information

CDMI for Cloud IPC David Slik NetApp, Inc.

CDMI for Cloud IPC David Slik NetApp, Inc. CDMI for Cloud IPC David Slik NetApp, Inc. 2011 Storage Developer Conference. Insert Your Company Name. All Rights Reserved. Session Agenda A Brief Overview of CDMI What is IPC CDMI Queues Common IPC Design

More information

INF5750. RESTful Web Services

INF5750. RESTful Web Services INF5750 RESTful Web Services Recording Audio from the lecture will be recorded! Will be put online if quality turns out OK Outline REST HTTP RESTful web services HTTP Hypertext Transfer Protocol Application

More information

Talend Component tgoogledrive

Talend Component tgoogledrive Talend Component tgoogledrive Purpose and procedure This component manages files on a Google Drive. The component provides these capabilities: 1. Providing only the client for other tgoogledrive components

More information

REST API s in a CA Plex context. API Design and Integration into CA Plex landscape

REST API s in a CA Plex context. API Design and Integration into CA Plex landscape REST API s in a CA Plex context API Design and Integration into CA Plex landscape Speaker Software Architect and Consultant at CM First AG, Switzerland since 2008 having 30+ years of experience with the

More information

Own change. TECHNICAL WHITE PAPER Data Integration With REST API

Own change. TECHNICAL WHITE PAPER Data Integration With REST API TECHNICAL WHITE PAPER Data Integration With REST API Real-time or near real-time accurate and fast retrieval of key metrics is a critical need for an organization. Many times, valuable data are stored

More information

Announcements. Next week Upcoming R2

Announcements. Next week Upcoming R2 Announcements Next week Upcoming R2 APIs & Web Services SWEN-343 Today Need for APIs Webservices Types SOAP & REST SOA Microservices API (High-Level) Definition Application Program Interface A set of routines,

More information

ANGEL CITY INTERACTIVE

ANGEL CITY INTERACTIVE ANGEL CITY INTERACTIVE Security API Guide Version 1.0 18 September 2017 Angel City Interactive 1117 10 th St., Apt. 2 626.202.6728 aidan@aidanatwork.com - http://demo.aidanatwork.com Preface Intended Audience

More information

OData: What s New with REST APIs for Your Database. Sanjeev Mohan, Gartner Nishanth Kadiyala, Progress Mark Biamonte, OData TC Member, Progress

OData: What s New with REST APIs for Your Database. Sanjeev Mohan, Gartner Nishanth Kadiyala, Progress Mark Biamonte, OData TC Member, Progress OData: What s New with REST APIs for Your Database Sanjeev Mohan, Gartner Nishanth Kadiyala, Progress Mark Biamonte, OData TC Member, Progress Audio Bridge Options & Question Submission 2 OData: What s

More information

Internet Content Distribution

Internet Content Distribution Internet Content Distribution Chapter 1: Introduction Jussi Kangasharju Chapter Outline Introduction into content distribution Basic concepts TCP DNS HTTP Outline of the rest of the course Kangasharju:

More information

Distribution and web services

Distribution and web services Chair of Software Engineering Carlo A. Furia, Bertrand Meyer Distribution and web services From concurrent to distributed systems Node configuration Multiprocessor Multicomputer Distributed system CPU

More information

Space Details. Available Pages

Space Details. Available Pages Key: Space Details extremescale Name: WebSphere extreme Scale and DataPower XC10 Appliance Wiki Description: Creator (Creation Date): dwblogadmin (Apr 09, 2009) Last Modifier (Mod. Date): carriemiller

More information

Redfish OpenAPI Support (Work-In-Progress) Mike Raineri (Dell), Redfish Forum Co-Chair June 2018

Redfish OpenAPI Support (Work-In-Progress) Mike Raineri (Dell), Redfish Forum Co-Chair June 2018 Redfish OpenAPI Support (Work-In-Progress) Mike Raineri (Dell), Redfish Forum Co-Chair June 2018 Disclaimer The information in this presentation represents a snapshot of work in progress within the DMTF.

More information

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system

More information

Teach your (micro)services speak Protocol Buffers with grpc.

Teach your (micro)services speak Protocol Buffers with grpc. Teach your (micro)services speak Protocol Buffers with grpc. Mihai Iachimovschi @mishunika mihai.iachimovschi@gmail.com What s inside? What s inside? Message serialization and deserialization What s inside?

More information

About the Tutorial. Audience. Prerequisites. Disclaimer & Copyright. Avro

About the Tutorial. Audience. Prerequisites. Disclaimer & Copyright. Avro About the Tutorial Apache Avro is a language-neutral data serialization system, developed by Doug Cutting, the father of Hadoop. This is a brief tutorial that provides an overview of how to set up Avro

More information

NOSQL Databases and Neo4j

NOSQL Databases and Neo4j NOSQL Databases and Neo4j Database and DBMS Database - Organized collection of data The term database is correctly applied to the data and their supporting data structures. DBMS - Database Management System:

More information

Why AI Frameworks Need (not only) RDMA?

Why AI Frameworks Need (not only) RDMA? Why AI Frameworks Need (not only) RDMA? With Design and Implementation Experience of Networking Support on TensorFlow GDR, Apache MXNet, WeChat Amber, and Tencent Angel Bairen Yi (byi@connect.ust.hk) Jingrong

More information

Big Data Integration Patterns. Michael Häusler Jun 12, 2017

Big Data Integration Patterns. Michael Häusler Jun 12, 2017 Big Data Integration Patterns Michael Häusler Jun 12, 2017 ResearchGate is built for scientists. The social network gives scientists new tools to connect, collaborate, and keep up with the research that

More information

Introduction to Big Data. NoSQL Databases. Instituto Politécnico de Tomar. Ricardo Campos

Introduction to Big Data. NoSQL Databases. Instituto Politécnico de Tomar. Ricardo Campos Instituto Politécnico de Tomar Introduction to Big Data NoSQL Databases Ricardo Campos Mestrado EI-IC Análise e Processamento de Grandes Volumes de Dados Tomar, Portugal, 2016 Part of the slides used in

More information

Architectural Design. CSCE Lecture 12-09/27/2016

Architectural Design. CSCE Lecture 12-09/27/2016 Architectural Design CSCE 740 - Lecture 12-09/27/2016 Architectural Styles 2 Today s Goals Define what architecture means when discussing software development. Discuss methods of documenting and planning

More information

Spring, 2010 CIS 455 / 555. Internet and Web Systems. Assignment 3 Due April 5, 2010

Spring, 2010 CIS 455 / 555. Internet and Web Systems. Assignment 3 Due April 5, 2010 Spring, 2010 CIS 455 / 555 Internet and Web Systems Assignment 3 Due April 5, 2010 Introduction In this assignment, you will explore Web services and distributed hash tables by building a caching system

More information

SOA Architect. Certification

SOA Architect. Certification SOA Architect Certification SOA Architect The new generation SOACP program from Arcitura is dedicated to excellence in the fields of contemporary service-oriented architecture, microservices, service APIs

More information

Lightweight Remote Procedure Call

Lightweight Remote Procedure Call Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, Henry M. Levy ACM Transactions Vol. 8, No. 1, February 1990, pp. 37-55 presented by Ian Dees for PSU CS533, Jonathan

More information

Making Sense of The API Economy By Joseph Gulla, Ph.D.

Making Sense of The API Economy By Joseph Gulla, Ph.D. Making Sense of The API Economy By Joseph Gulla, Ph.D. joseph.g.gulla@gmail.com LINKEDIN profile at https://www.linkedin.com/in/joseph-gulla-ph-d-ba5b9515/ Abstract In this paper, the author presents a

More information

Communication in Distributed Systems

Communication in Distributed Systems Communication in Distributed Systems Sape J. Mullender Huygens Systems Research Laboratory Universiteit Twente Enschede 1 Introduction Functions of Communication Transport data between processes, machines,

More information

Distributed Systems 8. Remote Procedure Calls

Distributed Systems 8. Remote Procedure Calls Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier

More information

Understanding and Documenting Web APIs

Understanding and Documenting Web APIs Understanding and Documenting Web APIs tekom 2017, Stuttgart, Germany Oct 24-26 2017 Anne Tarnoruder SAP Labs Israel Ltd. anne.tarnoruder@sap.com https://www.linkedin.com/in/annetarnoruder/ Part 1. Understanding

More information

Cyberattack Analysis and Information Sharing in the U.S.

Cyberattack Analysis and Information Sharing in the U.S. Cyberattack Analysis and Information Sharing in the U.S. Promoting the sharing and utilization of the Analyzed Information Sean Barnum February 2013 Sponsored by the US Department of Homeland Security

More information

The decoupled CMS in financial services. Preston So 8 Nov 2017 Open Source Strategy Forum 2017

The decoupled CMS in financial services. Preston So 8 Nov 2017 Open Source Strategy Forum 2017 The decoupled CMS in financial services Preston So 8 Nov 2017 Open Source Strategy Forum 2017 Welcome! Preston So has been a web developer and designer since 2001, a creative professional since 2004, and

More information

Interactive XML Visualization - using XSLT 2.0 on the Browser. Phil Fearon - Saxonica

Interactive XML Visualization - using XSLT 2.0 on the Browser. Phil Fearon - Saxonica Interactive XML Visualization - using XSLT 2.0 on the Browser Phil Fearon - Saxonica Big XML Theme Big data Large scale searching Processing large volumes at high speed Crunching big XML files Open Linked

More information

BaasBox. Open Source Backend as a Service. Otto Hylli

BaasBox. Open Source Backend as a Service. Otto Hylli BaasBox Open Source Backend as a Service Otto Hylli Overview (1/2) Developed by BaasBox an Italian startup company Project was declared started on 1st of July 2012 on the BaasBox blog Open source under

More information

Java EE Architecture, Part Two. Java EE architecture, part two 1

Java EE Architecture, Part Two. Java EE architecture, part two 1 Java EE Architecture, Part Two Java EE architecture, part two 1 Content Requirements on the Business layer Framework Independent Patterns Transactions Frameworks for the Business layer Java EE architecture,

More information

Distributed Applications

Distributed Applications Distributed Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, and other sources ReCap Software Architecture A software system

More information

{json:api} chris-guzman.com/jsonapi.pdf

{json:api} chris-guzman.com/jsonapi.pdf {json:api} @speaktochris @NexmoDev chris-guzman.com/jsonapi.pdf Ruby! & Android "! {json:api} A specification for building APIs in JSON {json:api} A specification for building APIs in JSON (duh) {json:api}

More information

Angular 2 and Hexo. Static Meets Dynamic For the Best of Both Worlds! Copyright 2016 Code Career Academy

Angular 2 and Hexo. Static Meets Dynamic For the Best of Both Worlds! Copyright 2016 Code Career Academy Angular 2 and Hexo Static Meets Dynamic For the Best of Both Worlds! Who am I? Jeff Ammons Microsoft MVP Pluralsight Author CEO/Chief Instructor at Code Career Academy 25 Years Professional Experience

More information

Integrating Oracle Databases with NoSQL Databases for Linux on IBM LinuxONE and z System Servers

Integrating Oracle Databases with NoSQL Databases for Linux on IBM LinuxONE and z System Servers Oracle zsig Conference IBM LinuxONE and z System Servers Integrating Oracle Databases with NoSQL Databases for Linux on IBM LinuxONE and z System Servers Sam Amsavelu Oracle on z Architect IBM Washington

More information

Securing Modern API and Microservice Based Applications by Design A closer look at security concerns for modern applications Farshad Abasi / Forward

Securing Modern API and Microservice Based Applications by Design A closer look at security concerns for modern applications Farshad Abasi / Forward Securing Modern API and Microservice Based Applications by Design A closer look at security concerns for modern applications Farshad Abasi / Forward Security / 2018-11-22 About Me Farshad Abasi Based in:

More information

com.walmartlabs/lacinia-pedestal Documentation

com.walmartlabs/lacinia-pedestal Documentation com.walmartlabs/lacinia-pedestal Documentation Release 0.10.1 Walmartlabs Sep 14, 2018 Contents 1 Overview 3 2 Request Format 5 2.1 GET................................................... 5 2.2 POST (application/json).........................................

More information

Understanding the Web Design Environment. Principles of Web Design, Third Edition

Understanding the Web Design Environment. Principles of Web Design, Third Edition Understanding the Web Design Environment Principles of Web Design, Third Edition HTML: Then and Now HTML is an application of the Standard Generalized Markup Language Intended to represent simple document

More information

Draft Requirements Document for the Development of the ICE2 Specification

Draft Requirements Document for the Development of the ICE2 Specification Draft Requirements Document for the Development of the ICE2 Specification Published by: The ICE-AG February 2002 This effort is a sanctioned engagement of the Information and Content Exchange Authoring

More information

CSCI 3130 Software Architectures 1/3. February 5, 2013

CSCI 3130 Software Architectures 1/3. February 5, 2013 CSCI 3130 Software Architectures 1/3 February 5, 2013 Software Architecture What is a Software Architecture? The description of the structure of a software system, which is composed of software elements,

More information

Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler) Remote Procedure Calls

Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler) Remote Procedure Calls Semesterprojekt Implementierung eines Brettspiels (inklusive computergesteuerter Spieler) Wintersemester 16/17 Remote Procedure Calls Patrick Schäfer patrick.schaefer@hu-berlin.de Marc Bux buxmarcn@informatik.hu-berlin.de

More information

Kepware Whitepaper. IIoT Protocols to Watch. Aron Semle, R&D Lead. Introduction

Kepware Whitepaper. IIoT Protocols to Watch. Aron Semle, R&D Lead. Introduction Kepware Whitepaper IIoT Protocols to Watch Aron Semle, R&D Lead Introduction IoT is alphabet soup. IIoT, IoE, HTTP, REST, JSON, MQTT, OPC UA, DDS, and the list goes on. Conceptually, we ve discussed IoT

More information

Ontologies and Database Schema: What s the Difference? Michael Uschold, PhD Semantic Arts.

Ontologies and Database Schema: What s the Difference? Michael Uschold, PhD Semantic Arts. Ontologies and Database Schema: What s the Difference? Michael Uschold, PhD Semantic Arts. Objective To settle once and for all the question: What is the difference between an ontology and a database schema?

More information

Tufts COMP 150-IDS Test #1

Tufts COMP 150-IDS Test #1 October 3, 2012 Student name: Login: Tufts COMP 150-IDS Test #1 This test is closed book. In most cases, answers of no more than 2-3 sentences should be sufficient. If you need more space or need to cross

More information

Yandex.Classifieds. Vadim Tsesko

Yandex.Classifieds. Vadim Tsesko YoctoDB @ Yandex.Classifieds Vadim Tsesko incubos@ About Backend infrastructure team Services Libraries Frameworks @ Yandex.Classifieds auto.ru auto.yandex.ru rabota.yandex.ru realty.yandex.ru travel.yandex.ru

More information

STANDARD REST API FOR

STANDARD REST API FOR STANDARD REST API FOR EMAIL Kalana Guniyangoda (118209x) Dissertation submitted in partial fulfillment of the requirements for the degree Master of Science Department of Computer Science & Engineering

More information

Suricata File Extraction API SuriCon 2016 Zach Rasmor Lockheed Martin

Suricata File Extraction API SuriCon 2016 Zach Rasmor Lockheed Martin Suricata File Extraction API SuriCon 2016 Zach Rasmor Lockheed Martin CIRT @ZachRasmor 2016 Lockheed Martin Corporation. All Rights Reserved. 1 whoami ~2 year member of Lockheed Martin CIRT Software Engineer

More information

Improving Drupal search experience with Apache Solr and Elasticsearch

Improving Drupal search experience with Apache Solr and Elasticsearch Improving Drupal search experience with Apache Solr and Elasticsearch Milos Pumpalovic Web Front-end Developer Gene Mohr Web Back-end Developer About Us Milos Pumpalovic Front End Developer Drupal theming

More information

Leveraging the Social Web for Situational Application Development and Business Mashups

Leveraging the Social Web for Situational Application Development and Business Mashups Leveraging the Social Web for Situational Application Development and Business Mashups Stefan Tai stefan.tai@kit.edu www.kit.edu About the Speaker: Stefan Tai Professor, KIT (Karlsruhe Institute of Technology)

More information

PostgreSQL as REST API Server without coding. Priya

PostgreSQL as REST API Server without coding. Priya PostgreSQL as REST API Server without coding Priya Ranjan @ranjanprj API Future of Application Development APIs are prerequisite for innovation Microservices provide APIs in a bounded context Existing

More information

Connecting ESRI to Anything: EAI Solutions

Connecting ESRI to Anything: EAI Solutions Connecting ESRI to Anything: EAI Solutions Frank Weiss P.E., ESRI User s Conference 2002 Agenda Introduction What is EAI? Industry trends Key integration issues Point-to-point interfaces vs. Middleware

More information