This document lists items for a digital scavenger hunt, including a wolf, the number 5, something green, an arrow, something that says "Westside", a group of three, an advertisement, something you sit on, a textbook, something seasonal, litter, something that can hold liquid, the word "Exit", an open door, and a group photo.
This document provides an inventory of artworks by Andy painter including oil paintings, watercolors, drawings in pastel, ink and pencil, and sculptures. The works are listed with their title, size, and materials/technique. There are over 50 individual artworks spanning various mediums listed in the document.
This presentation discusses the eternal struggle between good and evil. It was created by Marco Belzoni in 2010 and contains copyrighted photos and music that belong to their original authors.
A história fala sobre um homem que observou uma borboleta saindo de seu casulo. Impaciente, ele cortou o restante do casulo para ajudá-la, mas a borboleta acabou incapaz de voar com as asas encolhidas e fracas. Isso ilustra como os obstáculos na vida nos fortalecem e nos preparam para enfrentar desafios.
This document lists items for a digital scavenger hunt, including a wolf, the number 5, something green, an arrow, something that says "Westside", a group of three, an advertisement, something you sit on, a textbook, something seasonal, litter, something that can hold liquid, the word "Exit", an open door, and a group photo.
This document provides an inventory of artworks by Andy painter including oil paintings, watercolors, drawings in pastel, ink and pencil, and sculptures. The works are listed with their title, size, and materials/technique. There are over 50 individual artworks spanning various mediums listed in the document.
This presentation discusses the eternal struggle between good and evil. It was created by Marco Belzoni in 2010 and contains copyrighted photos and music that belong to their original authors.
A história fala sobre um homem que observou uma borboleta saindo de seu casulo. Impaciente, ele cortou o restante do casulo para ajudá-la, mas a borboleta acabou incapaz de voar com as asas encolhidas e fracas. Isso ilustra como os obstáculos na vida nos fortalecem e nos preparam para enfrentar desafios.
Back to Basics, webinar 6: Messa in esercizioMongoDB
Questo è l'ultimo webinar della serie Back to Basics
che ti offrirà un'introduzione al database MongoDB. Questo webinar ti guiderà attraverso tutti i passaggi per l'implementazione della produzione.
Deploy MongoDB su Infrastruttura Amazon Web ServicesStefano Dindo
Lo scopo della presentazione è quella di fornire una visione a 360 gradi su come realizzare un'architettura MongoDB su un'infrastruttura Cloud Amazon Web Services.
La presentazione è suddivisa in quattro aree:
- Introduzione di base su MongoDB
- Preview delle caratteristiche di MongoDB 3
- Come organizzare architetture Replica Set e Sharding di MongoDB in VPC Cloud di Amazon Web Services
- Introduzione alle logiche di Schema Design di MongoDB
La presentazione è stata realizzato per un seminario da tenere durante il corso di Sistemi Operativi Avanzati. Durante la presentazione si è discusso di Hadoop partendo dalle origini fino ad arrivare a parlare di qualche dettaglio più approfondito. Non si è scelto di entrare troppo nel dettaglio in quanto in seguito alla presentazione si è tenuta una demo sull'utilizzo di Hadoop su un cluster da noi allestito all'interno dell'università.
Master: Amministratore Linux - Livello Avanzato
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
This document discusses software services and cloud computing architectures. It begins by providing context on the growing service economy and how businesses are increasingly offering services rather than products. It then defines software-as-a-service (SaaS) and describes how SaaS delivers software applications over the internet, with updates and management occurring remotely. Finally, the document discusses service-oriented architectures and how they support the development and delivery of software services.
The document discusses architecture-centric software development processes. It describes traditional waterfall and iterative development models, and notes that iterative models allow for more flexibility to changing requirements. Agile development methods like eXtreme Programming (XP) are discussed, which emphasize iterative development, collaboration, and rapid delivery of working software. Key practices of XP are outlined, including user stories, testing, pair programming, refactoring, and continuous integration. The role of architecture in agile processes is also addressed.
This document discusses software product lines and product line architectures. It defines a software product line as a set of software systems that share a common set of features addressing a particular market segment. Product lines are developed from a common set of core assets in a prescribed way to reduce costs and increase reuse. A product line architecture is a common framework that standardizes components and maximizes reuse potential. It specifies common functionality and identifies variation points across related products. Variability management is important for providing flexibility without compromising commonality.
Back to Basics, webinar 6: Messa in esercizioMongoDB
Questo è l'ultimo webinar della serie Back to Basics
che ti offrirà un'introduzione al database MongoDB. Questo webinar ti guiderà attraverso tutti i passaggi per l'implementazione della produzione.
Deploy MongoDB su Infrastruttura Amazon Web ServicesStefano Dindo
Lo scopo della presentazione è quella di fornire una visione a 360 gradi su come realizzare un'architettura MongoDB su un'infrastruttura Cloud Amazon Web Services.
La presentazione è suddivisa in quattro aree:
- Introduzione di base su MongoDB
- Preview delle caratteristiche di MongoDB 3
- Come organizzare architetture Replica Set e Sharding di MongoDB in VPC Cloud di Amazon Web Services
- Introduzione alle logiche di Schema Design di MongoDB
La presentazione è stata realizzato per un seminario da tenere durante il corso di Sistemi Operativi Avanzati. Durante la presentazione si è discusso di Hadoop partendo dalle origini fino ad arrivare a parlare di qualche dettaglio più approfondito. Non si è scelto di entrare troppo nel dettaglio in quanto in seguito alla presentazione si è tenuta una demo sull'utilizzo di Hadoop su un cluster da noi allestito all'interno dell'università.
Master: Amministratore Linux - Livello Avanzato
Nel contesto della formazione professionale rivolta ad aziende ed enti pubblici, sono stati preparati ed erogati dei corsi di Amministratore di sistemi Linux, al livello base ed al livello avanzato.
Il contenuto del corso è allineato con alcuni moduli della certificazione LPIC (Linux Professional Institute Certification), a cavallo tra i livelli 1 e 2. Tutto il materiale didattico è disponibile liberamente con licenza Creative Commons BY-NC-SA.
I docenti del corso sono i proff. Giovanni Squillero, Bartolomeo Montrucchio e Fulvio Corno.
Maggiori informazioni: http://elite.polito.it/index.php/teaching/current-courses/255-master-linux-admin
This document discusses software services and cloud computing architectures. It begins by providing context on the growing service economy and how businesses are increasingly offering services rather than products. It then defines software-as-a-service (SaaS) and describes how SaaS delivers software applications over the internet, with updates and management occurring remotely. Finally, the document discusses service-oriented architectures and how they support the development and delivery of software services.
The document discusses architecture-centric software development processes. It describes traditional waterfall and iterative development models, and notes that iterative models allow for more flexibility to changing requirements. Agile development methods like eXtreme Programming (XP) are discussed, which emphasize iterative development, collaboration, and rapid delivery of working software. Key practices of XP are outlined, including user stories, testing, pair programming, refactoring, and continuous integration. The role of architecture in agile processes is also addressed.
This document discusses software product lines and product line architectures. It defines a software product line as a set of software systems that share a common set of features addressing a particular market segment. Product lines are developed from a common set of core assets in a prescribed way to reduce costs and increase reuse. A product line architecture is a common framework that standardizes components and maximizes reuse potential. It specifies common functionality and identifies variation points across related products. Variability management is important for providing flexibility without compromising commonality.
6 - Architetture Software - Model transformationMajong DevJfu
This document discusses model transformations in Model-Driven Architecture (MDA). It defines computation independent models (CIMs), platform independent models (PIMs), and platform specific models (PSMs). It explains that model transformations are used to map between these different abstraction levels and ensure consistency. It also discusses model mappings, approaches to transformations, and tools like EMF and ATL that support transformations in Eclipse.
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
The document discusses metamodeling and the Model Driven Architecture (MDA). It covers topics such as model driven engineering, metamodeling, metamodeling in UML, and the OMG technologies that support MDA. Metamodeling involves modeling modeling elements and their relationships. Metamodels define the structure of models, while models are instances that conform to metamodels. The MDA uses metamodels and models to develop and transform systems.
This document provides an overview of software architectures by presenting examples of architectures from various software systems. It begins with an introduction to software architecture and what it entails. It then shows numerous diagrams and visualizations of architectures for different types of systems, such as editors, compilers, operating systems, middleware, and web applications. These examples are intended to demonstrate common architectural patterns and styles. The document discusses analyzing and comparing the architectures visually and recognizing patterns within them.
The document discusses architectural styles and decomposition techniques for software systems. It describes layering and tiering as basic decomposition approaches, with layers representing different levels of abstraction and tiers representing peer modules within the same layer. Several common architectural styles are then introduced, including pipes and filters, repository, client/server, model-view-controller, service-oriented, and peer-to-peer. Closed and open layered architectures are contrasted, and examples of layered systems like virtual machines and the OSI model are provided. Finally, the document notes that complete decompositions often involve both layering and partitioning techniques.
The document discusses key concepts in software architecture, including:
1) Software architecture establishes the overall structure and organization of a system, including its components and relationships.
2) Architectural design involves decomposing a system into subsystems or modules to improve modifiability, reusability, and portability.
3) Key principles for architectural design include simplicity, modularity, low coupling, separation of concerns, abstraction, and postponing decisions.
1 - Architetture Software - Software as a productMajong DevJfu
This document discusses software as a product and industry. It covers how software is a key component in modern technologies and industries. The software industry has grown significantly in recent decades. The document discusses different types of software such as embedded software, middleware, and software as a service. It also covers topics like software architecture, engineering, components, ecosystems, and the challenges in developing software. Overall, the document provides an overview of software as an industrial product and the software development industry.
10 - Architetture Software - More architectural stylesMajong DevJfu
The Microkernel pattern partitions an operating system into isolated, minimal components that communicate through a small, fixed message-passing interface, allowing components to be developed and upgraded independently while maintaining overall system stability and security.
The document discusses architectural UML and provides information on:
1) The elements of a software architecture including views, models, and diagrams.
2) How UML can be used to represent different architectural views including design, process, development, and physical views.
3) An example of using UML models and diagrams to represent different views of a chess game architecture.
UML allows for extending diagrams and modeling elements through three main techniques:
1. Stereotypes allow applying tags to existing modeling elements like classes, associations, etc. to add domain-specific meaning.
2. Profiles extend UML with new modeling elements tailored for specific domains or platforms.
3. Extension mechanisms allow precisely defining new constructs that integrate with the UML metamodel. Together these techniques make UML extensible for multiple domains.
The document discusses metamodeling and the Model Driven Architecture (MDA). It provides an overview of model driven engineering and metamodeling. Specifically, it discusses how metamodels define the structure of models through concepts like classes and relationships. The Model Driven Architecture uses metamodels and modeling to develop software systems from models.
Here are the key differences between objects and classes in UML:
- Classes define the general characteristics (attributes and operations) that objects of that class will have. Objects are specific instances of a class.
- Classes are static definitions, while objects are dynamic instances of classes that exist at run time.
- In class diagrams, classes are represented as boxes containing the attributes and operations. Objects are represented as boxes with the class name followed by a colon and the object name (e.g. Person:John).
- Classes define the common properties for a set of objects, while each object is a unique instance of a class with its own identity and particular values for attributes.
- Classes are abstractions,
The document discusses architectural styles and decomposition techniques. It describes layers as hierarchical sets of subsystems that provide related services by utilizing underlying layers. Tiers partition a system into peer subsystems responsible for classes of services. Common architectural styles include pipes and filters, repository, client/server, model-view-controller, service-oriented, and peer-to-peer. Layers and tiers are often combined for complete decomposition, with subsystems divided into tiers and each tier organized into layers. The pipe and filter style focuses on dynamic interaction by processing data streams through filters connected by pipes.
- Reference architectures that provide templates for common system types
- Design patterns that capture successful solutions to recurring problems
- Architectural patterns that describe best practices for system organization
- Legacy applications that can be analyzed for reusable architectural elements
This document discusses software as a product and the software industry. It covers topics such as why software is important, emerging technologies according to Gartner's hype cycle from 2005-2010, software being an industrial product, the size of the worldwide software industry, different types of software including embedded software and software as a service. It also discusses software components, software architecture and engineering issues, producing software is difficult due to complexity, low productivity in the industry, the software development process, different process models, lifecycle differences around the world, development activities, process models, and software standards.
This short document contains 5 headings but provides no other details or context. It lists the headings "My Heading Here First Second Third Fourth Fifth" but does not elaborate on or explain these headings.
This document provides an overview of various types of architectural standards including conceptual standards like IEEE 1471 and DoDAF that define viewpoints and views, notational standards like UML and SysML, and process standards like TOGAF and RUP. It discusses the benefits of standards in promoting interoperability and network effects while also noting drawbacks like limiting flexibility. The document advises deciding when to adopt a standard based on whether in the early or late phase of a project.
2. A) Introduzione
1 2
B) Prog. ConceGuale (ER)
C) Modello Relazionale,
Algebra relazionale, SQL
1 2 3 4 5 6 7 1 2 3 4 5 6 7
D) Prog. Logica e E) Tecnologia di un DBMS
Normalizzazione
1 2 3 4 1 2 3 4 5 6
F) Programmazione DB
1 2
2 Basi di Da) ‐ Metodi di Accesso (File)
3. Nelle lezioni precedenM
Avete visto:
le caraGerisMche delle principali unità di memoria
permanente
In questa lezione
Presenteremo:
la struGura dei file
il loro ordinamento
3 Basi di Da) ‐ Metodi di Accesso (File)
4. StruGura di un data server
CPU memorie
canale permanenM
memoria
centrale
buffer blocco
blocco‐min = seGore
4 Basi di Da) ‐ Metodi di Accesso (File)
5. File Directory
DIRECTORY (elenco dei file) è una tabella che viene
consultata dal FILE SYSTEM (che è parte del sistema
operaMvo) o dal DBMS e che conMene le informazioni sui
file. Sta sul disco.
Il contenuto è molto diverso da sistema a sistema,
informazioni Mpiche sono:
nome del file, proprietario,
locazione di inizio,
numero di blocchi allocaM, numero di blocchi uMlizzaM
ecc.
5 Basi di Da) ‐ Metodi di Accesso (File)
7. StruGura del file UNIX
b 1 dim. di b = 512
inode
ptr 1 b 2
ptr 2
b 11
ptr 10 b 10
ptr 11 b 12
ptr 12
ptr 13 128 ptr
b 138
7 Basi di Da) ‐ Metodi di Accesso (File)
8. StruGura del file UNIX
ptr 12 128 ptr 128 ptr b 139
ptr 13
16522
128 ptr
16523
128 ptr 128 ptr
bfin
bfin: 2 113 674 tot.: 1 GB
8 Basi di Da) ‐ Metodi di Accesso (File)
9. StruGura dei file
La dimensione dei blocchi può essere
superiore, fino ad oltre 8 ÷ 16 kB
Anche se ci sono più livelli di indirizzamento e
i file system ogmizzano la gesMone del buffer
e il trasferimento, le prestazioni generali per
l’accesso ad un file vengono valutate come
somma del numero di blocchi di daM che
vengono scrig o leg da un’operazione
9 Basi di Da) ‐ Metodi di Accesso (File)
10. Accesso sequenziale al file
Select * from ciGadini where codice = ‘cf’
– ciGadini è una relazione di NT tuple contenuta
in un file di NB blocchi
– la relazione non è in ordine di codice
– vengono visitaM i blocchi fino a che si trova ‘cf’
10 Basi di Da) ‐ Metodi di Accesso (File)
12. Ordinamento del file
• Ordinare un file è uMle non solo per la presentazione
del contenuto (elenchi, lisMni anagrafi ecc.), ma anche
per velocizzare la ricerca
• L’ordinamento di un file molto grande è un’operazione
molto lenta che viene di regola effeGuata con il
metodo Sort/Merge (a M vie),
supponiamo di avere un file di NB blocchi che non può
essere contenuto in memoria di lavoro
il file viene ordinato in due fasi:
• la fase di sort,
• la fase di merge
12 Basi di Da) ‐ Metodi di Accesso (File)
15. Ordinamento del file
FASE DI MERGE
• la fase è cosMtuita da più passi:
– passo: vengono portaM in memoria gradualmente i
blocchi di M (parametro del merge) file , si opera
una fusione ordinata delle tuple contenute
oGenendo un file M volte più grande (ordinato)
– l’operazione si ripete fino ad esaurire gli NF file (ad
ogni passo NF diminuisce)
• i passi si ripetono fondendo file sempre più grandi fino
ad oGenere un unico file ordinato
15 Basi di Da) ‐ Metodi di Accesso (File)
16. Ordinamento del file
FASE DI MERGE
primo passo
1 1
NF’= NF/M file ordinaM
M volte più grandi
M M
ulMmo passo
1
1 file ordinato
M’≤ M
16 Basi di Da) ‐ Metodi di Accesso (File)
18. Ordinamento del file
Vediamo i passi di MERGE per un file di 81 blocchi con M = 3 , il sort
produce 27 file di NM = 3 blocchi:
F4 (9 file di 3 blocchi)
F5 (9 file di 3 blocchi)
F6 (9 file di 3 blocchi) passo 1
F1 (3 file di 9 blocchi)
passo 2 F2 (3 file di 9 blocchi)
F3 (3 file di 9 blocchi)
F4 (1 file di 27 blocchi)
F5 (1 file di 27 blocchi) passo 3
F6 (1 file di 27 blocchi)
F1 (1 file di 81 blocchi)
18 Basi di Da) ‐ Metodi di Accesso (File)
20. Ordinamento del file
Ogni passo comporta una leGura e una scriGura per
ogni blocco (NB).
Considerando che la fase di sort interno iniziale
comporta un passo prevenMvo, oGeniamo:
Csort = 2 × NB × (PM + 1)
Quindi:
Csort = 2 × NB × ( LogM (NB/NM) + 1)
(sono comunque possibili ogmizzazioni)
20 Basi di Da) ‐ Metodi di Accesso (File)
21. Ricerca binaria
Sul file ordinato si può effeGuare la ricerca binaria
2 1 NB=11
3
3 5 6 11
la ricerca binaria ha un costo Cbin :
Cbin = Log 2 NB ‐ 1 (costo medio con successo)
Cbin = Log 2 NB + 1 (caso peggiore, insuccesso)
con i daM dell’esercizio e NM = 16, M = 8 si ha
Csort = 100000 e Cbin = 13÷15 << NB/2 = 5000
21 Basi di Da) ‐ Metodi di Accesso (File)
23. Calcolo del costo di leGura
con ricerca sequenziale abbiamo un numero di accessi
medio = NB/2 e quindi un costo :
con blocchi non conMgui
NL = NB/2 × tread = 50000 × 24.47ms = 1223.5 s = ≈20 min
con blocchi conMgui sullo stesso cilindro e trascurando il tempo di
cambio di cilindro
NL = NB/2 × tread = 50000 × 8.47ms = ≈7 min
con ricerca binaria abbiamo un numero di accessi medi =
log2 NB ‐1= 16 accessi:
NL = 16 × 24.47 = ≈392 ms cioè meno di un secondo!
23 Basi di Da) ‐ Metodi di Accesso (File)
24. Metodi di organizzazione
In un file può esistere un solo ordinamento (su una
sola colonna o su un gruppo)
l’ordinamento è costoso da oGenere e da
mantenere( a seguito di inserimenM di nuove tuple)
l’ordinamento su un aGributo favorisce solo alcune
query e non ne favorisce altre
l’ordinamento è un metodo di organizzazione
‘primario’, vedremo altre organizzazioni che possono
essere uMlizzate sia come primarie che come
secondarie
24 Basi di Da) ‐ Metodi di Accesso (File)
25. Metodi di organizzazione
I Mpi di organizzazione sono sostanzialmente due:
le organizzazioni ad INDICE che uMlizzano file di supporto
che riportano per ogni valore della chiave l’indirizzo nel file
di dove è localizzata la tupla
le organizzazioni HASH (indirizzo calcolato) che per allocare
una tupla in un file soGopongono la chiave ad una
trasformazione con una funzione deGa funzione hash che
trasforma il valore della chiave in un valore numerico che
corrisponde all’indirizzo nel file
25 Basi di Da) ‐ Metodi di Accesso (File)