Rx o technology. general prezentation.


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Rx o technology. general prezentation.

  1. 1. RxO DBMS New solution for fast creation of high-performance, flexible business-systems.
  2. 2. 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)
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. 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)
  8. 8. 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
  9. 9. 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
  10. 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
  11. 11. 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.
  12. 12. 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
  13. 13. 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.
  14. 14. 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
  15. 15. 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)
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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 …
  20. 20. 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.
  21. 21. 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)