F2 Flashcards
API =
Application Programming Interface
Compiled set of programs that enable access to a set of functions
Loose coupling
is important for making the integrated systems low dependable from each other
- to be able to execute other
tasks at the same time - to integrate with more systems
for the sam needs - to make internal changes
without requiring of others
Tight coupling -> Loose coupling
RPC, Sockets, Messaging Data sharing and ORBs
Data sharing > Sockets > RPC > ORBs > Messaging
Real-time integration
Ability to use data, as soon as the data is received from another application
Advantage: Real-time processing produces data that is up-to-date
Non-real-time integration
the processing of data occurs
some time after the data has been received; simply, the processing occurs at some later time due to the purpose or the constraint of the integration solution; it is also referred as “batch processing”.
Advantage: Non-real time processing is typically more cost-effective (resource related)
File-based data sharing
The method facilitates the sharing of data through files.
It is the most common integration method, because storing data in files is
universal.
In this method, one application writes data to a file, while the other
application reads data from the same file at some later time.
Ex: Google drive, Dropbox
File-based data sharing advantages and disadvantages
Advantages:
- Simplicity of use
- Most programming languages support file manipulation
Disadvantages:
- The data is not shared in real time
- The method is not reliable if a large number of files are involved:
* The used files must be locked for reading/writing at the transmitting time.
* For processing, the involved applications must agree on the format of the data.
* There must be an agreement on where to place files for the transfer, i.e. for writing
and reading.
* Because of the point-to-point integration*, the method may be less suitable for
involving a large number of applications in a same integration context (because of
increased network traffic or heavy maintenance of the connections).
File-based modern solutions
Old flat file:
- Stores structured as csv and unstructured format
– Security – could be encrypted and locked based access control
– Mostly used for importing and exporting data. Example, ERP systems, Power BI, databases, etc.
JSON (JavaScript Object Notaion):
- Suitable for real-time data sharing used by web-based applications
– Human as well as machine readable
– (USED AS Configuration file in modern apps and as data exchanging solution between webbased client and server (for large corporate enterprises too))
XML (eXtensible Markup Language):
- Could be used for real-time data sharing but not suitable for real-time data sharing
– Suitable for sharing complex data
– (USED widely by legacy systems, but commonly used by enterprise systems, such as Insurance,
Banking, Retail, and systems requiring more secured communication)
Data-Sharing: Common database
In this method, one application writes data to a common database, and another application reads the data from that database at any later time,
using a common database language (SQL)
Data-Sharing: Common database advantages and disadvantages
Method’s main advantages:
– It is a multipoint integration structure, and
– Use of relational databases as the storage (SQL is used by all, same data format).
– Can be used whenever 2 applications have SQL API, but not API to each other.
– Has been the basis for developing Data Federation integration solution (Lecture 5)
Disadvantages:
– Data is not shared in real time.
– A unified database schema is needed for all the involved applications.
– Bottlenecks due to database locks when a large number of applications is involved.
– Not a suitable solution for large distance networks, for the transmission’s performance reason.
Sockets (Real-time)
A socket is a communication end-point addressed on a network, i.e. it is a combination of an IP address and a port number of a system
Sockets have become the standard for connecting over the TCP/IP
Sockets advantages and disadvantages
Advantages:
- Distributed computing started with socket programming, because it allowed
applications to establish live request-response connections and share data in real
time.
– Fast, because of a small communication/message overhead (small size of meta data).
– Can be applied when fast response(s) are needed for requests.
– Socket API is still supported and used by many languages/tools – all that is needed.
Disadvantages:
- Only data can be shared/integrated (not functionality)
– Socket programming is ”low-level”, i.e. difficult and not suitable for integration of
complex data.
– Different platforms have developed different ”socket” structures.
– The connection is point-to-point and both sides must have their sockets. opened (a tight coupling).
RPC
Remote Procedure Call
allows the functions defined in one application to be called by other applications, from the same machine, or over a network.
Also known as client/server architecture
RPC
Advantages:
Encapsulation - where applications hide their logic and
data through a function call – i.e. one application invokes for example process_order (input, output), but how the order is processed it is internal to the invoked application. In this way, they can intercept changes in data to carry out the various actions they need to do when the data is changed.
Disadvantages:
- RPC was not language independent, i.e. client and server must use the same
language.
– Client-server calls are synchronous.
– The method was not scalable to a large number of remote calls due to their synchronous nature (blocking of client&server).
– The integration WAS “point-to-point”, i.e. not efficient for a multi client-server constellation.
Distributed Objects (DO)
Based on the RPC solution, the DO method is proposed to solve major shortcomings of the RPC, by:
– Enabling loose coupling between client and server by separating the code for network
communication from the application into a separate component (“middleware”).
– Enabling Language (Java, and other) and Platform/OS (Windows, Unix) independence*.
– Enabling multipoint connection.
ORB
The most important component of the DO integration solution is Object Request Broker (ORB) middleware. As a component separated from the applications, ORB is responsible for coordinating their communication, such as forwarding requests and dispatching the results and exceptions
ORB, additional services
- Naming services – they allows DO to register and get located by name.
- Security services – they provide authentication, authorization, auditing and non-repudiation features when accessing DO.
- Concurrency control services – they enable a concurrent use of DO, through R/W locks.
- Transaction services – they enable several tasks (i.e. calls) to be executed as atomic (i.e. “all or nothing”).
- Life Cycle Services – they are responsible for creating, cashing, pooling, and deleting DO.