Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
BILLING MANAGEMENT SYSTEM FOR AGRICULTURAL SERVICES ACCESS
Document Type and Number:
WIPO Patent Application WO/2012/040182
Kind Code:
A2
Abstract:
Billing for application services may be provided. A plurality of data may be received from a machine. The machine may be determined to be associated with a subscribing user, and an application service associated with the machine may be identified. The plurality of data may be provided to the application service and a charge record associated with the subscribing user may be created.

Inventors:
O'NEIL CHRISTOPHER (US)
Application Number:
PCT/US2011/052325
Publication Date:
March 29, 2012
Filing Date:
September 20, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
AGCO CORP (US)
O'NEIL CHRISTOPHER (US)
International Classes:
G06Q30/00
Other References:
None
Attorney, Agent or Firm:
LAFFERTY, Wm. Brook et al. (4205 River Green ParkwayDuluth, Georgia, US)
Download PDF:
Claims:
WE CLAIM:

1. A method for providing billing for application services, the method comprising:

receiving a plurality of data from a machine;

determining whether the machine is associated with a subscribing user;

in response to determining that the machine is identified with the subscribing user, identifying an application service associated with the machine;

providing the plurality of data to the application service; and

creating a charge record associated with the subscribing user.

2. The method of claim 1, further comprising:

determining whether the subscribing user is associated with a pre-paid account; and in response to determining that the subscribing user is not associated with a pre-paid account: generating an invoice to the subscribing user comprising the charge record, and providing the invoice to the subscribing user.

3. The method of claim 2, further comprising:

generating the invoice to the subscribing user comprising a plurality of charge records.

4. The method of claim 3, wherein the invoice is generated on a periodic basis.

5. The method of claim 2, further comprising, in response to determining that the subscribing user is associated with a pre-paid account:

debiting the pre-paid account an amount associated with the charge record; and

providing a receipt to the subscribing user.

6. The method of claim 2, wherein the plurality of charge records are associated with a plurality of machines.

7. The method of claim 2, wherein the plurality of charge records are associated with a plurality of application services.

8. The method of claim 1, wherein the charge record comprises a user identifier associated with the subscribing user, a machine identifier associated with the machine, and an application service identifier associated with the application service.

9. The method of claim 1, wherein the charge record is associated with a plurality of data transmissions from the machine.

10. The method of claim 1, wherein the plurality of data is received from at least one of the following: a portable data storage device, a wireless network transmission, and a wired transmission.

1 1. A method for providing service allocation, the method comprising:

identifying at least one initial filter criteria comprising an application service associated with a machine;

resolving a host address for the application service associated with the at least one initial filter criteria;

invoking the application service associated with the at least one initial filter criteria;

transmitting a service profile comprising the at least one initial filter criteria to the machine; receiving a plurality of data from the machine; and

transmitting the plurality of data from the machine to the host address associated with the application service.

12. The method of claim 11, wherein the machine comprises an agricultural implement.

13. The method of claim 1 1, wherein the application service comprises a data processing application.

14. The method of claim 1 1, further comprising creating a cache entry associating the machine and the host address.

15. The method of claim 14, further comprising:

determining whether to de-register the machine; and

in response to determining to de-register the machine, removing the cache entry associating the machine and the host address.

16. The method of claim 15, wherein identifying at least one initial filter criteria comprising an application service associated with a machine comprises determining whether a trigger condition associated with the at least one initial filter criteria matches at least one data element of the plurality of data received from the machine.

17. The method of claim 15, wherein determining whether to de-register the machine comprises determining whether a work complete message has been received from the machine.

18. The method of claim 15, wherein determining whether to de-register the machine comprises determining whether the plurality of data is no longer being received from the machine.

19. The method of claim 15, wherein determining whether to de-register the machine comprises determining, from the plurality of data received from the machine, whether the machine has fully covered an assigned work area.

20. The method of claim 11, further comprising identifying the at least one initial filter criteria associated with the machine in response to receiving an initial data transmission from the machine.

21. The method of claim 20, further comprising authenticating the machine in response to receiving the data transmission from the machine.

22. A method for evaluating control and configuration triggers, the method comprising: receiving a data transmission from a machine;

determining whether a first initial filter criteria of a plurality of initial filter criteria applies to the transmitted data, wherein each of the plurality of initial filter criteria comprises a trigger and an application service;

in response to determining that the first initial filter criteria applies to the data transmission, providing the transmitted data to the application service associated with the initial filter criteria;

receiving a return message from the application service associated with the initial filter criteria; and

determining, according to the return message, whether to determine whether at least one second initial filter criteria of the plurality of initial filter criteria applies to the transmitted data.

23. The method of claim 22, wherein determining, according to the return message, whether to determine whether the at least one second initial filter criteria applies to the data comprises determining whether the return message comprises a change to the data.

24. The method of claim 22, wherein determining, according to the return message, whether to determine whether the at least one second initial filter criteria applies to the transmitted data comprises determining whether the return message comprises a configuration change to the machine.

25. The method of claim 22, further comprising:

in response to determining that no initial filter criteria of the plurality of initial filter criteria applies to the data, providing the transmitted data to a default application service.

26. The method of claim 22, wherein determining whether the first initial filter criteria applies to the transmitted data comprises determining whether the transmitted data is associated with the trigger of the first initial filter criteria.

27. The method of claim 26, wherein the trigger of the first initial filter criteria comprises at least one of the following: a type of the machine, a location of the machine, a time, a date, and an analysis of the data received from the machine.

28. The method of claim 22, further comprising:

modifying the transmitted data according to the return message from the application service; and

determining whether the at least one second initial filter criteria of the plurality of initial filter criteria applies to the modified data.

29. The method of claim 28, wherein modifying the transmitted data according to the return message from the application service comprises at least one of the following: eliminating at least one outlier data point, associating the transmitted data with a second plurality of data, and performing a calculation on the transmitted data.

30. The method of claim 22, further comprising:

after providing the transmitted data to the application service associated with the initial filter criteria, locking the transmitted data from modification until the return message is received.

31. A method for providing application service generation, the method comprising:

creating an application service;

receiving a data transmission from a machine, wherein the data transmission comprises a machine identifier;

identifying an application service associated with the machine according to the machine identifier;

invoking the application service on the transmitted data; and

receiving a response message from the application service.

32. The method of claim 31, wherein creating the application service comprises at least one of the following: selecting a data analysis capability, creating an initial filter criteria trigger, selecting a data measurement requirement, and identifying a prerequisite service.

33. The method of claim 31, further comprising:

determining whether the application service associated with the machine comprises a prerequisite service; and

in response to determining that the application service comprises the prerequisite service: invoking the prerequisite service on the transmitted data,

receiving a modification to the transmitted data from the prerequisite service, and

invoking the application service on the modified data.

34. The method of claim 33, wherein the modification to the transmitted data comprises associating the transmitted data with at least one second plurality of data.

35. The method of claim 33, wherein the modification to the transmitted data comprises a calculation to be performed on the transmitted data.

36. The method of claim 31, wherein identifying an application service associated with the machine according to the machine identifier comprises determining whether the machine identifier is authorized to access the application service.

37. The method of claim 31 , further comprising:

determining whether the transmitted data does not comprise an essential data element associated with the application service; and

in response to determining that the transmitted data does not comprise the essential data element associated with the application service, determining whether the essential data element is available from another source.

38. The method of claim 37, wherein determining whether the essential data element is available from another source comprises determining whether a second application service is operative to calculate the essential data element from the transmitted data.

39. The method of claim 37, wherein determining whether the essential data element is available from another source comprises determining whether a second application service is operative to calculate the essential data element from a second data transmission from the machine.

40. A method for provisioning an application service, the method comprising:

receiving a selection of an application service from a user;

associating the application service with a machine identifier;

receiving a data transmission from the machine associated with the user;

invoking the application service associated with the machine identifier; and

providing the transmitted data to the application service.

41. The method of claim 40, wherein the user comprises an owner of a machine associated with the machine identifier.

42. The method of claim 40, wherein the user comprises an operator of a machine associated with the machine identifier.

43. The method of claim 40, wherein the selected application service one of a plurality of application services displayed to the user.

44. The method of claim 43, wherein the plurality of application services displayed to the user comprises a list of application services to associated with a subscription by the user.

45. The method of claim 43, further comprising:

determining whether the selected application service comprises a subscribed service of the user; and

in response to determining that the selected application service does not comprise a subscribed service of the user, displaying a subscription price data to the user.

46. The method of claim 40, further comprising:

in response to receiving a data transmission from the machine associated with the user, determining whether the user comprises an active subscriber to the application service.

47. The method of claim 46, further comprising:

in response to determining whether the user does not comprises an active subscriber to the application service, generating an invoice to the user comprising a charge for the application service.

48. The method of claim 46, further comprising:

in response to determining whether the user does not comprises an active subscriber to the application service, discarding the transmitted data.

49. The method of claim 46, further comprising:

in response to determining whether the user does not comprises an active subscriber to the application service, notifying the user that the application service is not associated with an active subscription.

Description:
TITLE

BILLING MANAGEMENT SYSTEM FOR AGRICULTURAL SERVICES ACCESS

[001 ] Agricultural service billing and invoicing may be provided. In conventional systems, access to application services can be cumbersome, requiring interaction with multiple, non-integrated service providers. Equipment operators must often provide data to multiple analysis applications, often operated by different entities, and deal with a multitude of billing systems, receivable due dates, and invoice formats. This often causes problems because the operators spend needless time reconciling multiple accounts.

SUMMARY

[002] A billing system for application services may be provided. A plurality of data may be received from a machine. The machine may be determined to be associated with a subscribing user, and an application service associated with the machine may be identified. The plurality of data may be provided to the application service and a charge record associated with the subscribing user may be created.

[003] Application server allocation may be provided. An initial filter criteria comprising an application server may be identified as being associated with a machine. A host address for the application server may be resolved, and the application server may be invoked. A service profile comprising the at least one initial filter criteria may be transmitted to the machine. A plurality of data may be received from the machine and transmitted to the host address associated with the application server.

[004] Evaluation of control and configuration triggers may be provided. A data transmission may be received from a machine. A first initial filter criteria may be determined to apply to the transmitted data, and the transmitted data may be provided to an application service associated with the initial filter criteria. A return message may be received from the application service and may be evaluated to determine whether the transmitted data should be compared to additional initial filter criteria.

[005] Dynamic service generation may be provided. An application service may be created. Upon receiving a data transmission from a machine, wherein the data transmission comprises a machine identifier, an application service may be identified as being associated with the machine according to the machine identifier. The application service may be invoked on the transmitted data and a response message may be received from the application service.

[006] User provisioning of application services may be provided. A selection of a plurality of agricultural application services may be received from a authenticated user. A subscription entry comprising the selected application services may be created in a database. When a transmission is received from a machine comprising a data measurement and a machine identifier, the subscription entry may be determined to be associated with the machine identifier. The plurality of application services associated with the subscription entry may be invoked and the data measurement may be provided to the plurality of application services.

[007] It is to be understood that both the foregoing general description and the following detailed description are examples and explanatory only, and should not be considered to restrict the invention's scope, as described and claimed. Further, features and/or variations may be provided in addition to those set forth herein. For example, embodiments of the invention may be directed to various feature combinations and sub-combinations described in the detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

[008] The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate various embodiments of the present invention. In the drawings:

[009 FIG. 1 is a block diagram illustrating an operating environment;

[010 FIG. 2 is an illustration of an example work area;

[01 1 FIG. 3 is a flow chart of a method for providing billing for agricultural services;

[012 FIG. 4 is a block diagram of a computing device;

[001 FIG. 5 is a flow chart of a method for providing application service allocation; and [002 FIG. 6 is a block diagram of a computing device;

[003 FIG. 7 is process diagram illustrating an evaluation of filter criteria;

[004 FIG. 8 is a flow chart of a method for evaluating a control trigger;

[005 FIG. 9 is a block diagram of a computing device;

[006 FIG. 10 is a process diagram illustrating a sequenced invocation;

[007 FIG. 1 1 is a flow chart of a method for providing dynamic service generation;

[008 FIG. 12 is a block diagram of a computing device;

[009 FIG. 13 is a block diagram of a computing device; and

[010 FIG. 14 is a flow chart of a method for providing application provisioning.

DETAILED DESCRIPTION

[01 1] The following detailed description refers to the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the following description to refer to the same or similar elements. While embodiments of the invention may be described, modifications, adaptations, and other implementations are possible. For example, substitutions, additions, or modifications may be made to the elements illustrated in the drawings, and the methods described herein may be modified by substituting, reordering, or adding stages to the disclosed methods.

Accordingly, the following detailed description does not limit the invention.

[012] Embodiments of the present invention may provide for a system and method for providing agricultural inventorying and invoicing. An agricultural implement, such as a hay baler implement coupled to a tractor, may be automatically configured and monitored before, during, and after operation in a work area. Upon leaving the work area, reports such as an inventory count and location of gathered hay bales may be generated and transmitted to a central system, such as a farm owner's computer-based inventory application. Consistent with embodiments of the invention, invoices for the work performed may be generated according to factors such as time and material efficiency and amount of harvested material gathered and similarly transmitted to the central system.

[013] For example, an independent contractor may be retained to harvest a crop in a given field. The equipment operator may couple an appropriate implement (e.g. a combine harvester) to a tractor. The system may identify the type of implement and retrieve a work order from a central system identifying a field location. A GPS system in the tractor may direct the operator to the field and/or pilot the tractor to the field using an autosteer system. The GPS system may determine when the implement has entered the work area according to a geo-boundary that may be provided with the work order. Upon receiving the work order and/or upon detecting that a trigger associated with entering the work area has occurred, an appropriate application may be transmitted to a computer onboard the tractor, such as a hay baling application operative to inventory the number of bales created, tag the bales' locations in the field for later retrieval, and/or measure the quality, yield, moisture content, etc., associated with each bale. Another trigger may occur upon leaving the work area that may cause the application to finalize the recorded information, transmit a report and/or invoice to the central system.

[014] Dynamic application configuration may be provided to enable the automatic selection of an appropriate farm management information (FMIS) application according to implement and/or tractor type, the location, a time and/or date, information captured by sensors coupled to the implement and/or tractor. The application configuration may identify what work implements are available for coupling to the tractor, what work needs to be done in which fields, which operators are available, and may comprise a priority task list based on factors such as weather forecasts, current market prices, scheduling requirements, etc.

[015] FIG. 1 illustrates an operating environment 100 for providing: an agricultural inventory and invoice system; trigger-based application control; and dynamically triggered application configuration. Operating environment 100 may comprise a tractor/implement 1 10 coupled via a network 120 to a central system 130. Tractor/implement 1 10 may comprise a tractor capable of being coupled to a plurality of different work implements (e.g., harvesters, balers, irrigation implements, fertilizing implements, tillers, trailers, crane arms, etc.) and/or a single machine such as a flatbed truck. Network 120 may comprise a communication medium such as a wireless, radio, and/or cellular network. Central system 130 may comprise a plurality of applications that may execute on a computing device, and/or a plurality of different communicatively-coupled computing devices. The applications may comprise a machine session control server 135, a machine subscription server 140, an invoice server 145, an inventory database 150, and/or a plurality of application servers 160(A)-(B). Other elements not shown may also be included in central system 130, such as weather forecasting applications, price tracking applications, yield and/or efficiency reporting applications, and/or operator databases comprising information such as wages and trained skills and proficiencies. Central system 130 may also be operative to communicate with and send and/or retrieve data from an outside data source such as a crop market price and/or weather service.

[016] Central system 130 may be operative to identify whether tractor/implement 1 10 is associated with an application subscription according to machine subscription server 140 and may download an application 165 to tractor/implement 1 10 appropriate to a current work assignment.

Application 165 may be configured to perform certain functions upon the occurrence of trigger events such as recording a start time and/or initiating data recording when tractor/implement 1 10 enters a field and/or transmitting a report or invoice when tractor/implement 110 leaves the field.

[017] FIG. 2 illustrates an example work area 200. A plurality of tractors 210(A)-(B) may arrive at a depot 220 in the morning. Central system 130 may be located at depot 220 and/or offsite may communicate with tractors 210(A)-(B) via a communication medium such as a wireless, radio, and/or cellular network. The tractor operators may be identified according to skill sets, operation costs (e.g., equipment costs and/or operator wages) and/or tractor capabilities (e.g., tractor 210(A) may comprise a more powerful engine better suited to a heavier work implement than tractor 210(B) and/or tractors 210(A) and/or tractor 210(B) may already have a work implement coupled). The central system may also comprise a list of available work implements such as plurality of implements 230(A)-(D) and/or work areas, such as a plurality of fields 240(A)-(D). For example, work implement 230(A) may comprise a combine harvester, work implement 230(B) may comprise a hay baler, work implement 230(C) may comprise a fertilizer, and work implement 230(D) may comprise a hay bale gatherer. Field 240(A) may comprise a hay field ready for baling, field 240(B) may comprise a hay field that has already been baled but in need of retrieval, field 240(C) may comprise a corn field in need of fertilizing, and field 240(D) may comprise a field in need of tilling.

[018] The central system may provide a work assignment to one and/or more of tractors 210(A)-(B). For example, if tractor 210(A) already has a hay baler implement coupled, tractor 210(A) may be assigned to field 240(A). If tractor 210(B) does not yet have an implement coupled, central system 130 may provide a work assignment according to a work priority list and/or tractor 210(B) 's (and/or its operators) capabilities and/or costs. For example, a weather forecast may provide for rain in the afternoon. Collection of baled hay from field 240(B) may receive a higher priority than fertilization of field 240(C) in order to minimize damage to the quality of the baled hay and/or to avoid excess fertilizer runoff.

[019] Application configurations, triggers, and/or work orders may be downloaded prior to beginning work and/or updated as information is gathered. For example, at the beginning of the work day, a hay baler application (e.g., work application 165) may be downloaded to a tractor/implement 1 10. if a hay baler application detects that the gathered material is becoming too wet, an updated work order may direct the operator to another work location and/or transmit a location according to the GPS identifying the material for a later attempt. Similarly, if a yield and/or quality measurement determines that the cost of having the operator in a particular location is greater than the value of the crop being harvested, the operator may be directed to increase speed so as to finish the area faster, accepting a lower yield and/or quality in exchange for the operator reaching a higher value area sooner.

[020] Consistent with embodiments of the invention, central system 130 may identify various fields such as fields 240(A)-240(B) and track past work done, current work needed, and/or future work expected. For example, field 240(A) may comprise a plurality of work assignments, their required order, and their status such as: tilled - completed, planted - completed, cut - completed, baled - pending, collected - waiting for baling. The completed assignments may be associated with recorded data such as time spent, costs incurred, yields, quality measurements, etc. As tractor/implement 1 10 enters boundaries identified for field 240(A), central system 130 may determine whether

tractor/implement 1 10 comprises an appropriate implement for the current work needed in that field. If tractor/implement 1 10 comprises a hay baler implement and field 240(A) is currently in need of baling, central system 130 may download application 165 as a hay baling application and instruct

tractor/implement 1 10 to begin operation in field 240(A). Application 165 may comprise configuration and/or trigger information such as acceptable moisture content such that if a sensor coupled to tractor/implement 1 10 detects an unacceptably high moisture level, application 165 may reconfigure for new instructions, such as skipping the wetter areas, tagging their location for later re-attempts, and reporting the problem to central system 130. Other trigger examples may comprise a fuel cost/mileage reporting upon completion of the work (triggered by leaving the field boundary and/or returning to depot 220), providing new instructions to tractor/implement 1 10 such as directing it to another field to perform similar work or returning to depot 220 to change implements), and/or generating and/or transmitting invoice data to central system 130 associated with the completed work as measured by application 165.

[021] Triggers may comprise automatic start, stop, and/or reconfiguration instructions that may be associated with tractor/implement 1 10 such as a location, a time/date, a capability, an attached implement, and/or data collected by tractor/implement 1 10. Triggers may comprise a condition (and/or a plurality of conditions) and an action. For example, a first trigger may comprise the conditions of entering field 240(A) with a hay baler implement attached and an action of initiate hay baler application. A second trigger may become active only after the first trigger has fired, such as one comprising a condition of leaving field 240(A) and an action of reporting gathered data to central system 130.

[022] An example use case may be as follows. Tractor 210(A) may receive a plurality of triggers from central system 130. As tractor 210(A) enters field 240(D) with a hay baling implement attached, triggers may fire associated with field 240(D) to determine whether appropriate work is available for field 240(D). If field 240(D) is currently in need of fertilizing, however, tractor 210(A) has the wrong implement and so no application may be initiated. As tractor 210(A) crosses the boundary into field 240(A), which may be in need of hay baling, a trigger may fire that causes central server 130 to transmit a hay baling application comprising configuration information, data recording instructions, and/or operator instructions to tractor 210(A). The hay baling application may initiate based on the trigger firing and may, for example, provide a suggested route via a GPS display to an operator of tractor 210(A) and/or initiate data recording associated with the working of the hay baling implement.

[023] Other triggers may be operative while the hay baling application is executing. For example, outside data source 170 may provide hay bale prices data to central server 130 enabling a trigger condition based on yield data collected by tractor 210(A). A predicted market value of the hay being baled by tractor 210(A) may be calculated and compared to predicted costs such as operator wages and equipment and fuel costs. If the projected profit is below a configurable threshold, the trigger may fire to stop the application and direct the operator of tractor 210(A) to cease operations in field 240(A). Another trigger may comprise a moisture level threshold that may direct the operator to skip some and/or all of field 240(A) if the moisture content of the hay is too high. The skipped areas may be recorded and transmitted back to central system 130, such as on the firing of another trigger comprising a condition of leaving the boundaries of field 240(A). A single trigger condition, such as leaving the field, may comprise multiple resulting actions, such as requesting new instructions for the operator and transmitting inventory and collection data to central system 130. For example, the hay baling application may transmit data comprising a GPS location for each bale ready for pickup and may comprise additional data such as warnings about which bales may comprise a higher moisture content than desired and so may require special handling.

[024] Agricultural technology domain areas (ATDA) may comprise features and functionality used by a farmer to provide management, logistics, planning and operational efficiencies in the application and harvesting of material. A farmer may have access to many machines and implements that may comprise different makes, models, and have different configurations that generate unstructured process data. Consistent with embodiments of the invention, an architecture layer, referred to herein as an Agricultural Application Control Subsystem (AACS), may be provided allowing user and/or location based customization and configuration independent of the underlying machine specific implementations. Applications may be designed for use with multiple makes and models by relying on the architecture layer to translate abstracted instructions (e.g., "collect moisture level data") into specific control instructions for a given implement.

[025] Tractor 1 10 may provide data through a standardized interface, such as that described by ISO 1 1783 over network 120 to central system 130, which may then store and/or convert the data into a standard format (e.g., XML) and/or a proprietary format associated with a particular data management application. The converted data may be made available to a farmer through an interface application, such as on a personal computer and may be used by value-added service applications, such as profit and loss analysis applications. Further, data from different machines may be collected, converted into a common format, and aggregated for use in a single analysis application. A closed loop architecture comprising a machine and a server in communication may be used. Process data may be sent to the server, analyzed, and adjustments may be made to the machine's configuration.

[026] The AACS may comprise a three-layer architecture structure. A first layer may comprise a transport plane comprising physical resources necessary for a connection from the agricultural machine to a middle layer. The middle layer may comprise a control plane that may comprise intelligent elements that may determine whether a data from a tractor is allowed to enter the network and which ATDA(s) to invoke in a top layer. The top layer may comprise an application plane where the ATDA(s) reside. The lower layer may be represented, for example, as a combination of a cellular network and a mobile application system, the AACS, and a network application system.

[027] The AACS may be responsible for examining each process-data record as it enters central system 130. This examination may be implemented, for example, via machine session control server 135 and/or machine subscription server 140. AACS may provide session control by recognizing that a machine may be generating process-data and that it may be possible to provide additional features and functionalities to the machine or to the ATDA service provider's application. A session may comprise a path of the data to ATDA service provider(s) from the machine and visa versa. Session control may allows establishment of a session and/or two-way transmission between central server 130 and tractor 1 10 during the life time of that session. An example of a service may comprise the storage of process data, such as in inventory database 150. Once the machine starts sending data, a session may be started by creating a path between the machine data and the storage service. If the data includes GPS coordinates it may be possible during the session life time to engage another service such as a geofence analysis.

[028] A geofence may comprise a virtual perimeter for a real-world geographic area. When a location-aware device of a location-based service (LBS) user enters or exits a geofence, the device receives a generated notification. This notification might contain information about the location of the device. Geofencing is an element associated with telematics hardware and software. It may allow users of the system to draw zones around places of work, customers sites, fields, and/or secure areas. These geofences, when crossed by an equipped vehicle or person may trigger a notification to the user or operator.

[029] Through session control, the AACS may allow the determination of routing information (address) for a machine (e.g. for sending updated information, content adaptation for incompatible devices (e.g. converting units of captured data to the ISO 11783 standard), and interworking between different access networks. Session control may further enable the provision of application logic not natively available in devices (e.g. data corrections and auto field detection algorithms or the addition of coding data like an operator's name) and supplemental outside information for the application (e.g. weather information or commodity pricing). Session control may also provide store and forward capabilities when one ATDA service provider is not connected (e.g. the user of a FMIS software package is not at the computer) or when a machine is not in coverage. Session control may also offer authentication and authorization functionality.

[030] The AACS architecture may provide two mechanisms with which to blend applications already deployed in the network to create new ATDA services - Initial Filter Criteria (IFC) and service brokering. The iFC may comprise a set of prioritized trigger points assigned to a subscriber's profile that indicate the order in which multiple application servers (e.g., application servers 160(A)-(B)) may be invoked depending on what services a user has subscribed to.

[031 ] IFC implementation may use triggers that may define a set of conditions under which a particular application server is notified about the existence of data. Particular conditions may be provided in the form of regular expressions. IFCs may define a correlation between a set of triggers and particular application server(s) responsible for execution of the associated service logic. The process data flow through the AACS may begin with the machine (e.g., tractor 110) capturing data and sending it to session control server 135 of central system 130. The process data from the machine may be parsed and a machine ID may be captured. The machine ID may be sent to machine subscriber server 140 to determine if the machine is allowed to enter this server (e.g. authentication and/or determination of whether the machine is an active paid subscriber). The applications that the machine has subscribed to may be returned to session control server 135 in the form of application profiles. Session control server 135 may examine each telemetry message against the IFC contained in the application profile(s); if a match occurs, the session may be assigned to an Application Server. The IFC may be able to select an application server based on the process data. That is, central server 130 may dynamically assign each session to a service. For example, if the process data does not include the speed of the machine but does include GPS, then a session may be dynamically assigned to a speed-as- a-function-of-GPS data service.

[032] The service brokerage may comprise a set of rules that govern service invocation during the life time of a session. The application profile may assign a quality of service (QoS, e.g., a required speed or performance of the network) value to force a route used by the assigned application server to allow real time access to the data.

[033] Application services may be offered as packages and/or individual applications that may incur a one-time, a periodic, and/or a recurring cost. A flexible charging mechanism may allow a network operator to offer a differential value beyond just set pricing or monthly fees. Pricing scenarios may be supported in the ACSS such as prepaid, postpaid, machine owner pays, ATDA service provider pays, and/or data storage costs (e.g., pay per data increment consumed and/or made available).

Application services may comprise, for example, data analysis applications, external data provider applications, auto field detections algorithms, data shaping algorithms, mapping services, invoicing services, geofencing services, SMS services, e-mail services, streaming audio and/or video, and/or firmware and/or software application upgrade services. Each session may be associated with a set of services invoked as desired by the end user and/or the ATDA service provider. A list of services invoked, the time, date and length of invocation may be captured in a Charging Data Record (CDR). The CDR is then used by a billing entity against a rate sheet to create a bill.

[034] The following use case is provided as a non-limiting example of embodiments of the invention. A farmer may create a new application called "Baler Inventory and Invoice." Central system 130 may request the farmer to configure the application by providing details such as a location, desired equipment and/or operators, and/or scheduling data. The farmer may configure the application for use in field 240(A) when he is using tractor 1 10(A) with implement 230(A). The farmer may use two triggers such as geofence and machine configuration. He may assign the field name to the geofence trigger and the machine configuration to a machine and implement triggers.

[035] The Initial Filter Criteria may be created to define when and where to start the application. In addition, the application may also know when to stop. Two filters may be created as shown below. A session may be started once the condition(s) of Example Trigger 1 are met and the session may remain active until an end condition such as Example Trigger 2 is satisfied.

IfGeoFence == field 240(A) &&

If Machine == tractor 110(A) &&

If Implement == implement 230(A) &&

Then Start the Baler Inventory and Invoicing Application

Example Trigger 1 If Application == implement 230(A) &&

If Application == Started &&

GeoFence != field 240(A) \ \

If Machine != tractor 110 \ \

If Implement != implement 230(A) 11

Then Stop the Baler Inventory and Invoicing Application

Example Trigger 2

[036] The application provisioning process may store the IFC as part of the farmer's application profile for that machine into machine subscription server 140. The ACSS may continuously monitor process data from all machines. Machine process data may be sent to an application control function and its data may be parsed and sent to machine subscription server 140. Machine subscription server 140 may find the application profile and return the IFCs. Until the triggers for the Baler is met, the data may be stored via a default process. Each time a set of process data is sent to the ACF, it may be parsed and examined to perform machine authentication, load in the application service profile, and executes the IFCs. For example, the geofences service may be invoked to determine whether the machine is in the trigger field.

[037] If the process data matches the IFC, a session (a stateful program counter that assist in application control) may be created and a Session Detailed Record (SDR) for billing purposes may be generated. A message may be sent to one of application servers 160(A)-(B), such as applications server 160(A), comprising the SDR and an instruction to start the baler application. Application server 160(A) may receive the message, parse the SDR, and begins work. Application server 160(A) may download the baler application and/or a task to a task controller on tractor 1 10(A) so that the machine may capture the correct data. For example, the baler application may be transmitted to tractor 1 10 as application 165. Application 165 may begin to query the machine process data. The process data may allow application 165 to count the number of bales and record the location of the bales. Session control server 135 may monitor the machine process data until the IFC that ends the application is met. An SDR associated with stopping the application may be sent to application server 160(A), the application may be stopped, and the SDRs may be logged to be retrieved by a billing system such as invoice server 145.

[038] FIG. 3 is a flow chart setting forth the general stages involved in a method 300 consistent with an embodiment of the invention for providing billing services for agricultural applications. Method 300 may be implemented using computing device 400 as described in more detail below with respect to FIG. 4. Ways to implement the stages of method 300 will be described in greater detail below. Method 300 may begin at starting block 305 and proceed to stage 310 where computing device 400 may receive a data transmission from a machine. For example, data (such as a harvested quantity of agricultural material) gathered by tractor/implement 1 10(A) may be transferred to central system 130. The transfer may comprise, for example, a mechanism such as a portable data storage device (e.g., a flash drive) and/or a wireless or wireline data transfer, such as over network 120.

[039] From stage 310, method 300 may advance to stage 315 where computing device 300 may determine whether the machine providing the data is associated with an active subscription. For example, the data transfer may comprise a machine identifier associated with an owner and/or operator of the machine. A database may comprise a plurality of subscription entries associated with machine identifiers allowing computing device 300 to look up any entries comprising the received machine identifier.

[040] If the machine is not associated with a subscription, method 300 may advance to stage 320 where computing device 400 may determine whether a one-time access to a service may be authorized. For example, an operator of tractor/implement 1 10(A) may transfer data to central system 130. Upon determining that the machine is not associated with an active subscription, central system 130 may display a message to the operator comprising a usage agreement and/or one time access fee. The operator may choose to accept or decline the access and/or may pay for access to the service, such as through a credit card processing system. Such credit card processing systems are known in the art. Consistent with embodiments of the invention, authorizing access to the service may comprise receiving an address to which an invoice may be sent, receiving a purchase order number, and/or another method of authorizing and/or agreeing to pay any access fess associated with the desired application service. If no one-time usage is authorized, method 300 may end at stage 375.

[041] If the operator authorizes the one-time access at stage 320 or after determining that the machine is associated with a subscription at stage 315, method 300 may advance to stage 325 where computing device 400 may identify an application service associated with the machine and/or the subscription. For example, the subscription may be associated with a harvest yield calculation service.

[042] From stage 325, method 300 may advance to stage 330 where computing device 400 may provide the data to the application service. For example, central system 130 may transfer the data to application service 160(A) for analysis.

[043] From stage 330, method 300 may advance to stage 335 where computing device 400 may determine whether the subscription is a pre-paid subscription. For example, central system 130 may determine whether an owner and/or operator associated with the machine maintains an account associated with the subscription through which funds are made available to central system 130 prior to accessing any of the associated application services. [044] If so, method 300 may advance to stage 340 where computing device 400 may debit the pre-paid account. For example, the pre-paid subscription account may comprise a $10,000 deposit. Each access of application service 160(A) may be associated with a $100 fee. Upon providing the data the application service 160(A), computing device 400 may debit the account for $ 100, leaving a $9900 balance. Consistent with embodiments of the invention, computing device 400 may be operative to determine when the account drop below a threshold balance and may notify a contact associated with the subscription and/or charge an account, such as a bank account or credit card, to replenish the account's balance.

[045] If the machine is not associated with a pre-paid subscription, method 300 may advance to stage 345 where computing device 400 may determine whether the use of the application service was associated with a one-time access purchase, as described above. If so, or after debiting the account in stage 340, method 300 may advance to stage 350 where computing device 400 may provide a receipt to a contact associated with the data analysis. For example, a receipt may be printed out, emailed, and/or sent via text message to the operator of tractor/implement 1 10(A) after the data has been provided to application service 160(A).

[046] If the machine is not associated with a one-time access, method 300 may advance to stage 360 where computing device 400 may create a charge record. For example, central system 160 may create an entry in a billing database of invoice server 140 comprising a time/date of the transaction, a machine identifier, an operator identifier, and/or which application service was accessed. This entry may be associated with the subscription identified in stage 315, above.

[047] From stage 360, method 300 may advance to stage 365 where computing device 400 may provide an invoice. For example, invoice server 140 may generate an invoice comprising a single charge record and/or a plurality of charge records. Consistent with embodiments of the invention, an invoice may be generated comprising charge records generated over a period, such as each month. The invoice may also indicate whether any previous invoices are past due. The invoice may then be provided to a contact associated with the subscription, such as via e-mail, a web page, a text message, and/or as a hardcopy print out that may be hand delivered or mailed.

[048] After the receipt or invoice is provided at stage 350 or 365, respectively, method 300 may advance to stage 355 where computing device 400 may provide a report. For example, central server 130 may receive a report detailing an analysis of the data from application service 160(A). This report may be provided to the operator and/or owner of the machine, such as e-mail, a web page, a text message, and/or as a hardcopy print out. Method 300 may then end at stage 375.

[049] FIG. 4 illustrates computing device 400 as configured to operate as central system 130. Computing device 400 may include a processing unit 410 and a memory unit 420. Memory 420 may comprise, for example, application server 160(A) and/or invoice server 145. While executing on processing unit 410, application server 160(A) and/or invoice server 145 may perform processes for providing embodiments of the invention as described above.

[050] Computing device 400 may be implemented using a personal computer, a network computer, a server, a mainframe, or other similar microcomputer-based workstation. The processor may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. The processor may also be practiced in distributed computing environments where tasks are performed by remote processing devices. Furthermore, the processor may comprise a mobile terminal, such as a smart phone, a cellular telephone, a cellular telephone utilizing wireless application protocol (WAP), personal digital assistant (PDA), intelligent pager, portable computer, a hand held computer, a conventional telephone, a wireless fidelity (Wi-Fi) access point, or a facsimile machine. The aforementioned systems and devices are examples and the processor may comprise other systems or devices.

[051 ] An embodiment consistent with the invention may comprise a system for providing billing for agricultural services. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a plurality of data from a machine, determine whether the machine is associated with a subscribing user, and, in response to determining that the machine is identified with the subscribing user, identify an application service associated with the machine, provide the plurality of data to the application service, and create a charge record associated with the subscribing user. The processing unit may be further operative to determine whether the subscribing user is associated with a pre-paid account and, if not, generate an invoice to the subscribing user comprising the charge record and provide the invoice to the subscribing user. The invoice may comprise a plurality of charge records and/or may be generated on a periodic basis. The plurality of charge records may be associated with a plurality of machines and/or a plurality of application services. Each charge record may comprise a user identifier associated with the subscribing user, a machine identifier associated with the machine, and/or an application service identifier associated with the application service. If the subscribing user is associated with a pre-paid account, the processing unit may be further operative to debit the pre-paid account an amount associated with the charge record and provide a receipt to the subscribing user. The plurality of data may be received, for example, from a portable data storage device, a wireless network transmission, and a wired

transmission.

[052] Another embodiment consistent with the invention may comprise a system for providing billing for agricultural services. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a plurality of data records from a machine, determine whether at least one of the plurality of data records is associated with an application service, in response to determining that the at least one of the plurality of data records is associated with the application service, determine whether an account associated with the machine is authorized to access the application service, and in response to determining that the account associated with the machine is authorized to access the application service, charge the account associated with the machine for access to the application service and provide the at least one of the plurality of data records to the application service. Being operative to charge the account associated with the machine may comprise the processing unit being operative to create a charge data record associated with the at least one of the plurality of data records and store the charge data record in a billing database. The processing unit may be further operative to generate an invoice comprising a plurality of charge data records stored in the billing database associated with the account. The charge data record may comprise a cost associated with access to the application service wherein the cost associated with access to the application service is received from a provider of the application service. The processing unit may be further operative to determine whether the account comprises a pre-paid account and, in response to determining that the account comprises the pre-paid account, debit the prepaid account an amount associated with access to the application service.

[053] Yet another embodiment consistent with the invention may comprise a system for providing billing for agricultural services. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a data transfer from a machine, identify at least one application service associated with processing the data transfer, generate a charge to an account associated with the machine for access to the at least one application service, send at least a portion of the data transfer to the application service for processing, and provide a charge report to an owner of the machine. The charge to the account may comprise, for example, a debit to a pre-paid account and/or a charge record stored in a billing database and the charge report comprises an invoice comprising a plurality of charge records associated with the account retrieved from the billing database. The data transfer may comprise additional information such as a work area identifier, an operator identifier, a time of data collection, a harvest amount, a yield calculation, and a parameter measurement. The processing unit may be further operative to include the additional information on the charge report.

[054] FIG. 5 is a flow chart setting forth the general stages involved in a method 500 consistent with an embodiment of the invention for providing service allocation. Method 500 may be implemented using computing device 600 as described in more detail below with respect to FIG. 6. Ways to implement the stages of method 500 will be described in greater detail below. Method 500 may begin at starting block 505 and proceed to stage 510 where computing device 600 may authenticate a user. For example, a machine owner may log into central system 130 via a secure web page comprising a username and password associated with a subscription account.

[055] From stage 510, method 500 may advance to stage 515 where computing device 600 may receive a service selection. For example, an owner of a machine may select a plurality of application services 160(A)-(C) that may operate on and/or analyze data provided by an identified machine.

[056] From stage 515, method 500 may advance to stage 520 where computing device 600 may associated the selected service(s) with at least one trigger condition. For example, the selected services may be associated with an IFC trigger condition associated with a particular machine or implement type, a work area, and/or a particular operator.

[057] Method 500 may then advance to stage 525 where computing device 600 may create a subscription entry. For example, the owner may be associated with a monthly service subscription and/or a per-use access charge subscription. The subscription may identify a plurality of machines and/or implements that may access different application services.

[058] Method 500 may then advance to stage 530 where computing device 600 may receive a data transmission from a machine. For example, data (such as a harvested quantity of agricultural material) gathered by tractor/implement 110(A) may be transferred to central system 130. The transfer may comprise, for example, a mechanism such as a portable data storage device (e.g., a flash drive) and/or a wireless or wireline data transfer, such as over network 120.

[059] From stage 530, method 500 may advance to stage 535 where computing device 600 may determine whether the machine providing the data is associated with an active subscription. For example, the data transfer may comprise a machine identifier associated with an owner and/or operator of the machine. A database may comprise a plurality of subscription entries associated with machine identifiers allowing computing device 600 to look up any entries comprising the received machine identifier.

[060] If not, method 500 may advance to stage 540 where computing device 600 may determine whether a one-time access to a service may be authorized. For example, an operator of tractor/implement 110(A) may transfer data to central system 130. Upon determining that the machine is not associated with an active subscription, central system 130 may display a message to the operator comprising a usage agreement and/or one time access fee. The operator may choose to accept or decline the access and/or may pay for access to the service, such as through a credit card processing system. Such credit card processing systems are known in the art. Consistent with embodiments of the invention, authorizing access to the service may comprise receiving an address to which an invoice may be sent, receiving a purchase order number, and/or another method of authorizing and/or agreeing to pay any access fees associated with the desired application service. If no one-time usage is authorized, method 500 may end at stage 570.

[061] Otherwise, once an active subscription and/or a one-time access is authorized, method 500 may advance to stage 545 where computing device 600 may determine whether an initial filter criteria (IFC) trigger condition matches the data. For example, the data may comprise a hay bale harvest report associated with field 240(A) with a moisture content measurement. The IFC may comprise a trigger condition requiring data from field 240(A) from that machine to evaluate and report on average moisture content. If no IFC condition is associated with the data, method 600 may end at stage 570.

[062] Otherwise, method 500 may advance to stage 550 where computing device 600 may invoke the application service(s) associated with the IFC. For example, invocation sequencer may invoke application services 160(A)-(C) to process the received data.

[063] Method 500 may then advance to stage 555 where computing device 600 may send the data to each application service in turn. For example, central system 130 may transfer the data to application service 160(A) for analysis.

[064] Method 500 may then advance to stage 560 where computing device 600 may receive return data from the application service. For example, application service 160(A) may analyze the data, such as by performing calculations or transformations on the data and/or combining the received data with other data. One example may comprise receiving a harvested amount data from a harvesting machine and combining that data with a current market price of the crop to calculate a profit.

Computing device 600 may then send the data, with and/or without modifications from application service 160(A) to other application services as needed.

[065] Method 500 may then advance to stage 565 where computing device 600 may generate a report for the subscriber. For example, central server 130 may prepare a report detailing an analysis of the data from application services 160(A)-(B). This report may then be provided to the operator and/or owner of the machine, such as via e-mail, a web page, a text message, and/or as a hardcopy print out. Method 500 may then end at stage 570.

[066] FIG. 6 illustrates computing device 600 as configured to operate as central system 130. Computing device 600 may include a processing unit 610 and a memory unit 620. Memory 620 may comprise, for example, application server 160(A) and/or machine subscription server 140. While executing on processing unit 410, application server 160(A) and/or machine subscription server 140 may perform processes for providing embodiments of the invention as described above. If not, method 500 may return to stage 510. [067] Computing device 600 may be implemented using a personal computer, a network computer, a server, a mainframe, or other similar microcomputer-based workstation. The processor may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. The processor may also be practiced in distributed computing environments where tasks are performed by remote processing devices. Furthermore, the processor may comprise a mobile terminal, such as a smart phone, a cellular telephone, a cellular telephone utilizing wireless application protocol (WAP), personal digital assistant (PDA), intelligent pager, portable computer, a hand held computer, a conventional telephone, a wireless fidelity (Wi-Fi) access point, or a facsimile machine. The aforementioned systems and devices are examples and the processor may comprise other systems or devices.

[068] An embodiment consistent with the invention may comprise a system for providing service allocation. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to identify at least one initial filter criteria comprising an application server associated with a machine, resolve a host address for the application server associated with the at least one initial filter criteria, invoke the application server associated with the at least one initial filter criteria, transmit a service profile comprising the at least one initial filter criteria to the machine, receive a plurality of data from the machine, and transmit the plurality of data from the machine to the host address associated with the application server. The machine may comprise, for example, an agricultural implement. The application service may comprise, for example, a data processing application.

[069] The processing unit may be further operative to create a cache entry associating the machine and the host address, determine whether to de-register the machine, and, in response to determining to de-register the machine, remove the cache entry associating the machine and the host address. Determining whether to de-register the machine may comprise, for example, the processing unit being operative to determine whether a work complete message has been received from the machine, determine whether the plurality of data is no longer being received from the machine, and/or determine, from the plurality of data received from the machine, whether the machine has fully covered an assigned work area. The processing unit may be further operative to authenticate the machine in response to receiving an initial data transmission from the machine.

[070] Another embodiment consistent with the invention may comprise a system for providing service allocation. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to identify a machine according to at least one received data transmission, determine whether at least one of a plurality of initial filter criteria (IFCs) are associated with the at least one received data transmission, identify an address associated with an application service associated with the at least one of the plurality of IFCs, invoke the application service, and transmit the at least one received data transmission to the identified address of the application service. Being operative to identify the address associated with the application service may comprise the processing unit being operative to perform a Domain Name Service resolution of the address and store the resolved address in a cache associated with the memory storage and/or determine whether the address associated with the application service is stored in a cache associated with the memory storage. The processing unit may be further operative to determine whether the at least one received data transmission is associated with a previous data transmission received from the machine and, in response to determining that the at least one received data transmission is not associated with a previous data transmission received from the machine, authenticate the identified machine. The processing unit may be further operative to transmit a service profile to the authenticated machine.

[071 ] Yet another embodiment consistent with the invention may comprise a system for providing service allocation. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a data transmission from a machine, determine if the machine is associated with an subscription account, andm in response to determining that the machine is associated with the subscription account, determining whether at least one initial filter criteria (IFC) comprising an application service identifier is associated with the data transmission. In response to determining that the at least one initial filter criteria (IFC) is associated with the data, the processing unit may be operative to determine whether an address associated with the application service identified by the at least one IFC is stored in a cache and, in response to determining that the address associated with the application service identified by the at least one IFC is not cached, resolve the address of the application service identified by the at least one IFC, store the resolved address of the application service in the cache, invoke the application service, and transmit the data to the address of the application service identified by the at least one IFC. The processing unit may be further operative to, in response to determining that the machine is not associated with the subscription account, charge an access fee to a non-subscription account associated with the machine.

[072] The processing unit may be further operative to receive a modification to the data from the application service, determine whether at least one second IFC comprising a second application service identifier is associated with the modified data, and, in response to determining that the at least one second IFC is associated with the modified data, identify a second address associated with the second application service identified by the at least one second IFC, invoke the second application service, and transmit the modified data to the second address of the second application service identified by the at least one second IFC. The processing unit may be further operative to determine whether no more data is expected to be received from the machine, such as by determining whether a work complete message has been received from the machine, determining whether a configurable time period has passed without receiving data from the machine, and/or determining whether the machine has fully covered an assigned work area and, in response to determining that no more data is expected to be received from the machine, remove the resolved address of the application service from the cache.

[073] FIG. 7 is process diagram 700 illustrating an evaluation of filter criteria. Process diagram 700 may comprise an incoming machine data message 710, such as may be received from tractor/implement 1 10(A) over network 120. Machine data message 710 may be passed to an Initial Filter Criteria (IFC) module 720 for evaluation. IFC module 720 may compare machine data message 710 to a trigger condition of a series of IFCs, each of which may be associated with an application service. For example, a first IFC may be associated with application service 160(A). If machine data message 710 does not match a trigger criteria of the first IFC, machine data message 710 may be passed to a second IFC associated with application service 160(B) for evaluation, and so forth. If machine data message 710 does match an IFC's trigger condition, the data may be sent to the respective application service for processing and/or evaluation. If the application service does not change the data and/or return a configuration change for tractor/implement 1 10(A), machine data message 710 may continue to be evaluated by subsequent IFCs. If changes are made to the data, evaluation of machine data message 710 by subsequent IFCs may be halted. If no IFC trigger conditions are associated machine data message 710, the data may be passed to a default application service 730. Default application service 730 may be operative to, for example, create a log entry of machine data message 710 for inclusion in a report to a subscriber and/or owner of tractor/implement 1 10(A).

[074] FIG. 8 is a flow chart setting forth the general stages involved in a method 800 consistent with an embodiment of the invention for providing trigger evaluation. Method 800 may be implemented using computing device 900 as described in more detail below with respect to FIG. 9. Ways to implement the stages of method 800 will be described in greater detail below. Method 800 may begin at starting block 805 and proceed to stage 810 where computing device 900 may receive a data transmission from a machine. For example, data (such as a harvested quantity of agricultural material) gathered by tractor/implement 110(A) may be transferred to central system 130. The transfer may comprise, for example, a mechanism such as a portable data storage device (e.g., a flash drive) and/or a wireless or wireline data transfer, such as over network 120.

[075] From stage 810, method 800 may advance to stage 815 where computing device 900 may determine whether an initial filter criteria (IFC) matches the data. For example, the data may comprise a hay bale harvest report associated with field 240(A) with a moisture content measurement. The IFC may comprise a trigger condition requiring data from field 240(A) from that machine to evaluate and report on average moisture content. [076] If the data is found to match an IFC trigger condition, method 800 may advance to stage 820 where computing device 900 may send the data to the application service. For example, central system 130 may transfer the data to application service 160(A) for analysis.

[077] Method 800 may then advance to stage 825 where computing device 900 may receive return data from the application service. For example, application service 160(A) may analyze the data, such as by performing calculations or transformations on the data and/or combining the received data with other data. One example may comprise receiving a harvested amount data from a harvesting machine and combining that data with a current market price of the crop to calculate a profit.

[078] From stage 825, method 800 may advance to stage 830 where computing device 900 may determine whether the return data transmission from the application service comprises any changes to the data. For example, application service 160(A) may perform a removal of outlying data points.

[079] If no data changes are received at stage 830, method 800 may advance to stage 835 where computing device 900 may determine whether the return data transmission from the application service comprises any profile changes to be sent to the machine. For example, application service 160(A) may determine that a measured moisture level is too high and return instructions for the machine to move to another work area, such as from field 240(A) to field 240(B). If so, the changed profile may be sent to the machine at stage 840 before method 800 ends at stage 870.

[080] If no machine profile changes are returned at stage 835, method 800 may advance to stage 845 where computing device 900 may determine whether the data matches another IFC, as described above with respect to stage 815. If so, method 800 may return to stage 820.

[081] If no additional IFCs match the data at stage 845 or if no IFCs are found to match the data at stage 815, method 800 may advance to stage 850 where computing device 900 may send the data to a default application service. For example, default AS 330 may be operative to simply format the data for including in a report without performing any calculations on the data.

[082] From stage 850, or if the returned data was modified in stage 830, method 800 may advance to stage 855 where computing device 900 may record the data. For example, central system 130 may store a harvested crop material calculation in inventory database 150.

[083] From stage 855, method 800 may advance to stage 860 where computing device 900 may provide a report. For example, central server 130 may receive a report detailing an analysis of the data from application service 160(A). This report may be provided to the operator and/or owner of the machine at stage 865, such as via e-mail, a web page, a text message, and/or as a hardcopy print out. Method 800 may then end at stage 870. [084] FIG. 9 illustrates computing device 900 as configured to operate as central system 130. Computing device 900 may include a processing unit 910 and a memory unit 920. Memory 920 may comprise, for example, application service 160(A) and IFC module 705. While executing on processing unit 910, application service 160(A) may perform processes for providing embodiments of the invention as described above.

[085] Computing device 900 may be implemented using a personal computer, a network computer, a server, a mainframe, or other similar microcomputer-based workstation. The processor may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. The processor may also be practiced in distributed computing environments where tasks are performed by remote processing devices. Furthermore, the processor may comprise a mobile terminal, such as a smart phone, a cellular telephone, a cellular telephone utilizing wireless application protocol (WAP), personal digital assistant (PDA), intelligent pager, portable computer, a hand held computer, a conventional telephone, a wireless fidelity (Wi-Fi) access point, or a facsimile machine. The aforementioned systems and devices are examples and the processor may comprise other systems or devices.

[086] An embodiment consistent with the invention may comprise a system for providing a dynamic configuration trigger. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a data transmission from a machine and determine whether a first initial filter criteria of a plurality of initial filter criteria applies to the transmitted data, wherein each of the plurality of initial filter criteria comprises a trigger and an application service. In response to determining that the first initial filter criteria applies to the data transmission, the processing unit may be operative to provide the transmitted data to the application service associated with the initial filter criteria, receive a return message from the application service associated with the initial filter criteria, and determine, according to the return message, whether to determine whether at least one second initial filter criteria of the plurality of initial filter criteria applies to the transmitted data such as where the return message comprises a change to the data and/or a configuration change to the machine. In response to determining that no initial filter criteria of the plurality of initial filter criteria applies to the data, the processing unit may be operative to provide the transmitted data to a default application service. For example, the default application service may format the received data into a report for providing to a user.

[087] Being operative to determine whether the first initial filter criteria applies to the transmitted data may comprise the processing unit being operative to determine whether the transmitted data is associated with the trigger of the first initial filter criteria. The trigger may comprise, for example, a type of the machine, a location of the machine, a time, a date, and an analysis of the data received from the machine. The processing unit may be further operative to modify the transmitted data according to the return message from the application service and determine whether the at least one second initial filter criteria of the plurality of initial filter criteria applies to the modified data. Modifying the data may comprise, for example, eliminating at least one outlier data point, associating the transmitted data with a second plurality of data, and performing a calculation on the transmitted data. While the application service is analyzing the transmitted data, the processing unit may be operative to lock the transmitted data from modification until the return message is received.

[088] Another embodiment consistent with the invention may comprise a system for providing an application trigger. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a data transmission from a machine, determine whether at least one initial filter criteria (IFC) is associated with the received data, and, in response to determining that the at least one IFC is associated with the received data, send the received data to an application service associated with the at least one IFC, receive a return data transmission from the application service, determine whether the return data comprises a modification of the received data, and, in response to determining that the return data comprises a modification of the received data, record the return data for a report. The processing unit may be further operative to, in response to determining that the return data does not comprise a modification of the received data, determine whether at least one second IFC is associated with the received data and send the received data to a second application service associated with the at least one second IFC. The processing unit may be further operative to, in response to determining that the return data comprises the modification of the received data, determine whether the return data comprises a new instruction to be sent to the machine and, in response to determining that the return data comprises the new instruction to be sent to the machine, send the new instruction to the machine.

[089] The processing unit may be further operative to prevent the sending of the new instruction to the machine if at least one other application service is processing the received data, determine whether the return data transmission from the at least one other application service comprises a second new instruction to the machine, and, in response to determining that the return data transmission from the at least one other application service comprises a second new instruction to the machine, determine whether the second new instruction overrides the new instruction, and, if so, disregard the new instruction and send the second new instruction to the machine. In response to determining that the second new instruction does not override the new instruction, the processing unit may be further operative to send the new instruction and the second new instruction to the machine. The IFC may comprise a trigger condition comprising, for example, a type of the machine, a location of the machine, a time, a date, and a data evaluation. The modification of the received data may comprise, for example, a filtering operation to remove at least one outlier data point from the received data. [090] Yet another embodiment consistent with the invention may comprise a system for providing a dynamic application trigger. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a plurality of data records from each of a plurality of machines and determine whether at least one first initial filter criteria (IFC) condition is associated with at least one of the plurality of data records. In response to determining that the at least one IFC condition is associated with the at least one of the plurality of data records, the processing unit may be operative to determine whether a first machine of the plurality of machines associated with the at least one of the plurality of data records is assigned to an application service identified by the at least one first IFC and, if not, invoke a new instance of the application service identified by the at least one first IFC and assign the first machine of the plurality of machines to the new instance of the application service. The processing unit may be further operative to send the at least one of the plurality of data records to the application service to which the first machine of the plurality of machines is assigned, receive a return data transmission from the assigned application service, determine whether the return data comprises a modification of the at least one of the plurality of data records, and, in response to determining that the return data comprises a modification of the at least one of the plurality of data records, store the modification of the at least one of the plurality of data records. The processing unit may be further operative to determine whether the return data requires a new instruction to be sent to the first machine of the plurality of machines and, in response to determining that the return data requires the new instruction to be sent to the first machine of the plurality of machines, send the new instruction to the first machine of the plurality of machines. The new instruction may comprise, for example, a modification of a current work task, an abort of the current work task, a new work task in a current work area, and a new work task in a new work area.

[091 ] FIG. 10 is process diagram 1000 illustrating an invocation sequence. Process diagram 1000 may comprise an incoming machine data message 1010, such as may be received at machine session control 135 from tractor/implement 110(A) over network 120. Machine data message 1005 may be passed to an Initial Filter Criteria (IFC) module 1010 for evaluation. IFC module 1010 may be passed to a manager module 1015 to match a machine ID associated with machine data message 1005 with a service subscription. Manager module 1015 may pass the data to a service logic unit 1020 that may be operative to select an appropriate subscription entry for the data. For example, service logic unit 1020 may determine that machine data message 1005 is associated with a hay baler machine and thus recognize that a hay baler subscription entry is more appropriate than an irrigation entry.

[092] Service logic unit 1020 may also be operative to receive selections of desired services from a subscription contact. The list of services may be passed to an invocation sequencer 1030 operative to determine whether any of the selected services rely on any others to operate on received data first. For example, an owner may institute a merit reward system for machine operators that stay under a speed limit. Two application services may be needed, a speed analyzer service and a reward payout service. The speed analyzer service may need to calculate whether the operator exceeded the speed limit before the reward payout service is authorized to pay the merit reward to the operator. When machine data message 1005 is received comprising the necessary speed information, invocation sequencer may invoke the speed analyzer application service on the data prior to invoking the reward payout application service. Consistent with embodiments of the invention, the earlier invoked application service may specify whether the later service still needs to be called on the data. For example, the speed analyzer module may determine that machine data message 1005 comprises corrupted data that cannot be analyzed, so no reward payout (or other derivative use of the data) should be calculated.

[093] Service logic 1020 may be operative to determine whether another available application service can recover from such a corrupted data error. For example, even if speedometer data may be corrupt, if machine data message 1005 comprises Global Positioning System (GPS) data then another application service may be able to calculate a speed from that. Is application service 160(A) is unable to calculate the max speed from machine data message 1005, application service 160(B) may be able to do some from time/date stamped GPS coordinates. The alternately calculated speed may then be passed to a reward payout module, such as application service 160(C) for evaluation.

[094] FIG. 1 1 is a flow chart setting forth the general stages involved in a method 1 100 consistent with an embodiment of the invention for providing agricultural inventorying and invoicing. Method 1 100 may be implemented using computing device 1 100 as described in more detail above with respect to FIG. 10. Ways to implement the stages of method 1 100 will be described in greater detail below. Method 1100 may begin at starting block 1 105 and proceed to stage 1 1 10 where computing device 1200 may receive a service selection. For example, an owner of a machine may select a plurality of application services 160(A)-(C) that may operate on and/or analyze data provided by an identified machine.

[095] From stage 1 1 10, method 1 100 may advance to stage 1 1 15 where computing device 1200 may assign the selected service(s) to a subscription. For example, the owner may be associated with a monthly service subscription and/or a per-use access charge subscription. The subscription may identify a plurality of machines and/or implements that may access different application services.

[096] From stage 1 1 15, method 1 100 may advance to stage 1 120 where computing device 1200 may identify an invocation order for the selected services. For example, the owner may select a speed evaluation service and a merit reward payout service. Invocation sequencer 1030 may determine that the speed evaluation service may need to operate on the data before the data may be provided to the merit reward payout service. [097] From stage 1 120, method 1 100 may advance to stage 1 125 where computing device 1200 may associate the invocation order with an initial filter criteria. For example, the selected services may be associated with an IFC trigger condition associated with a particular machine or implement type, a work area, and/or a particular operator.

[098] From stage 1 125, method 1 100 may advance to stage 1 130 where computing device 1200 may receive a data transmission from the machine. For example, data (such as a harvested quantity of agricultural material) gathered by tractor/implement 1 10(A) may be transferred to central system 130. The transfer may comprise, for example, a mechanism such as a portable data storage device (e.g., a flash drive) and/or a wireless or wireline data transfer, such as over network 120.

[099] From stage 1 130, method 1 100 may advance to stage 1 135 where computing device 1200 may determine whether the machine providing the data is associated with an active subscription. For example, the data transfer may comprise a machine identifier associated with an owner and/or operator of the machine. A database may comprise a plurality of subscription entries associated with machine identifiers allowing computing device 1200 to look up any entries comprising the received machine identifier. If not, method 1 100 may end at stage 1 170.

[0100] Otherwise, method 1100 may advance to stage 1 140 where computing device 1200 may determine whether an initial filter criteria (IFC) matches the data. For example, the data may comprise a hay bale harvest report associated with field 240(A) with a moisture content measurement. The IFC may comprise a trigger condition requiring data from field 240(A) from that machine to evaluate and report on average moisture content. If no IFC condition is associated with the data, method 1 100 may end at stage 1 170.

[0101] Otherwise, from stage 1140, method 1 100 may advance to stage 1 145 where computing device 1200 may invoke the application services associated with the IFC. For example, invocation sequencer may invoke application services 160(A)-(C) in the identified order.

[0102] Method 1 100 may then advance to stage 1 150 where computing device 1200 may send the data to each application service in turn. For example, central system 130 may transfer the data to application service 160(A) for analysis.

[0103] Method 1 100 may then advance to stage 1 155 where computing device 1200 may receive return data from the application service. For example, application service 160(A) may analyze the data, such as by performing calculations or transformations on the data and/or combining the received data with other data. One example may comprise receiving a harvested amount data from a harvesting machine and combining that data with a current market price of the crop to calculate a profit.

Computing device 1200 may then send the data, with and/or without modifications from application service 160(A), to the next application service in the sequence. [0104] Method 1 100 may then advance to stage 1 160 where computing device 1200 may generate a report. For example, central server 130 may prepare a report detailing an analysis of the data from application services 160(A)-(B). This report may then be provided to the operator and/or owner of the machine at stage 1 165, such as via e-mail, a web page, a text message, and/or as a hardcopy print out. Method 1 100 may then end at stage 1 170.

[0105] FIG. 12 illustrates a computing device 1200 as configured to operate as central system 130. Computing device 1200 may include a processing unit 1210 and a memory unit 1220. Memory 1220 may comprise, for example, application server 160(A) and invocation sequencer 1030. While executing on processing unit 1210, application server 160(A) and/or invocation sequencer 1030 may perform processes for providing embodiments of the invention as described above.

[0106] Computing device 1200 may be implemented using a personal computer, a network computer, a server, a mainframe, or other similar microcomputer-based workstation. The processor may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. The processor may also be practiced in distributed computing environments where tasks are performed by remote processing devices. Furthermore, the processor may comprise a mobile terminal, such as a smart phone, a cellular telephone, a cellular telephone utilizing wireless application protocol (WAP), personal digital assistant (PDA), intelligent pager, portable computer, a hand held computer, a conventional telephone, a wireless fidelity (Wi-Fi) access point, or a facsimile machine. The aforementioned systems and devices are examples and the processor may comprise other systems or devices.

[0107] An embodiment consistent with the invention may comprise a system for providing application service generation. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to create an application service, receive a data transmission from a machine, wherein the data transmission comprises a machine identifier, identify an application service associated with the machine according to the machine identifier, such as by determining whether the machine identifier is authorized to access the application service, invoke the application service on the transmitted data, and receive a response message from the application service. Creating the application service may comprise, for example, selecting a data analysis capability, creating an initial filter criteria trigger, selecting a data measurement requirement, and identifying a prerequisite service.

[0108] The processing unit may be further operative to determine whether the application service associated with the machine comprises a prerequisite service and, if so, invoke the prerequisite service on the transmitted data, receive a modification to the transmitted data from the prerequisite service, and invoke the application service on the modified data. The modification to the transmitted data may comprise, for example, associating the transmitted data with at least one second plurality of data and/or a calculation to be performed on the transmitted data. For example, the transmitted data may comprise harvest yield data that may be combined with current market price data from which an expected profit may be calculated. The processing unit may be further operative to determine whether the transmitted data does not comprise an essential data element associated with the application service and, if the essential data element is missing, determine whether the essential data element is available from another source, such as by determining whether a second application service is operative to calculate the essential data element from the transmitted data and/or a second data transmission.

[0109] Another embodiment consistent with the invention may comprise a system for providing application service generation. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a transmission from an agricultural machine, wherein the transmission comprises at least one data measurement and an identifier associated with the agricultural machine, determine whether the identifier is associated with a service subscription, and in response to determining that the identifier is associated with the service subscription, invoke a plurality of instances, each associated with an application service, according to an invocation order associated with the service subscription, and provide the data measurement to each of the plurality of application services for analysis. The processing unit may be further operative to receive a selection of the plurality of application services from an owner of the agricultural machine and/or establish the invocation order according to a pre -requisite data analysis to be performed by at least one of the plurality of application services. Analysis of the data measurement by at least one first application service may comprise, for example, the processing unit being operative to determine whether an operator of the agricultural machine exceeded a speed limit and/or whether to credit a merit award to an operator of the agricultural machine.

[0110] The processing unit may be further operative to determine whether the at least one first application service was unable to determine whether the operator of the agricultural machine exceeded the speed limit due to at least one of the following: a corruption of the at least one data measurement and a non-receipt of a required second data measurement. In response to determining that the at least one first application service was unable to determine whether the operator of the agricultural machine exceeded the speed limit, the processing unit may be operative to provide the at least one data measurement to at least one third application service operative to estimate a speed of the agricultural machine according to the at least one data measurement. For example, the data measurement may comprise time/date stamped GPS data measurements from which a speed may be calculated.

[0111] Yet another embodiment consistent with the invention may comprise a system for providing an application service generation. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a selection a plurality of application services, associate the plurality of application services with a subscription, create an invocation order for the plurality of application services, receive a data measurement from a machine associated with the subscription, provide the data measurement to the plurality of application services according to the invocation order, receive a modification to the data measurement from at least one of the plurality of application services, produce a report comprising the modification to the data measurement, and provide the report to a contact associated with the subscription. The report may be provided to the contact via, for example, a web page, an e-mail, a printed report, and/or a text message. The invocation order may be stored in one of a plurality of IFCs that may comprise differing invocation orders. Each IFC may comprises a trigger condition to be compared to the received data measurement in order to determine which invocation order is to be applied.

[01 12] FIG. 13 is a flow chart setting forth the general stages involved in a method 1300 consistent with an embodiment of the invention for providing agricultural inventorying and invoicing. Method 1300 may be implemented using computing device 1400 as described in more detail below with respect to FIG. 14. Ways to implement the stages of method 1300 will be described in greater detail below. Method 1300 may begin at starting block 1305 and proceed to stage 1310 where computing device 1400 may receive an application trigger. For example, a computer coupled to tractor/implement 1 10 may receive a plurality of application triggers each comprising a condition and an action. Each trigger may be associated with a work area and/or work task, such as baling hay harvested in a given field.

[01 13] From stage 1310, method 1300 may advance to stage 1315 where computing device 1400 may determine whether tractor/implement 1 10 is located within a work area associated with at least one of the trigger conditions. For example, a global positioning system (GPS) device associated with tractor/implement 1 10 may be operative to provide a location of tractor/implement 1 10. The work area may be identified by a geo fence and computing device 1400 may be operative to determine whether tractor/implement 1 10's current location is within the geo fence. If not, method 1300 may remain in stage 1315, and computing device 1400 may periodically re-evaluate tractor/implement 1 10's location.

[01 14] Otherwise, method 1300 may advance to stage 1320 where computing device 1400 may receive an application associated with the work area. For example, an application trigger may be associated with a hay field work area. Upon entering the work area by tractor/implement 1 10, the coupled computer may receive an application downloaded from a remote server for tracking and inventorying hay as it is gathered and baled. [01 15] From stage 1320, method 1300 may advance to stage 1325 where computing device 1400 may initialize the application. For example, tractor/implement 110's computer may execute the downloaded application and initialize a plurality of data variables. For a hay baling application, for example, a number of hay bales created may be set to zero. The initialization may also comprise receiving operator instructions associated with performing a work task.

[01 16] From stage 1325, method 1300 may advance to stage 1330 where computing device 1400 may provide a task instruction. For example, the received application may cause directions to be displayed to an operator of tractor/implement 1 10. If tractor/implement 1 10 is equipped with an auto- steering system, the application may be operative to cause the implement to navigate to a start point for the work task.

[01 17] From stage 1330, method 1300 may advance to stage 1335 where computing device 1400 may determine whether tractor/implement 1 10 is still within the work area. If so, method 1300 may remain in stage 1335 and may periodically re-evaluate tractor/implement 1 10's location, such as with a GPS device.

[01 18] Otherwise, method 1300 may advance to stage 1340 where computing device 1400 may transmit a data report. For example, tractor/implement 1 10 may transmit a data report generated by the application to central system 130. The data report may comprise, for example, efficiency and/or yield data associated with the work task. Method 1300 may then end at stage 1345.

[01 19] An embodiment consistent with the invention may comprise a system for providing trigger-based application control. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a selection of an application service from a user, associate the application service with a machine identifier, receive a data transmission from the machine associated with the user, invoke the application service associated with the machine identifier, and provide the transmitted data to the application service. The user may comprise, for example, an owner and/or an operator of a machine associated with the machine identifier.

[0120] A list of available application services may be displayed to the user for selection and may comprise local application services and/or third party application services. For example, a local application service may be operative to execute on the system, while third party application services may be operative to execute on another computing system after receiving data from the system. The list of services to be associated with the machine identifier may be selected from a list of services included in the user's subscription and/or may include services not included in the user's subscription. The selection of such non-inclusive services may result in a one-time and/or per-use charge to the user. If a selected application service does not comprise a subscribed service of the user, a subscription price and/or charge data details may be displayed to the user.

[0121] Upon receiving data from the machine, the processing unit may be further operative to determine whether the user comprises an active subscriber to the application service. If not, the processing unit may be further operative to generate an invoice to the user comprising a charge for the application service, to discard the transmitted data, and/or notify the user that the application service is not associated with an active subscription. The processing unit may be further operative to receive a report generated by the application service according to the transmitted data and provide the report to the user.

[0122] Another embodiment consistent with the invention may comprise a system for providing an application trigger. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to authenticate a user, receive a selection of a plurality of agricultural application services from the user, such as via a secure web page, create a subscription entry in a database on the memory storage, receive a transmission from a machine comprising a data measurement and a machine identifier, and determine whether the subscription entry is associated with the machine identifier. In response to determining that the subscription entry is associated with the machine identifier the processing unit may be operative to invoke the plurality of application services associated with the subscription entry and provide the data measurement to the plurality of application services. The application services may be operative to analyze the data measurement simultaneously and/or sequentially. The sequence may be identified by the subscription entry. The processing unit may be further operative to receive an analysis result from each of the plurality of application services, generate a report comprising the analysis result from each of the plurality of application services, and provide the report to the user.

[0123] Yet another embodiment consistent with the invention may comprise a system for providing a dynamic application configuration trigger. The system may comprise a memory storage and a processing unit coupled to the memory storage. The processing unit may be operative to receive a selection of an application service from an authenticated user, associate the selected application service with at least one trigger condition, wherein the at least one trigger condition comprises a machine identifier and a work area identifier, create a subscription record associated with the selected application service in a database, receive a data transmission from an agricultural machine comprising the machine identifier, invoke the application service associated with the subscription record, provide the data to the application service, receive a result data from the application service, and provide a report of the result data to the authenticated user. The processing unit may be operative to receive the selection of the application service and/or provide the report via a secure web page. The processing unit may be further operative to determine whether the received data transmission comprises a location of the agricultural machine and, if so, determine whether the location of the agricultural machine matches the at least one trigger condition.

[0124] FIG. 14 illustrates a computing device 1400 as configured to operate as central system 130. Computing device 1400 may include a processing unit 1410 and a memory unit 1420. Memory 1420 may comprise, for example, application server 160(A) and inventory database 150. While executing on processing unit 1410, application server 160(A) may perform processes for providing embodiments of the invention as described above.

[0125] Computing device 1400 may be implemented using a personal computer, a network computer, a server, a mainframe, or other similar microcomputer-based workstation. The processor may comprise any computer operating environment, such as hand-held devices, multiprocessor systems, microprocessor-based or programmable sender electronic devices, minicomputers, mainframe computers, and the like. The processor may also be practiced in distributed computing environments where tasks are performed by remote processing devices. Furthermore, the processor may comprise a mobile terminal, such as a smart phone, a cellular telephone, a cellular telephone utilizing wireless application protocol (WAP), personal digital assistant (PDA), intelligent pager, portable computer, a hand held computer, a conventional telephone, a wireless fidelity (Wi-Fi) access point, or a facsimile machine. The aforementioned systems and devices are examples and the processor may comprise other systems or devices.

[0126] While certain embodiments of the invention have been described, other embodiments may exist. While the specification includes examples, the invention's scope is indicated by the following claims. Furthermore, while the specification has been described in language specific to structural features and/or methodological acts, the claims are not limited to the features or acts described above. Rather, the specific features and acts described above are disclosed as example for embodiments of the invention.