2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
Pirma parte del seminario su NoSQL al DiTeDi di Udine del 15/12/2012. Affrontato il caso di studio di un'architettura enterprise, basata su datastore relazionali (PostgreSQL) e non (CouchDB, MongoDB, Redis e OrientDB).
Il motore di database MySQL, suo funzionamento e utilizzo. Le novita' introdotte dalla versione 5.
Talk tenuto da Alessandro Tanasi (http://www.tanasi.it)
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...Andrea Cannella
Seminario sulle Architetture Distribuite per le basi di dati. Presentato durante il Corso di DataBase presso l'Università degli Studi di Catania - Corso di Laurea in Informatica (Facoltà di Scienze Matematiche, Fisiche e Naturali)
(Copyleft) Andrea Cannella 2010
[SLIDE]Modellazione della dinamica di un liquido bifase mediante GPU CUDAkylanee
Presentazione per prelaurea.
I risultati del lavoro aggiornati sono disponibili nell'elaborato completo: http://www.slideshare.net/kylanee/tesi-11937891
La presentazione della tesi magistrale in Ingegneria Informatica presso l'Università di Bologna, sviluppata durante uno stage in IBM e intitolata "ANALISI E SVILUPPO DI STRUMENTI
PERFORMANCE-AWARE PER LA
MIGRAZIONE CLOUD ENTERPRISE"
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.
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
2014.11.14 Implementare e mantenere un progetto Azure SQL DatabaseEmanuele Zanchettin
Questa sessione affronta come implementare, mantenere e far evolvere soluzioni sviluppate su Azure SQL Database, attraverso l’utilizzo degli strumenti SQL Sever Management Studio e Visual Studio. Attraverso esempi e casi reali, saranno illustrate la versatilità, potenza e affidabilità del database come servizio nel cloud.
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
Pirma parte del seminario su NoSQL al DiTeDi di Udine del 15/12/2012. Affrontato il caso di studio di un'architettura enterprise, basata su datastore relazionali (PostgreSQL) e non (CouchDB, MongoDB, Redis e OrientDB).
Il motore di database MySQL, suo funzionamento e utilizzo. Le novita' introdotte dalla versione 5.
Talk tenuto da Alessandro Tanasi (http://www.tanasi.it)
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...Andrea Cannella
Seminario sulle Architetture Distribuite per le basi di dati. Presentato durante il Corso di DataBase presso l'Università degli Studi di Catania - Corso di Laurea in Informatica (Facoltà di Scienze Matematiche, Fisiche e Naturali)
(Copyleft) Andrea Cannella 2010
[SLIDE]Modellazione della dinamica di un liquido bifase mediante GPU CUDAkylanee
Presentazione per prelaurea.
I risultati del lavoro aggiornati sono disponibili nell'elaborato completo: http://www.slideshare.net/kylanee/tesi-11937891
La presentazione della tesi magistrale in Ingegneria Informatica presso l'Università di Bologna, sviluppata durante uno stage in IBM e intitolata "ANALISI E SVILUPPO DI STRUMENTI
PERFORMANCE-AWARE PER LA
MIGRAZIONE CLOUD ENTERPRISE"
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.
The document discusses architectural adaptation and software evolution. It characterizes different types of changes that can occur, including corrective changes, new features, and changes to the operating environment. It also describes different levels at which changes can be made, from the component interior to the overall system configuration. Effective adaptation requires techniques like explicit architectural models, adaptable connectors, and message-based communication. The roles of change agents, strategic and tactical planning, and quiescence are also outlined.
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( ‐ Sistemi transazionali
3. Ricordiamo le principali caraGerisNche dei DBMS
condivisione dei daN
concorrenza
qualità dei daN
integrità
efficienza
caricamento, query, sort
controllo dell'accesso
fuoco
privatezza
su integrità,
robustezza concorrenza,
robustezza, efficienza
3 Basi di Da( ‐ Sistemi transazionali
5. Atomicità
ATOMICITÀ (atomicity) delle transazioni: le operazioni
previste cosNtuiscono un tuGo unico, devono
pertanto essere eseguite nella loro interezza o non
essere eseguite per niente.
SERIALIZZAZIONE DELLE OPERAZIONI: Le operazioni
eventualmente svolte in parallelo devono portare il
DB ad uno stato equivalente all'esecuzione seriale
delle medesime operazioni.
La transazione è quindi una TRASFORMAZIONE
ATOMICA dallo stato iniziale a quello finale.
5 Basi di Da( ‐ Sistemi transazionali
10. Recovery
GUASTO ALL'INTERNO DI UNA TRANSAZIONE
a) ABORT: una transazione si interrompe per un errore
sojware e quindi il DBMS ne esegue il ROLLBACK (“ritorno
indietro” delle modifiche apportate ai daN)
b) ROLLBACK di una transazione: una transazione può
autonomamente chiedere il rollback se scopre
inconsistenza nei daN o la non fanbilità delle operazioni
c) ABORT FORZATO di una transazione: una transazione
“aborNta” è forzata al rollback se il DBMS scopre
violazione di vincoli o di autorizzazioni, situazioni di stallo
(deadlock), fallimento di altre transazioni coordinate in
parallelo.
10 Basi di Da( ‐ Sistemi transazionali
14. Consistenza
La transazione rispeGa i vincoli di integrità, come conseguenza:
se lo stato iniziale è correGo anche lo stato finale è
correGo
Isolamento
La transazione è isolata dalle altre transazioni concorrenN
(non espone i suoi staN intermedi prima della sua
conclusione). Si evita l' “effeGo domino”
Persistenza
Gli effen di un commit work dureranno “per sempre”
(indipendentemente dai guasN del sistema)
14 Basi di Da( ‐ Sistemi transazionali
18. Replicazione off‐line : unità di backup
BACKUP
DATABASE
SERVER
DUMP
DATABASE
Il DBMS Nene sempre una vecchia copia del DB su un
altro disposiNvo (nastro o disco) aggiornata periodicamente
(DUMP).
18 Basi di Da( ‐ Sistemi transazionali
19. GesNone della memoria centrale
disco buffer
i/o
di memoria
centrale
razionale:
• uso frequente dei daN già nel buffer
• scriGura differita della base di daN onmizzando le scriGure su
disco
19 Basi di Da( ‐ Sistemi transazionali
20. Uso della memoria centrale
memoria
centrale
pagina x x
y
pagina y
buffer pool
Per ogni transazione c’è un certo numero di pagine disponibili
nel buffer pool, il numero dipende dal numero di transazioni e
dalle loro richieste.
Le pagine contenenN modifiche devono essere riscriGe.
20 Basi di Da( ‐ Sistemi transazionali
21. PoliNche di gesNone del buffer
a STEAL ‐ pagine con daN dirty, cioè modificaN ma
ancora senza commit, soGraGe a una
transazione anva e riportate su disco
NO STEAL
b FORCE ‐ pagine scriGe al commit‐work
NO FORCE
Normalmente :
NO‐STEAL, NO‐FORCE
Le transazioni rilasciano le pagine alla fine, quelle
modificate verranno riscriGe in memoria permanente.
Se necessario le pagine delle transazioni vengono
rimpiazzate con la poliNca LRU (Least Recently Used).
21 Basi di Da( ‐ Sistemi transazionali
23. Il giornale è sequenziale
B(T1) U(T1) U(T1) C(T1)
top del
record della transazioni T1 giornale
Le informazioni registrate sono del Npo :
1) idenNficatore della transazione;
2) codice di operazione;
3) numero di sequenza nel log;
4) puntatore all'ulNmo log record della transazione;
5) idenNficatore del file ed indirizzo del record (Nd);
6) vecchio valore, nuovo valore;
23 Basi di Da( ‐ Sistemi transazionali
30. PoliNche di recovery
UNDO/REDO richiede before and ajer image,
• lascia la gesNone delle pagine al gestore del buffer
che può onmizzare il trasferimento su disco,
• migliora il funzionamento normale,
• peggiora il funzionamento sia in caso di guasN di
sistema al RESTART che di guasN di transazioni,
• permeGe un più sollecito rilascio dei lock.
UNDO/NO REDO richiede ajer image,
• migliora il caso di RESTART ,
• peggiora il caso di guasto di transazione,
• peggiora il funzionamento normale del buffer poiché
forza il gestore del buffer a scaricare le pagine
per terminare la transazione,
• non permeGe un sollecito rilascio dei lock.
30 Basi di Da( ‐ Sistemi transazionali
31. PoliNche di recovery
NO UNDO / REDO non richiede before image,
• favorisce i casi di fallimenN delle transazioni.
NO UNDO / NO REDO
• NO REDO: tuGe le modifiche devono essere nel DB prima
che la transazione sia considerata terminata.
• NO UNDO: nessuna modifica deve essere portata sul
DB prima che la transazione sia considerata terminata.
• Perciò una operazione atomica deve trasferire i daN e
registrare il Commit.
Si usa la tecnica delle pagine ombra (SHADOW PAGES) che è
molto veloce ma richiede molta memoria
31 Basi di Da( ‐ Sistemi transazionali
32. SHADOW PAGES
po pn doppio puntatore
dell’applicazione
page table alla page table
p. ombra p. nuove
po pn po pn
commit (operazione atomica) undo
32 Basi di Da( ‐ Sistemi transazionali
34. CHECKPOINT
T3 e T5 sicuramente non sono state completate e devono
essere soGoposte alla procedura di UNDO.
Per T1, T2 e T4, che sono terminate, non è sicuro se gli
aggiornamenN sono staN definiNvamente copiaN su memoria
ausiliaria.
Bisogna quindi controllare sul LOG e se queste hanno
raggiunto il COMMIT (commit record nel Log) bisogna farne il
REDO .
Quanto indietro nel LOG bisogna andare, per essere sicuri di
eseguire il recovery di tuGe le transazioni terminate in modo
correGo ?
34 Basi di Da( ‐ Sistemi transazionali
35. CHECKPOINT
CHECKPOINT SYSTEM
Periodicamente il sistema esegue il check del DB:
metodo 1
fa terminare le transazioni non ancora terminate e ricopia
tuGo il contenuto del buffer di memoria centrale desNnato al
DB sul disco ed inserisce un "checkpoint record" nel LOG.
Il sistema DBMS, dopo il restart del sistema di calcolo, cerca
nel LOG l'ulNmo checkpoint record ed esegue la sua procedura
di RECOVERY sulle transazioni iniziate dopo. Se il guasto
avviene durante l’operazione di checkpoint è valido il
checkpoint precedente.
35 Basi di Da( ‐ Sistemi transazionali
36. CHECKPOINT
CHECKPOINT SYSTEM
Periodicamente il sistema esegue il check del DB:
metodo 2
ricopia tuGe le pagine di transazioni terminate sul disco ed
inserisce un "checkpoint record" nel LOG, registra nel
checkpoint record gli idenNficatori delle transazioni non
ancora terminate.
Il sistema DBMS, dopo il restart del sistema di calcolo, cerca
nel LOG l'ulNmo checkpoint record ed esegue la sua procedura
di RECOVERY sulle transazioni iniziate dopo e su quelle
registrate nel checkpoint record.
36 Basi di Da( ‐ Sistemi transazionali
37. CHECKPOINT
checkpoint
T1 è ok, per T2 e T4 si fa REDO , per T3 e T5 UNDO
37 Basi di Da( ‐ Sistemi transazionali
38. Funzionamento del recovery manager
Il recovery manager , al restart del sistema, esegue un
protocollo del Npo:
1 Legge su un file di RESTART (sempre contenuto nel LOG)
l'indirizzo dell'ulNmo CHECKPOINT; nel record di
checkpoint sono contenuN gli idenNficatori delle
transazioni anve al momento del checkpoint.
2 Prepara due file: UNDO LIST con gli idenNficatori delle
transazioni anve, REDO LIST vuoto.
38 Basi di Da( ‐ Sistemi transazionali
39. Funzionamento del recovery manager
3 Legge il LOG partendo dall'ulNmo checkpoint:
se trova Begin TransacNon registra la transazione
sulla UNDO LIST,
se trova Commit la porta nella REDO LIST.
Al termine la UNDO LIST conNene la lista delle
transazioni da DISFARE, la REDO LIST quella delle
transazioni da rifare.
4 Il LOG viene rielaborato all'indietro per compiere gli
UNDO con i vecchi valori
5 Il LOG viene rielaborato in avanN per rifare (REDO) le
transazioni da rifare.
Nessun utente è anvo durante il RESTART.
39 Basi di Da( ‐ Sistemi transazionali
41. In caso di guasto di sistema
a guasto soj :
perdita in memoria centrale e
RIPRESA (RESTART) A CALDO
procedura di recovery undo/redo
come già visto o altre simili nei casi
no undo/redo ecc.
b guasto hard
danneggiamento della memoria disco e
RIPRESA A FREDDO
41 Basi di Da( ‐ Sistemi transazionali
43. Altre tecniche di RECOVERY
COPIE MULTIPLE:
Si manNene un numero dispari di copie del DB. In caso di
guasto, facendo dei confronN fra le varie copie, in base ad
un protocollo di maggioranza si onene la copia correGa.
Durante una modifica, una delle copie viene uNlizzata per
scrivere i nuovi valori. Un flag viene seGato per indicare un
"update in progress" anche per le altre copie.
Successivamente la modifica viene estesa in parallelo (per
quanto possibile) a tuGe le altre copie. Esse quindi sono
sempre correGe (ed uguali), esclusi gli istanN in cui si
esegue la scriGura.
Tecnica molto uNlizzata nelle applicazioni avanzate (spaziali,
militari, etc....).
43 Basi di Da( ‐ Sistemi transazionali
44. FORWARD ERROR RECOVERY
1) BACKWARD ERROR RECOVERY:
è quella già vista che stabilisce che il riprisNno del DB
avvenga ritornando ad uno stato passato correGo. (Se non è
possibile, si cerca di riportare il DB in uno stato almeno
consistente). Sono le tecniche usate dai DBMS per i sistemi
aziendali.
2) FORWARD ERROR RECOVERY:
tecnica che prosegue normalmente l'esecuzione (se
possibile) tentando una compensazione degli errori. Non
permeGe l'uso di tecniche generali ma solo di algoritmi
specifici. Usata in sistemi strategici o in casi in cui non c’è
tempo per il recovery backward.
44 Basi di Da( ‐ Sistemi transazionali
45. Altre tecniche di RECOVERY
HW CRASH:
SISTEMI RESILIENTI: sistemi completamente duplicaN che
svolgono esaGamente lo stesso lavoro:
il sistema "slave" sosNtuisce immediatamente il "master" in
caso di roGura.
In sistemi strategici i soGosistemi sono più di due: può
sussistere il problema (grave) che il master non lavori più in
modo correGo e consideri guasN gli slave che a loro volta lo
considerano guasto. Gli algoritmi per la gesNone di questa
situazioni sono molto complessi.
45 Basi di Da( ‐ Sistemi transazionali