0% found this document useful (0 votes)
15 views15 pages

Notes Du 07 03 2024 Architecture Réseau

1) A monolithic architecture is a singular, large computing network with one code base that couples all business concerns together. It was often developed in one programming language by a few tightly coordinated teams on one machine. However, complexity made it difficult to reasonably maintain. 2) A service-oriented architecture is a composition of distributed isolated services that interact by calling each other. It is often developed in different programming languages by uncoordinated teams, often distributed over the internet. 3) CORBA (Common Object Request Broker Architecture) was an early attempt to make architectures programming language and platform independent using an Interface Definition Language and services like naming, trading, and lifecycle management. However, it was complex and difficult to

Uploaded by

gloorgianluca
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views15 pages

Notes Du 07 03 2024 Architecture Réseau

1) A monolithic architecture is a singular, large computing network with one code base that couples all business concerns together. It was often developed in one programming language by a few tightly coordinated teams on one machine. However, complexity made it difficult to reasonably maintain. 2) A service-oriented architecture is a composition of distributed isolated services that interact by calling each other. It is often developed in different programming languages by uncoordinated teams, often distributed over the internet. 3) CORBA (Common Object Request Broker Architecture) was an early attempt to make architectures programming language and platform independent using an Interface Definition Language and services like naming, trading, and lifecycle management. However, it was complex and difficult to

Uploaded by

gloorgianluca
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Notes du 07.03.

2024
Created by David Marsoni

Created time @7 mars 2024 08:31

Group M Mathias.Pitteloud

Last edited by M Mathias.Pitteloud

Last edited time @7 mars 2024 10:45

Tags

Docs

HESSO-VS-62-41-Architecture-CH03_History2.pdf

Monolithic architecture
A monolithic architecture is a singular, large computing
network with one code base that couples all of the
business concerns together
Often

developed in one programming language

by a few tightly coordinated teams

often one one machine (can be more)

⚠️ Could not be reasonable maintained when


complexity
became larger.

SOA

Notes du 07.03.2024 1
A service-oriented architecture is a composition of
distributed isolated services, which interacts by calling
each other services. Its composition serves a business-
case (use-case)
Often

developed in different programming language

by often uncoordinated teams


• often distributed over the internet

RPC (Remote Procedure Call)


Around since 1976

Functioning / implementation depends on programming language, and is


provided as part of the programming language

We use an example: Java: RMI (remote method invocation)

RMI

Notes du 07.03.2024 2
The RMI registry allow the client to know the server (like yellow pages)

Strub is the representative of the the remote pc of the distant server


mashaled ⇒ transform complex data to be able to send them on the internet

Stub & Skeleton (proxy)


Client: Stub
Stub represents remote Object

Notes du 07.03.2024 3
Stub accepts the same messages as the remote object

Calls to the stub, are transparently send to the remote server (programmer
does not recognize)

Server: Skeleton
Receives messages send from the stubs, initiate computation, and returns
answer

Intermediary Summary
Okay… so getting rid of the ”one machine” constraint is not that difficult (for
most reasonable programming languages)
BUT
We still are fixed on one programming language…, Spoiler: That turned out to
be much harder.

CORBA (Common Object Request Broker


Architecture)
Infos

First try to be programming language and platform independent…

CORBA: Common Object Request Broker Architecture

OMG Standard (Version 1.0 1991) (latest update version 3.4. (Feb/21)

Platform independent specification for the usage of remote


functionalities

Notes du 07.03.2024 4
IDL (Interface definition
language)
Similar to the RPCs case, we need to
describe the interface… but now in a
programming-language independent
way

Bank.idl

Stub & Skeleton are being created based on the IDL description

What to do when sending information between 2 computer ?


It will requires a channel.

Notes du 07.03.2024 5
CORBA Services
CORBA infrastructure allowed for a number of services for having a dynamic
composition of services from different teams.

Naming Service

Trading Service

Event Service

Life Cycle Service

Relationship Service

Summary
Description of CORBA here is incomplete

Building a SOA with CORBA is feasible (so SOA is not that ”new”)

BUT

Working with CORBA was a p.i.t.a. (p.i.t.a definition)

In practical terms building SOA was ”theoretical” possible, but actually no


one wants to do it with CORBA

Web Services
(SOAP -based) Web-Services
2nd try to make it programming language independent…

Notes du 07.03.2024 6
But this time with XML (and all experience of what made CORBA horrible to
work with)

📌 NOTE
XML is there to increase automatic machine processing (not
recommended for humans)

Schéma
Service Requester = Client
Services provider = Server
Service Broker = Registry

WSDL (Web Services Description Language)


The language is based on XML and it is a standard of W3C (Version 1.0 (2000),
• Version 2.0 (2007))

Platform-independent

Programming-language independent

Protocol independent

Notes du 07.03.2024 7
Describes
The offered functions,

Data,

Data types and

Protocol to call a webservice

It defines
How the functionalities can be
assessed

Which parameters needs to be


provide

Which return values are provided

UDDI ( Universal Description, Discovery and


Integration)
Standard for repositories of services. It allows dynamics for finding and
Integration of Services.

💡 IDEA : Dynamic binding allows for service-markets

Crash with reality (i.e. no one wanted to use UDDI in public


env)
Programmers used Web Services, but not dynamic bindings

UDDI server had a lot of services to offer, no one wanted….

2006 SAP,IBM,MS took their public UDDI servers offline…

UDDI might be case for intra-company usage, where a trust-base


among

Dynamic binding of web-services

Notes du 07.03.2024 8
We look which implementation is the best, and that gets included at runtime…
Business to offer services (as it is today in the cloud)

📌 That is specific for a SOAP-based WS, CORBA had the same idea)

💡 The programmer does not specify which implementation of a


webservice to use, but the functionality

➕ Binding happens automatically at run-time (criteria might be)

Price

Performance

Availability

SOAP (Simple Object


Access Protocol)
Standard W3C (since 2003), But is
was not simple and was not only for
accessing objects
The term SOAP is still used, but not
as an acronym. SOAP is an XML
network protocol for Data exchange
and RPC.

SOAP Message

<? xml version="1.0" ?>


<s:Envelope xmlns:s="https://www.w3.org/2003/05/
<s:Header>
</s:Header>
</:Body>

Notes du 07.03.2024 9
</Body>
<s:Envelope>

more exemple

Good news about SOAP


Creating your soap-based web-services, is today highly automated.

WSDL are created automatically,

SOAP Message and their processing are handled automatically…

Source code for the “stub", is automatically created with one command
based on a WSDL file…

Creating Web-Services is not difficult anymore!

REST (Representational State Transfer)


Motivation
Web Services are nice, but depending on what standards have been chosen,
they can also be complex.
The idea then became “if a webserver does a .toString() for an html page, why
not for other methods ?”.

Notes du 07.03.2024 10
Representational State Transfer

🗣 NOT a standard, but an architecture style !


Based on http protocol.

http is platform independent

http is programming language independent

is widely used and often also understood

https is already in place for securing communication

In practice
URL also as path to a resource
URL allows to describe complex data structures as URLs

Template : http://www.myservice.com/order/{oid}/item/{iid}

Example URI : www.myservice.com/order/XYZ/item/12345

URL can be used for transporting ”call parameters”

Notes du 07.03.2024 11
HTTP methods as different methods to call
A method is called on a ”data object” / resource.

HTTP protocol defines a number of methods.

For REST most commonly used are :

Returns a representation of the element


GET Read or retrieve data
in a defined format (XML, json)

Replaces the stored element, with what


POST Add new data is attached, if nothing exists it should be
created

Update data that already


PUT Used to modify and update a resource
exists

Removes the element from the resource


DELETE Removes data
list

REST services are


Uniquely addressable (via their URI)

Stateless: i.e. the http call has all necessary information, and is sufficient,
there is no dependency to previous calls

Clear interface via the http primitive. GET, POST, PUT and DELETE.

RESTful WS
REST services are not standardized, but there exists conventions on what good
designed REST services look like.
→ They’re called RESTful

Notes du 07.03.2024 12
Base URI + Hierarchy (data structures, are clearly visible)

Data transfer via ”established” encodings XML,JSON, …

HTTP operators (get, put,post,delete) are supported

Stateless

WS vs REST

Notes du 07.03.2024 13
🗣 MOST Web-API / Cloud functionality today comes to you via REST

Data types for REST

Outlook Microservices
Microservices are an architectural style

Follow the principle: "Do one thing and do it well”, so fine grained services,

Notes du 07.03.2024 14
Microservices allow a large application to be separated into smaller
independent parts, with each part having its own realm of responsibility.

Allows to add / replace / remove components regarding their needs rather


easily (a.k.a. business-driven development )

Allows for continuously delivery, as only small parts needs to be re-build &
deployed when changed, so all along with the DevOps philosophy

→ Will be seen in futurs courses

Notes du 07.03.2024 15

You might also like