Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Bangalore University
JULY-2014
ii
BANGALORE UNIVERSITY
UNIVERSITY VISVESVARAYA COLLEGE OF ENGINEERING
K R Circle, Bangalore-560001
Guide:
Chairperson:
---------------------------
---------------------------
Mr. Kiran K
Assistant Professor,
Dept of CSE,
UVCE, Bangalore-01.
Examiner 1: _____________
Examiner 2: _____________
ACKNOWLEDGEMENT
I am indeed very happy to greatly acknowledge the numerous personalities
involved in lending their help to make my Project on DELAY-OPTIMAL
BROADCAST FOR MULTIHOP WIRELESS NETWORKS USING
SELF-INTERFERENCE CANCELLATION a successful one.
At the outset, I express my most sincere grateful acknowledgement to
UNIVERSITY VISVESVARAYA COLLEGE OF ENGINEERING for
giving me an opportunity to pursue the ME degree course in WEB
TECHNOLOGIES and thus helping in shaping my career.
I would like to express my gratitude to Dr. Venugopal K R, Principal,
University Visvesvaraya College of Engineering, Bangalore, for his inspiration,
constant support in development of project work.
I would like to thank Dr. P Deepa Shenoy, Professor & Chairperson,
Department of Computer Science and Engineering, UVCE.
I like to thank Mr. Kiran K, Assistant Professor, Department of Computer
science and Engineering, UVCE, under whose guidance this project work has
been carried out and completed successfully. I am thankful for his timely
advices that helped me to complete this project work.
I express my gratitude and thanks to all the Teaching, Non-Teaching staff, my
classmates and my friends for their kind help and their timely support and
suggestions in bringing out this project within the stipulated time.
JAIGOPI K
12GAMK4003
ABSTRACT
Conventional wireless broadcast protocols rely heavily on the 802.11-based
CSMA/CA model, which avoids interference and collision by conservative scheduling of
transmissions. While CSMA/CA is amenable to multiple concurrent unicasts, it tends to
degrade broadcast performance significantly, especially in lossy and large-scale networks. In
this project, a protocol called Chorus that improves the efficiency and scalability of broadcast
service with a MAC/PHY layer that allows packet collisions.
Chorus is built upon the observation that packets carrying the same data can be
effectively detected and decoded, even when they overlap with each other and have
comparable signal strengths. It resolves collision using symbol-level interference
cancellation, and then combines the resolved symbols to restore the packet. Such a collisiontolerant mechanism significantly improves the transmission diversity and spatial reuse in
wireless broadcast. Chorus MAC-layer cognitive sensing and scheduling scheme further
facilitates the realization of such an advantage, resulting in an asymptotic broadcast delay
that is proportional to the network radius. It evaluates Chorus PHY-layer collision resolution
mechanism with symbol-level simulation, and validates its network-level performance in
comparison with a typical CSMA/CA-based broadcast protocol. This evaluation validates
Choruss superior performance with respect to scalability, reliability, and delay under a broad
range of network scenarios.
TABLE OF CONTENTS
Sl no Topic
Page no
1. Introduction
2. Literature Survey
3. System Architecture
8
10
10
10
12
5. System Design
14
14
15
6. System Implementation
20
6.1 Implementation
20
20
6.3 ODBC
26
6.4 JDBC
27
7. System Testing
36
36
39
41
7.4 Maintenance
42
42
8. Results
43
9. Conclusion
72
References
73
ii
LIST OF FIGURES
Figure No
Figures
Page No
Figure 3.1
System Configuration
Figure 5.1
Class diagram
16
Figure 5.2
17
Figure 5.3
Sequence diagram
18
Figure 5.4
19
Figure 6.1
21
Figure 6.2
22
Figure 6.3
23
Figure 6.4
Java IDE
24
Figure 6.5
30
Figure 6.6
TCP/IP stack
31
Figure 8.1
Source
43
Figure 8.2
Source IP
44
Figure 8.3
Route path
44
Figure 8.4
Receiver
45
Figure 8.5
46
Figure 8.6
47
Figure 8.7
Combining packets
48
Figure 8.8
Received file
49
Figure 8.9
50
Figure 8.10
51
Figure 8.11
52
Figure 8.12
53
Figure 8.13
54
Figure 8.14
55
iii
Figure 8.15
56
Figure 8.16
57
Figure 8.17
57
Figure 8.18
59
Figure 8.19
60
Figure 8.20
61
Figure 8.21
62
Figure 8.22
63
Figure 8.23
64
Figure 8.24
65
Figure 8.25
66
Figure 8.26
67
Figure 8.27
68
Figure 8.28
Duplicate Packets
69
Figure 8.29
70
Figure 8.30
71
iv
CHAPTER 1
INTRODUCTION
NETWORK-WIDE broadcast is a fundamental primitive for many communication
protocols in multihop wireless networks, such as route discovery and information
dissemination. An efficient broadcast protocol needs to deliver a packet (or a continuous
stream of packets) from the source node to all other nodes in the network, with high packetdelivery ratio (PDR) and low latency. To improve PDR in a lossy network, multiple relay
nodes can forward and retransmit each packet, thereby creating retransmission diversity. To
reduce latency and resource usage, however, the number of transmissions must be kept to
minimum, since redundant retransmissions waste channel time, slowing down the packets
delivery to the edge of the network. Therefore, a delicate balance needs to be maintained
between PDR and delay. To date, efficient broadcast support, in the form of theoretical
analysis or practical protocol design, has mostly focused on the CSMA/CA MAC-layer
scheduling model. CSMA/CA has proven to be an effective distributed scheduling scheme,
especially via the 802.11 family of MAC standards. The limitation of CSMA/CA, however,
has not been examined carefully in case of network-wide broadcast. While its fine-tuned
sensing and scheduling reduces collision, CSMA/CA inevitably misses transmission
opportunities, lowering channel usage and spatial reuse. This problem becomes acute,
especially for network-wide broadcast with latency constraints.
In this system a typical scenario where CSMA/CA restricts the broadcast efficiency. With
CSMA/CA, the delivery of one packet from source S to all other nodes requires at least three
time slots. A and B cannot transmit concurrently, even if they have to forward the same
packet. Suppose node D in a lossy network had already received the packet, while C and E
await its retransmission from A and B, respectively. An optimal scheduling protocol would be
oblivious of the collision at D, and allow A and B to transmit the packet concurrently.
However, this is not possible in CSMA/CA, as one of them will defer its transmission
immediately upon sensing the others activity.
2013-14
CHAPTER 1
INTRODUCTION
In this project, a novel broadcast protocol called Chorus, based on a MAC layer that adopts
CSMA with collision resolution (CSMA/CR). Chorus is built upon the key insight that
packets carrying the same data can be detected and decoded, even when they overlap at the
receiver with comparable strength. With Chorus, collision of the same packets from different
relays can be effectively resolved. The advantage of such a collision-tolerant protocol is
obvious, as shown in this system. With collision resolution, A and B can now transmit
packets immediately and independently after receiving them from the source. Node D
exploits Chorus collision resolution to decode the two collided packets from A and B.
Therefore, only two time slots are required to deliver one packet over the entire network, due
to the improved spatial reuse. Moreover, when links are unreliable, the two decoded packets
from A and B create transmit diversity for the common receiver D, without consuming any
additional channel time.
Both the spatial reuse and the transmit diversity gain in Chorus are realized via its collision
resolution scheme, which is based on self-interference cancellation. Unlike traditional
transmit diversity schemes such as beam forming, Chorus requires neither symbol time
synchronization nor instantaneous channel state information. In reality, it is difficult to
synchronize the independent transmitters A and B at the symbol level. Chorus exploits the
asynchrony between them to identify collision-free symbols in the overlapping packets. It
then initiates an iterative cancellation process that subtracts clean and known symbols from
the collided ones, and obtains estimates of unknown symbols. The decoding succeeds as long
as one packet has sufficient SNR, hence realizing the diversity offered by multiple
transmitters.
At the MAC layer, Chorus adds a cognitive sensing and scheduling module to the 802.11
CSMA mechanisms. Specifically, senders back off only when they sense a packet on the air
that has a different identity from what they intend to transmit. Such a cognitive MAC allows
Chorus to fully exploit the advantage of collision resolution, while maintaining friendliness
to background traffic. In addition, the collision-resolution capability enables anonymous
broadcast at the network layer, without any topology or neighborhood information. To
quantify the effectiveness of Chorus, which establish an analytical framework for its
2013-14
CHAPTER 1
INTRODUCTION
achievable SNR and bit error rate (BER), which takes into account the error-propagation
effects in iterative collision resolution. Further analyze its network-level performance in
terms of latency and throughput. With a joint design of CSMA/CR and broadcast, Chorus
achieves latency (r is the network radius), which is asymptotically optimal and unachievable
in existing CSMA/CA-based broadcast protocols. To verify the feasibility of Chorus
collision resolution, need to implement the iterative decoding and packet combination in a
symbol-level simulator. To evaluate Choruss performance in large networks, it has to feed
the above fine grained analytical and simulation results into the PHY layer of ns-2,
implement the CSMA/CR MAC, and broadcast protocol, and compare Chorus with a
CSMA/CA-based protocol. In a large set of randomly chosen topologies, Chorus is shown to
make several-fold performance improvement in latency and PDR. The performance gain is
Relatively insensitive to network size, source rate, and link quality, and is observed for both
static and mobile topologies, and in both single- and multisource broadcast scenarios. These
salient properties are important, especially for information dissemination in large-scale
wireless networks, and represent the importance of exploiting PHY layer signal processing to
improve application performance.
2013-14
CHAPTER 2
LITERATURE SURVEY
Literature survey is the most important step in software development process. Before
developing the tool it is necessary to determine the time factor, economy n company strength.
Once these things r satisfied, ten next steps are to determine which operating system and
language can be used for developing the tool. Once the programmers start building the tool
the programmers need lot of external support. This support can be obtained from senior
programmers, from book or from websites. Before building the system the above
consideration r taken into account for developing the proposed system.
Minimizing Broadcast Latency and Redundancy in Ad Hoc Networks
Network wide broadcasting is a fundamental operation in ad hoc networks. In broadcasting,
a source node sends a message to all the other nodes in the network. The problem of
collision-free broadcasting in ad hoc networks is considered. The objective is to minimize the
latency and the number of transmissions in the broadcast then show that minimum latency
broadcasting is NP-complete for ad hoc networks. Also presents a simple distributed
collision-free broadcasting algorithm for broadcasting a message. For networks with bounded
node transmission ranges, this algorithm simultaneously guarantees that the latency and the
number of transmissions are within O(1) times their respective optimal values. This
algorithm and analysis extend to the case when multiple messages are broadcast from
multiple sources. Experimental studies indicate that the algorithms perform much better in
practice than the analytical guarantees provided for the worst case.
Minimum-Latency Broadcast Scheduling in Wireless Ad Hoc Networks
A wide range of applications for wireless ad hoc networks are time-critical and impose
stringent requirement on the communication latency. The studies the problem MinimumLatency Broadcast Scheduling (MLBS) in wireless ad hoc networks represented by unit-disk
graphs. This problem is NP-hard. A trivial lower bound on the minimum broadcast latency is
the radius R of the network with respect to the source of the broadcast, which is the
2013-14
CHAPTER 2
LITERATURE SURVEY
maximum distance of all the nodes from the source of the broadcast. The previously bestknown approximation algorithm for MLBS produces a broadcast schedule with latency at
most 648 R, three progressively improved approximation algorithms for MLBS. They
produce broadcast schedules with latency at most 24 R -23, 16 R -15, and R + O (log R)
respectively.
Broadcast Scheduling in Interference Environment
Broadcast is a fundamental operation in wireless networks and naive flooding is not practical
because it cannot deal with interference. Scheduling is a good way to avoid interference, but
previous studies on broadcast scheduling algorithms all assume highly theoretical models
such as the unit disk graph model. In this work, this problem is re-investigated using the 2disk and the signal-to-interference-plus-noise-ratio (SINR) model to realize it. Design a
constant approximation algorithm for the 2-disk model and then extend it to the SINR model.
This result is the first result on broadcast scheduling algorithms in SINR model, to the best of
the knowledge.
Toward Broadcast Reliability in Mobile Ad Hoc Networks with Double Coverage
The broadcast operation, as a fundamental service in mobile ad hoc networks (MANETs), is
prone to the broadcast storm problem if forwarding nodes are not carefully designated. The
objective of reducing broadcast redundancy while still providing high delivery ratio under
high transmission error rate is a major challenge in MANETs. A simple broadcast algorithm
double-covered broadcast (DCB), which takes advantage of broadcast redundancy to
improve the delivery ratio in an environment that has rather high transmission error rate.
Among the 1-hop neighbors of the sender, only selected forwarding nodes retransmit the
broadcast message. Forwarding nodes are selected in such a way that 1) the sender's 2-hop
neighbors are covered and 2) the sender's 1-hop neighbors are either forwarding nodes or
nonforwarding nodes covered by at least two forwarding neighbors. The retransmissions of
the forwarding nodes are received by the sender as the confirmation of their reception of the
packet. The nonforwarding 1-hop neighbors of the sender do not acknowledge the reception
of the broadcast. If the sender does not detect all its forwarding nodes' retransmissions, it
resends the packet until the maximum number of retries is reached.
2013-14
CHAPTER 2
LITERATURE SURVEY
2013-14
CHAPTER 3
SYSTEM ARCHITECTURE
3.1 System Configuration
The file is selected for broadcasting using the Service Provider and uploaded to the
Router. Once the router receives the file, it splits the data into N Chorus packets. The chorus
packets are broadcasted in a selected individual path for each packet which has a unique path
for each packet. The router will also check for any collision and avoid the collision. If the
router finds there is no path further then automatically it applies self interference
cancellation. Finally the packets are broadcasted to the destination MAC layer. All the chorus
packets will be checked and the path selection is done to broadcast the packets as shown in
the fig 3.1.
The destination will receive the individual packets and merge the packets, later stores
the data. It sends the file receiving confirmation and the data stored confirmation to the router
in turn the router will send the file receiving confirmation to the service provider.
2013-14
CHAPTER 3
SYSTEM ARCHITECTURE
Service
Provide
r
MAC LAYER
Avoid Collision
DESTINATION
Router
Fig 3.1 System Configuration
2013-14
CHAPTER 3
SYSTEM ARCHITECTURE
2013-14
CHAPTER 4
SYSTEM ANALYSIS
4.1 EXISTING SYSTEM
The above algorithmic solutions generally assume perfect MAC-layer scheduling. In reality,
scheduling in wireless networks is mostly based on distributed CSMA/ CA. The widely used
802.11 standards provide best effort service broadcast, using CSMA/CA without any ACK or
retransmissions. Practical broadcast protocols have mostly adopted the 802.11 CSMA/CA
and extended it to multihop networks. A main mechanism is to prune the topology, leaving
only a backbone that covers the entire topology. The double-coverage broadcast (DCB), for
example, reduces redundant transmissions by selecting nodes that cover more neighbors,
while ensuring each node is covered at least twice, such that retransmission can be exploited
to improve delivery ratio. The fundamental difference between Chorus and such existing
protocols lies in its MAC layer scheduling protocol. With a joint design of CSMA/CR and
network level broadcast, Chorus can achieve the latency bound; hence it has both theoretical
and practical relevance.
2013-14
10
CHAPTER 4
SYSTEM ANALYSIS
scalability, reliability, delay, etc., under a broad range of network scenarios (e.g.,
single/multiple broadcast sessions, static/mobile topologies).
In this project, a novel broadcast protocol called Chorus, based on a MAC layer that adopts
CSMA with collision resolution (CSMA/CR). Chorus is built upon the key insight that
packets carrying the same data can be detected and decoded, even when they overlap at the
receiver with comparable strength. With Chorus, collision of the same packets from different
relays can be effectively resolved. The advantage of such a collision-tolerant protocol is
obvious, as shown in this system. With collision resolution, A and B can now transmit
packets immediately and independently after receiving them from the source. Node D
exploits Chorus collision resolution to decode the two collided packets from A and B.
Therefore, only two time slots are required to deliver one packet over the entire network, due
to the improved spatial reuse. Moreover, when links are unreliable, the two decoded packets
from A and B create transmit diversity for the common receiver D, without consuming any
additional channel time.
Both the spatial reuse and the transmit diversity gain in Chorus are realized via its collision
resolution scheme, which is based on self-interference cancellation. Unlike traditional
transmit diversity schemes such as beam forming, Chorus requires neither symbol time
synchronization nor instantaneous channel state information. In reality, it is difficult to
synchronize the independent transmitters A and B at the symbol level. Chorus exploits the
asynchrony between them to identify collision-free symbols in the overlapping packets. It
then initiates an iterative cancellation process that subtracts clean and known symbols from
the collided ones, and obtains estimates of unknown symbols. The decoding succeeds as long
as one packet has sufficient SNR, hence realizing the diversity offered by multiple
transmitters.
2013-14
11
CHAPTER 4
SYSTEM ANALYSIS
Economical Feasibility
Technical Feasibility
Social Feasibility
2013-14
12
CHAPTER 4
SYSTEM ANALYSIS
2013-14
13
CHAPTER 5
SYSTEM DESIGN
5.1 INPUT DESIGN
The input design is the link between the information system and the user. It comprises the
developing specification and procedures for data preparation and those steps are necessary to
put transaction data in to a usable form for processing can be achieved by inspecting the
computer to read data from a written or printed document or it can occur by having people
keying the data directly into the system. The design of input focuses on controlling the
amount of input required, controlling the errors, avoiding delay, avoiding extra steps and
keeping the process simple. The input is designed in such a way so that it provides security
and ease of use with retaining the privacy. Input Design considered the following things:
What data should be given as input?
How the data should be arranged or coded?
The dialog to guide the operating personnel in providing input.
Methods for preparing input validations and steps to follow when error occur.
OBJECTIVES
1. Input Design is the process of converting a user-oriented description of the input into a
computer-based system. This design is important to avoid errors in the data input process and
show the correct direction to the management for getting correct information from the
computerized system.
2. It is achieved by creating user-friendly screens for the data entry to handle large volume of
data. The goal of designing input is to make data entry easier and to be free from errors. The
data entry screen is designed in such a way that all the data manipulates can be performed. It
also provides record viewing facilities.
3. When the data is entered it will check for its validity. Data can be entered with the help of
screens. Appropriate messages are provided as when needed so that the user will not be in
2013-14
14
CHAPTER 5
SYSTEM DESIGN
maize of instant. Thus the objective of input design is to create an input layout that is easy to
follow
2013-14
15
CHAPTER 5
SYSTEM DESIGN
Service Provider
Router
Browse, Upload,
Methods
Reset
File Name, Sender
Name, Router
Name, Destination
Members
Name
Methods
Members
Methods
Members
Connect, Receiver,
Switch (), Flow Slice (),
Alter (), Forward (),
select_path(),
split_packets()
Collision,
Timedelay,paths, Chorus
Packets,
2013-14
16
CHAPTER 5
SYSTEM DESIGN
Browse
Browse
and
and
send
send file
file
Sender
Router
No
Send Data
Check
s
Collisi
on
Yes
2013-14
17
CHAPTER 5
SYSTEM DESIGN
Service Provider
Clustered Router
Base Station
Receiver
Select File
Select Cluster
Upload File
Receive file
Send file to Cluster Head
Select Sensor Details Based on SSB
File Sending
Confirmation
Receive file
Store File
Generate
SK to file
Receive File
2013-14
18
CHAPTER 5
SYSTEM DESIGN
Receive data
Browse File
Sender
Upload
File
Avoid Collision
Receive Packets
Receive
Merge Packets
Store data
Dept. of CSE, UVCE
2013-14
19
CHAPTER 5
SYSTEM DESIGN
2013-14
20
CHAPTER 6
SYSTEM IMPLEMENTATION
6.1 IMPLEMENTATION
Implementation is the stage of the project when the theoretical design is turned out
into a working system. Thus it can be considered to be the most critical stage in achieving a
successful new system and in giving the user, confidence that the new system will work and
be effective.
The implementation stage involves careful planning, investigation of the existing
system and its constraints on implementation, designing of methods to achieve changeover
and evaluation of changeover methods.
Simple
Architecture neutral
Object oriented
Portable
Distributed
High performance
Interpreted
Multithreaded
Robust
2013-14
21
CHAPTER 6
Dynamic
Secure
SYSTEM IMPLEMENTATION
With most programming languages, either compile or interpret a program so that it can run it
on the computer. The Java programming language is unusual in that a program is both
compiled and interpreted. With the compiler, first translate a program into an intermediate
language called Java byte codes the platform-independent codes interpreted by the
interpreter on the Java platform. The interpreter parses and runs each Java byte code
instruction on the computer. Compilation happens just once; interpretation occurs each time
the program is executed. The fig 6.1 illustrates how this works.
2013-14
22
CHAPTER 6
SYSTEM IMPLEMENTATION
It is already been introduced to the Java VM. Its the base for the Java platform and is ported
onto various hardware-based platforms.
The Java API is a large collection of ready-made software components that provide many
useful capabilities, such as graphical user interface (GUI) widgets. The Java API is grouped
into libraries of related classes and interfaces; these libraries are known as packages. The
next section, What Can Java Technology Do? Highlights what functionality some of the
packages in the Java API provide.
The following figure depicts a program thats running on the Java platform. As the figure
shows, the Java API and the virtual machine insulate the program from the hardware.
2013-14
23
CHAPTER 6
SYSTEM IMPLEMENTATION
The essentials: Objects, strings, threads, numbers, input and output, data structures,
system properties, date and time, and so on.
2013-14
24
CHAPTER 6
SYSTEM IMPLEMENTATION
Networking: URLs, TCP (Transmission Control Protocol), UDP (User Data gram
Protocol) sockets, and IP (Internet Protocol) addresses.
Internationalization: Help for writing programs that can be localized for users
worldwide. Programs can automatically adapt to specific locales and be displayed in the
appropriate language.
Security: Both low level and high level, including electronic signatures, public and
private key management, access control, and certificates.
2013-14
25
CHAPTER 6
SYSTEM IMPLEMENTATION
Get started quickly: Although the Java programming language is a powerful objectoriented language, its easy to learn, especially for programmers already familiar with C
or C++.
Write less code: Comparisons of program metrics (class counts, method counts, and so
on) suggest that a program written in the Java programming language can be four times
smaller than the same program in C++.
Write better code: The Java programming language encourages good coding practices,
and its garbage collection helps avoid memory leaks. Its object orientation, its JavaBeans
component architecture, and its wide-ranging, easily extendible API let reuse other
peoples tested code and introduce fewer bugs.
Develop
programs more quickly: The development time may be as much as twice as fast
versus writing the same program in C++. Why? write fewer lines of code and it is a
simpler programming language than C++.
Avoid platform dependencies with 100% Pure Java: It can keep the program portable
by avoiding the use of libraries written in other languages. The 100% Pure JavaTM Product
Certification Program has a repository of historical process manuals, white papers,
brochures, and similar materials online.
Write once, run anywhere: Because 100% Pure Java programs are compiled into
machine-independent byte codes, they run consistently on any Java platform.
Distribute software more easily: It can upgrade applets easily from a central server.
Applets take advantage of the feature of allowing new classes to be loaded on the fly,
without recompiling the entire program.
2013-14
26
CHAPTER 6
SYSTEM IMPLEMENTATION
6.3 ODBC
Microsoft Open Database Connectivity (ODBC) is a standard programming interface for
application developers and database systems providers. Before ODBC became a de facto
standard for Windows programs to interface with database systems, programmers had to use
proprietary languages for each database they wanted to connect to. Now, ODBC has made
the choice of the database system almost irrelevant from a coding perspective, which is as it
should be. Application developers have much more important things to worry about than the
syntax that is needed to port their program from one database to another when business needs
suddenly change.
Through the ODBC Administrator in Control Panel, can specify the particular database that is
associated with a data source that an ODBC application program is written to use. Think of
an ODBC data source as a door with a name on it. Each door will lead to a particular
database. For example, the data source named Sales Figures might be a SQL Server database,
whereas the Accounts Payable data source could refer to an Access database. The physical
database referred to by a data source can reside anywhere on the LAN.
The ODBC system files are not installed on the system by Windows 95. Rather, they are
installed when it is setup a separate database application, such as SQL Server Client or Visual
Basic 4.0. When the ODBC icon is installed in Control Panel, it uses a file called
ODBCINST.DLL. It is also possible to administer the ODBC data sources through a standalone program called ODBCADM.EXE. There is a 16-bit and a 32-bit version of this
program and each maintains a separate list of ODBC data sources.
From a programming perspective, the beauty of ODBC is that the application can be written
to use the same set of function calls to interface with any data source, regardless of the
database vendor. The source code of the application doesnt change whether it talks to Oracle
or SQL Server. It only mention these two as an example. There are ODBC drivers available
for several dozen popular database systems. Even Excel spreadsheets and plain text files can
be turned into data sources. The operating system uses the Registry information written by
ODBC Administrator to determine which low-level ODBC drivers are needed to talk to the
data source (such as the interface to Oracle or SQL Server). The loading of the ODBC drivers
is transparent to the ODBC application program. In a client/server environment, the ODBC
API even handles many of the network issues for the application programmer.
2013-14
27
CHAPTER 6
SYSTEM IMPLEMENTATION
The advantages of this scheme are so numerous that they are probably thinking there must be
some catch. The only disadvantage of ODBC is that it isnt as efficient as talking directly to
the native database interface. ODBC has had many detractors make the charge that it is too
slow. Microsoft has always claimed that the critical factor in performance is the quality of the
driver software that is used. In humble opinion, this is true. The availability of good ODBC
drivers has improved a great deal recently. And anyway, the criticism about performance is
somewhat analogous to those who said that compilers would never match the speed of pure
assembly language. Maybe not, but the compiler (or ODBC) gives the opportunity to write
cleaner programs, which means finish sooner. Meanwhile, computers get faster every year.
6.4 JDBC
In an effort to set an independent database standard API for Java; Sun Microsystems
developed Java Database Connectivity, or JDBC. JDBC offers a generic SQL database access
mechanism that provides a consistent interface to a variety of RDBMSs. This consistent
interface is achieved through the use of plug-in database connectivity modules, or drivers.
If a database vendor wishes to have JDBC support, he or she must provide the driver for each
platform that the database and Java run on.
To gain a wider acceptance of JDBC, Sun based JDBCs framework on ODBC. As
discovered earlier in this chapter, ODBC has widespread support on a variety of platforms.
Basing JDBC on ODBC will allow vendors to bring JDBC drivers to market much faster
than developing a completely new connectivity solution.
JDBC was announced in March of 1996. It was released for a 90 day public review that
ended June 8, 1996. Because of user input, the final JDBC v1.0 specification was released
soon after.
The remainder of this section will cover enough information about JDBC for to know what it
is about and how to use it effectively. This is by no means a complete overview of JDBC.
That would fill an entire book.
2013-14
28
CHAPTER 6
SYSTEM IMPLEMENTATION
JDBC Goals:Few software packages are designed without goals in mind. JDBC is one that, because of its
many goals, drove the development of the API. These goals, in conjunction with early
reviewer feedback, have finalized the JDBC class library into a solid framework for building
database applications in Java.
The goals that were set for JDBC are important. They will give some insight as to why
certain classes and functionalities behave the way they do. The eight design goals for JDBC
are as follows:
6.4.1 SQL Level API
The designers felt that their main goal was to define a SQL interface for Java. Although not
the lowest database interface level possible, it is at a low enough level for higher-level tools
and APIs to be created. Conversely, it is at a high enough level for application programmers
to use it confidently. Attaining this goal allows for future tool vendors to generate JDBC
code and to hide many of JDBCs complexities from the end user.
6.4.2 SQL Conformance
SQL syntax varies as it move from database vendor to database vendor. In an effort to
support a wide variety of vendors, JDBC will allow any query statement to be passed through
it to the underlying database driver. This allows the connectivity module to handle nonstandard functionality in a manner that is suitable for its users.
6.4.3 JDBC must be implemental on top of common database interfaces
The JDBC SQL API must sit on top of other common SQL level APIs. This goal allows
JDBC to use existing ODBC level drivers by the use of a software interface. This interface
would translate JDBC calls to ODBC and vice versa.
6.4.4 Provide a Java interface that is consistent with the rest of the Java system
Because of Javas acceptance in the user community thus far, the designers feel that they
should not stray from the current design of the core Java system.
2013-14
29
CHAPTER 6
SYSTEM IMPLEMENTATION
Architecture-neutral
Object-oriented
Portable
Distributed
High-performance
Interpreted
multithreaded
Robust
Dynamic
Secure
Java is also unusual in that each Java program is both compiled and interpreted.
With a compile translate a Java program into an intermediate language called Java
2013-14
30
CHAPTER 6
SYSTEM IMPLEMENTATION
byte codes the platform-independent code instruction is passed and run on the
computer.
Compilation happens just once; interpretation occurs each time the program is
executed. The figure 6.4 illustrates how this works.
Interpreter
Java
Program
Compilers
My Program
It can be thought of Java byte codes as the machine code instructions for the Java
Virtual Machine (Java VM). Every Java interpreter, whether its a Java development
tool or a Web browser that can run Java applets, is an implementation of the Java
VM. The Java VM can also be implemented in hardware.
Java byte codes help make write once, run anywhere possible. It can compile Java
program into byte codes on the platform that has a Java compiler. The byte codes
can then be run any implementation of the Java VM. For example, the same Java
program can run Windows NT, Solaris, and Macintosh.
2013-14
31
CHAPTER 6
SYSTEM IMPLEMENTATION
2013-14
32
CHAPTER 6
SYSTEM IMPLEMENTATION
6.5.3 TCP
TCP supplies logic to give a reliable connection-oriented protocol above IP. It provides a
virtual circuit that two processes can use to communicate.
6.5.4 Internet addresses
In order to use a service, it must be able to find it. The Internet uses an address scheme for
machines so that they can be located. The address is a 32 bit integer which gives the IP
address. This encodes a network ID and more addressing. The network ID falls into various
classes according to the size of the network address.
6.5.5 Network address
Class A uses 8 bits for the network address with 24 bits left over for other addressing. Class
B uses 16 bit network addressing. Class C uses 24 bit network addressing and class D uses all
32.
6.5.6 Subnet address
Internally, the UNIX network is divided into sub networks. Building 11 is currently on one
sub network and uses 10-bit addressing, allowing 1024 different hosts.
6.5.7 Host address
8 bits are finally used for host addresses within the subnet. This places a limit of 256
machines that can be on the subnet.
2013-14
33
CHAPTER 6
SYSTEM IMPLEMENTATION
2013-14
34
CHAPTER 6
SYSTEM IMPLEMENTATION
2013-14
35
CHAPTER 6
SYSTEM IMPLEMENTATION
The property editor mechanism in JFreeChart only handles a small subset of the properties
that can be set for charts. Extend (or re-implement) this mechanism to provide greater enduser control over the appearance of the charts.
6.5.12 Map Visualizations
Charts showing values that relate to geographical areas. Some examples include: (a)
population density in each state of the United States, (b) income per capita for each country
in Europe, (c) life expectancy in each country of the world. The tasks in this project include:
Sourcing freely redistributable vector outlines for the countries of the world, states/provinces
in particular countries (USA in particular, but also other areas).
Creating an appropriate dataset interface (plus default implementation), a rendered, and
integrating this with the existing XYPlot class in JFreeChart; Testing, documenting, testing
some more, documenting some more.
6.5.13 Time Series Chart Interactivity
Implement a new (to JFreeChart) feature for interactive time series charts --- to
display a separate control that shows a small version of ALL the time series data, with a
sliding "view" rectangle that allows to select the subset of the time series data to display in
the main chart.
6.5.14 Dashboards
There is currently a lot of interest in dashboard displays. Create a flexible dashboard
mechanism that supports a subset of JFreeChart chart types (dials, pies, thermometers, bars,
and lines/time series) that can be delivered easily via both Java Web Start and an applet.
6.5.15 Property Editors
The property editor mechanism in JFreeChart only handles a small subset of the
properties that can be set for charts. Extend (or reimplement) this mechanism to provide
greater end-user control over the appearance of the charts.
2013-14
36
CHAPTER 7
SYSTEM TESTING
7.1 TESTING METHODOLOGIES
The following are the Testing Methodologies:
o Unit Testing.
o Integration Testing.
o User Acceptance Testing.
o Output Testing.
o Validation Testing.
7.1.1 UNIT TESTING
Unit testing focuses verification effort on the smallest unit of Software design that is the
module. Unit testing exercises specific paths in a modules control structure to ensure
complete coverage and maximum error detection. This test focuses on each module
individually, ensuring that it functions properly as a unit. Hence, the naming is Unit Testing.
During this testing, each module is tested individually and the module interfaces are verified
for the consistency with design specification. All important processing path are tested for the
expected results. All error handling paths are also tested.
2013-14
37
CHAPTER 7
SYSTEM TESTING
2. Bottom-up Integration
This method begins the construction and testing with the modules at the lowest level in the
program structure. Since the modules are integrated from the bottom up, processing required
for modules subordinate to a given level is always available and the need for stubs is
eliminated. The bottom up integration strategy may be implemented with the following steps:
The low-level modules are combined into clusters into clusters that perform a specific
Software sub-function.
A driver (i.e.) the control program for testing is written to coordinate test case input and
output.
The cluster is tested.
Drivers are removed and clusters are combined moving upward in the
program structure
The bottom up approaches tests each module individually and then each module is module is
integrated with a main module and tested for functionality.
7.1.3 USER ACCEPTANCE TESTING
User Acceptance of a system is the key factor for the success of any system. The system
under consideration is tested for user acceptance by constantly keeping in touch with the
prospective system users at the time of developing and making changes wherever required.
The system developed provides a friendly user interface that can easily be understood even
by a person who is new to the system.
7.1.4 OUTPUT TESTING
Dept. of CSE, UVCE
2013-14
38
CHAPTER 7
SYSTEM TESTING
After performing the validation testing, the next step is output testing of the proposed system,
since no system could be useful if it does not produce the required output in the specified
format. Asking the users about the format required by them tests the outputs generated or
displayed by the system under consideration. Hence the output format is considered in 2
ways one is on screen and another in printed format.
7.1.5 VALIDATION CHECKING
Validation checks are performed on the following fields.
7.1.5.1 Text Field:
The text field can contain only the number of characters lesser than or equal to its size. The
text fields are alphanumeric in some tables and alphabetic in other tables. Incorrect entry
always flashes and error message.
7.1.5.2 Numeric Field:
The numeric field can contain only numbers from 0 to 9. An entry of any character flashes an
error messages. The individual modules are checked for accuracy and what it has to perform.
Each module is subjected to test
modules
are integrated into a single system. Testing involves executing the real data
information is used in the program the existence of any program defect is inferred from the
output. The testing should be planned so that all the requirements are individually tested.
A successful test is one that
gives out the defects for the inappropriate data and produces
2013-14
39
CHAPTER 7
SYSTEM TESTING
Live test data are those that are actually extracted from organization files. After a system is
partially constructed, programmers or analysts often ask users to key in a set of data from
their normal activities. Then, the systems person uses this data as a way to partially test the
system. In other instances, programmers or analysts extract a set of live data from the files
and have them entered themselves.
It is difficult to obtain live data in sufficient amounts to conduct extensive testing. And,
although it is realistic data that will show how the system will perform for the typical
processing requirement, assuming that the live data entered are in fact typical, such data
generally will not test all combinations or formats that can enter the system. This bias toward
typical values then does not provide a true systems test and in fact ignores the cases most
likely to cause system failure.
7.1.5.5 Using Artificial Test Data:
Artificial test data are created solely for test purposes, since they can be generated to test all
combinations of formats and values. In other words, the artificial data, which can quickly be
prepared by a data generating utility program in the information systems department, make
possible the testing of all login and control paths through the program.
The most effective test programs use artificial test data generated by persons other than those
who wrote the programs. Often, an independent team of testers formulates a testing plan,
using the systems specifications.
The package Virtual Private Network has satisfied all the requirements specified as per
software requirement specification and was accepted.
2013-14
40
CHAPTER 7
SYSTEM TESTING
TYPES OF TESTS
7.2.1 Unit testing
Unit testing involves the design of test cases that validate that the internal program logic is
functioning properly, and that program inputs produce valid outputs. All decision branches
and internal code flow should be validated. It is the testing of individual software units of the
application .it is done after the completion of an individual unit before integration. This is a
structural testing, that relies on knowledge of its construction and is invasive. Unit tests
perform basic tests at component level and test a specific business process, application,
and/or system configuration. Unit tests ensure that each unique path of a business process
performs accurately to the documented specifications and contains clearly defined inputs and
expected results.
7.2.2 Integration testing
Integration tests are designed to test integrated software components to determine if they
actually run as one program. Testing is event driven and is more concerned with the basic
outcome of screens or fields. Integration tests demonstrate that although the components
were individually satisfaction, as shown by successfully unit testing, the combination of
components is correct and consistent. Integration testing is specifically aimed at
exposing
Invalid Input
2013-14
41
CHAPTER 7
SYSTEM TESTING
Functions
Output
2013-14
42
CHAPTER 7
SYSTEM TESTING
been primarily designed. For this purpose the normal working of the project was
demonstrated to the prospective users. Its working is easily understandable and since the
expected users are people who have good knowledge of computers, the use of this system is
very easy.
7.4 MAINTENANCE
This covers a wide range of activities including correcting code and design errors. To reduce
the need for maintenance in the long run, need to have more accurately defined the users
requirements during the process of system development. Depending on the requirements, this
system has been developed to satisfy the needs to the largest possible extent. With
development in technology, it may be possible to add many more features based on the
requirements in future. The coding and designing is simple and easy to understand which will
make maintenance easier.
2013-14
43
CHAPTER 8
RESULTS
8.1 SCREEN SHOTS
A dialog box to select the source file is displayed for broadcast. Select any file type, the
contents of the file is displayed as shown in fig 8.1.
2013-14
44
CHAPTER 8
RESULTS
An IP address of the source is to be provided. The IP address can be either the actual IP
address of the machine or localhost can be given as shown in fig 8.2.
2013-14
45
CHAPTER 8
RESULTS
A receiver dialog is to receive the file from the source. The received file will be displayed
within the area provided as shown in fig 8.4.
2013-14
46
CHAPTER 8
RESULTS
A source is initiated at node S. Packets are divided into two and reaches node N1 and node
N2. Self interference cancellation occurs at N24 as shown in fig 8.5 due to leaf node.
2013-14
47
CHAPTER 8
RESULTS
During the data transmission in the path-4, at N13 there is no further nodes and hence Self
interference cancellation occurs at N13 as shown in fig 8.6.
2013-14
48
CHAPTER 8
RESULTS
All the split data nearing to the destination D, wherein the data is merged and packets will be
combined at D as shown in fig 8.7.
2013-14
49
CHAPTER 8
RESULTS
A file is received from the source on to the receiver. The received file is displayed within the
area provided as shown in fig 8.8.
2013-14
50
CHAPTER 8
RESULTS
A time delay of packet 1 is displayed after packet 1 reaching the destination D as shown in
fig 8.9. The packet 1 has travelled in path-1.
2013-14
51
CHAPTER 8
RESULTS
A time delay of packet 2 is displayed after packet 2 reaching the destination D as shown in
fig 8.10. The packet 1 has travelled in path-2.
2013-14
52
CHAPTER 8
RESULTS
A time delay of packet 3 is displayed after packet 3 reaching the destination D as shown in
fig 8.11. The packet 1 has travelled in path-3.
2013-14
53
CHAPTER 8
RESULTS
A time delay of packet 4 is displayed after packet 4 reaching the destination D as shown in
fig 8.12. The packet 1 has travelled in path-4.
2013-14
54
CHAPTER 8
RESULTS
A total time delay of all the packets is displayed after packets are reaching the destination D
and combining as shown in fig 8.13.
2013-14
55
CHAPTER 8
RESULTS
2013-14
56
CHAPTER 8
RESULTS
MAC layer routing is selected as Routing algorithm in the parameters to implement as shown
in fig 8.15.
2013-14
57
CHAPTER 8
RESULTS
Speed of simulation speed is selected as slow in the MAC layer routing in the parameters as
shown in fig 8.16.
2013-14
58
CHAPTER 8
RESULTS
Source and destination nodes are provided for MAC layer routing in the parameters as shown
in fig 8.16.
2013-14
59
CHAPTER 8
RESULTS
Packet started from source node 1. It carries Data packet and Destination address from the
source as shown in fig 8.18
2013-14
60
CHAPTER 8
RESULTS
Packet has reached node 2 starting from source node 1. The distance from node 1 to node 2 is
2 units and the distance from node 1 to node 3 is 6 units. The packet goes to the node 2 which
has a minimum distance as shown in fig 8.19.
2013-14
61
CHAPTER 8
RESULTS
Packet has reached node 4 starting from node 2. The distance from node 2 to node 4 is 2 units
and the distance from node 2 to node 6 is 7 units. The packet goes to the node 4 which has a
minimum distance as shown in fig 8.20
2013-14
62
CHAPTER 8
RESULTS
Packet has reached node 5 starting from node 4. The distance from node 4 to node 5 is 2 units
and the distance from node 4 to node 3 is 1 units. Node 3 is already visited and hence the
packet goes to the node 5 as shown in fig 8.21
2013-14
63
CHAPTER 8
RESULTS
Packet has reached node 7 starting from node 5. The distance from node 5 to node 6 is 3 units
and the distance from node 5 to node 7 is 2 units. The packet goes to the node 7 which has a
minimum distance as shown in fig 8.22
2013-14
64
CHAPTER 8
RESULTS
2013-14
65
CHAPTER 8
RESULTS
Speed of simulation speed is selected as slow in the CSMA layer routing in the parameters as
shown in fig 8.24.
2013-14
66
CHAPTER 8
RESULTS
Source and destination nodes are selected for CSMA layer routing in the parameters as
shown in fig 8.16.
2013-14
67
CHAPTER 8
RESULTS
Packet started from node 1 as shown in fig 8.26. The packet will be split from node 1 and
will be sent to node 2 and node 3.
2013-14
68
CHAPTER 8
RESULTS
Packet reached node 2 and node 3 from source. The packet reached node 2 has split and sent
to node 4 and node 6 as shown in fig 8.27.
2013-14
69
CHAPTER 8
RESULTS
Packet reached node 4 from node 2 and node 3. When there is a collision, The duplicate
packet is rejected at node 4 and sent to node 5 as shown in fig 8.28.
2013-14
70
CHAPTER 8
RESULTS
Packet dispatching at node 5, reaching node 6 and node 7. Packet arrived at node 6 from
node 2 and node 5. When there is a collision, duplicate packet is rejected as shown in fig
8.29.
2013-14
71
CHAPTER 8
RESULTS
Packets reaching destination node 8 from node 6 and node 7. Packet arrived at destination
will be merged as shown in fig 8.29.
2013-14
72
CONCLUSION
Theoretical and practical results demonstrate the feasibility and advantages of a collisionresolution protocol for wireless broadcast. Chorus allows forwarders with the same outgoing
packets to transmit roughly at the same time, and then employs physical-layer iterative
decoding to resolve collisions at the receiver.
By decoding multiple versions of a packet at once, Chorus achieves transmit diversity and
improves loss resilience without any retransmission. More importantly, with its collisiontolerant MAC, Chorus significantly simplifies the CSMA scheduling and improves its spatial
reuse. The theoretical analysis and symbol-level simulation show that Choruss iterative
decoding algorithm can effectively resolve collisions with negligible error propagation effect.
It established an asymptotic latency bound of when using Chorus for broadcast, where r is the
network radius. This network-level simulation experiments further show that Chorus
outperforms a typical CSMA/CA-based broadcast protocol by a significant margin, in terms
of latency, reliability, throughput, and scalability. These features make Chorus suitable
especially for fast information dissemination in large-scale networks, such as wireless mesh
networks.
2013-14
73
REFERENCES
[1] Xinyu Zhang
and
Latency
and
[5] W. Lou and J. Wu, Toward Broadcast Reliability in Mobile Ad Hoc Networks with
Double Coverage, IEEE Transaction. Mobile Computing, vol. 6, no. 2, pp. 148-163,
Feb.2007.
[6] D. Tse and P. Viswanath, Fundamentals of Wireless Communication. Cambridge Univ.,
2005.
[7] R. Mudumbai,
Beamforming: Challenges and Recent Progress, EEE Comm. Magazine, vol. 47, no.2,
pp. 102-110, Feb. 2009.
[8] B.S. Chlebus,
Wireless
LAN
2013-14
74