Вы находитесь на странице: 1из 7

JBoss Application Server Overview

Community Project

JBoss Application Server* is the world's lead-


ing Open Source Java EE application server for
developing and deploying enterprise applica-
tions. The latest in this line, JBoss AS 7 (Java EE
Web Profile certified), provides the same devel-
oper friendly environment as previous versions
JBoss Application Server 7 while offering revolutionary new management
capabilities, and much more.
Blazing fast startup (~3seconds)
Services are started concurrently to eliminate unnecessary waits and leverage multi-core processors, while non-critical
services remain passivated until first use. JBoss AS 7 offers a 10-fold reduction in startup time over previous versions.

Lightweight
An aggressive approach to memory management and metadata indexing keeps the footprint exceptionally small,
enabling it to run with stock JVM settings and on small devices. Profiles can be used to tune the capabilities of
the server.

Modular core
JBoss Modules offers true application isolation, hiding server implementation classes and only loads the classes your
application needs. Class loading is concurrent for extreme performance. OSGi support is available the moment you
install the application server.

Hot, incremental deployment


Quick turnaround during development as a result of fast, concurrent deployment and the ability to edit static resources
without redeployment in a flexible deployment structure.

Elegant administration
Consistent and powerful management is available, ranging from a polished, user-friendly web console to Java and
HTTP APIs to a command line tool to direct XML edits. Configuration data is centralized and user-focused.

Domain (multi-server) management


One controller can rule them all or you can simply start a standalone server. Port offsets can be changed with a single
switch. Rolling deployments are available

First class components


JBoss AS builds on many best of breed standalone OSS projects: Hibernate, JBoss Transactions, Infinispan, Iron
Jacamar, RESTEasy, Weld, HornetQ, JGroups, JBoss Logging, Mojarra, Apache CXF, and more.

Java EE 6 programming model


Java EE 6 offers a modern, loosely coupled programming model, founded on CDI, a specification driven by JBoss.
With Java EE 6 you can focus on implementing your business logic, and allow the platform to take care of the rest.

Testable by design
Arquillian offers absolute fidelity for testing: the ability to test your application inside the actual environment. Just like
CDI, Arquillian takes care of all the boilerplate in the background, removing clutter from your tests.

Scan this and find out


more about the JBoss Application Server project.
http://www.jboss.org/jbossas

* JBoss Application Server is in the upstream for JBoss Enterprise Application Platform.
brought to you by...

#150
Get More Refcardz! Visit refcardz.com

CONTENTS INCLUDE:
n

n 

n
About the Platform
Common Annotations For Java
Java Platform, Enterprise Edition
Java Enterprise Edition 6
Java Servelet 3.0
The Most Elegant Enterprise Java Yet
n

n
JavaServer Faces 2.0
n
Enterprise JavaBeans 3.1 By Andrew Lee Rubinger

ABOUT THE PLATFORM COMMON ANNOTATIONS FOR THE JAVA PLATFORM

Enterprise software development is inherently complex, and multi-user JSR-250


systems open the door to concerns such as transactional integrity, security, he common annotations for Java EE are a shared package used throughout
persistence integration, and interaction between components. Very simply the platform specifications that generally focus on shared services like
put, the mission of the Java Enterprise Edition is to enable an out-of-the-box lifecycle, injection, and security.
set of configurable services that allows the programmer to write less and focus
on delivering clean business logic.
Class Name Description
To this end, Java EE 6 is an aggregate of many interoperable technologies
designed to deliver a unified experience. Application Servers that are Generated Marks generated code
certified to the standards defined by the Java Community Process are
intended to service applications written to the specifications within the ManagedBean Defines a class as a Java EE 6 Managed Bean
platform.

For the sake of brevity, this reference card will focus on the key APIs of Java EE PostConstruct Lifecycle callback after an instance has been created but
6 that are most relevant to modern development. before it is put into service
PreDestroy Lifecycle callback before an instance is to be removed from
service

JAVA PLATFORM, ENTERPRISE EDITION 6 (JAVA EE 6) Resource Defines an injection point, marks that this is to be provided by
the container

JSR-316 Resources Allows for injection of N resources


This umbrella specification ties together the various subsystems that comprise
the platform and provides additional integration support.
DeclareRoles Class-level target defining valid security roles
Profiles
New to Java EE 6 is the notion of the “Web Profile”, a subset of the full DenyAll Marks that no roles are allowed to access this method
specification that is targeted to cater to more specialized and minimal web-
based application requirements. It is guaranteed to support the platform PermitAll Marks that all roles are allowed to access this method (or all
common annotations for injection and lifecycle (JSR-250), JNDI Naming methods if applied to a class)
standards, and the Java Transaction API. Additionally, the Web Profile
focuses on Servlet and closely related technologies such as persistence, view RolesAllowed Specifies list of roles permitted to access this method (or all
presentation (JavaServer Faces and JavaServer Pages), and the business logic methods if applied to a class)
elements of EJB Lite.
RunAs Defines the identity context when run in the container
Code Example
The simple class below is all it takes in Java EE 6 to define a POJO-based
managed component capable of lifecycle callbacks, interceptors, and
resource injection.

/**
* Interceptor logging that an invocation has been received
*/
public class LoggingInterceptor {

@AroundInvoke
Java Enterprise Edition 6

public Object intercept(InvocationContext context) throws Exception {


System.out.println(“Been intercepted: “ + context);
return context.proceed();
}
}

/**
* Defines a simple managed bean able to receive an injection
*/
@ManagedBean
@Interceptors({LoggingInterceptor.class}) // Invocations will be
// intercepted
public class ComponentResourceInjection {

@Resource
private UserTransaction userTransaction;

// ... business methods will be intercepted


// by LoggingInterceptor

Reference
The full JavaDoc for the Java EE 6 API is located at:
http://download.oracle.com/javaee/6/api/

DZone, Inc. | www.dzone.com


2 Java Enterprise Edition 6

JAVA SERVLET 3.0 JAVA API FOR RESTFUL WEB SERVICES (JAX-RS)

JSR-315 JSR-311
Servlet technology models the request/response programming model and New to Java EE, the JAX-RS specification allows for standard development
is commonly used to extend HTTP servers to tie into server-side business adhering to the Representational State Transfer (REST) paradigm. These
logic. In Servlet 3.0, the specification has been expanded to include applications are packaged as a Servlet inside a web application archive.
support for annotations, asynchronous processing, pluggability, and
general ease-of-configuration.
/**
Code Example * JAXB Model of a Name
*/
Because Servlet 3.0 includes annotations to define servlets, the descriptor @XmlRootElement
web.xml is no longer required in most of the common cases; below is an public class Name {

example of all that’s needed to create a simple servlet. private String name;

public Name(String name) {


this.name = name;
/** }
* Simple Servlet which welcomes the user by name specified public Name() {}
* by the request parameter “name”.
*/ public String getName() {return this.name;}
@WebServlet(urlPatterns =
{“/welcome”}) // Will service requests to the path “/welcome” public void setName(String name) {
public class WelcomeServlet extends HttpServlet this.name = name;
{ }
/** }
* Inject a reference to an EJB
*/ /**
@EJB * Services requests for the path “/name”
private WelcomeBean bean; * returning the JAXB-formed Name XML
*/
/** @Path(“/name”)
* Service HTTP GET Requests @Produces({“application/xml”})
*/ public class NamedResource extends javax.ws.rs.core.Application {
@Override @GET
protected void doGet(final HttpServletRequest request, final HttpServletResponse public Name get(@QueryParam(“name”) String name) {
response) throws ServletException, return new Name(name);
IOException }
{ }
// Get the name from the request
final String name = request.getParameter(“name”);

// Precondition checks
...and HTTP GET requests to “{baseUrl}/myapp/name?name=andrew” will
if (name == null) return the XML form for the Name.
{
response.sendError(HttpServletResponse.SC_BAD_REQUEST, “Request
parameter \”name\” is required”); Public API Annotation Selection from javax.ws.rs:
}
Class Name Description
// Set content type
response.setContentType(“text/plain”);
Consumes Defines the media types that may be accepted
// Get the welcome message
final String welcomeMessage = bean.welcome(name);
CookieParam Injects the value of an HTTP cookie to a method param
// Write out or bean/class field
response.getWriter().write(welcomeMessage);
}
DefaultValue Defines default values for cookies and other parameters
}

DELETE Flags that a method is to service HTTP DELETE requests


Public API from javax.servlet.annotation:
Class Name Description Encoded Disables automatic decoding of parameter values
HttpConstraint Defines security constraints for all HTTP-servicing meth-
ods in a secured servlet FormParam Injects the value of a form parameter to a resource method
parameter
HttpMethodCon- Defines security constraints for an HTTP-servicing
straint method in a servlet GET Flags that a method is to service HTTP GET requests

MultipartConfig Indicates the servlet is to service requests for multipart/ HEAD Flags that a method is to service HTTP HEAD requests
form-data MIME type

ServletSecurity Secures a servlet class for HTTP-servicing methods HeaderParam Injects the value of a header parameter

HttpMethod Draws an association between an HTTP method with an an-


WebFilter Defines a class as a servlet filter notation

WebInitParam Specificies an initialization parameter on a servlet or filter MatrixParam Injects the value of a URI matrix parameter

WebListener Defines a class as a web listener Path Designates the URI path that a resource class or resource
method will serve

WebServlet Defines a class as a servlet


PathParam Injects the value of a URI path parameter

PermitAll Marks that all roles are allowed to access this method (or all
method if applied to a class) POST Flags that a method is to service HTTP POST requests

RolesAllowed Specifies list of roles permitted to access this method (or all Produces Signals the media type(s) to be served by this resource
methods if applied to a class)
PUT Flags that a method is to service HTTP PUT requests
RunAs Defines the identity context when run in the container
QueryParam Injects the value of a query parameter

DZone, Inc. | www.dzone.com


3 Java Enterprise Edition 6

javax.enterprise.inject.Stereotype Specifies that an annotation is a


CONTEXTS AND DEPENDENCY INJECTION FOR JAVA stereotype

javax.enterprise.inject.Typed Restricts the types of a bean

JSR-299
The Java Contexts and Dependency Injection (CDI) specification Relevent Public Annotation API from JSR-330,
introduces a standard set of application component management services Dependency Injection for Java in package javax.inject:
to the Java EE platform. CDI manages the lifecycle and interactions Class Name Description
of stateful components bound to well defined contexts. CDI provides
typesafe dependency injection between components. CDI also provides Inject Identifies injectable constructors, methods, and fields
interceptors and decorators to extend the behavior of components, Named String-based qualifier
an event model for loosely coupled components and an SPI allowing
portable extensions to integrate cleanly with the Java EE environment.
Qualifier Identifies qualifier annotations
Additionally, CDI provides for easy integration with view layers such as
JavaServer Faces 2.0 (JSR-314). Scope Identifies scope annotations

Singleton Identifies a type that the injector only instantiates once


Code Example
Below is a simple example of a CDI Bean that is placed in scope alongside
the HTTP session, given a String-based name binding (such that it may be For a deeper dive into CDI, check out DZone’s CDI Refcard: http://
used in JSF view components, for example) and injects the FacesContext refcardz.dzone.com/refcardz/contexts-and-depencency
such that it may be used in business methods.

BEAN VALIDATION 1.0


@SessionScoped // Bind to the web session
@Named // To be used in view components by name
public class GreeterBean implements Serializable {
JSR-303
@Inject // Used to integrate w/ JSF
private FacesContext context;
New to Java EE 6, the Bean Validation Specification provides for unified
declaration of validation constraints upon bean data. It may be used to
public GreeterBean() {} maintain the integrity of an object at all levels of an application: from user
// ... business methods form input in the presentation tier all the way to the persistence layer.
}
Code Example
Here is an example of how to apply Bean Validation constraints in a
Class Name Description declarative fashion to ensure the integrity of a User object.

javax.decorator.Decorator Declares the class as a Decorator public class User {


@NotNull
@Size(min=1, max=15)
javax.decorator.Delegate Specifies the injection point of a private String firstname;
Decorator
@NotNull
@Size(min=1, max=30)
private String lastname;
javax.enterprise.context.ApplicationScoped Specifies the bean has applica-
tion scope @Pattern(regexp=”\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b”)
public String email;

}
javax.enterprise.context.ConversationScoped Specifies the bean has conversation
scope

Public Annotation API for javax.validation


javax.enterprise.context.Dependent Specifies the bean belongs to
dependent pseudo-scope Class Name Description
Constraint Link between a constraint annotation and its constraint
javax.enterprise.context.NormalScope Specifies the bean is normally- validation implementations
scoped
GroupSequence Defines a group sequence
javax.enterprise.context.RequestScoped Specifies the bean is request-scoped

javax.enterprise.context.SessionScoped Specifies the bean is session-scoped OverridesAttribute Mark an attribute as overriding the attribute of a com-
posing constraint
javax.enterprise.event.Observes Identifies an event parameter of an
observer method OverridesAttribute.List Defines several @OverridesAttribute annotations on the same
element

javax.enterprise.inject.Alternative Specifies that the bean is an ReportAsSingleViola- A constraint annotation hosting this annotation will return the
Alternative tion composed annotation error report if any of the composing
annotations fail.
javax.enterprise.inject.Any Built-in qualifier type Valid Mark an association as cascaded

javax.enterprise.inject.Default Default qualifier type

javax.enterprise.inject.Disposes Identifies the disposed parameter of


a disposer method
JAVASERVER FACES 2.0
javax.enterprise.inject.Model Built-in stereotype for beans
defining the model layer of an MVC
webapp (ie. JSF) JSR-314
JavaServer Faces is a user interface (UI) framework for the development
javax.enterprise.inject.New Built-in qualifier type of Java web applications. Its primary function is to provide a component-
javax.enterprise.inject.Produces Identifies a Producer method or field
based toolset for easily displaying dynamic data to the user. It also
integrates a rich set of tools to help manage state and promote code
javax.enterprise.inject.Specializes Indicates that a bean specializes reuse.
another bean

DZone, Inc. | www.dzone.com


4 Java Enterprise Edition 6

Additionally, JSF is an extensible specification that encourages the Public API from javax.faces.application:
authoring of custom user views. It’s designed with tooling in mind such
that integrated development environments (IDEs) can intelligently assist Class Name Description
with design. Application Singleton scoped per web application to provide
configuration for things like validators, components
Code Example and converters
Here we’ll show a simple example of a JSF managed bean whose state is
scope to the HTTP request, and is registered to a bean name that may be ApplicationFactory Creates (if required) and returns Application instances
accessed by the view layer.
ApplicationWrapper Application type which may be used by developers to
/** add to an existing ResourceHandler
* This class defines a bean to live bound to the HTTP
* request scope, and may be accessed by the view layer
* under the name “hitchhikersGuide”. ConfigurableNavigation- Extends NavidationHandler to provide runtime inspection
*/ Handler of the NavigationCase which defines the rule base for
import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped;
navigation
import javax.faces.application.ProjectStage;
import javax.faces.bean.ManagedBean;
FacesMessage A single validation message
import javax.faces.bean.ManagedProperty;

@RequestScoped
NavigationCase A single navigation case in the navigation rule base
@ManagedBean(name = “hitchhikersGuide”)
public class HitchhikersGuide {
private String ultimateAnswer;
NavigationHandler Handles navigation from a given action and outcome
@ManagedProperty(value = “#{facesContext.application.projectStage}”)
private ProjectStage journeyStage; Resource Models a client resource request
public String getUltimateAnswer() {
return ultimateAnswer;
} ResourceHandler API by which UIComponent and Renderer instances can
reference Resource instances
public void setUltimateAnswer(String ultimateAnswer) {
this.ultimateAnswer = ultimateAnswer;
} ResourceWrapper Simple base implementation of Resource to be extended
by developers looking to add custom behaviors
public ProjectStage getJourneyStage() {
return journeyStage; StateManager Coordinates the process of saving and restoring the view
}
between client requests
public void setJourneyStage(ProjectStage journeyStage) {
this.journeyStage = journeyStage;
} StateManagerWrapper Base implementation of a StateManager which may be
subclasses by developers looking to add custom behaviors
@PostConstruct
public void findUltimateAnswerToUltimateQuestion() {
ultimateAnswer = “42”; ViewHandler Pluggable point for the render response and restore view
} phases of the request lifecycle.
}

index.xhtml View: ViewHandlerWrapper Base implementation of a ViewHandler which may be sub-


classes by developers looking to add custom behaviors.
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”
xmlns:h=”http://java.sun.com/jsf/html”
xmlns:f=”http://java.sun.com/jsf/core”>
<head>
<title>Sample JSF Page</title> ENTERPRISE JAVABEANS 3.1
</head>
<body>
<f:view>
<h2><h:outputText value=”Test Managed Bean Annotations”/></h2>
<p><h:outputText value=”hitchhikersGuide.ultimateAnswer =
JSR-318
#{hitchhikersGuide.ultimateAnswer}”/></p> Enterprise JavaBeans provide a component model to encapsulate
<h2><h:outputText value=”Test Project Stage”/></h2> business logic. As such, they provide a few bean types:
<p><h:outputText value=”project stage = #{hitchhikersGuide.
journeyStage}”/></p> • Session Beans
</f:view>
</body>
</html> • Stateless
• No conversational state between requests
Public API from javax.faces.bean:
• Stateful
Class Name Description
Denotes a ManagedBean is to be in application
• Same bean instance used to service each client/session
ApplicationScoped
scope • Singleton
CustomScoped Denotes a ManagedBean is to be in a custom-de-
fined scope of the specified value • One shared bean instance for all users
ManagedBean Defines a class as a ManagedBean type • Message-Driven
ManagedProperty Injection point for fields in ManagedBean classes • Event Listener
• JCA endpoint
NoneScoped Denotes a ManagedBean is to be in the “none” scope
• Asynchronous
ReferencedBean Denotes the class as a referenced bean
• Entity
RequestScoped Denotes a ManagedBean is to be in request scope
• Integration point w/ Java Persistence
SessionScoped Denotes a ManagedBean is to be in session scope

ViewScoped Denotes a ManagedBean is to be in view scope

DZone, Inc. | www.dzone.com


5 Java Enterprise Edition 6

Code Example TransactionAttribute Configures the transactional context under which business
It’s simple to define an EJB capable of greeting a user. methods should execute

TransactionManage- Configures transactional management for a Session or


/** ment Message-Driven Bean (container or bean provided)
* Stateless Session EJB
*/
@Stateless // Defines a Stateless Session Bean
@LocalBean // No-interface view
public class GreeterBean {
@Override
public String greet(String name) { JAVA PERSISTENCE 2.0
return “Hi, “ + name + “!”;
}
}

JSR-317
Most enterprise applications will need to deal with persistent data,
Other components, such as Servlets, may now inject a proxy to the above and interaction with relational databases can be a tedious and difficult
EJB: endeavor. The Java Persistence specification aims to provide an object
view of backend storage in a transactionally aware manner. By dealing
@EJB private GreeterBean greeterEjb; with POJOs, JPA enables developers to perform database operations
without the need for manually tuning SQL.

Public API Annotation Selection from javax.ejb:


Class Name Description Code Example
A JPA entity is simply a POJO with some annotations to provide additional
AccessTimeout Designates the amount of time a concurrent method mapping metadata. For instance:
should block before timing out
ActivationConfig- Used to configure Message-Driven Beans @Entity
public class SimpleEmployee {
Property @Id @Auto
private Long id;
AfterBegin Defines a Tx callback method for the “after begin” private String name;
event public Long getId(){ return id; }
public void setId(final Long id) { this.id = id; }
AfterCompletion Defines a Tx callback method for the “after completion” event public String getName() { return name; }
public void setName(final String name) { this.name = name; }
}
ApplicationException Defines a user exception which should not be wrapped

Asynchronous Defines methods to be executed asynchronously. Now a managed component such as an EJB or CDI bean can interact with
the database through our entity by associating it with an EntityManager.
BeforeCompletion Defines a Tx callback method for the “before completion”
event @PersistenceContext
private EntityManager em;
ConcurrencyManage- Configures the concurrency management mode for a single-
ment ton session bean public void createUser(){
final SimpleEmployee andrew = new SimpleEmployee();
DependsOn Designates initialization order for Singleton Session Beans andrew.setId(100L);
andrew.setName(“Andrew Lee Rubinger”);
em.persist(andrew); // Store in the DB
EJB Defines an injection point and dependency upon an EJB // Now any state changes done to this managed object will be
component // reflected in the database when the Tx completes
}
EJBs Plural injection point and dependency for EJB components, to
be applied at the class-level

Local Defines a local business interface view


Public API Annotation Selection from javax.persistence:
LocalBean Defines a no-interface view
Class Name Description
Lock Defines a concurrency lock for Singleton Session Beans using
Basic Describes mapping for a database column
container-managed concurrency

MessageDriven Defines a Message-Driven Bean Column Specifies column mapping for a persistent property
PostActivate Defines an event callback after a Stateful Session Bean has
been activated DiscriminatorCol- Notes the discriminator column used for SINGLE_TABLE
umn and JOINED inheritance strategies
PrePassivate Defines an event callback before a Stateful Session Bean is to
be passivated
DiscriminatorValue Specifies the value of the discriminator column for entities of this
type
Remote Defines a remote business interface view
ElementCollection Defines a collection of instances
Remove Defines a business method that should trigger the removal of
a Stateful Session Bean instance (i.e., destroy the session)
Embeddable Defines a class whose instances are stored as part of the owning
Schedule Defines a new timer to be created with a specified schedule
entity
Schedules Plural of Schedule
Embedded Specifies a persistent property whose value is an instance of an
Singleton Defines a Singleton Session Bean embeddable class

Startup Denotes that a Singleton Session Bean should eagerly load EmbeddedId Denotes composite primary key of an embeddable class

Stateful Defines a Stateful Session Bean Entity Defines a POJO as a persistent entity

StatefulTimeout Defines the amount of idle time before a Stateful Session is EntityListeners Specifies callback listeners
eligible for removal

Stateless Defines a Stateless Session Bean Enumerated Specifies that a persistent property should be persisted as an
enumeration
Timeout Defines a timer expiration method

DZone, Inc. | www.dzone.com


6 Java Enterprise Edition 6

GeneratedValue Specifies generation strategies for primary keys PostLoad Define an event callback method

PostPersist Define an event callback method


Id Denotes a primary key field
PostRemove Define an event callback method
IdClass Denotes a composite primary key class
PostUpdate Define an event callback method
Inheritance Denotes the inheritance strategy for this given entity
PrePersist Define an event callback method
JoinColumn Specifies a column for joining an entity association or element
collection. PreRemove Define an event callback method
JoinColumns Plural of JoinColumn Define an event callback method
PreUpdate
JoinTable Maps associations Specifies the primary table for this entity
Table
Lob Denotes a binary large object persistent property Denotes persistence of Date and Calendar field types
Temporal
ManyToMany Defines an N:N relationship Denotes that a property is not persistent
Transient
ManyToOne Defines an N:1 relationship Specifies the persistent property used as the optimistic lock
Version
NamedQuery Defines a static query in JPAQL

OneToMany Defines a 1:N relationship

OneToOne Defines a 1:1 relationship

OrderBy Specifies ordering of elements when a Collection is retrieved

PersistenceContext Used for injecting EntityManager instances

PersistenceUnit Used for injecting EntityManagerFactory instances

ABOUT THE AUTHOR RECOMMENDED BOOK

Andrew Lee Rubinger Learn how to code, package, deploy, and test
functional Enterprise JavaBeans with the latest
Open Source Software Engineer and Author edition of bestselling guide. Written by the
developers of the JBoss EJB 3.1 implementation,
Advocate for and speaker on testable enterprise Java this book brings you up to speed on each of the
development, author of “Enterprise JavaBeans 3.1” component types and container services in this
from O’Reilly Media. Member of the JBoss Application technology, while the workbook in the second
Server development team and technical lead of the ShrinkWrap section provides several hands-on examples for
project. Proudly employed by JBoss / Red Hat. putting the concepts into practice. Enterprise
JavaBeans 3.1 is the most complete reference you’ll find on this
specification.

#82

Browse our collection of over 150 Free Cheat Sheets


Get More Refcardz! Visit refcardz.com

CONTENTS INCLUDE:


About Cloud Computing
Usage Scenarios Getting Started with

Aldon Cloud#64Computing

Underlying Concepts
Cost
by...

Upcoming Refcardz
youTechnologies ®

Data
t toTier
brough Comply.
borate.
Platform Management and more...

Chan
ge. Colla By Daniel Rubio

on:
dz. com

grati s
also minimizes the need to make design changes to support
CON
ABOUT CLOUD COMPUTING one time events. TEN TS
INC

s Inte -Patternvall

HTML LUD E:
Basics
Automated growthHTM
ref car

Web applications have always been deployed on servers & scalable


L vs XHT technologies

nuou d AntiBy Paul M. Du Continuous Delivery



Valid
ation one time events, cloud ML
connected to what is now deemed the ‘cloud’. Having the capability to support
Usef

ContiPatterns an

computing platforms alsoulfacilitate


Open the gradual growth curves
Page ■
Source
Vis it

However, the demands and technology used on such servers faced by web applications.Structur Tools

Core
Key ■

Structur e Elements
E: has changed substantially in recent years, especially with al Elem
INC LUD gration Large scale growth scenarios involvingents

CSS3
NTS the entrance of service providers like Amazon, Google and specialized
and mor equipment
rdz !

ous Inte Change

HTML
CO NTE Microsoft. es e... away by
(e.g. load balancers and clusters) are all but abstracted
Continu at Every e chang
About ns to isolat
relying on a cloud computing platform’s technology.
Software i-patter

n space
Re fca

e Work
Build
riptio
and Ant These companies Desc have a Privat
are in long deployed trol repos
itory
webmana applications
ge HTM
L BAS

Patterns Control lop softw n-con to



that adapt and scale
Deve
les toto large user
a versio ing and making them
bases, In addition, several cloud computing ICSplatforms support data
ment ize merg
rn
Version Patte it all fi HTM

NoSQL
e... minim le
Manage s and mor e Work knowledgeable in amany ine to
mainl aspects related tos multip
cloud computing. tier technologies that Lexceed the precedent set by Relational
space Comm and XHT

Build
re

Privat lop on that utilize HTML MLReduce,


Practice Database Systems (RDBMS): is usedMap are web service APIs,

Deve code lines a system
Build as thescalethe By An
sitory of work prog foundati
Ge t Mo

Repo
This Refcard active
will introduce are within
to you to cloud riente computing, with an
ION d units etc. Some platforms ram support large grapRDBMS deployments.

The src
dy Ha
softw
EGRAT e ine loping task-o it and Java s written in hical on of
all attribute
softwar emphasis onDeve es by
Mainl
OUS
INT these ines providers, chang so youComm can better understand
also rece JavaScri user interfac web develop and the desc rris
Vis i

codel
ding e code Task Level as the
www.dzone.com

NTINU s of buil control what it is a cloudnize


line Policy sourc es as aplatform
computing can offer your ut web output ive data pt. Server-s e in clien ment. the ima alt attribute ribes whe
CO ces Code Orga it chang e witho likew describe re the ima

Android Application
T ion mec ide lang t-side ge is
hanism. fromAND
name
the pro ject’s vers CLOUD COMPUTING PLATFORMS
e sourc
applications. and subm ise
ABOU (CI) is
it with uniqu are from
was onc use HTML
web
The eme pages and uages like Nested
unavaila s alte ge file
rd z!

a pro evel Comm the build softw um ble. rnate can be


gration ed to Task-L Label ies to
build minim UNDERLYING CONCEPTS
e and XHT rging use HTM PHP tags text that
Inte mitt a pro blem ate all activition to the
bare
standard a very loos ML as Ajax Tags
can is disp
found,
ous com to USAGE SCENARIOS Autom configurat
cies t
ization, ely-defi thei tech L
Continu ry change cannot be (and freq
nden ymen layed
tion ned lang r visual eng nologies
Re fca

Build al depe need


a solu ineffective
deplo t
Label manu d tool the same for stan but as if
(i.e., ) nmen overlap
eve , Build stalle
t, use target enviro Amazon EC2: Industry standard it has
software and uagvirtualization ine. HTM uen
with terns ns (i.e.
blem ated ce pre-in whether dards e with b></ , so <a>< tly are) nest
lar pro that become
Autom Redu ymen a> is
ory. via pat d deploEAR) in each has L
reposit -patter particu Pay only what you consume you cho platform bec very little fine. ed insid

Development
s cies tagge or Amazon’s cloud
the currcomputing isome
heavily based moron b></
lained ) and anti x” the are solution duce
nden For each (e.g. WAR es t
ent stan ose to writ more e imp a></ e
not lega each othe
b> is
be exp text to “fi
al Depeapplication deployment
Web ge until
nden a few years
t librari agonmen
t enviro was similar that will software
industry standard and virtualization apparen ortant, the
e HTM technology.
ns to pro Minim packa
dard
Mo re

CI can ticular con used tter can rity all depe that all
targe
simp s will L t. HTM l, but r. Tags
es i-pa tend but to most phone services:
y Integ alize plans with late alloted resources,
file
ts with an and XHT lify all help or XHTML, Reg ardless L VS XH <a><
in a par hes som
etim s. Ant , they ctices,
Binar Centr temp your you prov TML b></
proces in the end bad pra enting
nt nmen
incurred cost
geme whether e a single based on
Creatsuchareresources were consumed
t enviro orthenot. Virtualization
muchallows MLaare physical othe
piece ofr hardware to be understand of HTML
approac ed with the cial, but, rily implem nden
cy Mana rties nt targe es to of the actually web cod ide a solid ing has bee
essa d to Depe prope into differe chang
utilized by multiple operating
function systems.simplerThis allows ing.resources foun job
efi nec itting n arou
associat to be ben
er
pare dation adm
Ge t

te builds commo
are not Fortuna
late Verifi e comm than
ality be allocated nd for
n com Cloud computing asRun it’sremo
known etoday has changed this. expecte irably, that
befor
They they
etc.
(e.g. bandwidth, elem CPU) tohas
nmemory, exclusively totely
Temp
job has some time
Build
lts whe
ually,
appear effects. rm a
Privat y, contin nt team Every mov
entsinstances. ed to CSS
used
to be, HTML d. Earl
ed resu gration
The various resourcesPerfo consumed by webperio applications
dicall (e.g.
opme page system
individual operating bec Brow y exp . Whi
adverse unintend d Builds sitory Build r to devel common (HTM . ause ser HTM anded le it
ous Inte web dev manufacture L had very far mor has done
Stage Repo
e bandwidth, memory, CPU) areIntegtallied
ration on a per-unit CI serve basis L or XHT
produc Continu Refcard
e Build rm an ack from extensio .) All are
e.com

ML shar limit e than its


pat tern. term this
Privat
(starting from zero) by Perfo all majorated cloud
feedb computing platforms.
occur on As a user of Amazon’s
n. HTM EC2 essecloud
ntiallycomputing platform, you are
es cert result elopers
came
rs add
ed man ed layout anybody
the tion of the e, as autom they based proc is
gra such wayain The late a lack of stan up with clev y competi
supp
as
” cycl Build Send soon builds
assigned esso
an operating L system
files shou in theplai
same as onelemallents
hosting
ous Inte tional use and test concepts Integ
ration ors as entat
ion with r
ld not
n text
in st web dar er wor ng stan
ort.
Continu conven “build include oper
docum
be cr standar kar dar
the to the to rate devel
While s efer of CI
ion
Gene
Cloud Computing

the not

DZone, Inc.
s on
expand

140 Preston Executive Dr.


Suite 100
Cary, NC 27513
DZone communities deliver over 6 million pages each month to 888.678.0399
more than 3.3 million software developers, architects and decision 919.678.0300
makers. DZone offers something for everyone, including news,
Refcardz Feedback Welcome
$7.95

tutorials, cheat sheets, blogs, feature articles, source code and more.
refcardz@dzone.com
“DZone is a developer’s dream,” says PC Magazine.
Sponsorship Opportunities
Copyright © 2011 DZone, Inc. All rights reserved. No part of this publication may be reproduced, stored in a
retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, sales@dzone.com Version 1.0
without prior written permission of the publisher.