Client-Server Architecture and Software Licenses: An Overview

Client-Server Architecture

Overview

The client-server model aims to provide usability, flexibility, scalability, interoperability, and effective communication. It’s an extension of modular programming where software modules are separated for easier development and maintenance.

Client (Front-End)

The client process allows users to formulate requests and send them to the server. Its functions include:

  • Managing the user interface
  • Interacting with the user
  • Processing application logic and performing local validation
  • Generating database requests
  • Receiving results from the server
  • Formatting results

Server (Back-End)

The server process handles requests from multiple clients for resources it manages. Its functions include:

  • Accepting database requests from clients
  • Processing database requests
  • Formatting data for transmission to clients
  • Processing application logic and performing database validation

Characteristics of Client/Server Architecture

  • Combines a client that interacts with the user and a server that interacts with shared resources.
  • The client process provides the interface between the user and the system.
  • The server process manages shared resources like databases, printers, and modems.

Software Licenses

Definitions

A license is a contract between a software developer (holding intellectual property and copyright) and the user, defining their rights and obligations. The developer chooses the license under which the software is distributed.

A patent grants exclusive rights to an inventor for a new product, allowing industrial exploitation for a limited time.

Copyright protects authors of original literary, dramatic, musical, artistic, and intellectual works, both published and unpublished.

Types of Software Licenses

Free Software

  • Allows running the program for any purpose.
  • Permits studying and adapting the program.
  • Enables redistribution of copies.
  • Allows improving the program and releasing improvements to the public.

Open Source Software

  • Free distribution
  • Includes source code
  • Allows modifications and derivative works under the same conditions
  • Maintains integrity of the author’s source code
  • No discrimination against persons or groups
  • No field of activity restrictions
  • Rights apply to all redistributed software without additional conditions
  • Technology-neutral license

Open Standard

  • Availability
  • Maximizes end-user options
  • No deployment fees
  • No discrimination
  • Permits extension or restriction
  • Avoids predatory practices

Other License Types

  • Public Domain Software: Not protected by copyright.
  • Copyleft Software: Free software with distribution terms preventing redistributors from adding restrictions.
  • Semi-Free Software: Non-free software with permission for non-profit private use, copying, distribution, and modification.
  • Freeware: Allows redistribution but not modification (source code may be unavailable).
  • Shareware: Allows redistribution but requires a license fee for continued use.
  • Proprietary Software: Use, redistribution, or modification is prohibited or requires permission.
  • Commercial Software: Developed for profit.

Free Software Development

Ethical Motivation

The Free Software Foundation believes software is knowledge and should be freely distributed. Concealing it is considered antisocial, and modifying software is a form of freedom of expression.

Pragmatic Motivation

The Open Source Initiative highlights the technical and economic advantages of open-source software, avoiding the term “free” to prevent confusion with “free of charge.”