> Imageine I have a server process that creates a object and returns the
> interface to the client.  With COM, if I call methods and set properties
on
> this instance I get network traffic cause the object is alive on the
server,
> not the client.  Correct ?
>
> With Corba (or COM), is there a way of avoiding this network traffic?  IE,
> can the object be magically transported to the client rather than just a
> reference to it?

Nope - what happens if you server is compiled C++ code running on an
UltraSPARC 20?? Not gonna work on your little PIII 500, right?! (OK, bad
example, 'cos then it would _have_ to be a CORBA object, but still....)

technically could work for COM, being its WinTel only, but you can kiss
scalability and platform neutrality goodbye.

So, in general, no, you can't do this. CORBA 2.3 (Visibroker 4.0) has
Objects By Value which is something to do with this, but I havn't used or
looked into it much yet. Delphi only has CORBA v2.2 (Visi 3.3/3.4)

I find the best way to get 'around' this is to pass records or structs, eg
in CORBA IDL:

struct EmployeeRecord {
  string name;
  string phone;
  string irdNumber;
};

interface Employee {
  attribute EmployeeRecord employee;
};

For example. Then you can get the record (one fairly big hit on the
network), mess with it, and fire it back (another big hit on the network),
rather than have hit-change-hit, hit-change-hit, hit-change-hit which is a
LOT slower.

HTH.

N



---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

Reply via email to