Survey of Publish Subscribe Communication System

Author: Shehnaaz Yusuf
email: syusufp@kent.edu homepage: http://www.cs.kent.edu/~sdawoodi

Prepared for Dr Javed Khan
Department of Computer Science, Kent State University
Date: December 2004


Abstract:One of the biggest challenges in research is an effective dissemination of huge quantity of information from publisher to subscriber. The general model is based on delivering the information to consumer based on few simple static rules. As the system grows, we finds that these implementation are not effective neither feasible. As such, publish subscribe communication system is recognize as a supportive model for handling the propagation of information from publisher to subscriber. In this paper we will survey publish subscribe system based on subscription and architecture model. We also made a comparison of existing system such as SCRIBE, GRYPHON, SIENA and HERMES. Finally we cover all the references that helped in making this survey possible

[Keywords]: Publish Subscribe, topic-based, Content Based, notification, subscription, multicast tree, type based, broker


Other Survey's on Internetwork-based Applications
Back to Javed I. Khan's Home Page
Table Of Content

1. INTRODUCTION

1.1 What is Publish-Subscribe System?
1.2 What is Notification System
1.3 Objective of Publish Subscribe System
1.4 Goal of This Survey
1.5 A high Level View of Publish Subscribe

2. MODEL COMPARISON

2.1 Subscription Models
2.2 Architecture Models
2.3 Survey of Publish Subscribe System
2.4 Summary and Future Work

3. REFERENCES

3.1 Publications
3.2 Groups
3.3 Scope

1. INTRODUCTION

1.1 What is Publish-Subscribe System?

Publishers publish events, and subscribers subscribe to and receive the events they are interested in. The main characterization of pub/sub is in the way notifications flow from senders to receivers. Receivers are not directly targeted from publisher but indirectly addressed according to the content of notifications. Subscriber expresses its interest by issuing subscriptions for specific notifications, independently from the publishers that produces them, and then it is asynchronously notified for all notifications, submitted by any publisher, that match their subscription.

1.2 What is Notification System

Notification Service is a propagation mechanism that acts as a logical intermediary(middle-layer) between publishers and subscribers to avoid each publisher to have to know all the subscription for each possible subscriber. Both publishers and subscribers communicate only with a single entity, the Notification Service, that (i) stores all the subscriptions associated with the respective subscribers, (ii) receives all the notifications from publishers, (iii) dispatches all the published notification to the correct subscribers. With this, publishers and subscribers exchange information without directly knowing each other. This anonymity is one of the main features of the pub/sub system which.

1.3 Objective and key focus of Publish Subscribe System

The general objective of publish/subscribe (pub/sub) system is to let information propagate from publishers to interested subscribers, in an anonymous, decoupled fashion. Three key focus to meet the objective are ([1]):

- How subscribers’ interest is expressed in relation to information.

- How the Notification Service is implemented.

- How information is propagated from publishers to subscribers.

1.4 Goal of This Survey

Following are 3 goals for this survey:

i) Investigate and present 3 types of Publish Subscribe system based on following subscription model: Topic based, content based and type based pubsub system
ii) Investigate and present 3 architecture models for pub sub based on following implementations; Network Multicasting, Application level network and Peer to peer network infrastructure
iii) Thirdly, survey of existing pub sub system and comparison between them. The system selected for this survey is SCRIBE, GRYPHON, SIENA and HERMES

1.5 A high Level View of Publish Subscribe

Figure 1 (below) shows a Generic Model of Publish Subscribe System. p  = p1, . . . , pn is a set of n processes, called the publishers, which are producers of information. S  = s1, . . . , sm is a set of m processes called the subscribers, which are consumers of information. S and p may act both as a publisher and as a subscriber. d = B1, . . . ,Bo is a set of o processes, called brokers. A process in p cannot communicate directly with a process in S . A process in p and S can exclusively communicate with any other process in d. Set of brokers d allows the communication between publishers and subscribers, at the same time maintaining them decoupled. d is referred to as Notification Service (or Event Service). Publishers and subscribers act as clients for the Notification Service.

Figure 1: High Level View of Publish Subscribe Network(from [1])


2.0 MODEL COMPARISON

In this section we will make various comparison of existing publish/subscribe system based on subscription model (section 2.1), architecture model (section 2.2) and few existing implementations (section 2.3)

2.1 Subscription Model

There are various model of subscription based on how subscriber express their interest for a certain notification and how the matching is done by the notification system so that the subscribers only receive information that he/she is interested in. Table 1 (below) present 3 publish/subscribe subscription models. We highlight the key distinctions between all 3 models. Then we proceed to compare the strength and weakness for each given model

Table 1: Publish/Subscribe system based on subscription model

Pub/Sub Element

Topic(subject)-Based

Content-Based

Type-Based

Notification

Notifications are grouped in topics (or subjects)

Is not classified according some pre-defined external criterion (i.e., topic name), but according to properties of the notifications themselves (computed at publication time)

Each subscriber only receives the notifications that match entirely its individual criteria. Such application requirements can be seen as a pattern against which messages are matched, and are translated to filters

Type-based publish/subscribe
scheme consists in using the type scheme of an “ordinary”
programming language. Notifications are declared as objects belonging to a specific type (obvents), which can thus encapsulate attributes as well as methods

In type-based pubsub, the subscriber of a particular type of objects will only receive instances of that type and its subtypes.

Subscriber

Subscriber will receive all notifications related to that particular topic (identified by keywords)

Subscribers can announce their individual interests by specifying the properties of the event notifications they are interested in.

Consumers subscribe to elective events by specifying filters (constraints <. >) using a subscription language.

Event subscriber specifies the event type (i.e. topic) it is interested in, and then supplies a filter expression that operates on the attributes provided by this event type. Since the middleware knows the event type and its definition, it can type-check events and subscriptions at runtime, and inform the user about any mismatches.

Topics

Topics are structured in a hirearchy

Topics filtered according to events and type

In type-based publish subscribe, events are objects, i.e., instances of native types in an object-oriented programming language

Groups

subscribing to a topic T means a user is becoming a member of group T, and publishing an event on topic T means becoming a publisher for topic T.

There is no concept of groups as topic are not rearranged into keywords.

messages regrouped in a topic usually are of the same type because they are somehow related, i.e., they notify
the same kind of event

Communication

Exist a well-defined path (channel) from publisher to all interested subscribers.

Subscription patterns used to identify the events of interest for a given subscriber and propagate events accordingly.

Producers publish information on an information bus and
A subscriber advertises its interest in a type T, which
means that it will receive all messages of type T.

Subscription

A subscription made to some node in the hierarchy implicitly involves subscriptions to all the subtopics of that node.

subscription scheme based on the actual content of the considered events

Events are not classified according to some predefined external criterion (e.g., topic name), but according to the properties of the events themselves. Such properties can be internal attributes of data structures carrying events, as in Gryphon

 

In a type-based subscription the declaration of a desired type is the main discriminating attribute.

Subscriber-specified content filters further limit the events that will be delivered to the subscriber. Content filters are specified in the native language based on the events’ public attributes and methods, and they may be processed remotely to reduce network load and processing load at subscribers.

Advantage

Efficient implementations of a topic based pubsub as the message clasification is static

Routing is simple through multicast group to peers that match subscription topics

A notification (specific) that does not match any subscription is not sent to any client, saving network resources

Enable subscribers to describe runtime properties of the message objects they wish to receive

A major advantage is in the simplicity and flexibility of decentralization implementation as this enables the system to support a large number of clinet and huge amount of data transfers. Another advantage is in tems of scalability by use of remote content filtering (eg locally at the subscriber).

Disadvantage

The main drawback of the topic-based model is the very limited expressiveness it offers to subscribers.

A subscriber have to subscribe to a topic even if he/she is interested in certain specific criteria, which leads to an inefficient use of bandwidth.

expressive, but higher runtime overhead

requires complex protocols/implementation to determine the subscriber

Many events need to be pruned for performance reasons. An example: clients (publisher) may produce a very large number of events and it will be inefficient to publish all of them as events as and so there should be a mechanism to prunes the events before publishing so as not to overwhelm the systems.

Example of System

TIB/RV, SCRIBE, Bayeux ,The CORBA Notification Service

Elvin, Gryphon, Siena, Jedi

Hermes, Knight

2.2 Architecture Models

There are basically three implementation for the architecture of a Notification Service (Figure 2):

i) Relying on multicasting facilities provided by the underlying network levels - Figure 2. a

Network level multicast is mostly used by topic based system as each topic corresponds exactly to one multicast group.The main advantage of a network-level multicast approach lies in low latencies and high throughput. One of the drawback of this approach is that is cannot be easily deployed in WAN

ii) Implementing a broker-level notification routing protocol - Figure 2 (b).

Building an application-level network of brokers is the most common approach for designing a distributed Notification Service. Each broker communicates with its neighbor using following protocols TCP/IP, HTTP or IIOP/DCOM for subscription and publication. Main drawback with this approach is that the application-level topology may not match the underlying physical network: and the link between two brokers may actually map to a “long” network path.

iii) Exploiting a peer-to-peer overlay network infrastructure for application level multicasting - Figure 2 (c).

An overlay routing network is a logical application-level network that is built on top of a general network layer like IP unicast. The nodes that are part of the overlay network
can route messages between each other through the overlay network. There is an overhead associated with using a logical network for routing, as the logical topology does not
necessarily mirror the physical topology.However, more sophisticated routing algorithms can be used and deployed since routing is implemented at the application level

Figure 2 : Pub/sub Architectural Models (from [1])

Table 2 presents the architecture of pub/sub system with respect to how the notification system is implemented which corresponds to implementation given in figure 2. Then we describe the mechanism that is used for communications between publishers and subscribers. Finally we point out some advantages and disadvantages of these approaches followed by some example of the systems

Table 2: Architecture of Publish Subscribe Model

Architecture Model

Network Multicasting

Application Level Network

P2P network Infrastructure

How

Multicasting can be directly used in topic-based systems,  as each topic corresponds exactly to one multicast group

Notifications system consist of Brokers that communicate through TCP/IP links and also IIOP DCOM..Brokers communicate with other sets of brokers(process) for forwarding punblishing event and matching those with subscriptions of participant

PubSub notifications system runs on top of existing peer-to-peer network infrastructure. Pubsub is composed by sets of node, with unique identifier. Sending/retrieving information to/from one or more specific node(s) by specifying its identifier.

Advantage

Main advantage using this approach is in the low lattencies and high throughput and the ease of forwarding subscriptions to a large number of users consisting of groups through a simple matches of keywords to group names.

System is more scalable even if the size grows as the communications in the notifications component is through new neighbor brokers. Messgaing involves use of concurrent conenctions and sets of data structures for matching subsciber interest with informations from publishers brokers

The fault-tolerance mechanisms provided by the overlay network are used to manage the logical network of brokers. Link and node failures are dealt with transparently by the overlay network. Second, the connection and disconnection of brokers to/from the network is handled by the overlay layer. Finally, the overlay routing operation allows brokers to find rendezvous points for building event dissemination trees

Disadvantage

The main drawback with this implementations is that it is unscalable for a large number of participants

Main disadvantage is in a much slower performance as the implementations of notifications systems is through an application layer. The connections among the brokers are not fully automated and may require some active support from user to set up correct connections between any 2 or more brokers.

Some of the disadvantages are security, maintenance of pubsub resources and lack of centralized control may contribute to synchronization problems between dynamic peer membership and notifications component within the systems

Example

Scribe

TIB/RV, Gryphon , SIENA, or JEDI

Pastry, Chord, Tapestry  (unicast diffusion) or CAN, I3  and Astrolabe (multicast diffusion), hermes

2.3 Survey of Publish Subscribe System

In this section we present our formal survey of publish subscribe communication system in tabular format. We selected following system for reason state below. Systems are also classified according to criteria mentioned in section 2.1 (subscription model) and section 2.2 (architecture model)

Reason for selection of pub sub system (in table 3)
i) Originator: Either the implementations is an industry pub sub system (Scribe and Gryphon) or research/academia pub sub system (in case of Hermes and SIENA)
ii) Subscription Model: We selected SCRIBE for its topic based subscription, GRYPHON for both its topic and content based approach, SIENA for its content based approach and HERMES for its type based subscription model.
iii) Architecture: SCRIBE for its network multicast implementation on P2P, GRYPHON and SIENA for its Network level application and HERMES for its Peer to peer architecture.

Table 3 : Survey of various type of Publish Subscribe implementations

 

SCRIBE

GRYPHON

SIENA

HERMES

Developer

Microsoft Research

IBM Research Center

Univ Colorado

Univ Cambridge

Model Type

topic-based systems

topic and content-based system

content-based system

Type-based System

Subscription

When a new node subscribes for a subject, its subscription is routed by Pastry to the corresponding target broker, that updates the tree structure in order to include the new subscriber. When an event is published for a subject, event routing is performed through Pastry, by directly routing the event to the target broker for that subject. The target broker is simply addressed by the subject’s identifier. When an event arrives at the target broker, matching reduces to identifying the correct multicast tree and notification routing is performed by diffusing the notification through such tree.

Clients may subscribe using both a topic identifying messages tagged with the topic by a publisher, and using filters that select messages based on their content. The content filter language is based on the WHERE syntax of SQL 92.

Subscribers declare their interests by means of selection predicates,
while publisher simply publish messages. The service consists of delivering to any and all receivers each message
that matches the selection predicates declared by those receivers.Message content is structured as a set of attribute/value pairs, and a selection predicate is a logical disjunction of conjunctions of elementary constraints over the values of individual attributes.

 

 

Subscribing to a collection of events which are of a given type T , implicitly means that the events of interest are those which conform to type T . By registering a callback object, the application can be notified of the occurrence of events that conform to type T.

Subscribing to a type T triggers subscriptions to all of T ’s subtypes. Accordingly, we define subs(T ) as the action of subscribing to type T , and recv(C) as receiving all published instances (message objects) of class C

 

Architecture Model

Scribe is built upon a peer to peer overlay network infrastructure call Pastry and the pubsub implementations is Network Multicasting

Application Level Network Gryphon clients can be deployed on any platform supported by a JVM, including web browsers.

Application Level Network The architecture is a content-based network overlay where routers perform specialized routing and forwarding functions.

peer-to-peer overlay routing network

Implementation

Each topic is assigned a random identifier and the Pastry node with the identifier closest to the topic becomes the target broker for that topic. A multicast tree is built for each topic, rooted at the corresponding target broker. Each broker in Pastry is assigned an unique identifier in the network and messages can be routed to a specific broker by simply specifying its identifier.

Routing of messages is in a application-level network of brokers. Any node present in the tree is called a forwarder, and may or may not be a member of the multicast group. A node may be a forwarder for any number of groups. One child table per group is stored.A Scribe node that wishes to join a group sends a JOIN message with the groupId as key. To leave a group, a node sends a LEAVE message to its parent in the
multicast tree, removes the leaving node from its child table.

Gryphon implements the publish/subscribe portion of Java Message Services (JMS) API J2EE.JMS specifies how clients establish connections to a publish/subscribe service, subscribe to messages, publish messages, and build messages.

Gryphon uses a patented matching engine to provide high-speed content filtering comparable to topic-only approaches.

Gryphon also organizes topics into a hierarchy and supports wildcards to allow subscribers maximum flexibility in their topic subscriptions.

 

 

Routing is done by synthesizing distribution paths from a combination of the topological features of the overlay network and the selection predicates declared by subscribers. The routing function compiles two forwarding tables: the first contains topological constraints, and is conceptually identical to a forwarding table of an IP router, while the second contains selection predicates, and is the result of combining the selection predicates declared by subscribers. The forwarding function determines the set of next-hop destinations by applying the appropriate topological constraints found in the first table, and by matching the content of the message against the setof selection predicates found in the second table.

Like pastry, each node has a unique random numerical identifierand send a message to another broker. Hermes uses rendezvous nodes in the network(special node function as meeting points for advertisements
and subscriptions).

Each event and subscription is associated with an event type that is type-checked at runtime. The event type contains a number of data fields (i.e. attributes).

Each event type is managed by an event broker that functions as the rendezvous node for this type. Event types are organised into event type hierarchies similar to class hierarchies
in an object-oriented language. This means that event types can be derived from each other using inheritance to create more specialised types. A subscription that operates
on a parent type will also match all events that are of a descendent type (supertype subscription).

Advantage

The subscriber management mechanism is efficient for topics with different numbers of subscribers, varying from one to all Scribe nodes. The list of subscribers to a topic is distributed across the nodes in the multicast tree. Pastry’s randomization properties ensure that the tree is well balanced and that the forwarding load is evenly balanced across the nodes. This balance enables Scribe to support large numbers of topics and subscribers per topics. The combination of hierarchical topics and highspeed content filtering provides the flexibility necessary to allow applications to evolve beyond their initial design. Algorithms build logical paths for events from all possible publishers to all subscribers to create a diffusion tree spanning all brokers, so that each broker knows in which direction it has to route the event in order to effectively reach matching subscribers. The implemented algorithm has a good overall performance, stable and is optimize to be used as a forwarding function in content based network routers

Type-based publish/subscribe gives an intuitive model
for using an event-based middleware by first specifying the type and then filtering within the event attributes. The proposed fault-tolerance mechanisms can be transparent to distributed application programmers, but make the system robust on a global scale on which link or node failures are unavoidable. The abstraction of an overlay routing layer helps to hide some of the routing complexity and enables Hermes to scale to a large number of event clients and brokers.

 

Disadvantage

The drawback of Scribe is that it, without extra help, only offers best-effort delivery of messages. There is also no guarantee of ordering among messages.

One of disadvantage of GRYPHON is due to its restricted subscription language which consists only of conjunctions.Because of GRYPHON’s lack of disjunctive subscriptions filter, sometimes user has to submit more subscriptions than needed to filter out certain contents which si not required

SIENA algorithm increases subscription redundancy in order to create effcient routing paths for events,and such replication is necessary

Current implementation does not construct an event dissemination tree dynamically to route events from publishers to all interested subscribers.

 

2.4 Summary and Future Work

Publish/subscribe is recognized as an important and hot research topics in areas such as databases, distributed systems or software engineering. In this survey, we covered subscription models and architecture models. In subscription models we compare 3 different routing scheme which is topic-based, content-based and type based. In the architecture model comparison, we try to highlight key differences between implementations that are based on Network multicast with Application Level Network and P2P overlay network. In the last section, we survey existing Pub/Sub Implementations which include following publish subscribe system SCRIBE, SIENA, GRYPHON and HERMES

From our survey of publish subscribe system, we conclude that

i) Topic-based pub sub has an efficient and simple implementation as the message classification is static and routing of subscription is through groups which are based on topics defined by keyword. But one of the major disadvantaged is that its topic-based model is very limited in expressiveness and sometimes this leads to an inefficient use of bandwidth.

ii) Content based pub sub subscription scheme is based on the actual content of the message /events and hence a notification that does not match any subscription is not sent to any client, saving network resources. But one drawback is that this approach is associated with a higher runtime overhead and requires complex protocols/implementation to send the information from publisher to subscriber

iii) In Type based subscription, subscribers specify content filter that is based on a programming language (eg C++ or java) and the flow of notifications from publisher to subscribers is based on receiving instances of specific types or sub-types. Advantage of this approach is flexibility for subscribers to subscribe any events. Also this approach enables subscription from large number of user. Major disadvantage is that each events from publisher need to be pruned as not overwhelm the system.

Future Work

Current Client-Server communication model is no longer suitable or feasible for an increasingly networked world since the model is based on strongly coupled entity, element and data. Shape of future communication will be on the principal of "decoupled". In lieu of this, Publish Subscribe is a perfect infrastructure as it removes the need to know the person you are communicating with and what the receiver requires from a publisher. This easiness of pub-sub communications systems and anonymity provides the scalability and robustness needed for large scale communication systems.


3.0 REFERENCES

 

3.1 Publications

[1] Antonino Virgillito, Publish/Subscribe Communication System from Models to applications, Phd Thesis, 2003Universit`a degli Studi di Roma "La Sapienza", Italy

[2] Patrick Th. Eugster , Pascal A. Felber, Rachid Guerraoui, Anne-Marie Kermarrec, The many faces of publish/subscribe : ACM Computing Surveys (CSUR), Volume 35 , Issue 2 (June 2003) Pages: 114 - 131, 2003

[3] A. Carzaniga, and A.L. Wolf"Content-based Networking: A New Communication Infrastructure". NSF Workshop on an Infrastructure for Mobile and Wireless Systems. In conjunction with the International Conference on Computer Communications and Networks ICCCN. Scottsdale, AZ. October, 2001.

[4]GBanavar,TChandra,B Mukherjee at el. An Efficient Multicast Protocol for Content-Based Publish-Subscribe Systems,ICDCS 1999 http://www.research.ibm.com/people/b/banavar/icdcs99.pdf

[5] A. Carzaniga, M.J. Rutherford, and A.L. Wolf "A Routing Scheme for Content-Based Networking". Proceedings of IEEE INFOCOM 2004. Hong Kong, China. March, 2004.

[6] Michael Ahlberg and Mans Rullgard, Peer-to-peer routing with Pastry and Multicast using Scribe, Technical Report 05/24/2003, http://www.imit.kth.se/courses/2G1126/vt03/paper_reports/2g1126-group7.pdf

[7] R Baldoni, M Contenti, and AVirgillito, The Evolution of Publish/Subscribe Communication Systems, Springer Verlag LNCS Vol. 2584, 2003 http://www.dis.uniroma1.it/~virgi/papers/BCV_FUDICO02.pdf

[8] Peter R. Pietzuch and Jean M. Bacon. Hermes: A Distributed Event-Based Middleware Architecture. Submitted to the Workshop on Distributed Event-Based Systems (DEBS), 2002. http://citeseer.ist.psu.edu/pietzuch02hermes.html

[9] Antony I. T. Rowstron, Anne-Marie Kermarrec, Miguel Castro, and Peter Druschel, "SCRIBE: The design of a large-scale event notification infrastructure," in Networked Group Communication, 2001, pp. 30--43. http://citeseer.ist.psu.edu/rowstron01scribe.html

[10] M. K. Aguilera, R. E. Strom, D. C. Sturman, M. Astley, and T. D. Chandra. Matching events in a content based subscription system. In Eighteenth ACM Symposium on Principles of Distributed Computing (PODC '99), Atlanta GA, USA, May 4--6 1999. http://www.research.ibm.com/gryphon/papers/matching.pdf

 

3.2 Groups

SCRIBE http://www.research.microsoft.com

SCRIBE is a generic, scalable and efficient group communication and event notification system. It provides application level multicast and anycast. It is built on top of Pastry, a generic, scalable, self-organizing substrate for peer-to-peer applications. This project is owned by Microsoft Research

Key Contact persons are :M. Castro, P. Druschel

 

Gryphon http://www.research.ibm.com/gryphon/

Gryphon is a robust publish/subscribe message broker and has been been deployed over the internet for real-time sports score distribution.Gryphon project is owned by the Distributed Messaging Systems group at IBM T. J. Watson Research Center.

Key Contact persons are: Mark Astley, Josh Auerbach, Sumeer Bhola

SIENA http://www.cs.colorado.edu/users/carzanig/siena/

Siena (Scalable Internet Event Notification Architectures) is a research project at Software Engineering Research Laboratory in the Department of Computer Science at the University of Colorado at Boulder. It aimed at designing and constructing a generic scalable publish/subscribe event-notification service accessible from every site on a wide-area network and suitable for supporting highly distributed applications requiring component interactions ranging in granularity from fine to coarse.

Key Contact person is : Antonio Carzaniga

 

HERMES http://www.cl.cam.ac.uk/Research/SRG/opera/

Hermes is a publish/subscribe system where a network of event brokers decouples publishers and subscribers. Hermes uses XML for event transport while allowing standard programming languages such as Java for typed-event programming in end systems. The project is implemented by The Opera group, part of the Systems Research Group in Cambridge.

Key Contact persons are : Jean Bacon and Ken Moody

 

3.3 Scope

This survey paper is divided into 3 parts. The first part deals with subscription model or how the subscriber expresses their interest for certain information/event. In the second part, we try to analyze the architecture model or physical implementation of pub sub system. In the third part, we look at various type of existing pub sub system based on different subscriptions and architecture models.

4 different type of system: SCRIBE, GRYPHON, SIENA and HERMES are chosen. Based on selected pub sub system, we study its subscription type and architecture model and compare the relative advantages and disadvantages between them.

Papers are selected from publications from IEEE sponsored conferences through its website at http://www.computer.org or from ACM library at http://portal.acm.org/portal.cfm. Papers are selected based on the pub sub implementations as the case for papers [3] and [5] SIENA, [8]Hermes, [6] and [9] SCRIBE and [10] Gryphon. Other papers were reviewed because they presents a key research milestones in publish subscribe system for the past 5 year. Terms and Keyword search for resources through search engine like google or digital library are: Publish Subscribe, topic-based, Content Based, notification, subscription, multicast tree, type based, broker.


Shehnaaz Yusuf, 2004