Distributed systems allow components located on networked computers to communicate and coordinate by passing messages without sharing memory. This presentation discusses distributed systems, their history, types including distributed computing systems like clusters and grids, distributed information systems, and distributed pervasive systems. It also covers middleware technologies like RPC, CORBA, COM/DCOM, and RMI that provide location transparency. Finally, it discusses distributed databases that split data across multiple locations and using JDBC and RMI to connect and query distributed databases.
2. Distributed system
• A Distributed system
has components
located at networked
computers that
communicate and
coordinate by passing
messages and do not
share the common
memory.
• Relation b/w distributed system
and computer architecture
Computer
Architecture
Tightly
Couple
Loosely
Couple
Distributed
System
3. 3As
• ABOUT:
What is DS about?
Fault tolerance
• Awesome:
Heterogeneity of components
Openness
Scalability
Failure handling
Concurrency of components
Transparency
That’s why it every where
Google , Amazon cloud , Skype ,Facebook , bit torrent, www, intranet
• Aware:
Have to awareness of this field.
4. HISTORY
1945-1980
− Computers were large and expensive.
− No way to connect them.
− All systems were Centralized Systems.
Mid-1980s
− Powerful microprocessors.
− High Speed Computer Networks (LANs , WANs).
7. DISTRIBUTED COMPUTING SYSTEMS
Cluster Computing Systems
• Goal: High performance computing tasks.
Cluster Computing Systems:
A computer cluster consists of a set of loosely or tightly
connected computers that work together so that, in many
respects, they can be viewed as a single system. Unlike
grid computers, computer clusters have each node set to
perform the same task, controlled and scheduled by software.
Most common use: a single program is run in
parallel on multiple machines
8. DISTRIBUTED COMPUTING SYSTEMS
Grid Computing Systems
Grid Computing Systems:
Contrary to clusters, grids are usually composed of
different types of computers (hardware, OS, network,
security, etc.)
At its most basic level, grid computing is a computernetwork in
which each computer's resources are shared with every
other computer in the system. Processing power, memory and data
storage are all community resources that authorized users can tap
into and leverage for specific tasks
Resources from different organizations are brought
together to allow collaboration
Examples: WWW…
9. DISTRIBUTED INFORMATION SYSTEMS
• Goal: Distribute information across several
Servers.
− Remote processes called Clients access the
servers to manipulate the information
− Different communication models are used. The
most usual are RPC (Remote Procedure Calls)
and the object oriented RMI (Remote Method
Invocations)
11. DISTRIBUTED PERVASIVE SYSTEMS
− These are the distributed systems involving
mobile and embedded computer devices like
Small, wireless, battery-powered devices (
smart phones, sensors, wireless surveillance
cams, portable ECG monitors, etc.)
− These systems characterized by their
“instability” when compared to more
“traditional” distributed systems
12. DISTRIBUTED PERVASIVE SYSTEMS
−Pervasive Systems are all around us, and
ideally should be able to adapt to the lack of
human administrative control:
Automatically connect to a different network;
Discover services and react accordingly;
Automatic self configuration (E.g.: UPnP –
Universal Plug and Play)…
− Examples: Home Systems, Electronic Health
Care Systems, Sensor Networks, etc.
17. CORBA
• Problem in distributed
system.
1-Different operating system.
2-Different languages.
Solution:
Common request broker
architecture.
• Goal:
Provide language
independency
Platform independent.
18.
19.
20. COM/DCOM
• COM/DCOM (Distributed Component Object Model)
is a set of Microsoft concepts and program interfaces
in which client program object s can request services
from server program objects on other computers in a
network.
• Goal:
Language independence
VC++ ,VB , VBScript
21.
22. RMI
• The RMI (Remote Method Invocation)
provides a mechanism to create distributed
application in java. The RMI allows an object
to invoke methods on an object running in
another JVM.
• Goal:
Platform independency
23.
24. Stub
• The stub is an object, acts as a gateway for the client side. All
the outgoing requests are routed through it. It resides at the
client side and represents the remote object. When the caller
invokes method on the stub object, it does the following
tasks:
• It initiates a connection with remote Virtual Machine (JVM),
• It writes and transmits (marshals) the parameters to the
remote Virtual Machine (JVM),
• It waits for the result
• It reads (unmarshals) the return value or exception, and
• It finally, returns the value to the caller.
25. Skeleton
• The skeleton is an object, acts as a gateway for the
server side object. All the incoming requests are
routed through it. When the skeleton receives the
incoming request, it does the following tasks:
• It reads the parameter for the remote method
• It invokes the method on the actual remote object,
and
• It writes and transmits (marshals) the result to the
caller.
26. Distributed Database
• A distributed database (DDB) is a collection of multiple,
logically interrelated databases. distributed over a computer
network.
• A distributed database management system (DDBMS) is the
software that manages the DDB and provides an access
mechanism that makes this distribution transparent to. the
users.
27.
28. Centralize vs. distributed database
• Centralize
A single central database
accessed by multiple
users.
+ Easier to organise, edit,
query and backup.
- Can be slower because
of high usage / load.
29. Centralize vs. distributed database
• Distributed
Database split into multiple
files.
+ Data access and retrieval
faster at nearest points
- Need to be ensure data is
consistent / synchronised
30. JDBC
• Java JDBC is a java API to connect and execute query with the
database. JDBC API uses jdbc drivers to connect with the
database.
• The JDBC API consists of the following core parts:
• JDBC Drivers
• Connections
• Statements
• Result Sets
31. JDBC
• There are four basic JDBC use cases around which most JDBC work
evolves:
Query the database (read data from it).
Update the database.
Perform transactions.
32. JDBC- Drivers
A JDBC driver is a collection of Java classes that
enables you to connect to a certain database.
For instance, MYSQL will have its own JDBC
driver. A JDBC driver implements a lot of the
JDBC interfaces. When your code uses a given
JDBC driver, it actually just uses the standard
JDBC interfaces. The concrete JDBC driver used
is hidden behind the JDBC interfaces.
33. JDBC-CONNECTIONS
• Once a JDBC driver is loaded and initialized,
you need to connect to the database. You do
so by obtaining a Connection to the database
via the JDBC API and the loaded driver. All
communication with the database happens
via a connection. An application can have
more than one connection open to a database
at a time.
34. JDBC-STATEMENTS
• A Statement is what you use to execute
queries and updates against the database.
There are a few different types of statements
you can use. Each statement corresponds to a
single query or update.
35. JDBC-RESULT SETS
• When you perform a query against the database you
get back a Result Set. You can then traverse
this Result Set to read the result of the query.