Go Back   ZeroC Forums > Projects

Reply
 
LinkBack Thread Tools Rate Thread Display Modes
  #1 (permalink)  
Old 12-18-2007
ctennis ctennis is offline
Registered User
 
Name: Caleb Tennis
Organization: AEI
Project: Project GINA
 
Join Date: Mar 2006
Posts: 120
ANN: IceQt code repository

I've started a code repository at google to keep some of the utilities I wrote that help to bridge Ice and Qt together.

iceqt - Google Code

The first small project that's available is slice2qt:

http://iceqt.googlecode.com/files/sl..._0.1.0.tar.bz2

slice2qt is a direct clone of slice2cpp (from Ice 3.2.1), with a few notable exceptions:
  • dictionaries are mapped to QMap instead of std::map
  • sequences are mapped to QList instead of std::vector
  • string and wstring are mapped to QString

slice2qt should allow you to work with native Qt types without having to worry about handling the conversions.

It's definitely alpha quality, so caveat emptor. It requires no patching or changes to Ice. You just need a recent version of Qt to build it.

I'm sure there are things that are broken, so be careful. I haven't researched heavily into string conversions to make sure that all cases work. And I know that AMI/AMD isn't working currently as it pertains to strings.

Anyway, please feel free to post on this thread if you find it useful or have suggestions for things to change. I'll be posting some more of the Qt/Ice bridging code soon.

Caleb
__________________
Caleb Tennis
Analytical Engineering, Inc.
http://www.aei-tech.com
Project: Our facility infrastructure heavily utilizes Ice

Gentoo ebuild maintainer for Ice, IceRuby, etc.
Reply With Quote
  #2 (permalink)  
Old 12-19-2007
JShah JShah is offline
Registered User
 
Name: Jitendra Shah
Organization: RBC
Project: Trading and Risk
 
Join Date: Dec 2007
Posts: 5
QtSharedMemory

Hi,

Do you have plans for a Ice endpoint implementation using QtSharedMemory ?

This can make inter-process / intra-process(in-process, cross language a la Microsoft COM) much more simple without the overhead of sockets.

Regards,
Jitendra
Reply With Quote
  #3 (permalink)  
Old 12-19-2007
ctennis ctennis is offline
Registered User
 
Name: Caleb Tennis
Organization: AEI
Project: Project GINA
 
Join Date: Mar 2006
Posts: 120
I hadn't thought about it, but it's a pretty neat idea. I'm not sure what additional IPC mechanisms are going to be included in 4.4, but QtSharedMemory is only available as a solution to commercial holders as of right now, so I don't know how many people would find it useful.

Something to definitely investigate though.
__________________
Caleb Tennis
Analytical Engineering, Inc.
http://www.aei-tech.com
Project: Our facility infrastructure heavily utilizes Ice

Gentoo ebuild maintainer for Ice, IceRuby, etc.
Reply With Quote
  #4 (permalink)  
Old 12-19-2007
JShah JShah is offline
Registered User
 
Name: Jitendra Shah
Organization: RBC
Project: Trading and Risk
 
Join Date: Dec 2007
Posts: 5
Ice support for local machine IPC...?

Hi,

I guess I was only using QtSharedMemory as an example of a shared memory component that could be used for (local machine) IPC. Having an efficient mechanism with Ice for intra-process and cross language would mean, for example, the end of Microsoft COM headaches - no COM IDL and COM marshalling and COM threads. Now, that would be a very big feature of Ice, if it were implemented.

Thoughts?

Regards,
Jitendra
Reply With Quote
  #5 (permalink)  
Old 12-19-2007
marc's Avatar
marc marc is offline
ZeroC Staff
 
Name: Marc Laukien
Organization: ZeroC, Inc.
Project: The Internet Communications Engine
 
Join Date: Feb 2003
Location: Florida
Posts: 1,781
Just to clarify: iceqt is not a ZeroC development, but is provided by one of our users. (Many thanks to Caleb!)

As for shared memory transports, this has been discussed before here in these forums, for example, here:

What feature would you like to see most in Ice?

We have no plans to implement any form of shared memory transport, since it would be a very intrusive change, and would only provide performance benefits for very large data transfers, but not for latency. (This is not theory; I implemented a shared memory transport in other middleware products before.)
Reply With Quote
  #6 (permalink)  
Old 12-19-2007
JShah JShah is offline
Registered User
 
Name: Jitendra Shah
Organization: RBC
Project: Trading and Risk
 
Join Date: Dec 2007
Posts: 5
Performance gains for IPC on single machine

Hi Marc,

Thanks for the reply.

I do realise that the Qt component is a community effort.

In the referenced post it was said that there are performance gains for IPC on a single machine. Do you know what performance gains can be expected in this scenario? Is it comparable to, say, COM? Even if it is comparable, Ice is way way better an interfacing environment that COM :-) Or, maybe there is a better/smarter way with Ice for achieving cross-language, in-process communication - any ideas will be appreciated.

Regards,
Jitendra
__________________
Jitendra Shah
Trading and Risk Systems
RBC www.rbc.com
Reply With Quote
  #7 (permalink)  
Old 12-19-2007
marc's Avatar
marc marc is offline
ZeroC Staff
 
Name: Marc Laukien
Organization: ZeroC, Inc.
Project: The Internet Communications Engine
 
Join Date: Feb 2003
Location: Florida
Posts: 1,781
I'm afraid I don't have any data available. However, from my past experience, there is a performance gain if you transfer large amounts of data, but there is no performance gain with respect to latency (since you still need a pipe-like IPC mechanism to notify the receiver about new data being available, plus locking overhead for the shared memory).
Reply With Quote
  #8 (permalink)  
Old 12-19-2007
ctennis ctennis is offline
Registered User
 
Name: Caleb Tennis
Organization: AEI
Project: Project GINA
 
Join Date: Mar 2006
Posts: 120
Also note that while I find the problem interesting from an academic standpoint, I'm not on Windows so it's not really solving much of a problem for me.

However, this type of thing would make for good inclusion in this project, if someone was inclined to pursue it.
__________________
Caleb Tennis
Analytical Engineering, Inc.
http://www.aei-tech.com
Project: Our facility infrastructure heavily utilizes Ice

Gentoo ebuild maintainer for Ice, IceRuby, etc.
Reply With Quote
  #9 (permalink)  
Old 12-20-2007
michi's Avatar
michi michi is offline
ZeroC Staff
 
Name: Michi Henning
Organization: ZeroC
Project: Ice
 
Join Date: Feb 2003
Location: Brisbane, Australia
Posts: 912
Note that Ice already achieves transfer rates of several hundred megabits per second on run-of-the-mill hardware. If an application sends that much data around, it doesn't just transmit the data, it also has to do something with the data. And that is likely to be the dominant part of the end-to-end processing (such as writing the data to disk, applying some transform, or whatever).

In other words, making the transfer faster is unlikely to yield much of an overall improvement because the transfer is unlikely to account for more than a few percent of the overall cost.

Cheers,

Michi.
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Ice Repository for RHEL4 kvogel Bug Reports 2 04-12-2007 05:11 PM
Generated C# code indentation kwaclaw Comments 1 11-24-2006 12:58 PM
code contrib asmirnov Comments 1 05-31-2006 09:34 AM
Code for unmarshaling functions aseco Help Center 1 04-15-2005 08:50 AM
How to trace into the servr code weixiande Bug Reports 6 12-08-2004 11:02 PM


All times are GMT -4. The time now is 06:39 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.0.0
(c) 2008 ZeroC, Inc.