2. Agenda
● Need for Scaling Applications
● Cloud Environment
● RESTful Web Services
3. Need to scale and more...
● At AppliGate we had the need for easy to
build, to scale, and to maintain applications
for the web
○ And... no adminstration burden
● In the past:
○ Lotus Domino, then
○ Servlets + JSPs on Google App Engine
● Nowadays:
○ RESTful Web API applications
○ Restlet framework + Java Data Objects (JDO)
datastore on Google App Engine
○ JSON centric, Lotus Domino like but more
4. The Cloud
Google App Engine (GAE) is a platform as a
service (PaaS) cloud computing platform for
developing and hosting web applications in
Google-managed data centers.
● Scales as trafic and data storage grows
● Up to 10 applications free
○ Quotas are resetted daily
● Fees for additional storage, bandwidth, or
instance hours
○ 99,95% SLA
5. GAE Java Runtime Environment
● Java servlet standard
● Sandboxed
● Storing data
○ Java Data Objects and Java Persistence API
● Blobstore
● Memcache
● CRON jobs
● Google's Accounts authentication
● Java Mail API
● Full text search (experimental)
6. RESTful Web Services
● Desertion Roy Fielding
○ Representational State Transfer (REST)
■ architectural principle of the world wide web
○ Easier to use than SOAP
● RESTful Web applications
○ Use HTTP methods to create, update, read, and
delete resources
○ Called RESTful Web Services or RESTful Web API
● Stateless, and so very scalable
7. Example RESTful Web Service
● event-scheduler.appspot.com
○ Application for recording event descriptions and
scheduled events
● Open Web API
● REST principles using Restlet Framework
○ GET, POST, PUT, DELETE HTTP methods
● JSON based representations
● Multiple accounts
● HTTPS
● Documentation
○ http://event-scheduler.appspot.com/documentation.html
8. Another Example
● AppliGate's web site is based on the Restlet
framework
○ Supports all web features with REST
○ Java based
○ HTML and JSON (internal) representations
○ Multilingual: Dutch and English
○ Supports iPhone, Anroid and Blackberry
○ Runs on Google App Engine
● Uses event-scheduler.appspot.com for the
actual course schedule
● JSON centric approach
9. JSON Centric Approach
● Like Domino, but deeper nested structures
● Create and update with a REST client
● Field labels can be included (multilingual)
10. Need help?
● AppliGate assists to build RESTful Web API
applications running on Google App Engine
● JSON centric
● Proof of concept
● Workshop
● rbontekoe@appligate.nl
● http://www.appligate.nl