rx o technology. general prezentation
TRANSCRIPT
RxO DBMS
New solution for fast creation of high-performance, flexible business-systems.
Business-systems - current situation.
Traditionally, informational business-systems (IBS) appear to be a combination of applications,
implementing business logic and user’s interface, and RDBMS for data storage.
Why?
Business model in an application
DBMS (persistent data)
RDBMS.
Informational business-systems (IBS) implicate storage of big volume of data. RDBMS
provide reliable data storage. Also RDBMS possess others facilities important for IBS. They
allow to process data, modify existing data schemes, provide multiuser work and transactions.
There are common language standards for management (SQL) and access interfaces in
RDBMS. They are also open for third systems use.
However, RDBMS can’t serve for creation of complex business models. Attempts to expand
RDBMS with new abilities for management of complexity, without usage of other
programming systems, were unsuccessful till now. So, for complex business models creation
external regarding RDBMS systems are used.
Empoloyees Ledger
SalesHeaders
s
SalesItems 100
Junk
$10
1 John
RDBMS (persistent table model)
The business
Business objects.
OO approach seems to be the best solution for management of complex business logic. So-
called business-objects, directly modeling different essence of modeled object domain are the
results of its application.
There are two alternative ways for describing and creation of business-objects these days:
1) Use of universal OO programming systems
2) Use of specialized business tools
Universal OO programming systems
Universal OO-languages are very expressive. However they don’t suit for creation of long-live
business models by themselves. Applications created with their help require external storage.
Costs only for setting of data exchange between BD and application are up to one third of
whole project cost. (Martin Fowler opinion). Moreover:
- Versus to relational systems, there aren’t possibilities for easy execution of group operations,
used for reports generation, and execution of unplanned inquiries.
- The created model is static. Versus to relational systems, for structure correction program
source code change is needed, and also the entire restart.
Solution of such problems requires significant e programmers' efforts. It leads to time and
finance expenditures.
Business model in OO application
John
Empoloyees Sales
100
Junk
1
Ledger
$10
DBMS (persistent data)
The business
Specialized business tools
For solving business tasks specialized business tools (SAP, Navision, 1C etc.) are used very
often. They may be considered as virtual environments, which allow to describe and to
manipulate business objects. These are complex applications which join functions:
- Of special programming systems, including their own language, (not always object-
oriented), predetermined data types and as a rule ready data scheme (so-called standard
configuration)
- Of DBMS, executing access management function, building of requires, execution of
transactions
- Of user interface builder (including WEB-interface)
In the business tolls their interaction with DBMS is almost hidden from user.
Drawbacks:
- usually there is excess standard functional (systems are unreasonably heavy, resource-
intensive), often inappropriate to real business needs
- Highly qualified specialists are required for such systems
- Level of openness (it’s difficult, to match systems like those with third one)
- High solutions costs
John
Empoloyees Sales
100
Junk
1
Ledger
$10
DBMS (persistant data)
Business model in business tools
The business
Principal imperfection of current systems.
Low performance is a principal imperfection of any system, where business model building
tool is separated from DBMS where data is stored.
Causes of low performance:
- Data processing leads to permanent data exchange between application and DBMS.
- Ineffective data exchange during group data processing (for example: quires over objects
set).
- Implementation of complex logic out of server in multiuser environment increases
significantly chances of conflict and mutual blocking
Business model
DBMS (persistеnt data)
Comparison of existing solutions.
Performance capabilities necessary for creation and usage of business models in current
approach.
RDBMS Multipurpose OO
languages + RDBMS
Business tools
Expressiveness,
complexity
management
- + +
Changeability + - (conditioned by
static character of ОО
application)
+
Performance + - -
Openness,
standard
compliance
+ - -
3+ 1- 1+ 3- 2+ 2-
Costs
Cost of
purchasing
small average high
Cost of creation
and modification
(under equal
requirement for
created business
model)
High (conditioned
by
inexpressiveness;
hard programming
needed)
High (conditioned by
complexity of
architecture, requires
hard programming)
High (conditioned by
tool specific, requires
separate specialists)
Cost of
exploitation
small small Average (cost of
support)
BIG BIG VERY BIG
RxO DBMS – evolution of RDBMS to real Object-Oriented systems.
RxO DBMS possess all necessary facilities for complex Business Models building:
- allows to create expressiveness, active business models, and to develop them easily in
accordance with new business needs
- is absolutely free from problems of data exchange between OO-application which
implements complex business logic and RDBMS
- gives fundamentally new capability of data flowing in business model
- provides evolutional transfer to new architecture while preserving the existing data
Business model in RxO DBMS
(real persistent objects and tables together in DBMS)
John
Empoloyees Sales
100
Junk
1
Ledger
$10
RxO DBMS – tool for easy creation of complex business-models.
In RxO DBMS scheme of data is a united and full description of business model. Model is
created and managed by using a nonprocedural set of commands extending SQL.
In addition to working with traditional table structures of data, RxO DBMS allows in the same
scheme:
- to describe, create, and use in database persistent business objects classes, which have
complex reference type.
- to create objects of the classes
- to manipulate states of these objects
- to execute object’s methods
- to receive data on object’s condition (including unplanned queries)
- to remold listed properties at plural class inheritance
- to execute listed actions over groups of complex objects
Business model in RxO DBMS
(real persistent objects and tables together in DBMS)
John
Empoloyees Sales
100
Junk
1
Ledger
$10
The business
Comparison with ORDBMS (Oracle v8+, PostgreeSQL, by SQL99 standard)
- Data scheme in object-relational DBMS, is an aggregation of expanded tables
OR DBMS make an attempt to extend complexity and capabilities of relational structures. User
defined types (UDT) and matched with them typed tables are used for that. Further work with
data implies traditional operations with tables by SQL command. It’s possible to access to rows
(exemplar of type) by RowID, including reference language construction.
Possibilities for data scheme change are cut vs. traditional DBMS, because they require
matching changing of both, types and relevant tables. Implicated principle – class equal table -
clearly breaks relational model. Increasing of tables' complexity leads to loss of simplicity and
severity of classic relational systems; besides flexibility intrinsic to traditional OO-systems
can’t be reached. Object extensions of SQL are complex for understanding and use.
Unlike ORDBMS, which increase of complexity of relational structures, RxO DBMS offers
possibility to join simple use of fullness object-oriented and traditional relational structures. It
allows creating more expressive and appropriate business models. RxO DBMS is based on the
classic relational data model.
Comparison with DBMS Cache.
DBMS Cache (InterSystems Corp.) allows switching over from relational to object mode of
data access and back. So there are two parallel interconnected (“class matches to table”), but
not fully same schemes of data which are used for different tasks. Relational access allows
working with data directly in storage, and is used for group operations with data. For work
in object access it’s necessary to execute special actions for opening and further saving of
objects (with loading data from storage to server memory and writing back)
DBMS Cache use requires knowledge of its specific language and organization details. DBMS
Cache is a closed product, which is significantly different from traditional RDBMS, competes
with them, and requires full transition to that platform.
As against from Cache DBMS, in RxO DBMS only one common data scheme exists, which
joins object and relational structures. Both group data processing of all data and work with
separate object instances is executed into that scheme. Using of new capabilities doesn’t
require knowledge of server features. It allows focusing on business tasks.
Cache DBMS
Object
access
Relational
access ? Multidimensional
kernel
Complex business model flexibility.
In addition to traditional RDBMS abilities to change table structures, RxO DBMS allows to
change and develop complex business model by:
- creating of new or inheriting of existing classes
- changing the structure of existing classes
- changing of method and class attribute realizations
Actions like that don’t require rebuilding or reloading of a system. Thus long-time existing
business model can be easily changed in accordance with new business conditions.
Progressed objects – new dimension of complex business model flexibility.
There are many situations when changes affect not only quantitative, but also qualitative
characteristics of an object. For example, what we should do with object of class “Employs”, if
described employer is promoted to manager, which is described by child class “Managers”, and
at the same time other business objects (for example HR department and library) refer to him?
There aren’t possibilities which allow reflecting changes like that, in existing OO-language and
business tools. Traditionally, object instances can’t change belonging to class during existence.
Usually, in such cases new object is creating instead of the existing one. But we need to take
into account that other objects of the system can refer to deleted one. It’s necessary to retrace
and rebuild existing reference to keep the model integrity. It’s a really complex task.
RxO DBMS have simple possibilities for change like that. Existing object can change its
belonging to class within existing inheritance hierarchy. It guaranties immutability of interface,
keeps possibility of static typeу control. At the same time all existing in the system connections
with object are preserved.
Progressed objects give new opportunities for business model modifying in the following
cases:
1) new child class is creating over existing (parent) one
2) existing objects of base class are developing to new class
So, RxO implicates new dimension of business model flexibility and expressiveness.
CREATE CLASS Employsee ...
NEW Employee WITH SET .Name = "John" ...
CREATE CLASS Manager ... EXTENDS Employee ...
PROGRESS Employee[.Name = John] TO Manager... //*pseudocode
Effective processing
Transition of data processing data from client software to server in business
systems is a very effusive way to grow the system performance
dramatically. RxO DBMS is a consistent environment finally joining both
data storage and the data processing for complex business models.
.
Instead of data exchange between application and DBMS, RxO DBMS performs full
transformation of all commands, describing actions with objects, (including object methods),
into command for executive relational kernel. With this complex business logic doesn’t require
creation of objects instances in application RAM. Separation between hardware (storage and
on-line storage) is hidden in the executive relational kernel. Such approach:
1. Increases business system performance in general
2. Simplifies developers’ work. Absence of logical separation between “stored” and
“processed” data renders unnecessary “opening” and “saving” of complex business
objects, reflects complex structures in tables, organizes exchange between “storage” and
business application.
Business model in an application
DBMS (persistant data)
Effective group data processing
Other factor of effectives is a new feature of group complex business-objects processing (for
example, a query over set of objects, which uses an attribute which is calculated by complex
algorithm). In RxO DBMS, after command transformation, the operations like those are
executed by relational kernel as a chain of group actions on tables, without running over their
lines by separate objects. Any algorithm is transformed in a way that each step executes right
away for group of objects, generating group results.
Transformation like that allows using relational executive kernel, which
optimized for actions like that the most effectively.
For each o FROM objects
BEGIN
…
… o.a + o.b
…
END //*pseudocode
…a1 + b1
…
…
… a2 + b2
…
…
… a2 + b2
…
…
о1 о2 о3
…a1 + b1
…a2 + b2
…a3 + b3
…
…
…
…
…
…
BEGIN
…
… SELECT … o.a + o.b FOR ALL objects o
…
END //*pseudocode
RxO translation
Possibilities for effective multi-user work
If business logic is fully transited to DBMS, there appears an opportunity to fully analyze
complex transactions, uncover resources for their execution and finds possible conflicts and
dead-locks, in order to avoid it at multi-users work. It’s important, that possibility of conflicts
and dead-locks of complex transactions is determinate based on preliminary static analysis of
source code. It potentially allows avoiding the necessity to block and trace block of recourses
dynamically during executing of transactions. It can lead to acceleration of those transactions.
RxO DBMS
EXEC
Transaction1(…) //*pseudocode
EXEC
Transaction2(…) //*pseudocode
Client1
Client2
SELECT … //*pseudocode
Client3
Possibilities for effective multi-user work (2)
Many DBMS serialize transactions for provision of multi-users work. They trace use of
separate rows, tables, or DB files to block them or create version.
RxO DBMS allows serializing transactions by tracing of using of objects. For example: for
temporary blocking of operations with supply data, instead of blocking many lines of different
tables containing those data, it’s possible to block itself the object, matching with that supply.
Transactions, addressing to that supply, will be waiting unless it is unblocked. Other
transactions will be executed freely. So, it’s possible to decrease server loading, caused by
exact data blocking, avoiding broad blocking of tables and files.
1
BEGIN
Trans1…
BEGIN
Trans2…
Client1
Client2
RDBMS
Row locking needs a lot of service work
SalesHeaders
s
100 SalesItems
Junk
Table locking suspends all transactions accessing the table, even if the transactions access other rows than the transaction that causes the lock.
SalesHeaders
s
100 SalesItems
Junk 1
RDBMS
BEGIN
Trans1…
BEGIN
Trans2…
Client1
Client2
WAIT!
RxO DBMS
Sales
100
Junk
1
EXEC
Trans1(…)
EXEC
Trans2(…)
Client1
Client2
Possibilities for business systems creations.
RxO DBMS joins capabilities both to store and to process business data, when business model
encapsulates description of both data structure and executive methods. Using this description,
it’s possible to generate automatically user and programming interfaces, which provide access
to the business model, and make possible to use and to manage it form wide range of client
applications.
Java applications
USER INTERFACES
PROGRAM INTERFACES
Class specification in
RxO DBMS
CREATE CLASS cBill
(
No INT;
Customer STRING,
Items SETOF
(
...
)
METHOD Send(...)
)
Bill
No
Customer
Items
Send
class cBill
extendes RxOproxy
{
int No;
...
void Send();
}
cBill = class(tRxOproxy)
No:Integer;
...
end;
Delphi applications
Program interface builder
User interface builder
C++ applicatin
C# applicatiion
…
Evolutionary.
RxO itself is not a product, but a know-how, which allows to develop existing relational
DBMS into RxO ones.
Use of new possibilities doesn’t require rejection of existing DBMS and user systems or their
total rebuilding.
RxO DBMS save and maximally use existing DBMS features. Realization of new features
doesn’t require significant data and code changes in existing DB. Use of existing functional
allows using proven solutions and saving reliability of existing relational DBMS.
RxO DBMS is a development of existing RDBMS (new version of product), and fully keep all
their features, including access protocols, control of users, transactions management, etc. RxO
editions of existing DBMS can be used instead of older versions for already existing user
systems and databases. It provides full solutions succession for users.
RxO DBMS – new solution for fast creation and development of informational systems,
which allows to create simple, expressive, effective, reliable business-models.
Comparison of possibilities for creating and using of business models.
RDBMS Multipurpose OO
languages +
RDBMS
Business tools RxO DBMS
Expressiveness,
complexity
management
- + + +
Changeability + - (conditioned by
static character of
ОО application)
+ +
Performance + - - +
Openness,
standard
compliance
+ - - +
3+ 1- 1+ 3- 2+ 2- 4+
Costs
Cost of
purchasing
small average high RxO DBMS
Cost of creation
and modification
(under equal
requirement for
creating business
model)
High
(conditioned
by
inexpressivene
ss, it requires
hard
programming)
High (conditioned
by complexity of
architecture, it
requires hard
programming)
High
(conditioned
by tool
specific, it
requires
separate
specialists)
Small
Cost of
exploitation
small small Average (cost
of support)
Less (because of
simplicity and
expressiveness)
BIG BIG VERY BIG MINIMAL
Our know-how gives to the broad range of independent developers and business tools vendors
a very simple tool for fast creation of high-performance business systems, which are interesting
for end users. We offer collaboration for creation RxO edition of you RDBMS.
Please, contact us. Site: www.RxO-project.com
Videodemo: http://youtu.be/K9opP7-vh18 (in English)