An agile application is the result of
service-oriented architecture
In software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provide ...
and
agile development
In software development, agile (sometimes written Agile) practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/ end user(s), ad ...
paradigms. An agile application is distinguished from average applications in that it is a
loosely coupled
In computing and systems design, a loosely coupled system is one
# in which components are weakly associated (have breakable relationships) with each other, and thus changes in one component least affect existence or performance of another comp ...
set of services with a decoupled
orchestration layer and it is easily modified to address changing business needs and it is scalable by design.
Using
agile applications development paradigms, a set of services can be built to address business specific functional components. These services can be exposed using any one of the standard communication protocols including web services. A well designed agile application will standardize on a common communication protocol and a
common data model
A common data model (CDM) can refer to any standardised data model which allows for data and information exchange between different applications and data sources. Common data models aim to standardise logical infrastructure so that related applicat ...
. The services can then be orchestrated using a decoupled layer to implement business logic. There are many tools by different vendors (IBM, Intel
etc.,) in the industry that can support the orchestration layer.
The decoupled nature of an agile application permits it to accommodate
fault tolerance
Fault tolerance is the property that enables a system to continue operating properly in the event of the failure of one or more faults within some of its components. If its operating quality decreases at all, the decrease is proportional to the ...
and
scalability
Scalability is the property of a system to handle a growing amount of work by adding resources to the system.
In an economic context, a scalable business model implies that a company can increase sales given increased resources. For example, a ...
. For example, scalability is addressed through focusing the attention of the
QA team in the set of services that are causing the bottleneck as opposed to trying to solve scalability for the entire system which can be a much bigger problem. Similarly, fault tolerance can be achieved through deploying multiple instances of a service. If one service fails, another instance can pick up the load. For stateless services, this can lead to continuous availability.
Following the Agile Development paradigm, each unit of
development cycle
In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software devel ...
can be focused on a single service. Furthermore, multiple of these development cycles can run in parallel leading to faster development completion.
Agile is a means of responsiveness based on customization rather than stable production or standardization.
References
Further reading
*
Nanocomputers and Swarm Intelligence' by
Jean-Baptiste Waldner
Jean-Baptiste Waldner (born 30 March 1959) is a French engineer, management consultant and author, known for his contributions in the fields of computer-integrated manufacturing, enterprise architecture, nanoelectronics, nanocomputers and swarm i ...
, ISTE, , 2007.
*
Agile Web Development with Rails 2nd Edition' by Dave Thomas; David Heinemeier; Leon Breedt, Rails, {{ISBN, 0-9776166-3-0, 2007.yy
See also
*
Semantic Web
*
Semantic Grid
A semantic grid is an approach to grid computing in which information, computing resources and services are described using the semantic data model. In this model, the data and metadata are expressed through facts (small sentences), becoming dire ...
*
Ontology (computer science)
In computer science and information science, an ontology encompasses a representation, formal naming, and definition of the categories, properties, and relations between the concepts, data, and entities that substantiate one, many, or all domains ...
*
Semantic Web Rule Language
The Semantic Web Rule Language (SWRL) is a proposed language for the Semantic Web that can be used to express rules as well as logic, combining OWL DL or OWL Lite with a subset of the Rule Markup Language (itself a subset of Datalog).
The speci ...
(SWRL)
Agile software development