to the architecture decisions KXEN made in 1998, when designing
the KXEN Analytic Framework™. Besides the participation in devel-
oping the standard definition, one of the main contributions of
KXEN has been the Reference Implementation (RI). The RI was used
within the JSR to test the Technology Compatibility Kit (TCK) and
can be used by integrators as a mock-up to test their developments.
KXEN was particularly attracted by the fact that JDM was one of
the first attempts to rationalize a level of abstraction for data mining
functions instead of providing a laundry list of known algorithms.
That level of abstraction allows programmers to build applications
and solutions based on best practices, without the constraints of spe-
cific algorithms' limitations. For KXEN, JDM is another way to
provide its technology in a standardized form, which makes it easier
to compare performance of data mining implementations at the same
functional level or cost.
Another goal of KXEN was to apply the same standard to Web
services because it truly opens the door to integrating data mining
techniques within business workflow environments. Creating a set of
Web services is not technically very difficult. The real problem is to
federate a services community, made of both consumers and provid-
ers. KXEN believes that JDM Web services, an open standard, will
open new opportunities for the proliferation of data mining within
business environments across the enterprise. Since late 2005, KXEN
provides KJDM as KXEN's JDM 1.1 implementation.
KXEN JDM Implementation Architecture
KJDM (KXEN Java Data Mining Implementation) is a commercial
implementation of JDM built on top of KXEN technology. Techni-
cally, it can be seen as a Java “wrapper” on top of KXEN Analytic
Framework. All data access and computations are done in C++ for
efficiency and memory allocation purposes, but the Java wrappers
give all the power of Enterprise wide application development.
KJDM can be switched at runtime between two architectures:
• In-process computing through a Java/JNI/C++ interface,
allowing lightweight data mining embedding, or
• Out-process integration through CORBA.
The switch between the two architectures is done through the URI
specified for the connection.