Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Why Does the OSID Runtime Use Dynamic Proxies?

While it is a royal pita to sift through the Java exception stacks, there's some good reasons for this. 

...

  • no nulls are to be passed or returned
  • only those errors specified in the interface definition may be thrown (or those specified on the Java OSID Binding)
  • the OSID Providers are encapsulated and implementations not to be accessed by OSID Consumers

Fail Fast

There is a set of interoperability problems that result from unexpected out of band agreements between applications and implementations. These agreements include:

...

The contract violations are to assign blame and this keeps honest as well.

Version Management

The OSID Specifications evolve slowly. There will be additions and changes that cause compatibility problems between older and newer code. OsidRuntimeManager provides the hooks for version negotiation to preserve compatibility across minor releases. 

Runtime Management

TBD.

Performance

A method invocation through the OsidRuntime proxy adds approximately 150µs per call for repeated calls.  The initial call may be significantly higher but varies greatly upon the kind of interface due to both the JVM and OsidRuntimeManager implementation behaviors. 

...