Method and Apparatus for Binding Mobile Device Functionality to an Application Definition
In one embodiment, a mobile device renders a page on a screen thereof in response to the mobile device receiving a serialized page definition via a wireless communication link from a server implementing a CRM. The serialized page definition comprises first data and a first command that is bound to the first data. The mobile device is configured to implement a first function when the first command is invoked by a user. The mobile device implements the first function in response to user invocation of the first command, wherein the first function is implemented using the first data.
Latest Oracle Patents:
- Methods, systems, and computer readable media for supporting circuit breaker design pattern at consumer network function (NF)
- Message infrastructure platform transitions based on subscription heuristics
- Methods, systems, and computer readable media for avoiding sending of duplicate notifications for overlapping subscriptions at network function (NF) repository function (NRF)
- Cross compilation unit sparse conditional constant propagation
- Associating capabilities and alarms
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.
BACKGROUNDEnterprise 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 a 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 employees of a company via a desktop computer system that is coupled via a network to a data processing system. 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 related services to users via their mobile devices, it being understood that the present invention should not be limited thereto.
SUMMARYIn one embodiment, a mobile device renders a page on a screen thereof in response to the mobile device receiving a serialized page definition via a wireless communication link from a server implementing a CRM. The serialized page definition comprises first data and a first command that is bound to the first data. The mobile device is configured to implement a first function when the first command is invoked by a user. The mobile device implements the first function in response to user invocation of the first command, wherein the first function is implemented using the first data.
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.
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 accessing, reviewing, and/or updating sales opportunities, contacts, leads, calendar entries, etc.
The CRM implements a model-view-controller architecture. The CRM includes a single, metadata driven application that contains multiple page definitions. In response to receiving a page request from mobile device 102 or 104, the CRM merges a selected page definition with data of a logical data model, 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 and displays a corresponding page that includes visual representations of the merged data. 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 116, which in turn store data of business objects of a logical data model. A business 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 many tables of the relational database 116. 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
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 210 and serialization system 212. Control logic 206 accepts data input from a user via mobile device 102 or 104 and instructs the logical data model 204 to perform actions (e.g., updating an opportunity) based on that data input. In response to receiving a page request from mobile device 102 or 104 via interface 210, control logic 206 may access the application definition in memory 202 to identify and retrieve a copy of the page definition, or relevant components thereof, which is needed to form the requested page. The page definition retrieved from memory 210 may contain metadata that binds the page definition to the logical data model 212 for data needed in the requested page. Control logic 206 can make calls on business objects of logical data model 204 to retrieve the data of interest. The page definition is merged with data from model 204, the result of which is serialized by serialization system 212 and subsequently transmitted to the requesting mobile device in a reply. Ultimately, the requesting mobile device receives the reply, deserializers its content, and displays a corresponding page on a screen.
As will be more fully described, users can invoke functions of the mobile devices such as cell phone, email, mapping, etc., via displayed pages such as those shown in
In addition to illustrating example pages of the CRM,
With continuing reference to
In contrast, mobile device 104 lacks multiple physical buttons and a physical keyboard. Mobile device 104 has one physical button 402 and a touch sensitive display screen 402. In
The peripherals interface 502 is coupled to an I/O subsystem 514 that contains various controllers that interact with other components of mobile device 102. I/O subsystem 514 includes a keyboard controller coupled to receive input from the physical keyboard 320. The track ball controller is coupled to receive input from the trackball 318. And dedicated buttons controllers receive respective inputs from dedicated buttons 310-316.
Memory controller 502 is coupled to memory 518, which may take form in one or more types of computer readable medium. Memory 518 stores several software components or modules including a communication module that provides communication procedures, which enable communication between mobile device 102 and server 106 via a wireless communication link. Memory 518 may also include a software development kit (SDK) 522, an operating system 524, and a set of applications including CRM client 526 as shown. Other components in memory 518 may support email, texting, mapping, etc. The CRM client 526, as will be more fully described below, operates in conjunction with other modules (e.g., operating system 524, etc.) shown within
With continuing reference to
The peripherals interface 602 is coupled to an I/O subsystem 614 that contains various controllers that interact with other components of mobile device 104. I/O subsystem 614 includes a touch screen controller that is coupled to the touch sensitive display screen 404 shown in
Memory controller 602 is coupled to memory 618, which may take form in one or more types of computer readable medium. Memory 618 stores several software components or modules including a communication module that provides communication procedures, which enable communication between mobile device 104 and server 106 via a wireless communication link. Memory 618 may also include an SDK 622, an operating system 624, and a set of applications including CRM client 626 as shown. Other components in memory 618 may support email service, texting, etc. The CRM client 626, as will be more fully described below, operates in conjunction with modules shown within
CRM client 626 of mobile device 104 is substantially different than the CRM client 526 of mobile device 102. The differences enable pages requested from the CRM to be displayed with a look and feel that is native to mobile devices 102 and 104, respectively, and similar to the look and feel of pages displayed by other applications in memory 518 and 618. respectively. Look and feel is a term used to describe aspects of page design, including elements such as colors, shapes, layout, and typefaces (the “look”), as well as the behavior of dynamic elements such as buttons, boxes, and menus (the “feel”).
CRM clients 526 and 626 may include expression language (EL) engines (not shown) that can generate distinct sequences of instructions for SDKs 522 and 622, respectively, in response to implementing commands that are bound to components such as buttons of a displayed page. CRM clients 526 and 626 implement the command and issue the instructions in response to user activation of bound buttons. EL instructions when executed invoke a mobile device function such as email, cell phone, etc. Thus, the EL engine of CRM client 526 will generate a sequence of instructions when the user of mobile device 102 activates the Email button of page 300, or the EL engine of CRM client 626 will generate a different sequence of instructions when the user of mobile device 104 activates the email button 412 of page 400.
With continuing reference to
Returning to In
The application for the CRM can be designed so that users can invoke mobile device functionality (e.g., email, cell phone, etc.) from pages such as the Opportunity pages 300 and 400 shown in
Page definitions, when first designed or subsequently modified, can include references to the MDI. Specifically, page definitions can include-entries with metadata bindings that reference entries in the MDI.
During serialization of a page definition, serialization system 212 analyses bindings to determine if they are for functionality of the mobile device.
Bus 912 allows data communication between central processor 914 and system memory 917, 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 910 are generally stored on and accessed via a computer readable medium, such as a hard disk drive (e.g., fixed disk 944), an optical drive (e.g., optical drive 940), a floppy disk unit 937, 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 947 or interface 948.
Storage interface 934, as with the other storage interfaces of computer system 910, can connect to a standard computer readable medium for storage and/or retrieval of information, such as a fixed disk drive 944. Fixed disk drive 944 may be a part of computer system 910 or may be separate and accessed through other interface systems. Modem 947 may provide a direct connection to a remote server via a telephone link or to the Internet via an internet service provider (ISP). Network interface 948 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 948 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
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
1. A method comprising:
- a mobile device rendering a page for display on a screen thereof in response to the mobile device receiving a serialized page definition via a wireless communication link, wherein the serialized page definition comprises first data and a first command that is bound to the first data, wherein the mobile device is configured to implement a first function when the first command is invoked by a user;
- the mobile device implementing the first function in response to user invocation of the first command, wherein the first function is implemented using the first data.
2. The method of claim 1 further comprising:
- a server serializing the page definition in response to the server receiving a request for the page from the mobile device via the wireless communication link, wherein the serializing comprises binding the first command to the first data;
- the server sending the serialized page to the mobile device via the wireless communication link.
3. The method of claim 2 wherein the serializing comprises an act of reading the first data from a database in data communication with the server.
4. The method of claim 3 wherein the page definition comprises first metadata bound to a first instruction, wherein the first metadata corresponds to the first data, and the first instruction corresponds to the first command.
5. The method of claim 4 wherein serializing the page definition comprises an act of translating the first instruction into the first command.
6. The method of claim 1 wherein the page comprises a visual representation of the first data.
7. The method of claim 1 wherein the first data comprises an email address, and the first function comprises the mobile device sending an email to the email address.
8. The method of claim 1 wherein the first data comprises a telephone number and the first function comprises the mobile device initiating a telephone call to the telephone number.
9. A computer readable medium comprising executable instructions, wherein a mobile device implements a method in response to executing the instructions, the method comprising:
- the mobile device rendering a page for display on a screen thereof in response to the mobile device receiving a serialized page definition via a wireless communication link, wherein the serialized page definition comprises first data and a first command that is bound to the first data, wherein the mobile device is configured to implement a first function when the first command is invoked by a user;
- the mobile device implementing the first function in response to user invocation of the first command, wherein the first function is implemented using the first data.
10. The computer readable medium of claim 9 wherein the first data comprises an email address and the first function comprises the mobile device sending an email to the email address.
11. The computer readable medium of claim 9 wherein the first data comprises a telephone number and the first function comprises the mobile device initiating a telephone call to the telephone number.
12. A computer readable medium comprising executable instructions, wherein a method is implemented in response to executing the instructions, the method comprising:
- a server serializing a page definition in response to the server receiving a request for a page from a mobile device via a wireless communication link, wherein the serializing comprises binding a first command to first data, wherein the serialized page definition comprises first data and the first command that is bound to the first data, wherein the mobile device can implement a first function corresponding toe the first command;
- the server sending the serialized page to the mobile device via the wireless communication link.
13. The computer readable medium of claim 12 wherein the serializing comprises an act of reading the first data from a database in data communication with the server.
14. The computer readable medium of claim 13 wherein the page definition comprises first metadata bound to a first instruction, wherein the first metadata corresponds to the first data, and the first instruction corresponds to the first command.
15. The computer readable medium of claim 14 wherein serializing the page definition comprises an act of translating the first instruction into the first command.
16. A method comprising:
- a server serializing a page definition in response to the server receiving a request for a page from a mobile device via a wireless communication link, wherein the serializing comprises binding a first command to first data, wherein the serialized page definition comprises first data and the first command that is bound to the first data, wherein the mobile device can implement a first function corresponding to the first command;
- the server sending the serialized page to the mobile device via the wireless communication link.
17. The computer readable medium of claim 16 wherein the serializing comprises an act of reading the first data from a database in data communication with the server.
18. The computer readable medium of claim 17 wherein the page definition comprises first metadata bound to a first instruction, wherein the first metadata corresponds to the first data, and the first instruction corresponds to the first command.
19. The computer readable medium of claim 18 wherein serializing the page definition comprises an act of translating the first instruction into the first command.
Type: Application
Filed: Sep 19, 2011
Publication Date: Mar 22, 2012
Applicant: Oracle International Corporation (Redwood Shores, CA)
Inventors: Wayne Carter (Salt Lake City, UT), Sridhar Tadepalli (Foster City, CA), Rahim Yaseen (Redwood City, CA)
Application Number: 13/236,216
International Classification: H04W 4/00 (20090101);