List of Technologies Document.doc

assistantashamedData Management

Nov 29, 2012 (4 years and 11 months ago)

214 views

List of Technologies

Contents

Frontend Technologies

................................
................................
................................
................................
.

2

Eclipse RCP

................................
................................
................................
................................
................

2

RR
D4J

................................
................................
................................
................................
........................

2

JRobin

................................
................................
................................
................................
........................

2

RRDtool

................................
................................
................................
................................
.....................

2

Backend Technologies
................................
................................
................................
................................
...

3

Database

................................
................................
................................
................................
...................

3

PostgreSQL

................................
................................
................................
................................
............

3

Oracle

................................
................................
................................
................................
....................

3

OLAP

................................
................................
................................
................................
......................

3

Messaging

................................
................................
................................
................................
.................

4

Mule

................................
................................
................................
................................
......................

4

AMQP

................................
................................
................................
................................
....................

4

JMS

................................
................................
................................
................................
........................

4

Scalability

................................
................................
................................
................................
..................

4

Habanero
................................
................................
................................
................................
...............

4

Google MapReduce

................................
................................
................................
...............................

4


Frontend Technologies

Eclipse RCP

Using the
Rich Client Platform

(RCP) provided by Eclipse, one can develop software that can run both
standalone and as part of another RCP program (for
example Eclipse).
It will be possible to be able to
develop this inside Eclipse using

a “Plug
-
in Project”.

Using
Eclipse RCP

will allow us to use
Views

and
Actions

and essentially develop the application using
the already robust Eclipse framework. Developm
ent with
IntelliJ

may be a problem, but since only the
client
-
side would be developed there, it may be okay. The
JFace

UI toolkit makes many UI tasks easy and
the RCP ensures that development is widget
-
based

meaning the components will be reusable easily.

JRobin

Website:

http://www.jrobin.org

License:

GNU
Lesser
General Public License

Evaluation:
JRobin is a Java port of the popular C
-
language

data logging

and graphing
system

RRDt
ool.
It
claims to support 100% of RRDtool

s functionality without depending on any external native libraries
.
Performance
-
wise, JRobin is at best about the same as RRDtool, though in most cases it will not be as
fast.

Like RRDtool, JRobin uses a round
-
robin database to store data. RRDtool and JRob
in database
formats are incompatible, but JRobin can convert XML dumps of RRDtool databases into its own native
format.

Its latest release was in 9/2007.

RRD4J

Website
:

https://rrd4j.dev.java.net/

License:

GNU Less
er General Public License

Evaluation:

RRD4J is a
Java 5 fork of JRobin. It supports essentially the same features as JRobin.

Its latest
release was in 2/2007.

RRDtool

Website:

http://oss.oetiker.ch/r
rdtool/index.en.html

License:

GNU General Public License

Evaluation:


Pros:



More active development



Active support available



Seems to be most popular software for graphing data

Cons:



Not natively in Java



Will require further research to figure out how to
integrate

We may have issues getting it ins
talled on the client computer. We would prefer to

use a pure Java
implementation such as RRD4J or JRobin

(which
are both

Java port
s

of this utility).

Backend Technologies

Database

PostgreSQL

Alternative to Oracle
that is easier to use and has no licensing issues.

Oracle

Not considered as we do not have a license for it.

OLAP

Technology that exists for SQLServer, that possibly exists for PostgreSQL as well for easily processing and
calculating latency averages in th
e system. Stores data in a tree
-
like structure, which facilitates
calculation of total latencies by converting the calculation into a simple node addition.

Distributed Database
-

Split (Tables are split between multiple database servers)

Advantages
-

Writ
es are faster/efficient (only need to write to a specific server)

Disadvantages
-

Reads are slower (may need to read several servers for a single query; limited by the
slowest server in the set)

Recommendation
-

Good for the message table, since there ar
en't as many reads there and it has the
most writes; also there is a natural fundamental unit (one table per node in the system graph)
.

Distributed Database
-

Replicated (multiple servers with identical databases)

Advantages
-

Reads are faster because the

load is spread

Disadvantages
-

Writes are slower because the write must be distributed from the server originally
written to to all other servers

Recommendation
-

May be useful for the association table, since most reads from the view client will be
dir
ected there; the number of writes may still be high though, so this needs testing to fully determine

Hibernate

Advantages
-

Database agnostic; maps objects to relational system; many features; many documents,
examples, and existing code

Disadvantages
-

May incur a "slight" performance hit; more complex than iBATIS

Recommendation
-

The feature set seems valuable, and the existing documentation is more prevalent
upon brief inspection (compared to iBATIS).


This seems the way to go as long as testing shows

the
perform

iBATIS

Advantages
-

Database agnostic; maps objects to relational system; simple to use

Disadvantages
-

Requires more writing of SQL statements; less documentation compared to Hibernate

Recommendation
-

A good alternative if Hibernate doesn
't work out

Messaging

Mule

A light
-
weight framework enabling components to communicate with each other
independent of
protocol.

AMQP

AMQP
is

a messaging protocol


something that can be implemented within the MULE messaging
framework.

AMQP utilizes a mess
aging queue stored on a database for heavy loads, to ensure stability
and recoverability.

However,
there is no current
ly

existing plug
-
in or module (that isn’t thoroughly tested or out of beta) for
AMQP in conjunction with MULE.

In addition, though
scalabi
lity exists, we are looking at an estimated
16 servers to get a throughput of 1000 messages per second

(according to the AMQP specification)
.

JMS

A messaging system developed by Sun.

Scalability

Habanero

An extension to the Java language that greatly simp
lifies multi
-
threaded and multi
-
core software
development.


Google MapReduce

???