Google Application Engine
Today will be about fairness.
looks promising cloud Google -
GAME generally looks great. Free (up to certain limits), we get a platform that is able to carry one thousand transactions per second and store terabytes of data for us in
nonrelational based BigTable . For this access to many Google services such as security, storage of images, download content pages through ichni cache, memcache etc.
powerful
we can program in Python or Java (the truncated version,
excluding standard classes and the prohibition to use certain libraries).
general assumption is: Developers (and consultants;), in most can not configure a scalable environments or write scalable applications, which is why We provide them with a platform that will address this problem in a manner transparent. So we have the opposite approach to Java EE. Take the issue of business and the cloud will be scaling. The direction seems to be right.
So we start playing ...
On a good day short of the official presentation of the main page as it is good and quickly slaps the applications and fires them into space:
http://www.youtube.com/watch?v=P3GT4-m_6RQ must admit that the plugin Eclipse is a model: a simple use (3 suggestive buttons), works
and provides everything
- local server emulation cloud and its resources (database)
- a tool that automatically "enriching" bytecode for the classes of entities ichniej "implementation" JPA
- a utility that discharge application in
space - a simple wizard that generates all the spaceport
(do not dare zmawenizować generated project, because it is usually a week in the back and in the end it may be that we lose hotdeploy)
WTF? But, but ... the film gets going with time ... One
of the largest software companies on the ground shows how to write code in. .. Java Server Pages. Look closely and learn: the logic and data access w. .. scriptletach (sic).
course, big boys know that they are scriptlety depricated. A knife, fork the scene saw a little child, and will later be programmed so as he grows up?? Then again, we read in the newspaper about the tragedy that took place in a peaceful project. Where were the parents? "?
Hmmm strange, strange ... no but does not cling to the details, it's just such an example. But we can always design the elegant and the whole base layer with a proven framework.
LIMITATIONS OF SEVERED Unfortunately, as mentioned at the beginning of the JVM is no limit, and not everything works. Seam
Although you can start after 15 speszyl hooks, but they all say that it is not worth the risk. Fortunately, good old
Spring is officially operating. Many brave bloggers publish hello worldy and tutorials how to put together. It appears that one copy from each other;)
Ba, even 2 books GAME prefer Spring and show how to configure it. Hmmm I wonder why only servlecik discuss Spring MVC and diplomatically not address the more advanced zagdanień ...?
Unfortunately, however, does not work to the end! example, when we use the technique of interlacing Aspektowych and run time, we have strange errors ClassNotFound. Locally, work, and the cloud is not. What
implies that we can forget about aspectual, elegant service and transaction security.
So why do we need Spring? Only the injection? It makes no sense.
NOTE ON persistence matter, you can live without the Spring, let us more ... Non-relational database BigTable was covered by Google's interface
JDO or JPA
(optional) so we feel like at home.
Not exactly ... specification has a number of limitations imposed by the solution architecture BigTable - terms of scattering data structures on different machines on the side of the clouds.
Fine szczególik only mentioned in the documentation is such that aggregates of entities are grouped into families . For example, if we have the entity Order, which has the list of ZamówionychProduktów it's family. What does this mean?
Entity can only belong to one family. implication: If we have a contract and invoice entities and entity Kleint, which must be connected to the Orders and Invoices is unfortunately not possible. Your child may have one parent. Of course you can get around this in the Order and the Invoice object to use keys to the customer. But then we lose the ease of programming and dependence on the Cloud API.
Please note that the approach to data modeling in nonrelational database requires a different "attitude" - that the nature of the solution. If nierelacyjnie can object? But not quite - well, how? Personally
I prefer this approach, the Order or Invoice is indeed the key to the customer but also niepersystentne Customer field, which is set in it a separate question (this is not a big expense in BigTable database, which is really a multidimensional HashMap). These types of details can encapsulate the objects
Repository that return data "folded" so that was convenient. OK, one problem solved.
transaction may involve only operations on a single family. Thus, if the application logic family wants to save both the order and invoice to be are two separate transactions. And what if in the meantime, something unpleasant will happen? Hand carving and cleaning:)
Besides, as I mentioned, Spring AOP transactions do not work, so ink stains code of business transactions within the JPA API.
Datanucleus - "Implementation" JPA Besides the fact that it is truncated also contains several errors - do not work, even in some simple examples of the tutorials JPA. The official group is hanging a lot of questions - no answers.
NAIL Presentation The presentation frameworks tested the JSF.
1.2 (with Seam) works.
2.0 works after applying one simple speszyl hook.
works in the sense that it starts up. In 2.0 there are some problems with the injection ManagedBeanów. RichFaces or ICEfaces does not have a version for the clouds. Officially PrimeFaces partially working. Again, this is not reliable and information - AJAX in general is falling apart.
And you can forget about running the methods with a parameter with the new engine expressions (el-api in version 2.2). Cloud refuses to cooperate with the new achievements.
//==============================
Given the above limitations:
- lack of a convenient framework (including support for AOP)
- poor ORM functionality requiring many manual operations
- mental model of programming prior to about 10 years
We have a significant drop in productivity.
guess where these JSP scriptlety and static methods in a promotional film? Could only make this work?
Too bad the blogosphere community and stops at the Hello World and does not verify a bit more thoroughly and reliably.
Finally I must add that very different assumptions in the construction of a cloud received
Amazon. We get hardware and operating system. Nobody does not impose additional entities we built the hardware and does not come to us from our shoes in the years developed and tested a model of programming. And most importantly - it works:)