Debs 2010 context based computing tutorial

Uploaded on

A tutorial describing the notion of context in its utilization in event based systems

A tutorial describing the notion of context in its utilization in event based systems

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On Slideshare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide
  • … So in the world of software, context-aware software takes into account indirect information, in addition to its direct input – which can be service parameters for instance. Take for example automatic tow service ordering system - if your car breaks down on the side of the road, instant information about nearby tow, pushed automatically to your mobile device will be more helpful than making phone calls or surfing the net. Another example is calls routing applications - routing phone calls based on the user’s location and pre-defined preferences: at home – wire line phone, at office – IP phone or instant messaging application, at the movie theater – SMS only.
  • Strategic Imperative: Proceed with gradual adoption of service-oriented architecture (SOA) and event-driven architecture (EDA) as fundamental steps in the software industry evolution to greater agility, intelligence and relevance. This slide, created by Gartner, demonstrates the evolution of software architecture over the years. You can see that during the last decade SOA and Advanced SOA were introduced, including complex event processing and extreme transaction processing. Gartner classifies CEP as advanced SOA, also called event-driven SOA. The next generation of application will be based on context – it a Context Driven Architecture generation. Having context as a first-class citizen will stimulate all these context-based types of applications to become more and more common. Presence, Mobility, Web 2.0 and Social computing applications have context and not content as a primary element.
  • This slide demonstrates again the idea that context is indirectly relevant information, useful to functioning of the service but not provided to the service as part of its invocation. The service is surrounded by a context, which can come from various sources – event brokers, sensors, web feeds, social interaction logs and so on. Software capable of adding new types of context and new sources of context is the most valuable to users.
  • Telecommunication applications are probably the most noticeable context applications. Smart phones can find an ATM on our way home, make a purchase, point to the nearby gas station or ping us about end of season sales as we pass a near a mall. Smart call routing systems are another example of context aware telecommunication applications, as we’ve already mentioned a couple of slides before.
  • Social computing is another emerging field where context a primary element – google search for instance adjusts search results and even advertisements placement according to users search history characteristics – such as content and frequency of search. Amazon improves user experience by offering the user products based on his shopping history, location, shopping history of other relevant users (those who bought the product the user just put in his shopping bag for example), and even political and social environment. In facebook the content a user retrieves depends on his identity, membership and power of his connection to other facebook members. After talking about context in general, we will focus on context in event processing…
  • The role of managing the content in each of the partitions can either fall on context service or on the agent associated with the specific context. In case of context service managing the partition’s content: Context service decides on affiliation of an object instance to a certain partition Context service saves the object instance and it’s mapping to the specific partition The context forwards the agent information on the update of the partition’s content, this information is necessary for the agent’s pattern evaluation logic In case of pattern evaluation the agent requests the content of the relevant partition from the context service, and evaluates the pattern In case of agent managing the partition’s content Context service decides on affiliation of an object instance to a certain partition The object is enriched with this context information and forwarded to the agent The agent stores the enriched object The agent performs a pattern evaluation of the relevant set of objects The first method can be better in terms of memory management – if the same event participates in several patterns, it can be maintained once The second one is betted in terms of context service and agents interactions, resulting in the reduced traffic.
  • Distributed topology: We have Context service on EPA level – The context management can either be distributed between different context services or duplicated between them. In the first case we need to maintain the distribution mechanism and consider logical integrity and synchronization issues that can arise when partitioning context into several pieces. In the second case we need to maintain replications between different instances on every context state change. Both approaches – context partitioning and duplication are scalable in terms of number of agents and throughput of events. We also avoid the performance bottleneck as opposed to the centralized approach.
  • Another approach combining the previous two is the hybrid approach – this architecture consists of context service component attached to each one of the agents sharing a single context data store. We can of course have several such a components – the entire system can have several groups of agents (probably logically connected agents) sharing the same context state. This approach offers both scalability typical to the distributed systems, and lack of synchronization and traffic issues typical to centralized context service architecture. Having several components of this type in our system, we can obtain a reasonable performance with relatively a small need in communicating context state changes to all interested parties.


  • 1. Context Aware Computing and its Utilization in Event-based Systems DEBS 2010 Tutorial Opher Etzion ( Ella Rabinovich (
  • 2. Our entire culture is context sensitive
    • In the play “The Tea house of the August Moon” one of the characters says: Pornography question of geography
    • This says that in different geographical contexts people view things differently
    • Furthermore, the syntax of the language (no verbs) is typical to the way that the people of Okinawa are talking
    When hearing concert people are not talking, eating, and keep their mobile phone on “silent”.
  • 3. Our IT systems are catching up Context is becoming a first class citizen in computing Gartner has designated Context enriched services and Context delivery architecture as Part of its application integration Hype Cycle of 2009
  • 4. This tutorial’s agenda Part I: Context in general Introduction – context in pragmatics and language Roles of contexts in computing Introduction contexts in event processing Part II: Context in depth Introduction to Context categories Temporal context Segmentation context BREAK Spatial context State contexts Context composition Part III: Context in practice Operational semantics of context Context implementation in practice in event processing Context implementation in other computing areas Conclusion
  • 5. Context in language and pragmatics
  • 6. Context in language – why are we laughing from jokes?
    • A man walks in the street with a duck, his friend approaches him
    • Friend: why are you walking with a duck?
    • Man: I went out of home and this duck followed with me and doesn’t leave me alone
    • Friend: take him to the zoo
    • Next day the same man still walks in the street with a duck, his friend approaches him again
    • Friend: why haven’t you taken the duck to the zoo?
    • Man: I took him to the zoo, cinema, pub– he still doesn’t leave me alone
    Where is the context switch?
  • 7. Another joke example Four researchers are exploring the jungle, and are captured by a tribe of cannibals The chief of the tribe said: we shall eat this one today, this one tomorrow, and this one the day after His deputy asks: what about the blond Guy? The chief answers: we shall release him, since he helped me preparing to the PhD qualification exam in MIT
  • 8. The context switch principle The cannibals are wild The cannibal chief has PhD from MIT
  • 9. Meaning disambiguation by context The table? “ The” is always within context
  • 10. Some parts of the language affected by context Addressing people Request form Code switching for multi-lingual people Discourse context – e.g. shared experience
  • 11. Context as “behavior selection” In some countries I carry money in my wallet, in other countries I hide the money under my clothes When the radio tells me about a traffic jam in the highway I take an alternative route If I am getting a request from an important person I re-arrange my priorities to handle it first (otherwise I put it in a queue) A Jewish person who observes the religious laws does not eat diary food within six hours from the time of eating meat I need to get to a certain address in Sidney using public transportation, I am looking for fastest way (train, bus, boat) Spatial Context State-oriented Context Segmentation Context Temporal + segmentation Context Spatial + temporal + state-oriented context
  • 12. Context in pragmatics – travelling in Sydney Request Determine Context Select Service Take me to address X Requester is now in location Y; no car; has daily ticket for all public transport; it is rush hour Selected alternative
  • 13. Roles of context in computing
  • 14. Roles Of Context In Computing
    • Context in the world of software:
      • A major step towards modeling the real world functional behavior
      • Most of the software considers only direct information
      • Context-aware software acts also upon (indirect) relevant information, which represents the conditions under which the processing is done
    • Examples
      • Automatic tow service ordering system
      • Calls routing application
    “ Context-aware computing is the concept of leveraging information about the end user to improve the quality of the interaction” (Gartner 2007)
  • 15. Software Architecture in the Context of History Era of the Mainframe OLTP Batch Agility of Enterprise IT 1960s 1980s 1970s 1990s 2000s 2010s Era of the Server Two-tier Era of the Web SOA Three-tier CoDA Era of Context Presence Mobility Web 2.0 Social computing Time 2020s Advanced SOA = event-driven SOA CoDA = Context-driven Architecture Web Web Services Multi-channel PC LAN Server Internet Advanced SOA XTP CEP S/360 SNA Mainframe (Gartner 2007)
  • 16. Context-aware Computing Context (indirect relevant information) Service Input (direct imperative information) Data stores Web feeds Services Events Sensors Queues Logs
  • 17. Context Applications
    • Telecommunication
      • GeoVector applications
        • Smart phones users can find out when the museum opens, find an ATM on the way home, ask for a coupon, make a purchase by simply pointing the mobile device at the desired direction or object
      • Smart call routing systems
        • Routing phone calls based on the user’s location and pre-defined preferences
          • At home – wire line phone
          • At office – IP phone or instant messaging application
          • At the movie theater – SMS only
  • 18. Context Applications – cont.
    • Social computing
      • Google search and advertising
        • Improving search relevance, and placement of advertisements according to context
      • Amazon B2C offers the user the most-relevant experience in e-commerce by using:
        • History of a user's activity and his location, current activities by other relevant users, political and social news environment
      • Facebook bases its service offering on user’s context
        • Content a user creates, seeks and finds depends on his social context: identity, memberships, and the power of his connections to other members
  • 19. Introduction to context in event processing
  • 20. Context has three distinct roles (which may be combined) Partition the incoming events The events that relate to each customer are processed separately Grouping events together Different processing for Different context partitions Determining the processing Grouping together events that happened in the same hour at the same location
  • 21. Contextual representation of event Spatial coordinates System entry point Detection time Occurrence time
  • 22. Introduction to context categories
  • 23. Context Definition A context is a named specification of conditions that groups event instances so that they can be processed in a related way. It assigns each event instance to one or more context partitions . A context may have one or more context dimensions. Temporal Spatial State Oriented Segmentation Oriented
  • 24. Context Types Examples Spatial State Oriented Temporal Context “ Every day between 08:00 and 10:00 AM” “ A week after borrowing a disk” “ A time window bounded by TradingDayStart and TradingDayEnd events” “ 3 miles from the traffic accident location” “ Within an authorized zone in a manufactory” “ All Children 2-5 years old” “ All platinum customers” “ Airport security level is red” “ Weather is stormy” Segmentation Oriented
  • 25. Context Types Context Fixed location Entity distance location Event distance location Spatial State Oriented Fixed interval Event interval Sliding fixed interval Sliding event interval Temporal Segmentation Oriented
  • 26. Context Building Block Context identifier Context dimension Context type Context parameters Context initiator policies Building Block Describing Context Context Details Explicit Partitions Partition identifier Partition parameters Composition Details Relationships Member contexts Priority Order Location service global state
  • 27. Temporal context
  • 28. Temporal Context
    • Events grouping - group events to process them together based on the fact they have occurred during the same interval
      • Example: count all the bids within the auction period
    • EPA applicability - indicate that a certain event processing agent is applicable within certain intervals and is not applicable in other intervals.
      • Example: detect if all printers at the same floor are off-line during working hours.
      • Temporal interval is a half open interval [Ts, Te)
        • Ts is start-point, included in the interval
        • Te is end-point, not included in the interval
    Temporal context is aimed to partition the temporal space into time intervals.
  • 29. Fixed Interval Fixed interval Interval start Interval end Recurrence Temporal ordering In a fixed interval context each window is an interval that has a fixed time length; there may be just one single window or a periodically repeating sequence of windows. July 12, 2010, 2:30 PM + 3 hours 08:00 10:00 08:00 10:00 08:00 10:00
  • 30. E vent Interval
    • In an event interval context each window is an interval that starts
    • when the associated EPA receives an event that satisfies a specified
    • predicate.
    • It ends when it receives an event that satisfies a second predicate, or
    • when a given period has elapsed.
    Event interval Initiator event list Terminator event list Expiration time offset Expiration event count Initiator policy Terminator policy Temporal ordering Patient’s admittance Patient’s release Earthquake From patient’s admittance to patient’s release + 3 days Within 3 days from an earthquake
  • 31. Sliding Fixed Interval In a sliding fixed interval context each window is an interval with fixed temporal size. New windows are opened at regular intervals relative to one another. Sliding fixed interval Interval period Interval duration Interval size (events) Temporal ordering 2 hours 2 hours 2 hours 1 hour 1 hour 1 hour
  • 32. Sliding Event Interval A sliding event interval is an interval of fixed size (events number) that continuously slides on the time axis. Sliding event interval Event list Interval size (events) Event period Temporal ordering Every 3 blood pressure measurements
  • 33. Context Initiator Policies
    • Within three days of an volcano eruption:
    • initiator event = volcano eruption, expiration time offset = + 3 days
    March 5, 2010 10:00 March 7, 2010 06:00
  • 34. Context Initiator Policies – cont. A context initiator policy is a semantic abstraction that defines the behavior required when a window has been opened and a subsequent initiator event is detected. add ignore refresh extend
  • 35. Context Terminator Policies
    • Starting with Island volcano eruption till full flight resumption
    • initiator event = volcano eruption, terminator event = flights resumption
  • 36. Context Terminator Policies – cont. A context terminator policy is a semantic abstraction that defines the behavior required when several windows have been opened by subsequent initiators. first last all
  • 37. Temporal Ordering Policy
    • Determine whether a specific event falls within the interval:
    • By the detection time - the timestamp created by the system when the event enters the system
    • By the occurrence time - the time in which the event source specifies as the time in which the event occurred in reality
    May 1, 2010, 11:45:00 AM May 1, 2010, 11:45:00 AM
  • 38. Segmentation context
  • 39. Segmentation Oriented Context A segmentation-oriented context assigns events to context partitions based on the values of one or more event attributes, either using the value of these attributes to pick a partition directly, or using predicate expressions to define context partition membership. Segmentation-oriented Attribute list Partition identifier Partition expression
    • Unrestricted number of partitions
      • Segmentation by CustomerId
    • Fixed number of partitions
      • Segmentation by different age ranges
        • age < 21
        • age  30 and age < 50
        • age  50 and age < 67
        • age  67
  • 40. Segmentation Oriented Context – cont.
    • Unrestricted number of partitions:
      • Average of customer’s deposits over last month
    John Tim Helen David
  • 41. Segmentation Oriented Context – cont.
    • Fixed number of partitions
      • Distribution of alcohol consumption by age
    18-25 26-50 50-
  • 42. Spatial Context
  • 43. Spatial context
  • 44. Spatial properties of events
  • 45. Fixed location
    • A f ixed location context has predefined context partitions based on specific spatial entities. An event is included in a partition if its location attribute indicates that it is correlated with the partition’s spatial entity.
    Relations between the event’s location and the context entity’s location An event is classified to a context partition if satisfy a spatial relationship with fixed entity
  • 46. Fixed location examples A person enters the house: The house location is an area, the person’s location is a point; the relation is touches A car parks across two lanes The car parked location is an area, the lane is an area; the relation is overlaps An Alzheimer patient has gone outside of the safe zone defined by his family. His location is a point, the zone is an area; the relation is disjoint
  • 47. Entity Distance Location
    • An entity distance location context assigns events to context partitions based on their distance from a given entity. This entity is either specified by an event attribute or is given as part of the context specification
    Entity d1 d2
  • 48. Entity distance location examples A driver enters the restaurant’s interest context when arriving to a certain radius from the restaurant A bus is within the context of a certain bus station if it is within a certain distance from the station
  • 49. Event Distance Location
    • An event distance location context assigns events to context partitions based on their distance from the location of the event that triggered the creation of the partition.
    d1 d2
  • 50. Event distant location example A fire breaks within a certain radius from the earthquake epicenter The distance space is partitioned, different actions for different partitions A suspect fits the criminal’s profile is arrested within a certain radius from the crime scene
  • 51. State oriented context
  • 52. Where states are coming from? Explicit state machines Observation in Workflow/BPM State of some entity Typically stored in DB/ global variable
  • 53. State examples When the CPU is overloaded When a backup is running When a person is presenting When the mood in Wall Street is bullish.
  • 54. The temporal aspects of state Occurs while a state is valid? The “while” may be determined by detection time or by occurrence time If the state is – raining, Then it makes sense that the association of events is determined according to occurrence time If the state is – CPU is overloaded Then it makes sense that events that result in further processing are associated according to their detection time.
  • 55. Context composition
  • 56. Composite context A composite context is a context that is composed from two or more contexts. Example: the set of context partitions for the composite context is the Cartesian product of the partition sets of its constituent contexts.
  • 57. Composition of context – some observations: The most common combination is: segmentation and temporal The relations between the composed contexts can be – union or intersection (intersection is the more common) There may be multiple composition participants In some cases a priority is needed to disambiguate the context affiliation State: rainy union Temporal: every day between midnight and 6am Segment: customer Temporal: Every 10 orders Segment: driver Temporal: Within 1 hour from an accident Spatial: within 5KM from the accident Segment: customer Temporal: Every 10 orders
  • 58. Priorities in event composition Temporal: Every 10 orders Segment: customer First create group of 10 orders and this group by customer The temporal context has higher priority
  • 59. Priorities in event composition Segment: customer Temporal: Every 10 orders First group of by customer and then count 10 orders for each customer The segmentation context has higher priority
  • 60. Operational semantics of context
  • 61. Context in Applications
    • Currently in most applications the context logic is embedded in the traditional code. No separation of concerns resulting in:
      • No reuse of context logic
      • Change management is troublesome and non-efficient
      • Increased application maintenance cost
      • Reduced business agility
    Application Context
  • 62. Context Decoupling
    • Externalizing the rapidly-changing context logic from the traditional application code leads to:
      • Increased flexibility and adaptability
      • Better reflection of business policies on business logic
        • All building blocks are explicitly defined
      • Reduced application development and maintenance time, as well as costs
    Application Context
  • 63. Introducing Context Service
    • Context is a logical component in EPN
    • Context service is a runtime component implementing and managing the context
  • 64. The Role of Context Service
    • Initiation of new context’s partitions
    • Terminating of existing context’s partitions
    • Deciding on affiliation of an object instance to a certain partition
      • Based on the partition attributes
      • Based on the object attributes
    Context service manages the active contexts lifecycle Context service context 2 EPA 1 EPA 2 Partitions EPA 1 Partitions Context 1 Context 2 Context 3 EPA 1 EPA 2 Partitions context 1 Context service
  • 65. Context Service – Points for Consideration
    • Context partitions and event instance management
    • Architecture for the context service
      • Centralized vs. distributed architecture
  • 66. Partition and Event Instance Management
    • The role of managing the content in each of the partitions can either fall on
      • the context service
      • the agent (EPA) associated with the specific context
    • In case the context service is managing the partition’s content:
    • In case the agent is managing the partition’s content:
    E1 ,E2, E3 EPA 1 EPA 2 Partitions Context 1 E1,E2 E3 Context service Agent Pattern evaluation E1,E2 E1 ,E2, E3 Agent Pattern evaluation EPA 1 EPA 2 Partitions Context 1 Context service E1,E2 E3
  • 67. Centralized vs. Distributed Architecture
    • Should take into consideration some functional and non-functional requirements
      • Functional requirements
        • Correctness of initiator/terminator/participant semantics
      • Non functional requirements
        • Performance, scalability, reliability
  • 68. Centralized Context Service
    • Performance bottleneck
    • Non scalable in terms of throughput and number of agents
    Agent Context service Agent Agent Agent
  • 69. Distributed Context Service on Agent’s Level
    • Managing shared context in a completely distributed environment
      • Requires devising control mechanisms to communicate the changes in shared context state to all interested parties
    Agent Context service Agent Context service Agent Context service Agent Context service Agent Context service
  • 70. Hybrid Approach
    • Hybrid approach – distributed context service on the system’s level
      • Context service – one per one runtime engine
      • The context state is shared between distributed instances of the context service
    Agent Context service Agent Context service Agent Context service Context state
  • 71. Context Implementation in Practice: Event Processing Implementations
  • 72. Context in Practice - Streambase CREATE WINDOW tenSecondsInterval ( SIZE 10 ADVANCE 1 {TIME} ); CREATE WINDOW eventsInterval ( SIZE 10 ADVANCE 1 {TUPLE} TIMEOUT 20 ); Sliding fixed interval Sliding event interval
  • 73. Context in Practice – Oracle EPL SELECT * FROM Withdrawal RETAIN 5 EVENTS SELECT * FROM Withdrawal RETAIN 4 SECONDS
  • 74. Context in Practice –Sybase (Aleri/Coral8) CCL CREATE WINDOW Book_w SCHEMA Book_t KEEP ALL ; INSERT INTO Book_w SELECT * FROM Book_s; The KEEP policy specifies the kind of window. Here are some examples: KEEP LAST PER Id KEEP 3 MINUTES KEEP EVERY 3 MINUTES KEEP UNTIL (”MON 17:00:00”) KEEP 10 ROWS KEEP LAST ROW KEEP 10 ROWS PER Symbol
  • 75. Context in Practice – Progress Apama
  • 76. Context in Practice – AMiT
    • A key is a collection of event attributes that are used to match different events.
    • These attributes must have syntactic compatibility, and are usually semantically equivalent.
    OrderId Key String CustomerOrder OrderId CustomerOrderCancel OrderId OrderDelivery Id OrderShipmentReport Number
  • 77. Context in Practice – AMiT
  • 78. Context in Practice – AMiT
    • A lifespan is a time interval during which pattern detection is relevant – temporal context.
    • A lifespan is bounded by an initiator and a terminator .
    • Initiator – beings the lifespan. The initiator can be an event, absolute time, startup (CEP engine startup).
      • A lifespan can use more than one initiator
    • Terminator – ends the lifespan. The terminator can be event, expiration time, absolute time, or no-terminator.
      • A lifespan can use more than one terminator
  • 79. Context in Practice – AMiT
  • 80. Context in Practice – WBE
  • 81. ruleCore Reakt
  • 82. Contexts implementations in other types of computing
  • 83. Data in context Contextual data: Temporal database: transaction time, valid time Spatial database: geographic abstraction Spatio-temporal database: intersection of these two
  • 84. ContextPhone /
  • 85. MIT Media Lab – context in kitchen appliances The Context-Aware Computing group is focused on demonstrating the possibilities for controlling systems with interpreted human intention. The goal is to demonstrate how “context” such as who we are, what we are doing, where we are doing it, why we might be doing it, and when it should be done can simplify our ability to control systems.
  • 86. MIThril – context aware wearable computing Based on sensing and machine learning – context engine and wearable sensors and processors
  • 87. Sixth sense
  • 88. Context and websites Contextualization of websites: making them appear in searches of certain category (reverse engineering of the search engine algorithms) Using the user’s context to generate results Contextualization of websites: making them appear in searches of certain category (reverse engineering of the search engine algorithms)
  • 89. IBM Entity Analytics – context acquisition by dependencies Good Guys Subjects of Interest Hotel guests Loyalty club enrollment Employees Vendors Victims Specially designated nationals Excluded persons Gaming license revocations Known cheaters Interpol FBI Most Wanted
  • 90. Summary
  • 91. Context Separation of context from the logic Next phase of abstraction independence BPM and rules provided separation between programming in the large and programming in the small Databases provided data independence
  • 92. Context is: One of the key building blocks in event processing modeling A language construct that starts to appear in event processing languages An emerging concept in enterprise computing