Docs GODI Archive
Projects Blog Link DB

Look up function:

(e.g. "List.find" or "keysym")
More options

FREE SOFTWARE ON CAMLCITY.ORG

GODI Package godi-hydro

The ICE protocol

Hydro is an independent implementation of ICE, the object-oriented RPC protocol by ZeroC, for the O'Caml programming language. This is an early, not yet complete release, but the code is already stable and usable. For the restrictions of this release, see below. Hydro (like ICE) allows you to bridge language barriers by letting components written in different programming languages communicate with each other. ZeroC's ICE product currently includes implementations for C++, Java, C#, Python, Ruby, VB, and PHP. Hydro adds support for O'Caml. The ICE protocol is rich enough to make the representation of the data to communicate easy and convenient to use, and adopts an object-oriented type system. ZeroC sees ICE as a superior successor to CORBA. Hydro includes a runtime, and a generator called hydrogen. The runtime is fully asynchronous, based on Ocamlnet's event queues. The generator is used to create a thin layer on top of the runtime that maps abstract Hydro types to specific O'Caml types. The Hydro engine therefore appears to the programmer as if it was typed using the input IDL file. Unlike the generators shipped by ZeroC, hydrogen does not create marshalling code -- we see this as the task of the runtime and not of the language mapping layer. Because of this design decision we have high confidence in the correctness of the generator. Although we want Hydro to be an implementation whose protocol is fully compatible with ICE and that can process all its IDL files, we take some freedom to deviate from what is described in ZeroC's "ICE manual". ICE was designed with mainstream object-oriented languages in mind, and therefore lacks many of the advanced constructs available in O'Caml (variants, for example). Conversely, ICE includes constructs such as hierarchical exceptions and downcasts which do not exist in O'Caml (and for good reason!). To deal with the "impedance mismatch," we implemented emulations for these concepts. On the other hand, O'Caml offers advanced features which ought to be exploited by a good implementation. For example, in O'Caml, asynchronous networking code is quite natural, so we have chosen to make this the default style. So while Hydro is quite straightforward, the O'Caml programmer should not expect a design which is a perfect one-to-one translation of what ZeroC describes.

Version: 0.6
Homepage: http://oss.wink.com/hydro/
Maintainer: gerd@gerd-stolpmann.de
Files: doc/godi-hydro/LICENSE
doc/godi-hydro/README
doc/godi-hydro/html/Hydro_connector.html
doc/godi-hydro/html/Hydro_connector.multiplexed_descriptor.html
doc/godi-hydro/html/Hydro_connector.transporter.html
doc/godi-hydro/html/Hydro_endpoint.Client.html
doc/godi-hydro/html/Hydro_endpoint.GeneralizedEndpoint.html
doc/godi-hydro/html/Hydro_endpoint.Master.html
doc/godi-hydro/html/Hydro_endpoint.Server.html
doc/godi-hydro/html/Hydro_endpoint.html
doc/godi-hydro/html/Hydro_lm.StrMap.html
doc/godi-hydro/html/Hydro_lm.Unsafe.html
doc/godi-hydro/html/Hydro_lm.call_suspension.html
doc/godi-hydro/html/Hydro_lm.call_suspension_t.html
doc/godi-hydro/html/Hydro_lm.html
doc/godi-hydro/html/Hydro_lm.interface_base.html
doc/godi-hydro/html/Hydro_lm.object_base.html
doc/godi-hydro/html/Hydro_lm.sliced_base.html
doc/godi-hydro/html/Hydro_lm_IceLocalObject.delegate_od_Ice_LocalObject.html
doc/godi-hydro/html/Hydro_lm_IceLocalObject.delegate_oi_Ice_LocalObject.html
doc/godi-hydro/html/Hydro_lm_IceLocalObject.html
doc/godi-hydro/html/Hydro_lm_IceLocalObject.mk_od_Ice_LocalObject.html
doc/godi-hydro/html/Hydro_lm_IceLocalObject.o_Ice_LocalObject.html
doc/godi-hydro/html/Hydro_lm_IceLocalObject.od_Ice_LocalObject.html
doc/godi-hydro/html/Hydro_lm_IceLocalObject.oi_Ice_LocalObject.html
doc/godi-hydro/html/Hydro_lm_IceLocalObject.skel_Ice_LocalObject.html
doc/godi-hydro/html/Hydro_lm_IceObject.delegate_od_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.delegate_oi_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.html
doc/godi-hydro/html/Hydro_lm_IceObject.mk_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.mk_od_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.o_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.od_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.oi_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.ops_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.pci_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.po_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.poi_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.r_Ice_Object_ice_id.html
doc/godi-hydro/html/Hydro_lm_IceObject.r_Ice_Object_ice_ids.html
doc/godi-hydro/html/Hydro_lm_IceObject.r_Ice_Object_ice_isA.html
doc/godi-hydro/html/Hydro_lm_IceObject.r_Ice_Object_ice_ping.html
doc/godi-hydro/html/Hydro_lm_IceObject.r_simple_response.html
doc/godi-hydro/html/Hydro_lm_IceObject.restore_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.skel_Ice_Object.html
doc/godi-hydro/html/Hydro_lm_IceObject.sliced_od_Ice_Object.html
doc/godi-hydro/html/Hydro_locator.html
doc/godi-hydro/html/Hydro_marshal.html
doc/godi-hydro/html/Hydro_message.html
doc/godi-hydro/html/Hydro_netplex.html
doc/godi-hydro/html/Hydro_oa.html
doc/godi-hydro/html/Hydro_oa.object_adapter.html
doc/godi-hydro/html/Hydro_oa.object_adapter_t.html
doc/godi-hydro/html/Hydro_params.html
doc/godi-hydro/html/Hydro_proxy.html
doc/godi-hydro/html/Hydro_proxy.managed_client_t.html
doc/godi-hydro/html/Hydro_proxy.pool_delegation.html
doc/godi-hydro/html/Hydro_proxy.pool_t.html
doc/godi-hydro/html/Hydro_proxy.proxy_conf_t.html
doc/godi-hydro/html/Hydro_proxy.proxy_delegation.html
doc/godi-hydro/html/Hydro_proxy.proxy_env_delegation.html
doc/godi-hydro/html/Hydro_proxy.proxy_env_t.html
doc/godi-hydro/html/Hydro_proxy.proxy_resolver_delegation.html
doc/godi-hydro/html/Hydro_proxy.proxy_resolver_t.html
doc/godi-hydro/html/Hydro_proxy.proxy_t.html
doc/godi-hydro/html/Hydro_transport.html
doc/godi-hydro/html/Hydro_transport.hydro_multiplex_controller.html
doc/godi-hydro/html/Hydro_transport.stream_hydro_multiplex_controller.html
doc/godi-hydro/html/Hydro_types.descriptor.html
doc/godi-hydro/html/Hydro_types.html
doc/godi-hydro/html/Hydro_unmarshal.html
doc/godi-hydro/html/Hydrodoc_classes.html
doc/godi-hydro/html/Hydrodoc_exceptions.html
doc/godi-hydro/html/Hydrodoc_intro.html
doc/godi-hydro/html/Hydrodoc_meta.html
doc/godi-hydro/html/Hydrodoc_proxies.html
doc/godi-hydro/html/Hydrodoc_servers.html
doc/godi-hydro/html/index.html
doc/godi-hydro/html/index_attributes.html
doc/godi-hydro/html/index_class_types.html
doc/godi-hydro/html/index_classes.html
doc/godi-hydro/html/index_exceptions.html
doc/godi-hydro/html/index_methods.html
doc/godi-hydro/html/index_module_types.html
doc/godi-hydro/html/index_modules.html
doc/godi-hydro/html/index_types.html
doc/godi-hydro/html/index_values.html
doc/godi-hydro/html/style.css
doc/godi-hydro/html/type_Hydro_connector.html
doc/godi-hydro/html/type_Hydro_connector.multiplexed_descriptor.html
doc/godi-hydro/html/type_Hydro_connector.transporter.html
doc/godi-hydro/html/type_Hydro_endpoint.Client.html
doc/godi-hydro/html/type_Hydro_endpoint.GeneralizedEndpoint.html
doc/godi-hydro/html/type_Hydro_endpoint.Master.html
doc/godi-hydro/html/type_Hydro_endpoint.Server.html
doc/godi-hydro/html/type_Hydro_endpoint.html
doc/godi-hydro/html/type_Hydro_lm.StrMap.html
doc/godi-hydro/html/type_Hydro_lm.Unsafe.html
doc/godi-hydro/html/type_Hydro_lm.call_suspension.html
doc/godi-hydro/html/type_Hydro_lm.call_suspension_t.html
doc/godi-hydro/html/type_Hydro_lm.html
doc/godi-hydro/html/type_Hydro_lm.interface_base.html
doc/godi-hydro/html/type_Hydro_lm.object_base.html
doc/godi-hydro/html/type_Hydro_lm.sliced_base.html
doc/godi-hydro/html/type_Hydro_lm_IceLocalObject.delegate_od_Ice_LocalObject.html
doc/godi-hydro/html/type_Hydro_lm_IceLocalObject.delegate_oi_Ice_LocalObject.html
doc/godi-hydro/html/type_Hydro_lm_IceLocalObject.html
doc/godi-hydro/html/type_Hydro_lm_IceLocalObject.mk_od_Ice_LocalObject.html
doc/godi-hydro/html/type_Hydro_lm_IceLocalObject.o_Ice_LocalObject.html
doc/godi-hydro/html/type_Hydro_lm_IceLocalObject.od_Ice_LocalObject.html
doc/godi-hydro/html/type_Hydro_lm_IceLocalObject.oi_Ice_LocalObject.html
doc/godi-hydro/html/type_Hydro_lm_IceLocalObject.skel_Ice_LocalObject.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.delegate_od_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.delegate_oi_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.mk_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.mk_od_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.o_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.od_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.oi_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.ops_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.pci_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.po_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.poi_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.r_Ice_Object_ice_id.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.r_Ice_Object_ice_ids.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.r_Ice_Object_ice_isA.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.r_Ice_Object_ice_ping.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.r_simple_response.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.restore_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.skel_Ice_Object.html
doc/godi-hydro/html/type_Hydro_lm_IceObject.sliced_od_Ice_Object.html
doc/godi-hydro/html/type_Hydro_locator.html
doc/godi-hydro/html/type_Hydro_marshal.html
doc/godi-hydro/html/type_Hydro_message.html
doc/godi-hydro/html/type_Hydro_netplex.html
doc/godi-hydro/html/type_Hydro_oa.html
doc/godi-hydro/html/type_Hydro_oa.object_adapter.html
doc/godi-hydro/html/type_Hydro_oa.object_adapter_t.html
doc/godi-hydro/html/type_Hydro_params.html
doc/godi-hydro/html/type_Hydro_proxy.html
doc/godi-hydro/html/type_Hydro_proxy.managed_client_t.html
doc/godi-hydro/html/type_Hydro_proxy.pool_delegation.html
doc/godi-hydro/html/type_Hydro_proxy.pool_t.html
doc/godi-hydro/html/type_Hydro_proxy.proxy_conf_t.html
doc/godi-hydro/html/type_Hydro_proxy.proxy_delegation.html
doc/godi-hydro/html/type_Hydro_proxy.proxy_env_delegation.html
doc/godi-hydro/html/type_Hydro_proxy.proxy_env_t.html
doc/godi-hydro/html/type_Hydro_proxy.proxy_resolver_delegation.html
doc/godi-hydro/html/type_Hydro_proxy.proxy_resolver_t.html
doc/godi-hydro/html/type_Hydro_proxy.proxy_t.html
doc/godi-hydro/html/type_Hydro_transport.html
doc/godi-hydro/html/type_Hydro_transport.hydro_multiplex_controller.html
doc/godi-hydro/html/type_Hydro_transport.stream_hydro_multiplex_controller.html
doc/godi-hydro/html/type_Hydro_types.descriptor.html
doc/godi-hydro/html/type_Hydro_types.html
doc/godi-hydro/html/type_Hydro_unmarshal.html
doc/godi-hydro/html/type_Hydrodoc_classes.html
doc/godi-hydro/html/type_Hydrodoc_exceptions.html
doc/godi-hydro/html/type_Hydrodoc_intro.html
doc/godi-hydro/html/type_Hydrodoc_meta.html
doc/godi-hydro/html/type_Hydrodoc_proxies.html
doc/godi-hydro/html/type_Hydrodoc_servers.html
lib/ocaml/pkg-lib/hydro/META
lib/ocaml/pkg-lib/hydro/hydro.a
lib/ocaml/pkg-lib/hydro/hydro.cma
lib/ocaml/pkg-lib/hydro/hydro.cmxa
lib/ocaml/pkg-lib/hydro/hydro_builtin.cmi
lib/ocaml/pkg-lib/hydro/hydro_builtin.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_builtin.ice
lib/ocaml/pkg-lib/hydro/hydro_builtin.mli
lib/ocaml/pkg-lib/hydro/hydro_builtin_util.cmi
lib/ocaml/pkg-lib/hydro/hydro_builtin_util.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_connector.cmi
lib/ocaml/pkg-lib/hydro/hydro_connector.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_connector.mli
lib/ocaml/pkg-lib/hydro/hydro_dbg.cmi
lib/ocaml/pkg-lib/hydro/hydro_dbg.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_endpoint.cmi
lib/ocaml/pkg-lib/hydro/hydro_endpoint.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_endpoint.mli
lib/ocaml/pkg-lib/hydro/hydro_lm.cmi
lib/ocaml/pkg-lib/hydro/hydro_lm.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_lm.mli
lib/ocaml/pkg-lib/hydro/hydro_lm_IceLocalObject.cmi
lib/ocaml/pkg-lib/hydro/hydro_lm_IceLocalObject.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_lm_IceLocalObject.mli
lib/ocaml/pkg-lib/hydro/hydro_lm_IceObject.cmi
lib/ocaml/pkg-lib/hydro/hydro_lm_IceObject.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_lm_IceObject.mli
lib/ocaml/pkg-lib/hydro/hydro_locator.cmi
lib/ocaml/pkg-lib/hydro/hydro_locator.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_locator.mli
lib/ocaml/pkg-lib/hydro/hydro_marshal.cmi
lib/ocaml/pkg-lib/hydro/hydro_marshal.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_marshal.mli
lib/ocaml/pkg-lib/hydro/hydro_message.cmi
lib/ocaml/pkg-lib/hydro/hydro_message.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_message.mli
lib/ocaml/pkg-lib/hydro/hydro_netplex.cmi
lib/ocaml/pkg-lib/hydro/hydro_netplex.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_netplex.mli
lib/ocaml/pkg-lib/hydro/hydro_oa.cmi
lib/ocaml/pkg-lib/hydro/hydro_oa.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_oa.mli
lib/ocaml/pkg-lib/hydro/hydro_params.cmi
lib/ocaml/pkg-lib/hydro/hydro_params.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_params.mli
lib/ocaml/pkg-lib/hydro/hydro_prelim.cmi
lib/ocaml/pkg-lib/hydro/hydro_prelim.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_prelim.mli
lib/ocaml/pkg-lib/hydro/hydro_proxy.cmi
lib/ocaml/pkg-lib/hydro/hydro_proxy.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_proxy.mli
lib/ocaml/pkg-lib/hydro/hydro_transport.cmi
lib/ocaml/pkg-lib/hydro/hydro_transport.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_transport.mli
lib/ocaml/pkg-lib/hydro/hydro_types.cmi
lib/ocaml/pkg-lib/hydro/hydro_types.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_types.mli
lib/ocaml/pkg-lib/hydro/hydro_unmarshal.cmi
lib/ocaml/pkg-lib/hydro/hydro_unmarshal.cmi_pretty
lib/ocaml/pkg-lib/hydro/hydro_unmarshal.mli
lib/ocaml/pkg-lib/hydro/hydro_util.cmi
lib/ocaml/pkg-lib/hydro/hydro_util.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/META
lib/ocaml/pkg-lib/hydrogen/hgen_analyzer.cmi
lib/ocaml/pkg-lib/hydrogen/hgen_analyzer.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/hgen_lexer.cmi
lib/ocaml/pkg-lib/hydrogen/hgen_lexer.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/hgen_lexer_driver.cmi
lib/ocaml/pkg-lib/hydrogen/hgen_lexer_driver.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/hgen_main.cmi
lib/ocaml/pkg-lib/hydrogen/hgen_main.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/hgen_parser.cmi
lib/ocaml/pkg-lib/hydrogen/hgen_parser.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/hgen_parser.mli
lib/ocaml/pkg-lib/hydrogen/hgen_parser_util.cmi
lib/ocaml/pkg-lib/hydrogen/hgen_parser_util.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/hgen_print_il.cmi
lib/ocaml/pkg-lib/hydrogen/hgen_print_il.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/hgen_trans_il.cmi
lib/ocaml/pkg-lib/hydrogen/hgen_trans_il.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/hgen_types.cmi
lib/ocaml/pkg-lib/hydrogen/hgen_types.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/hgen_util.cmi
lib/ocaml/pkg-lib/hydrogen/hgen_util.cmi_pretty
lib/ocaml/pkg-lib/hydrogen/hydrogen
lib/ocaml/pkg-lib/hydrogen/hydrogen.a
lib/ocaml/pkg-lib/hydrogen/hydrogen.cma
lib/ocaml/pkg-lib/hydrogen/hydrogen.cmxa
Built from sources: hydro-0.6
This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml