Is this possible?

This may be a pretty dumb question...   I want to know if there's a way to wrap an existing (uneditable) windows application in such a way that it will run on a web server but be viewed and interacted with by web clients?

We have several CDs with data stored in proprietary formats and their corresponding freely distributable viewer applications - instead of deploying the viewers to every person in my department who might wish to view the data on the CDs I would like some method by which they might be able to access the viewer in a control(?) through IE, kind of like remote desktop or term services.

Note that the viewer itself must essentially run on the server as it maps to the various CD-ROMS.

How hard would this be to implement?

Does my question even make sense?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Yes, it makes sense, but, since the application gets its input from the local keyboard and mouse and generates its outout on the local screen (local here being the server), the only way I can think of that it might be jury rigged would be:

1)  Application remains running
2) web site obtains inputs and passes them to a program that stuffs them in the app's controls and sends appropriate messages to the app's message queue
3) the resulting screen is captured and returned to the browser as a jpg.

Lot's of work for something prety clunky.

An alternative may be Terminal Services - whether hosted by you or someone else.  It may be cheaper than the cost of getting it to run web-based.
Heavy stuff if you wan't to do it yourselves ...

Indeed, you could think about Terminal Services, or Citrix Meta Client ...
Yup, this is perfectly possible baal32... grab yourself a copy of RealVNC...

And throw it on your server with this software installed.  Then, setup a webserver that hosts the Java-based VNC client, so everyone can connect and access this software through a web-based java applet, which is doing remote control of that server.  Keep in mind, you'll prolly only be able to have one person controlling at the same time, and secondly, this is a security hole.

This doesn't have to be a security hole if you allow them to control a locked down user however.  On your server, make a HIGHLY restricted user that pretty much can only use that software.  =)  Then when they remote control your server, that program is started up already, and they can only use it.  =P  neato huh?  RealVNC is Open-Source and completely free.  =)  Enjoy my techie brotha'

 - Insolence
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

Hi Insolence,

VNC could be a solution, but like you alread wrote ... It's remote control and just one user at the time ... (with no control)

I didn't use the Java Client, but the simple VNC Viewer. In this case, when a different user connect via VNC to the server where you're working on, you're just kicked of the system .... I think it will be the same with the Java-Client?

I don't think that's what they want?
Well, cookre's solution would have the same result, this seems like one of the only options.  The only other option would be really to run a multiple user terminal server on 2k or 2k3 server.  Which is very VERY expensive if done legally.  =\

My solution, well, it will let them do it from a website, which is one of his requirements, and from any OS with a java implementation.  So it covers an extra base, but of course, misses the multiple user base.  Which... in this case is DAMN hard to do.  =)

Now... depending on what these CD-ROM's really contain... there is another option I just thought of baal... why don't you use a program like Alcohol 120%, CloneCD, or something to make CD Images (usually .iso's) of those CD-ROM's.  Then throw the images all on your regular network file server, and install one of many virtual CD-ROM programs out there (virtualcd, daemon, alcohol 120%) on all the machines that need to access the data.  All those computers will mount a network iso image as a real CD-ROM and allow that software to be run on clients machines.  Now... as to the legality of this, I do not know, because I do not know what those cd-roms contain, and wether baal, or baal's company owns the rights to be able to use this infinitely.  So of course I must warn about that.  And also, this solution would not work over the web, mostly just over a LAN or possibly WAN.  =)  Just some thoughts...

 - Insolence

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
VNC isn't a good solution because of everything that was debated above. I think the best way is to put the viewer embedded on a local webpage, running server-side. You will have to create different instances of the viewer object, so they will be independent from each other, and each user can search freely what they want.
baal32Author Commented:
To answer a couple of the questions - I work at a uni; we have the right to display the data on the aforementioned CDs to all students attending, whether they are on campus or not.  We  control access at the NAS level (we have set concurrent users to 1).  The viewers themselves are free license, as they are entirely useless without the data (which we are obviously paying for).  The CDs are already on a NAS server, so they are essentially already being used in cloned form (the actual CDs are in a safe at this point).  As I said earlier the chief issue for me is not having to install these proprietary viewers on every system that wants to view the data on the CDs, because quite frankly they (the viewers) are somewhat finicky and a pain in the *** moreover.  Cluskitt's comment about embedding the viewer in a web page and somehow running server side (to map to the cloned CDs), while still accepting client-side interaction is exactly what I'd like to accomplish. What I was hoping (and my hope was of course bolstered by the fact that I know very little about programming) was that I might be able to embed the applications in a control or applet such that 1) the application would be viewable via http 2) a user would be able to interact with the application client-side (clicking on buttons and such) and 3) the application would still run server-side.

This is the face I'm making right now -> :(
I guess that means a downloadable, robust silent install of the viewer is a pipe dream....
If you manage to embed the application in a webpage (for example, one created for the sole purpose of running this), then it would be easy to make it fulfill you specifications. Now, wether or not you can embed it, that's another question. Basically, I think your best option at this point is to contact the software's company, explain your situation, and ask for some help embedding it. Usually aplications need special dll's to embed on a webpage.
baal32Author Commented:
Sorry for splitting the points like that but everyone had good suggestions...

I think my only option will be to locally install the viewers on all the relevant machines

Here are your options, plain and clear.

If you want to wrap this in something for a website, you can create a control as you mentioned initially.
Look at Window COMM programming.  You will need to create an ActiveX control that wraps your existing code though providing an interface that will run on a webpage.  This way you have a single point of distribution, and if you ever update the software, its really easy.  PLUS, controls can be written in half a dozen languages.

The approach above requires a fair amount of research and learning, though the benefits outweight the work.  I can point you to many good books an sources of information if you are interested.

Your other option is to rewrite your code in something proprietary such as Java to provide the interface to the web.
This will require as much work as the first option.

Lastly, you could simply provide your viewer as a download on the site.

Let me know if you want the resources to learn about COMM and ActiveX web controls?
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.