Changes to ILU 2.0 from 1.8

Here are the major changes planned or already done. The string "(Done)" after an item means that it is in the current source tar file -- which changes quite frequently, sometimes several times in one day.
  • Configuration via a combination of GNU autoconf and imake should make installation and configuration on UNIX much easier; typing "make" at the top level will build a reasonable minimal system. (Done)
  • Support for the CORBA 2 mapping for C. (Done)
  • Support for the CORBA 2 mapping for C++. (In progress)
  • Support for the Java programming language. (In progress)
  • Dropping of support for Modula-3. (Done)
  • Support for the use of W3C HTTP 1.0 as an ILU protocol. (Done)
  • Support for use of Solaris-2, Posix and Win32 threads with C, Python, and C++, thanks to Rob Head and Digital Creations. (Done)
  • Support for C, Python, and C++ use on Windows 3.1, Windows 95, and Windows/NT, thanks to Dan Larner, Mark Davidson, and Rob Head. Windows binaries will be available as well as source code. (Done)
  • Thanks to Bridget Spitznagel, we now have support for cross-language calls within the same address space. Because we're not a compiler vendor, and can't keep up with all the compiler vendors in the world (not to mention all the combinations of them), we don't solve your problem of getting multiple language runtimes to co-exist. But where you have solved that problem (perhaps because you've got an easy instance, such as C and XXX), you can now just call through an ILU interface --- rather than having to write messy "foreign function" interfaces from one language to another. Each part of your program looks mono-lingual and normal, and we provide the control-flow and data-conversion glue to put them together. Data conversion is currently done by serializing and de-serializing to/from a normalized form in a memory buffer; we plan to investigate more direct methods (but not necessarily for release 2.0). (Done)
  • Thanks to Antony Courtney, we now have a much better security story. We will provide message protection (caller/server identity authentication, message integrity checks, and message encryption) at the transport level, using various message security protocols such as Netscape's SSL, Microsoft's PCT, and others. ILU uses the specific security protocol through a generic interface, the GSS (Generic Security Service) API, version 2. We have an extensible multi-mechanism implementation of the GSS-API, including an SSL mechanism. The GSS shell and mechanisms are independent of ILU, and will be distributed as independent software; U.S. export restrictions (ITAR) apply to some mechanisms. You will also be able to add your favorite security protocols to the GSS shell, if you'd like to use ILU with them. (In progress)
  • Our "transport" abstraction has been re-organized. Among other things, this makes it (relatively) easy to introduce "filters" at the transport level. Of course, ILU remains open and extensible in this regard. Want to add a compression filter, or channel mux, or something to communicate via Apple Events? Go ahead! (Done)
  • `Simple binding' via either shared files (as in 1.8), an ILU network service, or the IP multicast protocol (a nice variant that eliminates any central point of failure). (shared files and ILU network service (Win32 In Progress, Unix Done))
  • ILU string binding handles become IETF URLs (that is, IETF URIs with possibly many different contact addresses). In addition, ILU will now support many different kinds of URLs, and parsers for new URL schemes can be registered with the ILU kernel. (Done)
  • Support for the Object Management Group's Internet Inter-Orb Protocol, or IIOP. This is a new RPC protocol standardized by the OMG for use with CORBA Object Request Brokers. Using it will allow ILU to communicate with other object request broker systems that use it (when they use it), such as Sun's NEO, Iona's Orbix, and IBM's DSOM. (Done)
  • We've made it possible for a calling application to interrupt a call in progress. (Done)
  • The documentation (and of course, TIM) has diagrams and URLs! (Done)
  • Generalized cleanup and bug fixing. This includes more attention to making it practical for others to add transport and protocol meta-objects. This also includes a more rigorous treatment of exceptions in the kernel and runtimes, with a taxonomy of exceptions aligned with CORBA's. It also includes fixes that change the type ID's and protocol mappings (we hope for the last time), which caused us to bump the major version number. All ONC RPC and Courier program numbers, and ISO object IDs are now official. The Courier type-ID-to-program-number mapping registry has been eliminated. (Done)