Pushing Some New Ideas
Tagged Under : Ideas, Patterns, Web Services
I recently published an article over at Neude.net about an interesting concept called The Distributed Observer Pattern. Since then, I have been giving this idea a lot more thought because it wasn’t enough to find a solution to a problem. Now I want to see if I can squeeze any money making ideas out of it. This is one idea i came up with…
A Push Service Hub
Here’s the elevator pitch:
A central hub that connects people that have data they want to push to multiple subscribers with people that want to have data sent to them only when certain criteria are met. The criteria could be only when there is new data, at timed intervals, etc. Essentially elimination the need to make multiple requests for data. Both sides benefit by having an intermediary since neither has to expose their destinations or webservice information to eachother. This service would manage all the security and authentication as well as provide a wide range of possible destinations that could include email, sms, post to url, invoke webservice method, twitter api, instant message, etc!
How does that sound? There isn’t much meat to the idea but that’s because its really just about enabling communication through the means that users choose. It might resemble SMTP or Twitter in some aspects. Perhaps to understand it better, think of subscribers as followers. But instead of just 144 characters you can basically send and receive any kind of data. It’s like SMTP in that you send data to one server and the service will figure out how to get it to the subscribers. Some might want to be notified through email while some may want to have data actually posted or pushed to their own webservice for processing.
Today, many sites and services exist to help users exchange information, status or content with eachother but each one ends up implementing their own api’s and notification systems. This system could be used professionally between businesses as well as socially between users and allows each party involved to choose their own method of sending or receiving information. All this while still adding a level of security between the actual endpoints involved in the communication process since neither side communicate directly. Features such as re-pushing data again later when a destination is unavailable or perhaps the ability to charge for subscription access could be implemented.
Some Examples
Sharing your status and other bits of information quickly with friends is all the rage these days. But there is a bit of disconnect between the various services such as Twitter, Yonkly, Jaiku. It would now be possible to broadcast one message to the service hub and have it push the message to all your accounts on each of these services as well as enable other people to programatically subscribe to your new messages. Your friends could now choose to have your new tweets pushed to their own destinations such as a webservice to be used in an entirely different application if you allowed it.
A business that deals with inventory could use this service to broadcast new inventory count when new stock arrived or when items have been purchashed or are out of stock. This data could be used to track trends and events as they happen as opposed to waiting for a weekly report.
The service could also mimic push capabilities for webservices that do not support it. This service would be responsible for making multiple requests throughout the day to constantly check for new data while only sending notifications to subscribers when there is new data.
A wordpress plugin could be created that would enable push RSS capabilities. Whenever you write a new article on your blog, subscribers could now be notified of the new post instantly without having to check their feeds over and over for new content.
Research
As I discover sites and articles related to this subject I’ll post them here.
Web Hooks
PUSH RSS
Extensible Messaging and Presence Protocol (XMPP/Jabber)
Distributed Observer Pattern with REST
The Publish-Subscribe Framework with WCF
Beyond REST



