Você está na página 1de 140

CHAPTER 1

INTRODUCTION

1
1.1 Objective

MOBILE devices are increasingly becoming an essential part of our


everyday life due to the rapid reduction in cost of hardware, improved
portability, and increasing computational capability.

The built-in data exchange feature in the modern mobile devices


allows the users to run powerful web applications such as mobile
banking, online gaming, video and image processing, online shopping,
health management, and finance management. All these applications
deal with real-time data streaming. Although the mobile devices have
improved hardware and software, their limited energy source is a
persistent problem. Consequently, executing computationally
intensive applications on mobile devices remains a standing issue in
mobile networks.

MCC is an integration of cloud computing into the mobile


environment. In MCC, the data processing and storing applications
are moved from the mobile devices to the servers in a cloud, and,
thus, improves the efficiency and lifetime of the mobile devices.

In case of high computational resource and application


requirements such as video streaming, audio, and data services, the
mobile users request services from the cloud servers through an
interfacing gateway.

The gateway communicates with the cloud service provider (CSP) for
allocating shared resources which are required for resolving the
mobile user’s request. Thereafter, connection is set up between the
mobile user and the cloud server through the interfacing gateway,
and, then, the mobile user is capacitated to use the resources of the
cloud servers. At this juncture, we mention that the words “node”,
“device”, and “user” are used interchangeably in the rest of the
manuscript.

2
1.2 ORGANIZATION PROFILE

Software Solutions is an IT solution provider for a dynamic


environment where business and technology strategies converge.
Their approach focuses on new ways of business combining IT
innovation and adoption while also leveraging an organization’s
current IT assets. Their work with large global corporations and new
products or services and to implement prudent business and
technology strategies in today’s environment.

We apply technology with innovation and responsibility to achieve


two broad objectives:
 Effectively address the business issues our customers face today.
 Generate new opportunities that will help them stay ahead in the
future.

THIS APPROACH RESTS ON:


 A strategy where we architect, integrate and manage technology
services and solutions - we call it AIM for success.
 A robust offshore development methodology and reduced demand
on customer resources.
 A focus on the use of reusable frameworks to provide cost and
times benefits.
They combine the best people, processes and technology to achieve
excellent results - consistency.

We offer customers the advantages of:

SPEED:
They understand the importance of timing, of getting there
before the competition. A rich portfolio of reusable, modular
frameworks helps jump-start projects. Tried and tested methodology
ensures that we follow a predictable, low - risk path to achieve results.
Our track record is testimony to complex projects delivered within and
evens before schedule.
3
EXPERTISE:
Our teams combine cutting edge technology skills with rich
domain expertise. What’s equally important - they share a strong
customer orientation that means they actually start by listening to the
customer. They’re focused on coming up with solutions that serve
customer requirements today and anticipate future needs.

A FULL SERVICE PORTFOLIO:


They offer customers the advantage of being able to Architect,
integrate and manage technology services. This means that they can
rely on one, fully accountable source instead of trying to integrate
disparate multi vendor solutions.

SERVICES:
Services providing its services to companies which are in the
field of production, quality control etc with their rich expertise and
experience and information technology they are in best position to
provide software solutions to distinct business requirements.

4
CHAPTER 2
LITERATURE SURVEY

5
1.A Dynamic Bandwidth Allocator for Virtual Machines in a Cloud
Environment

Cloud computing is an emergent paradigm that allows to


customers to rent infrastructure, platforms and software as a service.
With resource sharing and reuse through virtualization technology,
cloud environments become even more effective and flexible.
Nevertheless, networking within virtualized cloud still presents some
challenges in performance and resource allocation. In this paper, we
propose to integrate an SLA-based Dynamic Bandwidth Allocator
(DBA) in a vitualized cloud environment.

DBA manages bandwidth allocation efficiently through


allocating bandwidth according to the application requirements and
the established agreement. It also adjusts the allocated bandwidth
dynamically upon change and reduces physical resources usage by
dropping packets in the virtual machines rather than the driver
domain. Through experimental evaluation we showed the efficacy of
the proposed algorithm and the agreements respect.

Cloud computing is a new technology trend that is reshaping


the information technology landscape and gaining much of the
interest of industry as well as academia. Cloud computing enables
providers to deliver software, platform and infrastructure as a service
to remote customers over the network. The need behind the cloud
computing is the deployment of large scale data centers at low costs.

Henceforth, customers do not need to plan for provisioning


anymore; they rent computing and networking resources on demand
and increase those resources and pay for them on a short-term basis
as needed. Cloud computing offers cost effectiveness and high
availability of resources. The provider owns a pool of resources that it
configures, adjusts and offers to customers according to Service Level
Agreements (SLAs). When coupled with virtualization, the cloud

6
computing model even enables higher utilization rates while reducing
dedicated hardware costs.

Virtualization is an old technology that gained renewed interest


recently. It basically offers a partitioning technique to run multiple
and isolated virtual machines on a single physical machine. Thus,
virtualization optimizes hardware usage through resource reuse and
multiplexing which decreases the cost of power, hardware and
network bandwidth. Furthermore, through on demand virtual
machine creation and migration and dynamic resource allocation it
enables flexible, scalable and cost effective virtualized data centers
deployment.

A Virtual Machine Monitor (VMM) is a software layer that


manages resource sharing among the concurrent virtual machines
(VMs) and ensures that diverse and different applications run in
isolated environments. The driver domain is a special virtual machine
that is in charge of managing the shared access to the devices,
especially the network interface card (NIC). The driver domain handles
networking by multiplexing outgoing and demultiplexing incoming
traffic. This additional layer in the packets path obviously incurs an
additional overhead.

The I/O mechanism of the VMM consists in copying the packets


to the shared memory between the driver domain and the virtual
machine. This costly mechanism is behind this additional overhead.
Although there are compelling advantages behind virtualizing the
cloud computing infrastructure, there are still performance issues
that need to be addressed before virtualizing the data centers could be
fully advantageous.
Indeed, concurrent applications share equally the available
bandwidth. Current VMMs only offer a static allocation of the
bandwidth. In this paper, we propose an SLA aware Dynamic
Bandwidth Allocation algorithm that dynamically manages bandwidth
7
allocation among virtual machines according to their priorities while
minimizing physical resources consumption. The remainder of this
paper is organized as follows: Section 2 describes the background of
our work. We state the problem in section 3 and introduce related
work in section 4. In section 5 we detail the proposed solution and its
experimental evaluation. Finally, section 6 concludes the paper and
introduces our future work.

2. Dynamic Bandwidth Allocation for Quality-of-Service Over


Ethernet PONs

Ethernet-based passive optical network (EPON) technology is


being considered as a promising solution for next-generation
broadband access network due to the convergence of low-cost
Ethernet equipment and low-cost fiber infrastructure. A major feature
for this new architecture is the use of a shared transmission media
between all users; hence, medium access control arbitration
mechanisms are essential for the successful implementation of EPON:
i.e., ensure a contention-free transmission and provide end users with
an equal access to the shared media. In this paper, we propose to use
the multipoint control protocol defined within the IEEE 802.3ah Task
Force to arbitrate the transmission of different users, and we present
different dynamic bandwidth allocation (DBA) algorithms to effectively
and fairly allocate bandwidths between end users.

These DBA algorithms are also augmented to support


differentiated services: a crucial requirement for a converged
broadband access network with heterogeneous traffic. We show that
queueing delays under strict bandwidth allocation algorithms results
in an unexpected behavior for certain traffic classes, and we suggest
the use of DBA with appropriate local queue management to alleviate
this inappropriate behavior. We conduct detailed simulation
experiments to study the performance and validate the effectiveness of
the proposed protocols. rapiddeployment of broadband services in the

8
residential and small business area has played an important role in
the evolution of access networks. Currently, Ethernet-base passive
optical networks (EPONs) are being considered as a promising
solution for the next generation broadband access network (known
also as the last mile access network) due to the convergence of low-
cost Ethernet equipment and low-cost of fiber infrastructure. A
passive optical network (PON) is a point-to-multipoint optical access
network with no active elements in the signal path from source to
destination. Here, all transmissions are performed between an optical
line terminal (OLT) and optical network units (ONUs).

The OLT resides in the central office (CO) and connects the
optical access network to the metropolitan area network (MAN) or
wide-area network (WAN). On the other hand, each ONU is usually
located at either the curb [i.e., fiber-to-the-curb (FTTC) solution] or the
end-user location [i.e., fiber-to-the-building (FTTB) and fiber-to-the-
home (FTTH)], and provides broadband video, data, and voice services.
An EPON is a PON that carries all data encapsulated in Ethernet
frames and is backward compatible with existing IEEE 802.3 Ethernet
standards, as well as other relevant IEEE 802 standards. Moreover,
Ethernet is an inexpensive technology that is ubiquitous and
interoperable with a variety of legacy equipment; a step forward in
making it most suitable for delivering Internet protocol (IP)-based
applications and multimedia traffic over PON.

In the downstream direction, the OLT has the entire bandwidth


of the channel to transmit data packets and control messages to the
ONUs; in this broadcast and select architecture, all active ONUs listen
to the channel and only the designated ONU will deliver the received
traffic to its end users. On the other hand, in the upstream direction,
a PON is a multipoint to point,network, where multiple ONUs share
the same transmission channel. Here, unless some kind of regulation
is implemented, data streams transmitted simultaneously from

9
different ONUs may still collide. Hence, access to the shared medium
must be arbitrated by medium access control (MAC) protocols to
prevent collisions between Ethernet frames of different ONUs
transmitting simultaneously.

In general, this is achieved by allocating a transmission window


(or timeslot) to each ONU; each ONU should buffer data packets
received from different subscribers until they are transmitted in the
assigned time window. When the assigned time window arrives, the
ONU will burst out frames at full channel speed. One distinguishing
feature that broadband EPON is expected to support is the ability to
deliver services to emerging IP-based multimedia traffic with diverse
quality-of-service (QoS) requirements.

A promising approach to support differentiated QoS is to


employ a central controller that can dynamically allocate bandwidth to
end users according to the traffic load. Thus, bandwidth management
for fair bandwidth allocation among different ONUs will be a key
requirement for the MAC protocols in the emerging EPON based
networks.

We discuss an EPON architecture that supports differentiated


services; we classify services into three priorities as defined in ,
namely the best effort (BE), the assured forwarding (AF), and
expedited forwarding (EF). While EF services (such as voice and other
delay sensitive applications) require bounded end-to-end delay and
jitter specifications, AF is intended for services that are not delay
sensitive but which require bandwidth guarantees.

Finally, BE applications (such as e-mail services) are neither


delay sensitive nor do they require any jitter specifications. We
propose a dynamic bandwidth allocation (DBA) algorithm with QoS
support over EPON-based access network. We investigate how gated
transmission mechanisms [e.g., multipoint control protocol (MPCP)]

10
and DBA schemes can be combined with priority scheduling and
queue management to implement a cost-effective EPON network with
differentiated services support.

3.Resource Management in IEEE 802.11 Multiple Access


Networks with Price-based Service Provisioning

In this paper we analyze the provisioning of multimedia services over a


wireless LAN hot-spot, based on the IEEE 802.11 protocol. We
address the issue of defining proper pricing strategies, from the
perspective of both evaluating the technical performance and
quantifying the economic revenues. We take into account a model for
users’ behavior that describes all users’ choices in a decentralized
manner, so that the transmission rate of each node is driven both by
multimedia service requirements and by the customer’s willingness to
pay. The multiple users’ medium access mechanism is studied
through a simulation analysis based on ns-2.

Within this model, the network performance is evaluated and


discussed, presenting numerical results which can provide practical
insight for pricing setup in a wireless LAN hot-spot. We observe that
the impact of the pricing policy on the provider’s income and on the
satisfaction of the users is critical and especially depends on the
shape of the pricing function (flat, l inear or hybrid).

Additionally, we investigate the provider’s task of having


asuitable price policy which properly tunes the tradeoffbetween the
two contrasting factors of achieving high revenue and obtaining high
satisfaction of the users. the diffusion ofWireless Local Area Networks
(WLANs) based on the IEEE 802.11 standard ssis rapidly increasing.
At first limited to laptops, it now involves palmtops as well as other
kinds of portable devices.

11
Hot-spots, where a set of mobile terminals is connected to a
central access point, are emerging as a widespread application of this
standard. Nowadays, these kinds of systems are present in business
areas such as conference rooms or airport and hotel lounges, where
users are interested in easily and rapidly establishing a network
connection. Following such a wide diffusion of WLAN devices and
coverage availability, also the offered services are going to comprise a
broader set of applications, including audio, video and multimedia
services.

Current implementations of IEEE 802.11 systems adopt the


Distributed Coordination Function (DCF) using Carrier-Sense Multiple
Access with Collision Avoidance (CSMA/CA). In particular, we focus
on IEEE 802.11b, though our conclusions can easily be extended to
any other version of the IEEE 802.11 standard.

It is well known ssthat the performance of CSMA/CA-based


multiple access networks is heavily affected by the network operating
conditions. Thus, the provider is interested in efficiently managing the
bandwidth resource. Reasonably, this could mean aiming at achieving
a satisfactory income from the network management operation, while
providing as many users as possible with a satisfactory service. These
two requirements are likely mandatory in order to have a sustainable
economic model. For this reason, the investigations on how to
properly allocate the radio resource, as well as to set up an
appropriate pricing strategy, are key issues for the network operator.

To explore these aspects, we refer to the application of


economic models to Radio Resource Management, an open field of
research on which several contributions have appeared in the recent
literature.In particular, the concept of utility functions and issues
taken from game-theory have been employed to represent a tunable
Quality of Service (QoS), e.g., obtained through variations of the
terminal’s data rate.
12
An example of application of micro-economic issues to the
management of a WLAN hot-spot is given in. However, note that the
micro-economic control performed there refers to the definition of a
virtual price that has the effect of regulating the access and is
negotiated dynamically.

Instead, in the present contribution we are interested in


considering more directly the real price established by the operator for
the service tariff. This significantly distinguishes our work from other
related approaches. Also, such a price is bound to be fixed a priori and
known in advance by the users.

To quantify these economic concepts and perform numerical


evaluations, we adopt the micro-economic model for multiple access
wireless networks presented in, where users’ choices are described as
driven by their appreciation of the service, which is in turn influenced
by the price paid.
In fact, some users may refuse to enter the system due to what
they consider to be too high a price. On the other hand, pricing the
system usage also allows a better coordination and a more efficient
utilization of resources. Finally, dynamically changing network
conditions may cause dissatisfaction in the users that do not achieve
what they consider an adequate quality of service, according to the
price initially negotiated.

For this reason, we evaluate the ratio of satisfied users as


another indicator of good management that a provider of a real system
needs to take into consideration in the long run. Moreover, as will be
discussed in the following, certain economic metrics, such as the
provider’s revenue, are meaningful if they are evaluated on satisfied
users only. In addition, this model can even be used as an instrument
to identify what a suitable pricing policy for a WLAN hot-spot could
be. Note that the investigation of these issues requires to characterize

13
IEEE 802.11 multiple access within the network; to this end, we make
use of the ns-2 simulator which allows a direct and simple integration
of these issues.

4.An Auction Framework for Spectrum Allocation with


Interference Constraint in Cognitive Radio Networks:

Extensive research in recent years has shown the benefits of


cognitive radio technologies to improve the flexibility and efficiency of
spectrum utilization. This new communication paradigm, however,
requires a well-designed spectrum allocation mechanism.

We propose an auction framework for cognitive radio networks


to allow unlicensed secondary users (SUs) to share the available
spectrum of licensed primary users (PUs) fairly and efficiently, subject
to the interference temperature constraint at each PU. To study the
competition among SUs, we formulate a non-cooperative multiple-PU
multiple-SU auction game and study the structure of the resulting
equilibrium by solving a non-continuous two-dimensional
optimization problem.

A distributed algorithm is developed in which each SU updates


its strategy based on local information to converge to the equilibrium.
We then extend the proposed auction framework to the more
challenging scenario with free spectrum bands. We develop an
algorithm based on the no-regret learning to reach a correlated
equilibrium of the auction game. The proposed algorithm, which can
be implemented distributedly based on local observation, is especially
suited in decentralized adaptive learning environments as cognitive
radio networks. Finally, through numerical experiments, we
demonstrate the effectiveness of the proposed auction framework in
achieving high efficiency and fairness in spectrum allocation.

Cognitive radio has emerged in recent years as a promising


paradigm to enable more efficient and spectrum utilization. Apart
14
from the conventional command and control model, three more
flexible spectrum management models are presented in, namely,
exclusive use (or operator sharing), commons and shared use of
primary licensed spectrum. In the last model, unlicensed secondary
users (SUs) are allowed to access the spectrum of licensed primary
users (PUs) in an opportunistic way. In such a model, a well-designed
spectrum allocation mechanism is crucial to achieve efficient
spectrum usage and harmonious coexistence of PUs and SUs.

On one hand, the radio resource allocation mechanism should


ensure that the spectrum resource (unused by PUs) is allocated
efficiently and fairly among SUs. On the other hand, the
communication of PUs should not be disturbed by the SUs. In this
paper, we tackle the challenging research problem of designing
efficient spectrum allocation mechanism for cognitive radio networks.

We consider a generic network scenario in which multiple PUs


and SUs coexist. To use the spectrum resource efficiently, the SUs
share the available spectrum of the PUs under the condition that the
interference temperature constraint is always satisfied at each PU, i.e.
the total received power of the SUs at each PU should be kept under
some threshold in order to protect the PU’s traffic.

The considered scenario can represent various network


scenarios, e.g. the PUs are the access points of a mesh network and
the SUs are the mobile devices. In our work, we develop an auction
framework to allow Sus to share the available spectrum of PUs. Under
the proposed auction framework, each PU acts as a resource provider
by (1) announcing a price and a reserve bid (2) allocating the received
power as a function of the bids submitted by SUs. Each SU acts as a
customer by (1) submitting a two-dimensional bid indicating which PU
to bid for resource and how much to bid (2) paying the chosen PU an
amount of payment proportional to the allocated resource and the
announced price.
15
To study the competition among SUs, we formulate a
noncooperative auction game and study the structure of the resulting
Nash equilibrium (NE) by solving a non-continuous twodimensional
optimization problem.

A distributed algorithm is developed in which each SU updates


its strategy based on local information to converge to the NE. Our
analysis can serve as a decision and control framework for the SUs to
exploit the underutilized spectrum resource. We then extend the
proposed auction framework to the more challenging scenario with
free spectrum bands. In this context, a SU should strike a balance
between accessing a free spectrum band with more interference if the
competitors take the same strategy, and paying more for
communication gains by staying with a licensed band. We show that
the ping-pong effect may occur under the best-response update, i.e., a
SU keeps switching between the free band and a licensed band.

To eliminate the ping-pong effect, we develop an algorithm


based on the no-regret learning to reach a correlated equilibrium (CE)
of the auction game. The proposed algorithm, which can be
implemented distributedly and requires only local observation, is
especially suited in decentralized adaptive learning environments as
cognitive radio networks.

Due to their perceived fairness and allocation efficiency,


auctions are among the best-known market-based mechanisms to
allocate spectrum.In most proposed auctions, the spectrum resource
is treated as goods in traditional auctions studied by economists, i.e.,
one licensed band (or a collection of multiple bands) is awarded to one
SU. However, spectrum auction differs from conventional auctions in
that it has to address radio interference.

16
Spectrum auction is essentially a problem of interference-
constrained resource allocation. Only a few papers have discussed
spectrum auctions under interference constraint, among which and
studied conflict-free spectrum allocation with high spectrum
efficiency.developed an auction-based spectrum sharing framework to
allow a single spectrum manager to share its spectrum with a group of
users, subject to the interference temperature constraint at the
measurement point, a requirement proposed by FCC in.
Based on the same model as, our work is among the relative
few that investigate the interference-constraint radio resource
allocation problem under the auction framework. Compared with
previous work we make the following key contributions: • Existing
auction mechanisms mainly focus on single- PU scenario with very
limited analytical and numerical studies on multiple-PU case.

Our work, however, conduct an in-depth analysis on the


spectrum auction for multiple PUs to allocate their spectrum to
multiple SUs efficiently and fairly. As a distinctive feature of the
proposed auction framework, the SUs’ strategy (bid) is two-
dimensional and non-continuous, leading to a competition scenario
with more complex interactions among players and requiring an
original study of the resulting equilibrium.

We investigate the spectrum auction with free spectrum bands


and develop a distributed adaptive algorithm based on no-regret
learning to converge to a CE of the auction game. To the best of our
knowledge, our work is the first to adapt the auction framework to
address the spectrum sharing problem in heterogeneous
environments with both licensed and free bands.

5.Utility-based Bandwidth Allocation Algorithm for Heterogeneous


Wireless Network:

Next generation wireless network (NGWN) is expected to provide high-


bandwidth connectivity with guaranteed quality-of-service to mobile
17
users in a seamless manner. In NGWN, mobile users are capable of
connecting to the core network through various heterogeneous
wireless access networks�such as cellular network, wireless
metropolitan area network, wireless local area network, and ad hoc
network etc. In this paper, the problem of joint bandwidth allocation
for heterogeneous integrated networks is formulated based on utility
function theory and bankruptcy game. The proposed bandwidth
allocation scheme comprises of two successive stages, i.e., service
bandwidth allocation and user bandwidth allocation.

At service bandwidth allocation stage, the optimal amount of


bandwidth for different types of services in each network is allocated
based on the criterion of joint utility maximization, then, at user
bandwidth allocation stage, the service bandwidth in each network is
optimally allocated among users in the network according to
bankruptcy game theory. Numerical results demonstrate the efficiency
of the proposed algorithm.

Next generation wireless network (NGWN) is expected to


integrate various wireless access technologies and to support users’
seamless roaming among different access networks. In NGWN, mobile
nodes (MNs) with various QoS requirement are capable of choosing
different access networks for service supports, resulting in
competition coexistence status between networks and between users.

On one hand, the access networks tend to attract more users


for service accessing so that the network profit can be maximized, on
the other hand, users compete for high quality network resource to
access services with high performance to cost ratio (PCR).
The characteristics of heterogeneous integrated network,
including the limitation of network bandwidth resource, the
heterogeneity of access networks and the variety of user services, etc,
pose difficulties and challenges to network management, especially
user bandwidth allocation Utility function originated in economics
18
theory has been applied for solving resource management in recent
years.
Reference proposed an analytical solution for performance
evaluation of dynamic policies for routing real-time jobs among
parallel single-processor queues and presented a utility-aware
dynamic routing policy called maximum expected utility (MEU) to
improve the expected accrued utility of the parallel system. A new
framework called dynamic QoS-based bandwidth allocation (DQBA) to
support heterogeneous traffic with different QoS requirements in
WiMAX networks was proposed in. The bandwidth allocation was
dynamically adjusted for ongoing and new arrival connections based
on traffic characteristics and service demand to maximizing the
system capacity. Reference modeled user spectrum allocation issue
under multiple service providers (SPs) as a user welfare maximization
problem and designed optimal allocation policy as a function of link
gains and network efficiency.

Applying utility function in heterogeneous integrated networks,


ref.proposed a utility based access selection algorithm with the target
of achieving load balancing between the universal mobile
telecommunication system (UMTS) and WLAN. In, a distributed multi-
service resource allocation algorithm for constant bit rate (CBR) and
variable bit rate (VBR) services in a heterogeneous wireless access
environment was proposed.

The utility function for individual access system was defined


and the utility maximization problem was optimally solved for
resource allocation in a distributed manner.
Reference proposed a novel economic model for radio resource
allocation for both code-division multiple-access (CDMA) network and
wireless local area network (WLAN).

The problem of radio resource allocation for both networks was


formulated respectively as the network welfare maximization issue,
19
and a joint access control strategy was designed for achieving efficient
sharing of radio resource and load balancing between the two
networks.

A utility-based bandwidth allocation algorithm was proposed in,


and the utility fairness within a wireless access network and among
different wireless access networks was considered. Previous work
mainly focuses on the individual utility of access network, few works
stress the problem of joint network performance optimization, which
is the essential goal for cooperative or allianced service providing
scenario Game theory has been applied in modeling resource
management issues in competitive scenario.

A game theoretic model was proposed in to characterize the


decentralized interactions among heterogeneous sensors. The utility
function for sensor nodes was modeled and optimized to achieve
desired frame success rate and node degree with the minimal power
consumption.

In, the bandwidth allocation problem for one user in


heterogeneous wireless access network was modeled based on
bankruptcy game theory, and an optimal bandwidth allocation
scheme was proposed. However, the resource allocation problem for
multiple users with different types of services failed to be discussed in
the paper.

In, a non-cooperative game-theoretic framework for bandwidth


allocation and admission control in heterogeneous wireless systems
was formulated. Through modeling the non-cooperative relations
between networks and users, the bandwidth amount allocated for
each access network in a given area was optimally designed, and then
the bandwidth allocation scheme for a connection in each access
network was proposed based on the maximization of the connection
utility.

20
The bandwidth allocation and network selection issues in
heterogeneous wireless access networks have been extensively studied
in previous works, however, the problem of bandwidth allocation
among multiple users with multiple types of services in heterogeneous
networks scenario has not been well studied, and few works consider
the joint optimization of network utility, load status and user
bandwidth allocation.

The bandwidth allocation problem in heterogeneously integrated


work is studied and an optimal bandwidth allocation scheme
comprises of two successive stages, i.e., service bandwidth allocation
and user bandwidth allocation is proposed. At service bandwidth
allocation stage, the optimal amount of bandwidth for different types
of services in each network is allocated based on the criterion of joint
utility maximization, then, at user bandwidth allocation stage, the
service bandwidth in each network is optimally allocated among users
in the network according to bankruptcy game theory.

21
CHAPTER3
SYSTEM ANALYSIS

22
The Systems Development Life Cycle (SDLC), or Software
Development Life Cycle in systems engineering, information systems
and software engineering, is the process of creating or altering
systems, and the models and methodologies that people use to
develop these systems.

In software engineering the SDLC concept underpins many


kinds of software development methodologies. These methodologies
form the framework for planning and controlling the creation of an
information system the software development process.

SOFTWARE MODEL OR ARCHITECTURE ANALYSIS:

Structured project management techniques (such as


an SDLC) enhance management’s control over projects by dividing
complex tasks into manageable sections. A software life cycle model is
either a descriptive or prescriptive characterization of how software is
or should be developed. But none of the SDLC models discuss the key
issues like Change management, Incident management and Release
management processes within the SDLC process, but, it is addressed
in the overall project management. In the proposed hypothetical
model, the concept of user-developer interaction in the conventional
SDLC model has been converted into a three dimensional model which
comprises of the user, owner and the developer. In the proposed
hypothetical model, the concept of user-developer interaction in the
conventional SDLC model has been converted into a three
dimensional model which comprises of the user, owner and the
developer. The ―one size fits all‖ approach to applying SDLC
methodologies is no longer appropriate. We have made an attempt to
address the above mentioned defects by using a new hypothetical
model for SDLC described elsewhere. The drawback of addressing
these management processes under the overall project management is
missing of key technical issues pertaining to software development

23
process that is, these issues are talked in the project management at
the surface level but not at the ground level.

3.1Existing System
The cloud servers provide resources on demand. To fulfill on-
demand request of real-time applications and computations,
bandwidth is an essential component that controls the rate of
transmission. It may happen that the cloud server provides real-time
services as per the request, but the mobile nodes are not able to
receive the service due to the lack of bandwidth. Moreover, the mobile
users demand a certain level of QoS provisioning in terms of delay,
jitter, response time, and reliability, while they use service from the
cloud. When a mobile device changes its location, the corresponding
gateway for maintaining the connectivity with the cloud also changes.
Therefore, the aggregated bandwidth requirement for the gateway also
changes, which creates the necessity of bandwidth shifting, provided
the previous allocation was optimal. Further, bandwidth shifting alone
is insufficient for maintaining QoS while maximizing the revenue of
each gateway. It happens due to the variation in the spectral efficiency
across channels, and the communication protocols across devices.

Disadvantages:

1. Bandwidth shifting is not efficient.


2. All customers are not getting the quality of services.
3. Insufficient distribution of bandwidth details.

3.2Proposed System:
In this paper, we address the problems of bandwidth shifting and
redistribution resulting from varying demand from gateways. It is
pertinent to clarify at this juncture that the bandwidth redistribution
problem differs from the traditional bandwidth allocation problem in
that, a while the former concerns allocating proportional bandwidth to
all the gateways (and, in turn, to the users), even if only a few

24
gateways change their bandwidth demand, the latter concerns
allocating bandwidth to that gateways who have changed the
bandwidth demand. A schematic view of mobile cloud architecture is
shown in Fig. 1. We do not consider the bandwidth allocation process
between gateways and mobile nodes. We assume that the CSP is
authorized for bandwidth shifting and allocation, and these functions
are performed for the gateways only. In this work, we consider QoS-
guarantee in terms of service delay.

Advantages:

1. We theoretically prove the requirement of bandwidth shifting


followed by bandwidth redistribution in a typical mobile cloud
environment.
2. We propose an auction theory-based QoS-guaranteed utility
maximization (AQUM) algorithm that redistributes the total available
bandwidth optimally.
3. We analyze the existence of Nash equilibrium and the convergence
criteria of the redistribution algorithm.

3.3 Hierarchy Chart

Fig 3.3 Hierarcy Chart


3.4 Modules :
Modules Description:
1. Mobile cloud network model
2. Bandwidth shifting
3. Bandwidth redistribution
4. Convergence and Nash Equilibrium

25
Mobile Cloud Network Model:

Consider a simple mobile cloud environment in which all


operations follow the discrete time model with normalized time-slots t
€ {0; 1; 2; . . .}. There are one CSP and I single channel gateways G
={G1;G2; . . .;GI} connected with the CSP through wireless channel.
Let us assume that spectral efficiency of each channel is different and
represented by the vector E(t)={E1(t); E2(t); . . . ; EI(t)g. We further
consider that each gateway has K number of mobile nodes connected
with it at time t via any mobile network. Hence, Ni(t) =
{Ni1(t);Ni2(t); . . .;NiK(t)}. In this work, we consider QoS-guarantee in
respect of service delay. Let us consider that the total available
bandwidth of the CSP equals Btot. If a mobile node requests any
service from the cloud server, the service is provided through a
gateway. We consider the adequate bandwidth requirement of the
gateways for successful execution of the requested services by the
mobile nodes. Let B(t)={B1(t);B2(t); . . .;BI(t)} denote the allocated
bandwidth vector for the gateways G at time t.

Bandwidth shifting:
We consider a mobile cloud network. It may be stressed that the
nodes are mobile in such environment. In this section, we
theoretically prove that node mobility triggers the necessity of
bandwidth shifting, if the cloud server does not have any unused
reserved bandwidth for future use. Subsequently, we prove that
bandwidth shifting alone is not always sufficient for providing QoS-
guarantee.

Bandwidth redistribution:
We design an utility function for computing the overall benefit of
each interfacing gateway. The utility function of the gateway depends
on the service it provides to the mobile nodes and the bandwidth it
buys for providing the services. Each gateway pays certain price for
getting the required bandwidth from the CSP. On the other hand, each

26
gateway charges certain amount of revenue from the mobile nodes for
providing the services to them. Additionally, the gateway demands an
extra charge from the mobile nodes for assuring the QoS in terms of
service delay. Taking into account the above three factors contributing
to the gateway utility.

Convergence and Nash Equilibrium:

We present numerical simulation results of the proposed AQUM


(auction theory-based QoS-guaranteed utility maximization) algorithm
for the MCC environment. Initially, we present an example scenario
followed by parameter settings. We show the necessity of bandwidth
redistribution, and establish results of convergence and Nash
equilibrium. Each experiment was executed 30 times, and the
ensemble average values are plotted with 95 percent confidence
interval.

27
3.5 System Architecture

Fig.3.5System Architecture

3.6 FEASIBILITY STUDY

Preliminary investigation examine project feasibility, the likelihood the


system will be useful to the organization. The main objective of the
feasibility study is to test the Technical, Operational and Economical
feasibility for adding new modules and debugging old running system.
All system is feasible if they are unlimited resources and infinite time.
There are aspects in the feasibility study portion of the preliminary
investigation:

 Technical Feasibility
 Operational Feasibility
 Economical Feasibility

28
3.6.1 ECONOMIC FEASIBILITY

A system can be developed technically and that will be used if


installed must still be a good investment for the organization. In the
economical feasibility, the development cost in creating the system is
evaluated against the ultimate benefit derived from the new systems.
Financial benefits must equal or exceed the costs.

The system is economically feasible. It does not require any


addition hardware or software. Since the interface for this system is
developed using the existing resources and technologies available at
NIC, There is nominal expenditure and economical feasibility for
certain.

3.6.2 OPERATIONAL FEASIBILITY

Proposed projects are beneficial only if they can be turned out into
information system. That will meet the organization’s operating
requirements. Operational feasibility aspects of the project are to be
taken as an important part of the project implementation. Some of the
important issues raised are to test the operational feasibility of a
project includes the following: -

 Is there sufficient support for the management from the users?


 Will the system be used and work properly if it is being developed
and implemented?
 Will there be any resistance from the user that will undermine the
possible application benefits?

This system is targeted to be in accordance with the above-


mentioned issues. Beforehand, the management issues and user
requirements have been taken into consideration. So there is no
question of resistance from the users that can undermine the possible
application benefits.

29
The well-planned design would ensure the optimal utilization of the
computer resources and would help in the improvement of
performance status.

3.6.3 TECHNICAL FEASIBILITY

The technical issue usually raised during the feasibility stage of


the investigation includes the following:

 Does the necessary technology exist to do what is suggested?


 Do the proposed equipments have the technical capacity to hold
the data required to use the new system?
 Will the proposed system provide adequate response to inquiries,
regardless of the number or location of users?
 Can the system be upgraded if developed?
 Are there technical guarantees of accuracy, reliability, ease of
access and data security?

Earlier no system existed to cater to the needs of ‘Secure


Infrastructure Implementation System’. The current system developed
is technically feasible. It is a web based user interface for audit
workflow at NIC-CSD. Thus it provides an easy access to the users.
The database’s purpose is to create, establish and maintain a
workflow among various entities in order to facilitate all concerned
users in their various capacities or roles. Permission to the users
would be granted based on the roles specified. Therefore, it provides
the technical guarantee of accuracy, reliability and security. The
software and hard requirements for the development of this project
are not many and are already available in-house at NIC or are
available as free as open source. The work for the project is done with
the current equipment and existing software technology. Necessary
bandwidth exists for providing a fast feedback to the users irrespective
of the number of users using the system
Tangible benefits
30
When talking about the cost of IT/IS project, one would first
think of the tangible costs that are easily to determine and estimate,
such as hardware and software cost, or labor cost. However, in
addition to these tangible costs, there are also some intangible costs,
such as loss of goodwill, or operational inefficiency.

The tangible benefit, such as cost saving or increasing in


revenue, would be easier to estimate while intangible benefits are
harder to quantify.

 Intangible benefits

Intangible benefits, also called soft benefits, are the gains


attributable to your improvement project that are not reportable for
formal accounting purposes. These benefits are not included in the
financial calculations because they are nonmonetary or are difficult to
measure.

The following are the intangible benefits of a project:

 Improve morale
 Improve decision making
 Improve efficiency
 Reduce mental errors
 Improve concentration
 Improve time management
 Improves the productivity of process and personnel
 Lowering the cost of products and services purchased
 Paper and postage cost reductions
 Inventory reduction
 Lead time reduction
 Reduced stock obsolescence
 Faster product / service look-up and ordering saving time and
money

 Payback Period:

The length of time required to recover the cost of an investment.


The payback period of a given investment or project is an important
determinant of whether to undertake the position or project, as longer
payback periods are typically not desirable for investment positions.

31
Calculated as: Payback Period = Cost of Project / Annual Cash
Inflows

All other things being equal, the better investment is the one
with the shorter payback period. In This project, if this project costs
$100,000 and is expected to return $20,000 annually, the payback
period will be $100,000/$20,000, or five years. There are two main
problems with the payback period method:

1. It ignores any benefits that occur after the payback period and,
therefore, does not measure profitability.
2. It ignores the time value of money.

Because of these reasons, other methods of capital budgeting,


like net present value, internal rate of return or discounted cash flow,
are generally preferred.

3.7 Software Engineering Model


WHAT IS SDLC?

A software cycle deals with various parts and phases from


planning to testing and deploying software. All these activities are
carried out in different ways, as per the needs. Each way is known as
a Software Development Lifecycle Model (SDLC). A software life cycle
model is either a descriptive or prescriptive characterization of how
software is or should be developed. A descriptive model describes the
history of how a particular software system was developed. Descriptive
models may be used as the basis for understanding and improving
software development processes or for building empirically grounded
prescriptive models.

SDLC models * The Linear model (Waterfall) - Separate and distinct


phases of specification and development. - All activities in linear
fashion. - Next phase starts only when first one is complete. *
Evolutionary development - Specification and development are

32
interleaved (Spiral, incremental, prototype based, Rapid Application
development). - Incremental Model (Waterfall in iteration), -
RAD(Rapid Application Development) - Focus is on developing quality
product in less time, - Spiral Model - We start from smaller module
and keeps on building it like a spiral. It is also called Component
based development. * Formal systems development - A
mathematical system model is formally transformed to an
implementation. * Agile Methods. - Inducing flexibility into
development. * Reuse-based development - The system is assembled
from existing components.

The General Model


Software life cycle models describe phases of the software cycle
and the order in which those phases are executed. There are tons of
models, and many companies adopt their own, but all have very
similar patterns. Each phase produces deliverables required by the
next phase in the life cycle. Requirements are translated into design.
Code is produced during implementation that is driven by the design.
Testing verifies the deliverable of the implementation phase against
requirements.

SDLC Methodology:
Spiral Model
The spiral model is similar to the incremental model, with
more emphases placed on risk analysis. The spiral model has four
phases: Planning, Risk Analysis, Engineering and Evaluation. A\
software project repeatedly passes through these phases in iterations
(called Spirals in this model). The baseline spiral, starting in the
planning phase, requirements is gathered and risk is assessed. Each
subsequent spirals builds on the baseline spiral. Requirements are
gathered during the planning phase. In the risk analysis phase, a
process is undertaken to identify risk and alternate solutions. A
prototype is produced at the end of the risk analysis phase. Software

33
is produced in the engineering phase,along with testing at the end of
the phase. The evaluation phase allows the customer to evaluate the
output of the project to date before the project continues to the next
spiral. In the spiral model, the angular component represents
progress, and the radius of the spiral represents cost. Spiral Life Cycle
Model.
This document play a vital role in the development of life cycle
(SDLC) as it describes the complete requirement of the system. It
means for use by developers and will be the basic during testing
phase. Any changes made to the requirements in the future will have
to go through formal change approval process.

SPIRAL MODEL was defined by Barry Boehm in his 1988 article,


“A spiral Model of Software Development and Enhancement. This
model was not the first model to discuss iterative development, but it
was the first model to explain why the iteration models.

As originally envisioned, the iterations were typically 6 months to


2 years long. Each phase starts with a design goal and ends with a
client reviewing the progress thus far. Analysis and engineering
efforts are applied at each phase of the project, with an eye toward the
end goal of the project.

The steps for Spiral Model can be generalized as follows:

 The new system requirements are defined in as much details


as possible. This usually involves interviewing a number of
users representing all the external or internal users and
other aspects of the existing system.
 A preliminary design is created for the new system.
 A first prototype of the new system is constructed from the
preliminary design. This is usually a scaled-down system,
and represents an approximation of the characteristics of the
final product.

34
 A second prototype is evolved by a fourfold procedure:
1. Evaluating the first prototype in terms of its strengths,
weakness, and risks.
2. Defining the requirements of the second prototype.
3. Planning an designing the second prototype.
4. Constructing and testing the second prototype.
 At the customer option, the entire project can be aborted if
the risk is deemed too great. Risk factors might involved
development cost overruns, operating-cost miscalculation, or
any other factor that could, in the customer’s judgment,
result in a less-than-satisfactory final product.
 The existing prototype is evaluated in the same manner as
was the previous prototype, and if necessary, another
prototype is developed from it according to the fourfold
procedure outlined above.
 The preceding steps are iterated until the customer is
satisfied that the refined prototype represents the final
product desired.
 The final system is constructed, based on the refined
prototype.
 The final system is thoroughly evaluated and tested.
Routine maintenance is carried on a continuing basis to
prevent large scale failures and to minimize down time.

35
Fig3.7 -Spiral Model

Advantages

 High amount of risk analysis


 Good for large and mission-critical projects.
 Software is produced early in the software life cycle.

36
CHAPTER 4
SYSTEM REQUIREMENTS SPECIFICATION

37
Introduction

A Software Requirements Specification (SRS) – a


requirements specification for a software system – is a complete
description of the behaviour of a system to be developed. It includes a
set of use cases that describe all the interactions the users will have
with the software. In addition to use cases, the SRS also contains
non-functional requirements. Non-functional requirements are
requirements which impose constraints on the design or
implementation (such as performance engineering requirements,
quality standards, or design constraints).

System requirements specification: A structured collection of


information that embodies the requirements of a system. A business
analyst, sometimes titled system analyst, is responsible for analyzing
the business needs of their clients and stakeholders to help identify
business problems and propose solutions. Within the systems
development life cycle domain, typically performs a liaison function
between the business side of an enterprise and the information
technology department or external service providers. Projects are
subject to three sorts of requirements:

 Business requirements describe in business terms what must


be delivered or accomplished to provide value.
 Product requirements describe properties of a system or
product (which could be one of
several ways to accomplish a set of business requirements.)
 Process requirements describe activities performed by the
developing organization. For instance, process requirements
could specify specific methodologies that must be followed, and
constraints that the organization must obey.

Product and process requirements are closely linked. Process


requirements often specify the activities that will be performed to

38
satisfy a product requirement. For example, a maximum development
cost requirement (a process requirement) may be imposed to help
achieve a maximum sales price requirement (a product requirement);
a requirement that the product be maintainable (a Product
requirement) often is addressed by imposing requirements to follow
particular development styles

PURPOSE
An systems engineering, a requirement can be a description
of what a system must do, referred to as a Functional Requirement.
This type of requirement specifies something that the delivered system
must be able to do. Another type of requirement specifies something
about the system itself, and how well it performs its functions. Such
requirements are often called Non-functional requirements, or
'performance requirements' or 'quality of service requirements.'
Examples of such requirements include usability, availability,
reliability, supportability, testability and maintainability.

A collection of requirements define the characteristics or


features of the desired system. A 'good' list of requirements as far as
possible avoids saying how the system should implement the
requirements, leaving such decisions to the system designer.
Specifying how the system should be implemented is called
"implementation bias" or "solution engineering". However,
implementation constraints on the solution may validly be expressed
by the future owner, for example for required interfaces to external
systems; for interoperability with other systems; and for commonality
(e.g. of user interfaces) with other owned products.In software
engineering, the same meanings of requirements apply, except that
the focus of interest is the software itself.

4.1 FUNCTIONAL REQUIREMENTS

 Add Movie Details


39
 Data Linkages
 Matching Records
 Non Matching Records
 Attribute Matching Records
 Fine Grained Records
 Least Probable Interaction Records
 Multivalued Splits

4.2 NON FUNCTIONAL REQUIREMENTS

The major non-functional Requirements of the system are as


follows

Usability

The system is designed with completely automated process


hence there is no or less user intervention.

Reliability

The system is more reliable because of the qualities that are


inherited from the chosen platform java. The code built by using java
is more reliable.

Performance

This system is developing in the high level languages and using


the advanced front-end and back-end technologies it will give
response to the end user on client system with in very less time.

Supportability

The system is designed to be the cross platform supportable.


The system is supported on a wide range of hardware and any
software platform, which is having JVM, built into the system.
Implementation

40
The system is implemented in web environment using struts
framework. The apache tomcat is used as the web server and windows
xp professional is used as the platform.

Interface the user interface is based on Struts provides HTML


Tag

4.3 Software Requirements:


Language : Java (JDK1.7.0)
Operating System : Microsoft Windows Xp Service Pack 3
IDE : my eclipse IDE 8.6
Front End : JAVA (Swings)
Backend : oracle10g
4.4 Hardware Requirements:

Processor : Intel Pentium 4


RAM : 256 MB
Hard Disk : 40 GB

41
CHAPTER 5
PROJECT DESIGN

42
5.1 Introduction
The purpose of the design phase is to plan a solution of the
problem specified by the requirement document. This phase is the
first step in moving from the problem domain to the solution domain.
In other words, starting with what is needed, design takes us toward
how to satisfy the needs. The design of a system is perhaps the most
critical factor affection the quality of the software; it has a major
impact on the later phase, particularly testing, maintenance. The
output of this phase is the design document. This document is
similar to a blueprint for the solution and is used later during
implementation, testing and maintenance. The design activity is often
divided into two separate phases System Design and Detailed Design.

System Design also called top-level design aims to identify the


modules that should be in the system, the specifications of these
modules, and how they interact with each other to produce the
desired results. At the end of the system design all the major data
structures, file formats, output formats, and the major modules in the
system and their specifications are decided.

During, Detailed Design, the internal logic of each of the


modules specified in system design is decided. During this phase, the
details of the data of a module is usually specified in a high-level
design description language, which is independent of the target
language in which the software will eventually be implemented.

In system design the focus is on identifying the modules, where


as during detailed design the focus is on designing the logic for each
of the modules. In other works, in system design the attention is on
what components are needed, while in detailed design how the
components can be implemented in software is the issue.

Design is concerned with identifying software components


specifying relationships among components. Specifying software
43
structure and providing blue print for the document phase.
Modularity is one of the desirable properties of large systems. It
implies that the system is divided into several parts. In such a manner
, the interaction between parts is minimal clearly specified.

During the system design activities , Developers bridge the gap


between the requirements specification, produced during
requirements elicitation and analysis, and the system that is delivered
to the user.

Design is the place where the quality is fostered in development.


Software design is a process through which requirements are
translated into a representation of software.

5.2 System Model


Introduction to UML

The unified Modeling Language (UML) is a standard language for


writing software blueprints. The UML may be used to visualize, specify
, construct and document the artifacts of software-intensive system.
The goal of UML is to provide a standard notation that can be used by
all object - oriented methods and to select and integrate the best
elements .UML is itself does not prescribe or advice on how to use that
notation in a software development process or as part of an object -
design methodology. The UML is more than just bunch of graphical
symbols. Rather , behind each symbol in the UML notation is well-
defined semantics.
The system development focuses on three different models of the
system.
 Functional model
 Object model
 Dynamic model

Functional model in UML is represented with use case diagrams ,


describing the functionality of the system from user point of view.
44
Object model in UML is represented with class diagrams , describing
the structure of the system in terms of objects , attributes ,
associations and operations.

Dynamic model in UML is represented with sequence diagrams ,


start chart diagrams and activity diagrams describing the internal
behaviour of the system.

5.3 Scenarios

A Use Case is an abstraction that all describes all possible


scenarios involving the described functionality . A scenario is an
instance of a use case describing a concrete set of actions.
 The name of the scenario enables us to refer it
ambiguously. The name of scenario is underlined to
indicate it is an instance.
 The Participating actor instance field indicates which
actor instance are involved in this scenario. Actor
instance also have underlined names.
 The Flow of Events of scenario describe the sequence of
events step by step.

5.3.1 Use Case Model


Use case diagrams represent the functionality of the system
from a user point of view. A Use case describes a function provided by
the system that yields a visible result for an actor. an actor describe
any entity that interacts with the system. The identification of actors
and use cases results in the definition of the boundary of the system,
which is , in differentiating the tasks accomplished by the system and
the tasks accomplished by its environment. The actors outside the
boundary of the system, where as the use cases are inside the
boundary of the system.

45
A Use case contains all the events that can occur between an actor
and a set of scenarios that explains the interactions as sequence of
happenings.
Actors
Actors represent external entities that interact with the system. An
actor can be human or external system.

Actor are not part of the system. They represent anyone or anything
that interact with the system.

An Actor may

 Only input information to the system.


 Only receive information from the system.
 Input and receive information from to and from the
system.

During this activity, developers indentify the actors involved in this


system are:

User:
User is an actor who uses the system and who performs the
operations like data classifications and execution performance that
are required for him.

Use Cases:
Use cases are used during requirements elicitation and analysis to
represent the functionality of the system. Use case focus on the
behaviour of the system from an external point of view. The
identification of actors and use cases results in the definition of the
boundary of the system , which is , in differentiating the tasks
accomplished by the system and the tasks accomplished by its
environment. The actors are outside the boundary of the system ,
where as the use cases are inside the boundary of the system.
46
Run Bank Application

Run and View Mobile nodes

Send request recived diff gateways

view gateway request in mcc

Estamate bandwidth by CSP

USER

Receives request data

View bandwith and time,cost

Analize gateway cost

Performance graph

View the utility select best gate ways

Fig 5.3.1 Use case Diagram

Description: In this use case the user run the bank application ,run
and view the mobile nodes, request is sent to different gateways,
gateways communicates with mobile cloud server provider ,and
bandwidth is estimated by csp , time and cost is also estimated,
analyze the best gateway by performance graph.

5.3.2 Object model


Class Diagram

47
Class Diagrams are used to describe the structure of
the system. Classes are abstractions that specify the common
structure and behaviour of a set of objects. Objects are instances of
classes that are created , modified and destroyed during the execution
of a system. An object has state that includes the values of its
attributes and links with other objects.
The class diagram is used to refine the use cases diagrams and define
a detailed design of the system. The class diagram classifies the actors
defined in the use case diagram into a set of interrelated classes. The
relationship or association between the classes can be either an "is-a"
or "has-a" relationship. Each class in the class diagram may be
capable of providing certain functionalities. These functionalities
provided by the class are termed "methods" of the classes. Apart from
this , each class may have certain "attributes" that uniquely indentify
the class. In the class diagram these classes are represented with
boxes which contain three parts..

RUN BANKING APPLICATION MOBILE NODES GATEWAY


+ADMIN ZONE +ENTER REQUEST DATA +RECEIVE REQUESTS
+STAFF ZONE
+CUSTOMER ZONE +SEND REQUEST() +CLASSIFY REQUESTS BASED LOCATION()
+RECEIVE REQUESTS()
+PROVIDE THE SERVICE()

BEST GATEWAY CLOUD SERVICE PROVIDER


NASH EQUILIBRIUM
+ANALYZE GATEWAY COST +AVAILABLE BANDWIDTH
+DIFFERENT TIMES INTERVALS OF COST AND DELAY +ANALYZE GATEWAY DELAY
+COUNT REQUESTS()
+SELECT BEST GATEWAY BASED AVERAGE VALUE() +SELECT BEST GATEWAY() +ESTIMATE BANDWIDTH()

Fig 5.3.2 Class Diagram

48
5.3.3 Dynamic model
5.3.3.1 Sequence Diagram
Sequence diagrams are used to formalize the dynamic behaviour
of the system and to visualize the communication among the objects.
They are useful for identifying the additional objects that participate
in the use case. Sequence diagram represent the objects participating
in the interaction horizontally and time vertically.
Sequence diagrams typically show a user or actor and the
objects and the components they interact with the execution of the
use case. Each column represent an objects that participate in the
interaction. Message is shown by solid arrows. Labels on the solid
arrows represent the message names. Activations are depicted by
vertical rectangles. The actor who initiates the interaction is shown in
the left most columns . The messages coming from the actor represent
the interactions described in the use case diagrams.

User Bank App Run and View mobile nodes Send request View Request view gateways bandwidth by cloud server Receives requested data Performane graph choose best gateways

1 : Run bank application()

2 : To run and view mobile nodes()

3 : Sending the request()

4 : To View the request()

5 : To View Gateways()

6 : To view bandwidth()

7 : Receives requested data()

8 : To view the Performance graph()

9 : Choose the best gateways()

Fig 5.3.3.1.1Sequence Diagram


Description: User run the bank application, send request, view the
best gateway by performance graph, receive the requested data.

49
bandwidth by cloud server
Send request View Request

Run and View mobile nodes

6 : To view bandwidth()
4 : To View the request()
3 : Sending the request()
Receives requested data
2 : To run and view mobile nodes()

7 : Receives requested data()

view gateways

5 : To View Gateways() 8 : To view the Performance graph()


User
Performane graph

9 : Choose the best gateways()

1 : Run bank application()

choose best gateways


Bank App

Fig :5.3.3.1.2 Collaboration Diagram

Description: User run the bank application, send request, view the
best gateway by performance graph, receive the requested data.

6.3.3.2 State Chart Diagram


UML State chart is notation for describing the sequence of states an
object goes through in response to external events. Objects have
behaviour and state. The state of an object depends on its current
activity or condition. A state chart diagram shows the possible states
of the object ad the transitions that cause a change in state.

State chart describes the dynamic behaviour of an individual object as


a number of states. A state is a condition satisfied by attributes of
objects. Given a state , a transition represents a future state the
object can move to and the conditions associated with the change of
state.

A state is depicted by a rounded rectangle A transition is depicted by


open arrows connecting two states. States are labeled with their
50
names. A small solid black circle indicates the initial state and a circle
surrounding the small solid circle indicates the final state.

Run Bank Application

Run and view mobile nodes

Send request from different locations

Gate ways view request received mcc

Banwidth by the CSP

View Bandwidth used and request

Analize gateways cost

View the Utility select best gateway

Fig 5.3.3.2.1State Chart Diagram

Description: Run Bank Application , run and view mobile nodes, send
request from different locations, bandwidth estimated by csp, view
bandwidth used and request and analyze gateway cost, view the utility
select best gateway.

5.3.3.3 Activity Diagram


An Activity diagram describes the behaviour of the system in terms of
activities. Activities are modeling elements that represent the
execution of set of operations. The completion of these operations
triggers a transition to another activity. Activity diagrams similar to
flowchart diagrams in that they can be used to represent control flow
and data flow . Activities are represented by rounded rectangles and
arrows are represented transition between activities . Think bars
represent the synchronization of the control flow.

51
Run bank application

Run and view Mobile nodes

Send request from different locations

View gateway request

bandwidth by the mcc

View bandwidth used rquest processing

Analize all gate way cost

select best gateway

Fig :5.3.3.3.1 Activity Diagram


Description: Run Bank Application , run and view mobile nodes, send
request from different locations, bandwidth estimated by csp, view
bandwidth used and request and analyze gateway cost, view the utility
select best gateway.

52
Component Diagram:

CloudServiceProvider GateWay

USER

Fig : 5.3.3.4 Component Diagram

Description:User send the request for bandwidth to the gateway,


gateway send the bid of requests to the cloud service provider and the
cloud service provider serve the request.

Deployment Diagram:

send request
performannce graph
view gates

system

view request best gate way

recieves request dat

Fig : 5.3.3.5 Deployment Diagram

Description: Request is sent to system, receives the request, receive


the send data, find best gateway by performance graph.

53
5.4ERDiagram:

Fig 5.4 ER Diagram

54
CHAPTER 6
SOFTWARE DESCRIPTION

55
56
6.1 Introduction
Implementation is the stage where the theoretical design is
turned in to working system. The most crucial stage is achieving a
new successful system and in giving confidence on the new system for
the users that it will work efficiently and effectively.

The system can be implemented only after through testing is


done and if it found to work according to the specification. It involves
careful planning, investigation of the current system and its
constraints on implementation, design of methods to achieve the
change over and an evaluation of change over methods a part from
planning. Two major tasks of preparing the implementation are
education and training of the users and testing of the system.

The more complex the system being implemented, the more


involved will be the systems analysis and design effort required just
for implementation. The implementation phase comprises of several
activities. The required hardware and software acquisition is carried
out. The System may require some hardware and software acquisition
is carried out. The system may require some software to be developed.
For this, programs are written and tested. The user then changes over
to his new fully tested system and the old system is discontinued.

Implementation is the process of having systems personnel


check out and put new equipment in to use, train users, install the
new application, and construct any files of data needed to it.

Depending on the size of the organization that will be involved


in using the application and the risk associated with its use, system
developers may choose to test the operation in only one area of the
firm, say in one department or with only one or two persons.
Sometimes they will run the old and new systems together to compare
the results. In still other situations, developers will stop using the old
system one-day and begin using the new one the next. As we will see,
57
each implementation strategy has its merits, depending on the
business situation in which it is considered. Regardless of the
implementation strategy used, developers strive to ensure that the
system’s initial use in trouble-free.

Once installed, applications are often used for many years.


However, both the organization and the users will change, and the
environment will be different over the weeks and months. Therefore,
the application will undoubtedly have to be maintained. Modifications
and changes will be made to the software, files, or procedures to meet
the emerging requirements.

6.1 Technology Description


About the Java Technology

The Java platform consists of the Java application programming


interfaces (APIs) and the Java virtual machine (JVM).

The following Java technology lets developers, designers, and business


partners develop and deliver a consistent user experience, with one
environment for applications on mobile and embedded devices. Java
meshes the power of a rich stack with the ability to deliver customized
experiences across such devices.

Java APIs are libraries of compiled code that you can use in your
programs. They let you add ready-made and customizable
functionality to save you programming time.Java programs are run (or
58
interpreted) by another program called the Java Virtual Machine.
Rather than running directly on the native operating system, the
program is interpreted by the Java VM for the native operating
system. This means that any computer system with the Java VM
installed can run Java programs regardless of the computer system on
which the applications were originally developed.

In the Java programming language, all source code is first written in


plain text files ending with the .java extension. Those source files are
then compiled into .class files by the javac compiler. A .class file does
not contain code that is native to your processor; it instead contains
bytecodes — the machine language of the Java Virtual Machine (Java
VM). The java launcher tool then runs your application with an
instance of the Java Virtual Machine.

Because the Java VM is available on many different operating


systems, the same .class files are capable of running on Microsoft
Windows, the Solaris TM Operating System (Solaris OS), Linux, or
Mac OS.

Java technology is both a programming language and a platform.

The Java Programming Language

The Java programming language is a high-level language that


can be characterized by all of the following buzzwords:

 Simple  Architecture neutral


 Object oriented  Portable
 Distributed  High performance
 Multithreaded  Robust
 Dynamic  Secure
Each of the preceding buzzwords is explained in The Java Language
Environment , a white paper written by James Gosling and Henry
McGilton.

59
In the Java programming language, all source code is first written in
plain text files ending with the .java extension. Those source files are
then compiled into .class files by the javac compiler. A .class file does not
contain code that is native to your processor; it instead contains
bytecodes — the machine language of the Java Virtual Machine 1 (Java
VM). The java launcher tool then runs your application with an
instance of the Java Virtual Machine.

Fig 6.1.1 An overview of the software development process.

Because the Java VM is available on many different operating


systems, the same .class files are capable of running on Microsoft
Windows, the Solaris™ Operating System (Solaris OS), Linux, or Mac
OS. Some virtual machines, such as the Java HotSpot virtual
machine, perform additional steps at runtime to give your application
a performance boost. This include various tasks such as finding
performance bottlenecks and recompiling (to native code) frequently
used sections of code

60
Fig 6.4.2 program on multiple platfroms

Through the Java VM, the same application is capable of running on


multiple platforms.

Servlet and JSP technology

Servlet and JSP technology has become the technology of choice for
developing online stores, interactive

A Servlet’s Job
Servlets are Java programs that run on Web or application servers,
acting as a middle layer between requests coming from Web browsers
or other HTTP clients and databases or applications on the HTTP
server. Their job is to perform the following tasks,
as illustrated in Figure 1–1.

61
Fig 6.1.3 The role of web middleware

1. Read the explicit data sent by the client.


The end user normally enters this data in an HTML form on a Web
page. However, the data could also come from an applet or a custom
HTTP client program. Chapter 4 discusses how servlets read this data.

2. Read the implicit HTTP request data sent by the browser.


Figure 1–1 shows a single arrow going from the client to the Web
server (the layer where servlets and JSP execute), but there are really
two varieties of data: the explicit data that the end user enters in a
form and the behind-the-scenes HTTP information. Both varieties are
critical. The HTTP information includes cookies, information about
media types and compression schemes the browser understands,

3. Generate the results.


This process may require talking to a database, executing an RMI or
EJB call, invoking a Web service, or computing the response directly.
Your real data may be in a relational database. Fine. But your
database probably doesn’t speak HTTP or return results in HTML, so
the Web browser can’t talk directly to the database. Even if it could,
for security reasons, you probably would not want it to. The same
argument applies to most other applications. You need the Web
middle layer to extract the incoming data from the HTTP stream, talk
to the application, and embed the results inside a document.

4. Send the explicit data (i.e., the document) to the client.


This document can be sent in a variety of formats, including text
(HTML or XML), binary (GIF images), or even a compressed format like
gzip that is layered on top of some other underlying format. But,
HTML is by far the most common format, so an important servlet/JSP
task is to wrap the results inside of HTML.

62
5. Send the implicit HTTP response data.
Figure 1–1 shows a single arrow going from the Web middle layer (the
servlet or JSP page) to the client. But, there are really two varieties of
data sent: the document itself and the behind-the-scenes HTTP
information. Again, both varieties are critical to effective development.
Sending HTTP response data involves telling the browser or other
client what type of document is being returned (e.g., HTML), setting
cookies and caching parameters

The Advantages of Servlets Over “Traditional” CGI


Java servlets are more efficient, easier to use, more powerful, more
portable, safer, and cheaper than traditional CGI and many
alternative CGI-like technologies. With traditional CGI, a new process
is started for each HTTP request. If the CGI program itself is relatively
short, the overhead of starting the process can dominate the execution
time. With servlets, the Java virtual machine stays running and
handles each request with a lightweight Java thread, not a
heavyweight operating system process. Similarly, in traditional CGI, if
there are N requests to the same CGI program, the code for the CGI
program is loaded into memory N times. With servlets, however, there
would be N threads, but only a single copy of the servlet class would
be loaded. This approach reduces server memory requirements and
saves time by instantiating fewer objects. Finally, when a CGI program
finishes handling a request, the program terminates. This approach
makes it difficult to cache computations, keep database connections
open, and perform other optimizations that rely on persistent data.
Servlets, however, remain in memory even after they complete a
response, so it is straightforward to store arbitrarily complex data
between client requests.

Convenient
Servlets have an extensive infrastructure for automatically
parsing and decoding HTML form data, reading and setting HTTP

63
headers, handling cookies, tracking sessions, and many other such
high-level utilities. In CGI, you have to do much of this yourself.
Besides, if you already know the Java programming language, why
learn Perl too? You’re already convinced that Java technology makes
for more reliable and reusable code than does Visual Basic, VBScript,
or C++. Why go back to those languages for server-side programming?

Powerful
Servlets support several capabilities that are difficult or
impossible to accomplish with regular CGI. Servlets can talk directly
to the Web server, whereas regular CGI programs cannot, at least not
without using a server-specific API. Communicating with the Web
server makes it easier to translate relative URLs into concrete path
names, for instance. Multiple servlets can also share data, making it
easy to implement database connection pooling and similar resource-
sharing optimizations. Servlets can also maintain information from
request to request, simplifying techniques like session tracking and
caching of previous computations.

Portable
Servlets are written in the Java programming language and
follow a standard API. Servlets are supported directly or by a plug-in
on virtually every major Web server. Consequently, servlets written
for, say, Macromedia Run can run virtually unchanged on Apache
Tomcat, Microsoft Internet Information Server (with a separate plug-
in), IBM Web Sphere, planet Enterprise Server, Oracle9i AS, or Star
Nine Webster. They are part of the Java 2 Platform, Enterprise Edition
(J2EE; see http://java.sun.com/j2ee/), so industry support for
servlets is becoming even more pervasive.

Inexpensive
A number of free or very inexpensive Web servers are good for
development use or deployment of low- or medium-volume Web sites.

64
Thus, with servlets and JSP you can start with a free or inexpensive
server and migrate to more expensive servers with high-performance
capabilities or advanced administration utilities only after your project
meets initial success. This is in contrast to many of the other CGI
alternatives, which require a significant initial investment for the
purchase of a proprietary package. Price and portability are somewhat
connected. For example, Marty tries to keep track of the countries of
readers that send him questions by email. India was near the top of
the list, probably #2 behind the U.S. Marty also taught one of his JSP
and servlet training courses (see http://courses.coreservlets.com/) in
Manila, and there was great interest in servlet and JSP technology
there. Now, why are India and the Philippines both so interested? We
surmise that the answer is twofold. First, both countries have large
pools of well-educated software developers.

Second both countries have (or had, at that time) highly


unfavorable currency exchange rates against the U.S. dollar. So,
buying a special-purpose Web server from a U.S. company consumed
a large part of early project funds. But, with servlets and JSP, they
could start with a free server: Apache Tomcat (either standalone,
embedded in the regular Apache Web server, or embedded in
Microsoft IIS). Once the project starts to become successful, they
could move to a server like Caucho Resin that had higher performance
and easier administration but that is not free. But none of their
servlets or JSP pages have to be rewritten. If their project becomes
even larger, they might want to move to a distributed (clustered)
environment. No problem: they could move to Macromedia Run
Professional, which supports distributed applications (Web farms).
Again, none of their servlets or JSP pages have to be rewritten. If the
project becomes quite large and complex, they might want to use
Enterprise JavaBeans (EJB) to encapsulate their business logic. So,
they might switch to BEA Web Logic or Oracle9i AS. Again, none of
their servlets or JSP pages have to be rewritten. Finally, if their project

65
becomes even bigger, they might move it off of their Linux box and
onto an IBM mainframe running IBM Web- Sphere. But once again,
none of their servlets or JSP pages have to be rewritten

Secure

One of the main sources of vulnerabilities in traditional CGI stems


from the fact that the programs are often executed by general-purpose
operating system shells. So, the CGI programmer must be careful to
filter out characters such as backquotes and semicolons that are
treated specially by the shell. Implementing this precaution is harder
than one might think, and weaknesses stemming from this problem
are constantly being uncovered in widely used CGI libraries. A second
source of problems is the fact that some CGI programs are processed
by languages that do not automatically check array or string bounds.
For example, in C and C++ it is perfectly legal to allocate a 100-
element array and then write into the 999th “element,” which is really
some random part of program memory. So, programmers who forget to
perform this check open up their system to deliberate or accidental
buffer overflow attacks. Servlets suffer from neither of these problems.
Even if a servlet executes a system call (e.g., with Runtime. Exec or
JNI) to invoke a program on the local operating system, it does not use
a shell to do so. And, of course, array bounds checking and other
memory protection features are a central part of the Java
programming language.
Mainstream

There are a lot of good technologies out there. But if vendors don’t
support them and developers don’t know how to use them, what good
are they? Servlet and JSP technology is supported by servers from
Apache, Oracle, IBM, Sybase, BEA, Macromedia, Caucho, Sun/planet,
New Atlanta, ATG, Fujitsu, Ultras, Silver stream, the World Wide Web
Consortium (W3C), and many others. Several low-cost plugins add
support to Microsoft IIS and Zeus as well. They run on Windows,

66
Unix/Linux, Maces, VMS, and IBM mainframe operating systems.
They are the single most popular application of the Java programming
language. They are arguably the most popular choice for developing
medium to large Web applications. They are used by the airline
industry (most United Airlines and Delta Airlines Web sites), e-
commerce (ofoto.com), online banking (First USA Bank, Blanco
Popular de Puerto Rico), Web search engines/portals (excite.com),
large financial sites (American Century Investments), and hundreds of
other sites that you visit every day. Of course, popularity alone is no
proof of good technology. Numerous counter-examples abound. But
our point is that you are not experimenting with a new and unproven
technology when you work with server-side Java.

The Role of JSP


A somewhat oversimplified view of servlets is that they are Java
programs with HTML embedded inside of them. A somewhat
oversimplified view of JSP documents is that they are HTML pages
with Java code embedded inside of them. For example, compare the
sample servlet shown earlier (Listing 1.1) with the JSP page shown
below (Listing 1.2). They look totally different; the first looks mostly
like a regular Java class, whereas the second looks mostly like a
normal HTML page. The interesting thing is that, despite the huge
apparent difference, behind the scenes they are the same. In fact, a
JSP document is just another way of writing a servlet. JSP pages get
translated into servlets, the servlets get compiled, and it is the servlets
that run at request time. So, the question is, If JSP technology and
servlet technology are essentially equivalent in power, does it matter
which you use? The answer is, Yes, yes, yes! The issue is not power,
but convenience, ease of use, and maintainability. For example,
anything you can do in the Java programming language you could do
in assembly language. Does this mean that it does not matter which
you use? Hardly. JSP is discussed in great detail starting in Chapter
10. But, it is worthwhile mentioning now how servlets and JSP fit

67
together. JSP is focused on simplifying the creation and maintenance
of the HTML. Servlets are best at invoking the business logic and
performing complicated operations. A quick rule of thumb is that
servlets are best for tasks oriented toward processing, whereas JSP is
best for tasks oriented toward presentation. For some requests,
servlets are the right choice. For other requests, JSP is a better option.
For still others, neither servlets alone nor JSP alone is best, and a
combination of the two (see Chapter 15, “Integrating Servlets and JSP:
The Model View Controller (MVC) Architecture”) is best. But the point
is that you need both servlets and JSP in your overall project: almost
no project will consist entirely of servlets or entirely of JSP. You want
both.

68
CHAPTER 7
SYSTEM TESTING

69
7.1 TEST PLANS
A test plan is a general document for the entire project that
defines the scope, approach to be taken, and the schedule of testing
as well as identifies the test items for the entire testing process and
the person responsible for the different activities of testing.

The test planning can be done well before the actual testing
commences and can be done in parallel with the coding and design
phases. The inputs for forming the test plan are: (1) project plan (2)
requirements document and (3) system design document. The project
plan is needed to make sure that the test plan is consistent with the
overall plan for the project and the testing the test plan is consistent
with the overall plan for the project and the testing schedule matches
that of the project plan.

The requirements document and the design document are the


basic documents used for selecting the test units and deciding the
approaches to be used during testing. A test plan should contain the
following:

 Test unit specification


 Features to be tested
 Approach for testing
 Test deliverable
 Schedule
 Personnel allocation.

One of the most important activities of the test plan is to


identify the test units. A test unit is a set of one or more modules,
together with associate data, that are from a single computer program
and that are the objects of testing. A test unit can occur at any level
and can contain from a single module to the entire system.

Thus, a test unit may be a module, a few modules, or a


complete system. The levels are specified in the test plan by
identifying the test units for the project. Different units are usually

70
specified for unit integration, and system testing. The identification of
test units may be a module, a few modules or a complete system. The
levels are specified in the test plan by identifying the test units for the
project.

Different units are usually specified for unit, integration and


system testing. The identification of test units establishes the different
levels of testing that will be performed in the project.

The basic idea behind forming test units is to make sure that
testing is being performed incrementally, with each increment
including only a few aspects that need to be tested. A unit should be
such that it can be easily tested.

In other words, it should be possible to form meaningful test


cases and execute the unit without much effort with these test cases.
Features to be tested include all software features and combinations
of features that should be tested.

A software feature is a software characteristic specified or


implied by the requirements or design documents. These may include
functionality, performance, design constraints, and attributes.

The approach for testing specifies the overall approach to be


followed in the current project. The technique that will be used to
judge the testing effort should also be specified. This is sometimes
called the testing criterion. Testing deliverable should be specified in
the test plan before the actual testing begins.

Deliverables could be a list of test cases that were used, detailed


result of testing, test summary report, test log, and data about the
code coverage. In general, a test case specification report, test
summary report, and a test log should always be specified as
deliverables.

71
7.1.1 BOTTOM-UP TESTING:

Begins construction and testing with atomic modules. As


modules are integrated from the bottom up, processing requirement
for modules subordinate to a given level is always available and need
for stubs is eliminated. The following steps implements this strategy.

 Low-level modules are combined in to clusters that perform a


specific software sub function.
 A driver is written to coordinate test case input and output.
 Cluster is tested.
 Drivers are removed and moving upward in program structure
combines clusters.
 Integration moves upward, the need for separate test driver’s
lesions.

If the top levels of program structures are integrated top down,


the number of drivers can be reduced substantially and integration of
clusters is greatly simplified.

7.1.2 TOP-DOWN TESTING:

Modules are integrated by moving downwards through the


control hierarchy beginning with main program. The subordinate
modules are incorporated into structure in either a breadth first
manner or depth first manner. This process is done in five steps:

 Main control module is used as a test driver and steps are


substituted or all modules directly to main program.
 Depending on the integration approach selected subordinate is
replaced at a time with actual modules.
 Tests are conducted.
 On completion of each set of tests another stub is replaced with
the real module.
 Regression testing may be conducted to ensure trha6t new
errors have not been introduced.

72
This process continuous from step 2 until entire program
structure is reached. In top down integration strategy decision making
occurs at upper levels in the hierarchy and is encountered first. If
major control problems do exists early recognitions is essential.

If depth first integration is selected a complete function of the


software may be implemented and demonstrated.

Some problems occur when processing at low levels in hierarchy


is required to adequately test upper level steps to replace low-level
modules at the beginning of the top down testing. So no data flows
upward in the program structure.

7.2 TESTING APPROACHES

Software testing methods are traditionally divided into black box


testing and white box testing. These two approaches are used to
describe the point of view that a test engineer takes when designing
test cases.

Black box testing

Black box testing treats the software as a "black box"—without any


knowledge of internal implementation. Black box testing methods
include: equivalence partitioning, boundary value analysis, all-pairs
testing, fuzz testing, model-based testing, traceability matrix,
exploratory testing and specification-based testing.

Specification-based testing: Specification-based testing aims to test


the functionality of software according to the applicable requirements.
Thus, the tester inputs data into, and only sees the output from, the
test object. This level of testing usually requires thorough test cases to
be provided to the tester, who then can simply verify that for a given
input, the output value (or behavior), either "is" or "is not" the same as
the expected value specified in the test case.

73
Specification-based testing is necessary, but it is insufficient to guard
against certain risks.

Advantages and disadvantages: The black box tester has no "bonds"


with the code, and a tester's perception is very simple: a code must
have bugs. Using the principle, "Ask and you shall receive," black box
testers find bugs where programmers do not. But, on the other hand,
black box testing has been said to be "like a walk in a dark labyrinth
without a flashlight," because the tester doesn't know how the
software being tested was actually constructed. As a result, there are
situations when (1) a tester writes many test cases to check something
that could have been tested by only one test case, and/or (2) some
parts of the back-end are not tested at all.

Therefore, black box testing has the advantage of "an unaffiliated


opinion," on the one hand, and the disadvantage of "blind exploring,"
on the other.

White box testing


White box testing is when the tester has access to the internal data
structures and algorithms including the code that implement these.

Types of white box testing


The following types of white box testing exist:
 API testing (application programming interface) - Testing of the
application using Public and Private APIs
 Code coverage - creating tests to satisfy some criteria of code
coverage (e.g., the test designer can create tests to cause all
statements in the program to be executed at least once)
 Fault injection methods - improving the coverage of a test by
introducing faults to test code paths
 Mutation testing methods
 Static testing - White box testing includes all static testing
74
Test coverage

White box testing methods can also be used to evaluate the


completeness of a test suite that was created with black box testing
methods. This allows the software team to examine parts of a system
that are rarely tested and ensures that the most important function
points have been tested.

Two common forms of code coverage are:

 Function coverage, which reports on functions executed


 Statement coverage, which reports on the number of lines
executed to complete the test

They both return a code coverage metric, measured as a percentage.

7.3 TEST CASES

A test case is a set of input data and an expected result that exercises
the component with the purpose of causing failures and detecting
faults. Test cases are classified into black box test and white box test.
Black box test focus on input/output behavior of the component.
White box test focus on internal structure of the components.

ADMIN Login:
TEST CASE CONDITIONS EXPECTED OBSERVED STATUS
BEING BEHAVIOUR BEHAVIOUR
CHECKED
User Check validation Display a Display a Pass
name=”XYZ” message message
wrong user wrong user
name name

75
Password=” “ Existence of Display a Display a pass
mandatory fields message to message to fill
fill all empty all empty man
man datary datary fields
fields
User Existence of If valid user it If valid user it pass
name=”XYZ” man datary displays displays home
Password=”123” fields home page page else error
else error message
message

Tab 7.1: Admin Login Test Case


NORMAL USER REGISTRATION
Tab 7.2: User Registration Test Case
NORMAL USER LOGIN:

TEST CASE CONDITIONS EXPECTED OBSERVED STATU


BEING CHECKED BEHAVIOUR BEHAVIOUR S

User name=”abc” Check validation Display a Display a Pass


message message
wrong user wrong user
name name
Password=” “ Existence of Display a Display a pass
mandatory fields message to fill message to fill
all empty all empty
man datary man datary
fields fields
User name=”abc” Existence of If valid user it If valid user it pass
Password=”777” mandatory fields displays displays
home page home page
else error else error
message message

7.4 TESTING CATEGORIES


Unit Testing

Unit testing refers to tests that verify the functionality of a specific


section of code, usually at the function level. In an object-oriented
environment, this is usually at the class level, and the minimal unit
tests include the constructors and destructors. These type of tests are
76
usually written by developers as they work on code (white-box style),
to ensure that the specific function is working as expected. One
function might have multiple tests, to catch corner cases or other
branches in the code. Unit testing alone cannot verify the functionality
of a piece of software, but rather is used to assure that the building
blocks the software uses work independently of each other.

Unit testing is also called Component Testing.

Integration Testing
Integration testing is any type of software testing that seeks to verify
the interfaces between components against a software design.
Software components may be integrated in an iterative way or all
together ("big bang"). Normally the former is considered a better
practice since it allows interface issues to be localised more quickly
and fixed.

Integration testing works to expose defects in the interfaces and


interaction between integrated components (modules). Progressively
larger groups of tested software components corresponding to
elements of the architectural design are integrated and tested until
the software works as a system.

System Testing
System testing tests a completely integrated system to verify that it
meets its requirements.

System Integration Testing


System integration testing verifies that a system is integrated to any
external or third party systems defined in the system requirements.

Regression Testing

Regression testing focuses on finding defects after a major code


change has occurred. Specifically, it seeks to uncover software

77
regressions, or old bugs that have come back. Such regressions occur
whenever software functionality that was previously working correctly
stops working as intended. Typically, regressions occur as an
unintended consequence of program changes, when the newly
developed part of the software collides with the previously existing
code. Common methods of regression testing include re-running
previously run tests and checking whether previously fixed faults have
re-emerged. The depth of testing depends on the phase in the release
process and the risk of the added features. They can either be
complete, for changes added late in the release or deemed to be risky,
to very shallow, consisting of positive tests on each feature, if the
changes are early in the release or deemed to be of low risk.

Acceptance testing
Acceptance testing can mean one of two things:

1. A smoke test is used as an acceptance test prior to introducing


a new build to the main testing process, i.e. before integration
or regression.
2. Acceptance testing performed by the customer, often in their lab
environment on their own HW, is known as user acceptance
testing (UAT). Acceptance testing may be performed as part of
the hand-off process between any two phases of development.

Alpha testing
Alpha testing is simulated or actual operational testing by potential
users/customers or an independent test team at the developers' site.
Alpha testing is often employed for off-the-shelf software as a form of
internal acceptance testing, before the software goes to beta testing.

Beta testing
Beta testing comes after alpha testing. Versions of the software,
known as beta versions, are released to a limited audience outside of
the programming team. The software is released to groups of people so

78
that further testing can ensure the product has few faults or bugs.
Sometimes, beta versions are made available to the open public to
increase the feedback field to a maximal number of future users.

Performance testing

Performance testing is executed to determine how fast a system or


sub-system performs under a particular workload. It can also serve to
validate and verify other quality attributes of the system, such as
scalability, reliability and resource usage

Security testing
Security testing is essential for software that processes confidential
data to prevent system intrusion by hackers.

Smoke Testing:
The term “smoke testing” is used in several different contexts. Often,
people use it to refer to a test of a system such as a vacuum system or
plumbing system, in which smoke is literally forced through the
system to look for leaks and other problems. This term can also be
used metaphorically when talking about testing other things, usually
in the sense of a quick test conducted to confirm that the system
being tested is operational, even if it only functions on a very basic
level.

One case in which smoke testing is widely used is in testing of sewer


systems. Smoke testing can be used to identify leaks as well as inlets,
and may be used if sewage is spilling out, backing up, or if other
problems are being experienced. In this type of smoke test, nontoxic
smoke is blown through the sewer system, and observers watch for
plumes of smoke which can reveal tell-tale problems. This type of
testing is usually performed by public works employees for the
purpose of monitoring public or environmental safety.

User Interface testing:


79
Success of any UI application depends on how it interacts with user
through its user interface, how the user actions are performed to
access application's features and whether application responds in
functionally correct manner. An application with incorrect behavior or
invalid user interaction can lead to huge problems. We will try to
understand few important aspects with UI Testing. Following
document will help you understand what UI Testing means, why its
required and how you can successfully implement UI Testing for your
UI applications, Desktop applications, .NET applications and windows
applications using Imperfect in Automated manner. The important
benefits of Automated UI Testing includes, higher test coverage levels,
greater reliability, shorted test cycles, ability to do multi user testing
at no extra cost, all resulting in increased levels of confidence in the
application and its successful deployment.

Database Testing:
Data base testing basically include the following.
1) Data validity testing.
2) Data Integritity testing
3) Performance related to database.
4) Testing of Procedure triggers and functions.

For doing data validity testing you should be good in SQL queries.

For data integrity testing you should know about referintial integrity
and different constraint.

For performance related things you should have idea about the table
structure and design.

For testing Procedure triggers and functions you should be able to


understand the same.

80
81
CHAPTER 8
CONCLUSION

82
8.1 Limitations
1. Bandwidth shifting is not efficient.
2. All customers are not getting the quality of services.
3. Insufficient distribution of bandwidth details.
8.2 Conclusion:
we have identified and addressed the problem of bandwidth shifting
and redistribution in an MCC environment. The bandwidth
redistribution problem differs from traditional bandwidth allocation
problem in that while the former concerns allocating proportional
bandwidth to all the gateways (and, in turn, to the users), even if only
a few gateways change their bandwidth demand, the latter concerns
allocating bandwidth to that gateways who have changed the
bandwidth demand. We have proposed an auction-based QoS-
guaranteed utility maximization algorithm for maximizing the revenue
of each gateway, while it maintains QoS of mobile nodes by
purchasing bandwidth from the service provider.

8.3 Scope for Future Enhancements


In terms of future work, we plan to add key revocation and
subscription privacy support. Bethencourt et al. show how time-based
key revocation would be possible using the current construction, and
more recently Hur et al. presented a more efficient construction.
Protecting the privacy of subscriber interests requires no leakage
about the subscriber’s query to third parties. CASCADE protects
privacy of interests to the most part simply because user queries are
satisfied locally. However, when a user fetches the content from the
responsible node(s), the latter might learn what a specific user is
interested in by examining the user’s fetch requests over time. Recent
system and cryptographic solutions for protecting subscriber privacy
might be relevant here, see and references there in.

83
CHAPTER9
BIBLIOGRAPHY

84
Good Teachers are worth more than thousand books, we have them in
Our Department

9.1 Books Referred


1. Donald C. Lee, " Enhanced IP Services for CISCO Networks: A
Practical Resource for Deploying Quality of Service,
Security, IP Routing, and VPN Services," Cisco Press, October
1999, 408 pages.
2. Seyhan Civanlar, James V. Luciani, Raif O. Onvural, " Internet
II : Quality of Service and Future Directions," SPIE,
December 1999.
3. Paul Ferguson, Geoff Huston, " Quality of Service: Delivering
QoS on the Internet and in Corporate Networks," Wiley,
January 1998, 288 pages.

9.2 Paper Referred


1. Amamou, M. Bourguiba, K. Haddadou, and G. Pujolle, “A
Dynamic Bandwidth Allocator for Virtual Machines in a Cloud
Environment,” Proc. IEEE Consumer Comm. and Networking
Conf., pp. 99-104, Jan. 2012.
2. M. Armbrust, A. Fox, R. Griffith, A.D. Joseph, R. Katz, A.
Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica, and M.
Zaharia, “Above the Clouds: A View of Cloud Computing,”
Comm. ACM, vol. 53, pp. 50-58, 2010.
3. C.M. Assi, Y. Ye, and S. Dixit, “Dynamic Bandwidth Allocation
for Quality-Of-Service over Ethernet PONs,” IEEE J. Selected
Areas in Comm., vol. 21, no. 9, pp. 1467-1477, Nov. 2003.
4. L. Badia, S. Merlin, and M. Zorzi, “Resource Management in
IEEE 802.11 Multiple Access Networks with Price-Based Service
Provisioning,” IEEE Trans.
5. R. Chai, X. Wang, Q. Chen, and T. Svensson, “Utility-Based
Bandwidth Allocation Algorithm for Heterogeneous Wireless
Networks,” Science China Information Sciences, vol. 56, no. 2,
pp. 95-107, 2013.

85
6. P. Chaikijwatana and T. Tachibana, “VCG Auction-Based
Bandwidth Allocation with Network Coding in Wireless
Networks,” Proc. 10th WSEAS Int’l Conf. Applied Computer and
Applied Computational Science, pp. 104-109, 2011.
7. L. Chen, S. Iellamo, M. Coupechoux, and P. Godlewski, “An
Auction Framework for Spectrum Allocation with Interference
Constraint in Cognitive Radio Networks,” Proc. IEEE INFOCOM,
pp. 1-9, 2010.
8. L. Chen, B. Wang, X. Chen, X. Zhang, and D. Yang, “Utility-
Based Resource Allocation for Mixed Traffic in Wireless
Networks,” Proc. IEEE INFOCOM, pp. 91-96, 2011.
9. Y. Chen, Y.Wu, B.Wang, and K.J.R. Liu, “SpectrumAuction
Games for Multimedia Streaming over Cognitive Radio
Networks,” IEEE Trans. Comm., vol. 58, no. 8, pp. 2381-2390,
Aug. 2010.
10. S. Das, S. Misra, M. Khatua, and J.J.P.C. Rodrigues, “Mapping
of Sensor Nodes with Servers in a Mobile Health-Cloud
Environment,” Proc. IEEE 15th Int’l Conf. E-Health Networking,
Application and Services, Oct. 2013.

9.3 Websites Referred:


1. http://www.sciencedirect.com/science/article/pii/S089812211
1009084
2. http://www.sciencedirect.com/science/article/pii/S0167739X1
1000689
3. http://link.springer.com/chapter/10.1007%2F978-1-84996-
241- 4_20#page-1
4. https://plus.google.com/s/qos%20in%20mobile%20cloud
%20computing
5. Open Social Framework. http://code.google.com/p/opensocial-
resources/.
6. Face book Developers. http://developers.facebook.com/.

86
CHAPTER - 10
APPENDIX

87
10.1 SAMPLE CODE

package com.qosmce.locationmaputils;

public class GatewayBean {


public int requestCount;
public float bandwidth;
public float cost;
public long nanoSecs;
public int getRequestCount() {
return requestCount;
}
public void setRequestCount(int requestCount) {
this.requestCount = requestCount;
}
public float getBandwidth() {
return bandwidth;
}
public void setBandwidth(float bandwidth) {
this.bandwidth = bandwidth;
}
public float getCost() {
return cost;
}
public void setCost(float cost) {
this.cost = cost;
}
public long getNanoSecs() {
return nanoSecs;
}
public void setNanoSecs(long nanoSecs) {
this.nanoSecs = nanoSecs;
}

}
package com.qosmce.locationmaputils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class GatewayComparission {


List<GatewayBean> listsBeans = null;

88
public String bestGateNumber(List<GatewayBean> listsBeans) {
// listsBeans = new ArrayList<GatewayBean>();
int requestCount = 100;
float bandwidth = 100;
String returnType="";
float cost = 100;
long nanoSecs = 1000000;
String requestCountString = "";
String bandwidthString = "";
String costString = "";
String nanoSecsString = "";
this.listsBeans = listsBeans;
// GatewayBean gatewayBean = new GatewayBean();
// gatewayBean.setRequestCount(3);
// gatewayBean.setCost(1.50f);
// gatewayBean.setNanoSecs(79200);
// gatewayBean.setBandwidth(9.25f);
// listsBeans.add(gatewayBean);
// gatewayBean = new GatewayBean();
// gatewayBean.setRequestCount(3);
// gatewayBean.setCost(1.38f);
// gatewayBean.setNanoSecs(74880);
// gatewayBean.setBandwidth(9.54f);
// listsBeans.add(gatewayBean);
// gatewayBean = new GatewayBean();
// gatewayBean.setRequestCount(4);
// gatewayBean.setCost(2.77f);
// gatewayBean.setNanoSecs(66960);
// gatewayBean.setBandwidth(2.31f);
// listsBeans.add(gatewayBean);

// for (int i = 0; i < 4; i++) {


for (int j = 0; j < listsBeans.size(); j++) {

if (requestCount > ((GatewayBean) listsBeans.get(j))


.getRequestCount())
{
requestCount = ((GatewayBean) listsBeans.get(j))

89
.getRequestCount();
requestCountString = "" + (j + 1);
}
if(bandwidth>((GatewayBean)
listsBeans.get(j)).getBandwidth()) {
bandwidth=((GatewayBean)
listsBeans.get(j)).getBandwidth();
bandwidthString = "" + (j + 1);
}
if(cost>((GatewayBean)listsBeans.get(j)).getCost()) {
cost=((GatewayBean)istsBeans.get(j)).getCost();
costString = "" + (j + 1);
}
if(nanoSecs>((GatewayBean)
listsBeans.get(j)).getNanoSecs()) {
nanoSecs=((GatewayBean)
listsBeans.get(j)).getNanoSecs();
nanoSecsString = "" + (j + 1);
}
}

String gateway = requestCountString + bandwidthString +


costString+ nanoSecsString;
int max = 0;
Map<Character,Integer>map=newHashMap<Character, Integer>();
for (int i = 0; i < gateway.length(); i++) {
char c = gateway.charAt(i);
if (map.containsKey(c)) {
int cnt = map.get(c);
map.put(c, ++cnt);
} else {
map.put(c, 1);
}
}

for (Map.Entry<Character, Integer> entry : map.entrySet()) {


if (max < entry.getValue()) {
max = entry.getValue();
}

90
}

for (Map.Entry<Character, Integer> entry : map.entrySet()) {


if (max == entry.getValue()) {
returnType = entry.getKey()+"";
System.out.println(entry.getKey());
}

}
return returnType;
// }
}

}
/*
* InfraStructureControlerStructure.java
*
* Created on __DATE__, __TIME__
*/

package com.qosmce.cloudservice.provider;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.qosmce.listiterator.ArrayStringListIterator;

/**
*
* @author __USER__
*/
public class CloudServiceProvider extends javax.swing.JFrame {

String mobileuserdetails = "";


String gatewaydetails = "";

91
/** Creates new form InfraStructureControlerStructure */
public CloudServiceProvider() {
initComponents();
}

/**
* This method is called from within the constructor to initialize the
form.
* WARNING: Do NOT modify this code. The content of this method is
always
* regenerated by the Form Editor.
*/
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();


jLabel2 = new javax.swing.JLabel();
jTabbedPane1 = new javax.swing.JTabbedPane();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jScrollPane2 = new javax.swing.JScrollPane();
jTable2 = new javax.swing.JTable();
jScrollPane3 = new javax.swing.JScrollPane();
jTable3 = new javax.swing.JTable();
jScrollPane4 = new javax.swing.JScrollPane();
jTable4 = new javax.swing.JTable();
jScrollPane6 = new javax.swing.JScrollPane();
jTable6 = new javax.swing.JTable();
jScrollPane5 = new javax.swing.JScrollPane();
jTable5 = new javax.swing.JTable();

setTitle("Cloud Service Provider");

jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 36));


jLabel1.setForeground(new java.awt.Color(255, 51, 0));
jLabel1.setText("Cloud Service Provider");

92
jLabel2.setText("Available Services");

jTable1.setModel(new javax.swing.table.DefaultTableModel(
newObject[][]{{null,null,null},{null,null,null},{null, null, null }, {
null, null, null } },
newString[]{"MobileNodes","IPV6","Locations" ));
jScrollPane1.setViewportView(jTable1);
jTabbedPane1.addTab("MobileNodes", jScrollPane1);
jTable2.setModel(new javax.swing.table.DefaultTableModel(
newObject[][]{{null,null,null},{null,null, null },
{ null, null, null }, { null, null, null } },
newString[]
{"GatewayName","IPv6",GatewayLocation" }));
jScrollPane2.setViewportView(jTable2);
jTabbedPane1.addTab("Gateways", jScrollPane2);
jTable3.setModel(new javax.swing.table.DefaultTableModel(
newObject[][]{{"WebServer","Tomcat"},{null,null },
{null,null},{null,null}},newString[]{ServerType", "ServerName" }));
jScrollPane3.setViewportView(jTable3);

jTabbedPane1.addTab("AppServers", jScrollPane3);
jTable4.setModel(new javax.swing.table.DefaultTableModel(
new Object[][] {{"Oracle10G","Local"},{null,null},
{ null, null }, { null, null } }, new String[] {
"DatabaseServer", "Location" }));
jScrollPane4.setViewportView(jTable4);
jTabbedPane1.addTab("Databases", jScrollPane4);
jTable6.setModel(new javax.swing.table.DefaultTableModel(
new Object[][] {{ "SAN(StorageAreaNetwork)",
"DBservers,AppServers,EmailServers,WebServers" },
{"LAN(LocalAreaNetworks)","Offices,Colleges,Branches" },
{"MAN(MetroAreaNetworks)","Connected with MetroArea Networks" },
{"WAN(WideAreaNetwork)","Conneted with Global Area NetWorks" } },
new String[] { "NetworkType", "ConnectionAreas" }));
jScrollPane6.setViewportView(jTable6);
jTabbedPane1.addTab("Networks", jScrollPane6);
jTable5.setModel(new javax.swing.table.DefaultTableModel(
new Object[][] {
{ "AppServers","Accoding To Networks Architectures" },

93
{ "DatabaseServers","Accoding To Networks Architectures" },
{ "LocationServers","Accoding To Networks Architectures" },
{ "Ecenters","Accoding To Networks Architectures" },
{ "ED", "Accoding To Networks Architectures" },
{ "VCD", "Accoding To Networks Architectures" },
{ "NetworkElemets","Accoding To Networks Architectures" },
{ "VMwares","Accoding To Networks Architectures" },
{ "PCs", "Accoding To Networks Architectures" },
{ "MobileNodes","Accoding To Networks Architectures" },
{ "Switches","Accoding To Networks Architectures" },
{ "Routers","Accoding To Networks Architectures" },
{ "EmailServers","Accoding To Networks Architectures" },
{ "GatewayServers","Accoding To Networks Architectures" } },
new String[] { "ObjectsName", "ObjectLocation" }));
jScrollPane5.setViewportView(jTable5);
jTabbedPane1.addTab("ObjectsStorages", jScrollPane5);

org.jdesktop.layout.GroupLayoutlayout=new
org.jdesktop.layout.GroupLayout(getContentPane());
getContentPane().setLayout(layout);

layout.setHorizontalGroup(layout.createParallelGroup(
org.jdesktop.layout.GroupLayout.LEADING).add(layout
.createSequentialGroup().add(layout.createParallelGroup(

org.jdesktop.layout.GroupLayout.LEADING).add(layout.createSequentialGr
oup().addContainerGap().add(jTabbedPane1,org.jdesktop.layout.
GroupLayout.DEFAULT_SIZE,603,Short.MAX_VALUE)).add(layout.createSe
quentialGroup().add(23,23,23).add(jLabel2)).add(layout.createSequentialGr
oup().add(100, 100, 100).add(jLabel1))).addContainerGap()));

layout.setVerticalGroup(layout.createParallelGroup(org.jdesktop
.
layout.GroupLayout.LEADING).add(layout.createSequentialGroup().add(28,
28,28).add(jLabel1).add(18,18,18).add(jLabel2).addPreferredGap(
org.jdesktop.layout.LayoutStyle.UNRELATED).add(jTabbedPane1,

org.jdesktop.layout.GroupLayout.DEFAULT_SIZE,219,Short.MAX_VALUE).
addContainerGap()));

94
pack();
}// </editor-fold>
//GEN-END:initComponents

/**
* @param args
* the command line arguments
*/
public static void main(String args[]) {
CloudServiceProviderinfraStructureControlerStructure=new
CloudServiceProvider();
infraStructureControlerStructure.setVisible(true);
boolean flag = true;
List<String> mobilenodedetails = new ArrayList<String>();
List<String> gatewayDetails = new ArrayList<String>();

try {
DatagramSocket ds = new DatagramSocket(11111);
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, 1024);
while (true) {
ds.receive(dp);
String str = new String(dp.getData(), 0,
dp.getLength());
if (str.contains("Gateway"))
{
gatewayDetails.add(str);
infraStructureControlerStructure.gatewaydetails = str;

infraStructureControlerStructure.jTable2.setModel(new
javax.swing.table.DefaultTableModel(new ArrayStringListIterator()
.convertGateWayArray(gatewayDetails),newString[] { "GatewayName",
"IPv6",
"GatewayLocatio
n" }));
// flag =
true;
} else if (str.contains("MobileNode")) {mobilenodedetails.add(str);

95
infraStructureControlerStructure.jTable1.setModel(new
javax.swing.table.DefaultTableModel(new ArrayStringListIterator()
.co
nvertGateWayArray(mobilenodedetails),newString[]{"MobileNodes", "IPV6",
"Locations" }));

infraStructureControlerStructure.mobileuserdetails = str;
try {
DatagramSocket dst = new
DatagramSocket();
String strs = infraStructureControlerStructure.mobileuserdetails
+ "---->"+ infraStructureControlerStructure.gatewaydetails
+ "--->CloudServiceProvider---->"+ "ControllerServer---->"
+ "ApplicationServer(Tomcat)";
InetAddress ip = InetAddress.getByName("127.0.0.1");
DatagramPacket dpt = new DatagramPacket(strs.getBytes(), strs.length(),
ip, 22222);
dst.send(dpt);
}
catch (Exception e) {
System.out.println(e);
}
}
}
} catch (Exception e) {
System.out.println("Exception@ Cloud Servevice
Providers");
}
}

//GEN-BEGIN:variables
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JScrollPane jScrollPane3;
private javax.swing.JScrollPane jScrollPane4;
private javax.swing.JScrollPane jScrollPane5;

96
private javax.swing.JScrollPane jScrollPane6;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JTable jTable1;
private javax.swing.JTable jTable2;
private javax.swing.JTable jTable3;
private javax.swing.JTable jTable4;
private javax.swing.JTable jTable5;
private javax.swing.JTable jTable6;
// End of variables declaration//GEN-END:variables

97
10.2 SCREEN SHOTS

Fig 1: Atm banking system

Description: A sample system for the user to find the best gateway in
process used by registering from different locations

98
Fig 2: This shows the infrastruture controller

Desription:infrastruture controller shows the service logs of the user


requests.

99
Fig 3: Clould service provider

Description: This above screen shot shows the cloud service provider
wher we can see the mobile nodes connected , gateways
communicated , application server used.

100
Fig 4: Mobile gateway server1

Description: Gateway server shows the bandwith details , request


details mobile nodes connected after execution of user application
program for a specific url from a different locations

101
Fig 5: Mobile gateway server2
Description: Gateway server shows the bandwith details , request
details mobile nodes connected after execution of user application
program for a specific url from a different locations

102
Fig 6:Mobile gateway server3
Description: Gateway server shows the bandwith details , request
details mobile nodes connected after execution of user application
program for a specific url from a different locations

103
Fig 7: cloud service provider

Description: After the execution of the mobile sensor of user program


by taking from different locations ,means user comuunicating from
different positions , request through gateways are appeared.

104
Fig : 8 cloud service provider

Description: After the execution of the mobile sensor of user program


by taking from different locations ,means user comuunicating from
different positions , request through gateways are appeared, diplaying
the webser used

105
Fig:9 cloud service provider displaying database

Description: After the execution of the mobile sensor of user program


by taking from different locations ,means user comuunicating from
different positions , request through gateways are appeared,
displaying database used.

106
Fig:10 cloud service provider displaying networks

Description: After the execution of the mobile sensor of user program


by taking from different locations ,means user comuunicating from
different positions , request through gateways are appeared,
displaying networks used.

107
Fig:11 cloud service provider displaying object storages

Description: After the execution of the mobile sensor of user program


by taking from different locations ,means user comuunicating from
different positions , request through gateways are appeared,
displaying object storages.

108
Fig:12 Mobile user windows

109
Fig:13 Ifrastructure controller window
Desription:infrastruture controller shows the service logs of the user
requests.

110
Fig:14 cloud service provider displaying Mobile nodes
Description: After the execution of the mobile sensor of user program
by taking from different locations ,means user comuunicating from
different positions , request through gateways are appeared,
displaying mobile nodes.

111
Fig:15 Mobile gateway server showing mobile users conneted

Description: Gateway server shows the bandwith details , request


details mobile nodes connected after execution of user application
program for a specific url from a different locations, showing mobile
users conneted.

112
Fig:16 Mobile gateway server showing mobile users conneted

Description: Gateway server2 shows the bandwith details , request


details mobile nodes connected after execution of user application
program for a specific url from a different locations, showing mobile
users conneted.

113
Fig:17 Mobile gateway server showing mobile users conneted

Description: Gateway server3 shows the bandwith details , request


details mobile nodes connected after execution of user application
program for a specific url from a different locations, showing mobile
users conneted.

114
Fig:18 Mobile user window showing mobile users used applications

115
Fig:19 Infrastructure servise logs

116
Fig:20 Mobile gateway server request details

Description: Gateway server1 shows the bandwith details , request


details mobile nodes connected after execution of user application
program for a specific url from a different locations, showing request
details.

117
Fig:21 Mobile gateway server request details

Description: Gateway server2 shows the bandwith details , request


details mobile nodes connected after execution of user application
program for a specific url from a different locations, showing request
details.

118
Fig:22 Mobile gateway server Bandwidth details

Description: Gateway server3 shows the bandwith details , request


details mobile nodes connected after execution of user application
program for a specific url from a different locations, showing
bandwidth details.

Fig:23 Bandwidth shifting stratagies

119
Fig:24 Gateway text

120
Fig:25 Bandwidth results

Description : Displays the bandwidth results of gateway1, which url


requests been requested , time taken to process and bandwidth
required.

121
Fig:26 Bandwidth results

Description : Displays the bandwidth results of gateway2, which url


requests been requested , time taken to process and bandwidth
required.

122
Fig:27Bandwidth results for gateway3

Description : Displays the bandwidth results of gateway3, which url


requests been requested , time taken to process and bandwidth
required.

123
Fig:28 Best Gateway

Description : Display the best gateway among all gateways .

124
Fig:29Bandwidth results for nash equilibrium

Description: Displays the mobile node connected , from which place


and the nash equilibrium result of respective node

125
126
Fig:30Bandwidth bar chart

Description: Shows bandwith requirement of each gateway according


to requests

127
Fig:31 Cost bar chart

Description: Shows cost requirement of each gateway according to


requests

128
Fig:32 Time bar chart
Description: Shows time requirement of each gateway according to
requests

129
Fig:33 request bar chart

Description: Shows Request bar chat of each gateway according to


requests

130
CHAPTER - 11
PUBLISHED PAPER

131
ENHANCING SERVICE PROVISIONING
ACCURACY USING VM MIGRATION AND
NASH EQUILIBRIUM

Palepu SuryaBharati*1. CH.Vijayakumari*2, A.SrinivasRao*3


M.Tech CSE Student, Dept of CSE, MRCE, Maisamaguda,
Secunderabad, Telangana State, India,
suryabharati_palepu@yahoo.co.in.
Assistant Professor, Dept of CSE, MRCE, Maisamaguda,
Secunderabad, Telangana State, India, vijaya2011@mrce.in.
Associate Professor, Dept of CSE, MRCE, Maisamaguda,
Secunderabad, Telangana State, India

ABSTRACT:

All organizations are preferring cloud computing because of


unlimited data storage and resources. Service based applications are
design network architectures. Those architectures do not provide the
quality of services. Now in this paper we alter architectures using VM
migration and Nash Auction Equilibrium. One VM have not sufficient
resources, automatically we can get the resources from other VM.
Identify suitable reservation plans based on ask value and bid values
information. In end of the paper we show the simulation study our
mechanism is effective compare to all previous mechanisms.
KEYWORDS: Cloud computing, VM migration, Nash Auction
Equilibrium, bid, asks values, QOS.

132
I.INTRODUCTION
Cloud computing is also known as utility based computing.
Cloud provides the services based on pay per use manner revenue
generation. All large scale enterprises prefer the clouds to provide the
services to customers.

Cloud providers make available of computing power and


storage. Here there is no guarantee about the quality of service.
Previous mobile cloud computing architectures was not providing the
reliable and performance solutions to customers.

In this paper modified mobile cloud computing architecture


designs using new features. Those features are VM migration and
Nash Auction Equilibrium. These features provide results with optimal
cost, performance and reliability solutions.

II. RELATED WORK:


Mobile cloud computing provides many advantages and
disadvantages. Disadvantages means looks like an issues. Those
issues are service availability, low bandwidth, network management,
QOS guarantee, pricing problems in mobile cloud computing (MCC).
Now here we can offer new motivational platform of present work on
bandwidth redistribution.

Several works are available on optimal bandwidth allocation


process. Using coalition game theory shares limited bandwidth
solution for centralized users. This model is not forward any
information about bandwidth sharing among the users. To overcome
this limitation extended the scheme with distribution policy. Here we
can evaluate the bandwidth usage among the users using markov
decision trees. This is kind of system is more helpful the users. All
mobile users are recommended for this system, but here major
problem it’s does not provide all QOS requirements. Here there exist
few more allocation schemes are available that help to maintain the

133
QOS requirements. These new allocation schemes ensure to provide
equal expected access delay, fair allocation, guaranteed bandwidth,
and service differentiation. It cannot control all failures because of
insufficient resource.

Again new QOS guaranteed measurement preservation scheme


is proposed here. Using this scheme we can achieve end-end fair
bandwidth allocation. It can satisfy the some number of QOS
parameters. To satisfy other dimensions of QOS parameters we can
introduce new schemes. Those schemes are max-min fair maximum
throughput bandwidth allocation and dynamic bandwidth allocation
algorithms. These schemes are provide the bandwidth allocation
based on users requirements. Whenever share the bandwidth, users
are not receive the resources efficiently. Some disturbances are
created here. Again to overcome the disturbances here we can
introduce the priority queue concept. Using priority queue concepts
all users are receive the bandwidth according to requirements.

Again we address the issue in dynamic spectrum resource


allocation cognitive radio networks also. These issues we observed in
secondary users and service providers. Solve the dynamic spectrum
resource allocation issue with spectrum sharing technique. Spectrum
sharing technique design with auction based approach.

Auction based approach allows authorized primary and


secondary users in our implementation process. Its control all
interferences problems with distributed allocation schemes. All levels
of users are gets the performance results.

Previous action based environment also some issues are


available. Those issues are resolve with another auction based
environment. New auction based environment is called generalized
mechanism.

134
Fig1: Example Mobile Cloud Computing Architecture

III. PROBLEM STATEMENT:


Mobile Cloud Computing can be an enabler to realize the vision
of any time and any environment or place. Big video data resources
are stored into cloud. Users can retrieve result videos instantly in our
implementation. Social impact should high on Mobile Cloud
Computing Applications in future. In this paper we are building future
and next generation Mobile Cloud Computing applications
architecture. New architecture provides the solutions for many
challenges.

IV.PROPOSED METHODOLOGY:
To improve the quality of service (QOS) when serving a mobile
device, one solution is to shorten the transmission delay between the
cloud server and mobile device. New implementation is use a server
physically close to mobile device, and then takes processing time is
less. One server is not handle automatically its can send to other
servers. This is feature of VM migration process. All locations of
mobile devices requests can receive by the VM. One VM cannot have
sufficient bandwidth, requests are migrated to cloud server. In cloud
server dynamically choose another VM which is nearest. Anyway
finally all mobile users’ requests are processing and provide the
services with less access delay and data delivery delay. VM Migration

135
can improve the cloud performance. VM migration can provide the
load balancing solution also.

Fig2: VM Migration Architecture

One location of traffic can move to another location effectively


using shifting technique. Mobile cloud computing is especially for
multimedia data storage and distribution. Newly enhanced
architecture provides QOS for multimedia applications. Implementing
the new enhanced multimedia architecture by IaaS. IaaS services
users VMS. VMS are works as proxies between client and cloud.

1. Multimedia requests can handle runtime in cloud with data


storage, retrieval, and distribution for load balancing.
2. Mobile Cloud Computing provides the quality of services for
multimedia applications.
3. VM migration provides parallel processing services based on
workload conditions.
4. Next perform resource allocation and queuing network
analysis.
5. Divide the services into multiple classes
6. Process the client requests in multiple ways that’s why it’s
possible to reduce the time and resource cost.
7. Finally reduces the energy consumption of multimedia
application running.

136
8. Using multiple queues schedule the requests without any
traffic.

V.ALGORITHM
Nash Auction Equilibrium Algorithm:
Nash Auction equilibrium checks the match in between lowest asks
value and highest bid value.

Pseudo code:
Input: List of virtual machines and job lists.
Output: allocated job list
Step1: allocated job list set as a empty
Step2: user agent determines their bid value
Step3: initialize ask matrix is empty
Step4: identify matched vms
Step5: average jobs allocated into different virtual machines.

VI.EXPERIMENTAL RESULTS AND DISCUSSION


In the simulation users, servers are modeled as two kinds of
agents. Data center is created and then the VM is established. Cloud
service provider provides suitable reservation plans based on requests.
Using reservation plans analysis of performance cost optimization,
resource utilization, User satisfaction, execution time.

Fig3: Performance comparison in between existing and


proposed system
VII. CONCLUSION AND FUTURE WORK
137
We proposed a VM Migration and Nash auction Equilibrium
model to implement the optimal reservation cost. Previous approaches
of limitations we can overcome with new system design. Here we
design the new mobile cloud computing architecture with minimized
cost and price using multi clouds environments. Compare to previous
we got many benefits in proposed approaches. Those benefits are
execution time and optimal cost.

In future we can design some other mobile cloud computing


architecture with reduce fault values compare to present
architectures.

138
VIII.REFERENCES
1. A. Amamou, M. Bourguiba, K. Haddadou, and G. Pujolle, “A
Dynamic Bandwidth Allocator for Virtual Machines in a Cloud
Environment,” Proc. IEEE Consumer Comm. and Networking
Conf., pp. 99-104, Jan. 2012.

2. M. Armbrust, A. Fox, R. Griffith, A.D. Joseph, R. Katz, A.


Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica, and M.
Zaharia, “Above the Clouds: A View of Cloud Computing,”
Comm. ACM, vol. 53, pp. 50-58, 2010.

3. C.M. Assi, Y. Ye, and S. Dixit, “Dynamic Bandwidth Allocation


for Quality-Of-Service over Ethernet PONs,” IEEE J. Selected
Areas in Comm., vol. 21, no. 9, pp. 1467-1477, Nov. 2003.

4. L. Badia, S. Merlin, and M. Zorzi, “Resource Management in


IEEE 802.11 Multiple Access Networks with Price-Based Service
Provisioning,” IEEE Trans. Wireless Comm., vol. 7, no. 11, pp.
4331-4340, Nov. 2008.

5. R. Chai, X. Wang, Q. Chen, and T. Svensson, “Utility-Based


Bandwidth Allocation Algorithm for Heterogeneous Wireless
Networks,” Science China Information Sciences, vol. 56, no. 2,
pp. 95-107, 2013.

6. P. Chaikijwatana and T. Tachibana, “VCG Auction-Based


Bandwidth Allocation with Network Coding in Wireless
Networks,” Proc. 10th WSEAS Int’l Conf. Applied Computer and
Applied Computational Science, pp. 104-109, 2011.

7. L. Chen, S. Iellamo, M. Coupechoux, and P. Godlewski, “An


Auction Framework for Spectrum Allocation with Interference
Constraint in Cognitive Radio Networks,” Proc. IEEE INFOCOM,
pp. 1-9, 2010.
8. L. Chen, B. Wang, X. Chen, X. Zhang, and D. Yang, “Utility-
Based Resource Allocation for Mixed Traffic in Wireless
Networks,” Proc. IEEE INFOCOM, pp. 91-96, 2011.
9. Y. Chen, Y.Wu, B.Wang, and K.J.R. Liu, “SpectrumAuction
Games for Multimedia Streaming over Cognitive Radio
Networks,” IEEE Trans. Comm., vol. 58, no. 8, pp. 2381-2390,
Aug. 2010.
10. S. Das, S. Misra, M. Khatua, and J.J.P.C. Rodrigues, “Mapping
of Sensor Nodes with Servers in a Mobile Health-Cloud
Environment,” Proc. IEEE 15th Int’l Conf. E-Health Networking,
Applications and Services, Oct. 2013.

11. H.T. Dinh, C. Lee, D. Niyato, and P. Wang, “A Survey of Mobile


Cloud Computing: Architecture, Applications, and Approaches,”
139
Wireless Comm. and Mobile Computing, vol. 13, no. 18, pp.
1587- 1611, 2013.

12. J. Elias, F. Martignon, and A. Capone, “An Efficient Dynamic


Bandwidth Allocation Algorithm for Quality of Service
Networks,” Proc. First IFIP TC6 Int’l Conf. Autonomic
Networking, pp. 132-145, 2006.

13. R. Fei, K. Yang, S. Ou, and X. Cheng, “A QoS-Aware Dynamic


Bandwidth Allocation Algorithm for Base Stations in IEEE
802.16j-Based Vehicular Networks,” Proc. IEEE Conf. Wireless
Comm. and Networking, pp. 1-6, 2010.

14. N. Fernando, S.W. Loke, and W. Rahayu, “Mobile Cloud


Computing: A Survey,” Future Generation Computer Systems,
vol. 29, pp. 84-106, 2013.

AUTHORS PROFILE:

Palepu Surya Bharati MTECH (COMPUTER SCIENCE &


ENGINEERING) PURSUING IN MALLA REDDY COLLEGE OF
ENGINEERING. B.TECH (IT) FROM MVGR COLLEGE OF
ENGINEERING , VIZIANAGARAM, ANDHRAPRADESH STATE, INDIA.

CH.Vijayakumari, ASSISTANT PROFESSOR working in MALLA


REDDY COLLEGE OF ENGINEERING.

A.Srinivasrao , ASSOCIATE PROFESSOR working as CSE – HOD in


MALLA REDDY COLLEGE OF ENGINEERING.

140

Você também pode gostar