Frequently Asked Questions¶
Frequently Asked Questions
What is RPC?
Remote Procedure Call (RPC) is a messaging pattern involving peers of three roles:
A Caller issues calls to remote procedures by providing the procedure URI and any arguments for the call. The Callee will execute the procedure using the supplied arguments to the call and return the result of the call to the Caller.
Callees register procedures they provide with Dealers. Callers initiate procedure calls first to Dealers. Dealers route calls incoming from Callers to Callees implementing the procedure called, and route call results back from Callees to Callers.
The Caller and Callee will usually run application code, while the Dealer works as a generic router for remote procedure calls decoupling Callers and Callees.
What is PubSub?
Publish & Subscribe (PubSub) is a messaging pattern involving peers of three roles:
A Publishers publishes events to topics by providing the topic URI and any payload for the event. Subscribers of the topic will receive the event together with the event payload.
Subscribers subscribe to topics they are interested in with Brokers. Publishers initiate publication first at Brokers. Brokers route events incoming from Publishers to Subscribers that are subscribed to respective topics.
The Publisher and Subscriber will usually run application code, while the Broker works as a generic router for events decoupling Publishers from Subscribers.
Read more: Publish / Subscribe Systems: Design and Principles, by Sasu Tarkoma.
Why RPC and PubSub in one protocol?
Now, a protocol suitable for realizing above will naturally need to provide both RPC and PubSub messaging patterns. WAMP was designed exactly with above in mind, so it provides you with a unified protocol for both RPC and PubSub.
For more about the reasoning behind WAMP, see this explanation.
Why is it called WAMP and how do I use it?
WAMP is an acronym, and the term “Web Application Messaging Protocol” is a quite precise description of what the protocol provides.
Note that there is another technology also abbreviated WAMP: the Web technology stack “Windows + Apache + MySQL + PHP”. I.e. Wikipedia has a corresponding disambiguation page.
Because of this potential ambiguity, here is what we recommend for authors/implementors:
Use “WAMP” in text and speech
The first occurrence in text should read: “WAMP (Web Application Messaging Protocol)”
Add the hashtag/keyword “wampws” to the contents metadata
And here is what we recommend for users:
Use the terms “wamp” and “protocol” combined when using Web search engines
What is WebSocket?
WebSocket is a protocol providing full-dupley communcations channels over a single TCP connection. It started out in the Web world, where it was created to replace things like Comet, and to allow true bi-directional, low-latency connections between browser and server. It’s standardized by the IETF and the W3C. Usage is not limited to the browser, with implementations available for all major programming languages. For more details see this introductory blog post.
Is WebSocket necessary for WAMP?
What is the legal status of WAMP?
Are there any requirements if I use WAMP for my project?
Why is WAMP trademarked?
The WAMP word- and design mark are trademarked as a way to ensure that only proper use is made of them. This is especially the case in regard to assurances regarding compatibility. A trademark policy detailing correct use is in the works. For now, and for a quick overview of the base principles of the trademark policy, see the following question.
Who can use the WAMP word mark or the WAMP design mark?
What does the CC copyright on this website mean?