US20120124163A1 - Recursive Navigation in Mobile CRM - Google Patents
Recursive Navigation in Mobile CRM Download PDFInfo
- Publication number
- US20120124163A1 US20120124163A1 US13/236,476 US201113236476A US2012124163A1 US 20120124163 A1 US20120124163 A1 US 20120124163A1 US 201113236476 A US201113236476 A US 201113236476A US 2012124163 A1 US2012124163 A1 US 2012124163A1
- Authority
- US
- United States
- Prior art keywords
- page
- reply
- entry
- mobile device
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Definitions
- Enterprise applications are integral parts of many businesses and provide valuable services to its users.
- enterprise applications provide customer relationship management (CRM), resource planning, human resource management, etc.
- CRM customer relationship management
- the present invention will be described with reference to an example CRM that provides sales and marketing services to its users, it being understood that the present invention should not be limited thereto.
- CRM is a widely implemented strategy for managing a company's interaction with customers, clients, and sales prospects.
- CRM involves technology to organize, automate, and synchronize business processes-principally sales activities, but also those for marketing, customer service, and technical support.
- the overall goals of CRM are to find, attract, and win new clients, nurture and retain those the company already has, etc.
- CRM services can be accessed by users via a desktop computer system that is coupled to a data processing system the implements the CRM.
- CRM services can also be accessed through mobile devices (e.g., smart phones or tablet computers).
- mobile devices e.g., smart phones or tablet computers.
- a first reply is generated in response to receiving a first request from a mobile device.
- the first reply is generated as a function of a page definition, and the first reply comprises data selected from a first object of a logical data model, but not a second object of the logical data model.
- the first and second objects are distinct from each other.
- a second reply is generated in response to receiving a second request from the mobile device.
- the second reply is generated as a function of the page definition, and the second reply comprises data selected from the second object but not the first object.
- FIG. 1 graphically illustrates relevant components of an example system that employs mobile CRM.
- FIG. 2 graphically illustrates relevant components of an example server employed in FIG. 1 .
- FIG. 3 graphically illustrates an example page displayed on a mobile device employed in FIG. 1 .
- FIG. 4 graphically illustrates an example page displayed on a mobile device employed in FIG. 1 .
- FIG. 5 graphically illustrates an example page displayed on a mobile device employed in FIG. 1 .
- FIG. 6 graphically illustrates an example page displayed on a mobile device employed in FIG. 1 .
- FIG. 7 graphically illustrates an example page displayed on a mobile device employed in FIG. 1 .
- FIG. 8 graphically illustrates an example page displayed on a mobile device employed in FIG. 1 .
- FIG. 9 graphically illustrates an example page displayed on a mobile device employed in FIG. 1 .
- FIG. 10 graphically illustrates relevant components of an example server employed in FIG. 1 .
- FIG. 11 illustrates relevant aspects a process implemented by the system shown in FIG. 10 .
- FIG. 12 illustrates relevant components of examples items stored in a stack of FIG. 11 .
- FIG. 13 is a block diagram of an example computer system that may be employed in the system of FIG. 1 , 2 or 10 .
- FIG. 1 illustrates in block diagram form, relevant components of a system 100 that provides an example mobile CRM.
- System 100 includes mobile devices (e.g., smart phones) 102 and 104 in wireless communication with a CRM executing on server 106 .
- Services provided by the CRM can be accessed via user interfaces (hereinafter also referred to as pages) sent by server 106 and displayed by mobile devices 102 or 104 .
- the CRM operates with mobile devices that are substantially different in design and operation. In other words, the CRM is designed to be independent of mobile device features including distinct look and feel thereof.
- the CRM implements a model-view-controller architecture.
- the CRM includes a single, metadata driven application that contains multiple views or page definitions.
- the CRM merges or binds data of a logical data model with a selected page definition, the result of which is serialized and sent to the mobile device 102 or 104 as a reply to its request.
- Mobile device 102 or 104 receives the reply, deserializes content and displays a corresponding page that includes visual representations of the merged data and other components.
- the page can be displayed with a look and feel that is native to the mobile device 102 or 104 .
- the CRM executing on server 106 is in data communication with a storage system 112 that includes one or more relational databases 114 .
- storage system 112 is presumed to include a single database 114 that store data of business objects of a logical data model.
- An object may represent a logical entity that stores a set of instance variables or properties, also known as attributes, and associations with other business objects, thereby weaving a map of objects representing business relationships.
- a business object may represent a data entity that may contain related data held in one or more tables of the relational database 114 .
- a business object may be made of business components that map to these tables.
- a business object is an object type that glues related business components together.
- a business component is said to provide a layer of wrapping over the tables. Opportunities, accounts, and contacts are examples of business objects.
- FIG. 2 illustrates an example of server 106 from FIG. 1 with relevant components shown in block diagram form.
- Memory 202 stores an application definition for the CRM.
- the application definition includes page definitions (also known as “views”), some of which are visually represented.
- Page definitions form the basis of pages that can be displayed by mobile devices 102 or 106 .
- Each of the page definitions can be used to render a page on any or all of mobile devices 102 or 106 .
- Example page definitions are visually represented in memory 202 .
- the “springboard” page definition can be used to render a page with icons arranged in a two-dimensional pattern. Each icon may represent a mini-application or high level business object within the logical data model.
- the “accounts,” “opportunities,” and “contacts” page definitions can be used to render pages with names or other information of accounts, opportunities, and contacts, respectively, in a list pattern.
- the “account,” “opportunity,” and “contact” page definitions can be used to render pages with data from an account, opportunity, and contact, respectively, in a form pattern.
- the “account form,” “opportunity form,” and “contact form” page definitions can be used to render pages with data from an account, opportunity, and contact, respectively, in a user editable form pattern.
- Other page definitions in memory 202 are contemplated.
- JSF Java Server Faces
- JSF provides standard, reusable components for creating pages that can be displayed on mobile devices.
- JSF provides useful, special tags to enhance page definitions. Each tag gives rise to an associated component.
- JSF can also be used to map page components to a data model, identify resources to be employed by the mobile devices, etc. While page definitions run on server 106 , they are displayed on mobile devices 102 or 106 .
- Page definitions can be used to render logical data model 204 into a form suitable for interaction by a user of a mobile device via a page displayed thereon.
- Logical data model 204 manages the business object data of the application definition, responds to requests for information about its state (usually from a page definition), and responds to instructions to change state from control logic 206 .
- logical data model 204 provides access to business objects including account, contact, opportunity, etc., some of which are visually represented in FIG. 2 .
- the logical data model 204 is both the data and the business/domain logic needed to manipulate the data of the application definition.
- Control logic 206 which may take form in instructions executing on a processor, is in data communication with the application definition contained within memory 202 in addition to being in data communication with interface 208 and serialization system 210 .
- Control logic 206 can receive a page request from any of the mobile devices 102 or 104 via interface 208 .
- control logic 206 may access the application definition in memory 202 or a page navigation stack, which will be more fully described below, to select the appropriate page definition, or relevant components thereof, which is needed to form the proper reply to the request.
- the page definition retrieved from memory 202 or from the page navigation stack is selected based on information contained in the page request.
- the selected page definition may contain metadata that is used to retrieve data needed from an appropriate business object of logical data model 204 .
- Control logic 206 can make calls on business objects of logical data model 204 to retrieve the data needed by the page definitions.
- Serialization system 210 can bind or merge the selected page definition with data retrieved from the business object, the result of which is subsequently serialized and transmitted to the requesting mobile device as a reply.
- FIGS. 3-9 illustrate example pages that are displayed by mobile device 102 in response to receiving replies from the CRM. These pages also illustrate an example of recursive navigation as will be more fully described.
- FIG. 3 illustrates an example page that is displayed on a touch sensitive screen 300 of mobile device 104 in response to a user's invocation of a session with the CRM. More particularly, when the user starts a session with the CRM, mobile device 104 generates and sends a request to the CRM for the springboard page. In response to receiving the request, control logic 206 selects the springboard page definition in memory 202 . Serialization system 210 in turn renders and serializes a reply using the springboard page definition. Mobile device 104 displays page 302 with actionable icons 304 - 314 in response to receiving the reply from the CRM. Icons 304 - 314 correspond to high level business objects or mini applications of the CRM.
- springboard page 302 is displayed on mobile device 104
- the user can access various CRM services via icons 304 - 314 .
- the user can activate the opportunities icon 306 in order to retrieve a list of opportunities that may be of interest.
- mobile device 104 In response to activation of icon 306 , mobile device 104 generates and sends a request for the opportunities page to the CRM.
- the page request and subsequent page requests should include session identification or other information that uniquely identifies the session between the CRM and mobile device 104 .
- the CRM can use session identifications to manage page navigation stacks for respective mobile devices.
- Control logic 206 receives the request from mobile device 104 , and in response selects the opportunities page definition from memory 202 based on information contained in the request.
- the selected opportunities page definition is provided to serialization system 210 for rendering.
- control logic 206 selects an object (hereinafter also referred to as an entry) of model 204 that stores data needed for the reply.
- the model entry selection may be based on information in the selected page definition and/or other information, such as information contained in the last item entered in a respective page navigation stack.
- control logic 206 selects the opportunity entry of model 204 to provide data that is identified directly or indirectly by the opportunities page definition.
- Data selected and retrieved from opportunity entry is merged with the opportunities page definition, the result of which is serialized and transmitted to mobile device 104 .
- control logic 206 may push a new item onto the navigation page stack mentioned when the reply is sent to mobile device 104 .
- the new stack item should contain information related to the reply such as a copy of the page definition (e.g., opportunities page definition) that was used to render the reply and an identity of the model entry (e.g., the opportunity model entry) from which data was retrieved for the reply.
- FIG. 4 shows an example “Opportunities” page 402 displayed by mobile device 104 after it receives and deserializer the reply sent by the CRM.
- page 402 illustrates intent to display elements (e.g., opportunities) in a list.
- Each opportunity (e.g., “Pinnacle Server”) in the list may be actionable (e.g., an active page link).
- an active page link For purposes of explanation, it will be presumed that each item in a list pattern displayed by a mobile device is an active page link. The user can forward navigate or “drill down” to access more detailed information about any of the opportunities by activating the corresponding page link. To illustrate, the user can activate the “Pinnacle Server” link displayed by page 402 .
- mobile device 104 In response, mobile device 104 generates and sends a request for the Pinnacle Server opportunity page.
- Control logic 206 receives this request, and selects the opportunity page definition based on information in the request. The selected opportunity page definition is provided to serialization system 210 .
- Control logic 206 selects a model entry to provide data identified directly or indirectly by the opportunity page definition. The selection can be based on the selected opportunity page definition and/or information in the last item pushed onto the corresponding page navigation stack. In the current example, the opportunity model entry is selected.
- root entries in model 204 such as the opportunity model entry are selected for page definitions that are backed by a single row of model data.
- Control logic 206 creates and pushes a new item onto the navigation page stack.
- the new page stack item should contain information (e.g., the identity of the opportunity entry of model 204 , a filter value unique to the Pinnacle Server opportunity, a copy of the opportunity page definition, etc.) corresponding to the reply sent to mobile device 104 .
- FIG. 5 shows an example of the “Pinnacle Server opportunity” page 502 displayed by mobile device 104 after it receives and deserializes the reply from the CRM.
- page 502 illustrates intent to display elements in a form.
- the Pinnacle Server opportunity page 502 has a look and feel of other pages displayed by mobile device 104 such as the opportunities page 402 shown in FIG. 4 .
- both pages 402 and 502 include a “Back” button that can be used to backward navigate to the prior page. If the Back button of page 502 is activated, mobile device 104 will generate and send a Back request to the CRM. In one embodiment, the same generic Back request is sent by mobile device 104 whenever any Back button in any page is activated.
- control logic 206 can pop the last item off the page navigation stack, which item includes information related to page 502 . Then, control logic 206 can recreate the reply that resulted in page 402 , using the page definition (e.g., opportunities page definition) in the most recently added stack item, and data from the model entry (e.g., opportunity model entry) identified in the most recently added stack item. The reply is recreated for subsequent serialization and transmission to the mobile device 104 . The redisplay of the page should be the same except for any data from the model that has changed in the interim.
- page definition e.g., opportunities page definition
- data from the model entry e.g., opportunity model entry
- many elements displayed in the “Pinnacle Server opportunity” page 502 are actionable page links.
- the “Pinnacle” sales account is an active link to a corresponding account page.
- a user of mobile device 104 can activate the Pinnacle sales account page link displayed on mobile device 104 .
- mobile device 104 In response to activation of this page link, mobile device 104 generates and sends a request for the Pinnacle account page to the CRM.
- Control logic 206 receives this request, and in response selects the account page definition memory 202 based on information in the request.
- the account page definition is provided to serialization system 210 for rendering.
- control logic 206 selects the appropriate entry of model 204 , which stores the data that is needed to render the pinnacle account reply.
- the account entry may be selected based upon information contained within the selected page definition and/or information in the most recently added item to the corresponding page stack.
- the account entry of model 204 is selected to provide data for the page definition since the account page definition is backed by a single row of model data.
- Data is selected by control logic 206 from the account entry of model 204 that is identified directly or indirectly by the account page definition. The selected data is merged with the account page definition and subsequently serialized for transmission to mobile device 204 .
- control logic 206 may create and push a new item onto the corresponding navigation page stack, which may contain the account model entry identity, information unique to the Pinnacle account, a copy of the account page definition that was used to render the reply, etc.
- FIG. 6 illustrates an example “Pinnacle” account page 602 displayed by mobile device 104 after it receives and deserializes the reply from the CRM.
- the account page 602 is presented in a form pattern.
- One or more elements in account page 602 can be active page links in an account page.
- the “Opportunities” and “Contacts” elements of page 602 are both active page links.
- the Opportunities page link can lead to an opportunities page that lists all and only opportunities for the Pinnacle sales account.
- the Contacts page link can lead to a contacts page that lists all and only contacts for the Pinnacle sales account. A user can forward navigate to these subsequent pages by activating either of the active links.
- the Opportunities link of page 602 can be activated by the user, and in response mobile device 104 generates and sends an opportunities page request to the CRM.
- This page request may be similar or identical to the opportunities page request that was sent by mobile device 104 in response to user activation of the opportunities icon 306 of FIG. 3 .
- the control logic 206 receives the request, and in response selects the opportunities page definition from memory 202 based on information in the request.
- the opportunities page definition is provided to serialization system 210 for rendering.
- Control logic 206 also selects an entry of model 204 that stores data needed by opportunity page definition. The selection of the model entry can be based on the information of the opportunity page definition and/or information in the item that was most recently added to the page stack.
- control logic 206 selects the AccountOpportunity entry of model 204 , which is related to the Account root entry, since the opportunities page was selected, and account is the model entry identified in the most recently pushed item to the page navigation stack.
- the selected page definition e.g., the opportunities page definition
- the control logic 206 should select the model entry that results by concatenating the identity of the model in the most recently pushed stack item with the identity of the root entry, which is identified in the selected page definition, if they differ.
- the opportunities page definition is or can be backed by multiple rows
- “Account” is identified as the model entry in the most recently pushed item of the page navigation stack
- Opportunity is identified as the root model entry in the opportunities page definition.
- control logic 206 concatenates the two to create AcountOpportunity, which is selected as the model entry from which serialization system 210 should receive data for the reply.
- Control logic 206 selects data from the AccountOpportunity entry of model 204 that is directly or indirectly identified by the opportunities page definition. The selected data is merged with the opportunities page definition, the result of which is serialized and transmitted in mobile device 104 .
- control logic 206 pushes a new item onto the navigation page stack that identifies the AccountOpportunity model entry, a copy of the opportunities page definition, and identifier unique to Pinnacle sales account.
- FIG. 7 illustrates an example “Opportunities” page 702 that is displayed by mobile device 104 after it receives and deserializes the reply sent by the CRM.
- This page is presented in a list pattern like the opportunities page 402 shown in FIG. 4 .
- page 702 only lists opportunities are presented that are tied to the Pinnacle sales account.
- each item displayed in page 702 is an active link to another page.
- the user can activate the “Pinnacle Server” opportunity link displayed on page 702 .
- mobile device 104 can generate and send a request for the Pinnacle Server opportunity page. This is the same or similar request that was sent by mobile device 104 prior to display of the page shown in FIG. 5 .
- Control logic 206 receives the request from mobile device 104 , and implements the same steps that were used to generate and send a reply which resulted in the page displayed in FIG. 5 . More particularly, control logic 206 selects the appropriate model entry 204 and stores data needed for the reply. In this example, the opportunity model entry is selected since the opportunity page definition is backed by a single row of data from model 204 . Data from the opportunity model entry is selected and merged by serialization system 210 with the opportunity page definition, the result of which is serialized and transmitted to mobile device 104 . Control logic 206 also enters a new item into the page navigation stack, which includes a copy of the opportunity page definition, the opportunity model entry identification, and an identifier unique to the Pinnacle Server opportunity.
- FIG. 8 illustrates the opportunity page 802 displayed by mobile device 104 after it receives and deserializes the reply. This page should be identical to the page shown in FIG. 5 , unless data of the particular opportunity has since changed.
- a user may seek to create a new entry (e.g., a new opportunity, account, contact, etc.) within the logical data model.
- the opportunities page 702 includes a “Create” button that can be activated by the user mobile device 104 .
- This button enables a user to create a new opportunity.
- mobile device 104 when the user activates the create button shown within FIG. 7 , mobile device 104 generates and sends a request to create a new opportunity within the Pinnacle opportunities list.
- CRM 206 selects the editable opportunity form page definition from memory 202 .
- This page is rendered and subsequently serialized before it is sent to mobile device 104 .
- Mobile device 104 deserializes and displays the corresponding page.
- FIG. 9 illustrates an example editable form 902 displayed on mobile device 104 . This page enables a user to enter data into select fields.
- FIG. 6 or 7 illustrate pages that were reached via example recursive navigation.
- CRMs prohibit recursive of navigation.
- a user would not be able to forward navigate from the opportunity page 502 shown in FIG. 5 to the account page 602 shown in FIG. 6 . Rather, the user would be required to back navigate to the springboard page 302 shown in FIG. 3 , followed by forward navigation to the page of interest, starting with the accounts icon 308 . Further, a user would not be able to forward navigate from the account page 602 to reach the opportunities page 702 shown within FIG. 7 .
- a user could back navigate to the springboard page 302 shown within FIG. 3 , followed by forward navigation to an opportunities page, but the opportunities page may not be filtered to show only the list of opportunities associated with sales account “Pinnacle”.
- FIG. 10 illustrates greater details of the system shown in FIG. 2 .
- the CRM is capable of recursive navigation.
- Control logic 206 is in data communication with stack memory 1006 , which is configured to store one or more page stacks, each of which corresponds to a session between the CRM and a respective mobile device.
- page stack 1010 is associated with mobile device 104 .
- Logical data model 204 is structured to include root entries such as opportunity, account, and contact.
- the Opportunities_Table, Accounts_Table, and Contacts_Table illustrated in FIG. 10 are examples of tables that support the entries in logical model 204 .
- Logical data model 204 is structured with non-root entries in a finite relationship depth with the root entries.
- the logical model defines the relationship between root entries and non-root entries (e.g., AccountOpportunity). For example, the AccountOpportunity and AccountContact entries are related to the root account entry.
- Model 204 is an example of one structure that enables recursive navigation.
- FIG. 11 illustrates relevant operational aspects performed by control logic 206 and serialization system 210 to enable one embodiment of recursive navigation.
- the process in FIG. 11 begins in step 1102 when control logic 206 receives a request from mobile device 104 .
- control logic 206 accesses the page stack identified in the request and reads the page definition, model entry identity and any other information in the last item pushed onto the page stack as shown in step 1104 .
- step 1106 the control logic 206 determines whether the request will create a new entry or row in the data model 204 . If the request will create a new row, then the control logic 206 selects an entry in the data model 204 into which the new row will be created. This selection is based upon the model entry identity read from the page stack in step 1104 . For example, control logic 206 may select the opportunity entry or the AccountOpportunity entry based on the identity read from page stack 1010 in step 1104 . In step 1112 , control logic 206 creates a new row in this selected model entry, which in turn will be populated with data that will be received from mobile device 104 . Thereafter, the process ends.
- control logic 206 determines whether the request is for a forward or backward page navigation. If the request is for backward page navigation, control logic 206 reads the next to last item pushed onto stack 1010 . More particularly, the process proceeds to step 1116 where control logic 206 pops the last item entered into stack 1010 . Then control logic 206 reads the page definition, model entry read and filter key from the most recently entered item in stack 1010 as shown in step 1120 .
- the page definition read in step 1120 is provided to serialization system 210 along with data needed by the page definition, which is provided by the model entry that was identified in step 1120 , and the filter (if needed).
- the data from the identified model entry may be filtered and merged with the page definition, the result of which is then serialized for transmission to the mobile device.
- control logic 206 selects the appropriate page definition from memory 202 using information of the request received in step 1102 .
- control logic 206 determines whether the page definition selected in step 1122 is backed by a single row or multiple rows of data model 204 . If the page definition is backed by a single row, then at step 1126 , control logic 206 selects the appropriate root entry (e.g., opportunity, account, contact, etc.) from data model 204 for the data needed to render the reply.
- appropriate root entry e.g., opportunity, account, contact, etc.
- step 1130 the control logic 206 selects either a root entry or an entry related thereto based upon the model entry identity read in step 1104 and the root entry specified by the page definition selected in page 1122 . More particularly, the control logic 206 select the model entry that is identified by the concatenation of the model entry identity read from stack 1010 in step 1104 and the identity of the root entry identified in the page definition selected in step 1122 , if they are different. If the identities are not different, and if the identity read from stack 1010 is not “Home”, then in step 1132 control logic 206 selects the root entry identified in the selected page definition.
- step 1132 the serialization system 210 binds the selected page definition with data of the selected model entry, the result of which is transmitted to the mobile device.
- control logic 206 creates and pushes a new item onto page stack within memory 1006 . This new item should include a copy of the definition that was selected in step 1130 along with an identity of the model entry that was selected in step 1130 , in addition to any filter information.
- FIG. 12A-12C illustrate page stack 1010 as items are pushed onto it in response to generation and transmission of replies that resulted in pages shown within FIGS. 6 , 7 , and 8 , respectively.
- Each item within the page stack 10 includes a copy of the page definition, an identity of a model entry that was used to back the corresponding page definition, and a filter key (e.g., table key) from one of the database tables that can be used as a filter if a page is redisplayed as a result of backward navigation or if a filtered list is to presented in a page.
- the items in the stack are arranged in order of entry therein.
- item 4 is the most recently entered item of stack 1010 .
- Item 4 corresponds to “Pinnacle” account page 602 displayed on mobile device 104 in FIG. 6 .
- the key A 10 is provided as a filter value in the event that a reply is recreated based upon a stack item.
- FIG. 13 depicts a block diagram of a computer system 1310 suitable for implementing the present disclosure.
- Computer system 1310 may be illustrative of various computer systems (e.g., servers or clients) shown in FIGS. 1 and 2 .
- Computer system 1310 includes a bus 1312 which interconnects major subsystems of computer system 1310 , such as a central processor 1314 , a system memory 1317 (typically RAM, but which may also include ROM, flash RAM, or the like), an input/output controller 1318 , an external audio device, such as a speaker system 1320 via an audio output interface 1322 , an external device, such as a display screen 1324 via display adapter 1326 , serial ports 1328 and 1330 , a keyboard 1332 (interfaced with a keyboard controller 1333 ), a storage interface 1334 , a floppy disk drive 1337 operative to receive a floppy disk 1338 , a host bus adapter (HBA) interface card 1335 A operative to connect with
- mouse 1346 or other point-and-click device, coupled to bus 1312 via serial port 1328
- modem 1347 coupled to bus 1312 via serial port 1330
- network interface 1348 coupled directly to bus 1312 .
- Bus 1312 allows data communication between central processor 1314 and system memory 1317 , which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted.
- the RAM is generally the main memory into which the operating system and application programs are loaded.
- the ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components.
- BIOS Basic Input-Output system
- Applications resident with computer system 1310 are generally stored on and accessed via a computer readable medium, such as a hard disk drive (e.g., fixed disk 1344 ), an optical drive (e.g., optical drive 1340 ), a floppy disk unit 1337 , or other storage medium. Additionally, applications can be in the form of electronic signals modulated in accordance with the application and data communication technology when accessed via network modem 1347 or interface 1348 .
- Storage interface 1334 can connect to a standard computer readable medium for storage and/or retrieval of information, such as a fixed disk drive 1344 .
- Fixed disk drive 1344 may be a part of computer system 1310 or may be separate and accessed through other interface systems.
- Modem 1347 may provide a direct connection to a remote server via a telephone link or to the Internet via an interne service provider (ISP).
- ISP interne service provider
- Network interface 1348 may provide a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence).
- Network interface 1348 may provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection or the like.
- CDPD Cellular Digital Packet Data
- Code for implementing a CRM can be stored in computer-readable storage media such as one or more of system memory 1317 , fixed disk 1344 , optical disk 1342 , or floppy disk 1338 .
- Memory 1320 is also used for storing temporary variables or other intermediate information during the execution of instructions by the processor 1310 .
- the operating system provided on computer system 1310 may be MS-DOS®, MS-WINDOWS®, OS/2®, UNIX®, Linux®, or another known operating system.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A method and apparatus for recursive navigation. In one embodiment of the method, a first reply is generated in response to receiving a first request from a mobile device. The first reply is generated as a function of a page definition, and the first reply comprises data selected from a first object of a logical data model, but not a second object of the logical data model. The first and second objects are distinct from each other. A second reply is generated in response to receiving a second request from the mobile device. The second reply is generated as a function of the page definition, and the second reply comprises data selected from the second object but not the first object.
Description
- This application claims priority to Provisional Application No. 61/384,150 filed on Sep. 17, 2010, and is incorporated herein in its entirety by reference.
- Enterprise applications are integral parts of many businesses and provide valuable services to its users. For example, enterprise applications provide customer relationship management (CRM), resource planning, human resource management, etc. The present invention will be described with reference to an example CRM that provides sales and marketing services to its users, it being understood that the present invention should not be limited thereto.
- CRM is a widely implemented strategy for managing a company's interaction with customers, clients, and sales prospects. CRM involves technology to organize, automate, and synchronize business processes-principally sales activities, but also those for marketing, customer service, and technical support. The overall goals of CRM are to find, attract, and win new clients, nurture and retain those the company already has, etc.
- CRM services can be accessed by users via a desktop computer system that is coupled to a data processing system the implements the CRM. CRM services can also be accessed through mobile devices (e.g., smart phones or tablet computers). The present invention will be described with reference to providing CRM services to users via their mobile devices, it being understood that the present invention should not be limited thereto.
- A method and apparatus for recursive navigation. In one embodiment of the method, a first reply is generated in response to receiving a first request from a mobile device. The first reply is generated as a function of a page definition, and the first reply comprises data selected from a first object of a logical data model, but not a second object of the logical data model. The first and second objects are distinct from each other. A second reply is generated in response to receiving a second request from the mobile device. The second reply is generated as a function of the page definition, and the second reply comprises data selected from the second object but not the first object.
- The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
-
FIG. 1 graphically illustrates relevant components of an example system that employs mobile CRM. -
FIG. 2 graphically illustrates relevant components of an example server employed inFIG. 1 . -
FIG. 3 graphically illustrates an example page displayed on a mobile device employed inFIG. 1 . -
FIG. 4 graphically illustrates an example page displayed on a mobile device employed inFIG. 1 . -
FIG. 5 graphically illustrates an example page displayed on a mobile device employed inFIG. 1 . -
FIG. 6 graphically illustrates an example page displayed on a mobile device employed inFIG. 1 . -
FIG. 7 graphically illustrates an example page displayed on a mobile device employed inFIG. 1 . -
FIG. 8 graphically illustrates an example page displayed on a mobile device employed inFIG. 1 . -
FIG. 9 graphically illustrates an example page displayed on a mobile device employed inFIG. 1 . -
FIG. 10 graphically illustrates relevant components of an example server employed inFIG. 1 . -
FIG. 11 illustrates relevant aspects a process implemented by the system shown inFIG. 10 . -
FIG. 12 illustrates relevant components of examples items stored in a stack ofFIG. 11 . -
FIG. 13 is a block diagram of an example computer system that may be employed in the system ofFIG. 1 , 2 or 10. - The use of the same reference symbols in different drawings indicates similar or identical items.
- Today's sales and marketing workforce is more mobile than ever. To reduce sales downtime, increase customer face time, and win more deals, many companies now employ mobile CRM to move their business forward while employees are on the road. Mobile CRM enable users to more efficiently use CRM services such creating, reviewing, and/or updating sales opportunities, contacts, leads, calendar entries, etc., through user interfaces (UIs) or pages displayed on their mobile devices.
-
FIG. 1 illustrates in block diagram form, relevant components of asystem 100 that provides an example mobile CRM.System 100 includes mobile devices (e.g., smart phones) 102 and 104 in wireless communication with a CRM executing onserver 106. Services provided by the CRM can be accessed via user interfaces (hereinafter also referred to as pages) sent byserver 106 and displayed bymobile devices - The CRM implements a model-view-controller architecture. The CRM includes a single, metadata driven application that contains multiple views or page definitions. In response to receiving a page request from
mobile device mobile device Mobile device mobile device - The CRM executing on
server 106 is in data communication with astorage system 112 that includes one or morerelational databases 114. For the purposes of explanation only,storage system 112 is presumed to include asingle database 114 that store data of business objects of a logical data model. An object may represent a logical entity that stores a set of instance variables or properties, also known as attributes, and associations with other business objects, thereby weaving a map of objects representing business relationships. A business object may represent a data entity that may contain related data held in one or more tables of therelational database 114. A business object may be made of business components that map to these tables. A business object is an object type that glues related business components together. A business component is said to provide a layer of wrapping over the tables. Opportunities, accounts, and contacts are examples of business objects. - With continuing reference to
FIG. 1 ,FIG. 2 illustrates an example ofserver 106 fromFIG. 1 with relevant components shown in block diagram form.Memory 202 stores an application definition for the CRM. The application definition includes page definitions (also known as “views”), some of which are visually represented. Page definitions form the basis of pages that can be displayed bymobile devices mobile devices memory 202. The “springboard” page definition can be used to render a page with icons arranged in a two-dimensional pattern. Each icon may represent a mini-application or high level business object within the logical data model. The “accounts,” “opportunities,” and “contacts” page definitions can be used to render pages with names or other information of accounts, opportunities, and contacts, respectively, in a list pattern. The “account,” “opportunity,” and “contact” page definitions can be used to render pages with data from an account, opportunity, and contact, respectively, in a form pattern. The “account form,” “opportunity form,” and “contact form” page definitions can be used to render pages with data from an account, opportunity, and contact, respectively, in a user editable form pattern. Other page definitions inmemory 202 are contemplated. - The application definition in
memory 202 can be built using Java Server Faces (JSF) technology, it being understood the present invention should not be limited thereto. JSF provides standard, reusable components for creating pages that can be displayed on mobile devices. JSF provides useful, special tags to enhance page definitions. Each tag gives rise to an associated component. JSF can also be used to map page components to a data model, identify resources to be employed by the mobile devices, etc. While page definitions run onserver 106, they are displayed onmobile devices - Page definitions can be used to render
logical data model 204 into a form suitable for interaction by a user of a mobile device via a page displayed thereon.Logical data model 204 manages the business object data of the application definition, responds to requests for information about its state (usually from a page definition), and responds to instructions to change state fromcontrol logic 206. In one sense,logical data model 204 provides access to business objects including account, contact, opportunity, etc., some of which are visually represented inFIG. 2 . Thelogical data model 204 is both the data and the business/domain logic needed to manipulate the data of the application definition. -
Control logic 206, which may take form in instructions executing on a processor, is in data communication with the application definition contained withinmemory 202 in addition to being in data communication withinterface 208 andserialization system 210.Control logic 206 can receive a page request from any of themobile devices interface 208. In response to receiving the page request,control logic 206 may access the application definition inmemory 202 or a page navigation stack, which will be more fully described below, to select the appropriate page definition, or relevant components thereof, which is needed to form the proper reply to the request. The page definition retrieved frommemory 202 or from the page navigation stack is selected based on information contained in the page request. The selected page definition may contain metadata that is used to retrieve data needed from an appropriate business object oflogical data model 204.Control logic 206 can make calls on business objects oflogical data model 204 to retrieve the data needed by the page definitions.Serialization system 210 can bind or merge the selected page definition with data retrieved from the business object, the result of which is subsequently serialized and transmitted to the requesting mobile device as a reply.FIGS. 3-9 illustrate example pages that are displayed bymobile device 102 in response to receiving replies from the CRM. These pages also illustrate an example of recursive navigation as will be more fully described. - With continuing reference to
FIG. 2 ,FIG. 3 illustrates an example page that is displayed on a touchsensitive screen 300 ofmobile device 104 in response to a user's invocation of a session with the CRM. More particularly, when the user starts a session with the CRM,mobile device 104 generates and sends a request to the CRM for the springboard page. In response to receiving the request,control logic 206 selects the springboard page definition inmemory 202.Serialization system 210 in turn renders and serializes a reply using the springboard page definition.Mobile device 104displays page 302 with actionable icons 304-314 in response to receiving the reply from the CRM. Icons 304-314 correspond to high level business objects or mini applications of the CRM. - After
springboard page 302 is displayed onmobile device 104, the user can access various CRM services via icons 304-314. To illustrate, the user can activate theopportunities icon 306 in order to retrieve a list of opportunities that may be of interest. In response to activation oficon 306,mobile device 104 generates and sends a request for the opportunities page to the CRM. The page request and subsequent page requests should include session identification or other information that uniquely identifies the session between the CRM andmobile device 104. As will be more fully described below the CRM can use session identifications to manage page navigation stacks for respective mobile devices. -
Control logic 206 receives the request frommobile device 104, and in response selects the opportunities page definition frommemory 202 based on information contained in the request. The selected opportunities page definition is provided toserialization system 210 for rendering. During this process, controllogic 206 selects an object (hereinafter also referred to as an entry) ofmodel 204 that stores data needed for the reply. The model entry selection may be based on information in the selected page definition and/or other information, such as information contained in the last item entered in a respective page navigation stack. In the current example,control logic 206 selects the opportunity entry ofmodel 204 to provide data that is identified directly or indirectly by the opportunities page definition. Data selected and retrieved from opportunity entry is merged with the opportunities page definition, the result of which is serialized and transmitted tomobile device 104. Additionally,control logic 206 may push a new item onto the navigation page stack mentioned when the reply is sent tomobile device 104. The new stack item should contain information related to the reply such as a copy of the page definition (e.g., opportunities page definition) that was used to render the reply and an identity of the model entry (e.g., the opportunity model entry) from which data was retrieved for the reply. -
FIG. 4 shows an example “Opportunities”page 402 displayed bymobile device 104 after it receives and deserializer the reply sent by the CRM. Like other pages presented in a list pattern,page 402 illustrates intent to display elements (e.g., opportunities) in a list. Each opportunity (e.g., “Pinnacle Server”) in the list may be actionable (e.g., an active page link). For purposes of explanation, it will be presumed that each item in a list pattern displayed by a mobile device is an active page link. The user can forward navigate or “drill down” to access more detailed information about any of the opportunities by activating the corresponding page link. To illustrate, the user can activate the “Pinnacle Server” link displayed bypage 402. In response,mobile device 104 generates and sends a request for the Pinnacle Server opportunity page.Control logic 206 receives this request, and selects the opportunity page definition based on information in the request. The selected opportunity page definition is provided toserialization system 210.Control logic 206 selects a model entry to provide data identified directly or indirectly by the opportunity page definition. The selection can be based on the selected opportunity page definition and/or information in the last item pushed onto the corresponding page navigation stack. In the current example, the opportunity model entry is selected. As will be more fully described below, root entries inmodel 204 such as the opportunity model entry are selected for page definitions that are backed by a single row of model data. - Data is selected and retrieved from the opportunity entry and is merged with the opportunity page definition, the result of which is serialized and transmitted to
mobile device 104. Additionally,control logic 206 creates and pushes a new item onto the navigation page stack. The new page stack item should contain information (e.g., the identity of the opportunity entry ofmodel 204, a filter value unique to the Pinnacle Server opportunity, a copy of the opportunity page definition, etc.) corresponding to the reply sent tomobile device 104. -
FIG. 5 shows an example of the “Pinnacle Server opportunity”page 502 displayed bymobile device 104 after it receives and deserializes the reply from the CRM. Like other pages presented in a form pattern,page 502 illustrates intent to display elements in a form. The PinnacleServer opportunity page 502 has a look and feel of other pages displayed bymobile device 104 such as theopportunities page 402 shown inFIG. 4 . For example, bothpages page 502 is activated,mobile device 104 will generate and send a Back request to the CRM. In one embodiment, the same generic Back request is sent bymobile device 104 whenever any Back button in any page is activated. In response to the Back request, thecontrol logic 206 can pop the last item off the page navigation stack, which item includes information related topage 502. Then, controllogic 206 can recreate the reply that resulted inpage 402, using the page definition (e.g., opportunities page definition) in the most recently added stack item, and data from the model entry (e.g., opportunity model entry) identified in the most recently added stack item. The reply is recreated for subsequent serialization and transmission to themobile device 104. The redisplay of the page should be the same except for any data from the model that has changed in the interim. - Returning to
FIG. 5 , many elements displayed in the “Pinnacle Server opportunity”page 502 are actionable page links. For example, the “Pinnacle” sales account is an active link to a corresponding account page. To illustrate, a user ofmobile device 104 can activate the Pinnacle sales account page link displayed onmobile device 104. In response to activation of this page link,mobile device 104 generates and sends a request for the Pinnacle account page to the CRM.Control logic 206 receives this request, and in response selects the accountpage definition memory 202 based on information in the request. The account page definition is provided toserialization system 210 for rendering. During this process, controllogic 206 selects the appropriate entry ofmodel 204, which stores the data that is needed to render the pinnacle account reply. The account entry may be selected based upon information contained within the selected page definition and/or information in the most recently added item to the corresponding page stack. In the current example, the account entry ofmodel 204 is selected to provide data for the page definition since the account page definition is backed by a single row of model data. Data is selected bycontrol logic 206 from the account entry ofmodel 204 that is identified directly or indirectly by the account page definition. The selected data is merged with the account page definition and subsequently serialized for transmission tomobile device 204. Additionally,control logic 206 may create and push a new item onto the corresponding navigation page stack, which may contain the account model entry identity, information unique to the Pinnacle account, a copy of the account page definition that was used to render the reply, etc. -
FIG. 6 illustrates an example “Pinnacle”account page 602 displayed bymobile device 104 after it receives and deserializes the reply from the CRM. Like theopportunity page 502 shown inFIG. 5 , theaccount page 602 is presented in a form pattern. One or more elements inaccount page 602 can be active page links in an account page. For example, the “Opportunities” and “Contacts” elements ofpage 602 are both active page links. The Opportunities page link can lead to an opportunities page that lists all and only opportunities for the Pinnacle sales account. And the Contacts page link can lead to a contacts page that lists all and only contacts for the Pinnacle sales account. A user can forward navigate to these subsequent pages by activating either of the active links. To illustrate, the Opportunities link ofpage 602 can be activated by the user, and in responsemobile device 104 generates and sends an opportunities page request to the CRM. This page request may be similar or identical to the opportunities page request that was sent bymobile device 104 in response to user activation of theopportunities icon 306 ofFIG. 3 . Thecontrol logic 206 receives the request, and in response selects the opportunities page definition frommemory 202 based on information in the request. The opportunities page definition is provided toserialization system 210 for rendering.Control logic 206 also selects an entry ofmodel 204 that stores data needed by opportunity page definition. The selection of the model entry can be based on the information of the opportunity page definition and/or information in the item that was most recently added to the page stack. In this current example,control logic 206 selects the AccountOpportunity entry ofmodel 204, which is related to the Account root entry, since the opportunities page was selected, and account is the model entry identified in the most recently pushed item to the page navigation stack. In one embodiment, if the selected page definition (e.g., the opportunities page definition) is or can be backed by multiple rows of the data model, thecontrol logic 206 should select the model entry that results by concatenating the identity of the model in the most recently pushed stack item with the identity of the root entry, which is identified in the selected page definition, if they differ. In the current example, the opportunities page definition is or can be backed by multiple rows, “Account” is identified as the model entry in the most recently pushed item of the page navigation stack, and Opportunity is identified as the root model entry in the opportunities page definition. As a result,control logic 206 concatenates the two to create AcountOpportunity, which is selected as the model entry from whichserialization system 210 should receive data for the reply.Control logic 206 selects data from the AccountOpportunity entry ofmodel 204 that is directly or indirectly identified by the opportunities page definition. The selected data is merged with the opportunities page definition, the result of which is serialized and transmitted inmobile device 104. Additionally,control logic 206 pushes a new item onto the navigation page stack that identifies the AccountOpportunity model entry, a copy of the opportunities page definition, and identifier unique to Pinnacle sales account. -
FIG. 7 illustrates an example “Opportunities”page 702 that is displayed bymobile device 104 after it receives and deserializes the reply sent by the CRM. This page is presented in a list pattern like theopportunities page 402 shown inFIG. 4 . Unlikepage 402,page 702 only lists opportunities are presented that are tied to the Pinnacle sales account. Further, like theopportunities page 402, each item displayed inpage 702 is an active link to another page. To illustrate, the user can activate the “Pinnacle Server” opportunity link displayed onpage 702. In response,mobile device 104 can generate and send a request for the Pinnacle Server opportunity page. This is the same or similar request that was sent bymobile device 104 prior to display of the page shown inFIG. 5 .Control logic 206 receives the request frommobile device 104, and implements the same steps that were used to generate and send a reply which resulted in the page displayed inFIG. 5 . More particularly,control logic 206 selects theappropriate model entry 204 and stores data needed for the reply. In this example, the opportunity model entry is selected since the opportunity page definition is backed by a single row of data frommodel 204. Data from the opportunity model entry is selected and merged byserialization system 210 with the opportunity page definition, the result of which is serialized and transmitted tomobile device 104.Control logic 206 also enters a new item into the page navigation stack, which includes a copy of the opportunity page definition, the opportunity model entry identification, and an identifier unique to the Pinnacle Server opportunity.FIG. 8 illustrates theopportunity page 802 displayed bymobile device 104 after it receives and deserializes the reply. This page should be identical to the page shown inFIG. 5 , unless data of the particular opportunity has since changed. - A user may seek to create a new entry (e.g., a new opportunity, account, contact, etc.) within the logical data model. For example, the
opportunities page 702 includes a “Create” button that can be activated by the usermobile device 104. This button enables a user to create a new opportunity. To illustrate, when the user activates the create button shown withinFIG. 7 ,mobile device 104 generates and sends a request to create a new opportunity within the Pinnacle opportunities list.CRM 206, in response, selects the editable opportunity form page definition frommemory 202. This page is rendered and subsequently serialized before it is sent tomobile device 104.Mobile device 104 deserializes and displays the corresponding page.FIG. 9 illustrates an exampleeditable form 902 displayed onmobile device 104. This page enables a user to enter data into select fields. -
FIG. 6 or 7 illustrate pages that were reached via example recursive navigation. Normally, CRMs prohibit recursive of navigation. With recursive navigation, a user would not be able to forward navigate from theopportunity page 502 shown inFIG. 5 to theaccount page 602 shown inFIG. 6 . Rather, the user would be required to back navigate to thespringboard page 302 shown inFIG. 3 , followed by forward navigation to the page of interest, starting with theaccounts icon 308. Further, a user would not be able to forward navigate from theaccount page 602 to reach theopportunities page 702 shown withinFIG. 7 . A user could back navigate to thespringboard page 302 shown withinFIG. 3 , followed by forward navigation to an opportunities page, but the opportunities page may not be filtered to show only the list of opportunities associated with sales account “Pinnacle”. -
FIG. 10 illustrates greater details of the system shown inFIG. 2 . As noted above, the CRM is capable of recursive navigation.Control logic 206 is in data communication withstack memory 1006, which is configured to store one or more page stacks, each of which corresponds to a session between the CRM and a respective mobile device. For purposes of explanation,page stack 1010 is associated withmobile device 104.Logical data model 204 is structured to include root entries such as opportunity, account, and contact. The Opportunities_Table, Accounts_Table, and Contacts_Table illustrated inFIG. 10 are examples of tables that support the entries inlogical model 204.Logical data model 204 is structured with non-root entries in a finite relationship depth with the root entries. The logical model defines the relationship between root entries and non-root entries (e.g., AccountOpportunity). For example, the AccountOpportunity and AccountContact entries are related to the root account entry.Model 204 is an example of one structure that enables recursive navigation. - With continuing reference to
FIG. 10 ,FIG. 11 illustrates relevant operational aspects performed bycontrol logic 206 andserialization system 210 to enable one embodiment of recursive navigation. The process inFIG. 11 begins instep 1102 whencontrol logic 206 receives a request frommobile device 104. In response,control logic 206 accesses the page stack identified in the request and reads the page definition, model entry identity and any other information in the last item pushed onto the page stack as shown instep 1104. - In
step 1106, thecontrol logic 206 determines whether the request will create a new entry or row in thedata model 204. If the request will create a new row, then thecontrol logic 206 selects an entry in thedata model 204 into which the new row will be created. This selection is based upon the model entry identity read from the page stack instep 1104. For example,control logic 206 may select the opportunity entry or the AccountOpportunity entry based on the identity read frompage stack 1010 instep 1104. Instep 1112,control logic 206 creates a new row in this selected model entry, which in turn will be populated with data that will be received frommobile device 104. Thereafter, the process ends. - However, if it is determined in
step 1106 that the request will not create a new row in the data model, the process proceeds to 1114 wherecontrol logic 206 determines whether the request is for a forward or backward page navigation. If the request is for backward page navigation,control logic 206 reads the next to last item pushed ontostack 1010. More particularly, the process proceeds to step 1116 wherecontrol logic 206 pops the last item entered intostack 1010. Then controllogic 206 reads the page definition, model entry read and filter key from the most recently entered item instack 1010 as shown instep 1120. The page definition read instep 1120 is provided toserialization system 210 along with data needed by the page definition, which is provided by the model entry that was identified instep 1120, and the filter (if needed). The data from the identified model entry may be filtered and merged with the page definition, the result of which is then serialized for transmission to the mobile device. - If, however, the request is for a forward
page navigation instep 114, the process proceeds to step 1122 in which controllogic 206 selects the appropriate page definition frommemory 202 using information of the request received instep 1102. Instep 1124,control logic 206 determines whether the page definition selected instep 1122 is backed by a single row or multiple rows ofdata model 204. If the page definition is backed by a single row, then atstep 1126,control logic 206 selects the appropriate root entry (e.g., opportunity, account, contact, etc.) fromdata model 204 for the data needed to render the reply. If, however, the page definition selected instep 1122 is backed by multiple rows in the data model, then instep 1130 thecontrol logic 206 selects either a root entry or an entry related thereto based upon the model entry identity read instep 1104 and the root entry specified by the page definition selected inpage 1122. More particularly, thecontrol logic 206 select the model entry that is identified by the concatenation of the model entry identity read fromstack 1010 instep 1104 and the identity of the root entry identified in the page definition selected instep 1122, if they are different. If the identities are not different, and if the identity read fromstack 1010 is not “Home”, then instep 1132control logic 206 selects the root entry identified in the selected page definition. Thereafter, instep 1132, theserialization system 210 binds the selected page definition with data of the selected model entry, the result of which is transmitted to the mobile device. Instep 1134,control logic 206 creates and pushes a new item onto page stack withinmemory 1006. This new item should include a copy of the definition that was selected instep 1130 along with an identity of the model entry that was selected instep 1130, in addition to any filter information. -
FIG. 12A-12C illustratepage stack 1010 as items are pushed onto it in response to generation and transmission of replies that resulted in pages shown withinFIGS. 6 , 7, and 8, respectively. Each item within the page stack 10 includes a copy of the page definition, an identity of a model entry that was used to back the corresponding page definition, and a filter key (e.g., table key) from one of the database tables that can be used as a filter if a page is redisplayed as a result of backward navigation or if a filtered list is to presented in a page. The items in the stack are arranged in order of entry therein. Thus, inFIG. 12A ,item 4 is the most recently entered item ofstack 1010.Item 4 corresponds to “Pinnacle”account page 602 displayed onmobile device 104 inFIG. 6 . The key A10 is provided as a filter value in the event that a reply is recreated based upon a stack item. -
FIG. 13 depicts a block diagram of a computer system 1310 suitable for implementing the present disclosure. Computer system 1310 may be illustrative of various computer systems (e.g., servers or clients) shown inFIGS. 1 and 2 . Computer system 1310 includes a bus 1312 which interconnects major subsystems of computer system 1310, such as acentral processor 1314, a system memory 1317 (typically RAM, but which may also include ROM, flash RAM, or the like), an input/output controller 1318, an external audio device, such as aspeaker system 1320 via anaudio output interface 1322, an external device, such as adisplay screen 1324 viadisplay adapter 1326,serial ports storage interface 1334, afloppy disk drive 1337 operative to receive afloppy disk 1338, a host bus adapter (HBA)interface card 1335A operative to connect with aFibre Channel network 1390, a host bus adapter (HBA)interface card 1335B operative to connect to aSCSI bus 1339, and anoptical disk drive 1340 operative to receive anoptical disk 1342. Also included are a mouse 1346 (or other point-and-click device, coupled to bus 1312 via serial port 1328), a modem 1347 (coupled to bus 1312 via serial port 1330), and a network interface 1348 (coupled directly to bus 1312). - Bus 1312 allows data communication between
central processor 1314 andsystem memory 1317, which may include read-only memory (ROM) or flash memory (neither shown), and random access memory (RAM) (not shown), as previously noted. The RAM is generally the main memory into which the operating system and application programs are loaded. The ROM or flash memory can contain, among other code, the Basic Input-Output system (BIOS) which controls basic hardware operation such as the interaction with peripheral components. Applications resident with computer system 1310 are generally stored on and accessed via a computer readable medium, such as a hard disk drive (e.g., fixed disk 1344), an optical drive (e.g., optical drive 1340), afloppy disk unit 1337, or other storage medium. Additionally, applications can be in the form of electronic signals modulated in accordance with the application and data communication technology when accessed vianetwork modem 1347 orinterface 1348. -
Storage interface 1334, as with the other storage interfaces of computer system 1310, can connect to a standard computer readable medium for storage and/or retrieval of information, such as afixed disk drive 1344.Fixed disk drive 1344 may be a part of computer system 1310 or may be separate and accessed through other interface systems.Modem 1347 may provide a direct connection to a remote server via a telephone link or to the Internet via an interne service provider (ISP).Network interface 1348 may provide a direct connection to a remote server via a direct network link to the Internet via a POP (point of presence).Network interface 1348 may provide such connection using wireless techniques, including digital cellular telephone connection, Cellular Digital Packet Data (CDPD) connection, digital satellite data connection or the like. - The operation of a computer system such as that shown in
FIG. 13 is readily known in the art and is not discussed in detail in this application. Code for implementing a CRM can be stored in computer-readable storage media such as one or more ofsystem memory 1317, fixeddisk 1344,optical disk 1342, orfloppy disk 1338.Memory 1320 is also used for storing temporary variables or other intermediate information during the execution of instructions by the processor 1310. The operating system provided on computer system 1310 may be MS-DOS®, MS-WINDOWS®, OS/2®, UNIX®, Linux®, or another known operating system. - Although the invention has been described in connection with several embodiments, the invention is not intended to be limited to the specific forms set forth herein. On the contrary, it is intended to cover such alternatives, modifications, and equivalents as can be reasonably included within the scope of the invention as defined by the appended claims.
Claims (8)
1. A method comprising:
generating a first reply in response to receiving a first request from a mobile device, wherein the first reply is generated as a function of a page definition, and wherein the first reply comprises data selected from a first object of a logical data model, but not a second object of the logical data model, wherein the first and second objects are distinct from each other;
generating a second reply in response to receiving a second request from the mobile device, wherein the second reply is generated as a function of the page definition, and wherein the second reply comprises data selected from the second object but not the first object.
2. The method of claim 1 wherein the selection of the data from the first object is based on metadata of the page definition, and wherein the selection of the data from the second object is based on the metadata of the page definition.
3. The method of claim 1 further comprising:
generating another reply in response to receiving another request from the mobile device, wherein the other reply comprises data from another object of the logical data model, wherein the other reply is generated as a function of another page definition, wherein the page definition and the other page definition are distinct from each other;
pushing an item onto a stack, wherein the item comprises an identity of the other object and an identity of a other page definition or a copy thereof.
4. The method of claim 3 further comprising:
reading the identity of the other object in the stack in response to receiving the second request from the mobile device;
selecting the second object in response to reading the identity of the other object;
retrieving data from the second object in response to selecting the second object;
wherein the second reply is generated using the data retrieved from the second object.
5. A computer readable memory comprising instructions, wherein computer system implements a method in response to executing the instructions, the method comprising:
generating a first reply in response to receiving a first request from a mobile device, wherein the first reply is generated as a function of a page definition, and wherein the first reply comprises data selected from a first entry of a logical data model, but not a second entry of the logical data model, wherein the first and second entries are distinct from each other;
generating a second reply in response to receiving a second request from the mobile device, wherein the second reply is generated as a function of the page definition, and wherein the second reply comprises data selected from the second entry but not the first entry.
6. The computer readable memory of claim 5 wherein the selection of the data from the first entry is based on metadata of the page definition, and wherein the selection of the data from the second entry is based on the metadata of the page definition.
7. The computer readable memory of claim 5 wherein the method further comprises:
generating another reply in response to receiving another request from the mobile device, wherein the other reply comprises data from another entry of the logical data model, wherein the other reply is generated as a function of another page definition, wherein the page definition and the other page definition are distinct from each other;
pushing an item onto a stack, wherein the item comprises an identity of the other entry and an identity of a other page definition or a copy thereof.
8. The computer readable memory of claim 7 wherein the method further comprises:
reading the identity of the other entry in the stack in response to receiving the second request from the mobile device;
selecting the second entry in response to reading the identity of the other entry;
retrieving data from the second entry in response to selecting the second object;
wherein the second reply is generated using the data retrieved from the second entry.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/052208 WO2012037572A1 (en) | 2010-09-17 | 2011-09-19 | Recursive navigation in mobile customer relations management |
CN201180044371.4A CN103098055B (en) | 2010-09-17 | 2011-09-19 | Recursive navigation in mobile client relation management |
EP11785506.4A EP2616999A1 (en) | 2010-09-17 | 2011-09-19 | Recursive navigation in mobile customer relations management |
US13/236,476 US9741060B2 (en) | 2010-09-17 | 2011-09-19 | Recursive navigation in mobile CRM |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US38415010P | 2010-09-17 | 2010-09-17 | |
US13/236,476 US9741060B2 (en) | 2010-09-17 | 2011-09-19 | Recursive navigation in mobile CRM |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120124163A1 true US20120124163A1 (en) | 2012-05-17 |
US9741060B2 US9741060B2 (en) | 2017-08-22 |
Family
ID=45002105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/236,476 Active 2032-11-26 US9741060B2 (en) | 2010-09-17 | 2011-09-19 | Recursive navigation in mobile CRM |
Country Status (4)
Country | Link |
---|---|
US (1) | US9741060B2 (en) |
EP (1) | EP2616999A1 (en) |
CN (1) | CN103098055B (en) |
WO (1) | WO2012037572A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8942679B2 (en) | 2010-09-17 | 2015-01-27 | Oracle International Corporation | Method and system for providing pattern based enterprise applications for organizing, automating, and synchronizing processes for mobile communication devices |
US9275165B2 (en) | 2010-09-17 | 2016-03-01 | Oracle International Corporation | Method and apparatus for defining an application to allow polymorphic serialization |
US11144653B2 (en) * | 2016-08-22 | 2021-10-12 | Accenture Global Solutions Limited | Network communication stack for database control and resource planning |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8781532B2 (en) * | 2005-09-19 | 2014-07-15 | Google Inc. | Customized data retrieval applications for mobile devices providing interpretation of markup language data |
US9760897B2 (en) * | 2013-09-21 | 2017-09-12 | Oracle International Corporation | Method and system for defining an offlinable view/controller graph |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0908833A2 (en) * | 1997-10-11 | 1999-04-14 | International Computers Limited | Computer system for supporting a website |
US20020140731A1 (en) * | 2001-03-28 | 2002-10-03 | Pavitra Subramaniam | Engine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site |
US20050102281A1 (en) * | 2003-09-19 | 2005-05-12 | Seiji Takahashi | Information processing apparatus and information processing method |
US20050149511A1 (en) * | 2000-06-21 | 2005-07-07 | Microsoft Corporation | Methods and systems of providing information to computer users |
US20060143193A1 (en) * | 2004-12-29 | 2006-06-29 | Microsoft Corporation | Method and apparatus for metadata driven business logic processing |
US20060173873A1 (en) * | 2000-03-03 | 2006-08-03 | Michel Prompt | System and method for providing access to databases via directories and other hierarchical structures and interfaces |
US20070089065A1 (en) * | 2005-10-17 | 2007-04-19 | Microsoft Corporation | Secondary navigation |
US20080028335A1 (en) * | 2000-06-12 | 2008-01-31 | Rohrabaugh Gary B | Scalable display of internet content on mobile devices |
US20080140624A1 (en) * | 2006-12-12 | 2008-06-12 | Ingo Deck | Business object summary page |
US20090177685A1 (en) * | 2008-01-09 | 2009-07-09 | Credit Suisse Securities (Usa) Llc | Enterprise architecture system and method |
US7574486B1 (en) * | 2000-11-06 | 2009-08-11 | Telecommunication Systems, Inc. | Web page content translator |
US7720861B1 (en) * | 2000-07-19 | 2010-05-18 | Vasudevan Software Inc. | Multimedia inspection database system (MIDaS) for dynamic run-time data evaluation |
US20100299588A1 (en) * | 2009-05-21 | 2010-11-25 | Michael Joseph Dattilo | Method and system for providing interaction between a host system and web pages |
US20110066982A1 (en) * | 2009-09-15 | 2011-03-17 | Prabakar Paulsami | Hierarchical Model for Web Browser Navigation |
US20120047445A1 (en) * | 2010-08-20 | 2012-02-23 | Salesforce.Com, Inc. | Pre-fetching pages and records in an on-demand services environment |
Family Cites Families (103)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572643A (en) | 1995-10-19 | 1996-11-05 | Judson; David H. | Web browser with dynamic display of information objects during linking |
US6128621A (en) | 1997-10-31 | 2000-10-03 | Oracle Corporation | Apparatus and method for pickling data |
US6268856B1 (en) | 1998-09-08 | 2001-07-31 | Webtv Networks, Inc. | System and method for controlling delivery of content over a communications network |
US6763343B1 (en) | 1999-09-20 | 2004-07-13 | David M. Brooke | Preventing duplication of the data in reference resource for XML page generation |
US6748569B1 (en) | 1999-09-20 | 2004-06-08 | David M. Brooke | XML server pages language |
US7007275B1 (en) | 1999-10-21 | 2006-02-28 | Unisys Corporation | Method and apparatus for automatic execution of concatenated methods across multiple heterogeneous data sources |
US20030191685A1 (en) | 2000-01-31 | 2003-10-09 | Reese Jeffrey M. | Method and system for event-centric user profiling and targeting |
US6871346B1 (en) | 2000-02-11 | 2005-03-22 | Microsoft Corp. | Back-end decoupled management model and management system utilizing same |
US6925646B1 (en) | 2000-04-20 | 2005-08-02 | E★Trade | Inheritance of object's properties and out of different application contexts in properties file objects |
US7702995B2 (en) | 2000-04-24 | 2010-04-20 | TVWorks, LLC. | Method and system for transforming content for execution on multiple platforms |
US7747782B2 (en) | 2000-04-26 | 2010-06-29 | Novarra, Inc. | System and method for providing and displaying information content |
US6327628B1 (en) | 2000-05-19 | 2001-12-04 | Epicentric, Inc. | Portal server that provides a customizable user Interface for access to computer networks |
CA2310943A1 (en) | 2000-06-02 | 2001-12-02 | Michael J. Sikorsky | Methods, techniques, software and systems for providing context independent, protocol independent portable or reusable development tools |
US20020046240A1 (en) | 2000-08-31 | 2002-04-18 | Scott Graham | Web server framework |
US7139370B1 (en) | 2000-08-31 | 2006-11-21 | Nortel Networks Limited | Using hyperlinks to establish call sessions |
US6501956B1 (en) | 2000-10-17 | 2002-12-31 | Intervoice Limited Partnership | Providing blended interface for wireless information services |
US6859820B1 (en) | 2000-11-01 | 2005-02-22 | Microsoft Corporation | System and method for providing language localization for server-based applications |
US7113935B2 (en) | 2000-12-06 | 2006-09-26 | Epicrealm Operating Inc. | Method and system for adaptive prefetching |
US7035620B2 (en) | 2000-12-11 | 2006-04-25 | At Road, Inc. | Playing of audio via voice calls initiated from visual navigation |
US20020078165A1 (en) | 2000-12-14 | 2002-06-20 | International Business Machines Corporation | System and method for prefetching portions of a web page based on learned preferences |
ATE497214T1 (en) | 2000-12-22 | 2011-02-15 | Research In Motion Ltd | SYSTEM AND METHOD FOR NAVIGATING INFORMATION USING A WIRELESS COMMUNICATIONS DEVICE |
US6964014B1 (en) | 2001-02-15 | 2005-11-08 | Networks Associates Technology, Inc. | Method and system for localizing Web pages |
US7120639B1 (en) | 2001-06-27 | 2006-10-10 | Microsoft Corporation | Pluggable formatters |
US7117504B2 (en) | 2001-07-10 | 2006-10-03 | Microsoft Corporation | Application program interface that enables communication for a network software platform |
US7165239B2 (en) | 2001-07-10 | 2007-01-16 | Microsoft Corporation | Application program interface for network software platform |
US7017162B2 (en) | 2001-07-10 | 2006-03-21 | Microsoft Corporation | Application program interface for network software platform |
US7546602B2 (en) | 2001-07-10 | 2009-06-09 | Microsoft Corporation | Application program interface for network software platform |
AU2002334721B2 (en) | 2001-09-28 | 2008-10-23 | Oracle International Corporation | An index structure to access hierarchical data in a relational database system |
US20040110490A1 (en) | 2001-12-20 | 2004-06-10 | Steele Jay D. | Method and apparatus for providing content to media devices |
US20030229508A1 (en) | 2002-02-21 | 2003-12-11 | Monte Zweben | Methods and systems for providing targeted marketing over the internet |
US20100174717A1 (en) | 2002-02-28 | 2010-07-08 | Olivier Fambon | Interative serialisation procedure for structured software objects |
US7627534B2 (en) | 2002-03-19 | 2009-12-01 | Gomed Llc | System and method for storing information for a wireless device |
JP4047041B2 (en) | 2002-03-19 | 2008-02-13 | キヤノン株式会社 | Information processing system, information processing apparatus, information processing method, and program for realizing the same |
US20060149624A1 (en) | 2004-12-30 | 2006-07-06 | Shumeet Baluja | Generating and/or serving local area advertisements, such as advertisements for devices with call functionality |
US8516114B2 (en) | 2002-03-29 | 2013-08-20 | International Business Machines Corporation | Method and apparatus for content pre-fetching and preparation |
US7490167B2 (en) | 2002-05-22 | 2009-02-10 | Sony Corporation | System and method for platform and language-independent development and delivery of page-based content |
US6987987B1 (en) * | 2002-07-03 | 2006-01-17 | Sprint Spectrum L.P. | Method and system for providing advanced notice of cost to access web content |
US20070174330A1 (en) | 2002-11-25 | 2007-07-26 | Zdk Interactive Inc. | Mobile report generation for multiple device platforms |
US20040181467A1 (en) * | 2003-03-14 | 2004-09-16 | Samir Raiyani | Multi-modal warehouse applications |
US7051042B2 (en) | 2003-05-01 | 2006-05-23 | Oracle International Corporation | Techniques for transferring a serialized image of XML data |
US20050003810A1 (en) | 2003-05-28 | 2005-01-06 | Sun Microsystems, Inc. | Method and system for optimizing software program start-up time |
US7331038B1 (en) | 2003-07-02 | 2008-02-12 | Amazon.Com, Inc. | Predictive prefetching to improve parallelization of document generation subtasks |
US7296022B2 (en) | 2003-07-14 | 2007-11-13 | Microsoft Corporation | Method and system for accessing a network database as a web service |
US7506070B2 (en) | 2003-07-16 | 2009-03-17 | Sun Microsytems, Inc. | Method and system for storing and retrieving extensible multi-dimensional display property configurations |
US7831693B2 (en) | 2003-08-18 | 2010-11-09 | Oracle America, Inc. | Structured methodology and design patterns for web services |
US7236982B2 (en) | 2003-09-15 | 2007-06-26 | Pic Web Services, Inc. | Computer systems and methods for platform independent presentation design |
US20050091272A1 (en) | 2003-10-23 | 2005-04-28 | Smith Walter R. | Contact management |
US7483941B2 (en) | 2004-01-13 | 2009-01-27 | International Business Machines Corporation | System and method for dynamically inserting prefetch tags by the web server |
US7480894B2 (en) | 2004-02-20 | 2009-01-20 | International Business Machines Corporation | Method and system for retaining formal data model descriptions between server-side and browser-side javascript objects |
US7685155B2 (en) | 2004-03-23 | 2010-03-23 | Microsoft Corporation | System and method of providing and utilizing an object schema to facilitate mapping between disparate domains |
US20050273705A1 (en) | 2004-06-08 | 2005-12-08 | Fortellio, Llc | Method and system for automatically creating network software applications |
US20060059225A1 (en) | 2004-09-14 | 2006-03-16 | A9.Com, Inc. | Methods and apparatus for automatic generation of recommended links |
US7325014B1 (en) | 2004-09-23 | 2008-01-29 | Cranberry Technologies, Inc. | Direct rendering of a web application from a database to a web browser |
WO2006085314A2 (en) | 2005-02-11 | 2006-08-17 | Flash Networks Ltd | Method and system for improving user experience while browsing |
EP1851714A2 (en) | 2005-02-16 | 2007-11-07 | Videonline, Inc. | Videonline security network architecture and methods therefor |
EP1880316A1 (en) | 2005-05-11 | 2008-01-23 | Nokia Corporation | User-defined changing of page representations |
US7461075B2 (en) | 2005-05-20 | 2008-12-02 | International Business Machines Corporation | Method for updating XML schema registry using schema pass by value with message |
US20060277271A1 (en) | 2005-06-07 | 2006-12-07 | Yahoo! Inc. | Prefetching content based on a mobile user profile |
KR100627718B1 (en) | 2005-06-15 | 2006-09-25 | 에스케이 텔레콤주식회사 | Method and mobile communication terminal for providing function of hyperlink telephone number including short message service |
US7907966B1 (en) | 2005-07-19 | 2011-03-15 | Aol Inc. | System and method for cross-platform applications on a wireless phone |
WO2007016510A2 (en) | 2005-08-01 | 2007-02-08 | Andrew Erlichson | Transferring of digital information |
US20070061779A1 (en) | 2005-09-13 | 2007-03-15 | Bernd Dowedeit | Method and System and Computer Program Product For Maintaining High Availability Of A Distributed Application Environment During An Update |
US20070150610A1 (en) | 2005-12-22 | 2007-06-28 | Konstantin Vassilev | Javascript relay |
US20070208704A1 (en) | 2006-03-06 | 2007-09-06 | Stephen Ives | Packaged mobile search results |
US7774699B2 (en) | 2006-03-10 | 2010-08-10 | Oracle International Corporation | Parallel data transformation |
US7908611B2 (en) | 2006-03-17 | 2011-03-15 | Microsoft Corporation | Unmanaged programming language interoperability with managed internet protocol context |
US20080172608A1 (en) | 2006-06-06 | 2008-07-17 | Bellsouth Intellectual Property Corporation | Site builder |
US20070287413A1 (en) | 2006-06-07 | 2007-12-13 | Kleitsch Andrew H | Method and system for mobile billing and content delivery |
US20070300237A1 (en) | 2006-06-22 | 2007-12-27 | Tim Neil | Facilitating access to application data at an application server by a wireless communication device |
US20090005122A1 (en) | 2006-07-10 | 2009-01-01 | David Elliot Goldfarb | Advertisement-based dialing |
US9268873B2 (en) | 2006-08-04 | 2016-02-23 | Yahoo! Inc. | Landing page identification, tagging and host matching for a mobile application |
US20080072139A1 (en) | 2006-08-20 | 2008-03-20 | Robert Salinas | Mobilizing Webpages by Selecting, Arranging, Adapting, Substituting and/or Supplementing Content for Mobile and/or other Electronic Devices; and Optimizing Content for Mobile and/or other Electronic Devices; and Enhancing Usability of Mobile Devices |
US8631041B2 (en) | 2006-10-20 | 2014-01-14 | Adobe Systems Incorporated | Secondary lazy-accessible serialization of electronic content |
US7523223B2 (en) | 2006-11-16 | 2009-04-21 | Sap Ag | Web control simulators for mobile devices |
US20080195936A1 (en) | 2007-02-09 | 2008-08-14 | Fortent Limited | Presenting content to a browser |
US20080201338A1 (en) | 2007-02-16 | 2008-08-21 | Microsoft Corporation | Rest for entities |
CA2578980A1 (en) | 2007-02-19 | 2008-08-19 | Cognos Incorporated | System and method of report rendering |
US20090271762A1 (en) | 2008-04-29 | 2009-10-29 | Sugarcrm Inc. | Business software application system and method |
GB2438475A (en) | 2007-03-07 | 2007-11-28 | Cvon Innovations Ltd | A method for ranking search results |
GB2443580B (en) | 2007-05-18 | 2008-07-30 | Cvon Innovations Ltd | Access system and method |
US7921187B2 (en) | 2007-06-28 | 2011-04-05 | Apple Inc. | Newsreader for mobile device |
WO2009001137A1 (en) | 2007-06-28 | 2008-12-31 | Taptu Ltd | Interactive web scraping of online content for search and display on mobile devices |
US20090003603A1 (en) | 2007-06-29 | 2009-01-01 | Metabeam Corporation | Platform Independent Networked Communications |
US20090083232A1 (en) | 2007-09-24 | 2009-03-26 | Taptu Ltd. | Search results with search query suggestions |
US7917584B2 (en) | 2007-10-22 | 2011-03-29 | Xcerion Aktiebolag | Gesture-based collaboration |
US8131875B1 (en) | 2007-11-26 | 2012-03-06 | Adobe Systems Incorporated | Device profile assignment based on device capabilities |
US20100299438A1 (en) | 2008-01-21 | 2010-11-25 | Gottfried Zimmerman | Online resource server for allowing device control and access to digital content trhough pluggable user interfaces |
US7949780B2 (en) | 2008-01-29 | 2011-05-24 | Oracle America, Inc. | Adaptive flow control techniques for queuing systems with multiple producers |
US8135707B2 (en) | 2008-03-27 | 2012-03-13 | Yahoo! Inc. | Using embedded metadata to improve search result presentation |
JP4577422B2 (en) | 2008-07-14 | 2010-11-10 | ソニー株式会社 | Information processing system and information processing method, robot control system and control method, and computer program |
JP4733167B2 (en) * | 2008-08-20 | 2011-07-27 | フェリカネットワークス株式会社 | Information processing apparatus, information processing method, information processing program, and information processing system |
US8763008B2 (en) | 2008-09-30 | 2014-06-24 | Ebay Inc. | System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture |
US7952500B2 (en) | 2009-01-27 | 2011-05-31 | Tatu Ylonen Oy | Serialization of shared and cyclic data structures using compressed object encodings |
US20100235473A1 (en) | 2009-03-10 | 2010-09-16 | Sandisk Il Ltd. | System and method of embedding second content in first content |
US9311425B2 (en) | 2009-03-31 | 2016-04-12 | Qualcomm Incorporated | Rendering a page using a previously stored DOM associated with a different page |
US8886760B2 (en) | 2009-06-30 | 2014-11-11 | Sandisk Technologies Inc. | System and method of predictive data acquisition |
US8321533B2 (en) | 2009-08-03 | 2012-11-27 | Limelight Networks, Inc. | Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques |
US8473688B2 (en) | 2010-03-26 | 2013-06-25 | Microsoft Corporation | Anticipatory response pre-caching |
EP2561451A4 (en) | 2010-04-19 | 2018-02-07 | Hewlett Packard Development Company, L.P. | Segmenting a web page into coherent functional blocks |
US20120079009A1 (en) | 2010-09-17 | 2012-03-29 | Oracle International Corporation | Method and apparatus for choosing resources based on context and inheritance |
US9275165B2 (en) | 2010-09-17 | 2016-03-01 | Oracle International Corporation | Method and apparatus for defining an application to allow polymorphic serialization |
EP2616970A1 (en) | 2010-09-17 | 2013-07-24 | Oracle International Corporation | Method and apparatus for binding mobile device functionality to an application definition |
US8386955B1 (en) | 2011-10-21 | 2013-02-26 | Google Inc. | User-optimized content for web browsing windows |
-
2011
- 2011-09-19 WO PCT/US2011/052208 patent/WO2012037572A1/en active Application Filing
- 2011-09-19 US US13/236,476 patent/US9741060B2/en active Active
- 2011-09-19 CN CN201180044371.4A patent/CN103098055B/en active Active
- 2011-09-19 EP EP11785506.4A patent/EP2616999A1/en not_active Ceased
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0908833A2 (en) * | 1997-10-11 | 1999-04-14 | International Computers Limited | Computer system for supporting a website |
US20060173873A1 (en) * | 2000-03-03 | 2006-08-03 | Michel Prompt | System and method for providing access to databases via directories and other hierarchical structures and interfaces |
US20080028335A1 (en) * | 2000-06-12 | 2008-01-31 | Rohrabaugh Gary B | Scalable display of internet content on mobile devices |
US20050149511A1 (en) * | 2000-06-21 | 2005-07-07 | Microsoft Corporation | Methods and systems of providing information to computer users |
US7720861B1 (en) * | 2000-07-19 | 2010-05-18 | Vasudevan Software Inc. | Multimedia inspection database system (MIDaS) for dynamic run-time data evaluation |
US7574486B1 (en) * | 2000-11-06 | 2009-08-11 | Telecommunication Systems, Inc. | Web page content translator |
US20020140731A1 (en) * | 2001-03-28 | 2002-10-03 | Pavitra Subramaniam | Engine to present a user interface based on a logical structure, such as one for a customer relationship management system, across a web site |
US20050102281A1 (en) * | 2003-09-19 | 2005-05-12 | Seiji Takahashi | Information processing apparatus and information processing method |
US20060143193A1 (en) * | 2004-12-29 | 2006-06-29 | Microsoft Corporation | Method and apparatus for metadata driven business logic processing |
US20070089065A1 (en) * | 2005-10-17 | 2007-04-19 | Microsoft Corporation | Secondary navigation |
US20080140624A1 (en) * | 2006-12-12 | 2008-06-12 | Ingo Deck | Business object summary page |
US20090177685A1 (en) * | 2008-01-09 | 2009-07-09 | Credit Suisse Securities (Usa) Llc | Enterprise architecture system and method |
US20100299588A1 (en) * | 2009-05-21 | 2010-11-25 | Michael Joseph Dattilo | Method and system for providing interaction between a host system and web pages |
US20110066982A1 (en) * | 2009-09-15 | 2011-03-17 | Prabakar Paulsami | Hierarchical Model for Web Browser Navigation |
US20120047445A1 (en) * | 2010-08-20 | 2012-02-23 | Salesforce.Com, Inc. | Pre-fetching pages and records in an on-demand services environment |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8942679B2 (en) | 2010-09-17 | 2015-01-27 | Oracle International Corporation | Method and system for providing pattern based enterprise applications for organizing, automating, and synchronizing processes for mobile communication devices |
US9026583B2 (en) | 2010-09-17 | 2015-05-05 | Oracle International Corporation | Method and apparatus for polymorphic serialization |
US9122767B2 (en) | 2010-09-17 | 2015-09-01 | Oracle International Corporation | Method and apparatus for pre-rendering expected system response |
US9275165B2 (en) | 2010-09-17 | 2016-03-01 | Oracle International Corporation | Method and apparatus for defining an application to allow polymorphic serialization |
US11144653B2 (en) * | 2016-08-22 | 2021-10-12 | Accenture Global Solutions Limited | Network communication stack for database control and resource planning |
Also Published As
Publication number | Publication date |
---|---|
EP2616999A1 (en) | 2013-07-24 |
CN103098055B (en) | 2018-01-12 |
CN103098055A (en) | 2013-05-08 |
WO2012037572A1 (en) | 2012-03-22 |
US9741060B2 (en) | 2017-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9122767B2 (en) | Method and apparatus for pre-rendering expected system response | |
US8812546B1 (en) | State management for user interfaces | |
US9275165B2 (en) | Method and apparatus for defining an application to allow polymorphic serialization | |
US20120079009A1 (en) | Method and apparatus for choosing resources based on context and inheritance | |
JP2010521721A (en) | Web data usage platform | |
US20080168079A1 (en) | Extending Native Data Types | |
US9741060B2 (en) | Recursive navigation in mobile CRM | |
US10873552B2 (en) | Large data management in communication applications through multiple mailboxes | |
US10855637B2 (en) | Architecture for large data management in communication applications through multiple mailboxes | |
US9424256B2 (en) | Method and apparatus for performing type-aware change tracking in a document | |
US20170055102A1 (en) | Method and system for defining an offlinable model graph | |
US20110302484A1 (en) | Electronic Forms Completion Method | |
US9760897B2 (en) | Method and system for defining an offlinable view/controller graph |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ORACLE INTERNATIONAL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CARTER, WAYNE;TADEPALLI, SRIDHAR;YASEEN, RAHIM;SIGNING DATES FROM 20120402 TO 20120508;REEL/FRAME:028279/0609 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |