Custom Search

Tuesday, December 28, 2010

Surya Software Solutions in Bangalore city

Introduction of Surya Software Solutions in Bangalore
PEER-TO-PEER (P2P) technologies link social networks into cooperative ventures that share information (audio, video, and graphic files), computer resource (computing cycles, hard disk space, and network bandwidth), and communication and collaboration (instant messaging). Members of a P2P community exchange information or other resources directly with each other, with very little or no use of a centralized or dedicated server. Many P2P services exist today, such as file sharing services (Gnutella and Free net), grid computing services (Popular Power and Distributed Net), instant messaging service (AOL, Yahoo!, and MSN), and online collaboration service (Groove Networks).

Among various P2P applications, file sharing is probably the most popular. P2P file sharing applications accounted for five of the top ten downloads from the download.com web site in the last week of June 2002, together constituting 4.5 million downloads. In contrast to the traditional web server-based content delivery paradigm, this emerging “bottom-up” mode of information distribution, leveraging the resources on the peer nodes, is considered to be superior. P2P file sharing networks have attracted many users and much press attention, along with the ire from media firms who feel threatened by the illegal exchange of digital music and movie files.

P2P technologies have many operational characteristics that make them appealing. First, they rely on peer nodes, not the central servers, to deliver content and therefore are more scalable. Second, on a large P2P network, it is likely for any node to find another node with the desired content that is “close,” so transmission delay may be lowered as well. However, there are drawbacks inherent in the P2P networks, due to the same decentralized structure. First, because each peer node can modify its content freely, it may be costly to find desired contents. Second, since P2P users obtain contents from each other, the availability of these contents completely depends on the peer nodes being logged on. So, content reliability be an issue.

In many ways, the size of a P2P network can impact many of these factors. A large network could alleviate the content reliability problem because the probability of satisfying requested content becomes higher if more peer nodes participate in file sharing activities. It could also reduce transmission delay, on average, as the closest service node will become closer as the network contains more nodes with the same content replica. P2P technologies utilize aggregate bandwidth from edge nodes for content transmission to avoid congestion at dedicated servers. Therefore, the effective bandwidth is scalable with respect to the number of active users. On the other hand, on a large-scale P2P network, the number of queries may cause congestion at directory server (if any) as well as network traffic congestion (one query may be forwarded multiple times before a suitable service node is found), due to limited capacity and network bandwidth. Therefore, determining the “right” network scale is very important for P2P operations.

Existing System
In the existing system, when each peer node wants to download a file, it broadcasts the request to all neighboring nodes. This leads to congestion in network.
The peer node will not be aware of nearest peer which will be having the requested file. Hence it may download file from a node away from it. This leads to delay in download.
If the peer node gets a reply as more than one node for the requesting file, then there will be duplication of file.

Proposed System
In the proposed system, the nearer peer nodes are grouped together and a node called as super node will be having the information of nodes in the group.
When a peer node requests for file, the request is given to super node, the super node checks the file in local group. If it is available, the names of nodes and delay will be given to requesting node.
If the file is not found in local list, the super node of this group gives request to super node of other groups and gets the reply back and sends it to requesting node.
The requesting node can select a node which has lower delay which means that is the nearest node, and download the file from it.
This technique reduces the delay for downloading file.
Since request is sent to only super nodes, congestion in network can be reduced.

Modules
Modules are consists of fifteen modules. These modules are as listed below.
Domain1
Supernode1
nodeA
nodeB
nodeC
nodeD
Domain2
supernode2
nodeE
nodeF
nodeG
nodeH
Domain3
supernode3
nodeI
nodeJ
nodeK
nodeL

A super node consists of the list of all available files in its local group. Every time a node downloads a file, the list in super node will be updated. When a peer node requests for a file, the request is given to the super node of the group to which the requesting node belongs. The super node checks in its local list for the requesting file. If any of the nodes contains the requesting file, the node name and its delay is sent to the requesting node. If more than one node contains same file, the requesting node can select the node with lower delay to download the file.

If the requested file is not found in local group, the super node sends this request to the super nodes of other groups and waits for response. When the response is given back, the super node sends it to requesting node. The requesting node can select any of the nodes listed in it to download the file.

Feasibility Study
The development of a computer-based system is more likely to be plugged by the scarcity of resourced bad difficulty delivery data. A feasibility study is not warranted system in which economic justification is obvious, technical risk, low, few legal problems are expected, and no reasonable alternative exits.
Three essential considerations are involved in the feasibility analysis:
Economic feasibility
Technical feasibility
Functional or behavior feasibility

Economic feasibility
Economical analysis is the most frequently used method for evaluating the effective of candidate system more commonly know as cost/benefit analysis, the procedure is to determine the benefits and saving that are expected from a candidate system and compare them with the costs, if the benefits outwit the cost then the system is successfully implemented. Otherwise further justifications of the alternative systems are proposed. The investment to develop this system is minimum. Hence this system is economically feasible.

Technical Feasibility
Technical feasibility centers on existing computer system and to what extent is supported the proposed. for e.g. if the current computer is operating at 80% capacity then running another application could overload the system or require additional hardware. So this project is technically variable without requiring any additional hardware or software.

Functional Feasibility
People are inherently resistant to change. Computers have been known to facility changes. An estimate should be made to know the reaction of user is likely to have towards the new system.
Since this system is ready to use in the organization, this system is operationally feasible. as this system is technically, economically and functionally feasible the system is judged feasible. Viewing the corrected information, recommendation, justification and conclusions are made on the developed system.

Hardware and Software Requirements
PROCESSOR PENTIUM IV 2.6 GHz
RAM 512 MB
HARD DISK 20 GB

Software Requirement
FRONT END, SWING
TOOLS USED JDK1.5, JCREATOR
OPERATING SYSTEM WINDOWS XP
BACKEND MS-ACCESS

Software Tools Description
Brief on java
The Java Programming Language is a pure object oriented language & is platform independent.
It has the following features:
Simple
Object-oriented
Distributed
Interpreted
Robust
Secure
Architecture-neutral
Portable
High-performance
Multithreaded
Dynamic

Java is also unusual in that each Java program is both compiled and interpreted. With a compiler, you translate a Java program into an intermediate language called Java byte codes the platform-independent codes interpreted by the Java interpreter. With an interpreter, each Java byte code instruction is parsed and run on the computer. Compilation happens just once; interpretation occurs each time the program is executed.

Java byte codes can be considered as the machine code instructions for the Java Virtual Machine (Java VM). Every Java interpreter, whether it's 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. The Java program can be compiled into byte codes on any platform that has a Java compiler. The byte codes can then be run on any implementation of the Java VM. For example, the same Java program can run on Windows NT, Solaris, and Macintosh.

Java Platform
A platform is the hardware or software environment in which a program runs. The Java platform differs from most other platforms in that it's a software-only platform that runs on top of other, hardware-based platforms. Most other platforms are described as a combination of hardware and operating system.

The Java platform has two components:
The Java Virtual Machine (Java VM)
The Java Application Programming Interface (Java API)
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 (packages) of related components.

The following figure depicts a Java program, such as an application or applet, that's running on the Java platform. As the figure shows, the Java API and Virtual Machine insulates the Java program from hardware dependencies.

As a platform-independent environment, Java can be a bit slower than native code. However, smart compilers, well-tuned interpreters, and just-in-time byte code compilers can bring Java's performance close to that of native code without threatening portability.

How does the Java API support all of these kinds of programs?
With packages of software components that provide a wide range of functionality. The core API is the API included in every full implementation of the Java platform. The core API gives you the following features:
The Essentials: Objects, strings, threads, numbers, input and output, data structures, system properties, date and time, and so on.
Applets: The set of conventions used by Java applets.
Networking: URLs, TCP and UDP sockets, and IP 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/private key management, access control, and certificates.
Software components: Known as JavaBeans, can plug into existing component architectures such as Microsoft's OLE/COM/Active-X architecture, OpenDoc, and Netscape's Live Connect.
Object serialization: Allows lightweight persistence and communication via Remote Method Invocation (RMI).
Java Database Connectivity (JDBC): Provides uniform access to a wide range of relational databases.

Brief note on swing
Swing is a set of classes that provides more powerful and flexible components than are possible with the AWT.In addition to the familiar components, such as buttons, check boxes, and labels, swing supplies several exciting additions, including tabbed panes, scroll panes, trees, and tables. Even familiar components such as buttons have more capabilities in swing.

For example, a button may have both an image and a text string associated with it. Also, Image can be changed as the state of the button changes Swing components can provide a pluggable look and feel .The swing approach to GUI Components might replace the AWT classes sometime in the future.

SYSTEM DESIGN
System Design Based on the user requirements and the detailed analysis of a new system, the new system must be designed. This is the phase of system designing. It is a most crucial phase in the development of a system. Normally, the design proceeds in two stages:

Preliminary or general design
Structure or detailed design
Preliminary or general design: In the preliminary or general design, the features of the new system are specified. The costs of implementing these features and the benefits to be derived are estimated. If the project is still considered to be feasible, we move to the detailed design stage.

Structure or Detailed design: In the detailed design stage, computer oriented work begins in earnest. At this stage, the design of the system becomes more structured. Structure design is a blue print of a computer system solution to a given problem having the same components and inter-relationship among the same components as the original problem. Input, output and processing specifications are drawn up in detail. In the design stage, the programming language and the platform in which the new system will run are also decided.

There are several tools and techniques used for designing. These tools and techniques are:
Flowchart
Data flow diagram (DFDs)
Data dictionary
Structured English
Decision table
Decision tree

The main form of super node, it contains the four nodes.
Node A
Node B
Node C
Node D

This is the form of Node A .It contains some of the important buttons i.e.
Refresh list
Download File
Search Server
Search File
Exit

Node A List gives list of all files in Node A.
Node B List gives list of all files in Node B.
Node C List gives list of all files in Node C.
Node D List gives list of all files in Node D.
Node E List gives list of all files in Node A.
Node F List gives list of all files in Node B.
Node G List gives list of all files in Node C.
Node H List gives list of all files in Node D.
Node I List gives list of all files in Node A.
Node J List gives list of all files in Node B.
Node K List gives list of all files in Node C.
Node L List gives list of all files in Node D.

In this form the function of refresh list button is shown.
When we click on refresh list button it gives all the file names.
When we select a file from a refresh list button, it gives the allocation of that file along with path of node.
After the selection of the file, and giving the path of the node the next step is the download the file.
When we click on a download file, if the selected file name is having means it gives the message shown above.
This form will search the particular file and will get all the information regarding this file.
This form is used to download the particular file from the particular node.
This form shows the message when download is completed.
This form shows whether file is already exist or want to overwrite it.
This form shows the message when download is cancelled.

CODING
Pseudo code for super node:
if(req.equals("FILEINFO"))
{
Int i=0;
While (st.hasMoreTokens ())
{
Files[i]=st.nextToken();
i++;
}
if (node. equals("A"))
{
g1supernode.listA.setListData (files);
}
else
if (node. equals ("B"))
{
g1supernode.listB.setListData (files);
}
else
if(node. equals("C"))
{
g1supernode.listC.setListData (files);
}
else
if(node. equals("D"))
{
g1supernode.listD.setListData (files);
}
Prepared Statement PST=con.prepareStatement ("insert into delay values (?)");
pst.setString (1, node);
pst.setString (2, Double.toString ((double) ttkn));
pst.executeUpdate ();
}
else
If (req.equals ("REFRESH"))
{
Int j=get files ();
String result=cont [0];
For (int i=1; iresult+="^"+cont[i];
BufferedOutputStream
Out=new BufferedOutputStream (soc.getOutputStream ());
Out. Write (result.getBytes ());
Out. Flush ();
Out. Close ();
br.close ();
}
Else
If (req.equals ("SEARCH"))
{
System.out.println ("checking file");
Check file (node);
System.out.println ("checking done");
If (indexes==0)
{
Sendremotereq ();
}
String result=node delays [0];
For (int i=1; iIf (node delays[i]! =null)
Result+="^"+node delays[i];
System.out.println (result);
BufferedOutputStream
Out=new BufferedOutputStream (soc.getOutputStream ());
Out. Write (result.getBytes ());
Out. Flush ();
Out. Close ();
br.close ();
}
Else
If (req.equals ("SEARCHREMOTE"))
{
System.out.println ("checking file");
Check file (node);
System.out.println ("checking done");
String result="null";
If (node delays [0]! =null)
Result=node delays [0];
If (node delays [1]!=null)
For (int i=1;iIf (node delays[i]!=null)
Result+="^"+node delays[i];
System.out.println (result);
BufferedOutputStream
out=new BufferedOutputStream(soc.getOutputStream());
Out. Write (result.getBytes ());
Out. Flush ();
out. Close ();
br.close ();
System.out.println ("reply sent");

Testing Introduction
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 the Software 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.

Unit Testing
Software testing is critical element of software quality assurance and represents ultimate review of specification, design and coding. Test case design focuses on a set of technique for the creation of test cases that meet overall testing objectives. Planning and testing of a programming system involve formulating a set of test cases, which are similar to the real data that the system is intended to manipulate. Test castes consist of input specifications, a description of the system functions exercised by the input and a statement of the extended output. Through testing involves producing cases to ensure that the program responds, as expected, to both valid and invalid inputs, that the program perform to specification and that it does not corrupt other programs or data in the system.

In principle, testing of a program must be extensive. Every statement in the program should be exercised and every possible path combination through the program should be executed at least once. Thus, it is necessary to select a subset of the possible test cases and conjecture that this subset will adequately test the program.

Integration Testing
It involves the testing of the order in which the different modules are combined to produce the functioning whole. Integration testing generally throws light on the order of arrangement of units, modules, systems, subsystems and the entire product.
The proposed system, “ the client server architecture “ inherits a bottom-up integration strategy in which all the subsystem and the modules involved in it are independently tested and integrated to from the entire system, which is then tested as a whole.
For the testing of this system it was required that the software be tested for performing its basic functions that are as follows

Start the server first and then client, then there is no error. Start the server and client, and then stop the server and a send a message from client. The error is no server connection. Start client first, then the error is client is not connected to the server.

Validation Testing
Validation testing is used to validate the correct user name and password and card number and pin number and if person gives the invalid username and password, at that time the card validation does not execute.

Performance Testing
Performance testing determines the amount of execution theme spent in various parts of the unit, program throughput, response time and device utilization by the program unit.

IMPLEMENTATION
Implementation is the stage in the project where the theoretical design is turned into a working system and is giving confidence on the new system for the users, which it will work efficiently and effectively. It involves careful planning, investigation of the current System and its constraints on implementation, design of methods to achieve the change over, an evaluation, of change over methods. Apart from planning major task of preparing the implementation are education and training of users. The more complex system being implemented, the more involved will be the system analysis and the design effort required just for implementation.

An implementation co-ordination committee based on policies of individual organization has been appointed. The implementation process begins with preparing a plan for the implementation of the system. According to this plan, the activities are to be carried out, discussions made regarding the equipment and resources and the additional equipment has to be acquired to implement the new system.

Implementation is the final and important phase, the most critical stage in achieving a successful new system and in giving the users confidence. That the new system will work be effective .The system can be implemented only after through testing is done and if it found to working according to the specification.

0 comments:

Post a Comment