Title: Distributed Systems
1Distributed Systems
2Instructor
- Eng. Mohammad Sharaf
- Email sharaf_at_najah.edu
3Course Summary
- This course is intended to apply Java to
distributed programming. - The course will consist of
- Java as the language for building distributed
applications.
4Java, a general-purpose OOP language
- Java is a great advance over C as a general
purpose object oriented programming language. - Java is a much easier language to learn than
C. - Java has shed the enormous burden imposed by C
on the developer in the form of memory
management.
5Prerequisites
- There are no formal prerequisites for this
course, but there are some requirements of common
sense. - Prior knowledge of OOP, OS and NWs is a decided
advantage
6 Requirements
- Three home works.
- 3 home works will be devoted to modeling an ATM
(standing for "automatic teller machine", not the
network protocol called "asynchronous transfer
mode"). -
- Term project, the ATM problems will use your Java
knowledge for building a distributed system, in
which the bank and the ATM are remote from one
another.
7 Requirements (CONT)
- No particular hardware or software platform is
required. You must have a computing environment.
You don't even need a network, since your
processes can all be on one machine, connected by
network protocol to your "localhost."
8Text Books
- Recommended books, you might even consider doing
without a textbook and relying instead on the
tutorials available from Sun's website. - Core Java 2, Vol. I Fundamentals Horstmann,
Cornell. Prentice Hall, 2002. ISBN 0130471771. - Sun tutorials
9Text Books (CONT)
- The Java doc pages for Java. Java itself has
such a web of pages describing all the classes
that make up the standard Java libraries. - For Part II, Distributed Programming
- Advanced Java Networking, Dick Steflik, Prshant
Sridharan, Prentice Hall (www.phptr.com) ISBN
0-13-084466-7 - Core Java 2, Volume II Advanced Features, 5th
Edition, Cay Horstmann, Gary Cornell, 1998, ISBN
1-56592-206-9.Core Java 2, Vol. II
10Software
- There is no specific requirement for software in
this course. One needs a Java computing
environment, of course, which means a version of
the JDK (Java Developers Kit). - To establish a computing environment it makes
sense to use an IDE (Integrated Development
Environment). There are several in wide use,
including J-Builder from Inprise (formally
Borland), and Visual Age from IBM.
11Software (CONT)
- Three products bear mention
- JBuilder from Borland, free home trial,
bothersome registration required. - Visual Cafe Standard Edition 4.1 It's free if you
are brave enough to give them marketing
information. - NetBeans NetBeans is a modular, standards-based
integrated development environment (IDE), written
in Java. - Sun Microsystems has released its own IDE
- Forte For Java. The Community edition is free
12The contents grouped in sections
- Java
- Threads
- Characterization of Distributed Systems
- Introduction
- Examples of Distributed Systems
- System Models
- Architectural Models
- Fundamental Models
- Distributed Computing
- Remote Method Invocation (RMI).
- Common Object Request Broker Architecture
(CORBA) - Internet security
13Evaluation
- 30 -- Homework and Programming Assignment
- 20 -- Term Project and class participation
- 20 -- Quizzes and Class participation
- 30 -- final exam
14Distributed system, distributed computing
- Early computing was performed on a single
processor. Uni-processor computing can be called
centralized computing. - A distributed system is a collection of
independent computers, interconnected via a
network, capable of collaborating on a task. - Distributed computing is computing performed in a
distributed system.
15Distributed Systems
16Examples of Distributed systems
- Network of workstations (NOW) a group of
networked personal workstations connected to one
or more server machines. - The Internet
- An intranet a network of computers and
workstations within an organization, segregated
from the Internet via a protective device (a
firewall).
17Example of a large-scale distributed system
eBay (Source Los Angeles Times.)
18An example small-scale distributed system
(Source Los Angeles Times.)
19Computers in a Distributed System
- Workstations computers used by end-users to
perform computing - Server machines computers which provide
resources and services - Personal Assistance Devices handheld computers
connected to the system via a wireless
communication link.
20Centralized vs. Distributed Computing
21Monolithic mainframe applications vs. distributed
applicationsbased on http//www.inprise.com/visibr
oker/papers/distributed/wp.html
- The monolithic mainframe application
architecture - Separate, single-function applications, such as
order-entry or billing - Applications cannot share data or other resources
- Developers must create multiple instances of the
same functionality (service). - Proprietary (user) interfaces
- The distributed application architecture
- Integrated applications
- Applications can share resources
- A single instance of functionality (service) can
be reused. - Common user interfaces
22Evolution of paradigms
- Client-server Socket API, remote method
invocation - Distributed objects
- Object broker CORBA
- Network service Jini
- Object space JavaSpaces
- Mobile agents
- Message oriented middleware (MOM) Java Message
Service - Collaborative applications
23Why distributed computing?
- Economics distributed systems allow the pooling
of resources, including CPU cycles, data storage,
input/output devices, and services. - Reliability a distributed system allow
replication of resources and/or services, thus
reducing service outage due to failures. - The Internet has become a universal platform for
distributed computing.
24The Weaknesses and Strengths of Distributed
Computing
- In any form of computing, there is always a
tradeoff in advantages and disadvantages - Some of the reasons for the popularity of
distributed computing - The affordability of computers and availability
of network access - Resource sharing
- Scalability
- Fault Tolerance
25The Weaknesses and Strengths of Distributed
Computing
- The disadvantages of distributed computing
- Multiple Points of Failures the failure of one
or more participating computers, or one or more
network links, can spell trouble. - Security Concerns In a distributed system, there
are more opportunities for unauthorized attack.
26Distributed Computing and Three-Tiered
Architecture
- A distributed application consists of
collaborating objects residing on separate nodes
of a network. - The application, considered as a whole, is the
sum total of the running processes that
participate in providing the services of the
application, where the processes are distributed
across multiple machines connected by a network.
27Distributed Computing and Three-Tiered
Architecture (cont)
- RMI (Remote Method Invocation) is a facility for
accessing remote objects, i.e. objects living in
other Java virtual machines, typically on other
(actual) machines. - CORBA (Common Object Request Broker Architecture)
is a standard architecture for distributed object
collaboration, together with a standard
communication protocol for inter object
communication, - that enables remote-object-access in a
language-independent way.
28Distributed Computing and Three-Tiered
Architecture (cont)
- DCOM (Distributed Component Object Model) is a
protocol that enables software components to
communicate directly over a network in a
reliable, secure, and efficient manner.