Wednesday, 29 January 2014

DISTRIBUTED COMPUTING (DCI)



DISTRIBUTED COMPUTING (DCI)

Distributed Computing refers to a computer science field that researches distributed systems. A distributed system includes various computers that connect and communicate by means of a computer network. The computers communicate with one another to accomplish a common goal.

Distributed computer systems include several software components that are installed in various computers but operate as an individual system. The computers operating in a distributed system can be physically close and connected using a local network. Or, they can be geographically distant and connected using a wide area network.

Distributed systems include various possible configurations, such as personal computers, mainframes, minicomputers, workstations, etc. A computer program that operates in a distributed system is known as a distributed program, whereas the procedure for writing such programs are called distributed programming.

Distributed systems provide several benefits compared to centralized systems. These include:
  • Scalability: The distributed system can be easily extended with the addition of more machines as required.
  • Redundancy: Many machines can offer the same services. Therefore, even if one machine is unavailable, the tasks are unaffected. In addition, due to the use of many smaller machines, this redundancy is relatively inexpensive.
Distributed computing systems could operate on hardware provided by multiple vendors. It can make use of many different standards-based software components. These systems are self-sufficient and do not rely too much on the fundamental software. They are able to use a variety of communications protocols as well as operate on multiple operating systems. In order to carry out inter-machine communications, they use TCP/IP or SNA on Ethernet or Token Ring.
Computers used in distributed computing make use of a client-server model.
Curled from Techopedia

DISTRIBUTED COMPUTING SYSTEM (DCS)



WHAT IS DISTRIBUTED COMPUTING SYSTEM?


Distributed Computing is a computing concept that, in its most general sense, refers to multiple computer systems working on a single problem. In distributed computing, a single problem is divided into many parts, and each part is solved by different computers. As long as the computers are networked, they can communicate with each other to solve the problem. If done properly, the computers perform like a single entity.
The ultimate goal of distributed computing is to maximize performance by connecting users and IT resources in a cost-effective, transparent and reliable manner. It also ensures fault tolerance and enables resource accessibility in the event that one of the components fails.

The idea of distributing resources within a computer network is not new. This first started with the use of data entry terminals on mainframe computers, then moved into minicomputers and is now possible in personal computers and client-server architecture with more tiers.
A distributed computing architecture consists of a number of client machines with very lightweight software agents installed with one or more dedicated distributed computing management servers. The agents running on the client machines usually detect when the machine is idle and send a notification to the management server that the machine is not in use and available for a processing job. The agents then requests an application package. When the client machine receives this application package from the management server to process, it runs the application software when it has free CPU cycles and sends the result back to the management server. When the user returns and requires the resources again, the management server returns the resources was using to perform different tasks in the user's absence.

NB: Don't take Distributed Computing System for Distributed Control System.
Distributed Control System (DCS) refers to a control system usually of a manufacturing system process or any kind of dynamic system, in which the controller elements are not central in location (like the brain) but are distributed throughout the system with each component sub-system controlled by one or more controllers.

Monday, 27 January 2014

THOUSANDS OF LINES OF CODE (KLOC)

DEFINING THOUSANDS OF LINES OF CODE (KLOC)

Thousands (Kilos) of Lines of Code (KLOC) is a measure used to evaluate the size of a software program. KLOCs are often used to estimate the required time for a team to build a project. 

TECHOPEDIA EXPLAINS THOUSANDS OF LINES OF CODE (KLOC)

KLOC is sometimes used to measure team productivity. In theory, a measure like KLOC enables development firms to calculate the efficiency per developer.

That being said, most developers would believe that such measures are at best simplistic, and at worst outright useless. In many ways, a more productive developer will write less code to solve a problem in a more elegant manner. Developers aren't workers in a factory producing widgets. Anybody who thinks they can measure developer productivity by lines of code has clearly never written a line of code themselves.