Multi-Tenant Web Server Using Message Queues for Dynamic Script Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing web service systems require significant code changes, testing, and deployment whenever fields in a message change, leading to inefficiencies in accommodating inbound message changes.
Innovation Solution
A multi-tenant system architecture with a static web server that queues and processes web service call messages based on endpoint URLs, where only user scripts are updated to accommodate changes, reducing the need for extensive code modifications and deployments.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional web service systems are used, then web services can be implemented with standard protocols, but significant code changes and redeployment are required whenever message fields change
Solution Approach 1:
The system segments the web service processing into distinct components: a static web server that handles incoming requests, a message queue that buffers requests, and script handlers that process specific message types. This segmentation allows the processing logic to be updated without affecting the core server infrastructure, enabling adaptability to message changes while maintaining system stability.
Solution Approach 2:
A message queue is introduced as an intermediary between the web server and the processing scripts. The queue decouples the server from the processing logic, allowing message formats and processing scripts to be updated independently. This intermediary buffer enables the system to adapt to message field changes without requiring server code modifications or redeployment.
2Adaptability or versatility
If message field changes are accommodated in traditional systems, then new message formats can be supported, but extensive testing and deployment time are required
Solution Approach 1:
The system employs dynamic script handlers that can be updated and activated without server redeployment. When message fields change, new processing scripts can be developed and loaded into the message queue system dynamically, allowing the web service to adapt to new message formats immediately without the traditional lengthy deployment cycle.
Solution Approach 2:
Processing scripts are prepared and validated in advance within the message queue system before being activated. This preliminary preparation allows for thorough testing of new message format handlers without affecting the running server, and once validated, the scripts can be deployed instantly to handle new message fields, significantly reducing deployment time.
3Stability of the object's composition
If a static web server architecture is used, then system stability is maintained, but flexibility to accommodate inbound message changes is reduced
Solution Approach 1:
The system separates the stable web server component from the adaptable processing component. The web server remains static and stable, while the message queue and processing scripts provide the necessary flexibility. This segmentation allows the server to maintain stability while the processing layer adapts to inbound message changes through script updates without requiring server modifications.
Solution Approach 2:
The message queue acts as an intermediary layer that provides adaptability without affecting the static web server. New message formats and processing logic can be introduced through the queue and script handlers, allowing the system to adapt to inbound message changes while the core server architecture remains stable and unchanged.
Data Source
AI summary
A method is provided for a multi-tenant system to accept web service calls from third party systems over a computer network. The method includes centrally receiving messages with different endpoint URLs from the third party systems over the computer network and processing each message by parsing an endpoint URL of the message to identify a tenant and an action for a payload of the message and authenticating the message. When the message is authenticated, the method further includes generating an acknowledgment of the message based on the identified tenant and the identified action and sending the acknowledgment over the computer network, routing the payload, the identified tenant, and the identified the action to a queue based on the identified tenant, retrieving the payload, the identified tenant, and the identified action from the queue, determining a user script corresponding to the identified action, and executing the user script on the payload.


