För/nackdelar med alla Flashcards
MOM
Message-Oriented Middleware
It is a form of middleware, meaning it acts as an intermediary layer connecting different applications or systems to enable communication and data exchange
- Asynchronous Communication: Messages are sent and received without the system waiting for an immediate response. This allows systems to continue working while waiting for a reply.
- Message Handling: Messages can be managed in queues, ensuring they are sent and received in order, even if the system is offline.
- Decoupling: The sending and receiving systems do not need to be directly connected, allowing for more flexible integration.
- Reliability: MOM systems can handle messages even during system failures by using queues and ensuring message delivery.
ESB
Enterprise Service Bus
Is a middleware logic that enables to connect a
large number of service-based software applications (SoSI) without a need for each pair of the applications to make a direct (i.e. point-to-point) connection
ESB solves the following integration problems:
- Scalability, by the multi-point connection, and routing
- Heterogeneity, by protocol and message transformation
ESB can support a synchronous service integration (via DO/ORB), or asynchronous (i.e. being complemented by the MOM logic)
Benefits:
The number of connections is equal to the number of integrated applications. The maintenance and upgrade are easier, such as the removal of an application. Loose-coupling and agility of the integration is improved by facilitating an easy replacement of a service provider by an equivalent provider (same service interface).
DW
Data Warehousing is the process of collecting, storing, and managing large volumes of data from different sources in a central repository, known as a data warehouse
(Solves IoSI)
It solves the need for a unified analysis of disparate data. The information is obtained by extracting, transforming and loading the extracts of operational data from different databases to a single database (“warehouse”)
DF
Data Federation is a method for accessing and integrating data from multiple sources in real time without duplicating it. It provides a unified, virtual view of distributed data, allowing organizations to query data across systems efficiently without the need to move or replicate it.
(Solves IoSI)
It solves the need for a seamless access and use of disparate data. The information is obtained by querying disparate data sources through a unified data schema (i.e., a single metadata database).
DR
Data replication is a process that copies data from one system to another to ensure high availability, reliability, and performance. While it offers benefits like improved uptime, fault tolerance, and faster data access.
(Solves IoSI)
It solves the need for optimal performance for access to data. The information is updated / Obtained in specific intervals of time, rather than instantaneously.
Sockets
A socket is a communication end-point addressed on a network, e.i it is a combination of an IP address and a port of a system. Standard for connection over the TCP/IP network protocol.
Advantages:
- Fast because of small communication/message overhead - Can be applied when fast responses are needed for
request
- Socket API is still supported.
Disadvantages:
- Only data can be shared
- Socket programming is “low level” i.e difficult not suitable
for integrations of complex data
- Different platforms have different socket structures
- The connection is point-to-point and both sides must
have their sockets opened.
RPC
Remote Procedure Calls (client/server architecture)
RPC call method allows the functions defined in one application to be called by other applications, from the same machine or over a network.
Advantage:
- One of the most powerful structuring mechanisms in
application design encapsulation - where applications
hide their logic and data through a function call.
Disadvantage:
- Is not language independent, i.e client and server must
use the same language, Client-server calls are
synchronous, method not scalable to a large number of
remote calls due to their synchronous nature.
ORBs
DO
Distributed Objects, based on RPC
Enabling loose coupling between client and server by separating the code for network communication from the application into a separate component (“middleware”).
Enabling language (means that we can run some language code with no modification on multiple platforms (OS)) java and others, and platform/OS (windows, unix)
Enabling multi point connection
Synchronous
MoSI
Message-oriented integration
MoSI (Message-oriented System Integration) is an integration solution where different applications communicate indirectly by exchanging messages via a message broker or queue instead of calling each other directly.
IoSI
Information oriented System Integration (One of the three approaches)
Information-oriented System integration is an integration approach based on the exchange of simple information (data) between systems, usually between databases.
Advantages:
- The approach is the easiest to understand and develop.
- Most sources/targets, especially databases, use
standardized API, originating from Open DataBase
Connection (ODBC) initiative.
Disadvantages:
- Dealing with only data sharing.
- Does not deal with business logics, states, behavior, etc.
- An IoSI will not suffice where functional and/or behavior
integration is needed.
Requirement 1: Represent data in a canonical (approved) format
Requirement 2: Maintain the exchanged data using their metadata. Common metadata enables an efficient interoperability among the systems because the generic data meanings and mappings can be achieved.
Requirement 3: Facilitate the data integration in real-time.
SoSI
Service oriented System Integration
SOSI (Service-Oriented System Integration) is an architectural pattern used to integrate different systems through service-based communication. It is based on Service-Oriented Architecture (SOA) and aims to enable modular, scalable, and flexible system integration.
Advantages:
- Standardized functional interface description, i.e.
language and platform independent.
- Scalability by the use of the ESB integration middleware.
Disadvantages:
- Legacy systems have to be adapted to support service-
oriented SI.
- Bigger integration effort than when integration (only)
information
PoSI
Process-oriented system integration is about defining a process-based integration model that enables the automatic ordering of information movement between systems residing in the same company or in different ones. Instead of just integrating data or services
PoSI (Process Oriented System Integration) focuses on creating workflows between systems to automate entire processes.
Advantages:
- Since PoSI follows business processes, IT and business
are naturally aligned in this kind of integration.
- By placing the control logic on the top of the integrated
applications, process oriented SI offers flexible and
reusable integration solutions.
Disadvantages:
- It is time and resource consuming to set up a process-
oriented SI
- process logic needs to be defined, and the existing
systems need to be used/reengineered accordingly.
XML
eXtensible Markup Language
Carries data
JSON
JavaScript Object Notation is a lightweight, human-readable data format used for data exchange between systems. It is commonly used in web applications and APIs to send and receive structured data.
Use REST-API
HTML
HyperText Markup Language
Renders (displays/formats) data on browsers
SOA
Service Oriented Architecture
Architectural approach for designing/building canonical software service-oriented systems from reusable units called services that can communicate using standardized protocol over a network.
Design principles:
Contracts - Ensure a consistent expression of service capabilities and its overall purpose
Discoverability - Consistent communication about available resources
Loose Coupling - Minimizing dependencies between services
Statelessness - Optimize service processing logic from the time perspective – to support the requirements of multiple consumers, while the service itself consumes as little resources as possible.
Composability - Enable service capabilities to be repeatedly combined with those of other services.
Adapter
An adapter is a component that enables two systems to communicate by translating data or requests between them. It acts as a bridge between systems that use different protocols, data formats, or technologies.
Wrapper
A wrapper is a software component that encapsulates an existing system, API, or function to provide a simplified, standardized, or enhanced interface. It allows older or complex systems to be accessed in a more modern or convenient way.
WSDL
WSDL (Web Services Description Language) is an XML-based language used to describe the functionality of a web service. It defines how clients can interact with a web service by specifying
Type – defines data types
Message – defines messages with parameters or return types
PortType – defines operation and related (input & Outputs) messages (which is service contracts)
Part – defines parameters in messages, input, & output
Binding – binds operations to protocols and message format (e.g., SOAP over HTTP)
Service – an actual service its end points
Port – specifies the network address (end-point = webservice address) and binding – port connects abstract
description (interface) with concrete network location
SOAP
Simple-Object-Access-Protocol
Is a text-based (XML) application protocol for sending and receiving messages of Web services.
Envelope, Header, Body
RESTful
REpresentational State Transfer
Is used to invoke a representation of a resource residing on a location, and transfer it to the client.
Get – retrieve resource(s)
Post – create a new resource(s)
Put – replace/update resource(s)
Delete – remove resource(s)
Vad är Cirkel, fyrkant, romb, pil i BPMN?
Cirkel - Event
Fyrkant - Activity
Romb - Gateway
Pil - Sequence flow
Vad är en fyrkant med ett plus i fyrkanten, vad är en fyrkant med ett rött plus i?
Fyrkant med ett plus - Collapsed Subprocess
Fyrkant med ett rött plus - Transaction
Vad är Lane och Pool i BPMN?
Lane - is a sub-partition within a pool
Pool - a pool representation of a process participant. E.g.,
system, customer, entity, etc.
Vad är message flow och hur ser den ut? Vad är association?
Message flow - dotted arrow with a circle
Association - is used to link information and Artifacts. dotted arrow
Vad är ett Start/Intermediate/end event? Och hur ser det ut?
Start - Event indicates where a process will start. Circle
Intermediate - Events indicate where something happens somewhere between the start and end of a process. A single circle with a double border
End - Event Indicates where a process will end. A single circle with a bold border
Hur ser XOR och Split events ut?
XOR - A rhomb with an X
Split - A rhomb with a plus
Skillnad på Private process och Public process?
Private - is the primary process having much greater detail than public processes. It is internal to a specific organization. A private process is designed for internal purposes; thus, its elements are not public.
Every private process contains start and end events.
Every other process (public process) should interact with it.
Public - participates in the interaction with the private process. The model mainly reflects or shows the interaction with the internal business process.
You do not need to show detailed process parts of the public process, and this means internal interaction of the public process is not shown. Thus, it mainly aims to show the sequences of the private business process.
Microservices
Microservices Architecture is a software development approach where an application is built as a collection of small, independent services that work together. Each microservice focuses on a single business function and communicates with others through APIs.
Monolithic
Most legacy and even modern applications are developed as monolithic, meaning everything is deployed as an executable binary where everything is done as a single program, having several modules in one software application.
Advantages:
- Suitable when working with tiny applications
- Helpful when one programmer or a team writes the code
Disadvantages:
- Modules becomes larger and difficult to maintain, this
means long change cycle – in one model need to change
every module needs to change (tight coupling)
- Adding new feature also takes a long change cycle
- Continuous deployment is difficult and risky
- Tight coupling
XML vs HTML
XML:
- Used for storing, sharing, and transporting data between
systems
- Flexible, allowing users to create custom tags to define
data structures
- Emphasizes structure and semantics, ensuring data is
well-organized and meaningful
- Harder syntax
- Primarily used for data exchange, such as in APIs,
databases, and configuration files
HTML:
- Used for displaying and formatting content on web
pages
- Uses fixed, predefined tags that cannot be changed
- Designed for structure and presentation, defining how
content appears in a browser
- Easier syntax
- Primarily used for creating web pages, structuring
content like text, images, and links.
JSON vs XML
XML:
- Supports namespaces (can include multiple namespaces
in one document).
- Uses XSD Schema for strict validation, data types, and
constraints.
- Allows attributes, making it good for rich data models.
- Used in SOAP-based web services and document
exchange (invoices, orders, legal documents).
- Provides built-in security (WS-Security for secure
messaging).
JSON:
- No support for namespaces and has simpler validation
than XML Schema.
- Does not support attributes directly, but uses key-value
pairs instead.
- Used in RESTful APIs for fast and lightweight data
exchange (web and mobile apps).
- Requires extra security layers like HTTPS for safe data
transfer.
WebServices (SOAP) vs RESTful föreläsning 8
SOAP:
- Architecture: Rigid structure using WSDL, considered
heavyweight.
- Flexibility: Supports multiple message formats, data
types, and transport protocols. Ensures security and
reliability.
- Complexity: More complex due to strict WSDL and SOAP
definitions.
- Communication Style: Message-oriented, using SOAP
envelopes over HTTP/HTTPS.
RESTful:
- Architecture: Simpler, based on REST principles, and
lightweight.
- Flexibility: Supports various transport protocols and data
formats (e.g., JSON, XML, CSV).
- Complexity: Less complex, focuses on fewer standardized
features.
- Communication Style: Resource-oriented, using HTTP
methods (GET, POST, PUT, DELETE).