Study resource

Read at your pace, then save it for later.

Unit 13: Cloud-Based Databases and Computing Paradigms

From Collaborative to the Cloud: A Short History

The evolution of computing paradigms has been driven by the need for more efficient resource utilization, enhanced collaboration, and scalable data processing. From isolated mainframe systems to interconnected global networks, the journey highlights a continuous shift towards distributed, networked, and on-demand computing capabilities.

Introduction to Client-Server Computing

Client-Server computing is a distributed application architecture where tasks are partitioned between service providers (servers) and service requestors (clients). Clients request resources or services, and servers provide them.

  • Key Concepts:
    • Client: A program or device that requests services or resources from a server. Examples include web browsers, email clients, and application front-ends.
    • Server: A program or device that provides services or resources to clients. Examples include web servers, database servers, and file servers.
    • Network: The medium through which clients and servers communicate.
  • How it Works:
    1. The client sends a request for a service or resource to the server.
    2. The server processes the request.
    3. The server sends a response back to the client.
  • Characteristics:
    • Centralized Control: Servers often manage data and resources centrally.
    • Specialization: Clients and servers typically have distinct roles.
    • Scalability: Servers can be upgraded or scaled to handle more client requests.
  • Example: Accessing a website. Your web browser (client) sends a request to a web server for a webpage. The web server processes the request and sends the webpage content back to your browser.

Peer-to-Peer Computing

Peer-to-Peer (P2P) computing is a distributed application architecture that partitions tasks or workloads between peers. Each peer in the network can function as both a client and a server, directly communicating with other peers without the need for a central server.

  • Key Concepts:
    • Peer: A node in the network that acts as both a supplier and consumer of resources.
    • Decentralization: No central server controls the network or resources.
  • How it Works:

    Peers connect directly to each other to share resources (e.g., files, processing power). When a peer needs a resource, it queries other peers. If a peer has the resource, it provides it directly.

  • Characteristics:
    • Decentralized: No single point of failure.
    • Scalability: Can scale easily as more peers join the network.
    • Resource Sharing: Facilitates direct sharing of files, processing power, etc.
  • Example: File sharing applications (e.g., BitTorrent) where users directly share parts of files with each other.

Distributed Computing

Distributed computing involves multiple computers working together as a single system to achieve a common goal. These computers are physically separated but communicate and coordinate their actions by passing messages to each other.

Definition: Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network and are designed to appear to the end-user as a single, coherent system.

  • Key Characteristics:
    • Concurrency: Multiple components can execute simultaneously.
    • No Global Clock: Components operate asynchronously.
    • Independent Failure: Failure of one component does not necessarily stop the entire system.
    • Resource Sharing: Resources like processors, data, and peripherals can be shared among multiple users.
    • Transparency: The distribution of components is hidden from the user, making it appear as a single system.
  • Advantages:
    • Increased Performance: Tasks can be parallelized.
    • High Reliability/Fault Tolerance: If one node fails, others can continue operations.
    • Scalability: More nodes can be added to handle increased load.
    • Resource Sharing: Cost-effective use of hardware and software resources.
  • Example: Large-scale data processing systems (like Hadoop), search engines, financial trading systems.

Grid Computing

Grid computing is a specialized form of distributed computing that focuses on harnessing the unused processing power of geographically dispersed computers to solve complex computational problems. It often involves coordinating resources from multiple administrative domains.

Definition: Grid computing is a form of distributed computing that combines computers from multiple administrative domains to reach a common goal, often to solve a single, large problem or a set of tightly coupled problems.

  • Key Characteristics:
    • Virtual Organization: Resources are shared among participating organizations.
    • Heterogeneous: Involves diverse types of computers, operating systems, and networks.
    • Large Scale: Typically used for highly demanding computational tasks.
    • Autonomy: Each resource retains its own local control.
  • Difference from General Distributed Computing:
    • Grid computing often deals with resource sharing across multiple administrative domains, emphasizing security, resource discovery, and policy management, whereas general distributed computing might operate within a single domain.
    • Grids are typically built for large-scale, high-performance computing problems.
  • Example: Scientific research projects like SETI@home (analyzing radio signals), large-scale simulations in physics, weather modeling.

Collaborative Computing

Collaborative computing, also known as groupware, refers to software and systems designed to help people work together on a common task or project, facilitating communication, coordination, and cooperation.

  • Key Concepts:
    • Shared Workspace: Tools that allow multiple users to view and edit documents or projects simultaneously.
    • Communication: Features for real-time or asynchronous communication.
    • Coordination: Tools for task management, scheduling, and workflow.
  • Examples:
    • Document Collaboration: Google Docs, Microsoft Office 365.
    • Communication Platforms: Email, Slack, Microsoft Teams, Zoom.
    • Project Management Tools: Trello, Jira, Asana.
  • Benefits:
    • Improved team productivity and efficiency.
    • Enhanced communication among team members.
    • Better decision-making through collective input.

Cloud Computing

Cloud computing is an on-demand delivery of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the Internet ("the cloud") to offer faster innovation, flexible resources, and economies of scale.

Definition: Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

— National Institute of Standards and Technology (NIST)
  • Essential Characteristics (NIST):
    • On-demand self-service: Consumers can provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each service provider.
    • Broad network access: Capabilities are available over the network and accessed through standard mechanisms.
    • Resource pooling: The provider's computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand.
    • Rapid elasticity: Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand.
    • Measured service: Cloud systems automatically control and optimize resource usage by leveraging a metering capability at some level of abstraction appropriate to the type of service. Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer.
  • Key Benefits:
    • Cost Savings: Pay-as-you-go model, reduced capital expenditure.
    • Scalability & Elasticity: Easily scale resources up or down based on demand.
    • Global Reach: Deploy applications globally with ease.
    • High Availability & Reliability: Distributed infrastructure often provides higher uptime.
    • Security: Cloud providers invest heavily in security measures.

Functioning of Cloud Computing

The functioning of cloud computing relies on several core technologies and principles to deliver services on demand, primarily leveraging virtualization and a shared infrastructure model.

  1. Virtualization: This is a fundamental technology. Servers are abstracted into multiple virtual machines (VMs). A single physical server can host many VMs, each running its own operating system and applications independently. This allows efficient utilization of hardware resources.
  2. Resource Pooling: Physical and virtual resources (like processing power, storage, network bandwidth) are pooled together and shared among multiple users (tenants). This multi-tenancy allows cloud providers to achieve economies of scale.
  3. On-demand Self-Service: Users can provision computing resources (e.g., launch a virtual server, allocate storage) through a web-based portal or API without direct human interaction from the cloud provider. This enables rapid deployment and scaling.
  4. Broad Network Access: Cloud services are accessible over standard network mechanisms (e.g., the internet) from various client devices (laptops, mobile phones, etc.).
  5. Rapid Elasticity: Cloud resources can be quickly scaled up or down based on demand. This means if an application experiences a sudden surge in traffic, additional resources can be automatically or manually provisioned within minutes and released when no longer needed.
  6. Measured Service: Cloud providers monitor and measure resource usage (e.g., CPU cycles, data storage, bandwidth) to ensure transparency and accurate billing. Users typically pay only for the resources they consume (pay-as-you-go model).
  7. Automation and Orchestration: Extensive automation and orchestration tools manage the underlying infrastructure, provision resources, monitor performance, and ensure high availability, minimizing manual intervention.

Essentially, cloud computing functions by creating a massive, highly automated, and virtualized data center infrastructure that can deliver computing resources as a utility, much like electricity or water.

Differences between Distributed Computing and Cloud Computing

While cloud computing is a form of distributed computing, there are distinct differences in their focus, architecture, and operational models.

FeatureDistributed ComputingCloud Computing
Core ConceptMultiple autonomous computers collaborating to achieve a common goal, appearing as a single system. Focus on breaking down a task across multiple machines.On-demand delivery of computing services (servers, storage, databases, etc.) over the internet. Focus on providing resources as a utility.
Ownership/ManagementResources can be owned and managed by the organization or individual creating the distributed system. High degree of control over hardware and software.Resources are owned and managed by a third-party cloud provider. Users consume services, abstraction from underlying infrastructure.
Resource ProvisioningTypically involves manual setup, configuration, and management of individual nodes.Automated, on-demand self-service provisioning through web portals or APIs. Rapid deployment.
Scalability & ElasticityCan be scaled, but often requires manual intervention and planning to add/remove nodes. Less inherent elasticity.Highly elastic; resources can be scaled up or down rapidly and automatically based on demand.
Cost ModelHigh upfront capital expenditure (CapEx) for hardware and infrastructure. Operational expenditure (OpEx) for maintenance.Primarily operational expenditure (OpEx); pay-as-you-go model, no upfront hardware costs.
FocusSolving complex computational problems by distributing workload across multiple nodes.Providing IT infrastructure and services as a utility, abstracting away underlying hardware and management complexities.
Underlying TechnologyCan use various networking and messaging protocols. May or may not use virtualization extensively.Heavily relies on virtualization, automation, and a multi-tenant architecture.
ExamplesHadoop, SETI@home, grid computing projects.Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP).

xxx

Did this help you understand better?

Your feedback improves the quality of this resource for everyone.