SlideShare a Scribd company logo
1 of 14
Download to read offline
Doğa Armangil, d.armangil@qworum.net, April 2024
Qworum: Making the Web more
suitable for applications
Why best-in-class applications need the Qworum frontend PaaS.
qworum.net
Outline
Business and technical reasons for upgrading the Web
Proven market need.
Business case: better customer service, easier partner integrations,
easier internal integrations.
Why the Web is still primarily a content platform.
What would make the Web a full-featured application platform.
Doğa Armangil
Founder
Qworum author
Software engineer
d.armangil@qworum.net
Module Federation
MF’s success has proved the
market need for UI-level
integrations.
Module federation
Business case
• Speci
fi
cally conceived for cross-team, cross-
business-unit integrations within an
organisation.
• Not made for cross-organisation integrations.
• Not made for integrating with the applications
of an acquired software company.
• Not made for software startups looking to be
acquired.
Team Team
Organisation
Organisation
✅
❌
Qworum
Business case
• Enables better customer service, easier partner
integrations and easier internal integrations.
• Suitable for all integration use cases: cross-
organisation, cross-team, and cross-business-unit.
• Integrating with the applications of an acquired
software company is 10x easier.
• Suitable for software startups looking to be acquired.
• Qworum-enabled SaaS is 10x easier to integrate with.
Team Team
Organisation
Organisation
✅
✅
Module federation
Technical aspects
• Not a technology, packages existing
technologies.
• The application shell is a potential performance
bottleneck for developer teams working in
parallel.
• In many cases, sharing responsability for the
same Web page may be a much too
fi
ne-
grained way of collaborating among devops
teams.
Application shell
Module Module
⚡⚡
Qworum
Technical aspects
• New technology, speci
fi
cally conceived
for integration / modularisation use cases.
• The only API technology to support
user interactions.
• Secure user authentication, even in case
of deep service dependency graphs.
• Calling Qworum APIs is much easier than
REST; the API itself provides much of the
UI.
Qworum
application /
service
Qworum
service
Qworum
service
Qworum
service
✅
What’s a content platform?
Differences with application platforms
• On the Web, interlinking between content pages is
easy through hyperlinks.
• Interlinking between Web applications is
impossible, because there is no mechanism for
doing that.
• In fact, the Web platform goes out of its way to
isolate Web applications from each other (the
“same-origin policy”, or SOP).
• In today’s Web, instead of interlinking between
applications, we have integration mechanisms
performed at the backend. This happens “out-of-
band”, independently from the Web platform itself. Data transfer
Web
application
Web
application
❌
✅
Remote
function
call
Frontend
/ browser
Backend
/ cloud
What Qworum brings to applications
An interlinking mechanism for applications
• Support for distributed applications that span
several Web origins, and for application integrations.
• A new type of linking mechanism (see last slide).
• As secure as the current Web. As it turns out, the
same-origin policy was overkill.
• A less restrictive variant of the same-origin policy for
isolating the individual Qworum services/APIs from
each other.
• No need to isolate whole applications from each
other. Data transfer
Web
application
Web
application
✅
✅
Remote
function
call
Frontend
/ browser
Backend
/ cloud
What’s a content platform? (2)
Differences with application platforms
• In a content page, the browser’s back button takes the user back
one page. This works, as content is expected to be long-lived.
• In an application, the browser’s back button also takes the user back
in time. This introduces the risk that the application’s internal state
may go out of sync with its UI.
• In short: the back button may not make sense in the world of
applications.
• Mild malfunction: In a Web application, going back one page can
take the user to outdated content, and even to an outdated URL.
• Severe malfunction: Application crashes, application data becomes
inconsistent or inaccurate.
Back one page
Back one page
❌ Outdated URL
❌ Outdated content
What Qworum brings to applications (2)
Disabling the tab history
• The back button is inactive in a Qworum session.
• Qworum services take care not to add new entries
to the tab history.
• This removes all risk that the application’s internal
state may go out of sync with its UI.
• Non-Qworum Web applications can provide a
separate Qworum API for remote callers.
• Qworum-based applications are themselves an API.
✅ Back button disabled
❌
What’s a content platform? (3)
Differences with application platforms
• The Web does not have
fi
rst-class support for user dialogs. (Normal for a
content platform.)
• The return URL is normally passed to the dialog in the query string (/login?
returnTo=/account). This doesn’t scale and makes development tedious.
• What if the dialog should return to different URLs depending on what
ended the dialog? (/login?returnTo=/account&ifCancelled=/
loginCancelled&ifFailed=/loginFailed)
• What if the dialog calls another dialog, which calls another dialog?
What Qworum brings to applications (3)
Qworum scripts
• A new type of API where the endpoints provide
user dialogs.
• Qworum brings OOP methodologies to
application frontends.
• Qworum APIs are similar to OOP classes. API
endpoints are similar to object methods.
• The end-user sees a dialog when the Web
application runs a Qworum script that calls the
relevant endpoint.
• Query string not used for return addresses.
• Visit qworum.net for the full Qworum
speci
fi
cation.
<!—
A Qworum script that calls a login endpoint.
The Web application uses the Qworum browser extension
to run the script.
—>
<sequence xmlns='https://qworum.net/ns/v1/instruction/'>
<try>
<call href=‘/login' />
<catch faults=‘[“* cancelled”]'>
<goto href=‘/loginCancelled’ />
</catch>
<catch faults=‘[“* failed”]'>
<goto href=‘/loginFailed’ />
</catch>
</try>
<goto href=‘/account’ />
</sequence>
Qworum
browser extension
⚙
Web browser
Script sent
Next action to perform
∎

More Related Content

Similar to Qworum: Making the Web more suitable for applications

Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)TIMETOACT GROUP
 
A year with progressive web apps! #webinale
A year with progressive web apps! #webinaleA year with progressive web apps! #webinale
A year with progressive web apps! #webinaleAntonio Peric-Mazar
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)WSO2
 
SEMINAR (pwa).pptx
SEMINAR (pwa).pptxSEMINAR (pwa).pptx
SEMINAR (pwa).pptxBasitMir10
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixJake Peyser
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixDev_Events
 
Datasheet.net pluginforrd
Datasheet.net pluginforrdDatasheet.net pluginforrd
Datasheet.net pluginforrdMidVision
 
Web Based Vs Cloud Based Apps Complete Comparison (2).pdf
Web Based Vs Cloud Based Apps Complete Comparison (2).pdfWeb Based Vs Cloud Based Apps Complete Comparison (2).pdf
Web Based Vs Cloud Based Apps Complete Comparison (2).pdfchristiemarie4
 
What Are Progressive Web Application Development
What Are Progressive Web Application DevelopmentWhat Are Progressive Web Application Development
What Are Progressive Web Application DevelopmentApp Verticals
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...WSO2
 
Accessible UX in Government - OZeWAI 2015
Accessible UX in Government - OZeWAI 2015Accessible UX in Government - OZeWAI 2015
Accessible UX in Government - OZeWAI 2015Ross Mullen
 
Datasheet anthillpropluginforrd
Datasheet anthillpropluginforrdDatasheet anthillpropluginforrd
Datasheet anthillpropluginforrdMidVision
 
Design and Configuration of App Supportive Indirect Internet Access using a ...
Design and Configuration of App Supportive Indirect Internet  Access using a ...Design and Configuration of App Supportive Indirect Internet  Access using a ...
Design and Configuration of App Supportive Indirect Internet Access using a ...IJMER
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsShailen Sukul
 
MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021Nicholas Bowman
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Chris Haddad
 

Similar to Qworum: Making the Web more suitable for applications (20)

Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
 
20181023 progressive web_apps_are_here_sfcampua
20181023 progressive web_apps_are_here_sfcampua20181023 progressive web_apps_are_here_sfcampua
20181023 progressive web_apps_are_here_sfcampua
 
Progressive Web Apps are here!
Progressive Web Apps are here!Progressive Web Apps are here!
Progressive Web Apps are here!
 
A year with progressive web apps! #webinale
A year with progressive web apps! #webinaleA year with progressive web apps! #webinale
A year with progressive web apps! #webinale
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)
 
SEMINAR (pwa).pptx
SEMINAR (pwa).pptxSEMINAR (pwa).pptx
SEMINAR (pwa).pptx
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Datasheet.net pluginforrd
Datasheet.net pluginforrdDatasheet.net pluginforrd
Datasheet.net pluginforrd
 
Web Based Vs Cloud Based Apps Complete Comparison (2).pdf
Web Based Vs Cloud Based Apps Complete Comparison (2).pdfWeb Based Vs Cloud Based Apps Complete Comparison (2).pdf
Web Based Vs Cloud Based Apps Complete Comparison (2).pdf
 
What Are Progressive Web Application Development
What Are Progressive Web Application DevelopmentWhat Are Progressive Web Application Development
What Are Progressive Web Application Development
 
Micro-Frontend Architecture
Micro-Frontend ArchitectureMicro-Frontend Architecture
Micro-Frontend Architecture
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 
Accessible UX in Government - OZeWAI 2015
Accessible UX in Government - OZeWAI 2015Accessible UX in Government - OZeWAI 2015
Accessible UX in Government - OZeWAI 2015
 
Datasheet anthillpropluginforrd
Datasheet anthillpropluginforrdDatasheet anthillpropluginforrd
Datasheet anthillpropluginforrd
 
Design and Configuration of App Supportive Indirect Internet Access using a ...
Design and Configuration of App Supportive Indirect Internet  Access using a ...Design and Configuration of App Supportive Indirect Internet  Access using a ...
Design and Configuration of App Supportive Indirect Internet Access using a ...
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 
MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021MuleSoft Meetup Adelaide 7th April 2021
MuleSoft Meetup Adelaide 7th April 2021
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 

Recently uploaded

What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?Watsoo Telematics
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 

Recently uploaded (20)

What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?What are the features of Vehicle Tracking System?
What are the features of Vehicle Tracking System?
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 

Qworum: Making the Web more suitable for applications

  • 1. Doğa Armangil, d.armangil@qworum.net, April 2024 Qworum: Making the Web more suitable for applications Why best-in-class applications need the Qworum frontend PaaS. qworum.net
  • 2. Outline Business and technical reasons for upgrading the Web Proven market need. Business case: better customer service, easier partner integrations, easier internal integrations. Why the Web is still primarily a content platform. What would make the Web a full-featured application platform.
  • 3. Doğa Armangil Founder Qworum author Software engineer d.armangil@qworum.net
  • 4. Module Federation MF’s success has proved the market need for UI-level integrations.
  • 5. Module federation Business case • Speci fi cally conceived for cross-team, cross- business-unit integrations within an organisation. • Not made for cross-organisation integrations. • Not made for integrating with the applications of an acquired software company. • Not made for software startups looking to be acquired. Team Team Organisation Organisation ✅ ❌
  • 6. Qworum Business case • Enables better customer service, easier partner integrations and easier internal integrations. • Suitable for all integration use cases: cross- organisation, cross-team, and cross-business-unit. • Integrating with the applications of an acquired software company is 10x easier. • Suitable for software startups looking to be acquired. • Qworum-enabled SaaS is 10x easier to integrate with. Team Team Organisation Organisation ✅ ✅
  • 7. Module federation Technical aspects • Not a technology, packages existing technologies. • The application shell is a potential performance bottleneck for developer teams working in parallel. • In many cases, sharing responsability for the same Web page may be a much too fi ne- grained way of collaborating among devops teams. Application shell Module Module ⚡⚡
  • 8. Qworum Technical aspects • New technology, speci fi cally conceived for integration / modularisation use cases. • The only API technology to support user interactions. • Secure user authentication, even in case of deep service dependency graphs. • Calling Qworum APIs is much easier than REST; the API itself provides much of the UI. Qworum application / service Qworum service Qworum service Qworum service ✅
  • 9. What’s a content platform? Differences with application platforms • On the Web, interlinking between content pages is easy through hyperlinks. • Interlinking between Web applications is impossible, because there is no mechanism for doing that. • In fact, the Web platform goes out of its way to isolate Web applications from each other (the “same-origin policy”, or SOP). • In today’s Web, instead of interlinking between applications, we have integration mechanisms performed at the backend. This happens “out-of- band”, independently from the Web platform itself. Data transfer Web application Web application ❌ ✅ Remote function call Frontend / browser Backend / cloud
  • 10. What Qworum brings to applications An interlinking mechanism for applications • Support for distributed applications that span several Web origins, and for application integrations. • A new type of linking mechanism (see last slide). • As secure as the current Web. As it turns out, the same-origin policy was overkill. • A less restrictive variant of the same-origin policy for isolating the individual Qworum services/APIs from each other. • No need to isolate whole applications from each other. Data transfer Web application Web application ✅ ✅ Remote function call Frontend / browser Backend / cloud
  • 11. What’s a content platform? (2) Differences with application platforms • In a content page, the browser’s back button takes the user back one page. This works, as content is expected to be long-lived. • In an application, the browser’s back button also takes the user back in time. This introduces the risk that the application’s internal state may go out of sync with its UI. • In short: the back button may not make sense in the world of applications. • Mild malfunction: In a Web application, going back one page can take the user to outdated content, and even to an outdated URL. • Severe malfunction: Application crashes, application data becomes inconsistent or inaccurate. Back one page Back one page ❌ Outdated URL ❌ Outdated content
  • 12. What Qworum brings to applications (2) Disabling the tab history • The back button is inactive in a Qworum session. • Qworum services take care not to add new entries to the tab history. • This removes all risk that the application’s internal state may go out of sync with its UI. • Non-Qworum Web applications can provide a separate Qworum API for remote callers. • Qworum-based applications are themselves an API. ✅ Back button disabled ❌
  • 13. What’s a content platform? (3) Differences with application platforms • The Web does not have fi rst-class support for user dialogs. (Normal for a content platform.) • The return URL is normally passed to the dialog in the query string (/login? returnTo=/account). This doesn’t scale and makes development tedious. • What if the dialog should return to different URLs depending on what ended the dialog? (/login?returnTo=/account&ifCancelled=/ loginCancelled&ifFailed=/loginFailed) • What if the dialog calls another dialog, which calls another dialog?
  • 14. What Qworum brings to applications (3) Qworum scripts • A new type of API where the endpoints provide user dialogs. • Qworum brings OOP methodologies to application frontends. • Qworum APIs are similar to OOP classes. API endpoints are similar to object methods. • The end-user sees a dialog when the Web application runs a Qworum script that calls the relevant endpoint. • Query string not used for return addresses. • Visit qworum.net for the full Qworum speci fi cation. <!— A Qworum script that calls a login endpoint. The Web application uses the Qworum browser extension to run the script. —> <sequence xmlns='https://qworum.net/ns/v1/instruction/'> <try> <call href=‘/login' /> <catch faults=‘[“* cancelled”]'> <goto href=‘/loginCancelled’ /> </catch> <catch faults=‘[“* failed”]'> <goto href=‘/loginFailed’ /> </catch> </try> <goto href=‘/account’ /> </sequence> Qworum browser extension ⚙ Web browser Script sent Next action to perform ∎