functional ErlangVM Parallelism

Size: px
Start display at page:

Download "functional ErlangVM Parallelism"

Transcription

1

2 functional

3 functional ErlangVM

4 functional ErlangVM Parallelism

5 Who wants to go and build a system in Elixir?

6

7

8

9

10 You shouldn t

11 Elixir, Your Monolith and You Tobias pragtob.info

12 Your Monolith and You

13

14 Your Monolith now?

15 Your Monolith?

16 Tear it all down and rewrite it

17

18 Sooooon!

19 We rewrote it all in Language x, now it s 10 times faster and only 50% of the code! Someone

20 Often implies... Language x, is 10 times faster and requires 50% of the code of language Y! Someone

21 What nobody tells you...

22 Business Value?

23 Sooooon!

24 Replace it step by step

25 We have a bedroom, for the bathroom please check out legacy!

26 poteto/terraform Terraform allows you to incrementally transform an older API into one powered by Phoenix - one endpoint at a time.

27 No poteto/terraform t t h e allows you to Terraform I n ftransform an incrementally A s ra s older API into Cone powered by t r uc od t uatr a e Phoenix - one endpoint e time.

28 defmodule MyApp.Terraformers.Foo do alias MyApp.Clients.Foo use Plug.Router poteto/terraform plug :match plug :dispatch get "/v1/hello-world", do: send_resp(conn, 200, "Hi") get _ do res = Foo.get!(conn) send_response({:ok, conn, res}) end end

29 Replace a critical component

30 Damn our heater always breaks down when it s cold!

31 Check out our sweet new heating system!

32 Write a new component

33 Check it out we built a brand new high tech entertainment facility!

34 Obvious in microservices Write a new component

35 Is the technology I m choosing the right fit for the problem I m trying to solve? Everyone, hopefully

36 Reasonably separate and limited problem

37 Requirement that poses a problem for the current stack

38 Spark of Enthusiasm

39 Courier Tracking

40 Courier Tracking

41 Courier Tracking

42 Courier Tracking Websockets

43 Courier Tracking Websockets Basic Knowledge

44 How to make them talk?

45 DB Monolith Courier Frontend

46 DB DB Tracking Monolith Courier Frontend

47 Connect them?

48 DB DB Tracking Monolith Courier Frontend

49 JSON Web Token

50 Header Payload Signature

51 { } "role": "courier_ids": "id": "exp": "admin", [1337, 55], 42,

52 DB Shared Secret DB Tracking Monolith Courier Frontend

53 DB DB Shared Secret Tracking Monolith JWT Frontend Courier JWT

54 DB DB Shared Secret Tracking JWT Monolith JWT JWT Frontend Courier JWT

55 Socket def connect(%{"token" => token}, socket) do token > JWT.verify_token > respond_based_on_token_contents(socket) end

56 Pattern Match def connect(%{"token" => token}, socket) do token > JWT.verify_token > respond_based_on_token_contents(socket) end

57 Pipe def connect(%{"token" => token}, socket) do token > JWT.verify_token > respond_based_on_token_contents(socket) end

58 Socket defp login_user(%{"role" => role,...}, socket) do {:ok, assign(socket, :user, %{role: role,...})} end

59 Channel def join("courier:" <> courier_id, _, %{assigns: %{user: user}}) do if authorized?(courier_id, user) do # login else # unauthorizd end end

60 Channel defp authorized?("", _), do: false defp authorized?(courier_id, %{courier_ids: ids}) do Enum.member?(ids, String.to_integer(courier_id)) end defp authorized?(_, _), do: false

61 Channel defp authorized?("", _), do: false defp authorized?(courier_id, %{courier_ids: ids}) do Enum.member?(ids, String.to_integer(courier_id)) end defp authorized?(_, _), do: false

62 Channel defp authorized?("", _), do: false defp authorized?(courier_id, %{courier_ids: ids}) do Enum.member?(ids, String.to_integer(courier_id)) end defp authorized?(_, _), do: false

63 Channel defp authorized?("", _), do: false defp authorized?(courier_id, %{courier_ids: ids}) do Enum.member?(ids, String.to_integer(courier_id)) end defp authorized?(_, _), do: false

64 Channel defp authorized?("", _), do: false defp authorized?(courier_id, %{courier_ids: ids}) do Enum.member?(ids, String.to_integer(courier_id)) end defp authorized?(_, _), do: false

65 DB DB the time Most of Tracking Locations Courier Monolith Locations Frontend

66 DB DB Websocket Tracking Locations Courier Monolith Locations Frontend

67 DB DB REST HTTP Tracking Locations Courier Monolith Locations Frontend

68 Fulfillment

69 Fulfillment CRUD

70 Fulfillment CRUD Experience

71 DB Fulfillment DB Monolith

72 Own UI DB Fulfillment DB Monolith

73 OAuth DB Fulfillment DB OAuth Monolith

74 /current_user DB Fulfillment DB Who? Monolith

75 Products DB Fulfillment DB Monolith

76 Order DB Order Fulfillment DB Valid? Monolith

77 Packaging DB Fulfillment DB Create Monolith

78 HTTP REST DB Fulfillment DB Create Monolith

79 Railway Oriented Programming

80 defmodule Fulfillment.OrderCreation do def create(params, customer, auth) do with {:ok, order} <- validate_order(params, customer), {:ok, order} <- validate_in_backend(order, auth), {:ok, order} <- Repo.insert(order) do {:ok, order} else {:error, changeset} -> {:error, changeset} end end end

81 Success Rail defmodule Fulfillment.OrderCreation do def create(params, customer, auth) do with {:ok, order} <- validate_order(params, customer), {:ok, order} <- validate_in_backend(order, auth), {:ok, order} <- Repo.insert(order) do {:ok, order} else {:error, changeset} -> {:error, changeset} end end end

82 Error Rail defmodule Fulfillment.OrderCreation do def create(params, customer, auth) do with {:ok, order} <- validate_order(params, customer), {:ok, order} <- validate_in_backend(order, auth), {:ok, order} <- Repo.insert(order) do {:ok, order} else {:error, changeset} -> {:error, changeset} end end end

83 Validate internally defmodule Fulfillment.OrderCreation do def create(params, customer, auth) do with {:ok, order} <- validate_order(params, customer), {:ok, order} <- validate_in_backend(order, auth), {:ok, order} <- Repo.insert(order) do {:ok, order} else {:error, changeset} -> {:error, changeset} end end end

84 Validate externally defmodule Fulfillment.OrderCreation do def create(params, customer, auth) do with {:ok, order} <- validate_order(params, customer), {:ok, order} <- validate_in_backend(order, auth), {:ok, order} <- Repo.insert(order) do {:ok, order} else {:error, changeset} -> {:error, changeset} end end end

85 Save defmodule Fulfillment.OrderCreation do def create(params, customer, auth) do with {:ok, order} <- validate_order(params, customer), {:ok, order} <- validate_in_backend(order, auth), {:ok, order} <- Repo.insert(order) do {:ok, order} else {:error, changeset} -> {:error, changeset} end end end

86 Done defmodule Fulfillment.OrderCreation do def create(params, customer, auth) do with {:ok, order} <- validate_order(params, customer), {:ok, order} <- validate_in_backend(order, auth), {:ok, order} <- Repo.insert(order) do {:ok, order} else {:error, changeset} -> {:error, changeset} end end end

87 No Kafka/ Message Queue/ GraphQL?

88 Be careful with new technologies!

89 Microservices!

90 Microservices! Macroapplications

91 All challenges are clearly technical

92 All challenges are clearly technical

93 Stakeholders

94 Your team

95 First Major Version

96 Get the others on board

97 Workshops

98 To know it, you got to build it

99

100 Pair Adopter with Alchemist

101 Pair Adopter with Alchemist Alchemist doesn t touch keyboard

102 Knowledge

103 Knowledge

104 We are still using this like Rails we should use GenServers! Someone on your team

105 You don t need to kill your Monolith, Complement it

106 Your Apps

107 Enjoy Using Elixir effectively to Help Your Company Tobias pragtob.info

flask-jwt Documentation

flask-jwt Documentation flask-jwt Documentation Release 0.3.2 Dan Jacob Nov 16, 2017 Contents 1 Links 3 2 Installation 5 3 Quickstart 7 4 Configuration Options 9 5 API 11 6 Changelog 13 6.1 Flask-JWT Changelog..........................................

More information

Elixir and Phoenix fast, concurrent and explicit Tobias pragtob.info

Elixir and Phoenix fast, concurrent and explicit Tobias pragtob.info Elixir and Phoenix fast, concurrent and explicit Tobias Pfeiffer @PragTob pragtob.info Elixir and Phoenix fast, concurrent and explicit Tobias Pfeiffer @PragTob pragtob.info Platform defmodule MyMap do

More information

Elixir and Phoenix fast, concurrent and explicit Tobias pragtob.info

Elixir and Phoenix fast, concurrent and explicit Tobias pragtob.info Elixir and Phoenix fast, concurrent and explicit Tobias Pfeiffer @PragTob pragtob.info Elixir and Phoenix fast, concurrent and explicit Tobias Pfeiffer @PragTob pragtob.info Platform defmodule MyMap do

More information

Versioned APIs with Phoenix. Elvio Vicosa

Versioned APIs with Phoenix. Elvio Vicosa Versioned APIs with Phoenix Elvio Vicosa About the author My name is Elvio Vicosa and I am a software developer based in Berlin, Germany. I've been working with software for over 10 years and throughout

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

Incrementally migratng large apps to Phoenix. Ruby Elixir Conf Taiwan 2018 Jake

Incrementally migratng large apps to Phoenix. Ruby Elixir Conf Taiwan 2018 Jake Incrementally migratng large apps to Phoenix Ruby Elixir Conf Taiwan 2018 Jake Morrison @cogini Agenda Why migrate to Phoenix How to migrate Why? Rails is a great way to quickly create applicatons It hits

More information

GraphQL. Concepts & Challenges. - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub

GraphQL. Concepts & Challenges. - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub GraphQL Concepts & Challenges - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub Rails API WHY - You have your Rails app, why bother with an API? - You have clients.

More information

openid connect all the things

openid connect all the things openid connect all the things @pquerna CTO, ScaleFT CoreOS Fest 2017-2017-07-01 Problem - More Client Devices per-human - Many Cloud Accounts - More Apps: yay k8s - More Distributed Teams - VPNs aren

More information

Phoenix Is Not Your Application. Lance Halvorsen ElixirConf EU 2016

Phoenix Is Not Your Application. Lance Halvorsen ElixirConf EU 2016 Phoenix Is Not Your Application Lance Halvorsen ElixirConf EU 2016 Phoenix is one of your applications. Our Language Gives Us Away We Say I'm building a Phoenix app. Or a Rails app. Or an Ember app. Or

More information

Elixir and Phoenix. fast, concurrent and explicit. Tobias pragtob.info

Elixir and Phoenix. fast, concurrent and explicit. Tobias pragtob.info Elixir and Phoenix fast, concurrent and explicit Tobias Pfeiffer @PragTob pragtob.info Elixir and Phoenix fast, concurrent and explicit Tobias Pfeiffer @PragTob pragtob.info defmodule MyMap do def map([],

More information

ARCHITECTURING AND SECURING IOT PLATFORMS JANKO ISIDOROVIC MAINFLUX

ARCHITECTURING AND SECURING IOT PLATFORMS JANKO ISIDOROVIC MAINFLUX ARCHITECTURING AND SECURING IOT PLATFORMS JANKO ISIDOROVIC CEO @ MAINFLUX Outline Internet of Things (IoT) Common IoT Project challenges - Networking - Power Consumption - Computing Power - Scalability

More information

Easily Secure your Microservices with Keycloak. Sébastien Blanc Red

Easily Secure your Microservices with Keycloak. Sébastien Blanc Red Easily Secure your Microservices with Keycloak Sébastien Blanc Red Hat @sebi2706 Keycloak? Keycloak is an open source Identity and Access Management solution aimed at modern applications and services.

More information

Powering an App with Swift Microservices

Powering an App with Swift Microservices Powering an App with Swift Microservices ~ Who: Jarrod Parkes What: Swift Cloud Workshop 2 When: Sept 30th, 2017 @ 2:10-2:40 PM CST Where: Amazon Inc, Austin, TX, USA Why: We Swift! Hey, I'm Jarrod I build

More information

Stateless Microservice Security via JWT, TomEE and MicroProfile

Stateless Microservice Security via JWT, TomEE and MicroProfile Stateless Microservice Security via JWT, TomEE and MicroProfile Jean-Louis Monteiro Tomitribe Why am I here today? Microservices architecture case Security opeons OAuth2 with JWT HTTP Signatures Demo with

More information

Embedded type method, overriding, Error handling, Full-fledged web framework, 208 Function defer, 31 panic, 32 recover, 32 33

Embedded type method, overriding, Error handling, Full-fledged web framework, 208 Function defer, 31 panic, 32 recover, 32 33 Index A Alice package, 108, 110 App Engine applications configuration file, 258 259 goapp deploy command, 262 Google Developers Console project creation, 261 project details, 262 HTTP server, 257 258 task

More information

flask-jwt-simple Documentation

flask-jwt-simple Documentation flask-jwt-simple Documentation Release 0.0.3 vimalloc rlam3 Nov 17, 2018 Contents 1 Installation 3 2 Basic Usage 5 3 Changing JWT Claims 7 4 Changing Default Behaviors 9 5 Configuration Options 11 6 API

More information

How to Add a Favicon in Ruby on Rails Apps

How to Add a Favicon in Ruby on Rails Apps How to Add a Favicon in Ruby on Rails Apps Favicons are this nifty little icons on the tab of your browser to help give a little personalized identity rather than the blank page one which is the default

More information

About 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2

About 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2 odata #odata Table of Contents About 1 Chapter 1: Getting started with odata 2 Remarks 2 Examples 2 Installation or Setup 2 Odata- The Best way to Rest 2 Chapter 2: Azure AD authentication for Node.js

More information

LUCITY REST API INTRODUCTION AND CORE CONCEPTS

LUCITY REST API INTRODUCTION AND CORE CONCEPTS LUCITY REST API INTRODUCTION AND CORE CONCEPTS REST API OFFERINGS Lucity Citizen Portal REST API Lucity REST API Both products are included in our REST API Historically we also offered a COM API and a.net

More information

OAuth and OpenID Connect (IN PLAIN ENGLISH)

OAuth and OpenID Connect (IN PLAIN ENGLISH) OAuth and OpenID Connect (IN PLAIN ENGLISH) NATE BARBETTINI @NBARBETTINI @OKTADEV A lot of confusion around OAuth. Terminology and jargon Incorrect advice Identity use cases (circa 2007) Simple login forms

More information

PyJWT Documentation. Release José Padilla

PyJWT Documentation. Release José Padilla PyJWT Documentation Release 1.6.1 José Padilla Apr 08, 2018 Contents 1 Sponsor 3 2 Installation 5 3 Example Usage 7 4 Command line 9 5 Index 11 5.1 Installation................................................

More information

Big Data Security. Facing the challenge

Big Data Security. Facing the challenge Big Data Security Facing the challenge Experience the presentation xlic.es/v/e98605 About me Father of a 5 year old child Technical leader in Architecture and Security team at Stratio Sailing skipper 3

More information

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success

More information

OAuth2 Autoconfig. Copyright

OAuth2 Autoconfig. Copyright Copyright Table of Contents... iii 1. Downloading... 1 1.1. Source... 1 1.2. Maven... 1 1.3. Gradle... 2 2. Authorization Server... 3 3. Resource Server... 4 I. Token Type in User Info... 5 II. Customizing

More information

Canonical Identity Provider Documentation

Canonical Identity Provider Documentation Canonical Identity Provider Documentation Release Canonical Ltd. December 14, 2018 Contents 1 API 3 1.1 General considerations.......................................... 3 1.2 Rate limiting...............................................

More information

Quick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul

Quick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul CIS192 Python Programming Web Frameworks and Web APIs Harry Smith University of Pennsylvania March 29, 2016 Harry Smith (University of Pennsylvania) CIS 192 March 29, 2016 1 / 25 Quick housekeeping Last

More information

Leveraging the Globus Platform in your Web Applications. GlobusWorld April 26, 2018 Greg Nawrocki

Leveraging the Globus Platform in your Web Applications. GlobusWorld April 26, 2018 Greg Nawrocki Leveraging the Globus Platform in your Web Applications GlobusWorld April 26, 2018 Greg Nawrocki greg@globus.org Topics and Goals Platform Overview Why expose the APIs A quick touch of the Globus Auth

More information

HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos

HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos HOW TO WRITE USER STORIES (AND WHAT YOU SHOULD NOT DO) Stuart Ashman, QA Director at Mio Global Bob Cook, Senior Product Development Manager, Sophos Welcome This presentation will discuss Writing user

More information

Protect Your API with OAuth 2. Rob Allen

Protect Your API with OAuth 2. Rob Allen Protect Your API with OAuth 2 Authentication Know who is logging into your API Rate limiting Revoke application access if its a problem Allow users to revoke 3rd party applications How? Authorization header:

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Web Servers and Web APIs Raymond Yin University of Pennsylvania November 12, 2015 Raymond Yin (University of Pennsylvania) CIS 192 November 12, 2015 1 / 23 Outline 1 Web Servers

More information

I was given the following web application: and the instruction could be found on the first page.

I was given the following web application:   and the instruction could be found on the first page. I was given the following web application: http://159.203.178.9/ and the instruction could be found on the first page. So, I had to find the path for the application that stores notes and try to exploit

More information

Distributed Systems. 25. Authentication Paul Krzyzanowski. Rutgers University. Fall 2018

Distributed Systems. 25. Authentication Paul Krzyzanowski. Rutgers University. Fall 2018 Distributed Systems 25. Authentication Paul Krzyzanowski Rutgers University Fall 2018 2018 Paul Krzyzanowski 1 Authentication For a user (or process): Establish & verify identity Then decide whether to

More information

Securing APIs and Microservices with OAuth and OpenID Connect

Securing APIs and Microservices with OAuth and OpenID Connect Securing APIs and Microservices with OAuth and OpenID Connect By Travis Spencer, CEO @travisspencer, @curityio Organizers and founders ü All API Conferences ü API Community ü Active blogosphere 2018 Platform

More information

Building a video conference (WebRTC) controller with Elixir. Or how Elixir was introduced into VoiSmart

Building a video conference (WebRTC) controller with Elixir. Or how Elixir was introduced into VoiSmart Building a video conference (WebRTC) controller with Elixir Or how Elixir was introduced into VoiSmart Hello! Who: Matteo Brancaleoni Where: VoiSmart www.voismart.it As: Software Engineer Where #2: GH:

More information

Container-Native Applications

Container-Native Applications Container-Native Applications Security, Logging, Tracing Matthias Fuchs, @hias222 DOAG 2018 Exa & Middleware Days, 2018/06/19 Microservice Example Flow Oracle Cloud Details Logging Security, OAuth, TLS

More information

EMS Platform Services Installation & Configuration Guides

EMS Platform Services Installation & Configuration Guides EMS Platform Services Installation & Configuration Guides V44.1 Last Updated: August 7, 2018 EMS Software emssoftware.com/help 800.440.3994 2018 EMS Software, LLC. All Rights Reserved. Table of Contents

More information

CS November 2018

CS November 2018 Authentication Distributed Systems 25. Authentication For a user (or process): Establish & verify identity Then decide whether to allow access to resources (= authorization) Paul Krzyzanowski Rutgers University

More information

Web API Best Practices

Web API Best Practices Web API Best Practices STEVE SMITH ARDALIS.COM @ARDALIS STEVE@DEVIQ.COM DEVIQ.COM Learn More After Today 1) DevIQ ASP.NET Core Quick Start http://aspnetcorequickstart.com DEVINTFALL17 20% OFF! 2) Microsoft

More information

iex(1)> defmodule RepeatN do def repeat_n(function, count) do ...(1)> end repeat_n(function, count - 1) {:module, RepeatN,...}

iex(1)> defmodule RepeatN do def repeat_n(function, count) do ...(1)> end repeat_n(function, count - 1) {:module, RepeatN,...} The other day iex(1)> iex(1)> defmodule RepeatN do...(1)> def repeat_n(_function, 0) do...(1)> # noop...(1)>...(1)> def repeat_n(function, 1) do...(1)> function.()...(1)>...(1)> def repeat_n(function,

More information

WooCommerce REST API Integration. October 27, 2018

WooCommerce REST API Integration. October 27, 2018 WooCommerce REST API Integration October 27, 2018 Andrew Duncan CEO/Owner/Developer Databuzz The ecommerce platform for WordPress The world s most customisable ecommerce platform The most popular ecommerce

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 08 Tutorial 2, Part 2, Facebook API (Refer Slide Time: 00:12)

More information

Beginner s Guide to Cordova and Mobile Application Development

Beginner s Guide to Cordova and Mobile Application Development November 13, 2018 Beginner s Guide to Cordova and Mobile Application Development George Campbell Lead Software Engineer Doug Davies Lead Software Engineer George Campbell Lead Software Engineer Doug Davies

More information

OAuth 2.0 Incremental Auth

OAuth 2.0 Incremental Auth OAuth 2.0 Incremental Auth IETF 99 Prague, July 2017 William Denniss Incremental Auth Problem Statement Asking for the kitchen sink of scopes up-front is a bad thing. Users should have the context of the

More information

Bambu API Documentation

Bambu API Documentation Bambu API Documentation Release 2.0.1 Steadman Sep 27, 2017 Contents 1 About Bambu API 3 2 About Bambu Tools 2.0 5 3 Installation 7 4 Basic usage 9 5 Questions or suggestions? 11 6 Contents 13 6.1 Defining

More information

Lab 2. Complete the Process API Layer for Order Fulfillment API

Lab 2. Complete the Process API Layer for Order Fulfillment API Lab 2 Complete the Process API Layer for Order Fulfillment API Overview Let us now orchestrate our back-end systems to fulfill the order. We ll post the order to the Order API. The implementation will

More information

Integration Guide. LoginTC

Integration Guide. LoginTC Integration Guide LoginTC Revised: 21 November 2016 About This Guide Guide Type Documented Integration WatchGuard or a Technology Partner has provided documentation demonstrating integration. Guide Details

More information

CS144: Sessions. Cookie : CS144: Web Applications

CS144: Sessions. Cookie : CS144: Web Applications CS144: Sessions HTTP is a stateless protocol. The server s response is purely based on the single request, not anything else Q: How does a web site like Amazon can remember a user and customize its results?

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Web Servers and Web APIs Eric Kutschera University of Pennsylvania March 6, 2015 Eric Kutschera (University of Pennsylvania) CIS 192 March 6, 2015 1 / 22 Outline 1 Web Servers

More information

Building on the Globus Python SDK

Building on the Globus Python SDK Building on the Globus Python SDK Stephen Rosen April 11, 2017 SDK Overview The Globus SDK is a client-side library which provides language bindings for entities and methods available via web APIs. SDK

More information

Marathon Documentation

Marathon Documentation Marathon Documentation Release 3.0.0 Top Free Games Feb 07, 2018 Contents 1 Overview 3 1.1 Features.................................................. 3 1.2 Architecture...............................................

More information

Table of Contents. I. How do I register for a new account? II. How do I log in? (I already have a MyJohnDeere.com account.)

Table of Contents. I. How do I register for a new account? II. How do I log in? (I already have a MyJohnDeere.com account.) Quick Start Guide If you are an App Developer, you can get started by adding a new app and configuring it to consume Deere APIs on developer.deere.com. Use this Quick Start Guide to find and try our APIs.

More information

hybris-as-a-service A microservices architecture in action

hybris-as-a-service A microservices architecture in action hybris-as-a-service A microservices architecture in action Andrea Stubbe Klaus Herrmann Product and Technology @ hybris Disclaimer This presentation outlines our general product direction and should not

More information

Evolution of the "Web

Evolution of the Web Evolution of the "Web App" @HenrikJoreteg @Hoarse_JS THIS USED TO BE SIMPLE! 1. WRITE SOME HTML 2. LAY IT OUT WITH FRAMES OR TABLES 3. FTP IT TO A SERVER! 4. BAM! CONGRATULATIONS, YOU RE A WEB DEVELOPER!

More information

Microservices using Python and Oracle. Arup Nanda Longtime Oracle DBA And Explorer of New Things

Microservices using Python and Oracle. Arup Nanda Longtime Oracle DBA And Explorer of New Things Microservices using Python and Oracle Arup Nanda Longtime Oracle DBA And Explorer of New Things Agenda What s the problem we are trying to solve? How microservices solves the problem? How is it different

More information

ClearPass. ClearPass Extension Universal Authentication Proxy. ClearPass Extension Universal Authentication Proxy TechNote

ClearPass. ClearPass Extension Universal Authentication Proxy. ClearPass Extension Universal Authentication Proxy TechNote ClearPass Extension Universal Authentication Proxy TechNote ClearPass Extension Universal Authentication Proxy ClearPass TechNote ClearPass Extension Universal Authentication Proxy - TechNote 1 ClearPass

More information

Advanced API Security

Advanced API Security Advanced API Security ITANA Group Nuwan Dias Architect 22/06/2017 Agenda 2 HTTP Basic Authentication Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l 3 API Security is about controlling Access Delegation

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

Full Stack Web Developer Nanodegree Syllabus

Full Stack Web Developer Nanodegree Syllabus Full Stack Web Developer Nanodegree Syllabus Build Complex Web Applications Before You Start Thank you for your interest in the Full Stack Web Developer Nanodegree! In order to succeed in this program,

More information

Tutorial: Building the Services Ecosystem

Tutorial: Building the Services Ecosystem Tutorial: Building the Services Ecosystem GlobusWorld 2018 Steve Tuecke tuecke@globus.org What is a services ecosystem? Anybody can build services with secure REST APIs App Globus Transfer Your Service

More information

OpenID Connect Opens the Door to SAS Viya APIs

OpenID Connect Opens the Door to SAS Viya APIs Paper SAS1737-2018 OpenID Connect Opens the Door to SAS Viya APIs Mike Roda, SAS Institute Inc. ABSTRACT As part of the strategy to be open and cloud-ready, SAS Viya services leverage OAuth and OpenID

More information

Hitachi ID Systems Inc Identity Manager 8.2.6

Hitachi ID Systems Inc Identity Manager 8.2.6 Systems Inc RSA SecurID Ready Implementation Guide Partner Information Last Modified: December 5, 2014 Product Information Partner Name Hitachi ID Systems Inc Web Site www.hitachi-id.com Product Name Identity

More information

USING OPENSTACK TO INTEGRATE NON-OPENSTACK SERVICE JUNHO YOON, ANDREW LIU, JACK NING

USING OPENSTACK TO INTEGRATE NON-OPENSTACK SERVICE JUNHO YOON, ANDREW LIU, JACK NING USING OPENSTACK TO INTEGRATE NON-OPENSTACK SERVICE JUNHO YOON, ANDREW LIU, JACK NING AGENDA INTRODUCTION MOTIVATIONS INTEGRATE AUTHN/AUTHZ INTEGRATE PLATFORM UI INTEGRATE PLATFORM COMMUNICATION CONTINOUS

More information

A Small Web Server. Programming II - Elixir Version. Johan Montelius. Spring Term 2018

A Small Web Server. Programming II - Elixir Version. Johan Montelius. Spring Term 2018 A Small Web Server Programming II - Elixir Version Johan Montelius Spring Term 2018 Introduction Your task is to implement a small web server in Elixir. exercise is that you should be able to: The aim

More information

Controller/server communication

Controller/server communication Controller/server communication Mendel Rosenblum Controller's role in Model, View, Controller Controller's job to fetch model for the view May have other server communication needs as well (e.g. authentication

More information

Get Hands On With DNA Center APIs for Managing Intent

Get Hands On With DNA Center APIs for Managing Intent DEVNET-3620 Get Hands On With DNA Center APIs for Managing Intent Adam Radford Distinguished Systems Engineer Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker after the session

More information

It s good to be here... I almost wasn t. Beautiful Tests by Bruce A. Tate icanmakeitbe*er

It s good to be here... I almost wasn t. Beautiful Tests by Bruce A. Tate icanmakeitbe*er It s good to be here... I almost wasn t. Beautiful Tests by Bruce A. Tate icanmakeitbe*er Test all of your code with beautiful, dry, fast tests Test all of your code with beautiful, dry, fast tests Many

More information

Distributing Secrets. Securely? Simo Sorce. Presented by. Red Hat, Inc.

Distributing Secrets. Securely? Simo Sorce. Presented by. Red Hat, Inc. Distributing Secrets Securely? Presented by Simo Sorce Red Hat, Inc. Flock 2015 Historically Monolithic applications on single servers potentially hooked to a central authentication system. Idm Distributing

More information

Security. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Security. SWE 432, Fall 2017 Design and Implementation of Software for the Web Security SWE 432, Fall 2017 Design and Implementation of Software for the Web Today Security What is it? Most important types of attacks Authorization oauth 2 Security Why is it important? Users data is

More information

Microservice Powered Orchestration

Microservice Powered Orchestration Microservice Powered Orchestration Huabing Zhao ZTE, System Engineer, Network Management &, OPEN-O Common PTL zhao.huabing@zte.com.cn Zhaoxing Meng ZTE, NFV&SDN Architect, Network Management &, OPEN-O

More information

AVOIDING SPEED BUMPS ON THE ROAD TO MICROSERVICES. Scott Shaw Head of Technology, ThoughtWorks Australia

AVOIDING SPEED BUMPS ON THE ROAD TO MICROSERVICES. Scott Shaw Head of Technology, ThoughtWorks Australia AVOIDING SPEED BUMPS ON THE ROAD TO MICROSERVICES Scott Shaw Head of Technology, ThoughtWorks Australia 1 MICROSERVICE ENVY GOOGLE TRENDS DATA service oriented architecture microservices 2 THE SPEED X

More information

User Managed Access Core Protocol

User Managed Access Core Protocol User Managed Access Core Protocol Logical testcases based on User-Managed Access (UMA) 1.0 Core Protocol i Step 1: Authorizing user introduces host to AM Preconditions host has the role Oauth resource

More information

Documenting APIs with Swagger. TC Camp. Peter Gruenbaum

Documenting APIs with Swagger. TC Camp. Peter Gruenbaum Documenting APIs with Swagger TC Camp Peter Gruenbaum Introduction } Covers } What is an API Definition? } YAML } Open API Specification } Writing Documentation } Generating Documentation } Alternatives

More information

Enabling Cloud Adoption. Addressing the challenges of multi-cloud

Enabling Cloud Adoption. Addressing the challenges of multi-cloud Enabling Cloud Adoption Addressing the challenges of multi-cloud Introduction Organizations of all sizes are adopting cloud for application workloads. These organizations are looking to avoid the costs

More information

What Does Logout Mean?

What Does Logout Mean? What Does Logout Mean? Michael B. Jones, Identity Standards Architect, Microsoft Brock Allen, Software Security Consultant, Solliance OAuth Security Workshop, March 2018, Trento, Italy Logout can mean

More information

Scaling Trust with Millions of Containers: Microsegmentation Strategies for Authorization

Scaling Trust with Millions of Containers: Microsegmentation Strategies for Authorization Scaling Trust with Millions of Containers: Microsegmentation Strategies for Authorization 1 About Me Drupal Security Team Database Maintainer Service Mgmt for RHEL/Ubuntu Committer Scalable CGroups Management

More information

SAS Event Stream Processing 5.2: Visualizing Event Streams with Streamviewer

SAS Event Stream Processing 5.2: Visualizing Event Streams with Streamviewer SAS Event Stream Processing 5.2: Visualizing Event Streams with Streamviewer Overview Streamviewer is a graphical user interface that visualizes events streaming through event stream processing models.

More information

Performance Platform Documentation

Performance Platform Documentation Performance Platform Documentation Release 1.0 Performance Platform July 20, 2017 Contents 1 Adding data 3 2 Emptying a data set 5 3 Client implementations 7 4 Glossary 9 5 Get a Performance Platform

More information

The power of PostgreSQL exposed with automatically generated API endpoints. Sylvain Verly Coderbunker 2016Postgres 中国用户大会 Postgres Conference China 20

The power of PostgreSQL exposed with automatically generated API endpoints. Sylvain Verly Coderbunker 2016Postgres 中国用户大会 Postgres Conference China 20 The power of PostgreSQL exposed with automatically generated API endpoints. Sylvain Verly Coderbunker Development actors Frontend developer Backend developer Database administrator System administrator

More information

Azure Developer Immersions API Management

Azure Developer Immersions API Management Azure Developer Immersions API Management Azure provides two sets of services for Web APIs: API Apps and API Management. You re already using the first of these. Although you created a Web App and not

More information

Authentication and Authorization of End User in Microservice Architecture

Authentication and Authorization of End User in Microservice Architecture Journal of Physics: Conference Series PAPER OPEN ACCESS Authentication and Authorization of End User in Microservice Architecture To cite this article: Xiuyu He and Xudong Yang 2017 J. Phys.: Conf. Ser.

More information

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin, To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with

More information

How to re-invent your IT Architecture. André Christ, Co-CEO LeanIX

How to re-invent your IT Architecture. André Christ, Co-CEO LeanIX How to re-invent your IT Architecture André Christ, Co-CEO LeanIX 2012 founded 30 employees > 80 customers 150 % motivated 2 OUR MISSION Become global #1 SaaS helping companies to modernize their IT architectures

More information

Building RESTful Web Services with. Presented by Steve Ives

Building RESTful Web Services with. Presented by Steve Ives Building RESTful Web Services with Presented by Steve Ives We ve talked about what it is We ve talked about what it does Let s talk about how to use it Requirements & Obtaining Visual Studio 2017 15.8

More information

bzz Documentation Release Rafael Floriano and Bernardo Heynemann

bzz Documentation Release Rafael Floriano and Bernardo Heynemann bzz Documentation Release 0.1.0 Rafael Floriano and Bernardo Heynemann Nov 15, 2017 Contents 1 Getting Started 3 2 Flattening routes 5 3 Indices and tables 7 3.1 Model Hive................................................

More information

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional SUN 311-232 Java Platform Enterprise Edition 6 Web Services Developer Certified Professional Download Full Version : http://killexams.com/pass4sure/exam-detail/311-232 QUESTION: 109 What are three best

More information

Reverse Sort. array = (1..1_000).to_a. array.sort do item, other other <=> item end

Reverse Sort. array = (1..1_000).to_a. array.sort do item, other other <=> item end The other day Reverse Sort array = (1..1_000).to_a array.sort do item, other other item end CRuby vs JRuby $ ruby -v ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux] $ time ruby scripts/sort.rb

More information

AEM Mobile: Setting up Google as an Identity Provider

AEM Mobile: Setting up Google as an Identity Provider AEM Mobile: Setting up Google as an Identity Provider Requirement: Prerequisite knowledge Understanding of AEM Mobile Required Products AEM Mobile Google Account Generating the client ID and secret To

More information

DigiCert User Guide (GÉANT)

DigiCert User Guide (GÉANT) DigiCert User Guide (GÉANT) Version 8.3 Table of Contents 1 User Management... 10 1.1 Roles and Account Access... 10 1.1.1 Administrator Role... 10 1.1.2 User Role... 10 1.1.3 EV Verified User... 10 1.1.4

More information

Authentication CS 4720 Mobile Application Development

Authentication CS 4720 Mobile Application Development Authentication Mobile Application Development System Security Human: social engineering attacks Physical: steal the server itself Network: treat your server like a 2 year old Operating System: the war

More information

Introducing the Harmony Core Open Source Project Presented by Jeff Greene

Introducing the Harmony Core Open Source Project Presented by Jeff Greene Introducing the Harmony Core Open Source Project Presented by Jeff Greene Harmony Core Harmony Core is a framework that consists of libraries, CodeGen templates, and conventions that enable you to expose

More information

Zephyr Cloud for HipChat

Zephyr Cloud for HipChat June 25 Zephyr Cloud for HipChat Z e p h y r, 7 7 0 7 G a t e w a y B l v d S t e 1 0 0, N e w a r k, C A 9 4 5 6 0, U S A 1 - Overview How this guide will help Zephyr Cloud for HipChat guide will guide

More information

TECHNICAL GUIDE SSO JWT. At 360Learning, we don t make promises about technical solutions, we make commitments.

TECHNICAL GUIDE SSO JWT. At 360Learning, we don t make promises about technical solutions, we make commitments. 1 TECHNICAL GUIDE SSO JWT At 360Learning, we don t make promises about technical solutions, we make commitments. This technical guide is part of our Technical Documentation. Version 1.4 2 360Learning is

More information

Simple REST-APIs with Dropwizard and Swagger. Bernd Schönbach LeanIX GmbH

Simple REST-APIs with Dropwizard and Swagger. Bernd Schönbach LeanIX GmbH Simple REST-APIs with Dropwizard and Swagger Bernd Schönbach LeanIX GmbH Motivation Quickly create REST-APIs Make it testable Deploy with a click Or even better automatically Provide Documentation without

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

Internet Connectivity with

Internet Connectivity with Internet Connectivity with Introduction The purpose of this workshop is to help you g et acquainted with the basics of internet connectivity by leveraging ARM mbed tools. If you are not already familiar

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

Usage of "OAuth2" policy action in CentraSite and Mediator

Usage of OAuth2 policy action in CentraSite and Mediator Usage of "OAuth2" policy action in CentraSite and Mediator Introduction Prerequisite Configurations Mediator Configurations watt.server.auth.skipformediator The pg.oauth2 Parameters Asset Creation and

More information

Configuring Apache Knox SSO

Configuring Apache Knox SSO 3 Configuring Apache Knox SSO Date of Publish: 2018-07-15 http://docs.hortonworks.com Contents Setting Up Knox SSO...3 Configuring an Identity Provider (IdP)... 3 Configuring an LDAP/AD Identity Provider

More information

Connect. explained. Vladimir Dzhuvinov. :

Connect. explained. Vladimir Dzhuvinov.   : Connect explained Vladimir Dzhuvinov Email: vladimir@dzhuvinov.com : Twitter: @dzhivinov Married for 15 years to Java C Python JavaScript JavaScript on a bad day So what is OpenID Connect? OpenID Connect

More information

Best Practices: Authentication & Authorization Infrastructure. Massimo Benini HPCAC - April,

Best Practices: Authentication & Authorization Infrastructure. Massimo Benini HPCAC - April, Best Practices: Authentication & Authorization Infrastructure Massimo Benini HPCAC - April, 03 2019 Agenda - Common Vocabulary - Keycloak Overview - OAUTH2 and OIDC - Microservices Auth/Authz techniques

More information