Hello,
I'm considering migrating to an Ice based infrastructure. Right now, our systems are based on a mixture of CORBA C++ and Python in the backend (omniORB, btw a really fast implementation) and PHP4 for frontend applications. This leads to a number of issues:
1. Even so after +5 years of CORBA I personally have no problems using the CORBA C++ mapping at all, it is really hard to find developers who can master it - training anybody on CORBA turned out to be almost impossible (and offending to most developers as well)
2. PHP4 is not maintained anymore, so we would need to upgrade to PHP5 anyway
3. We have to expose all functionality to the PHP frontends (which use no framework at all) through webservices, which adds another layer that needs to be maintained
4. The typical CORBA issues like lack of good implementation of OMG standardizes services, problematic firewall traversal, lack of dictionary datatypes etc. that just make life a lot harder than it should be.
Coming from a CORBA background, adpoting ICE seems to be a natural way to go - assuming I'm not following Steve V's idea that any kind of RPC is bad (btw, reading all the arguments of Michi and Steve is quite entertaining - both seem extremely frustrated about the way CORBA turned out - while Steve's conclusion is the overall idea was bad Michi is trying to do it right this time)
Anyway... what I'm planning to do (and need advice on) is:
1. Keep frontends in PHP using an MVC based framework. Right now I'm it seems like we're gonna use CakePHP. The question is if anybody has experience using one of these frameworks, which are normally designed to work directly with an SQL database backend, with Ice - and how Ice would fit in there.
2. In general: How solid is the IcePHP implementation - it's extremely hard to find any information about it outside of zeroc.com - this seems to be a general issue with Ice (partly because the name is really bad to google for ). So either it's not used at all or it just works so flawlessly that nobody posts about it?!
3. It seems like IcePHP uses only one communicator per profile, so I would assume that using glacier2 for per user session management won't work/doesn't make sense.
4. We will run everything within FreeBSD jails (7.1-RELEASE). I understand that Ice is not officially supported on this platform. But it seems that there are definitely users out there - anybody willing to share experience about stability/any known issues?! Basically there will be x jails running Apache2+PHP5+IcePHP communicating with a number of C++ and Python-based services in other jails on multiple machines (this works quite well with CORBA right now - not for the PHP side of things of course).
5. Is there any solid material out there that explains concepts of designing redundant services using Ice - what I found on your website so far is very basic. And yes I understand that the topic goes beyond Ice itself, but maybe there is good material explaining how to design services with SQL-replication in the backend and how to synchronize on an Ice driven platform - since this has to be incorporated in the design phase. OmniORB made this very impractical, so I want to get it right from the very start.
6. Has anybody experience on how long it takes to get the average developer (whatever this means) started on using Ice. With a lot of CORBA background basically everything I read in the docs so far is pretty obvious (including things like default servants, object life cycle etc.). Getting somebody to use the client side should also be trivial. How hard is it to get somebody with some basic understanding of distributed computing but no CORBA/Ice-like middleware experience started on writing production code? Do you have any experience from real world projects? (I know, this is a little bit of fortune telling...)
7. Licensing issues: Right now, all of our software is used in-house, so GPL is fine at this point - even so we tried to avoid any GPL based software in the past. The real question of course is, what if we decide in two years to sell licenses of our system? Basically all the website says is "we gonna find a deal that works". It would be good to actually be able to present something to the management to show that the invest is safe in the future. Especially because our software incorporates many API's to third parties, which are subject of intellectual property/NDAs, so even if we wouldn't care about our software we won't be able to publish the full sources. If this cannot be discussed in an open forum it would be nice if somebody from sales@ could contact me on the email address I used on registration.
Would be nice if you could answer most of my questions, after reading docs for days I'm really keen to get things started - Ice looks very sexy to me
Cheers
Michael


Reply With Quote

