ICE and the Actor Model

kwaclawkwaclaw Oshawa, CanadaKarl WaclawekOrganization: PersonalMember

Having been away from ZeroC ICE for a few years, I was reminded of it when I came across the now popular implementations of the Actor model, like Akka, Orleans, ServiceFabric, .... Somehow it looks to me that the same can be done with ICE.

So the question is: Is ICE indeed an early framework for the Actor model?
If yes, could it then be advertised as such?

Comments

  • PeterPeiPeterPei Peter PeiOrganization: Siemens HealthineersProject: Medial Diagnostics SystemMember
    My 2 cents:
    ICE is a general purpose distributed system communication frame which provides various communication patterns. But it seems ICE does not limit itself to a specific application architecture, such as actor model. Based on my understanding, you can definitely implement actor model using ICE. But compared to other actor frame work , you may have to implement some features yourself.
    Peter
  • smandysmandy Andy SmithOrganization: Self EmployedProject: Learning IceMember

    I'd concur with Peter,

    ICE maybe doesn't supply features touted by actor frameworks ( such as supervision hierarchies etc), but I think it's got a lot going for it that many actor systems lack. Specifically I recently played with Akka and was dismayed at the lack of type safety in the implementation of receiving a message ... it really defeats the purpose of using a strongly typed language like Scala :-( . I'm aware there's a 'typed actors' implementation in the works but I have to say I find a nice, clearly defined, slice definition of a callback interface much more appealing than an arbitrary 'receive' method in an actor system that may or may-not type-check with the message received....

    I can't really think of anything I could do with an Actor model that I couldn't do better with a combination of AMI+AMD in ICE :-) The main point is to prefer asynchronous APIs over synchronous, which ICE has done for a long time and has adapted to quite well now that the supported languages have finally caught up in supporting asynchronous concepts :-)

    Also I'd say ICE has a much better cross platform story than most actor frameworks. Akka ties you to the JVM largely, Erlang to the Erlang VM etc. With ICE you can mix and match between the most popular languages + runtimes.

    Cheers,

    A.

Sign In or Register to comment.