Inter- and intra-business communications currently rely primarily on email systems, file server systems or shared data stores, and disparate siloed calendaring systems to accomplish messaging, information storage, task and meeting tracking, and telephony (defined as technology associated with the electronic transmission of voice, facsimile, or other information between distant parties using processes analogous to those historically associated with the telephone). Such systems are generally limited to “one-to-one” or “one-to-many” communications, and are not good at either forming hierarchical structures for group communication or for handling complex business communications such as group conference calls, group file sharing, group to-do lists or task tracking, and group scheduling.
Business, however, organizes around groups. Different groups may form hierarchical structures not well served by simple “one-to-one” or “one-to-many” communication and collaboration. In a university system, for example, a hierarchical group structure may be: Office of the Provost, College, Department, Committee, and Working Groups. Groups can be viewed as basic units when carrying out business communications. Typical business communication behaviors include exchanging ideas, conferencing, file sharing, calendaring resources and personnel, and managing to-do lists or tracking task progress.
Current systems are inadequate to flexibly handle communications to such groups for such topics. An email-based implementation of group communications typically requires system administrators to establish hierarchical or topic-specific groups and populate them with lists of individual recipients at each hierarchical level or for each topic. After the initial setup effort, email messages sent by members of the group are delivered to each user's common inbox, where that user must either configure a rule to differentiate the messages for a particular group, or use whatever search function is offered by the email system to locate and access messages by recipient and/or topic.
Email implementations are also generally unsecurable, since users in a working group working on sensitive and/or confidential information are typically free to share that information outside of their group. Email controls, when used, typically do not integrate with other communications services, such as text messaging, instant messaging, and telephony, such that duplicative initial set up efforts are frequently performed on a service-by-service basis in order to add additional communications capabilities and controls.
Other common communications services have their own unique flaws. For example, if public social networks such as Facebook or Twitter are used for business communications, an enterprise usually has no control over user account information and little ability to track communication messages. Public social networks also do not draw clear boundaries between employees' business and personal contacts.
A group-centric, secure, unified communication solution is thus needed.
A method for group communication in an enterprise is disclosed. The method comprises the step of accepting, as associated with a first user who is a member of a division of the enterprise, registration information for a first mobile computing device connected to an external electronic communications network. The method comprises the step of storing, in a database by a server computing device connected to an internal electronic communications network behind a firewall, the registration information in a first record associated with the first user. The method comprises the step of accepting a command from a first client program executing on the first mobile computing device to create, of the first user and a second user who is a member of the division of the enterprise, a subgroup within a group corresponding to the division of the enterprise. The method comprises the step of modifying the record associated with the first user to indicate the first user's membership in the subgroup. The method comprises the step of pushing, to a second mobile computing device of the second user, an invitation to join the subgroup. The method comprises the step of accepting, from a second client program on the second mobile computing device, a confirmation that indicates that the second user consents to join the subgroup. The method comprises the step of modifying a second record in the database to indicate the second user's membership in the subgroup. The method comprises the step of pushing a message to the first and second mobile computing devices based on the membership of the first and second user's membership in the first group.
The method may also comprise the step of, upon modifying the record associated with the first user to indicate the first user's membership in the subgroup, granting, to the first user, access to one or more resources associated with the subgroup and selected from the group consisting of a group shared file storage space, a group calendar, a group to-do list, a group task assignment, a group task progress tracker, and a group synchronized voice meeting system. The method may also comprise the step of, upon modifying the record associated with the second user to indicate the second user's membership in the subgroup, granting, to the second user, access to the one or more resources associated with the subgroup to which the first user also has access.
The method may also comprise the step of creating, in the database, an aggregated calendar record associated with the first user that incorporates all calendar events associated with the subgroup and all calendar events associated with a second subgroup within the group in which the first user is also a member, but in which the second user is not a member. The method may also comprise the step of sending that aggregated calendar record to the first mobile computing device.
The method may also comprise the step of sending, to the first mobile computing device, both a calendar event associated with the subgroup and a calendar event associated with a second subgroup within the group in which the first user is also a member, but in which the second user is not a member.
The method may also comprise the step of creating, in the database, an aggregated to-do record associated with the first user that incorporates all to-do items associated with the subgroup and all to-do items associated with a second subgroup within the group in which the first user is also a member, but in which the second user is not a member. The method may also comprise the step of sending that aggregated to-do record to the first mobile computing device.
A method for group communication in an enterprise is disclosed. The method comprises the step of recording, in a database by a server computing device connected to an internal electronic communications network behind a firewall, a record for each of a plurality of users in the enterprise. The method comprises the step of creating, in the database, a group associated with a physical location. The method comprises the step of recording, in the database, registration information for a mobile computing device connected to an external electronic communications network outside the firewall that associates the mobile computing device with a first user among the plurality of users. The method comprises the step of accepting a first message from a client program operated by the mobile computing device that indicates that the mobile computing device has entered into the physical location. The method comprises the step of modifying, in response to receiving the first message, the record for the first user to indicate the first user's membership in the group associated with the physical location. The method comprises the step of sending a message associated with the physical location to all members of the group associated with the physical location. The method comprises the step of accepting a second message from the client program operated by the mobile computing device that indicates that the mobile computing device has exited the physical location. The method comprises the step of modifying, in response to receiving the second message, the record for the first user to indicate the first user's removal from the group associated with the physical location.
The method may also comprise the step of, upon modifying the record associated with the first user to indicate the first user's membership in the group associated with the physical location, granting, to the first user, access to one or more resources associated with the subgroup and selected from the group consisting of a group shared file storage space, a group calendar, a group to-do list, a group task assignment, a group task progress tracker, and a group synchronized voice meeting system. The method may also comprise the step of, upon modifying the record associated with the first user to indicate the first user's removal from the group associated with the physical location, terminating the access of the first user to the one or more resources associated with the group associated with the physical location. In this method the registration information may be a mobile telephone number.
A computer-implemented method for group interaction between members of an enterprise based on membership within divisions of the enterprise. The method comprising the following steps. Storing in a database a set of division membership information that identifies at least a first member and a second member as members of at least a first enterprise division, wherein the storing in the database is performed by a server computing device connected to an internal electronic communications network, wherein the server computing device and the internal electronic communications network are located within the bounds of a firewall, wherein a first member computing device is at least temporarily associated with the first member and a second member computing device is at least temporarily associated with the second member, wherein both the first member computing device and the second member computing device are each located within the bounds of the firewall. Providing access for the first member and the second member to a set of first enterprise division specific content, wherein the set of first enterprise division specific content is stored within the bounds of the firewall. Permitting collaboration of the set of first enterprise division specific content between the first member and the second member. Receiving a set of registration information associated with a third computing device and a third member, wherein the set of division membership information also identifies the third member as a member of at least the first enterprise division, wherein the third computing device is capable of accessing the internal electronic communications network through a connection to an external electronic communications network. Storing the set of registration information in the database. Providing access for the third member to the set of first enterprise division specific content. Permitting collaboration of the set of first enterprise division specific content between the first member, the second member, and the third member. Receiving a command from a first client program executing on the first computing device to create a subdivision within the first enterprise division, wherein the command identifies at least the first member and the third member as members of at least a first enterprise subdivision. Modifying the set of division membership information to include the first enterprise subdivision and to identify the first member and the third member as potential members of the first enterprise subdivision. Pushing an invitation to join the first enterprise subdivision to the third computing device. Accepting a confirmation that indicates that the third member consents to join the subgroup, wherein the confirmation is received from a client program executing on the third computing device. Pushing a message to the first computing device and the third computing device based on the membership of the first member and the third member in the first enterprise subdivision. Providing access for the first member and the third member to a set of first enterprise subdivision specific content, wherein the set of first enterprise subdivision specific content is stored within the bounds of the firewall. And, permitting collaboration of the set of first enterprise subdivision specific content between the first member and the third member.
A computer system for facilitating group interaction between members of an enterprise based on membership within divisions of the enterprise is disclosed. The computer system comprises an internal electronic communications network. The computer system also comprises a server computing device connected to the internal electronic communications network. The server computing device and the internal electronic communications network are located within the bounds of a firewall. The computer system also comprises a database communicatively coupled to the server computing device. Storing in the database is performed by the server computing device. A first member computing device is at least temporarily associated with a first member. A second member computing device is at least temporarily associated with a second member. Both the first member computing device and the second member computing device are each located within the bounds of the firewall. A third member computing device is at least temporarily associated with a third member. The third computing device is capable of accessing the internal electronic communications network through a connection to an external electronic communications network. A set of division membership information identifies at least the first member, the second member, and the third member as members of at least a first enterprise division. The system is configured to provide access for the first member and the second member to a set of first enterprise division specific content. The set of first enterprise division specific content is stored within the bounds of the firewall. The system is further configured to permit collaboration of the set of first enterprise division specific content between the first member and the second member. The system is further configured to receive a set of registration information associated with the third computing device and the third member. The system is further configured to store the set of registration information in the database. The system is further configured to provide access for the third member to the set of first enterprise division specific content. The system is further configured to permit collaboration of the set of first enterprise division specific content between the first member, the second member, and the third member. The system is further configured to receive a command from a first client program executing on the first computing device to create a subdivision within the first enterprise division. The command identifies at least the first member and the third member as members of at least a first enterprise subdivision. The system is further configured to modify the set of division membership information to include the first enterprise subdivision and to identify the first member and the third member as potential members of the first enterprise subdivision. The system is further configured to push an invitation to join the first enterprise subdivision to the third computing device. The system is further configured to accept a confirmation that indicates that the third member consents to join the subgroup. The confirmation is received from a client program executing on the third computing device. The system is further configured to push a message to the first computing device and the third computing device based on the membership of the first member and the third member in the first enterprise subdivision. The system is further configured to provide access for the first member and the third member to a set of first enterprise subdivision specific content. The set of first enterprise subdivision specific content is stored within the bounds of the firewall. The system is further configured to permit collaboration of the set of first enterprise subdivision specific content between the first member and the third member.
The inventive systems and methods effect improvement in enterprise-wide business communications by providing a unified platform for secure, mobile, multi-type, and multi-level group based business communication. Where exemplary embodiments reference a university use, it will be appreciated that the invention is not limited to an academic environment and also encompasses communications in public, private, startup business environments, etc.
Communication security in the enterprise mobile data system is effected by placing the entire communications system back end behind an enterprise firewall and by limiting access to that communication system to registered users. All business contacts, business communications, and associated data are stored in an enterprise mobile data system server behind the enterprise firewall. The enterprise mobile data system identifies and separates contacts within a business from contacts outside of that business. Only registered mobile devices or internal client computers with enterprise IP addresses can communicate with the enterprise mobile data system server to perform any function that the enterprise mobile data system provides.
Complete mobile access to communications and stored data is central to the enterprise mobile data system; i.e., the entire user function set is accessible from a registered mobile device. In embodiments, access to this complete function set is effected through a mobile data client messaging system program.
The enterprise mobile data system unifies popular types of business communication under a single secure regime. The business communication is governed by groups and subgroups. Within any group or subgroup, members of that group may, if authorized by the administrative settings of the group, use features such as text messaging or voice chat; sharing documents, images, videos, and other data via a shared data store; sharing a group calendar; sharing a group task or to-do list; tracking progress of group tasks; voice conferencing; and creating subgroups.
Group communication management features are highly refined. Each group management function can be performed remotely from the business by a registered mobile computing device. The enterprise mobile data system supports multiple types of groups, including but not limited to official enterprise groups set up for users by the enterprise as well as user-created, ad-hoc groups. The groups can be used for, e.g., announcements, committee discussions, and project collaboration, with the scope of available group functions defined by the group administrator.
In general, groups may be configured as information feed groups, public groups, and private groups. Information feed groups are configured to allow only a designated administrator or administrators to add and remove content. Information feed groups may be initially created by a system administrator who designates one or more group administrators, or by a user who is automatically established as the group administrator. Such group administrators may then have the ability to appoint other group administrators. Information feed groups may be used for announcements, assignments, scheduling, etc. where participatory discussion is not desired. Public groups are configured to allow any authenticated member of the enterprise to join. Public groups may be created by any authenticated member of the enterprise, and that member may have the ability to appoint other group administrators. Public groups may be used for official announcements, assignments, and scheduling, or for groups concerning topics of general interest, where participatory discussion is desired. Private groups are configured as password-protected and/or invitation-only groups (using textual, URL-encoded, or QR-code encoded information) to allow only select members of the enterprise to join. Private groups may also be created by any authenticated member of the enterprise, and that member may have the ability to appoint other group administrators. Private groups may be used like public groups, but with greater control over member participation and activity to limit unwanted or malicious communications. Private groups may also be used for groups concerning special interest topics. The enterprise mobile data system may also support system-generated groups. System-generated groups are configured to automatically enroll group administrators and members, and may serve as required groups where administrators and members are not allowed to manually withdraw from the group. System-generated groups may be established by performing an ETL (exchange, transform, and load) process with other enterprise systems, e.g., a university's course enrollment system and employee/student information system, where criteria such as assignment to teach a particular course (for professors and teaching assistants) and enrollment in a particular course (for students) within these other enterprise systems are used to automatically form the system-generated group, designate group administrators, and add user members within the enterprise mobile data system.
The enterprise mobile data system supports multiple levels of groups, allowing subgroups within groups or further subgroups, as well as overlapping groups allowing users to belong to a number of groups within the enterprise mobile data system. Each group or subgroup is not limited to communications only, but is also associated with shared data store for document sharing and distribution, a group calendar, and a group task scheduler. Thus group-based security on the basis of group membership and feature controls allow for granular set-up and access to and management of each of these functions.
Different types of group may add members by various methods, including invitation-based, password-protected, and QR code-based variants of invitations or passwords. Depending upon the QR code version that can be displayed on a particular model of device, or more likely a lowest common denominator device, the QR code may encode a locator code for message retrievable by any device which scans the QR code and attempts to retrieve the message (e.g., a message ID for a message sent to the enterprise mobile data system by an inviting member, or a URL for a file, message, web page, or the like stored in the enterprise mobile data system by an inviting member) or may directly encode the information required for a user to be added as a member of the group.
The computer system 200 includes a processor 205, such as any of the various commercially available central processing units offered by Intel, A M D, and Motorola, coupled to a communications channel 210. Communications channel 210 may include any of several types of bus structure such as a system bus, a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of commercially available bus architectures designed to effect communication between various components of the computer system. Dual microprocessors and other multi-processor architectures may also be employed as the processor 205. The computer system 200 further includes an input device 215 such as a keyboard or mouse, an output device 220 such as a LCD, plasma, or LED display, a communications interface 225, a data storage device 230 such as a magnetic or optical (read-only or rewritable) disk, or solid state drive, and memory 235 such as Random Access Memory (RAM), each coupled to the communications channel 210. One skilled in the art recognizes that, although the data storage device 230 and memory 235 are shown as different units, the data storage device 230 and memory 235 may be parts of the same unit, distributed units, virtual memory, etc., and that the term “memory” as used herein is intended to cover all data storage media, including ROM and RAM or any memory known by one skilled in the art, whether permanent or temporary. The communications interface 225 may be coupled by wired 258 or wireless 259 interfaces to a cellular telephone network 260, a wireless access point 285, a wide area public network, for example, the Internet 270, and or a local area private network 275, for example an Ethernet LAN. One skilled in the art will readily recognize that data may be transmitted in both wired 258 and wireless 259 interfaces in any number of available protocols. One skilled in the art will recognize that for the purposes of this disclosure, fiber optic transmission of data is a form of wired data transmission, and that wireless data transmission can occur in a wide variety of suitable forms such as acoustic, RF, infrared, and other wireless transmission media.
A basic input/output system (BIOS), containing the basic routines used to transfer information between elements within the computer system 200, such as during start-up, is stored in the data storage device 230 or in memory 235. The data storage device 230 or the memory 235 may also store an operating system 240 such as Microsoft Windows, Linux, Unix, MAC OS, etc. The operating system 240 in the computer system 200 can be any of a number of commercially available operating systems and/or web client systems, and/or open source operating systems, covering the spectrum of consumer electronics devices including but not limited to cameras, video recorders, personal media players, televisions, remote controls, etc., as well as all web client systems including commercial and open source platforms providing thin-client access to the cloud. The data storage device 230 or the memory 235 may store a number of other items, including one or more application programs, other program modules, and program data. Embodiments of the invention may also be implemented on platforms and operating systems other than those mentioned. Embodiments of the invention may be written using Java, C++, C, C#. Perl, PHP or any of a wide variety of commonly available programming languages.
Computer system 200 may intercommunicate with a wide variety of other devices over networks by way of communications interface 225. Computer system 200 may also include additional components such as additional network connections, additional wireless network connections, additional memory, additional processors, and additional communications interfaces. Programs and data may be received by and stored in computer system 200 in alternative ways. For example, a computer readable storage medium reader 245 for removable media, such as a magnetic disk drive dock, a flash media reader, an optical disk drive, or an interface bus device such as USB. Firewire, or eSATA-linked external drive (for, for example, a flash or so-called ‘thumb drive’), may be coupled to the communications channel 210 for reading a non-volatile computer readable storage medium 255, such as a magnetic disk drive, a flash card, an optical disk, a flash drive, a portable storage device, or other devices. The communications interface 225 coupled to communications channel 210 can access data stored on the Internet 270. Thus, the computer system 200 may receive programs or data by the computer readable storage medium 250 or by the communications interface 225 for storage on the data storage device 230 of the system itself.
Access to the enterprise mobile data system server 305 over the Internet 270 or other networks is provided only through firewall 330. The enterprise mobile data system server 305 may be accessed over the Internet 270, or through cellular or other wireless networks 260, 265 by those mobile computing devices 350 registered to access the enterprise mobile data system server 305. The registered mobile computing devices 350 should employ a mobile data messaging system client program to access the enterprise mobile data system server 305. The mobile data messaging system client program employed should be a version compatible with the operating system of the mobile computing devices 350, such as IPhone 352, Android 354, Windows 356, or other operating system based mobile computing devices 350. Alternatively, access to the enterprise mobile data system server 305 over the Internet 335 may be provided to non-mobile computing devices (not shown) over both a wired connection (not shown) to the Internet 270 or through the cellular or other wireless networks 260, 265. Non-mobile computing devices should employ a similarly compatible data client messaging system client program communicating over the Internet 270 (if off-premises) or with an enterprise LAN 275.
As an alternative route of communication to users, the enterprise mobile data system server 305 may also route all communication traffic for a user through the business email server 310. Thus, even an employee who does not use a mobile computing device 350 may still participate in the communications through their business email account without missing any information. When configured to do so for a user or group, the enterprise mobile data system server 305 will forward all group or individual messages related to a user to that user's email account. When enterprise mobile data system server 305 forwards a message, it may set the sender and reply-to addresses in the email to indicate that it came from the system, e.g. mobile_data_system@business.com, and the subject of the email to indicate the receiver (which may be a group or individual contact name) and message type, i.e. $group_name$chat or and $contact_name$chat, and the body of the email will be the message itself. The user may then reply to messages of this type using their business email account. The replying message will go to the enterprise mobile data system server 305 for further processing and distribution as appropriate. Similarly, an employee without a smartphone may post messages to the enterprise mobile data system through the business email system by sending emails to enterprise mobile data system server 305 through its email account (e.g. mobile_data_system@business.com) with special email subject such as:
Exemplary, easily human-decodable commands such as the foregoing are preferred so as to allow communication with the system through generic email clients, as opposed to specialized application clients which might require installation upon public or guest computers.
All emails that address to mobile data systembusiness.com are routed to the enterprise mobile data system server 305. The enterprise mobile data system server then extracts the destination group or individual contact from the email subject, and extracts the message type. According to the message type, the enterprise mobile data system further extracts the message itself from the email body. The formats of the email body corresponding to different message types are listed as follows.
Email Subject: $group_name$join
Email Body: password
Email Subject: $group_name$drop
Email Body:
Email Subject: $group_name$chat
Email Body: any free text
Email attachment: any audio file and/or any image file and/or any video file
Email Subject: $group_name$calendar_view
Email Body:
Email Subject: $group_name$calendar_create
Email Body: title: department meeting
location: Room 3033, Building CL, KSU
starts: Jan. 1, 2014 10 am
ends: Jan. 1, 2014 11 am
Email Subject: $group_name$calendar_delete
Email Body: event_d: 0010
Email Subject: $group_name$sharedspace_view
Email Body:
Email Subject: $group_name$sharedspace_upload
Email Body:
Email attachment: documents and/or images and/or videos
Email Subject: $group_name$sharedspace_delete
Email Body: document_id: 0005
Email Subject: $group_name$task_view
Email Body:
Email Subject: $group_name$task_update
Email Body: task_id: 0020
progress: 30%
comment: good progress
Email Subject: $group_name$task_create
Email Body: title: task #3
description: new task
start: Aug. 1, 2014
end: Aug. 10, 2014
Email Subject: $group_name$task_delete
Email Body: task_id: 0020
It will be appreciated that data appearing after entries such as title: event_d:, document_d:, task_id:, etc. are exemplary content. If the enterprise mobile data system server 305 receives an email with improper subject or email body, it will response with an email that contains all the templates for different group communications that the user can directly copy and paste.
In one embodiment the enterprise mobile data system includes installation and configuration software applications that allow the administrator to build a data pipeline that loads pre-existing contact information from databases 320 of the email server 310, and/or the databases 321 of the instant messaging server 315, or employee/student information system into enterprise mobile data system server 305. These installation and configuration software applications may be of any convenient method, including graphical user interfaces (GUI), or command line interfaces. Contacts may be populated and maintained by performing ETL (exchange, transform, and load) processes with one or more of these systems.
Users of the unified enterprise mobile data system 300 from a mobile data messaging system client program on any type of mobile computing device 350 are presented with a number of graphical user interface (GUI) screens representing the full range of system functions available to that user.
In one embodiment, the unified enterprise mobile data system 300 is implemented in a university setting. In this embodiment, the user may be a student, a faculty member, an administrator, a staff member, etc.
The unified enterprise mobile data system 300 separates groups from individual contacts into different screens. The group structures that a user sees in the group screen generally match the business structures the user is working with. For example, a university professor performs login on the unified enterprise mobile data system 300 and accesses a group level screen and sees the following groups: university group, department group, committee group, class groups, etc. Once the user selects a group, he or she sees messages including text and voice messages just for this group. Each group is associated with a shared data store. Any group member seeking to share any documents with the group need only to upload that document to the shared data store. Any group member can access any document in the shared data store for the group. Each group is also associated with other resources, e.g., a group calendar and/or a task tracker. A group provides a unified entry to access all group-associated resources.
Under “Required Groups,” there may be system-generated groups, as described earlier, corresponding to, for example, courses in which the user is enrolled. To identify such groups, the unified enterprise mobile data system 300 may be linked to a registrar office's course enrolment system by an ETL process and, for each student who registers for courses such as English 1100411, History 2100412, CS 2100413, and Math 2100414, add the user as a member of a corresponding course group. Under “My Groups,” there may also be enterprise (university-wide) information feed groups, public groups, etc. that the user voluntarily subscribes to and follows, e.g., KSU Career Service IT 416, and Registrar 419. There may also be individual user-initiated groups, such as, for example, the Big Data Research Group 417 and the KSU Club Tennis 418.
For information feed groups such as KSU Career Service IT 416 and Registrar 419, the user can view messages posted by university officials (one or more group administrators), but may not post messages to these groups. For other groups, all users can participate in exchanging messages. In this example, an exemplary student member would be unable to post to the information feed groups 416 and 419, while another exemplary member, a registrar administrator, would be able to post to registrar group 419, but not to KSU Career Service IT group 416.
Because the unified enterprise mobile data system 300 is group-centric, group management from the GUI 401 is simple.
The enterprise mobile data system may provide multiple ways to join a group, depending on the nature of the group.
Joining a group may be accomplished through an invitation message sent to the user through the unified enterprise mobile data system 300.
Joining a group may be accomplished by a search and selection from among those groups visible to the user within the unified enterprise mobile data system 300.
Joining a group may be accomplished by scanning a QR code 929 (shown in
Joining a group may be accomplished through the business email system hosted on business email server 310. For example, an employee lacking a smartphone can join a group by sending emails to business email server's 310 email account (e.g. mobile_data_system@business.com) with special email subject and body, such as subject: $group_name$join and email body: password.
Users may create groups from their mobile computing devices 350.
Selecting any of the groups 411-419 that the user is associated presents more detailed functions and information specific to that group.
Selecting the second tab 921 (
Selecting the third tab 931 labeled “Calendar” accesses a calendar display specific to the selected group.
Selecting the fourth tab 941 (
Selecting the fifth tab 951 labeled “Tasks” accesses a task list or “to-do list” specific to the selected group.
Selecting the sixth tab 971 labeled “Subgroup” accesses a menu for displaying, creating, and editing/deleting subgroups.
Other GUIs and menus provide a more general, non-group-specific interface to the enterprise mobile data system server. For example,
Referring to
Selecting the “Shared Space” Item 1044, or a corresponding button, displays a view of all shared spaces in groups or subgroups to which the user is subscribed.
Selecting the “Tasks” item 1046, or a corresponding button, displays a view of all tasks which the user has created or to which the user has been assigned.
Selecting the “Calendar” item 1048, or the Calendar button 1054, displays an aggregated calendar 1090 for the user. All meetings and events on the calendars from those groups with which the user is affiliated are shown in this aggregated calendar. The user may also add personal events to this calendar, with personal event alerts from this aggregated calendar also shown in the users summary screen (
Selecting the “Settings” item 1050 displays a flat or hierarchical menu of application settings for the user. The settings may include account and profile information 1100, such as a display name/nickname which the user may change in text box 1507, an email address that the user may change in text box 1509 and, optionally a profile image at 1511. Profile images may be uploaded and selected by a dialogue accessed by selecting the “images” button 1513. Any change to a user's profile or status is immediately propagated throughout the unified enterprise mobile data system 300, as the information is stored on the enterprise mobile data system server 305. A users profile and status are visible to the users contacts, and optionally to selected groups with which the user is associated. The settings may also include conventional application setting options 1150 such as notifications (to control how event and meeting notifications are displayed to the user through pop-up alerts, banners, and the like through operating system APIs); privacy settings (to display privacy policies and control access to data through inter-application messaging APIs); general settings (to set user preferences for fonts, colors, button options, application language, and the like); and software information.
In one example, the classes of the communications system may be described as in the following tables. Table 1 describes example global static methods of the system, which are generally directed towards providing a uniform display of the graphical user interface to users of the communications system.
Table 2 describes the attributes and methods of an example class used for the process encountered by users of the system when logging in to the system.
Table 3 describes the attributes and methods of an example class used for display to the user of the user's subscribed group lists.
Table 4 describes the attributes and methods of an example class used for creation of a new group in the system database 306.
Table 5 describes the attributes and methods of an example class used to provide search functionality to the user, allowing the user to locate groups that the user has not joined.
Table 6 describes the describes the attributes and methods of an example class used to display user lists to a user of the communications system.
Table 7 describes the attributes and methods of an example class used for displaying various group-specific submenus and views to a user of the communications system.
Table 8 describes the attributes and methods of an example class used for displaying information about a particular group to a user of the communications system.
Table 9 describes the attributes and methods of an example class used for displaying to a user of the communications system information about another selected user of the communications system.
Table 10 describes the attributes and methods of an example class used for displaying to a user of the communications system, a list of personal chat sessions between that user and other users of the communications system.
Table 11 describes the attributes and methods of an example class used for displaying to a user of the communications system, a frame for viewing a selected chat session between that user and other users of the communications system, and for accepting text entered by the user to send in the chat session, provided the user has appropriate permissions regarding the chat session.
Table 12 describes the attributes and methods of an example class used for displaying to a user of the communications system, a selected chat sessions between that user and other users of the communications system within the frame described in Table 11, and allowing the user to send and receive text in the chat system.
Table 13 describes the attributes and methods of an example class used for maintaining the user information of an individual user of the communications system.
Table 14 describes the attributes and methods of an example class used for maintaining the group information of a particular group within the communications system.
Table 15 describes the attributes and methods of an example class used for implementing a subscription of a user of the communications system to a particular group within the communications system.
Table 16 describes the attributes and methods of an example class used for implementing participation by a user of the communications system in a specific chat session.
Table 17 describes the attributes and methods of an example class used for maintaining the identification and substance of a particular chat message within the communications system.
Table 18 describes the attributes and methods of an example class used for maintaining the identification and substance of a particular meeting message for a meeting occurring within the communications system.
When setting up the enterprise mobile data system 300, system administrators can initialize user information for the system by importing the user information from existing database systems of the enterprise. Referring to
When setting up the enterprise mobile data system 300, the business may also, for example, Initialize a set of groups for the enterprise mobile data system by importing the user information from existing database systems of the enterprise. Referring to
Referring to
Referring to
In a simple example demonstrating how groups in the enterprise mobile data system relate to real world organization, a class 1600 diagram showing the organization of an academic “class” group in an example system is presented in
In another simple example demonstrating how groups in the enterprise mobile data system relate to the real world organization of the enterprise,
Referring to
Referring to
The enterprise mobile data system also supports geolocation based grouping, where group members are added to and removed from a location-specific group dynamically depending on users' geolocation. Referring to
Referring to
Table 19 includes information describing the exemplary database schema 2000 shown in
Mobile computing devices, especially smart-phone type mobile computing devices often come equipped with geolocation identification functionality. The functionality may be based on receiving and processing global positioning system (GPS) signals and translating them into GPS coordinates, or, with less precision, based on access to one or more cellular telephone towers. A mobile computing device operating a mobile data messaging system client program can access this geolocation identification functionality and obtain the geolocation of the mobile computing device. Alternatively, the reception by the mobile computing device of a wireless communication network signal of unique to a particular geolocation also indicates the presence of the mobile computing device at that geolocation. Coordinates describing specific locations can be established as a geofence, which when entered or exited by a registered mobile computing device, initiates a join or drop of a group for the user of that mobile computing device.
Referring to
In a first GPS implementation of the dynamic group joining based on geolocation, the array of geofence coordinates are stored on the user's mobile computing device. The mobile data messaging system client program operating on the mobile device regularly compares the mobile computing device's GPS coordinates to the array of geofence coordinates. If the mobile data messaging system client program determines that the mobile computing device has entered a geofenced area by determining that the current coordinates of the mobile device are within the geofence coordinates of a location in the array, the mobile device sends a request to the mobile data messaging system server to join the user to a location based group when the mobile device is within the geofence coordinates. Similarly, if the mobile data messaging system client program determines that the mobile computing device has left a geofenced area by determining that the current coordinates of the mobile device are no longer within the geofence of a location, the mobile device sends a request to drop the user from the location based group.
In a second GPS implementation, the array of geofence coordinates are stored on the mobile data messaging system server. The mobile data messaging system client program operating on the mobile computing device regularly sends the device's GPS coordinates to the mobile data messaging system server. The mobile data messaging system server compares the received coordinates with the geofence coordinates in the array. The mobile data messaging system server assigns a user to a location based group if the user's mobile computing device has entered the geofence coordinates for that group's associated location. The mobile data messaging system server drops the user a location based group when the user's mobile computing device has left the geofence coordinates.
For example, when a user carries his registered mobile computing device into library 2205, he carries it into the coordinates describing library geofence 2211. He would then be added to the “library” geolocation messaging group, and granted access to library shared resources while in that group. If a hypothetical accident occurred in the library, then all members in the library geolocation messaging group could be notified on their mobile data messaging system client program by a message sent to the library geolocation messaging group. If a member of library geolocation messaging group exits the library, she has also exited the coordinates of library geofence 2211, and will be automatically removed from the library geolocation messaging group.
In another example, when a user carries his registered mobile computing device into student center 2207 she carries it into the coordinates describing student center geofence 2213. The user would then be added to the “student center” geolocation messaging group, and granted access to student center shared resources while in that group. A shared space file for this user group may include a menu for the student cafeteria, or calendar events of social gatherings presently occurring or occurring in the near future in the student center.
Temporal features of a geofence are also included. In a further example, when a user carries his registered mobile computing device into a conference room or classroom bounded by a geofence at a time when a meeting or class is scheduled, he may be provided access in a location and time specific group to class notes or a slide deck.
Any user of the enterprise mobile data system can also create a geolocation messaging group based on that users current location. Upon creation, the geofence array can be updated and pushed to messaging system client programs, or the group info can be pushed to messaging system client program can be sent to all users within the new geofence location. Then users who receive the message can choose whether to join the group.
A user who is in a geo-proximity group can also choose to leave the group.
Table 20 describes the attributes and methods of an example class used for maintaining the mobile computing device's GPS information and comparison with listed geofences.
The embodiments shown and described in the specification are only specific embodiments of inventors who are skilled in the art and are not limiting in any way. Therefore, various changes, modifications, or alterations to those embodiments may be made without departing from the spirit of the invention in the scope of the following claims. The references cited are expressly incorporated by reference herein in their entirety.
This application claims priority to U.S. Provisional Patent Application No. 62/133,580 filed Mar. 16, 2015, the entirety of which is incorporated by reference herein.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US16/22601 | 3/16/2016 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62133580 | Mar 2015 | US |