www.nickhodge.com

microsoft, munging and on being a mercurial iconoclastic professional geek.

A paradigm shift in software

with one comment

A paradigm shift is due in the realm of what I call dis­trib­uted com­put­ing. In my defin­i­tion, this is where the pro­cessing for a par­tic­u­lar task is “done some­where 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 click­ing on a URL, and the web server gen­er­ates a res­ult designed for what you can dis­play — web browser, phone, pock­etpc using flash, pdf, html, wml, svg or image.

If we extend this to incor­por­ate intel­li­gent desktop soft­ware, you could have server based Pho­toshop plu­gins. You “hire time” with these plu­gins to do some smart pro­cessing on part of an image. Ie: select a badly pho­to­graphed face in an image; click on a spe­cial “heal” but­ton, and this image is sent to a server, pro­cessed and returned. If an engin­eer finds a smarter way to pro­cess the images — the pro­tocol between the desktop applic­a­tion and server doesn’t change — just the code on the server. Every­one who uses this web ser­vice gets a bet­ter ser­vice, and the installed based of soft­ware on the desktop just gets smarter.

Another example is tak­ing a col­lec­tion of images and text and telling the server “to assemble this into a cata­log”. The server returns an 80% com­pleted cata­log as an InDes­ign file. There are smarts in the InDes­ign app to tell the server what you change (pos­i­tion­ing, text format­ting) so the next time you ask the server to pro­cess some­thing sim­ilar, it learns from its mis­takes first time around. This time, the cata­log is 90% com­pleted. And so forth.

In this model, soft­ware com­pan­ies like Adobe pro­duce stand­ard­ised “hooks” into their server plu­gins. Desktop applic­a­tions are pur­chased with cer­tain “rights” to use these plu­gins. Other desktop applic­a­tions can also use these hooks, but at a dif­fer­ent cost. The applic­a­tion is there­fore a smart front end to the server. Lar­ger organ­isa­tions could pur­chase the server for internal use too.

Adobe is already exper­i­ment­ing with this model: Adobe Stu­dio Design Team and Cre­atePDF (to name two)

It relies on increased band­width and smart con­nec­tions from the desktop to the server. Smart pro­to­cols (like SOAP, XML-RPC and Web­DAV) are also a part of this model. The use of arti­fi­cial intel­li­gence (another re-emerging paradigm) also per­mits smarter serv­ers mak­ing changes. In fact, the cli­ent and server are smart enough to scale the pro­cess to a point where band­width is a func­tion of the pro­cess used.

Using neural mod­els (self learn­ing soft­ware: what does this user expect) and iter­at­ive 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 pro­cess of pro­du­cing smarter auto­mated output.

Inter­est­ingly enough, I’ve seen some stuff com­ing in our pipeline of products that shows we are think­ing in these man­ners. I love Adobe — lots of very smart people. I am also glad we are har­ness­ing the best in the world, too.

Written by Nick Hodge

April 14th, 2002 at 10:00 am

Posted in mungenet