Lecture 9 Flashcards
What is architecture in terms of software development?
Architecture: Designing a solution to a problem according to given constraints
What is architecture style in terms of software development?
Architectural Style: General principles informing the creation of an architecture
Architectural styles inform and guide the creation of architectures
What is a distributed system?
A distributed system involves multiple entities talking to one another in some way, while also performing their own operations
What is Software Oriented Architecture (SOA)?
SOA is a way of developing distributed systems by combining stand-alone, reusable, loosely-coupled services.
SOA defines an architecture which usually consists of the following roles and the contracts between those
roles
Service Service Requestor Service provider–Publish–>Service
How did we use to write software?
Monoliothic Architechture many components but….
One database
A single deployment unit
A single language/technology
What is a service?
SOA centres around the concept of decomposing
business problems into services.
Service = Business Capability
What are the principles of SOA?
Standardized service contract service reusability service discoverability service composability service loose coupling Service abstraction service statelessness service autonomy
How can SOA be realised?
SOA can be realised through a variety of technologies
Describe the 3 evolutions of SOA
Evolution of SOA
- SOAP-based web services
- RESTful web services
- Microservices
What is a SOAP-based web service?
Based on international standards
Service interfaces is exposed through WSDL documents
Message exchange using SOAP
Client code may be generated from WSDL description
What is a RESTful web service?
Representative State Transfer (REST)
Everything is a resource
Resources are identified by URIs and their state is manipulated through HTTP operations GET, POST, PUT, DELETE
Rather a set of architectural principals, than a standard
SOAP-based services: drawbacks
Inefficient
Overly general
Heaveywieght
SOAP vs REST web services
Independence – SOAP is language, and transport independent, while REST must use HTTP
Efficiency – REST can use smaller messaging formats, while SOAP requires XML for all of its messages
Environment – SOAP works well in a distributed environment, while REST assumes a direct point-to-point collaboration
Dynamic – REST is easier to implement and learn to use, SOAP requires more bandwidth and resources to work efficiently
What is Microservices?
Microservices: evolution of SOA
Designed for Failure:
Designed for scale, if a service fails, the system should stay alive. Gave rise to chaos engineering
Deplopyment & Containerization:
Independent deployability over reuse. Microservices are often placed within a virtual container system such as Docker.
Automation:
Again, fast deployment depends on infrastructure
automation, DevOps, continuous integration