Documente Academic
Documente Profesional
Documente Cultură
Decrierea nivelurilor:
-Application: prin intermediul acestui nivel putem sa accesam internetul cu ajutorul interfetelor si
serviciilor, mail , baze de date partajate.
-Presentation: se focuseaza asupra sintaxei si semnaticei a informatiei care este transmisa.
Furnizeaza task-uri ca , translarea, encripteaza si decripteaza information in format text(anume byte
stream).
-Session: layer care se ocupa de deschiderea conexiunii dintre diferite masini pentru a asigura
sincronizarea si mentenanta. Serviciile in acest scop sunt: dialog control , syncServices, token
management.
-Transport: acest layer primeste informatia in forma de packet de layer-ul de mai sus si o transmite
in aceeasi forma mai departe. Alte functionalitati:
1. service point addresing – alegerea corecta a portului, includerea mesajului in procesul necesar.
2.connection control: connection-oriented(dupa livrare conecxiunea se face la nivelul transport si
cu host masina) si conecctionless(fiecare pachet este unul independent).
3.segmentation:dividerea in segmente prin asignarea unui numer de secventa, pentru a fi posibila
reasamblarea.
4.flow control: end-to-end monitorizare a pachetelor.
5.error control: monitorizarea mesajului pentru asigurarea ca a venit si este transmis fara erori, ele
pot fi corectate prin re-transmisie.
-Networok:adresarea logica si rutarea. Transleaza adresei retelei logice in MAC adresa(fizica).
Prevenirea congestion control.
-Data: transformarea informatiei in link reliable. Asigura ca informatia care va ajunge la Physical
Layer nu va contine erori, informatia este divizate in frames.
-Physical: opereaza cu bits , care ii transmite prin canalul de comunicare. Contine cateva configurari:
data rate, physical topology, line configuration.
1. Unicast- acest tip de trasnmitere a informatiei este util in cazul in care este un singur
emitator si un singur receptor, comunicare one-to-one.
2. Broadcast – tehnica de a transmite informatia de la o singura sursa la mai multe
destinatii, one-to-many comunicare. El este de cateva tipuri: limited
broadcasting(network cluster), direct broadcasting(un nod din Network A spre
toate nodurile din network B).
i. Multicast- participa unu/multi emitatori si unu/multi receptori. Multicast-ul are
nevoie si de suportul altor protcoale(IGMP, multicast routing).
At least four physical components of a system might be distributed: hardware or processing logic,
Definition of distributed data processing systems. This definition has five components:
resources, that can be assigned to specific tasks on a dynamic basis. Homogeneity of physical
* A physical distribution of these physical and logical components of the system interacting through
a communication network. (A network uses a two-party cooperative protocol to con-
* A high-level operating system that unifies and integrates the control of the distributed
components. Individual processors each have their own local operating system, and these may be
unique.
* System transparency, permitting services to be requested by name only. The server does not have
to be identified.
* Cooperative autonomy, characterizing the operation and interaction of both' physical and logical
resources.
Database descentralization:
Control decentralization:
Hardware descentralization
Clasificarea Flynn:
Clasificarea MIMD
Multiple Instruction, Multiple Data (MIMD) refers to a parallel architecture, which is probably
the most basic, but most familiar type of parallel processor. Its key objective is to achieve
parallelism.
In this organization, all processors in a parallel computer can execute different
instructions and operate on various data at the same time.
In MIMD, each processor has a separate program and an instruction stream is generated
from each program.
Clasificarea Skillycorn
Calculatoare cu memorie comună și distribuită
Spațiul descentralizării controlului al lui Jensen;
Gradul de implicare:
a) Max centralizat: un singur controller realizeaza o instanta particulara a activitatii
asupra resursei
b) Max descentralizat:fiecare controller pt activitate este implicat in fiecare instanta a
acesteia
Grad de egalitate:
a) Max centralizat: un singur controller are intreaga responsabilitate ai autoritate pentru
activitatea considerata
b) Max descentralizat: fiecare controller este egal capabil sa participle in activitate
Nr controalelor:
a) Max centralizat
b) Max descentralizat
Factorul 2 ->
Parallel processing is the division of a problem, presented as a data structure or a set of actions,
among multiple processing components that operate simultaneously. The expected result is a more
efficient completion of the solution to the problem. Its main advantage is the ability to handle tasks
of a scale that would be unrealistic or not cost-effective for other systems
• Functional parallelism - poate fi găsit în problemele în care un calcul poate fi descris în termeni de
o serie de operații ordonate în timp. Deoarece fiecare etapă reprezintă o modificare a valorii sau
efectului în timp, trebuie luată în considerare o cantitate mare de comunicare între componentele
soluției, sub forma unui flux de date sau operațiuni.
• Domain parallelism implică probleme în care un set de operații aproape independente trebuie să
fie efectuat pe date locale ordonate.
• Activity parallelism Multe componente împărtășesc accesul la o parte dintr-o structură de date.
Deoarece fiecare componentă realizează calcule independente, comunicarea între componentele
procesării nu este necesară. Cu toate acestea, cantitatea de comunicare nu este nulă. Comunicarea
este necesară între o componentă care controlează accesul componentelor la structura de date și
componentele de procesare
Considering only the processing characteristic of the components:
a) Homogeneous systems- are based on identical components interacting in accordance with
simple sets of behavioural rules. They represent instances with the same behaviour.
Individually, any component can be switched with other without noticeable change in the
operation of the system. Usually, homogeneous systems have a large number of
components, which communicate using operations of data exchange.
b) Heterogeneous systems are based on different components with specialised behavioural
rules and relations. Basically, the operation of the system relies on the differences between
components, and therefore, no component can be switched with another. In general,
heterogeneous systems are composed by fewer components than homogeneous systems,
communicating with function calls.
(The Communicating Sequential Elements pattern is used when the design problem at hand can be
understood in terms of a domain parallelism. The same operations are performed simultaneously on
different pieces of ordered data [3,11]. Operations in each component depend on partial results in
neighbour components.
The Manager-Workers pattern can be considered as a variant of the Master-Slave pattern [1] for
parallel systems, introducing an activity parallelism where the same operations are performed on
ordered data. Each components performs the same operations, independent of the processing
activity of other components. Different pieces of data are processed simultaneously.)
Definitia concurentei
Concurenta – e considerate o proprietate a sistemelor in care 2 sau mai multe procese se afla
simultan in curs de derulare si contextele lor de executie nu sunt disjuncte. Specificarea unei
arhitecturi concurente trebuie sa cuprinda descrierea cooperarii intre procese
Platforme pentru concurență. Implementarea firelor de execuție (în limbaje Java, C#)
1:1 (kernel-level threading – eng.), în care firele create de utilizator corespund firelor planificate de
nucleu (implementat în Windows API, Native POSIX Thread Library, etc.);
N:1 (user-level threading – eng.), în care firele create de aplicații se „execută” planificat în spațiul
utilizatorului pe un singur fir de nivelul nucleului (implementat în GNU Portable Threads);
N:M (hybrid threading – eng.), un compromis dintre precedentele două modele (întru valorificarea
multiprocesării) în care librăriile sunt responsabile pentru planificarea „execuției” multiplelor fire de nivel
utilizator pe firele disponibile de nivel nucleu (implementat în Windows 7, Tera/Cray MTA, etc.);
8) Tehnologii pentru date distribuite semi-structurate: baze de date nerela ționale
a. Motivele aplicării bazelor de date nerelaționale
Motivele pentru crea bazelor de date NoSQL:
SQL este orientat spre tabele, NoSQL este orientat spre documente, colectii , graph-
uri.
SQL este scalabil vertical , NoSQL este scalabil orizontal.
SQL-schema predefinita, NoSQL-schema dinamica.
SQL- bazat pe ACID, NoSQL-bazat pe BASE.
Avantajele NoSQL:
No guarantee support
Too many options
No standard language
When it comes to NoSQL databases, data consistency models can sometimes be strikingly
different than those used by relational databases (as well as quite different from other
NoSQL stores).
The key ACID guarantee is that it provides a safe environment in which to operate on
your data. The ACID acronym stands for:
Atomic - All operations in a transaction succeed or every operation is rolled back.
Either the entire transaction takes place at once or doesn’t happen at all.
Consistent – Ensures that only valid data following all rules and constraints is written
in the database. When a transaction results in invalid data, the database reverts to its
previous state
Durability - The database should be durable enough to hold all its latest updates
even if the system fails or restarts. If a transaction updates a chunk of data in a
database and commits, then the database will hold the modified data. If a
transaction commits but the system fails before the data could be written on to
the disk, then that data will be updated once the system springs back into
action.daca
BASE
Basically available - The system is guaranteed to be available for
querying by all users. (No isolation here.) Focuses on availability of data
even in the presence of multiple failures
Soft state - The state of the system could change over time.
Unul dintre conceptele de bază din spatele BASE este că coerența datelor este problema
dezvoltatorului și nu ar trebui tratată de baza de date.
Eventual consistency - means that if no further updates are made to a given
updated database item for long enough period of time , all users will see the same
value for the updated item
Singura cerință pe care bazele de date NoSQL o are în ceea ce privește coerența este aceea de
a solicita ca într-un anumit punct al viitorului, datele să se converge la o stare consecventă.
Cu toate acestea, nu se fac garanții cu privire la momentul când acest lucru se va întâmpla.
BASE ACID
Cea mai importanta e disponibilitatea . Less availability
Best effort Strong consistency
Simple and fast Complex
Optimistic
Weaker consistency
Each unique identifier is stored as a key with its associated value. The
value can be any sort of byte array, data structure, or binary large object
(BLOB)
Example: Shopping carts: all the shopping info can be put into value
where key is the user id;
UserPreferences(language, color, timezone etc) as value can be put
into value with the key=userID
(Ex: Cassandra)
Column oriented databases are databases that organize data by field,
keeping all of the data associated with a field next to each other in
memory.
An idempotent HTTP method is a HTTP method that can be called many times without different
outcomes(OPTION, GET, HEAD, DELETE, PUT )
GET
a. client-server The client and the server both have a different set of concerns.
The server stores and/or manipulates information and makes it available to the
user in an efficient manner. The client takes that information and displays it to the
user and/or uses it to perform subsequent requests for information. This
separation of concerns allows both the client and the server to evolve
independently as it only requires that the interface stays the same.
b. Stateless That means the communication between the client and the server
always contains all the information needed to perform the request. There is no
session state in the server, it is kept entirely on the client's side. If access to a
resource requires authentication, then the client needs to authenticate itself with
every request.
c. Cacheable The client, the server and any intermediary components can all cache
resources in order to improve performance.
d. uniform interface This simplifies the architecture, as all components follow the
same rules to speak to one another.
e. Layered system Individual components cannot see beyond the immediate layer
with which they are interacting. This means that a client connecting to an
intermediate component, like a proxy, has no knowledge of what lies beyond.
This allows components to be independent and thus easily replaceable or
extendable.
f. provides code on demand
Revalidation
Schedule updates
Pushing
Cache-control
Congestion control: The Congestion Control option enables you to configure Traffic
Server to stop forwarding HTTP requests to origin servers when they become congested.
Traffic Server then sends the client a message to retry the congested origin server later.
2. Set the variable proxy.config.http.congestion_control.enabled to 1
o Create rules in the congestion.config file to specify:
o which origin servers Traffic Server tracks for congestion
o the timeouts Traffic Server uses, depending on whether a server is congested
o the page Traffic Server sends to the client when a server becomes congested
o if Traffic Server tracks the origin servers per IP address or per hostname
3. Run the command traffic_line -x to apply the configuration changes.
Caching in sistemele distribuite
Distributed caching refers to the ability in a distributed system to access data
from within the distributed system itself instead of relying on a separate system of record.
o Generally, the caching is performed in the main memory of the machines that
make up the distributed system; main memory is potentially augmented by
high performance storage, such as flash memory.
o Information is typically replicated, partitioned (a.k.a. sharded), invalidated, or
any combination thereof. Data is said to be replicated when a distributed
caching system proactively makes multiple copies of that data for achieving
some combination of availability and locality-of-reference. Data is said to be
partitioned when a distributed caching system allocates sub-sets of the data
to different machines and is able to subsequently route data requests for the
appropriate sub-sets to each corresponding machine; partitioning can be
static (e.g. memcache) or dynamic (e.g. Coherence). Data is said to be
invalidated when an action or event in a distributed system determines that all
copies of a cached piece of information should be discarded.
o Generally, a distributed cache is accessed by primary key (as in a key/value
store or document model), but some may also support being queried by other
criteria.
o Information that is owned by other systems of record is typically accessed via
a cache-aside model in which the application reads the data and then places
it into the cache, or via a cache-through model in which the cache itself is
responsible for communicating with the system of record.
Distributed cache tracks the modification timestamps of cache files, which notifies that
the files should not be modified until a job is executing currently.
HTTP Caching
d) Cadre de programare ce facilitează dezvoltarea orientată pe web servicii
i)Track the JAX-RS API and provide regular releases of production quality Reference
Implementations that ships with GlassFish;
ii)Provide APIs to extend Jersey & Build a community of users and developers; and finally
iii)Make it easy to build RESTful Web services utilising Java and the Java Virtual Machine.
A model is an object that represents the data in your application. ASP.NET Web API
can automatically serialize your model to JSON, XML, or some other format, and then
write the serialized data into the body of the HTTP response message. Most clients
can parse either XML or JSON. Moreover, the client can indicate which format it
wants by setting the Accept header in the HTTP request message.