From: Andreas K. <and...@ac...> - 2006-09-08 18:58:29
|
> Hello all, > > Michael Schlenker and I were just discussing a possible new are of interest > in Tcllib: distributed computing. > > First of all, let me explain what the two of us mean by "distributed > computing": > Two or more programs (either running on the same computer or on different > computers) share information, so that they can both progress in their task. > Examples: > - The tkchat is such a system - a whole bunch of people talking to each > other. > - SOAP is a well-known protocol that allows programs (processes) to share > information. > - GRID computing where large-scale computational programs running > on all kinds of computers cooperate to predict the global climate for > the next > 100 years. Note jcw's "Tequila" for shared arrays. Note further Tcllib's "tie" (rarray backend) for doing same (foundation: Tcllib's "comm"). > Mind you: we are not out to create something that will encompass all such > forms of distributed computing! > > Let me outline our intended audience: > The average programmer knows of multithreading and multiprocessing > as powerful techniques to enhance the performance of their programs. > Or they know of client-server techniques to allow several people to > use their system. Multithreading is notoriously hard to get right. > Client-server systems are much easier - if you use Tcl :). In Tcl multi-threaded can be seen as client-server system running within a single process (the apartment-model + thread::send). > The programmers and users we envision do not have massive > computer networks for doing their job. Just a couple of boxes that > could be used in some biggish computation but right now it is too much > work to get them cooperating. > > What if we had a framework where such people could plug in their > various programs with only little adaptations. Tcl and Tcllib have > a lot of tools for doing this. So all that is needed is a bit of > infrastructure. "comm" is the main infrastructure IMHO. The main thing will be to define how tasks are communicated, results etc. That might be specific to the system used. Security also becomes a much biger issue than before ... Reminds me, wanted to write something to allow use of "tls::socket" in "comm". > Given the variety of tools (secure connections or not for instance), that > infrastructure could be tuned to their needs with just a few switches. > I propose to discuss either on this list or on the Wiki the outlines of > such an infrastructure and to go ahead and assemble it from the tools > we have when there is enough clarity about it. I have no trouble to have it discussed here. It fits a bit with the (now defered) name-service thingy. The name server can be used by the various pieces of the distributed system to find each other. Note also Apple Bonjour/Rendezvous, it does a similar thing. -- Andreas Kupries <and...@Ac...> Developer @ http://www.ActiveState.com Tel: +1 778-786-1122 |