Eastwood charts reimplements the Google Charts API on top of the JFreeChart library: http://www.jfree.org/eastwood/. If Eastwood can be also run as a library component this gives us the best bang for the buck, it's already able to chew URL's, uses a well documented API, and can be directly exposed to the net as a service already.
To sum up:
- having an in process charting API seems the way to provide fast and reliable in map charting
- in a web setting, complementing it with a web accessible charting service provides better flexibility (just build the web layer on top of the in process library level)
- the charting library most likely provides a host of configuration, a text driven, comprehensive chart template system allows to keep the web api lean and leverage the full power of the charting library at the same time
- while allowing one to hand list labels and values for the chart, also allow the retrieval of those information directly from an external data source given a query and the attributes to be used for building up the data series
Pipe dream ideas
- Chart conflict resolution (mixed with labels, too)
- A custom charting drawer for faster chart drawing (JFreeChart is designed for flexibility, not for speed).