1. Field of the Invention
The present invention relates intermediate-level devices in networks involving multiple data reads over time, including but not limited to sensor networks and RFID networks. More particularly, the invention relates to middleware servers in RFID networks.
2. Description of the Related Art
“Smart labels,” generally implemented by RFID tags, have been developed in an effort to address the shortcomings of bar codes and add greater functionality. RFID tags have been used to keep track of items such as airline baggage, items of clothing in a retail environment, cows and highway tolls. As shown in
Most RFID tags use one of the Electronic Product Code (“EPC” or “ePC”) formats for encoding information. EPC codes may be formed in various lengths (common formats are 64, 96 and 96+ bits) and have various types of defined fields, which allow for identification of, e.g., individual products as well as associated information. These formats are defined in various documents in the public domain. One such document is EPC Tag Data Standards Version 1.1 Rev1.24 (EPCglobal® 2004), which is hereby incorporated by reference for all purposes.
One exemplary RFID tag format is shown in
In theory, RFID tags and associated RFID devices (such as RFID readers and printers) could form part of a network for tracking a product (or a group of products) and its history. However, various difficulties have prevented this theory from being realized. One problem that has required considerable time and energy from RF engineers is the development of lower-cost RFID tags with acceptable performance levels. RFID devices have only recently been deployed with network interfaces.
In part because of the significant efforts that have been expended in solving the foregoing problems, prior art systems and methods for networking RFID devices are rather primitive. Many uncertainties remain regarding the functionality and implementation of RFID networks. Although EPCglobal has emerged as a de facto standards body, data standards are still evolving and form factors for many solutions are unclear.
However, some general outlines of a solution appear to be taking shape. It is envisioned that a single facility (e.g., a warehouse, factory, retail outlet, etc.) may have a large number of RFID readers. Such RFID readers may be installed on or near shipping/receiving dock doors, forklifts, shelves, etc. Each RFID reader may transmit a large number of “reads,” many of which will be redundant. Due to the nature of the data gathering and sharing process, a hierarchy of middleware, edge servers/event processing engines and information services are likely to be deployed for all large RFID networks. “The EPCglobal Architecture Framework” (EPCglobal Final Version of 1 Jul. 2005) is hereby incorporated by reference for all purposes.
Accordingly, it is generally agreed that it would be desirable for most RFID networks to use “middleware” to perform functions such as data collection, filtering, aggregation and reporting of tag reads from physical RFID readers to higher-level applications. It would appear to be generally desirable that filtering and processing of information (e.g., of RFID reads) should occur as close to the network edge as possible, for bandwidth optimization, manageability, security, etc. However, many RFID devices and related network devices are deployed in a hostile industrial environment (such as a warehouse or factory) by relatively unskilled “IT” personnel. RFID devices and related network devices may not perform well in such rugged environments. Moreover, existing RFID middleware servers generally provide low levels of data security (if any).
It would be desirable to address at least some of these shortcomings of the prior art.
Some embodiments of the present invention provide middleware functionality integrated into a module of a network device, such as a router or switch, that is configured to provide application-oriented network (“AON”) services. Some such implementations include two interface types. The first type is a downstream interface with multiple Readers in a warehouse, a store, etc. The second type is an upstream interface with business applications, a Warehouse Management Server (“WMS”) and/or an EPC information services (“EPCIS”) server. Some preferred implementations of the invention provide policy-based application services for RFID data, such as conditional routing, security (encryption, identification, authentication and authorization), data translation and/or transformation, data compression, data caching, etc.
Some preferred embodiments of the invention can abstract out vendor-specific reader implementations and can provide reader service virtualization (e.g., virtualization of a plurality of RFID readers at or near a particular location). Some preferred implementations can interpret an application request and route to an appropriate network address of an RFID reader. Preferably, ALE (application-level event) aggregation and filtering can also be performed on behalf of the application. Some methods of the invention allow event data to be sent to applications (including but not limited to business applications) as request-response messages. Other methods of the invention allow event data to be sent to applications in the form of asynchronous notifications. Preferred implementations route and deliver event information to application subscribers in the appropriate format.
Some implementations of the invention provide methods for controlling a network. One such method includes these steps: receiving a message relating to an RFID device network or a sensor network; determining an application layer protocol that was used to transmit the message; determining a message termination technique that is associated with the application layer protocol; determining the message contents, based at least in part on the message termination technique; and performing at least one action according to the message contents.
The method may include the step of determining a message classification that is associated with criteria satisfied by the message. At least one action may be performed according to the message classification. For example, the action may involve applying a rule to initiate a predetermined sequence of operations. The predetermined sequence of operations may be performed at a predetermined time interval.
The action may involve obtaining information from the RFID network. For example, the action may involve making an RFID read request to at least one RFID reader. The information may pertain to an indicated manufacturer, an indicated location, an indicated product type and/or an indicated time period. The method may include the steps of identifying and authenticating a sender of the message.
The methods of the present invention may be implemented, at least in part, by hardware and/or software. For example, some embodiments of the invention provide computer programs embodied in machine-readable media. The computer programs include instructions for controlling one or more devices to perform the methods described herein.
For example, some embodiments of the invention provide a network device, comprising: a first plurality of network interfaces configured for communication with a plurality of RFID readers; an application layer event (“ALE”) adapter for processing reads from the RFID readers; a second network interface configured for communication with networked devices executing RFID-related applications; and an AON module. The AON module may be implemented, for example in a line card. The AON module may be configured to perform the following steps: receive a first ALE request from one of the networked devices; preprocess the first ALE request; issue a second ALE request to the ALE adapter; and process an ALE response from the ALE adapter.
The ALE adapter may be further configured to make read requests to one or more selected RFID readers of the plurality of RFID readers and to create the ALE response according to at least one RFID read.
The preprocessing step may involve identifying and authenticating a sender of the first ALE request. The step of processing the ALE response may include generating a notification to one or more of the networked devices when the ALE response comprises one of a set of predetermined ALE responses.
The AON module may be further configured to perform the following steps: determining a first application layer protocol that was used to transmit the first ALE request; determining a message termination technique that is associated with the first application layer protocol; and determining message contents of the first ALE request, based at least in part on the message termination technique. The AON module may be further configured to form the second ALE request according to a second application layer protocol different from the first application layer protocol. The first ALE request may be classified based on a uniform resource identifier of the first ALE request.
In this application, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be obvious, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process steps have not been described in detail in order not to obscure the present invention.
A number of other applications filed on behalf of the present assignee, including U.S. patent application Ser. No. 10/866,506, entitled “Methods and Devices for Uniquely Provisioning RFID Devices” and filed on Jun. 9, 2004, to U.S. patent application Ser. No. 10/866,507, entitled “Methods and Devices for Locating and Uniquely Provisioning RFID Devices” and filed on Jun. 9, 2004, to U.S. patent application Ser. No. 10/866,285, entitled “Methods and Devices for Assigning RFID Device Personality” and filed on Jun. 9, 2004, to U.S. patent application Ser. No. 11/010,089, entitled “Methods and Devices for Providing Scalable RFID Networks” and filed on Dec. 9, 2004, to U.S. patent application Ser. No. 11/119,169, filed on Apr. 29, 2005 , entitled “Locating and Provisioning Devices in a Network” and to U.S. patent application Ser. No. 11/129,709, filed on May 12, 2005 , entitled “Locating, Provisioning and Identifying Devices in a Network” (collectively, the “RFID Applications”), describe subject matter relevant to this application. Accordingly, all of the RFID Applications are hereby incorporated by reference for all purposes.
While the present invention involves methods and devices that may be employed in RFID networks, many aspects of the present invention can be applied to other types of networks. For example, the present invention may also be used in manufacturing networks, sensor device networks, etc. Similarly, although much of the discussion herein applies to network devices that are implemented as described in one or more of the AON Applications, the present invention is not device-specific.
However, many preferred implementations of the invention are based on AON methods and devices, some of which are described in detail in the AON Applications that have been incorporated by reference herein. Because this technology is fundamental to many such implementations of the invention, a brief overview of AON methods and devices is set forth in the following paragraphs. Please note that the AON Applications use the phrase Application-Oriented Network Systems or the corresponding acronym “AONS” instead of the acronym “AON”; accordingly, these terms and acronyms will be used synonymously herein.
AON is a technology foundation for building a class of products that embed intelligence into the network to better meet the needs of application deployment. AON complements existing networking technologies by providing a greater degree of awareness of what information is flowing within the network and helping customers to integrate disparate applications by routing information to the appropriate destination, in the format expected by that destination; enforce policies for information access and exchange; optimize the flow of application traffic, both in terms of network bandwidth and processing overheads; provide increased manageability of information flow, including monitoring and metering of information flow for both business and infrastructure purposes; and provide enhanced business continuity by transparently backing up or re-routing critical business data.
AON provides this enhanced support by understanding more about the content and context of information flow. As such, AON works primarily at the message rather than at the packet level. In some implementations, AON processing of information terminates a TCP connection to inspect the full message, including the “payload” as well as all headers. AON also understands and assists with popular application-level protocols such as HTTP, FTP, SMTP and MOM protocols.
AON differs from middleware products running on general-purpose computing systems in that AON's behavior is more akin to a network appliance, in its simplicity, manageability, total cost of ownership and performance. Furthermore, AON integrates with network-layer support to provide a more holistic approach to information flow and management, mapping required features at the application layer into low-level networking features implemented by routers, switches, firewalls and other networking systems.
In one embodiment, an underlying “AON foundation platform of subsystem services” (AOS) provides a range of general-purpose services including support for security, compression, caching, reliability, policy management and other services. On top of this platform, AON then offers a range of discreet functional components that can be wired together to provide the overall processing of incoming data traffic. These “Bladelets™” are targeted at effecting individual services in the context of the specific policy or action demanded by the application or the information technology (IT) manager. A series of access method adapters ensure support for a range of ingress and egress formats. Finally, a set of user-oriented tools enable managers to appropriately view, configure and set policies for the AON solution. These four categories of functions combine to provide a range of end-customer capabilities including enhanced security, infrastructure optimization, business continuity, application integration and operational visibility.
The enhanced visibility and enhanced responsiveness enabled by AON solutions provides a number of intelligent, application-oriented network services. These intelligent services can be summarized in four primary categories:
Enhanced security and reliability: enabling reliable message delivery and providing message-level security in addition to existing network-level security.
Infrastructure optimization: making more efficient use of network resources by taking advantage of caching and compression at the message level as well as by integrating application and network quality-of-service (QoS).
Business and infrastructure activity monitoring and management: by reading information contained in the application layer message, AON can log, audit, and manage application-level business events, and combine these with network, server, and storage infrastructure events in a common, policy-driven management environment.
Content-based routing and transformation: message-based routing and transformation of protocol, content, data, and message formats (e.g., XML transformation). Some individual features belonging to each of these primary categories are described elsewhere herein and are described in greater detail in the AON Applications.
Flow chart 200 of
In block 202, a network element receives user-specified input. The user-specified input indicates a message classification and one or more actions that are associated with the message classification. For example, a middleware server may receive such user-specified input from a network administrator, from a host device or from an application.
The message classification defines a category or class of messages. In one example, all purchase orders belong to the same message classification. In an RFID-related example, a class of messages could pertain to a particular product type, manufacturer ID, etc., that could be determined from RFID reads. In another RFID-related example, a class of messages could pertain to RFID reads from a particular location. Other such examples will be described below. Messages that satisfy user-specified criteria or rules associated with the message classification belong to the message classification, while messages that do not satisfy these criteria or rules do not belong to the message classification.
In block 204, the network element receives one or more data units, such as data packets. As used herein the terms “packet,” “data packet” and the like will include not only such data units as TCP/IP packets but will also include data units from an RFID reader (also referred to herein as “raw reads” and the like). For example, a network element may intercept one or more data packets that are destined for another device in the network. For another example, a network element may receive one or more data packets that are directed to that network element.
The network element is preferably capable of determining application layer message boundaries. In one embodiment, a network element may perform operations on an application layer message contained in a stream, or portions thereof, even if the network element has not yet received all of the data packets that contain all of the portions of the application layer message.
In block 206, based on the data packets, it is determined that an application layer message collectively contained in payload portions of the data packets belongs to the particular message classification. For example, a network element may assemble at least some of the data packets. The network element may inspect the contents of the payload portions of the assembled data packets to determine at least a portion of an application layer message that a client application is trying to send. The message may be, for example, formatted according to XML and transmitted using HTTP. As such, the message may contain HTTP and XML headers. Based on the message content and/or information in the data packet headers, the network element may determine that the message belongs to the particular message classification indicated in the user-specified input. For example, the network element may determine, based on a portion of the message, that the message is a purchase order. In another example, the network element may determine that the message pertains to information desired by an application from an RFID network or a sensor network.
In block 208, at least a portion of the message is processed via the performance, relative to at least the portion of the message, of the actions that are associated with the particular message classification. For example, in response to determining that the message belongs to the “purchase order” message classification, the network element may perform one or more specified actions that are associated with the “purchase order” message classification. The specified actions may include, for example, modifying the message's format (e.g., from XML to EDI) and sending the message toward a server application using a different application layer protocol (e.g., FTP) than the protocol that a client application used to send the message. Examples of other possible actions are described below.
According to one embodiment, an AON blade in a router or a switch performs at least some of the actions discussed above.
Router 250 receives packet flows such as packet flows 210A-B. More specifically, in one embodiment, packet flows 210A-B received by router 250 are received by supervisor blade 252. Supervisor blade 252 may comprise a forwarding engine and/or a route processor such as those commercially available from Cisco Systems, Inc. In an alternative embodiment, router 250 comprises one or more network I/O modules that may comprise a forwarding engine; in such an alternative embodiment, the operations described below as being performed by supervisor blade 252 are performed instead by a forwarding engine that is not situated within supervisor blade 252, so that packets may be forwarded to AONS blade 254 without ever going through supervisor blade 252.
In one embodiment, supervisor blade 252 classifies packet flows 210A-B based on one or more parameters contained in the packet headers of those packet flows. If the parameters contained in the packet header of a particular packet match specified parameters, then supervisor blade 252 sends the packets to a specified one of AONS blade 254 and/or other blades 256A-N. Alternatively, if the parameters contained in the packet header do not match any specified parameters, then supervisor blade 252 performs routing functions relative to the particular packet and forwards the particular packet on toward the particular packet's destination.
For example, supervisor blade 252 may determine that packet headers in packet flow 210B match specified parameters. Consequently, supervisor blade 252 may send packets in packet flow 210B to AONS blade 254. Supervisor blade 252 may receive packets back from AONS blade 254 and/or other blades 256A-N and send the packets on to the next hop in a network path that leads to those packets' destination. For another example, supervisor blade 252 may determine that packet headers in packet flow 210A do not match any specified parameters. Consequently, without sending any packets in packet flow 210A to AONS blade 254 or other blades 256A-N, supervisor blade 252 may send packets in packet flow 210A on to the next hop in a network path that leads to those packets' destination.
AONS blade 254 and other blades 256A-N receive packets from supervisor blade 252, perform operations relative to the packets, and return the packets to supervisor blade 252. Supervisor blade 252 may send packets to and receive packets from multiple blades before sending those packets out of router 250. For example, supervisor blade 252 may send a particular group of packets to other blade 256A. Other blade 256A may perform firewall functions relative to the packets and send the packets back to supervisor blade 252. Supervisor blade 252 may receive the packet from other blade 256A and send the packets to AONS blade 254. AONS blade 254 may perform one or more message payload-based operations relative to the packets and send the packets back to supervisor blade 252.
According to one embodiment, the following events occur at an AON router such as router 250. First, packets, containing messages from clients to servers, are received. Next, access control list-based filtering is performed on the packets and some of the packets are sent to an AON blade or module. Next, TCP termination is performed on the packets. Next, Secure Sockets Layer (SSL) termination is performed on the packets if necessary. Next, Universal Resource Locator (URL)-based filtering is performed on the packets. Next, message header-based and message content-based filtering is performed on the packets. Next, the messages contained in the packets are classified into AON message types. Next, a policy flow that corresponds to the AON message type is selected. Next, the selected policy flow is executed. Then the packets are either forwarded, redirected, dropped, copied, modified, or fanned-out as specified by the selected policy flow. As with other flows illustrated herein, the foregoing steps are not necessarily performed in the order indicated.
Referring first to
The user-specified input may indicate multiple sets of criteria that are to be associated, respectively, with multiple separate message classifications, and multiple sets of actions that are to be associated with the multiple message classifications. For example, the user-specified input may indicate a first set of criteria that is to be associated with a first message classification, a second set of criteria that is to be associated with a second message classification, a first set of actions that are to be associated with the first message classification, and a second set of actions that are to be associated with the second message classification.
In block 304, an association is established, at the network element, between the particular message classification and the one or more criteria. For example, AONS blade 254 may establish an association between a particular message classification and one or more criteria. For example, the criteria may indicate a particular string of text that a message needs to contain in order for the message to belong to the associated message classification. For another example, the criteria may indicate a particular path that needs to exist in the hierarchical structure of an XML-formatted message (or based in an XPath Boolean expression) in order for the message to belong to the associated message classification. For another example, the criteria may indicate one or more source IP addresses and/or destination IP addresses from or to which a message needs to be addressed in order for the message to belong to the associated message classification.
Multiple associations may be established between separate sets of criteria and separate message classifications. For example, AONS blade 254 may establish a first association between a first set of criteria and a first message classification, and a second association between a second set of criteria and a second message classification.
In block 306, an association is established, at the network element, between the particular message classification and the one or more actions. One or more actions that are associated with a particular message classification comprise a “policy” that is associated with that particular message classification. A policy may comprise a “flow” of one or more actions that are ordered according to a particular order specified in the user-specified input, and/or one or more other actions that are not ordered. For example, AONS blade 254 may establish an association between a particular message classification and one or more actions. Collectively, the operations of blocks 302-306 comprise “provisioning” the network element.
Multiple associations may be established between separate sets of actions and separate message classifications. For example, AONS blade 254 may establish a first association between a first set of actions and a first message classification, and a second association between a second set of actions and a second message classification.
In block 308, one or more data packets that are destined for a device other than the network element are received by the network element. The data packets may be, for example, data packets that contain IP and TCP headers. The IP addresses indicated in the IP headers of the data packets may differ from the network element's IP address; thus, the data packets may be destined for a device other than the network element. For example, supervisor blade 252 may intercept data packets that a client application originally sent. The data packets might be destined for a server application, for example.
In block 310, based on one or more information items indicated in the headers of the data packets, an application layer protocol that was used to transmit a message contained in the payload portions of the data packets (hereinafter “the message”) is determined. The information items may include, for example, a source IP address in an IP header, a destination IP address in an IP header, a TCP source port in a TCP header, and a TCP destination port in a TCP header. For example, a network element, and more specifically AONS blade 254, may store mapping information that maps FTP (an application layer protocol) to a first combination of IP addresses and/or TCP ports, and that maps HTTP (another application layer protocol) to a second combination of IP addresses and/or TCP ports. Based on this mapping information and the IP addresses and/or TCP ports indicated by the data packets, network element may determine which application layer protocol (FTP, HTTP, Simple Mail Transfer Protocol (SMTP), etc.) was used to transmit the message.
In block 312, a message termination technique that is associated with the application layer protocol used to transmit the message is determined. For example, AONS blade 254 may store mapping information that maps FTP to a first procedure, that maps HTTP to a second procedure, and that maps SMTP to a third procedure. The first procedure may employ a first message termination technique that can be used to extract, from the data packets, a message that was transmitted using FTP. The second procedure may employ a second message termination technique that can be used to extract, from the data packets, a message that was transmitted using HTTP. The third procedure may employ a third message termination technique that can be used to extract, from the data packets, a message that was transmitted using SMTP. Based on this mapping information and the application layer protocol used to transmit the message, a network element may determine which procedure should be called to extract the message from the data packets.
In block 314, the contents of the message are determined based on the termination technique that is associated with the application layer protocol that was used to transmit the message. For example, AONS blade 254 may provide the data packets as input to a procedure that is mapped to the application layer protocol determined in block 312. The procedure may use the appropriate message termination technique to extract the contents of the message from the data packets. The procedure may return the message as output to AONS blade 254. Thus, in one embodiment, the message extracted from the data packets is independent of the application layer protocol that was used to transmit the message.
In one embodiment, determining the contents of the message involves assembling the contents of the payload portions of two or more of the data packets. For example, a network element may determine the proper order of two or more TCP data packets (based on TCP sequence numbers, for example), extract the contents of the payload portions of the TCP data packets, and concatenate the contents according to the proper order to form at least a portion of the message. The message may be a multi-part (MIME) message, and each part may be handled separately as though it were a separate message; each part may be associated with a different message classification.
In block 316, a message classification that is associated with criteria that the message satisfies is determined. For example, a network element may store mapping information that maps different criteria to different message classifications. The mapping information indicates, among possibly many different associations, the association established in block 304. The network element may determine whether the contents of the message satisfy criteria associated with any of the known message classifications. In one embodiment, if the contents of the message satisfy the criteria associated with a particular message classification, then it is determined that the message belongs to the particular message classification.
Although, in one embodiment, the contents of the message are used to determine a message's classification, in alternative embodiments, information beyond that contained in the message may be used to determine the message's classification. For example, in one embodiment, a combination of the contents of the message and one or more IP addresses and/or TCP ports indicated in the data packets that contain the message is used to determine the message's classification. For another example, in one embodiment, one or more IP addresses and/or TCP ports indicated in the data packets that contain the message are used to determine the message's classification, regardless of the contents of the message.
In block 318, one or more actions that are associated with the message classification determined in block 316 are performed. If two or more of the actions are associated with a specified order of performance, as indicated by the user-specified input, then those actions are performed in the specified order. If the output of any of the actions is supposed to be provided as input to any of the actions, as indicated by the user-specified input, then the output of the specified action is provided as input to the other specified action.
A variety of different actions may be performed relative to the message. For example, an action might indicate that the message is to be dropped. In this case, the message is prevented from being forwarded out of the network element toward that message's destination. For another example, an action might indicate that a message is to be compressed using a specified compression technique before being forwarded out of the network element.
For another example, an action might indicate that the content of the message is to be altered in a specified manner. For example, an action might indicate that specified text is to be inserted into a specified location in the message. A path in an XML hierarchical structure of the message might specify such a location, for example, or a specified string of text occurring in the message might specify such a location. For another example, an action might indicate that specified text is to be deleted from the message. For another example, an action might indicate that specified text is to be substituted for other specified text in the message. Text inserted into the message might be obtained dynamically (“on the fly”) from a database that is external to the network element.
For another example, an action might indicate that the message format of a message is to be altered in a specified manner. For example, an action might indicate that a message's format is to be changed from XML to some other format such as EDI. For another example, an action might indicate that a message's format is to be changed from some format other than XML into XML. The message format may be altered without altering the core content of the message, which is independent of the message format.
For another example, an action might indicate that the message is to be forwarded using a specified application layer protocol other than the application layer protocol that the message's origin used to transmit the message. For example, a client application might have used a first application layer protocol, such as HTTP, to transmit the message. Thus, when intercepted by supervisor blade 252, the message might have contained an HTTP header. However, in accordance with a specified action, before the network element forwards the message towards the message's destination, the network element, and more specifically AONS blade 254, may modify the message so that the message will be carried using an application layer protocol other than HTTP (such as FTP, SMTP, etc.).
For another example, an action might indicate that the message's destination is to be altered so that the message will be forwarded towards a device that is different from the device that the message's source originally specified. For example, in accordance with a specified action, a network element, and more specifically AONS blade 254, might encapsulate the message in one or more new IP data packets that indicate a new destination IP address that differs from the destination IP address that originally intercepted IP data packets indicated. The network element may then forward the new IP data packets toward the new destination. In this manner, message content-based routing may be achieved.
For another example, an action might indicate that a specified event is to be written into a specified log that might be external to the network element. For example, in accordance with a specified action, AONS blade 254 might write at least a portion of the message, along with the IP address from which the message was received, to a log file.
For another example, an action might indicate that the message is to be encrypted using a specified key before being forwarded to a destination. For example, in accordance with a specified action, AONS blade 254 might encrypt at least a portion of the message using a specified key and then forward data packets that contain the encrypted message towards the message's destination. Encryption also places a constraint on the subsequent action (e.g., a constraint that the encrypted portion cannot be modified).
For another example, an action might indicate that a response cached at the network element is to be returned to the device from which the message originated, if such a response is cached at the network element. For example, a network element may determine whether a response to the message is cached at the network element; such a response might have be cached at the network element at the time a previous response to the same message passed through the network element. If the network element determines that such a response is cached, then the network element may return the response to the message's origin. For read-only operations without any persistent state change, the network element does not need to forward the message to the message's destination and the message's destination does not need to issue another response to the message.
For another example, an action might indicate that some authentication information in the message, such as a user identifier and associated password, is to be used to authenticate the message. For example, AONS blade 254 might authenticate a message by comparing authentication information in the message with trusted information stored by router 250.
If the message was modified in some way (e.g., content, format, or protocol modification) during the performance of the actions, and if the modified message is supposed to be forwarded out of the network element, then the network element encapsulates the modified message into new data packets and sends the new data packets towards the modified message's destination—which also might have been modified.
A message might not belong to any known message classification. In this case, according to one embodiment, the network element does not perform any user-specified actions relative to the message. Instead, the network element simply forwards the data packets to the next hop along the path to the data packets' indicated destination.
The method illustrated in flow diagram 300 may be performed relative to multiple sets of data packets, each set carrying a separate message. For example, a network element may perform the method illustrated relative to a first set of data packets that carry a first message, and then may perform the method relative to a second set of data packets that carry a second message. The first message might satisfy a first set of criteria associated with a first message classification, and the second message might satisfy a second set of criteria associated with a second message classification. Thus, a network element might perform a first set of actions relative to the first message and a second set of actions relative to the second message.
As a result of the method illustrated in flow diagram 300, applications can communicate with each other as though no network elements acted as intermediaries as though each other application communicated using the same message format and application layer protocol.
In other embodiments, any one of actions 402-414 may be performed individually or in combination with any others of actions 402-414.
Typically, inspecting, parsing, and modifying an application layer message is a processing resource-intensive operation that cannot be performed as quickly as routing operations that are based only on information in TCP and IP packet headers. Referring again to
Therefore, in one embodiment, supervisor blade 252 sends only some selected packets to AONS blade 254. The technique by which supervisor blade 252 selects these packets may be referred to as “filtering.” As a result of filtering, AONS blade 254 does not receive as many packets with which AONS blade 254 is likely to do nothing.
In block 554, the packet is sent to an AONS blade. For example, supervisor blade 252 may direct the packet to AONS blade 254. AONS blade 254 may then perform more resource-intensive message level processing on an application layer message that is at least partially contained in the packet.
Alternatively, in block 556, the packet is forwarded on towards the packet's destination. For example, supervisor blade 252 may route the packet toward the packet's next hop without sending the packet to AONS blade 254. Message level processing is not performed on the packet.
Pallet 610 has been delivered to dock door 612 of retailer distribution center 615. Pallet 610 includes a number of products, each bearing an RFID tag 615. RFID tags 615 have been read by RFID readers 620. Accordingly, reader events 625 have been transmitted via switches 630 to AON-enabled network device 635. Some exemplary embodiments of device 635 will be discussed in more detail below.
Device 635 may perform various important functions as an intermediary between the RFID readers and various applications. For example, device 635 may be configured to provide logical to physical RFID reader location resolution for the applications. In one such example, all of the RFID readers 620 that are positioned near dock door 612 may be virtualized into a single virtual RFID reader. This provides a convenient method for applications to request all reads from dock door 612. Preferred embodiments of device 635 also provide application level event (“ALE”) filtering. Such virtualization and filtering may be provided by an ALE adapter provided by a vendor such as ConnecTerra, Inc. Alternatively, such virtualization and filtering may be provided according to novel methods of the invention.
Device 635 may also perform message translation/transformation, security services, application protocol switching and/or other methods according to the present invention. Examples of some such methods are described below.
Accordingly, device 635 transmits application events for use by applications at retailer headquarters 650 and elsewhere. For example, such application events may be used as input for applications running on warehouse management server (“WMS”) 660 and/or host 662. Host 662 may be, for example, a monitoring console suitable for monitoring events that take place in retailer distribution center 615. Application events from device 635 may also be used as input for applications running on EPC information services (“EPCIS”) server 670 and/or host 672.
Moreover, module 705 includes ALE adapter 715 for providing various types of ALE functionality. In this example, ALE adapter 715 is configured to perform tasks that include, but are not limited to, filtering of raw RFID reads and RFID reader virtualization. For example, referring again to
Module 725 includes modules, such as conditional routing service module 730 and security service module 735, to provide an interface between devices running business applications 740, monitoring console 750, etc. In this example, security service module 735 can identify and authenticate the sender of a communication, e.g., from one of the business applications 740. In some implementations, security service module 735 can provide encryption and decryption services.
Conditional routing service module 730 can be configured, for example, to selectively route information to business applications 740 and to monitoring console 750. For example, conditional routing service module 730 may send an alert to monitoring console 750 if certain predetermined conditions are (or are not) occurring. One such condition may be that a valuable item (e.g. a product or a piece of equipment) should not be leaving facility 700. Alternatively, the condition may be that the item should not be leaving in a particular manner, e.g., that the item should not be moved through a particular exit, through an open window, etc. Conditional routing service module 730 can also route RFID event cycle reports from RFID ALE adapter 715 to business applications 740, e.g., based on content. The content may pertain to a location, a product type, a manufacturer type and/or to other criteria that may be indicated, for example, in a prior message from one of business applications 740. For example, the prior message may have included a request for all RFID reads of items on a particular shelf. Alternatively, or additionally, the prior message may have requested of all products in a particular area that were made by a particular manufacturer and/or are a particular product type, as indicated on the RFID tag of the product. For example, the message may have requested information only regarding dishwashing detergent made by Proctor & Gamble.
In this example, module 725 provides other functions such as the parsing and translating of messages from the devices running business applications 740. In some preferred implementations of the invention, module 725 is also configured to communicate with business applications 740 according to a first application protocol and to communicate with ALE adapter 715 according to a second protocol. For example, messages from business applications 740 may be provided according to the first application protocol and responsive communications with ALE adapter 715 may be formed according to a second application protocol. The RFID devices may provide raw reads to ALE adapter 715 according to a third protocol. Although some such methods may be performed generally as described above (e.g., with reference to AONS blade 254), more specific examples are provided below.
In this example, no encryption or decryption is used. However, security service module 735 authenticates request 805 and identifies the sender of request 805.
Here, module 725 also includes HTTP Adapter 810, which is configured to make an HTTP call to the ALE adapter of module 705 according to request 805. Module 705 makes read requests to the appropriate RFID readers in the vicinity of the shelves of the store where containers of Quaker State™ WD-40 motor oil are stored. The ALE adapter of module 705 aggregates and filters the responsive raw RFID reads received from the RFID readers. The ALE adapter then sends an ALE response, which is once again according to the HTTP protocol, to module 725.
Conditional routing service module 730 then determines how to route the ALE response, according to information contained in the response. For example, if conditional routing service module 730 determines that a predetermined pattern or condition exists (e.g., that there are more than a certain number of containers of Quaker State™ WD-40 motor oil missing but not paid for), conditional routing service module 730 may send an alert via an IP phone. An HTTP bladelet may be used for this purpose. Outbound ALE response 850 will be sent to the requesting device according to the protocol of the request, which is the SOAP protocol in this instance.
These steps (as with other flows depicted herein) are not necessarily performed in the sequence indicated in
Responsive RFID tag reads are received, aggregated and filtered by ALE adapter 915. In this example, message execution controller 920 finds a pattern that indicates a reporting condition. Accordingly, an alert is sent to an IP phone using an HTTP bladelet. In this example, device 635 also encrypts a reporting message and sends the reporting message to an application. Here, the application is running on a device in an enterprise network at another location.
The interfaces 1068 are typically provided as interface cards (sometimes referred to as “line cards”). Generally, interfaces 1068 control the sending and receiving of data packets over the network and sometimes support other peripherals used with the network device 1060. Among the interfaces that may be provided are Fibre Channel (“FC”) interfaces, Ethernet interfaces, frame relay interfaces, cable interfaces, DSL interfaces, token ring interfaces, and the like. In addition, various very high-speed interfaces may be provided, such as fast Ethernet interfaces, Gigabit Ethernet interfaces, ATM interfaces, HSSI interfaces, POS interfaces, FDDI interfaces, ASI interfaces, DHEI interfaces and the like.
When acting under the control of appropriate software or firmware, in some implementations of the invention CPU 1062 may be responsible for implementing specific functions associated with the functions of a desired network device. According to some embodiments, CPU 1062 accomplishes all these functions under the control of software including an operating system (e.g. Linux, VxWorks, etc.), and any appropriate applications software.
CPU 1062 may include one or more processors 1063 such as a processor from the Motorola family of microprocessors or the MIPS family of microprocessors. In an alternative embodiment, processor 1063 is specially designed hardware for controlling the operations of network device 1060. In a specific embodiment, a memory 1061 (such as non-volatile RAM and/or ROM) also forms part of CPU 1062. However, there are many different ways in which memory could be coupled to the system. Memory block 1061 may be used for a variety of purposes such as, for example, caching and/or storing data, programming instructions, etc.
Regardless of network device's configuration, it may employ one or more memories or memory modules (such as, for example, memory block 1065) configured to store data, program instructions for the general-purpose network operations and/or other information relating to the functionality of the techniques described herein. The program instructions may control the operation of an operating system and/or one or more applications, for example.
Because such information and program instructions may be employed to implement the systems/methods described herein, the present invention relates to machine-readable media that include program instructions, state information, etc. for performing various operations described herein. Examples of machine-readable media include, but are not limited to, magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media; and hardware devices that are specially configured to store and perform program instructions, such as read-only memory devices (ROM) and random access memory (RAM). The invention may also be embodied in a carrier wave traveling over an appropriate medium such as airwaves, optical lines, electric lines, etc. Examples of program instructions include both machine code, such as produced by a compiler, and files containing higher level code that may be executed by the computer using an interpreter.
Although the system shown in
Other Embodiments
Although illustrative embodiments and applications of this invention are shown and described herein, many variations and modifications are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those of ordinary skill in the art after perusal of this application.
Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.
This application is a continuation of U.S. patent application Ser. No. 11/195,160, entitled, “Network Based Device for Providing RFID Middleware Functionality” and filed on Aug. 1, 2005 now U.S. Pat. No. 7,345,585, which is hereby incorporated by reference for all purposes. This application is related to U.S. patent application Ser. No. 11/005,978, entitled “Performing Message Payload Processing Functions in a Network Element on Behalf of an Application” and filed on Dec. 6, 2004, in U.S. patent application Ser. No. 11/089,794, entitled “Method and Apparatus Providing High-Speed Processing of Structured Application Messages in a Network Device” and filed on Mar. 24, 2005 and in U.S. patent application Ser. No. 11/090,920, entitled “Method and Apparatus for Generating a Network Topology Representation Based on Inspection of Application Messages at a Network Device” and filed on Mar. 24, 2005 (collectively, the “AON Applications”), which are hereby incorporated by reference for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
4688026 | Scribner et al. | Aug 1987 | A |
5339073 | Dodd et al. | Aug 1994 | A |
5574722 | Slykhouse et al. | Nov 1996 | A |
5646616 | Komatsu | Jul 1997 | A |
5790542 | Kim et al. | Aug 1998 | A |
5796743 | Bunting et al. | Aug 1998 | A |
5819042 | Hansen | Oct 1998 | A |
5832503 | Malik et al. | Nov 1998 | A |
5850187 | Carrender et al. | Dec 1998 | A |
5887176 | Griffith et al. | Mar 1999 | A |
5949335 | Maynard | Sep 1999 | A |
6012090 | Chung et al. | Jan 2000 | A |
6021135 | Ishihara et al. | Feb 2000 | A |
6070187 | Subramaniam et al. | May 2000 | A |
6073178 | Wong | Jun 2000 | A |
6111517 | Atick et al. | Aug 2000 | A |
6115079 | McRae | Sep 2000 | A |
6115378 | Hendel et al. | Sep 2000 | A |
6125391 | Meltzer et al. | Sep 2000 | A |
6145079 | Mitty et al. | Nov 2000 | A |
6226675 | Meltzer et al. | May 2001 | B1 |
6272113 | McIntyre | Aug 2001 | B1 |
6300903 | Richards et al. | Oct 2001 | B1 |
6321264 | Fletcher et al. | Nov 2001 | B1 |
6337856 | Schanhals et al. | Jan 2002 | B1 |
6341130 | Lakshman et al. | Jan 2002 | B1 |
6356951 | Gentry | Mar 2002 | B1 |
6363477 | Fletcher et al. | Mar 2002 | B1 |
6381465 | Chern et al. | Apr 2002 | B1 |
6510434 | Anderson et al. | Jan 2003 | B1 |
6510464 | Grantges et al. | Jan 2003 | B1 |
6539281 | Wan et al. | Mar 2003 | B2 |
6553489 | Osler et al. | Apr 2003 | B1 |
6567408 | Li et al. | May 2003 | B1 |
6587431 | Almulhem et al. | Jul 2003 | B1 |
6587874 | Golla et al. | Jul 2003 | B1 |
6597918 | Kim | Jul 2003 | B1 |
6611526 | Chinnaswamy et al. | Aug 2003 | B1 |
6665713 | Hada et al. | Dec 2003 | B1 |
6678827 | Rothermel et al. | Jan 2004 | B1 |
6683881 | Mijares et al. | Jan 2004 | B1 |
6714985 | Malagrino et al. | Mar 2004 | B1 |
6718326 | Uga et al. | Apr 2004 | B2 |
6721798 | Kubista | Apr 2004 | B1 |
6745041 | Allison et al. | Jun 2004 | B2 |
6772204 | Hansen et al. | Aug 2004 | B1 |
6772211 | Lu et al. | Aug 2004 | B2 |
6772223 | Corl, Jr. et al. | Aug 2004 | B1 |
6785732 | Bates et al. | Aug 2004 | B1 |
6792002 | Tezuka et al. | Sep 2004 | B2 |
6810040 | Lee et al. | Oct 2004 | B1 |
6816455 | Goldberg et al. | Nov 2004 | B2 |
6862270 | Ho | Mar 2005 | B1 |
6868426 | Mankoff | Mar 2005 | B1 |
6931574 | Coupal et al. | Aug 2005 | B1 |
6944678 | Lu et al. | Sep 2005 | B2 |
6950822 | Idicula et al. | Sep 2005 | B1 |
6963282 | Yeates et al. | Nov 2005 | B1 |
6965599 | Sakurai et al. | Nov 2005 | B1 |
6996842 | Strahm et al. | Feb 2006 | B2 |
7002907 | Chen et al. | Feb 2006 | B1 |
7032031 | Jungck et al. | Apr 2006 | B2 |
7054924 | Harvey et al. | May 2006 | B1 |
7057511 | Shanks et al. | Jun 2006 | B2 |
7058973 | Sultan | Jun 2006 | B1 |
7064660 | Perkins et al. | Jun 2006 | B2 |
7075412 | Reynolds et al. | Jul 2006 | B1 |
7081819 | Martinez de Velasco Cortina et al. | Jul 2006 | B2 |
7089586 | Kilgore | Aug 2006 | B2 |
7103886 | Haller et al. | Sep 2006 | B2 |
7111076 | Abjanic et al. | Sep 2006 | B2 |
7111163 | Haney | Sep 2006 | B1 |
7114008 | Jungck et al. | Sep 2006 | B2 |
7117364 | Hepper et al. | Oct 2006 | B1 |
7120139 | Kung et al. | Oct 2006 | B1 |
7126907 | Carpini et al. | Oct 2006 | B2 |
7129837 | Shannon et al. | Oct 2006 | B2 |
7134075 | Hind et al. | Nov 2006 | B2 |
7149222 | Wiryaman et al. | Dec 2006 | B2 |
7150017 | Vogl et al. | Dec 2006 | B1 |
7185365 | Tang et al. | Feb 2007 | B2 |
7205897 | Lin | Apr 2007 | B2 |
7215637 | Ferguson et al. | May 2007 | B1 |
7215641 | Bechtolsheim et al. | May 2007 | B1 |
7239634 | Chakravorty | Jul 2007 | B1 |
7245620 | Shankar | Jul 2007 | B2 |
7249170 | Tindal et al. | Jul 2007 | B2 |
7296268 | Darling et al. | Nov 2007 | B2 |
7299361 | Kim et al. | Nov 2007 | B1 |
7308715 | Gupta et al. | Dec 2007 | B2 |
7321556 | Parekh et al. | Jan 2008 | B1 |
7330908 | Jungck | Feb 2008 | B2 |
7345585 | Singhal et al. | Mar 2008 | B2 |
7362763 | Wybenga et al. | Apr 2008 | B2 |
7363353 | Ganesan et al. | Apr 2008 | B2 |
7376755 | Pandya | May 2008 | B2 |
7388488 | Lupoli et al. | Jun 2008 | B2 |
7411915 | Spain et al. | Aug 2008 | B1 |
7415512 | Moon | Aug 2008 | B1 |
7421695 | Murray et al. | Sep 2008 | B2 |
7437451 | Tang et al. | Oct 2008 | B2 |
7545941 | Sovio et al. | Jun 2009 | B2 |
7590715 | Raanan | Sep 2009 | B1 |
7685606 | Chang | Mar 2010 | B2 |
7844687 | Gelvin et al. | Nov 2010 | B1 |
7853983 | Abrutyn et al. | Dec 2010 | B2 |
7949355 | Brown et al. | May 2011 | B2 |
7962655 | Birger et al. | Jun 2011 | B2 |
8060623 | Vogel et al. | Nov 2011 | B2 |
8113418 | Howarth et al. | Feb 2012 | B2 |
8140658 | Gelvin et al. | Mar 2012 | B1 |
20010012292 | Merrill et al. | Aug 2001 | A1 |
20010016800 | Koh et al. | Aug 2001 | A1 |
20010021950 | Hawley et al. | Sep 2001 | A1 |
20010028308 | De La Huerga | Oct 2001 | A1 |
20010046862 | Coppinger et al. | Nov 2001 | A1 |
20010047422 | McTernan et al. | Nov 2001 | A1 |
20020015485 | Bhusri | Feb 2002 | A1 |
20020016739 | Ogasawara | Feb 2002 | A1 |
20020069279 | Romero et al. | Jun 2002 | A1 |
20020075805 | Gupta et al. | Jun 2002 | A1 |
20020075843 | Lau | Jun 2002 | A1 |
20020091636 | Carroll Bullard | Jul 2002 | A1 |
20020105911 | Pruthi et al. | Aug 2002 | A1 |
20020107951 | Teague et al. | Aug 2002 | A1 |
20020114274 | Sturges et al. | Aug 2002 | A1 |
20020126672 | Chow et al. | Sep 2002 | A1 |
20020136403 | Henson et al. | Sep 2002 | A1 |
20020143981 | DeLima et al. | Oct 2002 | A1 |
20020150102 | Janko et al. | Oct 2002 | A1 |
20020161907 | Moon | Oct 2002 | A1 |
20020163933 | Benveniste | Nov 2002 | A1 |
20020163934 | Moore et al. | Nov 2002 | A1 |
20020165957 | Devoe et al. | Nov 2002 | A1 |
20020194342 | Lu et al. | Dec 2002 | A1 |
20020194345 | Lu et al. | Dec 2002 | A1 |
20020194350 | Lu et al. | Dec 2002 | A1 |
20030005117 | Kang et al. | Jan 2003 | A1 |
20030009571 | Bavadekar | Jan 2003 | A1 |
20030018726 | Low et al. | Jan 2003 | A1 |
20030026268 | Navas | Feb 2003 | A1 |
20030028599 | Kolsky | Feb 2003 | A1 |
20030028616 | Aoki et al. | Feb 2003 | A1 |
20030036897 | Flores et al. | Feb 2003 | A1 |
20030046429 | Sonksen | Mar 2003 | A1 |
20030048195 | Trossen | Mar 2003 | A1 |
20030055818 | Faybihenko et al. | Mar 2003 | A1 |
20030069975 | Abjanic et al. | Apr 2003 | A1 |
20030078031 | Masuda | Apr 2003 | A1 |
20030093530 | Syed | May 2003 | A1 |
20030095569 | Wengrovitz et al. | May 2003 | A1 |
20030104848 | Brideglall | Jun 2003 | A1 |
20030105903 | Garnett et al. | Jun 2003 | A1 |
20030112802 | Ono et al. | Jun 2003 | A1 |
20030112809 | Bharali et al. | Jun 2003 | A1 |
20030115448 | Bouchard | Jun 2003 | A1 |
20030120384 | Haitin et al. | Jun 2003 | A1 |
20030135563 | Bodin et al. | Jul 2003 | A1 |
20030140140 | Lahtinen | Jul 2003 | A1 |
20030163539 | Piccinelli | Aug 2003 | A1 |
20030163603 | Fry et al. | Aug 2003 | A1 |
20030174714 | Manik et al. | Sep 2003 | A1 |
20030177183 | Cabrera et al. | Sep 2003 | A1 |
20030188192 | Tang et al. | Oct 2003 | A1 |
20030189935 | Warden et al. | Oct 2003 | A1 |
20030202535 | Foster et al. | Oct 2003 | A1 |
20030202536 | Foster et al. | Oct 2003 | A1 |
20030204626 | Wheeler | Oct 2003 | A1 |
20030204719 | Ben-Itzhak | Oct 2003 | A1 |
20030217171 | Von Stuermer et al. | Nov 2003 | A1 |
20030217176 | Beunings | Nov 2003 | A1 |
20030220835 | Barnes, Jr. | Nov 2003 | A1 |
20030236883 | Takeshima et al. | Dec 2003 | A1 |
20040001444 | Sadot et al. | Jan 2004 | A1 |
20040006613 | Lemieus et al. | Jan 2004 | A1 |
20040021569 | Lepkofker et al. | Feb 2004 | A1 |
20040022250 | Chen et al. | Feb 2004 | A1 |
20040022255 | Chen et al. | Feb 2004 | A1 |
20040024658 | Carbone et al. | Feb 2004 | A1 |
20040024868 | Drummond, II | Feb 2004 | A1 |
20040032881 | Arai | Feb 2004 | A1 |
20040039940 | Cox et al. | Feb 2004 | A1 |
20040054886 | Dickinson et al. | Mar 2004 | A1 |
20040061646 | Andrews et al. | Apr 2004 | A1 |
20040069852 | Seppinen et al. | Apr 2004 | A1 |
20040088460 | Poisner | May 2004 | A1 |
20040088585 | Kaler et al. | May 2004 | A1 |
20040100383 | Chen et al. | May 2004 | A1 |
20040108795 | Meek et al. | Jun 2004 | A1 |
20040121789 | Lindsey | Jun 2004 | A1 |
20040128389 | Kopchik | Jul 2004 | A1 |
20040133775 | Callas et al. | Jul 2004 | A1 |
20040136371 | Muralidhar et al. | Jul 2004 | A1 |
20040143629 | Bodin et al. | Jul 2004 | A1 |
20040148177 | Weng et al. | Jul 2004 | A1 |
20040162871 | Pabla et al. | Aug 2004 | A1 |
20040167986 | Gilfix et al. | Aug 2004 | A1 |
20040170182 | Higashida et al. | Sep 2004 | A1 |
20040174261 | Volpi et al. | Sep 2004 | A1 |
20040205336 | Kessler et al. | Oct 2004 | A1 |
20040205770 | Zhang et al. | Oct 2004 | A1 |
20040221319 | Zenoni | Nov 2004 | A1 |
20040235454 | Rowitch et al. | Nov 2004 | A1 |
20040257202 | Coughlin et al. | Dec 2004 | A1 |
20040264441 | Jalkanen et al. | Dec 2004 | A1 |
20040267920 | Hydrie et al. | Dec 2004 | A1 |
20040267933 | Przybylski et al. | Dec 2004 | A1 |
20040268357 | Joy et al. | Dec 2004 | A1 |
20050005031 | Gordy et al. | Jan 2005 | A1 |
20050015619 | Lee | Jan 2005 | A1 |
20050021626 | Prajapat et al. | Jan 2005 | A1 |
20050021836 | Reed et al. | Jan 2005 | A1 |
20050025091 | Patel et al. | Feb 2005 | A1 |
20050027778 | Dimitrelis et al. | Feb 2005 | A1 |
20050041670 | Lin et al. | Feb 2005 | A1 |
20050050362 | Peles | Mar 2005 | A1 |
20050054290 | Logan et al. | Mar 2005 | A1 |
20050054346 | Windham et al. | Mar 2005 | A1 |
20050063377 | Bryant et al. | Mar 2005 | A1 |
20050071508 | Brown et al. | Mar 2005 | A1 |
20050076332 | Jawaharlal et al. | Apr 2005 | A1 |
20050080914 | Lerner et al. | Apr 2005 | A1 |
20050093679 | Zai et al. | May 2005 | A1 |
20050094611 | Cheong et al. | May 2005 | A1 |
20050099268 | Juels et al. | May 2005 | A1 |
20050099270 | Diorio et al. | May 2005 | A1 |
20050102393 | Murray et al. | May 2005 | A1 |
20050114394 | Kaipa et al. | May 2005 | A1 |
20050117576 | McDysan et al. | Jun 2005 | A1 |
20050144437 | Ransom et al. | Jun 2005 | A1 |
20050154653 | Jongebloed | Jul 2005 | A1 |
20050165828 | Lango et al. | Jul 2005 | A1 |
20050169171 | Cheng et al. | Aug 2005 | A1 |
20050188103 | Chen | Aug 2005 | A1 |
20050199716 | Shafer et al. | Sep 2005 | A1 |
20050209947 | Shafer | Sep 2005 | A1 |
20050213591 | Nakazawa et al. | Sep 2005 | A1 |
20050216727 | Chattopadhyay et al. | Sep 2005 | A1 |
20050228893 | Devarapalli et al. | Oct 2005 | A1 |
20050229243 | Svendsen et al. | Oct 2005 | A1 |
20050252957 | Howarth et al. | Nov 2005 | A1 |
20050252970 | Howarth et al. | Nov 2005 | A1 |
20050252971 | Howarth et al. | Nov 2005 | A1 |
20050253717 | Howarth et al. | Nov 2005 | A1 |
20050253718 | Droms et al. | Nov 2005 | A1 |
20050253722 | Droms et al. | Nov 2005 | A1 |
20050264420 | Vogel et al. | Dec 2005 | A1 |
20050286461 | Zhang et al. | Dec 2005 | A1 |
20060005035 | Coughlin | Jan 2006 | A1 |
20060010086 | Klein | Jan 2006 | A1 |
20060021010 | Atkins et al. | Jan 2006 | A1 |
20060031374 | Lu et al. | Feb 2006 | A1 |
20060033606 | Howarth et al. | Feb 2006 | A1 |
20060044111 | Kollar et al. | Mar 2006 | A1 |
20060047464 | Kumar et al. | Mar 2006 | A1 |
20060053234 | Kumar et al. | Mar 2006 | A1 |
20060068711 | Chiu et al. | Mar 2006 | A1 |
20060080467 | Gould et al. | Apr 2006 | A1 |
20060091999 | Howarth | May 2006 | A1 |
20060098662 | Gupta et al. | May 2006 | A1 |
20060106941 | Singhal et al. | May 2006 | A1 |
20060123226 | Kumar et al. | Jun 2006 | A1 |
20060123425 | Ramarao et al. | Jun 2006 | A1 |
20060123467 | Kumar et al. | Jun 2006 | A1 |
20060123477 | Raghavan et al. | Jun 2006 | A1 |
20060123479 | Kumar et al. | Jun 2006 | A1 |
20060129650 | Ho et al. | Jun 2006 | A1 |
20060129689 | Ho et al. | Jun 2006 | A1 |
20060132304 | Cabell | Jun 2006 | A1 |
20060143318 | Prajapat et al. | Jun 2006 | A1 |
20060146879 | Anthias et al. | Jul 2006 | A1 |
20060155862 | Kathi et al. | Jul 2006 | A1 |
20060155969 | Yoda et al. | Jul 2006 | A1 |
20060167975 | Chan et al. | Jul 2006 | A1 |
20060168334 | Potti et al. | Jul 2006 | A1 |
20060208885 | Lin | Sep 2006 | A1 |
20060218374 | Ebert | Sep 2006 | A1 |
20060220838 | Wakim et al. | Oct 2006 | A1 |
20060236062 | Boss et al. | Oct 2006 | A1 |
20060248225 | Batz et al. | Nov 2006 | A1 |
20060249010 | John et al. | Nov 2006 | A1 |
20060253590 | Nagy et al. | Nov 2006 | A1 |
20060256768 | Chan | Nov 2006 | A1 |
20060262721 | Radunovic et al. | Nov 2006 | A1 |
20060266832 | Howarth et al. | Nov 2006 | A1 |
20060279412 | Holland et al. | Dec 2006 | A1 |
20060280181 | Brailas et al. | Dec 2006 | A1 |
20070013518 | Howarth | Jan 2007 | A1 |
20070027966 | Singhal et al. | Feb 2007 | A1 |
20070055864 | Tock et al. | Mar 2007 | A1 |
20070058634 | Gupta et al. | Mar 2007 | A1 |
20070080784 | Kim et al. | Apr 2007 | A1 |
20070112574 | Greene | May 2007 | A1 |
20070258048 | Pitchers | Nov 2007 | A1 |
20070283001 | Spiess et al. | Dec 2007 | A1 |
20080025230 | Patel et al. | Jan 2008 | A1 |
20080052757 | Gulati et al. | Feb 2008 | A1 |
20080136599 | Sugano et al. | Jun 2008 | A1 |
20080186136 | Raphaeli et al. | Aug 2008 | A1 |
20080295155 | Czyszczewski et al. | Nov 2008 | A1 |
20080301298 | Bernardi et al. | Dec 2008 | A1 |
20090006840 | Birger et al. | Jan 2009 | A1 |
20090215385 | Waters et al. | Aug 2009 | A1 |
20100094945 | Chan et al. | Apr 2010 | A1 |
20110004781 | Howarth | Jan 2011 | A1 |
20120259674 | Cantwell et al. | Oct 2012 | A1 |
Number | Date | Country |
---|---|---|
01217804 | Jun 2002 | EP |
WO98-26530 | Jun 1998 | WO |
WO99-07116 | Feb 1999 | WO |
WO02-27507 | Apr 2002 | WO |
WO03-021465 | Mar 2003 | WO |
WO 03021465 | Mar 2003 | WO |
WO2004-012424 | Feb 2004 | WO |
WO2006-073804 | Dec 2005 | WO |
WO2006-055406 | May 2006 | WO |
WO2006-057852 | Jun 2006 | WO |
WO2006-062814 | Jun 2006 | WO |
WO2006-063002 | Jun 2006 | WO |
WO2006-073740 | Jul 2006 | WO |
WO2007-011591 | Jul 2006 | WO |
WO2007-002334 | Jan 2007 | WO |
Entry |
---|
Crocker et al., “MIME Object Security Services”, 1995. |
Gildea et al., “Convergence Technologies for Sensor Systems in the Next Generation Networks (NGN)”, 2007. |
ODonnell et al., “On Achieving Software Diversity for Improved Network Security using Distributed Coloring Algorithms”, 2004. |
Grand, “MIME Overview”, 1993. |
Salem et al, “An Interoperability Framework for Sensor and UMTS Networks”, Mar. 2007. |
Gildea et al., “Embedded Systems in a Mobile Distributed IP Network”, ITB Journal, Dec. 2003, pp. 92-99. |
Sommer, “BRO: An Open Source Network Intrusion Detection System”, 2003. |
Radunovic, EP 05009063, “Receiving Data in a Sensor Network”, Apr. 2005. |
Jena et al., “Modeling and Evaluation of Internet Applications”, 2002. |
De et al., “An Ubiquitous Architectural Framework and Protocol for Object Tracking using RFID tags”, 2004. |
Lee et al., “System Architecture for Context-Aware Home Application”, 2004. |
Zimmermann, “OSI Reference Model—The ISO Model of Architecture for Open Systems Interconnection”, 1980. |
Conte et al., “A Black Box Framework for an Application Protocol Stack”, 2000. |
Lee et al., “Principle and Technique for Encapsulation of User Control and Data Information in Separate Frames”, 1996. |
Finkenzeller, “RFID Handbook Second Edition”, 2003. |
Finkenzeller, “RFID Handbook: Fundamentals and Applications in Contactless Smart Cards and Identification”, Chapter 3, 2003. |
International Searching Authority, Notification of Tranmittal of the International Search Report and the Written Opinion on the International Searching Authority, or the Declaration, International application No. PCT/US05/46149, dated Jul. 20, 2007, 9 pages. |
Claims, International application No. PCT/US05/46149, 10 pages. |
Supplemental Notice of Allowance and Notice of Allowability, mailed Oct. 22, 2007 from U.S. Appl. No. 11/195,160. |
Office Action mailed May 12, 2008 from U.S. Appl. No. 11/104,140. |
U.S. Office Action mailed Jun. 26, 2007 from U.S. Appl. No. 11/195,160. |
Notice of Allowance and Notice of Allowability, mailed Sep. 19, 2007 from U.S. Appl. No. 11/195,160. |
Notice of Allowance and Notice of Allowability, mailed Sep. 10, 2007 from U.S. Appl. No. 10/866,506. |
Notice of Allowance and Notice of Allowability, mailed Sep. 28, 2007 from U.S. Appl. No. 10/866,507. |
Notice of Allowance and Notice of Allowability, mailed Sep. 10, 2007 from U.S. Appl. No. 10/866,285. |
Notice of Allowance and Notice of Allowability, mailed Oct. 11, 2007 from U.S. Appl. No. 11/010,089. |
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” PCT/US05/43599, dated Feb. 28, 2007, 8 pages. |
Current Claims, PCT/US05/43599, 8 pages. |
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” PCT/US05/41254, dated Mar. 28, 2007, 7 pages. |
Current Claims, PCT/US05/41254, 12 pages. |
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” PCT/US05/44171, dated Nov. 30, 2006, 7 pages. |
Current Claims, PCT/US05/44171, 12 pages. |
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” PCT/US2006/024375, dated Oct. 17, 2006, 10 pages. |
Current Claims, PCT/US2006/024375, 5 pages. |
OA U.S. Appl. No. 11/007,421, filed Dec. 7, 2004 Mailed on Oct. 16, 2006. |
OA U.S. Appl. No. 10/991,792, filed on Nov. 17, 2004 Mailed on Oct. 20, 2006. |
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” PCT/US05/45625, dated Oct. 20, 2006, 7 pages. |
Current Claims PCT/US05/45625, 8 pages. |
International Searching Authority, “Notification of Transmittal of the International Search Report and the Written Opinion of the International Searching Authority, or the Declaration,” PCT/US05/40861, dated Nov. 17, 2006, 7 pages. |
Current Claims PCT/US05/40861, 5 pages. |
Decasper, Dan et al., “Router Plugins: A Software Architecture for Next Generation Routers,” IEEE ACM Transactions on Networking, vol. 9, No. 1, Feb. 2000, XP011038838, 14 pages. |
US Office Action mailed Mar. 22, 2007 from (related) U.S. Appl. No. 10/866,506. |
US Office Action mailed Apr. 4, 2007 from (related) U.S. Appl. No. 10/866,285. |
US Office Action mailed Jun. 18, 2007 from (related) U.S. Appl. No. 11/010,089. |
Droms, R., Dynamic Host Configuration Protocol, RFC 2131, Mar. 1997, 43 pages. |
Alexander, S., et al., DHCP Options and BOOTP Vendor Extensions, RFC 2132, Mar. 1997, 32 pages. |
Stump, G., et al., The User Class Option for DHCP, RFC 3004, Nov. 2000, 6 pages. |
T'Joens, Y., DHCP Reconfigure Extension, RFC 3203, Dec. 2001, 6 pages. |
Patrick, M., DHCP Relay Agent Information Option, RFC 3046, Jan. 2001, 14 pages. |
Lonvick, C., The BSD Syslog Protocol, RFC 3164, Aug. 2001, 28 pages. |
Johnston, M., DHCP Preboot Execution Environment (PXE) Options draft-ietf-dhc-pxe-options-01.txt, Internet-Draft, Jan. 21, 2005, 7 pages. |
Johnson, R., TFTP Server Address DHCP Option draft-raj-dhc-tftp-addr-option-00.txt, Internet-Draft, Feb. 6, 2005, 7 pages. |
Littlefield, J., Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DPHCPv4), RFC 3925, Oct. 2004, 9 pages. |
Schulzrinne, H., Dynamic Host Configuration Protocol (DHCPv4 and DHCPv6) Option for Civic Addresses Configuration Information, draft-ietf-geopriv-dhcp-civil-05, Internet-Draft, Feb. 19, 2004. |
Polk, J., et al., Dynamic Host Configuration Protocol Option for Coordinate-based Location Configuration Information, RFC 3825, Jul. 2004, 15 pages. |
AeroScout Visibility System: Bridging the Gap Between Wi-Fi, Active RFID and Telemetry, AeroScout Enterprise Visibility Solutions, http://www.aeroscout.com/content.asp?page=SystemOverview, printed Apr. 16, 2005, 3 pages. |
WhereNet, Products, http://wherenet.com/products—main.html, printed Apr. 16, 2005, 2 pages. |
Simple Network Management Protocol, Internetworking Technologies Handbook, Chapter-56, printed Jul. 14, 2005, 12 pages. |
International Search Report dated Oct. 13, 2005, from (related) International Application No. PCT/US05/16484, 6 pp. including Notification of Transmittal. |
Written Opinion of the International Searching Authority dated Oct. 13, 2005, from (related) International Application No. PCT/US05/16484, 5 pp. |
Harrington, D., et al, An Architecture for DescribingSimple Network Management Protocol (SNMP) Management Frameworks, RFC 3411, Dec. 2002, 64 pages. |
Presuhn, R., Editor, Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP), RFC 3416, Dec. 2002, 31 pages. |
Global Location No. (GLN) Implementation Guide, Uniform Code Council, Inc., May 2002, 13 pages. |
Mockapetris, P., “Domain Names—Concepts and Facilities”, RFC 1034, Nov. 1987, 43 pages. |
Mockapetris, P., “Domain Names—Implementation and Specification”, RFC 1035, 55 pages. |
International Search Report dated Jul. 13, 2006, from (related) International Application No. PCT/US05/16319, 5 pp. including Notification of Transmittal. |
Written Opinion of the International Searching Authority dated Jul. 13, 2006, from (related) International Application No. PCT/US05/16319, 5 pp. |
US Office Action mailed Aug. 9, 2006 from (related) U.S. Appl. No. 10/866,507. |
US Office Action mailed Oct. 6, 2006 from (related) U.S. Appl. No. 10/866,506. |
US Office Action mailed Oct. 6, 2006 from (related) U.S. Appl. No. 10/866,285. |
US Office Action mailed Nov. 13, 2006 from (related)U.S. Appl. No. 11/073,245, 12 pp. |
US Office Action mailed Jan. 18, 2007 from (related) U.S. Appl. No. 10/866,507, 4 pp. |
International Search Report dated Feb. 17, 2006, from related International Application No. PCT/US05/15322, 5 pp. including Notification of Transmittal. |
Written Opinion of the International Searching Authority dated Feb. 17, 2006, from related International Application No. PCT/US05/15322, 3 pp. |
“EPCgl, Frequently Asked Questions”, Retrieved from the internet: http://www.epcglobalinc.com/about/faqs.html, [Retrieved Mar. 24, 20009], 9 pages. |
“EPCTM Tag Data Standards Version 1.1 Rev.1.24”, EPCglobal, Standard Specification, Apr. 1, 2004, 78 pages. |
“The Global Language of Business”, Retrieved from the internet: http://www.ean-int.org/locations.html, [Retrieved Mar. 24, 2005], 5 pages. |
“Cisco Application-Oriented Networking: A Network-Based Intelligent Message Routing System”, http://www.cisco.com/en/US/products/ps6438/products—data—sheet0900aecd802c1f9c.html Data Sheet, Cisco Systems, Inc., Jul. 13, 2005, pp. 1-7. |
“Cisco Catalyst 6500 Series Application-Oriented Networking Module”, http://www.cisco.com/en/US/products/ps6438/products—data—sheet0900aecd802c1fe.9.html Data Sheet, Cisco Systems, Inc. Jul. 13, 2005, pp. 1-3. |
“Cisco Application-Oriented Networking—A Network Embedded Intelligent Message Routing System”, http://www.cisco.com/en/US/products/ps6438/prod—bulletin0900aecd802c201b.html Product Bulletin No. 2886, Cisco Systems, Inc. Jul. 13, 2005, pp. 1-3. |
“Cisco Catalyst 6500 Series Application-Oriented Networking Module: Large Photo”, Photo, Retrieved from the internet: http://www.cisco.com/en/US/products/ps6448/prod—view—selector.html [Retrieved Jul. 13, 2005], Cisco Systems, Inc. 1 page. |
“The EPCglobal Architecture Framework” EPCglobal Final Version of Jul. 1, 2005, pp. 1-53. |
Marc Girardot and Neel Sundaresan. “Millau: an encoding format for efficient representation and exchange of XML over the web”[Retrieved Jan. 31, 2005]. Retrieved from the internet: http://www9.org/w9cdrom/154/154.html 25 pages. |
Fujitsu Limited, et al., “Web Services Reliability (WS-Reliability) Ver1.0”, Jan. 8, 2003. pp. 1-45. |
Ruslan Bilorusets et al., “Web Services Reliable Messaging Protocol (WS-ReliableMessaging)”, Mar. 2004, pp. 1-40. |
Burns, Michael, et al., “Implementing Address Assurance in the Intel IXP Router”, Western Network Processors Conference, Oct. 2002, 17 pages. |
Chiu, Kenneth et al., “Investigating the Limits of SOAP Performance for Scientific Computing,” Nov. 7, 2002, IEEE Computer Society, 9 pages. |
Mohl, Dirk S., “IEEE 1588: Running Real-Time on Ethernet; Getting the Right web server—Time to consider Ethernet for I/O,” retrieved from Internet at <http://ethernet.industrial-networking.com/articles/i17 real-time.asp>; downloaded on Mar. 10, 2004 (6 pgs). |
Montague, Jim (2003) “Ethernet Hits Real-Time . . . Really,” Control Engineering, Dec. 1, 2003, copyright 2004 Reed Business Information, a division of Reed Elsevier Inc.; retrieved from Internet at <http://www.manufacturing.net/ctl/ iindex.asp?dlayout=articlePrint&- articleID=CA339683>; downloaded on Mar. 1, 2004 (3 pgs). |
PCT International Search Report and Written Opinion dated Oct. 17, 2006, from PCT/US2006/024375 [Palermo]. |
PCT International Preliminary Examination Report dated Dec. 24, 2007, from PCT/US2006/024375 [Palermo]. |
PCT International Search Report and Written Opinion dated Mar. 6, 2008, from PCT/US2006/026970. |
PCT International Preliminary Examination Report dated Mar. 17, 2009, from PCT/US2006/026970. |
PCT International Search Report and Written Opinion dated Nov. 17, 2006, from PCT/US2005/040861 [Palermo]. |
PCT International Preliminary Examination Report dated May 22, 2007, from PCT/US2005/040861 [Palermo]. |
PCT International Search Report and Written Opinion dated Mar. 28, 2007, from PCT/US2005/041254 [Palermo]. |
PCT International Preliminary Examination Report dated May 30, 2007, from PCT/US2005/041254 [Palermo]. |
PCT International Search Report and Written Opinion dated Feb. 28, 2007, from PCT/US2005/043599 [Palermo]. |
PCT International Preliminary Examination Report dated Jun. 13, 2007, from PCT/US2005/043599 [Palermo]. |
PCT International Search Report and Written Opinion dated Nov. 30, 2006, from PCT/US2005/044171 [Palermo]. |
PCT International Preliminary Examination Report Jun. 13, 2007, from PCT/US2005/044171 [Palermo]. |
PCT International Search Report and Written Opinion dated Oct. 20, 2006, from PCT/US2005/045625 [Palermo]. |
PCT International Search Report and Written Opinion dated Jul. 20, 2007, from PCT/US2005/046149 [Palermo]. |
Chinese Office Action (first) dated Jun. 27, 2008 issued in CN200580031604.01, 15 pgs [Palermo]. |
European Search Report dated Feb. 6, 2009 issued in EP05820894, 8 pgs [Palermo]. |
European Office Action dated May 28, 2009 issued in EP05820894 [Palermo]. |
US Office Notice of Allowance dated May 11, 2010, from U.S. Appl. No. 11/182,312. |
US Non-Final Office Action dated Jun. 10, 2009, from U.S. Appl. No. 11/182,312. |
US Non-Final Office Action dated Nov. 26, 2008, from U.S. Appl. No. 11/182,312. |
US Examiner's Amendment dated Nov. 7, 2007, from U.S. Appl. No. 11/195,160. |
US Notice of Allowance and Examiner Amendment dated Mar. 27, 2008, from U.S. Appl. No. 10/896,410. |
US Non-Final Office Action dated Oct. 10, 2007, from U.S. Appl. No. 10/896,410. |
U.S. Notice of Allowance dated Apr. 13, 2012 issued in U.S. Appl. No. 12/874,773. |
Number | Date | Country | |
---|---|---|---|
20080104209 A1 | May 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11195160 | Aug 2005 | US |
Child | 11965693 | US |