for COBOL

Transcription

for COBOL
for COBOL
w w w . f a i r c o m . c o m
c-treeACE for COBOL
Other company and product names are registered trademarks or trademarks of their respective owners. © 2012 FairCom Corporation
FairCom
DATABASE
TECHNOLOGY
c-treeACE for COBOL
Overview
Features
FairCom’s c-treeACE for COBOL is a sophisticated file
system designed as a replacement for the default file
systems available with COBOL.
• Supports ACUCOBOL-GT Version 6.1.0 or later.
The basic functionality provided by many of the default
COBOL file systems is in some cases unable to satisfy
modern application needs. Often developers are forced to
migrate to complex and expensive relational systems. These
systems may place a heavy impact on the COBOL application
both in terms of performance and code modifications.
The FairCom solution maintains the simplicity of the
standard COBOL file system interface while offering COBOL
developers high-end database technology and additional
features such as transaction processing and a client/server
model. Existing applications integrate with c-treeACE for
COBOL without the need to recompile. In fact, c-treeACE
for COBOL has been implemented to fit ACUCOBOL-GT’s
file system and Micro Focus ExtFH architectures, providing
an easy replacement to the default file system. Developers
have the flexibility to choose which file system to use on a
file by file basis.
In addition, c-treeACE for COBOL transparently allows
access to data from your COBOL application through SQL
and other FairCom interfaces such as ODBC, JDBC, and
ADO .NET drivers.
Drop
Dr
D
rop
rop
p IIn
n
Solu
So
luttiiio
on
on
Solution
Enhance
Enh
E
En
nha
hanc
nce Your
Yourr
Yo
App
Ap
App
pllic
ca
attio
on
Application
No code cha
change
ange
C
L
O
B
O
Transaction
Tra
ansaction
Processing
& Client/Server
L
BO
CO
r
o
f
SQ
SQL
QL Access
Acce
Ac
cce
ess
ss
COBOL
CO
C
OB
BO
OL Data
Data
Da
ta
Page 2
IISAM
IS
SAM
AM Speed
Spe
peed
d
SQL
Power
SQ
QL P
Po
owe
wer
er
• Supports Micro Focus COBOL and other COBOL dialects
through the standard Callable File Handler interface (ExtFH).
• Developed according to the ACUCOBOL-GT specifications
and does not have any limitations with respect to the
Vision file system. The "I$IO" call is fully supported.
• No need to recompile your application.
• Integrated as an additional file system. The file and path
management is transparent for both Vision and c-treeACE
files. The details for handling c-treeACE files are specified
in the c-treeACE configuration file.
• c-treeACE and other file handlers co-exist in the same
application allowing applications to convert data on-thefly from one file system to the other.
• Supports READ-ONLY file access for applications storing
data on CD-ROM (demo, etc.)
• Provides a “ctutil” utility that implements the same
functionalities as the well-known vutil utility of Vision. ctutil
capabilities are directly accessible to the Cobol runtime
without the need of a SYSTEM call.
• Native COBOL record support (no DCI related record
buffer conversion which can slow down COBOL
applications)
• SQL support on native COBOL records -- even with tables
that have multiple schema definitions (redefined fields) in
the same table.
• The cross-platform nature of the c-treeACE engine makes
it easy to provide client/server support across multiple
platforms including Windows, Linux, Solaris, Mac OS X,
AIX, HP-UX and others
• The c-treeACE engine includes industrial quality on-line
transaction processing (OLTP) features that guarantee
ACID (atomicity, consistency, isolation, durability)
properties of transactions that are transparently (to the
application) activated on any table.
FAIRCOM CORPORATION
COBOL Applications
COBOL Runtime
c-treeACE ISAM Client
Standard ISAM
ISAM
Clients
& Tools
OR
Less Network Traffic
ISAM API
COBOL API
SQL
Clients
& Tools
Data
SQL APII
SQL
API
LA
ODBC, JDBC, .Net...
®
c-treeACE Engine
Multi-Threaded Core Technology
The COBOL & SQL Challenge
Do you need simultaneous access to data using
standard COBOL file IO routines and SQL? The
nature of COBOL data and record definitions (that
may have redefines) do not fit into a traditional
RDBMS (SQL based) table and record definitions
model and pose a unique and difficult challenge.
The FairCom engineering team has elegantly solved
this dilemma.
Other solutions dynamically re-map COBOL records
into SQL records with the benefit that the actual
tables and records are native SQL. However, a major
drawback of this approach is that the interface is
required to convert data for every access performed
by the COBOL application and imposes many
limitations on COBOL programmers. In many such
implementations, the programmer provides a nonSQL solution for the COBOL application and is forced
to systematically batch copy records into a relational
database, resulting in duplicate and out of sync data.
The FairCom approach is different. Our experienced
engineering team implemented the required
ACUCOBOL-GT and ExtFH interfaces through our
ISAM technology that directly parallel the standard
COBOL approach to indexed files without the
complications of SQL table remapping. Hence, from a
pure COBOL point of view, c-treeACE for COBOL is a
more advanced “native COBOL” file system imposing
no limitations for the COBOL programmer. In addition,
the direct interface between the c-treeACE SQL
engine and the native COBOL data allows immediate
available access through standard SQL.
The advantage of this architecture is that the
COBOL implementation is direct with no added
complexity. Furthermore, while there is some data
conversion required for SQL access, the nature of
SQL query optimizations along with the expectation
that the number of conversions will be quite low
makes the FairCom SQL approach far simpler
and more efficient than the remapping required
by other implementations.
Other company and product names are registered trademarks or trademarks of their respective owners. ©2012 FairCom Corporation
Page 3
FairCom
DATABASE
TECHNOLOGY
c-treeACE for COBOL
File system details
By design, the COBOL runtime interfaces with any file
system storing and retrieving record buffers and taking
advantage, when requested, of indexes over those record
buffers. The c-treeACE ISAM interface excels at this task.
Therefore, it was natural to implement the required
interfaces via the c-treeACE ISAM API thereby giving
COBOL direct c-tree access. The c-treeACE for COBOL file
system links directly into the COBOL runtime, giving
existing applications (without need of recompilation)
immediate access to c-treeACE database technology. The
COBOL runtime configuration, in addition to configuration
details that are specific to c-treeACE for COBOL, allows the
user to map files directly into the c-treeACE file system,
activating specific FairCom features such as transaction
processing, COBOL application paths, etc.
The c-treeACE for COBOL interface takes advantage of the
c-treeACE database engine and its many server-based
technology features. With a client/server architecture, an
important consideration factor is the time spent in
client/server communication (in contrast to the direct disk
access of other file-systems). With this in mind, FairCom's
engineers customized a special edition of the c-treeACE
database engine, c-treeACE for COBOL, incorporating the
functionality required of the file system by the COBOL
runtime into the server. The code linked into the runtime is a
thin client sending requests directly to the server, reducing,
as much as possible, network traffic and time spent in
communication. Through configuration, it is also possible to
use a non-customized c-treeACE database engine in which
the logic uses the standard c-treeACE client approach
where any of the interfaces provided to the COBOL
runtime use c-treeACE ISAM calls to the server (with the
result that one COBOL operation may result in multiple calls
to the server).
Due to the client/server nature of c-treeACE for COBOL,
some file maintenance operations that the COBOL
programmer typically performed directly from the COBOL
application, such as copying a file from one location to
Page 4
another, could be difficult, if not impossible, as the COBOL
application may run on a remote machine. With a
client/server architecture, clients only have access to the
remote file system through the c-treeACE database engine.
To solve these maintenance operation challenges, FairCom
introduced a new concept, the COBOL Command Channel.
COBOL Applications
COBOL Runtime
c-treeACE Client
c-treeACE Engine
Default File
System
c-treeACE
File System
Additional Functionality
•
•
•
•
•
•
•
•
•
•
•
Transaction Processing
Client Server Architecture
Multi-User Performance
Cross Platform/Multi-Platform Portability
Dynamic Backups
Granular cache support
Memory files
Partitioned files
Minimal Resource Requirements
Developer to developer support
No DBA
FAIRCOM CORPORATION
COBOL Command Channel
The Cobol Command Channel is a mechanism to
send remote commands (from a predefined list) to
the c-treeACE Server in order to directly execute
maintenance operations. A pre-defined file exists that
a COBOL application can open (configurable in the
c-treeACE for COBOL configuration file). Writing to
this file sends commands to execute. Reading from
the file retrieves command output.
c-treeACE for COBOL SQL Access.
The advantages of c-treeACE for COBOL compared
with other non-SQL based file systems are due to the
nature of the c-treeACE client/server database engine
and can be summarized as better performance,
improved stability, and enhanced features. In addition,
the developer gains efficient and complete SQL access
to their data that no other non-SQL solution offers. In
fact, c-treeACE SQL allows simultaneous access to
data through both SQL and ISAM APIs, on files created
through any of the available interfaces. Hence, it was
natural to implement the data conversion/mapping of
COBOL types into SQL types (and vice versa) allowing
c-treeACE SQL to directly access files created and
used by a COBOL application.
Any operation performed through SQL, as well as
COBOL, takes advantage of and maintains existing
indexes for the best performance. Because of the
nature of some COBOL types encoding, an index may
not sort as an end user may expect. c-treeACE SQL
can still take advantage of these indexes to retrieve
records, while not using them for sorting. This is an
architectural limitation, however, in practice does not
have significant impact as the SQL engine is able to
build temporary index files on the fly when necessary
and use dynamic index techniques.
A common habit for COBOL programmers is to use
redefines so that, depending on some criteria, data
are interpreted using a particular schema. The XDD
file contains information about the different available
schemas and their criteria. SQL takes advantage of
this information presenting each schema as a
separate table (named as defined in the XDD file).
Select statement on one of these tables display only
records matching the COBOL criteria. Inserts into
these tables are checked for matching criteria.
COBOL Source
The COBOL runtime does not provide information to
the file system about the record structure, however,
SQL requires this record definition. To this end, the
COBOL compiler can be instructed to generate XFD
files which define the record structure(s).
FairCom provides a command line switch to the
“ctutil” utility to convert XFD files into XDD (eXtended
Data Definition) which is an XML format. This file
contains information about the data and index
structures such as index definitions, record schemas,
default field values, null field handling (an undefined
concept in COBOL), behavior of data conversion
errors, and other c-treeACE related information.
COBOL Compiler
COBOL App
CTUTIL
XDD File
During the conversion from XFD to XDD, ctutil also
accepts a “rule file” that contains instructions to
customize the generated XDD file for specific needs
or to add information that the XFD does not contain
(such as default values for fields).
The information contained in the XDD files is vital for
the SQL engine to properly operate on COBOL data.
As such, FairCom has chosen to store this information
directly in the data file itself (with no effect on COBOL
access to the data). The newly created XDD file is
thus embedded into the data file with the ctutil
command line “sqlinfo” switch. After adding the XDD
information to the data file, the ctutil switch "sqllink” is
used to inform the SQL runtime about the file and
make it immediately accessible through SQL.
XFD File
SQL Dictionary
Physical File
For more information on c-treeACE visit:
www.faircom.com
Other company and product names are registered trademarks or trademarks of their respective owners. ©2012 FairCom Corporation
Page 5
www.faircom.com
FairCom Corporation
6300 W. Sugar Creek Drive
Columbia, MO 65203-9052 USA
Tel: 573.445.6833
Fax: 573.445.9698
FairCom Europe S.r.l.
Via Caduti di Superga n.1
24025 Gazzaniga (BG) Italy
Tel: +39.035.721.321
Fax: +39.035.721.314
FairCom Brazil
Av. Professor Alfonso Bovero,
1057, cj 38 São Paulo, SP
05019-011 Brasil
Tel: +55.11.3872.9802
Fax: +55.11.3875.1309
FairCom Japan
COI Akasaka 5 Chrome BLDG 7F
5-4-9 Minato-Ku Akasaka
Tokyo 107-0052 Japan
Tel: +81.3.4520.5417
Fax: +81.3.4520.5501
Entire contents Copyright 2012 FairCom Corporation. All rights reserved. Reproduction in whole or in part without permission is prohibited.
120807