Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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 ???