Archived

This forum has been archived. Please start a new discussion on GitHub.

How to implement a realtime computing service with ice

If these realtime computing infaces need some types and much date parameters, how to reduce the network overhead and speed up the service response as posible.

my idea is try to creat local service objects by 'downloading' from remote server,client only know the interface but dont know realization beforehand.

I search the function in examples. refer to sample 'value', but find it do'nt fit the requirement completely, in that the printerI 's definition need be included by client

Comments

  • matthew
    matthew NL, Canada
    Before we can answer your questions, can you please first update your project name, and organization?
  • sorry
    I have already updated
  • matthew
    matthew NL, Canada
    I search the function in examples. refer to sample 'value', but find it do'nt fit the requirement completely, in that the printerI 's definition need be included by client

    If you pass an object by value (and therefore, once that is complete, then the object is purely local) then the client must some implementation of that object.

    Perhaps you can explain why this doesn't meet your requirement? What exactly in having to provide the implementation is the issue? For example, do you want to be able to change the implementation of the class without updating the client?
  • partly can think so
    basicly I want to not expose the computing logic to the client.
    for example ,I want to client can invoke 'PrinterI::printBackwards()' localy
    but the client can be built without the implementation source code of printBackwards(), just as the InitialI::getSimple()
  • matthew
    matthew NL, Canada
    If you want the implementation to run locally, then you need the code to be local. If you don't want to build-in the implementation, then you must download it at runtime.

    If you are dealing with an interpreted language, such as python, that isn't all that difficult. However, a compiled language, such as C++, is more difficult since you have to deal with compiler, operating system, and runtime library differences.

    If you are willing to deal with that, or it isn't a huge issue because you are running on a limited set of deployment platforms (for example, Windows Vista + VC9 optimized runtime) then you could package up your object implementations in a shared library (DLL) and download, and load and instantiate on demand.