From: Ilmari Heikkinen Date: 2005-11-09T19:58:58+09:00 Subject: Distributed (desktop) computing middleware? Hi, Is there any easy-to-use middleware out there for creating programs that communicate over the network? For example, having an audio-out daemon running on the computer with speakers and then streaming audio there from your desktop computer and the media server in the closet using your PDA to run the controller app. Reason I ask is because I remembered I had some old middleware code on top of DRb+Rinda lying around, and wondered if there are better ways, or if I should package and release the code instead.. Features that would be nice: * automatic peer and service discovery * asking peers to start services not running * message multicast and anycast * easy API * peer-to-peer messages * works in Ruby (---- I got this far feature-wise in my code ----) * proxied messages * authentication * preferably using some commonly available method (like ssh) * encryption * portable * popular What I got now works like this: % cat my_service.rb # Service require 'msglayer' s = "MyService" s.extend MsgLayer s.export :upcase, :reverse!, :downcase s.listen_at :MyService DRb.thread.join % cat my_client.rb # Client require 'msglayer' puts MD.MyService.upcase MD.MyService.reverse! puts MD.MyService.downcase % ruby my_service.rb String: Listening at :MyService % ruby my_client.rb MYSERVICE ecivresym Good things: easy to use? automates a bunch of hard stuff? Bad things: no authentication, no encryption, not very portable, isn't used by millions of gnome and kde apps out there. Opinions? Is there something like this already? Should it use something else than DRb? How? What color are my black socks when it's sunny? Ubiquitously yours, Ilmari