ANNOUNCE: Ice 2.0 released

M

Michi Henning

Hi,

we've just released Ice 2.0 with quite a lot of new features:

- new language mappings for Visual Basic and Python

- a new light-weight and super-efficient firewall

- a streaming API that allows you to control the encoding and decoding of
objects in arbitrary formats (or the native Ice format)

- dynamic invocation and dispatch interfaces, so you can write generic
clients and server that do not require compile-time type knowledge

- new chapters in the documentation for the new features

- numerous other improvements and bug fixes

See http://www.zeroc.com/vbulletin/showthread.php?s=&threadid=987
for more info.

Cheers,

Michi.
 
T

Tim Roberts

Michi Henning said:
Hi,

we've just released Ice 2.0 with quite a lot of new features:

I'm sure this is a wonderful thing, but your announcement gives absolutely
no clue as to what Ice is or what it is used for.

Please include an executive summary when you make an announcement like
this.
 
M

Marc Laukien

I'm sure this is a wonderful thing, but your announcement gives absolutely
no clue as to what Ice is or what it is used for.

Please include an executive summary when you make an announcement like
this.

Sorry for the omission. Please see the summary below:

"The Internet Communications Engine (Ice) is a modern alternative to
object middleware such as CORBA™ or COM/DCOM/COM+. Ice is easy to learn,
yet provides a powerful network infrastructure for demanding technical
applications. Ice shines where technologies such as SOAP or XML-RPC are
too slow, or do not provide sufficient scalability or security.

Ice is free software, available with full source, and released under the
terms of the GNU General Public License (GPL). Commercial licenses are
available for customers who wish to use Ice for closed-source software."

For more information, check out this paper:

http://www.zeroc.com/ieeeArticle.html

Cheers,
Marc
 
V

Ville Vainio

Marc> Ice is free software, available with full source, and
Marc> released under the terms of the GNU General Public License
Marc> (GPL). Commercial licenses are available for customers who
Marc> wish to use Ice for closed-source software."

So, unlike with currently available Python CORBA implementations (and
implementations for other languages as well), you can't use ICE in a
closed source system without paying a fee. Just wanted to point this
out so that nobody got the wrong idea. This *is* a big deal with
middleware / library that would quite probably be adopted in
commercial systems where the managers will feel uneasy about giving up
the control of their "precious" source.

Too bad, I actually got mildly exited when I read about ICE in the
referenced website.
 
M

Marc Laukien

Ville said:
Marc> Ice is free software, available with full source, and
Marc> released under the terms of the GNU General Public License
Marc> (GPL). Commercial licenses are available for customers who
Marc> wish to use Ice for closed-source software."

So, unlike with currently available Python CORBA implementations (and
implementations for other languages as well), you can't use ICE in a
closed source system without paying a fee. Just wanted to point this
out so that nobody got the wrong idea. This *is* a big deal with
middleware / library that would quite probably be adopted in
commercial systems where the managers will feel uneasy about giving up
the control of their "precious" source.

That is correct. I thought what I wrote about licensing above was
already clear enough, but if you have the need to clarify it even
further, that's of course fine :)
 
V

Ville Vainio

Marc> That is correct. I thought what I wrote about licensing
Marc> above was already clear enough, but if you have the need to
Marc> clarify it even further, that's of course fine :)

It was more about emphasizing the fact than clarifying it - an
untrained eye might skim the post and miss the detail. I've seen all
too many complaints about people who are surprized about the issues
with GPL'd libraries (as opposed to GPL'd programs).

A part of it might have been about just venting my disappointment,
because, well, the project seemed interesting :).
 
A

Anand Hariharan

Marc Laukien said:
Sorry for the omission. Please see the summary below:
(...)

Ice is free software, available with full source, and released under the
terms of the GNU General Public License (GPL). Commercial licenses are
available for customers who wish to use Ice for closed-source software."

Interesting to see this blend of GPL and an alternative for
closed-source software.

Not totally unrelated, I saw this in your web-site (Ice vs CORBA
page):
<QUOTE>
No "Design by Committee"
Ice was designed by a small group of dedicated and highly experienced
people.
</QUOTE>

Am interested to know, what "percentage" (*) of the code in your CVS
repository has been contributed by people other than the group
mentioned in the quote above? Obviously, you do not allow anonymous
CVS write access. Perhaps, one wishing to improve Ice (a freedom
granted by GPL) and who does not work for ZeroC has to mail his/her
improvements to your maintainers?

(*): Percentage is a very nebulous term, I know. For purposes of
answering the question, maybe you could resort to the
not-highly-meaningful number of LOC, and perhaps a word or two about
how Ice benefited from it.

- Anand

PS: Please feel free to set FU-Ts as appropriate.
 
M

Marc Laukien

Interesting to see this blend of GPL and an alternative for
closed-source software.

Not totally unrelated, I saw this in your web-site (Ice vs CORBA
page):
<QUOTE>
No "Design by Committee"
Ice was designed by a small group of dedicated and highly experienced
people.
</QUOTE>

Am interested to know, what "percentage" (*) of the code in your CVS
repository has been contributed by people other than the group
mentioned in the quote above? Obviously, you do not allow anonymous
CVS write access. Perhaps, one wishing to improve Ice (a freedom
granted by GPL) and who does not work for ZeroC has to mail his/her
improvements to your maintainers?

(*): Percentage is a very nebulous term, I know. For purposes of
answering the question, maybe you could resort to the
not-highly-meaningful number of LOC, and perhaps a word or two about
how Ice benefited from it.

100% of the Ice source code has been developed by ZeroC employees.

Note that this does of course not apply for third-party code that is
being used by Ice, such as BZIP2, Berkeley DB, OpenSSL, etc.
- Anand

PS: Please feel free to set FU-Ts as appropriate.

What are FU-Ts?

-- Marc
 
A

Anand Hariharan

Marc Laukien said:
(...)

100% of the Ice source code has been developed by ZeroC employees.

Note that this does of course not apply for third-party code that is
being used by Ice, such as BZIP2, Berkeley DB, OpenSSL, etc.

Consider the *hypothetical* situation where an individual or a group
of people re-write large portions of Ice. This could enhance the
value of Ice (obviously to some, if not all), or this could conflict
with the ideologies of Ice (again, not in everyone's point of view).
How will ZeroC react to this?

I believe whichever road you take, ZeroC is going to find itself in
problems. If ZeroC merges the changes made by this/these person(s),
how can ZeroC now sell it under a commercial license, as closed source
(violation of GPL)? If you refuse to merge the changes, you have just
given them a strong impetus to fork. History shows XEmacs and EGCS as
two such examples.

Guess what I am primarily interested in finding out is rooted in what
I said earlier:

What were the ideas behind going the GPL way? How did ZeroC plan on
benefiting from it? Were there any qualms within ZeroC in going GPL?

Note that I am not saying GPL and commercial software don't go
together (I do believe though that LGPL and commercial software don't
go together). I am well aware of Free software being "Free speech,
not free beer".

What if you did not provide Ice as a free download, but a price based
on your current licensing policy(*). However, the download would give
one the complete source, and the freedom to modify and redistribute it
(at whatever price so long as the complete source code with the GPL
notice is released).
(*): All of this is hypothetical. Am not making a business
proposition here.

You do not, because that would discourage Ice from becoming
ubiquitous, from paving way for becoming a potential de-facto
standard.

Then, why not simply advertise Ice as being commercial (with unlimited
free trial plus source code)? Doing so, would get you the extensive
peer review that you are currently benefitting from. What do you gain
by going GPL? The freedom to modify and/or redistribute is
(apparently) pretty restricted anyway.
What are FU-Ts?

"Follow-up To:". Most news clients will allow sending a post to
multiple groups, restricting any possible responses to certain groups
alone. A poster who is replying can over-ride it, of course.

sincerely,
- Anand
 
M

Marc Laukien

Consider the *hypothetical* situation where an individual or a group
of people re-write large portions of Ice. This could enhance the
value of Ice (obviously to some, if not all), or this could conflict
with the ideologies of Ice (again, not in everyone's point of view).
How will ZeroC react to this?

Everybody can enhance or modify Ice, we don't have any problems with
this whatsoever. The GPL explicitly allows you to do so. However, this
does not mean that we have to take over these changes or additions into
our Ice distribution. In many cases, this would also not be necessary,
as the most likely contribution would be in form of plug-ins or services.

As an aside, you are completely free to use any license, if you write
your own implementation of the Ice protocol or specification language.
Neither the protocol nor the specification language are patented. So
while our own implementation is available under GPL or a commercial
license only, you could write a new implementation under a license of
your choosing. We don't have any problems with this either. In fact, we
encourage it, otherwise we wouldn't have documented our protocol so
carefully.
I believe whichever road you take, ZeroC is going to find itself in
problems. If ZeroC merges the changes made by this/these person(s),
how can ZeroC now sell it under a commercial license, as closed source
(violation of GPL)? If you refuse to merge the changes, you have just
given them a strong impetus to fork. History shows XEmacs and EGCS as
two such examples.

I don't see any problems. If we merge a contribution into our Ice
distribution, then we need to reach an agreement with the contributor as
to how we can handle non-GPL licenses. If no agreement is reached, then
we cannot merge this contribution into our Ice distribution.
Guess what I am primarily interested in finding out is rooted in what
I said earlier:




What were the ideas behind going the GPL way? How did ZeroC plan on
benefiting from it? Were there any qualms within ZeroC in going GPL?

The idea is simple: Ice should be free for open-source applications, but
if somebody wants to use Ice for a closed-source application, then we
want a fair share of the revenue. So far this works quite well :)

No, there were no qualms within ZeroC with using the GPL, we all pretty
much agreed from the start that this is a reasonable licensing model.

Note that we are not the only one who use such a dual-licensing scheme.
For example, if you want to use Berkeley DB (an excellent embedded
database) for a closed-source project, then you also have to buy a
commercial license. (They don't use GPL as their open-source license,
but something that is similar to the GPL.)
Note that I am not saying GPL and commercial software don't go
together (I do believe though that LGPL and commercial software don't
go together). I am well aware of Free software being "Free speech,
not free beer".

What if you did not provide Ice as a free download, but a price based
on your current licensing policy(*). However, the download would give
one the complete source, and the freedom to modify and redistribute it
(at whatever price so long as the complete source code with the GPL
notice is released).
(*): All of this is hypothetical. Am not making a business
proposition here.

I'm not sure I understand what you are suggesting. You want us to charge
for a GPL download? I don't think this makes sense, a GPL download
should be free.
You do not, because that would discourage Ice from becoming
ubiquitous, from paving way for becoming a potential de-facto
standard.

Then, why not simply advertise Ice as being commercial (with unlimited
free trial plus source code)? Doing so, would get you the extensive
peer review that you are currently benefitting from. What do you gain
by going GPL? The freedom to modify and/or redistribute is
(apparently) pretty restricted anyway.

We are quite happy with our licensing model, and many of our users use
Ice under GPL. I neither see the need to restrict nor to loosen our
licensing terms in any way.
"Follow-up To:". Most news clients will allow sending a post to
multiple groups, restricting any possible responses to certain groups
alone. A poster who is replying can over-ride it, of course.

Thanks for the explanation. I learn something new every day :)

-- Marc
 
A

apm

Marc Laukien said:
100% of the Ice source code has been developed by ZeroC employees.

Fixes, bug reports, and enhancement requests have come in from Open
Source developers around the world, as can be seen from the forums on
the ZeroC web site.

Regards,

Andrew Marlow
 
D

Diez B. Roggisch

I believe whichever road you take, ZeroC is going to find itself in
problems. If ZeroC merges the changes made by this/these person(s),
how can ZeroC now sell it under a commercial license, as closed source
(violation of GPL)? If you refuse to merge the changes, you have just
given them a strong impetus to fork. History shows XEmacs and EGCS as
two such examples.

AFAIK qt is licensed the same way. And there is nothing bad about forks -
but they have to be GPLed too.

Maybe you're not aware of an implication of GPL: A product _using_ a GPL'd
library also has to be GPL. That means you can't develop a commercially
marketed product on top of a GPL library - AFAIK the exact reason why the
LGPL was created, so that you may not alter the lib itself and sell it,
but at least sell software that _uses_ the lib.

So all in all, it seems the GPL/Commercial license makes sense - it does for
trolltech :) And there is nothing in GPL that forces you to integrate code
you've been offered - otherwise, killing a GPL lib would mean to delete all
from a CVS checkout and submit a patch from that - obviouly nobody would
enforce that.
 
M

Marc Laukien

apm said:
Fixes, bug reports, and enhancement requests have come in from Open
Source developers around the world, as can be seen from the forums on
the ZeroC web site.

This is of course correct, but I do not think this is in contradiction
to what I stated. The submission of a bug report or an enhancement
request does not constitute development of source code. Neither does the
submittal of a bug fix, if there is only one way to fix a bug.

-- Marc
 
J

johng2001

Does the Ice team claim any advantages to their Python bindings to
CORBA over omniORBpy (The one I am currently using). Please note that I
am not comparing ICE Vs CORBA. That has been well addressed at ZeroC
and this newgroup. My CORBA use right now is light weight (I don't use
any services). But I was wondering if there are any dynamic language
oriented improvements in ICE bindings?
 
M

Michi Henning

Does the Ice team claim any advantages to their Python bindings to
CORBA over omniORBpy (The one I am currently using). [...]
But I was wondering if there are any dynamic language
oriented improvements in ICE bindings?

The Ice Python mapping is simpler than the CORBA one because Ice has
a simpler object model with fewer data types. So, Ice avoids the
complexities caused by things such as type Any, TypeCodes, value types,
bounded sequences, arrays, unions, the fixed type, unsigned versus
signed types, and wide versus narrow characters and strings. Other than
that, the Ice Python mapping is quite similar to the CORBA one, mainly
because, for most language mapping issues, the design problems and (sensible)
solutions are the same.

As far as dynamic improvements are concerned, Ice for Python is a bit more
flexible than omniORBpy. As with omniORBpy, you can put interface definitions
through a compiler to generate stubs and skeletons but, in addition, you can
also use Ice for Python without precompiling the interface definitions and,
instead, load them at run time. As an example, assume you have a
definition as follows:

module M {
enum Color { red, green, blue };
};

Instead of compiling the definition, you can write:

Ice.loadSlice("Color.ice")
import M

print "My favourite color is ", M.Color.blue

Which approach (precompiled or dynamically loaded) you use depends
on the specifics of your application. Dynamically loaded definitions
are useful especially for things such as test harnesses and short throw-away
programs, because not having to compile the definitions first reduces
complexity
and makes the application more compact (because it doesn't depend on a bunch
of additional files that would be created by pre-compiling the definitions).
Of course, the price you pay is a (small) delay during start-up because the
code is generated at run time rather than compile time.

Cheers,

Michi.
 
J

johng2001

Thanks! Sounds interesting.
As far as dynamic improvements are concerned, Ice for Python is a bit more
flexible than omniORBpy. As with omniORBpy, you can put interface definitions
through a compiler to generate stubs and skeletons but, in addition, you can
also use Ice for Python without precompiling the interface definitions and,
instead, load them at run time. As an example, assume you have a
definition as follows:

You are describing Dynamic Invocation Interface of CORBA which
omniORBPy does support. I use it for the exact same reasons you mention.
 
D

Duncan Grisby

[...]
Instead of compiling the definition, you can write:

Ice.loadSlice("Color.ice")
import M

print "My favourite color is ", M.Color.blue

Just like this then?

omniORB.importIDL("Color.idl")
import M

print "My favourite color is ", M.blue

Cheers,

Duncan.
 
M

Michi Henning

[...]
Instead of compiling the definition, you can write:

Ice.loadSlice("Color.ice")
import M

print "My favourite color is ", M.Color.blue

Just like this then?

omniORB.importIDL("Color.idl")
import M

print "My favourite color is ", M.blue


Oops, my apologies! I wasn't aware that omniORBpy does this
as well.

Cheers,

Michi.
 
W

Wolfgang Keller

"The Internet Communications Engine (Ice) is a modern alternative to
object middleware such as CORBAâ„¢ or COM/DCOM/COM+. Ice is easy to learn,
yet provides a powerful network infrastructure for demanding technical
applications. Ice shines where technologies such as SOAP or XML-RPC are
too slow, or do not provide sufficient scalability or security.

Did anyone (preferrably someone who's independent from the suppliers - no
flamewars please) ever compare OmniORB and ICE, especially the Python
interfaces of both, concerning:

- functionality offered
- development efficiency
- performance & ressource requirements
- stability, implementation quality etc.?

TIA,

Best regards,

Wolfgang Keller
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top