Moving up the stack
I have always heard bright people advocating that the real value lies in "applications" and not in the underlying "plumbing". Although some will certainly disagree, there is certainly some truth in the saying…
The recent submission of a new XMPP extension proposal prompted this reflection. The list of XMPP extensions is nearing the 200 and going. The purpose of this proposed addition is quite clear and legitimate:
While a protocol has been described for initiating a file transfer from one user to another, there is not yet a protocol allowing for one user to designate a set of files as available for retrieval by other users of their choosing.
The proposal goes even further by listing the functionalities provided by the protocol extension:
- Obtain a list of other client's publicly available files, which match given search criteria. The search protocol is similar to that described in XEP-0055.
- Request the transfer of one of those files. The transfer itself would function as described in XEP-0096.
- Place requests into a sender-side queue, such that files are sent at a later time.
Unless I am missing something, these functionalities are shared by many resources management applications. Many of these applications always follow the same features' pattern once the service has been discovered:
- Traversal of the resource store a.k.a listing,
- Finding a particular resource or resource set a.k.a search,
- Performing some action on a particular resource.
It happens we already have all the building blocks amongst existing XMPP extensions. In this particular case we would use:
- XEP-0030 and XEP-0128 for the files store traversal,
- XEP-0055 and XEP-0004 for the files store search,
- XEP-0050 for files store manipulation such as file retrieval or removal.
I believe this example shows that XMPP as a protocol has reach the right maturity level, allowing many application usages from its existing features set. There are still unexplored areas were the protocol will need entirely new constructs. This will pobably be the case of very specific application domains, such as the latest discussions around gaming extensions show. In a majority of cases, though, we should see more and more proposals defining existing extensions "mashups" instead.Technorati Tags: XMPP, Jabber, Antecipate