28
Adabas — Concepts of a Database for Mission-Critical Applications Friedrich-Schiller-Universität Jena Lehrstuhl für Datenbanken und Informationssysteme Prof. Dr. Klaus Küspert — February 1, 2011 — Software AG Arno Zude, R&D ETS Adabas

SAG-Adabas.pdf

Embed Size (px)

DESCRIPTION

ADABAS

Citation preview

Page 1: SAG-Adabas.pdf

Adabas —

Concepts of a Database for

Mission-Critical Applications

Friedrich-Schiller-Universität JenaLehrstuhl für Datenbanken und InformationssystemeProf. Dr. Klaus Küspert

— February 1, 2011 —

Software AGArno Zude, R&D ETS Adabas

Page 2: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 2

Agenda

1) Software AG at a Glance

2) About the History of Adabas

3) Adabas Concepts

� Data Model

� Data Structures

� Recovery

4) Accessing Adabas

5) New Developments

6) Success Factors

Page 3: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 3

Software AG at a Glance

Founded in 1969

2nd largest German software company

� Headquarters in Darmstadt

4th largest European software company

Ca. 1.2 billion (109) € revenue in 2010

Ca. 5,700 employees worldwide

� >2,000 in Germany

� ca. 850 in R&D

Represented in 70 countries

More than 10,000 enterprise customers

Ca. 29% owned by Software AG Foundation

� Software AG at a Glance

About the History of Adabas

Adabas Concepts...

Page 4: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 4

Software AG at a Glance — Products

� Software AG at a Glance

About the History of Adabas

Adabas Concepts...

1st relational-like, transactional high-performance database

First Business-to-Business server and SOA integration platform

First business process analysis & design platform

One of the first 4th-generation programming languages

Page 5: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 5

Software AG at a Glance — A Global Company

� Software AG at a Glance

About the History of Adabas

Adabas Concepts...

R&D Labs in All Major IT Hotspots

Page 6: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 6

About the History of Adabas

“Adaptable Database System”

Adabas development started in 1969

� first on mainframe

Relational-like, transactional, multi-user

Used across all industries

� Banking, insurance, logistics, government, etc.

More than 2,000 customers worldwide

Developers in Germany, US, UK

� Darmstadt, Reston/VA, Denver/CO, Derby

Runs on mainframes and open systems

� z/OS, z/VSE, z/VM, BS2000/OSD

� Unix, Linux (incl. z/Linux), Windows

� About the History of Adabas

Adabas Concepts

— Data Model— ...

Page 7: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 7

Adabas Concepts — Data Model

Adabas database

� Multiple files in a database

� Multiple records in a file

� Multiple fields in a record

Linking different files via common fields

� no pointers between records

� like in relational model

� unlike in hierarchical, network models

Read & update operate on individual records

� not sets of records

Search operations create lists of record IDs

� not protected against parallel update

� Differences to relational model

� Concepts — Data Model

— Data Structures

— ...

IndexDescriptor

CommitEnd Transaction

ColumnField

RollbackBackout Transaction

RowRecord

TableFile

RelationalAdabas

Adabas vs. relational terminology:

Database

File

Record

Field

Page 8: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 8

Adabas Concepts — Data Model II

Various data types for fields

� Character, binary

� (Un)packed decimal numbers

� Fixed-point, floating-point

� Large objects (e.g., multi-media)

Fields can be defined to have multiple values

� Multiple-value fields

Groups of fields can be defined to have multiple occurrences

� Periodic groups

Related data is kept close together

� Efficient data access

� Differences to relational model

� Concepts — Data Model

— Data Structures

— ...

Page 9: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 9

Adabas Concepts — Data Model III

Fast read & search access via indexes

� called “descriptors”

Several types of descriptors

� (Simple) descriptor

� One full field

� Subdescriptor

� Part of one field

� Superdescriptor

� Combination of parts of several fields

� Hyperdescriptor

� Combination of several fields

� Value(s) determined by user exit

� Collation descriptor

� Sort sequence defined by user exit

� Flexible, efficient data access

� Concepts — Data Model

— Data Structures

— ...

Field = ‘Jena’

Descriptor = ‘Jena’

Field = ‘20110201’

Descriptor = ‘2011’

Field 1 = ‘Kuespert’

Field 2 = ‘20110201’

Descriptor =

‘Kuespert__20110201’

Page 10: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 10

Adabas Concepts — Data Structures

Container datasets (disk files)

� Fixed block sizes, direct access

� Block = minimal I/O unit

� DATA — Data storage

� The actual payload data

� ASSO — Associator

� File directory

� Field definition tables

� Indexes

� Free space management

� WORK — Work file for temporary use

� Journal of updates for restart recovery

� Search results

� PLOG — Protection log

� Journal of updates for archive recovery

� Copied off for archival when full

� Concepts — Data Structures

— Recovery

...

Adabas Server

WORK PLOG

Seq.

PLOG

ASSO

FDTs

FCBs

Index 1 IX 2

DATA

File 1

File 2

Page 11: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 11

Adabas Concepts — Data Structures II

Data storage (DS)

� Variable-length data records

� One or more records per block

� Record moved to other block if it

becomes too large to fit

� Concepts — Data Structures

— Recovery

...

Data Compression

� Field data typically stored in compressed form

� Character: No trailing blanks

� Numeric: No leading zeros

� Null-value suppression option

� Compact storage, efficient access

Page 12: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 12

Adabas Concepts — Data Structures III

Address converter (AC)

� Each record identified by its “ISN”

� Internal Sequence Number

� A unique number, usually serial

� AC maps ISNs to DS blocks

Index

� Index maps descriptor values to ISNs

� Stored as inverted lists

� B*-tree

� Concepts — Data Structures

— Recovery

...

Page 13: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 13

Adabas Concepts — Data Structures IV

� Concepts — Data Structures

— Recovery

...

Finding data records — from index via address converter to data storage:

Page 14: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 14

Adabas Concepts — Recovery

Restart recovery

� Performed if database server fails

�Power failure

�Canceled by operator

�System problem

�Software problem

� When server is restarted …

�Protection data on WORK is used to

� detect need for restart recovery

� repair inconsistent internal data structures

(e.g., index trees)

� redo committed updates that were not

written out prior to the failure

� undo uncommitted updates that were

written to the database

� Concepts — Recovery

Accessing Adabas

...

Page 15: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 15

Adabas Concepts — Recovery II

Archive recovery

� Performed if database gets damaged

�Disk failure

�Application misbehavior

�Software problem

� To repair damaged database or file(s) …

�Restore archive copy of database/file(s)

�Use the protection data on the PLOGs to

� replay all updates performed between the time the archive copy was created and the time the damage occurred

�Alternative: Use the PLOGs to

� roll back all updates between the current time and the time first damage occurred

� Concepts — Recovery

Accessing Adabas

...

Page 16: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 16

Accessing Adabas

Application programming interfaces to Adabas

� Direct call interface

�For example, from COBOL, C

� Natural (Software AG’s 4GL)

� Adabas SQL Gateway

�ODBC

�JDBC

� Adabas SOA Gateway

�SOAP, REST

� Accessing Adabas

New Developments

...

Page 17: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 17

Accessing Adabas — Direct Call Interface

Set up Adabas Control Block and up to five Adabas buffers with …

� Adabas command to be executed

� Data to be searched, read, or inserted/updated/deleted

Example (COBOL):

� Accessing Adabas

New Developments

...

MOVE 'S1' TO ADACB-COMMAND.MOVE 'I' TO ADACB-COP2.MOVE DBID-FNR TO ADACB-DBFILE.MOVE 'FIND' TO ADACB-CID.MOVE 'AA,8,A,AE,20,A,AJ1-3,20,A.' TO ADABAS-FORMAT- BUFFER.MOVE 'AE,9,A,D,AJ,5,A.' TO ADABAS-SEARCH-BUFFER.MOVE 'KUESPERT JENA ' TO ADABAS-VALUE-BUFFER.

CALL 'ADABAS' USING ADABAS-CB,ADABAS-FORMAT-BUFFER,ADABAS-RECORD-BUFFER,ADABAS-SEARCH-BUFFER,ADABAS-VALUE-BUFFER,ADABAS-ISN-BUFFER.

Page 18: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 18

Accessing Adabas — Natural

is …

� Software AG’s 4th-generation programming language

� for application development

Example for calling Adabas:

� Accessing Adabas

New Developments

...

FIND PERSONNEL WITH NAME = ' KUESPERT'AND CITY = ' JENA'

DISPLAY'ID' PERSONNEL-ID'Surname' NAME'Location' CITY

END-FIND

Page 19: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 19

Accessing Adabas — Natural II

� Accessing Adabas

New Developments

...

Page 20: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 20

Accessing Adabas — SQL Gateway

Adabas SQL Gateway

� Calling Adabas via an SQL interface

� Accessing Adabas

New Developments

...

SELECT personnel_id, name, city, FROM PERSONNEL t1, PERSONNEL_ADDRESS_LINE t2WHERE name = 'Kuespert' AND city = 'Jena'

AND t1.isn_personnel = t2.isn_personnel

� Executed by accessing only one Adabas file (table)

�PERSONNEL_ADDRESS_LINE is periodic group in PERSONNEL file

� Embedded into host programming language

� Calling Adabas via an ODBC or JDBC interface

Page 21: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 21

Accessing Adabas — SOA Gateway

� Accessing Adabas

New Developments

...

Adabas SOA Gateway

� Calling Adabas via a request to a Web service URL

http://ibm2.software-ag.de:7014/Adabas_220_88?WSDLhttp://ibm2.software-ag.de:7014/Adabas_220_88?GET&A 1=adabas2006

� Calling Adabas via a SOAP request

� Callable from programming languages, Web browser, Excel, Word, etc.

Page 22: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 22

New Developments

� New Developments

Success Factors

Data Management

Application

Cluster

Administration

Data Organization

Data Access

Java .NET 3GL Natural

Data Distribution

Performance

VSAM DL/1

Security

Monitoring

Externale.g. RACF

Statistics

Text Retrieval

DB2

Utilities •Replication•Transaction

•Partitioning•Save/Restore

Windows, Unix. Linux, Mainframe

• Availability• Load Balancing

Cross-platform

Apps

TaminoXML

ServerSQL Java XML SOA

Page 23: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 23

New Developments — Adabas Cluster Services (2002)

� New Developments

Success Factors

DB DB

z/OS A z/OS B

User

AdabasServer

User

AdabasServer

Cache

Lock

WORK WORKPLOG PLOG

Seq.PLOG

XES XES

XCF

CF

Page 24: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 24

New Developments — Event Replicator for Adabas (2005)

� New Developments

Success Factors

Replication of production data

Close to real time

From Adabas (source)

To …

� Adabas (destination)

� relational databases

� data warehouses

� applications

Database-to-Database

Replication

Multi-Target and Application Replication

RDBMS

Integration PlatformData Transformation, Enrichment and Routing

Applications

JMS

MessagingData

Warehouse Business Intelligence

and Reporting

Page 25: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 25

New Developments — Data Archiving for Adabas (2010)

� New Developments

Success Factors

Archival of production data

Resource savings

� Automation

� Lower-cost hardware

Regulatory compliance

� Storage

� Robust search capabilities

Performance

� Relieve pressure on production

database

Business Applications

Production

Database

Archive

Database

Archive

Vaults/Files

X

Extraction

Filter

Recall

Archive

Vaults

Page 26: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 26

New Developments — Data Masking for Adabas (2011)

� New Developments

Success Factors

Generation of Test data

� “production-like” data for …

� application testing

� end user training

� demonstration

� research

Automated process

� Less resources to create test data

Regulatory compliance

� Privacy

� Security

Application quality

� Production versus generic dataData Masking

Sensitive Data

Test Data

Data

Masking

Page 27: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 27

Success Factors

Flexible data model

�Supports relational structures, entity-relationship model, others

Excellent performance — Key factor�Helped by data model, record-level locking, exploitation of system functions

�Economical use of disk space via data compression, saving on I/O operations

High availability

�Little downtime for maintenance (planned outages)

�Quick & reliable recovery (unplanned outages)

Simple administration

�A few database administrators take care of many Adabas databases

Several platforms

�Present across mainframes and open systems

� Success Factors

Page 28: SAG-Adabas.pdf

Feb 1, 2011 | University of Jena | 28

AdabasA database for mission-critical applications