1.2 About the Functional Developer ORB
The Functional Developer ORB is a CORBA-compliant ORB written in Dylan, with a native implementation of the Internet Inter-ORB Protocol (IIOPTM).
The Functional Developer ORB lets you build and run distributed applications in Dylan, straight out of the box. When combined with the Dylan interface to ODBC, you can build 3-tier client-server applications completely in Dylan.
However, the fundamental purpose of the CORBA architecture is interoperability. The ORB's IIOP implementation provides immediate interoperation with any other ORB you may be using. For example, given a Java ORB you could write GUI clients in Swing or AWT that communicate to servers written in Dylan. Conversely, given a C++ ORB you can build DUIM (Dylan User Interface Manager) clients that talk to C++ servers.
Apart from proving that Dylan could tackle another complex domain, the advantages of building an ORB in Dylan were:
- ORB-vendor independence - The Functional Developer ORB can be married to any existing ORB infrastructure, or introduced first without affecting later ORB procurement decisions.
- "Batteries included" - No need to purchase a separate ORB to get a full system. The Functional Developer ORB provides "instant CORBA" to get distributed Dylan applications up and running without additional procurement or installation.
- Lower impedance mismatch - No need to trampoline from Dylan to IIOP via another language binding or via a non-Dylan IIOP engine API.
- Expertise - A deeper understanding of the CORBA architecture
inside Functional Objects which can be shared with our customers via technical support.
- Customization - Functional Objects likes to offer a high level of customization support and consultancy to both internal and external customers which it could not do with a third party product written in a more primitive language. This also means faster fixes for basic bugs.
- 100% pure Dylan - Providing users with enhanced debugging and interaction facilities available in a homogeneous implementation model.