Sie sind auf Seite 1von 58

INTRODUCTION

1. INTRODUCTION:
1.1 About Multicast Routing:
The Internet has made a tremendous impact on human civilization by providing global connectivity to a vast number of end users who are geographically dispersed from each other. Researchers believe that a large portion of the Internets success was due to its simple underlying network protocol (IP). But, the success of Internet also opens up a limitation, in that it is very difficult to deploy a new protocol or add a new service at the network layer. For instance, adding a new service at the network layer might imply changing all the routers in the Internet around the world, which is not feasible. Computer Supported Group Collaborative applications such as video conferencing, large-scale distributed interactive simulation, online games , and distributed database replication need efficient group communication, which is not dictated by the underlying network. To alleviate this problem, a recent research trend is to develop and implement network layer protocols at a virtual layer. The virtual layer can be on top of the application layer or on top of the network layer. This method will give users the flexibility to develop network protocols that suit their application needs. Clearly, application programs can reside only at the endhosts. Taking note of this, network applications build virtual networks, also called overlay networks An overlay network is a virtual or logical network over an existing network. In an overlay network, each individual logical link that connects two nodes can contain several routers and hosts in the underlying physical network. Overlay networks provide a flexible approach for applications. When a better routing or a control protocol is demanded by an application, it can be easily deployed in the application level without changing the lower level Internet protocols.

Multicasting is an efficient communication mechanism where a source host sends the same message to a group of destination hosts, called the multicasting group. The general strategy for accomplishing this task is to construct a rooted tree T, called the multicast tree that contains the source as the root and the destination hosts as the leafnodes. The primary advantage of using the multicast is that it conserves network bandwidth. Contrasted with the unicast mechanism, where separate messages are sent to each destination host from the source host, multicasting avoids sending the same message multiply over links that are common to a source and different destinations. Collaborative applications such as video conferencing, online games, interactive simulations, and distributed database replications require that messages should arriveat the destinations within a specified delay bound. Furthermore, these applications also require that the destinations receive the message from the source at approximately the same time. In applications for teleconference, the data sent from the speakers end should reach all the participants at the same time, which means the delay variation among the paths from the speaker to the participants should be a minimum. Certain critical database applications (e.g., stock brokerage databases) require that data should be replicated at all sites at the same time; otherwise, data will be temporally inconsistent. Online gaming applications also require that a move made by a player should be viewable by other players almost at the same time. The problem of Delay and Delay Variation Bounded Multicasting Network (DVBMN) is one of finding a sub network given a source and a set of destinations that satisfies the QoS (Quality of Service) requirements on the maximum delay from the source to any of the destinations and on the maximum underestimation delay variance. Rouskas and Baldine have shown that the DVBMN problem isNPcomplete and have presented the first heuristic for the problem along with its performance evaluation. Kapoor and

Raghavanprovided a novel heuristic that uses dynamic programming and showed that the delay variation obtained by their algorithm is significantly less than the heuristic of Rouskas and Baldin. Unlike the heuristic of Rouskas and Baldine which constructs a multicasting tree, the heuristic of Kapoor and Raghavan constructs a multicasting network that may not be a tree. But, on such a network, no more than two messages are sent along each edge and, hence, it achieves the desired bandwidth savings. A simple heuristic was provided by Sheu and Chen , in which there are no bounds set on the delay variation. The complexity of the heuristics proposed by Kapoor and Raghavan and Rouskas and Baldine is high when a new member joins the multicasting group or an existing member leaves the group. In this paper Computer supported collaborative applications on overlay networks are gaining popularity among users who are geographically dispersed. Examples of these kinds of applications include videoconferencing, distributed database replication, and online games. This type of application requires a multicasting sub network, using which messages should arrive at the destinations within a specified delay bound. These applications also require that destinations receive the message from the source at approximately the same time. The problem of finding a multicasting sub network with delay and delay-variation bound has been proved to be an NP Complete problem in the literature and heuristics have been proposed for this problem. In this paper, we provide an efficient heuristic to obtain a multicast sub network on an overlay network, given a source and a set of destinations that is within a specified maximum delay and a specified maximum variation in the delays from a source to the destinations. The time-complexity of our algorithm is O(|E|+nk(|E|/n)+m2k), where n and |E| are the number of nodes and edges in the network, respectively, k is the number of shortest paths determined, and m isthe number of destinations. We have shown that our algorithm is significantly better in terms of time-complexity than existing algorithms for the same problem. Our extensive empirical studies indicate

that our heuristic uses significantly less runtime in comparison with the bestknown heuristics while achieving the tightest delay variation for a given endto end delay bound.

Benefits of Multicast Routing:


The various benefits of using Multicast Routing are listed below, This routing is used to reduce to the latency It increase the throughputs in network Not cost oriented. Reduced administrative costs. Lower error rates. Increased Productivity. Better services to clients.

1.2 PROBLEM FORMULATION:

The main objective of the project is to obtain a multicast sub network, given a source and a set of destinations that is within a specified maximum delay and a specified maximum variation in the delays from a source to the destinations. One approach to ensure minimum delay variation is to buffer the messages at different nodes in the overlay network. This approach can be categorized into three classes: buffering at the source node, buffering at intermediate nodes, and buffering at destination nodes. Buffering at the source node requires the source node to keep additional information for each destination. The source node will buffer a message for a differentamount of time for each destination and transmit the message multiple times over the network; clearly, this is a waste of network bandwidth. Also, buffering at the source node defeats the purpose of multicasting, which is one of conserving network bandwidth. Buffering at intermediate nodes requires some nodes to be identified as core nodes in the network. Messages are buffered at these

core nodes before they are sent to the destinations. Buffering at destination nodes requires each destination node to buffer the messages before they pass the messages to the application process. In this approach, the source node informs the destination nodes when they can process the received packets.

1.3 Objectives
We provide an efficient heuristic to obtain a multicast sub network on an overlay network, given a source and a set of destinations that is within a specified maximum delay and a specified maximum variation in the delays from a source to the destinations.

1.4Project Scope:
The main objective of this project is to minimize delay in collaborative applications by setting tight bounds. Examples of collaborative applications include video-conferencing,

distributed database replication, and online games. The efficiency of the project is analyzed and shown to be superior to its counterparts in the execution time.

1.5 Existing System:


Multicast Routing with QoS constraints has been extensively studied by the network community due to the popularity of computer collaborative applications, which demand different QoS requirements. Many protocols for this problem have been proposed in the literature. Salama et al and Dziong et al have provided a comparison study of different multicasting protocols.

Most of these protocols try to construct a delay-constrained minimum cost tree. Multicast routing with delay and delay variation constraints has been addressed by Rouskas and Baldine, Sheu and Chen, and Kapoor and Raghavan. The heuristic proposed by Rouskas and Baldine constructs a multicast tree satisfying an end-to-end delay constraint and delay variation constraint. Sheu and Chens heuristic (named DDVCA) is a combination of the Core Based Tree (CBT) concept and Dijkstras shortest path algorithm. In the CBT approach, some routers are chosen as Core Routers. In DDVCA, the Core Router is addressed as a central node. Kapoor and Raghavan proposed a heuristic (named DPDVB) that tries to minimize the cost of multicasting tree together with the delay and delay variation constraints. The cost can be a measure of residual bandwidth or the amount of buffer space required in the network.

The problem of Delay and Delay Variation Bound in Multicasting has been addressed currently using the following three approaches: -Delay Variation Bound Multicast Algorithm (DVBMA) -Delay and Delay Variation Constraint Algorithm (DDVCA) -Dynamic program for Delay Variation Bound (DPPVB)

Analysis of Existing System-Their Limitations:


DVBMA DDVCA DPDVB

The complexity of this heuristic is high when a new member joins the multicasting group.

It creates overhead on the central node and does not take into the account the delay variation bound.

The execution time is high.

1.6 PROPOSED SYSTEM:


The main objective of this project is to minimize delay in collaborative applications by setting tight bounds. Examples of collaborative applications include video-conferencing, distributed database replication, and online games. The efficiency of this project is analyzed and shown to be superior to its counterparts in the execution time.

EXPLANATION:
Our heuristic works as follows: It first computes the k shortest paths from source to each of the destinations such that the delay of each shortest path is less than or equal to the delay bound. The value of k is chosen depending upon the size, edge density, and number of destinations. This analysis is shown in Section 6. We cleverly select a shortest path for each destination from among the k shortest paths available to that destination in such a way that the delay variation is the smallest possible. We will examine this concept with the example below. Consider the overlay network given in Fig. 1. In Fig. 1, we have an overlay network with VS as the source node and V2, V5, and V8 as destination nodes. We want to construct a multicasting sub network with the tightest delay variation and end-to-end delay bound of 50. First, we find all the paths from VS to V2, V5, and V8 for which the delays are less than or equal to 50. Then, we list all the paths with their corresponding delays in the increasing order of the delays as shown in Table 1. From this list of paths, we choose the delays and their corresponding paths to construct the multicasting sub network as follows: First, we have to choose a path from Vs to each of the destinations from the set of paths given in Table 1.

Fig. 1: sample network

For example, let us suppose that we choose paths (a), (e), and (i) (the first shortest paths from the source to each of the destinations V2, V5, and V8, respectively). Then, after merging these paths, the resulting sub network will be a shortest path tree. If we remove the delay variation constraint from our problem, then the shortest path tree will be the optimal multicasting tree. Note that destination nodes V2, V5, and V8 receive the message from Vs at time units 31, 26, and 20, resulting in a delay variation of 11. If the paths that are chosen are (d), (g), and (j), the end-to end delays for each of the destinations V2, V5, and V8 will be 40, 40, and 43, respectively. These delays are within the desired delay bound of 50, but the delay variation is only 3, smaller then the delay variation of 11 in the previous case. Merging these paths we obtain a sub network. Although the sub network is not a tree, at most one message needs to be sent on each direction of any link. We notice from the multicasting sub network that destination node V2 works as relay node for the paths VS _V1 _ V2 _ V4 _ V8 and VS _ V1 _ V2 _ V5. That is, the node V2 will not consume the data while working as a relay node for these paths. It will simply just forward

the data along the path. This can be done using source-routing protocols where source specifies the path to be followed by a packet.

Table 1:All possible paths from source to destination

Advantages in the Proposed System:


Our heuristic achieves the tightest possible bounds on delay variation. In order to perform a join operation or leave operation, we show that our heuristic has a tightest delay variation with less complexity. We have proposed a source based heuristic which does not create overhead at destinations or intermediate nodes.

10

ANALYSIS

11

2.SYSTEM ANALYSIS:
2.1 System Requirement Specification S.No
1 2 3 4

Table Name
Names Delay Path2 Pathinfo

Description
This table is used for maintaining the names of the nodes in network. This table is used to maintaining the delay variations. This table maintains the selected source and destinations. This table maintains the delay variations between selected source and destinations.

Table 2.1.1: Table Specifying Requirements

2.2 Feasibility Study:


Preliminary investigation examines 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 systems are feasible if they are given unlimited resources and infinite time. There are aspects in the feasibility study portion of the preliminary investigation:

Technical Feasibility Operation Feasibility Economical Feasibility

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?

12

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?

Operational Feasibility:
Proposed projects are beneficial only if they can be turned out into information systems, which will meet the organizations 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 Will there be any resistance from the user that will undermine the possible 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. The well-planned design would ensure the optimal utilization of the computer resources and would help in the improvement of performance status.

implemented? application benefits?

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.

13

The system is economically feasible. It does not require any additional hardware or software.

2.3 Software Model:


Our project follows the SDLC (system development life cycle) model. It is linear sequential process. The process of one phase delivers to another phase and no back tracking. Code reusability is not available. Project development is proposed through analyzing the requirements, designing, implementing and testing. So we specified our project as follows the Waterfall Model.

14

Fig 2.3 Software Development Life Cycle

15

2.4 System Requirements


A requirement is a feature that must be include in the system. Before the actual design and implementation start, getting to know the system to be implement is of prime importance.

2.4.1 Hardware Requirements

Processor RAM Hard Disk Input device Output device

: Pentium. : 128MB. : 10 GB. : Standard Keyboard and Mouse. : High Resolution Monitor.

2.4.2 Software Requirements

Operating System Data Bases Front End

: Windows 2000 server Family. : MS SQL : Java

16

DESIGN

17

3. SYSTEM DESIGN:
Design Specification:
Design of software involves conceiving planning out and specifying the externally observable characteristics of the software product. We have data design, architectural design and user interface design in the design process. These are explained in the following section. The goals of design process it to provide a blue print for implementation, testing, and maintenance activities.

Data Design:
The primary activity during data design is to select logical representations of data objects identified during requirement analysis and software analysis. A data dictionary is explicitly on the elements of the data structure. A data dictionary should be established and used to define both data and program design.

Design Methodology:
The two basic modern design strategies employed in software design are: 1. Top Down Design 2. Bottom Up Design Top Down Design is basically a decomposition process, which focuses on the flow of control. At later stages it concern itself with the code production. The first step is to study the overall aspects of the tasks at hand and to break it into a number of independent modules. The second step is to break each one of these modules further into independent sub-modules. The process is repeated one to obtain modules, which are small enough to group mentally and to code in a straightforward manner. One important feature is that at each level the details of the design at the lower level are hidden. Only the necessary data and control that must be called back and forth over the interface are defined. In a Bottom-Up design one first identifies and investigates parts of design that are most difficult and necessary designed decision are made the remainder

18

of the design is tailored to fit around the design already chose for crucial part. It vaguely represents a synthesis process explained in previous section. One storage point of the top-down method is that it postpones details of the decision until the last stage of the decision. It allows making small design changes when the design is half way through. There is danger that the specifications will be incompatible and this will not be discovered until late in the design process. By contrast the bottom-up strategy first focuses on the crucial part so that feasibility of the design is tested at early stage. In mixing top-down and bottom-up design it often appears that we start in the middle of the problem and work our way both up and down there. In a complex problem, it is often difficult to decide how to modularize the various procedures. In such cases one might consider a list of system inputs and decide what functions are necessary to process these inputs. This is called back to front design. Similarly one can start with the required outputs and work backwards evolving so called front-back design. We have applied both the top down and bottom up approach in our design approach. Databases are normally implemented by using a package called a Data Basw Management System (DBMS). Each particular DBMS has somewhat unique characteristics, and so such, general techniques for the design of database are limited. One of the most useful methods of analyzing the data required by the system for the data dictionary has developed from research into relational database, particularly the work of E.F.Codd. This method of analyzing data is called Normalization. Unnormalized data are converted into normalized data by three stages Each stage has a procedure to follow.

Normalization:
The first stage is normalization is to reduce the data to its first normal form, by removing repeating items showing them as separate records but including in them the key fields of the original record. The next stage of reduction to the second normal form is to check that the record, which one is first normal form, all the items in each record are entirely dependent on the key of the record. Ifa data item is not dependent on

19

the key of the record, but on the other data item, then it is removed with its key to form another record. This is done until each record contains data items, which are entirely dependent on the key of their record. The final stage of the anlaysis, the reduction of third normal form involves examining each record, which one is in second normalform to see whether any items are mutually dependent. If there are any items like that, then are removed to a separate record leaving one of the items behind in the original record and using that as the key in the newly created record.

Business Modeling:
The information flow among business function is modeled in a way that answers the following questions: What information drives the business process? What information is generated? Who generated it? Where does the information go? Who process it?

Data Modeling:
The information flow defined as a process of the business modeling is refined into a set of data objects that are needed to support the business. The characteristics (called attributes) of each object are identified and relationships between these objects are defined.

Process Modeling:
The data objects defined in the data-modeling phase are transformed to achieve the information flow necessary to implement a business function. Processing descriptions are created for adding, modifying, deleting, or retrieving a data object.

The Linear sequential Model:


The Linear sequential model for software engineering some times called the classic model or the Water fall model, the linear sequential suggests a systematic, sequential approach to software development that begins at the

20

system level and process through analysis, design, coding, testing, and maintenance. The linear sequential model is the oldest and the most widely used paradigm for software engineering. Modeled after the conventional engineering cycle,the linear sequential model encompasses the following activites: 1) System/Information Engineering and Modeling: Because software is always part of a larger system(or business), work begins by establishing requirements for all system elements and then allocating some subset of these requirements to software. This system view is essential when software must interface with other elements such as hardware, people, and databases. System engineering and analysis encompasses requirements gathering at the system level with a small amount of top-level analysis and design. Information engineering encompasses requirements gathering at the strategic business level and at the strategic business level and at the business area level. 2) Software Requirements Analysis: The requirements gathering process is intensified and focused specifically on software. To understand the nature of the programs to be built, the software Engineer must understand the information domain for the software, as well as required function, behavior, performance, and interfacing. Requirementsfor the both the system and the software are documented and reviewed with the customer. 3) Design: Software design is actually a multi step process that focuses on four distinct attributes of a program: data structure, software architecture, interface representations, and procedural detail.

21

The

design

process

translates

requirements

into

representation of the software that can be assessed for quality before code generation begins. Like requirements the design is documented and becomes part of the software configuration. 4) Code Generation: The design must be translated into amachine-readable form. The code generation step performs this task. If design is performed in a detailed manner, code generation cab be accomplished mechanistically. 5) Testing: Once code has been generated, program testing process focuses on the logical internals of the software, assuring that all statements have been tested, and on the functional externals that is, conducting tests to uncover errors and ensure that defined input will produce actual results that agree with required results. 6) Maintenance: Software will undoubtedly undergo change after it is delivered to the customer. Change wil occur because errors have been encountered, because the software must be adapted to accommodate changes in its external environment (e.g., a change required because of a new operating system or peripheral devices), or because the customer requires functional or performance enhancement. Software maintenance reapplies each of the preceding phases to an existing program rather than a new one.

22

In Multicast Gouging, the tables created are: Names Delay Path2 Pathinfo

Names Table:
The Fields are: Node Path Port Address

Delay Table:
The Fields are: Path2 Table: The Fields are: Names Server Dest Path Delay

Pathinfo Table:
The Fields are: Path Delay

23

COLUMN NAME
Name Port Path Address

DATA TYPE & SIZE


Varchar(20) Varchar(20) Varchar(20) Varchar(20)

CONSTRAINT

Primary Key

Table 3.1:Data Base Table for Names

COLUMN NAME Path Delay

DATA TYPE & SIZE Varchar(20) Varchar(20) Table 3.2:Data Base Table for Delay

CONSTRAINT

COLUMN NAME Names Server Destination

DATA TYPE & SIZE Varchar(20) Varchar(20) Varchar(20) Table 3.3: Data Base Table for Path2

CONSTRAINT

Primary Key

COLUMN NAME Paths Delay

DATA TYPE & SIZE Varchar(20) Numeric(10) Table 3.4: Data Base Table for Pathinfo

CONSTRAINT

24

3.1 SYSTEM DESIGN USING UML:


UML Diagrams:
The Unified Modeling Language (UML) is an open method used to specify, visualize, modify, construct and document the artifacts of an object-oriented software intensive system under development. UML offers a standard way to write a systems blueprints, including conceptual components such as: Actors Business Processes System components and activities Programming Language statements Database Schemas Reusable Software components

As well as concrete things such as:

UML combines best practices from data modeling concepts such as entity relationship diagrams, business modeling (work flow), object modeling and component modeling. It can be used with all processes, throughout the software development life cycle, and across different implementation technologies. UML has succeeded the concepts of the Booch method, the Ojectmodellingtechnique(OMT) and object-oriented software engineering(OOSE) by fusing them into a single, common and widely usable modeling language. UML aims to be a standard modeling language which can model concurrent and distributed systems. UML is not an industry standard, but is taking shape under the auspices of the Object Management Group (OMG). OMG has initially called for information on objectoriented methodologies that might create a rigorous software modeling language. Many industry leaders have responded in earnest to help create the standard.

25

3.1.1 USE CASES:

Fig 3.1.1: Use case Diagram for Multicast Gouging

Use Cases Description:


A use case diagram shows a set of use cases and actors and their relationships. Use case diagrams address the static use case view of a system. These diagrams are especially important in organizing and modeling the behaviors of a system. It is a description of set of sequence of actions that a system performs so that it gives the result of value to a particular actor.

26

3.1.2 CLASS DIAGRAM Class diagram Description:A Class diagrams is a diagram that shows a set of classes, interfaces, collaborations and their relationships. It addresses static design view of a system.

Classes: 1. User 2. Source 3. Destination 4. Network 5. Path 6. Node

Relation Ships:1. Association:It is a structural relationship that describes a set of links; a link is a connection among objects. It is represented as solid line possibly directed and occasionally including a label and often contains adornments such as multiplicity and role names. 2. Dependency:It is the semantic relationship between two things in which a change to one thing may affect the semantic of the other thing. Graphically, a dependency is represented as dashed lines possibly directed and occasionally including a label.

27

3. Aggregation:It is a special part of association. If there is a association between two classes, we can navigate from objects of one class to the objects of another class. It is one among the four adornments of association.

Fig 3.1.2: Class diagram for multicast gouging

28

IMPLEMENTATION

29

4. SYSTEM IMPLEMENTATION:
Implementation is the process of assuring that the information system is operational and then allowing users take over its operation for use and evaluation. Implementation includes the following activities: Obtaining and installing the system hardware. Installing the system and making it run on its intended hardware. Providing user access to the system. Creating and updating the database. Training the users on the new system. Documenting the system for its users and for those who will be responsible for maintaining it in the future. Making arrangements to support the users as the system is used. Transferring ongoing responsibility for the system from its developers to the operations or maintenance part. Evaluating the operation and use of the system.

30

4.1 Flow Diagram

Fig 4.1.1 Flow Diagram

31

4.2 Modules
1. Constructing a Multicast Topology 2. Finding all Paths and Delay 3. Finding Delay Variation and Shortest Path 4. Sending a Message

1. Constructing a Multicast Topology:

We construct our topology structure. Here we use mesh topology structure. Because mesh topology is unstructured one, so we use that one. In this module we choose some systems and how they are interconnected. After constructing the topology structure we choose the source and the destinations.

Fig.4.2.1 Construction of Topology

32

2. Finding all Paths and Delay:

We find the all possible paths. After the first module completion we find the all possible paths (i.e.) what ways to reach the destinations are. After finding the all possible paths we find the delays for the all possible paths. Here we take the system time for the delays. We calculate the start time and end time. The difference between start and end time is the delay time.

Fig : 4.2.2 Finding all paths and delays 3. Finding Delay Variation and Shortest Path:

In this module we find the delay variation. After finding the delay for all possible paths, we find the delay variation. Delay variation is the difference between the delays. Here we find minimum delay variation that paths are choosing as a shortest path.

33

Fig :4.2.3 Finding delay and shortest path

4. Multicast Message:
In this module, we multicast the message to all destinations. After finding the shortest path, we transmit the message to the destinations through the shortest path. In the shortest path the delay variation is very minimum, so compare to the existing methods the waiting time would be negligible.

Fig : 4.2.4 Multicast Message

34

4.3Selected Software: 4.3.1JAVA: What is java?


Java is an object-oriented programming language developed by Sun Micro Systems, a company best known for its high-end and UNIX workstations. Java was modelled after c++. Java is an interpreted language that is similar and superficial to c++ but different in many ways. The Java language was designed to be small, simple, and portable across platforms and operating systems. It is best for creating Applets and applications for the internet, intranets and any other complex distributed networks. Java is provided with extensive library of classes and interfaces called Application programming interface. Java is intended to use in networked and distributed environments. Java enables the construction of virus free, tamper-free systems. Java interpreter can execute java byte codes directly on any machine to which the interpreter and lightweight process, the development process can much more rapid. Java supports multithreading.

Features of Java Simple


Java is simple to use for three main reasons: First, Java is familiar to you if you know C. Second, Java eliminates components of C that cause bugs and memory leaks and replaces their functionality with more efficient solutions and automated tasks, so you have a lot less debugging to worry about than you would using C or C++. Third, Java provides a powerful set of pre-tested class libraries that give you ability to use their advanced features with just a few additional lines of code.

35

Object-Oriented
Java is an object-oriented programming language that uses software objects called classes and is based upon reusable, extensible code. This means that you can use javas classes, which are sets of variables and methods, as templates to create other classes with added functionality without rewriting the code from the parent classes or super classes.

Distributed
Java was designed for the distributed environment of the internet because it handles the TCP/IP protocols. The original version of java included features of intraaddress-space massaging, allowing objects on two different computers to execute procedures remotely. Java has recently revived these interfaces in a package called RMI. This feature brings an unparallel level of abstraction to client-server programming.

Robust
Java is robust because the language removes the use of pointers and the java runtime system manages memory. The problems with pointers in C and C++ were that pointers directly address memory space. In a distributed environment like the internet, when code is downloaded to diverse systems, there is no way of knowing for sure that memory space addressed by pointers is not occupied by the system. Overwriting this memory space could crash a system. Java also gives you automatic bounds checking for arrays, so they cannot index address space not allocated to the array. Automatic memory management is done using Garbage Collector, Creating Your Own Objects.

Secure
Java is secure, so you can download java programs from anywhere with confidence that will not damage your system. Java provides extensive compile time checking, followed by a second, multilayered level of runtime checking.

36

Interpreted and High Performance


Java enables the creation of cross-platform programs by compiling into an intermediate representation called bytecode. This code can be interpreted on any system that provides Java Virtual Machine. Java bytecode was carefully designed so that it would be easy to translate directly into native machine code for very high performance by using a just-in-time compiler.

Javas magic: the bytecode


The key that allows java to solve both the security and the probability problems just described is that the output of a Java compiler is not executable code. Rather, it is bytecode. Bytecode is a highly optimized set of instructions designed to be executed by the Java run-time system, which is called the Java Virtual Machine (JVM). That is, in its standard form, the JVM is interpreter for bytecode.

Translating a Java program into bytecode helps makes it much easier to run a program in a wide variety of environments. The reason is straightforward: only the JVM needs to be implemented for each platform. Once the run-time package exists for a given system, any java program can run on it. Remember, although the details of the JVM will differ from platform to platform, all interpret the same Java bytecode.

Exception Handling
An exception is an abnormal condition that arises in code sequence at run time. In other words, an exception is a run time error. In computer languages that do not support exception handling, errors must be checked and handled manually, typically through the use of error codes and so on. This approach is as cumbersome as it is troublesome Javas exception handling avoids three problems and, in the process, brings run-time error management into the object-oriented world.

37

Java I/O:
A large part of what network programs do is simple input and output, moving bytes from one system to another. I/O in Java is built on streams. A stream represents a flow of data and is logical entity that connects a data source with its destination. There are two ways to read and write data to a file in Java: the first uses byte streams and the second uses character streams. Input stream read data. Output streams write data.

Packages used in Java


Packages are a way of grouping related classes to avoid potential naming conflicts, while inheritance provides the economy of expression that makes objectoriented programming powerful. The standard java packages are:

java.lang java.awt java.io java.lang javax.swing java.sql The java.lang package contains the various classes that are essential to the

definition of the Java languages or that, by their nature, need to access the internals of Java in a way that most classes cannot do. The java.awt package is a uniform interface to various windowing

environments (AWT stands for Abstract Window Toolkit). The various classes in this package make it easy to create graphical user interface(GUI) elements such as scrollbars, text fields, buttons, checkboxes, and so on. The Java model for I/O is entirely based around streams. A stream is a oneway flow of bytes from one place to another. The many flavors of stream classes defined in the java.io package are organized by inheritance to avoid duplication of methods. The predefined are Inputstream, Outputstream.

38

Project Implementation:
4.3.2 JDBC:
JDBC is an API for programming language that defines how a client may access a data base. It provides methods for querying and uploading data in a database. JDBC is oriented towards relational databases. JDBC Drivers JDBC drivers are divided into four types or levels. Each type defines a JDBC driver implementation with increasingly higher levels of platform independence, performance and deployment administration. The four types are: Type 1: JDBC-ODBC Bridge Type 2: Native-API/partly Java driver Type 3: Net-protocol/all-Java driver Type 4: Native-protocol/ all-Java driver Type 1: JDBC-ODBC Bridge The type 1 driver, JDBC-ODBC Bridge, translates all JDBC calls into ODBC (Open Database Connectivity) calls and sends them to the ODBC driver. As such, the ODBC driver, as well as in many cases, the client database code must be present on the client machine. Type 2: Native-API/partly Java driver JDBC driver type 2----the native-API/partly Java driver converts JDBC calls into database specific calls for databases such as SQL Server, Oracle or Sybase. The type 2 driver communicates directly with the database server therefore it requires that some binary code be present on the client machine. Type 3: Net-protocol/all-Java driver JDBC driver type 3----the Net-protocol/all- Java driver--follows a three-tiered approach whereby the JDBC database requests are passed through the network to the middle-tier server. The middle-tier server then server then translates the request (directly or indirectly) to the database-specific native-connectivity interface

39

to further the request to the database server. If the middle-tier server is written in Java, it can use a type 1 or type 2 JDBC drivers to do this. Type 4: Native-protocol/ all-Java driver The native-protocol/all-Java driver (JDBC driver type 4) converts JDBC calls into the vendor- specific database management system (DBMS) protocol so that client application can communicate directly with the database server. Level 4 drivers are completely implemented in Java to achieve platform independence and eliminate deployment administration issues.

40

TESTING

41

5. TESTING:
The purpose of testing is to discover errors. Testing is the process of trying to discover every conceivable fault or weakness in a work product. It provides a way to check the functionality of components, sub assemblies, assemblies and/or a finished product It is the process of exercising software with the intent of ensuring that theSoftware system meets its requirements and user expectations and does not fail in an unacceptable manner. There are various types of test. Each test type addresses a specific testing requirement.

5.1 Unit Testing:


Unit testing is usually conducted as part of a combined code and unit test phase of the software lifecycle, although it is not uncommon for coding and unit testing to be conducted as two distinct phases.

Test strategy and approach


Field testing will be performed manually and functional tests will be written in detail.

Test objectives
All field entries must work properly. Pages must be activated from the identified link. The entry screen, messages and responses must not be delayed.

Features to be tested
Verify that the entries are of the correct format No duplicate entries should be allowed All links should take the user to the correct page.

42

5.2 Integration Testing


Software integration testing is the incremental integration testing of two or more integrated software components on a single platform to produce failures caused by interface defects. The task of the integration test is to check that components or software applications, e.g. components in a software system or one step up software applications at the company level interact without error.

5.3 Acceptance Testing


User Acceptance Testing is a critical phase of any project and requires significant participation by the end user. It also ensures that the system meets the functional requirements.

Test Results: All the test cases mentioned above passed successfully. No
defects encountered.

5.4 System Testing:


Involves in-house testing of the entire system before to the user. Its aim is to satisfy the user the system meets all requirements of the clients specifications. We performed this checking before delivery. We checked whether we met all the requirements specified by the user.

43

SCREENSHOTS

44

SCREEN SHOT:1

This describes the node to be added to the network. The node which is to be added must be given a name and to be entered in the First Node field and the corresponding port number is to be entered in the next field. The system or the device to which the node is to be connected is given in the address field.

45

SCREEN SHOT-2:

Any number of nodes can be added to the network. The nodes that are added to the network can be seen in the Exist node field.

46

SCREEN SHOT-3:

Each and every node created must be added to the network. It displays the dialog boxes with particular node as source node.

47

SCREEN SHOT-4:

This is the dialog box which has A node as source node. In this we can select any number of destinations. The files which had to be sent is placed in the Input file and it is sent to the desired number of destinations.

48

SCREEN SHOT-5:

With source node A , the message is sent to the nodes D and C. The message is displayed at the same time.

49

SCREEN SHOT-6:

These are the all possible paths from the source A to destination C. The minimum of the paths is selected and routed to the desired destinations.

50

SCREEN SHOT-7:

These are the nodes that are created and added to the network. The nodes that are created are placed in the table names. It displays the port number and address of the each entered node.

51

SCREEN SHOT-8:

It displays the minimum path delay between the selected source and destination and it is placed in the pathinfo table.

52

CONCLUSION

53

7. CONCLUSION:
In this paper, we have considered the problem of determining a multicasting sub network with end-to-end delay bound and delay variation bounded for collaborative applications on overlay network. We have discussed three well-known heuristics from the literature and exposed their limitations. Then, we have presented our heuristic Chains, which achieve the tightest delay variation for a given delay bound. At the initial phase of our heuristic, we have used the k shortest path technique proposed by Victor and Andres to find all paths for each destinations for which the delays are less than or equal to the delay bound. Then using these delays, we have determined the delay chain, which gives the minimum delay variation and constructed the multicasting sub network by retrieving the paths from the delays. We have implemented all the heuristics and observed Chains outperform DPDVB and DVMA in terms of execution time. The Chains heuristic also achieves the tightest delay variation bound along with DPDVB. We have also presented results to show that finding k shortest paths for all destinations is not a bottleneck in our solution. We have also observed that Chains require higher values of k to achieve the tightest delay variation when the graph becomes dense or when the end-to-end delay bound increases. For dynamic reorganization of the multicasting sub network with the tightest delay variation and bounded delay, we notice that the solution with Chains is more efficient than that of DVMA in terms of time-complexity. For dynamic reorganization of the multicasting sub network with the tightest delay variation and bounded delay, we notice that the solution with Chains is more efficient than that of DVMA in terms of time-complexity. As part of our future research work, we will consider link delays as time-varying functions and try to develop efficient heuristics for the DVBMN problem.

54

APPENDIX

55

8.APPENDICES:
8.1 List of abbreviations:
DVBMA-----Delay Variation Bound Multicast Algorithm DDVCA-----Delay and Delay Variation Constraint Algorithm DPPVB------Dynamic program for Delay Variation Bound DVBMN-----Delay and Delay Variation Bounded Multicasting Network

8.2 List of Figures:


Fig 1 Table 1 Table 2.1.1 Fig 2.3 Table 3.1 Table 3.2 Table 3.3 Table 3.4 Fig 3.1.1 Fig 3.1.2 Fig 4.1.1 Fig 4.2.1 Fig 4.2.2 Fig 4.2.3 Fig 4.2.4 Sample Network All possible paths from source to destination Table Specifying requirements Software Development Life Cycle Database Table for Names Database Table for Delay Database Table for Path Database Table for Pathinfo Use case Diagram for Multicast Gouging Class Diagram for Multicast Gouging Flow Diagram for Multicast Gouging Constructing a Multicast Topology Find all paths and delay Find delay variation Multicast the message

56

REFERENCES

57

9. REFERENCES:
A. Ballardie, Core Based Tree (CBT) Multicast Routing

[1]

Architecture,Internet RFC 2201, Sept. 1997. [2] S. Baneerjee, C. Kommareddy, K. Kar, B. Bhattacharjee, and S.Khuller, Construction of an Efficient Overlay Multicast Infrastructure for Real-Time Applications, Proc. IEEE INFOCOM 03, Mar. 2003. [3] S.M. Banik, S. Radhakrishnan, and C.N. Sekharan, Multicast Routing with Delay and Delay Variation Constraints for Multimedia Applications, Proc. Seventh IEEE Intl Conf. High Speed Networks and Multimedia Comm., pp. 399-411, June 2004. [4] E. Brosh and Y. Shavitt, Approximation and Heuristic Algorithms for Minimum Delay Application-Layer Multicast Trees, Proc. IEEE INFOCOM 04, Mar. 2004. [5] Professional Java Network Programming

Sites Referred:
http://java.sun.com http://www.sourcefordgde.com http://www.jfree.org/ http://www.networkcomputing.com/

58

Das könnte Ihnen auch gefallen