U.S. patent application number 11/231260 was filed with the patent office on 2007-01-04 for templates in a schema editor.
This patent application is currently assigned to Microsoft Corporation. Invention is credited to Christopher W. Bryant, Clinton D. Covington, Timothy E. Getsch, Shane L. Groff, Dan Hough, Kelly M. Krout, Vitore Selca.
Application Number | 20070005634 11/231260 |
Document ID | / |
Family ID | 37590984 |
Filed Date | 2007-01-04 |
United States Patent
Application |
20070005634 |
Kind Code |
A1 |
Selca; Vitore ; et
al. |
January 4, 2007 |
Templates in a schema editor
Abstract
A schema editor allows for definition, distribution, and use of
schema templates. The schema editor allows schema to be edited and
then saved in such a way that the saved file can be reimported into
the schema editor.
Inventors: |
Selca; Vitore; (Seattle,
WA) ; Bryant; Christopher W.; (Seattle, WA) ;
Covington; Clinton D.; (Kirkland, WA) ; Hough;
Dan; (Seattle, WA) ; Krout; Kelly M.;
(Redmond, WA) ; Groff; Shane L.; (North Bend,
WA) ; Getsch; Timothy E.; (Redmond, WA) |
Correspondence
Address: |
MERCHANT & GOULD (MICROSOFT)
P.O. BOX 2903
MINNEAPOLIS
MN
55402-0903
US
|
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
37590984 |
Appl. No.: |
11/231260 |
Filed: |
September 20, 2005 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11169856 |
Jun 29, 2005 |
|
|
|
11231260 |
Sep 20, 2005 |
|
|
|
Current U.S.
Class: |
1/1 ;
707/999.102; 707/E17.005 |
Current CPC
Class: |
G06F 16/252 20190101;
G06F 16/211 20190101 |
Class at
Publication: |
707/102 |
International
Class: |
G06F 7/00 20060101
G06F007/00 |
Claims
1. A computer-implemented method for editing schema for a database,
the method comprising: providing a user interface for editing a
schema for the database; receiving a list of definitions for
schema; displaying on the user interface the list of definitions
for schema; receiving commands from the user for editing the
schema, wherein the commands refer to information from the received
template list; and outputting an output file for the edited schema,
wherein the output file is configured to be received by the user
interface.
2. The method of claim 1 further comprising receiving commands from
the user for entering data for the database.
3. The method of claim 1 further comprising displaying on the user
interface data from the database.
4. The method of claim 3 wherein the displayed data is displayed as
a database table.
5. The method of claim 3 wherein the displayed data is displayed as
a database form.
6. The method of claim 1 wherein the list of template schema
definitions is displayed in a task pane.
7. The method of claim 1 further comprising receiving a command
from the user to add a field, providing a second list of
definitions for schema, receiving a selection from the second list
by the user, and displaying the selected field from the second list
on the user interface.
8. The method of claim 1 wherein the output file is compatible with
a file format used for template schema definitions.
9. A computer-implemented system for editing schema for a database,
the system comprising: a display that is configured to display an
image representing a received list of template schema definitions;
a user interface for receiving commands from the user for modifying
the schema and to change the displayed image in response to the
received commands; a file reader that is configured to receive the
list of template schema definitions; and a file generator that is
configured to output an output file in response to the modified
schema, wherein the output file is configured to be received by the
file reader.
10. The system of claim 9 wherein the user interface is further
configured to receive commands from the user for entering data for
the database.
11. The system of claim 9 wherein the display is further configured
to display data from the database.
12. The system of claim 11 wherein the displayed data is displayed
as a database table.
13. The system of claim 9 wherein the list of template schema
definitions is displayed in a task pane.
14. The system of claim 9 wherein the output file is compatible
with a file format used for template schema definitions.
15. A computer-implemented system for editing schema for a
database, the system comprising: means for receiving a list of
template schema definitions; means for displaying on a user
interface means the list of template schema definitions; means for
receiving commands from the user for modifying the schema, wherein
the commands refer to information from the received template list;
and means for outputting an output file for the modified schema,
wherein the output file is configured to be received and displayed
by the user interface means.
16. The system of claim 15 wherein the means for receiving commands
is used to enter data into the database.
17. The system of claim 15 wherein means for displaying on the user
interface is used to display data from the database.
18. The system of claim 17 wherein the displayed data is displayed
as a database form.
19. The system of claim 18 wherein the list of template schema
definitions is displayed in an interactive user interface
metaphor.
20. The system of claim 18 wherein the output file is compatible
with a file format used for template schema definitions.
Description
RELATED APPLICATIONS
[0001] The present application is a continuation-in-part of U.S.
patent application Ser. No. 11/169,856, filed Jun. 6, 2005, and
claims the benefit of the earlier filing date under 35 U.S.C.
.sctn. 120. The present application is also continuation-in-part of
U.S. patent application No. [312986.01], filed ______, 2005, and
claims the benefit of the earlier filing date under 35 U.S.C.
.sctn. 120.
BACKGROUND
[0002] Users having different levels of ability often create and
modify user data by using database applications that have a
database engine. The users create tables to store the database
information, and once a table is created, it is often difficult to
change or modify the definition of a table in a way that is
intuitive for users and is easy to use. A schema is typically used
to define a table, and schema modification options and/or dialog
are often very closely dependent upon database applications. The
database applications often require a high level of skill and core
knowledge of database concepts in order to manipulate the database
application. Thus, users who are not familiar with formal database
theory, or who do not have experience in database design, often
need help in determining and setting data types and other features
based on their input data.
[0003] Conventional database applications typically modify tables
when a user is not viewing the data. Thus, a user of a previous
version typically does not explicitly set the data type or size of
the field or formatting options within table browse. Also, data
types of the data entered are evaluated after the user closes the
table. Often, a user is prohibited from making changes to the
structure of a table while a database object that depends on the
table, such as a form or query, is open. Thus, in order to modify
the schema of the table, data objects depending on the table
typically have to be closed so that no other applications are using
the table. For example, when a user tries to modify a table while a
dependent report is open, the user may receive a somewhat arbitrary
notice to close the report and the table. (This background
information is not intended to identify problems that must be
addressed by the claimed subject matter.)
SUMMARY
[0004] This summary is provided to introduce a selection of
concepts in a simplified form that are further described below in
the Detail Description Section. This summary is not intended to
identify key features or essential features of the claimed subject
matter, nor is it intended to be used as an aid in determining the
scope of the claimed subject matter.
[0005] According to aspects of various described embodiments,
implementations are provided for a schema editor that allows for
definition, distribution, and use of schema templates. The schema
editor allows schema to be edited and then saved in such a way that
the saved file can be reimported into the schema editor. In one
aspect, a user interface is provided for editing a schema for the
database. The schema can be edited by selecting items from a list
of template schema definitions that is read and displayed by the
editor. The edited schema can be saved as an output file such that
the output file can be reused by the schema editor.
[0006] According to another aspect, a computer-implemented system
for editing schema for a database includes a display that is
configured to display an image representing a received list of
template schema definitions. A user interface receives commands
from the user in order to modify the schema. The user interfaces
changes the displayed image in response to the user commands. A
file reader is used to read a list of template schema definitions
that are displayed to the user. A file generator is also used to
output an output file in response to the modified schema so that
the output file can be read by the file reader.
[0007] According to another aspect, a computer-implemented system
for editing schema for a database includes means for reading in
template schema definitions. The list of template schema
definitions is displayed using a display means. Means are provided
for receiving commands from the user who uses information from the
template schema definitions for modifying the schema. Output means
are used to generate an output file for the modified schema such
that the output file is configured to be received and
displayed.
[0008] Embodiments may be implemented as a computer process, a
computer system (including mobile handheld computing devices) or as
an article of manufacture such as a computer program product. The
computer program product may be a computer storage medium readable
by a computer system and encoding a computer program of
instructions for executing a computer process. The computer program
product may also be a propagated signal on a carrier readable by a
computing system and encoding a computer program of instructions
for executing a computer process.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Non-limiting and non-exhaustive embodiments are described
with reference to the following figures, wherein like reference
numerals refer to like parts throughout the various views unless
otherwise specified.
[0010] FIGS. 1a and 1b illustrate exemplary field templates task
panes for editing schema, according to one embodiment.
[0011] FIG. 2 illustrates an exemplary display for a schema editor
for exposing tables in a command space, according to one
embodiment.
[0012] FIG. 3 illustrates an exemplary display for a schema editor
using a field templates task pane for a database application,
according to one embodiment.
[0013] FIG. 4 illustrates an exemplary display for a schema editor
using a field templates task pane for a form, according to one
embodiment.
[0014] FIG. 5 illustrates an exemplary display for a schema editor
using templates that are available from an insert tab, according to
one embodiment.
[0015] FIG. 6 illustrates an operational flow 400 for editing
schema, according to one embodiment.
[0016] FIG. 7 illustrates a first display of an example process of
adding a field to a table generated by a schema editor, according
to one embodiment.
[0017] FIG. 8 illustrates a second display of an example process of
adding a field to a table generated by a schema editor, according
to one embodiment.
[0018] FIG. 9 illustrates a third display of an example process of
adding a field to a table generated by a schema editor, according
to one embodiment.
[0019] FIG. 10 illustrates a display of an alternative user
interface for adding a field to a table generated by a schema
editor, according to one embodiment.
[0020] FIG. 11 illustrates a general computer environment 1100,
which can be used to implement the techniques described herein.
DETAILED DESCRIPTION
[0021] Various embodiments are described more fully below with
reference to the accompanying drawings, which form a part hereof,
and which show specific exemplary embodiments for practicing the
invention. However, embodiments may be implemented in many
different forms and should not be construed as limited to the
embodiments set forth herein; rather, these embodiments are
provided so that this disclosure will be thorough and complete, and
will fully convey the scope of the invention to those skilled in
the art. Embodiments may be practiced as methods, systems or
devices. Accordingly, embodiments may take the form of a hardware
implementation, an entirely software implementation or an
implementation combining software and hardware aspects. The
following detailed description is, therefore, not to be taken in a
limiting sense.
[0022] The logical operations of the various embodiments are
implemented (1) as a sequence of computer implemented steps running
on a computing system and/or (2) as interconnected machine modules
within the computing system. The implementation is a matter of
choice dependent on the performance requirements of the computing
system implementing the embodiment. Accordingly, the logical
operations making up the embodiments described herein are referred
to alternatively as operations, steps or modules.
[0023] Data is typically stored on computer systems in an organized
fashion, which allows the data to be sorted, manipulated, and
displayed in response to user's commands. Such data can be stored
using database systems, which provide commands for users to
manipulate the data. Additionally, schema can be used to define how
data is to be stored and accessed. In the recent past, directly
coding schema and manipulating database information required
knowledge of programming languages, which typical users do not
possess, and can be inefficient for those who do possess such
knowledge. Database designers can also be used, but restrict the
ability to access data and database structures at the same
time.
[0024] In various embodiments, a schema editor is provided that
allows simultaneous access to both the data and the structure of a
database. A user of the schema editor can modify the data itself
and/or how the data is manipulated. The schema editor provides an
output of the user's edits such that the schema editor is capable
of reopening and using the previously output users' edits.
Exemplary System for Editing Schema
[0025] FIGS. 1a and 1b illustrate exemplary field templates task
panes for editing schema, according to one embodiment. In one
embodiment, task pane 100 is implemented on a computer system, such
as a computer that is networked to a database. Task pane 100 is
used to load, for example, XML files that define schema that the
user can incorporate into a table schema. Task pane 100 displays
field properties from which a user can select (by dragging and
dropping, for example) in order to create a desired database
schema.
[0026] As shown in FIG. 1a, field templates can be displayed as a
two-level hierarchy. Entry 110 has a clickable control for
displaying (or hiding) further information about the (higher level)
entry 110. For example, "Basic Field Types" entry 110 is associated
with control 112, which is displayed as a "minus sign" box. The
minus sign box indicates that "Basic Field Types" entry has been
expanded to show further information (sub-entries 114) associated
with entry 110. The further information in this example includes
basic field types such as attachment field type, date/time,
identification number, type of currency, and the like. Control 112
can be clicked for the purpose of hiding the expanded list, which
contains the further information.
[0027] As shown by the example, the field definitions (contained in
entry 110) can be virtually any data type or formats a user
desires. Thus any field property available in table design view can
be specified here. If it is specified by other means, it can be
exported into XML when the user creates an output file. Data types
of database fields can be specified, such that data within the
database is optimally stored for filtering and querying operations.
For example, the filtering operation in Access.RTM. uses the data
type information to offer enhanced filtering options.
[0028] Additionally, data formats can be used, which can be used to
specify how stored data is to be formatted and/or displayed. For
example, a selection of "currency" can be used to convert data
stored in a "real" format to a format that displays a currency sign
and an integer value formatted with commas every third column and a
decimal point.
[0029] A field definition can also be used as an input mask for
receiving (and constraining) input from a user. For example, an
input mask for inputting a social security number can be selected.
Each digit of the social security number can be validated (and
constrained if necessary) as each digit is being entered by the
user.
[0030] A user of the schema editor can use task pane 100 to form
and/or select sets of field definitions. FIG. 1b shows an example
of a set of field definitions for the entry "address" 152 in task
pane 150. Again, the minus sign box indicates that "tap address"
entry has been expanded to show further information such as
sub-entries Lines 1 and 2 for a street address, city, state,
country, and postal code. Additionally, the sub-entries can be
associated with yet even further sub-entries.
[0031] The schema editor can generate an output file (typically in
XML) that contains instructions for generating a database structure
and/or manipulating data stored in the database structure. For
example, an export command can be used to export the current table
as an XML file. The output file is typically in a format that is
similar to the format that is used to generate the field
definitions in task pane 100. As such, the schema editor can read
the output file back into the schema editor.
[0032] This allows, for example, a database having standardized
fields to be designed by a primary design team, and disseminated to
secondary users. The secondary users can use the schema editor to
"consume" the field definitions provided by the primary design team
in the output XML file to generate schema using the standardized
fields. Using the standardized fields hopes to ensure that
commonality of data can be maintained while allowing the user to
create new schema applications.
[0033] Additionally, the provisioning of field definitions and
various schema (e.g., in template form) need not to be restricted
to the task pane per se. Interactive user interface metaphors such
as panes, ribbons, bars, galleries, and the like can be used to
represent various template schema to a user. The template schema
can be shown graphically (e.g., using pictures or icons),
textually, or a combination thereof. The user can select a template
schema and drag the selected template schema on to the table, which
then creates a new schema in accordance with the selected template
schema.
[0034] FIG. 2 illustrates an exemplary display for a schema editor
for exposing tables in a command space, according to one
embodiment. Schema editor 200 comprises menu bar 210, which
contains selected categories of actions to be performed. For
example, selection 220 is the Insert tab that can be used to
template tables for the schema editor.
[0035] FIG. 3 illustrates an exemplary display for a schema editor
using a field templates task pane for a database application,
according to one embodiment. Schema editor 300 comprises table 310,
which is a table for displaying data stored within the database.
Schema editor 300 additionally includes various controls 320 for
creating, modifying, verifying, deleting (and the like) field
definitions and/or data entry. Pane 330 is a navigation pane that
lists objects (such as tables, forms, reports, and other content)
of the database file.
[0036] As described above, the user can click and drag to a field
definition from the task pane to, for example, create fields in the
database, and can click on the table entry to edit the data to be
stored within the field. The control pointed to by 320 can be used
to save the data in the currently modified record. There is a Save
command on the File menu which will save the schema in the
database
[0037] When the user is finished creating the database and/or
entering or modifying data, the user can save their results of the
session by using the Save command on the File menu which will save
the schema in the database. The schema editor saves the output file
in a format (such as XML) that the schema editor can then reimport
to the schema editor.
[0038] FIG. 4 illustrates an exemplary display for a schema editor
using a field templates task pane for a form, according to one
embodiment. Schema editor 400 comprises task pane 150, which is
used as described above to generate schema for a form. Schema
editor 400 further comprises form 410, which displays a space for a
form for entering and modifying data stored within a database.
Schema editor 400 additionally includes various controls 420 for
creating, modifying, verifying, deleting (and other similar
commands) field definitions and/or data entry. Form 410 is
typically a WYSIWYG tool that allows a form to be defined, and
further allows a user to concurrently enter, modify, and display
data through using the form.
[0039] FIG. 5 illustrates an exemplary display for a schema editor
using templates that are available from an insert tab, according to
one embodiment. Schema editor 500 uses control 510 to create a new
table 520 (as compared to changing an editing table). Selecting
control 510 causes a drop down menu (Y30) to appear. A user can
select preset definitions for defining a schema, which is
represented in table 520 in response to user-activated
commands.
[0040] Exemplary Flow for Editing Schema
[0041] FIG. 6 illustrates an operational flow 600 for editing
schema, according to one embodiment. Operational flow 600 may be
performed in any suitable computing environment. For example,
operational flow 600 may be executed by an application such as user
application programs 1028 (FIG. 10, below) to perform the searching
and comparison. Therefore, the description of operational flow 600
may refer to at least one of the components of FIG. 10. However,
any such reference to components of FIG. 10 is for descriptive
purposes only, and it is to be understood that the implementations
of FIG. 10 are a non-limiting environment for operational flow
600.
[0042] At block 602, a user interface for editing a schema for the
database is provided. The user interface is configured to receive
commands from the user for editing. The user interface is used with
an editor for editing schema for databases. In an embodiment, a
graphical user interface is provided to visually depict, for
example, logical relationships within a database. Additionally, the
user interface can be used to enter the data for a database.
[0043] At block 604, a list of definitions for schema is received.
In possible embodiments, the list of definitions for schema can
contain schema templates, structures, user defined lists and the
like. The definitions for schema contain predefined definitions for
schemas and elements of the schemas. In an embodiment, the list of
schema is shown with two levels of hierarchy, although more levels
can be used. Using predefined templates, for example, for schema
definitions provides for standardization of data and efficient use
of the data.
[0044] At block 606, the list of definitions for schema is
displayed on the user interface. The list of definitions for schema
in an embodiment is displayed as template schema using an
interactive user interface metaphor such as a window, pane, bar,
ribbon, and the like. The list of template schema definitions is
displayed in a task pane. Additionally, data that is associated
with the database (for which the schema is being edited) is
optionally displayed on the user interface. The data is displayed
in a format such as a database table or form.
[0045] At block 608, commands are received from the user for
editing the schema. As described above, the user can edit schema
definitions using selected entries in the list of template schema
definitions. The term editing also includes meanings such as
creating, modifying, and the like. The edits can modify data,
metadata, attributes, objects, and the like that are associated
with the schema. (Also, the term modify includes meanings such as
changes to an object that occur when creating the object).
[0046] At block 610, an output file for the modified schema is
generated and output. The output file is configured to be read back
into the schema editor such that the output file can be used to
populate the list of template definitions and/or to be edited
itself again. The output file is typically compatible with a file
format used for template schema definitions to facilitate
populating the list of template definitions. Possible embodiments
include outputting the database at any time in the example process
flow 600, and can be generated from a process that is separate from
the table design tools.
[0047] Advertised Entry Points
[0048] Relatively unsophisticated users create templates using a
schema editor (such as Access.RTM.). The users typically use the
templates but do not have an idea how the template is constructed
because they often mainly use the primary displayed by the schema
editor. The relatively unsophisticated users in studies have
typically been unable to track information that is not in the table
and could not figure out that they needed to add the field to the
table to track information.
[0049] FIG. 7 illustrates a first display of an example process of
adding a field to a table generated by a schema editor, according
to one embodiment. Display 700 comprises a table (710) for listing
"issues" in a computer system. A user can first verify that a field
to be added does not exist in data source task pane 720. Next the
user they can click on the add field link (730) in the bottom of
the list of fields for the table. The schema editor opens a display
as illustrated in FIG. 8.
[0050] FIG. 8 illustrates a second display of an example process of
adding a field to a table generated by a schema editor, according
to one embodiment. Clicking on link 730 in display 800 causes
dialog box 810 to open that prompts the user to determine whether
the user wants to open the table to add a field to the table. When
the user answers in the affirmative, the schema editor opens a
display as shown in FIG. 9.
[0051] FIG. 9 illustrates a third display of an example process of
adding a field to a table generated by a schema editor, according
to one embodiment. Clicking "OK" in dialog box 810 causes display
900 to be opened. Display 900 illustrates that table 910 is opened
with a focus on field 920, (which is in the "Add New Field"
column). Also, when the table is opened a new "add field" task pane
(930) is opened to provide the user with information to define
schema (e.g., to use predefined templates for the table). When the
user closes table 910, the field is available in the data source
task pane 720 as shown in FIG. 7.
[0052] FIG. 10 illustrates a display of an alternative user
interface for adding a field to a table generated by a schema
editor, according to one embodiment. Display 1000 is an alternative
user interface that allows a schema to be created and/or modified
in the context of a form. Creating/Modifying a schema in the
context of a form allows the user to create/modify schema in place
such that the user does not have to "navigate away" from the
current view (which would distract the user). The Figure
illustrates a dialog (as compared to a task pane as illustrated in
the process of FIGS. 7-9). The content that is used to
create/modify the schema care templates as well as other
user-provided input
Illustrative Operating Environment
[0053] FIG. 11 illustrates a general computer environment 1100,
which can be used to implement the techniques described herein. The
computer environment 1100 is only one example of a computing
environment and is not intended to suggest any limitation as to the
scope of use or functionality of the computer and network
architectures. Neither should the computer environment 1100 be
interpreted as having any dependency or requirement relating to any
one or combination of components illustrated in the example
computer environment 1100.
[0054] Computer environment 1100 includes a general-purpose
computing device in the form of a computer 1102. The components of
computer 1102 can include, but are not limited to, one or more
processors or processing units 1104, system memory 1106, and system
bus 1108 that couples various system components including processor
1104 to system memory 1106.
[0055] System bus 1108 represents one or more of any of several
types of bus structures, including a memory bus or memory
controller, a peripheral bus, an accelerated graphics port, and a
processor or local bus using any of a variety of bus architectures.
By way of example, such architectures can include a Peripheral
Component Interconnects (PCI) bus also known as a Mezzanine bus, a
PCI Express bus (and the like), a Universal Serial Bus (USB), a
Secure Digital (SD) bus, and/or an IEEE 1394, i.e., FireWire,
bus.
[0056] Computer 1102 may include a variety of computer readable
media. Such media can be any available media that is accessible by
computer 1102 and includes both volatile and non-volatile media,
removable and non-removable media.
[0057] System memory 1106 includes computer readable media in the
form of volatile memory, such as random access memory (RAM) 1110;
and/or non-volatile memory, such as read only memory (ROM) 1112 or
flash RAM. Basic input/output system (BIOS) 1114, containing the
basic routines that help to transfer information between elements
within computer 1102, such as during start-up, is stored in ROM
1112 or flash RAM. RAM 1110 typically contains data and/or program
modules that are immediately accessible to and/or presently
operated on by processing unit 1104.
[0058] Computer 1102 may also include other
removable/non-removable, volatile/non-volatile computer storage
media. By way of example, FIG. 11 illustrates hard disk drive 1116
for reading from and writing to a non-removable, non-volatile
magnetic media (not shown), magnetic disk drive 1118 for reading
from and writing to removable, non-volatile magnetic disk 1120
(e.g., a "floppy disk"), and optical disk drive 1122 for reading
from and/or writing to a removable, non-volatile optical disk 1124
such as a CD-ROM, DVD-ROM, or other optical media. Hard disk drive
1116, magnetic disk drive 1118, and optical disk drive 1122 are
each connected to system bus 1108 by one or more data media
interfaces 1125. Alternatively, hard disk drive 1116, magnetic disk
drive 1118, and optical disk drive 1122 can be connected to the
system bus 1108 by one or more interfaces (not shown).
[0059] The disk drives and their associated computer-readable media
provide non-volatile storage of computer readable instructions,
data structures, program modules, and other data for computer 1102.
Although the example illustrates a hard disk 1116, removable
magnetic disk 1120, and removable optical disk 1124, it is
appreciated that other types of computer readable media which can
store data that is accessible by a computer, such as magnetic
cassettes or other magnetic storage devices, flash memory cards,
CD-ROM, digital versatile disks (DVD) or other optical storage,
random access memories (RAM), read only memories (ROM),
electrically erasable programmable read-only memory (EEPROM), and
the like, can also be utilized to implement the example computing
system and environment.
[0060] Any number of program modules can be stored on hard disk
1116, magnetic disk 1120, optical disk 1124, ROM 1112, and/or RAM
1110, including by way of example, operating system 1126, one or
more application programs 1128 (which can include schema editing as
described above), other program modules 1130, and program data
1132. Each of such operating system 1126, one or more application
programs 1128, other program modules 1130, and program data 1132
(or some combination thereof) may implement all or part of the
resident components that support the distributed file system.
[0061] A user can enter commands and information into computer 1102
via input devices such as keyboard 1134 and a pointing device 1136
(e.g., a "mouse"). Other input devices 1138 (not shown
specifically) may include a microphone, joystick, game pad,
satellite dish, serial port, scanner, and/or the like. These and
other input devices are connected to processing unit 1104 via
input/output interfaces 1140 that are coupled to system bus 1108,
but may be connected by other interface and bus structures, such as
a parallel port, game port, or a universal serial bus (USB).
[0062] Monitor 1142 or other type of display device can also be
connected to the system bus 1108 via an interface, such as video
adapter 1144. In addition to monitor 1142, other output peripheral
devices can include components such as speakers (not shown) and
printer 1146 which can be connected to computer 1102 via I/O
interfaces 1140.
[0063] Computer 1102 can operate in a networked environment using
logical connections to one or more remote computers, such as remote
computing device 1148. By way of example, remote computing device
1148 can be a PC, portable computer, a server, a router, a network
computer, a peer device or other common network node, and the like.
Remote computing device 1148 is illustrated as a portable computer
that can include many or all of the elements and features described
herein relative to computer 1102. Alternatively, computer 1102 can
operate in a non-networked environment as well.
[0064] Logical connections between computer 1102 and remote
computer 1148 are depicted as a local area network (LAN) 1150 and a
general wide area network (WAN) 1152. Such networking environments
are commonplace in offices, enterprise-wide computer networks,
intranets, and the Internet.
[0065] When implemented in a LAN networking environment, computer
1102 is connected to local network 1150 via network interface or
adapter 1154. When implemented in a WAN networking environment,
computer 1102 typically includes modem 1156 or other means for
establishing communications over wide network 1152. Modem 1156,
which can be internal or external to computer 1102, can be
connected to system bus 1108 via I/O interfaces 1140 or other
appropriate mechanisms. It is to be appreciated that the
illustrated network connections are examples and that other means
of establishing at least one communication link between computers
1102 and 1148 can be employed.
[0066] In a networked environment, such as that illustrated with
computing environment 1100, program modules depicted relative to
computer 1102, or portions thereof, may be stored in a remote
memory storage device. By way of example, remote application
programs 1158 reside on a memory device of remote computer 1148.
For purposes of illustration, applications or programs and other
executable program components such as the operating system are
illustrated herein as discrete blocks, although it is recognized
that such programs and components reside at various times in
different storage components of computing device 1102, and are
executed by at least one data processor of the computer.
[0067] Various modules and techniques may be described herein in
the general context of computer-executable instructions, such as
program modules, executed by one or more computers or other
devices. Generally, program modules include routines, programs,
objects, components, data structures, etc. for performing
particular tasks or implement particular abstract data types.
Typically, the functionality of the program modules may be combined
or distributed as desired in various embodiments.
[0068] An implementation of these modules and techniques may be
stored on or transmitted across some form of computer readable
media. Computer readable media can be any available media that can
be accessed by a computer. By way of example, and not limitation,
computer readable media may comprise "computer storage media" and
"communications media."
[0069] "Computer storage media" includes volatile and non-volatile,
removable and non-removable media implemented in any method or
technology for storage of information such as computer readable
instructions, data structures, program modules, or other data.
Computer storage media includes, but is not limited to, RAM, ROM,
EEPROM, flash memory or other memory technology, CD-ROM, digital
versatile disks (DVD) or other optical storage, magnetic cassettes,
magnetic tape, magnetic disk storage or other magnetic storage
devices, or any other medium which can be used to store the desired
information and which can be accessed by a computer.
[0070] "Communication media" typically embodies computer readable
instructions, data structures, program modules, or other data in a
modulated data signal, such as carrier wave or other transport
mechanism. Communication media also includes any information
delivery media. The term "modulated data signal" means a signal
that has one or more of its characteristics set or changed in such
a manner as to encode information in the signal. As a non-limiting
example only, communication media includes wired media such as a
wired network or direct-wired connection, and wireless media such
as acoustic, RF, infrared, and other wireless media. Combinations
of any of the above are also included within the scope of computer
readable media.
[0071] Reference has been made throughout this specification to
"one embodiment," "an embodiment," or "an example embodiment"
meaning that a particular described feature, structure, or
characteristic is included in at least one embodiment of the
present invention. Thus, usage of such phrases may refer to more
than just one embodiment. Furthermore, the described features,
structures, or characteristics may be combined in any suitable
manner in one or more embodiments.
[0072] One skilled in the relevant art may recognize, however, that
the invention may be practiced without one or more of the specific
details, or with other methods, resources, materials, etc. In other
instances, well known structures, resources, or operations have not
been shown or described in detail merely to avoid obscuring aspects
of the invention.
[0073] While example embodiments and applications of the present
invention have been illustrated and described, it is to be
understood that the invention is not limited to the precise
configuration and resources described above. Various modifications,
changes, and variations apparent to those skilled in the art may be
made in the arrangement, operation, and details of the methods and
systems of the present invention disclosed herein without departing
from the scope of the claimed invention.
* * * * *