US8793359B1 - Systems and/or methods for intelligently detecting API key domains - Google Patents
Systems and/or methods for intelligently detecting API key domains Download PDFInfo
- Publication number
- US8793359B1 US8793359B1 US14/088,732 US201314088732A US8793359B1 US 8793359 B1 US8793359 B1 US 8793359B1 US 201314088732 A US201314088732 A US 201314088732A US 8793359 B1 US8793359 B1 US 8793359B1
- Authority
- US
- United States
- Prior art keywords
- api
- domain
- apis
- consumer
- gateways
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Definitions
- Certain example embodiments described herein relate to application programming interfaces (APIs) and API domains. More particularly, certain example embodiments described herein relate to an API management system and/or method that automatically detects API domains, e.g., by analyzing consumer registration and runtime data, while also allowing API providers to provide approval for proposed detected domains and/or continued governance.
- APIs application programming interfaces
- API management system and/or method that automatically detects API domains, e.g., by analyzing consumer registration and runtime data, while also allowing API providers to provide approval for proposed detected domains and/or continued governance.
- APIs application programming interfaces
- SDKs software development kits
- Web APIs enable the development of web applications, typically by simply combining services that can be invoked remotely via protocols such as the hyper test transfer protocol (HTTP).
- HTTP hyper test transfer protocol
- Applications such as these oftentimes have a small amount of client-side logic and sometimes are referred to as “mash-ups.” There are number applications that rely on Web APIs.
- Web APIs One current popular example of a type of applications that generally relies on Web APIs is the mobile application, frequently referred to simply as an “app.” Vendors of Web APIs frequently publish their APIs on the Web and/or otherwise make their Web APIs available. Revenue can be generated by charging consumers when they consume the published APIs, for instance.
- API management system products that include basic API management system capabilities. Such products are available from, for example, Mashery, MuleSoft, Apigee, 3Scale, Apify, Axway Mashape, and Apiary.io.
- a good API management system may allow an API provider to publish its API and make it available for the intended consumers.
- APIs can be published on the Web, within an organization to provide access to organization internal services, etc., and published APIs can be searched or browsed by the intended API consumers.
- the consumer Once a consumer has identified an API fulfilling a set of requirements, the consumer can register as a consumer. During registration, the consumer may be provided with the details for invoking the APIs such as, for example, the endpoints where the API can be accessed and a so-called API key.
- An API key generally must be provided when an API is called, and it typically is checked by the API management system. On a successful check, the call is booked under the registered consumer that owns the API key. Identifying the registered consumer based on the API key typically is a prerequisite for charging a consumer and rejecting unauthorized calls.
- some API management systems also support more advanced techniques, potentially providing for higher levels of protections like digital signatures, certificates, OAuth tokens, and/or the like.
- the self-service aspect can become particularly important. This includes the self-support through communities, as well as the automated selling of API consumption contracts. Therefore, some API management systems provide self-service through techniques including communities and developer portals.
- API management systems provide the ability to bundle APIs into API domains.
- API domains also known as API packages, API products, etc.
- SLAs service-level agreements
- the usage of an API can be restricted to a certain number of calls that can be performed by a given consumer within a given time period.
- API domains In existing API management systems, API domains generally are defined by API providers. For defining API domains that are useful for consumers, information concerning how consumers are using the APIs can be beneficial. This at least implies that providers should know, for example, which APIs are consumed together and could therefore be put into an API domain and offered to consumers.
- Certain example embodiments help solve the issue of identifying which APIs are consumed together and could therefore be put into an API domain and offered to consumers. More particularly, certain example embodiments involve an approach to detecting useful groups of APIs for defining API domains, e.g., based on monitoring API consumption.
- the monitored API consumption may in certain example embodiments may include, for example, consumer registration data, data resulting from tracking API calls, and/or the like.
- One aspect of certain example embodiments relates to an API management system automatically detecting API domains by analyzing registration data and API invocation events.
- Another aspect of certain example embodiments relates to an API domain detection process that combines detected domains by analyzing API invocation events with already registered domains.
- Another aspect of certain example embodiments relates to an API management system with an event bus between API gateways and registry/repository, e.g., to enable a complex event processing (CEP) based implementation of the API domain detection process.
- CEP complex event processing
- storing API invocation events may be stored in an event store to run the API domain detection process on-demand.
- Still another aspect of certain example embodiments relates to an approval process that collects the feedback from an API provider for API domains and API domain extensions.
- Still another aspect of certain example embodiments relates to approval process that in essence asks API consumers if they are interested in any of the API domain and API domain extension proposals.
- Yet another aspect of certain example embodiments relates to governing API domains via a lifecycle model that includes, for example, state change policies for triggering the approval processes.
- Yet another aspect of certain example embodiments relates to an automatic detection mechanism for API domains and, with the help of CEP techniques, being able to expand this detection into several new features including, for example, the governing of API domains via a lifecycle model that may include state change policies for triggering the approval processes.
- an application programming interface management system In certain example embodiments, an application programming interface management system. APIs that each have a native endpoint are provided. Gateways provide virtual endpoints to respective APIs, and are configured to identify consumers attempting to access the APIs and forward API calls for authorized consumers to the native endpoints.
- a registry is stored on a non-transitory computer readable storage medium. The registry stores (a) registration information indicating which consumers have registered for which APIs, (b) metadata that includes information concerning operations supported by, and native and virtual endpoint information for, the APIs, and (c) runtime data from the gateways for at least API call type events, with the runtime data including, for each API call type event, a timestamp, a consumer identifier, a location, and an identifier of the API being called.
- a communications channel is defined between the gateways and the registry, with the communications channel being configured to transmit runtime data from the gateways to the registry.
- Processing resources comprise at least one processor and a memory are configured to detect API domains by analyzing the registration information and the runtime data from the gateways, with each said detected API domain including at least two of the APIs. For a given detected API domain, an indication is received as to whether the respective detected API domain is approved of by a provider of the APIs included therein, and in response to the respective detected API domain being approved of by the provider, the respective detected API domain is registered with the registry by storing in the registry metadata including information concerning operations supported by, and native and virtual endpoint information for, the respective detected API domain.
- the processing resources may be further configured to respond to a consumer registering for a plurality of APIs by at least: generating API domain proposals by analyzing the registration information and the runtime data from the gateways, each said API domain proposal including at least two of the APIs; and for each said API domain proposal; receiving first input indicating whether the respective domain proposal is approved of by a provider of the APIs included therein; in response to the respective domain proposal being approved of by the provider, receiving second input indicating whether the respective domain proposal is accepted by the consumer registering for the APIs; and in response to the respective domain proposal being approved of by the provider and accepted by the consumer registering for the APIs, registering the respective domain proposal with the registry as an API domain by storing in the registry registration information indicating that the consumer has registered for the respective API domain, and by storing metadata including information concerning operations supported by, and native and virtual endpoint information for, the respective API domain.
- the processing resources may be further configured to at least analyze the runtime data from the gateways by applying at least one set of one or more rules thereto in order to identify APIs that likely are consumed together and thus should be included in an API domain proposal presented for approval by the provider of the APIs therein.
- At least one of said set of rules may group together APIs that are invoked by the same consumer and from the same location, optionally additionally based on whether they occurred within a predetermined timeframe.
- the processing resources may be further configured to filter API domain proposals based on the registration data, e.g., so that a given API domain proposal is presented as a detected API domain only if there are a predetermined number of consumers who have each registered for the all of the APIs in that given API domain proposal.
- the processing resources may be further configured to at least generate a proposal for extending an already-existing API domain if a detected domain includes a superset of the APIs included in that already-existing API domain.
- the processing resources may be further configured to at least subject the events on an event channel to complex event processing (CEP) queries, e.g., with the CEP queries including continuous queries that, through windowing, identify time-based relations between different API call type events.
- CEP queries may at least: identify related API call type events; create domain detection events in response to the identification of related API call type events; filter created domain detection events based on the runtime data and the registration data; and generate events corresponding to domain proposals and/or domain extension proposals in response to the filtering.
- the gateways may be further configured to provide service-level agreement (SLA) enforcement.
- SLA service-level agreement
- the registry may be configured to enforce a predefined domain lifecycle in connection with API domains, the predefined domain lifecycle optionally being defined in accordance with one or more associated policies and/or possibly specifying when proposed API domains should be automatically approved by a provider and/or accepted by a consumer.
- a method of managing application programming interfaces is provided.
- Gateways providing virtual endpoints to APIs that have respective native endpoints are provided, with the gateways being configured to identify consumers attempting to access the APIs and forward API calls for authorized consumers to the native endpoints.
- a registry provided on a non-transitory computer readable storage medium, there is stored (a) registration information indicating which consumers have registered for which APIs, (b) metadata that includes information concerning operations supported by, and native and virtual endpoint information for, the APIs, and (c) runtime data from the gateways for at least API call type events, with the runtime data including, for each API call type event, a timestamp, a consumer identifier, a location, and an identifier of the API being called.
- API domains are detected (e.g., via at least one processor) by analyzing the registration information and the runtime data from the gateways, with each said detected API domain including at least two of the APIs.
- the method further includes (e.g., using at least one processor for): receiving an indication as to whether the respective detected API domain is approved of by a provider of the APIs included therein; and in response to the respective detected API domain being approved of by the provider, registering the respective detected API domain with the registry by storing in the registry metadata including information concerning operations supported by, and native and virtual endpoint information for, the respective detected API domain.
- a method of managing application programming interfaces is provided.
- Gateways providing virtual endpoints to APIs that have respective native endpoints are provided, with the gateways being configured to identify consumers attempting to access the APIs and forward API calls for authorized consumers to the native endpoints.
- a registry provided on a non-transitory computer readable storage medium, there is stored (a) registration information indicating which consumers have registered for which APIs, (b) metadata that includes information concerning operations supported by, and native and virtual endpoint information for, the APIs, and (c) runtime data from the gateways for at least API call type events, with the runtime data including, for each API call type event, a timestamp, a consumer identifier, a location, and an identifier of the API being called.
- the method further includes responding to a consumer registering for a plurality of APIs by (e.g., using at least one processor to) at least: generating API domain proposals by analyzing the registration information and the runtime data from the gateways, each said API domain proposal including at least two of the APIs; and for at least some of said API domain proposals, receiving first input indicating whether the respective domain proposal is approved of by a provider of the APIs included therein; in response to the respective domain proposal being approved of by the provider, receiving second input indicating whether the respective domain proposal is accepted by the consumer registering for the APIs; and in response to the respective domain proposal being approved of by the provider and accepted by the consumer registering for the APIs, registering the respective domain proposal with the registry as an API domain by storing in the registry registration information indicating that the consumer has registered for the respective API domain, and by storing metadata including information concerning operations supported by, and native and virtual endpoint information for, the respective API domain.
- generating API domain proposals by analyzing the registration information and the runtime data from the gateways, each said
- non-transitory computer readable storage mediums tangibly storing instructions that, when executed by at least one processor of a computer system, perform the above-described and/or other methods.
- a computer system including a processor, a memory, and a non-transitory computer readable medium is configured to execute computer functions for accomplishing the above-described and/or other methods.
- a computer system including a processor, a memory, and a non-transitory computer readable medium may host a master gateway registry configured to at least perform the above-described and/or other methods.
- FIG. 1 is a sample usage scenario used to help demonstrate how API domains may be detected in connection with certain example embodiments
- FIG. 2 is an overview of an API management system according to certain example embodiments
- FIG. 3 illustrates how domain detection rules may be applied in accordance with certain example embodiments
- FIG. 4 summarizes an example domain detection process that may be used in connection with certain example embodiments
- FIG. 5 is a flowchart showing an example process for proposing and approving domains in accordance with certain example embodiments
- FIG. 6 is an example lifecycle model for domains, in accordance with certain exemplary embodiments.
- FIG. 7 illustrates an example domain lifecycle model with approval policies for approving and accepting domains in accordance with certain example embodiments.
- Certain example embodiments relate to an application programming interface (API) management system that automatically detects API domains, e.g., by analyzing consumer registration and runtime data.
- the runtime data maybe analyzed by performing domain detection processes including, for example, applying complex event processing (CEP) techniques to detect domains from API call events.
- the detected domains may be filtered based on consumer registration data.
- the domain detection and filtering may in certain example embodiments be performed in connection with rules that can be easily implemented and efficiently executed on large event sets, e.g., as handled by API management systems deployed in large-scale environments. Based on the filtered domains, domain and domain extensions proposals may be created.
- the domain detection process can be applied continuously and/or on-demand, e.g., with respect to historical data. On-demand execution may be enabled by leveraging an event store for storing the API call events, for example.
- the proposals resulting from the domain detection process may be subjected to an approval process in certain example embodiments.
- the approval process may notify the providers about the detected domains and domain extensions, allow the providers to grant approval, and propose the approved domains to the consumer.
- the process may help in getting feedback from API providers before API domains are published and offered to consumers.
- Certain example embodiments also provide governance for the API domains beyond the provider approval capabilities mentioned above.
- An example of the governance that may be provided is the lifecycle management of domains.
- FIG. 1 is a sample usage scenario used to help demonstrate how API domains may be detected in connection with certain example embodiments.
- the API provider company Provider.com 102 offers location-related information. For instance, it offers an API that provides details about real estate offerings. By providing a zip code, a user can obtain a list of offerings and the corresponding details, using the GetRealEstasteInfoByZip API 104 a .
- Other APIs offered by the same company also provide location related infrastructure information. For example, there also is the GetSchoolsByZip API 104 b that provides a list of schools depending on a zip code.
- the GetRestaurantsByZip and GetCinemasByZip APIs 106 a and 106 b provide information about restaurants and cinemas.
- the provider has the GetMapByZip API 108 that returns a map according to zip code.
- the API provider company publishes its APIs via an API management system.
- the API consumer company Consumer.com 110 has implemented the RealEstateFinder mobile app 112 that takes the real estate information and adds to it the list of schools that are nearby.
- the RealEstateFinder app 112 also allows for the identification of all real estate offerings that are close to a specific school. The join between these two information sets may be performed in connection with the zip code of the school address and the zip code of the real estate offerings.
- the LeisureTimePlanner mobile app 114 from the same company uses these APIs and provides information helpful when organizing leisure-time activities. For example, it brings together cinema and restaurant information.
- the API provider 102 can analyze the API consumption data and detect two groups of APIs that are used together. This information can be leveraged to define new API domains that can be offered to the API consumer company 110 , e.g., to generate additional business.
- the domains might not be offered to API consumers directly. Instead, the new API domains may be proposed to the API provider. The API provider thus may have a chance to accept the proposal and add some additional capabilities, if necessary or desired.
- API management techniques of certain example embodiments support the publishing and consumption of APIs representing services that can be invoked remotely, e.g., in a large-scale environment.
- Example service types include SOAP or RESTful services.
- the caller of an API provides a so-called API key.
- This API key can be a globally unique identifier, an OAuth token or any other kind of security token, and/or the like.
- An API key does not only address an API but instead may in certain example embodiments also reference certain policies for accessing the API.
- Example access policies include service level agreements (SLAs) specifying, for instance, the number of requests that can be performed within a given time period.
- SLAs service level agreements
- an SLA may define an access policy for evaluating an API, e.g., only allowing a consumer to perform a certain total number of calls.
- a single API may in some implementations have multiple SLA variants, and they may be referred to API capabilities.
- Provider.com 102 may offer the GetRealEstateInfoByZip API 104 a with the capabilities representing the SLA levels: “100 calls per day”, “1,000 calls per day”, unlimited, etc.
- SLA levels can be represented by the levels test, commercial, and enterprise, for example.
- An API consumer can choose between capability options when requesting an API key for consumption.
- the API key that is granted for consumption no longer just references the API, but instead may also be indicative of the chosen capabilities.
- API domains can be grouped together into API domains.
- the APIs GetRestaurantsByZip and GetCinemasByZip 106 a and 106 b are related to leisure time activities. Therefore, these APIs can be grouped into a domain called LeisureTimeAcitivities or the like.
- an API domain may also have capabilities. The API domain capabilities may be made to apply to all APIs of that domain. Similar to the discussion above, an API domain has a key that is needed to consume the APIs of the domains and the chosen API domain capabilities.
- FIG. 2 is an overview of an API management system according to certain example embodiments.
- the FIG. 2 example management system includes one or more gateways 202 a - n , a registry repository 204 with metadata management and governance capabilities, a self-service developer portal 206 and a provider portal 208 .
- Each of these example components will be discussed in greater detail below. It will be appreciated that these example components may help provide one or more consumer applications 210 a - n with access to one or more APIs 212 a - n that may be organized into API domains, etc.
- the API gateways 202 a - n of certain example embodiments act as a proxy between the APIs 212 a - n provided by the provider and the applications 210 a - n driven by the consumer.
- the provider API endpoints thus are not directly exposed to the consumers. Instead, a published API 212 a - n has a virtual endpoint deployed on one or more gateways 202 a - n .
- Any API calls issued by the consumer applications 210 a - n are processed by an appropriate gateway 202 .
- the API gateways 202 a - n thus help to decouple the provider APIs 212 a - n from the consumer applications 210 a - n . This advantageously makes it possible to perform additional processing on incoming API invocations without affecting existing consumer applications.
- Example benefits may include, for instance, flexibility that might otherwise lead to performance degradation. For instance, flexibility may be provided while mitigating performance concerns by choosing the appropriate gateway implementation.
- the processing performed by the gateways 202 a - n may include consumer identification and the authorization of API calls. Other processing including message and protocol transformation, security checks, SLA enforcement, and/or the like, can also be performed by the gateways 202 a - n , and it will be appreciated that known techniques may be used to perform the required functionality.
- One prerequisite for authorizing an API call may be consumer identification. Consumers can be identified based on API keys, OAuth tokens, and/or other appropriate means, e.g., as indicated above.
- To call APIs consumers may register to the system and acquire the permission to invoke a certain API. If a user has successfully registered for an API, the user may be provided with an API key to be specified when calling that API. The API key may be verified by the API gateways 202 a - n in certain example embodiments. On successful authorization, the API call may be forwarded by the gateway to the native endpoint. Each call may be registered, and the runtime data related to the call may be stored in the registry/repository 204 , as discussed in greater detail below. The runtime data may include an identifier of the consumer that has called the API.
- the API gateways 202 a - n may be connected with the registry/repository 204 via an event channel (schematically represented with the two-headed arrow in FIG. 2 ). Through the event channel, the gateways 202 a - n send events representing invocation information and runtime information related to the API invocations.
- the registry/repository 204 can invoke actions on the gateways 202 a - n such as, for example, deploying a new procedure for processing API calls, updating the API keys that have been granted for a certain API, etc.
- the registry/repository 204 of certain example embodiments manages API management related metadata and the runtime data created by the gateways 202 a - n .
- the registry/repository 204 of certain example embodiments may be provided with governance capabilities such as, for example, those provided by the CentraSite SOA registry/repository. These governance capabilities may include, for example, policy enforcement, lifecycle management, and/or the like. Policies can be enforced on the managed metadata as well as on the event channel that connects the gateways 202 a - n with the registry/repository 204 .
- the registry/repository 204 may be implemented as any appropriate transitory or non-transitory computer readable storage medium and may store all metadata for the APIs 212 a - n of the registered API providers.
- the metadata for an API may include at least the description of the API, including the operations it supports and its native and virtual endpoint information. It may also reference the provider that has published the API and/or the capabilities that have been defined by the provider.
- the registry/repository 204 may maintain the information about consumers that have registered for consuming the APIs 212 a - n . This may also include, for example, information about the issued API keys, and/or the keys themselves.
- API domain metadata may be stored in addition to API metadata. Similar to the above, this information may include the description of the API domain, the issued keys, an indication of who has provided the API domain, an indication of who is consuming the domain, etc.
- Each API provider may have an account that can have one or more users.
- the registry/repository 204 thus may correspondingly support the look-up of the APIs belonging to the API provider account. Metrics and/or other information may be obtainable for each individual API and/or API domain. Consumers also may have accounts that can have one or more users. Thus, the registry/repository 204 may support the look-up of the consumed APIs.
- the API information exposed to consumers may, however, be restricted. For example, the native endpoint information may not be shown to consumers, e.g., to help prevent consumers from bypassing the virtual endpoints and thus undermining the tracking and/or management features provided in certain example implementations.
- the developer portal 206 of certain example embodiments exposes the API information stored in the registry/repository 204 to the consumers. It may, for example, offer advanced browsing and search capabilities, e.g., to enable consumers to find the APIs they want or need. In other words, the registry/repository 204 may provide such advanced browsing and search capabilities to allow consumers to detect APIs that fulfill their requirements via the developer portal 206 . Once a consumer has detected an API, the consumer can register for it via the developer portal 206 .
- the developer portal 206 may also provide self-service support including, for example, collaboration techniques like communities and wikis. The developer portal 206 may support the automated “onboarding” of consumers.
- the provider portal 208 of certain example embodiments provides a user interface to API providers.
- the provider can register new APIs and configure their capabilities via the provider portal 208 .
- New APIs may be registered with, removed from, and/or otherwise modified in, the registry/repository 204 by the providers through the provider portal 208 .
- the provider may use the provider portal 208 to approve API consumption requests.
- one aspect of certain example embodiments involves the detection of potential domains based on the API consumption data.
- the API management system of certain example embodiments analyzes the API consumption data to identify which APIs are consumed together. The detection can be done based on analyzing the registration and by analyzing the runtime data, e.g., as set forth in further detail below.
- a consumer might register for multiple APIs.
- a check may be made to determine whether there are any already-existing API domains.
- Certain example embodiments may perform this process by determining whether there are any API domains already containing the APIs selected by the consumer. Such API domains may be proposed to the consumer.
- certain example embodiments may propose a domain containing only the APIs that have been selected. However, to obtain higher-quality proposals, the registration information from other consumers may be considered. Certain example embodiments thus may check whether there are any other consumers that consume the same set of APIs. If there are multiple consumers of the same API set, a corresponding domain is detected. Before the domain is proposed to the consumer, however it is presented to the provider to approve of the proposed API domain.
- FIG. 3 illustrates how domain detection rules may be applied in accordance with certain example embodiments. In other words, FIG. 3 helps illustrate the detection of events through the application of different rule sets on API invocation events.
- the table in FIG. 3 shows the events representing the API calls performed by the consumer applications, and the events in the FIG. 3 table are from the proposed usage scenario.
- Each row represents an event reported by a gateway.
- the Event Type attribute distinguishes between various events. For domain detection, Call events are considered.
- the Time attribute provides the timestamp of the invocation.
- the Consumer attribute shows the consumer who has invoked the API, and this may be facilitated using the API key that is provided with the API invocation request. The location can be identified based on the IP address of the originator of the API invocation request.
- the API attribute shows the invoked API. It will of course be appreciated that the information presented in this table is provided by way of example, and the information reported by the API gateway for an API call event is not limited to the information shown.
- the information about an API call does not need to be complete.
- the API GetMapByZip has been invoked by an unknown user from an unknown location.
- Certain example embodiments may be configured to support incomplete information.
- the first rule set (shown to the left) checks whether the API calls are performed by the same consumer and are from the same location. In addition, the rule set verifies that the time gap between related API calls is not larger than a predetermined time period (e.g., 500 milliseconds).
- the domain that is detected by applying these rules contains the APIs GetRealEstasteInfoByZip and GetSchoolsByZip. All other calls are performed by a different consumer, or the time gap between the calls is too large.
- a simple rule set is able to detect meaningful domains.
- the rule set for detecting domain can be user-configurable. For instance, certain example embodiments make it possible to change single parameters (e.g., the time period between calls, etc.), remove complete rules, add additional rules, etc., e.g., by and/or on behalf of a provider.
- the second rule set shown in FIG. 3 (to the right), which may be generated by modifying the first rule set, does not consider the time gap between API calls. Instead, it merely verifies that the calls are performed by the same consumer and from the same location.
- rules can be defined to filter the detected domains.
- the filtering may, for example, consider other detected domains.
- a rule can be defined that determines whether a domain is detected multiple times within a certain time frame.
- the parameters of this rule may include the time period and the number of detections that are necessary to keep a detected domain. It thus will be appreciated that it is possible to provide a plurality of simple and/or complex rules in different example implementations, and it also will be appreciated that rule sets may be user-configured, dynamically or otherwise.
- the registration and runtime data can be combined.
- the detected domains may be considered correlated with the registered domains.
- the registered domains may include those domains that have been defined based on analyzing runtime data.
- Detected domains can be filtered based on the registration data. For example, only those detected domains are kept if there are a certain number of consumers that have registered for the APIs of that domain.
- Registration data can also be combined with runtime data to make proposals for modifying or extending existing domains.
- the detected domains may, for example, be matched with the existing domains. If a detected domain includes a superset of an existing domain, a domain extension proposal is created. For example, assume that in the example usage scenario shown in FIG. 1 , Consumer.com has already registered for a domain containing the APIs GetRealEstasteInfoByZip and GetSchoolsByZip. Based on the events above, the domain with the APIs GetRealEstasteInfoByZip, GetSchoolsByZip, and GetMapByZip is detected. Because the detected domain is a superset of the already existing domain, the domain extension proposal is generated to extend the domain including the GetRealEstasteInfoByZip and GetSchoolsByZip APIs with the API GetMapByZip.
- FIG. 4 summarizes an example domain detection process that may be used in connection with certain example embodiments.
- domains are detected by analyzing API calls in step S 402 .
- Detected domains are filtered based on runtime data in step S 404 .
- detected domains are filtered based on registration data.
- Domain and domain extension proposals are generated in step S 408 .
- the API call events generated by the API gateways and the registration data stored in the registry/repository also is considered.
- the runtime data may be consolidated to make it available for the domain detection process.
- the API gateways of certain example embodiments may write their events to an event channel, and the events on the channel may be read by the registry/repository.
- the registry/repository may have program logic built therein for initiating, and/or otherwise make its contents available to CEP analysis techniques.
- CEP analysis techniques may include, for example, the ability to perform continuous queries, identify time-based relations between events by applying windowing (e.g., through XQuery), etc., with the aid of processing resources such as at least one processor and a memory.
- a first set of continuous queries may be applied to detect domains by analyzing the API calls events. From the related API call events, domain detection events may be created. The domain detection events then may be filtered based on runtime data and registration data. Events corresponding to domain proposals and domain extension proposals finally may be generated.
- the domain detection process can be applied in different ways. For the continuous generation of domain and domain extension proposals, it may be run continuously on the events generated by the API gateways. The process can additionally or alternatively be applied on-demand on historical data. To support the latter, certain example embodiments may store the API gateway events in an event store. Such an event store can be a database management system or any other system enabling the storing and querying of events, and the domain detection process can be applied on the events stored within the event store.
- FIG. 5 is a flowchart showing an example process for proposing and approving domains in accordance with certain example embodiments.
- step S 502 the information about the new detected domain is passed to the API provider with the request to approve the domains.
- the provider can adjust the domain, e.g., by adding capabilities, if necessary or so desired.
- a determination is made in step S 504 as to whether the provider agrees to the domain. If the provider does not agree to the domain, it is removed in step S 506 , and the process is ended. On the other hand, if it is approved by the provider, the domain is proposed to the identified consumer in step S 508 .
- step S 510 If consumer accepts the domain, e.g., as determined in step S 510 , the consumption registration is triggered in step S 512 and, as a result, the domain is stored and the consumer is registered, e.g., in and with the registry/repository, respectively. A domain key is generated and provided to the consumer. If the consumer does not accept the domain, it is revoked in step S 506 , and the process is ended.
- certain example embodiments allow for the configuration of automated approval.
- approval may be provided automatically, under certain conditions.
- a provider may automatically provide approval for requests associated with preferred, trusted, or other consumers; for certain identified non-critical APIs; etc.
- denials may be automatically generated by providers who are unknown, blacklisted, etc. Consumers may automatically accept all proposals, all proposals from a trusted provider, etc.
- the provider can decide during the approval if the domain should be kept, even if any consumer does not accept the domain. As a result, automated approval configurations can be made more dynamic in certain example instances.
- FIG. 6 is an example lifecycle model for domains, in accordance with certain exemplary embodiments.
- the initial state of an API domain is Detected, e.g., as indicated in state S 602 .
- the provider approves the domain, it is set to Approved (state S 604 ). If it is rejected by the API provider, the domain is set to Rejected (state S 606 ). If the consumer accepts the domain, it is set to Defined (state S 608 ), otherwise it is set to Rejected (state S 606 ). Domains can be moved from the Defined (state S 608 ) to Retired (state S 610 ), e.g., if they have reached the end of their lifetime.
- FIG. 7 illustrates an example domain lifecycle model with approval policies for approving and accepting domains in accordance with certain example embodiments.
- the registry/repository may support the definition of policies governing the lifecycle state transitions.
- General purpose policies can be defined and, for example, an approval triggering policy S 702 can be assigned to the Detected state S 602 , e.g., as post-state change policy. The effect is that the approval policy S 702 is triggered after a domain has entered the Detected state S 602 .
- a corresponding approval policy may be defined as a post-state change policy on the Approved state S 604 .
- a pre-state change policy S 704 for the Defined state S 608 may be defined.
- the removal of rejected domains may be performed by a pre-state change policy on the Rejected state.
- Certain example embodiments may be enhanced through its lifecycle policy management and/or on each request to include the capability to introduce an improved data protection mechanism for customer/provider confidence.
- Such enhancements may be helpful, e.g., so that the consumer and/or the provider could be allowed to specify that personal data should not be kept beyond use, never exposed with the consumer/provider identity, etc. This also could help address consumer information protection issues oftentimes raised by the “fine-print” associated with current systems that request an acceptance of oftentimes complex “shrink-wrap” and/or “click-wrap” licenses that oftentimes are not read.
- This section provides an example implementation, and it will be appreciated that the components of certain example embodiments can be implemented based on existing technology. This may include, for example, the API gateway, the registry/repository, the developer and the provider portals, etc.
- the domain detection process can be implemented by using continuous queries and windowing using a suitable query language such as that defined by, for example, the XQuery 3.0 specification. It will be appreciated, however, that implementations are not limited to XQuery 3.0, and any CEP query language with windowing capabilities may be used.
- the registry/repository of the disclosed system may have a query processor for the CEP query language for executing the domain detection queries on the event stream. Because XQuery operates on XML data, a simplified XML representation for these events is assumed. An example call event therefore is as follows:
- the XML directly corresponds to the previously described table-structured events.
- the following example XQuery identifies related API call events.
- the first sample query detects domains by finding related API calls in the event stream issued by the API gateways.
- the query creates a sliding window for each call event.
- the sliding window ends after the given time period of 500 milliseconds.
- the windows are read from the getEvents( ) function, which accesses the events stream between the gateways and the registry repository. From each window, all call events that have the same consumer and location as the start item of the window are extracted. If there is more than just a single event, the query creates a domain for the window.
- the next example query verifies that a domain is detected multiple times within a given time frame.
- the query assumes the function getDomains( ) is defined by the above query.
- the query creates a sliding window for each detected domain. In each window, it collects the domains that are detected within 10 days. If there at least 10 domains with the same API set, the domain that has triggered the window creation is kept.
- the next query shows how the detected domains can be filtered according to already-registered domains.
- the query assumes a function filteredDomains( ) that is defined by the above query.
- the query calls the function registeredDomains( ).
- the detected domain is only kept if there is no registered domain that has the same API set as the detected one.
- system, subsystem, service, engine, module, programmed logic circuitry, and the like may be implemented as any suitable combination of software, hardware, firmware, and/or the like.
- storage locations herein may be any suitable combination of disk drive devices, memory locations, solid state drives, CD-ROMs, DVDs, tape backups, storage area network (SAN) systems, and/or any other appropriate tangible non-transitory computer readable storage medium.
- Cloud and/or distributed storage e.g., using file sharing means, for instance, also may be used in certain example embodiments.
- the techniques described herein may be accomplished by having at least one processor execute instructions that may be tangibly stored on a non-transitory computer readable storage medium.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
-
- <type>Call</type>
-
- <time>2013-05-30T09:30:10.100Z</time>
- <consumer>RealEstate.com</consumer>
- <location>109.22.161.16</location>
- <api>GetRealEstasteInfoByZip</api>
-
- <detectionTime>{current-date-time}</detectionTime>
- <apis>{$apis}</apis>
-
- for $domain in registeredDomains( )
- where deep-equal($domain, $detectedDomain)
- return domain
Claims (30)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/088,732 US8793359B1 (en) | 2013-11-25 | 2013-11-25 | Systems and/or methods for intelligently detecting API key domains |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/088,732 US8793359B1 (en) | 2013-11-25 | 2013-11-25 | Systems and/or methods for intelligently detecting API key domains |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US8793359B1 true US8793359B1 (en) | 2014-07-29 |
Family
ID=51212181
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/088,732 Active US8793359B1 (en) | 2013-11-25 | 2013-11-25 | Systems and/or methods for intelligently detecting API key domains |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US8793359B1 (en) |
Cited By (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9229790B2 (en) | 2011-08-31 | 2016-01-05 | Microsoft Technology Licensing, Llc | Projecting native application programming interfaces of an operating system into other programming languages |
| US9363267B2 (en) * | 2014-09-25 | 2016-06-07 | Ebay, Inc. | Transaction verification through enhanced authentication |
| WO2016144304A1 (en) * | 2015-03-06 | 2016-09-15 | Hewlett Packard Enterprise Development Lp | Dynamic api management |
| US9563487B2 (en) | 2011-08-11 | 2017-02-07 | Microsoft Technology Licensing, Llc. | Runtime system |
| US20170064038A1 (en) * | 2015-08-26 | 2017-03-02 | International Business Machines Corporation | Offering application program interfaces (apis) for sale in cloud marketplace |
| US9654639B1 (en) | 2015-12-10 | 2017-05-16 | Microsoft Technology Licensing, Llc | Resource partitioning for routing on-demand services |
| US9686406B1 (en) | 2015-12-10 | 2017-06-20 | Microsoft Technology Licensing, Llc | Issue detection for routing assistance requests |
| US9881144B2 (en) | 2015-06-15 | 2018-01-30 | International Business Machines Corporation | Identifying usage of code |
| EP3281168A4 (en) * | 2015-07-31 | 2018-03-14 | Hewlett-Packard Enterprise Development LP | Discovering and publishing api information |
| CN108200139A (en) * | 2017-12-27 | 2018-06-22 | 浙江力石科技股份有限公司 | A kind of service integration platform |
| US10089119B2 (en) | 2009-12-18 | 2018-10-02 | Microsoft Technology Licensing, Llc | API namespace virtualization |
| US10171627B2 (en) | 2015-09-17 | 2019-01-01 | International Business Machines Corporation | Download of a package of code |
| US10169018B2 (en) | 2015-09-17 | 2019-01-01 | International Business Machines Corporation | Downloading a package of code |
| US10223174B2 (en) | 2015-12-10 | 2019-03-05 | Microsoft Technology Licensing, Llc | Tenant engagement signal acquisition and exposure |
| US10275775B2 (en) | 2015-12-10 | 2019-04-30 | Microsoft Technology Licensing, Llc | Context generation for routing on-demand services |
| US10585727B1 (en) | 2015-06-08 | 2020-03-10 | Google Llc | API manager |
| US10635504B2 (en) | 2014-10-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | API versioning independent of product releases |
| US10831566B1 (en) | 2019-08-16 | 2020-11-10 | Bank Of America Corporation | Electronic system for intelligent processing and routing of incoming API requests based on context matching |
| US20210406383A1 (en) * | 2020-06-26 | 2021-12-30 | Bank Of America Corporation | System and Method for Providing an Application Programming Interface (API) Based on Performance and Security |
| US11249798B1 (en) | 2020-09-16 | 2022-02-15 | International Business Machines Corporation | Personalized timeout control |
| US11303731B2 (en) * | 2019-02-16 | 2022-04-12 | Samsung Electronics Co., Ltd. | Method and apparatus for registering API provider domain function entities on CAPIF core function entity |
| US11307847B1 (en) | 2020-12-10 | 2022-04-19 | International Business Machines Corporation | Contextual application programming interfaces in a development environment |
| US11455571B2 (en) | 2019-06-14 | 2022-09-27 | Bank Of America Corporation | Data structure tool |
| US11477187B2 (en) | 2020-03-06 | 2022-10-18 | International Business Machines Corporation | API key access authorization |
| US20230318870A1 (en) * | 2020-08-28 | 2023-10-05 | Siemens Aktiengesellschaft | Providing a service in a node of a cyber-physical system having at least two application modules |
| US20250097305A1 (en) * | 2023-09-14 | 2025-03-20 | Sap Se | Framework to resolve protocol endpoints in integration platform |
| US20250158988A1 (en) * | 2022-10-31 | 2025-05-15 | Wells Fargo Bank, N.A. | Data provisioning using application programming interfaces |
Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050203949A1 (en) * | 2004-03-15 | 2005-09-15 | Microsoft Corporation | Using endpoint references in a pub-sub system |
| US20080033845A1 (en) * | 2006-07-21 | 2008-02-07 | Mcbride Brian | Publication Subscription Service Apparatus And Methods |
| US20080209451A1 (en) | 2007-01-29 | 2008-08-28 | Mashery, Inc. | Methods for analyzing, limiting, and enhancing access to an internet API, web service, and data |
| US20090089109A1 (en) * | 2007-09-27 | 2009-04-02 | Christian Rabetge | Configuration of web services |
| US20090292797A1 (en) * | 2008-05-23 | 2009-11-26 | Raytheon Company | Dynamic Runtime Service Oriented Architecture |
| US20100017368A1 (en) * | 2006-03-31 | 2010-01-21 | Xin Sheng Mao | Service Registry and Relevant System and Method |
| US20100257587A1 (en) * | 2009-04-03 | 2010-10-07 | David Chazin | System and method for facilitating the provision of web services across different internet security domains |
| US20120180029A1 (en) | 2011-01-07 | 2012-07-12 | Gregg Alan Hill | Method and system for managing programmed applications in an open api environment |
| US20130262646A1 (en) * | 2012-03-27 | 2013-10-03 | Thorsten Fiebig | Method and registry for enabling the enforcement of design-time policies during runtime in a service-oriented architecture |
-
2013
- 2013-11-25 US US14/088,732 patent/US8793359B1/en active Active
Patent Citations (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20050203949A1 (en) * | 2004-03-15 | 2005-09-15 | Microsoft Corporation | Using endpoint references in a pub-sub system |
| US20100017368A1 (en) * | 2006-03-31 | 2010-01-21 | Xin Sheng Mao | Service Registry and Relevant System and Method |
| US20080033845A1 (en) * | 2006-07-21 | 2008-02-07 | Mcbride Brian | Publication Subscription Service Apparatus And Methods |
| US20080209451A1 (en) | 2007-01-29 | 2008-08-28 | Mashery, Inc. | Methods for analyzing, limiting, and enhancing access to an internet API, web service, and data |
| US20090089109A1 (en) * | 2007-09-27 | 2009-04-02 | Christian Rabetge | Configuration of web services |
| US20090292797A1 (en) * | 2008-05-23 | 2009-11-26 | Raytheon Company | Dynamic Runtime Service Oriented Architecture |
| US20100257587A1 (en) * | 2009-04-03 | 2010-10-07 | David Chazin | System and method for facilitating the provision of web services across different internet security domains |
| US20120180029A1 (en) | 2011-01-07 | 2012-07-12 | Gregg Alan Hill | Method and system for managing programmed applications in an open api environment |
| US20130262646A1 (en) * | 2012-03-27 | 2013-10-03 | Thorsten Fiebig | Method and registry for enabling the enforcement of design-time policies during runtime in a service-oriented architecture |
Non-Patent Citations (40)
| Title |
|---|
| 3Scale-API Management, retrieved online Nov. 19, 2013. http://www.3scale.net/api-management/. |
| 3Scale—API Management, retrieved online Nov. 19, 2013. http://www.3scale.net/api-management/. |
| Apiary, retrieved online Nov. 19, 2013. http://apiary.io/. |
| APIFy-Key Features, retrieved online Nov. 19, 2013. http://apify.co/key-features/. |
| APIFy—Key Features, retrieved online Nov. 19, 2013. http://apify.co/key-features/. |
| APIGee-APIGee Documentation, retrieved online Nov. 19, 2013. http://apigee.com/docs/. |
| APIGee—APIGee Documentation, retrieved online Nov. 19, 2013. http://apigee.com/docs/. |
| APIGee-Enterprise API Management, retrieved online Nov. 19, 2013. http://apigee.com/about/. |
| APIGee—Enterprise API Management, retrieved online Nov. 19, 2013. http://apigee.com/about/. |
| APIHub-Build a World-Class Developer Community, retrieved online Nov. 19, 2013. http://www.apihub.com/. |
| APIHub—Build a World-Class Developer Community, retrieved online Nov. 19, 2013. http://www.apihub.com/. |
| Axway-API Management, retrieved online Nov. 19, 2013. http://www.vordel.com/solutions/. |
| Axway—API Management, retrieved online Nov. 19, 2013. http://www.vordel.com/solutions/. |
| CentraSite Free Download Center-FAQs, retrieved online Nov. 19, 2013. http://www.centrasite.com/faq.html. |
| CentraSite Free Download Center—FAQs, retrieved online Nov. 19, 2013. http://www.centrasite.com/faq.html. |
| Mashape-How Mashape Connects Developers and APIs, retrieved online Nov. 19, 2013. https://www.mashape.com/howitworks. |
| Mashape—How Mashape Connects Developers and APIs, retrieved online Nov. 19, 2013. https://www.mashape.com/howitworks. |
| Mashery-Overview: API Management, retrieved online Nov. 19, 2013. http://www.mashery.com/product. |
| Mashery—Overview: API Management, retrieved online Nov. 19, 2013. http://www.mashery.com/product. |
| MuleSoft-Integration Platform for Connecting SaaS and Enterprise Applications, retrieved online Nov. 19, 2013. http://www.mulesoft.com/. |
| MuleSoft—Integration Platform for Connecting SaaS and Enterprise Applications, retrieved online Nov. 19, 2013. http://www.mulesoft.com/. |
| OAuth-Introduction, retrieved online Nov. 19, 2013. http://oauth.net/about/. |
| OAuth—Introduction, retrieved online Nov. 19, 2013. http://oauth.net/about/. |
| Search Cloud Applications, API Management Definition, retrieved online Nov. 19, 2013. http://searchcloudapplications.techtarget.com/definition/API-management. |
| SOA Software-API Management, retrieved online Nov. 19, 2013. http://www.soa.com/. |
| SOA Software—API Management, retrieved online Nov. 19, 2013. http://www.soa.com/. |
| W3C-Xquery 3.0: An XML Query Language, retrieved online Nov. 19, 2013. http://www.w3.org/TR/2013/WD-xquery-30-20130723/. |
| W3C—Xquery 3.0: An XML Query Language, retrieved online Nov. 19, 2013. http://www.w3.org/TR/2013/WD-xquery-30-20130723/. |
| Wikipedia-Application Programming Interface (API), retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Application-programming-interface. |
| Wikipedia—Application Programming Interface (API), retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Application—programming—interface. |
| Wikipedia-Complex Event Processing, retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Complex-event-processing. |
| Wikipedia—Complex Event Processing, retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Complex—event—processing. |
| Wikipedia-Data Stream Management System, retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Data-stream-management-system. |
| Wikipedia—Data Stream Management System, retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Data-stream—management—system. |
| Wikipedia-Hypertext Transfer Protocol (HTTP), retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Hypertext-Transfer-Protocol. |
| Wikipedia—Hypertext Transfer Protocol (HTTP), retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Hypertext—Transfer—Protocol. |
| Wikipedia-Mashup (Web Application Hybrid), retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Mashup-(web-application-hybrid. |
| Wikipedia—Mashup (Web Application Hybrid), retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Mashup—(web—application—hybrid. |
| Wikipedia-Web API, retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Web-API. |
| Wikipedia—Web API, retrieved online Nov. 19, 2013. http://en.wikipedia.org/wiki/Web—API. |
Cited By (41)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10089119B2 (en) | 2009-12-18 | 2018-10-02 | Microsoft Technology Licensing, Llc | API namespace virtualization |
| US9563487B2 (en) | 2011-08-11 | 2017-02-07 | Microsoft Technology Licensing, Llc. | Runtime system |
| US9229790B2 (en) | 2011-08-31 | 2016-01-05 | Microsoft Technology Licensing, Llc | Projecting native application programming interfaces of an operating system into other programming languages |
| CN106716343A (en) * | 2014-09-25 | 2017-05-24 | 电子湾有限公司 | Transaction verification through enhanced authentication |
| US12041187B2 (en) | 2014-09-25 | 2024-07-16 | Ebay Inc. | Transaction verification through enhanced authentication |
| US11695576B2 (en) | 2014-09-25 | 2023-07-04 | Ebay Inc. | Transaction verification through enhanced authentication |
| CN106716343B (en) * | 2014-09-25 | 2021-09-03 | 电子湾有限公司 | Transaction verification by enhanced authentication |
| US11075767B2 (en) | 2014-09-25 | 2021-07-27 | Ebay Inc. | Transaction verification through enhanced authentication |
| US9363267B2 (en) * | 2014-09-25 | 2016-06-07 | Ebay, Inc. | Transaction verification through enhanced authentication |
| US10635504B2 (en) | 2014-10-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | API versioning independent of product releases |
| WO2016144304A1 (en) * | 2015-03-06 | 2016-09-15 | Hewlett Packard Enterprise Development Lp | Dynamic api management |
| US10585727B1 (en) | 2015-06-08 | 2020-03-10 | Google Llc | API manager |
| US11068327B1 (en) | 2015-06-08 | 2021-07-20 | Google Llc | API manager |
| US9881144B2 (en) | 2015-06-15 | 2018-01-30 | International Business Machines Corporation | Identifying usage of code |
| CN107836007A (en) * | 2015-07-31 | 2018-03-23 | 慧与发展有限责任合伙企业 | It was found that and issue API information |
| EP3281168A4 (en) * | 2015-07-31 | 2018-03-14 | Hewlett-Packard Enterprise Development LP | Discovering and publishing api information |
| US12131195B2 (en) * | 2015-07-31 | 2024-10-29 | The Conundrum Ip Llc | Discovering and publishing API information |
| US11714685B2 (en) * | 2015-07-31 | 2023-08-01 | The Conundrum Ip Llc | Discovering and publishing API information |
| US20180217871A1 (en) * | 2015-07-31 | 2018-08-02 | Hewlett Packard Enterprise Development LP. | Discovering and publishing api information |
| US20170064038A1 (en) * | 2015-08-26 | 2017-03-02 | International Business Machines Corporation | Offering application program interfaces (apis) for sale in cloud marketplace |
| US10721328B2 (en) * | 2015-08-26 | 2020-07-21 | International Business Machines Corporation | Offering application program interfaces (APIs) for sale in cloud marketplace |
| US10171627B2 (en) | 2015-09-17 | 2019-01-01 | International Business Machines Corporation | Download of a package of code |
| US10169018B2 (en) | 2015-09-17 | 2019-01-01 | International Business Machines Corporation | Downloading a package of code |
| US9654639B1 (en) | 2015-12-10 | 2017-05-16 | Microsoft Technology Licensing, Llc | Resource partitioning for routing on-demand services |
| US10275775B2 (en) | 2015-12-10 | 2019-04-30 | Microsoft Technology Licensing, Llc | Context generation for routing on-demand services |
| US9686406B1 (en) | 2015-12-10 | 2017-06-20 | Microsoft Technology Licensing, Llc | Issue detection for routing assistance requests |
| US10217112B2 (en) | 2015-12-10 | 2019-02-26 | Microsoft Technology Licensing, Llc | Issue detection for routing assistance requests |
| US10223174B2 (en) | 2015-12-10 | 2019-03-05 | Microsoft Technology Licensing, Llc | Tenant engagement signal acquisition and exposure |
| CN108200139A (en) * | 2017-12-27 | 2018-06-22 | 浙江力石科技股份有限公司 | A kind of service integration platform |
| US11303731B2 (en) * | 2019-02-16 | 2022-04-12 | Samsung Electronics Co., Ltd. | Method and apparatus for registering API provider domain function entities on CAPIF core function entity |
| US11455571B2 (en) | 2019-06-14 | 2022-09-27 | Bank Of America Corporation | Data structure tool |
| US10831566B1 (en) | 2019-08-16 | 2020-11-10 | Bank Of America Corporation | Electronic system for intelligent processing and routing of incoming API requests based on context matching |
| US11477187B2 (en) | 2020-03-06 | 2022-10-18 | International Business Machines Corporation | API key access authorization |
| US11461470B2 (en) * | 2020-06-26 | 2022-10-04 | Bank Of America Corporation | System and method for providing an application programming interface (API) based on performance and security |
| US20210406383A1 (en) * | 2020-06-26 | 2021-12-30 | Bank Of America Corporation | System and Method for Providing an Application Programming Interface (API) Based on Performance and Security |
| US20230318870A1 (en) * | 2020-08-28 | 2023-10-05 | Siemens Aktiengesellschaft | Providing a service in a node of a cyber-physical system having at least two application modules |
| US12335063B2 (en) * | 2020-08-28 | 2025-06-17 | Siemens Aktiengesellschaft | Providing a service in a node of a cyber-physical system having at least two application modules |
| US11249798B1 (en) | 2020-09-16 | 2022-02-15 | International Business Machines Corporation | Personalized timeout control |
| US11307847B1 (en) | 2020-12-10 | 2022-04-19 | International Business Machines Corporation | Contextual application programming interfaces in a development environment |
| US20250158988A1 (en) * | 2022-10-31 | 2025-05-15 | Wells Fargo Bank, N.A. | Data provisioning using application programming interfaces |
| US20250097305A1 (en) * | 2023-09-14 | 2025-03-20 | Sap Se | Framework to resolve protocol endpoints in integration platform |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8793359B1 (en) | Systems and/or methods for intelligently detecting API key domains | |
| US12254358B2 (en) | System and method for tagging and tracking events of an application | |
| US11768802B2 (en) | Method and system for applying data retention policies in a computing platform | |
| US20230333906A1 (en) | Discovering and publishing api information | |
| US9838839B2 (en) | Repackaging media content data with anonymous identifiers | |
| US9274763B2 (en) | System and method for creating a development and operational platform for mobile applications | |
| US11128587B2 (en) | Enterprise messaging using a virtual message broker | |
| US11195216B2 (en) | Federated marketplace portal | |
| US11379416B1 (en) | Systems and methods for common data ingestion | |
| Yuan et al. | Extricating iot devices from vendor infrastructure with karl | |
| US10083246B2 (en) | Apparatus and method for universal personal data portability | |
| Zerva et al. | Towards design support for provenance awareness: A classification of provenance questions | |
| US20250291897A1 (en) | Reflection runtime protection and auditing system | |
| US20250181573A1 (en) | User interaction data management | |
| US20230385108A1 (en) | System and method for dynamic throttling of workflows based on integrated applications | |
| Gardikis et al. | Updated specifications, design, and architecture for the usable information driven engine |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: SOFTWARE AG, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FIEBIG, THORSTEN;WOODS, GARY;ADELHARDT, DANIEL;SIGNING DATES FROM 20131120 TO 20131125;REEL/FRAME:031669/0177 |
|
| FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
| AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SOFTWARE AG;REEL/FRAME:069048/0240 Effective date: 20240910 Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW YORK Free format text: ASSIGNMENT OF ASSIGNOR'S INTEREST;ASSIGNOR:SOFTWARE AG;REEL/FRAME:069048/0240 Effective date: 20240910 |