First of all, please accept big thanks, Andreas. Those knowledge sharing is helpful to me as well as other learners.
Follow the thread, I think I was a bit misled on benefit of SQL/JDBC on GAE. In Andreas blog's, he mentioned on learning curve to deal with the mapping: Java classess <--> JDO/JPA <- implementation specific to datastore -> Datastore That's why he looked for low-level wrapper frameworks. (do read his post first) Surprisingly, there're even suggestion to him: Java classes <--> JPA <-- Hibernate implementation --> 3rd party implementation (JDBC/SQL) <--> Datastore "Data models formally define data elements and relationships among data elements for a domain of interest." Yes, 100% agree. So, it is honestly speaking that "data model has nothing to do with technology"? What about is the big mismatch between model and physical storage? and purpose of object-relational mapping tool? More mappings and less mismatch? Reading Google GAE docs, forum, blog, as well as other non-Google site ( stackoverflow.com, highscalability.com ..) the stress is, datastore is not relational DB. What a coincidence! On Tue, Mar 30, 2010 at 10:47 PM, Sandeep Sathaye <sandeep.sath...@gmail.com > wrote: > Hi Guillermo, > > I agree with you completely. Here are my thoughts on the subject. > > Relational theory, SQL and JDBC are functional specifications and RDBMS > vendors implement these specifications. Actually speaking data model has > nothing to do with technology. A data model in software engineering is an > abstract model that describes how data is represented and accessed. Data > models formally define data elements and relationships among data elements > for a domain of interest. > > The tools which extrapolate proper strategy for storing and accessing data > on the underlying datastore based on the data model and expose it via SQL > and JDBC in both client/server and server mode have a great advandage. This > is our goal at Cloud2db. This abstraction layer also gives you complete > flexibility of choosing your underlying datastore. For example, we are about > to release Cloud2db Amazon SimpleDB and Hadoop Hbase implementations soon. > > Thanks, > > Sandeep. > On Tue, Mar 30, 2010 at 11:03 AM, Guillermo Schwarz < > guillermo.schw...@gmail.com> wrote: > >> Andreas, >> >> I think there is more misunderstanding again. >> >> SQL can be run on top of a file system (fseek, read, write) or on top of a >> persistent hashmap (datastore). >> >> If you create a SQL interface on top of any of those, then it is a >> relational database, not a fake but a real relational database. Why would I >> want a relational database? Consistency, for starters. ACID transactions. >> Set operations. >> >> Read: >> 1. http://www.buzzle.com/articles/advantages-of-relational-databases.html >> 2. http://www.sunadal.co.uk/db.php >> 3. >> http://www.euclideanspace.com/software/information/relational/index.htm >> >> Working directly with aseembly code and bits may be what you prefer, but >> if history is correct, computer science is about building abstractions. Good >> abstractions. I agree that you can create the wrong tools for the job, but >> that doesn't stop other people to investigate and innovate to create better >> tools (better abstractions). >> >> BTW: You dont need to use JDBC directly when working with CloudDB or jiql. >> You can always select Hibernate, JDO or even JPA. The advantage of using an >> extra level of abstraction is that if later the DataStore changes or there >> is a new alternative to the DataStore that is faster (but has a new API) all >> you need to do is to reimplement SQL on top of it and voila: All your >> applications have been ported effortlessly. That's the whole point of using >> abstraction layers. >> >> Cheers, >> Guillermo. >> >> >> On Tue, Mar 30, 2010 at 10:49 AM, Andreas Borglin < >> andreas.borg...@gmail.com> wrote: >> >>> >>> Ok, you seem to misunderstand me quite a bit here. >>> >>> I never said it can't be used. I just said that I don't want to. >>> Other than for portability reasons, why would I want to pretend that >>> the datastore is relational by using a framework that emulates this? >>> >>> My main requirement, which was formed after using j...@gae, is that I >>> want to use a framework that has a natural mapping to the datastore. >>> >>> I'm not saying that there is anything wrong with JDO/JPA, cloud2db or >>> jiql in general. I'm just saying that, for me, it makes more sense to >>> use a framework that exposes the true nature of the datastore (which >>> is very different from a relational database), instead of hiding it >>> under a portable abstraction layer. Simplicity and performance is more >>> important than portability for me. That is of course not true for many >>> other projects, so I'm only speaking from my perspective. >>> >>> If you can argue that jiql (or any other multi-platform framework like >>> cloud2db, etc) can provide a natural mapping to the datastore AND be >>> as efficient as the low-level wrappers, I'm all ears. j...@gae didn't >>> do it for me at least. >>> >>> I never said that GWT had anything to do with SQL. I just don't want >>> to use JDBC. >>> >>> On Mar 30, 3:51 pm, Guillermo Schwarz <guillermo.schw...@gmail.com> >>> wrote: >>> > Andreas, >>> > >>> > I don't get it. You can use JDO and Hibernate with SQL. Given that >>> > jiql has a Hibernate config file, I guess using Hibernate with jiql >>> > would be so easy. >>> > >>> > What does GWT and JSP have to do with SQL anyway? >>> > >>> > Cheers, >>> > Guillermo. >>> > >>> > On 30 mar, 03:51, Andreas Borglin <andreas.borg...@gmail.com> wrote: >>> > >>> > >>> > >>> > > Hi again. >>> > >>> > > I had a look at jiql. >>> > > "jiql is a JDBC wrapper for accessing Google DataStore on Google App >>> > > Engine for JAVA. >>> > > jiql supports the use of standard SQL as a method for accessing >>> > > the DataStore" >>> > >>> > > Even if I had seen jiql earlier I wouldn't have considered it anyway >>> > > because, >>> > >>> > > 1. I want the API to make perfect sense for working with the >>> > > datastore. "Standard SQL" doesn't meet this requirement. >>> > > 2. I use GWT. Not JSP or any other technology to dynamically generate >>> > > pages on server side. >>> > >>> > > On Mar 29, 8:52 pm, Guillermo Schwarz <guillermo.schw...@gmail.com> >>> > > wrote: >>> > >>> > > > One question: Why didn't you consider jiql? >>> > >>> > > > On Mon, Mar 29, 2010 at 1:04 PM, Blake <blakecaldw...@gmail.com> >>> wrote: >>> > > > > +1 >>> > >>> > > > > On Mar 29, 4:03 am, Andreas Borglin <andreas.borg...@gmail.com> >>> wrote: >>> > > > > > Hi all. >>> > >>> > > > > > I recently decided to migrate away from JDO to one of the third >>> party >>> > > > > > datastore frameworks. At first I had only heard about >>> objectify, but >>> > > > > > after some further digging I found out about 5 other >>> frameworks as >>> > > > > > well (Twig, SimpleDS, siena, slim3, cloud2db). >>> > >>> > > > > > I was only interested in simple wrapper frameworks that acted >>> as a >>> > > > > > convenience layer above the AppEngine low-level API. I _want_ >>> the >>> > > > > > framework to expose the true nature of the datastore, but at >>> the same >>> > > > > > time relieve the developer of the tedious tasks that's involved >>> when >>> > > > > > working with the low-level API directly. It is much easier to >>> work >>> > > > > > with the AppEngine datastore when its concepts, features, >>> constraints >>> > > > > > and limitations are exposed directly. You can read more about >>> the >>> > > > > > reasons for this in the article. >>> > >>> > > > > > This left me with objectify, Twig and SimpleDS. (siena and >>> cloud2db >>> > > > > > are multi-platform and slim3 is more than just a datastore >>> framework) >>> > >>> > > > > > I spent some time researching these when I got the idea to >>> write an >>> > > > > > article about them. I contacted the authors for each framework >>> and >>> > > > > > asked if they would be interested in participating. Passionate >>> as they >>> > > > > > are, they agreed :-). Thanks to Jeff Schnitzer (objectify), >>> John >>> > > > > > Patterson (Twig) and Ignacio Coloma (SimpleDS) for this. >>> > >>> > > > > > The goal is to publish two articles; one interview with the >>> authors, >>> > > > > > and one where I solve some typical scenario with each >>> framework. >>> > > > > > The interview article has now been published and can be found >>> athttp:// >>> > > > > borglin.net/gwt-project/?page_id=604. >>> > > > > > The code example article will be posted sometime in the >>> upcoming two >>> > > > > > weeks. >>> > >>> > > > > -- >>> > > > > You received this message because you are subscribed to the >>> Google Groups >>> > > > > "Google App Engine for Java" group. >>> > > > > To post to this group, send email to >>> > > > > google-appengine-j...@googlegroups.com. >>> > > > > To unsubscribe from this group, send email to >>> > > > > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com><google-appengine-java%2B >>> unsubscr...@googlegroups.com> >>> > > > > . >>> > > > > For more options, visit this group at >>> > > > >http://groups.google.com/group/google-appengine-java?hl=en. >>> > >>> > > > -- >>> > > > Saludos cordiales, >>> > >>> > > > Guillermo Schwarz >>> > > > Sun Certified Enterprise Architect >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Google App Engine for Java" group. >>> To post to this group, send email to >>> google-appengine-j...@googlegroups.com. >>> To unsubscribe from this group, send email to >>> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/google-appengine-java?hl=en. >>> >>> >> >> >> -- >> Saludos cordiales, >> >> Guillermo Schwarz >> Sun Certified Enterprise Architect >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine for Java" group. >> To post to this group, send email to >> google-appengine-j...@googlegroups.com. >> To unsubscribe from this group, send email to >> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-appengine-java?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine for Java" group. > To post to this group, send email to > google-appengine-j...@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-j...@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.