Saran saya pake Spring untuk wiring all services, trus hibernate untuk backendnya, quartz untuk scheduler dan Commons HTTP untuk manggil URL Google API.
Setelah aplikasi jalan dengan baik secara logic dan perlu optimasi, hibernate memegang peran besar, kalau aplikasinya dibaca secara intensif bisa menggunakan chace untuk mengurahi hit ke database. kalau aplikasinya mempunyai data besar dan tidak memungkinkan untuk dichache ke memory, bisa coba-coba hibernate search, data dipindahkan ke lucene index, sehingga kalau aplikasi luar hit query dilakukan di lucene index sehingga databasenya tidak terlalu ngos-ngosan. Kalau tujuan utamanya adalah kecepatan query terhadap data yang ukuranya besar sekali, misalnya diatas beberapa puluh atau ratus juga record dan pada dasarnya data cuma satu table, coba lirik-lirik solusi nosql. :) -- regards