<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Service  Engineering (ICCLab &amp; SPLab)</provider_name><provider_url>https://blog.zhaw.ch/icclab</provider_url><author_name>icclab</author_name><author_url>https://blog.zhaw.ch/icclab/author/icclab/</author_url><title>Extending Web Applications with Cloud Functions</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="22H7tlJM15"&gt;&lt;a href="https://blog.zhaw.ch/icclab/extending-web-applications-with-cloud-functions/"&gt;Extending Web Applications with Cloud Functions&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://blog.zhaw.ch/icclab/extending-web-applications-with-cloud-functions/embed/#?secret=22H7tlJM15" width="600" height="338" title="&#x201C;Extending Web Applications with Cloud Functions&#x201D; &#x2014; Service  Engineering (ICCLab &amp; SPLab)" data-secret="22H7tlJM15" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://blog.zhaw.ch/icclab/wp-includes/js/wp-embed.min.js
&lt;/script&gt;
</html><description>The discourse on cloud functions focuses heavily on diverse use cases: Standalone functions to perform a certain functionality, compositions of functions into complete applications, and functions as plumbing between separate application parts. This blog post intends to explore the use of cloud functions as extensibility mechanism for existing applications. It exemplifies the interaction between a [&hellip;]</description><thumbnail_url>https://blog.zhaw.ch/icclab/files/2017/11/openflights-screenshot.png</thumbnail_url></oembed>
