Object Serialization, Persistence, and Distribution: An Overview. Jeff Johnson Brigham Young University-Hawaii Campus

Size: px
Start display at page:

Download "Object Serialization, Persistence, and Distribution: An Overview. Jeff Johnson Brigham Young University-Hawaii Campus"

Transcription

1 Object Serialization, Persistence, and Distribution: An Overview Jeff Johnson Brigham Young University-Hawaii Campus

2 1 Introduction In the programming market place, there are ever changing winds, directing the future of software design and implementation. In the early eighties, there was the mass movement to GUI interface, currently these winds are driving the designers to the "New" field of Object-Oriented Programming. As with the GUI interface, Object-Oriented Programming offers wonderful benefits and new challenges to conquer. This paper will give an overview of two major problem areas in Object Programming; the areas of Persistence and Serialization. Object-Oriented programming centers around the use of objects. Objects come in many forms, including functions with a persistent state, and the more often used form, encapsulation of data and functions which act on that data. For this paper, the latter definition will be used. In most object-oriented programming languages, there is a data type, such as type class, which is used to create new object types. Individual objects are then instances of a given class type. Because of this, an object-oriented programming approach usually uses more user-defined data types than a non-objectoriented programming approach. Because object-oriented programming provides different capabilities, there is a different design process which is related to object-oriented programming. An example of this is designing an object-oriented database, verses designing a relation database. As Saake et al. explain, by using an object-oriented approach, the real world model which is created is much more accurate. Usually it is also easier to see the relationships between object in an object-oriented model, than in a non-object-oriented system [SAAKE1]. Computer Science is a relatively young discipline, so there are many terms which do not have concrete definitions, persistence, distribution and serialization are good examples of this problem. The definition for persistence which will be used in this paper is the ability of an object to exist beyond the life of the program. Of course this means that the object must be stored on some sort of long term storage device, or be transferred to a different program. In order to have persistency, there needs to be some way to change the objects from the form in which the exist in memory into a form that can be used to make the object persistent. Serialization will be the term I use to for the process of converting an object to a more mobile state. Distribution is the ability to share data between computers. Because this paper is concerned with objects, I will only be concerned with object distribution, and the issues that surround it.

3 2 Object Persistence In most many software products, there is a need to have data that persists. This is especially true in database application, it would be a serious short fall if the objects could not persist exiting the program. Because of the obvious need, many approaches to solving the problem have been offered. They include: Accessing the file system directly Using virtual machines and images Using third party object-oriented database systems Using third party relational database systems Using third party extended relational database systems [LOOMIS1] Each of these approaches offers different benefits and hindrances. A programmer must decide what a particular situation requires, and choose the appropriate approach. In the article "Making objects persistent", Mary Loomis gives the following table, showing the advantages and disadvantages of each of the persistency approaches [LOOMIS1]. File access Smalltalk Image ODBMS RDBMS Extended RDBMS Cost ok ok no no no C++ ok no ok ok ok Smalltalk ok ok ok ok ok COBOL ok no no ok ok C ok no ok ok ok Concurrently no no ok ok ok Large objects no no ok ok ok Seamlessness no no ok no no

4 Distributed database SQL compatibility Highly interrelated objects no no ok no future no no future ok ok no no ok no future The top row of this table consists of the five approaches to persistency discussed in Loomis paper. The first column is composed of eleven criteria which might influence the programmers decision. Theoretically of these criteria, the first should hold the least importance, because it has the least to do with needs of the program. Unfortunately this is often the item that most influences the decision. The next four criteria all deal with the host language. Since this paper deals more with the issues, and less with how to resolve the issues, I will be classifying them into one criteria, Host Language. Concurrent accesses to an object means that multiple users can use a single object. Obviously multiple people can t access or modify data at the same time, so the system must control those access, ensuring that the object is not corrupted, and that each user sees the changes made by other users. There are a variety of ways to accomplish this, which have discussed by others [NIERSTRASZ1]. From the table it is possible to see that the amount of memory objects take up could be a deciding factor in which approach a programmer will choose. If the size of the objects is larger than what can be held in main memory, then it is necessary to use some sort of database capabilities to give objects persistence. Some techniques for giving these capabilities to a program which access files directly have been discussed by many people, including Daniel L. McCue and Santosh K Shrivastava [MCCUE1], and John J. Shilling [SHILLING1]. Most of these approaches have some way to group objects in the storage area, and a new object which takes care of finding the correct object, and restoring it to memory. Some believe this should be done transparently [MCCUE1], while others believe that there should be a clear distinction between the way system which have this functionality behave, and systems without this ability [WALDO1]. Seamlessness is the amount transparency between using an object which exist only in storage, and using an object that is "alive" in memory. The need for a distributed database is a useful to give portability as well as distribution. SQL compatibility refers to the ability of the product to support the Standard Query Language. The need for performance with highly interrelated objects is evident when large numbers of objects and vast amount of message passing will exist in the system. As the table shows, each approach may or may not meet the needs of a particular situation. Some of these

5 approaches are coupled with different techniques for serialization. Serialization techniques will be covered at greater length later in this paper. 3 Object Distribution Since the advent of the computer, there has always been a desire to share information. Today we see the reality of these dreams in the World Wide Web. Because of the inherent properties of encapsulation and message passing, it would seem that objects are well suited to distribution. Unfortunately, the objects add many obstacles to distributed computing, not found in non-object oriented programs. Since object distribution requires object persistency, it also encompasses the issues that object persistency creates. Some additional issues created by distributing objects include: Portability in Multi-Architecture Network Systems Degree of Distribution Transparency Desired Latency Local verses Remote Memory Access Partial Failure Replication of Objects Migration of Objects [WALDO1] The problem of portability is a major issue. At the byte level, data can be saved in two ways: Big-endian and Little-endian. Big- endian is when the system saves the most significant byte of information first. Little-endian, on the other hand, is saving the least significant byte first. Since computers which need to share objects might be using different kinds of byte level saving, objects and programs using objects need to be designed in such a way as to make this transition invisible to users. To overcome the big-endian/little-endian problem, the programmer can choose which way he wishes to save the data, and then swaps bytes on those systems that require it. An example of this is shown using the Microsoft Foundation Classes in an article by Chane Cullens [CULLENS1]. Transparency has a double meaning; one that applies to the programmer, and one that applies to a user. Obviously programs should be written so that end users don t realize that objects might not be resident on their computer. Transparency for programmers is a much less cut and dry issue. Some people feel that it is best to have a product that will convert program code designed in a nondistributed fashion, to fully distributed code, with little or no help [PARRINGTON1]. Others feel that the programmer

6 should realize that the object will be distributed, and write the source code accordingly [WALDO1]. Happily both sides of this argument can see that there are benefits to the other viewpoint, and for the most part agree that some transparency is needed for the programmer, but a programmer should approach distributed object programs in a different way than non-distributed object programs. Latency involves the problems incurred by the time it takes to perform distributed computing. Since it is necessary to look up and retrieve and object before using it, there is extra time needed above the amount used by a non-distributed system. To show the importance of this issues, Walled et al. said, "Ignoring the difference in time it takes to make a remote object invocation... is to ignore one of the major design issues" [WALDO1]. To overcome this obstacle, they suggest determining which objects can be placed remotely, by using tools that allow the programmer to see that patterns of communication between object. Then the programmer must write the code so that those objects that communicate the most, will be closest together. Memory addressing is a problem area, because on a non-distributed machine it is possible to use programming techniques such as C pointers, which are not available at a distributed level. This is part of the transparency discussed earlier, the programmer must make it possible for an object to reference another object in a remote manner. Again there are different ways to do this. A natural way to do this is through the use of unique identifiers for each object. Then the object finder/retriever can use this identifier to find and retrieve the object, whether the referred object is located on the same machine, or a machine half-way across the world. Hardware failure appears whenever and wherever computing exists. A partial failure could be caused when part of the system is unreachable because of a hardware related problem, or it could be caused by concurrency mismanagement. These situations never occurs in localized computing, since there is only one computer, with one user, every transaction completely succeeds, or completely fail [WALDO1]. On a non-distributed system, the reason for failure can often be determined. This is not always true on distributed systems [WALDO1]. One way through which it is possible to overcome partial failure by using object replication techniques Object replication might help with partial failures, but it also adds problem of keeping data integrity through all copies of the object. One way to do this, that was suggested by McCue and Shrivastava, is to update all available copies, and take any unavailable copies out of the copy lookup list. This makes those copies with incorrect data disappear, without effecting the other copies [MCCUE1]. Object replication adds to the persistency problem of concurrency. To overcome concurrency in a distributed system, an object-locking technique can be used. In this technique, the objects are lock (set into read only mode) until all copies can be accessed and updated. This helps to ensure that data integrity exists in all copies. Object migration involves the idea that objects should be able to move, thus decreasing the amount of time it takes for those who use the object the most to access it. This can be accomplished with little difficulty by directly ensure that if an object moves, the object finder/retriever knows where it is, or by leave the equivalence of a forwarding

7 address for the object finder/retriever [MCCUE1]. 4 Serialization As described earlier, object serialization is putting the object into a form that can be stored on a storage medium, or be sent as a message across network cabling. In order to deserialize a serialized object, both the class information and the data members must be serialized together. The class type is usually serialized first, so that as the rest of the information comes it can be deserialized according to its proper size and type. There are three major areas of concern that an approach to serialization must confront, they are: Serialization overhead Transient and Static Data Object Relationships Serialization overhead deals with the amount of time, and space needed to serialize a given object. Transient and static data present a problem, because of the nature of this kind of information. Object relations are a tricky area because two object can reference one object. When this happens, only one object should be serialized. The serialization. deserialization process must include a way to recreate these sorts of complex object relationships. One way to do this is through the use of object identity (oid) values for each object. Then as an object is serialized, the first time an object is serialized it is given an oid. All future serialization attempts would result in the object s oid being sent to serialization, instead of the object itself [JAVA1]. There are four main approaches for implementing object serialization. Each has its benefits, as well as drawbacks. They are: All objects can serialize themselves All objects are saved as part of an image All objects must be serialized using a storage class Some non-object serializes the objects One way to enable object to serialize themselves it the approach used by Microsoft in the Microsoft Foundation Class library. They use the approach of creating a class that is serializable (CObject), and the use this class as the base class, and let all other classes which need to have serialization capabilities inherit this ability as a sub class [BEVERIDGE1].

8 Though this approach is not bad, it forces programmers to make their objects part of the a hierarchy that may take a way from the object model intended. The other way, (and possible more often used way) is presented by John Schillings. He allows implementation of the serialization functionality in any class, which can be inherited as needed, but he does not require all object to come from a single serializable object [SHILLING1]. The problems with this method include dealing with the portability issues on a class by class basis. The major problem with having objects serialize themselves, is in keeping the object relationships intact. This is because the object might not realize that an object it references has already been serialized. This issue can be dealt with by using object identifiers, and a table (or object) which keeps track of which objects have been serialized [SHILLING1]. An example of saving objects as part of an image is Smalltalk. An image is a memory dump made by a virtual machine. The concept of virtual machine is used by Smalltalk, and Java. A virtual machine is a program which can run other programs. The program acts as if it were the operating system, and give an interface to the real operating system. The biggest drawback to using the image approach is the size of the image to be stored. Since all objects have to be in the image, it can become gigantic. To get around this, the object relationships are often stored as images, while the actual data is stored using one of the other methods. A major advantage to the image dump system is the fact that object relationships are saved as found in the machine, rather than being broken up into separate parts at serialization time. Using a storage class means only one class is serializable, all objects must be stored in as data in an instance of this class. Problems associated with this approach include: the difficulty in representing objects in terms a the storage class., the added overhead (in both time and space) needed by the storage object, and the difficulty in keeping object relationships. The least object-oriented approach is that of using a non-object to save the objects. This approach is often used, because it takes the least amount of overhead, though it does have some because of the function calls necessary to get the member data from an object which needs serialized. This approach can use a table or object to keep track of object relationships, similar to the one used by the first approach. Non-object oriented databases with object support use this approach to saving data. Problems also arise when it comes time to deserialize the objects. Some major issues in deserialization are: deciding which type of object to deserialize, skipping objects that can t be loaded, and rebuilding the object relationships. Many of the headaches associated with deciding which object to deserialize can be overcome by sending this information before the member data. Object relationships can be handled the same way as in serialization, through the use of object identifiers. In order to skip objects, the size of the object (in serialized form) must be serialized with the rest of the objects information.

9 5 Conclusions In this paper, issues related to object serialization, distribution, and persistency were introduced. It was shown how all three issues are inter-related. All share certain problems, and each have problems specific to that area. This paper also gave some approaches to overcoming these obstacles, though in depth solutions can be found else where. The following table describes how some of the above issues inter-relate with the three main topics. Serialization Persistency Distribution Concurrency Not an issue Use database techniques Use object locking techniques Large Objects Not an issue Break it up using database techniques Store parts of object separately, with oid. Object Relationships Use oid Use oid Use oid Portability Choose endian style and convert as needed. Serialize properly Serialize properly With the Internet, there is a whole new frontier waiting to be introduced to the object oriented approach to computing [INGHAM1]. In order for this to happen, the solutions must be found for the issues dealing with object serialization, object distribution, and object persistency.

10 References [SAAKE1] Saake, G. and S. Conrad, I. Schmitt, and C. Trker. Object-Oriented Database Design: What is the Difference with Relational Database Design. ObjectWorld Frankfurt Conference Notes, Wednesday, October 11. Found on the Internet at October [INGHAM1] Ingham, David and Mark Little, Steve Caughey, and Santosh Shrivastava. W3Objects: Bringing Object- Oriented Technology to the Web. Found on the Internet at November 1994 [LOOMIS1] Loomis, Mary E.S. Making Objects Persistent. Journal of Object- Oriented Programming, October [NIERSTRASZ1] Nierstrasz, Oscar and Michael Papthomas. Viewing Objects as Patterns of Communicating Agents. From the proceedings of OOPSLA [CULLENS1] Chane Cullens. Serialization and MFC: Extending MFC for cross-platform portability. Dr. Dobb s journal, #229 April 1995 can be found on the Internet at [MCCUE1] McCue, Daniel L., Santosh K. Shrivastava. Structuring Persistent Object Systems for Portability in a Distributed Environment. Appeared in the Proceedings of the Fourth ACM SIGOPT Workshop, Bologa, September Found on the Internet at: [SHILLING1] Schillings, John J. How to roll your own persistent objects in C++. Printed in Journal of Object-Oriented Programming. July/August [WALDO1]

11 Waldo, Jim and Geoff Wyant, Ann Wollrath, and Sam Kendall. A Note on Distributed Computing. [BEVERIDGE1] Jim Beveridge. Inside MFC Serialization. Dr. Dobb s Journal, October Found on the Internet at November 3, [JAVA1] Sun Microsystems. Java Object Serialization Specification Revision 0.9. Found at November Originally drafted May 8, [INGHAM1] Ingham, David and Mark Little, Steve Caughey, and Santosh Shrivastava. W3Objects: Bringing Object- Oriented Technology to the Web. Found at October [PARRINGTON1] Graham D Parrington. Programming Distributed Applications Transparently in C++: Myth or Reality. Proceedings of the OpenForum 92 Technical Conference, pp , Utrecht, November 1992 Found on the Internet at ac.uk/arjuna/papers/openforum.ps, Oct 19, 1996.

Database Architectures

Database Architectures Database Architectures CPS352: Database Systems Simon Miner Gordon College Last Revised: 4/15/15 Agenda Check-in Parallelism and Distributed Databases Technology Research Project Introduction to NoSQL

More information

Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their

Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their Several major software companies including IBM, Informix, Microsoft, Oracle, and Sybase have all released object-relational versions of their products. These companies are promoting a new, extended version

More information

GUI framework communication via the WWW

GUI framework communication via the WWW GUI framework communication via the WWW Thomas Tilley, School of Information Technology, Griffith University, Australia 4215, T.Tilley@gu.edu.au Peter Eklund, School of Information Technology, Griffith

More information

Swing Based Remote GUI Emulation

Swing Based Remote GUI Emulation Swing Based Remote GUI Emulation Thomas Tilley and Peter Eklund School of Information Technology, Griffith University, Australia 4215 {T.Tilley,P.Eklund}@gu.edu.au This paper describes the implementation

More information

Coordination Patterns

Coordination Patterns Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch

More information

Chapter 8 Software Testing. Chapter 8 Software testing

Chapter 8 Software Testing. Chapter 8 Software testing Chapter 8 Software Testing 1 Topics covered Introduction to testing Stages for testing software system are: Development testing Release testing User testing Test-driven development as interleave approach.

More information

DATABASE SCALABILITY AND CLUSTERING

DATABASE SCALABILITY AND CLUSTERING WHITE PAPER DATABASE SCALABILITY AND CLUSTERING As application architectures become increasingly dependent on distributed communication and processing, it is extremely important to understand where the

More information

Database Architectures

Database Architectures Database Architectures CPS352: Database Systems Simon Miner Gordon College Last Revised: 11/15/12 Agenda Check-in Centralized and Client-Server Models Parallelism Distributed Databases Homework 6 Check-in

More information

Memory Management Topics. CS 537 Lecture 11 Memory. Virtualizing Resources

Memory Management Topics. CS 537 Lecture 11 Memory. Virtualizing Resources Memory Management Topics CS 537 Lecture Memory Michael Swift Goals of memory management convenient abstraction for programming isolation between processes allocate scarce memory resources between competing

More information

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008 Distributed Systems Theory 4. Remote Procedure Call October 17, 2008 Client-server model vs. RPC Client-server: building everything around I/O all communication built in send/receive distributed computing

More information

Representing Symbolic Reasoning

Representing Symbolic Reasoning Representing Symbolic Reasoning Brian Mastenbrook and Eric Berkowitz 1400 N. Roosevelt Blvd. Schaumburg, IL 60173 chandler@acm.roosevelt.edu eric@cs.roosevelt.edu Abstract Introspection is a fundamental

More information

A Capabilities Based Communication Model for High-Performance Distributed Applications: The Open HPC++ Approach

A Capabilities Based Communication Model for High-Performance Distributed Applications: The Open HPC++ Approach A Capabilities Based Communication Model for High-Performance Distributed Applications: The Open HPC++ Approach Shridhar Diwan, Dennis Gannon Department of Computer Science Indiana University Bloomington,

More information

Java RMI Middleware Project

Java RMI Middleware Project Java RMI Middleware Project Nathan Balon CIS 578 Advanced Operating Systems December 7, 2004 Introduction The semester project was to implement a middleware similar to Java RMI or CORBA. The purpose of

More information

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. Database Management System Prof. D. Janakiram Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 20 Concurrency Control Part -1 Foundations for concurrency

More information

DOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS

DOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS Chapter 1 : Chapter-wise Java Multiple Choice Questions and Answers Interview MCQs Java Programming questions and answers with explanation for interview, competitive examination and entrance test. Fully

More information

WEB APPLICATION MANAGEMENT: IMPLEMENTING A DYNAMIC DATABASE UPGRADE MODEL

WEB APPLICATION MANAGEMENT: IMPLEMENTING A DYNAMIC DATABASE UPGRADE MODEL WEB APPLICATION MANAGEMENT: IMPLEMENTING A DYNAMIC DATABASE UPGRADE MODEL Richard Wilson 1 & Daniel Lowes 2 1 Dept. of Computer Science and Software Engineering, University of Melbourne (Australia) 2 Dept.

More information

The Analysis and Design of the Object-oriented System Li Xin 1, a

The Analysis and Design of the Object-oriented System Li Xin 1, a International Conference on Materials Engineering and Information Technology Applications (MEITA 2015) The Analysis and Design of the Object-oriented System Li Xin 1, a 1 Shijiazhuang Vocational Technology

More information

CS5204 Operating System Programming Project Report. Flight Reservation System Using Java RMI

CS5204 Operating System Programming Project Report. Flight Reservation System Using Java RMI CS5204 Operating System Programming Project Report Flight Reservation System Using Java RMI By Jing Ma and Jiang Shu Fall, 2000 Jing Ma & Jiang Shu Page 1 12/7/2000 Table of Contents Title Page Number

More information

CS514: Intermediate Course in Computer Systems. Lecture 38: April 23, 2003 Nested transactions and other weird implementation issues

CS514: Intermediate Course in Computer Systems. Lecture 38: April 23, 2003 Nested transactions and other weird implementation issues : Intermediate Course in Computer Systems Lecture 38: April 23, 2003 Nested transactions and other weird implementation issues Transactions Continued We saw Transactions on a single server 2 phase locking

More information

Distributed Systems Lecture 2 1. External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4.

Distributed Systems Lecture 2 1. External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4. Distributed Systems Lecture 2 1 Today s Topics External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4.4) Distributed Objects and Remote Invocations (5.1)

More information

CS 1567 Intermediate Programming and System Design Using a Mobile Robot Aibo Lab3 Localization and Path Planning

CS 1567 Intermediate Programming and System Design Using a Mobile Robot Aibo Lab3 Localization and Path Planning CS 1567 Intermediate Programming and System Design Using a Mobile Robot Aibo Lab3 Localization and Path Planning In this lab we will create an artificial landscape in the Aibo pen. The landscape has two

More information

CHAPTER 3 RECOVERY & CONCURRENCY ADVANCED DATABASE SYSTEMS. Assist. Prof. Dr. Volkan TUNALI

CHAPTER 3 RECOVERY & CONCURRENCY ADVANCED DATABASE SYSTEMS. Assist. Prof. Dr. Volkan TUNALI CHAPTER 3 RECOVERY & CONCURRENCY ADVANCED DATABASE SYSTEMS Assist. Prof. Dr. Volkan TUNALI PART 1 2 RECOVERY Topics 3 Introduction Transactions Transaction Log System Recovery Media Recovery Introduction

More information

Reading Lists: a guide to creating an online list

Reading Lists: a guide to creating an online list Reading Lists: a guide to creating an online list Introduction The Talis Aspire reading list system allows the user to create reading lists for students using simple drag and drop technology; use the University

More information

CHAPTER 1 Fundamentals of Distributed System. Issues in designing Distributed System

CHAPTER 1 Fundamentals of Distributed System. Issues in designing Distributed System CHAPTER 1 Fundamentals of Distributed System Introduction Distributed Computing Models Software Concepts Issues in designing Distributed System Client Server Model 1 What is a Distributed System? Tanenbaum

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

Chapter 1: Distributed Information Systems

Chapter 1: Distributed Information Systems Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier

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

Glossary. abort. application schema

Glossary. abort. application schema Glossary abort An abnormal termination of a transaction. When a transaction aborts, its changes to the database are erased, and the database is effectively restored to its state as of the moment the transaction

More information

DATABASE PERFORMANCE AND INDEXES. CS121: Relational Databases Fall 2017 Lecture 11

DATABASE PERFORMANCE AND INDEXES. CS121: Relational Databases Fall 2017 Lecture 11 DATABASE PERFORMANCE AND INDEXES CS121: Relational Databases Fall 2017 Lecture 11 Database Performance 2 Many situations where query performance needs to be improved e.g. as data size grows, query performance

More information

EECS 482 Introduction to Operating Systems

EECS 482 Introduction to Operating Systems EECS 482 Introduction to Operating Systems Fall 2017 Manos Kapritsos Slides by: Harsha V. Madhyastha Recap: Socket abstraction Machine 1 Machine 2 Process A Process B Process C socket 1 socket 2 socket

More information

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2

Gustavo Alonso, ETH Zürich. Web services: Concepts, Architectures and Applications - Chapter 1 2 Chapter 1: Distributed Information Systems Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 1 Design

More information

SQL. History. From Wikipedia, the free encyclopedia.

SQL. History. From Wikipedia, the free encyclopedia. SQL From Wikipedia, the free encyclopedia. Structured Query Language (SQL) is the most popular computer language used to create, modify and retrieve data from relational database management systems. The

More information

COMMOM OBJECT ORIENTED LISP SYSTEMS

COMMOM OBJECT ORIENTED LISP SYSTEMS COMMOM OBJECT ORIENTED LISP SYSTEMS HISTORY: The following information is derived from the history section of dpans Common Lisp. Lisp is a family of languages with a long history. Early key ideas in Lisp

More information

An Introduction to Databases and Database Management Systems.

An Introduction to Databases and Database Management Systems. An Introduction to Databases and Database Management Systems. Introduction An important aspect of most every business is record keeping. In our information society, this has become an important aspect

More information

Implementing Object Equivalence in Java Using the Template Method Design Pattern

Implementing Object Equivalence in Java Using the Template Method Design Pattern Implementing Object Equivalence in Java Using the Template Method Design Pattern Daniel E. Stevenson and Andrew T. Phillips Computer Science Department University of Wisconsin-Eau Claire Eau Claire, WI

More information

Advanced Topics in Operating Systems

Advanced Topics in Operating Systems Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:

More information

Request for Comments: 2004 Category: Standards Track October Minimal Encapsulation within IP. Status of This Memo

Request for Comments: 2004 Category: Standards Track October Minimal Encapsulation within IP. Status of This Memo Network Working Group C. Perkins Request for Comments: 2004 IBM Category: Standards Track October 1996 Status of This Memo Minimal Encapsulation within IP This document specifies an Internet standards

More information

CS5412: TRANSACTIONS (I)

CS5412: TRANSACTIONS (I) 1 CS5412: TRANSACTIONS (I) Lecture XVII Ken Birman Transactions 2 A widely used reliability technology, despite the BASE methodology we use in the first tier Goal for this week: in-depth examination of

More information

Principles of Algorithm Design

Principles of Algorithm Design Principles of Algorithm Design When you are trying to design an algorithm or a data structure, it s often hard to see how to accomplish the task. The following techniques can often be useful: 1. Experiment

More information

JPred-P 2. Josh Choi, Michael Welch {joshchoi,

JPred-P 2. Josh Choi, Michael Welch {joshchoi, JPred-P 2 Josh Choi, Michael Welch {joshchoi, mjwelch}@cs.ucla.edu 1. Introduction Precondition and postcondition checking on methods aids the development process by explicitly notifying the programmer

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

Supports 1-1, 1-many, and many to many relationships between objects

Supports 1-1, 1-many, and many to many relationships between objects Author: Bill Ennis TOPLink provides container-managed persistence for BEA Weblogic. It has been available for Weblogic's application server since Weblogic version 4.5.1 released in December, 1999. TOPLink

More information

(Refer Slide Time: 06:01)

(Refer Slide Time: 06:01) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 28 Applications of DFS Today we are going to be talking about

More information

CS 415 Midterm Exam Fall 2003

CS 415 Midterm Exam Fall 2003 CS 415 Midterm Exam Fall 2003 Name KEY Email Address Student ID # Pledge: This exam is closed note, closed book. Questions will be graded on quality of answer. Please supply the best answer you can to

More information

CS317 File and Database Systems

CS317 File and Database Systems CS317 File and Database Systems http://dilbert.com/strips/comic/1995-10-11/ Lecture 5 More SQL and Intro to Stored Procedures September 24, 2017 Sam Siewert SQL Theory and Standards Completion of SQL in

More information

ITCS Jing Yang 2010 Fall. Class 16: Object and Object- Relational Databases (ch.11) References

ITCS Jing Yang 2010 Fall. Class 16: Object and Object- Relational Databases (ch.11) References ITCS 3160 Jing Yang 2010 Fall Class 16: Object and Object- Relational Databases (ch.11) Slides come from: References Michael Grossniklaus, Moira Norrie (ETH Zürich): Object Oriented Databases (Version

More information

AC : EXPLORATION OF JAVA PERSISTENCE

AC : EXPLORATION OF JAVA PERSISTENCE AC 2007-1400: EXPLORATION OF JAVA PERSISTENCE Robert E. Broadbent, Brigham Young University Michael Bailey, Brigham Young University Joseph Ekstrom, Brigham Young University Scott Hart, Brigham Young University

More information

STL in Action: Helper Algorithms

STL in Action: Helper Algorithms STL in Action: Helper Algorithms By Graham Glass Abstract This article introduces a new column called STL in Action. Each installment will describe a way to either utilize or extend the C++ Standard Template

More information

Migrating to Object Data Management

Migrating to Object Data Management Migrating to Object Data Management Arthur M. Keller * Stanford University and Persistence Software Paul Turner Persistence Software Abstract. We discuss issues of migrating to object data management.

More information

The functions performed by a typical DBMS are the following:

The functions performed by a typical DBMS are the following: MODULE NAME: Database Management TOPIC: Introduction to Basic Database Concepts LECTURE 2 Functions of a DBMS The functions performed by a typical DBMS are the following: Data Definition The DBMS provides

More information

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Examination Architecture of Distributed Systems (2IMN10 / 2II45), on Monday November 2, 2015, from 13.30 to 16.30 hours. Indicate on

More information

Essay Question: Explain 4 different means by which constrains are represented in the Conceptual Data Model (CDM).

Essay Question: Explain 4 different means by which constrains are represented in the Conceptual Data Model (CDM). Question 1 Essay Question: Explain 4 different means by which constrains are represented in the Conceptual Data Model (CDM). By specifying participation conditions By specifying the degree of relationship

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

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

UMCS. Annales UMCS Informatica AI 6 (2007) Fault tolerant control for RP* architecture of Scalable Distributed Data Structures

UMCS. Annales UMCS Informatica AI 6 (2007) Fault tolerant control for RP* architecture of Scalable Distributed Data Structures Annales Informatica AI 6 (2007) 5-13 Annales Informatica Lublin-Polonia Sectio AI http://www.annales.umcs.lublin.pl/ Fault tolerant control for RP* architecture of Scalable Distributed Data Structures

More information

Using Java for Scientific Computing. Mark Bul EPCC, University of Edinburgh

Using Java for Scientific Computing. Mark Bul EPCC, University of Edinburgh Using Java for Scientific Computing Mark Bul EPCC, University of Edinburgh markb@epcc.ed.ac.uk Java and Scientific Computing? Benefits of Java for Scientific Computing Portability Network centricity Software

More information

Categorizing Migrations

Categorizing Migrations What to Migrate? Categorizing Migrations A version control repository contains two distinct types of data. The first type of data is the actual content of the directories and files themselves which are

More information

CS352 Lecture - Concurrency

CS352 Lecture - Concurrency CS352 Lecture - Concurrency Objectives: Last revised 11/16/06 1. To introduce locking as a means of preserving the serializability of concurrent schedules. 2. To briefly introduce other approaches to this

More information

Coping with Conflicts in an Optimistically Replicated File System

Coping with Conflicts in an Optimistically Replicated File System Coping with Conflicts in an Optimistically Replicated File System Puneet Kumar School of Computer Science Carnegie Mellon University 1. Introduction Coda is a scalable distributed Unix file system that

More information

Standards for Test Automation

Standards for Test Automation Standards for Test Automation Brian Tervo Windows XP Automation Applications Compatibility Test Lead Microsoft Corporation Overview Over the last five years, I ve had the opportunity to work in a group

More information

1. BlueJ bank example with subclasses of BankAccount 2. Transparency of UML diagram for BankAccount class hierarchy

1. BlueJ bank example with subclasses of BankAccount 2. Transparency of UML diagram for BankAccount class hierarchy CS112 Lecture: Fundamental Concepts of Object-Oriented Software Development Last revised 1/13/04 Objectives: 1. To review/introduce key concepts of object-orientation: object, class, data members (class

More information

DBMS (FYCS) Unit - 1. A database management system stores data in such a way that it becomes easier to retrieve, manipulate, and produce information.

DBMS (FYCS) Unit - 1. A database management system stores data in such a way that it becomes easier to retrieve, manipulate, and produce information. Prof- Neeta Bonde DBMS (FYCS) Unit - 1 DBMS: - Database is a collection of related data and data is a collection of facts and figures that can be processed to produce information. Mostly data represents

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT EXAMINERS' REPORT

BCS THE CHARTERED INSTITUTE FOR IT. BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT EXAMINERS' REPORT BCS THE CHARTERED INSTITUTE FOR IT BCS Higher Education Qualifications BCS Level 6 Professional Graduate Diploma in IT March 2016 EXAMINERS' REPORT Programming Paradigms General comments on candidates'

More information

Database Fundamentals Chapter 1

Database Fundamentals Chapter 1 Database Fundamentals Chapter 1 Class 01: Database Fundamentals 1 What is a Database? The ISO/ANSI SQL Standard does not contain a definition of the term database. In fact, the term is never mentioned

More information

The unglamorous database option that works

The unglamorous database option that works Embedded Databases Dr. Dobb's Journal December 2002 The unglamorous database option that works By Anton Okmianski Anton is a senior software engineer and a technical leader at Cisco Systems. He can be

More information

Promoting Component Reuse by Separating Transmission Policy from Implementation

Promoting Component Reuse by Separating Transmission Policy from Implementation Promoting Component Reuse by Separating Transmission Policy from Implementation Scott M. Walker scott@dcs.st-and.ac.uk Graham N. C. Kirby graham@dcs.st-and.ac.uk Alan Dearle al@dcs.st-and.ac.uk Stuart

More information

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none.

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none. Ubiquitous Computing Bhaskar Borthakur University of Illinois at Urbana-Champaign Software Research Group Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none The Event Service

More information

Conceptual Modeling of Dynamic Interactive Systems Using the Equivalent Transformation Framework

Conceptual Modeling of Dynamic Interactive Systems Using the Equivalent Transformation Framework 7th WSEAS International Conference on APPLIED COMPUTER SCIENCE, Venice, Italy, November 21-23, 2007 253 Conceptual Modeling of Dynamic Interactive Systems Using the Equivalent Transformation Framework

More information

Data Replication Buying Guide

Data Replication Buying Guide Data Replication Buying Guide 1 How to Choose a Data Replication Solution IT professionals are increasingly turning to heterogenous data replication to modernize data while avoiding the costs and risks

More information

CS352 Lecture - Concurrency

CS352 Lecture - Concurrency CS352 Lecture - Concurrency Objectives: Last revised 3/21/17 1. To introduce locking as a means of preserving the serializability of concurrent schedules. 2. To briefly introduce other approaches to this

More information

Object Persistence Design Guidelines

Object Persistence Design Guidelines Object Persistence Design Guidelines Motivation Design guideline supports architects and developers in design and development issues of binding object-oriented applications to data sources The major task

More information

Analysis Tool Project

Analysis Tool Project Tool Overview The tool we chose to analyze was the Java static analysis tool FindBugs (http://findbugs.sourceforge.net/). FindBugs is A framework for writing static analyses Developed at the University

More information

Strategy & Planning: Data Governance & Data Quality

Strategy & Planning: Data Governance & Data Quality Strategy & Planning: Data Governance & Data Quality April 30, 2017 In the era of big data and data science, most commercial and nonprofit organizations realize the potential power of data in accelerating

More information

PATTERNS AND SOFTWARE DESIGN

PATTERNS AND SOFTWARE DESIGN This article first appeared in Dr. Dobb s Sourcebook, March/April, 1995. Copyright 1995, Dr. Dobb's Journal. PATTERNS AND SOFTWARE DESIGN Patterns for Reusable Object-Oriented Software Richard Helm and

More information

Week 5, continued. This is CS50. Harvard University. Fall Cheng Gong

Week 5, continued. This is CS50. Harvard University. Fall Cheng Gong This is CS50. Harvard University. Fall 2014. Cheng Gong Table of Contents News... 1 Buffer Overflow... 1 Malloc... 6 Linked Lists... 7 Searching... 13 Inserting... 16 Removing... 19 News Good news everyone!

More information

Towards Introducing Code Mobility on J2ME. Laurentiu Lucian Petrea and Dan Grigoras Computer Science Department UCC Cork, Ireland

Towards Introducing Code Mobility on J2ME. Laurentiu Lucian Petrea and Dan Grigoras Computer Science Department UCC Cork, Ireland Towards Introducing Code Mobility on J2ME Laurentiu Lucian Petrea and Dan Grigoras Computer Science Department UCC Cork, Ireland www.mccg.ucc.ie Mobile Ad Hoc Networks Heterogeneous mobile devices No fixed

More information

Chapter 18: Parallel Databases

Chapter 18: Parallel Databases Chapter 18: Parallel Databases Introduction Parallel machines are becoming quite common and affordable Prices of microprocessors, memory and disks have dropped sharply Recent desktop computers feature

More information

Comparing the performance of object and object relational database systems on objects of varying complexity

Comparing the performance of object and object relational database systems on objects of varying complexity Comparing the performance of object and object relational database systems on objects of varying complexity Kalantari, R and Bryant, CH http://dx.doi.org/10.1007/978 3 642 25704 9_8 Title Authors Type

More information

Proposal for a Hybrid Implementation of Adhoc On-demand Distance Vectoring (AODV)

Proposal for a Hybrid Implementation of Adhoc On-demand Distance Vectoring (AODV) Final Proposal Research Topic home Proposal for a Hybrid Implementation of Adhoc On-demand Distance Vectoring (AODV) Stephen Walter December, 2008 Abstract Reactive wireless networks are lacking a general

More information

Object-oriented Paradigm as Evolution of Structured approach in Programming

Object-oriented Paradigm as Evolution of Structured approach in Programming Object-oriented Paradigm as Evolution of Structured approach in Programming Galina Istatkova Abstract: A viewpoint is given about structured programming (SP) as a fundamental approach for complex software

More information

Error recovery through programnling

Error recovery through programnling Error recovery through programnling by ALAN N. HIGGINS International Business Machines Corporation ' Kingston, New York INTRODUCTION The requirement for error recovery procedures has existed as long as

More information

Work groups meeting 3

Work groups meeting 3 Work groups meeting 3 INF5040 (Open Distributed Systems) Sabita Maharjan sabita@simula.no Department of Informatics University of Oslo September 07, 2009 Design Patterns J2EE Design Patterns Outline EIS

More information

How to speed up a database which has gotten slow

How to speed up a database which has gotten slow Triad Area, NC USA E-mail: info@geniusone.com Web: http://geniusone.com How to speed up a database which has gotten slow hardware OS database parameters Blob fields Indices table design / table contents

More information

Final Examination CS 111, Fall 2016 UCLA. Name:

Final Examination CS 111, Fall 2016 UCLA. Name: Final Examination CS 111, Fall 2016 UCLA Name: This is an open book, open note test. You may use electronic devices to take the test, but may not access the network during the test. You have three hours

More information

sqamethods Approach to Building Testing Automation Systems

sqamethods Approach to Building Testing Automation Systems sqamethods Approach to Building Testing Automation Systems By Leopoldo A. Gonzalez leopoldo@sqamethods.com BUILDING A TESTING AUTOMATION SYSTEM...3 OVERVIEW...3 GOALS FOR AN AUTOMATION SYSTEM...3 BEGIN

More information

Parallels Virtuozzo Containers

Parallels Virtuozzo Containers Parallels Virtuozzo Containers White Paper Deploying Application and OS Virtualization Together: Citrix and Parallels Virtuozzo Containers www.parallels.com Version 1.0 Table of Contents The Virtualization

More information

Background. 20: Distributed File Systems. DFS Structure. Naming and Transparency. Naming Structures. Naming Schemes Three Main Approaches

Background. 20: Distributed File Systems. DFS Structure. Naming and Transparency. Naming Structures. Naming Schemes Three Main Approaches Background 20: Distributed File Systems Last Modified: 12/4/2002 9:26:20 PM Distributed file system (DFS) a distributed implementation of the classical time-sharing model of a file system, where multiple

More information

Software Design Fundamentals. CSCE Lecture 11-09/27/2016

Software Design Fundamentals. CSCE Lecture 11-09/27/2016 Software Design Fundamentals CSCE 740 - Lecture 11-09/27/2016 Today s Goals Define design Introduce the design process Overview of design criteria What results in a good design? Gregory Gay CSCE 740 -

More information

MULTIPROCESSORS AND THREAD LEVEL PARALLELISM

MULTIPROCESSORS AND THREAD LEVEL PARALLELISM UNIT III MULTIPROCESSORS AND THREAD LEVEL PARALLELISM 1. Symmetric Shared Memory Architectures: The Symmetric Shared Memory Architecture consists of several processors with a single physical memory shared

More information

Introduction to Functional Programming

Introduction to Functional Programming PART I TE RI AL Introduction to Functional Programming MA CHAPTER 1: A Look at Functional Programming History CO PY RI GH TE D CHAPTER 2: Putting Functional Programming into a Modern Context 1A Look at

More information

JAVA S ROLE IN DISTRIBUTED COMPUTING

JAVA S ROLE IN DISTRIBUTED COMPUTING 4-03-20 INFORMATION MANAGEMENT: STRATEGY, SYSTEMS, AND TECHNOLOGIES JAVA S ROLE IN DISTRIBUTED COMPUTING J.P. Morgenthal INSIDE Java s Benefits, Distributed Java Applications, Remote Method Invocation,

More information

External Sorting. Why We Need New Algorithms

External Sorting. Why We Need New Algorithms 1 External Sorting All the internal sorting algorithms require that the input fit into main memory. There are, however, applications where the input is much too large to fit into memory. For those external

More information

Download, Install and Use Winzip

Download, Install and Use Winzip Download, Install and Use Winzip Something that you are frequently asked to do (particularly if you are in one of my classes) is to either 'zip' or 'unzip' a file or folders. Invariably, when I ask people

More information

An Extension to the Foundation Fieldbus Model for Specifying Process Control Strategies

An Extension to the Foundation Fieldbus Model for Specifying Process Control Strategies An Extension to the Foundation Fieldbus Model for Specifying Process Control Strategies EE382C: Embedded Software Systems, Spring 1999 Prof. Brian L. Evans Department of Electrical and Computer Engineering

More information

Introduces the RULES AND PRINCIPLES of DBMS operation.

Introduces the RULES AND PRINCIPLES of DBMS operation. 3 rd September 2015 Unit 1 Objective Introduces the RULES AND PRINCIPLES of DBMS operation. Learning outcome Students will be able to apply the rules governing the use of DBMS in their day-to-day interaction

More information

Educational Fusion. Implementing a Production Quality User Interface With JFC

Educational Fusion. Implementing a Production Quality User Interface With JFC Educational Fusion Implementing a Production Quality User Interface With JFC Kevin Kennedy Prof. Seth Teller 6.199 May 1999 Abstract Educational Fusion is a online algorithmic teaching program implemented

More information

N2880 Distilled, and a New Issue With Function Statics

N2880 Distilled, and a New Issue With Function Statics Doc No: SC22/WG21/N2917 = PL22.16/09-0107 Date: 2009-06-19 Project: Reply to: JTC1.22.32 Herb Sutter Microsoft Corp. 1 Microsoft Way Redmond WA USA 98052 Email: hsutter@microsoft.com This paper is an attempt

More information

Best Practices for Upgrading to SQL Server By Haldong Alex Ji

Best Practices for Upgrading to SQL Server By Haldong Alex Ji Best Practices for Upgrading to SQL Server 2005 By Haldong Alex Ji Published: December 2007 Best Practices for Upgrading to SQL Server 2005 Contents Choose a 64-bit System When You Can... 1 Moving to SQL

More information

Blizzard: A Distributed Queue

Blizzard: A Distributed Queue Blizzard: A Distributed Queue Amit Levy (levya@cs), Daniel Suskin (dsuskin@u), Josh Goodwin (dravir@cs) December 14th 2009 CSE 551 Project Report 1 Motivation Distributed systems have received much attention

More information

Mapping Objects To Relational Databases

Mapping Objects To Relational Databases Mapping Objects To Relational Databases An AmbySoft Inc. White Paper Scott W. Ambler Object-Oriented Consultant AmbySoft Inc. Material for this White Paper has been modified from Building Object Applications

More information