Web-based visual representation of a structured data solution

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.

BACKGROUND

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.

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.

It is with respect to these and other considerations the present invention has been made.

SUMMARY

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.

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.).

DETAILED DESCRIPTION

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.

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.

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.

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.

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.

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.

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.

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.

FIG. 1is a simplified block diagram of a system architecture within which embodiments of the present invention may be implemented. Referring now toFIG. 1, a business application105is 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 application105, 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 application105, 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.

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 cloud110may 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 applications105may be extended from on-premise to the cloud110. 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 application105, but may end in the cloud110or may be communicated through the cloud.

E-commerce is an example of a transaction that may go through one or more intermediate companies in the cloud110to 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.”

Embodiments of the present invention provide for business application users102to 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 users102to 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”)115that publicly expose information stored and utilized by an organization and made available via a business application105. This may be done by transforming metadata from a business application105to a visual representation (web page115) of a structured data solution120on the cloud110. Information may then be captured via the web-based visual representation115of the structured data solution120, and made subsequently available within the business application105for 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)115would be the job application web page.

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 solution120. A solution120may be generally described as a packaging of declarative constructs, encompassing metadata, data, and visual elements. As a declarative statement, a solution120may declare a consummation of metadata, a binding of the metadata to a visual element115, and how the data is presented as well as brought back into a business application system105. A solution120may be comprised of data metadata125, which is a structured description of the types of entities that may be published. A solution120also may be comprised of presentation metadata130, which may be a structured description of the presentation of the data125in the form of the web page115and may address how information may appear visually and contextually.

In addition, the solution120also may be comprised of data binding metadata135which may allow for establishing relationships between a business application system105(and associated data repositories) and associated data and functionalities presented in a web page115via the cloud110. Data binding135may include instance binding and metadata binding. While instance binding involves binding a web page115to 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 application105to a web page115via the cloud110, which may be described declaratively through a solution120. The data binding metadata135may declare not only how data is presented to an end user104, but also how data is brought back into a business application system105.

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 systems105(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 solution120. As illustrated inFIG. 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.

According to embodiments, the data presentation workflow130may address what information may be presented to an end user, as well as how the information appears visually and contextually. Data presentation130may be comprised of four sub-areas: layout, data-binding135, workflow, and site hierarchy. As illustrated inFIG. 3, site hierarchy may address how information is organized within a context of various business flows, and may be broken into four concepts: web page115, page group, page type, and page template170. According to embodiments, a web page115is a browsable endpoint that may display pre-determined information and that may be used to collect inputs from an end user104.

Web pages115are the leaves in the site hierarchy300. A page group310is a specific grouping of pages115which, gives some contextual semantic to the collection. Page groups310may be part of other page groups, allowing a nested hierarchical structure. For example, page groups310may be different business flow areas (e.g., procurement, marketing, etc.). A page type315is another grouping of pages115based on web page behavior canonicalization or standardization where data that may have more than one possible visual representation may be standardized to on page type315. Page types315may 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 page115may belong to one and only one page type315, and thus conforms to the constraints of the type. A page template170is a starting point for creating a web page115. Page templates170may define the same presentation behavior as the web page115; however, they are not browsable endpoints, and may only be used while creating a new page.

Referring now toFIG. 4, the page layout400addresses how data is presented inside a web page115, and may be defined by three building blocks: controls, container controls, and composite controls. A control405is a presentation entity with specific rendering and user-interaction behavior (e.g., textbox, labels, dropdowns, etc.). A container control410is an organized collection of child controls with various layouts, and a composite control415is a reusable presentation segment (e.g., address block). The page layout400may support nested containers, stack layouts420and grid layouts425, and theme-based styling.

Referring now toFIG. 5, page data binding135may address what data is presented inside a web page115, and may be described in terms of entity data source(s)505, attribute binding510, and relationship binding515. The entity data source505is a page-design-time abstraction of the entity record that the web page115will be bound to at run-time. A web page115may have more than one data source, and may form an acyclic graph through the relationships. A data binding graph135may conform to the defined entity metadata structure. Attribute binding510may establish a linkage between the controls505and the nodes in the data source graph. Attribute binding510may specify which properties of a bound record to be displayed and captured in a control505. Relationship binding515is a relational edge between two data source nodes in the data binding graph135. Relationship binding515may define how bound records are related with each other. A data binding engine may load the binding graph135dynamically when the web page115renders 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.

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 inFIG. 6A, and may be contained inside a single web page115. A web page115may have one or more presentation states called views605. Each view605may be defined using the layout500and data binding135structures described above. A view605may describe how a web page115looks and what data is shown in a particular web page state. The page controller610is the workflow inside the web page115, and may define a chaining of views605using an event-driven and/or rule-based transition model.

As illustrated inFIG. 6B, a higher level and more powerful workflow is illustrated as a process615. A process615may be composed of pages115chained in a similar way as views605in the respective web pages115(i.e., rule-based or event-driven). A process controller625is a chaining logic in the process615, and may enable advanced solution scenarios, such as master-details navigation, portals (hub-like navigation to multiple pages), etc.

Both page and process controllers610,625may expose many internal and/or external events in each state. Process internal events may be bound by components inside the process615(e.g., process controller625, page views605, page controllers610, etc.). Page internal events may similarly be bound by the components inside the web page115. External events may be bound to the outside of the process615or web page115. 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.

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.

According to embodiments, bidirectional data synchronization is provided and includes conflict detection and resolution in order to keep the backend data in the business application105(e.g., ERP system) and the web page115published via the cloud110in synchronization. When data is modified in the business application105, it may be automatically received by a synchronization channel and may be pushed out to the cloud110and solution120for synchronizing the modified data with the web page115. In the reverse, when data is modified at the solution120or web page115, the modified data may be automatically received by a synchronization channel for synchronizing the modified data with the business application105. When the same data element is modified both in the business application105and the solution120or web page115, a conflict may result because it may not be possible to determine which of the business application or solution120or web page115is 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 user102,104may cause automatic resolution by establishing one of the sides as a master source of the conflicting modifications and automatically resolving the conflict according to the data modification made to the established master source. 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 solution120, may be automatically notified of modifications and/or polled for input as to change or conflict resolution.

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 solutions120. A solution package120may include an identity, a public contract, and metadata. A solution120may have a valid identification, including a name, unique identifier, version, provider name, optional public key, and optional description.

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 solutions120may 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 solutions120that the particular solution is referencing. A solution120may 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 hierarchy300, page templates170, workflows, etc.) and behavior of a solution120. The metadata may be required to adhere to a public contract as previously declared by a solution. A solution120may be digitally singed by a public key infrastructure (PKI)-based certificate to avoid tampering and to preserve integrity. If a solution120is signed, the identity of the solution may be required to include a public key of a signer certificate.

As described above, embodiments provide for a data binding abstraction platform, wherein data from a business application system105may 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 user104, so that data may be transformed from a business application system105to a visual representation115on the cloud. As should be appreciated, XML is just one way of representing the transformation of data and metadata between a business application system105and the cloud110. 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.

As described above, embodiments of the present invention provide for data entered into a web-based visual representation of a structured data solution115to be synchronized back into a business application105. Data within an organization's business application system105may be transformed into a visual representation115within 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 metadata135may 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 application105, as well as how populated data on a web page115may go back into the data graph.

Referring now toFIG. 7, various workloads are illustrated within a business application system105, such as an ERP system. A workload may be a facet or operation of a business, such as, but not limited to, manufacturing705, supply chain management710, financials715, procurement720, project management725, human resources730, customer relationship management735, data services740, access control745, as well as other business activities750. Within each workload705,710,715,720,725,730,735,740,745,750various 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 page115as described herein.

For example, a procurement720workload may comprise such data such as vendor information755, request for quotes (RFQs)760, purchase requisitions765, etc. A business application user102, 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 page115. As illustrated inFIG. 8, according to embodiments, various templates170may be provided for creating a new page. As illustrated, a preview and description815of each provided template170may be displayed. A template170may 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 template170may be utilized as a starting point for creating a web page115. A page template170may define presentation behavior, may display predetermined information, and may collect inputs from an end user104. Referring back to the example, the procurement agent may select and upload an RFQ template170for building a web-based RFQ page.

As illustrated inFIG. 9, the business application user102may be prompted to enter page details, such as a page name905and a page URL910. That is, the user102may use page900, illustrated inFIG. 9, to start the process of building a web page115by providing a name and page locator for the web page115. Referring toFIG. 10, a user interface1000may be provided with which a business application user102may declare which data associated with a business application105to include in the web page and to bind to various data elements within the page. For example, data elements, such as the RFQ number1005, RFQ contact1010, RFQ submission end date1015, delivery date1020, and delivery address1025, etc., may be bound to data elements within the business application/system105.

Declared data bindings may be saved as data binding metadata135. Data may be transformed using a structured definition of the data (e.g., XML) from the business application system105to a visual representation115on the cloud110. As illustrated inFIG. 10, data125, 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 page115. Various functionalities may be provided for allowing a business application user102to customize the presentation appearance of a web page115. For example, various backgrounds, headers, footers, colors, or layout choices may be available from which a business application user102may select. A business application user102may edit data, add additional fields to a template, as well as remove fields. Visual aspects of the page may be saved as presentation metadata130.

One or more end users (e.g., vendors)104to whom the business application user102may want to share a web-based visual representation of a structured data solution115may be selected or entered. An end user104may be an individual or company who may be an existing vendor, customer, applicant, or other entity whose information may already be in the business application105. Alternatively, a web page115may be sent to potential vendors, applicants, customers, or may be published publicly for an undefined end user104to access. When a business application user102has finished entering the data he/she wants included on the page, selecting fields in the business application105to 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 representation115, the solution120may published to the cloud110.

According to embodiments, a URL to the web page115may be generated, wherein end users104may access the web-based visual representation of the structured data solution (web page115). As illustrated inFIG. 11, a message (e.g., email)1100may be sent to an end user104, which may contain a link1105to the visual representation115.

Once a solution120is published, an abstract representation of data that is bound between a business application system105and a web-based structured data solution115may be presented to an end user104. As illustrated inFIGS. 12 and 13, a web-based visual representation of the structured data solution115may contain fields1205in which an end user104may enter information. For example, as illustrated inFIG. 12, a page may contain fields in which to enter contact information1205. Each field1205may be bound to a field in the business application105. Upon submission by the end user104, the information entered into each field1205in a web-based visual representation of the structured data solution (web page)115may be published into the business application105via data binding between the fields1205and associated data objects in or associated with the business application105. According to embodiments, as illustrated inFIG. 13, a field1305may be provided for uploading a document, which may be submitted to a business application user102.

As should be appreciated, a number of solutions120and associated web pages115may be developed and published for and used from a given business application105. For example, a given business application user102may have developed and may be running tens of web pages115at any given time covering tens of facets of his/her business or organization workloads and/or functions. As illustrated inFIG. 14, a user interface1400may be provided in which a business application user102may view statuses of various solutions120. A notification (e.g., email, pop-up message, etc.) may be provided when a status of a solution120changes. For example, if an end user104responds to an RFQ, a pop-up message1405may be displayed. A business application user102may 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 solution115so that the end user104may 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 user102so 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 solution115may be displayed to the end user104with a “Congratulations!” text included.

Having described an operating architecture for and various aspects of embodiments of the present invention,FIG. 15is a logical flow diagram illustrating a method for providing a transformation of metadata between a business application105to a web page115via the cloud110, 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.

The method1500starts at OPERATION1505, and proceeds to OPERATION1510, where a request for generating a web-based structured data solution120that will be presented as a web-based structured data solution and associated web page presentation115is received. A request for generating a solution120may occur when a selection to enable a new scenario is made by a business application user102. As described above, a scenario that may be enabled by a business application user102may 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 user102may select.

Upon receiving a request to create a new scenario, at OPERATION1515, one or more templates170may be provided for generating a web-based structured data solution120. 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.

As described above, a template170may be defined by presentation metadata130. 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 user102may manipulate. Various templates170may be provided for various solution scenarios. For example, referring back toFIG. 8, a page type may be selected based on a scenario for which a business application user102may be creating. As illustrated inFIG. 8, the business application user102has selected to create a new vendor request for quote305. Accordingly, various template170selections are provided to the user102from which to choose. An image and description815of provided templates170may be displayed to help the user102select a desired template.

Upon selection of a template170, the method1500proceeds to OPERATION1520, where business application user-entered data125, presentation data130, data-binding data135is 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.

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 user104via the web page115in a tabular format which binds to a collection of same type of records in the business application105instead 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 their 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.

Information specified in the template170may be customized and edited. Fields may be added, deleted, or modified according to the business application user's102needs. Data elements may be selected, and binding data135may be defined by the user102. Various fields may be defined for receiving information from an end user104. According to embodiments the template170associated 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 page115presentation. 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 template170may 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 users102may create structured data solutions120quickly and easily.

A business application user102may declare which data elements from within a business application105he/she would like to bind to elements within the web-based visual representation of the structured data solution120. Embodiments of the present invention provide for declarations to be made by a business application user102, without the business application user understanding how to write code. The user102may declare which elements to bind, and may declare how he/she would like to be presented.

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.

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 page115may 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.

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 page115) 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.

Upon receiving a request from the business application user102to publish the structured data solution120at OPERATION1525, the method1500proceeds to OPERATION1530, a web-based structured data solution is generated where relationships and constraints defined by the structured solution file120are established, data are transformed from the business application system105and are bound according to defined declarations and presentation metadata130, and are displayed as a web-based visual representation of a structured data solution in the form of a web page115to an end user104. 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 cloud110) for allowing one or more end users to access the generated designated structured data solution via the remote computing system.

At OPERATION1530, end user-entered data, such as one or more data entries entered into one or more data fields in the web page115, may be received via the web page115. As was illustrated inFIGS. 12 and 13, various fields may be provided to receive end user-entered data.

At OPERATION1535, 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 system105as defined by binding metadata135. The end user-entered data may be transformed so that the data may be utilized and uploaded to the business application system105and utilized as needed by the associated organization. As changes or updates are made by a business application user102, the web page presentation115may be republished reflecting the changes or updates. A notification of a change or update to a solution scenario may be provided to business application users102and/or end users104. Thus, the web page115may be utilized as a communication portal by which a business application user102and an end user104may receive and transmit business data.

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 toFIG. 1. Consistent with embodiments of the invention, the aforementioned memory storage and processing unit may be implemented in a computing device, such as computing device1600ofFIG. 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 device1600or any other computing devices1618, in combination with computing device1600, 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 device1600may comprise operating environment100as described above. Operating environment100is not limited to computing device1600.

With reference toFIG. 16, a system consistent with embodiments of the invention may include a computing device, such as computing device1600. In a basic configuration, computing device1600may include at least one processing unit1602and a system memory1604. Depending on the configuration and type of computing device, system memory1604may 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 memory1604may include operating system1605, one or more programming modules1606, and may include a business application system105, wherein the business application system is a software application having sufficient computer-executable instructions, which when executed, performs functionalities as described herein. Operating system1605, for example, may be suitable for controlling computing device1600'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 inFIG. 16by those components within a dashed line1608.

Computing device1600may have additional features or functionality. For example, computing device1600may 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 inFIG. 16by a removable storage1609and a non-removable storage1610. Computing device1600may also contain a communication connection1616that may allow device1600to communicate with other computing devices1618, such as over a network in a distributed computing environment, for example, an intranet or the Internet. Communication connection1616is one example of communication media.

As stated above, a number of program modules and data files may be stored in system memory1604, including operating system1605. While executing on processing unit1602, programming modules1606may include the business application system105, 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 unit1602may 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.

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 memory1604, removable storage1609, and non-removable storage1610are 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 device1600. Any such computer storage media may be part of device1600. Computing device1600may also have input device(s)1612such as a keyboard, a mouse, a pen, a sound input device, a touch input device, etc. Output device(s)1614such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used.

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.