service oriented architecture & web 2.0

58
Service Oriented Architecture and Web 2.0: A Report A Report on The integrated functionality of Service Oriented Architecture (SOA) & Web 2.0 By: Abhik Tushar Das (EMBA 2010-11 batch) Roll No. 20104001 Anil Kumar Sahu (EMBA 2010-11 batch) Roll No. 20104004 Under the mentorship of: Dr.Parag Sanghani Director & Pro VC ( Ackruti Ctiy University Ahmadabad) Submitted as part-fulfillment of the course titled: “Real time applications of Management Information Systems (MIS)” Under the: 15-MonthExecutive MBA Programme (2010-11 batch) SCHOOL OF PETROLEUM MANAGEMENT, PDPU, GANDHINAGAR, GUJARAT, INDIA. By: Abhik Tushar Das ([email protected] ) & Anil Kumar Sahu (anil.sexe- [email protected] )

Upload: abhik-tushar-das

Post on 13-Jan-2015

4.501 views

Category:

Business


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

A Report on

The integrated functionality of

Service Oriented Architecture (SOA)

&

Web 2.0By:

Abhik Tushar Das (EMBA 2010-11 batch) Roll No. 20104001

Anil Kumar Sahu (EMBA 2010-11 batch) Roll No. 20104004

Under the mentorship of:

Dr.Parag Sanghani

Director & Pro VC ( Ackruti Ctiy University Ahmadabad)

Submitted as part-fulfillment of the course titled:

“Real time applications of Management Information Systems (MIS)”

Under the:

15-MonthExecutive MBA Programme (2010-11 batch)

SCHOOL OF PETROLEUM MANAGEMENT,

PDPU, GANDHINAGAR, GUJARAT, INDIA.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 2: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

ACKNOWLEDGEMENT

We desire to express our thankfulness and sincere gratitude to

Dr.Parag Sanghani (Director & Pro VC of Ackruti City University

Ahmadabad) who had been associated with the EMBA(2010) batch as a visiting

faculty for the course “Management Information systems” and provided us a

enlightenment on the course and this opportunity to do a presentation and

project work on the topic “Service Oriented Architecture(SOA) & Web 2.0”

platform intended to broaden our prospects on the real life applications of

Management Information Systems.

We extend our heartfelt thanks to everybody who were associated

academically with this project.

Abhik Tushar Das Anil Kumar Sahu

Roll No: 20104001 Roll No: 20104004

Gandhinagar

Dt: 01-03-2011

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 3: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Table of Contents

SL/

No.

Description Page No.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 4: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Abstract

In a fast changing and increasingly challenging Business

environment every progressing business organization’s functionality is being

redefined by the emerging challenges of improving technology and increasing

competition. In order to survive and progress forward, efficient use of

“Management Information systems” is changing the way of functions and

daily activities of big and small business organizations with a ever increasing

need to increasing their productivity by improving their overall efficiency in

every aspect of their operating procedure. With the progress of Information

Technology; organizations are able to have a better control of every aspect of

business like effective usage of resources and time and maximizing the

generation of revenue by enabling customized MIS modules. They are able to

emphasize on their innovative strategies to their level best at fulfilling the

needs and wants of its customers at most to their capabilities. Storage,

processing, retrieval of productivity information in today’s scenario have

become very effective as compared to past decades and tend to get better

with the emergence of improved Information Technology tools.

“Management Information systems”, has emerged to be an

effective tool to control the daily functional aspects and duly forecast the

growth in business opportunities without which it is unimaginable for business

organizations to even manage daily activities.

This project report primarily focuses on the technological,

structural, recent development aspects and economic importance and cross

functionality of Service Oriented Architecture (SOA) & Web 2.0 platforms

which are swiftly changing the way in which the web enabled communication

and information management structure function to customized requirements.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 5: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Service Oriented Architecture:

1.1--Introduction:

The widespread emergence of the Internet in the mid 1990s as a platform for electronic

data distribution and the advent of structured information have revolutionized our ability to

deliver information to any corner of the world. While the introduction of Extensible Markup

Language (XML) as a structured format was a major enabling factor, the promise offered by

SOAP based web services triggered the discovery of architectural patterns that are now

known as Service Oriented Architecture (SOA).

Service Oriented Architecture is an architectural paradigm and discipline that may be used

to build infrastructures enabling those with needs (consumers) and those with capabilities

(providers) to interact via services across disparate domains of technology and ownership.

Services act as the core facilitator of electronic data interchanges yet require additional

mechanisms in order to function. Several new trends in the computer industry rely upon

SOA as the enabling foundation. These include the automation of Business Process

Management (BPM), composite applications (applications that aggregate multiple services

to function), and the multitude of new architecture and design patterns generally referred

to as Web 2.0.

The latter, Web 2.0, is not defined as a static architecture. Web 2.0 can be generally

characterized as a common set of architecture and design patterns, which can be

implemented in multiple contexts. The list of common patterns includes the MASHUPS,

Collaboration-Participation, Software as a Service (SAAS), Semantic Tagging (FOLKSONOMY),

and Rich User Experience (also known as Rich Internet Application) patterns among others.

These are augmented with themes for software architects such as trusting your users and

harnessing collective intelligence. Most Web 2.0 architecture patterns rely on Service

Oriented Architecture in order to function.

When designing Web 2.0 applications based on these patterns, architects often have highly

specialized requirements for moving data. Enterprise adoption of these patterns requires

special considerations for scalability, flexibility (in terms of multiple message exchange

patterns), and the ability to deliver these services to a multitude of disparate consumers.

Architects often need to expand data interchanges beyond simple request-response

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 6: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

patterns and adopt more robust message exchange patterns, triggered by multiple types of

events. As a result, many specialized platforms are evolving to meet these needs.

2.0 An Introduction to Service Oriented Architecture

Service Oriented Architecture (SOA) is a paradigm for organizing and utilizing distributed

capabilities that may be under the control of different ownership domains and implemented

using various technology stacks. In general, entities (people and organizations) create

capabilities to solve or support a solution for the problems they face in the course of their

business. It is natural to think of one person’s needs being met by capabilities offered by

someone else; or, in the world of distributed computing, one computer agent’s

requirements being met by a computer agent belonging to a different owner. The term

owner here may be used to denote different divisions of one business or perhaps unrelated

entities in different countries.

There is not necessarily a one-to-one correlation between needs and capabilities; the

granularity of needs and capabilities vary from fundamental to complex, and any given need

may require a combination of numerous capabilities while any single capability may address

more than one need. One perceived value of SOA is that it provides a powerful framework

for matching needs and capabilities and for combining capabilities to address those needs

by leveraging others capabilities. One capability may be repurposed across a multitude of

needs.

SOA is a “view” of architecture that focuses in on services as the action boundaries between

the needs and capabilities in a manner conducive to service discovery and repurposing.

2.1 Requirements for SOA

Figure 2-1 shows an example of an information system scenario that could benefit from a

migration to SOA. Within one organization, three separate business processes use the same

functionality, each encapsulating it with a different application. In this scenario, the login

function, the ability to change the user name, and the ability to persist it are common tasks

implemented redundantly in all three processes. This is a suboptimal situation because the

company has paid to implement the same basic functionality three times.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 7: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Figure 2.1 – three business processes within one company duplicating

functionality

Moreover, such scenarios are highly inefficient and introduce maintenance complexity

within IT infrastructures. For example, consider an implementation in which the state of a

user is not synchronized across all three processes. In this environment users might have to

remember multiple login username/password tokens and manage changes to their profiles

in three separate areas. Additionally, if a manager wanted to deny a user access to all three

processes, it is likely that three different procedures would be required (one for each of the

applications). Corporate IT workers managing such a system would be effectively tripling

their work –and spending more for software and hardware systems.

In a more efficient scenario, common tasks would be shared across all three processes. This

can be implemented by decoupling the functionality from each process or application and

building a standalone authentication and user management application that can be

accessed as a service. In such a scenario, the service itself can be repurposed across multiple

processes and applications and the company owning it only has to maintain the

functionality in one central place. This would be a simple example of Service Oriented

Architecture in practice. The resultant IT infrastructure would resemble Figure 2.2.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 8: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Figure 2.2 – three business processes repurposing one service for common tasks.

In figure 2.2, the shared user account tasks have been separated from each process and

implemented in a way that enables other processes to call them as a service. This allows the

shared functions to be repurposed across all three processes. The common service bus is

really a virtual environment whereby services are made available to all potential consumers

on a fabric. This is typically referred to as an Enterprise Service Bus (ESB) and has a

collection of specialized subcomponents including naming and lookup directories, registry-

repositories, and service provider interfaces (for connecting capabilities and integrating

systems) as well as a standardized collection of standards and protocols to make

communications seamless across all connected devices. Advanced ESB vendors have tools

that can aggregate services into complex processes and workflows.

In the preceding example of SOA, the complications were relatively minor as the entire

infrastructure existed within one domain. In reality, enterprise SOA is much more difficult

because services may be deployed across multiple domains of ownership. To make

interactions possible, mechanisms have to be present to convey semantics, declare and

enforce policies and contracts, the ability to use constraints for data passed in and out of

the services as well as expressions for the behavior models of services. The ability to

understand both the structure and semantics of data passing between service endpoints is

essential for all parties involved.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 9: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

While most SOA examples are typically shown as a request-response interaction pattern,

more robust exchanges are required. Additionally, modern service platforms also need the

flexibility to support these advanced message exchange patterns. Before discussing the

platform and reference architecture, this white paper will briefly delve into SOA in more

detail.

2.2 A Reference Model for Service Oriented Architecture

As with any other architecture, Service Oriented Architecture can be expressed in a manner

that is decoupled from implementation. Software architects generally use standardized

conventions for capturing and sharing knowledge. This group of conventions is often

referred to as an Architecture Description Language (ADL). There are also several

normalized artifacts (an "Artifact" is one of many kinds of tangible by-product produced

during the development of software) used to facilitate a shared understanding of the

structure of a system, its major components, the relationships between them, and their

externally visible properties. This will make use of two special types of these artifacts – a

Reference Model and Reference Architecture.

A Reference Model is an abstract framework for understanding significant entities and

relationships between them. It may be used for the further development of more concrete

artifacts such as architectures and blueprints. Reference models themselves do not contain

a sufficient level of detail sufficient to enable the direct implementation of a system. In the

case of a reference model for SOA, the Organization for the Advancement of Structured

Information Systems (OASIS) has a standard Reference Model for SOA, shown in Figure 2.3

that is not directly tied to any standards, technologies, or other concrete implementation

details.

In order for SOA to be meeting these challenges, services must have accompanying service

descriptions to convey the meaning and real world effects of invoking the service. These

descriptions must additionally convey both semantics and syntax for both humans and

applications to use.

Each service has an interaction model, which are the externally visible aspects of invoking a

service. In this paper, this will be decomposed further to examine the data service aspects

of SOA.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 10: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Figure 2.3 – the core OASIS Reference Model for Service Oriented Architecture

Visibility and Real World Effect are also key concepts for SOA. Visibility is the capacity for

those with needs and those with capabilities to be able to see and interact with each other.

This is typically implemented by using a common set of protocols, standards, and

technologies across service providers and service consumers. For consumers to determine if

they can interact with a specific service, Service Descriptions provide declarations of aspects

such as functions and technical requirements, related constraints and policies, and

mechanisms for access or response. The descriptions must be in a form (or can be

transformed to a form) in which their syntax and semantics are widely accessible and

understandable. The execution context is the set of specific circumstances surrounding any

given interaction with a service and may affect how the service is invoked.

Since SOA permits service providers and consumers to interact, it also provides a decision

point for any policies and contracts that may be in force. The purpose of using a capability is

to realize one or more real world effects. At its core, an interaction is “an act” as opposed to

“an object” and the result of an interaction is an effect (or a set/series of effects). Real world

effects are, then, couched in terms of changes to this shared state. This may specifically

mutate the shared state of data in multiple places within an enterprise and beyond.

The concept of policy also must be applicable to data represented as documents and

policies must persist to protect this data far beyond enterprise walls. This requirement is a

logical evolution of the “locked file cabinet” model which has failed many IT organizations in

recent years. Policies must be able to persist with the data that is involved with services,

wherever the data persists.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Service

Visibility

Service description

Interaction

Contract and Policy

Real world effect

Execution context

Page 11: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

A contract is formed when at least one other party to a service oriented interaction adheres

to the policies of another. Service contracts may be either short lived or long lived.

2.3 Decomposing the Interaction Model

Whereas visibility introduces the possibilities for matching needs to capabilities (and vice

versa), interaction is the act of actually using a capability via the service. Typically mediated

by the exchange of messages, an interaction proceeds through a series of information

exchanges and invoked actions. There are many facets of interaction; but they are all

grounded in a particular execution context – the set of technical and business elements that

form a path between those with needs and those with capabilities. Architects building Rich

Internet Applications (RIAs), are faced with special considerations when designing their

systems from this perspective. The concept of “Mashups” surrounds a model whereby a

single client RIA may actually provide a view composed by binding data from multiple

sources persisting in multiple domains across many tiers.

Figure 2.4 – a decomposition of the Interaction Model (courtesy of OASIS Reference

Model for SOA)

As depicted in Figure 2.4, the interaction model can be further decomposed into a data

model and behavior model. The data model is present in all service instances. Even if the

value is “null”, the service is still deemed to have a data model. The data models are

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 12: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

strongly linked to the behavior models. For example, in a Request-Response behavior

model, the corresponding data model would have two components – the input (service

Request) data model and the output (service Response) data model. Data models may be

further specialized to match the behavior model if it is other than “Request-Response”.

The behavior model is decomposable into the action model and the process model. The

sequence of messages flowing into and out of the service is captured in the action model

while the service’s processing of those signals is captured in the processing model. The

processing model is potentially confusing as some aspects of it may remain invisible to

external entities and its inner working known only to the service provider.

3.0 A Reference Architecture for Service Oriented Architecture

Reference architecture is a more concrete artifact used by architects. Unlike the reference

model, it can introduce additional details and concepts to provide a more complete picture

for those who may implement a particular class. Reference architectures declare details that

would be in all instances of a certain class, much like an abstract constructor class in

programming. Each subsequent architecture designed from the reference architecture

would be specialized for a specific set of requirements. Reference architectures often

introduce concepts such as cardinality, structure, infrastructure, and other types of binary

relationship details. Accordingly, reference models do not have service providers and

consumers. If they did, then a reference model would have infrastructure (between the two

concrete entities) and it would no longer be a model.

The reference model and the reference architecture are intended to be part of a set of

guiding artifacts that are used with patterns. Architects can use these artifacts in

conjunction with others to compose their own SOA. The relationships are depicted in Figure

3.1.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 13: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Figure 3.1 – The architectural framework for SOA (Courtesy of OASIS).

The concepts and relationships defined by the reference model are intended to be the basis

for describing reference architectures that will define more specific categories of SOA

designs. Specifically, these specialized architectures will enable solution patterns to solve

particular problems. Concrete architectures may be developed based upon a combination of

reference architectures, architectural patterns, and additional requirements, including those

imposed by technology environments. Architecture is not done in isolation; it must account

for the goals, motivation, and requirements that define the actual problems being

addressed. While reference architectures can form the basis of classes of solutions, concrete

architectures will define specific solution approaches.

Architects and developers also need to bind their own SOA to concrete standards

technologies and protocols at some point. These are typically part of the requirements

process. For example, when building a highly efficient client side Mashup application, a

developer might opt for the ActionScript Messaging Format (AMF) to provide the most

efficient communication between remote services and the client.

Neutrality

The reference architecture shown in Figure 3.2 is not tied to any specific technologies,

standards, or protocols. In fact, it would be equally applicable to a .NET or J2EE environment

and can be used with either the Web Service family of technologies, plain old XML-RPC (XML

– Remote Procedure Call), or a proprietary set of standards. This reference architecture

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 14: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

allows developers to make decisions and adopt technologies that are best suited to their

specific requirements.

Figure 3.2 – A generic SOA Reference Architecture for implementing core Web 2.0 design

patterns (Courtesy of O’Reilly Media)

3.1 Service Tier

The server side component of the reference architecture has a number of commonly used

components. The Service Provider Interface is the main integration point whereby service

providers connect to capabilities that exist in internal systems in order to expose them as

services. These internal applications typically reside in a resource tier, a virtual collection of

capabilities that become exposed as services so consumers can access their functionality.

Service providers may integrate such capabilities using numerous mechanisms, including

using other services. In most cases, an enterprise will use the Application Programmatic

Interface (API) of the system as provided by the application vendor.

The Service Invocation Layer is where services are invoked. A service may be invoked when

an external messages being received or, alternatively, it can be invoked by an internal

system or by a non-message based event (such as a time out). It is essential to understand

that services may be invoked via messages from multiple sets of standards and protocols

working together. Common examples of external service interface endpoints include:

• Asynchronous JavaScript and XML (AJAX),

• Simple Object Access Protocol (SOAP),

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 15: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

• XML Remote Procedure Call (XML-RPC),

• A watched folder being polled for content,

• An email endpoint, and

• Other REST style endpoints including plain old HTTP and HTTP/S.

Services may also be invoked by local consumers including environments like J2EE and

language specific interfaces (for example - Plain Old Java Objects or POJO’s).

Each service invocation is often handed to a new instance of a service container. The service

container is responsible for handling the service invocation request for its entire lifecycle,

until either it reaches a successful conclusion or failed end state. Regardless of its ultimate

end state, the service container may also delegate responsibilities for certain aspects of the

service’s runtime to other services for common tasks. These tasks typically include logging

functions, archiving, security, and authentication, among others.

To facilitate orchestration and aggregation of services into processes and composite

applications, a registry-repository is often used. During the process design phase, the

registry-repository provides a single view of all services and related artifacts. The repository

provides a persistence mechanism for artifacts during the runtime of processes and

workflows. If multiple system actors use and interact with a form, the repository (place

where we put documents) can exist it while allowing access to privileged individuals.

Design, development and governance tools are also commonly used by humans to deploy,

monitor, and aggregate multiple services into more complex processes and applications.

3.2 Client Tier

While much attention has been focused on the server side aspects of SOA, less has been

written about the new breed of clients evolving for consuming services. The clients have

evolved to embrace many common architecture and design patterns discussed in greater

detail in the next section. A highly visible example of this is the ability of most modern

browsers to subscribe to RSS feeds.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 16: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Figure 3.3 – client application architecture

As depicted in Figure 3.3, clients must have far more robust communications services than a

decade ago. In fact, any communication standards, protocols and technologies (such as

SOAP, ActionScript Messaging Format, or XML-RPC) have to be implemented on both sides

to facilitate proper communications. Client side communications buses also need to monitor

the state of communications including potentially both synchronous and asynchronous

exchange patterns.

The main controller of each client application must be capable of launching various runtime

environments. This is typically done via launching one or more virtual machines that can

interpret scripting languages or consume byte code as in Adobe Flash. The architecture for

these virtual machines varies greatly depending upon the language used. Some compile an

intermediate level byte code just in time to run a program while others must be launched

and make multiple passes over a script (usually once to check it for errors, another time to

run the script, and a concurrent iteration to collect garbage and free up memory as it

becomes possible to reallocate.

Most modern clients have some form of data persistence and state management. This

usually works in conjunction with the clients’ communications services to allow the

controller to use cached resources rather than attempting to synchronize states if

communications are down. Additionally, rendering and media functionality specific to one

or more languages is used to ensure the view of the application is built in accordance with

the intentions of the application developer.

The security models used by different clients also vary somewhat. The usual tenets are to

prevent unauthorized and undetected manipulation of local resources. In distributed

computing architectures, identity (knowing who and what) is a major problem that requires

a complex architecture to address. Each client side application must be architected in

accordance with the acceptable level of risk based on the user requirements.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 17: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

3.3 Architectural Conventions spanning multiple tiers

While examining the client and service tiers of the reference architecture, developers will

note some commonalities. Architects need to employ common models for determining

what constitutes an object, what constitutes an event, how an event gets noticed or

captured, what constitutes a change in state, and more. As a result, architecture must take

note of several common architectural models over all tiers of modern SOAs.

First and foremost, the core axioms of service oriented architecture should be observed.

Services themselves should be treated as subservient to the higher level system or systems

that use them. If you are deploying services to be part of an automated process

management system, the services themselves should not know (or care) what they are

being used for.

Services that are designed otherwise are architecturally inelegant for a number of reasons.

First, if services were required to know the state of the overall process, state misalignment

would likely result if two services had differing states for even a fraction of a second. In such

instances, errors might be thrown when this is detected or worse, developers would have to

rely on using a series of synchronous calls to services rather than forking a process into

asynchronous calls. As depicted in Figure 3.4, services should remain agnostic to what they

are used for. The state of a process or other application using services should be kept within

the higher layer of logic that uses consumers to invoke the services.

Figure 3.4 – services within overall architecture

Second, if the overall process stalled or failed for some reason, each service used would

have to be notified and rolled back to a previous state. Having services maintain or store the

overall state of a process that uses more than one service is an anti-pattern of SOA and

should be avoided.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 18: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Another core architectural convention is to keep the service consumers agnostic to how the

services are delivering their functionality. This results in a clean decoupling of components,

another architecturally elegant feature of modern service oriented systems. Having

dependencies on knowing the internal working of the services functionality is another anti-

pattern of SOA and should also be avoided.

Service composition, the act of building an application out of multiple services, is likewise an

anti-pattern of SOA, if composition is defined as per Unified Modeling Language (UML) 2.0.

Composition is depicted as a “has a” relationship and the whole is composed of the parts.

The correct terminology should be service aggregation.

Aggregation is a “uses a” type of relationship. The differences are quite subtle but

nevertheless important to grasp. In composition relationships, the life cycles of parts are

tied to the lifecycle of the whole and when the whole no longer exists, the parts no longer

exist either. In aggregation, the parts exist independent of the whole and can go on living

after the entity that uses them no longer exists. This terminology is common within both

OOPSLA and UML. Regardless, the term “service composition” has been misused widely

within the computer industry and will likely prevail as a norm. Architects and developers

should pay close attention to the types of binary relationships between components in

loosely coupled, distributed systems and bear these definitions in mind.

3.4 Events

Architects and developers using the reference architecture within this paper should also

consider the event architecture. Events often must be detected and acted upon. Each

specific programming language has a form of event architecture for detection, dispatching

messages, and capturing and linking behaviors to events. The main challenge presented in

distributed, service oriented systems is that the event model must traverse multiple

environments and possibly span multiple domains. Detecting an event in one domain,

dispatching a message to a remote system and linking the event to an action in a virtual

machine running on the remote system presents multiple challenges. Architects and

developers must often bridge disparate systems. Having a common model used by all

systems makes the traversal of systems much easier for developers and architects alike.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 19: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

3.5 Objects

In much the same way they treat events, each disparate environment in a distributed

service oriented environment might have a distinct notion of what constitutes an object.

Relying on programming environments and languages that are aligned conceptually with

respect to objects (that is, “object-oriented”) makes the work of architects and developers

much easier. Languages such as JavaScript (specifically JavaScript Object Notation or JSON),

Java, ActionScript, and others have alignment on object concepts. (Note: ECMA’s

ActionScript 3.0 is much more object-oriented than previous incarnations and is strongly tied

to Java). When a developer must implement a pattern where an object’s state must be

tracked in a remote location and action taken upon a state change on the object, a common

model for object and encapsulation is important.

3.6 Architectural Patterns

As noted in the reference architecture in Figure 3.1, architecture and design patterns are an

important aspect of any architecture.

Patterns are recurring solutions to recurring problems. A pattern is composed of a problem,

the context in which the problem occurs, and the solution to resolve this problem. The focus

of a documented software architecture pattern is to illustrate a model to capture the

structural organization of a system, relate that to its requirements and highlight the key

relationships between entities within the system. The modern day concept of patterns

evolved from work by Christopher Alexander, the primary author of a book called “A Pattern

Language”xiii which had a great influence on object-oriented programming. The basic

concept of the book was a realization that patterns are the same when architecting a city, a

block, a house and a room. Each of these entities employs similar patterns.

The concepts of patterns in software architecture have been widely adopted since being

modified by the infamous Gang of Fourxiv and are now an accepted part of the engineering

trade.

4.0 Data and Message Exchange Patterns for Enterprise SOA

The most basic message exchange pattern is a common Request-Response where the

parties can simply communicate with each other. This is the basic building block of most

SOA interactions and is depicted below.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 20: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

4.1 Request-Response

Request-Response is a pattern in which the service consumer uses configured client

software to issue an invocation request to a service provided by the service provider. The

request results in an optional response, as shown in Figure 4-1.

Figure 4-1. SOA Request-Response pattern

4.2 Request-Response via Service Registry (or Directory)

An optional service registry (database of configuration settings) can be used within the

architecture to help the client automatically configure certain aspects of its service client.

The service provider pushes changes regarding the service’s details to the registry to which

the consumer has subscribed. When the changes are made, the service consumer is notified

of these changes and can configure its service client to talk to the service. This is

represented conceptually in

Figure 4-2:

Figure 4-2. SOA Request-Response pattern with a service registry

4.3 Subscribe-Push

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 21: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

A third pattern for interaction is called Subscribe-Push, shown in Figure 4-3. In this pattern,

one or more clients register subscriptions with a service to receive messages based on some

criteria. Regardless of the criteria, the externally visible pattern remains the same.

Subscriptions may remain in effect over long periods before being canceled or revoked. A

subscription may, in some cases, also register another service endpoint to receive

notifications. For example, an emergency management system may notify all fire stations in

the event of a major earthquake using a common language such as the OASIS Common

Alerting Protocol (CAP).

Figure 4-3. SOA Subscribe-Push pattern

Note that this pattern can be triggered by a multitude of events. In figure 4-3, an auditable

event is triggering a message being sent to a subscribed client. The trigger could be a service

consumer’s action, a timeout action, or a number of other actions that are not listed in the

example above. Each of these represents a specialization of the Subscribe-Push pattern.

4.4 Probe and Match

A pattern used for discovery of services is the Probe and Match pattern. In this variation,

shown in Figure 4-4, a single client may multicast or broadcast a message to several

endpoints on a single fabric, prompting them to respond based on certain criteria. For

example, this pattern may be used to determine whether large numbers of servers on a

server farm are capable of handling more traffic by checking if they are scaled at less than

50% capacity. This variation of the SOA message exchange pattern may also be used to

locate specific services. There are caveats with using such a pattern, as it may become

bandwidth-intensive if used often. Utilizing a registry or another centralized metadata

facility may be a better option because the registry interaction does not require sending the

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 22: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

messages to all endpoints to find one. By convention, they allow the query to locate the

endpoint using a filter query or other search algorithm.

Figure 4-4. SOA Probe and Match pattern

In the Probe and Match scenario in Figure 4-4, the service client probes three services, yet

only the middle one returns an associated match() message. A hybrid approach could use

the best of both the registry and the probe and match models for locating service

endpoints. In the future, registry software could implement a probe interface to allow

service location without requiring wire transactions going to all endpoints and the searching

mechanism could probe multiple registries at the same time.

4.5 Patterns for RIAs

Creating Rich Internet Applications (RIAs) requires a level of data management that goes

beyond the traditional Request-Response model. Providing a richer, more expressive

experience often requires more data-intensive interaction and introduces new challenges in

managing data between the client and server tiers.

Data synchronization is a key concept and requires states to be shared among multiple

machines. These are usually the clients who have subscribed to the state of an object

somewhere within the tier of a distributed system as depicted in Figure 4.5.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 23: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Figure 4.5 – data synchronization across multiple clients.

4.6 Data paging

Some services automatically facilitate the paging of large data sets, enabling developers to

focus on core application business logic instead of worrying about basic data management

infrastructure.

Modern service oriented clients and server infrastructures automatically handle temporary

disconnects, ensuring reliable delivery of data to and from the client application.

4.7 Data push

Some services offer data-push capability, enabling data to automatically be pushed to the

client application without polling (contrast this pattern to the “Subscribe-Push pattern listed

above). This can be done via intuitive or inference methods to ensure data is provided as

required. This highly scalable capability can push data to thousands of concurrent users,

providing up-to-the-second views of critical data, such as stock trader applications, live

resource monitoring, shop floor automation, and more.

Data push can be further specialized into broadcast, unicast, multicast, and several other

specializations of the basic pattern.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 24: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

5.0 SOA Benefits

SOA enables development of a new generation of dynamic applications that address a

number of top-level business concerns that are central to grow and competitiveness. It

provides the framework through which to simplify the creation and management of

integrated systems and applications, and a way to align IT assets with the business model

and changing business needs. The benefits of implementing SOA include:

Enhanced business decision making:

By aggregating access to business services and information into a set of dynamic, composite

business applications, decision makers gain more accurate and more comprehensive

information.

Greater employee productivity:

By providing streamlined access to systems and information and enabling business process

improvement, businesses can drive greater employee productivity.

Stronger connections with customers and suppliers:

The benefits of SOA extend beyond organizational boundaries. Mergers and acquisitions

become more profitable, since it is easier to integrate disparate systems and applications.

Integration with trading partners and streamlining of supply chain processes are readily

attainable goals.

More productive, more flexible applications:

The service oriented approach enables IT to make existing IT assets—including legacy

systems and applications—more productive and more profitable to the business without the

need for custom-coded one-off integration solutions.

Faster, more cost-effective application development:

Standards-based service design enables IT to create a repository of reusable services that

can be combined into higher level services and composite applications as new business

needs arise.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 25: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

More manageable and secure applications:

Service oriented solutions provide a common infrastructure (and documentation) for

developing secure, monitored, and predictable services. As business needs change, SOA

makes it easier to add in new services and capabilities that map onto critical business

processes.

Web 2.0:

The term Web 2.0 is associated with web applications that facilitate participatory

information sharing, interoperability, user-centered design, and collaboration on the World

Wide Web. A Web 2.0 site allows users to interact and collaborate with each other in a

social media dialogue as creators (prosumers) of user-generated content in a virtual

community, in contrast to websites where users (consumers) are limited to the passive

viewing of content that was created for them. Examples of Web 2.0 include social

networking sites, blogs, wikis, video sharing sites, hosted services, web applications,

mashups and folksonomies.

The term is closely associated with Tim O'Reilly because of the O'Reilly Media Web 2.0

conference in late 2004. Although the term suggests a new version of the World Wide Web,

it does not refer to an update to any technical specification, but rather to cumulative

changes in the ways software developers and end-users use the Web. Whether Web 2.0 is

qualitatively different from prior web technologies has been challenged by World Wide Web

inventor Tim Berners-Lee, who called the term a "piece of jargon", precisely because he

intended the Web in his vision as "a collaborative medium, a place where we [could] all

meet and read and write". He called it the "Read/Write Web"

Web 2.0 Technologies

The client-side/web browser technologies used in Web 2.0 development are Asynchronous

JavaScript and XML (Ajax), Adobe Flash and the Adobe Flex framework, and JavaScript/Ajax

frameworks such as Yahoo! UI Library, Dojo Toolkit, MooTools, and jQuery. Ajax

programming uses JavaScript to upload and download new data from the web server

without undergoing a full page reload.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 26: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

To allow users to continue to interact with the page, communications such as data requests

going to the server are separated from data coming back to the page (asynchronously).

Otherwise, the user would have to routinely wait for the data to come back before they can

do anything else on that page, just as a user has to wait for a page to complete the reload.

This also increases overall performance of the site, as the sending of requests can complete

quicker independent of blocking and queuing required to send data back to the client.

The data fetched by an Ajax request is typically formatted in XML or JSON (JavaScript Object

Notation) format, two widely used structured data formats. Since both of these formats are

natively understood by JavaScript, a programmer can easily use them to transmit structured

data in their web application. When this data is received via Ajax, the JavaScript program

then uses the Document Object Model (DOM) to dynamically update the web page based

on the new data, allowing for a rapid and interactive user experience. In short, using these

techniques, Web designers can make their pages function like desktop applications. For

example, Google Docs uses this technique to create a Web-based word processor.

Adobe Flex is another technology often used in Web 2.0 applications. Compared to

JavaScript libraries like jQuery, Flex makes it easier for programmers to populate large data

grids, charts, and other heavy user interactions.[22] Applications programmed in Flex, are

compiled and displayed as Flash within the browser. As a widely available plugin

independent of W3C (World Wide Web Consortium, the governing body of web standards

and protocols), standards, Flash is capable of doing many things which were not possible pre

HTML 5, the language used to construct web pages. Of Flash's many capabilities, the most

commonly used in Web 2.0 is its ability to play audio and video files. This has allowed for the

creation of Web 2.0 sites where video media is seamlessly integrated with standard HTML.

In addition to Flash and Ajax, JavaScript/Ajax frameworks have recently become a very

popular means of creating Web 2.0 sites. At their core, these frameworks do not use

technology any different from JavaScript, Ajax, and the DOM. What frameworks do is

smooth over inconsistencies between web browsers and extend the functionality available

to developers. Many of them also come with customizable, prefabricated 'widgets' that

accomplish such common tasks as picking a date from a calendar, displaying a data chart, or

making a tabbed panel.

On the server side, Web 2.0 uses many of the same technologies as Web 1.0. New languages

such as PHP, Ruby, ColdFusion, Perl, Python, JSP and ASP are used by developers to

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 27: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

dynamically output data using information from files and databases. What has begun to

change in Web 2.0 is the way this data is formatted. In the early days of the Internet, there

was little need for different websites to communicate with each other and share data. In the

new "participatory web", however, sharing data between sites has become an essential

capability. To share its data with other sites, a web site must be able to generate output in

machine-readable formats such as XML, RSS, and JSON. When a site's data is available in

one of these formats, another website can use it to integrate a portion of that site's

functionality into itself, linking the two together. When this design pattern is implemented,

it ultimately leads to data that is both easier to find and more thoroughly categorized, a

hallmark of the philosophy behind the Web 2.0 movement.

In brief, AJAX is a key technology used to build Web 2.0 because it provides rich user

experience and works with any browser whether it is Firefox, Internet Explorer or another

popular browser. Then, a language with very good web services support should be used to

build Web 2.0 applications. In addition, the language used should be iterative meaning that

it will help easy and fast the addition and deployment of features.

Concepts

Web 2.0 can be described in 3 parts which are as follows:

Rich Internet Application (RIA) - It defines the experience brought from desktop to

browser whether it is from a graphical point of view or usability point of view. Some

buzz words related to RIA are AJAX and Flash.

Service-oriented Architecture (SOA) - It is a key piece in Web 2.0 which defines how

Web 2.0 applications expose its functionality so that other applications can leverage

and integrate the functionality providing a set of much richer applications (Examples

are: Feeds, RSS, Web Services, Mash-ups)

Social Web - It defines how Web 2.0 tends to interact much more with the end user

and making the end user an integral part.

As such, Web 2.0 draws together the capabilities of client- and server-side software, content

syndication and the use of network protocols. Standards-oriented web browsers may use

plug-ins and software extensions to handle the content and the user interactions. Web 2.0

sites provide users with information storage, creation, and dissemination capabilities that

were not possible in the environment now known as "Web 1.0".

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 28: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Web 2.0 websites include the following features and techniques: Andrew McAfee used the

acronym SLATES to refer to them

Search

Finding information through keyword search.

Links

Connects information together into a meaningful information ecosystem using the

model of the Web, and provides low-barrier social tools.

Authoring

The ability to create and update content leads to the collaborative work of many

rather than just a few web authors. In wikis, users may extend, undo and redo each

other's work. In blogs, posts and the comments of individuals build up over time.

Tags

Categorization of content by users adding "tags" - short, usually one-word

descriptions - to facilitate searching, without dependence on pre-made categories.

Collections of tags created by many users within a single system may be referred to

as "folksonomies" (i.e., folk taxonomies).

Extensions

Software that makes the Web an application platform as well as a document server.

These include software like Adobe Reader, Adobe Flash player, Microsoft Silverlight,

ActiveX, Oracle Java, Quicktime, Windows Media, etc.

Signals The use of syndication technology such as RSS to notify users of content changes.

While SLATES forms the basic framework of Enterprise 2.0, it does not contradict all of the

higher level Web 2.0 design patterns and business models. In this way, a new Web 2.0

report from O'Reilly is quite effective and diligent in interweaving the story of Web 2.0 with

the specific aspects of Enterprise 2.0. It includes discussions of self-service IT, the long tail of

enterprise IT demand, and many other consequences of the Web 2.0 era in the enterprise.

The report also makes many sensible recommendations around starting small with pilot

projects and measuring results, among a fairly long list.

Web2.0 Usage

A third important part of Web 2.0 is the social Web, which is a fundamental shift in the way

people communicate. The social web consists of a number of online tools and platforms

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 29: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

where people share their perspectives, opinions, thoughts and experiences. Web 2.0

applications tend to interact much more with the end user. As such, the end user is not only

a user of the application but also a participant by:

Podcasting

Blogging

Tagging

Contributing to RSS

Social bookmarking

Social networking

The popularity of the term Web 2.0, along with the increasing use of blogs, wikis, and social

networking technologies, has led many in academia and business to coin a flurry of 2.0s,

including Library 2.0, Social Work 2.0, Enterprise 2.0, PR 2.0, Classroom 2.0, Publishing 2.0,

Medicine 2.0, Telco 2.0, Travel 2.0, Government 2.0, and even Porn 2.0. Many of these 2.0s

refer to Web 2.0 technologies as the source of the new version in their respective disciplines

and areas.

The meaning of web 2.0 is role dependent, For example, some use Web 2.0 to establish and

maintain relationships through social networks, while some marketing managers might use

this promising technology to "end-run traditionally unresponsive I.T. departments”.

There is a debate over the use of Web 2.0 technologies in mainstream education. Issues

under consideration include the understanding of students' different learning modes; the

conflicts between ideas entrenched in informal on-line communities and educational

establishments' views on the production and authentication of 'formal' knowledge; and

questions about privacy, plagiarism, shared authorship and the ownership of knowledge and

information produced and/or published on line.

Marketing

For marketers, Web 2.0 offers an opportunity to engage consumers. A growing number of

marketers are using Web 2.0 tools to collaborate with consumers on product development,

service enhancement and promotion. Companies can use Web 2.0 tools to improve

collaboration with both its business partners and consumers. Among other things, company

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 30: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

employees have created wikis—Web sites that allow users to add, delete and edit content—

to list answers to frequently asked questions about each product, and consumers have

added significant contributions. Another marketing Web 2.0 lure is to make sure consumers

can use the online community to network among themselves on topics of their own

choosing.

Mainstream media usage of web 2.0 is increasing. Saturating media hubs—like New York

Times, PC Magazine and Business Week—with links to popular new web sites and services,

is critical to achieving the threshold for mass adoption of those services.

Web 2.0 offers financial institutions abundant opportunities to engage with customers.

Networks such as Twitter,Linkedin & Facebook are now becoming common elements of

multichannel and customer loyalty strategies, and banks are beginning to use these sites

proactively to spread their messages. In a recent article for Bank Technology News, Shane

Kite describes how Citigroup's Global Transaction Services unit monitors social media outlets

to address customer issues and improve products. Furthermore, CitiGroup uses Twitter to

release "breaking news" and upcoming events, and YouTube to disseminate videos that

feature executives speaking about market news.

Small businesses have become more competitive by using Web 2.0 marketing strategies to

compete with larger companies. As new businesses grow and develop, new technology is

used to decrease the gap between businesses and customers. Social networks have become

more intuitive and user friendly to provide information that is easily reached by the end

user. For example, companies use Twitter to offer customers coupons and discounts for

products and services.

According to Google Timeline, the term Web 2.0 was discussed and indexed most frequently

in 2005, 2007 and 2008. Its average use is continuously declining by 2–4% per quarter since

April 2008.

Web 2.0 Web-based applications and desktop Applications

Ajax has prompted the development of websites that mimic desktop applications, such as

word processing, the spreadsheet, and slide-show presentation. In 2006 Google, Inc.

acquired one of the best-known sites of this broad class, Writely. WYSIWYG wiki and

blogging sites replicate many features of PC authoring applications.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 31: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Several browser-based "operating systems" have emerged, including EyeOS and YouOS.

Although coined as such, many of these services function less like a traditional operating

system and more as an application platform. They mimic the user experience of desktop

operating-systems, offering features and applications similar to a PC environment, and are

able to run within any modern browser. However, these operating systems do not directly

control the hardware on the client's computer.

Numerous web-based application services appeared during the dot-com bubble of 1997–

2001 and then vanished, having failed to gain a critical mass of customers. In 2005, WebEx

acquired one of the better-known of these, Intranets.com, for $45 million.

Internet applications

Rich Internet Applications (RIAs) are web 2.0 applications that have many of the

characteristics of desktop applications and are typically delivered via a browser.

Distribution of Media

XML and RSS

Many regard syndication of site content as a Web 2.0 feature. Syndication uses standardized

protocols to permit end-users to make use of a site's data in another context (such as

another website, a browser plugin, or a separate desktop application). Protocols which

permit syndication include RSS (really simple syndication, also known as web syndication),

RDF (as in RSS 1.1), and Atom, all of them XML-based formats. Observers have started to

refer to these technologies as web feeds.

Specialized protocols such as FOAF and XFN (both for social networking) extend the

functionality of sites or permit end-users to interact without centralized websites.

Web APIs

Web 2.0 often uses machine-based interactions such as REST and SOAP. Servers often

expose proprietary APIs (Application Programming Interfaces), but standard APIs (for

example, for posting to a blog or notifying a blog update) have also come into use. Most

communications through APIs involve XML or JSON payloads.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 32: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

REST APIs, through their use of self-descriptive messages and hypermedia as the engine of

application state, should be self describing once an entry URI is known. Web Services

Description Language (WSDL) is the standard way of publishing a SOAP API and there are a

range of web service specifications. EMML, or Enterprise Mashup Markup Language by the

Open Mashup Alliance, is an XML markup language for creating enterprise mashups.

Web 2.0 Buzzwords

Here are a few of the buzzwords that are driving the Web 2.0 era:

API: Application Programming Interface is a code interface over which programmer can built

their own applications. APIs make it possible for the programmers to use some great

features on the web without any complex coding.

Atom: Atom is a commonly used syndication format for web feeds. It is based on XML and is

supported by most standard feed readers.

Blog: Blog or a Weblog is an online journal, which provides an easy to use interface for users

to publish content. Blogs enable people to have an online presence without having any

technical knowledge.

Feeds: Feeds allow you to get updates from the websites. It allows you to check the recent

articles and content from web pages on the internet. A person may subscribe to a news feed

to get the latest news right on his desktop.

Folksonomy: Folksonomy is the practice of collaboratively categorizing content by tagging

the content under various connotations. This method is popularly applied in social

bookmarking and tagging webpages and photos.

Mashup: Mashups are a interactive genre of web applications which accumulates data from

various sources and conflates it in a single integrated application. Mashup generally collects

data from Feeds and Web Services.

Microformats: Microformats are a set of simple open data formats, which allows the normal

data in HTML and XHTML to be categorized by providing annotations in the existing markup.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 33: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

It aims at easier access of information such as contact addresses, locations etc making it

easily place able by the searching software.

Perpetual Beta: Perpetual Beta is the software stage where the software is launched and is

always under constant updates, which could be monthly, weekly or even daily. It follows the

principle of "release early and release often", thus software is released at a premature state

and new features are added frequently.

Podcast: Podcast is a form of a feed carrying digital media files which could be downloaded

or streamed on media players. Online radio is a well comprehensible example of a podcast.

RSS: Really Simple Syndication is a collection of feed formats. It is used to syndicate updated

content from a website.

SEO: Search Engine Optimization is a process of improving your rankings on the search

engines by using a set of techniques, which include ameliorating the quality of content and

code of the website, placing links at strategic locations on the web and adhering to some

web standards.

Social Bookmarking: Social Bookmarking is a folksonomy practice through which users

bookmark pages on the web and create custom tags to annotate these pages.

Social Networking: Social networking is a method to promote online collaboration of people

by creating communities of (net) citizens with similar interests. It is a popular method to

connect with friends online.

Tagging:

Tagging is a practice of annotating the web content by creating tags or keywords to identify

them.

Web Service: Web Services are the modules enable a programmer to use these modules in

their programs without actually coding them. It allows machine to machine data transfer

between applications in XML format that follow the SOAP standard.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 34: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Wiki: Wiki is a web application which allows you to easily create and edit content on the

web. It is used to create collaborative websites and is a great tool for social content creation

and organization.

XML: eXtensible Markup Language is a markup language which allows users to generate

their own tags. It enables creation of structured data that could be easily exchanged over

the web.

3.2 Web 1.0 vs. Web 2.0

The transition from Web 1.0 to Web 2.0 can be effectively presented by the following

transformations:

Read only to read/write web

Less user generated content to more

250,000 sites to about 80 million sites (2006) and crossed 100 million in 2010.

45 million users to 1.5 billion users and still growing rapidly

Static published content to user contributed dynamic published content.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 35: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Convergence of SOA and Web 2.0

There are at least two significant connection points which relate Web 2.0 and SOA. One is

that Web 2.0 can be conceptualized as a global SOA. Two, that many traditional brick and

mortar business that are currently using SOA as their architectural model will want to

connect their Web/Web 2.0 faces up to their SOA. This makes Web 2.0 not just being the

Global SOA but makes meeting smaller SOAs everywhere not just likely, but inevitable. Note

that the respected industry analysis firm, Gartner, recently said that by 2008 80% of all

software development will be based on SOA. And interestingly by 2006, Gartner believes

that 60% of the $527 billion IT professional services industry will be based on exploiting Web

services and technology. We're talking serious convergence of focus here folks. If true, this

means that more than half of all software development, SOA and otherwise, will revolve

around the Web, inside or outside organization boundaries. All of this means Web 2.0 and

SOA will meet each other both coming and going, and begin to become each other as well.

Figure 1: Differences and Similarities between Web 2.0 and SOA

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 36: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Software as a Service

Another concept closely related to SOA is the notion of Software as a Service (SaaS).Simply

put, SaaS can be defined as "software deployed as a hosted service and accessed over the

Internet."

SaaS as a concept is often associated with the application service providers (ASPs) of the

1990s, which provided "shrink-wrap" applications to business users over the Internet. These

early attempts at Internet-delivered software had more in common with traditional on

premise applications than with modern SaaS applications in some ways, such as licensing

and architecture. Because these applications were originally built as single tenant

applications, their ability to share data and processes with other applications was limited,

and they tended to offer few economic benefits over their locally installed counterparts.

Today, SaaS applications are expected to take advantage of the benefits of centralization

through a single-instance, multi-tenant architecture, and to provide a feature-rich

experience competitive with comparable on-premise applications. A typical SaaS application

is offered either directly by the vendor or by an intermediary party called an aggregator,

which bundles SaaS offerings from different vendors and offers them as part of a unified

application platform.

In contrast to the one-time licensing model commonly used for on-premise

software, SaaS application access is frequently sold using a subscription model, with

customers paying an ongoing fee to use the application. Fee structures vary from

application to application; some providers charge a flat rate for unlimited access to some or

all of the application's features, while others charge varying rates that are based on usage.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 37: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

Web Technologies

The web technologies used for SOA and Web 2.0 can be divided into four classes: Client

Side, Server Side, Web Services and Mashups. The subsequent sections will provide the

details about these.

6.1 Client Side Technologies

The client side technologies are a set of programming methodologies which are sent as

raw code to the client and are rendered by the application running on the user’s system.

Some of the commonly used technologies are:

XHTML: eXtensible HyperText Markup Language is a standard W3C markup language, which

is a reformation of HTML adhering to the XML standard.

CSS: Cascading Style Sheets is a W3C standard for defining styles of the elements on a web

page. It enables the separation of content from the layout, thus providing more flexibility

and control of the elements on a web page. Also, it enables layering of the content on the

page.

AJAX: Asynchronous JavaScript and XML is a scripting technique to develop interactive and

fast web applications with enhanced functionality. The most commendable feature of AJAX

is its ability of partial exchange of data with the server, enabling the changes to appear on

the browser without reloading the complete page.

VRML: Virtual Reality Modeling Language is a standard file format for representing 3-

dimensional (3D) interactive vector graphics, designed particularly for the Internet.

6.2 Server Side Technologies

Server Side technologies are a group of languages used to program the functionalities which

have to be executed on the server. The most common examples of such functionality are

the applications which require accessing the database. Some commonly used server side

technologies are as follows:

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 38: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

ASP.NET: ASP.NET is a web application framework marketed by Microsoft that programmers

can use to build dynamic web sites, web applications and XML web services. It is part of

Microsoft's .NET platform and is the successor to Microsoft's Active Server Pages (ASP)

technology. ASP.NET is built on the Common Language Runtime, allowing programmers to

write ASP.NET code using any Microsoft .NET language.

PHP: PHP Hypertext Preprocessor is an open-source web scripting language to generate

dynamic web pages. It can also be used from a command line interface or in standalone

graphical applications.

CGI: Common Gateway Interface is a standard protocol for interfacing external application

software with an information server, commonly a web server. This allows the server to pass

requests from a client web browser to the external application. The web server can then

return the output from the application to the web browser. The external application may be

written in any high level language like C++, Pearl etc.

JSP: Java Server Pages is a Java technology that allows software developers to dynamically

generate HTML, XML or other types of documents in response to a Web client request. The

technology allows Java code and certain pre-defined actions to be embedded into static

content.

6.3 Web Services

The W3C defines a Web Service as "a software system designed to support interoperable

Machine to Machine interaction over a network." Web services are frequently just Web APIs

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 39: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

that can be accessed over a network, such as the Internet, and executed on a remote

system hosting the requested services. The W3C Web service definition encompasses many

different systems, but in common usage the term refers to clients and servers that

communicate using XML messages that follow the SOAP standard. Common in both the field

and the terminology is the assumption that there is also a machine readable description of

the operations supported by the server written in the Web Services Description Language

(WSDL).

Simple Object Access Protocol (SOAP): An XML-based, extensible message envelope format

with "bindings" to underlying protocols. The primary protocols are HTTP and HTTPS,

although bindings for others, including SMTP and XMPP, have been written.

Web Services Description Language (WSDL): An XML format that allows service interfaces

to be described along with the details of their bindings to specific protocols. Typically used

to generate server and client code, and for configuration.

Universal Description Discovery and Integration (UDDI): A protocol for publishing and

discovering metadata about Web services that enables applications to find them, either at

design time or runtime.

6.4 Mashups

Mashups are an interactive genre of web applications which accumulates data from various

sources and conflates it in a single integrated application. Mashup generally collects data

from Web feeds (e.g. RSS or Atom), web services and screen scraping. A mashup application

is architecturally comprised of three different participants that are logically and physically

disjoint (they are likely separated by both network and organizational boundaries):

API/content providers, the mashup site, and the client's Web browser.

Much like how blogs revolutionized online publishing, mashups are revolutionizing

web development by giving creative power to the masses. Many mashups are relatively easy

to design with minimal technical knowledge, and thus custom mashups are being designed

by unlikely innovators, utilizing data in creative and unique ways. While there are several

useful mashups, many are simple novelties or gimmicks, with minimal practical utility.

Mashups are certainly an exciting new genre of Web applications. The

combination of data modeling technologies stemming from the Semantic Web domain and

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 40: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

the maturation of loosely-coupled, service-oriented, platform-agnostic communication

protocols is finally providing the infrastructure needed to start developing applications that

can leverage and integrate the massive amount of information that is available on the Web.

As mashup applications gain higher visibility, it will be interesting to see how the genre

impacts social issues such as fair-use and intellectual property as well as other application

domains that integrate data across organizational boundaries, such as grid computing and

business-to-business workflow management.

Web 3.0

Definitions of Web 3.0 vary greatly. Some believe its most important features are the

Semantic Web and personalization. Focusing on the computer elements, Conrad Wolfram

has argued that Web 3.0 is where "the computer is generating new information", rather

than humans.

Andrew Keen, author of The Cult of the Amateur, considers the Semantic Web an

"unrealisable abstraction" and sees Web 3.0 as the return of experts and authorities to the

Web. For example, he points to Bertelsmann's deal with the German Wikipedia to produce

an edited print version of that encyclopedia. CNN Money's Jessi Hempel expects Web 3.0 to

emerge from new and innovative Web 2.0 services with a profitable business model. Others

still such as Manoj Sharma, an organization strategist, in the keynote "A Brave New World

Of Web 3.0" proposes that Web 3.0 will be a "Totally Integrated World" - cradle-to-grave

experience of being always plugged onto the net.

Futurist John Smart, lead author of the Metaverse Roadmap echoes Sharma's perspective,

defining Web 3.0 as the first-generation Metaverse (convergence of the virtual and physical

world), a web development layer that includes TV-quality open video, 3D simulations,

augmented reality, human-constructed semantic standards, and pervasive broadband,

wireless, and sensors. Web 3.0's early geosocial (Foursquare, etc.) and augmented reality

(Layar, etc.) webs are an extension of Web 2.0's participatory technologies and social

networks (Facebook, etc.) into 3D space. Of all its metaverse-like developments, Smart

suggests Web 3.0's most defining characteristic will be the mass diffusion of NTSC-or-better

quality open video to TVs, laptops, tablets, and mobile devices, a time when "the internet

swallows the television. Smart considers Web 4.0 to be the Semantic Web and in particular,

the rise of statistical, machine-constructed semantic tags and algorithms, driven by broad

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])

Page 41: Service oriented architecture & web 2.0

Service Oriented Architecture and Web 2.0: A Report

collective use of conversational interfaces, perhaps circa 2020. David Siegel's perspective in

Pull: the Power of the Semantic Web, 2009, is consonant with this, proposing that the

growth of human-constructed semantic standards and data will be a slow, industry-specific

incremental process for years to come, perhaps unlikely to tip into broad social utility until

after 2020.

According to some Internet experts Web 3.0 will allow the user to sit back and let the

Internet do all of the work for them. Rather than having search engines gear towards your

keywords, the search engines will gear towards the user. Keywords will be searched based

on your culture, region, and jargon. For example, when going on a vacation you have to do

separate searches for your airline ticket, your hotel reservations, and your car rental. With

Web 3.0 you will be able to do all of this in one simple search. The search engine will

present the results in a comparative and easily navigated way to the user.

By: Abhik Tushar Das ([email protected]) & Anil Kumar Sahu ([email protected])