Lesson 3: Service Oriented Architectures & Cloud Computing Flashcards
What were some architectural issues with how they designed distributed systems in the old days?
- data redundancy
- synchronization problems
- vendor and application “lock in”
What were some integration issues with how they designed distributed systems in the old days?
- isolated data silos
- administrative nightmare
- integration/customization nightmare
Which software engineering approaches were an inspiration on the renew design of distributed systems?
- Object-oriented design
- Component-oriented design
- Service orientation
Describe the object-oriented software engineering approach.
- based on mental model of actual of imagined objects
- modelling real-world environments
Describe the component-oriented software engineering approach.
- focus on separation of concerns
- split into loosely coupled reusable components
Describe the service-orientation software engineering approach.
- foundation in component-oriented design
- component = service
- service is often interchangeable & stand-alone
What is a service?
- Physical independent software program
- loosely coupled
- distinct design characteristics
- capabilities are often defined in terms of a contract
What is a SOA?
Service Oriented Architecture.
It is an approach to designing systems, a set of design principles. It is a way of thinking about a problem, a mindset.
Explain the service-oriented part of SOA
Service-oriented: the core unit of design is a service
(implementing a capability so that it can be easily consumed
Explain the ‘architecture’ part of SOA
Architecture = style of design
What is SOA from a technical perspective?
An architecure for designing systems.
-> a service exposes a discrete capability, any application that needs the capability uses the service
A service exposes its capability via an interface
Compare a SOA against an application-centric design perspective
- monolithic application silos
- duplication of functionality
Give the full detailed definition of SOA
A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.
What is a multi-tenancy?
A single instance of the software runs on a server, serving multiple client-organizations.
What types of multi-tenancy are there?
- Data multi-tenancy
- Application multi-tenancy