0% found this document useful (0 votes)
8 views8 pages

Principles of Parallel & Distributed Computing

Uploaded by

Mgm Mallikarjun
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views8 pages

Principles of Parallel & Distributed Computing

Uploaded by

Mgm Mallikarjun
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

CHAPTER-2

PRINCIPLES OF PARALLEL & DISTRIBUTED COMPUTING


What is Parallel Processing?
Parallel computing is a type of computing architecture in which several processors
simultaneously execute multiple, smaller calculations broken down from an overall
larger, complex problem.
ELEMENTS OF PARALLEL COMPUTING:

HARDWARE ARCHITECTURES FOR PARALLEL PROCESSING


Computing system are classified into the following four categories:
1. Single Instruction Single Data
2. Single Instruction Multiple Data
3. Multiple Instruction Single Data
4. Multiple Instruction Multiple Data

1. Single Instruction Single Data

1
2. Single Instruction Multiple Data

3. Multiple Instruction Single Data

2
4. Multiple Instruction Multiple Data

COMPONENTS OF DISTRIBUTED SYSTEM:


• It is the result of the interaction of several components

• That traverse the entire computing stack from hardware to software.

• It appears from the collaboration of several elements that- by working together- give users
the illusion of a single coherent system.

• The figure provides an overview of the different layers that are involved in providing the
services of a distributed system.

• At the very bottom layer, computer and network hardware constitute the physical
infrastructure; these components are directly managed by OS, which provides the basic
services for inter process communication (IPC), process scheduling and management, and
3
resource management in terms of file system and local devices.

• Specialized software is deployed to turn a set of networked computers into a distributed


system.

ARCHITECTURAL STYLES FOR DISTRIBUTED COMPUTING

– Architectural styles are mainly used to determine components and connectors.

The architectural styles are classified into two major classes.

– Software Architectural styles: Relates to the logical organization of the software.

– System Architectural styles: styles that describe the physical organization of distributed
software systems in terms of their major components.

4
[Link] AND CONNECTORS:
• A connector is a communication mechanism that allows cooperation and
coordination among components. connectors are not encapsulated in a single entity,
but they are implemented in a distributed manner over many system components.
• Components can be individual nodes.
• Important components in the architecture whereas connectors are the ones that
connect each of these components.
• Component: A modular unit with well-defined interfaces; replaceable; reusable
• Connector: A communication link between modules which mediates coordination or
cooperation among components.
2 SOFTWARE ARCHITECTURAL STYLES:
• These are based on the logical arrangement of software components.
• They are helpful because they provide an intuitive view of whole system, despite its
physical deployment.
• They also identify the main abstractions that are used to shape the components of the
system and the expected interaction patterns between them.

3 DATA-CENTERED ARCHITECTURE
• Data is centralized and accessed frequently by other components, which modify data.
The main purpose of this style is to achieve completeness of data. Data-centered
architecture consists of different components that communicate through shared data
repositories (central location where data is stored & managed).
• The most well-known examples of data-centered architecture is a database
architecture, in which the common database schema is created with data definition
protocol.
– for example, a set of related tables with fields and data types in an RDBMS.
5
SERVICE-ORIENTED COMPUTING
SOA is an architectural style supporting service orientation. It organizes a software system into a
collection of interacting services. SOA-based computing packages functionalities into a set of
interoperable services, which can be integrated into different software systems belonging to
separate business domains.

There are two major roles within SOA: The service provider and The service consumer.

• Standardized service contract. It is specified through one or more service description


documents.

• Loose coupling. Services are designed as self-contained components, maintain relationships


that minimize dependencies on other services, and only require being aware of each other.
Service contracts will enforce the required interaction among services. This simplifies the
flexible aggregation of services and enables a more agile design strategy that supports the
evolution of the enterprise business.

• Abstraction. A service is completely defined by service contracts and description documents.


They hide their logic, which is encapsulated within their implementation The use of service
description documents and contracts removes the need to consider the technical implementation
details and provides a more
intuitive framework to define software systems within a business context.
• Reusability. Designed as components, services can be reused more effectively, thus reducing
development time and the associated costs. Reusability allows for a more agile design and cost-
effective system implementation and deployment.
Therefore, it is possible to leverage third-party services to deliver required functionality by
paying an appropriate fee rather developing the same capability in-house.

• Autonomy. Services have control over the logic they encapsulate and, from a service
consumer point of view, there is no need to know about their implementation.

• Lack of state. By providing a stateless interaction pattern (at least in principle), services
increase the chance of being reused and aggregated, especially in a scenario in which a single
service is used by multiple consumers that belong to different administrative and business
domains.

•Discoverability. Services are defined by description documents that constitute supplemental


metadata through which they can be effectively discovered. Service discovery provides an
effective means for utilizing third-party resources.

• Composability. Using services as building blocks, sophisticated and complex operations can be
implemented. Service orchestration and choreography provide a solid support for composing
6
services and achieving business goals.

WEB SERVICES:
Web services are the technology for implementing SOA systems and applications. They
leverage Internet technologies and standards for building distributed systems. First, they
allow for interoperability across different platforms and programming languages. Second,
they are based on well-known and vendor-independent standards such as HTTP, SOAP,
XML. Third, they provide an intuitive and simple way to connect various software
systems, enabling the quick composition of services in a distributed environment. Finally,
they provide the features required by enterprise business applications. The concept behind
a Web service is very simple. Using as a basis the object-oriented abstraction, a Web
service exposes a set of operations that can be invoked by leveraging Internet-based
protocols. HTTP is the most popular transport protocol used for interacting with Web
services.

7
SERVICE ORIENTATION AND CLOUD COMPUTING:
Web services and Web 2.0-related technologies constitute a fundamental building block
for cloud computing systems and applications. Web 2.0 applications are the front end of
cloud computing systems, which deliver services either via Web service or provide a
profitable interaction with AJAX-based clients.
The entire IT computing stack—from infrastructure to applications—can be
composed by relying on cloud computing services. Service orientation constitutes a natural
approach to shaping cloud computing systems because it provides a means to flexibly
compose and integrate additional capabilities into existing software systems.
Cloud computing is also used to elastically scale and empower existing software
applications on demand. Service orientation fosters interoperability and leverages
platform-independent technologies by definition. Within this context, it constitutes a
natural solution for solving integration issues and favoring cloud computing adoption.

Common questions

Powered by AI

A data-centered architecture supports data completeness by centralizing data so that it is frequently accessed and modified by different components. This centralized approach ensures that data is complete and up-to-date, as any modifications are made to a central repository, reducing the chances of data inconsistency. In database architectures, this is typically managed through a common database schema with data definition protocols, ensuring that data integrity is maintained as different components interact through shared data repositories .

Key features of Web services that make them suitable for implementing SOA systems include their ability to ensure interoperability across different platforms and programming languages, reliance on well-known and vendor-independent standards like HTTP, SOAP, and XML, and providing simple ways to connect diverse software systems. These services enable the quick composition of services in a distributed environment, crucial for SOA. Furthermore, Web services facilitate the implementation of service orientation by exposing a set of operations that can be invoked using Internet protocols, thereby supporting the flexible integration and interaction of software components .

The four categories of hardware architectures for parallel processing are: Single Instruction Single Data (SISD), Single Instruction Multiple Data (SIMD), Multiple Instruction Single Data (MISD), and Multiple Instruction Multiple Data (MIMD). SISD involves a single instruction operating on a single data set, typical of basic sequential processing. SIMD allows a single instruction to operate on multiple data sets simultaneously, which is efficient for tasks where the same operation is repeated across large datasets, such as in vector processing. MISD involves multiple instructions operating on a single data set, although it's less common and used in specialized situations. MIMD allows multiple instructions to be executed simultaneously on multiple datasets, supporting various parallel processes and is widely used in multiprocessing systems .

Service orientation aids cloud computing in addressing integration issues by providing a framework for flexible composition and integration of additional capabilities into existing software systems. It leverages platform-independent technologies, ensuring interoperability and enabling seamless integration of cloud services with different IT systems. By using service orientation, cloud applications can easily incorporate new functionalities without the need for extensive reconfiguration, supporting scalability and efficient resource utilization. This approach aligns well with the elastic nature of cloud computing, as it allows on-demand scaling and empowers software applications accordingly .

The use of a stateless interaction pattern in Service-Oriented Architecture (SOA) is driven by the need to increase service reusability and simplify service composition across different domains. A stateless design means that services do not maintain any client-specific state between requests, making them easier to reuse by multiple consumers in various contexts. This reduces the complexity of service management, allows for greater scalability, and supports parallel processing by avoiding cross-service state dependencies. In a distributed environment, a stateless approach facilitates load balancing and failover mechanisms, enhancing the robustness and reliability of the architecture .

Connectors in distributed computing architecture play a crucial role by acting as communication mechanisms that enable cooperation and coordination among system components. Unlike components, which are modular units with well-defined interfaces, connectors are not encapsulated within a single entity but rather implemented in a distributed manner over multiple components. They mediate the interactions between components, facilitating the flow of data and control across the system. By efficiently managing these interactions, connectors help maintain the overall coherence and functionality of the distributed system .

In a Service-Oriented Architecture (SOA), the service provider is responsible for creating and offering services that are defined through service contracts and description documents. They encapsulate functionality and make it available to be used by others. On the other hand, the service consumer utilizes the services provided, interacting with them through agreed protocols and contracts that do not require knowledge of the service's implementation details. This separation allows service providers to focus on building and maintaining services while consumers take advantage of these services to build integrated applications. This division of roles facilitates reusability and flexibility in system design .

Service-Oriented Architecture (SOA) promotes flexibility and reusability by organizing software into a collection of interacting services that are loosely coupled. Each service is designed as a self-contained component with a standardized service contract, which reduces dependencies and allows for flexible aggregation into different systems. This structure enables services to be reused across various applications and domains, speeding up development and reducing costs. The emphasis on loose coupling, service abstraction, and reusability allows organizations to integrate third-party services seamlessly without needing to develop new capabilities in-house. SOA's design further supports evolving business requirements, contributing to more agile and resilient software systems .

The primary architectural styles used in distributed computing systems are software architectural styles and system architectural styles. Software architectural styles relate to the logical organization of software, providing an intuitive view of the system and identifying main abstractions and interaction patterns. System architectural styles describe the physical organization of distributed systems in terms of major components, focusing on the distributed arrangement and coordination of these elements. Both styles aim to achieve a structured and coherent design, integrating various components and connectors to form a cohesive distributed system .

Web 2.0 technologies facilitate cloud computing services by providing an interface and interaction model for delivering cloud services over the Internet. They include AJAX-based clients and service-oriented frameworks that enable real-time user interactions and seamless integration with cloud resources. Through these technologies, cloud computing systems can efficiently deliver scalable, responsive, and interactive services. Additionally, Web 2.0 technologies support interoperability, allowing diverse software systems to interact smoothly, thus enhancing the adaptability and integration of cloud services within enterprise IT infrastructures .

You might also like