Download Frontend Technologies

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
List of Technologies
Contents
Frontend Technologies ................................................................................................................................. 2
Eclipse RCP ................................................................................................................................................ 2
RRD4J ........................................................................................................................................................ 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. Development 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 RRDtool. 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 JRobin 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 Lesser 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/rrdtool/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 installed on the client computer. We would prefer to use a pure Java
implementation such as RRD4J or JRobin (which are both Java ports 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 the 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 - Writes 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 aren'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
directed 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 messaging queue stored on a database for heavy loads, to ensure stability
and recoverability.
However, there is no currently existing plug-in or module (that isn’t thoroughly tested or out of beta) for
AMQP in conjunction with MULE. In addition, though scalability 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 simplifies multi-threaded and multi-core software
development.
Google MapReduce
???