The Data Access Layer:

Size: px
Start display at page:

Download "The Data Access Layer:"

Transcription

1 EBOOK The Data Access Layer: A PRAGMATIC APPROACH

2 01 06 Identifying the Optimal DAL Architecture What are Patterns Decomposing the Data Layer Pass-Thru Eager and Deffered Data Materialization Patterns Using Repositories Concurrency Control Unit of Work Pattern Full ORM and Micro ORM How to Select a DAL Pattern

3 here are several Data Access Layer (DAL) patterns used in software application development. Depending on the situation, some are a better fit than others. The DAL architecture best suited for your project depends on many factors. The types of databases, scalability concerns, data workload, frequency of schema changes, project timeline and number of developers on the project impact which DAL pattern is the best choice. In this ebook, we ll reference our development experience to detail how the DAL sits within an N-tier architecture. Then, we ll explain how the Business Logic Layer (BLL) communicates with the DAL, outlining several patterns developers may use when building certain types of applications. 01

4 Decomposing the Data Layer he DAL resides at the base of an N-tier architecture, enabling the BLL to process information needed to execute Presentation or Service Layer functions. These layers may utilize various data representation models to communicate. For example, while the Domain Model an object within the BLL represents the application s use case for data, the DAL materializes the Data Model as a representation of the data persisted in the database. When handling multiple data representations, the DAL must meet four responsibilities: 1. Persist data to the database Storing the data in a persistence medium. 2. Retrieve data from the database Calling data through the data access sub-layer. 3. Leverage object mappings to convert raw data into an object representation (data model). 4. Insulate the BLL from lower level details like persistence mechanism, structure and query construction. Let s dig a little deeper on that third obligation, which concerns object production. 02

5 Eager and Deferred Data Materialization ata materialization is the process of transforming raw data into data models the applications can utilize. There are two types of data materialization: Eager and Deferred. Eager materialization converts data into objects within the DAL. This creates a leaner BLL and enables better testability and troubleshooting regarding whether an issue pertains to logic or data. The main benefit of this approach is a strong boundary between the DAL and other layers which promotes good encapsulation. Deferred materialization allows for full object creation outside of the DAL through lazy loaded properties and collections that retain DAL references. While deferred materialization is powerful, it does introduce challenges: Various race conditions in multi-threaded applications. Performance issues related to excessive database calls. Unexpected exceptions due to disposed DAL references. Partially loaded classes that may cause confusion to the unexpecting developer. Inconsistent state between master and detail records due to time of read in volatile data situations. 03

6 Concurrency Control oncurrency control ensures consistency among interacting components within an application. This prevents data materialization and persistence functions from violating the integrity of data. The DAL (or application) dictates different levels of transactional isolation, the most common of which are: None: The last writer wins. Optimistic: First writer wins. Pessimistic: First to acquire exclusive lock wins. Application circumstances dictate the preferred transaction option. For example, if it s likely multiple users will try to access the same data simultaneously, then pessimistic transactional isolation is preferable. In contrast, optimistic concurrency control is advantageous when there s a low risk of two users making adjustments at the same time. 04

7 Full ORM and Micro ORM bject Relational Mappers (ORMs) are used to automate conversion of relational data into objects. Developers have two options: Full ORMs and Micro ORMs. Full ORMs provide rich feature sets and tooling that expedite project construction and definition of database models. Some advantages are: Built-in change tracking. Automatic SQL Generation. Custom data mappings. Micro ORMs have limited but focused features: Speed and performance. Light configuration requirements. Easy learning curve. The choice between Full and Micro ORMs come down to finding the balance between customizability and simplicity, between feature richness and performance. 05

8 What are Patterns? atterns dictate how the application and the DAL interact with each other by way of determining how the latter operates. More specifically, they dictate not where data will be converted into objects, but how such manipulation will occur. There are five types of patterns: Pass-Thru: A minimalist pattern to access data with no contract. Static Repositories: Defines the contract using static methods. Instance Repositories: Defines the contract using instance methods Unit of Work: Contains a sequence of actions to execute against objects and track changes. Depending on your project necessities, one of these patterns will emerge as a better fit than the others. 06

9 Pass-Thru he Pass-Thru method is the thinnest DAL you can have. Further minimalism would dictate that you would handle all the ORM aspects yourself. If you were using Entity Framework for example, you would have a project with your generated models, mappings and context only. Pass-Thru s lean composition gives developers the freedom to retrieve data in multiple ways. It is up to each developer using this DAL to compose his or her own method of retrieving data using the generated code. This pattern works well with deferred data materialization, since the BLL contains references to the database context directly. The Pass-Thru DAL method affords the developer much flexibility, but it also can lead to inconsistent and redundant code. In addition, it is difficult to create unit tests for this type of DAL, given there s no custom code exposing a clear interface. 07

10 Patterns Using Repositories he repository pattern provides a layer of abstraction between the database and the BLL. It exposes a contract that can be used for unit testing. The two repository-based patterns are Static and Instance Repositories. The Static Repository exposes static methods, eliminating the need for callers to create instances or configure the repository before accessing it. This minimizes BLL-level work, and enables every repository to use other repositories, which can support a rich developer experience. Static repositories need to be aware of thread safety. As the name implies, an Instance Repository necessitates instantiation. This pattern often uses an interface through which the caller constructs an instance, implements it in the local scope and then discards it. A repository may have an empty constructor, or one which possesses dependencies on other repositories. As instantiation becomes more of a burden, the developers will have to manage coupling. This could be addressed using IoC containers, but that introduces additional complexity. 08

11 Unit of Work Pattern he Unit of Work (UOW) pattern tracks a sequence of actions to perform on a database. The primary benefit to the UOW pattern is that the BLL can focus on business logic rather than coordinating database details. The logic is free to make any changes needed and can be loosely composed. After all the business logic has been completed, the application can commit the changes to the database. Data changes are performed as a single transaction so that either the entire set of changes succeeds or no changes are made. The transaction is used to maintain database integrity. 09

12 How to Select a DAL Pattern he pattern you select will largely depend on the project timeframe, application complexity and scalability. Testability and maintainability become important aspects to consider in products or long-term projects. Listed below are the project parameters and the patterns that would best complement them: Low complexity: Pass-Thru Medium complexity: Static Repository Highly testable: Instance Repository Transactional: Unit of Work High encapsulated: Eager materialization Highly dynamic: Deferred materialization Bear in mind that the patterns listed are not exclusive of one another. Features and methods associated with each may be combined to support your application s function. 10

13 11

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Lecture 6: Lazy Transactional Memory. Topics: TM semantics and implementation details of lazy TM

Lecture 6: Lazy Transactional Memory. Topics: TM semantics and implementation details of lazy TM Lecture 6: Lazy Transactional Memory Topics: TM semantics and implementation details of lazy TM 1 Transactions Access to shared variables is encapsulated within transactions the system gives the illusion

More information

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev Transactum Business Process Manager with High-Performance Elastic Scaling November 2011 Ivan Klianev Transactum BPM serves three primary objectives: To make it possible for developers unfamiliar with distributed

More information

TopLink Grid: Scaling JPA applications with Coherence

TopLink Grid: Scaling JPA applications with Coherence TopLink Grid: Scaling JPA applications with Coherence Shaun Smith Principal Product Manager shaun.smith@oracle.com Java Persistence: The Problem Space Customer id: int name: String

More information

POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING. Greenwich (74 w. long.)

POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING. Greenwich (74 w. long.) POJOs in Action DEVELOPING ENTERPRISE APPLICATIONS WITH LIGHTWEIGHT FRAMEWORKS CHRIS RICHARDSON MANNING Greenwich (74 w. long.) contents PART 1 1 preface xix acknowledgments xxi about this book xxiii about

More information

6 Transactional Memory. Robert Mullins

6 Transactional Memory. Robert Mullins 6 Transactional Memory ( MPhil Chip Multiprocessors (ACS Robert Mullins Overview Limitations of lock-based programming Transactional memory Programming with TM ( STM ) Software TM ( HTM ) Hardware TM 2

More information

Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6

Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6 Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6 Some Terms: Architecture the manner in which the components of a computer

More information

Concurrency and Recovery

Concurrency and Recovery Concurrency and Recovery In this section, basic concurrency and recovery primitives of locking,, and logging are addressed. The first few tables cover different kinds of locking: reader/writer, optimistic,

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

CSE 530A ACID. Washington University Fall 2013

CSE 530A ACID. Washington University Fall 2013 CSE 530A ACID Washington University Fall 2013 Concurrency Enterprise-scale DBMSs are designed to host multiple databases and handle multiple concurrent connections Transactions are designed to enable Data

More information

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master Oracle 1Z0-864 Java Enterprise Edition 5 Enterprise Architect Certified Master Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-864 Answer: A, C QUESTION: 226 Your company is bidding

More information

Object Oriented Paradigm

Object Oriented Paradigm Object Oriented Paradigm Ming-Hwa Wang, Ph.D. Department of Computer Engineering Santa Clara University Object Oriented Paradigm/Programming (OOP) similar to Lego, which kids build new toys from assembling

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

Database Application Architectures

Database Application Architectures Chapter 15 Database Application Architectures Database Systems(Part 2) p. 221/287 Database Applications Most users do not interact directly with a database system The DBMS is hidden behind application

More information

Understanding Impact of J2EE Applications On Relational Databases. Dennis Leung, VP Development Oracle9iAS TopLink Oracle Corporation

Understanding Impact of J2EE Applications On Relational Databases. Dennis Leung, VP Development Oracle9iAS TopLink Oracle Corporation Understanding Impact of J2EE Applications On Relational Databases Dennis Leung, VP Development Oracle9iAS TopLink Oracle Corporation J2EE Apps and Relational Data J2EE is one of leading technologies used

More information

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution: Whitepaper The Challenge: Enterprise JavaBeans (EJB) represents a new standard in enterprise computing: a component-based architecture for developing and deploying distributed object-oriented applications

More information

Project # 1: Database Programming

Project # 1: Database Programming Project # 1: Database Programming CSE462 Database Concepts Demian Lessa Department of Computer Science and Engineering State University of New York, Buffalo February 21, 2011 Outline 1 Database Programming

More information

Some Examples of Conflicts. Transactional Concurrency Control. Serializable Schedules. Transactions: ACID Properties. Isolation and Serializability

Some Examples of Conflicts. Transactional Concurrency Control. Serializable Schedules. Transactions: ACID Properties. Isolation and Serializability ome Examples of onflicts ransactional oncurrency ontrol conflict exists when two transactions access the same item, and at least one of the accesses is a write. 1. lost update problem : transfer $100 from

More information

Application Architectures, Design Patterns

Application Architectures, Design Patterns Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term

More information

Postgres Plus and JBoss

Postgres Plus and JBoss Postgres Plus and JBoss A New Division of Labor for New Enterprise Applications An EnterpriseDB White Paper for DBAs, Application Developers, and Enterprise Architects October 2008 Postgres Plus and JBoss:

More information

WHAT IS SOFTWARE ARCHITECTURE?

WHAT IS SOFTWARE ARCHITECTURE? WHAT IS SOFTWARE ARCHITECTURE? Chapter Outline What Software Architecture Is and What It Isn t Architectural Structures and Views Architectural Patterns What Makes a Good Architecture? Summary 1 What is

More information

Lecture 21: Transactional Memory. Topics: consistency model recap, introduction to transactional memory

Lecture 21: Transactional Memory. Topics: consistency model recap, introduction to transactional memory Lecture 21: Transactional Memory Topics: consistency model recap, introduction to transactional memory 1 Example Programs Initially, A = B = 0 P1 P2 A = 1 B = 1 if (B == 0) if (A == 0) critical section

More information

Building loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg

Building loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg Building loosely coupled and scalable systems using Event-Driven Architecture Jonas Bonér Patrik Nordwall Andreas Källberg Why is EDA Important for Scalability? What building blocks does EDA consists of?

More information

Lecture 21: Transactional Memory. Topics: Hardware TM basics, different implementations

Lecture 21: Transactional Memory. Topics: Hardware TM basics, different implementations Lecture 21: Transactional Memory Topics: Hardware TM basics, different implementations 1 Transactions New paradigm to simplify programming instead of lock-unlock, use transaction begin-end locks are blocking,

More information

Using the JADE Report Writer

Using the JADE Report Writer Using the JADE Report Writer Jade Software Corporation Limited cannot accept any financial or other responsibilities that may be the result of your use of this information or software material, including

More information

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar

Produced by. Design Patterns. MSc in Computer Science. Eamonn de Leastar Design Patterns MSc in Computer Science Produced by Eamonn de Leastar (edeleastar@wit.ie)! Department of Computing, Maths & Physics Waterford Institute of Technology http://www.wit.ie http://elearning.wit.ie

More information

"Charting the Course... Mastering EJB 3.0 Applications. Course Summary

Charting the Course... Mastering EJB 3.0 Applications. Course Summary Course Summary Description Our training is technology centric. Although a specific application server product will be used throughout the course, the comprehensive labs and lessons geared towards teaching

More information

Lecture: Consistency Models, TM

Lecture: Consistency Models, TM Lecture: Consistency Models, TM Topics: consistency models, TM intro (Section 5.6) No class on Monday (please watch TM videos) Wednesday: TM wrap-up, interconnection networks 1 Coherence Vs. Consistency

More information

Lecture: Consistency Models, TM. Topics: consistency models, TM intro (Section 5.6)

Lecture: Consistency Models, TM. Topics: consistency models, TM intro (Section 5.6) Lecture: Consistency Models, TM Topics: consistency models, TM intro (Section 5.6) 1 Coherence Vs. Consistency Recall that coherence guarantees (i) that a write will eventually be seen by other processors,

More information

BUYING SERVER HARDWARE FOR A SCALABLE VIRTUAL INFRASTRUCTURE

BUYING SERVER HARDWARE FOR A SCALABLE VIRTUAL INFRASTRUCTURE E-Guide BUYING SERVER HARDWARE FOR A SCALABLE VIRTUAL INFRASTRUCTURE SearchServer Virtualization P art 1 of this series explores how trends in buying server hardware have been influenced by the scale-up

More information

Patterns on XRegional Data Consistency

Patterns on XRegional Data Consistency Patterns on XRegional Data Consistency Contents The problem... 3 Introducing XRegional... 3 The solution... 5 Enabling consistency... 6 The XRegional Framework: A closer look... 8 Some considerations...

More information

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration contents foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration xix xxxii PART 1 GETTING STARTED WITH ORM...1 1 2 Understanding object/relational

More information

Database Management Systems

Database Management Systems DATABASE CONCEPTS & APPLICATIONS Database Management Systems A Database Management System (DBMS) is a software package designed to store and manage databases through database applications. User Database

More information

Laravel: From Apprentice To Artisan

Laravel: From Apprentice To Artisan Laravel: From Apprentice To Artisan Advanced Architecture With Laravel 4 Taylor Otwell This book is for sale at http://leanpub.com/laravel This version was published on 2013-09-04 This is a Leanpub book.

More information

System Name Software Architecture Description

System Name Software Architecture Description System Name Software Architecture Description Author Name Contact Details Version Date template 2011 Eoin Woods & Nick Rozanski 1 / 25 1. Version History Version Date Author Comments 1 July 08 Eoin Woods

More information

PROCEDURAL DATABASE PROGRAMMING ( PL/SQL AND T-SQL)

PROCEDURAL DATABASE PROGRAMMING ( PL/SQL AND T-SQL) Technology & Information Management Instructor: Michael Kremer, Ph.D. Class 10 Database Programming PROCEDURAL DATABASE PROGRAMMING ( PL/SQL AND T-SQL) AGENDA 14. Advanced Topics 14.1 Optimistic/Pessimistic

More information

Lab IV. Transaction Management. Database Laboratory

Lab IV. Transaction Management. Database Laboratory Lab IV Transaction Management Database Laboratory Objectives To work with transactions in ORACLE To study the properties of transactions in ORACLE Database integrity must be controlled when access operations

More information

Asynchronous Event Handling and Safety Critical Java

Asynchronous Event Handling and Safety Critical Java Asynchronous Event Handling and Safety Critical Java Andy Wellings* and Minseong Kim * Member of JSR 302 Structure Threads or event handling Why JSR 302 decided to use event handlers The JSR 302 concurrency

More information

Full file at

Full file at Chapter 2 Data Warehousing True-False Questions 1. A real-time, enterprise-level data warehouse combined with a strategy for its use in decision support can leverage data to provide massive financial benefits

More information

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version :

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version : SUN 310-052 Sun Certified Enterprise Architect for J2EE 5 Download Full Version : http://killexams.com/pass4sure/exam-detail/310-052 combination of ANSI SQL-99 syntax coupled with some company-specific

More information

C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop Spis treści

C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop Spis treści C# 6.0 in a nutshell / Joseph Albahari & Ben Albahari. 6th ed. Beijin [etc.], cop. 2016 Spis treści Preface xi 1. Introducing C# and the.net Framework 1 Object Orientation 1 Type Safety 2 Memory Management

More information

Data Protection Using Premium Features

Data Protection Using Premium Features Data Protection Using Premium Features A Dell Technical White Paper PowerVault MD3200 and MD3200i Series Storage Arrays www.dell.com/md3200 www.dell.com/md3200i THIS WHITE PAPER IS FOR INFORMATIONAL PURPOSES

More information

Lecture 4: Directory Protocols and TM. Topics: corner cases in directory protocols, lazy TM

Lecture 4: Directory Protocols and TM. Topics: corner cases in directory protocols, lazy TM Lecture 4: Directory Protocols and TM Topics: corner cases in directory protocols, lazy TM 1 Handling Reads When the home receives a read request, it looks up memory (speculative read) and directory in

More information

Java Enterprise Edition

Java Enterprise Edition Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data

More information

Azure Scalability Prescriptive Architecture using the Enzo Multitenant Framework

Azure Scalability Prescriptive Architecture using the Enzo Multitenant Framework Azure Scalability Prescriptive Architecture using the Enzo Multitenant Framework Many corporations and Independent Software Vendors considering cloud computing adoption face a similar challenge: how should

More information

Three Key Considerations for Your Public Cloud Infrastructure Strategy

Three Key Considerations for Your Public Cloud Infrastructure Strategy GOING PUBLIC: Three Key Considerations for Your Public Cloud Infrastructure Strategy Steve Follin ISG WHITE PAPER 2018 Information Services Group, Inc. All Rights Reserved The Market Reality The race to

More information

GrADSoft and its Application Manager: An Execution Mechanism for Grid Applications

GrADSoft and its Application Manager: An Execution Mechanism for Grid Applications GrADSoft and its Application Manager: An Execution Mechanism for Grid Applications Authors Ken Kennedy, Mark Mazina, John Mellor-Crummey, Rice University Ruth Aydt, Celso Mendes, UIUC Holly Dail, Otto

More information

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI

DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI DHANALAKSHMI COLLEGE OF ENGINEERING, CHENNAI Department of Computer Science and Engineering IT6801 - SERVICE ORIENTED ARCHITECTURE Anna University 2 & 16 Mark Questions & Answers Year / Semester: IV /

More information

CocoBase Delivers TOP TEN Enterprise Persistence Features For JPA Development! CocoBase Pure POJO

CocoBase Delivers TOP TEN Enterprise Persistence Features For JPA Development! CocoBase Pure POJO CocoBase Pure POJO Product Information V5 CocoBase Delivers TOP TEN Enterprise Persistence Features For JPA Development! CocoBase Provides A Complete Enterprise Solution For JPA Based Development. CocoBase

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Identity, State and Values

Identity, State and Values Identity, State and Values Clojure s approach to concurrency Rich Hickey Agenda Functions and processes Identity, State, and Values Persistent Data Structures Clojure s Managed References Q&A Functions

More information

Consistency in Distributed Systems

Consistency in Distributed Systems Consistency in Distributed Systems Recall the fundamental DS properties DS may be large in scale and widely distributed 1. concurrent execution of components 2. independent failure modes 3. transmission

More information

BIS Database Management Systems.

BIS Database Management Systems. BIS 512 - Database Management Systems http://www.mis.boun.edu.tr/durahim/ Ahmet Onur Durahim Learning Objectives Database systems concepts Designing and implementing a database application Life of a Query

More information

MIS Database Systems.

MIS Database Systems. MIS 335 - Database Systems http://www.mis.boun.edu.tr/durahim/ Ahmet Onur Durahim Learning Objectives Database systems concepts Designing and implementing a database application Life of a Query in a Database

More information

Monday, November 21, 2011

Monday, November 21, 2011 Infinispan for Ninja Developers Mircea Markus, Red Hat R&D Who s this guy? R&D JBoss Clustering @ Redhat JBoss clustering: JBossCache, PojoCache, jgroups,.. Infinispan developer - day 1 Founder Radargun

More information

Constraint Definition Language in Oracle Configurator - A Holistic Perspective

Constraint Definition Language in Oracle Configurator - A Holistic Perspective Constraint Definition Language in Oracle Configurator - A Holistic Perspective Krishnan Sundaresan Fujitsu Consulting, Inc Introduction Constraint Definition Language (CDL), in releases 11i10 and beyond,

More information

Software LEIC/LETI. Lecture 20

Software LEIC/LETI. Lecture 20 Software Engineering @ LEIC/LETI Lecture 20 Last Lecture Profiler and Debugger tools Offline concurrency patterns Presentation logic Services Domain logic Remote access Data access Remote Service Database

More information

Distributed KIDS Labs 1

Distributed KIDS Labs 1 Distributed Databases @ KIDS Labs 1 Distributed Database System A distributed database system consists of loosely coupled sites that share no physical component Appears to user as a single system Database

More information

.NET Database Technologies. Entity Framework: Queries and Transactions

.NET Database Technologies. Entity Framework: Queries and Transactions .NET Database Technologies Entity Framework: Queries and Transactions ORMs and query languages l With an ORM, queries must define data to be returned and criteria in terms of domain model objects and their

More information

Into into Locking and Blocking. Dmitri Korotkevitch (http://aboutsqlserver.com) 1

Into into Locking and Blocking. Dmitri Korotkevitch (http://aboutsqlserver.com) 1 Into into Locking and Blocking Dmitri Korotkevitch (http://aboutsqlserver.com) 1 About me 20 years of experience in IT 14+ years of experience working with Microsoft SQL Server Microsoft SQL Server MVP

More information

Next-Generation Architecture for Virtual Prototyping

Next-Generation Architecture for Virtual Prototyping Next-Generation Architecture for Virtual Prototyping Dr. Bipin Chadha John Welsh Principal Member Manager Lockheed Martin ATL Lockheed Martin ATL (609) 338-3865 (609) 338-3865 bchadha@atl.lmco.com jwelsh@atl.lmco.com

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer DBMS

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer DBMS About the Tutorial Database Management System or DBMS in short refers to the technology of storing and retrieving users data with utmost efficiency along with appropriate security measures. DBMS allows

More information

Lecture 7: Transactional Memory Intro. Topics: introduction to transactional memory, lazy implementation

Lecture 7: Transactional Memory Intro. Topics: introduction to transactional memory, lazy implementation Lecture 7: Transactional Memory Intro Topics: introduction to transactional memory, lazy implementation 1 Transactions New paradigm to simplify programming instead of lock-unlock, use transaction begin-end

More information

Part VII Data Protection

Part VII Data Protection Part VII Data Protection Part VII describes how Oracle protects the data in a database and explains what the database administrator can do to provide additional protection for data. Part VII contains the

More information

CSE 544 Principles of Database Management Systems. Alvin Cheung Fall 2015 Lecture 14 Distributed Transactions

CSE 544 Principles of Database Management Systems. Alvin Cheung Fall 2015 Lecture 14 Distributed Transactions CSE 544 Principles of Database Management Systems Alvin Cheung Fall 2015 Lecture 14 Distributed Transactions Transactions Main issues: Concurrency control Recovery from failures 2 Distributed Transactions

More information

Lecture 8: Transactional Memory TCC. Topics: lazy implementation (TCC)

Lecture 8: Transactional Memory TCC. Topics: lazy implementation (TCC) Lecture 8: Transactional Memory TCC Topics: lazy implementation (TCC) 1 Other Issues Nesting: when one transaction calls another flat nesting: collapse all nested transactions into one large transaction

More information

Developing SQL Databases (762)

Developing SQL Databases (762) Developing SQL Databases (762) Design and implement database objects Design and implement a relational database schema Design tables and schemas based on business requirements, improve the design of tables

More information

Storage Considerations for VMware vcloud Director. VMware vcloud Director Version 1.0

Storage Considerations for VMware vcloud Director. VMware vcloud Director Version 1.0 Storage Considerations for VMware vcloud Director Version 1.0 T e c h n i c a l W H I T E P A P E R Introduction VMware vcloud Director is a new solution that addresses the challenge of rapidly provisioning

More information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing Applications with Java EE 6 on WebLogic Server 12c Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need

More information

On the Study of Different Approaches to Database Replication in the Cloud

On the Study of Different Approaches to Database Replication in the Cloud Melissa Santana et al.: On the Study of Different Approaches to Database Replication in the Cloud TR ITI-SIDI-2012/011 On the Study of Different Approaches to Database Replication in the Cloud Melissa

More information

Mutex Locking versus Hardware Transactional Memory: An Experimental Evaluation

Mutex Locking versus Hardware Transactional Memory: An Experimental Evaluation Mutex Locking versus Hardware Transactional Memory: An Experimental Evaluation Thesis Defense Master of Science Sean Moore Advisor: Binoy Ravindran Systems Software Research Group Virginia Tech Multiprocessing

More information

Server software accepts requests for data from client software and returns the results to the client

Server software accepts requests for data from client software and returns the results to the client Client Server Model Introduction Client machines are generally single-user workstations providing a user-friendly interface to the end user. Each server provides a set of shared services to the clients.it

More information

Microsoft. [MS20762]: Developing SQL Databases

Microsoft. [MS20762]: Developing SQL Databases [MS20762]: Developing SQL Databases Length : 5 Days Audience(s) : IT Professionals Level : 300 Technology : Microsoft SQL Server Delivery Method : Instructor-led (Classroom) Course Overview This five-day

More information

Control. CS432: Distributed Systems Spring 2017

Control. CS432: Distributed Systems Spring 2017 Transactions and Concurrency Control Reading Chapter 16, 17 (17.2,17.4,17.5 ) [Coulouris 11] Chapter 12 [Ozsu 10] 2 Objectives Learn about the following: Transactions in distributed systems Techniques

More information

Transaction Models for Massively Multiplayer Online Games

Transaction Models for Massively Multiplayer Online Games 2011 30th IEEE International Symposium on Reliable Distributed Systems Transaction Models for Massively Multiplayer Online Games Kaiwen Zhang Department of Computer Science University of Toronto, Toronto,

More information

Introduction C H A P T E R1. Exercises

Introduction C H A P T E R1. Exercises C H A P T E R1 Introduction Chapter 1 provides a general overview of the nature and purpose of database systems. The most important concept in this chapter is that database systems allow data to be treated

More information

"Charting the Course... MOC C: Developing SQL Databases. Course Summary

Charting the Course... MOC C: Developing SQL Databases. Course Summary Course Summary Description This five-day instructor-led course provides students with the knowledge and skills to develop a Microsoft SQL database. The course focuses on teaching individuals how to use

More information

Fast Track to EJB 3.0 and the JPA Using JBoss

Fast Track to EJB 3.0 and the JPA Using JBoss Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity

More information

Does the Optimistic Concurrency resolve your blocking problems? Margarita Naumova, SQL Master Academy

Does the Optimistic Concurrency resolve your blocking problems? Margarita Naumova, SQL Master Academy Does the Optimistic Concurrency resolve your blocking problems? Margarita Naumova, SQL Master Academy MAGI NAUMOVA Working with SQL Server from v6.5 SQL Server Trainer and Consultant with over 60 projects

More information

Enterprise Features & Requirements Analysis For EJB3 JPA & POJO Persistence. CocoBase Pure POJO

Enterprise Features & Requirements Analysis For EJB3 JPA & POJO Persistence. CocoBase Pure POJO CocoBase Pure POJO Product Information V5 Enterprise Features & Requirements Analysis For EJB3 JPA & POJO Persistence CocoBase PURE POJO Uniquely Provides BEST IN INDUSTRY Support For The Full Range Of

More information

The Design Patterns Matrix From Analysis to Implementation

The Design Patterns Matrix From Analysis to Implementation The Design Patterns Matrix From Analysis to Implementation This is an excerpt from Shalloway, Alan and James R. Trott. Design Patterns Explained: A New Perspective for Object-Oriented Design. Addison-Wesley

More information

DATABASE TRANSACTIONS. CS121: Relational Databases Fall 2017 Lecture 25

DATABASE TRANSACTIONS. CS121: Relational Databases Fall 2017 Lecture 25 DATABASE TRANSACTIONS CS121: Relational Databases Fall 2017 Lecture 25 Database Transactions 2 Many situations where a sequence of database operations must be treated as a single unit A combination of

More information

Transparent Access to Legacy Data in Java. Olivier Gruber. IBM Almaden Research Center. San Jose, CA Abstract

Transparent Access to Legacy Data in Java. Olivier Gruber. IBM Almaden Research Center. San Jose, CA Abstract Transparent Access to Legacy Data in Java Olivier Gruber IBM Almaden Research Center San Jose, CA 95120 Abstract We propose in this paper an extension to PJava in order to provide a transparent access

More information

An Introduction to Big Data Formats

An Introduction to Big Data Formats Introduction to Big Data Formats 1 An Introduction to Big Data Formats Understanding Avro, Parquet, and ORC WHITE PAPER Introduction to Big Data Formats 2 TABLE OF TABLE OF CONTENTS CONTENTS INTRODUCTION

More information

Integrity in Distributed Databases

Integrity in Distributed Databases Integrity in Distributed Databases Andreas Farella Free University of Bozen-Bolzano Table of Contents 1 Introduction................................................... 3 2 Different aspects of integrity.....................................

More information

The Strategy Pattern Design Principle: Design Principle: Design Principle:

The Strategy Pattern Design Principle: Design Principle: Design Principle: Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design

More information

ICT Object Oriented Design Standards

ICT Object Oriented Design Standards esolutions ICT Volume 3 : Application Standards ICT 3.1.1-2014 Object Oriented Design Standards Abstract This document defines the standards related to Object Oriented software design. Copyright Deakin

More information

Distributed Systems (ICE 601) Transactions & Concurrency Control - Part1

Distributed Systems (ICE 601) Transactions & Concurrency Control - Part1 Distributed Systems (ICE 601) Transactions & Concurrency Control - Part1 Dongman Lee ICU Class Overview Transactions Why Concurrency Control Concurrency Control Protocols pessimistic optimistic time-based

More information

Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB. Marc Stampfli Oracle Software (Switzerland) Ltd.

Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB. Marc Stampfli Oracle Software (Switzerland) Ltd. Efficient Object-Relational Mapping for JAVA and J2EE Applications or the impact of J2EE on RDB Marc Stampfli Oracle Software (Switzerland) Ltd. Underestimation According to customers about 20-50% percent

More information

Topics in Reliable Distributed Systems

Topics in Reliable Distributed Systems Topics in Reliable Distributed Systems 049017 1 T R A N S A C T I O N S Y S T E M S What is A Database? Organized collection of data typically persistent organization models: relational, object-based,

More information

Management Information Systems Review Questions. Chapter 6 Foundations of Business Intelligence: Databases and Information Management

Management Information Systems Review Questions. Chapter 6 Foundations of Business Intelligence: Databases and Information Management Management Information Systems Review Questions Chapter 6 Foundations of Business Intelligence: Databases and Information Management 1) The traditional file environment does not typically have a problem

More information

Agile Architecture. The Why, the What and the How

Agile Architecture. The Why, the What and the How Agile Architecture The Why, the What and the How Copyright Net Objectives, Inc. All Rights Reserved 2 Product Portfolio Management Product Management Lean for Executives SAFe for Executives Scaled Agile

More information

<Insert Picture Here>

<Insert Picture Here> Oracle Forms Modernization with Oracle Application Express Marc Sewtz Software Development Manager Oracle Application Express Oracle USA Inc. 540 Madison Avenue,

More information

Potential violations of Serializability: Example 1

Potential violations of Serializability: Example 1 CSCE 6610:Advanced Computer Architecture Review New Amdahl s law A possible idea for a term project Explore my idea about changing frequency based on serial fraction to maintain fixed energy or keep same

More information

LightSpeed 5 Upgrade Guide

LightSpeed 5 Upgrade Guide LightSpeed 5 Upgrade Guide Welcome to LightSpeed 5.0! This document details the new features and breaking changes in LightSpeed with this release of the product. If you have any questions regarding any

More information

Chapter 4. Fundamental Concepts and Models

Chapter 4. Fundamental Concepts and Models Chapter 4. Fundamental Concepts and Models 4.1 Roles and Boundaries 4.2 Cloud Characteristics 4.3 Cloud Delivery Models 4.4 Cloud Deployment Models The upcoming sections cover introductory topic areas

More information

Design Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.)

Design Pattern. CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.) Design Pattern CMPSC 487 Lecture 10 Topics: Design Patterns: Elements of Reusable Object-Oriented Software (Gamma, et al.) A. Design Pattern Design patterns represent the best practices used by experienced

More information

Introduction to Databases

Introduction to Databases Introduction to Databases 1 Objectives Most common types of digital information processing enter file-based systems Why database systems came around DBMS environment: components / roles Is it all worth

More information

Transactions. Kathleen Durant PhD Northeastern University CS3200 Lesson 9

Transactions. Kathleen Durant PhD Northeastern University CS3200 Lesson 9 Transactions Kathleen Durant PhD Northeastern University CS3200 Lesson 9 1 Outline for the day The definition of a transaction Benefits provided What they look like in SQL Scheduling Transactions Serializability

More information

Data Modeling and Databases Ch 14: Data Replication. Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich

Data Modeling and Databases Ch 14: Data Replication. Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich Data Modeling and Databases Ch 14: Data Replication Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich Database Replication What is database replication The advantages of

More information