Google should want to provide messaging in App Engine

153 views
Skip to first unread message

Ray M

unread,
May 10, 2011, 3:05:11 PM5/10/11
to google-a...@googlegroups.com
As an analyst with 20 years of object-oriented experience, 10 in web and Java technologies, who has worked exclusively with Fortune 200 companies for the last 13 years, I must implore Google to reconsider providing messaging to their App Engine customers.  I think Google is the greatest thing to happen to businesses since the 7-layer OSI networking model, but in recent months I've discouraged clients from moving to App Engine because most of their enterprise business logic is triggered by JMS messaging, even from the web interface.  It allows seamless integration with automated and manual workflows, such as "People A,B and C want to be notified when X happens and don't trigger Y until B approves" and the like.

I implore the community of App Engine users, developers and customers to assist me in presenting an undeniable business case to Google.  As such, I have begun with points from my own experience and analysis:
  1. Because of its power and flexibility, messaging has become a critical component of automated inter-business communication.  App Engine cannot compete fully in the business hosting sector without a messaging mechanism; and Google has the opportunity to create an implementation which makes all others obsolete.
  2. Messaging implementations like JMS already inter-operate seamlessly with other languages.  There is no reason Google must implement the server portion in Java or any particular language, and once implemented, can easily be made available to all App Engine hosting environments.
  3. Most message-triggered business-logic need no response or just an ACKNOWLEDGE response, saving processing and bandwidth.
  4. Multiple-destination deliveries can use UDP, saving bandwidth.
  5. It will be a no-brainer for messaging to respect and contribute to engine quotas.
  6. Message-processing listeners can be instantiated on demand, shuffled-around, load-balanced, cached and discarded just like servlets and can be included in the web app, or more efficiently deployed, operated and managed in its own name-based mass virtual-hosting environment with far less overhead than an entire servlet engine.
  7. The world expects HTTP and HTTPS to be on ports 80 and 443, respectively, but not so for messaging!  The implementation can provide a factory for client connections allowing Google to more effectively manage ports on the servers which act as entry points and frees Google from being able to use only DNS-based load balancing mechanisms on its entry-point servers.
  8. Google, which is already quite adept at hosting, indexing and providing analytics for the world's standardized representations of information, will be in a stronger position to host, index and provide analytics for the world's disparate mechanisms of communication as well, or even to unify them.
and, lastly, you have an intelligent and eager volunteer ready to sign a confidentiality statement and help Google's App Engine offerings to make all others obsolete!

Brandon Wirtz

unread,
May 10, 2011, 3:30:49 PM5/10/11
to google-a...@googlegroups.com

Huh?

 

In the same place I have error logging, I can have “Fetch URL” and send my self an SMS, or an email, or a fax, probably if I found the service a Carrier pigeon.  Did my traffic fall off because someone else died? I can ask every 10 seconds “how many instances am I running?” and again fetch something from anywhere to send the message I need to the outside world. 

If all of Google went up in a pile of smoke… Then I might need something to check that I’m still running… and that would have to be external to GAE.

 

Your long winded message basically says, I’ve been doing this for 20 years I’m an old fogey looking for a reason to be relevant, and the only fault I can find is that if something happens I want messaging.  It’s there enable it/build it/grow a pair.

 

GAE is a platform you can do anything in the platform the platform has the bits to do.  You can’t build it to send you pictures of the blinky lights on the front of the server because it doesn’t have a web cam, but short of that, anything digital, you just talk bits over the web to what you need to make the functionality happen. 

 

I want GAE to focus on Speed, and Reliability (and price [today more than ever :-)] )  not worry about is there JMS.  You can bolt that on with the parts that are there.  You’re being a troll, or an attention seeker, or a combination there of.

 

I need more APIs like I need a third rectum.  And the APIs I do need are related to the things people “expect” from python and java… Which Google now calls “Backend” which they just announced TADA!!! They did the right thing.  Not what the Analyst said to do, because it would seem he doesn’t have experience with the platform.  You are a Prius driver complaining that the Ferrari doesn’t have a Continuous Variable Transmission, and that the Ford F350 doesn’t have remote trunk unlock on the key fob.

--
You received this message because you are subscribed to the Google Groups "Google App Engine" group.
To post to this group, send email to google-a...@googlegroups.com.
To unsubscribe from this group, send email to google-appengi...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.

Calvin

unread,
May 10, 2011, 3:43:00 PM5/10/11
to google-a...@googlegroups.com
I think Brandon is just i a bad mood because he didn't get a free Samsung tablet, like everyone who got to go to Google I/O.

Brandon Wirtz

unread,
May 10, 2011, 4:05:05 PM5/10/11
to google-a...@googlegroups.com

I’m grumpy cause 6 “analysts” have called today to get my take on their doomsday predictions of Appengine. 

 

“Do you think Google will fail because they can’t run windows or linux software on Appengine?”

“Is it true that AppEngine can’t save anything bigger than would fit on a floppy disk?”

“If you build on GAE and decide to insource is it true you have to start over?”

“So GAE runs Java does that mean Sun will sue them like they did over Android?”

“GAE won’t run wordpress, with that being the most installed web software on the planet how will Google Gain Market share”

“GAE is only shooting for 99.95%  uptime if clients need 5 9s of reliability how will they use GAE?”

 

The other analyst at least had the decency to pony up the $300 an hour for a 30 minute phone call… This one just reached out over email on a list he has never posted to before.

 

 

Yeah, I would have liked to be at IO, but we were launching our service the same day we found out we were going to go broke offering it…. And BlogWorld Expo is coming up… and I moved to this rainy place rather than being in the bay… besides I’d rather come down and take the Guys to lunch rather than have to share them with 5000 attendees…

 

The Samsung tab would be nice, I need a digital picture frame…

--

Darien Caldwell

unread,
May 10, 2011, 4:54:04 PM5/10/11
to Google App Engine
Well, Brandon happens to be right. You can add any kind of messaging
to GAE you want. Or anything else, for that matter. And GAE already
does support XMPP, which is a messaging system, and a very widely
adopted and robust, and open one at that. Basically the OP doesn't
want to get with the times and doesn't want to do any work. Make a JMS
system for GAE. Someone with your credentials should be able to do
that, right?

nickmilon

unread,
May 10, 2011, 8:16:46 PM5/10/11
to Google App Engine
+1 for best sentence by Brandon so far ....

"You are a Prius driver complaining that the
Ferrari doesn't have a Continuous Variable Transmission, and that the
Ford
F350 doesn't have remote trunk unlock on the key fob."


On May 10, 11:54 pm, Darien Caldwell <darien.caldw...@gmail.com>
wrote:

rpmfl72

unread,
May 10, 2011, 9:44:56 PM5/10/11
to google-a...@googlegroups.com
Brandon, I believe you may be the inspiration for Mark Twain's quote that "it is better to keep your mouth shut and appear stupid than to open it and remove all doubt."
You are showing your ignorance of both the AppEngine APIs and of efficient enterprise system design practices.  True, messaging, and JMS in particular, although my focus was not to attempt to push JMS on Google as you allege, can be tunneled through HTTP for a single request / response, but I'm talking about true publish / subscribe capabilities; and no, it cannot be implemented or I would have done it.  The App Engine does not allow hosted applications to listen on a port and with good reason.  Maybe when you get to that class on security you might understand why.

And, yes, its true that I was writing software decades before you were born on systems you have never heard of, such as the Burroughs B27 Unisys line, but my diverse experience has actually made me better.  I know you're just reacting to the fact that most of the concepts in my posting are above you head, but stay in school and you'll be ok.  You might also learn why the Ferrari cannot have a continuous variable transmission at this time, although my F350 does have a remote trunk unlock because it is an Excursion which was built on the F350 frame!

Brandon Wirtz

unread,
May 10, 2011, 10:11:30 PM5/10/11
to google-a...@googlegroups.com

I’d guess you failed to Google me or visit my page on Wikipedia before you responded.

 

I’m going to cease commenting on this thread before it gets too far off topic.

 

-Brandon

Analyst Standard & Poor’s
SMPTE Voting Member

IBM S/36 Certified Solution Expert

SCDJWS

MCSE

CCSP

CCNP

Microsoft Alumni

First Person in Ohio to be charged with hacking under the DMCA

 

 

 

From: google-a...@googlegroups.com [mailto:google-a...@googlegroups.com] On Behalf Of rpmfl72


Sent: Tuesday, May 10, 2011 6:45 PM
To: google-a...@googlegroups.com

--

Brandon Wirtz

unread,
May 10, 2011, 10:55:41 PM5/10/11
to google-a...@googlegroups.com

I lied. 

 

Using the Java Task Queuing Service API and Camel I was able to set up JMS via ActiveMQ while on a conference call.  It’s about 20 minutes worth of work, and the hardest part is that several of the links to the project bits you need to set it up are broken so you have to google some of the code snips from the documentation, that and I suck at G-Auth.

Jim Mittler

unread,
Jul 12, 2011, 8:54:25 AM7/12/11
to google-a...@googlegroups.com
Hi Brandon,

I'm curious to understand what you are describing here. Making an external JMS call from within GAE seems straightforward, but are you talking about embedding ActiveMQ within GAE instead?

Jim

Nick Johnson (Google)

unread,
Jul 14, 2011, 2:51:03 AM7/14/11
to google-a...@googlegroups.com
We also recently released support for the Prospective Search API, which provides support for the criteria-matching and notification use-cases of Ray's original post.

-Nick Johnson
Nick Johnson, Developer Programs Engineer, App Engine


Tim Hoffman

unread,
Jul 14, 2011, 11:27:39 AM7/14/11
to google-a...@googlegroups.com
Hi

I am curious about your use of the term JMS as it relates to messaging in your posting. JMS is purely an API definition and doesn't guarantee service interoperability between different JMS  systems, whereas as messaging wire protocols such as AMQP or XMPP do provide levels of interoperability.  A number of JMS providers can/may use AMQP or XMPP,  JMS over SOAP transport to provide broader interoperability.  

It seems you are advocating appengine (java based) adopt JMS api for messaging as well as build an underlying messaging system. Adopting JMS would seem at odds with the the general thrust of appengine. Both in terms of other language support (Python doesn't have JMS.  Python can interoperate with various messaging systems using other interfaces based on things like XMPP, AMQP, STOMP etc)  If google did such a thing I would imagine JMS api would be a veneer above an XMPP/REST/PROTO-RPC based implementation.

Certainly appengine apps can participate with existing messaging systems today (as Brandon has demonstrated)   and as documented on the Apache ActiveMQ site.  "ActiveMQ provides a bidirectional bridge between ActiveMQ messages and XMPP. if a client joins a chatroom / conference room, the name of the conference room is mapped to a JMS topic of the same name"

I have a sneaking suspicion what your really want is a Message Routing Framework like Camel. Because everything else you have asked for is sitting there in appengine land. XMPP has pretty much moved into the Messaging/MOM/EAI/ESB realm to some degree.

One last point, in my opinion trying to move away from HTTP as a core low level transport is probably a mistake.  Have a read of this  article  http://spring-java-ee.posterous.com/remote-observer-pattern-with-publish-subcribe  as a good counterpoint to what you are thinking about.


Regards

Tim Hoffman 

Reply all
Reply to author
Forward
0 new messages