Skip to content.

Manageability

Sections
Personal tools
You are here: Home » blog » stuff » Top Ten Obscure but Useful Java Open Source Projects - Circa 2007
Views
  • State: published

Top Ten Obscure but Useful Java Open Source Projects - Circa 2007

Document Actions

Three years ago (has it been that long already?) I wrote about "Top 10 Obscure Java Projects". It was a hit back then and I'm glad to find that several of those projects have graduated from being completely under the radar. Joda Time has become a major influencer in JSR-310 Date and Time API. Mondrian has become core to the Pentaho Business Intelligence project. Hypergate is now one of the more prominent Java CRM applications.

So I'm asking the same question I did back then. That is, what are the top 10 obscure Java projects of 2007 that deserves more respect? Well here's my 2007 stab at that question. Any list will naturally have a kind of bias, in this case I list down projects that appear to be useful in emerging cloud computing. Cloud computing goes beyond distributed compute servers and moves in the world of distributed sources. This implies that need to handle that complexity.

  1. SymmetricDS - SymmetricDS is a web based, database independent, data synchronization system. Beyond replicating tables between relational databases the software incorporates functionality to handle a large number of databases, manage low-bandwidth connections and work within periods of network outage. The system supports two way replication, guaranteed delivery and multiple active schemas. This project is on this list because you can't avoid synchronization issues when you work with distributed data sources.
  2. Bedework - Bedework is an institutional calendar system for higher education designed to conform to current calendaring standards. Bedework has a centralized server architecture allowing immediate update of public and personal information. Events can be imported and exported in icalendar (RFC2445) format. Bedework has support for Caldav which will allow caldav aware clients access to the server. This project is on the list because time management is so important but is always treated as an afterthought. It maybe because groking time is so difficult.
  3. Gadget - Gadget is used for transforming a few hundred Mb of XML into RDF. Gadget is built with scalability in mind and, in theory, there is no limit to the amount of data it can handle. This project is on the list simply because one should expect working with heterogeneous sources and a well designed framework to keep one's sanity.
  4. Carbonado - Carbonado is a relational persistence abstraction layer, capable of binding to different storage technologies. One feature is the ability to issue queries without translating to SQL. Using Carbonado against a BDB offers high performance by skipping all the translation layers offered by other solutions. In order to query against a BDB, Carbonado adds support for indexes and joins. A rule-based query optimizer decides which indexes to use for a given query. A common use of Carbonado is to replicate into a BDB, using it as a complete cache. All queries go against the cache, sparing your central RDMS from the load. Carbonado was developed internally at Amazon.com. This project is in the list because Amazon has realized that not all data sources are from RDMSs.
  5. Nux - Nux is a toolkit making efficient and powerful XML processing easy. It is geared towards embedded use in high-throughput XML messaging middleware such as large-scale Peer-to-Peer infrastructures, message queues, publish-subscribe and matchmaking systems for Blogs/newsfeeds, text chat, data acquisition and distribution systems, application level routers, firewalls, classifiers, etc. Nux reliably processes whatever data fits into main memory (even, say, 250 MB messages), but it is not an XML database system, and does not attempt to be one. Nux integrates best-of-breed components, containing extensions of the XOM, Saxon and Lucene open-source libraries. This project is on the list because people fail to be reminded that most XML processing libraries don't really scale.
  6. Cleversafe - Cleversafe uses Cauchy Reed-Solomon Information Dispersal Algorithms to separate data into unrecognizable Data Slices and distribute them, via secure Internet connections, to multiple storage locations on a Dispersed Storage Network. Cleversafe ensures that data remains secure even if transmissions are intercepted and decrypted. Cleversafe ensures that data remains secure even if storage is stolen and decrypted. This project is on the list because your customer's data needs to be protected even if you don't own your data servers.
  7. XXL - XXL is a Java library that contains a rich infrastructure for implementing advanced query processing functionality. The library offers low-level components like access to raw disks as well as high-level ones like a query optimizer. On the intermediate levels, XXL provides a demand-driven cursor algebra, a framework for indexing and a powerful package for supporting aggregation. This project is on the list because you expect to efficiently merge data sources in all kinds of unexpected ways.
  8. UIMA - UIMA is a component framework for analysing unstructured content such as text, audio and video. UIMA can analyze large volumes of unstructured information in order to discover knowledge that is relevant to an end user. UIMA application might ingest plain text and identify entities, such as persons, places, organizations; or relations, such as works-for or located-at. UIMA enables such an application to be decomposed into components, for example "language identification" -> "language specific segmentation" -> "sentence boundary detection" -> "entity detection (person/place names etc.)". Each component must implement interfaces defined by the framework and must provide self-describing metadata via XML descriptor files. The framework manages these components and the data flow between them. Components are written in Java or C++; the data that flows between components is designed for efficient mapping between these languages. This project is on the list because you can't expect your data sources to be structured.
  9. Queplix - QueWeb Customer Care solution that focuses specifically on the portion of the Customer Relationship after the Customer has been acquired. The solution is a J2EE application that uses Google Web Toolkit (GWT) for its UI. This project is on the list because of it's particularly impressive leverage of GWT.
  10. ZK - ZK is an event-driven, XUL-based, AJAX-embedded, all Java framework to enable rich user interfaces for Web applications. With ZK, you represent and manipulate RIA in XUL/HTML components all at the server similar to how you developed desktop apps. ZK includes an AJAX-based event-driven engine to automate interactivity, and a rich set of XUL-based components. This project is on the list because it's possibly the most rich AJAX framework that nobody has ever heard of.

Open Source is much bigger today that it was three years ago. So unlike then, when this list included projects backed by a few people, this list includes projects that are backed by real organizations. It's just unfortunate that with so much out there, these excellent projects are unable to rise above the noise. I do hope this list gives you a glimpse of what you may have easily overlooked.


Last modified 2007-12-03 10:24 AM

ZK is excellent!

Posted by Anonymous User Anonymous User at 2007-12-03 11:17 AM
ZK is indeed unappreciated. It's great and easy to use, yet supplies so many features it's unbelievable people don't even include it in their evaluation specs.

About ZK

Posted by Anonymous User Anonymous User at 2007-12-19 08:53 AM
I don't know whether this is an insult or a compliment to ZK. ZK is quite popular, but I agree that it could(and should) be more popular - perhaps at the level of Struts/JSF/Wicket etc.
It is the easiest framework to learn, it offers the best default UI controls of any framework (across Java/Ruby/PHP), the framework itself is quite lightweight, it has excellent free documentation, and the forums are very active with good support from the ZK developers.

The only negative that I have heard about ZK is that it is slow (I don't think so) and can potentially use a lot of memory on the server if there are too many concurrent users of the application. I am not sure how true this is, and how it compares to other component frameworks (such as Tapestry/JSF) in this regard. Some comparison metrics (with JSF/Wicket/Tapestry) from the ZK team would help in this regard.

ZK is great

Posted by Anonymous User Anonymous User at 2008-01-02 10:21 AM
Guys, IMO, ZK is a excellent framework but I have to agree: when you get a piece of ZK´s internal code to take a look is a nightmare!!!

ZK is easy to learn and very powerful

Posted by Anonymous User Anonymous User at 2008-01-02 11:32 AM
I am familiar with jsp, jsf, myfaces and all that stuff and started some trials with ZK just 3 weeks ago. After a few pitfalls about data binding and some time spend to understand the basic concepts I am now sure that ZK allows me to develop a new class of web applications: fast, great UI and event driven as we all like it and expect from our "normal" desktop apps. I hope they go on to improve the documentation and build an eclipse plugin :-)
visitors
reading
 
 

Powered by Plone

This site conforms to the following standards: