Language selection

Search

Patent 2306579 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent Application: (11) CA 2306579
(54) English Title: DOCUMENT-BASED DATABASE MANAGEMENT SYSTEM AND METHOD
(54) French Title: SYSTEME ET METHODE DE GESTION D'UNE BASE DE DONNEES A BASE DE DOCUMENTS
Status: Dead
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06F 16/21 (2019.01)
  • G06Q 10/10 (2012.01)
  • G06F 3/0481 (2013.01)
  • G06F 21/10 (2013.01)
  • G06F 16/28 (2019.01)
  • G06F 16/93 (2019.01)
(72) Inventors :
  • ANNAND, RITCHIE IAN (Canada)
  • PERRY, GARRY ERWIN (Canada)
(73) Owners :
  • DECISION DYNAMIC TECHNOLOGY LTD. (Canada)
(71) Applicants :
  • MALIBU ENGINEERING & SOFTWARE LTD. (Canada)
(74) Agent: SIM & MCBURNEY
(74) Associate agent:
(45) Issued:
(22) Filed Date: 2000-04-25
(41) Open to Public Inspection: 2001-10-21
Examination requested: 2005-02-14
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data:
Application No. Country/Territory Date
09/553,959 United States of America 2000-04-21

Abstracts

English Abstract





A method for managing data stored in a relational database involves
developing a hierarchical model of a business schema. The model is then
translated
into hierarchical database tables for the database. The database tables model
the
business schema. Documents, including data controls having fields into which
data is
to be entered, are created using the hierarchy of the database tables. The
data controls
are live-linked to the database tables so that data entered into the fields
automatically
populates the database tables.


Claims

Note: Claims are shown in the official language in which they were submitted.





-47-

What is claimed is:

1. A document-based data management method comprising the steps of:
developing a model representing a business entity's schema for which
data is to be managed; and
creating documents using the model and live-linking the documents to
a database structure corresponding to said model so that data entered into the
documents populates the database structure.

2. The method of claim 1 further comprising the step of translating the
model into said database structure for a database of interest.

3. The method of claim 1 wherein said developing step includes the step
of using entity-relationship diagrams to develop said model.

4. The method of claim 3 wherein said translating step includes the step
of generating database tables corresponding to said entity-relationship
diagrams.

5. The method of claim 1 wherein said documents are live-linked to said
database structure through document objects.

6. The method of claim 5 wherein said document objects automatically
populate the database structure with data entered into said documents.

7. The method of claim 6 wherein said documents include data controls
corresponding to attributes of said model and wherein said data is entered
into fields
of said data controls.

8. A workbook comprising:
a user interface including a document selection panel listing at least
one selectable document; and a document panel presenting a document selected
from




-48-

said document selection panel, said document including at least one data
control
having a field to receive data; and
a linking engine live-linking said at least one data control to an
underlying database, said linking engine automatically populating said
database with
data entered into the field of said at least one data control.

9. A workbook as defined in claim 8 wherein said linking engine is
object-based and live-links said at least one data control to said database.

10. A workbook as defined in claim 9 wherein said document selection
panel includes a plurality of selectable documents.

11. A workbook as defined in claim 10 wherein said selectable documents
are held in folders listed in said document selection panel.

12. A workbook as defined in claim 11 wherein each folder holds related
user-specified documents.

13. A workbook as defined in claim 10 wherein said user interface further
comprises a toolbar having a plurality of selectable icons, the functions of
at least
some said icons being user-definable.

14. A workbook as defined in claim 13 wherein the functions of said at
least some of the icons remain the same regardless of the document presented
in said
document panel.

15. A workbook as defined in claim 14 wherein the functions of other
icons of said toolbar are also user-selectable, the functions of said other
icons
changing depending on the document presented in said document panel.





-49-

16. A workbook as defined in claim 9 wherein each document includes a
plurality of data controls, said plurality of data controls being live-linked
to said
database.

17. A workbook as defined in claim 16 wherein at least one of said data
controls includes a field presenting the results of a calculation.

18. A workbook as defined in claim 17 wherein said calculation is carried
out by a script.

19. A workbook as defined in claim 18 wherein said script is saved within
a model used to develop data tables within said database.

20. A workbook as defined in claim 19 wherein said script can be toggled
between enabled and disabled conditions.

21. A workbook as defined in claim 20 wherein the at least one data
control that includes a field presenting the results of a calculation has a
visual
appearance different from other data controls.

22. A workbook as defined in claim 9 wherein said database stores data
hierarchically, said user interface further including a drill-down control to
allow
information associated with different branches in said database at a selected
level to
be displayed within a document presented in said document panel.

23. A workbook as defined in claim 9 further including a selectable
communications option, selection of said communications option opening a
communications interface including controls selectable to initiate a
telecommunications link with a remote site.

24. A workbook as defined in claim 23 wherein said communications
option is selectable from said document selection panel.




-50-

25. A modelling tool for creating database tables compliant with a backend
database comprising:
a user interface including a model creation palette and user-selectable
controls to enable a user to create a hierarchical visual model representing a
business
of interest, said model including entities within said business, attributes
assigned to
said entities and relationships between said entities; and
a table generator to create database tables for said backend database,
said database tables following the hierarchy of said visual model.

26. A modelling tool as defined in claim 25 wherein said table generator
creates a table object for each of said entities in said model, said table
generator
adding database field definitions to each of said table objects corresponding
to
attributes assigned to the associated entity and corresponding to the
relationship the
associated entity has with another entity, said table objects being used to
create said
database tables.

27. A modelling tool as defined in claim 26 wherein said table generator
generates a request for a driver of said backend database to generate said
database
tables using said table objects.

28. A modelling tool as defined in claim 27 wherein said table generator
adds database field definitions to said each of said table objects to provide
distributed
database support.

29. A modelling tool as defined in claim 28 wherein said database field
definitions include primary key, last arrived date and last altered date
fields.

30. A modelling tool as defined in claim 27 wherein said user interface
includes a database selection window to enable a backend database to be
selected
from a list of available backend databases.





-51-

31. A modelling tool as defined in claim 26 wherein said relationships
between entities include "one to many" and "is derived from" relationships,
said user
interface including user-selectable icons corresponding to the "one to many"
and "is
derived from" relationships to enable relationships between entities in said
model to
be defined.
32. A modelling tool as defined in claim 31 wherein said user interface
further includes user-selectable icons to allow defined relationships between
entities
to be changed.
33. A modelling tool as defined in claim 32 wherein said visual model is
presented on said model creation palette as an entity-relationship diagram,
the visual
appearance of connections between entities denoting the relationships
therebetween.
34. A modelling tool as defined in claim 33 wherein said user interface
includes user-selectable controls to group entities within said model into
categories.
35. A modelling tool as defined in claim 34 wherein said user interface
includes user-selectable controls to adjust the appearance of entities in
individual
groups.
36. A modelling tool as defined in claim 35 wherein said user interface
includes a prefix tool to allow entities in individual groups to be assigned a
common
prefix.
37. A modelling tool as defined in claim 26 wherein attributes assigned to
said entities are selected from the group consisting of data attributes,
calculation
attributes and lookup attributes.
38. A document creation tool for creating a document including at least
one data control having a field to receive data, said document creation tool
comprising:




-52-

a user interface including a document creation palette presenting a
document to be created and user-selectable controls to enable a user to select
data
control types associated attributes from a data schema corresponding to a
hierarchical
model of a business entity and to create data controls on said document; and
a linking engine creating objects to live-link data controls created on
said document to database tables of an underlying database corresponding to
selected
attributes of said data schema.
39. A document creation tool as defined in claim 38 wherein said linking
engine automatically creates said objects when a selected attribute is placed
on said
document and an associated data control has been created.
40. A document creation tool as defined in claim 39 wherein said user
interface includes a window to present said data schema, selected attributes
placed on
said document being dragged from said window and dropped onto said document
using a computer pointing device.
41. A document creation tool as defined in claim 40 wherein said user
interface includes a toolbar having a plurality of icons, each of said icons
representing
a different type of data control.
42. A document creation tool as defined in claim 39 wherein said user
interface further includes user-selectable tools to partition said document
into regions.
43. A method of licensing database management software to a licensee,
said database management software including documents having data controls
associated with attributes assigned to entities within a model representing
the business
of said licensee, data to be managed being entered into a database through
said data
controls, said method comprising the step of:
charging a fee to said licensee for said software based on the number
of attributes assigned to entities within said model.




-53-

44. The method of claim 43 wherein said fee is also based on the types of
data controls in said documents.
45. The method of claim 44 wherein said fee is further based on the
number of documents provided to said licensees.
46. A method of licensing database management software to a licensee,
said document-based database management system including documents created for
said licensee, each document including at least one data control having an
associated
field into which data is entered, said at least one data control being linked
to a
database and populating said database with data entered into said field, said
data
controls being associated with attributes assigned to entities within a model
of the
business of said licensee, said method comprising the step of:
charging a fee to said licensee based on the number of attributes
assigned to entities within said model.
47. The method of claim 46 wherein said fee is further based on the
number of documents provided to said licensee.
48. A method for managing data stored in a relational database comprising
the steps of:
developing a hierarchical model of a business schema;
translating the model into hierarchical database tables for said
database, said database tables modelling said business schema;
creating documents including data controls having fields into which
data is to be entered using the hierarchy of said database tables; and
live-linking the data controls in said documents to the database tables
so that data entered into said fields automatically populates the database
tables.
49. The method of claim 48 wherein said documents are used across a
distributed data network and wherein records created in databases across said
data
network are reconciled in a central database.




-54-

50. The method of claim 49 wherein said business schema follows an oil
company and wherein documents include data controls to receive data relating
to the
business of said oil company.
51. The method of claim 50 wherein documents include data controls to
receive data relating to oil wells from startup to completion.
52. A method of transmitting data to a remote destination over a
telecommunications link comprising the steps of:
breaking a data file to be transmitted into packets;
transmitting each packet to said remote site and for each transmitted
packet, generating an entry corresponding thereto;
monitoring the amount of data in said file that has been transmitted to
determine a current transmission point within said data file;
when said remote site acknowledges receipt of a transmitted packet,
deleting the entry corresponding to said packet; and
if said telecommunications link terminates before said data file is fully
transmitted, re-establishing said telecommunications link, re-transmitting
packets
associated with remaining entries and then resuming transmission of packets
beginning from the current transmission point at the time the
telecommunications link
was terminated.
53. The method of claim 52 wherein said generated entries are maintained
in a table and wherein entries in said table are deleted when said destination
acknowledges receipt of the packets corresponding thereto.
54. A file transmission application for transmitting data to a remote site
over a telecommunications link comprising:
communications to establish a telecommunications link with said
remote site;
a packetizer for breaking a data file to be transmitted into packets; and



-55-
a packet handler for transmitting each packet to said remote site, said
packet handler generating an entry corresponding to each transmitted packet
and
monitoring the amount of data in said file that has been transmitted to
determine a
current transmission point within said data file, said packet handler further
being
responsive to packet acknowledgments received from said remote site confirming
receipt of packets and deleting entries corresponding to acknowledged packets,
said
packet handler re-transmitting packets associated with remaining entries and
resuming
transmission of packets beginning from the current transmission point when the
communications re-establishes a telecommunications link that was terminated
before
the data file was fully transmitted.

Description

Note: Descriptions are shown in the official language in which they were submitted.



CA 02306579 2000-04-25
DOCUMENT-BASED DATABASE MANAGEMENT
SYSTEM AND METHOD
Field Of The Invention
The present invention relates to data management and in particular to a
document-based database management system and method.
Background Of The Invention
In many industries, companies include a number of corporate divisions
that conduct business and report to a central headquarters. These companies
tend to
be large and accumulate significant amounts of data relating to their
operations. In
order for these companies to be run effectively, these companies must be able
to use
the accumulated information to make educated business decisions.
For example, in the petroleum industry, oil companies must cope with
vast amounts of data ranging from real-time data capture at a drilling rig, to
pressure
transient information, wellbore diagrams and facility inventories. Often, this
information is stored in various locations and in a variety of databases. As a
result,
much of this information is lost within the company and is not used during
performance analysis at various levels throughout the company. This wealth of
information therefore fails to impart knowledge and hence, intelligence to the
company decision-makers.
To assist companies to deal with significant amounts of data, database
management systems have been developed. Unfortunately, many database
management systems are written for vertical markets and provide only limited
cross-
talk between software applications accessing the databases. Also, these
database
management systems typically include embedded program code specific to the
software applications that interface with them. This, of course, causes
maintenance
problems whenever these software applications are updated, since it requires
the
program code of the database management systems to be modified.
Other systems have been designed to facilitate access to information
stored in databases. For example, U.S. Patent No. 5,555,403 to Cambot et al
discloses
a data representation and query system that allows end-users to access and
query a
relational database without knowing the relational structure of the SQL
language.
Data in the database is presented to the user in a form familiar to the
business of the
end-user through business objects. The system includes a query engine that
generates


CA 02306579 2000-04-25
-2-
SQL statements in response to user input to query the relational database
kernel of
interest. The query engine is able to generate the SELECT, WHERE, FROM,
HAVING, ORDER BY and GROUP BY clauses of an SQL sentence and to generate
lists of joins involved in the query.
U.S. Patent No. 5,794,246 to Sankaran et al discloses a method and
system for incremental aggregation of dynamically increasing database data
sets. The
system aggregates data stored within an operational database corresponding to
newly
received information to provide current information. Initially, an
intermediate file is
created that stores an aggregate data set including data values and count
values that
correspond to specific group identifiers. Group identifiers within new sets of
input
data are compared with the group identifiers stored in the intermediate files.
If a
match occurs, the inputted data values are aggregated with the stored data
value for
that group identifier and the count value is incremented. If a match does not
occur,
the group identifier is added to the intermediate file and a count value of
one is
appended to the added group identifier. Once all of the group identifiers in
the new
sets of input data are compared, all of the changes made to the intermediate
file are
stored in the aggregate data set.
U.S. Patent No. 6,038,558 to Powers et al discloses an architecture for
extending data requesting and viewing capabilities of a database system. Data
from
the database is requested and viewed using a plan. The plan defines the steps
that
need to be performed in order to request and view data. Each step includes
executable
code for accessing, manipulating and/or outputting data and conforms to a
predefined
interface that allows the step to be used in a plan, to manipulate data
received from
another step and to output data to another step.
Although the above references describe systems that facilitate access to
data stored in databases, enhanced database management systems for managing
data
in a manner that conforms to the operations of businesses and simplifies use
for end-
users are continually being sought. It is therefore an object of the present
invention to
provide a novel document-based database management system and method.


CA 02306579 2000-04-25
-3-
Summary Of The Invention
According to one aspect of the present invention there is provided a
document-based data management method comprising the steps of:
developing a model representing a business entity's schema for which
data is to be managed; and
creating documents using the model and live-linking the documents to
a database structure corresponding to said model so that data entered into the
documents populates the database structure.
In the preferred embodiment, the method also includes the step of
translating the model into the database structure for a database of interest.
During the
developing step, the model is developed using entity-relationship diagrams.
During
the translating step, database tables corresponding to the entity-relationship
diagrams
are generated. Documents are live-linked to the database structure through
document
objects that automatically populate the database structure with data entered
into the
documents.
According to another aspect of the present invention there is provided
a workbook comprising:
a user interface including a document selection panel listing at least
one selectable document; and a document panel presenting a document selected
from
said document selection panel, said document including at least one data
control
having a field to receive data; and
a linking engine live-linking said at least one data control to an
underlying database, said linking engine automatically populating said
database with
data entered into the field of said at least one data control.
In the preferred embodiment, the linking engine is object-based and
live-links the at least one data control to the database. The document
selection panel
includes a plurality of selectable documents that are held in folders listed
in the
document selection panel. Each folder holds user-specified documents. The
database
stores data hierarchically and the user interface includes a drill-down
control to allow
information associated with different branches in the database at a selected
level to be
displayed within a document presented in the document panel.


CA 02306579 2000-04-25
-4-
According to yet another aspect of the present invention there is
provided a modelling tool for creating database tables compliant with a
backend
database comprising:
a user interface including a model creation palette and user-selectable
controls to enable a user to create a hierarchical visual model representing a
business
entity, said model including entities within said business entity, attributes
assigned to
said entities and relationships between said entities; and
a table generator to create database tables for said backend database,
said database tables following the hierarchy of said visual model.
In the preferred embodiment, the table generator creates a table object
for each of the entities in the model. The table generator adds database field
definitions to each of the table objects corresponding to the attributes
assigned to the
associated entity and corresponding to the relationship the associated entity
has with
another entity. The table objects are then used to create the database tables.
According to still yet another aspect of the present invention there is
provided a document creation tool for creating a document including at least
one data
control having a field to receive data, said document creation tool
comprising:
a user interface including a document creation palette presenting a
document and user-selectable controls to enable a user to select data control
types and
associated attributes from a data schema corresponding to a hierarchical model
of a
business entity and to create data controls on said document; and
a linking engine creating objects to live-link data controls created on
said document to database tables of an underlying database corresponding to
selected
attributes of said data schema.
In the preferred embodiment, the linking engine automatically creates
the objects when a selected attribute is placed on the document and an
associated data
control has been created. Attributes are placed on the document by dragging
the
attributes from a window and dropping the attributes on the document using a
computer pointing device.
According to still yet another aspect of the present invention there is
provided a method of licensing database management software to a licensee,
said
database management software including documents having data controls
associated


CA 02306579 2000-04-25
-S-
with attributes assigned to entities within a model representing the business
of said
licensee, data to be managed being entered into a database through said data
controls,
said method comprising the step of:
charging a fee to said licensee for said software based on the number
of attributes assigned to entities within said model.
According to still yet another aspect of the present invention there is
provided a method of licensing database management software to a licensee,
said
document-based database management system including documents created for said
licensee, each document including at least one data control having an
associated field
into which data is entered, said at least one data control being linked to a
database and
populating said database with data entered into said field, said data controls
being
associated with attributes assigned to entities within a model of the business
of said
licensee, said method comprising the step o~
charging a fee to said licensee based on the number of attributes
assigned to entities within said model.
According to still yet another aspect of the present invention there is
provided a method for managing data stored in a relational database comprising
the
step of:
developing a hierarchical model of a business schema;
translating the model into hierarchical database tables for said
database, said database tables modelling said business schema;
creating documents including data controls having fields into which
data is to be entered using the hierarchy of said database tables; and
live-linking the data controls in said documents to the database tables
so that data entered into said fields automatically populates the database
tables.
According to still yet another aspect of the present invention there is
provided a method of transmitting data to a remote site over a
telecommunications
link comprising the steps of:
breaking a data file to be transmitted into packets;
transmitting each packet to said remote site, and for each transmitted
packet, generating an entry corresponding thereto;


CA 02306579 2000-04-25
-6-
monitoring the amount of data in said file that has been transmitted to
determine a current transmission point within said data file:
when said remote site acknowledges receipt of a transmitted packet,
deleting the entry corresponding to said packet; and
if said telecommunications link terminates before said data file is fully
transmitted, re-establishing said telecommunications link, re-transmitting
packets
associated with remaining entries and then resuming transmission of packets
beginning from the current transmission point at the time the
telecommunications link
was terminated.
According to still yet another aspect of the present invention there is
provided a file transmission application for transmitting data to a remote
site over a
telecommunications link comprising:
communications to establish a telecommunications link with said
remote site;
a packetizer for breaking a data file to be transmitted into packets; and
a packet handler for transmitting each packet to said remote site, said
packet handler generating an entry corresponding to each transmitted packet
and
monitoring the amount of data in said file that has been transmitted to
determine a
current transmission point within said data file, said packet handler further
being
responsive to packet acknowledgments received from said remote site confirming
receipt of packets and deleting entries corresponding to acknowledged packets,
said
packet handler re-transmitting packets associated with remaining entries and
resuming
transmission of packets beginning from the current transmission point when the
communications re-establishes a telecommunications link that was terminated
before
the data file was fully transmitted.
The present invention provides advantages in that data is managed
across the complete spectrum of the business entity that models the way the
end-user
performs their business function as a part of the overall workflow of the
business
entity. This of course simplifies use of the database for the end-user since
information entered into documents automatically populates the database. Since
the
documents are created for each end-user, each end-user is exposed only to
information of interest to them. Since data entered into documents
automatically


CA 02306579 2000-04-25
populates the database, there is no confusion of where data is entered and
reported. If
the information does not show up in a given document, it is not in the
database.
Brief Description Of The Drawings
An embodiment of the present invention will now be described more
fully with reference to the accompanying drawings in which:
Figure 1 is a schematic diagram of a document-based database
management system in accordance with the present invention;
Figure 2 shows flowcharts illustrating the general steps performed by
the document-based database management system when used to develop a model of
a
business and corresponding data schema, create documents using the data schema
and
populate database tables using the created documents;
Figure 3 is a screen display of an entity page presented to a developer
during creation of a business model using a modeller forming part of the
document-
based data management system of Figure 1;
Figure 4 is a screen display of the entity page of Figure 3 together with
a new detail entity form;
Figure 5 is a screen display of the entity page together with an attribute
window;
Figure 6 is a screen display of the entity page presenting a created
model;
Figure 7 is a screen display of the entity page together with a model
entity category form;
Figure 8a is a screen display of the entity page together with a data edit
attribute form;
Figure 8b is a screen display of the entity page together with a
calculation edit attribute form;
Figure 8c is a screen display of the entity page with a lookup edit
attribute form;
Figure 9a is a screen display of the entity page together with a
completed data edit attribute form;


CA 02306579 2000-04-25
_g_
Figure 9b is a screen display of the entity page together with a
completed calculation edit attribute form;
Figure 9c is a screen display of the entity page together with a
completed lookup edit attribute form;
Figures l0a and lOb are screen displays of the entity page together
with attribute list and attribute count windows;
Figure 11 is a screen display of the entity page together with a
registration code window;
Figure 12 is a screen display of the entity page together with a prefix
entities window;
Figure 13a is a screen display of the entity page together with a unit
manager window;
Figure 13b is a screen display of the unit manager window together
with a group options window;
Figure 14 is a screen display of the entity page together with a choose
database for model window;
Figure 15 is a flowchart showing the steps performed by the modeller
during model and database table creation;
Figure 16 is a screen display of a document creation page presented to
a developer during creation of documents using document tools forming part of
the
document-based database management system of Figure l;
Figure 17 is an enlarged view of a document creation toolbar;
Figures 18a to 18d are screen displays showing the steps performed to
place a data control in an active document presented in a document creation
palette of
the document creation window;
Figures 19a and 19b are screen displays of differently partitioned
documents;
Figure 20 is a screen display of a document together with an entity link
list window and entity link editor window;
Figures 21a to 21c are flowcharts showing the steps performed by the
development tools during document creation;


CA 02306579 2000-04-25
-9-
Figure 22a shows a document-centered interface presenting a drilling
startup document;
Figure 22b shows a document-centered interface presenting an AFE
cost estimates document;
S Figure 22c shows a document-centered interface presenting a rental
sheet document;
Figure 22d shows a document-centered interface presenting a bit and
pump details document;
Figure 23a shows a document-centered interface presenting a daily
drilling report document;
Figure 23b shows a document-centered interface presenting a daily
drilling report document with a time/date range;
Figure 23c shows a document-centered interface presenting a daily
cost sheet document;
Figure 23d shows a document-centered interface presenting a hole,
casing and cementing details document;
Figure 23e shows a document-centered interface presenting a casing
tally document;
Figure 23f shows a document-centered interface presenting a vendor
work order document;
Figure 24a shows a document-centered interface presenting a BHA
equipment list document;
Figure 24b shows a document-centered interface presenting a
formation and survey details document;
Figure 24c shows a document-centered interface presenting a cost
control document;
Figure 25a shows a document-centered interface presenting a rig photo
document;
Figure 25b shows a document-centered interface presenting a lease
condition photo document;
Figure 26 shows a document-centered interface presenting a completed
job startup document;


CA 02306579 2000-04-25
-10-
Figure 27a shows a document-centered interface presenting a daily
report document;
Figure 27b shows a document-centered interface presenting an
equipment document;
Figure 27c shows a document-centered interface presenting a
downhole schematic document;
Figure 27d shows a document-centered interface presenting the
downhole schematic document with a metagram toolbar exposed;
Figure 27e shows a document-centered interface presenting the
downhole schematic document with a drill-down control exposed;
Figure 27f shows a document-centered interface presenting a wellhead
schematic document with a drill-down control exposed;
Figure 28 shows a document-centered interface presenting a cost
variance graph document;
Figure 29a shows a document-centered interface presenting an internal
work order document;
Figure 29b shows a document-centered interface presenting the
internal work order document with the halo and floating toolbar exposed;
Figure 29c shows a document-centered interface presenting a cost
variance report document;
Figure 30a shows a document-centered interface presenting a well
status report document;
Figure 30b shows a document-centered interface presenting a depth vs.
total days document;
Figure 30c shows a document-centered interface presenting a time
breakdown graph document;
Figure 31 a shows a document-centered interface presenting a drilling
project cost variance document;
Figure 31b shows a document-centered interface presenting a project
costs graph document;
Figure 32a shows a document-centered interface presenting an Alberta
Energy and Utilities Board (EUB) style WR-1 document;


CA 02306579 2000-04-25
-11-
Figure 32b shows a document-centered interface presenting an EUB
style WR-2 document;
Figure 32c shows a document-centered interface presenting an EUB
style WR-4 document;
Figure 33 is a schematic diagram of a distributed data network;
Figure 34 is a screen display of a communications interface; and
Figure 35 is a schematic block diagram showing telecommunications
between a remote computer site and a primary control computer site.
Detailed Description Of The Preferred Embodiment
The present invention relates generally to data management and in
particular to a document-based data management system and method for managing
data over a distributed data network that includes one or more remote computer
sites
and a central primary computer site. Initially, a model of a business entity
for which
data is to be managed is developed and is translated into a database table
structure for
a selected backend database into which data is to be stored. Documents are
then
created using attributes from a data schema automatically derived from the
model.
During document creation, data control types are selected and attributes in
the data
schema are dragged and dropped into an active document using a computer
pointing
device. A data control of the selected type is created in the active document
for each
attribute dropped into the document. The data controls are automatically
hooked up
to the database through objects. Information entered into the data controls
automatically populates the database tables through the objects. As a result,
created
documents are used to enter, edit and/or delete data in the database and view,
print
and query data stored in the database.
Documents are grouped and are available throughout the distributed
data network via workviews. The workviews include user-specified work folders
containing user-specific documents. The documents are used to populate the
database
with data and thereby create records. Records are collected from remote sites
of the
distributed data network and the records are reconciled with a central
database at the
primary computer site. Reports can be generated using documents that are
hooked up
to the databases in the distributed data network.


CA 02306579 2000-04-25
-12-
Turning now to Figure 1, a schematic of the functional components of
the document-based database management system in accordance with the present
invention is shown and is generally identified by reference numeral 100. As
can be
seen, the document-based database management system includes a set of
development
tools 102 that are accessed by a modeller 104, a packager 106, workview tools
108
and document tools 110. The document-based database management system 100 also
includes graphical user interfaces to allow developers and end-users to
interact with
the functional components of the system 100. In the preferred embodiment, the
document-based data management system is written in Inprise's Delphi
Enterprise
that is distributable across standard Windows '95, '98 and NT platforms. As is
well
known, Delphi is object-oriented software that facilitates Windows development
using drag-and-drop visual programming. Delphi provides excellent database
support, strong object-orientation and high productivity.
Modeller 104 allows a developer to create a model 111 of an entity
such as a business, organization or other entity of interest (hereinafter
referred to as
"business entity"). The modeller 104 also translates the model into a database
table
structure for a selected backend relational database 114 as will be described.
Packager 106 includes an export/import function and creates database
packages 115 that are to be conveyed to another computer site 116 over a
telecommunications link 118. Database packages 11 S received by the packager
106
120 are unpackaged and are then conveyed to the linking engine 112, which in
turn
reconciles the data in the database packages with the data in the database.
Workview tools 108 and document tools 110 allow the developer to
create user-specific workviews that contain user-specific documents 126. The
document tools 110 create objects that are used by the linking engine 112 to
live-link
data controls in the documents 126 to the database 114. In this manner, data
entered
into the fields of the data controls automatically populates the database 114.
Thus,
data visible in a document through a data control is in the database 114. In
this
particular embodiment, the linking engine 112 interfaces with ODBC or SQL
backend
databases such as Paradox, Oracle, Interbase, and SQL Server to name a few.
Those
of skill in the art will however appreciate that the linking engine 112 may be
designed
to interface with other databases if desired. The documents 126 also interact
with


CA 02306579 2000-04-25
-13-
other applications 120 via an OLE interface 122. The general overall operation
of the
document-based database management system 100 will now be described with
reference to Figure 2.
Initially, the developer uses the modeller 104 to develop a model that
represents the business entity and its information requirements. The model is
developed visually using entity-relationship diagrams. Using the modeller 104,
an
entity within the business entity is created and displayed on a model creation
palette
and attributes are assigned to the entity. A second entity is then created or
dragged
and dropped onto the model creation palette and its relationship to the first
entity is
defined graphically. This process is performed until a complete visual model
111 of
the business has been created (blocks 140 and 142). Once this has been done, a
table
generator in the modeller 104 is conditioned to translate the visual model 111
into
underlying hierarchical database tables (i.e. the data schema) that correspond
to the
model for the selected backend database 114 (block 144).
After the database tables are created, the developer uses the document
tools 110 and the data schema to create documents 126 for the end-users in the
business. During this stage, the data schema is presented in a window adjacent
an
active document. Data control types are selected and attributes from the data
schema
that are to form part of the active document are dragged and dropped into the
active
document (block 154). Data controls of the selected types and associated with
the
attributes dropped into the active document are automatically created and are
live-
linked to the backend database through objects. This document creation process
is
continued until a full suite of documents is created that services all of the
end-users of
the business.
The development tools 102 include a full suite of data-aware control
icons including for example: columns, data fields, graphs, sketches, pictures
etc. so
that various types of data controls can be included in each document. The
workview
tools 108 provide tools to allow the developer and end-users to control the
overall
manner in which documents are presented to end-users. As a result, the
development
and workview tools allow the visual appearance of the documents and the manner
and
types of data controls in the documents to be effectively tailored to suit the
needs of
the end-users for whom the documents are created. Since the documents 126 are


CA 02306579 2000-04-25
-14-
created specifically for end-users, the documents reflect the end-users' views
of the
business model and are the users' gateways to the business model. The
documents
therefore control who is able to access what corporate data and how the
corporate data
is accessed.
Once the documents are created, the documents are arranged within
workbooks according to user work requirements. The database management system
100 including the model, the database tables and the various workbooks are
then
installed on the computer sites throughout the distributed data network of the
business
entity. The documents are then used to populate the database with data. Since
the
data controls in the documents are live-linked to the backend database 114 by
the
linking engine 112, as data is entered into the fields of the data controls
(blocks 160
and 162), the linking engine 112 automatically populates the tables of the
backend
database 114 with the entered data (block 164). Records stored in the
databases at
remote computer sites that include new data are packaged by the packager 106
and are
conveyed over a telecommunications link 118 to the central primary computer
site of
the business entity. The packages are then imported by the packager 106 at the
central primary computer site and are depackaged. Once depackaged, the records
are
reconciled with the central database by the linking engine 112. In this
manner, all
information entered into databases throughout the distributed data network can
be
reconciled in the database at the central primary computer site. This
information can
then be effectively used by users to make educated business decisions.
A specific embodiment of the document-based database management
system 100 in accordance with the present invention will now be described more
fully
with reference to Figures 3 to 35. In this embodiment, system 100 manages data
within an Oil Company.
Model Creation
Initially, the document-based database management system 100 is used
by the developer to develop a visual model of the business entity and then
translate
the model into a hierarchical database structure corresponding to the model
for the
selected backend database 114. The model creation and translation process is
described below with particular reference to Figures 3 to 15.


CA 02306579 2000-04-25
-15-
Graphical User Interface
The graphical user interface allows the developer to interact with the
modeller 104 and develop a visual model of the business entity starting from
the top
S down. When the developer accesses the modeller 104, the graphical user
interface
presents an entity page 170 to the developer as shown in Figure 3. A plurality
of
drop-down menus are provided near the top of the entity page and can be opened
by
the developer by selecting the appropriate drop-down menu using a computer
pointing
device. Below the drop-down menus is a toolbar 172 including a plurality of
selectable icons. The icons include a generate database tables icon 172a, an
add detail
entity icon 172b, an add derived entity icon 172c, a make entity a master of
another
icon 172d, a make entity a base of another icon 172e, a delete entity icon
172f and a
disconnect all relationships for this entity icon 172g.
Below the toolbar 172 is a model creation palette 174 on which the
model is visually created using the icons or corresponding drop-down menu
options.
With a blank model creation palette 174 opened, the visual model of the
business
entity is created in a top-down manner by establishing the entities within the
business
entity (in this case the Oil Company), attributes assigned to the entities and
the
relationships between the entities.
To begin creation of a visual model, the add entity detail icon 172b is
selected resulting in a pop-up blank entity detail form 176 being opened as
shown in
Figure 4. The blank entity detail form 176 includes an entity name field 176a,
a
category field 176b, a database name field 176c and a remote deletions field
176d.
The entity name field 176a holds the name assigned to the entity. The category
field
176b allows the entity to be grouped with other entities so that groups of
entities can
be moved within the model as a whole. The database name field 176c allows a
database to be selected that is different from the database in which the rest
of the
model data is stored. The remote deletions field 176d limits or denies
deletions
received from remote computer sites as will be described.
When the entity detail form 176 is completed and saved, the entity is
added to the model and is represented on the model creation palette 174 by a
rectangular label bearing the name of the entity (see Figure 6). Once the
entity is


CA 02306579 2000-04-25
-16-
added to the model, the entity is assigned a primary key attribute (Xprime), a
last
altered date (Xaltered) and a last arrived date (Xarrived). These attributes
and dates
are used to support a low-bandwidth distributed database as is described
below.
The primary key attribute acts as a modified "auto-increment" and is
the sole identifier of a record of data throughout the entire distributed
database. The
primary key attribute is used to keep different records from overwriting one
another.
To inhibit different records from overwriting each other, a block of key
numbers is
pre-allocated to each different user and is termed the user license. In this
particular
embodiment, the user licence grants a user 28 keys with which to enter data
into the
database. The primary key attribute is a 32-bit integer that includes an upper
part and
a lower part. The upper part of the integer is the user licence number. The
lower part
of the integer is an auto-increment, and increments by one for each new record
created by the user for a given entity within the model, until the upper limit
is
reached. When the upper limit is reached and the user attempts to add a new
record to
the database, the user is presented with a message stating "This user license
has
completely run out of keys". The user can then be assigned a new unique user
license
allowing the user to continue to create new records.
Since auto-increment field behavior is inconsistent amongst databases
(for example, Paradox only lets fields begin from one, and does not let
different users
working on the same database start from different spots), and since the auto-
increment
values are typically only available after a record has been posted to the
central
database, the linking engine 112 keeps track of the auto-increments on its
own, and
keeps the primary keys as simple long integers. In case of an improper
shutdown, a
value that is zeroed only when the database management system 100 exits can
indicate that a "recovery" needs to be done. During a recovery, the linking
engine 112
finds the highest value in the pre-allocated key range that already exists,
and auto-
increments from there as new records are created.
The number of primary keys allocated for each user license is per
entity and not all entities together. This is permissible since the records
only have to
be unique across the distributed database in each table, not across all
tables. As a
result, the limiting factor for a given user license is the largest number of
records
entered for any entity.


CA 02306579 2000-04-25
-17-
The last altered date includes a date/time field and acts as a "stamp" to
allow modifications to particular records to be tracked. When records are
received by
the central primary computer site from remote computer sites, the last altered
date
allows the linking engine 112 to determine if the data is newer than entries
in the
central database, in which case the data is applied, or whether the data is
older or the
same date as entries in the central database, in which case the data is
ignored.
The last arnved date represents the time that a given piece of data
arrives at the central database. For records created or modified on the
central primary
computer site, the last altered date and the last arrived date assigned to the
records are
the same. For records that are received by the central primary computer site
from a
remote computer site, the last arrived dates are set to the time at which the
records are
unpackaged by the packager 106. Thus, the differences between the last altered
dates
and last arnved dates indicate the length of time the records have been "out"
of the
central database. The last arnved dates are used when it is desired to search
a
database for new records during a print new or export new task as will be
described.
When an entity is added to the model, an attribute window 180 is also
opened for the entity as shown in Figure S. The attribute window 180 displays
the
names of attributes assigned to the entity and includes an Add button 180a, an
Add
Calc button 180b, an Add Lookup button 180c, and Delete and Close buttons as
will
be described. The attribute window 180 also displays the primary key, the last
altered
date and the last arrived date.
Once the first entity within the business entity has been created and
displayed on the model creation palette, additional related entities can be
added to the
model. This is achieved by highlighting the first entity and selecting either
the add a
detail entity icon 172b or add a derived entity icon 172c. Once either the add
a detail
entity icon or add a derived entity icon is selected, a new blank entity
detail form 176
for the entity is opened. When the fields in the entity detail form 176 are
completed
and saved, the entity is assigned a primary key attribute, a last altered
date, a last
arrived date and a master key to its master entity. The entity is also
represented on the
model creation palette by a rectangular label bearing the display name of the
entity.
In this case, since the entity is related to another entity, the label is
joined to the label
of its master entity by a connection that visually indicates the relationship
between the


CA 02306579 2000-04-25
-18-
entities. In the present embodiment, "one to many" relationships between
entities are
denoted by blue lines terminating in circles while "is derived from"
relationships
between entities are denoted by green lines beginning with triangles.
Figure 6 shows an entity page 174 visually presenting a completed
model 202 for the Oil Company. In this particular example, the model 202
includes a
corporation entity 210, a division entity 212, an oilfield entity 214, an
offshore oilfield entity 216, a gen cost entity 218 and a cost code entity
220. The
connections between the entities visually indicate whether an entity adds
detail to an
entity above it or is derived from an entity above it. As can be seen, in this
example,
the division entity 212 and the cost code entity 220 add detail to the
corporation
entity 210. The oilfield entity 214 adds detail to the division entity 212.
The
offshore oilfield entity 216 on the other hand is derived from the oilfield
entity 214
(i.e. the offshore oilfield is an (IS-A) oil field).
Although Figure 6 shows a visual model for the Oil Company, those of
skill in the art will appreciate that the size and complexity of the model 202
has been
reduced for ease of illustration. A complete visual model 202 for an Oil
Company
would typically include a number of corporate divisions, each responsible for
a
number of oil fields. The model 202 would also typically include entities
associated
with other physical categories within the Oil Company such as for example, the
seismology department, the accounting department etc. to name a few.
Changes between the entity-relationships in the visual model can be
made to selected entities by highlighting the rectangular labels associated
with the
entities of interest and selecting either the make entity a master of another
icon 172d,
the make entity a base of another icon 172e, the delete entity icon 172f or
the
disconnect all relationships icon 172g. If an entity is selected and the make
entity a
master of another icon 172d is selected, selecting a target entity will make
the selected
entity the master entity of the target entity thereby changing the
relationship between
the two entities. In this case, the visual model is updated to show the new
master
relationship between the entities. Similarly, if an entity is selected and the
make
entity a base of another icon 172e is selected, selecting a target entity will
make the
target entity a derived entity of the selected entity thereby changing the
relationship
between the two entities. Again the visual model is updated to show the new


CA 02306579 2000-04-25
-19-
relationship between the entities. If an entity is selected and the delete
icon 172f is
selected, the selected entity and its relationships with all other entities
are deleted
from the model. If an entity is selected and the disconnect all relationships
icon 172g
is selected, all relationships between the selected entity and other entities
in the model
are removed allowing new relationships with entities to be established using
the make
entity a master of another icon 172d and make entity a base of another icon
172e.
The visual appearance of the model can be enhanced by opening a
model entity category window 230 via a category option in the view drop-down
menu
as shown in Figure 7. The category window 230 allows the visual appearance of
the
rectangular labels associated with all of the entities in a selected category
to be
adjusted. As will be appreciated, entities are categorized through information
entered
into the category fields 176c of the entity detail forms 176. In this manner,
the
rectangular labels associated with entities of different categories can be
colored
differently making it easier to follow visually the model and differentiate
between
1 S model sections containing groups of entities. For example, if the model of
the Oil
Company includes entities within the accounting department, entities within
the
seismology department, and entities within each of the corporate divisions,
the entities
within each of these categories can be differentiated by color.
Anytime during the entity creation process, attributes can be assigned
to the entities. To assign an attribute to an entity, the attribute window 180
associated
with the entity is used. Depending on the type of attribute to be assigned to
the entity,
the Add button 180a, Add Calc button 180b or Add Lookup button 180c is
selected.
Selection of one of the buttons opens a corresponding blank edit attribute
form 240
including a number of data fields to be completed.
Selection of the Add button 180a opens a blank data edit attribute form
as shown in Figure 8a. As can be seen, the data edit attribute form 240
includes an
actual name field 240a, a kind field 240b, a unit group field 240c, a tag
field 240d, a
display name field 240e, a size field 240f, a decimal field 240g, an entity
field 240h
and a hint field 240i. The edit attribute form 240 also includes an Add
another button
242, a Pick list button 244, a Cancel button and an Ok (save) button.
The actual name field 240a stores the name of the attribute as it
appears in the database. The kind field 240b indicates the type of data such
as for


CA 02306579 2000-04-25
-20-
example, text, integer, floating point etc. that is to be stored in the
database in relation
to the attribute. The available data types can be exposed in a menu by
selecting the
arrow trigger associated with the kind field 240b. The display name field 240e
stores
a text name for the attribute as it is to appear in attribute window 180 and
as it appears
in a data schema window 340 (see Figure 16) that is opened during document
creation. The size field 240f determines the number of characters or digits
allocated
to the attribute. The decimal places field 240g only becomes active when the
kind
field 240b stores a floating-point data type. When active, the decimal place
field 240g
stores a number that determines the number of decimals allocated to the
attribute.
The hint field 240i allows notes to be inserted that relate to the
attribute. The notes in the hint field 240 are displayed in a hint box on
documents,
which include data controls relating to the attribute, when a cursor is
brought into
proximity of the data controls. The tag field 240d can be selected to provide
external
links to files and to establish special treatment of attributes. The unit
group field 240c
holds the unit type of the attribute such as depth, diameter etc. as set up in
a unit
manager as will be described. The unit group field 240c is available only for
floating
point data types.
When the data edit attribute form 240 is completed and saved, the
display name of the attribute is shown in the attribute window 180. Selection
of the
add another button 242 saves the current data edit attribute form and opens a
new
blank data edit attribute form 240. Selection of the pick list button 244
allows a pick
list of choices to be added to the attribute. When a document includes a data
control
corresponding to the attribute with a pick list, the field of the data control
includes a
trigger that allows the choices in the list to be displayed and an option from
the list to
be selected for entry into the field of the data control.
Figure 9a shows a completed data edit attribute form for a
CORD NAME attribute assigned to the corporation entity 210. As mentioned
above,
this form is opened in response to highlighting of the Corporation Name
attribute in
the entity window 180 and selecting the Add button 180a.
Selection of the Add Calc button 180b opens a blank calculation edit
attribute form 250 as shown in Figure 8b. The calculation edit attribute form
250 is
similar to data edit attribute form 240 but includes a script button 252
instead of a


CA 02306579 2000-04-25
-21-
pick list button. Selection of the script button 252 opens a script editor
window 260
that allows a script to be written to carry out business rules on the data
specified in the
script. The script can be saved to an external file by selecting the external
radio
button 260a and entering a file name in the file name field 260b or can be
saved
internally within the model by selecting the internal radio button 260c.
Figure 9b shows a completed calculation edit attribute form 250 and a
completed script editor window 260 for a Difference attribute listed in the
attribute
window 180 associated with the division entity 212. In this particular
example, the
division entity 212 includes a Division Name attribute, a Division Budget
attribute, a
Division Expenditures attribute, a Difference attribute and a master key to
the
Corporation attribute in addition to its primary key, last altered date and
last arrived
date fields.
Selection of the Add Lookup button 180c opens a blank lookup edit
attribute form 266 as shown in Figure 8c. The lookup table edit attribute form
266 is
basically the same as the data edit attribute 240 form except the entity field
226h is
active. Selecting the arrow trigger associated with the entity field 226h
lists the other
entities in the model. An entity can be selected from the list and entered
into the
entity field. In this manner, the attribute targets or "looks up" the
attribute of another
entity. The rectangular labels associated with entities that include lookup
attributes
point to the entities associated with the targeted attributes by means of
dotted purple
arrows.
Figure 9c shows a completed lookup edit attribute form 266. In this
particular example, the Amount attribute targets the Cost Code entity and
stores the
primary key of the Amount attribute assigned to the Cost Code entity. Figure 6
shows the purple dotted line 268 extending from the Gen_ Cost entity and
pointing to
the Cost Code entity.
As will be appreciated, various attributes can be assigned to the entities
in the model by opening edit attribute forms via the Add, Add Calc and Add
Lookup
buttons in the attribute windows 180.
During model creation or after the complete visual model has been
created, information concerning the model can be visually displayed through
selections in the drop-down menus. For example, all attributes assigned to
entities in


CA 02306579 2000-04-25
-22-
the model can be listed in a pop-up window 270 by selecting an attribute
option in the
drop-down view menu as shown in Figure 10a. The header of the pop-up window
270 indicates the number of attributes in the model and a count of the data
attributes
and a count of the calculation attributes. In Figure 6, the model 202 includes
twelve
(12) attributes, eleven (11 ) of which are data attributes and one of which is
a
calculation attribute. The type and location of the attributes in the model
can also be
presented in a text window 272 by selecting an attribute count option in the
drop-
down special menu as shown in Figure lOb. The ability to determine the number
and
types of attributes in the model 202 plays an important role in the licensing
of the
document-based database management system 100 to licensees as will be
described.
The graphical user interface also allows a registration code to be
applied to the modeller 104 via a registration code window 274 as shown in
Figure
11. The registration code window 274 is opened by selecting a registration
option in
the drop-down special menu. The registration code can be used to set a time
limit on
the usage of the modeller for demonstration purposes and to limit access to
the
modeller 104.
The graphical user interface also allows prefixes to be assigned to
models via a prefix entity window 276 as shown in Figure 12. The prefix entity
window is opened by selecting a prefix option in the drop-down special menu.
Prefixes are used to keep the database table names for different models
separate. This
is important when dealing with databases such as Oracle, which has a system
where
tables for different databases are kept in the same database space.
The graphical user interface also includes a unit manager window 280
as shown in Figure 13a. The unit manager window 280 is opened by selecting a
unit
manager option in the drop-down view menu. The unit manager window 280
includes three areas, namely a family area 282, a unit area 284 and a group
area 286.
The family area 282 displays a list of the unit families, the unit area 284
displays a list
of units and the group area 286 displays a list of unit groups. New family and
delete
buttons 282a and 282b are associated with the family area, new unit and delete
buttons 284a and 284b are associated with the unit area and new group and
delete
buttons 286a and 286b are associated with the group area. These buttons allow
entries to be added to and removed from the lists.


CA 02306579 2000-04-25
-23-
Each unit family in the list includes a family of units that measure the
same parameter such as for example, length, area, pressure, volume etc. When a
unit
family in the family area 282 is highlighted, the available units associated
with the
highlighted family are listed in the unit area 284. For example, the length
family
includes units such as meters, kilometers, miles, inches etc.
Each unit group in the list represents a semantic grouping of units.
Selecting a group in the list opens a group option window 288 as shown in
Figure
13b. As can be seen, group options window 288 includes a group name field
288a, a
stored field 288b and a display field 288c. Group name field 288a identifies
the
selected group. Stored and display fields 288b and 288c allow the stored and
displayed units to be set to desired units. In this manner, units for a group
can be
displayed in one unit yet stored in the database in a different unit. In this
case, the
group option window 288 can be used to ensure that all units in the group are
stored
across the distributed data network in the same units while allowing for
presentation
in different units. This is particularly advantageous when different areas of
a business
are distributed internationally and operate in different units (i.e. metric
vs. imperial).
Once the complete visual model has been created, including all entities
and attributes, the backend database type is selected by opening a database
window
290 via a database option in the drop-down file menu as shown in Figure 14.
The
database window 290 presents a list of database aliases from which the
developer may
select the backend database. Once the backend database has been selected, the
database tables for the model that are compliant with the selected backend
database
can be generated by selecting the generate database table icon 172a. Selection
of the
generate database table icon 172a causes the table generator of the modeller
104 to
generate the appropriate hierarchical database tables for the selected backend
database
using the entities, attributes and entity-relationships within the model. As
mentioned
previously, the hierarchical database corresponds to the model so that records
stored
in the database tables are stored in a manner that tracks the structure of the
business
entity.
If it is desired to update an existing model, the model can be opened
through the drop-down file menu and presented on the model creation palette
174.
The model can be updated. Once updated, the generate database table icon 172a
can


CA 02306579 2000-04-25
-24-
be selected to generate new database tables for the updated model that are
compliant
with the selected backend.
Object and Database Table Creation
When the generate database table icon 172a is selected, the modeller
104 selects an entity from the model (see block 200 in Figure 15) and creates
a table
object for the entity that hooks up to the selected backend database (block
202). The
modeller 104 then creates field definitions from selected properties of the
attributes
associated with entity for the table object (block 204). Field definitions are
then
added to the table object for the entity's master relationship (block 206).
Field
definitions for distributed database support using the primary key, last
altered date
and last arrived date fields are also added to the table object (block 208).
Index
definitions for master and primary keys are then added to the table object
(block 210).
At this stage, the modeller 104 asks the driver of the selected backend
database to
create a database table for the entity using the table object (block 212). The
above
process is repeated for each entity in the model until database tables for all
entities in
the model have been created (block 214). As will be appreciated, since the
database
tables are generated using objects that correspond to entities within the
model and
which include field definitions corresponding to the attributes and
relationships
between the entities, the database tables are hierarchical and follow the
model. As the
database tables are created, a data schema following the model is also
created. The
data schema is used to create documents as will be described.
The table generator also creates two additional tables, namely an
XENTITY table and an XDELETE table that are used to support remote deletions
as
will be described. The naming convention used for these tables is chosen to
avoid
collisions with tables associated with entities in the model. The XENTITY
table lists
all of the entities in the model by number. The number of the entity is used
as the
primary key to avoid having the entity referred to by different records across
the
distributed data network. This reduces the complexity of processing deletions,
since
all deletions for a given entity are kept under the same master record. The
XDELETE
table stores lists of the primary keys associated with records for each entity
that have


CA 02306579 2000-04-25
-25-
been deleted and the master entities the records used to belong to. Once this
has been
done, the model creation process is complete.
Document Creation
Following the creation of the model 202 for the business and the
generation of the hierarchical database tables, the development tools 110 and
the
workview tools 108 are used by the developer to create documents to be used by
end-
users within the business. The documents are created for specific end-users,
teams,
departments etc. (generically referred to as "users") and are defined by the
model of
the business entity. The documents are used to populate the backend database
114.
Further specifics of the document creation process will now be described with
particular reference to Figures 16 to 21c.
Graphical User Interface
The graphical user interface allows the developer to interact with the
document tools 110 and workview tools 108 to create documents. When the
developer accesses the document tools 110, the graphical user interface
presents a
document creation window 300 including a document creation palette 302 and a
workview 304 as shown in Figure 16. A plurality of icons 306 are presented
above
the workview 304 and include from left to right, a New Document Folder icon, a
New
Document icon, a New Communications icon, a New Scheduled Event icon, a New
Named Event icon, a Print New Response icon, a Print Response icon and an
Import
Response icon. Selection of these icons allows an individual workview 304 to
be
configured by the developer.
The workview 304 presents a workbook 310, folders 312 within the
workbooks and documents 314 within the folders. In this manner, the developer
can
create documents and group related documents in folders 312. The New Document
Folder icon and the New Document icon allow folders and documents to be added
to
the workview 304. The New Communications icon allows a communications
component to be added to the workview. The Event icons allow the developer to
establish actions that are to be performed automatically when certain events
occur.


CA 02306579 2000-04-25
-26-
A blank active document can be opened in the document creation
palette 302 by selecting the New Document icon and unlocking the document
creation
facilities instead of choosing an existing document. During document creation,
a
band toolbar 320 can be exposed by selecting the toolbar option in the drop-
down
view menu. The band toolbar 320 includes a halo icon 320a, a header icon 320b,
a
body icon 320c, a body strip icon 320d and a footer icon 320e. Selecting one
or more
of the icons allows the developer to partition the active document into
separate bands
as will be described.
A document creation toolbar 330 can also be exposed by selecting the
document creation toolbar option in the drop-down view menu. The document
creation toolbar 330 includes a plurality of data-aware control icons and is
shown in
Figures 16 and 17. The data-aware control icons on document creation toolbar
330 in
this particular example are arranged in groups and include data control entry
icons,
other icons, title/login icons and format icons.
The data control entry icons include a regular mouse mode icon 330a,
a data entry icon 330b, a graph icon 330c, a column icon 330d, an X-box icon
330e, a
light icon 330f, an X-box other icon 330g, a light other icon 330h. Selection
of the
mouse mode icon 330a, cancels other modes and places the cursor in a regular
mouse
mode. Thus, the cursor can be moved across the document but cannot be used to
drag
new attributes from the data schema window 340 onto the document. The data
entry
icon 330b allows a data control having single data field to be dropped onto
the
document being created. The graph icon 330c allows an area in the document to
be
drawn out for a graph and allows attributes to be dropped into the drawn out
area.
The column icon 330d allows a column-type data control for an attribute to be
dropped onto the document. The X-box icon 330e allows a "check-box"-type data
control for an attribute to be dropped onto the document. The light icon 330f
is
similar to the X-box icon and allows a light-type data control to be dropped
onto the
document. The X-box and light icons 330e and 330f can be used to represent
logical
(true or false) fields or to indicate choices from a list of options. In the
case of the
check-box-type data control, the convention used is typically "checked" for
true and
"blank" for false. In the case of the light-type data control, the convention
typically
used is "bright" for true and "dim" for false. The X-box other icon 330g
allows a


CA 02306579 2000-04-25
-2~-
"check-box" type data control with an associated text field for an attribute
to be
dropped onto the document. The light other icon 330h is similar to the X-box
other
icon and allows a light-type data control with an associated text field for an
attribute
to be dropped onto the document.
The other icons include a rectangle icon 332a, a text icon 332b, an
image icon 332c, a static text icon 332d, an animation icon 332e, a background
picture icon 332f, a date-of print control icon 332g and a scripted button
icon 332h.
Selection of the rectangle icon 332a allows a rectangle to be drawn on the
document.
The text icon 332b when selected allows text to be placed on the document. The
image icon 332c allows a non-database image such as a bitmap file to be placed
on
the document. The static text icon 332d allows text to be placed on the
document
over parts of data entry controls on the document. The animation icon 332e
allows a
moving picture file in .AVI format to be inserted into the document. The
scripted
button icon 332h can be programmed with a script so that when the icon is
selected,
the script is carried out.
The document tools 110 also include a metagraph diagram
("metagram") tool that allows drawings to be created and stored as metagrams
that are
alive within the created document. The metagrams are treated as data in the
database.
The title/login icons include a name entry on document icon 334a, a
password entry icon 334b, a quote of the day icon 334c, a workbook name icon
334d
and an analog clock icon 334e. Selection of the name entry icon 334a allows
the
developer to enter a name associated with the document. The password icon 334b
allows the developer to password protect the document. The quote of the day
icon
334c allows a random quote to be displayed on the document whenever the
document
is used. The analog clock icon 334e allows the developer to place a clock on
the
document.
The control icons include a left/left alignment icon 336a, a left/right
alignment icon 336b and a right/right alignment icon 336c. The control icons
further
include an outer join icon 336d and an inner join icon 336e as well as a
control move
and control resize icons 336f and 336g. The alignment icons 336a to 336c allow
the
positions of text labels and fields of associated data controls on the
document to be
aligned in the desired manner. The outer and inner join icons 336d and 336e
are used


CA 02306579 2000-04-25
-28-
to tell the linking engine 112 how to treat records when attributes from a
derived
entity are placed on the document from the base entity. The outer join icon
336d is
used to instruct the linking engine to display all of the records while the
inner join
icon 336e is used to instruct the linking engine to display only those records
with a
derived part in them.
The data schema window 340 can be opened by selecting the schema
view option in the drop-down view menu. The data schema window 340 presents
the
data schema of the model including the entities and attributes in the model.
Symbols
342 accompany the entities and attributes to identify visually the type of
attribute (i.e.
data, calculation or lookup) and the nature of the attribute (i.e. text,
numeric, logical,
graphical etc.). A toolbar 344 is provided at the top of the data schema
window 340
and includes a plurality of selectable icons that allow the manner in which
the data
schema of the model is presented to be controlled. Specifically, the toolbar
344
includes a tree icon 344a, a sort attribute by name icon 344b, a sort
attribute by type
icon 344c, a sort attribute by entity icon 344d, a show/hide data attributes
icon 344e
and a show hide calculated attributes icon 344f.
When the tree icon 344a is selected, the data schema of the model is
presented in a tree form as shown in Figure 16. When the sort attribute by
name icon
344b is selected, the attributes in the data schema are presented in
alphabetical order
with their associated entities in parentheses. When the sort attribute by type
icon
344c is selected, the attributes in the data schema are grouped according to
type.
When the sort attribute by entity icon 344d is selected, the attributes in the
data
schema are. grouped according to entity. When the show/hide data attributes
icon
344e is selected, data attributes in the data schema are hidden from view.
When the
show/hide calculated attributes icon 344f is selected, calculation attributes
in the data
schema are hidden from view.
During document creation, the band toolbar 320 is used to partition the
active document into the desired bands. The document creation toolbar 330 is
then
used to select the type of data control to be inserted into the document.
Following
this, the attribute of interest is dragged from the data schema window 340 and
dropped into the appropriate band of the active document being created. Once
an
attribute from the data schema window is dropped into the active document, a
data


CA 02306579 2000-04-25
-29-
control of the type determined by the selected data control icon is created on
the
document and is live-linked to the appropriate database table. The size of the
data
control field is determined by the information entered into the kind, size and
decimal
place fields 240b, 240f and 240g of the edit attribute form when the attribute
was
created. For example, turning to Figures 18a to 18d, the placing of a data
control onto
an active document is shown. In this case, the data entry icon 330b is
selected and the
wave height attribute in the data schema window 340 is highlighted (see Figure
18a).
Using the computer pointing device, the wave height attribute is dragged from
the
data schema window to the desired location on the active document (see Figures
18b
and 18c). The wave height attribute is then dropped into the active document
resulting in an active wave height data control 350 being created
automatically in the
document.
This attribute drag-and-drop process is continued until all of the bands
of the active document include the desired number and types of data controls
of
interest. When a data control for an attribute is created on the active
document, it is
necessary for that document also to include at least one data control for an
attribute of
each entity above it so that a link to the top of the data schema hierarchy
exists within
the document. For example, in Figure 16, if the wind attribute of the offshore
oilfield
entity is dragged from the data schema window and dropped into the active
document,
in order to complete the document, an attribute from the division entity and
an
attribute from the corporation entity must also be dragged from the data
schema
window 340 and dropped into the active document. Although each document must
include data controls for attributes, which follow the entity chain to the top
of the data
schema hierarchy, often it is not desired to display all of these data
controls in each
document.
The band toolbar 320 allows the active document to be partitioned to
establish the data controls which are visible to users and to establish the
manner in
which documents are printed. As mentioned above, often it is not desired to
display
all of the data controls in a document. The halo band is designed to contain
data
controls that are required for the document but which are not to be displayed
or
printed. The header and footer bands interact with the body strip band during
printing
of documents. During a print cycle, a new page is printed when the body strip
band is


CA 02306579 2000-04-25
-30-
too large for the remaining printable area on a page or when the field of a
data control
in the header band or footer band switches. Printing of the body strip band
repeats in
the space between the header and footer bands.
Figures 19a to 19b show examples of documents that have been
partitioned differently using the band toolbar icons. In Figure 19a, the
document is
partitioned to include a halo band, a header band, a body band and a footer
band.
Data controls are included in each of the bands. In Figure 19b, the document
is
partitioned to include a halo band, a header band, a body strip band and a
footer band.
During document creation, the developer may wish to view the links in
the document to determine how the data controls in the document hook up to the
database. Figure 20 shows a document with an entity link list window 360 and
an
entity link editor window 362 opened. The entity link list window 360 is
opened by
selecting the entity links option in the drop-down view menu and the entity
link editor
window 362 is opened by selecting the edit button 360a in the entity link list
window.
As can be seen, the entity link list window presents a list of the entity
links while the
entity link editor window provides specifics with respect to a selected entity
link from
the list displayed within the entity link list window. The entity link list
window 360
and entity link editor window 362 function as a diagnostic tool to allow the
developer
to see how links are hooked up to the database and how the links behave.
Also, during document creation, the developer can assign user access
requirements to the document that is displayed in the document creation
palette by
selecting an administrative document requirements option in the drop-down
special
menu and setting the desired user level. If this is done, only users with all
of the
requirements assigned to the document by the developer are permitted access to
the
document.
Object Creation and Live-linking
As mentioned above, as soon as data controls are created on the active
document, the data controls are live-linked to the database. In order to live-
link the
data controls to the database, when an attribute is dragged from the data
schema
window and dropped onto the active document, the document tools 110 determine
the
type of data control selected for the dropped attribute based on the selected
data-


CA 02306579 2000-04-25
-31-
aware control icon of the document creation toolbar 330 and the type of
attribute and
then create a control object for the selected attribute (block 408). The
document tools
110 then ask the entity link owner for an entity link object that is hooked up
to the
entity to which the dropped attribute has been assigned (blocks 410 and 411 ).
If an
appropriate entity link object does not exist, the document tools create an
entity link
object for the attribute (block 412).
Following this, an entity reference object is created (block 413) and the
attribute is added to the entity link object. The process of adding the
attribute to the
entity link object creates an attribute reference object from the entity link
object to the
attribute (block 414). A data source object from the entity link object is
then hooked
up to the created control object, which triggers the entity link object to
generate
appropriate SQL code (block 416). If the entity link object does not have a
query
contained in it, a query is created (block 418).
The entity link object then generates appropriate field objects for the
query (block 420). In the present embodiment, it is important that field
object
generation is performed by the entity link object and not the query since the
business
model may support data types that are not supported by the actual selected
database.
The entity link obj ect then polls the entity link owner obj ect to
determine if its associated entity has a master entity in the model (block
422). If the
entity has a master entity, the entity link object generates a master link to
the entity
link object corresponding to that master entity (block 424). When the entity
link
object of the master entity detects that an entity link object has linked to
it, the entity
link object of the master entity in turn polls the entity link owner object to
determine
if its associated entity has a master entity in the model. If so, the above
steps are
performed and this process is repeated until an entity link object links to
the entity
link object of a master entity that itself has no master entity (block 426).
As a result,
master links are generated between entity link obj ects that correspond to the
connections between their associated entities in the model.
Once master links between entity link objects are created, SQL code is
generated by the entity link object according to its fields and master links
(block 428).
The query is then opened (block 430). Opening of the query triggers the
document
tools to open the data source object, which in turn hooks the field of the
data control


CA 02306579 2000-04-25
-32-
in the document up to the database (block 432). With the data control hooked
up to
the database by the data source object, the data control is live-linked to the
database.
As a result, data entered into the field of a data control is automatically
entered into
the database.
If a grid type data control (i.e. a column or graph) has been dropped
onto the active document and another grid type data control is dropped into
the same
area of the active document, the adjacent grid type data controls are
automatically
linked. During this process, the grid control is automatically created at
block 408. At
block 410, if the appropriate entity link object does not exist, the document
tools
inhibit the selected attribute from being dropped onto the active document. If
the
entity link object exists at block 411, blocks 414 to 432 are performed
thereby to
create the linked data control. The linking engine 112 manages the entity link
owner
and entity link obj ects.
Workbook
Once all of the document types for the business have been created,
workbooks including user-specific documents are created for the business
entity.
Each workbook and associated documents are created for either a specific user,
team,
department etc.
Figures 22a to 32c show the documents in a workbook specific to oil
well drilling 500. As can be seen, the workbook 500 includes a document
selection
panel 502 and an active document panel 504. The document selection panel 502
visually presents the folders in the workbook and the user-specific documents
within
the folders. Highlighting a document within a folder opens the highlighted
document
in the active document panel 504. Once the document is opened, the user can
interact
with the document via a document-centred user interface as will now be
described.
A floating toolbar S06 is shown in Figure 22b, although the toolbar
may be docked above the document selection panel 502. The toolbar includes a
number of icons divided into two groups S08 and 510 respectively. The icons of
the
first group 508 define shortcuts and remain the same regardless of the
document
opened in the active document panel 504. The icons of the second group 510
also


CA 02306579 2000-04-25
-33-
define shortcuts but are document specific and change depending on the
document
opened in the active document panel 504.
In the example shown in Figure 22b, the toolbar 506 includes a First
icon 508a, a Previous icon 508b, a Next icon 508c and a Last icon 508d in
group 508
and a Calcs icon S l0a and a Start New Day icon S l Ob in group 510. The icons
in
group 508 remain inactive until a user clicks into a data control in the
opened
document. When this occurs, the icons become active. Selecting these icons
allows
the user to step through records created using the documents.
The Calcs icon S l Oa is selected by default and when selected, enables
scripts associated with data controls in the document presented in the active
document
panel 504. If it is not necessary to view the results of calculations, the
scripts can be
inhibited by deselecting the Calcs icon S l0a or by pressing the "F2" key. In
this
manner calculations are only performed on data in the database when the
document is
presented in the active document panel 504 and the associated scripts are
enabled.
1 S Since the database tables correspond to the business model, data is
stored hierarchically in the database. If the model includes multiple branches
stemming from the same entity, a document having a data control associated
with an
attribute of that entity can include a drill-down control associated with the
attribute of
that entity. Selection of the drill-down control using the "F3" key allows one
of the
various branches to be selected. Once a branch is selected, data exposed in
documents in the active document panel corresponds to data related to the
selected
branch. Thus, the drill-down control allows the hierarchical data to be
exposed.
The workbook 500 in this example includes a variety of documents
arranged in folders and sub-folders for an Oilfield of the Oil Company. As can
be
seen, the document selection panel includes a workbook having a drilling
folder, a
completions folder, an accounting folder, a management folder, a guide folder
and a
communications folder.
The drilling folder includes four sub-folders namely, a job setup folder,
a daily folder, an optional folder and a summary folder. The job setup folder
includes
a drilling startup document, an AFE cost estimates document, a service company
list
document, a rental sheet document and a bit and pump details document.


CA 02306579 2000-04-25
-34-
The daily folder includes a daily report document, a daily cost sheet
document, a hole, casing and cement document, a casing tally document, a
vendor
work order document and a well summary document.
The optional folder includes a BHA setup document, a BHA
equipment list document, a mud inventory document, a cement estimates
document, a
DST report document, a formation and survey document, a MACP document, a cost
control sheet document and a plugback and abandonment document.
The summary folder includes a bit summary document, a rig photo
document and a lease condition photo document.
The completions/workovers folder includes three sub-folders namely, a
setup folder, a daily folder and a summary folder. The setup folder includes a
job
startup document and an AFE cost estimates document. The daily folder is
closed,
hiding the documents therein from view. The summary folder includes a variance
report document and a variance report graph document.
The accounting folder includes an accounting work order document, an
accounting cost control document, a cost variance document and a cost variance
comments document.
The management folder includes well, project and company sub-
folders. The well and company sub-folders are closed hiding the documents
therein
from view. The project sub-folder includes a drilling project costs document,
a
drilling projects costs graph document and a drilled well summary by project
document.
The guide folder includes a well status report document, a well drilling
data document, a well incident data document, a well abandonment notification
document and a working interest owners document. As will be appreciated, these
folders and user-specified documents allow information concerning an oil well
from
start to finish to be captured, edited, viewed, queried and printed.
Figure 22a shows the drilling startup document. As can be seen, the
drilling startup document includes a number of data type data controls and
associated
data fields relating to an oil well, its location and its elevation.
Figure 22b shows an AFE cost estimates document. This document
includes a number of data type data controls, a calculated data control as
indicated by


CA 02306579 2000-04-25
-35-
the shading, and linked column data controls. In this document, the toolbar
506 is in
the floating condition and the Calcs icon S l0a is selected enabling the
script
associated with the calculated data control.
Figure 22c shows a rental sheet document. This document also shows
a number of linked column data controls. Some of the linked data controls are
calculated data controls as indicated by the shading. The scripts associated
with the
calculated data controls are enabled. An information window is also shown.
Figure 22d shows a bit and pump details document. This document
includes a number of linked column data controls and associated data fields
relating to
bit and pump details.
Figure 23a shows a daily drilling report document. This document
includes a number of data controls and associated data fields related to the
drilling
status of a well for a particular day. A drill-down control is exposed to
allow the
particular day to be selected. Selecting a different day from the drill-down
control
exposes the drilling report data entered for that particular day. This
document also
includes calculated data controls as indicated by the shading. Since the
fields
associated with the calculated data controls display numbers, the associated
scripts are
enabled.
Figure 23b shows the daily drilling report document of Figure 23a with
a time/date range. The time/date range is used as a filter to filter the daily
drilling
report data and is presented in a window overlying the daily drilling report.
Figure 23c shows a daily cost sheet document. This document
includes data controls and associated data fields relating to daily costs
incurred during
drilling of the oil well.
Figure 23d shows a hole, casing and cementing details document. This
document includes data controls and associated data fields relating to the oil
well's
hole, casing and cementing details. As can be seen in the data fields
associated with
the casing information, the calculated data control as indicated by the
shading is
disabled.
Figure 23e shows a casing tally document. This document includes
data controls and associated data fields relating hole and casing details and
adjustments to them and a total tally for the casing.


CA 02306579 2000-04-25
-36-
Figure 23f shows a vendor work order document. This document
includes data controls and associated data fields relating to oil well work
orders.
Figure 24a shows a BHA equipment list document. This document
includes data controls and associated data fields relating to a BHA equipment
list.
Figure 24b shows a formation and survey details document. This
document includes data controls and associated data fields relating to oil
well
formation and survey details.
Figure 24c shows a cost control document. This document includes
data controls and associated data fields relating to oil well cost controls
and includes
linked column calculated data controls as indicated by the shading.
Figure 25a shows a rig photo document. This document includes data
controls and associated data fields relating to an oil rig. Of interest, a
bitmap image of
the rig is presented in the rig photo data control.
Figure 25b shows a lease condition photo document. This document
includes data controls and associated data fields relating to the condition of
the well
property at the time it was leased. Of note, the lease photo data control
presents a
bitmap image of the land.
Figure 26 shows a completed job startup document. This document
includes data controls and associated data fields associated with the
completion of the
oil well.
Figure 27a shows a daily report document. This document includes
data controls and associated data fields relating to daily information
collected during
the completion and workover of the oil well.
Figure 27b shows an equipment document. This document includes
data controls and associated data fields relating to equipment used during the
well
completion and workover. Of note, an equipment photo data control presents a
bitmap image of equipment of interest.
Figure 27c shows a downhole schematic document. This document
includes data controls and associated data fields relating to the downhole
schematic of
the oil well.


CA 02306579 2000-04-25
-3 7-
Figure 27d shows the downhole schematic document of Figure 27c
with a metagram toolbar exposed. The metagram tool bar allows the illustrated
schematic to be edited as desired.
Figure 27e shows the downhole schematic document of Figure 27c
with a drill-down control exposed. The drill-down control allows various
stages of
the downhole schematic to be presented on the document by selecting a record
from
the drill-down control.
Figure 27f shows a wellhead schematic document. This document
includes data controls and associated data fields relating to the oil well
wellhead
schematic. A drill-down control is exposed. Selecting records from the drill-
down
control allow different wellhead schematics to be presented in the document.
Figure 28 shows a cost variance graph document. This document
shows a bar graph illustrating the estimated and actual costs associated with
the
various stages of the oil well.
Figure 29a shows an internal work order document. This document
includes data controls and associated data fields associated with an internal
work
order. Of note, this document includes an X-box data control.
Figure 29b shows the internal work order document of Figure 29a with
the halo and floating toolbar exposed.
Figure 29c shows a cost variance report document. This document
includes data controls and associated data fields relating to the cost
variance during
drilling. As can be seen, this document includes calculated data controls as
indicated
by the shading.
Figure 30a shows a well status report document. This document
includes data controls and associated data fields relating to the status of
the oil well.
As can be seen, this document includes light-type data controls.
Figure 30b shows a depth vs. total days document. This document
includes data controls and associated data fields relating to the depth of the
well
versus time in days. As can be seen, the well depth information is plotted on
a graph
as a function of time in days.
Figure 30c shows a time breakdown graph document. This document
includes data controls and associated data fields relating to the oil well. As
can be


CA 02306579 2000-04-25
-38-
seen, this document presents a pie chart showing the time breakdown of
drilling
related activities.
Figure 31a shows a drilling project cost variance document. This
document includes data controls and associated data fields relating to cost
variances in
the drilling project.
Figure 31b shows a project costs graph document. This document
includes data controls and associated data fields relating to oil well project
costs. The
cost information is presented in a bar graph and is broken down into various
categories.
Figure 32a shows an Alberta Energy and Utilities Board (EUB) style
WR-1 document.
Figure 32b shows an EUB style WR-2 document.
Figure 32c shows an EUB style WR-4 document.
As will be appreciated, most of the documents in the workbook are
used to allow users to enter, edit and/or delete records in the database. All
of the
documents are used to present records and data. When a user is required to
enter data
in the database, in this example, to complete the daily drilling report
document shown
in Figure 23a, the user opens a blank daily drilling report document. The
appropriate
data can then be entered into the fields of the data controls on the document.
As data is entered into a field of a data control of the document, the
data source object associated with the data control that is hooked to the
database
automatically populates the database with the data. As a result, entered data
that is
displayed in a field of the data control immediately becomes part of the
database.
During the data entry process, a record for the data is created under the
appropriate entity and the record is assigned a primary key. The record is
also
assigned a last altered date, which identifies the user creating the record
and the date
and time the record was created. The record is also assigned a last arrived
date. This
process continues until the report document has been completed.
If a data control corresponding to the same attribute is within another
document, when that other document is placed in the active document panel, the
field
of the data control is automatically filled with the data in the database,
since the data
source object is hooked to the database.


CA 02306579 2000-04-25
-39-
Since the fields in the data controls are hooked to the database
whenever a document is placed in the active document panel, if a document is
in the
active document panel and fields in the data controls therein are not filled
with data,
no data exists in the database for those fields.
If an existing document is opened, the fields in the data controls are
automatically filled with the corresponding data in the database. If the user
edits data
in the fields, the corresponding records in the database are updated and the
last altered
dates and last arrived dates are updated accordingly.
Document Printing, Queries and Grafts
The document-centered interface includes a print option, which when
selected, prints information in the hierarchical database from the top down.
The
document-centered interface also includes print cycle, print new and print EUB
style
options in the drop-down file menu. Selection of the print cycle option
presents an
under current item option and an on current item option.
If the under current item is selected, the document-centered interface
examines the document in the active document panel and the highlighted data
control
in the document and cycles through and prints the data in the database beneath
the
level of the highlighted data control.
If the on current item is selected, the document-centered interface
examines the document in the active document panel and the highlighted data
control
in the document and cycles through and prints the data set at the selected
level of the
highlighted data control.
If the print new option is selected, the linking engine filters the
database from the top of the model through a skeleton. The skeleton is a bare
representation of the selected data that is applicable across the model, in
this case, the
new data since the last print new. During the filtering process, a skeleton
following
the model is built from data in the database that is new since the last print
new
selection.
If the print EUB style option is selected, the documents are printed in a
form that satisfies Alberta Energy and Utilities Board requirements.


CA 02306579 2000-04-25
-40-
The document-centered interface includes a move option in the drop-
down edit menu. Selection of the move option presents a start option.
Highlighting a
data control in the document in the active document panel and selecting the
start
option allows all of the data in the database in the branch associated with
the
highlighted data control, to be moved to another branch. To complete the move,
the
user navigates the data control to the master entity to which the data is to
be grafted
and selects a finish option.
The document-based database management system also includes a
query tool to search the database for desired information to be searched. The
query
tool performs flat searches of the database that follow the entities of the
business
model for each parameter of the search. The results of the flat searches are
then built
up into a skeleton that is used to filter the data to yield only the pertinent
search
results.
Distributed Environment
As mentioned above, the workbooks are created for various users
within the business entity. The documents within the workbooks are therefore
particular to the users and include data controls that accept and present
information of
relevance to the users.
Once the workbooks are created for the business entity, the document-
based database management system 100 including the model, the database tables
and
the workbooks (excluding the modeller and document creation tools) are
installed on
the computer systems throughout the distributed data network of the business
entity.
Users are able to access the workbooks of relevance to them and use the
documents
therein to interact with the databases.
Figure 33 shows a typical distributed computer system environment in
which the document-based database management system 100 is installed. As can
be
seen, the distributed computer system 520 includes a plurality of remote
computer
sites 522 and 524, two of which are shown for illustrative purposes, and a
central
primary computer site 526.
Remote site 522 includes a computer 528 having a single workbook
500 loaded thereon. In this example, the workbook 500 includes two folders
SOOa.


CA 02306579 2000-04-25
-41-
One of the folders includes four documents SOOb while the other folder
includes three
documents SOOb. The documents in the workbooks are hooked to a database 530
including database tables corresponding to the model. The database 530 is a
subset of
the central database at the primary computer site 526.
The computer 528 communicates with a server 532 at the primary
computer site 526 over a telecommunications link via its communications. The
communications follow a multi-channel communications protocol as will be
described. Specifically, the computer 528 communicates with a ground satellite
dish
534 via a modem 536. Satellite dish 534 communicates with an orbiting
satellite 538
that in turn communicates with a ground telephone communications system 540.
The
server 532 communicates with the ground telephone communications system 540
via
its internal modem pool 542.
Remote site 524 also includes a computer 528 having a single
workbook 500 loaded thereon. In this example, the workbook 500 includes two
folders SOOa. One of the folders includes two documents while the other folder
includes one document. The documents in the workbook are hooked to a database
530 including database tables corresponding to the model. The database 530 is
a
subset of the control database at the primary computer site 526.
The computer 528 at remote site 524 also communicates with the
server 532 at the primary computer site 526 over a telecommunications link via
its
communications. The communications also follow the multi-channel
communications protocol. Specifically, the computer communicates with an radio
frequency (RF) transmitter 546 via a modem 548. Transmitter 546 communicates
with the ground telephone communications system 540, which in turn
communicates
with the server 532 in the central primary computer site 526 via its internal
modem
pool 542.
The central primary computer site 526 in addition to server 532,
includes a print server 550 and a database server 552. A plurality of
computers 554
are coupled to the servers via a network and similarly have workbooks 500
loaded
thereon. The database server 552 hosts the central database and the database
tables
generated by the modeller 104 during creation of the business model and stores
the


CA 02306579 2000-04-25
-42-
data for the business entity entered through data controls in the documents of
the
workbooks across the distributed computer system.
As mentioned above, the remote computer sites 522 and 524 and the
primary computer site 526 each include communications to establish a
telecommunications link and allow data to be exchanged over the
telecommunications
link. As can be seen in Figure 35, the communications is shown and includes a
packetizer 600 to packetize outgoing data packages and to depacketize incoming
data
packets and a packet handler 602 to handle packets sent and received over the
telecommunications link. The packet handler 602 follows a communications
protocol
to reduce the amount of duplicate data that is transmitted during a
telecommunications
session as will be described. Although not shown, the communications also
include
the appropriate hardware and software to establish a telecommunications link
with
another computer site.
Communications Interface
When it is necessary to transmit records in a local database at a remote
computer site to the central primary computer site 526 for storage in the
central
database, the export new option is selected from the drop-down file menu in
the
document-centered interface. Selecting the export new option causes the
packager
106 to examine the last arrived dates associated with the records in the
database to
determine records that include data that is new since the last export to a
particular
computer site. The packager 106 in turn creates a file that includes the
records
(including the primary keys, last altered dates, last arrived dates and master
keys).
The file is then packaged and queued for future delivery.
Graphical User Interface
Selection of the communications module in the document selection
panel opens a communications interface 700 in the active document panel as
shown in
Figure 34. The communications interface 700 allows packaged files at the
remote
computer sites to be sent to the central primary computer site and allows
updates from
the central primary computer system to be sent to the remote computer sites.
The
communications interface includes a toolbar 702 at the top of the interface
having a


CA 02306579 2000-04-25
-43-
plurality of selectable buttons including a Connect button 704, an Answer
button 706,
an Export button 708, a New button 710, an Edit button 712, a Delete button
714, a
Queue Other Files button 716 and a Clear Queued Files button 718. Select
Communications Device and Inactivity Timeout buttons 720 and 722 and Answer At
Program Startup, Auto-Send Waiting Files and Auto-Delete Sent Files check
boxes
724 to 28 are positioned below the row of buttons. A list box 730, which is
positioned below the buttons and checkboxes, lists the remote users to which
the
document-centered interface can connect.
Highlighting a destination computer site in the list box and selecting
the Connect button 704 causes the communications of the remote computer 528 to
dial automatically the number of the destination computer site to establish a
telecommunications link with the destination computer site.
Selecting the Answer button 706 places the communications of the
remote computer into a call-waiting mode. If an incoming call is received when
the
communications is in this mode, the incoming call is automatically answered.
The Export button 708 can also be used to cause the packager 106 to
package all new records that have been created since the last time an export
was
performed by the user to a particular remote computer site, and queue the
package for
future sending.
A communications panel 740 is also included in the communications
interface 700 and includes an Answer icon 742, a Connect icon 744, a
Disconnect
icon 746, a File Transfer Window Open icon 748, a Chat Window Open icon 750, a
Connected Status indictor 752 and a Ringing Status indictor 754.
When a telecommunications link is established with a destination
computer site, the Connected Status indicator 752 is illuminated. When the
Answer
icon is selected to set the communications to answer incoming calls, the
Ringing
Status indicator 754 illuminates when an incoming call is received.
Selection of the File Transfer Window Open icon 748 opens a file
transfer window 760. The file transfer window includes a list box 762 listing
the
names of the packaged files that have been queued and the sizes of the files.
The
current file percentage transmitted and total percentage transmitted are shown
by
active progress bars 764 and 766 located below the list box. Select, Send and
Abort


CA 02306579 2000-04-25
-44-
buttons 768 to 772 are positioned beside the list box. The number of bytes in
the file
that have been transferred out of the total bytes in the file, the elapsed
time of the
telecommunications link and the estimated time to complete the file transfer
are
displayed below the list box. The Select button 768 allows all of the packaged
files in
the list box to be highlighted. Selection of the Send button 770 causes the
packetizer
600 to packetize the highlighted packaged file or files one at a time and send
the data
packets to the packet handler 602 for transmission over the telecommunications
link.
The current file sliding bar indicates the percentage of the current file that
has been
transferred while the total sliding bar indicates the percentage of all data
that has been
transferred to the remote location.
When data is being received, a file transfer window 780 is opened and
includes an active progress bar 752 to indicate the percentage of the file
that has been
received. Below the sliding bar, the file transfer window indicates the
elapsed time of
the telecommunications link, the estimated time to complete the file transfer,
the
estimated total time of the telecommunications link, the name of the file
being
received and the number of bytes in the file that have been received out of
the total
bytes in the file.
Selection of the Chat Window icon 750 opens a chat window 784
divided into incoming text and outgoing text boxes 786 and 788. Text entered
into
the outgoing box is transmitted over the telecommunications link to the remote
user.
Responses from the remote user entered in the outgoing box of their chat
window are
transmitted over the telecommunications link and appear in the incoming text
box of
the chat window 784. The mufti-channel communications protocol allows filed to
be
transferred between computer sites and chat conversations between users at the
computer sites to be carried out over the telecommunications link
simultaneously.
Communications Protocol
Prior to transmission, the packaged file is compressed and scrambled.
Once this is done, the package is broken into packets by the packetizer 600
and the
packets are conveyed to the packet handler 602. The packet handler 602 in turn
transmits the packets to the destination computer site. As packets are being
sent, an
entry is made in a table signifying that the packet is en-route to its
destination and a


CA 02306579 2000-04-25
-45-
current transmission point within the file is maintained. When receipt of the
packet is
acknowledged by the destination computer site, the entry in the table is
removed. If
the communications link fails, the packet handler 602 determines the point in
the file
where transmission stopped together with the entries in the table representing
unacknowledged packets. When the communications link is re-established, the
packet
handler checks to determine whether the same file is to be transmitted. If so,
the
packet handler assembles the packets corresponding to the table entries and
transmits
the packets. The packet handler then continues transmitting the file packets
from the
point at which the transmission was stopped. In this manner, the packet
handler 602
does not require transmission of data packets to be duplicated.
As the destination computer site receives the packets, the packets are
held by the packet handler until the complete file is received. Once a
complete file is
received the packets are reassembled by the packetizer and the resulting
package is
decompressed and unscrambled.
At this time, the packager 106, for each record in the file, compares the
primary key assigned to the record with the primary keys in the database. If
an
existing record exists in the database with the same primary key, the last
altered dates
of the two records are compared. If the transmitted record is newer, the
record is
stored in the database. In this case, the last arrived date is stamped with
the current
time. Otherwise the record is ignored.
If no existing records exists in the database, the record is added to the
database. In this case, the last arnved date is stamped with the current time.
If the transmitted file includes one or more record deletions, the
packager 106 checks to see if the user who made the deletion was assigned
deletion
rights via an entry in the remote deletions field 176c during model creation.
If the
user does not have deletion rights, the deletion is ignored.
If the user is assigned deletion rights, the packager 106 processes the
deletion record-by-record. If there is no record in the database corresponding
to the
record to be deleted, the deletion is ignored. If a record is present in the
database that
corresponds to the record to be deleted, the last altered data of the record
in the
database is compared with the last altered data of the deletion. If the last
altered date


CA 02306579 2000-04-25
-46-
of the deletion is newer, the deletion is applied to the database and the
XENTITY and
XDELETE tables are updated.
The document-based database management system 100 allows
documents to be tailored to meet the needs of the business of interest. Since
the
documents are live-linked to the database, the documents function as data
input forms
to the database and as data reports. The data controls in the documents
determine the
information that populates the database. Depending on the information needs of
the
business, the number of documents and the number and type of data controls in
the
documents may vary. Since modeller 104 and the document tools 110 allow the
developer to determine the number and type of data controls and attributes in
the
model, the document-based database management system can be licensed to third
parties and a royalty charged based on the number and type of attributes in
the model
and the number of attributes used across all of the documents.
Although a preferred embodiment of the present invention has been
described with reference to the accompanying drawings, those of skill in the
art will
appreciate that variations and modifications may be made without departing
from the
spirit and scope thereof as defined by the appended claims.

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date Unavailable
(22) Filed 2000-04-25
(41) Open to Public Inspection 2001-10-21
Examination Requested 2005-02-14
Dead Application 2009-04-27

Abandonment History

Abandonment Date Reason Reinstatement Date
2006-04-25 FAILURE TO PAY APPLICATION MAINTENANCE FEE 2007-02-01
2008-04-25 FAILURE TO PAY APPLICATION MAINTENANCE FEE
2008-10-06 R30(2) - Failure to Respond

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Registration of a document - section 124 $100.00 2000-04-25
Application Fee $150.00 2000-04-25
Maintenance Fee - Application - New Act 2 2002-04-25 $50.00 2002-04-18
Maintenance Fee - Application - New Act 3 2003-04-25 $50.00 2003-04-24
Maintenance Fee - Application - New Act 4 2004-04-26 $50.00 2004-04-19
Request for Examination $400.00 2005-02-14
Maintenance Fee - Application - New Act 5 2005-04-25 $100.00 2005-04-25
Registration of a document - section 124 $100.00 2006-03-01
Reinstatement: Failure to Pay Application Maintenance Fees $200.00 2007-02-01
Expired 2019 - Corrective payment/Section 78.6 $800.00 2007-02-01
Maintenance Fee - Application - New Act 6 2006-04-25 $200.00 2007-02-01
Maintenance Fee - Application - New Act 7 2007-04-25 $100.00 2007-04-13
Registration of a document - section 124 $100.00 2007-09-12
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
DECISION DYNAMIC TECHNOLOGY LTD.
Past Owners on Record
ANNAND, RITCHIE IAN
MALIBU ENGINEERING & SOFTWARE LTD.
PERRY, GARRY ERWIN
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Abstract 2000-04-25 1 15
Claims 2000-04-25 9 339
Representative Drawing 2001-09-19 1 22
Cover Page 2001-10-12 1 50
Description 2000-04-25 46 2,480
Drawings 2000-04-25 68 5,076
Fees 2002-04-18 1 49
Correspondence 2000-06-02 1 2
Assignment 2000-04-25 3 103
Assignment 2001-04-24 4 113
Correspondence 2001-08-21 1 24
Fees 2003-04-24 1 49
Fees 2004-04-19 1 51
Prosecution-Amendment 2005-02-14 1 51
Fees 2005-04-25 1 49
Prosecution-Amendment 2005-07-29 2 38
Correspondence 2006-02-22 1 25
Assignment 2006-03-01 4 98
Correspondence 2006-04-20 1 16
Fees 2006-04-24 1 52
Prosecution-Amendment 2007-02-01 2 58
Fees 2007-02-01 2 57
Correspondence 2007-03-28 1 26
Assignment 2007-09-12 6 192
Correspondence 2007-10-18 1 2
Assignment 2008-01-17 1 25
Prosecution-Amendment 2008-04-04 2 87