IcePHP – some serious RPC for PHP?

By Harry Fuecks

Here’s something interesting Ice for PHP.

What is ICE?

Ice, the Internet Communications Engine, is middleware for the practical programmer. A high-performance Internet communications platform, Ice includes a wealth of layered services and plug-ins. Ice means simplicity, speed, and power.

It seems to be largely inspired by CORBA but developed out of a very specific need – bringing some serious collaboration to WISH – an online massively multiplayer game. Support for PHP (as a client only) was an objective from the start, to allow administration of the game via the web and comes in the form of an extension for PHP5 (required).

Anyway – haven’t got it all entirely worked out yet – there’s alot to read but so far it looks very promising as a mechanism to get PHP talking to remote systems, when you need something more powerful / performant than, say, XML based web services. The first impressions are ZeroC know what they’re doing.

An interesting snippet from the Massively Multiplayer Middleware whitepaper;

Persistence. To provide object persistence, we extended the object model to permit the definition of persistence attributes for objects. To the developer, making an object persistent consists of defining those attributes that should be stored in the database. A compiler processes these definitions and generates a runtime library that implements associative containers for each type of object.

Developers access persistent objects by looking them up in a container by their keys

  • Cant quite figure out the specifics from the site, but is this serious competition for the SRM project?

    Could this be the application server for PHP that developers have been looking for?

  • Another quality post, Harry. Very interesting stuff indeed.

  • It seems to me that anything is serious competition for SRM. The last time I checked it’s been two years since an i was dotted or a t was crossed over there. And that’s a crying shame too as SRM is a fantastic idea.

  • As it goes think SRM is more an alternative to Tomcat and Java servlets – a container for running PHP scripts as “servlets”. But as BDKR says, doubtful it’s ever going to be finished.

    ICE seems to be two things (from a PHP persective);

    – a powerful way to get PHP talking to other systems (RPC). The remote servers need to be written with C++ or Java. In other words competition to SOAP or XML-RPC. It would also be effectively be competition to this CORBA extension or other mechanisms like using Java’s RMI via the PHP / Java extension.

    – it also seems to offer a persistance mechanism – a remote layer of objects above a DB. This could be useful for object modelling (in C++ or Java) and also for fault tolerance and reducing load on a DB. That’s also interesting because you could build, say, a Java desktop GUI which talks to the same remote objects. Whether this really “works” remains to be seen. Experience with CORBA has made the “conventional wisdom” that publishing a fine grained API over a network “fails” when it comes to performance. ICE is seems to be an attempt to “fix” CORBA, and make this possible. Very interesting if it works.

  • peter

    To fully understand the author, it’s best that you try to write a Singleton object using languages like PHP

Get the latest in Front-end, once a week, for free.