1. Technical Field
The present invention relates generally to the field of interactive communication and more specifically relates to systems and methods for the more efficient creation and delivery of messages from a message originator to a message recipient.
2. Background Art
Most schools, businesses, government agencies, and other organizations frequently find it useful to communicate various messages to their constituencies (e.g., managers, employees, workers, students, parents, teachers, etc.). Since communication in the world today encompasses much more than simple messaging tasks such as phone calls and letters, many entities are finding it increasingly difficult to maintain the desired level of communication with the desired audience. Additionally, since the need for timely communication is increasingly important, the ability to ensure that the desired messages reach the desired recipients in a timely and efficient manner is also considered highly desirable.
Some of the main problems that hamper efforts to create an environment of effective communication and typically lead to ineffective and/or inefficient communication are driven by information overload and technology. Since there are so many available communication mediums and messaging platforms available, it may be somewhat complicated to get the desired message to the desired audience. For example, in addition to traditional “snail mail” and telephone communication, email, Skype®, Twitter®, Facebook®, Tumblr®, Instagram®, Google Chat®, Google+®, etc. are all relatively new communication methods that have been developed in recent years. Each of these communication platforms has a unique specific interface and protocol and, where there are multiple recipients for a given message, it can be time consuming and somewhat problematic to select and format the message for each possible combination of message recipients and possible communication platforms.
Additionally, even with a well-defined and limited set of communication options, most message recipients have multiple devices by which they may access the same message from a given message originator. For example, the message recipient may access a voice message on their computer or their cell phone. Similarly, a SMS text message may be accessed via a cell phone, a desktop computer, a tablet or some other mobile device. With all of these options, it can be challenging to know the best communication or messaging platforms to use for delivering each message to each recipient, particularly where the same message is to be delivered to multiple recipients.
This is particularly true because each message recipient may not only have a preferred method or preferred device for receiving messages, they may also have a scheduling preference and their preferred communication or messaging platform may vary from day to day or even vary over the course of a single day. With a larger number of potential recipients for a given message, for organizations that send the same message to multiple message recipients on a regular basis, this may make it challenging to ensure that each message recipient receives the message in a timely fashion. In order to maximize the probability of message recipients receiving the messages, many organizations will simply send the message to the message recipients via multiple messaging or communication platforms. For example, a person may receive a phone call and an email containing the same message. They may also receive a Facebook® posting or Twitter® Tweet® containing the same message. This is not only redundant, but may also irritate the message recipients as they spend time and energy sorting through the various messages received.
Further, many people are trying to reduce the amount and number of messages that are received and do not view redundant or duplicate messages as being useful. In some circumstances, the message recipient may “opt out” of further messages so as to avoid the onslaught of messages being received. Accordingly, without improvements in the current systems, procedures, and methods for the communication of messages from a message originator to a message recipient, the ability to effectively and efficiently provide important messages to the desired constituency will continue to be sub-optimal.
The various implementations of the present invention are provided as a computer-based system configured to allow for optimized message creation and delivery options in a multi-user, multi-organizational environment. The system provides for the efficient delivery of messages from one or more message originators to one or more message recipients via a plurality of communication or messaging platforms. A message originator can create a single message and specify one or more message recipients, multiple communication platforms (while also specifying a priority preference), and delivery scheduling, all from a graphical user interface presented via a native app on a mobile communication device or web browser interface presented via a web browser. The message will be automatically formatted for the selected message recipients, the available and desired communication platforms in the desired priority order, and scheduled for delivery to the message recipients at the selected time(s). On the message recipient side, each message recipient can specify the desired communication platform and preference priority for receipt of messages, along with the desired timing for delivery of messages from each potential message originator. Generic message sending and receiving protocols may also be established where user preferences have not been specified.
In the most preferred embodiments of the present invention, the message recipient's messaging preferences will take priority over the preferences of the message originator except for emergency or “preference override” situations or when a message recipient otherwise reports that they are not receiving messages via their preferred messaging platforms. In at least some preferred embodiments of the present invention artificial intelligence and machine learning may be used to determine which time, which day, and which messaging platform is the most preferred messaging platform and should be used to send messages to increase the probability that consumers receive the message. In this fashion, the probability of sending a message in the most efficient and speedy manner can be achieved. Additionally, the potential that a message recipient will receive and process duplicate messages may be minimized or eliminated.
Additionally, system provides a plurality of message duplicate filters to identify potential duplicate messages. By identifying potential duplicate messages, the number of duplicated messages can be reduced or eliminated, further enhancing the efficiency of the message delivery system while providing for a more user-friendly experience. A duplicate message is any message that is determined to be substantially similar to another message (“original message”) based on a comparison of the two messages.
While useful for many environments, the most preferred embodiments of the present invention are adapted for use in an educational environment to provide school administrators, teachers, parents, and students with enhanced communication capabilities.
The preferred embodiments of the present invention will hereinafter be described in conjunction with the appended drawings, wherein like designations denote like elements, and:
The various implementations of the present invention are provided as a computer-based system configured to allow for optimized message creation and delivery options in a multi-user, multi-organizational environment. The system provides for the efficient delivery of messages from one or more message originators to one or more message recipients via a plurality of communication or messaging platforms. A message originator can create a single message and specify one or more message recipients, multiple communication platforms (including a priority preference to establish one or more preferred messaging platforms), and delivery scheduling, all from a graphical user interface on a mobile communication device or a computer. The message will be automatically formatted for the selected message recipients, the available and desired communication platforms in the desired priority order, and scheduled for delivery to the message recipients at the selected time(s). On the message recipient side, each message recipient can specify the desired communication platform and preference priority for receipt of messages, along with the desired timing for delivery of messages from each potential message originator. Generic message sending and receiving protocols may also be established where user preferences (e.g., preferred message platforms, devices, and timing) have not been specified.
Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in or on a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
Additionally, various preferred embodiments of the program product may be configured to: create and modify multiple databases; track, update and store data related to the optimized creation and delivery of messages; configure and implement various search and retrieve functions for a multitude of search requests and determinations made by users of the computer-based communication system; track and store information about various services and program features; update and transmit message to one or more end users consumers; and provide one or more user interfaces for accomplishing all of these functions.
In this fashion, the appropriate entities (i.e., business owners, managers, administrators, teachers, parents, students, etc.) can utilize the program product to initiate and complete a wide variety of database-related applications for the provision of optimized message creation and delivery services. Similarly, a program product in accordance with one or more preferred embodiments of the present invention can also be configured to perform substantially all of the steps depicted and described in conjunction with the figures below for implementing a optimized message creation and delivery system as described herein.
While the present invention will be described in detail by using various examples of a typical school or educational environment, those skilled in the art will recognize that the equipment, processes, methods and techniques described herein have broad applicability to other environments and applications where quick and efficient access to optimized message creation and delivery services is desirable.
Referring now to
Taken together, the components of computer-based system for providing optimized message creation and delivery 100 provide a platform for quickly and efficiently creating and delivering one or more messages to a wide variety of individuals and groups of individuals with a customized priority and delivery schedule that may be unique to each message recipient. Computer-based system 100 provides a mechanism for message originators and message recipients to efficiently and effectively create, schedule, and deliver messages across a wide range of message platforms and mediums.
In the most preferred embodiments of the present invention, computer-based system for providing optimized message creation and delivery 100 is configured as a system that will be used to disseminate messages for an educational community in a typical school environment. In this preferred embodiment, the group of users for computer-based system for providing optimized message creation and delivery 100 will typically include administrators for individual schools as well as school board and school district officials, teachers, staff, community members, parents, and students.
Network 120 represents any suitable computer communication link or similar communication mechanism, including some combination of a hardwired connection, an internal or external bus, a connection for telephone access via a modem, standard co-axial cable lines, high-speed T1 line, radio, infrared or other wireless communication methodologies (e.g., “Bluetooth,” infrared (IR), etc.), private or proprietary local area networks (LANs) and wide area networks (WANs), as well as standard computer network communications over Internet 195 or an internal network (e.g. “intranet”) via a wired or wireless connection, or any other suitable connection between computers and computer components known to those skilled in the art, whether currently known or developed in the future. It should be noted that portions of network 120 might suitably include a dial-up phone connection, a broadcast cable transmission line, a Digital Subscriber Line (DSL), an ISDN line, or similar public utility-like access link.
In the most preferred embodiments of the present invention, at least a portion of network 120 comprises a standard Internet connection 185 between at least some of the components of computer-based system for providing optimized message creation and delivery 100 for providing access to additional network resources and other remote locations. Network 120 provides for communication between the various components of computer-based system for providing optimized message creation and delivery 100 and allows for relevant information to be transmitted from device to device. In this fashion, a user of computer-based system for providing optimized message creation and delivery 100 can quickly and easily gain access to the relevant data and information utilized to search, retrieve, and display information from one or more databases as described in conjunction with the preferred embodiments of the present invention.
In the most preferred embodiments of the present invention, network 120 is configured to provide relatively high-speed transmission of textual information, audio and video data and signals, and also comprises at least an Internet connection 185 for transmission of data captured by one or more computers 170 or 180 and a phone 160 for transmission of an audio signal to and from a standard phone connection. The phone connection may be interfaced to a standard phone system typically found in most homes and commercial facilities, including for example, the existing “land line” phone system infrastructure and/or digital cellular phone communication systems.
In addition to the other components shown in
Regardless of the specific components, physical nature, and topology, network 120 serves to logically and communicatively link the physical components of computer-based system for providing optimized message creation and delivery 100, thereby enabling stable and consistent communication between the components. This is especially important because in many preferred embodiments of the present invention, data server 130, desktop computer 170, and laptop computer 180 may be geographically remote and/or physically separated from each other.
Data server 130 represents a relatively powerful computer system that is made available to desktop computer 170, laptop computer 180, and/or mobile communication device 190 via network 120. Various hardware components (not shown this FIG.) such as external monitors, keyboards, mice, tablets, hard disk drives, recordable CD-ROM/DVD drives, jukeboxes, fax servers, magnetic tapes, and other devices known to those skilled in the art may be used in conjunction with data server 130. Data server 130 may also provide various additional software components (not shown this FIG.) such as database servers, web servers, firewalls, security software, and the like. The use of these various hardware and software components is well known to those skilled in the art.
Given the relative advances in the state-of-the-art computer systems available today, it is anticipated that functions of data server 130 may be provided by many standard, readily available data servers. This may also include the deployment of multiple inter-connected and redundant data servers 130 to enhance the availability and reliability of the functions provided by data server 130. Depending on the desired size and relative power required for data server 130, storage area network (SAN) technology may also be deployed in certain preferred embodiments of the present invention. Additionally, various biometric and identification verification devices for identifying users and controlling access as well as creating and verifying digital signatures (i.e., electronic signature processing) may also be included.
Desktop computer 170 may be any type of computer system known to those skilled in the art that is capable of being configured for use with computer-based system for providing optimized message creation and delivery 100 as described herein. It should be noted that no specific operating system or hardware platform is excluded and it is anticipated that many different hardware and software platforms may be configured to create computer 170. As previously explained in conjunction with data server 130, various hardware components and software components (not shown this FIG.) known to those skilled in the art may be used in conjunction with computer 170. It should be noted that in the most preferred embodiments of the present invention, desktop computer 170 is linked (via wired or wireless connection) to its own LAN or WAN and has access to one or more additional data servers (not shown this FIG.).
In addition as shown in
Similarly, laptop computer 180 may be any type of relatively lightweight portable computer system known to those skilled in the art that is capable of being configured for use with computer-based system for providing optimized message creation and delivery 100 as described herein. This includes tablet computers (e.g., iPad®), pen-based computers and the like. Computer 180 may also be configured to allow the transmission and reception of audio signals, messages, communications, and various types of alerts via server 130 and network 120.
Additionally, netbooks, tablets, handheld and palmtop devices are also specifically included within the description of devices that may be deployed as a laptop computer 180. It should be noted that no specific operating system or hardware platform is excluded and it is anticipated that many different hardware and software platforms may be configured to create laptop computer 180. As previously explained in conjunction with data server 130, various hardware and software components (not shown this FIG.) known to those skilled in the art may be used in conjunction with laptop computer 180. It should also be noted that in the most preferred embodiments of the present invention, laptop computer 180 is linked to its own LAN or WAN and has access to its own data server (not shown this FIG.).
In general, the communication between devices associated with data server 130 will be data associated with creating and delivering messages in the most efficient and desirable manner possible, based on user preferences and priorities. The users of desktop computer 170 and/or laptop computer 180 may be program administrators, managers, teachers, community members, parents and students who are seeking to access the most relevant and valuable communication fees from the various available communication messages. Additionally, various related entities such as local and regional governments, commercial enterprises, municipalities, and their employers and agents may also have access to one or more databases located on data server 130 via desktop computer 170 and/or laptop computer 180.
It should be noted that while
For example, the service provider that controls the databases stored on data server 130 may utilize desktop computer 170 or laptop computer 180 or mobile communication device 190 to access data server 130 and create, update or otherwise modify a given database. An operator, located in a remote location, may use desktop computer 170 or laptop computer 180 to access data server 130 to retrieve information about the participants or persons and the various messages being created and delivered by the users of computer-based system for providing optimized message creation and delivery 100.
In the most preferred embodiments of the present invention, multiple desktop computers 170 and multiple laptop computers 180 will all be configured to communicate simultaneously with data server 130 and with each other via network 120. In addition, the most preferred embodiments of the present invention include a Software as a Service (SAAS) or Platform as a Service (PAAS) environment where data server 130 may be operated as a message clearinghouse in a hosted operation. In this fashion, multiple desktop computers 170 and laptop computers 180 will have access to data server 130 and the databases stored thereon via a global computer network such as Internet 195. Data server 130 is further described below in conjunction with
An optional printer and an optional fax machine (not shown this FIG.) may also be deployed for various hard copy data output requirements and may be considered to be any standard peripheral devices used for transmitting or outputting paper-based version of messages (e.g., photographs, documents, notes, transaction details, reports, etc.) in conjunction with the various requests and transactions processed by computer-based system for providing optimized message creation and delivery 100 (e.g., reports, communications, statistical analyses, automated letters, etc.). Finally, it should be noted that the optional printer and the optional fax machine are merely representative of the many types of peripherals that may be utilized in conjunction with computer-based system for providing optimized message creation and delivery 100. It is anticipated that other similar peripheral devices will be deployed in the various preferred embodiment of the present invention and no such device is excluded by its omission in
Mobile communication device 190 is representative of any type of wi-fi or Internet enabled mobile communication device or telephone that may be communicatively coupled to computer-based system for providing optimized message creation and delivery 100. This includes, for example, personal digital assistants (“PDAs”), Windows® mobile phone devices, Android® OS devices, Palm® OS devices, Pocket PC® devices, the Apple® iPod Touch®, the Apple® iPhone® and other various types of smartphones and portable communication devices. Those skilled in the art will recognize these various devices and others that are suitable for deployment as mobile communication device 190. While somewhat less powerful than computers 170 and 180, mobile communication device 190 may also be configured to wirelessly communicate with data server 130 via network 120 to send and receive messages to and from data server 130.
Given the standard functionality for devices that may be deployed as mobile communication device 190, this communication be provided by a wireless Internet connection (e.g. “wi-fi” or “wi-max”) or a Bluetooth® connection. One example of the use for mobile communication device 190 in the context of computer-based system for providing optimized message creation and delivery 100 would to send messages or alerts to a parent of a student, alerting the parent of important information regarding the educational community and surrounding activities. Additionally, by scheduling and prioritizing messages, end users can control the timing for delivery of messages to increase the likelihood of the messages being delivered to the appropriate person, at the appropriate time, via the appropriate communication platform, including a user configurable setting for specifying a time period for message delivery.
Those skilled in the art will recognize that
Referring now to
Data server 130 suitably comprises at least one Central Processing Unit (CPU) or processor 210, an auxiliary storage interface 240, a display interface 245, and a network interface 250, all of which are interconnected via a system bus 260. Note that various modifications, additions, or deletions may be made to data server 130 illustrated in
Processor 210 performs computation and control functions of data server 130, and most preferably comprises a suitable central processing unit (CPU). Processor 210 may comprise a single integrated circuit, such as a microprocessor, or may comprise any suitable number of integrated circuit devices and/or circuit boards working in cooperation to accomplish the functions of a processor or CPU. Processor 210 is configured to execute one or more software programs contained within main memory 220. Although data server 130 depicted in
Auxiliary storage interface 240 allows data server 130 to store and retrieve information from auxiliary storage devices, such as external storage mechanism 270, magnetic disk drives (e.g., hard disks or floppy diskettes) or optical storage devices (e.g., CD-ROM). One suitable storage device is a direct access storage device (DASD) 280. As shown in
Display interface 245 is used to directly connect one or more displays 275 to data server 130. Displays 275, which may be non-intelligent displays (e.g., “dumb”) terminals or fully programmable workstations, are used to provide system administrators and users the ability to communicate with data server 130. Note, however, that while display interface 245 is provided to support communication with one or more displays 275, computer data server 130 does not necessarily require a display 275, because all needed interaction with users and other processes may occur via network 120. Additionally, in certain preferred embodiments, data server 130 may have an integrated display 275.
Network interface 250 is used to connect data server 130 to network 120 and computer-based system for providing optimized message creation and delivery 100, including computer 170 and computer 180 of
Software provided in conjunction network interface 250 preferably includes a communication manager that manages communication with other computer systems or other network devices via network 120 using a suitable network protocol. Many different network protocols can be used to implement a network. These protocols are specialized computer programs that allow computers to communicate across a network. TCP/IP (Transmission Control Protocol/Internet Protocol) is just one example of a suitable network protocol that may be used by the communication manager contained within network interface 250.
It is important to note that while the present invention has been (and will continue to be) described in the context of a fully functional computer system with certain application software, those skilled in the art will appreciate that the various software mechanisms of the present invention are capable of being distributed as a program product in conjunction with an article of manufacture comprising software stored on a computer readable storage medium in a variety of forms, and that the various preferred embodiments of the present invention applies equally regardless of the particular type or storage medium used to actually carry out the distribution. Examples of computer readable storage media include: non-volatile and non-transitory recordable type media such as DVD and CD ROMS disks (e.g., disk 290), and transmission type media such as digital and analog communication links, including wireless communication links.
Main memory 220 suitably contains an operating system 221, a web server 222, one or more databases 223, a user interface 224, a messaging mechanism 225, a security mechanism 226, and a message queue 227. The term “memory” as used herein refers to any storage location in the virtual memory space of data server 130.
It should be understood that main memory 220 might not necessarily contain all parts of all components shown. For example, portions of operating system 221 may be loaded into an instruction cache (not shown) for processor 210 to execute, while other files may well be stored on magnetic or optical disk storage devices (not shown). In addition, although database 223 is shown to reside in the same memory location as operating system 221, it is to be understood that main memory 220 may consist of multiple disparate memory locations. It should also be noted that any and all of the individual software mechanisms or components shown in main memory 220 might be combined in various forms and distributed as a stand-alone program product. Finally, it should be noted that additional software components, not shown in this figure, might also be included.
Operating system 221 includes the software that is used to operate and control data server 130. In general, processor 210 typically executes operating system 221. Operating system 221 may be a single program or, alternatively, a collection of multiple programs that act in concert to perform the functions of an operating system. Any operating system now known to those skilled in the art or later developed may be considered for inclusion with the various preferred embodiments of the present invention.
Web server 222 may be any web server application currently known or later developed for communicating with web clients over a network such as the Internet. Examples of suitable web servers 222 include Apache web servers, Linux web servers, and the like. Additionally, other vendors have developed or will develop web servers that will be suitable for use with the various preferred embodiments of the present invention. Finally, while depicted as a single device, in certain preferred embodiments of the present invention web server 222 may be implemented as a cluster of multiple web servers, with separate and possibly redundant hardware (e.g., load balancers) and software systems. This configuration provides additional robustness for system uptime and reliability purposes. Regardless of the specific form of implementation, Web server 222 provides access, including a user interface, to allow individuals and entities to interact with graphical user interface 224, including via network 120 of
Database 223 is representative of any suitable database known to those skilled in the art. In the most preferred embodiments of the present invention, database 223 is a Structured Query Language (SQL) compatible database file capable of storing information relative to various items that may be of interest to the users of computer-based system for providing optimized message creation and delivery 100 of
Graphical user interface 224 is a software component that provides the users of computer-based system for providing optimized message creation and delivery 100 of
Additionally, at least one preferred embodiment of the present invention comprises a graphical user interface deployed on a mobile communication device 190. In this embodiment, a graphical user interface may be offered via an “app” customized for mobile communication device 190 or via a web browser based interface provide via a connection to data server 130, allowing the user of mobile communication device 190 to access messaging mechanism 225 and database 223. In either case, the consumer of the aggregated communication messages provided by data server 130 will be accessible and customizable via the graphical user interface provided in conjunction with mobile communication device 190.
In at least one preferred embodiment of the present invention for optimized message creation and delivery in an educational environment, database 223 of
Database 223 will also store user profiles (e.g., message originator profiles, message recipient profiles, organization profiles, etc.) containing detailed information about each user or group of users, including user communication preferences, phone numbers, email addresses, message delivery preferences, schedules, and prioritization, permissions, home and work addresses, etc. In this fashion, a message originator with access to database 223 will be provided with the capability of quickly and easily creating multiple messages for delivery to one or more message recipients.
In at least one preferred embodiment of the present invention, teachers and staff members can add relevant information to database 223 of
Those skilled in the art will recognize that other types of information for other types of data that may be used in other applications (e.g., historical, informational, technical, etc.) may be stored and retrieved as well. While database 223 is shown to be residing in main memory 220, it should be noted that database 223 might also be physically stored in a location other than main memory 220. For example, database 223 may be stored on external storage device 270 or DASD 280 and coupled to data server 130 via auxiliary storage I/F 240. Additionally, while shown as a single database 223, those skilled in the art will recognize the database 223 may actually comprise a series of related databases, logically linked together. Depending on the specific application and design parameters, database 223 may take many different forms when implemented.
The most preferred embodiments of computer-based system for providing optimized message creation and delivery 100 of
Although multiple delivery options will be provided to the message originator, in the most preferred embodiments of the present invention, messaging mechanism 225 is configured to provide optimized message creation and delivery messages based on the preferences of the message recipient. Each message recipient, as an authorized user of computer-based system 100, will have an account and their account information will be stored in database 223 of
For example, if a message recipient prefers to receive a message via email, then messaging mechanism 225 will store the message in message queue 227 for delivery to the message recipient via email. Alternatively, a visually impaired person may request their messages in an audio format. By using various text to speech conversion technologies, their messages will be converted to an audio signal and delivered via telephone 160 of
In other situations, a message comprising a combination of audio, video, textual and other formats may be delivered to a message recipient. Additionally, each message recipient will be able to specify which types of devices are available to the message recipient and the most preferred delivery methodologies, priorities, and times for message delivery via various communication platforms. The message recipient can select the desired communication or message platform and set a prioritization schedule for message delivery to one or more devices. Additionally, if a message originator selects multiple delivery options, one or more of the specified options may not be available to all intended message recipients and messaging mechanism 225 will select an available option for delivery. For example, if a message contains material that is incompatible with the message recipient's available devices (e.g., a multi-media file in a message delivered to a feature phone), the incompatible content may be excluded from the message or an alternative device may be selected from the group of available devices associated with the message recipient's profile contained in database 223.
Messaging mechanism 225 can also send push notifications to third party servers, such as the Apple Push Notification Service or Google Cloud Messaging for Android, which then deliver push notifications to smart phones using server-push technology in which a communication between a computerized message delivery service and a user alert is initiated by the message delivery service rather than the user. This will alert the message recipient that a new message is waiting.
Messages may also be translated from one language into another so that message recipients can view the message in a language other than the default language. For example, messaging mechanism 225 retrieves the language setting of the message recipient's mobile device through an HTTP request header and uses the language of the language setting as the target language, or if the message recipient has selected a language within the settings of their user profile in database 223, then messaging mechanism 225 uses the language which the message recipient selected in the user profile as the target language instead of the language setting of the message recipient's mobile device.
When a message recipient is to receive a message with textual content, messaging mechanism 225 determines whether the message recipient has selected a target language other than the default language, and if so, then messaging mechanism 225 sends a to query database 223 to determine if the requested content has already been translated and stored in database 223. If the response to the query is that the requested content has not been translated and stored in database 223, messaging mechanism 225 then sends a request to a translation service, such as the Google® Translate service or the Bing® Translator service.
In the most preferred embodiments of the present invention, a translation request is sent via HTTP. In the request, messaging mechanism 225 sends to the translation service the following information: the content, which is supposed to be translated, the source language, and the target language. In the most preferred embodiments, each entry is associated with an entry unique identifier and each language is associated with a unique language identifier. When messaging mechanism 225 receives the translated content from the translation service, then messaging mechanism 225 includes the translated content in the message sent to the message recipient. In at least some preferred embodiments of the present invention, computer-based system 100 performs ad hoc translation of messages at the time of message delivery. Each message recipient may select a primary and secondary language for message delivery.
In at least one preferred embodiment of the present invention, messaging mechanism 225 also saves the translated content in database 223 by associating the newly translated content with a unique identifier and a corresponding language unique identifier so that messaging mechanism 225 can more quickly retrieve the translated content from database 223 in the future so that if a subsequent requests for translation of the content in target language, where the content has already been translated and saved to database 223, the previously translated content can be simply retrieved and included in the message.
In the most preferred embodiments of the present invention, the default source language for all messages is English. However, for certain applications the source language could be another language such as Spanish. Message recipients who understood both Spanish and English may prefer to view a message in the source language, such as English, if they believed the translation of the entry into a target language, such as Spanish, was sub-optimal. In some embodiments, user interface 224 displays an icon or other indicator that can be selected by the message recipient to display the received message in the original source language instead of the target language.
In some preferred embodiments of the present invention, computer-based system 100 uses an application program interface (“API”) to request information from and send information to third party service providers. This allows messaging mechanism 225 to access services such as LinkedIn®, Facebook®, and Twitter® to deliver messages to the user accounts for message recipients that have selected these communication platforms.
Additionally, messaging mechanism 225 and message queue 227 may be configured to generate a facsimile message by utilizing a fax server and a facsimile modem (not shown this FIG.) that is deployed in conjunction with data server 130 of
In the most preferred embodiments of the present invention, messaging mechanism 225 is configured to generate and transmit a plurality of messages with each message containing multiple discrete elements. For example, each message may contain text, PDF and .JPG attachments, audio-video segments, audio clips generated by an automated text-to-speech computer program, contemporaneously recorded audio clips that are unique to a specific message, etc. Additionally, dynamic audio clips, using elements extracted from database 223, that are associated with a specific individual, may also be used for optimized message creation and delivery. For example, a generic introduction or greeting from the supervisor or teacher associated with a specific individual may be included, a facility identifier (e.g., school, factory, or office building location associated with the at least one individual), as well as the purpose for inclusion of the specific content in the message (e.g. expression of concern, encouraging message, etc.).
Further, in the most preferred embodiments of the present invention, messaging mechanism 225 will most preferably be configured with one or more message duplication filters that will provide for the reduction or elimination of duplicate messages. Additional information about duplicate message filters is provided below in conjunction with
In addition, the most preferred embodiments of the present invention comprise security mechanism 226 for verifying access to the data and information contained in and transmitted to and from data server 130. Security mechanism 226 may be incorporated into operating system 221 and/or web server 222. Additionally, security mechanism 226 may also provide encryption capabilities for other components of computer-based system for providing optimized message creation and delivery 100 of
Further, depending on the type and quantity of information stored in database 223 and accessed by graphical user interface 224, security mechanism 226 may provide different levels of security and/or encryption for different computer systems 170 and 180 of
Message queue 227 is a specialized memory location that is configured to store messages for delivery to the specified message recipients, at a pre-determined time. Messages will be placed into message queue 227 by messaging mechanism 225. Since the creation of a message to be delivered at a later time by a message originator is a common feature of system 100, the order in which the messages were created or stored in database 223 will not always match the delivery schedule as determined by messaging mechanism 225.
In the most preferred embodiments of the present invention, the various components of computer-based system for providing optimized message creation and delivery 100 of
Referring now to
Similarly, message recipient 320 will interact with messaging mechanism 225 and database 223 via user interface 224. It is important to note that message originator 310 and message recipient 320 are both likely to switch roles during the communication process. For example, upon receiving a message from message originator 310, message recipient 320 may determine to prepare and send a response to message originator 310. In that case, message recipient 320 becomes the “message originator” and message originator 310 becomes the “message recipient.”
Additionally, message recipient 320 may have multiple devices that have been configured to receive messages from message originator 310. Message originator 310, in order to ensure that message recipient 320 receives the messages, may opt to configure a message to be sent via multiple communication methods, to multiple communication methods such as method 350, method 360, method 370, and method 380. Each of method 350, method 360, method 370, and method 380 comprises a communication platform and associated device. For example, method 350 may comprise a message from message originator 310 that is delivered to a cell phone via a social networking platform using wi-fi. Method 360 may comprise a message from message originator 310 delivered to a cell phone via SMS. Method 370 may comprise an email message from message originator 310 delivered to a computer via the Internet. In the most preferred embodiments of the present invention, one or more redundancy filters will be applied to ensure that the delivery of duplicate messages is reduced or eliminated to the extent possible.
Referring now to
It is important to note that a “delivery window” will be established by computer-based system for providing optimized message creation and delivery 100 of
Referring now to
Referring now to
In this example, the message originator has also indicated a delivery schedule. As previously noted, “message recipient” may refer to a single individual (e.g., “John Smith” or to a group of individuals (e.g., “Parents of Soccer Team Player”). User interface 224 of
With this information, messaging mechanism 225 of
Referring now to
In conjunction with the application of one or more duplication filters 590, it is necessary to identify duplicate messages or potentially duplicate messages. Filters 590 can be used to identify potentially duplicate messages and then prevent the duplicate messages from being delivered. As previously noted, system 100 allows the operator or administrator of the system to override message recipient preferences in certain cases such as emergencies. It may be desirable to send duplicate messages to one or more message recipients in certain situations and the most preferred embodiments of the present invention allow for such contingencies.
There are a number of ways for system 100 to programmatically identify potential duplicate messages. For example, three common scenarios can be used to illustrate the types of duplication that may occur.
Scenario A (Slight Variation in Wording)
Scenario B (Differences in Words/Length of Message)
Scenario C (Similar Words/Abbreviations)
In Scenario A, system 100 would identify the messages as being duplicates based on the significant similarity in all of the relevant words.
In Scenario B, the first message has 77 characters and the second message has 60 characters with 85.7% of the characters matching. Given a confidence interval or threshold of 85%, and with the characters being in the same relative position in both messages, system 100 would determine that the two messages were duplicates.
In scenario C, system 100 would identify the messages as being duplicate messages based on the similarity of the date, the time, and the location of the event. System 100 would also identify common abbreviations and word substitutions (e.g., “tourney” for “tournament” “tonight and “tonite” and “gym” for gymnasium”).
In at least one preferred embodiment of the present invention, system 100 will be configured to compare the titles of two different messages and use the similarity of the title as a starting point for detecting duplicate messages. In another preferred embodiment of the present invention, system 100 is configured to identify duplicate messages by examining the first or last 100 characters of multiple messages, looking for a predetermined number of first characters that match between the messages (e.g., comparing the first 20 characters) and use fuzzy logic where at least 90% or some other user configurable threshold are the same characters in the same position are identical.
Similarly, system 100 can monitor usage patterns exhibited by the message originator when composing the message. If the message originator is using a mobile application, and the content from an email is copied and pasted to upload to a social media platform, then the content of the two messages will be substantially the same and the messages can be marked as duplicates. In some embodiments, system 100 will not suppress duplicate messages unless the message originator sends the message out to two or more platforms. For example, if system 100 determines that a school or organization is sending the same message with substantially the same content and the administrator has sent that message to two or more platforms such as to email and to Facebook, then system 100 can be configured to assume that the messages which were sent to the message recipient were duplicate messages.
Alternatively, when a message originator attempts to transmit a message that is a probable duplicate of a previously transmitted message, then system 100 performs analysis and alerts the message originator that it appears that they are trying to transmit a duplicate message. The message originator will be able to confirm that they really want to transmit a duplicate message. If the administrator presses the confirmation button then the system will send out the duplicate message. The system may delete the duplicate communication but in some embodiments the system does not delete the duplicate message but suppresses the duplicate message so that it is not visible to the message recipient. For example, if a message recipient has followed or is following an organization from an app on a mobile device and is capable of receiving both Facebook® and Twitter® posts through the app, the system will post to only one of the accounts based on a default hierarchy or a user configurable hierarchy. Those skilled in the art will understand that these and other methodologies may be combined in various ways to accurately and efficiently identify duplicate messages.
Preliminarily, if a duplicate message is scheduled to be sent out and neither the message originator nor the message recipient has enabled the system to send duplicate messages, then the default system behavior will be to identify and eliminate the duplicate messages. However, if a message originator wants to send a message via Facebook® and via Twitter®, and if the message recipient has activated their profile settings to enable duplicate messages, then system 100 will send duplicate messages to that message recipient. The underlying concept is that the message originators and the message recipients should have the ability to determine the most appropriate messaging configuration for their specific needs.
Geolocation filter 591 provides for screening of potential duplicate messages based on physical proximity relationships (e.g., the physical location of multiple devices or multiple people). If multiple messages have been identified as duplicate messages, computer-based system 100 can use geolocation information to eliminate one or more duplicate messages based on physical location. If the messages are to be sent to a message recipient's cell phone (via text message) and home computer (via email) the system 100 can check the physical location of the cell phone (via GPS or other location technology) and access database 223 of
System 100 can also eliminate duplicate messages based on geolocation for multiple devices, such as an iPad® and an iPhone®. If both devices are in the same physical location, then a duplicate message may be sent to only a single device. Alternatively if sent to both devices, once the user reviews the message on the first device, the message can be eliminated from the second device. Similarly, if a student's parents are in close physical proximity, then system 100 can eliminate a duplicate message being sent to one of the parents based on the physical proximity of their cell phones, for example. The exact distance for invoking geolocation filter 591 can be determined by a specified user configurable distance.
Similarly, if the physical location of the message recipient's cell phone is in close physical proximity to the message recipient's work phone (as determined by the user profile information from database 223 of
Temporal proximity filter 592, allows for suppressing duplicate messages based on the time that the messages were sent. If duplicate messages are being sent at approximately the same time but being sent via different messaging platforms, system 100 can suppress one or more of the duplicate messages. User preferences can establish the time frame for duplicate messages to account for lag and latency times associated with message creation and queuing.
Spatial/time filter 593 provides a way to override or alter message delivery for eliminating duplicate messages (e.g., identical or nearly identical messages) that are separated by a certain period of time. For example, if a football game tweet is sent out three days before the football game and then re-tweeted day of the game, system 100 would generally regard this as a duplicate message and suppress the second message. However, some message recipients may wish to receive the reminder message, even if it is a duplicate of a previously received message. Each message recipient can configure their preferences to allow them to receive duplicate messages if the duplicate messages are separated in time by a user configurable number of days or hours.
Age filter 594 provides a filter for duplicate messages based on the age of the recipients. For example, if a duplicate message is being sent to multiple members of the same household (e.g., a parent and their child) then the age filter can be used to screen duplicate messages based on the age of the message recipient. In this case, the parent may configure their preferences so that duplicate messages are not sent to anyone in the household under the age of 18. This will prevent the duplicate messages from being sent to their 14-year-old student.
Subject matter expert filter 595 provides for filtering of duplicate messages based on user configurable designations regarding the subject matter of each message and a pre-identified level of knowledge for a plurality of intended message recipients. For example, if a husband and wife are both scheduled to receive the same message, system 100 can review the user profiles stored in database 223 of
Priority filter 596 can be configured to control which message platform is used for transmission and/or display of duplicate messages. This means that message recipients can determine the order of suppression for duplicate messages to ensure that messages are delivered to their most preferred message platform. For example, message recipients can configure the system so that if a duplicate message is detected, the message is delivered by the user configured message platform hierarchy. A message recipients may set their delivery preferences in order so that Facebook® posts>RSS feeds>Twitter® posts. With this preference hierarchy, if a Facebook® post is identical to a RSS feed post and a Twitter® post, then only the Facebook® posts will be visible to the message recipient and the remaining messages will be suppressed. If there are no identical Facebook® posts, but an RSS feed post is identical to a Twitter® post, then the RSS feed will be visible but the Twitter® post will be suppressed.
Length filter 597 can be used to determine which of the duplicate messages should be deleted. For example, if an email and a text message have been flagged as duplicate messages, length filter 597 can be used to eliminate the shorter or the longer of the two messages, based on message recipient preferences or system preferences. Where the longer message is preferred, then the shorter message will be eliminated and not delivered. Similarly, when the shorter message is preferred, the longer message will not be delivered or displayed.
Existing event filter 598, can be configured to review the message recipient's calendar of events and search for matching events. For example, if a message regarding a football game has been previously sent, and the message recipient has entered the football game into the calendar application on their cell phone, then system 100 can compare the text of new message announcing the football game to the calendar events on the cell phone. If the message recipient has already added the football game to their calendar, the existing event filter 598 would eliminate the duplicate message.
Content filter 599 includes a user configurable “confidence interval” for content matching. So, for a given message recipient, the confidence interval may be set to trigger at 85% meaning that if 85% of the content of multiple messages is identical, the message will be flagged as a duplicate message subject to delivery screening. Another message recipient may have a higher or lower confidence level setting (e.g., 75% or 90%) and the identification of potentially duplicate messages will vary accordingly. Once a group of messages have been identified as duplicates, system 100 can eliminate all but one of the duplicate messages to prevent delivery of the duplicates.
Duplicate message filters 590 depicted in
Further, in the case of multiple duplicate messages, system 100 can be configured to deliver the message via the most efficient and cost effective manner. For example, many organizations have to pay a fee for delivering messages via certain communication platforms. If two options are available, system 100 will choose the least expensive option by default, if no other message delivery parameters dictate otherwise.
In addition, message recipients can change the suppression configuration for duplicate messages on a global basis as well as a filter-by-filter basis. User interface 224 of
In addition to messages that are sent directly to individual message recipients, the use of filters 590 can also enhance other communications as well. For example, multiple people from an organization post the same or similar content to a common location (e.g., a school's Facebook® page, Twitter® feed, or news “mashup”), creating duplicate messages at the location. System 100 can be configured to examine each new message or posting and check for duplicate posts for the organization's Facebook® account or the Twitter® account. If the message has already been posted, then the duplicate message will not be posted. In the case of a news mashup, where there has been an updated post, system 100 will make a copy of the posts and import it into database 223. Then, system 100 will republish those posts in the news mashup of individual consumers who are using a mobile app. In some embodiments, the administrator can use a single interface via mobile app or via web access to system 100 when they type up a message and then select to post the messages to different platforms such as a Facebook® channel and a Twitter® platform.
In at least one embodiment of the present invention, system 100 provides an option to capability to retract message after it has been scheduled for transmission. User interface 224 will present the message originator with a user interface element (e.g., a button or other control) where the message originator can elect to identify and retract a previously transmitted message. In some circumstances the principal may change his or her mind about sending the message. This is accomplished by waiting for a predetermined but user configurable period of time before actually transmitting messages from system 100. In other words, message designated for delivery to message recipients are stored in message queue 227 for some period of time prior to being transmitted. At any time prior to transmission, the message originator can “retract” the message that will delete the message from message queue 227.
Referring now to
Referring now to
With the intended message recipients identified, the message originator will select one or more message delivery platforms (e.g., email, text message, telephone, snail mail, etc.) for transmitting the message to the recipients (step 730). As shown in
With the other message parameters identified, the message originator may create or add content (e.g., text, audio, graphic attachments, etc.) for inclusion with the message (step 740) and continue adding or creating content (step 745 “YES”) until all desired content has been added and/or created (step 745=“NO”).
It should be noted that even though a message originator includes certain content in a message (e.g., audio-video content), some intended message recipients may not have devices capable of receiving the content included in the message created by the message originator. However, this is not a problem because the message originator does not need to know about the capabilities of the message recipient's devices. Messaging mechanism 225 of
In addition, the message originator may also specify message translation options and a time frame for message delivery (step 750) that, in certain circumstances, may include an “emergency” designation that would override the message recipient's message receipt preferences to ensure that emergency messages are delivered immediately. After all of the relevant and desired message parameters have been specified, the message will be stored in database 223 of
Additionally, in at least some preferred embodiments of the present invention, the time frame and priorities for message delivery options may be automatically ascertained and assigned by reference to a one or more identification factors. For example, any message sent to a group of recipients identified as “Teachers” may be automatically scheduled for delivery at the beginning of the school day and sent via email to the email address for each of the teachers included in the “Teacher” group.
Referring now to
Referring now to
By identifying the message receipt capabilities of each intended message recipient, as well as the delivery options specified by the message originator, messaging mechanism 225 of
Another factor for matching of message content may be time dependent. For example, if a message originator has specified a message for delivery on a certain day, the message may be delivered via a certain message delivery platform to one message recipient at a first time and the identical message may be delivered to a second message recipient at a second time because each message recipient has specified different preferred time frames for their messages. In this fashion, even though a message originator created a single message, each message recipient may receive a different version of the message, at a different time, based on their device capabilities and their message receipt preferences.
Once a message has been delivered, system 100 will monitor any communication received back from the message recipient(s) to ascertain whether or not the message has been successfully delivered. The confirmation may take many forms, depending on the message delivery platform specified. For example, if the message is to be delivered via telephone, a constant busy signal would be interpreted to mean that the message delivery did not take place as intended (step 945=“NO”). System 100 would continue to try for the period of time specified by the message originator but the telephone call may never take place.
In this instance, alternative message delivery platforms may be identified and selected (step 930) so as to ensure that the message is ultimately delivered. Similarly, if a message recipient has identified email as their most preferred message receipt option, that will be the initial message delivery platform. However, if the email message is rejected for any reason (e.g., the message recipient's email server is off-line), then system 100 will receive a “bounce back” notification, indicating that the message was not successfully delivered (step 945=“NO”). In that case, a secondary or tertiary delivery method may be identified (step 920) and used (e.g., sending a text message or making an automated telephone call) until such time as the message is successfully delivered (step 945=“YES”). If all message delivery options have been exhausted and the message still has not been successfully delivery, then system 100 will generate an error message to alert the message originator of the message delivery failure.
Referring now to
As shown in
Additionally, the message originator may designate a message as an “Emergency” message, if desired. If a message has been designated as an “Emergency” message, then the message recipient's default message receipt preferences may be overridden and the message will be delivered immediately and to all specified devices, even if this delivery protocol would be in conflict with message receipt preferences established by the message recipient(s). Further, in the most preferred embodiments of the present invention, the message originator will also specify the start time and end time for message delivery. This will establish a delivery window and messaging mechanism 225 of
Referring now to
It should be noted that the message text 1130 may be automatically truncated or adjusted as necessary to comply with the text limits of the selected delivery platforms. For example, the email option will may allow virtually unlimited textual content to be included in the email. However, Twitter® has a 140 character limit for messages and some SMS text messaging platforms also have a character limitation (e.g., 160 characters). In these cases, the textual content may be programmatically truncated or otherwise manipulated to comply with the limitations inherent in the message delivery platform.
In addition, in at least some preferred embodiments of the present invention, a visual indicator may be displayed to the user as the textual content is entered, alerting the message originator that some of the textual content may not be delivered. This will allow the message originator to adjust the textual content as necessary. For example, in
Referring now to
Referring now to
For example, the message recipient's phone numbers, email addresses, social media identifiers, physical address, etc. can all be stored and updated in the message recipient's user profile. By selecting one or more of the options shown in
Referring now to
Referring now to
For example, the administrator at the school district level may opt to disable message delivery via printer output, in order to conserve resources. Similarly, the administrator may elect to limit the public posting options for message delivery. At each subsequent level (e.g., each individual school), the local administrator may be authorized to further restrict the delivery platform options, as necessary or desired. The effect of these choices will be “inherited”: by and reflected in the user interface for each message originator.
Referring now to
Next, based on the message delivery preferences of the message originator and/or the message recipient, the most preferred message delivery platform will be selected and the message will be formatted for the selected message delivery platform (step 1620) and the message will be delivered (step 1630).
If the message is successfully delivered via the selected message delivery platform (step 1635=“YES”), then the message delivery details (e.g., time, date, etc.) will be recorded (step 1650). However, if the message is not successfully delivered (step 1635=“NO”), then the next most preferred message delivery platform will be selected (step 1640) and delivery will be attempted via the message delivery platform (step 1630). This delivery cycle will continue until the message has been successfully delivered. In some instances, after all of the delivery options have been exhausted, and if the message has not been successfully delivered, the system may return an error message to the message originator to identify the failed message delivery cycle.
After successful delivery, the system will monitor the message recipient's account to determine whether or not the message recipient has accessed the delivered message (step 1655). If the message recipient has accessed the message (step 1655=“YES”), then the details (e.g., time, date, etc.) of the accessed message will be recorded (step 1670). However, if the message has not been accessed (step 1655=“NO”), then the system will continue to monitor the message recipient's account (step 1660) until the message is accessed or until the system determines that a failure has occurred and the system may return an error message to the message originator to identify the failed access cycle. Method 1600 can be repeated for multiple messages and multiple message originators and message recipients. As previously explained, once the message has been received and accessed by the message recipient, further message deliveries of the same message will not take place, thereby reducing or eliminating the potential of a message being sent to the same message recipient multiple times.
Referring now to
With the appropriate filters applied, the appropriate message delivery parameters can be used to further ascertain and quantify the correct timing window and messaging platform for message delivery (step 1730) and the message can be delivered to the intended message recipient(s) (step 1740) and the process repeated for additional messages.
As will be appreciated by one skilled in the art, aspects of the computer-based system for providing optimized message creation and delivery disclosed herein may be embodied as a system, method or computer program product. Accordingly, aspects of the computer-based system for providing optimized message creation and delivery may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the computer-based system for providing optimized message creation and delivery may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wire-line, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the computer-based system for providing optimized message creation and delivery may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
From the foregoing description, it should be appreciated that computer-based system 100 and method for customized messaging disclosed herein presents significant benefits that would be apparent to one skilled in the art. Furthermore, while multiple embodiments have been presented in the foregoing description, it should be appreciated that a vast number of variations in the embodiments exist. Lastly, it should be appreciated that these embodiments are preferred exemplary embodiments only and are not intended to limit the scope, applicability, or configuration of the invention in any way. Rather, the foregoing detailed description provides those skilled in the art with a convenient road map for implementing a preferred exemplary embodiment of the invention, it being understood that various changes may be made in the function and arrangement of elements described in the exemplary preferred embodiment without departing from the spirit and scope of the invention as set forth in the appended claims.