Upload
robert-young
View
88
Download
2
Tags:
Embed Size (px)
DESCRIPTION
ADABAS
Citation preview
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
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
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...
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
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
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— ...
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
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
— ...
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’
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
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
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
...
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:
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
...
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
...
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
...
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.
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
Feb 1, 2011 | University of Jena | 19
Accessing Adabas — Natural II
� Accessing Adabas
New Developments
...
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
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.
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
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
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
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
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
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
Feb 1, 2011 | University of Jena | 28
AdabasA database for mission-critical applications