Distributed application

L

Luis G. Gómez

Hello all,

It's my first time posting to this ML so this may be out of place...

I'm working on an idea for an application that, if conceived, would be
distributed as part of a system composed of a server and x number of
terminals. This server would be dedicated to serving an application in
the form of a GUI that I'd like to develop using Ruby exclusively.

The server would be Linux but the terminals are likely to be running
windows (although it'd be great if the terminal's platform became
irrelevant).

Now, the idea is to have users (terminals) be recognized by the server
so that the application can be run from it. That way additional
terminals could be added to the LAN that would automatically "see" th
application. I'd like to be able to avoid installing anything on the
terminal (except maybe a shortcut or something similar). The user would
then doubble click the apps shortcut and launch the application from the
server. The application will, among other, allow for the manipulation of
images and documents being served by the app server. Nothing is stored
locally.

My question is kind of broad. I'd like to know if anyone has worked on
similar distributed apps or if there are resources available online that
could guide me in the "right" direction. I've never done distributed
GUIs and don't even know if it's possible at this point using Ruby.
Also, I'm not clear about Ruby's image manipulation capabilities.

Thanks a lot!!

LG
 
R

Roeland Moors

Hello all,

It's my first time posting to this ML so this may be out of place...

I'm working on an idea for an application that, if conceived, would be
distributed as part of a system composed of a server and x number of
terminals. This server would be dedicated to serving an application in
the form of a GUI that I'd like to develop using Ruby exclusively.

The server would be Linux but the terminals are likely to be running
windows (although it'd be great if the terminal's platform became
irrelevant).

Now, the idea is to have users (terminals) be recognized by the server
so that the application can be run from it. That way additional
terminals could be added to the LAN that would automatically "see" th
application. I'd like to be able to avoid installing anything on the
terminal (except maybe a shortcut or something similar). The user would
then doubble click the apps shortcut and launch the application from the
server. The application will, among other, allow for the manipulation of
images and documents being served by the app server. Nothing is stored
locally.
Maybe you can just create a web application? Then all you need is
a browser.
My question is kind of broad. I'd like to know if anyone has worked on
similar distributed apps or if there are resources available online that
could guide me in the "right" direction. I've never done distributed
GUIs and don't even know if it's possible at this point using Ruby.
Also, I'm not clear about Ruby's image manipulation capabilities.

http://rmagick.rubyforge.org/
 
E

Eric Hodel

--Apple-Mail-19--657027153
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Now, the idea is to have users (terminals) be recognized by the server=20=
so that the application can be run from it. That way additional=20
terminals could be added to the LAN that would automatically "see" th=20=
application. I'd like to be able to avoid installing anything on the=20=
terminal (except maybe a shortcut or something similar). The user=20
would then doubble click the apps shortcut and launch the application=20=
from the server. The application will, among other, allow for the=20
manipulation of images and documents being served by the app server.=20=
Nothing is stored locally.

Something must run on the client for the server to see it, or the=20
client must do something to advertise itself.

You may be able to get somewhere with DRb and Rinda, I have a few=20
documents those here:

http://segment7.net/projects/ruby/drb/

You'll probably be especially interested in Rinda::RingServer:

http://segment7.net/projects/ruby/drb/rinda/ringserver.html

Your best bet, though, is to make a web-app.

--=20
Eric Hodel - (e-mail address removed) - http://segment7.net
FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04

--Apple-Mail-19--657027153
content-type: application/pgp-signature; x-mac-type=70674453;
name=PGP.sig
content-description: This is a digitally signed message part
content-disposition: inline; filename=PGP.sig
content-transfer-encoding: 7bit

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)

iD8DBQFB0xHcMypVHHlsnwQRAr3xAJ95oAPEsZs3ukNWtMWM/A7t9uS6DQCgsq5w
DknIPuV5stuX0izE2AAwSog=
=jFCE
-----END PGP SIGNATURE-----

--Apple-Mail-19--657027153--
 
L

Luis G. Gómez

I've worked almost exclusivelly on web applications and do understand
what you mean but, even though I know how to do all of what I need as a
web app, I want a seamless, stable and responsive application that does
not depend on the browser.

The inspiration for the application's interface comes from high end
systems like Discreet's Inferno, Flame, Flint and Combustion combined
with Alias' Portfolio Wall.

http://www4.discreet.com/Images/flint/flint9_ui_stabilizer_large.jpg
http://www4.discreet.com/Images/company/press/imagelibrary/smoke/ui_mixres_large.jpg
http://www4.discreet.com/Images/fire/uiPSD_in_DVE-750.jpg
http://www4.discreet.com/Images/inferno/inferno6_ui_distort_large.jpg
http://www.alias.com/eng/products-services/portfoliowall/index.shtml

When the application is run, no other application is acesible. The
application runs fullscreen and remains in controll of the display until
it is closed. It's meant to server as a workstation covering all the
necessary tools for the task at hand. If you are curious, the task will
be manipulating medical images.

I'm looking into rmagick, DRb and Rinda. Thank you fr the sugestions.

As soon as I finish the diagram that describes the structure of the
system, I'll post a link here so you can see it.

Thank you

LG
 
L

Luis G. Gómez

Ok, forget the diagram. Picture this:

Customer buys a system that is composed of the following hardware:
- an app-server
- terminal.

The app-server contains a script that runs on first startup and:

- detects conection to the internet.
- connects to a master server (on the internet) and downloads and
installs the application upon successfull identification.
- Registers and IDs app-server as an active application server. This
allows the master server to maintain software remotelly and keep a
record of where the app-server is to facilitate locating it from terminals.
- starts app-server

The terminal contains a script that functions as a thin client providing
an interface for authentication and:

- detects connection to the internet.
- registers with master server and upon corrct id downloads its
assigned's app-server information (location, etc...)
- Drops connection to master server
- locates and connects to assigned app-server
- downloads a temporary copy of the application from the app-server upon
launch and...
- after user is done working removes app from terminal and goes back to
"login screen"

We know which app-server is "assigned" to which terminal beforehand
'cause we sell it to the customer and maintain record os app-server's
IDs and terminal's IDs. We may even forget that part and simply control
this with user authentication on a central server (the master server).

===========

I'm now thinking customers could request a system that is not maintained
remotelly. This means the app-server would be delivered with the latest
copy of the application and terminals would have to be configured
manually (as far as locating it's app server goes) in the absence of a
central "master-server". A connection to the internet would not be
necessary in this case.

===========

Please excuse me if this sounds disorganized but it's not even in
development... I'm barelly brainstorming the idea.

Thank you

LG
 
T

Tim Hunter

Sarah said:
But rmagick #display does NOT work under windows as well as linux. We
have discussion about it a while ago.

An annoyance, yes, since #display is a handy way to preview images, but
hardly a show-stopper. You can save RMagick images in your choice of
standard formats, GIF, JPG, PNG, PDF, EPS, etc, and view them in any image
viewer.
 
Z

Zach Dennis

Tim said:
An annoyance, yes, since #display is a handy way to preview images, but
hardly a show-stopper. You can save RMagick images in your choice of
standard formats, GIF, JPG, PNG, PDF, EPS, etc, and view them in any image
viewer.

Couldn't the person who wants to use #display just write the
gif/jpg/png/pdf/etc.. then pass in the path to the file and make a call
to IE, Firefox, Netscape, etc...to open it?

It can't be that hard to figure out the default web browser.

Zach
 
L

linus sellberg

Couldn't the person who wants to use #display just write the
gif/jpg/png/pdf/etc.. then pass in the path to the file and make a call
to IE, Firefox, Netscape, etc...to open it?

It can't be that hard to figure out the default web browser.

No need to find out the browser.
`start filename`
works fine if it is enough to use whatever program it is that is
associated with the file in question.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,228
Members
46,818
Latest member
SapanaCarpetStudio

Latest Threads

Top