User can claim their requirements to
encourage the producing of new application.
Also users can share or recommend
applications to their social network.
To meet these requirements, many technologies
have emerged in recent years:
Cloud computing: Cloud computing (Hayes,
2008; Armbrust et al. 2009) provides a new way
of delivering computing as a service. It
enables the elasticity for resource
consumption, which is necessary in Web
application development in different levels: in
infrastructure level, services like Amazon EC2
allow developers to rent virtual computers to
host their Web applications; in platform level,
services like Google App Engine enable the
development and deployment in centrally
managed data centre. There are some other
services on Cloud designed for Web
application development, such as database
(Hacigumus, 2002) and testing. Notably, a few
platforms labled ”Cloud Enabled Application
Platform” (Natis et al., 2010) emerged.
Tools for automation: The dream of
application development without programmers
was proposed many years ago (Martin, 1982).
Since then, many automatic methodologies
and tools are proposed and realized, such as
MDA (Sendall and Kozaczynski , 2003), and
tools like maven and jenkins. Now, the whole
producing cycle of Web application is
supported by these automatic methodologies
and tools.
Web application marketplace: Both consumers
and producers benefit from the idea of
application store as a distribution platform.
Majority of application stores are distribution
platforms for mobile application, with the
model of distributing digital copies of mobile
applications and then installing them on users’
devices. But Web application means a
different story: the marketplace sells the utility
of the application, rather than copies.
Social application: Many works have
discussed the impact of social network on
product diffusion. Web application could also
be promoted and diffused through social
networking approach. Facebook made this
approach real and popular. Currently, there are
many social games and other Web
applications relying on Facebook to gather
users.
These approaches facilitate the development of
Web application. However, concentrating on a
single aspect, rather than considering them as a
whole, limits their effects. For example, if there is
no economic consideration of distributing during
development phase, the application would be not
flexible for different pricing schemas. As a result,
we must consider these trends as a whole paradigm
for Web application. For such paradigm, we believe
four principles should be emphasized according to
our vision:
Utility. Utility refers to the satisfaction
received from consuming a Web application.
Computation is about converting resources to
utilities, and delivering utilities to consumers.
The application producer consumes resources
from resource provider (such as cloud
provider), convert the resource (computation,
storage, etc.) with business logic to build a
service to deliver utility. Web application
consumer uses a Web application to gain the
utility without caring about the underlying
resource or way’s of constructing application.
So in designing Web application paradigm,
it’s crucial to make sure that it facilitates the
conversion and delivery of utility.
Economics. Economic mechanism should be
adopted to drive the whole paradigm: 1)
producer would like to maximize its profit
with the budget of resource consuming for
converting a certain amount of utilities; 2)
consumer would like to maximize received
utilities within the budget of application
consuming. Consuming of both resources and
applications should have the properties of
elasticity, which means paying by their usage.
This ’pay by usage’ principle should be
considered not just in phase of distribution and
promotion, but also in development and
deployment.
Automation. Many activities of Web
application producing could be standardized
and automatized, which increases the
reusability, lowers the cost, and saves the
time. For standardization and automation, it’s
important to design a platform rather than a
set of tools.
Social Network. Applications are built for
users, and users make applications alive.
Users should be able to share applications and
recommend them to the others. They help the
evolution of an application by giving
feedback, requesting new feature, and
purchasing it. Users and developers should be
able to communicate with each other
efficiently. So it’s necessary to adopt a social
ICSOFT 2012 - 7th International Conference on Software Paradigm Trends
434