This is an old revision of the document!
Table of Contents
Software Architecture
CORBA | Common Object Reqeust Broker Architecture. Standard, which defines communication between software, written in different languages. Uses object oriented approach. |
Builds
Incremental | Build after each commit |
Nightly | Build every night |
Baseline | Build, according to a cadence / milestone. Will probably be released. |
Summary
- Design Patterns aus GOF
- MVC
- API: HAL, HATEOAS, REST
- HATEOAS -
- architecture pattern
Hypermedia As The Engine Of The Aookication State
- REST GET - safe, idempotent PUT POST - Idempotent DELETE - Idempotent PATCH
See https://stackify.com/soap-vs-rest/
- Java RMI
- RMI you can have references to remote objects and invoke their methods
RMI stands out when the need to develop something more complex than a pure client-server architecture arises
- Java RPC
- With RPC you can just call remote functions exported into a server,
In Java, when you talk about RPC, you are talking about SOAP and Web Services.
Lost its popularity, REST is the solution of choice.
- SOAP
Simple Object Access Protocol
- If you need ACID-compliant transactions, SOAP is the way to go.
- CORBA
- Common Object Request Broker Architecture
- REST
Representational state transfer The general consensus among experts these days is that REST is the typically preferred protocol unless there’s a compelling reason to use SOAP - REST allows a greater variety of data formats, whereas SOAP only allows XML. - SImple - uses HTTP layer
- Architectures on AWS
- Swagger vs. OPenAPI
- OpenAPI = Specification
- Swagger = Tools for implementing the specification
- structure data
- SaaS application
- architecture principles
- SOLID
- Single-responsibiity Principle
- Open-Cosed
- Liskov substitution principles
- Interface segregation principle
- client should NOT implement interfaces / methods they dont use
- Dependency Inversion principle
- IoT protocols
- MQTT
- Public / Subscribe
- DONE Terraform
- NOT provider agnositc. The syntaxis is different for all providers.
- INtrastructure management
- Configuration management
- interface strategy and support build up of the partner integrations
- business needs into technical requirements
- Make sure that the solutions meet the requirements in regard to security and availability
- DevOps culture and infrastructure