[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Why *Impl_Proxy generated from *Impl?



Hi all,

I notice that the interface -> proxy compilation feature of Ozone is not what 
I'm used to from CORBA and RMI, and so I'm wondering why so I can better 
understand the underlying design.

The way Ozone does it, you have --

  class EmployeeImpl --implements--> interface Employee

  class EmployeeImpl_Proxy --+--implements--> interface Employee
                             |
                             +--is-generated-from--> class EmployeeImpl

whereas, in CORBA and RMI, the proxy is generated _completely_ from the 
remote interface; in fact, there may be many implementations (*Impl classes) 
of the same interface. So we have --

  class Employee_Proxy --is-generated-from--> interface Employee

  class EmployeeImplA --implements--> interface Employee
  class EmployeeImplB --implements--> interface Employee
  ...

I can see that the benefits of the 2nd (CORBA/RMI) approach are that the 
client, which has to physically link in a copy of the "_Proxy" class, need 
not change at all despite changes to the implementations. It also seems to me 
that all the Ozone "*Impl_Proxy" class does is invoke the interface's methods 
remotely on the server. So ... why is the proxy class generated from the 
implementation?

I'm sure there's a good answer ... I'm just wondering.

Thanks and peace,

Ihab Awad

-- 
Ihab A Awad <ihab@ahc.umn.edu>
Center for Computational Genomics and Bioinformatics,
University of Minnesota. http://www.cbc.umn.edu/~ihab/
----------------------------------------------------------------------
Post a message:         mailto:ozone-users@ozone-db.org
Unsubscribe:            mailto:ozone-users-request@ozone-db.org?body=unsubscribe
Contact administrator:  mailto:ozone-users-owner@ozone-db.org
Read archived messages: http://www.ozone-db.org/
----------------------------------------------------------------------