Temporal Web Alerts

Share Embed


Descrição do Produto

2010 Seventh International Conference on Information Technology

Temporal Web Alerts Nader Mohamed and Jameela Al-Jaroodi College of Information Technology, UAE University Al Ain, P.O. Box 17551, UAE {nader.m,j.aljaroodi}@uaeu.ac.ae

Abstract

request to receive news that contains specific keywords. For example, a user may be interested in news about a specific company. Therefore, he/she can use the company’s name as a keyword in the alert definition. Users may also need to specify their locations for some interests and news alert types. For example, when requesting local news alerts or missing children alerts. Another alert application is for job openings. The user can specify some keywords for available jobs. The user must in this case also specify the location and job category in which he/she will receive alerts about. Another application domain is related to our daily life with weather and traffic. The user can get weather forecasts sent to him/her for certain cities he/she specified. In addition, the user can specify to get alerts about snowfall in certain cities. For traffic alerts, the user can subscribe to get alerts when traffic jams occur on specific highways he/she uses. Another applications domain is finance. Stock investors can subscribe to get information about stocks, currency exchange rates, and market summaries. For example, a stock investor can set an alert condition on Yahoo Finance such that whenever the Wal-Mart stock price drops to a specific value in US dollars a notification is sent. This paper discusses a special type of web alerts that is called temporal web alerts. In this alert type, the user can define temporal monitoring conditions for some web information that their values change with time. Examples of this information are stock prices (e.g. if a price has dropped/increased by $2 in one hour), currency exchange rates (e.g. if the Euro exchange rate against the dollar has dropped by 3% in three hours), and temperatures (e.g. if the temperature in a specific location has increased by 10 degrees within a week). This paper discusses how to approach this issue and what are the storage requirements for it. In addition, we introduce an effective solution that will minimize the storage requirements. In the rest of the paper, the general concepts of web alerts are discussed in Section 2. Section 3 introduces the temporal web alerts and discusses the storage requirement

Web alerts are user-defined monitor conditions for public web information in which notification messages are sent to users whenever their alert conditions are met. Web alerts are usually available as services over the web. Through these services, users can define to monitor some interesting information for them. This paper discusses a special type of web alerts called temporal web alerts. In this alert type, the user can define temporal monitoring conditions for some web information that their values change with time. Examples of this type of information are the stock prices, currency exchange rates, and temperatures all of which vary as time passes. This paper discusses the possible approaches to satisfy temporal conditions and the storage requirements to support this type of alerts and provides a solution to minimize storage requirements.

Key words: Web Alerts, Temporal Query, Web Information, Internet, Notification Systems. 1. Introduction There are several alert services available over the web, which serve different application domains [1]. One example of these domains is entertainment. The users can subscribe to get updates on new computer games and computer game sale promotions, new and recommended movies, sports, and special events. The user can specify the type of sports or event information he/she interested in and alert messages will be sent to him/her. Another domain is the news. The users can subscribe to get information about breaking news, and daily based on their specified types they have interest in. These types could be business, top stories, science, weather, world, politics, or technology. In addition, some services are available to provide keyword-based news. The users can 978-0-7695-3984-3/10 $26.00 © 2010 IEEE DOI 10.1109/ITNG.2010.205

637

to support this type of alerts. Section 4 provides an efficient design for this type of alerts while some performance measurements are provided in Section 5. Section 6 concludes the paper.

finding articles that contain some keywords defined by the user. However, the search will be done offline on any future articles becoming available within a specified time period and alerts will be sent when a match is found.

2. Web Alerts

2.3 Webpage Change Alerts

There are a number of alert services available for public live information over the Internet. In addition, there are a number of advanced alert services that have potential to be available in the near future. This section discuses these service types.

This type of alert services is available to monitor changes in specific web pages. One example is ChangeDetect [4]. ChangeDetect is a service that monitors a specified web page contents for changes and sends an automatic alert email to the user whenever the web page is updated. A user can use that service to be notified of new posts on interesting sites. For example, a user can monitor new news on a company’s website to know of any upcoming events or news posted on that company’s website. In addition, a user can use that service to monitor a job openings site such that an alert is sent to him/her as soon as the page changes (which in this case means some new job openings were posted or current ones are updated).

2.1 Pre-Defined Alerts In this type of alerts, alert fields, information, and conditions are restricted. The users have a limited set of fields, information, and conditions that they can use to define their alert interests. This type of alerts is simple and can be easily used by regular users; however, they will not be able to define advanced or complex alert conditions. In addition, the information used for such alerts are limited to those owned or managed by the service provider only. Therefore, updates and changes in other websites or companies may not be included. One example of this type of alerts is Yahoo Stocks Watch Alert [2]. The Yahoo Stocks Watch Alert provides users with some options to set their notifications for stocks information. These options are based on changes in stock prices either in value or percentages. For example, the user can receive a notification whenever the Wal-Mart stock price increases above $50.00 or when the price drops below $44.00. The user can receive notifications as an email message, an instant message or as text message over the mobile phone. This type of alert services is very restricted. The user is restricted to specific types of information and limited types of notifications. Users have no means of defining advanced criteria he/she may be interested in. In addition, the data used for notification is usually limited to what is available on the website of the company managing the alert service.

2.4 Value-Based Alerts This type of alerts is still in the research stage, but shows potential of becoming very popular. It allows users to define alerts based on any values publicly available over the web through web services or dynamic HTML documents and build alert conditions using these values. For example the user can define criteria to monitor any value appears in any html page or available in any web service over the web. The user can define to get an alert whenever that number reaches a certain value. More information about this service is available in [5][6]. This alert type started to get industry attention in some of their new products [7].

2.5 Calculated Values Alerts This type of alert is similar to the Value-Based Alert mentioned in the last subsection. However, the alert information can be obtained from multiple web pages and/or multiple web services. In addition, the values of new variables can be calculated from the defined values obtained from the web. In this type of service the user defines two types of variables: Internet variables and calculated variables. The values of Internet variables are obtained directly from the web. The values of the calculated variables are generated by combining the defined Internet variables and other defined values based on some formula defined by the user. The user can use both the Internet variables and calculated variables to define the alert conditions. This type of alert service provides some flexibility for users to define advanced

2.2 Search-Based Alerts This can be also called keyword alerts. One of the services available based on keywords search is Google Alerts [3]. The user defines keywords for a topic of interest and email alerts will be sent to him/her whenever any article is published over the web about that topic. This service can be used to get up-to-date information about specific interests. The search can be for news, blogs, web pages, videos, or interest groups. This type of service is similar to using an Internet search engine for

638

defined period of time. A basic approach to implement temporal web alerts is to store all values of the monitored element over the period defined by the user and check the alert condition with each update. If the element value changes every k seconds and the alert condition period is p seconds, than we need to store p/k values. This will take huge storage space especially if k is small and p is very large. We call this approach a periodic-storage approach in which each updated value of the monitored element will be stored. Another approach to be used for storing the value changes over the condition period is to store new values and their time if and only if there is a new change in the value. This approach will store a tuple with two numbers for each change: the value and its time, (Timei,Valuei). We call this approach a time-stamped-storage approach. In this approach, if there is a change for every k seconds then space for 2p/k elements is needed, thus doubling the space required compared to the periodic-storage approach. However, if there is, on average, a change every 2k or more seconds then the storage space required is equal or less than p/k. The time-stamped-storage approach requires less storage space than the periodicstorage approach if and only if the changes occur less frequently than one change every 2k seconds.

alerts. Advanced alerts are needed in some domains such as stock investments [8]. A stock investor can be provided with flexible solutions that will allow him/her to be notified based on his/her own personalized criteria.

2.6 Group Alerts Related Internet information can be scattered over multiple web pages or available on a single web page. It can be provided by multiple web services or can be provided by a single web service. Example of this type of information is all stocks listed in NASDAQ market in USA. Another example is current temperatures of all cities in Germany. A user can define a group alert such that he/she will be notified when the price of any stock listed in NASDAQ increases by 30% from the opening price. This alert type deals with multiple related pieces of stock information that could be scattered over multiple web pages or web services on the web. In this case the service does not have one or a few defined variables to monitor. Instead, it will need to keep track of all values available that are relevant to what the user defined.

3. Temporal Web Alerts In this alert type, time is part of the defined alert conditions. That is to satisfy an alert condition of this type, the service must keep track of some values and their changes over some period of time. These alerts require the user to identify some internet variables as mentioned in the previous section then also specify the change factors and the amount of time required for that change. One example of this alert type is an alert that should be sent when the Microsoft stock price drops by $4 within one hour. In this case the service needs to keep track of all changes of the Microsoft stock price over time and compare the values until the difference of $4 is perceived within one hour. Another example is when alert should be sent when the temperature in Lincoln, Nebraska increases by 10% within 24 hours. In temporal web alerts, users can specify to monitor any web valued elements over the Internet over a period of time. The users define a period of time during which the values of these elements need to be monitored for specific changes. There are two condition types of temporal web alerts. The first one is the incremental condition alert. In this type, users are interested to know whenever the value of a monitored element has increased by a specified amount within a defined period of time. For example, a user needs to know when the X stock has increased by 5% within one hour. The second type is decremental condition alert. In this type, users are interested to know whenever the value of a monitored element has decreased by a specific amount within a

4. Efficient Temporal Alert Implementation In this paper we develop, an efficient approach for supporting temporal web alerts by storing the minimum number of values required to test the user-defined temporal condition. This approach is similar to the timestamped-storage approach; however, by adding some intelligent storage criteria it needs less storage space. We call this approach efficient-time-stamped-storage approach. This approach utilizes the fact that the value of any monitored element may increase and decrease multiple times during the monitoring period. Therefore, it is possible to ignore some values that will not affect the decision for the required condition. For an incremental condition, we need to store values as they increase over time. Yet, as soon as the current value becomes smaller than some stored values, there will be no need to keep any stored values that are larger than that current value. For example, if a user needs to know if the Wal-Mart stock price increases $5 within one hour and current the stock price is $46 at 10:18, then there is no need to keep any stored values larger than or equal $46. However, the current value must be stored (See Figure 1). If we have stored the value $47 at 10:17 and the current value is $46 at 10:16am, then this current value must be kept and it covers both the price of $46 and the higher price that occurred earlier (that is all values

639

above the dotted line between points a and b will not need to be stored for future comparisons. The temporal alert condition will be satisfied with the $46 value and it is redundant to store any values with higher or equal amounts that occurred before that.

To design an algorithm for this technique, we used a circular list. The time stamped values are added to the circular list for new values and old expired values (when the time has passed the condition time) are removed from the beginning of the circular list. Table 1 provides a list of the symbols used in the algorithm and their meanings. The developed algorithm is in Figure 2. This algorithm is for the incremental condition only. However, the algorithm for the decremental condition is very similar with some changes in the comparison conditions.

(10:17, $47)

a

Table 1. A list of symbols used in the algorithm. Symbols Description Time[i] Time of the tuple i Value[i] The value of the tuple i CurrentTime Current time CurrentValue Current value ConditionType Incremental or Decremental Condition ConditionPeriod The time period that was specified in the alert condition ConditionChange The change value that was specified in the alert condition FirstPointer The pointer of the first tuple in the circular list LastPointer The pointer of the last tuple in the circular list

(10:18, $46)

b

(10:16, $46)

(10:15, $43)

Figure 1. Changes in Wal-Mart price over time Formally, with the incremental condition we have two possible changes for the tuples (Timei, Valuei) and (Timej, Valuej), where tuplei represent the latest stored value and tuplej represents the current value. If Timej > Timei, and Valuej = Valuej. Else, if Valuej > Valuei, then we need to add the new value to the stored list. The current tuple j in this case must be stored since after a while it may become the first value in the list to use for comparison. This happens because the storage is circular based on the defined period of time T so any tuple k will be removed when Timej – Timek > T. For example, there is no need to keep any values that occurred more than one hour earlier if the temporal alert condition time is one hour. Based on the technique described here, the stored values will be incrementally sorted with time since no larger values will be kept in the list if the current value is less. Only older and lower values will be kept and only for the condition time period. Applying the same principles, we can manage the time/value tuples for the decremental condition. In this case we will keep values as they decrease and will not need to store values when they become smaller than the current value. For example, we have a decremental condition and two changes: (Timei, Valuei) and (Timej, Valuej). If Timej > Timei and Valuej >= Valuei, then then we need to store the new value (Timej, Valuej) and we can remove the previous value (Timei, Valuei) and all earlier tuples k where Valuek < Valuej.

This algorithm is used every time a new value obtained from the web. The algorithm will update the circular list such that only values less than the current values are kept and all other values will be removed (as explained earlier). The new value will be added to the end of the list and the expired values at the beginning of the list will be removed. In addition to updating the circular list, the algorithm will test the temporal condition and return the test result.

5. The Experiments A set of experiments were done to monitor the price of the EMAAR stock listed in Dubai Financial Market (DFM) using the three approaches mentioned in the previous section. The temporal web alert used an incremental condition. An alert should be sent whenever EMAAR price increases by AED 0.5 within one hour. For all the approaches tested a price value is received every 10 seconds. Table 2 shows the average storage space required for each of the three approaches. The storage space unit used represents the space needed to store a single element (e.g. the value in the periodic storage and the time and value elements in the other two approaches). As we can see the efficient-time-stamped approach needs

640

6. Conclusion

less storage compared to both the periodic-storage approach and the time-stamped-storage approach.

This paper discussed a new type of web alerts called temporal web alerts. The paper discussed the storage challenge for supporting this kind of alerts since satisfying a temporal condition requires keeping all information related to it over the full duration of time requested. A direct method to store all values will result in huge storage requirements. Therefore, we introduced and evaluated an efficient technique for reducing the storage requirements. In this technique only the relevant needed values for testing alert condition are stored rather than storing all values. This is possible since fluctuations in the opposite direction of the test condition will result in values that are redundant and not necessary to consider while trying to satisfy the alert condition. This technique significantly reduces the required storage to support temporal web alerts.

// This function performs update in a circular list and tests // the condition. It returns true if the condition is met boolean IncrementalTest(CurrentTime, CurrentValue) { // Check if the list is not empty If( LastPointer – FirstPointer != 0 ) { // Find new value for LastPointer If( CurrentValue >= Value[LastPointer] ) { //Increment last pointer only if current value is //bigger than last value in the list If( CurrentValue > Value[LastPointer] ) { LastPointer = IncrementLastPointer() } } Else {LastPointer = BinarySearch(Value[],CurrentValue)} // Update the circular list with new time and value Time[LastPointer ] = CurrentTime Value[LastPointer] = CurrentValue //Remove any stored values that their times are outside // the period of the condition StartTime = CurrentTime - ConditionPeriod FirstPointer = BinarySearch(Time[], StartTime) // Check the alert condition Condition = False Change = Value[LastPointer] - Value[FirstPointer] If( Change >= ConditionChange ) { Condition = True } } Else { // If the circular list is empty LastPointer = IncrementLastPointer() Time[LastPointer] = CurrentTime Value[LastPointer] = CurrentValue Condition = False } Return( Condition ) }

Acknowledgements This work was partially supported by a UAE University research grants #01-04-9-11/09 and #01-03-9-11/08.

References [1] J. Al-Jaroodi and N. Mohamed, “Analysis of Web Alert Models,” in The 12th International Conference on Network-Based Information Systems (NBiS 2009), IEEE Computer Society Press, pp. 398-403, August 2009. [2] Yahoo Alerts, http://alerts.yahoo.com/ . [3] Google Alerts, http://www.google.com/alerts . [4] ChangeDetect, http://www.changedetect.com/ . [5] N. Mohamed, J. Al-Jaroodi, I. Jawhar, “A Framework for Generic Internet-Based Information Notification,” in Proc. of The Third International Conference on Internet and Web Applications and Services (ICIW 2008), IEEE Computer Society Press, Athens, Greece, pp. 563-568, 8-13 June 2008. [6] N. Mohamed, J. Al-Jaroodi, and I. Jawhar, “A Generic Notification System for Internet Information,” In Proc. of The 2008 IEEE International Conference on Information Reuse and Integration (IRI-08), IEEE, Las Vegas, USA, pp. 166-171, July 2008. [7] Pierre Innocent, "OS Reminder Subsystems: A Uniform, Internet-Enabled and Fragment-Based Notification System," Industrial White Paper, Tset.Com, January 2009, http://www.tsert.com/white-papers/reminders.pdf [8] J. Al-Jaroodi and N. Mohamed, “A Personalized Stock Investors Alert System,” in The Journal of Software, Finland, Vol. 4, No. 8, pp. 875-882, October 2009, http://www.academypublisher.com/ojs/index.php/jsw/articl e/viewFile/0408875882/1123

// This function performs binary search and returns the // pointer of the first element bigger than the specified value Int BinarySerach(Array[], Value) { ……. } // This function increments the size of the circular list by one // and returns the pointer of the last element in the list Int IncrementLastPointer() { …….}

Figure 2. An incremental test function and other supported functions. Table 2. Storage space needed for the temporal alerts Approach Maximum space used (elements) Periodic-Storage 360 Time-Stamped-Storage

224

Efficient-Time-Stamped-Storage

38

641

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.