jump to navigation

JDM: The Java API for Data Mining October 29, 2007

Posted by nhabibi in Data Mining, Java.
2 comments

Data mining tools were traditionally provided in products with vendor-specific interfaces. JDM defines a common Java API to interact with data mining systems. In this way, data Mining clients can be coded against a single API that is independent of the underlying data mining system. It is developed by Java Community Data Mining Expert Group.
JDM includes supervised and unsupervised learning algorithms such as decision trees, neural networks, Naive Bayes, Support Vector Machine, K-Means, and Apriori.

In fact, JDM provides for data mining systems what JDBC did for relational databases.

For using JDM, you must follow a few steps:
1-Identify the data whit a URL
2-Create a loical representaion of your data
3-Specify the type of model (clustering,etc.)
4-Specify the parameters to your data mining algorithm
5-Create a build task
6-Execute the task
7-Get result

You must get the JDM API source codes and code your program against it.

There are also Data mining Web services that provide an opportunity to facilitate integration of multiple data mining software implementations in a single application, enable a service oriented architecture.

More Information:
-Java Specification Request 247: Java Data Mining (JDM) 2.0
-F. Sommers, “Mine Your Own Data with the JDM API”
-M. F. Hornick, E. Macade, S. Vankayala, “Java Data mining Concepts”
-Robert Chu,” Web Services Standards for Data Mining”

Java RMI March 20, 2007

Posted by nhabibi in Java, Programming.
1 comment so far

The Java Remote Invocation (RMI) is a technology to develop distributed applications more easily. It’s object equivalent of RPC:

Remote method invocation allows applications to call object methods located remotely, sharing resources and processing load across systems. Unlike other systems for remote execution which require that only simple data types or defined structures be passed to and from methods, RMI allows any Java object type to be used – even if the client or server has never encountered it before. RMI allows both client and server to dynamically load new object types as required.

Developing RMI applications, it’s little (?) tricky at first. I use a check-list, every time I want to make one!
There’re many tutorials and samples online, but basic steps, in summary, are: (RPC developers must be familiar with terms)

*Writing an interface (MyInterface) : a description of the methods we will allow remote clients to invoke.

*Implementing the interface (MyClass): implementing the functionality of the above methods.

*Writing a RMI Server (MyServer): a server that makes an instance of MyClass and registers it with a registry.

*Writing a RMI client (MyClient): a client that calls the registry to obtain a reference to the remote object, and calls its methods.

*Compiling: compiling the classes as ordinary with javac command, and, compiling the MyClass with rmic tool. This last one, creates stub and skeleton files

*Running Registry: making a registry ready to listen for incoming request with rmiregistry tool

*Running the Server and Client: running MyServer and MyClient with java command

That’s it! :D

More on RMI home on sun.