Archived

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

Understanding if ICE is suitable for my use case

I am new to ICE though I have read some documentation of it.

Requirement: My clients are sending several audio files for encoding/decoding and filtering the stuff. They also seeks some other data which I send them in reply in almost real time (this encoding/decoding/filtering doesn't take more than 5 sec each request).

My current code is written in Python which does this number crunching on distributed fashion. As the number of utilities and requirements are increasing, I see that going forward, I will have to get non python libraries to work also. I am looking at a middleware which can do number crunching for me but at the same time is not dependent on any one programming language to use for request/response.

Is it possible to make the workflow as: Clients use some API to send the data to ICE middleware which does number crunching and returns back the results in almost real time? In that case, does my clients needs to use ICE as well?

Can I provide HTTP api to my clients while I use ICE at the backend? or is there some work my clients will also have to do?

Kindly explain, how ICE can be useful for me in this scenario.

Comments

  • benoit
    benoit Rennes, France
    Hi,

    We demonstrate a simple encoding application in the IceGrid chapter of the Ice manual here.

    I don't see any issues with your client and backends using Ice. Ice is a general purpose middleware so it fits many use cases. I recommend that you go through the Ice demos to get a good idea on how to use Ice. The next step will be to start designing your Slice interfaces to specify the interactions between your client and servers.

    Cheers,
    Benoit.
  • Thank you for the reply. As I read the link you have shared, this is what I am looking for. I would request to provide a bit extended information for this part of the scenario: these clients are my customers who might have their own piece of software and not necessarily ICE. I don't have control over them. Currently I provide them REST API and also plain TCP/IP socket access.

    What I also want to know is that if I go for ICE Grid solution as you suggested, do I need to inform to my clients that they will also have to use ICE? Can they still use REST api? Is it possible to connect a user via HTTP or TCP to the ICE infrastructure? or it must be ICE to ICE.

    Outside world (HTTP or TCP) <---> ICE <---> ICE <---> Outside world (HTTP or TCP)
  • benoit
    benoit Rennes, France
    Your clients can continue using a REST API or plain TCP and you can use Ice internally for your backend servers to communicate between each other. You will still have to implement the REST API / plain TCP server however, Ice can't "transparently" bridge these endpoints: this is something you'll still have to implement.

    Cheers,
    Benoit.