Anything besides DCOM !!

Posted on 2003-03-10
Medium Priority
Last Modified: 2010-04-04
Greetings ...

I would like some general suggestions as to anything else I could use that would give me more or less the same functionality that DCOM gave me.

I completed a project using DCOM but something like SOAP or webservices sounds a little bit better. I only have Delphi 6 Professional and not the Enterprise editions required for creating Web services.

Any other suggestions or pointers would be greatly appreciated.

All that basically has to happen is that some information would be sent to some server module that would , depending on it's current configuration , update information in either a database , a directory service like NDS or E-directory ext...

Thanx in advance.    
Question by:Engwi
  • 6
  • 4
  • 3

Expert Comment

ID: 8105047
well there'd be CORBA or SOAP wich are comapreable besides to abstracting you from any kind how the communication works. For what you want MIDAS might also be a possible choice.
If the communication is a one way communication you could also implement a message queue ... but this is COM again ...

But i am not totally sure but i think you need a enterprise version for each of them.

All this technologies provide you much convinence complte concepts and so on, but natuerely you can also do it yourself. All you need is a tcp or udp server socket and go ahead listening ;-)

For what you discribe a litte tcp server might really be a good alternate.
If you still want no com and will not by a enterprise delphi version or not willing to pay the production licences (that need to be paid for MIDAS and the CORBA ORB) but want to do more then just sending some informations you might thake a look at xml-rpc.
XML-Works a open source xml framework for delphi is supporting the xml-rpc specification. You might check it out at : http://www.delphihome.com/xml/en/index.php3


Expert Comment

ID: 8105050
oh and just another question : what is so terrible with (D)COM?

Expert Comment

ID: 8106547
sfock:  >> what is so terrible with (D)COM?

1. DCOM is proprietary to Window$.  The alternatives are not.

2. DCOM is very slow compared to other standards, and somewhat less robust

3. M$oft is abandoning DCOM in favor of the newer .NET technology, which is very silimar to the features and systems Delphi has had since D3.

Engwi:  >> Any other suggestions or pointers would be greatly appreciated.

1. Try ICS Midware at overbyte.delphicenter.com.

2. Use facade patterns to connect server and client pieces and minimize communications overhead.

3. Read "Bitter Jave", and replace the word "Java" with "Delphi" every place it occurs.
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!


Expert Comment

ID: 8113735
Hi swift99,

this ICS Midware looks really interesting. I'll take a closer look at it the next days.

>1. DCOM is proprietary to Window$.  The alternatives are not

well thats true, but beeing proprietary does not have to be a disadvantage. Worse is that for this reason it is platform dependent. That is not the case for SOAP and CORBA (while SOAP is not really compareable to COM it features only a part of what COM can).
But MIDAS is platform dependent too, .Net is it (until now) and the ICS Midware is platform (and language) dependet too (after all i read in the whitepapers, you might correct me)

I you compare the "bigger" Middleware tech's with each other they are ale more or less dependent on a platform a orb, a vm or a runtime. Some of them are also dependent on a language like J2EE.
And at the end let's be honest: how often do we need(build) heterogenos systems? How often do we really need portability? And who developes with delphi if he needs platform independence?

>2. DCOM is very slow compared to other standards, and somewhat less robust

At least i must say i have never read a benchmark, that would proof that. Mabe you can help me ;-)
And belonging the performance : i doubt that COM should be "slower" than SOAP ... that's really hard to imagine. But there's one thing you can say for all "MidTechs" the performance comes from a good Model at 80%, a good coding at 15% and only 5% at the Middleware-performance.
And belonging to the robustness i can only say: Any Application and any Object is as robust as it's design and it's implementation. COM itself does not make that worse for your application if you design and code like you should in COM.

>3. M$oft is abandoning DCOM in favor of the newer .NET technology
Well that's true. And this is a strong argument if you develop big systems with planned lifecycles over 15 Years. There is absolutely no doubt. Well for a little tool ... hmmm

>which is very silimar to the features and systems Delphi has had since D3.

Well at first after the "inventor" of delhi was the chief developer of DetNot, it is really not very surprising, that there are also some similarities to Delphi, but in the way you say say it i really had to smile, after DetNot is really not compareable to Delphi and it is really very much more than just some Delphi (VCL) features.
In the way you say it i would have to think that Delphi3 has a garbage collector or web services ;-)

However, i don't really want to convince anyone of COM. The intension of my quesion was to get a better picture of what Engwi wanted do do and what not so that i can give him a better suggestion.

Expert Comment

ID: 8115123
It was the architect himself, at last year's Borcon, that said that everything planned for .NET has been a part of Delphi for years.  That's his call to make, not mine.  :o)

My development is currently in a large scale heterogeneous infrastructure with 15+ year lifespans for software.  If I can save 25% on bandwidth and 10% on maintenance, it translates into $aving$ for the company (and a better bonu$ for me  :o)  )

I agree that misuse of the middle tier has far more to do with poor performance than the technology of the tier itself.  I would even put the figures higher against the model than the specific tier technology than you have.  I'm biased, having inherited the maintenance and support of a really good example of bad use of middle tier technology.

We did benchmark the various technologies at one point, although I was not part of that specific effort.  DCOM was the slowest performer, and the least robust.  We finally settled on CORBA and a standards based app server (can't give details - security you know) for our future C/S apps.

J2EE is not a language - it is a standard for support of specific constructs within the Java environment.  The off-the-shelf JVM from Sun or Borland will run J2EE compliant services such as BEA Web Logic.

CORBA predates J2EE ... CORBA became the standard for Java RMI after the guys at Sun noticed it was more robust than their initial RMI implementation.  Delphi implements both CORBA and SOAP (as well as DCOM), but the standards are implemented in other platforms as well.

SOAP, being XML based, is probably slower than DCOM (our tests predate SOAP).

Any Delphi based solution will be x86 dependent, but ICS has been ported to Kylix so you at least gain the advantages of the linux platform.  This can offer modest performance gains in certain mutli-tasking and server based apps, and better security and server reliability.

After all of thet, I'm all for using the right screwdriver for the job.  There are jobs and environments where DCOM is still the best option.

Author Comment

ID: 8117302

>The intension of my quesion was to get a better picture >of what Engwi wanted do.

Well , as stated in my original post , all I really need to accomplish is to send the server some information like user login details and some other information. Based in this the server module or "Application server" would , based on it's current configuration , send back some information to the client , which would act according to the received info.

>this ICS Midware looks really interesting. I'll take a >closer look at it the next days.

Sure enough , I had a look at it , but I cant imagine why I would go ahead and use that becasue I only need a fraction of it's capability.


>After all of that, I'm all for using the right >screwdriver for the job.  There are jobs and environments >where DCOM is still the best option.

I completely agree with you , yes DCOM has it's place but for some reason I feel that DCOM is not the right screwdriver for this Job.

So I suppose I need to ammend my question. What Architecture or "Tool" should I use to accomplish my task ?  


Expert Comment

ID: 8117346
take a look at xml-rpc with xmlworks or just use simple tcp-sockets then

Expert Comment

ID: 8117406
well look like we'd be at one opinion now ;-)
Just some additional comments (engwi, sorry for misusing your tread):

I didn't mentioned J2EE as a language but "language dependent"

>but ICS has been ported to Kylix
The ICS components yes but i couln't find any MidWare Components for Kylix

Expert Comment

ID: 8119393
I concur with sfock's assessment.

Author Comment

ID: 8127511

When using the TCP client and server INDY components from Delphi 6 , how exactly do I go about sending a request and getting a reply for that request.

I seem to be able to connect to the server and send some information. Now , on the server side , make some calculation and send the result back to the client.

I am new at socket programming and would like some example or some information.

Expert Comment

ID: 8127844
I don't typically use Indy myself (I'm an ICS fan).  I would download examples from the Indy web page and see how they do it.  sfock may also have some Indy specific code.

Accepted Solution

sfock earned 60 total points
ID: 8145962
sorry i don't have any indy code.
take a look at the chat program sample of delphi it is using the standard tcp socket components, it might help you to understand the tcp comunication.

the indy component should provide nothing but more convinience

Author Comment

ID: 8149745

In the installation directories for Delphi 6 , under INDY components , I found a demo named , "ZipCodeLookUp".

This supplied me with enough info , and yes ,thanx , the chat program opened up some more doors !

Thanx again.

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
In my programming career I have only very rarely run into situations where operator overloading would be of any use in my work.  Normally those situations involved math with either overly large numbers (hundreds of thousands of digits or accuracy re…
When cloud platforms entered the scene, users and companies jumped on board to take advantage of the many benefits, like the ability to work and connect with company information from various locations. What many didn't foresee was the increased risk…
Planning to migrate your EDB file(s) to a new or an existing Outlook PST file? This video will guide you how to convert EDB file(s) to PST. Besides this, it also describes, how one can easily search any item(s) from multiple folders or mailboxes…

621 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question