Software Engineering Exam 1 Vocab
Typical layer of a Orchestration-Driven Architectural Style Include What?
Business Services - the entry point into the architecture Enterprise Services - the business logic of the application Application Services - supporting services for application logic Infrastructure Services - operational concerns
What is the Plug-in component
A plug-in is an isolated component of functionality that can be interacted with via the core system Plug-ins can specify where they plug in, what data they need, and what data they provide
What are the four components that Broker Topology focuses on NOTE(This is all one Broker)
An Initiating Event The first event that starts the workflow The Event Broker receives the Initiating Event and shares it with the Event Processor The Event Processor Handles the received event and then generates a Processing Event A Processing Event is sent to the Event Broker and signals that the Initiating Event has been handled
In the Event-driven architectures what are two of the typologies and what it can employ
Broker topology An Event-driven architecture with a high degree of responsiveness and dynamism Mediator topology An Even-driven architecture for meticulously managing events
Of the architectures: Layered, Micro-Kernel, and Pipeline what common factors do they share
Cheap Simple Rigid Faulty or error pron there not an easy way to add redundancy Unable to scale
The core components of a microservice architecture include:
Client requests - initiate workflows API layer - separates clients from services. Services - the domain concerns
What are the factors of the Micro-kernel Architecture Style
Core System Plug-ins, and Contracts
What is the natural approach for Service-based architecture
Domain partitioning
What of the two models in an Event-Driven architecture, and what are there definition
Event-based models Events can occur passively without direct action from the client Request-based models Requests are intentional actions taken by a client. Exp: Contrast taking a letter to the post office vs dropping it in a Dropbox.
The most scalable and elastic architectures we have are all distributed
Event-driven Space-based Microservices
What is the Contract system
Every core system maintains a set of available contracts that specify what plug-ins can do and the API that the core system provides to each plug-in Each plug-in is responsible for implementing some sub-set of the available features
What is Space-based architectural style
Its Designed to scale Like the service-based architecture, it can scale along domain components (units) But it also addresses other bottlenecks that can occur in the architecture
What is the most important concept in the Layered architecture
Isolation A layer can be closed or open, where Requests must pass through a closed layer or Bypass open layers
What are the downsides of technical partitioning
It can result in a complex set of firewall-like rules for handling requests, so be careful that its implementation doesn't become too complex
What is the layered architecture style for technical partitioning
It uses a goto style Technical concerns can be easily grouped into layers
Architectures can introduce an explosion of possible workflows through branching rules
Layered style with layers of isolation, Pipeline with branching flows, Microkernel with plug-in interactions.
In a space-based architecture. The Virtualized Middleware has its own architecture. What does this include
Messaging Grid - determines which processing unit receives a request, Data Grid - synchronizes data between processing units, Processing Grid - orchestrates processing units as needed, and Deployment Manager - startup and shutdown of processing units
The processing units maintain application code (core logic)
More processing units can be added or removed to scale the architecture The number of processing units can be determined at runtime The virtualized middleware handles the management of processing units including spawning and tearing down
What are the advantages of Service-based architecture
One of the main advantages of this architecture (and services as a whole) is its potential for abstraction. The user interface can be wholly separated from the domain services and the entries rest of the architecture through and API layer. This increases the elasticity and scalability of the architecture.
What are the factors of the Pipeline Architectural Style
Pipes which act like communication channels, and Filters which operate on data passing through them.
What is the main components of space-based architecture.
Processing Unit(s) Visualized middleware Data Pumps Data Writers Data Readers
What are the four types of filters for Pipeline Architectural Style
Producers that generate data, Transformers that operate on data, Testers which are akin to optional transformers,and Consumers which receive data.
One of the core concepts of the space-based architecture is its use of caching Caching is the means by which the architectThe opposite is true with distributed caching and processing units periodically sync their data with a centralized service insteadure addresses database concerns What are some Typical caching techniques
Replicated caching Distributed caching
What is the Main emphasis of both these styles
Salable However, these architectures include several technical challenges that have to be addressed as a part of the architecture ADD TO THIS STARTING (ARCHITECTURAL REVIEW 2 SLIDE 31 COMPARE AND CONTRAST
What is an important aspect of Service-based architecture
Service-based architectures has a monolithic database to support domain components Separate domain components can have separate databases if the data is mutually exclusive Otherwise, the data would need to be synced
Simplicity vs elasticity
Simplicity is achieved through abstractions with fewer technical concerns However, the abstraction can hide the important technical details that make the architecture seem amorphous
In a space-based architecture what are Data Pumps
The Data Pumps permit data flow from processing units to other units or to data writers/readers Processing units do not directly interact with a database Data Writers write data to a database Data Readers read data from a database
What is Event-Driven Architecture and what are the main factors of it
The Event-Driven Architectural is a distributed, asynchronous architecture defended around the concept of events/requests Events/requests are received, Events/requests are orchestrated, and Events/requests are processed
What are the components that a Mediator topology and what do they consists of
The Initiating Event The Initiating Event is the same between both typologies as are the Event Processors An Event Queue An Event Mediator Event Channels Event Processors
What is the definition Micro-kernel Architecture Style
The Micro-kernel Architectural Style is a plug-in architecture, which means that it's designed around a core system that's extended by numerous plug-ins You may have heard the term kernel before in reference to your OS; OSs support drivers which are nearly identical to the concept of a plug-in
What is the Orchestration-Driven Architectural Style
The Orchestration-Driven Architectural Style is a service-oriented architecture whose topology is defined around a set of layers Layers are called services (don't confuse them with microservices), and Flow is dictated by the Orchestration Engine
What is the core system
The core system is responsible for handling the primary logic of the application and is an abstraction over an entire other software architecture Its role in this architecture is to support and manage plug-ins
In Orchestration-Driven Architecture what is the integration hub
The integration hub supports the orchestration engine in allowing workflows to be supported by enterprise, application, and infrastructure services
What was the intention of the Orchestration-Driven Architecture?
The intention of the orchestration architecture was to enable reuse of enterprise services by coordinating workflows through the orchestration engine The result was quite disastrous as it led to workflows becoming entangled
What are the downsides of the micro-kernel architecture
The micro-kernel architecture isn't great for technical or domain partitioning although it does slant towards domain partitioning It can be helpful to group bits of logic into isolated plug-ins, but a plug-in may be too small to encapsulate a whole domain of concerns
What is the microservices architecture
The microservices architecture is one of the most popular architectural styles to date with an emphasis on the granular inclusion of domain concerns Via services It is a distributed architecture
microservice architecture, space-based architecture, and Orchestration-Driven Architecture. What concern do they all try to solve
The styles that we've reviewed today have all attempted to address concerns related to the longevity of the architecture: The Orchestration-Driven architecture fails by attempting to secure reuse at the cost of entanglement Space-based and microservices succeed in creating truly scalable architectures that are also elastic (easier to maintain over time)
What can the Pipeline Architecture Style be used for
This style can be used for technical or domain partitioning although you will tend to think of it as the latter since it focuses on workflows I recommend that you draw boxes that group similar filters and you'll see the technical partitioning that's hiding in the background This is the most natural style when coming from a data flow diagram.
What is replicated caching and what is distributed caching
With replicated caching, data is constantly synced between processing units The opposite is true with distributed caching and processing units periodically sync their data with a centralized service instead
What are the factors of the Layered Architecture
You have a series of tiers (or layers) stacked on top of each other Data flows up and down the layers (it can also jump if you want it to)
What is the Service-based architectural style and what are the factors of it
hybrid approach to the micro services architectural style and the layered architectural style Separate layers for user interface, domain components, and database component deployed via services