Subscribe by Email


Showing posts with label computers. Show all posts
Showing posts with label computers. Show all posts

Tuesday, May 14, 2013

What is a Distributed System?


In the field of computer science, the distributed computing constitutes of distributed systems. 
- Multiple computers that are capable of communicating via a computer network together compose a distributed system. 
- All the computers in a distributed system work together in order to accomplish a common task.
- A common program is also required for running this whole system and is known as the distributed system. 
- Such programs for distributed systems are written using the process called the distributed programming. 
- Distributed computing involves the use of distributed systems for solving the computational problems.
- A distributed system divides the problem into much smaller tasks that are then given to one or more computers of the distributed systems. 
- These systems use message passing for communicating with each other. 
- The term distributed system earlier referred to the networks which had their hosts distributed over a geographical area. 
- This term was eventually refined and now is applied to a much broader concept. 
- It now also refers to the various autonomous processes that execute on the same system but maintain an interaction with other systems also through message passing. 
Because of the wide sense to which the concept is applied, it has no formal definition; rather the following properties are used for defining it:
  1. There are many computational entities of the distributed system that are autonomous in nature and each of them possesses individual local memory. These entities are commonly referred to as the nodes.
  2. By means of message passing these entities communicate with each other.
- A distributed system works towards a common goal which may involve solving a big computing problem. 
- On the other side, each node in a distributed system may have its own requirements. 
- The distributed system must provide communication means to the user and help in coordinating the use of the common resources.

Properties of Distributed Systems

Distributed systems possess many other typical properties as mentioned below:
  1. It has the capability to tolerate the failures of the individual nodes or the computers.
  2. The system’s structure cannot be determined in advance. It includes a number of factors such as number of computers, network topology, and network latency and so on. The computers in the system might be of many different types and so the links also. As a result the structure of a distributed system may alter while executing a distributed program.
  3. The complete view of the distributed system is hidden from its nodes. They are provided only with a limited view or information about the system. Only a part of the input is known by each of the nodes.
- There are two terms which consistently overlap with the distributed computing namely parallel computing and concurrent computing
- The distinctions between these three are not clear at all. 
- At the same time a system may be called both a parallel one and a distributed one.
- Another thing about distributed systems is that the processors involved run in concurrence with each other but in parallel.
- Distributed computing in a more tightly coupled form is called parallel computing. 
- Thus, a loosely coupled form of parallel computing is the distributed computing. 

Two main reasons have been observed for using distributed computing:
  1. Depending on the nature of the application it may require using a network connecting many other systems. For example, data produced by one system is required by others.
  2. There are cases, where by theory and principle use of a single computer is possible but for the same case if a distributed system is used in practical then it might be more beneficial. For example, using a cluster of low – end computers for attaining the desired level of performance might be more cost efficient. 


Tuesday, May 7, 2013

What is meant by Time sharing system?


In the field of computer science, sharing resources of a computer through techniques of multi-tasking and multi-programming by many other system users is termed as a time sharing system. 
- It was first introduced in the year of 1960 and eventually emerged as the most popular computing model of the 1970s. 
- With it, occurred a major shift in the technology of designing the efficient computers. 
- These types of systems allowed quite a large number of users for interacting with the same computer system at the same time. 
- Providing computing capabilities was a costly affair at that time. 
- Time sharing greatly brought down this cost by providing these capabilities at a very less cost. 
- Since time sharing allows multiple users to interact simultaneously with the same system, it has actually made it possible for the organizations and the individuals to use a system that they do not even own. 
- This has further led to the promotion of the computers to be used interactively and development of other applications with an interactive interface. 
- The earlier systems apart from being expensive were quite slow. 
- This was the reason why the systems could be dedicated only to one task at a time. 
- The task was carried out through the control panels from where the operator would enter small programs manually through switches so as to load and execute a new program series. 
- These programs would take even up to weeks for completing execution. 
- The realization of the interaction pattern was what that led to the development of time sharing systems. 
- Usually, the data entered by a single user was in small bursts of info and then a long pause. 
- But if there would have been multiple number of users working concurrently on the same system, there activities could fill up the pauses of the single user. 
The overall process could be made very efficient for a given size of the use group. 
- In the same way, the slice or share of time that was engaged in waiting for network input or tape or disk could be utilized by activities of other users. 
- A system that would be able to harness this potential advantage was difficult to be implemented.
- Even though batch processing was a high at that time, it could only make use of the time delay between two programs. 
- In the early times, the multiplexing of computer terminals in to main frame computer systems was seen.
- Such implementations were capable of sequentially polling those terminals to check for additional action and data requests made by the user of the system.

- Later, came the interconnection technology that was interrupt driven and made use of the IEEE 488 i.e., parallel data transfer technologies.
- Time sharing faded for some time with the advent of the micro computing but again it came back in to the scene with the rise of internet. 
- The corporate server farms cost in millions and are capable of hosting a large number of customers sharing the same resources.
- The operation of the websites using the early serial terminals was in bursts of activity that were followed by idle periods. 
- However, it is because of this bursting that the services of the web sites could be used by a large number of users simultaneously and with the advantage that the delays in communications won’t be noticed by them.
- However, if the server gets too damn busy they will surely start coming in to the notice.
- Earlier some time sharing services such as the service bureaus were offered by many companies. 
- Some examples of common systems that are used for time sharing are:
  1. SDS 940
  2. PDP – 10
  3. IBM 360


Wednesday, April 4, 2012

What is meant by adaptive and predictive planning?

Learning is an important aspect of any development process be it of any field. Learning can be classified in to many types, but in this article only two types have been discussed namely:
- Adaptive learning and
- Predictive learning

Adaptive Planning or Learning

- Adaptive learning is considered to be a computer driven educational method in which the computers are the interactive teaching devices rather than having human teachers do the teaching.

- The presentation of the educational material is adapted by the computers according to the weaknesses of the students which are determined by the responses of the students to the questions asked by the computer.

- Here the whole learning process is motivated by the idea of using electronic education for incorporating the interactive values to a student that would have been provided by an actual human tutor or teacher.

- This technology encompasses various aspects taken from the fields like education, psychology, computer science and so on.

- Adaptive learning was evolved because it is not possible to achieve tailored learning with non adaptive and traditional approaches.

- The learner is transformed from the passive receptor of the information to the collaborator of the educational processes.

- The primary application of the adaptive learning is in basically the following two fields which have been designed as both web applications and the desk top applications:
1. Education and
2. Business training.

Adaptive learning is also known by several other names like:
1. Computer based learning
2. Adaptive educational hyper- media
3. Intelligent tutoring systems
4. Adaptive instructions
5. Computer based pedagogical agents

Models or Components of Adaptive learning

The whole process of adaptive learning has been divided in to some separate models or components as mentioned below:

1. Student Model
- This model keeps a track of the student and learns about him.
- This model makes use of algorithms that have been researched for over 20 years.
- The CAT (computer adaptive testing) makes use of the simplest means for the determination of the students’ skill.
- Nowadays, the students’ models make use of richer algorithms for providing a more extensive diagnosis of the weaknesses of the students.
- This it does by linking the questions and the concepts and using ability levels to define the strengths and weaknesses.

2. Instructional model
- This model is actually responsible for conveying the information.
- It makes use of the best technological methods for educational purposes like multimedia presentations along with the expert teacher advice.
- When the students make mistakes, the model provides them with useful hints.
- These hints can be question specific.

3. Instructional environment
This provides an interface for the system and human interaction.

4. Expert model
- This model is responsible for teaching the students using the stored information which is to be taught.
- This may include solutions for question sets, lessons and tutorials.
- Some very sophisticate expert models may use expert methodologies for the illustration of the solution of the questions.
- In some of the adaptive learning systems, the qualities of an expert model may be acquired by an instructional model.

Predictive Planning or Learning

- The predictive learning involves machine learning i.e., to say an agent has to build a model of its own environment type by carrying out various actions in several circumstances.

- The knowledge of the effects of the actions tried out is used for turning the models in to planning operators.

- This is done so that the agent is able to act purposefully in that environment.

- We can say that the predictive learning is all about learning with a minimum of the mental structure that exists already.

- Some say that this kind of learning has been inspired by the Piaget’s account of the construction of knowledge of the world by interacting with it.


Thursday, January 5, 2012

What are different aspects of distributed testing?

We have heard a lot about different kinds of testing such as regression testing, scalability testing, web testing, unit testing, visual testing, and performance testing and so on. But do you know what is distributed testing? Ever heard about it? No? Then this piece of writing is certainly for you!

This type of testing usually receives very less coverage and that’s why most of the people are not familiar with it. Here I have attempted to explain what is meant by distributed testing and how it compares with its non distributive counterpart.

Non distributed testing can be defined as the tests that run or execute only on a single computer and usually do not involve any kind of interaction with the other computer systems. I used the word “usually” here because there exist some tests that are executed from a host machine to test the target device which holds an embedded or a real time operating system. Non distributed test cases can be configured very easily.

Non distributed testing is further divided into two sub categories namely local testing and remote testing. They have been discussed in details below:

- Local Testing
This kind of testing involves running the test cases on a local computer system. The tests used are called local tests. For performing local test you don’t have to be connected to a network connection.

- Remote Testing
This kind of testing requires a network connection so that you can run a test on a remote computer system to which you don’t have local access. This is very comfortable since you can work right from your desk and you also get the results right on your desk. Remote tests can be performed on several computer systems at a time. The best about thing about remote testing is that no matter how many software systems are under the distributed testing, there is no interference between the processors of different CPUs.

Now that you have got the idea of how non distributed testing is like, it will be easy for you to understand distributed testing is like.
- A distributed test case consists of many parts that interact with each other.
- Each part of the test case is executed on different computer system.
- The interaction of the different parts of the distributed testing sets it apart from non distributed testing.
- If you notice the testing is all about testing the interaction between different computer systems.
- All of the test cases being processed on different processors have a common aim irrespective of the system on which they are performed.
- Distributed testing is not to be confused with simultaneous testing since in simultaneous testing there is no interaction between the different tests.
- Platform proves to be one of the great challenges to the distributed testing.
- The testing environment should be capable of working on all the platforms involved effectively.
- After setting up of your testing environment, you need to make a test plan or say that you need to describe how you want to carry out distributed testing.
- This can be done via a test scenario.
- A test scenario lists all the test cases and also describes how they are to carried out on the computer systems.
- The description of the test cases is provided in the form of a formal directive.
- Test scenario is an effective way to describe test cases.
- For distributed testing we use distributed directives and for non distributed testing we use remote directives.


What are different aspects of network testing?

Network is interconnected collection of hardware components and computers interconnected by communication channels which shares data and resources. Computers are said to be interconnected if they are capable of sharing data and information. These computers are said to be autonomous since no computer can start, stop and control the other computer.

NEED OF NETWORK
- Network is needed because through network we can share resource which means we can make all programs, data and peripherals available to anyone on the network irrespective of the physical location of the resources and user.
- It provides reliability i.e.a file can have copies on two or three different machines, so if one of them is not available ,the other copies can be used.
- It also affects the cost factor which means personal computer have better price/performance ratio then the micro computers.
- Using a network, it is possible for managers, working far apart, to prepare financial report for the company.
- The changes at one end can be noticed at another and hence it speeds up the co-operation among them.

Network has some disadvantages also.
- Network makes systems more sophisticated and complex to run.
- This can add to costs and you may need a specialist staff to run the network. - If software and files are held centrally, it may be impossible to carry out any work if the central server fails.
- If networks are badly managed services can become unusable and productivity fails.
- File security is more important especially if connected to WAN e.g. protection from viruses.

Network testing is done by various types of tools. These tools help us to test switches, routers, servers and other networks. Network testing aims at determining the strength of the integrity of the network.


- Network testing methodology aims at testing the networking equipments and live networks.
- Network testing requires the network to adhere to the standards of networking. - It doesn’t matter what the software testers test the network for inter- operability, scalability, performance or protocol conformance, they can always rely only network testing for in depth and un biased testing of the network.

Speed testing is another aspect of network testing.
- Speed test can be used to verify if the internet service provider is delivering the connection speed that they promised or not.
- These days network equipment face validation challenges.
- There is a dire need of improving the quality and the performance of the core product.
- While the network complexity is constantly increasing, the process of network testing is increasingly becoming more intricate and time consuming.

There are certain problems that arise while performing the network test. They have been listed below:


- The complex combination of software, firmware and hardware components makes it very difficult to test a particular device as a single integrated system. Such cases often require manual intervention.
- The streamlining of remote manufacturing processes not only makes the whole testing process more complicated but it also makes it difficult to meet the market requirements on time.
- Performing network testing across a wide variety of scripts, testing equipments and network protocols requires complex configuration processes and long set up.

Whether the network to be tested is WAN (wide area network), LAN (local area network), VPN (virtual private network, data center products or other networking devices, network testing over comes their validation challenges and at the same time it increases test automation coverage and provides massive reduction in overhead testing costs and time consumption.

These days automated network testing set up is available. It significantly reduces the test duration, coverage and optimized test operations. Such set ups offer complete automation and configuration of the test prior to testing. The created test cases confirm to standards and provide maximum flexibility and re-usability.


Tuesday, March 8, 2011

Software Architecture Design - why is it important?

The architecture is not the operational software, rather it is a representation that enables a software engineer to analyze the effectiveness of the design in meeting its stated requirements, consider architectural alternatives at a stage when making design changes is still relatively easy and reduce the risk associated with the construction of the software.

- Software architecture enables and shows communication between all parties interested in the development of a computer based system.
- Early design decisions that has a profound impact on software engineering work is highlighted through architecture.
- Architecture constitutes a relatively small, intellectually graspable model of how the system is structured and how its components work together.

The architectural design model and the architectural patterns contained within it are transferable. Architectural styles and patterns can be applied to the design of other systems and represent a set of abstractions that enable software engineers to describe architecture in predictable ways.

Software architecture considers two levels of design pyramid - data design and architectural design. The software architecture of a program or computing system is the structure or structures of the system, which compose software components, the externally visible properties of those components and the relationships among them.


Friday, February 11, 2011

User Interface Analysis and Design - Interface analysis and design models

User interface design begins with creating of different models of system function, human and computer tasks required to achieve system function are delineated, design issues applying to interface designs are considered, tools that are used and result that is evaluated by end-users for quality.

Analyzing and designing a user interface design requires four different models:
User Model
It is established by human or software engineer. It establishes the profile of end users of system. Users are categorized as:
- Novices: No syntactic and little semantic knowledge.
- Knowledgeable, intermittent users: Reasonable semantic and low recall or syntactic knowledge.
- Knowledgeable, frequent users: Good semantic and syntactic knowledge.

Design Model
Software engineer creates a design model. It includes data architectural, interface and procedural representations of the software.

User's Mental Model
It is created by end-user. It is the image of the system that end users carry in their mind. Accuracy of the description depends on the user's profile.

Implementation Model
It is created by implementers of the system. It combines the outward manifestation of computer based systems coupled with all information that describe system syntax and semantics.

When the implementation and user's mental model are coincident, users are comfortable with the software and use it effectively.


Thursday, February 10, 2011

User Interface Testing - The Golden Rules

User interface design creates an effective communication medium between a human and a computer. User interface is designed by a software engineer. Interface design focuses on three areas:
- design of interfaces between software components.
- design of interfaces between software and other non-human producers and consumers of information.
- design of interface between a human and computer.

Rules Forming the Basis For A Set of User Interface Design Principles


Place the User in Control: Some design principles that allow the user to maintain control are:
- Define the current state of the interface in a way that does not force a user in to unnecessary or undesired actions.
- Flexible interaction should be provided because different users have different interaction preferences.
- It allows the user interaction to be interruptible and un-doable.
- The user should not be aware of the technical internals like operating system, file management functions etc. The user interface should move the user into virtual world of the application.
- It is good to design a macro mechanism that enables an user to customize the interface to facilitate interaction.
- The interface should be designed in a manner in which user will have direct interaction with objects that appear on screen.

Reduce the User's Memory Load
Some design principles enabling an interface to reduce user's memory load:
- Interface should be designed to reduce the requirement to remember past actions and results. This can be done by providing visual cues that enables a user to recognize past actions rather than to recall them.
- Establish meaningful defaults.
- Shortcuts should be defined that are intuitive in nature.
- The visual layout of the interface should be based on real world metaphor.
- Interface should be organized in a hierarchical manner. The information should be disclosed in a progressive fashion.

Make the Interface Consistent
Consistency means that all visual information is organized according to a design standard, input mechanisms are constrained to limited set used consistently throughout the application and mechanisms for navigating from task to task.Some design principles that helps in making interface consistent are:
- Allow the user to put the current task into meaningful context.
- Consistency should be maintained across a family of applications.
- Do not make changes in past interactive models that have created user expectations unless there is some solid reason to change.


Thursday, September 16, 2010

Types of Software Systems : Batch Systems, Event Control Systems, Process Control Systems, Advanced Mathematical Models, Message Processing Systems

The type of software system refers to the processing that will be performed by that system.
Batch systems:
These are a set of programs that perform activities which do not require any input from the user. For example, when you type something on word document, you press the key you require and the same gets printed on the monitor. This is performed by the batch systems. These systems contain on or more Application Programming Interface (API) which perform various tasks.

Event Control Systems:
These systems process real time data to provide the user with results for what command was given. For example, when something is typed on the word document and press Ctrl+S, it tells the computer to save the document. These real time command communications to the computer are provided by the event controls that are pre-defined in the system.

Process Control Systems:
There are two or more different systems that communicate to provide the end user a specific utility. When two systems communicate, the co-ordination or data transfer becomes vital. Process Control Systems are the one's that receive data from a different system and instructs the system which sends the data to perform specific tasks based on the reply sent by the system which received the data.

Advanced Mathematical Models:
Systems, which make use of heavy mathematics fall into the category of mathematical models. Usually, all the computer software make use of mathematics in some way or other. An example of advanced mathematical model is the simulation system which uses graphics and control the positioning of software on the monitor or decision and strategy making software.

Message Processing Systems:
A simple example of this type of system is SMS management system used by the mobile operator which handle incoming or outgoing messages. Another system which is noteworthy is the system used by the paging companies.


Tuesday, April 20, 2010

Introduction to Grid Computing

Grid Computing can be defined as applying resources from many computers in a network to a single problem, usually one that requires a large number of processing cycles or access to large amounts of data.
- Grid computing is the act of sharing tasks over multiple computers.
- These computers join together to create a virtual supercomputer. Networked computers can work on the same problems, traditionally reserved for supercomputers, and yet this network of computers are more powerful.
- The idea of grid computing originated with Ian Foster, Carl Kesselman and Steve Tuecke.
- Grid computing techniques can be used to create very different types of grids, adding flexibility as well as power by using the resources of multiple machines.
- Grid computing is similar to cluster computing, but there are a number of distinct differences. In a grid, there is no centralized management; computers in the grid are independently controlled, and can perform tasks unrelated to the grid at the operator's discretion.
- The computers in a grid are not required to have the same operating system or hardware.
- At its core, Grid Computing enables devices-regardless of their operating characteristics-to be virtually shared, managed and accessed across an enterprise, industry or workgroup.

Benefits of Grid Computing


When you deploy a grid, it will be to meet a set of business requirements. To
better match grid computing capabilities to those requirements, it is useful to
keep in mind some common motivations for using grid computing.
- Exploiting under utilized resources
One of the basic uses of grid computing is to run an existing application on a
different machine. The machine on which the application is normally run might be
unusually busy due to a peak in activity. The job in question could be run on an
idle machine elsewhere on the grid.
- Parallel CPU capacity
The potential for massive parallel CPU capacity is one of the most common
visions and attractive features of a grid. A CPU-intensive grid application can be thought of as many smaller sub-jobs, each executing on a different machine in the grid.
- Virtual resources and virtual organizations for collaboration
Another capability enabled by grid computing is to provide an environment for
collaboration among a wider audience. Grid computing can take these capabilities to an even wider audience, while offering important standards that enable very heterogeneous systems to work together to form the image of a large virtual computing system offering a variety of resources.
- Access to additional resources
In addition to CPU and storage resources, a grid can provide
access to other resources as well. The additional resources can be provided in
additional numbers and/or capacity.
- Resource balancing
A grid federates a large number of resources contributed by individual machines
into a large single-system image. For applications that are grid-enabled, the grid
can offer a resource balancing effect by scheduling grid jobs on machines with
low utilization.
- Reliability
High-end conventional computing systems use expensive hardware to increase
reliability. They are built using chips with redundant circuits that vote on results,
and contain logic to achieve graceful recovery from an assortment of hardware
failures.
- Management
The goal to virtualize the resources on the grid and more uniformly handle
heterogeneous systems will create new opportunities to better manage a larger,
more distributed IT infrastructure. It will be easier to visualize capacity and
utilization, making it easier for IT departments to control expenditures for
computing resources over a larger organization.


Sunday, March 7, 2010

Different types of computer virus

A parasitic program written intentionally to enter a computer without the user's permission or knowledge. The word parasitic is used because a virus attaches to files or boot sectors and replicates itself, thus continuing to spread.
Many people are confused about different types of computer virus. The term computer virus is often used broadly to cover several types of malicious programs, including viruses, worms and Trojan horses. Each of them shares some similarities and some subtle differences.

- Computer Viruses : Computer viruses are parasitic programs that can replicate and spread to other computers. Computer virus needs a host program to run, so it often attaches itself to executable files. The virus codes run once you open the executive files. Computer viruses are spread by sharing infected files or email attachments.

- Computer worms : They can also replicate themselves, but unlike computer viruses, worms are self-contained. They can run and spread without being part of a host program. Worms spread at enormous speed in the network.

- Trojan horses : Trojan horses are hidden codes embedded within a legitimate program. Trojan horses are run without your knowledge, they can damage your files or create security leak in your system, allowing unauthorized users to access your computer. Unlike viruses and worms, they usually do not replicate themselves.


Thursday, March 4, 2010

Antivirus Software - Signature based detection

Antivirus software is a computer program that detects, prevents, and takes action to disarm or remove malicious software programs, such as viruses and worms. Computer viruses are software programs that are deliberately designed to interfere with computer operation, record, corrupt, or delete data, or spread themselves to other computers and throughout the Internet.

There are several methods which antivirus software can use to identify malware :

Signature Based Detection


It is the most common method that anti-virus software uses to identify malware. This method is somewhat limited by the fact that it can only identify a limited amount of emerging threats, e.g. generic, or extremely broad, signatures.
Advantages :
- The signatures are easy to develop and understand if you know what network behavior you're trying to identify.
- The events generated by a signature-based IDS can very precisely inform you about what caused the alert.
- Signature based rules are based on Pattern matching, and with modern day systems pattern-matching can be performed very quickly.
- If your network is only having DNS, HTTP and SMTP traffic, all other signatures can be removed from the policy files.

Disadvantages :
- Signature based IDS can only detect known attacks, a signature must be created for every attack, and 0-day attacks cannot be detected.
- Signature based IDS systems are also prone to false positives since they are commonly based on regular expressions and string matching.
- Since they are based on pattern match, signatures usually don't work that great against attacks with self-modifying behavior.


Tuesday, March 2, 2010

Ethernet Hubs

A hub connects multiple devices together. Ethernet hubs, and are most commonly used in computers for networking purposes. Ethernet hubs are available in different types, depending on the speed of the network connection or broadband speed. The number of ports an Ethernet hub supports also varies. Older Ethernet hubs were relatively large in size and sometimes noisy as they contained built in fans for cooling the unit. Newer devices are much smaller, designed for mobility, and noiseless.

Working of an Ethernet Hub


The main purpose of the Ethernet hub is to transmit the large pockets or cluster of data it receives from one computer onto another through all the ports connected to it. Ethernet uses a protocol called CSMA/CD, which stands for Carrier Sense, Multiple Access with Collision Detection.

- Carrier Sense - When a device connected to an Ethernet network wants to send data it first checks to make sure it has a carrier on which to send its data.
- Multiple Access - This means that all machines on the network are free to use the network whenever they like so long as no one else is transmitting.
- Collision Detection - A means of ensuring that when two machines start to transmit data simultaneously, that the resultant corrupted data is discarded, and re-transmissions are generated at differing time intervals.


Monday, March 1, 2010

Hubs and their types

Hubs have become an integral part of various network and business systems. Hub, sometimes referred to as a concentrator or repeater Hub, refers to a networking component which acts as a convergence point of a Network, allowing the transfer of data packets.

Characteristics of Hubs :
- Hub is a small plastic box which takes its power from an ordinary wall outlet.
- Multiple computers are joined through a hub.
- On this network segment, all computers can communicate directly with each other.
- A hub includes a series of ports that each accept a network cable.
- Hubs are the layer 1 devices while switches and routers are layer 2 and layer 3 devices respectively.
- Hubs do not read any of the data passing through them and are not aware of their source or destination. Essentially, a hub simply receives incoming packets, possibly amplifies the electrical signal, and broadcasts these packets out to all devices on the network - including the one that originally sent the packet.

Types of Hubs :
- Passive Hubs : They do not amplify the electrical signal of incoming packets before broadcasting them out to the network. Their contribution in enhancing the performance is very less. It does not help in any way in the troubleshooting operations. Most of the passive hubs are easily obtainable at a lesser cost.
- Active Hubs : They amplify the incoming signals. An active hub is sometimes referred to as multiport repeater. An active hub takes a larger role in Ethernet communications with the help of technology called store & forward. If the data received being weak but readable, the active hub restores the signal before rebroadcasting the same. An active hub provides information n devices on the network which are not yet fully functional.
- Intelligent Hubs : This hub typically behaves like a stack. It is built in such a way that multiple units can be placed one on top of the other to conserve space. It has the ability to manage the network from one central location. With the help of an intelligent hub, one can easily identify, diagnose problems and even come up with remedial solutions.


Saturday, February 20, 2010

Bus Network Topology

A bus network is an arrangement in a local area network (LAN) in which each node (workstation or other device) is connected to a main cable or link called the bus. Bus networks are the simplest way to connect multiple clients, but may have problems when two clients want to transmit at the same time on the same bus. A true bus network is passive – the computers on the bus simply listen for a signal; they are not responsible for moving the signal along.
The bus topology makes the addition of new devices straightforward. The term used to describe clients is station or workstation in this type of network. Bus network topology uses a broadcast channel which means that all attached stations can hear every transmission and all stations have equal priority in using the network to transmit data.

Bus Network Topology

Advantages :
* Easy to implement and extend.
* Well-suited for temporary or small networks not requiring high speeds (quick setup).
* Cheaper than other topologies.
* Cost effective; only a single cable is used.
* Easy identification of cable faults.
* Reduced weight due to fewer wires.

Disadvantages :
* Limited cable length and number of stations.
* If there is a problem with the cable, the entire network goes down.
* Maintenance costs may be higher in the long run.
* Performance degrades as additional computers are added or on heavy traffic.
* Proper termination is required.
* Significant Capacitive Load.
* It works best with limited number of nodes.
* It is slower than the other topologies.


Friday, February 19, 2010

In a ring network, every device has exactly two neighbors for communication purposes. All messages travel through a ring in the same direction (effectively either "clockwise" or "counterclockwise"). A failure in any cable or device breaks the loop and can take down the entire network. To implement a ring network we use the Token Ring technology. A Token is passed from one computer to another which enables each computer to have equal access to the network.
Because a ring topology provides only one pathway between any two nodes, ring networks may be disrupted by the failure of a single link. A node failure or cable break might isolate every node attached to the ring. Each packet is sent around the ring until it reaches its final destination. Today, the ring topology is seldom used.

Ring Toplogy Network

Advantages of Ring Network :
* Very orderly network where every device has access to the token and the opportunity to transmit.
* Performs better than a star topology under heavy network load.
* Can create much larger network using Token Ring.
* Does not require network server to manage the connectivity between the computers.

Disadvantages of Ring Network :
* One malfunctioning workstation can create problems for the entire network.
* Moves, adds and changes of devices can affect the network.
* Much slower than an Ethernet network under normal load.


Wednesday, February 17, 2010

Hierarchical or Tree Network Topology

In its simplest form, only hub devices connect directly to the tree bus, and each hub functions as the "root" of a tree of devices. This bus/star hybrid approach supports future expandability of the network much better than a bus (limited in the number of devices due to the broadcast traffic it generates) or a star (limited by the number of hub connection points) alone.
This type of topology suffers from the same centralization flaw as the Star Topology. If the device that is on top of the chain fails, consider the entire network down.Obviously this is impractical and not used a great deal in real applications.Each node in the network having a specific fixed number, of nodes connected to it at the next lower level in the hierarchy, the number, being referred to as the 'branching factor' of the hierarchical tree.

- A network that is based upon the physical hierarchical topology must have at least three levels in the hierarchy of the tree, since a network with a central 'root' node and only one hierarchical level below it would exhibit the physical topology of a star.
- The total number of point-to-point links in a network that is based upon the physical hierarchical topology will be one less than the total number of nodes in the network.
- If the nodes in a network that is based upon the physical hierarchical topology are required to perform any processing upon the data that is transmitted between nodes in the network, the nodes that are at higher levels in the hierarchy will be required to perform more processing operations on behalf of other nodes than the nodes that are lower in the hierarchy. Such a type of network topology is very useful and highly recommended.

Hierarchical Network Topology


Tuesday, February 16, 2010

Topology in Distributed systems

The sites in the system can be connected physically in a variety of ways. While choosing a topology, following criteria should be kept in mind : Basic cost, Communication cost and Reliability.

Mesh Networks : The value of fully meshed networks is proportional to the exponent of the number of subscribers, assuming that communicating groups of any two endpoints, up to and including all the endpoints.

- Fully Connected Networks
The fully-connected connected network topology, also referred to as a mesh topology, requires that all the terminals be connected to all the other terminals, as it's name implies.
Advantages: A fault in one terminal on the network will not effect the rest, as the data has multiple redundancy paths, depending on the size of the network, that are open to it.When network usage is high, data packets can be transmitted via different cables, thereby reducing network clogging - keeping data transfer rates at an acceptable level.
Disadvantage : A large amount of cabling is required.

Fully Connected Networks

- Partially connected Networks
The type of network topology in which some of the nodes of the network are connected to more than one other node in the network with a point-to-point link – this makes it possible to take advantage of some of the redundancy that is provided by a physical fully connected mesh topology without the expense and complexity required for a connection between every node in the network.
In most practical networks that are based upon the physical partially connected mesh topology, all of the data that is transmitted between nodes in the network takes the shortest path (or an approximation of the shortest path) between nodes, except in the case of a failure or break in one of the links, in which case the data takes an alternative path to the destination.

Partially Connected Network


Monday, February 15, 2010

Overview Of Distributed Systems

A distributed system is a collection of processors that do not share memory or clock. Each of the process has its own clock and memory and the processors communicate with each other through various communication lines. These processors are referred to by different names such as sites, machines, hosts, nodes, computers and so on.
A distributed system provides the user with access to various resources that the system maintains. A distributed system must provide various mechanisms for process synchronization and communication, for dealing with the deadlock problem, and other failures which are not encountered in a centralized system.

There are 4 reasons for building distributed systems :
- Resource sharing : If a number of different sites are connected to one another, then a user at one site may be able to use the resources available at another.
- Computation speedup : If a computation can be partitioned into sub computations that can run concurrently, availability of a distributed system may allow us to distribute the computation among various sites, to run the computation concurrently.
- Reliability : If one site fails in distributed system, the remaining sites can potentially continue operating. The failure of the site must be detected by the system and the appropriate action may be needed to recover from failure.
- Communication : Information can be exchanged when several sites are connected to one another by a communication network.

The advantage of a distributed system is that these functions can be carried over great distances.


Facebook activity