You are on page 1of 17

Bachelor of Information

Technology
Middleware Architecture
IT6505
Teacher’s Notes
Lesson 01

Viraj Brian Wijesuriya


University of Colombo School of Computing
No. 35, Reid Avenue , Colombo 7, Sri Lanka.
1
IT6505 – Course Details

Preamble
• Middleware Architecture is one of the optional courses in BIT
Semester 6.

• The aim of this course is to gain the knowledge on different


middleware architectures and related concepts.

• CREDITS: 03

• FINAL EXAMINATION
– Final exam of the course will be held at the end of the semester.
– It is a two hour structured written paper.

2
IT6505 – Course Details

Outline of Syllabus
1. Network & distributed computing, IT architecture &
middleware and RPC (12 hours).

2. Message queuing (08 hours).

3. Object-oriented middleware (10 hours).

4. Web services (15 hours).

Total for the subject 45

3
IT6505 – Course Details

Learning Outcomes (1)


1. Describe fundamental concepts of Network and Distributed
Computing.

2. Describe IT architecture and Middleware, analyse and compare


different categories of middleware and learn about their
architectural models.

3. Describe and analyse different procedures in RPC (remote


procedure calls).

4. Understand basic message queuing concepts in nexus to


middleware.

4
IT6505 – Course Details

Learning Outcomes (2)


5. Define the functionality and requirements of a Distributed Object.

6. Describe and analyse object-oriented middleware.

7. Describe and analyse different procedures in CORBA and Java RMI.

8. Understand basic processes of Web services, analyse and build


systems that use RESTFul Web services.

5
IT6505 – Introduction to Network & Distributed Computing

Evolution of Distributed Computing


• Computing systems have evolved from centralized architectures to distributed
systems.

• Distributed systems have evolved then from simple client/server applications


running on Local Area Networks (LANs) to complex systems involving a huge
number of machines across Wide Area Networks (WANs).

• A local area network (LAN) is a computer network that interconnects computers


within a limited area such as a residence, school, laboratory, university campus or
office building and has its network equipment and interconnects locally managed.

• A wide area network (WAN),


(WAN) not only covers a larger geographic distance, but also
generally involves leased telecommunication circuits or Internet links.

6
IT6505 – Introduction to Network & Distributed Computing

Evolution of Network Computing


• A networked application is a computer application that consists of
several decoupled components communicating by exchanging messages.

• Development of client/server networked architectures peaked during


the 1980s, after the Desktop Computer was introduced.

• Concerns of network computing are generally described in terms of the


Open Systems Interconnection (OSI) .

• Several software layers of OSI, abstract the details of the physical


network, packet and message transmission, routing, data representation,
addressing, and session management.

7
IT6505 – Introduction to Network & Distributed Computing

OSI Model
• Each layer is built using the
services provided by the underlying layers.

• The TCP/IP protocol suite is a typical


example of a network architecture that is
closely matched with the OSI model.

• A property inherent to the OSI model is that


communication is limited to point to point
data transmission.

8
IT6505 – Introduction to Network & Distributed Computing

Question 1
• What are the benefits of using a layered network
model?

– It facilitates troubleshooting

– It breaks the complex process of networking into more


manageable chunks

– It allows layers developed by different vendors to


interoperate.
9
IT6505 – Introduction to Network & Distributed Computing

Introduction of Remote Procedure Calls


• The next big evolution of distributed computing occurred with the
introduction of Remote Procedure Calls (RPCs).

• RPCs allow client programs to transparently issue calls to procedures


defined by remote server programs.

• The complexity of communication is completely hidden from the


application by stubs that mimic the interface of the procedure calls.

• RPC mechanisms have been extensively used in Network operating


systems over the last 15 years for distributed services such as network
filesystems, name services and synchronized clock services.

10
IT6505 – Introduction to Network & Distributed Computing

Distributed Computing (1)


• Is a sub--set of Networked Computing.

• Powerful desktop computers that can be interconnected through very fast


networks, centralized multi-processor parallel architectures have been
progressively replaced by distributed system architectures.

• The term distributed computing, in contrast with network computing,


designates a set of tightly coupled programs executing on one or more
computers and coordinating their actions.

• These programs know about one another and cooperate to perform a


task that none could carry out in isolation.

11
IT6505 – Introduction to Network & Distributed Computing

Distributed Computing (2)


• Distributed systems allow the sharing of information and resources, and
may be composed of small, cost-effective computers that combine their
processing power.

• Large computational problems can be solved at low cost by temporarily


using the combined power and memory of many computers.

• Distributed systems are harder to manage because we


have to address issues such as independent failures, unreliable
communication, and insecure communication.

12
IT6505 – Introduction to Network & Distributed Computing

Question 2
• What is a transparent RPC and what are the types?
– The basic idea of RPC is to make a remote procedure call look
transparent. The calling procedure should not be aware that the
called procedure is executing on a different machine.
– A transparent RPC is one in which the local and remote procedure
calls are indistinguishable to programmers.
– There are two types of transparencies required:
• Syntactic transparency: A remote procedure and a local procedure call should
have the same syntax.
• Semantic transparency: The semantics of a remote procedure call and local
procedure call are identical.

13
IT6505 – Introduction to Network & Distributed Computing

Requirements for Distributed Systems (1)


• The requirements stage of the System Development Process involves
identifying the functional and non-functional properties that
stakeholders demand from a system.

• Non-functional requirements are concerned with the quality of the


system.

• It tends to be difficult to attribute them to particular parts of the system;


they are, rather, global.

• Non-functional requirements, therefore, have a serious impact on which


overall architecture is chosen for the system.

14
IT6505 – Introduction to Network & Distributed Computing

Requirements for Distributed Systems (2)


• The non-functional requirements that typically lead to the adoption of distributed
system architectures are:

1. Scalability : Accommodate a growing load by adding hosts.

2. Openness : Easily extended and modified due to well defined interfaces.

3. Heterogeneity : Supports various H/W and S/W platforms, languages, network


protocols, etc.

4. Resource Sharing : H/W, S/W and Data.

5. Fault---Tolerance : Ability to function correctly even if faults occur.

15
IT6505 – Introduction to Network & Distributed Computing

Question 3
• “Fault-tolerance demands that the systems has the capacity to
recover quickly from faults”. Do you agree with this statement?
–No
– The ability/capacity to recover quickly from faults is termed as
“Fault Resilience”
– Fault-tolerance demands that a system continues to operate,
even in the presence of faults. Ideally, fault-tolerance should be
achieved with limited involvement of users or system
administrators. They are an inherent source of failures
themselves

16
IT6505 – Introduction to Network & Distributed Computing

Lesson Summary
• Computing systems have evolved from centralized architectures to distributed
systems.

• A networked application contains several components which communicate by


passing messages.

• OSI model is a conceptual/Abstract model that facilitates communication of


computing system without regard to underlying internal structure and technology.

• RPCs allow client programs to transparently issue calls to procedures defined by


remote server programs.

• Distributed Computing: a set of tightly coupled programs executing on many


computers and coordinating their actions.

• Non-functional requirements: concerned with the quality.


17

You might also like