http://java.sun.com/javaone http://java.sun.com/javaone http://java.sun.com/javaone
JavaOne - Experiencing Java technology through education, industry, and community
  2009 Platinum Cosponsor
Intel
  Cosponsors
Cosponsors
  Gen Session Cosponsors
General Session Cosponsors
  Media Sponsors
Media Cosponsors
Home > Zembly: An Extensible Development Environment in the Cloud, for the Cloud

Zembly: An Extensible Development Environment in the Cloud, for the Cloud


Sun's Todd Fast and Jiri Kopsa, held a session, Introducing Zembly: An Extensible Development Environment in the Cloud, for the Cloud (TS-5428) to present zembly, a browser-based development environment that enables social programming of applications for the web and social platforms, as well as web widgets. Users of zembly interact via zembly's social networking features to engage in co-development of applications for these platforms. Fast began by plugging a book he co-authored with Gail and Paul Anderson, who were present, and Chris Webster, titled Assemble the Social Web With zembly. After the session, the authors held a book signing.

Zembly was created at Sun in 2006 by Fast with co-founder Kopsa, guided by the motto, "Build the Web using the Web" under the project name, "Web on Web." The project formed a developer team in March 2007 and entered open beta in January 2009. Fast explained that he comes from a service-oriented architecture (SOA) background with a focus on creating ways to break functions into reasonable services.

In creating zembly, Fast and Kopsa addressed a number of questions: How do you write and host an application that scales massively? How do you write an application quickly? Collaboratively? How do you write an application if you're not a professional? How can application development be faster, easier, cheaper, and of higher quality? How do you write applications for the cloud? Zembly addresses all of these challenges.

The session first provided a brief introduction to cloud computing and to the "*aaS stack," which they divided into four components:

  • SaaS: Software delivered as a service
  • DaaS: Development as a Service -- a hosted development platform
  • PaaS: Platform as a Service -- hosted application runtimes plus middleware services
  • IaaS: Infrastructure as a Service -- Hosted compute and blob storage

"Cloud applications," explained Fast, "depend on a varying level of abstraction in relation to the person interacting and building the application. I think of the cloud in terms of a spectrum with the lowest level of abstraction at the bottom and the highest at the top. At the bottom might be a shell prompt where you allocate an Amazon EC2 instance. One step up you have administrator accounts like Microsoft Azure. Up from there you have a virtual machine, and an application container, like GlassFish. Then going up a notch, we have application frameworks like Ruby on Rails. Then at the highest level of abstraction we have content-managed applications or application code repositories like zembly."

Fast pointed out that zembly developers are free from concern about details like load balancing that are found at lower levels of abstraction. "You are worried about writing your application logic and that's about it," said Fast.

Zembly is:

  • A WOA-based (web-oriented architecture) application development model
  • A browser-based, social IDE
  • A REST service integration platform
  • A massively scalable application hosting cloud

Zembly differs from IDEs such as Eclipse and NetBeans in that it focuses on small pieces of code and not on managing projects and files and descriptors. As a REST service mashup platform, zembly makes it very easy to call virtually any web API with one line of code.

As a massively scalable application hosting cloud, the applications that are built on zembly are hosted there. "It's seamless to the developer," said Fast. "You press the publish button and the application is out there and can be used. Other people on zembly in that social development environment can make use of those services if you allow it."

The Zembly Application Model

The application model is built into three familiar parts. On the front end, presentation-layer zembly has widgets and web pages written in HTML, CSS, and JavaScript with different frameworks. The goal is to present a user interface.

The middle-tier application logic focuses on data services, relying on JavaScript on the zembly server. Additional languages are in the pipeline, including much-requested PHP with the goal of performing server-side application logic.

Additional back-end functionality comes from external web APIs using any language accessed via HTTP, such as Twitter or Google APIs, with the purpose of extending application functionality, integrating existing application database logic, and engaging in "heavy lifting" processing. Zembly makes such access easy.

The Zembly Architecture

Understood in terms of *aaS stacks, zembly is:

  • Development as a Service (DaaS) with a hosted IDE and developer platform
  • Platform as a Service (PaaS) with web APIs and multi-tenant runtime

In addition, zembly is a browser-based IDE with:

  • "Real" editor (also Mozilla Bespin)
  • Full syntax highlighting, code completion, etc.

Zembly offers social programming with:

  • Social networking for application developers
  • Cloning, with community provided templates
  • Call developers' services via "code name"

Zembly also provides BYOAPI (Bring Your Own API) with WADL (Web Application Description Language). APIs are a collection of services that have been defined in a WADL document and with zembly-specific extensions. WADL is designed to provide a machine process-able description of HTTP-based web applications. With one click developers can host an application on the cloud.

For application content management, there is a structured registry/repository of application artifacts and metadata with integrated versioning, role-based entitlement, collaboration, metadata, extensible language support, hot lists, and search functionality.

The application hosting runtime provides a high-performance application execution environment that is:

  • Multi-tenanted at the application level
  • Has a high-performance execution path
  • Has shardability
  • Has abuse detection and recovery
  • Extensible language support
  • Application execution logging
  • Analytics
  • Metering

Finally, the web API gateway provides a registry of formal API descriptions furnished by the community with client applications use as a proxy for consistency, reliability, and security. It has:

  • An API keychain
  • OAuth authentication
  • Client language bindings: Java/JavaFX/JavaScript/Python
  • Real-world authentication support
  • TLS support
  • Public/Private entitlement

Applications built in zembly are automatically hosted at zembly with:

  • A multi-tenant application hosting platform
  • Zembly application architecture designed to scale
  • Sun hardware/software

Zembly:

  • Nominally supports 10+ million daily active users with a 10-second rule for server-side execution, plus billing and metering
  • Is free during beta
  • After beta: Fees will be based on cloud utilization in seconds
The Zembly Client Library (ZCL)

Zembly offers an open-source client library for using the web API gateway in any application that includes:

  • zembly JavaScript
  • Java
  • JavaFX
  • Python
  • Ruby
  • Integrated OAuth support
Demos

The session mainly consisted of demos. In, one Kopsa and Fast showed both the ease and speed with which an application interface could be created at zembly, posted through both Twitter and Facebook, and accessed by attendees with laptops who were able to respond to a question about whether or not they liked the session. Fifteen responded yes; four said no.

In another demo, Fast cloned a widget that automated a call to a Facebook account and inquired, "how are you feeling today?"

The session left little doubt that web applications are being built with increasing ease, freeing up developer resources for greater creativity and ingenuity and experimental content.

For More Information

» Zembly.com
» Zembly Client Library
» Todd Fast's Blog

 

Do you have comments about this article? We welcome your participation in our community. Please keep your comments civil and on point. You may optionally provide your email address to be notified of replies - your information is not used for any other purpose. By submitting a comment, you agree to these Terms of Use.