A paradigm shift is due in the realm of what I call distributed computing. In my definition, this is where the processing for a particular task is “done somewhere else” other than the desktop. In the web model, you can think of this as dynamic web sites. You tell the server what you want by clicking on a URL, and the web server generates a result designed for what you can display – web browser, phone, pocketpc using flash, pdf, html, wml, svg or image.
If we extend this to incorporate intelligent desktop software, you could have server based Photoshop plugins. You “hire time” with these plugins to do some smart processing on part of an image. Ie: select a badly photographed face in an image; click on a special “heal” button, and this image is sent to a server, processed and returned. If an engineer finds a smarter way to process the images – the protocol between the desktop application and server doesn’t change – just the code on the server. Everyone who uses this web service gets a better service, and the installed based of software on the desktop just gets smarter.
Another example is taking a collection of images and text and telling the server “to assemble this into a catalog”. The server returns an 80% completed catalog as an InDesign file. There are smarts in the InDesign app to tell the server what you change (positioning, text formatting) so the next time you ask the server to process something similar, it learns from its mistakes first time around. This time, the catalog is 90% completed. And so forth.
In this model, software companies like Adobe produce standardised “hooks” into their server plugins. Desktop applications are purchased with certain “rights” to use these plugins. Other desktop applications can also use these hooks, but at a different cost. The application is therefore a smart front end to the server. Larger organisations could purchase the server for internal use too.
Adobe is already experimenting with this model: Adobe Studio Design Team and CreatePDF (to name two)
It relies on increased bandwidth and smart connections from the desktop to the server. Smart protocols (like SOAP, XML-RPC and WebDAV) are also a part of this model. The use of artificial intelligence (another re-emerging paradigm) also permits smarter servers making changes. In fact, the client and server are smart enough to scale the process to a point where bandwidth is a function of the process used.
Using neural models (self learning software: what does this user expect) and iterative requests (the last time you did this, I found that this item needed to be moved a little to the left) — AI comes into its own as a process of producing smarter automated output.
Interestingly enough, I’ve seen some stuff coming in our pipeline of products that shows we are thinking in these manners. I love Adobe – lots of very smart people. I am also glad we are harnessing the best in the world, too.
One thought on “A paradigm shift in software”
Comments are closed.