US20170279924A1 - Cancellation management with respect to a web application - Google Patents
Cancellation management with respect to a web application Download PDFInfo
- Publication number
- US20170279924A1 US20170279924A1 US15/081,900 US201615081900A US2017279924A1 US 20170279924 A1 US20170279924 A1 US 20170279924A1 US 201615081900 A US201615081900 A US 201615081900A US 2017279924 A1 US2017279924 A1 US 2017279924A1
- Authority
- US
- United States
- Prior art keywords
- service request
- cancellation
- termination
- request
- web application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H04L67/327—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H04L67/16—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Definitions
- This disclosure relates generally to computer systems and, more particularly, relates to cancellation management with respect to a web application.
- the amount of data that needs to be managed by enterprises is increasing. Management of web applications may be desired to be performed with as efficiently as possible. As data needing to be managed increases, the need for management efficiency may increase.
- aspects of the disclosure relate to implementing a protocol at an application network layer that allows a web client to signal to a connected web application server that a prior request has been canceled, and that associated computing resources are no longer needed.
- the web client may assign a unique identifier to a Hypertext Transfer Protocol (HTTP) request sent to the server.
- HTTP Hypertext Transfer Protocol
- a secondary HTTP request can then be sent which has the unique identifier of the HTTP request to be canceled.
- the unique identifier can be used to signal to the HTTP request which is executing on the server that service(s) related to the HTTP request is no longer needed.
- the HTTP request which was executing can then terminate and clean-up its resources to free such resources for other service requests.
- aspects of the disclosure relate to cancellation management with respect to a web application.
- a service request is received by the web application.
- An identifier for the service request is established.
- a cancellation request for the service request is received by the web application.
- a termination of the service request is initiated.
- the termination of the service request is performed to free a set of computing resources such as bandwidth, processing, or memory.
- FIG. 1 depicts a high-level block diagram of a computer system for implementing various embodiments of the present disclosure.
- FIG. 2 is a diagrammatic illustration of an example system for implementing cancellation management, according to embodiments.
- FIG. 3 is a diagrammatic illustration of an example system for implementing cancellation management, according to embodiments.
- FIG. 4 is a diagrammatic illustration of a cancellation management system with respect to a web application, according to embodiments.
- FIG. 5 is a flowchart illustrating a method for cancellation management with respect to a web application, according to embodiments.
- aspects of the disclosure relate to implementing a protocol at an application network layer that allows a web client to signal to a connected web application server that a prior request has been canceled, and that associated computing resources are no longer needed.
- the web client may assign a unique identifier to a Hypertext Transfer Protocol (HTTP) request sent to the server.
- HTTP Hypertext Transfer Protocol
- a secondary HTTP request can then be sent which has the unique identifier of the HTTP request to be canceled.
- the unique identifier can be used to signal to the HTTP request which is executing on the server that service(s) related to the HTTP request is no longer needed.
- the HTTP request which was executing can then terminate and clean-up its resources to free such resources for other service requests.
- aspects of the disclosure relate to cancellation management with respect to a web application.
- a service request is received by the web application.
- An identifier for the service request is established.
- a cancellation request for the service request is received by the web application.
- a termination of the service request is initiated.
- the termination of the service request is performed to free a set of computing resources such as bandwidth, processing, or memory.
- aspects may be related to Java Servlet/J2EE (trademark of Oracle Corporation and/or its affiliates), rich web (or web 2.0) applications, AJAX web development techniques, HTTP protocol, RESTful web services which use representational state transfer, or the like.
- aspects of the disclosure include cancellable requests subscribing/registering to be notified of cancellation (e.g., by request identifier).
- the cancellation service can publish (e.g., send a notification) using the request identifier (e.g., indexed lookup), to signal to subscribers that a cancellation request was received.
- aspects of the disclosure may have various performance or efficiency benefits (e.g., wear-rate, service-length, speed, flexibility, load balancing, responsiveness, high availability, resource usage, productivity).
- Aspects may save resources such as bandwidth, processing, or memory.
- FIG. 1 depicts a high-level block diagram of a computer system for implementing various embodiments of the present disclosure, consistent with various embodiments.
- the mechanisms and apparatus of the various embodiments disclosed herein apply equally to any appropriate computing system.
- the major components of the computer system 100 include one or more processors 102 , a memory 104 , a terminal interface 112 , a storage interface 114 , an I/O (Input/Output) device interface 116 , and a network interface 118 , all of which are communicatively coupled, directly or indirectly, for inter-component communication via a memory bus 106 , an I/O bus 108 , bus interface unit 109 , and an I/O bus interface unit 110 .
- processors 102 includes one or more processors 102 , a memory 104 , a terminal interface 112 , a storage interface 114 , an I/O (Input/Output) device interface 116 , and a network interface 118 , all of which are communicatively
- the computer system 100 may contain one or more general-purpose programmable central processing units (CPUs) 102 A and 102 B, herein generically referred to as the processor 102 .
- the computer system 100 may contain multiple processors; however, in certain embodiments, the computer system 100 may alternatively be a single CPU system.
- Each processor 102 executes instructions stored in the memory 104 and may include one or more levels of on-board cache.
- the memory 104 may include a random-access semiconductor memory, storage device, or storage medium (either volatile or non-volatile) for storing or encoding data and programs.
- the memory 104 represents the entire virtual memory of the computer system 100 , and may also include the virtual memory of other computer systems coupled to the computer system 100 or connected via a network.
- the memory 104 can be conceptually viewed as a single monolithic entity, but in other embodiments the memory 104 is a more complex arrangement, such as a hierarchy of caches and other memory devices.
- memory may exist in multiple levels of caches, and these caches may be further divided by function, so that one cache holds instructions while another holds non-instruction data, which is used by the processor or processors.
- Memory may be further distributed and associated with different CPUs or sets of CPUs, as is known in any of various so-called non-uniform memory access (NUMA) computer architectures.
- NUMA non-uniform memory access
- the memory 104 may store all or a portion of the various programs, modules and data structures for processing data transfers as discussed herein.
- the memory 104 can store a cancellation management application 150 .
- the cancellation management application 150 may include instructions or statements that execute on the processor 102 or instructions or statements that are interpreted by instructions or statements that execute on the processor 102 to carry out the functions as further described below.
- the cancellation management application 150 is implemented in hardware via semiconductor devices, chips, logical gates, circuits, circuit cards, and/or other physical hardware devices in lieu of, or in addition to, a processor-based system.
- the cancellation management application 150 may include data in addition to instructions or statements.
- the computer system 100 may include a bus interface unit 109 to handle communications among the processor 102 , the memory 104 , a display system 124 , and the I/O bus interface unit 110 .
- the I/O bus interface unit 110 may be coupled with the I/O bus 108 for transferring data to and from the various I/O units.
- the I/O bus interface unit 110 communicates with multiple I/O interface units 112 , 114 , 116 , and 118 , which are also known as I/O processors (IOPs) or I/O adapters (IOAs), through the I/O bus 108 .
- the display system 124 may include a display controller, a display memory, or both.
- the display controller may provide video, audio, or both types of data to a display device 126 .
- the display memory may be a dedicated memory for buffering video data.
- the display system 124 may be coupled with a display device 126 , such as a standalone display screen, computer monitor, television, or a tablet or handheld device display.
- the display device 126 may include one or more speakers for rendering audio.
- one or more speakers for rendering audio may be coupled with an I/O interface unit.
- one or more of the functions provided by the display system 124 may be on board an integrated circuit that also includes the processor 102 .
- one or more of the functions provided by the bus interface unit 109 may be on board an integrated circuit that also includes the processor 102 .
- the I/O interface units support communication with a variety of storage and I/O devices.
- the terminal interface unit 112 supports the attachment of one or more user I/O devices 120 , which may include user output devices (such as a video display device, speaker, and/or television set) and user input devices (such as a keyboard, mouse, keypad, touchpad, trackball, buttons, light pen, or other pointing device).
- user input devices such as a keyboard, mouse, keypad, touchpad, trackball, buttons, light pen, or other pointing device.
- a user may manipulate the user input devices using a user interface, in order to provide input data and commands to the user I/O device 120 and the computer system 100 , and may receive output data via the user output devices.
- a user interface may be presented via the user I/O device 120 , such as displayed on a display device, played via a speaker, or printed via a printer.
- the storage interface 114 supports the attachment of one or more disk drives or direct access storage devices 122 (which are typically rotating magnetic disk drive storage devices, although they could alternatively be other storage devices, including arrays of disk drives configured to appear as a single large storage device to a host computer, or solid-state drives, such as flash memory).
- the storage device 122 may be implemented via any type of secondary storage device.
- the contents of the memory 104 , or any portion thereof, may be stored to and retrieved from the storage device 122 as needed.
- the I/O device interface 116 provides an interface to any of various other I/O devices or devices of other types, such as printers or fax machines.
- the network interface 118 provides one or more communication paths from the computer system 100 to other digital devices and computer systems; these communication paths may include, e.g., one or more networks 130 .
- the computer system 100 shown in FIG. 1 illustrates a particular bus structure providing a direct communication path among the processors 102 , the memory 104 , the bus interface 109 , the display system 124 , and the I/O bus interface unit 110
- the computer system 100 may include different buses or communication paths, which may be arranged in any of various forms, such as point-to-point links in hierarchical, star or web configurations, multiple hierarchical buses, parallel and redundant paths, or any other appropriate type of configuration.
- the I/O bus interface unit 110 and the I/O bus 108 are shown as single respective units, the computer system 100 may, in fact, contain multiple I/O bus interface units 110 and/or multiple I/O buses 108 . While multiple I/O interface units are shown, which separate the I/O bus 108 from various communications paths running to the various I/O devices, in other embodiments, some or all of the I/O devices are connected directly to one or more system I/O buses.
- the computer system 100 is a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface, but receives requests from other computer systems (clients).
- the computer system 100 may be implemented as a desktop computer, portable computer, laptop or notebook computer, tablet computer, pocket computer, telephone, smart phone, or any other suitable type of electronic device.
- FIG. 1 depicts several major components of the computer system 100 . Individual components, however, may have greater complexity than represented in FIG. 1 , components other than or in addition to those shown in FIG. 1 may be present, and the number, type, and configuration of such components may vary. Several particular examples of additional complexity or additional variations are disclosed herein; these are by way of example only and are not necessarily the only such variations.
- the various program components illustrated in FIG. 1 may be implemented, in various embodiments, in a number of different manners, including using various computer applications, routines, components, programs, objects, modules, data structures, etc., which may be referred to herein as “software,” “computer programs,” or simply “programs.”
- FIG. 2 is a diagrammatic illustration of an example system 200 for implementing cancellation management, according to embodiments.
- the cancellation management may be consistent with the description herein including FIGS. 1-5 .
- a user 210 e.g., an individual interacting with a graphical user interface
- the server 250 can include a web application 260 which has an application web service 270 and a cancellation web service 280 .
- the web application 260 may be considered to have all such aspects in one component (e.g., the web application itself, a web client).
- the web application 260 (e.g., and all of it's services) may be clustered (e.g., replicated to increase scalability) as a self-contained unit such that each may have it's own group of cancellable services and cancellation service. Accordingly, specific users can connect with specific copies of specific applications (e.g., while different users are connected with different copies).
- FIG. 3 is a diagrammatic illustration of an example system 300 for implementing cancellation management, according to embodiments.
- the cancellation management may be consistent with the description herein including FIGS. 1-5 .
- a user 310 may be connected via a network 330 to a server 350 .
- the server 350 can include a web application 360 , an application web service 370 , and a cancellation web service 380 .
- the web application 360 , the application web service 370 , and the cancellation web service 380 may be distinct components of the (one) server 350 (or, in certain embodiments, dispersed across multiple servers such as to centralize the cancellation web service 380 on a cancellation server). Accordingly, specific users can connect with specific copies of specific applications.
- FIG. 4 is a diagrammatic illustration of a cancellation management system 400 with respect to a web application, according to embodiments.
- the cancellation management may be consistent with the description herein including FIGS. 1-5 .
- a user 410 may connect with a web application 460 .
- the web application 460 may have at least an association with an application web service 470 and a cancellation web service 480 , which may be configured to interact with each other.
- the web application 460 may receive a service request.
- the service request may have been instantiated by the user 421 .
- the service request can include a message requesting the web application 460 to perform some action. Receiving can include sensing the message or data packet which may arrive from a requesting-user.
- the message may be encrypted or wrapped such that decryption or unwrapping may be applied.
- the service request can include processing of a conversion of a set of files (e.g., digital images) from a first file format to a second file format, and returning the converted set of files in the second file format back to the requesting-user.
- the service request may initiate use of a set of computing resources (e.g., to process digital images).
- the web application 460 can establish an identifier for the service request. Establishing the identifier can include creating, generating, or constructing a unique identifier for the service request. The identifier and the service request can be coupled together in a data object. The unique identifier may be specific to the requesting-user and the web application 460 (in addition to the service request). For instance, the identifier can distinguish one or more duplicate or similar service requests from a requesting-user to facilitate cancellation of such redundant service requests.
- the web application 460 may initiate an execution of the service request at operation 427 .
- processing of a digital image may begin or be scheduled (e.g., based on availability/efficiency of computing resources such as processor, memory, or disk).
- the service request may have the identifier (e.g., wrapped/packaged in/with it).
- the application web service 470 may detect the initiation of the execution of the service request (which has the identifier) at operation 429 . As such, the application web service 470 can be configured to subsequently initiate a set of operations to carry-out the service request.
- the web application 460 may transmit an execution initiation notification to a requesting-user of the service request at operation 431 .
- the execution initiation notification may be related to an initiation of an execution of the service request.
- the execution initiation notification can have the identifier.
- a dialog box may be provided to the requesting-user having the status of the service request, a cancellation button to facilitate cancellation if selected by the requesting-user, and the identifier of the service request to similarly facilitate cancellation or tracking by the requesting-user.
- Other possibilities are also contemplated.
- the application web service 470 may establish (e.g., register, create, generate, construct) a cancellation monitor at operation 435 .
- the cancellation monitor can utilize the identifier to monitor or listen for an indication (e.g., a message or data packet) of the cancellation request.
- the cancellation monitor can use a comparison technique to determine whether identifiers match (e.g., ABC14 & ABC14) or mismatch (e.g., DEF23 & HIJ68).
- the web application 460 may receive a cancellation request for the service request.
- the cancellation request may be accepted or sensed from the requesting-user.
- the cancellation request can include the identifier of the service request to facilitate cancellation/termination of the service request.
- the requesting user may have submitted multiple service requests. After a temporal period, the requesting user may submit a cancellation request for one of the service requests which is received by the web application 460 (using the identifier to indicate the appropriate service request to cancel or terminate).
- the web application 460 may use the identifier to initiate a termination of the service request.
- the identifier of the service request and an identifier of the cancellation request may be compared. When the identifiers match, termination of the service request may be initiated. If the identifiers do not match, another service request may be compared with the cancellation request. For example, a digital image processing operation having a particular identifier may be underway when a cancellation request is detected with the particular identifier. As such, termination of the digital image processing operation may be triggered by selecting a feature which stops associated processor, memory, or disk usage.
- the initiation of the termination of the service request can be detected at operation 443 . Detection can occur using the identifier with respect to the cancellation web service 480 (e.g., by comparison of the identifiers to determine whether a match exists).
- a termination initiation request (e.g., message, signal, data packet) can be transmitted or sent at operation 444 . The termination initiation request can be transmitted by the cancellation web service 480 (related to the initiation of the termination of the service request).
- the initiation of the termination of the service request can be detected (e.g., a message with a command to commence stopping of processing) by the application web service at operation 446 (e.g., using the cancellation monitor, based on matching identifiers).
- a termination initiation notification (e.g., verifying that the message having the command has been received) can be transmitted or sent at operation 447 .
- the termination initiation notification may be transmitted by the application web service 470 (related to the initiation of the termination of the service request).
- the termination initiation notification can be detected at operation 449 .
- the termination initiation notification may be detected by the cancellation web service 480 (related to the initiation of the termination of the service request). As such, for example, usage of computing resources associated with the service request such as processors, memory, or disk may be indicated to be wound-down or stopped.
- a termination initiation notification (e.g., within or to the web application 460 ) can be transmitted at operation 451 .
- the termination initiation notification (e.g., publicizing the service request is stopped, being stopped, or scheduled to be stopped) may be transmitted by the cancellation web service 480 (related to the initiation of the termination of the service request).
- a confirmation of the initiation of the termination of the service request may be detected or sensed at operation 453 . The detection may be made by the web application 460 in response to initiating the termination of the service request (at operation 441 ).
- a termination initiation notification (e.g., message, displayed dialogue box) can be transmitted or sent to a requesting-user of the service request at operation 454 .
- the termination initiation notification may be transmitted or sent by the web application 460 (related to the initiation of the termination of the service request).
- the termination initiation notification can include the identifier for tracking by the requesting-user or the like.
- the termination of the service request is performed at operation 457 .
- the termination of the service request can occur in response to detecting initiation of the termination of the service request at operation 446 .
- the termination of the service request may be carried-out by the application web service 470 .
- the termination of the service request can free a set of computing resources (e.g., network traffic may be reduced, available bandwidth can be increased, memory may become available, processing power can be applied elsewhere, disk space may be freed).
- the service request may be cleaned-up (e.g., disabling threads, ending processes, deleting temporary files), diagnostic data may be written to a data store, and the procedure may exit.
- FIG. 5 is a flowchart illustrating a method 500 for cancellation management with respect to a web application, according to embodiments.
- the cancellation management may be consistent with the description herein including FIGS. 1-5 .
- the method may begin at block 501 .
- the operational steps e.g., the receiving of the service request, the establishing of the identifier, the receiving of the cancellation request, and the initiating of the termination of the service request
- each each occur in an automated fashion without user intervention at block 505 .
- a service request may be received by a web application.
- an identifier for the service request can be established by the web application.
- a cancellation request for the service request may be received by the web application.
- a termination of the service request is initiated using the identifier (by the web application in response to detecting the cancellation request).
- a requesting-user of the service request may be connected or linked directly with the web application. In certain embodiments, other users may not be connected to the exact same (image, representation, or copy of) the web application.
- the service request can correspond with a preexisting service request from the requesting-user (e.g., same type of request, a threshold number/percentage of files being accessed are identical such as more than 80%, a duplicate request at a different point in time).
- the service request and the preexisting service request can share a set of common elements (e.g., requesting a same/similar set of processed files once and then again within a temporal period, accessing identical digital images for processing).
- a dialog box is presented or displayed at block 533 .
- the dialog box can have a cancellation facilitation feature (e.g., an interface button while the service request is displayed or presented to be spinning, processing, or the like) which allows for a requesting-user of the service request to initiate a cancellation.
- the dialog box may be presented by the web application in response to receiving the service request.
- the cancellation request both includes the identifier and is received from a requesting-user of the service request at block 538 .
- a set of cancellation data is captured by a cancellation web service at block 558 .
- the set of cancellation data may be stored with information such as a count of a number of subscribers a particular termination request was sent to or to track a number of cancels (e.g., for metrics to provide a customer with respect to computing resource usage).
- the method may conclude at block 599 .
- Aspects of the method 500 (or related aspects of system 400 ) may have performance or efficiency benefits such as hardware resource usage, high availability, speed, or scalability.
- Disclosed aspects allow utilization of an application program interface (API) to make a call that can be modified to self-regulate via a publish/subscribe model. Accordingly, a developer can modify each individual service to subscribe/listen for cancellation requests (e.g., abort signals) in a manner appropriate to the service. As described herein, the requesting-user can issue a cancellation request interactively within their own application context. If their service request is taking too long, the requesting-user can cancel, and the related services may be terminated. Aspects relate to disparate, distributed system components (e.g., web client, web application services) and abort/termination signaling/messaging.
- API application program interface
- the present invention may be a system, a method, and/or a computer program product.
- the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
- the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
- the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
- a non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
- RAM random access memory
- ROM read-only memory
- EPROM or Flash memory erasable programmable read-only memory
- SRAM static random access memory
- CD-ROM compact disc read-only memory
- DVD digital versatile disk
- memory stick a floppy disk
- a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
- a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
- Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
- the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
- a network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
- the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
- These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
- These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
- the computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
- Embodiments according to this disclosure may be provided to end-users through a cloud-computing infrastructure.
- Cloud computing generally refers to the provision of scalable computing resources as a service over a network.
- Cloud computing may be defined as a computing capability that provides an abstraction between the computing resource and its underlying technical architecture (e.g., servers, storage, networks), enabling convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction.
- cloud computing allows a user to access virtual computing resources (e.g., storage, data, applications, and even complete virtualized computing systems) in “the cloud,” without regard for the underlying physical systems (or locations of those systems) used to provide the computing resources.
- cloud-computing resources are provided to a user on a pay-per-use basis, where users are charged only for the computing resources actually used (e.g., an amount of storage space used by a user or a number of virtualized systems instantiated by the user).
- a user can access any of the resources that reside in the cloud at any time, and from anywhere across the Internet.
- a user may access applications or related data available in the cloud.
- the nodes used to create a stream computing application may be virtual machines hosted by a cloud service provider. Doing so allows a user to access this information from any computing system attached to a network connected to the cloud (e.g., the Internet).
- Embodiments of the present disclosure may also be delivered as part of a service engagement with a client corporation, nonprofit organization, government entity, internal organizational structure, or the like. These embodiments may include configuring a computer system to perform, and deploying software, hardware, and web services that implement, some or all of the methods described herein. These embodiments may also include analyzing the client's operations, creating recommendations responsive to the analysis, building systems that implement portions of the recommendations, integrating the systems into existing processes and infrastructure, metering use of the systems, allocating expenses to users of the systems, and billing for use of the systems.
- each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s).
- the functions noted in the block may occur out of the order noted in the figures.
- two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- The following disclosure(s) are submitted under 35 U.S.C. 102(b)(1)(A): IBM Content Navigator 2.0.3 Fix Pack 005, Sep. 26, 2015.
- This disclosure relates generally to computer systems and, more particularly, relates to cancellation management with respect to a web application. The amount of data that needs to be managed by enterprises is increasing. Management of web applications may be desired to be performed with as efficiently as possible. As data needing to be managed increases, the need for management efficiency may increase.
- Aspects of the disclosure relate to implementing a protocol at an application network layer that allows a web client to signal to a connected web application server that a prior request has been canceled, and that associated computing resources are no longer needed. As described herein, the web client may assign a unique identifier to a Hypertext Transfer Protocol (HTTP) request sent to the server. In response to a request to cancel the HTTP request, a secondary HTTP request can then be sent which has the unique identifier of the HTTP request to be canceled. Accordingly, the unique identifier can be used to signal to the HTTP request which is executing on the server that service(s) related to the HTTP request is no longer needed. The HTTP request which was executing can then terminate and clean-up its resources to free such resources for other service requests.
- Aspects of the disclosure relate to cancellation management with respect to a web application. A service request is received by the web application. An identifier for the service request is established. A cancellation request for the service request is received by the web application. Using the identifier, a termination of the service request is initiated. In embodiments, the termination of the service request is performed to free a set of computing resources such as bandwidth, processing, or memory.
- The above summary is not intended to describe each illustrated embodiment or every implementation of the present disclosure.
- The drawings included in the present application are incorporated into, and form part of, the specification. They illustrate embodiments of the present disclosure and, along with the description, serve to explain the principles of the disclosure. The drawings are only illustrative of certain embodiments and do not limit the disclosure.
-
FIG. 1 depicts a high-level block diagram of a computer system for implementing various embodiments of the present disclosure. -
FIG. 2 is a diagrammatic illustration of an example system for implementing cancellation management, according to embodiments. -
FIG. 3 is a diagrammatic illustration of an example system for implementing cancellation management, according to embodiments. -
FIG. 4 is a diagrammatic illustration of a cancellation management system with respect to a web application, according to embodiments. -
FIG. 5 is a flowchart illustrating a method for cancellation management with respect to a web application, according to embodiments. - While the invention is amenable to various modifications and alternative forms, specifics thereof have been shown by way of example in the drawings and will be described in detail. It should be understood, however, that the intention is not to limit the invention to the particular embodiments described. On the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.
- Aspects of the disclosure relate to implementing a protocol at an application network layer that allows a web client to signal to a connected web application server that a prior request has been canceled, and that associated computing resources are no longer needed. As described herein, the web client may assign a unique identifier to a Hypertext Transfer Protocol (HTTP) request sent to the server. In response to a request to cancel the HTTP request, a secondary HTTP request can then be sent which has the unique identifier of the HTTP request to be canceled. Accordingly, the unique identifier can be used to signal to the HTTP request which is executing on the server that service(s) related to the HTTP request is no longer needed. The HTTP request which was executing can then terminate and clean-up its resources to free such resources for other service requests.
- In large scale Enterprise Content Management (ECM) web application deployments, complex document processing requests may be initiated, and, at some future point, no longer be needed. These requests may be long-running by HTTP standards or require significant computing resources (e.g., processor, memory, disk) to complete. Without request cancellation, challenges are presented with respect to the HTTP protocol to inform the server that resources in use are no longer needed. Having the ability to terminate (or disregard) these requests (should they no longer be desired) would allow computing resources which may be shared (e.g., with other requests/jobs/workloads) to be released and thereby available to take-on other tasks. Such ability may have positive impacts with respect to scalability or the like.
- Aspects of the disclosure relate to cancellation management with respect to a web application. A service request is received by the web application. An identifier for the service request is established. A cancellation request for the service request is received by the web application. Using the identifier, a termination of the service request is initiated. In embodiments, the termination of the service request is performed to free a set of computing resources such as bandwidth, processing, or memory. As described herein, aspects may be related to Java Servlet/J2EE (trademark of Oracle Corporation and/or its affiliates), rich web (or web 2.0) applications, AJAX web development techniques, HTTP protocol, RESTful web services which use representational state transfer, or the like.
- Aspects of the disclosure include cancellable requests subscribing/registering to be notified of cancellation (e.g., by request identifier). In response, the cancellation service can publish (e.g., send a notification) using the request identifier (e.g., indexed lookup), to signal to subscribers that a cancellation request was received. Altogether, aspects of the disclosure may have various performance or efficiency benefits (e.g., wear-rate, service-length, speed, flexibility, load balancing, responsiveness, high availability, resource usage, productivity). Aspects may save resources such as bandwidth, processing, or memory.
- Turning now to the figures,
FIG. 1 depicts a high-level block diagram of a computer system for implementing various embodiments of the present disclosure, consistent with various embodiments. The mechanisms and apparatus of the various embodiments disclosed herein apply equally to any appropriate computing system. The major components of thecomputer system 100 include one ormore processors 102, amemory 104, aterminal interface 112, astorage interface 114, an I/O (Input/Output)device interface 116, and anetwork interface 118, all of which are communicatively coupled, directly or indirectly, for inter-component communication via amemory bus 106, an I/O bus 108,bus interface unit 109, and an I/Obus interface unit 110. - The
computer system 100 may contain one or more general-purpose programmable central processing units (CPUs) 102A and 102B, herein generically referred to as theprocessor 102. In embodiments, thecomputer system 100 may contain multiple processors; however, in certain embodiments, thecomputer system 100 may alternatively be a single CPU system. Eachprocessor 102 executes instructions stored in thememory 104 and may include one or more levels of on-board cache. - In embodiments, the
memory 104 may include a random-access semiconductor memory, storage device, or storage medium (either volatile or non-volatile) for storing or encoding data and programs. In certain embodiments, thememory 104 represents the entire virtual memory of thecomputer system 100, and may also include the virtual memory of other computer systems coupled to thecomputer system 100 or connected via a network. Thememory 104 can be conceptually viewed as a single monolithic entity, but in other embodiments thememory 104 is a more complex arrangement, such as a hierarchy of caches and other memory devices. For example, memory may exist in multiple levels of caches, and these caches may be further divided by function, so that one cache holds instructions while another holds non-instruction data, which is used by the processor or processors. Memory may be further distributed and associated with different CPUs or sets of CPUs, as is known in any of various so-called non-uniform memory access (NUMA) computer architectures. - The
memory 104 may store all or a portion of the various programs, modules and data structures for processing data transfers as discussed herein. For instance, thememory 104 can store acancellation management application 150. In embodiments, thecancellation management application 150 may include instructions or statements that execute on theprocessor 102 or instructions or statements that are interpreted by instructions or statements that execute on theprocessor 102 to carry out the functions as further described below. In certain embodiments, thecancellation management application 150 is implemented in hardware via semiconductor devices, chips, logical gates, circuits, circuit cards, and/or other physical hardware devices in lieu of, or in addition to, a processor-based system. In embodiments, thecancellation management application 150 may include data in addition to instructions or statements. - The
computer system 100 may include abus interface unit 109 to handle communications among theprocessor 102, thememory 104, adisplay system 124, and the I/Obus interface unit 110. The I/Obus interface unit 110 may be coupled with the I/O bus 108 for transferring data to and from the various I/O units. The I/Obus interface unit 110 communicates with multiple I/O interface units O bus 108. Thedisplay system 124 may include a display controller, a display memory, or both. The display controller may provide video, audio, or both types of data to adisplay device 126. The display memory may be a dedicated memory for buffering video data. Thedisplay system 124 may be coupled with adisplay device 126, such as a standalone display screen, computer monitor, television, or a tablet or handheld device display. In one embodiment, thedisplay device 126 may include one or more speakers for rendering audio. Alternatively, one or more speakers for rendering audio may be coupled with an I/O interface unit. In alternate embodiments, one or more of the functions provided by thedisplay system 124 may be on board an integrated circuit that also includes theprocessor 102. In addition, one or more of the functions provided by thebus interface unit 109 may be on board an integrated circuit that also includes theprocessor 102. - The I/O interface units support communication with a variety of storage and I/O devices. For example, the
terminal interface unit 112 supports the attachment of one or more user I/O devices 120, which may include user output devices (such as a video display device, speaker, and/or television set) and user input devices (such as a keyboard, mouse, keypad, touchpad, trackball, buttons, light pen, or other pointing device). A user may manipulate the user input devices using a user interface, in order to provide input data and commands to the user I/O device 120 and thecomputer system 100, and may receive output data via the user output devices. For example, a user interface may be presented via the user I/O device 120, such as displayed on a display device, played via a speaker, or printed via a printer. - The
storage interface 114 supports the attachment of one or more disk drives or direct access storage devices 122 (which are typically rotating magnetic disk drive storage devices, although they could alternatively be other storage devices, including arrays of disk drives configured to appear as a single large storage device to a host computer, or solid-state drives, such as flash memory). In some embodiments, thestorage device 122 may be implemented via any type of secondary storage device. The contents of thememory 104, or any portion thereof, may be stored to and retrieved from thestorage device 122 as needed. The I/O device interface 116 provides an interface to any of various other I/O devices or devices of other types, such as printers or fax machines. Thenetwork interface 118 provides one or more communication paths from thecomputer system 100 to other digital devices and computer systems; these communication paths may include, e.g., one ormore networks 130. - Although the
computer system 100 shown inFIG. 1 illustrates a particular bus structure providing a direct communication path among theprocessors 102, thememory 104, thebus interface 109, thedisplay system 124, and the I/Obus interface unit 110, in alternative embodiments thecomputer system 100 may include different buses or communication paths, which may be arranged in any of various forms, such as point-to-point links in hierarchical, star or web configurations, multiple hierarchical buses, parallel and redundant paths, or any other appropriate type of configuration. Furthermore, while the I/Obus interface unit 110 and the I/O bus 108 are shown as single respective units, thecomputer system 100 may, in fact, contain multiple I/Obus interface units 110 and/or multiple I/O buses 108. While multiple I/O interface units are shown, which separate the I/O bus 108 from various communications paths running to the various I/O devices, in other embodiments, some or all of the I/O devices are connected directly to one or more system I/O buses. - In various embodiments, the
computer system 100 is a multi-user mainframe computer system, a single-user system, or a server computer or similar device that has little or no direct user interface, but receives requests from other computer systems (clients). In other embodiments, thecomputer system 100 may be implemented as a desktop computer, portable computer, laptop or notebook computer, tablet computer, pocket computer, telephone, smart phone, or any other suitable type of electronic device. -
FIG. 1 depicts several major components of thecomputer system 100. Individual components, however, may have greater complexity than represented inFIG. 1 , components other than or in addition to those shown inFIG. 1 may be present, and the number, type, and configuration of such components may vary. Several particular examples of additional complexity or additional variations are disclosed herein; these are by way of example only and are not necessarily the only such variations. The various program components illustrated inFIG. 1 may be implemented, in various embodiments, in a number of different manners, including using various computer applications, routines, components, programs, objects, modules, data structures, etc., which may be referred to herein as “software,” “computer programs,” or simply “programs.” -
FIG. 2 is a diagrammatic illustration of anexample system 200 for implementing cancellation management, according to embodiments. The cancellation management may be consistent with the description herein includingFIGS. 1-5 . A user 210 (e.g., an individual interacting with a graphical user interface) may be connected via anetwork 230 to aserver 250. Theserver 250 can include aweb application 260 which has anapplication web service 270 and acancellation web service 280. In embodiments, theweb application 260 may be considered to have all such aspects in one component (e.g., the web application itself, a web client). For example, the web application 260 (e.g., and all of it's services) may be clustered (e.g., replicated to increase scalability) as a self-contained unit such that each may have it's own group of cancellable services and cancellation service. Accordingly, specific users can connect with specific copies of specific applications (e.g., while different users are connected with different copies). -
FIG. 3 is a diagrammatic illustration of anexample system 300 for implementing cancellation management, according to embodiments. The cancellation management may be consistent with the description herein includingFIGS. 1-5 . A user 310 may be connected via anetwork 330 to aserver 350. Theserver 350 can include aweb application 360, anapplication web service 370, and acancellation web service 380. In embodiments, theweb application 360, theapplication web service 370, and thecancellation web service 380 may be distinct components of the (one) server 350 (or, in certain embodiments, dispersed across multiple servers such as to centralize thecancellation web service 380 on a cancellation server). Accordingly, specific users can connect with specific copies of specific applications. -
FIG. 4 is a diagrammatic illustration of acancellation management system 400 with respect to a web application, according to embodiments. The cancellation management may be consistent with the description herein includingFIGS. 1-5 . Auser 410 may connect with aweb application 460. Theweb application 460 may have at least an association with anapplication web service 470 and acancellation web service 480, which may be configured to interact with each other. - At
operation 422, theweb application 460 may receive a service request. The service request may have been instantiated by the user 421. The service request can include a message requesting theweb application 460 to perform some action. Receiving can include sensing the message or data packet which may arrive from a requesting-user. In certain embodiments, the message may be encrypted or wrapped such that decryption or unwrapping may be applied. For example with respect to the nature of the service request, the service request can include processing of a conversion of a set of files (e.g., digital images) from a first file format to a second file format, and returning the converted set of files in the second file format back to the requesting-user. As such, the service request may initiate use of a set of computing resources (e.g., to process digital images). - At
operation 425, theweb application 460 can establish an identifier for the service request. Establishing the identifier can include creating, generating, or constructing a unique identifier for the service request. The identifier and the service request can be coupled together in a data object. The unique identifier may be specific to the requesting-user and the web application 460 (in addition to the service request). For instance, the identifier can distinguish one or more duplicate or similar service requests from a requesting-user to facilitate cancellation of such redundant service requests. - In embodiments, the
web application 460 may initiate an execution of the service request atoperation 427. For example, processing of a digital image (or another resource intensive technical procedure) may begin or be scheduled (e.g., based on availability/efficiency of computing resources such as processor, memory, or disk). The service request may have the identifier (e.g., wrapped/packaged in/with it). In embodiments, theapplication web service 470 may detect the initiation of the execution of the service request (which has the identifier) atoperation 429. As such, theapplication web service 470 can be configured to subsequently initiate a set of operations to carry-out the service request. - In embodiments, the
web application 460 may transmit an execution initiation notification to a requesting-user of the service request atoperation 431. The execution initiation notification may be related to an initiation of an execution of the service request. The execution initiation notification can have the identifier. As such, a dialog box may be provided to the requesting-user having the status of the service request, a cancellation button to facilitate cancellation if selected by the requesting-user, and the identifier of the service request to similarly facilitate cancellation or tracking by the requesting-user. Other possibilities are also contemplated. - In embodiments, the
application web service 470 may establish (e.g., register, create, generate, construct) a cancellation monitor at operation 435. The cancellation monitor can utilize the identifier to monitor or listen for an indication (e.g., a message or data packet) of the cancellation request. As such, the cancellation monitor can use a comparison technique to determine whether identifiers match (e.g., ABC14 & ABC14) or mismatch (e.g., DEF23 & HIJ68). - At
operation 439, theweb application 460 may receive a cancellation request for the service request. The cancellation request may be accepted or sensed from the requesting-user. In embodiments, the cancellation request can include the identifier of the service request to facilitate cancellation/termination of the service request. For example, the requesting user may have submitted multiple service requests. After a temporal period, the requesting user may submit a cancellation request for one of the service requests which is received by the web application 460 (using the identifier to indicate the appropriate service request to cancel or terminate). - At
operation 441, in response to detecting the cancellation request, theweb application 460 may use the identifier to initiate a termination of the service request. The identifier of the service request and an identifier of the cancellation request may be compared. When the identifiers match, termination of the service request may be initiated. If the identifiers do not match, another service request may be compared with the cancellation request. For example, a digital image processing operation having a particular identifier may be underway when a cancellation request is detected with the particular identifier. As such, termination of the digital image processing operation may be triggered by selecting a feature which stops associated processor, memory, or disk usage. - In embodiments, the initiation of the termination of the service request can be detected at
operation 443. Detection can occur using the identifier with respect to the cancellation web service 480 (e.g., by comparison of the identifiers to determine whether a match exists). In embodiments, a termination initiation request (e.g., message, signal, data packet) can be transmitted or sent atoperation 444. The termination initiation request can be transmitted by the cancellation web service 480 (related to the initiation of the termination of the service request). - In embodiments, the initiation of the termination of the service request can be detected (e.g., a message with a command to commence stopping of processing) by the application web service at operation 446 (e.g., using the cancellation monitor, based on matching identifiers). In embodiments, a termination initiation notification (e.g., verifying that the message having the command has been received) can be transmitted or sent at
operation 447. The termination initiation notification may be transmitted by the application web service 470 (related to the initiation of the termination of the service request). In embodiments, the termination initiation notification can be detected atoperation 449. The termination initiation notification may be detected by the cancellation web service 480 (related to the initiation of the termination of the service request). As such, for example, usage of computing resources associated with the service request such as processors, memory, or disk may be indicated to be wound-down or stopped. - In embodiments, a termination initiation notification (e.g., within or to the web application 460) can be transmitted at
operation 451. The termination initiation notification (e.g., publicizing the service request is stopped, being stopped, or scheduled to be stopped) may be transmitted by the cancellation web service 480 (related to the initiation of the termination of the service request). In embodiments, a confirmation of the initiation of the termination of the service request may be detected or sensed atoperation 453. The detection may be made by theweb application 460 in response to initiating the termination of the service request (at operation 441). In embodiments, a termination initiation notification (e.g., message, displayed dialogue box) can be transmitted or sent to a requesting-user of the service request atoperation 454. The termination initiation notification may be transmitted or sent by the web application 460 (related to the initiation of the termination of the service request). In certain embodiments, the termination initiation notification can include the identifier for tracking by the requesting-user or the like. - In embodiments, the termination of the service request is performed at
operation 457. The termination of the service request can occur in response to detecting initiation of the termination of the service request atoperation 446. The termination of the service request may be carried-out by theapplication web service 470. The termination of the service request can free a set of computing resources (e.g., network traffic may be reduced, available bandwidth can be increased, memory may become available, processing power can be applied elsewhere, disk space may be freed). The service request may be cleaned-up (e.g., disabling threads, ending processes, deleting temporary files), diagnostic data may be written to a data store, and the procedure may exit. -
FIG. 5 is a flowchart illustrating amethod 500 for cancellation management with respect to a web application, according to embodiments. The cancellation management may be consistent with the description herein includingFIGS. 1-5 . The method may begin atblock 501. In embodiments, the operational steps (e.g., the receiving of the service request, the establishing of the identifier, the receiving of the cancellation request, and the initiating of the termination of the service request) each occur in an automated fashion without user intervention atblock 505. Atblock 522, a service request may be received by a web application. At block 525, an identifier for the service request can be established by the web application. Atblock 539, a cancellation request for the service request may be received by the web application. Atblock 541, a termination of the service request is initiated using the identifier (by the web application in response to detecting the cancellation request). - In various embodiments, a requesting-user of the service request may be connected or linked directly with the web application. In certain embodiments, other users may not be connected to the exact same (image, representation, or copy of) the web application. The service request can correspond with a preexisting service request from the requesting-user (e.g., same type of request, a threshold number/percentage of files being accessed are identical such as more than 80%, a duplicate request at a different point in time). The service request and the preexisting service request can share a set of common elements (e.g., requesting a same/similar set of processed files once and then again within a temporal period, accessing identical digital images for processing).
- In embodiments, a dialog box is presented or displayed at
block 533. The dialog box can have a cancellation facilitation feature (e.g., an interface button while the service request is displayed or presented to be spinning, processing, or the like) which allows for a requesting-user of the service request to initiate a cancellation. The dialog box may be presented by the web application in response to receiving the service request. In embodiments, the cancellation request both includes the identifier and is received from a requesting-user of the service request at block 538. - In embodiments, a set of cancellation data is captured by a cancellation web service at
block 558. The set of cancellation data may be stored with information such as a count of a number of subscribers a particular termination request was sent to or to track a number of cancels (e.g., for metrics to provide a customer with respect to computing resource usage). The method may conclude atblock 599. Aspects of the method 500 (or related aspects of system 400) may have performance or efficiency benefits such as hardware resource usage, high availability, speed, or scalability. - Disclosed aspects allow utilization of an application program interface (API) to make a call that can be modified to self-regulate via a publish/subscribe model. Accordingly, a developer can modify each individual service to subscribe/listen for cancellation requests (e.g., abort signals) in a manner appropriate to the service. As described herein, the requesting-user can issue a cancellation request interactively within their own application context. If their service request is taking too long, the requesting-user can cancel, and the related services may be terminated. Aspects relate to disparate, distributed system components (e.g., web client, web application services) and abort/termination signaling/messaging.
- In addition to embodiments described above, other embodiments having fewer operational steps, more operational steps, or different operational steps are contemplated. Also, some embodiments may perform some or all of the above operational steps in a different order. The modules are listed and described illustratively according to an embodiment and are not meant to indicate necessity of a particular module or exclusivity of other potential modules (or functions/purposes as applied to a specific module).
- In the foregoing, reference is made to various embodiments. It should be understood, however, that this disclosure is not limited to the specifically described embodiments. Instead, any combination of the described features and elements, whether related to different embodiments or not, is contemplated to implement and practice this disclosure. Many modifications and variations may be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. Furthermore, although embodiments of this disclosure may achieve advantages over other possible solutions or over the prior art, whether or not a particular advantage is achieved by a given embodiment is not limiting of this disclosure. Thus, the described aspects, features, embodiments, and advantages are merely illustrative and are not considered elements or limitations of the appended claims except where explicitly recited in a claim(s).
- The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
- The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
- Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
- Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
- Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
- These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
- The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
- Embodiments according to this disclosure may be provided to end-users through a cloud-computing infrastructure. Cloud computing generally refers to the provision of scalable computing resources as a service over a network. More formally, cloud computing may be defined as a computing capability that provides an abstraction between the computing resource and its underlying technical architecture (e.g., servers, storage, networks), enabling convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction. Thus, cloud computing allows a user to access virtual computing resources (e.g., storage, data, applications, and even complete virtualized computing systems) in “the cloud,” without regard for the underlying physical systems (or locations of those systems) used to provide the computing resources.
- Typically, cloud-computing resources are provided to a user on a pay-per-use basis, where users are charged only for the computing resources actually used (e.g., an amount of storage space used by a user or a number of virtualized systems instantiated by the user). A user can access any of the resources that reside in the cloud at any time, and from anywhere across the Internet. In context of the present disclosure, a user may access applications or related data available in the cloud. For example, the nodes used to create a stream computing application may be virtual machines hosted by a cloud service provider. Doing so allows a user to access this information from any computing system attached to a network connected to the cloud (e.g., the Internet).
- Embodiments of the present disclosure may also be delivered as part of a service engagement with a client corporation, nonprofit organization, government entity, internal organizational structure, or the like. These embodiments may include configuring a computer system to perform, and deploying software, hardware, and web services that implement, some or all of the methods described herein. These embodiments may also include analyzing the client's operations, creating recommendations responsive to the analysis, building systems that implement portions of the recommendations, integrating the systems into existing processes and infrastructure, metering use of the systems, allocating expenses to users of the systems, and billing for use of the systems.
- The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
- While the foregoing is directed to exemplary embodiments, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow. The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/081,900 US20170279924A1 (en) | 2016-03-27 | 2016-03-27 | Cancellation management with respect to a web application |
US16/572,888 US10986158B2 (en) | 2016-03-27 | 2019-09-17 | Cancellation management with respect to a web application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/081,900 US20170279924A1 (en) | 2016-03-27 | 2016-03-27 | Cancellation management with respect to a web application |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/572,888 Continuation US10986158B2 (en) | 2016-03-27 | 2019-09-17 | Cancellation management with respect to a web application |
Publications (1)
Publication Number | Publication Date |
---|---|
US20170279924A1 true US20170279924A1 (en) | 2017-09-28 |
Family
ID=59897026
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/081,900 Abandoned US20170279924A1 (en) | 2016-03-27 | 2016-03-27 | Cancellation management with respect to a web application |
US16/572,888 Active US10986158B2 (en) | 2016-03-27 | 2019-09-17 | Cancellation management with respect to a web application |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/572,888 Active US10986158B2 (en) | 2016-03-27 | 2019-09-17 | Cancellation management with respect to a web application |
Country Status (1)
Country | Link |
---|---|
US (2) | US20170279924A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210006561A1 (en) * | 2017-02-24 | 2021-01-07 | Verizon Patent And Licensing Inc. | Permissions using blockchain |
US10986158B2 (en) | 2016-03-27 | 2021-04-20 | International Business Machines Corporation | Cancellation management with respect to a web application |
WO2022052412A1 (en) * | 2020-09-08 | 2022-03-17 | 武汉中科通达高新技术股份有限公司 | Violation data identification method and apparatus, and electronic device |
US20220303756A1 (en) * | 2016-04-29 | 2022-09-22 | Intel Corporation | Techniques to manage service requests in a wireless network |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5542088A (en) * | 1994-04-29 | 1996-07-30 | Intergraph Corporation | Method and apparatus for enabling control of task execution |
US20020143819A1 (en) * | 2000-05-31 | 2002-10-03 | Cheng Han | Web service syndication system |
US20030051062A1 (en) * | 2001-09-10 | 2003-03-13 | Edgar Circenis | Wait utility and method |
US20050203952A1 (en) * | 2004-03-11 | 2005-09-15 | Microsoft Corporation | Tracing a web request through a web server |
US20100318667A1 (en) * | 2009-06-12 | 2010-12-16 | Microsoft Corporation | Multi-channel communication |
US8880657B1 (en) * | 2011-06-28 | 2014-11-04 | Gogrid, LLC | System and method for configuring and managing virtual grids |
US20170126580A1 (en) * | 2015-10-30 | 2017-05-04 | AppDynamics, Inc. | Tracking Contention in a Distributed Business Transaction |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298352B1 (en) * | 1998-07-23 | 2001-10-02 | Mci Communications Corporation | Apparatus and method for managing number sources |
US7334216B2 (en) * | 2000-04-04 | 2008-02-19 | Sosy, Inc. | Method and apparatus for automatic generation of information system user interfaces |
US7117504B2 (en) * | 2001-07-10 | 2006-10-03 | Microsoft Corporation | Application program interface that enables communication for a network software platform |
JP4396639B2 (en) | 2003-10-15 | 2010-01-13 | 三菱電機株式会社 | Road-to-vehicle communication system, base station apparatus, and mobile station apparatus |
US7849467B2 (en) | 2005-01-06 | 2010-12-07 | Hewlett-Packard Development Company, L.P. | Handling a signal at an application context that employs a remote kernel service |
US8959508B2 (en) * | 2009-06-15 | 2015-02-17 | Microsoft Technology Licensing, Llc | Mitigating user interruption for partially downloaded streamed and virtualized applications |
US8607233B2 (en) | 2011-04-20 | 2013-12-10 | International Business Machines Corporation | Web service management |
FR2996031B1 (en) | 2012-09-24 | 2015-08-21 | Banque Accord | METHOD AND SYSTEM FOR ENHANCING PAYING SYSTEMS |
US20160148306A1 (en) | 2014-11-21 | 2016-05-26 | Peach Labs, Inc. | Lunch order management |
US20180096290A1 (en) | 2014-12-22 | 2018-04-05 | Amazon Technologies, Inc. | Sharing inventory between ordering channels |
US20170279924A1 (en) | 2016-03-27 | 2017-09-28 | International Business Machines Corporation | Cancellation management with respect to a web application |
-
2016
- 2016-03-27 US US15/081,900 patent/US20170279924A1/en not_active Abandoned
-
2019
- 2019-09-17 US US16/572,888 patent/US10986158B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5542088A (en) * | 1994-04-29 | 1996-07-30 | Intergraph Corporation | Method and apparatus for enabling control of task execution |
US20020143819A1 (en) * | 2000-05-31 | 2002-10-03 | Cheng Han | Web service syndication system |
US20030051062A1 (en) * | 2001-09-10 | 2003-03-13 | Edgar Circenis | Wait utility and method |
US20050203952A1 (en) * | 2004-03-11 | 2005-09-15 | Microsoft Corporation | Tracing a web request through a web server |
US20100318667A1 (en) * | 2009-06-12 | 2010-12-16 | Microsoft Corporation | Multi-channel communication |
US8880657B1 (en) * | 2011-06-28 | 2014-11-04 | Gogrid, LLC | System and method for configuring and managing virtual grids |
US20170126580A1 (en) * | 2015-10-30 | 2017-05-04 | AppDynamics, Inc. | Tracking Contention in a Distributed Business Transaction |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10986158B2 (en) | 2016-03-27 | 2021-04-20 | International Business Machines Corporation | Cancellation management with respect to a web application |
US20220303756A1 (en) * | 2016-04-29 | 2022-09-22 | Intel Corporation | Techniques to manage service requests in a wireless network |
US11457347B2 (en) * | 2016-04-29 | 2022-09-27 | Intel Corporation | Techniques to manage service requests in a wireless network |
US20210006561A1 (en) * | 2017-02-24 | 2021-01-07 | Verizon Patent And Licensing Inc. | Permissions using blockchain |
WO2022052412A1 (en) * | 2020-09-08 | 2022-03-17 | 武汉中科通达高新技术股份有限公司 | Violation data identification method and apparatus, and electronic device |
Also Published As
Publication number | Publication date |
---|---|
US10986158B2 (en) | 2021-04-20 |
US20200014743A1 (en) | 2020-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10986158B2 (en) | Cancellation management with respect to a web application | |
US10776144B2 (en) | Address space management with respect to a coherent accelerator processor interface architecture | |
US10042663B2 (en) | Maintaining virtual machines for cloud-based operators in a streaming application in a ready state | |
US9558226B2 (en) | Storage quota management | |
US20120215582A1 (en) | Executing workflows based on service level agreements | |
US20140366004A1 (en) | Remote Debugging in a Cloud Computing Environment | |
US9379950B2 (en) | Using cloud resources to improve performance of a streaming application | |
US11245636B2 (en) | Distributing computing resources based on location | |
US11762743B2 (en) | Transferring task data between edge devices in edge computing | |
US11316947B2 (en) | Multi-level cache-mesh-system for multi-tenant serverless environments | |
US11586470B2 (en) | Scalable workflow engine with a stateless orchestrator | |
US20130096978A1 (en) | Determining costs for workflows | |
US11356524B1 (en) | Coordinating requests actioned at a scalable application | |
US9253056B2 (en) | System to enhance performance, throughput and reliability of an existing cloud offering | |
US20150007046A1 (en) | Management of an application for an electronic device | |
US20180088960A1 (en) | Providing highly available and scalable access to a restricted access service through a restful interface | |
US10749941B2 (en) | Synchronized release of resources used in deferential cloud services | |
US20150373078A1 (en) | On-demand helper operator for a streaming application | |
US10216672B2 (en) | System and method for preventing time out in input/output systems | |
US11082531B2 (en) | Communication with an application flow in an integration system | |
US9471432B2 (en) | Buffered cloned operators in a streaming application | |
US20170054617A1 (en) | Managing a shared pool of configurable computing resources which uses a set of dynamically-assigned resources | |
US10831573B2 (en) | Message processing | |
US20230179540A1 (en) | System and method to effectively allocate computing resources to end users |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:IULIANO, JAMES A.;REEL/FRAME:038108/0253 Effective date: 20160323 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE |