SlideShare una empresa de Scribd logo
1 de 14
Descargar para leer sin conexión
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
∎

Más contenido relacionado

Similar a 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 a 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...
 

Último

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
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
 
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
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
(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
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
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
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
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.
 
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
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
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 Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 

Último (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
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...
 
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
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
(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...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
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
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
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...
 
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...
 
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
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
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 Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 

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 ∎