U.S. patent application number 12/969397 was filed with the patent office on 2011-08-25 for presentation of a web-based visual representation of a structured data solution.
This patent application is currently assigned to MICROSOFT CORPORATION. Invention is credited to Dipanjan Ghosh, Ashvin J. Mathew, Rajagopalan Badri Narayanan, Preethi Ramarathinam.
Application Number | 20110208786 12/969397 |
Document ID | / |
Family ID | 44477389 |
Filed Date | 2011-08-25 |
United States Patent
Application |
20110208786 |
Kind Code |
A1 |
Ghosh; Dipanjan ; et
al. |
August 25, 2011 |
PRESENTATION OF A WEB-BASED VISUAL REPRESENTATION OF A STRUCTURED
DATA SOLUTION
Abstract
Information from a business application system, such as an ERP
system, may be published to a business application user-generated
web page for display to an end user and for collecting information
from an end user to make available for download into the business
application system. The user-generated web page may be defined as a
web-based visual representation of a structured data solution,
which may define data, data presentation, and data binding metadata
for enabling a solution scenario, such as vendor enrollment,
sourcing, time entry, job listings, vendor-managed inventory, sales
lead capture, purchase order/invoicing, service contract renewal,
and customer support requests, and the like. Business application
users may be enabled to connect with potential and existing
customers, partners, and vendors from within the business
application system via the web-based visual representation, and
additionally, may capture interactions directly into the business
application system without IT dependency.
Inventors: |
Ghosh; Dipanjan; (Redmond,
WA) ; Mathew; Ashvin J.; (Kirkland, WA) ;
Narayanan; Rajagopalan Badri; (Redmond, WA) ;
Ramarathinam; Preethi; (Redmond, WA) |
Assignee: |
MICROSOFT CORPORATION
Redmond
WA
|
Family ID: |
44477389 |
Appl. No.: |
12/969397 |
Filed: |
December 15, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61307054 |
Feb 23, 2010 |
|
|
|
Current U.S.
Class: |
707/805 ;
707/E17.005 |
Current CPC
Class: |
G06Q 10/10 20130101;
G06Q 10/06 20130101; G06F 40/174 20200101 |
Class at
Publication: |
707/805 ;
707/E17.005 |
International
Class: |
G06F 17/30 20060101
G06F017/30 |
Claims
1. A method of presenting a web-based structured data solution
based on an associated business application; comprising: receiving
a request for generating a designated web-based structured data
solution with which data may be communicated to a business
application from a remote end user; providing a template associated
with the designated web-based structured data solution for
generation of a web page presentation for the web-based structured
data solution; identifying via the template one or more data types
associated with the business application, each of the one or more
data types being associated with an end user input data type;
receiving via the template an association of the identified one or
more data types with corresponding one or more data fields in a
web-based structured data solution template so that data entered
into any of the one or more data fields in the web page
presentation for the web-based structured data solution will be
associated with corresponding one or more identified data types
associated with the business application; generating the web page
presentation for the web-based structured data solution for
presenting to one or more end users via the Internet; structuring
the web page presentation of the web-based structured data solution
according to a structuring language for presenting the generated
web page presentation via the Internet; and displaying the web page
presentation of the web-based structured data solution as a web
page accessible by end users via the Internet.
2. The method of claim 1, wherein providing a template associated
with the designated web-based structured data solution includes
providing a template having one or more fields for associating with
the one or more identified data types associated with the business
application.
3. The method of claim 2, wherein providing a template associated
with the designated web-based structured data solution includes
providing a template having one or more visual elements to be
displayed in a displayed form of the web page presentation.
4. The method of claim 3, wherein providing a template associated
with the designated web-based structured data solution includes
providing a template having one or more textual semantics for
aiding an end user of a displayed form of the web page presentation
to provide end user data to the structured data solution for one or
more of the identified one or more data types.
5. The method of claim 4, wherein providing a template associated
with the designated web-based structured data solution includes
providing a visual image of the template to allow a developer of
the web-based structured data solution to preview how a displayed
form of the web page presentation will be presented when displayed
to one or more end users.
6. The method of claim 1, further comprising receiving one or more
data entries into one or more data fields displayed in the
web-based presentation of the web-based structured data
solution.
7. The method of claim 6, further comprising passing the one or
more data entries from the data fields displayed in the web-based
presentation of the web-based structured data solution to the
business application and storing the one or more data entries in
association with one or more of the identified one or more data
types associated with the business application.
8. The method of claim 1, wherein identifying one or more data
types associated with the business application includes identifying
one or more data types for which data is required in association
with a designated structured data solution.
9. The method of claim 8, further comprising generating the
designated structured data solution such that data may be received
for each of the identified data types.
10. The method of claim 1, wherein receiving via the template an
association of the identified one or more data types with
corresponding one or more data fields in a web-based structured
data solution template further comprises receiving an association
of a given data type with a corresponding given data field inside a
grid in a web-based structured data solution template so that the
given data field inside the grid is replicated in the web-based
structured data solution as many times as required to receive data
entries bound to the given data type via the given data field and
received via the presentation of the web-based structured data
solution for the given data field.
11. The method of claim 10, wherein during runtime of the web-based
structured data solution, generating a table in the presentation of
the web-based structured data solution for the given data field,
the table comprising one or more rows associated with one or more
replicated data fields bound to the given data type.
12. A computer readable medium having computer executable
instructions which when executed by a computer perform a method of
presenting a web-based structured data solution based on an
associated business application; comprising: receiving a request
for generating a designated web-based structured data solution with
which data may be communicated to a business application from a
remote end user; providing a template associated with the
designated web-based structured data solution for generation of a
web page presentation for the web-based structured data solution,
the template having one or more fields for associating with the one
or more identified data types associated with the business
application; identifying via the template one or more data types
associated with the business application for which data is required
in association with a designated structured data solution, each of
the one or more data types being associated with an end user input
data type; receiving via the template an association of the
identified one or more data types with corresponding one or more
data fields in a web-based structured data solution template so
that data entered into any of the one or more data fields in the
web page presentation for the web-based structured data solution
will be associated with corresponding one or more identified data
types associated with the business application; generating the
designated structured data solution such that data may be received
for each of the identified data types; generating the web page
presentation for the web-based structured data solution for
presenting to one or more end users via the Internet; structuring
the web page presentation of the web-based structured data solution
according to a structuring language for presenting the generated
web page presentation via the Internet; and displaying the web page
presentation of the web-based structured data solution as a web
page accessible by end users via the Internet.
13. The computer readable medium of claim 12, wherein providing a
template associated with the designated web-based structured data
solution includes providing a template having one or more visual
elements to be displayed in a displayed form of the web page
presentation.
14. The computer readable medium of claim 13, wherein providing a
template associated with the designated web-based structured data
solution includes providing a template having one or more textual
semantics for aiding an end user of a displayed form of the web
page presentation to provide end user data to the structured data
solution for one or more of the identified one or more data
types.
15. The computer readable medium of claim 14, wherein providing a
template associated with the designated web-based structured data
solution includes providing a visual image of the template to allow
a developer of the web-based structured data solution to preview
how a displayed form of the web page presentation will be presented
when displayed to one or more end users.
16. The computer readable medium of claim 12, wherein receiving via
the template an association of the identified one or more data
types with corresponding one or more data fields in a web-based
structured data solution template further comprises receiving an
association of a given data type with a corresponding given data
field inside a grid in a web-based structured data solution
template so that the given data field inside the grid is replicated
in the web-based structured data solution as many times as required
to receive data entries bound to the given data type via the given
data field and received via the presentation of the web-based
structured data solution for the given data field.
17. The computer readable medium of claim 16, wherein during
runtime of the web-based structured data solution, generating a
table in the presentation of the web-based structured data solution
for the given data field, the table comprising one or more rows
associated with one or more replicated data fields bound to the
given data type.
18. A system for presenting a web-based structured data solution
based on an associated business application; comprising: a
distributed cloud computing system operative to receive a request
for generating a designated web-based structured data solution with
which data may be communicated to a business application from a
remote end user; to provide a template associated with the
designated web-based structured data solution for generation of a
web page presentation for the web-based structured data solution,
the template having one or more fields for associating with the one
or more identified data types associated with the business
application; to receive an identification via the template one or
more data types associated with the business application, each of
the one or more data types being associated with an end user input
data type; to receive via the template an association of the
identified one or more data types with corresponding one or more
data fields in a web-based structured data solution template so
that data entered into any of the one or more data fields in the
web page presentation for the web-based structured data solution
will be associated with corresponding one or more identified data
types associated with the business application; to generate the web
page presentation for the web-based structured data solution for
presenting to one or more end users via the Internet; to structure
the web page presentation of the web-based structured data solution
according to a structuring language for presenting the generated
web page presentation via the Internet; and to display the web page
presentation of the web-based structured data solution as a web
page accessible by end users via the Internet.
19. The system of claim 18, the distributed cloud computing system
being further operative to receive an association of the identified
one or more data types with corresponding one or more data fields
in a web-based structured data solution template further comprises
receiving the association of the one or more data types with
corresponding one or more data fields in a web-based structured
data solution template so that data entered into any of the one or
more data fields may be received by the business application and
may be integrated with the business application in association with
the one or more identified data types.
20. The system of claim 18, the distributed cloud computing system
being further operative to receive one or more data entries into
one or more data fields displayed in the web-based presentation of
the web-based structured data solution; and to pass the one or more
data entries from the data fields displayed in the web-based
presentation of the web-based structured data solution to the
business application and storing the one or more data entries in
association with one or more of the identified one or more data
types associated with the business application.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims benefit under 35 U.S.C. .sctn.119(e)
of U.S. Provisional Patent application Ser. No. 61/307,054 titled
"Sites" and filed on Feb. 23, 2010, and is related to U.S. patent
application Ser. No. 12/969,170, Attorney Docket No.
14917.1491USU1/329330.01, titled "Data Binding For A Web-Based
Visual Representation Of A Structured Data Solution," filed on Dec.
15, 2010, and U.S. patent application Ser. No. 12/969,310, Attorney
Docket No. 14917.1491USU2/329331.01, titled "Web-Based Visual
Representation Of A Structured Data Solution," filed on Dec. 15,
2010, the entirety of each of which is incorporated by reference
herein.
BACKGROUND
[0002] Small and large businesses, educational systems, leisure
systems and many other entities often operate computer-based
information management systems that integrate many types of data
across many facets of operation, such as, business planning,
marketing and sales, manufacturing, inventory control, finance,
human resources, student records management, faculty and personnel
management, and the like. Such entities typically have to
communicate with a variety of other entities, including sending,
receiving and processing data. For example, a manufacturing
business may need to communicate and pass data to and from vendors,
customers, professional services organizations, and the like. In
order to pass data and information to and from such disparate
entities, such a business or entity often must develop and operate
an elaborate operation of communications personnel, data processors
and computing systems for sending, receiving, entry and processing
of such information that is important to the operation of the
business or entity.
[0003] Enterprise resource planning (ERP) is a business management
system that integrates multiple facets of a business. Many
businesses utilize an integrated computer-based system to implement
ERP in business activities such as inventory control, order
tracking, customer service, finance, and human resources, and the
like. While ERP software systems are becoming an integral part of
how many businesses and organizations conduct business, current ERP
software systems do not provide a way for ERP software systems
users to connect with potential or existing customers, partners and
vendors from within the application.
[0004] It is with respect to these and other considerations the
present invention has been made.
SUMMARY
[0005] Embodiments of the present invention solve the above and
other problems by enabling a user of a business application (herein
referred to as a business application user) to connect with an end
user using a web page to display information published from the
business application and associated data repositories and to
collect information and make it available for download into the
business application. A structured data solution in the form of a
grouping of metadata, referred to as a solution, defines data, data
presentation, and data binding for enabling a scenario. An example
solution scenario may include a web page for allowing an end user
to enter purchase order data for use by a manufacturing business
sales function. The data may describe types of entities that may be
published from the business application. The presentation metadata
may define templates that describe a layout, theme, and controls
that may be displayed in a page. The presentation metadata may also
define how pages may be linked together to form a series of
connected solution scenarios. The binding metadata may define the
association of data to controls. At run time, the metadata may
ensure that web-based structured data solutions in the form of web
pages displayed to an end user conform to relationships and
constraints established by a structured solution file.
[0006] According to embodiments, the business application
user-entered data, the data controlling the presentation of the
data, and the data associated with binding business application
user-entered data to the presentation of the web-based structured
data solution (web page) may be utilized for receiving end
user-entered data from the web page and for publishing the received
end user-entered data back into the business application. The
storage metadata, presentation metadata, and the binding metadata
may all be structured in a way that allows a business or
organization to efficiently utilize the data received through the
web-based solution. The web-based structured data solutions may be
enabled through data binding between business applications and
associated data repositories and web-based structured data
solutions (web pages/sites). Data binding allows establishing
relationships between the business application and associated data
repositories (e.g., ERP system). Web-based structured data
solutions may be presented as web pages or sites based on the roles
of end users accessing the web pages or sites. That is, the
presentation of the web pages or sites for allowing end user
interaction with the business applications and associated data may
be tailored to the roles of the end users (e.g., salespersons,
purchasers, human resources managers, etc.).
[0007] The details of one or more embodiments are set forth in the
accompanying drawings and description below. Other features and
advantages will be apparent from a reading of the following
detailed description and a review of the associated drawings. It is
to be understood that the following detailed description is
explanatory only and is not restrictive of the invention as
claimed.
[0008] This summary is provided to introduce a selection of
concepts in a simplified form that are further described below in
the detailed description. This summary is not intended to identify
key features or essential features of the claimed subject matter,
nor is it intended as an aid in determining the scope of the
claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The accompanying drawings, which are incorporated in and
constitute a part of this disclosure, illustrate various
embodiments of the present invention. In the drawings:
[0010] FIG. 1 is a simplified block diagram of a system
architecture for generating, binding, publishing, and synchronizing
a web-based structured data solution with a business application
system.
[0011] FIG. 2 is a data model of relational data storage.
[0012] FIG. 3 is a data model of site hierarchy.
[0013] FIG. 4 is a data model of page layout.
[0014] FIG. 5 is a data model of page data binding.
[0015] FIG. 6A is simplified block diagram illustrating page
workflow.
[0016] FIG. 6B is a simplified block diagram illustrating process
workflow.
[0017] FIG. 7 is a more detailed simplified block diagram of the
system architecture of FIG. 1.
[0018] FIG. 8 is an illustration of a UI within which a business
application user may select a page template.
[0019] FIG. 9 is an illustration of a UI wherein a business
application user may enter page details.
[0020] FIG. 10 is an illustration of a page template within which a
business application user may enter data and presentation data and
bind fields.
[0021] FIG. 11 is an illustration of an email containing a link to
a business application user-created web-based structured data
solution.
[0022] FIG. 12 is an illustration of a page of a published
web-based structured data solution.
[0023] FIG. 13 is an illustration of a page of a published
web-based structured data solution within which an end user may
input data which will be synchronized with a business application
system.
[0024] FIG. 14 is an illustration of a UI within a business
application system showing statuses of various solution
scenarios.
[0025] FIG. 15 is a logical flow diagram illustrating a method for
generating, binding, publishing, and synchronizing a web-based
structured data solution with a business application system.
[0026] FIG. 16 is a simplified block diagram of a system including
a computing device with which embodiments of the invention may be
practiced.
DETAILED DESCRIPTION
[0027] Embodiments of the present invention solve the above and
other problems by providing for information connection between
businesses or other entities and their customers, vendors or other
information exchange partners. Connection between business
applications and associated data repositories operated by the
businesses or other entities and their customers, vendors and other
information exchange partners is provided through web pages bound
to the business applications and associated data repositories via a
distributed computing and communications system (also known as the
"cloud"). For example, a web page may be published with data entry
fields that are bound back to a manufacturing company data
management application that allows a vendor of the manufacturing
company to enter raw material supply data into the web page so that
the entered supply data is passed directly back to the
manufacturing company's data management application without the
need for the manufacturing company to utilize data entry personnel
or to write specialized data management code for the example data
exchange. In addition to exchange of data between the entities,
information helpful to the relationship between the entities may
also be exchanged such as advertising information, contact
information, help content and the like.
[0028] According to one embodiment, a transformation of metadata
from a business application and associated data repository and a
visual representation in the form of a published web page allows
for a receiving of data collected via the published web page, and a
transformation of received data back into a format for
synchronization with the business application and associated data
repository. Templates may be provided for creating and managing web
pages and web sites within a business application system (e.g., ERP
system). A business application user may create such pages or sites
as a landing page for a marketing campaign, a dedicated request for
quote site to receive quotes from business partners, a page or site
for product registration information and customer feedback, a page
or site for human resources information for job recruiting and/or
pages or sites for communicating and connecting with community or
other end users.
[0029] Information from a business application system, such as an
ERP system, may be published to a business application
user-generated web page for display to an end user, and for
collecting information from an end user to make available for
download into the business application system. The user-generated
web page may be defined as a web-based structured data solution,
which may define data, web page presentation, and data binding
metadata for enabling a given solution scenario. An example
solution scenario may include a web page for allowing an end user
to enter purchase order data for use by a manufacturing business
sales function. The data, web page presentation, and data binding
metadata may be structured in a way that allows an organization to
efficiently utilize information received through the web-based
structured data solution.
[0030] A business application user may enable a connected scenario
on the web without information technology (IT) dependency. That is,
the web-based structured data solutions may be created without the
user having to write code. Business application users may connect
with potential and existing customers, partners, and vendors from
within the business application system and may capture interactions
directly into the business application system.
[0031] According to another embodiment, the web-based structured
data solutions may be enabled through data binding between business
applications and associated data repositories and web-based
structured data solutions (web pages/sites). Data binding allows
establishing relationships between the business application and
associated data repositories (e.g., ERP system) and corresponding
data objects or fields in the web-based structured data solution.
Data binding can be grouped into both instance binding and metadata
binding. Instance binding involves binding the web page to data
associated with the business application dynamically as data
associated with the business application is created or changed.
Metadata binding establishes a set of relationships that dictates
the behavior of the instance binding. Metadata binding thus is
targeted to the solution developers, while the instance binding is
targeted to the end users of the business application. According to
embodiments, data binding also enables a synchronization interface
for maintaining binding between two disparate systems.
[0032] According to another embodiment, web-based structured data
solutions may be presented as web pages or sites based on the roles
of end users accessing the web pages or sites. That is, the
presentation of the web pages or sites for allowing end user
interaction with the business applications and associated data may
be tailored to the roles of the end users (e.g., salespersons,
purchasers, human resources managers, etc.). Business application
(e.g., ERP systems) users often work with data intensive user
interfaces, and the information that they collect from their
vendors/suppliers or other partners may be a subset of the data
that they typically work with. As a result, the business
application user needs flexibility with respect to defining what
data to display and how to display the data to their customers,
vendors, partners or the like. Thus, users have complete control
over the data to be displayed and the presentation of the data to
their end users. This enables information to be displayed and
presented in a format that is tailored to the end user.
[0033] For purposes of illustration, consider an example business
desiring to publish a web-based page for allowing individuals to
apply for a position within the business. The organization may have
data within its business application system (e.g., ERP system)
associated with the specified position, such as a job title, job
description, minimum qualifications, etc. According to an
embodiment of the present invention, a solution, such as a
web-based employment application, may be constructed by a business
application user, such as a human resources (HR) agent of the
organization. Selected data within the business application system
may be bound to the solution, such that when the employment
application web page(s) is/are published, the selected data from
the business application system may be presented. Potential
applicants may access the web-based employment application, view
the published selected data from the business application system,
and may apply for the specified position online. The web-based job
application may be comprised of a web-based presentation that may
have fields for allowing an applicant to enter specified data, such
as his/her name, address, phone number, qualifications, years of
experience, attach a resume, etc. The web-based job application may
have a variety of images or other company information, such as a
company logo, information about the company, a link to the
company's website, etc., that may be of value to an applicant.
Additionally, the web-based job application may have various
selectable functionality controls for allowing potential applicants
to submit entered data back to the organization or for otherwise
manipulating entered data. As should be appreciated, the foregoing
example is but one of a vast number of solutions for which
embodiments of the present invention may be utilized.
[0034] The following description refers to the accompanying
drawings. Whenever possible, the same reference numbers are used in
the drawings and the following description to refer to the same or
similar elements. While embodiments of the invention may be
described, modifications, adaptations, and other implementations
are possible. For example, substitutions, additions, or
modifications may be made to the elements illustrated in the
drawings, and the methods described herein may be modified by
substituting, reordering, or adding stages to the disclosed
methods. Accordingly, the following detailed description does not
limit the invention. Instead, the proper scope of the invention is
defined by the appended claims.
[0035] Referring now to the drawings, in which like numerals
represent like elements through the several figures, aspects of the
present invention and the exemplary operating environment will be
described. While the invention will be described in the general
context of program modules that execute in conjunction with an
application program that runs on an operating system on a personal
computer, those skilled in the art will recognize that the
invention may also be implemented in combination with other program
modules.
[0036] Generally, program modules include routines, programs,
components, data structures, and other types of structures that
perform particular tasks or implement particular abstract data
types. Moreover, those skilled in the art will appreciate that the
invention may be practiced with other computer system
configurations, including hand-held devices, multiprocessor
systems, microprocessor-based or programmable consumer electronics,
minicomputers, mainframe computers, and the like. The invention may
also be practiced in distributed computing environments where tasks
are performed by remote processing devices that are linked through
a communications network. In a distributed computing environment,
program modules may be located in both local and remote memory
storage devices.
[0037] FIG. 1 is a simplified block diagram of a system
architecture within which embodiments of the present invention may
be implemented. Referring now to FIG. 1, a business application 105
is illustrated. Many organizations and businesses integrate
multiple facets of their organization/business into a single
computer-based system, such as an enterprise resource planning
(ERP) system. An organization/business may utilize an ERP system
for various business activities across the various workloads of a
business (e.g., manufacturing, supply chain management, financials,
procurement, project management, human resources, customer
relationship management, data services, access control, as well as
other business activities, etc.). For example, a business
application 105, such as an ERP system, may consolidate business
operations of an organization/business, such as manufacturing,
supply chain management, financial systems/data, project
management, human resources, customer relationship management, data
services, and access control, into a uniform and enterprise-wide
system environment. A business application 105, such as an ERP
system, may reside on a centralized server, or may be distributed
across remote processing devices that are linked through a
communications network.
[0038] Organizations and businesses may connect with customers
and/or other remote entities over a distributed computing and
communications network/system, such as the Internet and/or via one
or more third party hosted services. Such third party hosted
services are referred to herein as the "cloud" 110. The cloud 110
may be generally described as a set of services and technologies
that enable a delivery of computing services over the Internet. An
example of a cloud services operating system is WINDOWS AZURE by
MICROSOFT CORPORATION of Redmond, Wash. Business applications 105
may be extended from on-premise to the cloud 110. Oftentimes in the
course of doing business, there may be various logical processes in
which communication with other entities, such as other people,
companies, organizations, as well as information data interchange
networks, etc., is necessary. Some of the logical processes may
start within a business application 105, but may end in the cloud
110 or may be communicated through the cloud.
[0039] E-commerce is an example of a transaction that may go
through one or more intermediate companies in the cloud 110 to be
completed. For example, a merchant may showcase a product intended
to be sold on a website. A customer may visit the website, choose
the product, and add the product to a shopping cart. A connection
to a transaction server may be made, wherein the customer may give
credit card or other payment information to purchase the product.
The merchant's transaction server may connect with a third party
credit card processing server to check if the customer has
sufficient funds to pay for the purchased product. The transaction
may be transparent to the end customer who only knows that his/her
transaction has taken place. Each of the various transactions,
processing steps and data storage actions may take place at one or
more remote sites together or remote from each other where the
collection of the remote computing activities may be referred to as
existing and/or operating in the "cloud."
[0040] Embodiments of the present invention provide for business
application users 102 to enable connected solution scenarios on the
web that do not require IT dependency. Examples of types of
solution scenarios that may be enabled include, but are not limited
to, vendor enrollment, sourcing, time entry, job listings, vendor
managed inventory, sales lead data capture, purchase
order/invoicing, service contract renewal, and customer support
requests. The connected solution scenarios may enable business
application users 102 to connect, share, and capture business
information from customers, vendors, and partners. Connection and
sharing may be accomplished by creation and publication of
web-based visual representations of a structured data solution
(hereafter "web pages") 115 that publicly expose information stored
and utilized by an organization and made available via a business
application 105. This may be done by transforming metadata from a
business application 105 to a visual representation (web page 115)
of a structured data solution 120 on the cloud 110. Information may
then be captured via the web-based visual representation 115 of the
structured data solution 120, and made subsequently available
within the business application 105 for immediate processing and
follow ups. Referring again to the example described above of an
online job application, the published visual representation of the
structured data solution (web page) 115 would be the job
application web page.
[0041] According to embodiments, metadata may be required to enable
a solution scenario, such as an online job application. A
structured grouping of metadata required for a solution scenario
may be referred to as a solution 120. A solution 120 may be
generally described as a packaging of declarative constructs,
encompassing metadata, data, and visual elements. As a declarative
statement, a solution 120 may declare a consummation of metadata, a
binding of the metadata to a visual element 115, and how the data
is presented as well as brought back into a business application
system 105. A solution 120 may be comprised of data metadata 125,
which is a structured description of the types of entities that may
be published. A solution 120 also may be comprised of presentation
metadata 130, which may be a structured description of the
presentation of the data 125 in the form of the web page 115 and
may address how information may appear visually and
contextually.
[0042] In addition, the solution 120 also may be comprised of data
binding metadata 135 which may allow for establishing relationships
between a business application system 105 (and associated data
repositories) and associated data and functionalities presented in
a web page 115 via the cloud 110. Data binding 135 may include
instance binding and metadata binding. While instance binding
involves binding a web page 115 to business application data
dynamically as data is created and/or changed, metadata binding may
establish a set of relationships that may dictate the behavior of
instance binding. Metadata binding may be described as the
transformation of metadata from a business application 105 to a web
page 115 via the cloud 110, which may be described declaratively
through a solution 120. The data binding metadata 135 may declare
not only how data is presented to an end user 104, but also how
data is brought back into a business application system 105.
[0043] According to embodiments, a generic framework may be
utilized to implement model-based applications on the cloud, which
may satisfy three primary requirements of a business application
using abstract models, including relational data storage, data
presentation workflow, and data synchronization with other systems
105 (e.g. backend ERP system). Each model may be described using
declarative metadata structures (e.g., representational XML),
wherein the metadata may be organized in layers in the form of
self-contained packages, referred to as a solution 120. As
illustrated in FIG. 2, the relational data storage may be expressed
as an entity relationship (ER) model based on entities and
relationships, wherein certain business logic semantics may be
expressed through implicit structural constraints (e.g., attribute
constraint and first-order relational constraint). The relational
data storage model may provide for storage and retrieval of binary
large objects (BLOBs), which may be used for storing documents and
images. The relational data storage model may support variable
length collections in attributes and relationships.
[0044] According to embodiments, the data presentation workflow 130
may address what information may be presented to an end user, as
well as how the information appears visually and contextually. Data
presentation 130 may be comprised of four sub-areas: layout,
data-binding 135, workflow, and site hierarchy. As illustrated in
FIG. 3, site hierarchy may address how information is organized
within a context of various business flows, and may be broken into
four concepts: web page 115, page group, page type, and page
template 170. According to embodiments, a web page 115 is a
browsable endpoint that may display pre-determined information and
that may be used to collect inputs from an end user 104.
[0045] Web pages 115 are the leaves in the site hierarchy 300. A
page group 310 is a specific grouping of pages 115 which gives some
contextual semantic to the collection. Page groups 310 may be part
of other page groups, allowing a nested hierarchical structure. For
example, page groups 310 may be different business flow areas
(e.g., procurement, marketing, etc.). A page type 315 is another
grouping of pages 115 based on web page behavior canonicalization
or standardization where data that may have more than one possible
visual representation may be standardized to on page type 315. Page
types 315 may define a general presentation behavior (e.g., a Sales
Lead Capture page or a Contact Us page) and thus enforce certain
design constraints. Each web page 115 may belong to one and only
one page type 315, and thus conforms to the constraints of the
type. A page template 170 is a starting point for creating a web
page 115. Page templates 170 may define the same presentation
behavior as the web page 115; however, they are not browsable
endpoints, and may only be used while creating a new page.
[0046] Referring now to FIG. 4, the page layout 400 addresses how
data is presented inside a web page 115, and may be defined by
three building blocks: controls, container controls, and composite
controls. A control 405 is a presentation entity with specific
rendering and user-interaction behavior (e.g., textbox, labels,
dropdowns, etc.). A container control 410 is an organized
collection of child controls with various layouts, and a composite
control 415 is a reusable presentation segment (e.g., address
block). The page layout 400 may support nested containers, stack
layouts 420 and grid layouts 425, and theme-based styling.
[0047] Referring now to FIG. 5, page data binding 135 may address
what data is presented inside a web page 115, and may be described
in terms of entity data source(s) 505, attribute binding 510, and
relationship binding 515. The entity data source 505 is a
page-design-time abstraction of the entity record that the web page
115 will be bound to at run-time. A web page 115 may have more than
one data source, and may form an acyclic graph through the
relationships. A data binding graph 135 may conform to the defined
entity metadata structure. Attribute binding 510 may establish a
linkage between the controls 505 and the nodes in the data source
graph. Attribute binding 510 may specify which properties of a
bound record to be displayed and captured in a control 505.
Relationship binding 515 is a relational edge between two data
source nodes in the data binding graph 135. Relationship binding
515 may define how bound records are related with each other. A
data binding engine may load the binding graph 135 dynamically when
the web page 115 renders in a specific binding context, and the
modified part of the graph (i.e., the records) may be committed
back into the database upon user submission.
[0048] A workflow is a chain of presentation states and the
controller logic governing transitions between the states.
Workflows may be described using declarative structures. Workflows
may be exposed in two levels of complexity with shared knowledge
from one to the other. A simple form of a workflow is illustrated
in FIG. 6A, and may be contained inside a single web page 115. A
web page 115 may have one or more presentation states called views
605. Each view 605 may be defined using the layout 500 and data
binding 135 structures described above. A view 605 may describe how
a web page 115 looks and what data is shown in a particular web
page state. The page controller 610 is the workflow inside the web
page 115, and may define a chaining of views 605 using an
event-driven and/or rule-based transition model.
[0049] As illustrated in FIG. 6B, a higher level and more powerful
workflow is illustrated as a process 615. A process 615 may be
composed of pages 115 chained in a similar way as views 605 in the
respective web pages 115 (i.e., rule-based or event-driven). A
process controller 625 is a chaining logic in the process 615, and
may enable advanced solution scenarios, such as master-details
navigation, portals (hub-like navigation to multiple pages),
etc.
[0050] Both page and process controllers 610,625 may expose many
internal and/or external events in each state. Process internal
events may be bound by components inside the process 615 (e.g.,
process controller 625, page views 605, page controllers 610,
etc.). Page internal events may similarly be bound by the
components inside the web page 115. External events may be bound to
the outside of the process 615 or web page 115. For example, an
external event may be bound to a communication channel (e.g.,
Service Bus) to be triggered when a remote calculation completes
and the results are made available.
[0051] Embodiments of the present invention may provide for a data
synchronization model, wherein every storage entity record may have
an auto-generated version number, and any change to the record may
increment the version number. The synchronization model may be
change list-based, wherein a list of all changes from a specified
marker version number may be provided. The model may be
type-agnostic, wherein the change list uses the metadata structure
to describe the changes to the entities. Synchronization behaviors
or contracts (e.g., frequency, record selection filter, etc.) may
be described to connected clients through synchronization policies.
A client may be required to adhere to the synchronization policies
while performing a synchronization operation with the platform of
the present invention.
[0052] According to embodiments, bidirectional data synchronization
is provided and includes conflict detection and resolution in order
to keep the backend data in the business application 105 (e.g., ERP
system) and the web page 115 published via the cloud 110 in
synchronization. When data is modified in the business application
105, it may be automatically received by a synchronization channel
and may be pushed out to the cloud 110 and solution 120 for
synchronizing the modified data with the web page 115. In the
reverse, when data is modified at the solution 120 or web page 115,
the modified data may be automatically received by a
synchronization channel for synchronizing the modified data with
the business application 105. When the same data element is
modified both in the business application 105 and the solution 120
or web page 115, a conflict may result because it may not be
possible to determine which of the business application or solution
120 or web page 115 is the master source for determining which
modification should control, and thus, a conflict may result. In
some cases (e.g., for certain data-types) a user 102, 104 may cause
automatic resolution by instructing one of the sides to be the
master source of the conflicting modifications. In other cases, the
user may check a synchronization log and resolve the conflicts
manually by merging data from both sides appropriately. As should
be appreciated, change tracking at both sides may be performed for
comparing versions of data at each side and for performing the
conflict detection and resolution described herein. In addition,
users at both ends of the system, including developers of the
solution 120, may be automatically notified of modifications and/or
polled for input as to change or conflict resolution.
[0053] According to embodiments, a metadata-driven application
model may be exposed. As can be appreciated, as application
solution scenarios may become complicated, the metadata may be
large. Oftentimes, solution scenarios may be developed by various
providers, but may be installed together to work as a single
end-to-end solution. Accordingly, embodiments provide for a way to
package metadata into solutions 120. A solution package 120 may
include an identity, a public contract, and metadata. A solution
120 may have a valid identification, including a name, unique
identifier, version, provider name, optional public key, and
optional description.
[0054] A public contract may describe how a solution interacts with
other components (e.g., other solutions) in a system. A public
contract may include a schema contract, which may describe what
other entity metadata may be required in a data-storage model in
order to make a solution functional. The schema-contracts from
other installed solutions 120 may be combined by the platform, and
may be propagated to the synchronization interfaces. A solution
public contract may also include a dependency contract, which may
describe other solutions 120 that the particular solution is
referencing. A solution 120 may be disabled if a current state of a
system does not satisfy its public contract. The metadata component
may contain all the metadata structures defining the presentation
components (e.g., site hierarchy 300, page templates 170,
workflows, etc.) and behavior of a solution 120. The metadata may
be required to adhere to a public contract as previously declared
by a solution. A solution 120 may be digitally singed by a public
key infrastructure (PKI)-based certificate to avoid tampering and
to preserve integrity. If a solution 120 is signed, the identity of
the solution may be required to include a public key of a signer
certificate.
[0055] As described above, embodiments provide for a data binding
abstraction platform, wherein data from a business application
system 105 may be transformed into a format utilizing a structured
definition, such as an extensible markup language (XML) data
structure. An XML binding schema may interpret the data in terms of
presenting the data to an end user 104, so that data may be
transformed from a business application system 105 to a visual
representation 115 on the cloud. As should be appreciated, XML is
just one way of representing the transformation of data and
metadata between a business application system 105 and the cloud
110. The transformation of data allows for binding the data as
context, and the transformation of metadata allows for determining
the type of data that can be bound for the presentation
aspects.
[0056] As described above, embodiments of the present invention
provide for data entered into a web-based visual representation of
a structured data solution 115 to be synchronized back into a
business application 105. Data within an organization's business
application system 105 may be transformed into a visual
representation 115 within which end user-entered data may be
received and then correspondingly transformed into a format so that
the end user-entered data may be synchronized with the business
application system and utilized as needed. Data binding metadata
135 may define directional binding; that is, defining what data may
be incoming or outgoing, how a data graph should be populated with
data from a business application 105, as well as how populated data
on a web page 115 may go back into the data graph.
[0057] Referring now to FIG. 7, various workloads are illustrated
within a business application system 105, such as an ERP system. A
workload may be a facet or operation of a business, such as, but
not limited to, manufacturing 705, supply chain management 710,
financials 715, procurement 720, project management 725, human
resources 730, customer relationship management 735, data services
740, access control 745, as well as other business activities 750.
Within each workload 705, 710, 715, 720, 725, 730, 735, 740, 745,
750 various information may be stored. As should be appreciated the
example business workloads are for purposes of example only and are
not limiting of the vast number of organization functions or
processes that may associated with a web based solution page 115 as
described herein.
[0058] For example, a procurement 720 workload may comprise such
data such as vendor information 755, request for quotes (RFQs) 760,
purchase requisitions 765, etc. A business application user 102,
such as a procurement agent, may wish to generate a scenario, where
he/she may wish to publish a new RFQ for requests for quotes or
proposals from various vendors via an RFQ web page 115. As
illustrated in FIG. 8, according to embodiments, various templates
170 may be provided for creating a new page. As illustrated, a
preview and description 815 of each provided template 170 may be
displayed. A template 170 may be provided by a solution developer
such as an independent software vendor (ISV), from a software
publisher, or from any user able write code to generate a template.
A page template 170 may be utilized as a starting point for
creating a web page 115. A page template 170 may define
presentation behavior, may display predetermined information, and
may collect inputs from an end user 104. Referring back to the
example, the procurement agent may select and upload an RFQ
template 170 for building a web-based RFQ page.
[0059] As illustrated in FIG. 9, the business application user 102
may be prompted to enter page details, such as a page name 905 and
a page URL 910. That is, the user 102 may use page 900, illustrated
in FIG. 9, to start the process of building a web page 115 by
providing a name and page locator for the web page 115. Referring
to FIG. 10, a user interface 1000 may be provided with which a
business application user 102 may declare which data associated
with a business application 105 to include in the web page and to
bind to various data elements within the page. For example, data
elements, such as the RFQ number 1005, RFQ contact 1010, RFQ
submission end date 1015, delivery date 1020, and delivery address
1025, etc., may be bound to data elements within the business
application/system 105.
[0060] Declared data bindings may be saved as data binding metadata
135. Data may be transformed using a structured definition of the
data (e.g., XML) from the business application system 105 to a
visual representation 115 on the cloud 110. As illustrated in FIG.
10, data 125, such as a company logo, information about a company,
as well as other data within a company's database, may be bound to
a web page 115. Various functionalities may be provided for
allowing a business application user 102 to customize the
presentation appearance of a web page 115. For example, various
backgrounds, headers, footers, colors, or layout choices may be
available from which a business application user 102 may select. A
business application user 102 may edit data, add additional fields
to a template, as well as remove fields. Visual aspects of the page
may be saved as presentation metadata 130.
[0061] One or more end users (e.g., vendors) 104 to whom the
business application user 102 may want to share a web-based visual
representation of a structured data solution 115 may be selected or
entered. An end user 104 may be an individual or company who may be
an existing vendor, customer, applicant, or other entity whose
information may already be in the business application 105.
Alternatively, a web page 115 may be sent to potential vendors,
applicants, customers, or may be published publicly for an
undefined end user 104 to access. When a business application user
102 has finished entering the data he/she wants included on the
page, selecting fields in the business application 105 to which
he/she would like to be bound to fields in the page, customizing
the appearance of the page, and selecting or entering to whom
he/she would like to send the visual representation 115, the
solution 120 may published to the cloud 110.
[0062] According to embodiments, a URL to the web page 115 may be
generated, wherein end users 104 may access the web-based visual
representation of the structured data solution (web page 115). As
illustrated in FIG. 11, a message (e.g., email) 1100 may be sent to
an end user 104, which may contain a link 1105 to the visual
representation 115.
[0063] Once a solution 120 is published, an abstract representation
of data that is bound between a business application system 105 and
a web-based structured data solution 115 may be presented to an end
user 104. As illustrated in FIGS. 12 and 13, a web-based visual
representation of the structured data solution 115 may contain
fields 1205 in which an end user 104 may enter information. For
example, as illustrated in FIG. 12, a page may contain fields in
which to enter contact information 1205. Each field 1205 may be
bound to a field in the business application 105. Upon submission
by the end user 104, the information entered into each field 1205
in a web-based visual representation of the structured data
solution (web page) 115 may be published into the business
application 105 via data binding between the fields 1205 and
associated data objects in or associated with the business
application 105. According to embodiments, as illustrated in FIG.
13, a field 1305 may be provided for uploading a document, which
may be submitted to a business application user 102.
[0064] As should be appreciated, a number of solutions 120 and
associated web pages 115 may be developed and published for and
used from a given business application 105. For example, a given
business application user 102 may have developed and may be running
tens of web pages 115 at any given time covering tens of facets of
his/her business or organization workloads and/or functions. As
illustrated in FIG. 14, a user interface 1400 may be provided in
which a business application user 102 may view statuses of various
solutions 120. A notification (e.g., email, pop-up message, etc.)
may be provided when a status of a solution 120 changes. For
example, if an end user 104 responds to an RFQ, a pop-up message
1405 may be displayed. A business application user 102 may view
submitted data, and may make a status change. For example, a
procurement agent may accept or reject an RFQ, or may return it and
ask for additional information. The change of status may be
published to the web-based visual representation of the structured
data solution 115 so that the end user 104 may view the status and
may react accordingly. According to embodiments, presentation views
may be based on a status of the entity. That is, presentation of a
page may be designed by a business application user 102 so that for
a given status, the page may be presented in a specific way. For
example, if an RFQ has been accepted, the web-based visual
representation of the structured data solution 115 may be displayed
to the end user 104 with a "Congratulations!" text included.
[0065] Having described an operating architecture for and various
aspects of embodiments of the present invention, FIG. 15 is a
logical flow diagram illustrating a method for providing a
transformation of metadata between a business application 105 to a
web page 115 via the cloud 110, a receiving of data collected as a
part of that web page, and a transformation of received data back
into a format for synchronization with the business
application.
[0066] The method 1500 starts at OPERATION 1505, and proceeds to
OPERATION 1510, where a request for generating a web-based
structured data solution 120 that will be presented as a web-based
structured data solution and associated web page presentation 115
is received. A request for generating a solution 120 may occur when
a selection to enable a new scenario is made by a business
application user 102. As described above, a scenario that may be
enabled by a business application user 102 may include, but is not
limited to, vendor enrollment, sourcing, time entry, job listings,
vendor managed inventory, lead capture, purchase order/invoicing,
service contract renewal, and customer support requests. A variety
of selectable functionalities for creating a new scenario may be
provided within a UI from which a business application user 102 may
select.
[0067] Upon receiving a request to create a new scenario, at
OPERATION 1515, one or more templates 170 may be provided for
generating a web-based structured data solution 120. Using a
selected template, a developer of the web-based structured data
solution may identify one or more data types (e.g., name,
education, experience data types for an employment application
solution) associated with the business application where each of
the one or more data types will be associated with an end user
input data type. Identifying one or more data types associated with
the business application may include identifying one or more data
types for which data is required in association with a designated
structured data solution, for example, an employment application
structured data solution.
[0068] As described above, a template 170 may be defined by
presentation metadata 130. A template may provide a set of data,
semantics, for example textual statements (e.g., "Enter Your Name
Here"), and visual elements that a business application user 102
may manipulate. Various templates 170 may be provided for various
solution scenarios. For example, referring back to FIG. 8, a page
type may be selected based on a scenario for which a business
application user 102 may be creating. As illustrated in FIG. 8, the
business application user 102 has selected to create a new vendor
request for quote 305. Accordingly, various template 170 selections
are provided to the user 102 from which to choose. An image and
description 815 of provided templates 170 may be displayed to help
the user 102 select a desired template.
[0069] Upon selection of a template 170, the method 1500 proceeds
to OPERATION 1520, where business application user-entered data
125, presentation data 130, data-binding data 135 is received. The
one or more data types identified by the developer of the solution
may be associated with corresponding one or more data fields in a
web-based structured data solution template so that data entered
into any of the one or more data fields in a displayed form of the
web-based structured data solution will be associated with
corresponding one or more identified data types associated with the
business application. Association of the identified one or more
data types with corresponding one or more data fields in a
web-based structured data solution template may include receiving
the association of the one or more data types with corresponding
one or more data fields in a web-based structured data solution
template so that data entered into any of the one or more data
fields may be received by the business application and may be
integrated with the business application in association with the
one or more identified data types.
[0070] According to embodiments, a data field may appear inside a
repeater or a grid. Accordingly, the data field may be replicated
multiple times on a web page presentation depending on the actual
number of data entities to which it may be bound. That is, data may
be shown to the end user 104 via the web page 115 in a to format
which binds to a collection of same type of records in the business
application 105 instead of just one record. An example would be a
web page to show all the job listings in a company job site. The
binding may be described for a repeater in terms of a template row
which contains a representative set of controls and theft
respective bindings to the fields of a backend data entity. During
runtime, a determination may be made as to how many instances of
the data entity are to be loaded on the web page. Based on that
determination, a table may be generated with each row of the table
representing one data entity instance.
[0071] Information specified in the template 170 may be customized
and edited. Fields may be added, deleted, or modified according to
the business application user's 102 needs. Data elements may be
selected, and binding data 135 may be defined by the user 102.
Various fields may be defined for receiving information from an end
user 104. According to embodiments the template 170 associated with
the designated web-based structured data solution may have one or
more fields for associating with the one or more identified data
types associated with the business application. The template may
have one or more visual elements to be displayed in a displayed
form of the web page 115 presentation. Additionally, the template
may have one or more textural semantics (e.g., "Enter Education
Information Here") for aiding an end user of a displayed form of
the web page presentation to provide end user data to the
structured data solution for one or more of the identified one or
more data types. The template 170 may also provide a visual image
of the template to allow a developer of the web-based structured
data solution to preview how a displayed form of the web page
presentation will be presented when displayed to one or more end
users. A simplistic UI may be provided for page creation so that
business application users 102 may create structured data solutions
120 quickly and easily.
[0072] A business application user 102 may declare which data
elements from within a business application 105 he/she would like
to bind to elements within the web-based visual representation of
the structured data solution 120. Embodiments of the present
invention provide for declarations to be made by a business
application user 102, without the business application user
understanding how to write code. The user 102 may declare which
elements to bind, and may declare how he/she would like to be
presented.
[0073] According to embodiments, the data binding process may
include generating an instance of the web-based structured data
solution and binding the instance of the web-based structured data
solution to the associated business application so that any changes
to any of the one or more identified data types associated with the
business application are reflected in corresponding one or more
data fields in the instance of the web-based structured data
solution. One or more relationships may be generated between each
of the one or more data fields in the instance of the web-based
structured data solution and corresponding data types in the
associated business application for causing a reflection of any
changes to any of the one or more identified data types associated
with the business application in corresponding one or more data
fields in the instance of the web-based structured data solution. A
metadata may be associated with the one or more relationships
between each of the one or more data fields in the instance of the
web-based structured data solution and corresponding data types in
the associated business application for binding the one or more
relationships between the instance of the web-based structured data
solution and corresponding data types in the associated business
application.
[0074] In addition, a transformation of data received via the
instance of the web-based structured data solution may be performed
from a first form associated with the instance of the web-based
structured data solution to a second form associated with the
business application. For example data received via the web page
115 may be received according to one format or structuring language
(e.g., HTML), but the data may need to be transformed to another
format or structuring language (e.g., XML) for use by the
associated business application. The established transformation may
be described with a transformation metadata, and the transformation
metadata may be bound to the associated business application for
dictating the transformation of data received via the instance of
the web-based structured data solution from a first form associated
with the instance of the web-based structured data solution to a
second form associated with the business application.
[0075] A data binding metadata may be associated with the web-based
structured data solution for declaring how a displayed form of the
web-based structured data solution (i.e., a web page 115) will be
presented to an end user. A data binding metadata may also be
associated with the web-based structured data solution for
declaring how data entered into any of the one or more data fields
in the instance of the web-based structured data solution is
transported to the associated business application.
[0076] Upon receiving a request from the business application user
102 to publish the structured data solution 120 at OPERATION 1525,
the method 1500 proceeds to OPERATION 1530, a web-based structured
data solution is generated where relationships and constraints
defined by the structured solution file 120 are established, data
are transformed from the business application system 105 and are
bound according to defined declarations and presentation metadata
130, and are displayed as a web-based visual representation of a
structured data solution in the form of a web page 115 to an end
user 104. Generating the web-based structured data solution may
include generating the designated structured data solution such
that data may be received for each of the identified data types,
and generating the designated structured data solution may be
performed at a computing system remote from the business
application (e.g., the cloud 110) for allowing one or more end
users to access the generated designated structured data solution
via the remote computing system
[0077] At OPERATION 1530, end user-entered data, such as one or
more data entries entered into one or more data fields in the web
page 115, may be received via the web page 115. As was illustrated
in FIGS. 12 and 13, various fields may be provided to receive end
user-entered data.
[0078] At OPERATION 1535, end user-entered data may be passed to
the business application and stored in association with
corresponding data types associated with the business application.
That is the user-entered data may be synchronized with the business
application system 105 as defined by binding metadata 135. The end
user-entered data may be transformed so that the data may be
utilized and uploaded to the business application system 105 and
utilized as needed by the associated organization. As changes or
updates are made by a business application user 102, the web page
presentation 115 may be republished reflecting the changes or
updates. A notification of a change or update to a solution
scenario may be provided to business application users 102 and/or
end users 104. Thus, the web page 115 may be utilized as a
communication portal by which a business application user 102 and
an end user 104 may receive and transmit business data.
[0079] Embodiments of the invention as described above may be
implemented via local and remote computing and data storage
systems, including the systems illustrated and described with
reference to FIG. 1. Consistent with embodiments of the invention,
the aforementioned memory storage and processing unit may be
implemented in a computing device, such as computing device 1600 of
FIG. 16. Any suitable combination of hardware, software, or
firmware may be used to implement the memory storage and processing
unit. For example, the memory storage and processing unit may be
implemented with computing device 1600 or any other computing
devices 1618, in combination with computing device 1600, wherein
functionality may be brought together over a network in a
distributed computing environment, for example, an intranet or the
Internet, to perform the functions as described herein. The
aforementioned system, device, and processors are examples and
other systems, devices, and processors may comprise the
aforementioned memory storage and processing unit, consistent with
embodiments of the invention. Furthermore, computing device 1600
may comprise operating environment 100 as described above.
Operating environment 100 is not limited to computing device
1600.
[0080] With reference to FIG. 16, a system consistent with
embodiments of the invention may include a computing device, such
as computing device 1600. In a basic configuration, computing
device 1600 may include at least one processing unit 1602 and a
system memory 1604. Depending on the configuration and type of
computing device, system memory 1604 may comprise, but is not
limited to, volatile (e.g. random access memory (RAM)),
non-volatile (e.g. read-only memory (ROM)), flash memory, or any
combination. System memory 1604 may include operating system 1605,
one or more programming modules 1606, and may include a business
application system 105, wherein the business application system is
a software application having sufficient computer-executable
instructions, which when executed, performs functionalities as
described herein. Operating system 1605, for example, may be
suitable for controlling computing device 1600's operation.
Furthermore, embodiments of the invention may be practiced in
conjunction with a graphics library, other operating systems, or
any other application program and is not limited to any particular
application or system. This basic configuration is illustrated in
FIG. 16 by those components within a dashed line 1608.
[0081] Computing device 1600 may have additional features or
functionality. For example, computing device 1600 may also include
additional data storage devices (removable and/or non-removable)
such as, for example, magnetic disks, optical disks, or tape. Such
additional storage is illustrated in FIG. 16 by a removable storage
1609 and a non-removable storage 1610. Computing device 1600 may
also contain a communication connection 1616 that may allow device
1600 to communicate with other computing devices 1618, such as over
a network in a distributed computing environment, for example, an
intranet or the Internet. Communication connection 1616 is one
example of communication media.
[0082] As stated above, a number of program modules and data files
may be stored in system memory 1604, including operating system
1605. While executing on processing unit 1602, programming modules
1606 may include the business application system 105, wherein the
business application system may contain sufficient
computer-executable instructions, which when executed, perform
functionalities as described herein. The aforementioned process is
an example, and processing unit 1602 may perform other processes.
Other programming modules that may be used in accordance with
embodiments of the present invention may include electronic mail
and contacts applications, word processing applications,
spreadsheet applications, database applications, slide presentation
applications, drawing or computer-aided application programs,
etc.
[0083] Generally, consistent with embodiments of the invention,
program modules may include routines, programs, components, data
structures, and other types of structures that may perform
particular tasks or that may implement particular abstract data
types. Moreover, embodiments of the invention may be practiced with
other computer system configurations, including hand-held devices,
multiprocessor systems, microprocessor-based or programmable
consumer electronics, minicomputers, mainframe computers, and the
like. Embodiments of the invention may also be practiced in
distributed computing environments where tasks are performed by
remote processing devices that are linked through a communications
network. In a distributed computing environment, program modules
may be located in both local and remote memory storage devices.
[0084] Furthermore, embodiments of the invention may be practiced
in an electrical circuit comprising discrete electronic elements,
packaged or integrated electronic chips containing logic gates, a
circuit utilizing a microprocessor, or on a single chip containing
electronic elements or microprocessors. Embodiments of the
invention may also be practiced using other technologies capable of
performing logical operations such as, for example, AND, OR, and
NOT, including but not limited to mechanical, optical, fluidic, and
quantum technologies. In addition, embodiments of the invention may
be practiced within a general purpose computer or in any other
circuits or systems.
[0085] Embodiments of the invention, for example, may be
implemented as a computer process (method), a computing system, or
as an article of manufacture, such as a computer program product or
computer readable media. The computer program product may be a
computer storage media readable by a computer system and encoding a
computer program of instructions for executing a computer process.
Accordingly, the present invention may be embodied in hardware
and/or in software (including firmware, resident software,
micro-code, etc.). In other words, embodiments of the present
invention may take the form of a computer program product on a
computer-usable or computer-readable storage medium having
computer-usable or computer-readable program code embodied in the
medium for use by or in connection with an instruction execution
system. A computer-usable or computer-readable medium may be any
medium that can contain, store, communicate, propagate, or
transport the program for use by or in connection with the
instruction execution system, apparatus, or device.
[0086] The term computer readable media as used herein may include
computer storage media. Computer storage media may include volatile
and nonvolatile, 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. System memory 1604, removable storage 1609, and
non-removable storage 1610 are all computer storage media examples
(i.e., memory storage.) Computer storage media may include, but is
not limited to, RAM, ROM, electrically erasable read-only memory
(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 information
and which can be accessed by computing device 1600. Any such
computer storage media may be part of device 1600. Computing device
1600 may also have input device(s) 1612 such as a keyboard, a
mouse, a pen, a sound input device, a touch input device, etc.
Output device(s) 1614 such as a display, speakers, a printer, etc.
may also be included. The aforementioned devices are examples and
others may be used.
[0087] The term computer readable media as used herein may also
include communication media. Communication media may be embodied by
computer readable instructions, data structures, program modules,
or other data in a modulated data signal, such as a carrier wave or
other transport mechanism, and includes any information delivery
media. The term "modulated data signal" may describe a signal that
has one or more characteristics set or changed in such a manner as
to encode information in the signal. By way of example, and not
limitation, communication media may include wired media such as a
wired network or direct-wired connection, and wireless media such
as acoustic, radio frequency (RF), infrared, and other wireless
media.
[0088] Embodiments of the present invention, for example, are
described above with reference to block diagrams and/or operational
illustrations of methods, systems, and computer program products
according to embodiments of the invention. The functions/acts noted
in the blocks may occur out of the order as illustrated in any
flowchart. For example, two blocks illustrated in succession may in
fact be executed substantially concurrently or the blocks may
sometimes be executed in the reverse order, depending upon the
functionality/acts involved.
[0089] While certain embodiments of the invention have been
described, other embodiments may exist. Furthermore, although
embodiments of the present invention have been described as being
associated with data stored in memory and other storage mediums,
data can also be stored on or read from other types of
computer-readable media, such as secondary storage devices, like
hard disks, floppy disks, or a CD-ROM, a carrier wave from the
Internet, or other forms of RAM or ROM. Further, the disclosed
methods' stages may be modified in any manner, including by
reordering stages and/or inserting or deleting stages, without
departing from the invention.
[0090] All rights including copyrights in the code included herein
are vested in and the property of the Applicant. The Applicant
retains and reserves all rights in the code included herein, and
grants permission to reproduce the material only in connection with
reproduction of the granted patent and for no other purpose.
[0091] While the specification includes examples, the invention's
scope is indicated by the following claims. Furthermore, while the
specification has been described in language specific to structural
features and/or methodological acts, the claims are not limited to
the features or acts described above. Rather, the specific features
and acts described above are disclosed as example for embodiments
of the invention.
* * * * *