WISE: A Web-based Intelligent Sensor Explorer Framework for Publishing, Browsing, and Analyzing Sensor Data over the Internet Kien A. Hua, Rui Peng, and Georgiana Hamza-Lup School of Computer Science, University of Central Florida Orlando, FL 32816, U.S.A {Kienhua, Rpeng, Ghamza}@cs.ucf.edu Abstract. In this paper, we present an Internet-scale framework for publishing, browsing, and analyzing real-time sensor data. Existing work assumes a known set of sensors, deployed for a specific application, intended for a group of users who are aware of the application. In contrast, WISE provides a new environment for publishing real-time sensor data, and sharing sensor-based applications with unsolicited users over the Internet. It enables providers to advertise their sensors using a Sensor Data Description Advertisement. Any user can search relevant sensors over the Internet using a scalable peer-to-peer search mechanism. Once the desired sensors are located, the user can employ two new communication protocols, namely SSCP and SSTP, to remotely control the incoming sensor streams. As the data arrive at the user browser software, a corresponding plug-in such as a data animation module is activated to allow the user to “see” the data stream presented in an intelligible way. 1 Introduction Nowadays pervasive sensing systems ranging from short-range wireless ad hoc sensor networks to more powerful capture devices such as video cameras are becoming a reality. However, the captured data from these systems are often hidden from the Internet, partially due to the dynamic nature of the data and the lack of a common framework for sharing such information in the public. As more and more sensorbased services become part of our daily life, they call for new technologies to allow publishing, searching, browsing, and analyzing sensor data on the Internet. Consider, for example, a stream monitoring sensor network deployed in a brook by a group of geographers. The sensors measure the water temperature, turbidity and precipitation, and periodically send back the data to an Internet-connected computer. These data arrive as a stream and are published on the Internet by the geographers. Independently, a biologist wants to study the life zone in the same brook and searches for the information on the Internet. In a few seconds, she locates the sensors published by the geographers, and starts to browse and analyze the data stream on her own screen. As another example, think about video cameras deployed along the major highways to monitor traffic condition. A navigation system can use such real- time information to determine the fastest route to a given destination. In fact, such a route can be updated continuously to ensure the fastest trip for the motorist. We envision in this paper an all-new environment where innumerable sensing systems, deployed by numerous publishers, expose different data over the Internet to share them freely with a wide variety of unsolicited users much like web pages that are publicly shared on the Internet today. To explore our vision, we have identified the following key challenges: Support the dynamic nature of sensor data. Sensors are generally limited in power and memory 12, and must deliver data continuously at well-defined intervals in the form of streams 5. While current web servers show good efficiency when publishing static objects such as HTML web pages, they are not capable of publishing dynamic sensor streams. As HTML provides a standard for displaying web pages, sensor data need new standards to represent a wide variety of data stream formats. Provide effective browsing methods for sensor data. While HTML web pages contain all the information for a web browser to display, streaming sensor data do not. If original sensor data are shown on the screen without interpretation, the user will only see a screen of meaningless numbers. It is a major challenge to assist users to browse sensor streams arriving at a high rate with potentially unlimited information. Efficiently deliver real-time sensor data streams. Current real-time communication protocols focus at multimedia delivery and are not designed specifically for sensor data. Hence they incur unnecessary overhead for sensor streams due to the complexity of encoding/decoding, synchronization, etc. New light-weighted protocols that target at sensor streams are highly desirable. Build an efficient search engine for sensor meta-data. Given a large number of sensors on the web as we envision, search engines need to be enhanced with the capability to efficiently search semi-structured sensor meta-data. Keeping the aforementioned challenges in mind, we have developed a framework for a Web-based Intelligent Sensor Explorer (WISE) system, and build a prototype as part of this effort. This system enables users to publish, browse, and analyze sensor data over the Internet. This common platform also allows more sophisticated users to develop and share their more specialized WISE-based analysis tools. Hereafter, we refer to a sensing system and device simply as a sensor unless otherwise noted. The WISE framework requires the following core technologies: • Sensor data publishing is via Sensor Data Description Advertisement (SDDA). An SDDA is an XML file that contains all the information a client needs to know to access and interpret the published sensor data. In other words, it allows providers tailor their own data service advertisements using SDDA as a canonical format. • Sensor proxies 5 are used to communicate with sensors. These proxies gather nearby sensor data, remove noise, and process it to extract the desired information (e.g., compute average vehicle speed from captured video). As in 5, we assume that sensor proxies run on Internet connected computers. • Sensor data from sensor proxies are published through a Sensor Data Server (SDS), which accepts data requests and delivers data to the user. An SDS and sensor proxies may or may not run on the same computer. A number of sensor streams can be logically grouped together to collectively provide service to users. As an example, the driver’s navigation system may need to get the information from several sensors in order to determine the fastest route. • The Sensor Data Browser (SDB) is an intelligent user interface with embedded search functionality for sensor data. It also accepts specialized data processing plug-ins for different purposes. Data can be visualized using the techniques discussed in this paper, analyzed using data mining techniques 113, or queried using Continuous Query (CQ) techniques 36. • SDS’s and SDBs exchange control information and transmit sensor streams over two different channels according to two light-weighted protocols, namely the Sensor Stream Control Protocol (SSCP) and the Sensor Stream Transport Protocol (SSTP) Since many techniques have already been developed for sensor proxies (e.g., 25 15), we consider them as data sources in this paper, and focus our discussion on the SDDA, SDS, SDB, SSCP, and SSTP. Our contribution is the development of WISE as an underlying framework for a wide variety of Internet-scale sensor-based services and applications. In addition to sensor data dissemination, WISE also supports applications such as industrial control and monitoring, security and military sensing, home automation and consumer electronics, asset tracking and supply chain management, intelligent agriculture and environmental sensing, health monitoring, just to name a few. The remainder of this paper is organized as follows. In Section 2, we describe the architecture of WISE along with the details of the core techniques. We present the prototype and experimental study in Section 3. Related works are discussed in Section 4. Finally, we offer our concluding remarks in Section 5. 2 WISE Framework Fig. 1. High-level network architecture The WISE environment is shown in Fig. 1. We revisit the sensor example of the geographers to illustrate how this framework facilitates this application. To publish the data, a Sensor Data Description Advertisement (SDDA) is created on a Sensor Data Server (SDS) to hold the meta-data, and publish them into the Internet. At the same time, the sensor proxy is collecting intermittent data from sensors in the brook. When a biologist looking for related sensors enters search criteria into a local Sensor Data Browser (SDB), this software uses a distributed search facility to look for relevant SDDAs. As the browser displays a list of relevant SDDAs on the screen, the biologist identifies the desired sensor and clicks on it. In response, the browser establishes a session with the SDS using a Sensor Stream Control Protocol (SSCP), gets the real-time stream using a Sensor Stream Transport Protocol (SSTP), and directs the data to the default plug-in, the Visualizer, for display. The various components are described in the following subsections. 2.1 Canonical SDDA format Each SDDA advertises a sensor service consisting of a collection of related sensors. For example, we can publish many traffic monitoring sensors deployed at different busy locations throughout the city to support various navigation applications. An SDDA is defined based on the XML schema shown in Fig. 2 and a sample SDDA is given in Fig. 3. As shown in this example, a sensor service has a ServiceName, and a ServiceDescription, providing a general description about the service. Furthermore, an SDDA includes information for each sensor employed in this service. This sensor information includes the following standard data fields: Fig. 2. Canonical SDDA format • • • SensorName, SensorDescription, and SensorLocation: These data fields provide the general description of each sensor. ServerIP, ServerPort, SensorID and Protocol: These are the parameters for an SDB to connect to the SDS. By default, we assume Protocol to be SSCP. We need information on ServerIP and ServerPort because SSCP is built atop TCP. StreamFormat: This user-defined field allows the sensor provider to customize the format of the data stream. For instance, the SDDA example in Fig. 3 indicates four distinct data fields in the sensor data: Temperature, Turbidity, Precipitation, and Time. We define Data frame as the unit for sensor data transmission. Thus, a data stream in WISE is a sequence of data frames, each consisting of a datum for each of the data fields declared in FrameFormat. Fig. 3. Sample SDDA As in 5, the sensor proxy is responsible for packaging incoming sensor data into data frames, and forwarding them to the server. Therefore, the SDS always delivers sensor streams in well-defined data frames as declared in the SDDA and any SDB will interpret the data streams according to the SDDA. 2.2 Sensor Data Server (SDS) The SDS is responsible for managing incoming data from sensor proxies and delivering the data to SDBs. As shown in Fig. 4, it has three major components, namely the Publish Manager, the Stream Manager, and the Session Manager. The Publish Manager accepts registrations from sensor proxies and publishes the corresponding SDDAs into the Internet. An SDDA may advertise streams from multiple SDS’s. For the local SDS, only standard parameters like Name, Description, Location, and FrameFormat need to be provided. Additional parameters, such as ServerIP, ServerPort, StreamID, and Protocol are automatically supplied by the Publish Manager. For remote SDS’s, all parameters must be entered provided. We note that a StreamID is unique only within a given SDS. The combination of ServerIP, ServerPort, StreamID, however, uniquely identifies a stream on the Internet. Fig. 4. Architecture of an SDS Upon receiving a registration request from a sensor proxy, PM allocates a Stream Processor which manages a small buffer for incoming data, and directs them to either local applications (e.g., local display, database), or remote SDBs, or both. In Fig. 4, the second stream is only for local display but the third one is delivered to a remote SDB as well as stored into a local database. Although the stream processor consumes data as fast as it can, the buffer may overflow if data arrive too fast. In WISE, we discard the oldest frame in the buffer when buffer overflow occurs due to real-time delivery consideration. The Server Session Manager interacts with remote clients and provides two important functionalities. First, it accepts client requests and control messages using SSCP. For the first request for each stream, the server session manager spoons a new session; whereas each subsequent request for the same stream joins the existing session. Each session accepts client control commands and performs actions on the streams. For example, the client can pause the stream transmission, and resume at a later time without reconnecting to the SDS. Second, it delivers the stream to all clients in the same session using SSTP. Essentially, a client uses two separate channels to interact with the server, one for control messages, and one for data delivery. The control channel is bi-directional, but the data channel only goes in one direction. The details of SSCP and SSTP are discussed in Section 2.4. 2.3 Sensor Data Browser (SDB) Fig. 5(a) illustrates the basic architecture of an SDB. An SDB consists of two components, the Plug-in Manager (PIM) and the Client Session Manager (CSM). The Plug-in Manager accepts registration of plug-in modules, and instantiates plug-in instances for the Client Session Manager to use. Common plug-in modules currently included in WISE are Visualizer, Analyzer, and Query Processor. Each module can instantiate in a variety of ways. For example, the Visualizer module can be used to create Line Charts, Time Series Charts, Bar charts and more Error! Reference source not found.. We discuss our data visualization technique in section 2.6. More complicated plug-in modules such as the aforementioned navigation service can also be installed. Through this facility, WISE enables sharing of various sensor data analysis tools and applications. We note that a software developer can create an SDDA to publish a sensor application (e.g., a sensor query processing application) using only sensors published by third parties. Thus, WISE facilitates sharing of not only sensor data, but also sensor-related tools and applications. This flexibility and extensibility is another unique feature of WISE compared to previous work. Fig. 5. Sensor Data Browser architecture (a) & plug-in architecture (b) In WISE environment, a plug-in typically has the MAP (Merge-Analyze-Present) architecture as illustrated in Fig. 5(b). The Merger component combines related data sources to prepare them for analysis. The Analyzer component performs computations on the combined stream and forwards the result stream to the Presenter which visualizes the information onto the screen. As a simple example, a Merger can combine streams of temperatures arriving from a number of nearby towns; the Analyzer then computes the average temperature of the region for every time interval; and finally, the Presenter plots a curve to visualize the variation in the temperature of the region over time. The Client Session Manager (CSM) of an SDB has three major functionalities. First, it accepts user search criteria and looks for matching SDDAs on the Internet. As a result, the user can browse through a list of relevant SDDAs and select desired streams to view. Second, CSM connects to SDSs and establishes a client session for each incoming stream. Similar to a server session, a client session also has two channels, control channel and data channel. The control channel is used to communicate user commands to the corresponding SDS; and sensor data are received from this SDS over the data channel. Third, CSM requests the Plug-in Manager to instantiate new plug-ins according to user selections and directs data to the appropriate plug-ins. It can also deposit data into a local operating system file or database upon user request for future analyses. 2.4 Communication protocols Two communication protocols are used in WISE framework, namely SSCP and SSTP. Both are application-layer protocols. The SSCP is used for control message exchange on the control channel between an SDS and an SDB. As a simple analogy, the SSCP acts as the network remote control for sensor stream playback by providing a set of useful methods for a client. SSCP does not deliver the stream itself, but rather uses SSTP for real-time data transmission. The semantics of the control methods are listed below with an example illustrated in Fig. 6(a). Fig. 6. SSCP operations (a) & SSTP packet format (b) • PREPARE. Request the SDS to allocate resources for a sensor stream and prepare for the data delivery. If this is the first request for a particular stream, the SDS creates a new server session and adds the requesting SDB to the session’s SDB list. If a subsequent request arrives for a stream in an existing session, the SDB will simply be added to this session. • START. Request the SDS to start the data transmission through the data channel. If this is the first request for a stream, the SDS starts an SSTP transmission on the SSTP port to the SDB. If this is a subsequent request for an existing stream, the SDS lets the SDB join the existing SSTP transmission. This operation can also be used to start receiving the data again after a pause operation. • PAUSE. Temporarily stop the stream transmission without releasing server resources. Any data transmitted during the pause period are lost. If the PAUSE request is from the last active SDB on this stream, the SDS stops the data transmission. • STOP. Notify the SDS to stop the data transmission, free server resources, and close the corresponding server session if this is the last active SDB receiving this stream; otherwise, the SDS continues the data transmission for other SDBs while purging the resources for the stopping SDB. SSCP is based upon TCP to ensure reliable communication of control messages, whereas SSTP is built atop UDP. Since UDP is connection-less without acknowledgements or retransmissions, it incurs less overhead compared to TCP and is better suited in a real-time environment. SSTP also leverages its broadcast/multicast capability so that the system scales to a large number of clients. Before sending a data frame, the SDS wraps it into an SSTP packet with a header as shown in Fig. 6(b). The sequence number increments by one for each SSTP packet and is used by the SDB to detect packet loss and ensure in-order delivery. Due to page limit, we only provide a high level view of SSCP and SSTP and omit the detailed lower level specifications. 2.5 Search Mechanism The WISE framework can be configured to work with any search engine as long as it recognizes the sensor metadata. However, we use a peer-to-peer search facility in WISE rather than a centralized one due to the following reasons: • Building a conventional web-based search engine is much more expensive than a peer-to-peer approach. In a P2P search engine the cost of search responsibility and index storage are distributed among a large number of peers, reducing the cost for each peer to virtually zero. • A centralized server can become a bottleneck when too many clients request the service. In contrast, a P2P system scales well because the workload is shared among many peers. • Search engine websites can no longer provide service to an isolated local area network or a wireless ad hoc network where Internet access is not available. However, those hosts in such environment (e.g., cars in a highway) can easily self-organize into a peer-to-peer network (e.g. a JXTA virtual network), where peer-to-peer search service can be carried out immediately. Peers in the network use a distributed hash table (DHT) function to facilitate index storage and access. Many DHT techniques have been proposed in CAN 8, CHORD 12 and Brocade 16, and Project JXTA 714Error! Reference source not found.. The Project JXTA is an open-source effort to specify the standard protocols for peer-topeer (P2P) communication and collaboration. JXTA protocols establish a virtual network overlay on top of the existing physical network infrastructure and provide simple primitives to hide the complexity of the underlying physical network. The JXTA network provides a Shared Resource Distributed Index (SRDI) service based on Rendezvous peers, which maintain index of advertisements published by edge peers. When an SDS publishes an SDDA, it is cached by a nearby rendezvous, and its index is pushed to another rendezvous determined by the DHT. When an SDB searches for an SDDA, the SDB issues a query to the SRDI service, which calculates the DHT function and finds the peer that contains the index for the SDDA. The SDB then gets the index from that peer and finds the target SDDA. We refer to 14 for a detailed discussion on relevant techniques. It is noted that DHT approaches have several well-known drawbacks such as fuzzy search incapability. We leave the improvement for this search component as future work, while focus primarily on the overall architecture of the framework in this paper. 2.6 Data Visualization While different plug-ins can be created for specific applications and incorporated seamlessly in WISE, we present in this section a Visualizer module that is currently provided in SDB. For a data stream with potentially unlimited information arriving at a very high rate, summarization is a great way for the user to “see” the stream. Different types of summarization methods can be used under different circumstances, including visualization, analysis, and querying, where visualization is probably the most intuitive way. In WISE, we provide Visualizer as the first default plug-in for the standard browser. We define a concept of Presentation Frame, analogous to a video frame, as the minimum unit of data for display. That is, a presentation frame is a collection of data frames that are visualized together on the screen. For example, the Visualizer may display the presentation frame by drawing a time series chart where every point corresponds to a data frame. We can view a continuous stream arriving at the Visualizer as a sliding window over the data stream. A sliding window of size six is illustrated in Fig. 7. It shows two consecutive presentation frames, one includes data frames 69 to 74, and the next one has frames 70 to 75. By visualizing these consecutive presentation frames at a high display rate, we create the experience of motion similar to video. In other words, the standard WISE browser summarizes and presents sensor data to the end user in the form of data animation. This is another unique feature of WISE compared to previous work. We note that the Visualizer is only one of many possible plug-ins for the WISE environment. Other ways to summarize data streams including data mining and various statistical analysis techniques can also be easily incorporated as plug-ins. Fig. 7. Presentation frame 3 Prototype We have developed a WISE prototype in JAVA using the design and techniques presented in the last section. In this section we describe the usage of this system and discuss its implementation details. As a proof of concept, the first version of WISE has a simple user interface with a basic set of functionalities. A screen shot of the Sensor Data Browser (SDB) is shown in Fig. 8. It provides three ways to access and explore a sensor service: • Use the search mechanism to find the SDDA, and click on it. • Select one of the bookmarks, and click on it to select the corresponding SDDA. • Enter the URL to access the SDDA directly if the information is available. All three access methods will activate the corresponding plug-in. To use the first option to search for an SDDA or a sensor service, the user enters a set of keywords as the search criteria. These keywords are matched against the metadata in order to determine the relevant SDDA’s, and rank them accordingly. To make the search more specific, the user can also enter additional keywords for the three provided metadata fields. The keywords entered for Datafields are compared with the names of the sensor data fields declared by the sensor providers. Fig. 8. Browser Interface – Search Fig. 9. Browser Interface - Search Results After the “Search” button is clicked, the SDB searches on the Internet and brings back a screen of relevant SDDAs, as shown in Fig. 9. Our sensor explorer displays only the standard descriptive information such as the name of the service, its description, and the locations of the sensors to help the user identify the desired sensor service. The user can now select a service by clicking on its name. This will activates the default plug-in, the Visualizer, which prompts the user to choose from a number of different visualization methods. Fig. 10 shows a screen shot when the user views the variation of the water temperature on a time series chart. To validate the key concepts discussed in this paper, we tested our prototype over the Internet. The experiment environment consists of three SDS’s and two SDBs, as shown in Fig. 11(a). We tested the publish and search mechanism by letting each of the SDS’s advertise a data stream from a simulated sensor proxy running on a separate computer in the same local area network. We conducted the following experiments, as illustrated in Fig. 11 (b) and (c). Fig. 10. Visualizer Fig. 11. Experimental environment and test scenarios • • One SDS serving multiple SDBs. We initiated the same search on the two SDB’s using the same keyword. When the results returned as shown in Fig. 9, we selected the same sensor service on both SDB’s. In response, the two sensor explorers brought up the same Visualizer window as shown in Fig. 10. This experiment illustrates the capability of an SDB to find sensors, and an SDS to handle multiple SDBs, as well as other basic functionalities of the WISE framework. One SDB receiving streams from multiple SDS’s. In this experiment, we opened one sensor explorer window and clicked on two streams with different formats. In response, the sensor explorer created two independent Visualizers and displayed the two streams without interference. This test shows that an SDB is capable of receiving multiple streams and accommodating different stream formats. 4 Related Work Recently there has been a growing interest on sensor data management with the main focus on building sensor databases on top of wireless ad hoc sensor networks. Madden et al propose the technique Fjords 5 for query processing on the continuous, never-ending sensor data streams. The sensor network is modeled as a streaming data source by providing a sensor proxy as the sensor’s interface into the query processor. Yang et al also discuss query processing over sensor networks in 15 focusing on modeling sensor streams as virtual relations. These techniques provide useful design guidelines and insights for sensor databases and query systems, but their target environment is limited to within a sensor network. Our WISE framework, in contrast, aims at a higher level, Internet-scale sensor-based services and applications while utilizing these existing techniques to hide the lower-level sensor management details. In 4 Deshpande et al present the project IrisNet to deal with widely deployed PCscale sensors and organizes them into a distributed database. The authors proposed effective techniques for fragmenting a database, query routing, and data caching. WISE differs from this work in the following aspects. First, IrisNet treats sensor data as discrete updates to the database and does not incorporate any specific methods to work with streaming data. Second, IrisNet predefines the scale of the database, i.e. all the sensors are assumed to be owned by the same organization. In contrast, WISE provides a flexible environment for providers to publish their sensors, and unsolicited users to find and use the sensors freely over the Internet. In fact, the IrisNet could be designed as one powerful plug-in for WISE. Finally, WISE accepts both large, powerful sensors like webcams and resource-stringent wireless sensor networks by providing the sensor proxies as another layer of abstraction. RTSP 9 is an application-level protocol that provides an extensible framework to enable controlled, on-demand delivery of real-time multimedia. RTP 10 is a real-time transport protocol that provides end-to-end transport functions. Since RTSP, RTP and other popular protocols employ considerable complexity to address various issues on streaming multimedia transmission, they cause unnecessary overhead for sensor data delivery that has more relaxed real-time requirement. Stream Control Transmission Protocol (SCTP) 11 is a reliable, connection-oriented protocol at transport layer and also provides a number of functions for real-time services. SCTP can be used as an alternative in WISE to provide enhanced transport layer services to SSCP and SSTP. 5 Concluding Remarks The major contribution of this paper is the development of WISE, the first Internetscale framework for publishing, searching, and browsing sensor data. We envision a future Internet where innumerable sensing systems are deployed by numerous publishers exposing different real-time data over the Internet to share them freely with a wide variety of unsolicited users. We identified the key challenges in supporting such an environment, and proposed solutions that are effective, flexible and scalable. Our techniques include the canonical metadata representation for publishing sensor data over the Internet, the peer-to-peer search mechanism for finding relevant sensors, the data animation concept for presenting stream data in an intelligible way, and the communication protocols SSCP and SSTP for remote control of sensor streams. We have built a prototype as a test bed to evaluate these techniques. Our experiments over the Internet indicate that WISE indeed provides an effective framework for publishing, finding, and using sensors. References 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. C. C. Aggarwal, J. Han, J. Wang, P. S. Yu: A Framework for Clustering Evolving Data Streams. In VLDB, 2003. E. H. Callaway. Wireless Sensor Networks: Architecture and Protocols. From Auerbach Publications, 2003. S. Chandrasekaram, O. Cooper, A. Deshpande, M. J. Franklin, J. M. Hellerstein, W. Hong, S. Krishnamurthy, S. Madden, V. Raman, F. Reiss, and M. Shah. TelegraphCQ: Continuous Dataflow Processing for an Uncertain World. In CIDR, 2003. Deshpande, S. Nath, P. B. Gibbons and S. Seshan. Cache-and-Query for Wide Area Sensor Databases. In SIGMOD, 2003. S. Madden and M. J. Franklin. Fjording the Stream: An Architecture for Queries over Streaming Sensor Data. In ICDE, 2002. R. Motwani, J. Widom, A. Arasu, B. Babcock, S. Babu, M. Datar, G. Manku, C. Olston, J. Rosenstein, and R. Varma. Query Processing, Approximation, and Resource Management in a Data Stream Management System. In CIDR, 2003. Project JXTA, http://www.jxta.org. S. Ratnasamy, P. Francis, M. Handley, R. Karp and S. Shenker. A Scalable ContentAddressable Network. In ACM SIGCOMM, 2001. H. Schulzrinne, A. Rao and R. Lanphier. Real Time Streaming Protocol (RTSP). RFC 2326, 1998. H. Schulzrinne, S. Casner, R. Frederick and V. Jacobson. RTP: A Transport Protocol for Real-Time Applications. RFC 1889, 1996. R. Stewart, Q. Xie, K. Morneault, C. Sharp, H. Schwarzbauer, T. Taylor, I. Rytina, M. Kalla, L. Zhang, and V. Paxson. Stream Control Transmission Protocol. RFC 2960, 2000. I. Stoica, R. Morris, D. Karger, M. F. Kaashoek, and H. Balakrishnan. Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications. In ACM SIGCOMM, 2001. W. G. Teng, M. S. Chen, P. S. Yu: A Regression-Based Temporal Pattern Mining Scheme for Data Streams. In VLDB, 2003. Traversat, A. Arora, M. Abdelaziz, M. Duigou, C. Haywood, J. C. Hugly, E. Pouyoul, and B. Yeager. Project JXTA 2.0 Super-Peer Virtual Network. http://www.jxta.org. Y. Yang and J. Gehrke. Query Processing for Sensor Networks. In CIDR, 2003. Zhao, Y. Duan, L. Huang, A. D. Joseph, and J. D. Kubiatowicz. Brocade: Landmark Routing on Overlay Networks. In Proceedings of the First International Workshop on Peer-to-Peer Systems (IPTPS), 2002.