Upload
virtual-campus
View
357
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
www.s-cube-network.eu
S-Cube Learning Package
Designing and migrating Service-Based Applications:
Impact of SBA design on Global Software Development
Politecnico di Milano (POLIMI), Lero – University of
Limerick (LERO), VU University Amsterdam (VUA)
Elisabetta Di Nitto (POLIMI), Sajid Ibrahim Hashmi (Lero),
Damian A. Tamburri (VUA)
© Di Nitto, Hashimi, Tamburri
Learning Package Categorization
S-Cube
Engineering Principles, Techniques & Methodologies
Designing and migrating Service-Based Applications
Impact of SBA design on Global Software Development
Learning Package Overview
Problem Description (Global Software Development –
GSD)
How SOA technology can help GSD
How Cloud computing can facilitate GSD
How Agile Service Networks can help GSD
Discussion
Conclusions
© Di Nitto, Hashimi, Tamburri
Definition
GSD: software development work undertaken at
geographically separated locations across national and
organizational boundaries in a coordinated fashion involving
real time (synchronous) and asynchronous interaction
4
Why?
Achieve cost benefits
Manage shortage in specific skills
Need of customer proximity
National legislations
Flexible resource capacity
Reduced time to market (work around the clock)
Open source development
5
Why?
…crossing geographical and organizational boundaries
6
21st Century
Different flavors of GSD
Distributing work
– within the same organization → offshoring
– across organizations → outsourcing
Partitioning work per phases
– Delegating testing
– Delegating maintenance
– Delegating customization
Distributed development
Open source development
7
Global Software Development Challenges
Collaboration
Challenges
Issues Negative Impact on Software
Project
Facilitating GSD Using Services (SOA/Cloud )
Geographic
Distance
Time
Knowledge
transfer
Tools
Communication gaps
Project Delays
Ambiguity on technical aspects
Unequal quality levels across
the sites
Dynamic binding, runtime adaptation, and timely
availability of required services could help dealing
with geographic issues. Also, availability of
SaaS could diminish installation overheads
Cultural
Unequal
distribution of
work
Lack of Trust
Fear
Increase in cost
Poor skill management
Reporting problems
Service could maintain a fair distribution of work
between the teams. Only a specific person will be
responsible for the task assigned to
Linguistics
Frequency of
communication
Knowledge
transfer
Loss in project quality
Invisibility on project
development
Ineffective project management
Run time evolution of services can meet with the
linguistic issues. Also, isolation of each task and
related information as a service can ensure right
level of knowledge transfer
Temporal
Lack of
Motivation
Less visibility
Risk
Loss in Project Quality
Poor management of
configuration
Chances of project artifact loss
Services maintain a registry where all of them are
stored. Also, a cloud maintains inventory of
services. This attribute could be used to store and
retrieve configurations
State of the art in GSD
Specific proposals for
– Tools to support communication, coordination, knowledge sharing,
awareness
– Best practices
– Distributed development models
Empirical studies
9
Distributed development models (an example [Beecham et al 2010])
10
Specific Goal 1:
Define Global Project Management
Determine team and
organizational structure
between locations
Determine the approach
to task allocation
between locations
Identify business
competencies required
by team members in
each location
Identify cultural
requirements of each
local sub-team
Identify communication
skills for GSE
Establish relevant criteria
for training
Sp
ecific
Pra
ctice S
P 1
.2
Know
ledge a
nd S
kill
s
Identify GSE project
management tasks
Assign tasks to
appropriate team
members
Ensure awareness of
cultural profiles by
project managers
Establish cooperation
and coordination
procedures between
locations
Establish reporting
procedures between
locations
Establish a risk
management strategy
Empirical studies
Have shown, among others, that
– Outsourcing may require more people [Herbsleb and Mockus
2003]
– Quality of software does not necessarily decrease, at least for
internal global development [Bird et al. 2009]
– Architectural rules help in addressing GSD issues [Clerc et al
2007]
– A well modularized architecture can reduce communication
needs and keep organizational structure stable [Avritzer et al.
2010]
11
State of the art: SOA and GSD
• To our knowledge, no systematic study on the implications of SOA on
GSD (and vice versa)
- In [Avritzer et al. 2010] the case study is a SOA
- In [Hartman 2008] an experience adopting an ESB is reported
12
Learning Package Overview
Problem Description (Global Software Development – GSD)
How SOA can help GSD
How Cloud computing can facilitate GSD
How Agile Service Networks can help GSD
Discussion
Conclusions
© Di Nitto, Hashimi, Tamburri
SOA for GSD
SOA supports
– Increased modularity and good decoupling
– Clear division of work
– Adoption of standards
Various degrees of SOA adoption possible in GDS
– Service development distribution/outsourcing
– Service provision
– Dynamic adoption of external services
14
Distributing/outsourcing service development
SOA used as an
integration technology
Development of single
services can be
outsourced
Business logic
developed by a single
team near the
customer location
WSDL
WSDL
A1 A5
A3
A2
A4
A6
A7
15
Distributing/outsourcing service development Impact on GSD issues (1)
GSD team composed of
– Key team focusing on main logic development
– Satellite teams managing services
Criterion for task allocation
– Transfer by functionality
16
Distributing/outsourcing service development Impact on GSD issues (2)
Communication
– Through service interface definition
Coordination
– Possibly reduced if composition logic is developed
when services are already available
Cultural differences
– Extensive use of standard
Knowledge management
– Service registries
17
The SP approach
Services offered by
Service Providers (SP)
are exploited
The system runs on
different domains
Proper SLAs should be
established beforehand
WSDL
WSDL
A1 A5
A3
A2
A4
A6
A7
18
The SP approach Impact on GSD issues
More than outsourcing
– Execution of services is in the hands of SP
Team organization
– New stakeholders: service provider, service certifier
Trust
– Need to define, monitor and enforce SLAs
Not only GSD, but Global Software Engineering!
19
Dynamic adoption of external services
Services are
discovered and bound
on the fly
WSDL
WSDL
A1 A5
A3
A2
A4
A6
A7
20
Dynamic adoption of external services Impact on GSD issues (1)
More emphasis on runtime GSE activities
– Monitoring
– Dynamic adaptation and evolution of systems
Evolution
– Services can evolve independently of logic
- Highlights an implicit dependency between organizations
– Requirements for evolution identified within logic are not necessarily
fulfilled by services
21
Dynamic adoption of external services Impact on GSD issues (2)
Problem of trust
– Service providers may be unknown
– Need to focus on dynamic establishment of proper SLAs
Advantages can arise not only from cooperation but also
from competition
– Competing teams offer services
– Logic selects among them
22
Learning Package Overview
Problem Description (Global Software Development – GSD)
How SOA can help GSD
How Cloud computing can facilitate GSD
How Cloud computing can facilitate GSD
How Agile Service Networks can help GSD
Discussion
Conclusions
© Di Nitto, Hashimi, Tamburri
Cloud Computing
Cloud computing is a computing paradigm in which both
hardware and software resources are provided on demand.
It has the following representations:
– IaaS (Infrastructure as a service)
– PaaS (Platform as a Service)
– SaaS (Software as a Service)
The cloud paradigm is famous for its flexibility, scalability,
independence, and reduced cost
Changing perspective…
… So far SOA as the architecture for the product …
Another perspective: Software As A Service (SAAS)
to support the GSD process
– Always-on IT services
– Can support development,
QA, operation
– [Yara et al. 2009]
25
IAAS
PAAS
SAAS
Research Question
• Is it possible to support collaboration in GSD using cloud
computing?
- As a Process (Implications for the GSD business model)
- As a Product (It is developed run and distributed globally)
For this purpose, we suggest making use of cloud computing
paradigm
The goal is to enhance the usefulness of GSD using the cloud
services
The data in the cloud is accessed through services, we study
its usefulness in the light of SOA
We argue that GSD challenges can be addressed using
different types of cloud computing realizations
Objectives of the Research
The research proposes the development of GSD process
activities using the cloud services
We discuss how the GSD process can be aligned with SAAS
How GSD products can be implemented using services
Although some web tools support GSD communication
processes but the question remains
– How GSD processes can work better by making use of SAAS?
Research Methodology
Our literature review studied the characteristics of services
(both SOA and the cloud)
GSD challenges were identified
A workshop was held by Lero, VUA, PoliMi, the attendees had
research expertise in GSD, SOA, and cloud computing
– We developed the proposed concept through interactive discussion
and brainstorming
– We investigated the potential of SOA based cloud services to address
GSD challenges
Supporting Characteristics of the Cloud Computing
Virtualization
Because of the virtualization technique, physical resources can be shared among all users and
there is efficient resource management which can provide higher resource utilization and on-
demand scalability.
Reduced Cost
Cloud computing not only reduces cost of usage of resources but also reduces maintenance
cost of resources for the users
Scalability
Cloud computing can support on-demand scalability. An application with occasional demand
for higher resources will pay for the higher resources only the time it is used instead of leasing
all the resources from the very beginning in anticipation of future need
Infrastructure
Cloud infrastructure can support multiple protocols and change in business model for
applications more rapidly
Performance
It can also handle increased performance requirements like service scaling, response time,
and availability of the application, as the cloud infrastructure is a huge pool of resources like
servers, storage and network and provide elasticity of growth to the end users
Multi tenancy
support
With the ability to cater multiple clients with shared resources, applications in the form of
services (can) run on these clouds
Motive for Using the Cloud to Support GSD
Standard procedures cannot scale up to support dynamism
Similar ideology posed by both SOA and GSD; e.g.
coordination, context, and execution monitoring
Our thesis is that GSD challenges can be overcome through
SOA support
– To increase interoperability, diversification, and business and
technology alignment
– to improve the collective effectiveness of the enterprises participating
in globally distributed projects
GSD Process as a Service
Figure illustrates the concept of using the cloud paradigm to
support GSD
The idea is to reduce the challenges caused by global
distance
GSD Challenges and the Cloud
Coordination
Coordination requires interaction among sequence of
operations but Geographic distance negatively affects the
ability to coordinate
Cloud services may ensure interactions among different
activities
In Services, interaction between the service provider and the
consumer is independent of the geographic distance
It can allow resources sharing not only for infrastructure but
also software resources
GSD Challenges and the Cloud
– IaaS can provide GSD teams with resources such as computing power
and storage provisioning to store project related data
– Software resources may consist of application systems and database
servers
– Application resources can assist in providing SaaS with necessary
interfaces that can facilitate collaboration and sharing of information
GSD Challenges and the Cloud
Collaboration
Geographic distance affects the ability to collaborate.
Communication and collaboration declines as the distance
increases
Cloud service based collaboration is likely to diminish the
deficiency caused by distance
– Business process can facilitate the optimization of over all software
development
– The services involved in a business can change with the change in the
associated business in terms of requirements
GSD Challenges and the Cloud
Geographic Distance
Distance removes the opportunity for face to face
communication
The philosophy of the cloud paradigm is to facilitate a pool of
shared hardware & software resources
– PaaS can provide a development platform to assist development and
hosting on the cloud
– It does not require any kind of software downloads and installations
– Services become part of GSD processes being provided by the
outsourcing organizations
Learning Package Overview
Problem Description (Global Software Development – GSD)
How SOA can help GSD
How Cloud computing can facilitate GSD
How Agile Service Networks can help GSD
Discussion
Conclusions
© Di Nitto, Hashimi, Tamburri
Motivation: what can be done…
“Tackle socio-cultural diversity and time/space distance in GSD ”
“Produce an adaptable social network for IT professionals”
Social ASN for IT professionals
ASNs
OSSs
How?
CC
• Based on ASNs
• Featuring a socio-organizational
model for knowledge sharing in
(and among) Organizations
• Deployed in the Cloud
Features
Agile Service Networks: Definition
ASNs
Dynamism
Collaborative Business
oriented
Emergence
ASNs are:
“dynamically emerging
networks of service-
oriented applications
(Nodes) collaborating
to achieve business
gain.
Context adaptation is
used to achieve
agility.”
ASNs Characteristics: Dynamism
ASNs
Dynamism
Collaborative Business
oriented
Emergence
In our case: • Awareness of the
socio-organizational
context
• Adaptability to its
changes
“ASNs are aware of
their context and
can adapt to its
changes”
ASNs Characteristics:Collaborativeness
ASNs
Dynamism
Collaborative Business
oriented
Emergence
“ASN nodes work
cohesively towards a
common goal (e.g.
business gain)”
In our case: • Nodes are in a social
ASN
• They collaborate to
develop software
globally
ASNs Characteristics: Business-Oriented
ASNs
Dynamism
Collaborative Business
oriented
Emergence
“ASNs are stemming
from a corporate
business strategy”
In our case, nodes
are: • global resources, part
of an organization
• collaborate in the
business process of
global development
ASNs Characteristics: Emergence
ASNs
Dynamism
Collaborative Business
oriented
Emergence
“ASNs can
dynamically
retrieve and
connect nodes”
In our case: • Nodes are
development
resources
• Emergence of ASNs
allows resources to
be (re-)allocated on
need
Learning Package Overview
Problem Description (Global Software Development – GSD)
How SOA can help GSD
How Cloud computing can facilitate GSD
How Agile Service Networks can help GSD
Discussion
Conclusions
© Di Nitto, Hashimi, Tamburri
Some open research questions (1)
Can the adoption of SOA (specific architecture + set of
standards) help in improving quality of GSD?
To what extent GSD practices are useful in a SOA setting?
How do the following issues impact GSD?
– Competition between team
– New stakeholders and new relationships to manage
– New runtime issues
– Implicit dependencies in evolution
44
Some open research questions (2)
Can GSD enterprises organize themselves as an ASN?
– [Budge 2008] shows an example of this at Microsoft
Can SOA/SAAS offer the proper infrastructure to support
GSD?
– What is the right level of abstraction for project knowledge transfer
across global software development sites?
– How to handle the privacy and security issues that emerge?
45
Learning Package Overview
Problem Description (Global Software Development – GSD)
How SOA can help GSD
How Cloud computing can facilitate GSD
How Agile Service Networks can help GSD
Discussion
Conclusions
© Di Nitto, Hashimi, Tamburri
What we learnt
Frequently mentioned reasons for GSD
– Cost, vicinity to customers, availability of expertise …
… SOA can add new reasons
– Availability of suitable and cost-effective services
– Advantages in servicing existing components
… And new issues
– Runtime aspects, new stakeholders, evolution issues, SLAs,
competition
ASNs can be used to support global development, we have a
context model to show for it [ECSA2011]
ASNs are feasible FOR and IN the cloud [SERVICES2011]
47
Further S-Cube Reading
[SERVICES2011] Tamburri, D. A. & Lago, P.
Satisfying Cloud Computing Requirements Through Agile Service
Networks
Proceedings of IEEE SERVICES 2011
[ECSA2011] Tamburri, D. A. & Lago, P.
Supporting Communication and Cooperation in Global Software
Development with Agile Service Networks
in ECSA 2011, 2011
[REMIDI2011] Hashmi, S., Clerc, V., Razavian, M., Manteli, C., Lago, P.,
Di Nitto, E., and Richardson, I. "Software as a Service on the Cloud to
Support Global Software Development", in proceedings of the 5th
International Workshop on Tool Support and Requirements Management
in Distributed Projects (REMIDI'11), 6th International Conference on
Global Software Engineering (ICGSE 2011), IEEE Computer Society,
2011.
© Di Nitto, Hashimi, Tamburri
Acknowledgements
The research leading to these results has
received funding from the European
Community’s Seventh Framework
Programme [FP7/2007-2013] under grant
agreement 215483 (S-Cube).
© Di Nitto, Hashimi, Tamburri