home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 14 Text
/
14-Text.zip
/
xb2wp.zip
/
xb2wp.asc
Wrap
Text File
|
1994-11-24
|
28KB
|
615 lines
Alaska Software Inc.
Xbase/2 whitepaper (1)
------------------------------------------------------------------------
_______
Summary
The Alaska Software Company was founded in August 1994 by the partners
Günter Dapprich and Steffen Pirsig. The company is based in Frankfurt
am Main. Günter Dapprich is responsible for marketing and financial
management, Steffen Pirsig is responsible for architecture and
technical project management.
The aim of Alaska Software is the successful marketing and further
development of the software development system Xbase/2. This is a
compiler for the operating system OS/2 that possesses the same
language capabilities as CA-Clipper under DOS, but is extended with
many significant improvements.
Furthermore, it is planned to extend the Xbase/2 product family under
OS/2 and also for the operating system "OS/2 for PowerPC", or WPOS,
which will be available in 1995.
The foundation of the company followed the completion of an alpha
version of the development package Xbase/2. The start of the develop-
ment of the product dates back to the first quarter of 1993.
____________________
Basis of the Project
The aim of the entire project, codenamed "SHARK", was and is the
production of a 100% CA-Clipper 5.01 compatible development package
for the operating system OS/2, compatible in language and function.
See the section entitled "Compatibility".
But source-code compatibility with CA-Clipper alone would not be
sufficient to support the operating system OS/2. Features of OS/2
have been imported into the product Xbase/2, which relevantly apply
to the philosophy of a 4GL such as Xbase. A description of these is
given in the chapter "Extended Features and Concepts".
_______
Xbase ?
Xbase is the name given to the family of languages that was invented
by the company Ashton Tate, with their product dBase. In the last 10
years, the language Xbase has undergone ever increasing success with
new Xbase products such as Clipper, FoxPro, Flagship, and many others.
The reasons for this are many-fold, the main ones being obviously in
its high abstractness, from the underlying architectures, as well
as the semantic capabilities of its embedded dialog and database
concepts.
These both, in combination with the untyped and dynamic characte-
ristics of its language, generally describable as "tolerant", gave
rise to the continual increase of the Xbase community.
Today, dBase has sold 6.7 million, Clipper 2.3 and FoxPro 1 million.
The entire Xbase market now holds more than about 10 million users
and developers. ( Source: International Data Corp./Framingham,MA)
Alaska Software Inc.
Xbase/2 whitepaper (2)
------------------------------------------------------------------------
Xbase developed throughout the years to become the implementation
language for branch-specialist and commercial applications. Thus more
and more commercial software applications under DOS are written in
Xbase over the last decade, this mainly in CA-Clipper.
A special market of so-called third-party products has formed around
Xbase. This is comprised of third-party originators who have devel-
oped software products that extend the capabilities of Xbase develop-
ment packages. The number of originators of third-party products is
hardly countable any more.
The market for Xbase users, developers and third-party originators
for the operating system OS/2 is not coverd, since no powerful Xbase
package exists on the market.
With the rapid development of the use of Xbase products, the lack of
support for the latest arrivals in programming techniques has become
ever increasingly obvious. Many originators of products have tried
to help out in these shortcomings.
Areas, where Xbase urgently requires change:
o Consistent programming model, that allows the changeover from the
procedural to the event-driven approach in software development.
o Object oriented programming model (OOP).
o Support of modern graphical user interfaces ( GUI).
o Improvement of the abstraction of Xbase DML
(Database Manipulation Language).
o Disengagement of the inquiry language from the DBF database model.
The Alaska Software Company aims to develop an Xbase development
package, that makes the facilities of the OS/2 operating system
available to the Xbase developer community.
Alaska Software Inc.
Xbase/2 whitepaper (3)
------------------------------------------------------------------------
_____________________________
Compatibility with CA-Clipper
Xbase/2 is source-code compatible with CA-Clipper versions '86, '87
and 5.01. A limited compatibility with most Xbase dialects such as
FoxPro and dBase is also provided.
The following table provides an overview of the compatibility with
CA-Clipper:
--------------------------------------------------------------------
Sprachumfang CA-Clipper 5.1 Xbase/2 1.0
--------------------------------------------------------------------
Commands yes yes
Functions yes yes
Codeblocks yes yes
Objects (1)yes yes
Preprocessor directivs yes yes
Userdefined Commands yes yes
Userdefined Functions yes yes
Runtime macro-evaluation yes yes
private, public, local, static yes yes
dynamic Variables yes yes
Extend-System yes (2)yes
--------------------------------------------------------------------
1) CA-Clipper only has internal objects, Xbase/2 features a complete
object model.
2) Xbase/2's extend system has been greatly enhanced in its API
interface capabilities, and has been made easier to handle.
Alaska Software Inc.
Xbase/2 whitepaper (4)
------------------------------------------------------------------------
______________________________
EXTENDED FEATURES AND CONCEPTS
Language Philosophy
The members of the development team are C/C++ or Lisp developers, who
have had to introduce themselves extensively to the Xbase language
and its dialects such as especially CA-Clipper. In this way, it was
clearly concluded that the extended capabilities of the OS/2 operating
system must be made available from the simple and tolerant level of
the Xbase language. Thus, during the development of the Xbase/2
compiler, the most important rule of approach was to capture all the
complex mechanisms of OS/2 thoroughly and completely.
Maximum Values
Due to the efficient use of the mechanisms available under OS/2, there
are no bounds in Xbase/2, as in CA-Clipper under DOS. The 64k limit
for strings, and the limit of 4096 for the number of elements in an
array do not exist in Xbase/2. The size of any data type is mainly
only limited by the available physical and virtual memory under OS/2.
Arrays with 100,000 elements, or a 4Mb long text can be stored in a
single variable under Xbase/2.
Exchangeable Database Machines
Instead of using the concept of an RDD (Replaceable Database Driver)
as used in CA-Clipper, Xbase/2 uses the concept of an abstract
database machine (DBE: Database Engine), which is comprised of several
individual components. These components are internally objects, used
to provide the management of data and files.
For the time being, the architecture of the DBE components is based
on the System Object Model (SOM1) of OS/2, and will be ported to SOM2,
as soon as this extended system object model becomes generally
available.
In Xbase/2, databases are dynamically loaded and embedded at runtime,
and can also be released again at runtime. This technology differs
radically from the RDD technology used in CA-Clipper, in which mono-
lithic database drivers have to be prepared at link time, which
requires significantly larger amounts of memory-space.
In Xbase/2, the components (objects) of many DBE's can be joined
together to form a new DBE. Using this modular model, for instance,
an index can be made for a file, which is in SDF format (System Data
Format). In this case, all one needs to do is to load in the NTX
components of the DBFNTX Database Engine, that makes it possible to
sort files logically in SDF format.
The Xbase/2 subsystem that makes this technology possible is the
Database Management Language Broker (DMLB). The DMLB simplifies the
development of Database Engines. Applications written in Xbase/2 using
DMLB as an database-access-layer can connect to a wide range of
Database systems.
We shall provide third party developers a special DMLB toolkit, with
example implementations, including source-code, and the "SOM bindings"
on demand, free of charge.
Alaska Software Inc.
Xbase/2 whitepaper (5)
------------------------------------------------------------------------
The Object Model
CA-Clipper 5.01 has four internal object classes, three of them are
the foundation onto which the enormous flexibility of the Get-System
and the TBrowse is based on. However, the fact that CA-Clipper lacks
an Object-Oriented-programming model is an enormous shortcoming. In
the development package Xbase/2, an object model exists that is
available to the developer at language level, and provides him with
object oriented programming as a basis for the development of complex
applications.
As a matter of fact the Get und TBrowse classes are usable under
Xbase/2 as base classes, with all the facilities of object oriented
programming ( OOP).
Xbase Parts
Any extension of the existing range of dialog components must be as
efficient and reliable as possible, especially when it comes to third
party originators. For this reason, a special encapsulating and
binding mechanisum was developed: the Xbase Parts,or, in short, XBP's.
Conceptually, XBP's may be compared to technologies such as VBX
Controls (Visual Basic) and Digitalk PARTS. Communication with these
takes place via the Event Management available under Xbase/2, and
the so-called "XBP Callback Slots", in which a codeblock can be
anchored.
By contrast with existing concepts such as VBX Controls etc., XBP's
are real objects, within the existing Xbase/2 object model.
We use the term "Parts" on purpose, since the internal classes, from
which the XBP's are derived, are modeled very closely according to
the specifications given by OpenDoc.
We shall provide third party developers a special XBP toolkit, with
example implementations, including source-code, on demand, free of
charge.
Event Model
The concepts that the "modern" graphical user interfaces, such as
Presentation-Manager or Windows, provide for the software developer,
are in our opinion no longer up to date.
Quite apart from that, they are not in any way in line with the
philosophy of a language such as Xbase.
Thus, the "dispatching mechanisms" in Xbase/2 under OS/2 are complete-
ly encapsulated, and embedded in a flexible and easy to manage event
model.
The advantages of the available event model are:
o Very easy migration of applications in charactermode
(Video Input/Output, VIO) to graphics mode
(Presentation Manager Mode, PM)
o Encapsulation of the PM specifications/restrictions
(eg. 1/10 second rule)
o Transition to OpenDoc is possible without any problems
o Significantly greater working reliability of application programs.
Alaska Software Inc.
Xbase/2 whitepaper (6)
------------------------------------------------------------------------
Multithreading
Advantage has been taken of a particular feature of OS/2, called
Multithreading, during the development of Xbase/2, from the beginning,
and in every stage of development.
All operations on data types are already so well encapsulated, that
there are no more problems that can hamper an asynchronous concurrent
use of an Xbase/2 application.
The consequent use of the features of multithreading, in conjunction
with the event model, described in the last paragraph, has lead to the
situation, that the Xbase/2 developer does not have to worry about the
1/10 Second rule of the PM any more.
In Xbase/2, the developer is able to perform a calculation over an
array of 50.000 values without having to care that interaction with
the Workplaceshell may be interrupted.
Automatic" threading allows XBP's, under Xbase/2, to update informa-
tion independently in a thread specially provided for themselves. In
this way, for example, in the case of a database navigation, the
message-command to "stabilize" is sent to the owned Browse object.
The developer can thus concentrate on his original targets.
Data Types and Persistence
Saving and loading of "private" and "public" dynamic variables are
no longer supported in their proprietary rudimentary form. This
causes a slight incompatibility with CA-Clipper.
However, all data types are persistent in Xbase/2. This applies to
character strings, numeric and date values, and arrays of any dimen-
sionality. All these values can be saved and loaded.
A real special feature and advance over CA-Clipper, provided by
Xbase/2 is the capability of saving and loading of codeblocks (The
reader can guess the consequences resulting from this in the develop-
ment of applications, particularly for data-driven applications.).
Memory Management
The architecture of the Xbase/2 runtime system makes use of a memory
management system of its own based on handles, the efficiency of which
is brought about by a separate thread with "Packer" and "Garbage
Collector". This elegantly solves the problem of the typical fragmen-
tation and unrecoverable loss of memory space. Additionally, another
feature of this memory management system is the complete isolation of
Xbase/2's own internal memory management from memory requirements
arising from C-heap functions of the "malloc-family".
For the C developer, who wishes to provide additional functions on the
Xbase/2 language level, this means that one does not have to worry at
all about any possible interference between the two memory management
systems.
Alaska Software Inc.
Xbase/2 whitepaper (7)
------------------------------------------------------------------------
Seamless - Rexx
In the course of development, OS/2's interpreter or script language
REXX became a significant tool for the development team. Important
problems such as version control, using one single text source for
the online help and the handbook, were solved. Many hundred
kilobytes of REXX scripts have been written in this time.
The positive experience of the development team with REXX is also
available to Xbase/2 developers and users. Any application produced
under Xbase/2 can run a REXX script within its own address space, with
transparent access to the functions of the application and of the
runtime system, by means of calling one function.
In this way, all applications developed using Xbase/2 are by nature
capable of scripting. It is now simple to import data from host
systems, and to automize any functions of an Xbase/2 application, by
using a Rexx script.
Mission Critical Applications
The concept of exception handling under OS/2 has been introduced via
the language construct BEGIN/END SEQUENCE - RECOVER - BREAK, provided
by CA-Clipper. All program errors, whether they are of the runtime
system or of OS/2 itself, are taken out as error objects of the
language level.
The Xbase/2 developer is thus for the first time able to provide real
mission-critical applications, for sensitive tasks in the daily use of
Xbase/2 applications.
The OS/2 Help System
The help system provided by OS/2 is supported by all dialog components
of the Xbase/2 development package. The help compiler IPFC, available
under OS/2, is also part of the development package.
What else ...
An exhaustive description of all extended capabilities of OS/2, and
the methods of support for them provided by Xbase/2, would overrun
the space available here. It should be mentioned, that the general
automatic support of OS/2 facilities such as locale settings
(Currency symbol, date format), and the ISO collation table was/is
always guaranteed.
Alaska Software Inc.
Xbase/2 whitepaper (8)
------------------------------------------------------------------------
Compiler Technology
We have taken particular notice of compiler technology. As a result
of intensive study of the language, and the use of RISC and CISC
architectures, we have decided on a "hybrid technology", which is
certainly not one of the simplest concepts in compiler construction.
This, stated clearly, means that the generated code in the object
files produced by our compiler consist of a mixture of "native-code"
and "pseudo-code" (P-code). Our test cycles and analyses have
definitely shown that the best performance for a untyped dynamic
language such as Xbase can be achieved using this technology. A
special part of our compiler, the so-called "interferencer",
optimizes the balance between P-code and "native code".
However, under all circumstances, all functions, procedures, their
context, and all flow-control operations, are always generated as
"native code". Only the expressions themselves are balanced between
"P-code" and "native code".
32-bit Native Code
The object files generated by the Xbase/2 compiler comply with the
"object module format" used by OS/2, and are therefore not affected
by any further restrictions. Generally expressed: applications
developed under Xbase/2 are real 32 Bit OS/2 2.x application programs.
Open to all sides
One of the main reasons for the success of CA-Clipper was/is the
Extend System. For this reason, the following API documentations are
being made available for the development package Xbase/2, which also
provide the C/C++ developer with the possibility of accessing data
types of the language level and running codeblocks.
The API model of Xbase/2 consists of the following groups:
o Parameter API
o Container API
o Memory API
Additionally, the following toolkits are available on request to all
interested third-party developers, free of charge:
o XBP toolkit
o DMLB toolkit
Alaska Software Inc.
Xbase/2 whitepaper (9)
------------------------------------------------------------------------
__________
Conclusion
It is our opinion, that the development team has reached the target
to consequently support a large number of the specific enhancements
of OS/2, as well as giving the language Xbase, in particular the
dialect Clipper in this case, another upward push. This being in
particular, since for the first time a classical "midrange develop-
ment tool" is being introduced under OS/2.
Especially as far as the support of OS/2 by Xbase products is
concerned, there has been an enormous gap. The aim of our development
package Xbase/2 was and is to close this gap, and to show DOS and
Windows Xbase developers, that OS/2 provides real productive
advantages.
Furthermore, on the basis of our clear compatibility and migration
strategy for the Xbase/2 development package, a real stimulus is
produced, to migrate from DOS to OS/2: this being not only as a
result of the fact that simply recompiling CA-Clipper applications
with our development package produces a much more stable application
program.
Views towards the Future
We obviously had many ideas during the course of the project. The most
important of these have already been observed, but not yet implemen-
ted, in the Version 1.0 described here.
After handing the Version 1.0 over to the maintenance and support
teams, the development team will attempt to realize these ideas.
At present, considerations are being proposed to split the
development package Xbase/2 into different product lines. The
version 1.0 will form the basic technology: ie. all future products
will be based on the same codebase: Xbase/2 version 1.x.
o WPS-based integrated development environment, based on SOM2 and DSOM
This can contain Class Browser, Editor with Generic Complete, and
Compiler-frontend, which extends incremental compilation. This all
being not in the usual way, but based on a repository-oriented
technology. For this, further research is still necessary,
especially in the areas of "repository", "Version Control" and
"Concurrent Project Management".
o WPS-based interactive user front end, in which source code is either
interpreted, or run after compilation. This would be like a classic
user-oriented Xbase system, such as "dBase for Windows" and such
like.
o Since the front end of our compiler technology is already inter-
changeable in the Version 1.0, 100% support of dBase and FoxPro
dialects of Xbase would be an additional possibility.
Alaska Software Inc.
Xbase/2 whitepaper (10)
------------------------------------------------------------------------
o Extension of the compiler and OOP model with support for
Direct-to-SOM, that is, that classes in the Xbase/2 language level
may derived from classes encapsulated in SOM (eg. Workplaceshell
classes). Additionally, classes implemented in Xbase/2 can be used
as base classes in other languages, which are supporting SOM
usage-bindings. In this way, a large step towards distributed
applications in combination with DSOM would be possible.
o The areas of OpenDoc, OpenScriptingArchitecture (OSA semantic
events), has very much fascinated us, and you can be sure, that we
shall also in this area be amongst the first to provide these
mechanisms for developers in Xbase/2
Alaska Software Inc.
Xbase/2 whitepaper (11)
------------------------------------------------------------------------
____________
Availability
As always, the availability of a product is the most important point.
In this point, we have gone according to the policy of keeping the
entire project completely secret.
This white paper is first issued together with the beta announcement,
in October 1994. The beta program is itself limited to our complied
range of about 100 firms. We expect to reach this number of beta
subscribers in December 1994.
We are not placing any limit on the duration of the beta test. The
product will be announced as available as soon as the beta test has
attained our target results. These are:
Beta Drop 1
o Report the completeness of functions and features of our product
o Report the actual level of compatibility with Clipper 5.01, and
any changes required to obtain this compatibility.
o Correct errors/bugs
o Any necessary correction of documentation, and elimination of
ambiguities.
Beta Drop 2
o Test the installation program
o Report internal values of load-up, and other metric information
of our compiler technology and run-time system.
o Validation of the various optimizing strategies
o General increase of performance.
We should like to draw attention to the fact, that the final contents
of our Xbase/2 product package will be fixed after completion of
Beta-Drop-1.
Alaska Software Inc.
Xbase/2 whitepaper (12)
------------------------------------------------------------------------
___________________
Further Information
We hope to have provided some insight into our product, and our
present plans, with this whitepaper.
More detailed information about the technical details of the Xbase/2
development package can be found in the information brochure "Xbase/2:
Concepts and Technology", which will be released and available at
the end of the Beta Test. You can obtain this free of charge from
the following sources.
Specializing Journalists
Specializing journalists may subscribe to our press service as
distributors free of charge. Any test orders for our product can be
obtained via our press service.
Distributors
Distributors who would like to distribute our product, should please
contact our product marketing department.
Third Party Originators
Add-on originators and developers who wish to produce a third party
product for Xbase/2, may request further information. They should
make a point of contacting our 3P (Third Party Product Program).
Technical Support
We have decided on CompuServe as our official support channel.
We shall provide the forum OS2UGER with an own section: Xbase/2.
Furthermore, all Xbase/2 development packages will include a
CompuServe brochure, which gives the registered Xbase/2 user the
right to obtain a $15 user credit and a temporary ID within
CompuServe.
Alaska Software Inc.
Xbase/2 whitepaper (13)
------------------------------------------------------------------------
_________________
How to Contact us
Alaska Software GmbH.,
Henschelstraße 26,
60314 Frankfurt/Main
Germany
Telephone: + 49 -69 -439646
Fax: + 49 -69 -439673
CompuServe: 100436,1375
Internet: 100436.1375@compuserve.com
Product Marketing: Günter Dapprich
Info/Press Service: Hanna Cano
Your Xbase/2 development team
___________
Trade Marks
PC-DOS, OS/2, Workplace Shell and Presentation Manager are registered
trademarks of International Business Machines Corp.
SOMObjects and System Object Model (SOM) are trademarks of
International Business Machines Corp.
MSDOS, FoxPro and Visual Basic are registered trademarks of
Microsoft Corp.
dBASE is a trademark of Borland International Inc.
Flagship is a trademark of Multisoft GmbH.
CA-Clipper, Visual Objects for Windows are registered trademarks of
Computer Associates International Inc.
OpenDoc is a registered trademark of Apple Computer Inc.
Smalltalk and PARTS are trademarks of Digitalk Inc.
Xbase/2, DMLB and XBP are trademarks of Alaska Software GmbH.