Distributed Systems
- Virtually all large computer-based systems are now distributed systems.
- Information processing is distributted over several computers rather confined to a single machine.
- Distributed SWE is therefore very important for enterprise computing systems
- Enterprise is when a business is about more than one thing
- usually multiple businesses
- one of the largest problems with this is security.
System Types: SUPER IMPORTANT
- Personal Systems that are not distrubted and that are designed to run on a personal computer or workstation.
- Embedded Systems: that run on a single processor or on an integrated grou of processors.
- Distributed Systems: Where the system software runs on a loosely integrated gorup of cooperating processors linked by a network.
Distributed System Characteristics
- Resource Sharing
- Sharing of hardware and software resources
- Openness
- Use of equipment and software from different vendors.
- Concurrency
- Conccurent processing to enhance performance.
- Scalability
- Increased throughput by adding new resources.
- Fault tolerance
- The ability to coninue in operation after a fualt has occured.
Distributed system disadvantages
- Compelexity
- Typically, distributed systems are more complex than centralised systems.
- Security
- More susceptible to external attack.
- Manageability
- More effort required for system management.
- Unpredictability
- Unpredictable response depending on the system organization and network load
Distributed systems architectures
2 Types
- Client-server Architectures
- Distributed services which are called on by clients. Servers that provide services are treated differently from clients that use services.
- Distributed object architectures
- No distinction between clients and servers. Any object on the system may provide and use services from other objects
MiddleWare (IMPORTANT)
- Software that manges and supports the different components of distributed systems .
- Middleware is usually off the shelf rather than specfically written software. e.g.
- Transcations, processing monitors;
- data converters;
- Communication controllers.
Big vs Little Endien
Intel, microsoft... :
- Use little endien
Apple, Amazon etc... :
- Use Big endien
Little endien:
- Pushes small to big
- DATA: 456
- Little endien: 654
- Box
Big Endien:
- Pusshes big to small
- DATA: 456
- Big Endien 456
- Triangle
Thats where middleware comes in:
- Can convert little to big, Big to little
- box to triangle, triangle to box
CORBA is another middleware Converter
CLient Server Architecture
- The application is modelled as a set of services that are provided by servers and a set of clients that use these services
- Clients know of servers but servers need not know of clients
- client and servers are logical processes
- The mapping of processors to processess is not necessarily 1 : 1
Servers are Squares, clients are circles
looks a lot like a bunch of nodes and clusters
Layered application architecture
- Presentation Layer
- Concerned with presenting the results of a computation to system users and collecting user inputs.
- Application processing layer
- Concerned with providing application specific functionality e.g. in a banking system, banking functions such as a open accounts, close acc. etc.
- Data management layer
- concerned with managing the system database
Thin and Fat Clients 2 models
Thin client model:
- all of application processing and data mangement is carried out on the Server
Fat client model:
- Server is only responsable for data management, the software on the client implements the application logic
Who uses fat client:
- Microsoft (how many copys of word do you have)
- Intel
- Dell
Who uses Thin client:
- Amazon
- Nvidia
Everybody is moving to thin client, because thin is better
Distributed Object Architectures
- No distinction in a distribured object architectures between clients and servers
- each distributable entity is an object that provides services to other objects adn recieves services from objects
- Object communication is through a middleware system called an object request broker (ORB)
- Distributed object architectures are more complex to design than C/S systems
a diagram of this is similar to class objects
Exam questions: who handles the communication is distributed object architecture?
- ORB: Object Request Broker
Advantages of Distributed object arch
- Allows the system designer to delay decisions
- very open
- allowed to use it as client server as well!
Uses of distributed object Arch
- As a logical model its good
- and a client server
- Can be used in data mining systems
- Data mining (comparing data with each other)
- Integrators use deep learning to learn off the data
- Kinda like how beer and baby products are next to each other
CORBA (common object request broker architecture)
- Middleware for distributed computing 2 level
- At the lgocial communication, allows object on diff computers to exchange data
- At the component level provides a basis for delvoping compatable components
Exam questions:
What does corba stand for?
- CORBA (common object request broker architecture)
What is Corba Application structure (list or draw it)
- Application objects (Your own version of stuff / flavor / subroutines-api's)
- Domain Facilities (Display of information)
- Object Request Broker (Gathering information)
- CORBA Services (runs and manages all the services)
- Horizontal CORBA facilities (Common services for each corba task / Fonts and colors)
Corba is the heart of Distributed object architectures
Application Structure
- Application object
- This is defined by OMG
Corba objects
- CORBA objects are comparable in principle to objects in C++ & java
- Corba objects must have a seperate interface definition that is expressed using a common language (IDL) similar to C++
- Interface Definition Languages (IDL)
- There is a mapping form IDL to programming languages
- Therefore objects wirtten in diffent languages can communicate with each other
Peer-to-peer architecture
- Peer to peer (p2p) Systems are decentrailised systems where computations may be carried out by any node in the network
- The overall system is designed to take advantage of the computation power and storage of a large networked computers
- Most p2p systems have been personal system but there is increaing business use of this technology.
p2p communication is a lot like a game of telephone but the data is not lost!
p2p architectural models
- The logical network arch.
- Decentralised arch. ( each node just holds info and p2p has to repeat its process again)
- semi-centralised arch. (semi-centralized has a discovery server where it saves some info that has been searched for before and shortens the search time)
- Application arch.
- the generacic org of componets
- focus is on network architecutre
Generic Service
- An act/performance offered by one party to another.
- Service probvison is therefore independent of the application using the service
WEB SERVICES DIAGRAM (important for exam)
- Service registry
- Service requestor
- Service Provider
Services and distrbuted objects
- Provider independence
- public advertising
- pay for use
All of these are written in soap (which soap is written in XML)
service standards
- Services are based on agreed, XML-based standards, so they can provide on any platform in any lang.
- Key standards
- SOAP - Simple Object Access Protocol (message in an envolope
- WSDL - WEb Services Description Language
- UDDI - Universal Decription, Discovery and Integration
Exam question:
Draw xml diagram
what technologies included
what are they based on