Discussion Locked

Dcom vs terminal services.

0 helpful
12 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.

Recently I have been asking myself – Why are some people still using Dcom?

I have been using Dcom for quite some time and I have decided to move into something different…terminal services.

I think the main reason for using client-server models is to enable applications to be accessible over a network and to also make sure that we eliminate support costs by making clients as thin as possible. Dcom and terminal services can both achieve this. The question is: Which one is the best in as far as functionality and usability are concerned?

Dcom clients are not thin enough because part of installation is required at the client. This posse a lot of threats for a programmer:

1.The programmer is likely to support the client machine even if it has nothing to do with the application that was installed. I have heard customers saying “your program has ruined my word application”

2.When customers want to change the program interface, the programmer has to update all the client machines.

With terminal services, you just install the program at the server machine and every client machine will use the program as if the user is at the server machine. In this way, the program is truly at the server machine and the client is truly thin (if not non existent because you don’t install any part of the program there). With terminal services, there are no mappings, and the users will refer to their system administrator for most network problems.

If arenot familiar with terminal services please follow this link:

http://www.microsoft.com/windows2000/technologies/terminal/default.asp

So, why are some programmers still using Dcom?

I’m desperate for an answer.

12 replies

by code monkey

Why bother with Terminal Services or DCOM when you could make a web application? I know not all apps are suited to be web applications, but I'm sure a large percentage of 'em would work just fine as a web application.

by tvde

I think that most users of real business applications (not some silly shoppingcart application being used 1 hour per month per user !) want more GUI functionality than a normal application developer can deliver using (D)HTML...

And it will definitely take more time to develop these (D)HTML based applications. And cost matters these days.

.NET Windows Forms & Java WebStart are decent alternatives but in the end you again need some kind of application server.

by john.couture

Terminal Services have their place and can be very useful as long as they are kept in perspective. About 6 years ago, I worked for the Dept. of Defense and they made the BAD decision to move away from Desktop PCs in favor of the "NEW CALS" system.Leave it to the government to consider dumb terminals as "NEW". The idea was to centralize everything... Word processing, database apps, spreadsheets, graphics apps, everything ran on the server. It doesn't take a genius to see that single point of failure. As long as people don't get into the mode that it has to be all Terminal services, all DCOM, all Desktop, or all Web Apps then they probably have a good shot at success. Depending on the type of application or service being provided a thorough analysis should help determine the best environment to host the app (whether it be stand alone, DCOM, Terminal, or Web)

by taphilo

There are a lot of "hidden" costs in using Terminal Server which if anyone doing some research on will come across before deploying. First off only between 40 to 60 users can be supported per TS at best. Memory needs and CPU load is the reason. For a good TS you need at least 4 GIGs of RAM, 4 CPUs. Then you need to ensure high bandwidth for those 40 people so you are talking 100 Base T connections which means your switches have to be that speed for the 2 TSs you will need -- and dual homed to avoid single switch failure You then need a good TS admin who can configure apps and user profiles for the TS.

Forget any heavy graphic applications. You do not want apps that write to the local drive so everything has to be mapped to a network file server drive for users to write at logon. That means profiles and that means AD for best use and that adds a layer of complexity and political fighting.

Add in the CALs for all apps (You need a license server, you should know what programs are running anyway but having a TS just ensures that you know it).

Start adding all that up and you are about to hit a quarter million dollars in hardware / software up front costs for a 120 to 200 person sized company to put in a TS farm correctly (you can always do it cheaper but then the background support costs and user frustration set in).

You will need an RnD zone too to test apps in and I have factored that in also in the above plus spares for all hardware and cost to expand.

For $50,000 you can purchase 200 copies of MS Office suite. For $240,000 you can purchase every person a 1.6 Gig (or better given discounts) brand new PC complete -- a PC is still needed to access the TS -- and can work online or offline as needed plus can have special apps that will not work on a TS. You do have the support staff to manage the PCs but you would have them ANYWAY even on a TS system.

Tom Philo
www.taphilo.com

by tvde

I agree with the higher bandwidth, CPU and memory requirements BUT standardizing on TS-based applications only really makes sense ! In that case you don't have to buy real PCs for the endusers - you can buy real thin (dumb) clients supporting the ICA protocol. They actually don't need any configuration and can be replaced in 5 minutes... This saving probably outweighs a lot of support costs !

by rainsley

If you target the minimal clients for TS, then you limit what these work stations can perform. This is certainly OK in large very stable departments where mostly database intensive applications are running. But, what if the company needs to reconfigure their system (say they are working on a new job/contract/building, etc)? Then the users are locked into using only software that works well with a single mainframe style host. Spreadsheets are among the applications that can bog down a mainframe style server as are most graphics intensive applications (due to intense demand for computations). Seems a problem to me in the long run.

by tundra gregg

We have some Wyse terminals that are over 5 years old and have NEVER seen a tech for repairs. The average life of a desktop is no longer than 3 years and laptops are about 18 months. I agee that some apps like CAD and odd communication packages are not candidates but I can see many areas like factory areas or data entry where terminal services rules.

by silent night

We use DCOM extensively. Although Terminal Server is useful, we find it unsuitable for custom distributed applications because:

1..DISTRIBUTED PROCESSING. TS is not really 'distributed'. A well developed DCOM application can be installed on many servers, each sharing a portion of the processing. The terminal server needs to run the entire app itself, AND still serve up the application, process the TS client requests etc. etc.

2..BANDWIDTH. TS is comparitively heavy on bandwidth. A DCOM app has to stream small, intermittent packets of data (obviusly dependant on the type of aplication). TS needs to constantly stream keyboard and screen updates.

3..EXTENSIBILITY. DCOM was designed with expansion in mind. As your application grows, it's relatively easy to add new components to your system, through DCOM. You will probably argue that you can do the same with TS, but aren't you at the very least using COM (more than likely DCOM or COM+) to do it?

4..LICENSING. If you use TS, it's one more product to license, and yet another cost to add to your project's budget.

Don't get me wrong, I'm not against TS. It's a good product, and has it's place, but it's by no means a total replacement for DCOM. A well designed DCOM system will always run faster and be more expandable than running it on TS. I'm referring specifically to the larger enterprise level applications when I make that comment.

I would see TS better served by sharing Office type applications, possible small accounting packages and that sort of thing.

Anyway, just my 2 cents worth...

by rwilliams

Most of my app's are "real-time" apps that gather data from a manufacturing process. On top of the vast amount of data that needs to be "quickly" processed, there is also the problem of proprietary hardware that must be used on the client machine.
For me, DCOM works great for some of the DLL's I create, usually for fairly complex process requirements where nothing else will work.

For my line of work, I don't think Terminal Services could replace DCOM, nor do I think that the network groups would appreciate the massive amount of data that would be going over the network...they're usually not even happy with the amount of data I pass when all the work has been done.

by jp

Likewise..

For the last 4 years or so I've been engaged in developing win32 speech services (digital dictation and speech recognition) for a distributed 24/7 system with a large installed base and high demand for continuity of service (mainly hospitals and clinics).

Services I provide run on PC clients, and host in turn a diversity of software clients, none of which are Windows based. I view the speech services essentially as input/output devices, but they have ongoing interaction with central servers and databases, and their clients, using xml and sockets. They are centrally configured where possible, but need to be locally installed to run with system priviledges, and refer to particular hardware on individual clients, some of which is developed by us.

The key to the solutions I have developed has been a careful consideration of data locality and granularity. My feeling on the topic of this discussion is that Terminal Services tie development to a keyboard/mouse/crt paradigm that is fast becoming obsolete. Future input/output modes, such as speech recognition, text to speech, machine vision, etc, will not scale well to this model because of bandwidth and sensitivity of input data to context and realtime response.

Ican't say anything about DCOM because I don't use it. That said, it seems like a bad idea to blur the destinction between local and remote components, when the cost of RPCs is so high. Some DCOM solutions I've looked at would benefit from the kind of approach I've adopted, which I would call 'minimum message length' computing. I'd see this as diametrical to a dumb terminal, which hits the wire with every mickey and every keystroke.

Just my 2 cents worth.

by ljruf0

Although server based application architecture has its place, a "mix of fat and thin" is needed to support the remote user base which connects infrequently. It is not a question of DCOM vs. TS for that group, but a basic issue of "just in time technology" based on the user's task. A remote user requirement may drive the need for detachted (sometimes robust) functionality, potentially with server database synchronization at various intervals. Couple this with the fact that wireless solutions (CDPD, CDMA, etc...) simply are not there yet, the useage or thick design (or hybrid) has a solid place in the mainstream of application development across user bases for quite some time. Don't throw away your VB book!

by doctordoctor

My organization (VA New England) has made a major investment in thin clients and CITRIX, for all the reasons quoted elsewhere related to total cost of operation and support / maintenance. However, the downsides are major network bandwidth requirements -- costly and difficult to achieve -- as well as an increasing requirement for multimedia. We continue to push forward, but it hasn't been as cost effective as we would like. For the record, our major clinical application is client-server, but ismigrating to .Net / web services.

This discussion is closed to new replies.