<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hadi+sajjadpour</id>
	<title>Soma-notes - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Hadi+sajjadpour"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Hadi_sajjadpour"/>
	<updated>2026-04-22T11:01:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9551</id>
		<title>Category:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9551"/>
		<updated>2011-04-13T06:11:31Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: Added new lines between numbers ( result of copy pasting from the PDF)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that the majority of our efforts are contained on the &amp;quot;Discussion&amp;quot; page.&lt;br /&gt;
* [[DistOS-2011W Contracts and Observability Old First Page|Old First Page]]&lt;br /&gt;
&lt;br /&gt;
This report was done by Tarjit Komal, Andrew Luczak, Scott Lyons and Seyyed Sajjadpour.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This paper is an overview of a theoretical implementation of electronic contract negotiation&lt;br /&gt;
systems. We begin by exploring the previous work in the field of electronic contract resolution, and&lt;br /&gt;
we then outline the framework for QUORUM, a proposed system of electronic contract negotiation&lt;br /&gt;
and mediation with an integrated reputation system.&lt;br /&gt;
&lt;br /&gt;
== Focus Of Study ==&lt;br /&gt;
&lt;br /&gt;
The primary goal of this report is to provide some mechanism for a reliable and automated&lt;br /&gt;
contract negotiation framework, which system will ideally be functional over a distributed system.&lt;br /&gt;
As a secondary goal, we discuss a mechanism for observing these contracts; such a mechanism is&lt;br /&gt;
critical for determining when a contract has been properly fulfilled, which we show is a&lt;br /&gt;
requirement for the repeatable success of a contract negotiation system.&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
&lt;br /&gt;
== Automated Contracts ==&lt;br /&gt;
&lt;br /&gt;
We define an automated contract as any contract between computer systems requiring a&lt;br /&gt;
minimum of human intervention. Some human effort may be required to define the guidelines by&lt;br /&gt;
which the system negotiates (i.e. contract with a reliable system with longer wait times as opposed&lt;br /&gt;
to a less-reliable system with shorter wait times), but the system should be able operate&lt;br /&gt;
autonomously for the entire contract period.&lt;br /&gt;
&lt;br /&gt;
== Assumptions == &lt;br /&gt;
&lt;br /&gt;
In order to simplify the problem at hand, we make the following assumptions:&lt;br /&gt;
&lt;br /&gt;
1) All participants in a contract (i.e. the client and the provider), are automated systems&lt;br /&gt;
(either a single machine, or a group of machines).&lt;br /&gt;
&lt;br /&gt;
2) All machines have a unique universal identifier which is un-spoofable.&lt;br /&gt;
&lt;br /&gt;
3) Any conduct violations arising from a violation of contract parameters can be handled&lt;br /&gt;
with perfect efficiency and judicial accuracy.&lt;br /&gt;
&lt;br /&gt;
4) Machines have no mobility, in either a physical or network context.&lt;br /&gt;
&lt;br /&gt;
We make these assumptions recognizing that the current implementation of the Internet&lt;br /&gt;
and other large systems make such a situation impossible (particularly the second assumption&lt;br /&gt;
wherein identifiers are un-spoofable and universal.&lt;br /&gt;
&lt;br /&gt;
== Related Work &amp;amp; Project Basis ==&lt;br /&gt;
&lt;br /&gt;
The field of electronic contracts has been approached in several different ways, with papers&lt;br /&gt;
describing several avenues of research; however, no paper we discovered provided a complete&lt;br /&gt;
system of electronic contract negotiation and validation. Based on what we’ve found in research&lt;br /&gt;
literature, Service Level Agreements (SLA) are the closest to our proposed system, and were the&lt;br /&gt;
basis for our framework.&lt;br /&gt;
&lt;br /&gt;
Using the groundwork laid by the following research groups, we look at the problem at a higher&lt;br /&gt;
level, and focus on an arbitrary network (i.e. a WAN or LAN) that sees computers as citizens.&lt;br /&gt;
Citizens of this network will get the chance to observe contracts and act as witnesses for other&lt;br /&gt;
citizens. We will show how SLA-style contract parameters can be used as the benchmarks of a&lt;br /&gt;
contract verification system, how a reputation system can increase the overall reliability of the&lt;br /&gt;
contract system, and how a gossiping system can provide an effective propagation of system&lt;br /&gt;
capabilities.&lt;br /&gt;
&lt;br /&gt;
=== SLA === &lt;br /&gt;
&lt;br /&gt;
Verma, in his paper [1], defines SLA to be “…a formal relationship that exists between a&lt;br /&gt;
service provider and its customer”. He also mentions some key components of SLAs such as: “a&lt;br /&gt;
description of the nature of service to be provided”; “the expected performance level of the service,&lt;br /&gt;
specifically its reliability and responsiveness”; and “the procedure for reporting problems with the&lt;br /&gt;
service”. These are authentic concerns for any electronic contract. In our system, we adapt Verma’s&lt;br /&gt;
defined components to be used by each contracted party to verify whether a contract has been&lt;br /&gt;
fulfilled or not. Verma also discusses various approaches to guaranteeing service, including an&lt;br /&gt;
insurance approach and an adaptive approach, which can be used by service providers.&lt;br /&gt;
&lt;br /&gt;
=== Reputation ===&lt;br /&gt;
&lt;br /&gt;
Groth et al., in their research [2] on the trustworthiness of contracts, propose two key&lt;br /&gt;
indicators of a contract’s potential reliability: the history of the contracting party, and the similarity&lt;br /&gt;
of the contract to other successful contracts. Groth et al. also lay out an effective template for&lt;br /&gt;
contracts (based in turn upon the IST-CONTRACT project) which we use and build upon in our&lt;br /&gt;
QUORUM system.&lt;br /&gt;
&lt;br /&gt;
=== Gossiping === &lt;br /&gt;
&lt;br /&gt;
In a large network, disseminating information through broadcast updates between&lt;br /&gt;
everyone in the network will create bandwidth, latency and denial-of-service concerns. Hence,&lt;br /&gt;
there needs to be some other ways to disseminate information, while avoiding the above mentioned&lt;br /&gt;
concerns. In their paper[3], Kermarrec et al. define gossiping in distributed systems to be “…the&lt;br /&gt;
repeated probabilistic exchange of information between two members.” In other words, gossiping&lt;br /&gt;
is the random dissemination of information, with correct timeouts and periods (depending on the&lt;br /&gt;
size of the network). In most cases, gossiping would include exchanging lists of information with&lt;br /&gt;
randomly selected nodes.&lt;br /&gt;
&lt;br /&gt;
In principle, most gossiping algorithms follow the framework provided by Kermarrec et al.:&lt;br /&gt;
&lt;br /&gt;
1) Peer (Node) Selection: Selecting a few random nodes in the network.&lt;br /&gt;
&lt;br /&gt;
2) Data Exchanged: Selecting what information to send to the selected nodes.&lt;br /&gt;
&lt;br /&gt;
3) Data Processing: Once data has been received via gossiping, process that data and&lt;br /&gt;
decide what action to take.&lt;br /&gt;
&lt;br /&gt;
Gossiping is a common method of dispersing information in distributed systems, and is&lt;br /&gt;
inspired by real life gossiping. Take, for example, the students in a university department as nodes&lt;br /&gt;
in your network. Once a new student joins the department, he establishes a friendship with a few&lt;br /&gt;
other students (nodes) in the department (network). Subsequently, these students may or may not&lt;br /&gt;
inform others in the department that the new student exists, disclosing the characteristics of the&lt;br /&gt;
&lt;br /&gt;
new student. This gossiping continues, and at the end of a given time period each student has some&lt;br /&gt;
information about some of the other students in the department; it is highly unlikely that any one&lt;br /&gt;
student has information regarding every other student in the department, but every student is&lt;br /&gt;
known by some other student in the department.&lt;br /&gt;
&lt;br /&gt;
== Case Study == &lt;br /&gt;
&lt;br /&gt;
The simplest and most common use case is that of a website suffering from a Denial of&lt;br /&gt;
Service attack or an unexpected traffic influx. In this example and for all future reference,&lt;br /&gt;
ForeverAlone.com is the Client and TooMuchBandwidth.net is the Provider. Some automated&lt;br /&gt;
process or monitor on the Client would be advised of the sudden surge in traffic and would arrange&lt;br /&gt;
to contact the Provider to request their services. A more detailed look into the request process is&lt;br /&gt;
detailed below.&lt;br /&gt;
&lt;br /&gt;
 [[File:Contract_timeline.png]]&lt;br /&gt;
&lt;br /&gt;
= Contracts =&lt;br /&gt;
&lt;br /&gt;
== Contract Template ==&lt;br /&gt;
Groth et al. provide an excellent template for a contract, in the form of a contract schema:&lt;br /&gt;
&lt;br /&gt;
[[File:OC-2011_Table1.png]]&lt;br /&gt;
&lt;br /&gt;
We recognize that this template is simplistic in nature, but it provides an adequate basis for&lt;br /&gt;
discussion of electronic contracts; any implementation of such a template would need a more&lt;br /&gt;
detailed structure and syntax. It is worth noting, however, that the IST CONTRACT group, upon&lt;br /&gt;
whose work Groth et al. based their template, explored the idea of structuring a contract in an XML-&lt;br /&gt;
style wrapper, which seems a logical progression from the above template.&lt;br /&gt;
&lt;br /&gt;
== Contract Formation ==&lt;br /&gt;
&lt;br /&gt;
The formation of a contract has three general steps:&lt;br /&gt;
&lt;br /&gt;
1) The Client issues a Request For Proposal (RFP)&lt;br /&gt;
&lt;br /&gt;
2) A Provider replies to Client with RFP&lt;br /&gt;
&lt;br /&gt;
3) Both parties agree to terms&lt;br /&gt;
&lt;br /&gt;
Once these three steps have been followed, the contract is set and, assuming the activating&lt;br /&gt;
condition is met, the normative conditions are put into force.&lt;br /&gt;
&lt;br /&gt;
There exists a problem, however, in enforcing the formation of a contract: some mechanism&lt;br /&gt;
for verifying the origins of the contract is necessary to prevent the forging of contracts for the&lt;br /&gt;
purposes of self-promotion. This becomes particularly critical when a reputation system is in effect;&lt;br /&gt;
the ability to forge a completed contract would be an incredible advantage for a service provider&lt;br /&gt;
&lt;br /&gt;
wishing to boost its reputation (a key component of the QUORUM system, which we discuss in a&lt;br /&gt;
later section of this paper).&lt;br /&gt;
&lt;br /&gt;
We propose the following procedure for forming a contract:&lt;br /&gt;
&lt;br /&gt;
1) Contract agreement proceeds as above&lt;br /&gt;
&lt;br /&gt;
2) Once the contract has been ratified by the Client and Provider, each provides a copy of&lt;br /&gt;
the contract template to its neighbors&lt;br /&gt;
&lt;br /&gt;
3) Each neighbor signs the contract as a witness, and propagates the contract across the&lt;br /&gt;
network as a whole.&lt;br /&gt;
&lt;br /&gt;
This system will produce a group of multiple contracts, each signed by a different witness,&lt;br /&gt;
but all possessing the same contract identifier (since all copies share the same origin). These&lt;br /&gt;
contracts can later be collected into a single copy, with a list of all witnesses. Contracts can then be&lt;br /&gt;
verified based on the presence or absence of certain systems from the witness list. This observation&lt;br /&gt;
system is built upon a gossiping network protocol, which we describe in more detail later in this&lt;br /&gt;
paper.&lt;br /&gt;
&lt;br /&gt;
== Contract Publication ==&lt;br /&gt;
&lt;br /&gt;
In order to mitigate fraudulent reputation growth, the proposed witnessing mechanism&lt;br /&gt;
requires that the contract be propagated through the network. While only a minimum level of detail&lt;br /&gt;
needs to be shared in order to witness a contract, we recognize the need for a private option, where&lt;br /&gt;
two systems may forge a contract without any details becoming public knowledge. The QUORUM&lt;br /&gt;
system provides such an option, though any contract created in private cannot affect reputation; a&lt;br /&gt;
contract must be witnessed to affect reputation, and a contract must be published to be witnessed.&lt;br /&gt;
&lt;br /&gt;
= QUORUM =&lt;br /&gt;
&lt;br /&gt;
QUORUM, or Quantifiable Uniform Observation and Reporting of Unmanned Mediation, is&lt;br /&gt;
our proposed system for electronic contract negotiation and observation on a distributed system.&lt;br /&gt;
Ideally, QUORUM runs on every machine in the network, acting as a distributed cloud of&lt;br /&gt;
autonomous observers. In addition to the observers, QUORUM is also comprised of a reputation&lt;br /&gt;
system, which is built from the history of contracts on the network.&lt;br /&gt;
&lt;br /&gt;
The observers of QUORUM have a single responsibility. When a contract is published, each&lt;br /&gt;
observer attempts to verify that the normative conditions are being or can be satisfied. Once the&lt;br /&gt;
expiration condition is reached, each observer reports back to reputation system according to what&lt;br /&gt;
they believe the final state of the contract is. These observers must operate upon some metric&lt;br /&gt;
which is appropriate to the contract; metrics for the observers may be a simple binary condition&lt;br /&gt;
(e.g. has system A provided a piece of information to system B) or a more detailed requirement.&lt;br /&gt;
&lt;br /&gt;
== QUORUM Reputation ==&lt;br /&gt;
&lt;br /&gt;
The QUORUM observers report back on a contract in one of three ways:&lt;br /&gt;
&lt;br /&gt;
[[File:OC-2011_Table2.png]]&lt;br /&gt;
&lt;br /&gt;
The reputation system tracks, for each contracting system on the network, a reputation&lt;br /&gt;
score based upon the published contract history of that party. Successful contracts increase&lt;br /&gt;
reputation score, while breached contracts decrease reputation score. Contracts that are voided by&lt;br /&gt;
both parties or negotiated in private (i.e. without witnesses or QUORUM observation) have a&lt;br /&gt;
neutral effect on reputation score (though such contracts will still appear in the contract history).&lt;br /&gt;
This reputation system can then be used by Clients to determine which Provider proposal to accept.&lt;br /&gt;
&lt;br /&gt;
== QUORUM Gossip ==&lt;br /&gt;
&lt;br /&gt;
In order to facilitate the formation of contracts, it is useful to have a regularly updated&lt;br /&gt;
notion of which systems have certain capabilities. For example, if a particular system is in need of&lt;br /&gt;
processing time, it needs to be able to quickly determine which providers can offer assistance. To&lt;br /&gt;
this end, QUORUM requires an inter-system communication network, and so we propose the&lt;br /&gt;
following gossiping system.&lt;br /&gt;
&lt;br /&gt;
=== Gossiping in QUORUM ===&lt;br /&gt;
&lt;br /&gt;
As QUORUM operates, there are four scenarios which involve gossiping: the entrance of a&lt;br /&gt;
node, the location of available services, the exchange of reputation information, and the detection of&lt;br /&gt;
network failure. We will address each of these separately. Various gossiping algorithms exist [4],&lt;br /&gt;
any of which are sufficient for the implementation of QUORUM. Given our current system, we have&lt;br /&gt;
derived a gossiping method that utilizes some components of existing methods, such as the&lt;br /&gt;
framework in [3].&lt;br /&gt;
&lt;br /&gt;
Each node will have a list L of other nodes, in this list there exists the identity and known&lt;br /&gt;
services provided by that node. A node will update entries in L based upon the information it&lt;br /&gt;
receives through gossip messages.&lt;br /&gt;
&lt;br /&gt;
=== Entrance ===&lt;br /&gt;
&lt;br /&gt;
When a node joins a network, it will have the address of two existing nodes on the network.&lt;br /&gt;
After it joins the network, the two nodes will then randomly assign neighbors to the new node,&lt;br /&gt;
selecting them from the QUORUM via some algorithm. Depending on the size of the QUORUM, each&lt;br /&gt;
node will have a fixed h number of neighbors; the number of neighbors and how randomly these&lt;br /&gt;
neighbors are chosen is an area which needs to be investigated further.&lt;br /&gt;
&lt;br /&gt;
The joining node also sends to its neighbors a list of services that it can provide. Once the&lt;br /&gt;
neighbouring nodes have received identified and received the services of the incoming node, they&lt;br /&gt;
can then use a gossiping algorithm of the QUORUM to propagate this information. In turn, the&lt;br /&gt;
neighbors send their lists to the joining node, making it aware of the various capabilities of the&lt;br /&gt;
network it has joined.&lt;br /&gt;
&lt;br /&gt;
=== Search For Services ===&lt;br /&gt;
&lt;br /&gt;
As we saw in the related work, it is highly unlikely (depending on the size of the QUORUM)&lt;br /&gt;
for a node to have knowledge of every other node in the system. A given node that is looking for a&lt;br /&gt;
particular service x, will first look up in his own list L (that has been updated via gossiping&lt;br /&gt;
messages), and if he cannot find service x with the required reputation, he will then ask around the&lt;br /&gt;
QUORUM to find the service he is looking for.&lt;br /&gt;
&lt;br /&gt;
=== Failure Detection ===&lt;br /&gt;
&lt;br /&gt;
Failure detection in distributed systems is a prominent sub-problem of distributed systems,&lt;br /&gt;
and has approached by several research groups (see [5-9], as referenced in [5]). Below we present&lt;br /&gt;
an aggregation of the above efforts, applied to the QUORUM.&lt;br /&gt;
&lt;br /&gt;
Given the neighbor system of QUORUM, each neighbor can expect a gossip message from its&lt;br /&gt;
neighbors in a period of t seconds. If a neighbor of a node r fails to send such a message, then r will&lt;br /&gt;
send a heartbeat message to its neighbors (i.e. the pull model [7,8]) asking whether it is alive or not.&lt;br /&gt;
If r then receives a response, it knows that its neighbor is alive. If r does not receive a response&lt;br /&gt;
(after enough heartbeat messages to be convinced that his neighbor is dead), then it would remove&lt;br /&gt;
that node from the list of its neighbors, look for another neighbor, and communicate the node&lt;br /&gt;
failure (via gossiping messages) to the other members of the QUORUM. Given that this method&lt;br /&gt;
relies heavily upon the neighbors of a node, it might be prudent to implement an additional failure&lt;br /&gt;
detection method, such as that found in the work of Hayashibara et al.[9].&lt;br /&gt;
&lt;br /&gt;
= Future Work And Conclusion =&lt;br /&gt;
&lt;br /&gt;
Moving forward with QUORUM, one main objective would be to attempt an actual&lt;br /&gt;
implementation of the system according to our specifications. In our research we made several&lt;br /&gt;
assumptions, one of which was that computers are not mobile. There could be further research&lt;br /&gt;
done in examining and modifying our QUORUM to allow for system mobility.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] D.C Verma, Service Level Agreements on IP Networks, Proceedings of the IEEE, vol. 92, pp. 1382-&lt;br /&gt;
1388, September 2004.&lt;br /&gt;
&lt;br /&gt;
[2] P. Groth, S. Miles, S. Modgil, N. Oren, M. Luck, G. Yolanda, Determining the Trustworthiness of&lt;br /&gt;
New Electronic Contracts, Engineering Societies in the Agents World X, 2009.&lt;br /&gt;
&lt;br /&gt;
[3] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, SIGOPS Oper. Syst. Rev., 41(5):2-7,&lt;br /&gt;
2007.&lt;br /&gt;
&lt;br /&gt;
[4] S. Boyd, A. Ghosh, B. Prabhakar, and D. Shah. “Randomized Gossip Algorithms.” IEEE&lt;br /&gt;
Transactions on Information Theory, 52(6):2508-2530, June 2006&lt;br /&gt;
&lt;br /&gt;
[5] S. Sajjadpour, Failure Detection in Distributed Systems, Distributed Operating Systems course,&lt;br /&gt;
Carleton University, Winter 2011&lt;br /&gt;
&lt;br /&gt;
[6] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of&lt;br /&gt;
the IFIP International Conference on Distributed Systems Platforms and Open Distributed&lt;br /&gt;
Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[7] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In&lt;br /&gt;
Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The&lt;br /&gt;
version I used here is from 2002.&lt;br /&gt;
&lt;br /&gt;
[8] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In&lt;br /&gt;
21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[9] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings&lt;br /&gt;
of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-&lt;br /&gt;
75, 2004&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9537</id>
		<title>Category:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9537"/>
		<updated>2011-04-13T00:52:05Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that the majority of our efforts are contained on the &amp;quot;Discussion&amp;quot; page.&lt;br /&gt;
* [[DistOS-2011W Contracts and Observability Old First Page|Old First Page]]&lt;br /&gt;
&lt;br /&gt;
This report was done by Tarjit Komal, Andrew Luczak, Scott Lyons and Seyyed Sajjadpour.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This paper is an overview of a theoretical implementation of electronic contract negotiation&lt;br /&gt;
systems. We begin by exploring the previous work in the field of electronic contract resolution, and&lt;br /&gt;
we then outline the framework for QUORUM, a proposed system of electronic contract negotiation&lt;br /&gt;
and mediation with an integrated reputation system.&lt;br /&gt;
&lt;br /&gt;
== Focus Of Study ==&lt;br /&gt;
&lt;br /&gt;
The primary goal of this report is to provide some mechanism for a reliable and automated&lt;br /&gt;
contract negotiation framework, which system will ideally be functional over a distributed system.&lt;br /&gt;
As a secondary goal, we discuss a mechanism for observing these contracts; such a mechanism is&lt;br /&gt;
critical for determining when a contract has been properly fulfilled, which we show is a&lt;br /&gt;
requirement for the repeatable success of a contract negotiation system.&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
&lt;br /&gt;
== Automated Contracts ==&lt;br /&gt;
&lt;br /&gt;
We define an automated contract as any contract between computer systems requiring a&lt;br /&gt;
minimum of human intervention. Some human effort may be required to define the guidelines by&lt;br /&gt;
which the system negotiates (i.e. contract with a reliable system with longer wait times as opposed&lt;br /&gt;
to a less-reliable system with shorter wait times), but the system should be able operate&lt;br /&gt;
autonomously for the entire contract period.&lt;br /&gt;
&lt;br /&gt;
== Assumptions == &lt;br /&gt;
&lt;br /&gt;
In order to simplify the problem at hand, we make the following assumptions:&lt;br /&gt;
&lt;br /&gt;
1) All participants in a contract (i.e. the client and the provider), are automated systems&lt;br /&gt;
(either a single machine, or a group of machines).&lt;br /&gt;
2) All machines have a unique universal identifier which is un-spoofable.&lt;br /&gt;
3) Any conduct violations arising from a violation of contract parameters can be handled&lt;br /&gt;
with perfect efficiency and judicial accuracy.&lt;br /&gt;
4) Machines have no mobility, in either a physical or network context.&lt;br /&gt;
&lt;br /&gt;
We make these assumptions recognizing that the current implementation of the Internet&lt;br /&gt;
and other large systems make such a situation impossible (particularly the second assumption&lt;br /&gt;
wherein identifiers are un-spoofable and universal.&lt;br /&gt;
&lt;br /&gt;
== Related Work &amp;amp; Project Basis ==&lt;br /&gt;
&lt;br /&gt;
The field of electronic contracts has been approached in several different ways, with papers&lt;br /&gt;
describing several avenues of research; however, no paper we discovered provided a complete&lt;br /&gt;
system of electronic contract negotiation and validation. Based on what we’ve found in research&lt;br /&gt;
literature, Service Level Agreements (SLA) are the closest to our proposed system, and were the&lt;br /&gt;
basis for our framework.&lt;br /&gt;
&lt;br /&gt;
Using the groundwork laid by the following research groups, we look at the problem at a higher&lt;br /&gt;
level, and focus on an arbitrary network (i.e. a WAN or LAN) that sees computers as citizens.&lt;br /&gt;
Citizens of this network will get the chance to observe contracts and act as witnesses for other&lt;br /&gt;
citizens. We will show how SLA-style contract parameters can be used as the benchmarks of a&lt;br /&gt;
contract verification system, how a reputation system can increase the overall reliability of the&lt;br /&gt;
contract system, and how a gossiping system can provide an effective propagation of system&lt;br /&gt;
capabilities.&lt;br /&gt;
&lt;br /&gt;
=== SLA === &lt;br /&gt;
&lt;br /&gt;
Verma, in his paper [1], defines SLA to be “…a formal relationship that exists between a&lt;br /&gt;
service provider and its customer”. He also mentions some key components of SLAs such as: “a&lt;br /&gt;
description of the nature of service to be provided”; “the expected performance level of the service,&lt;br /&gt;
specifically its reliability and responsiveness”; and “the procedure for reporting problems with the&lt;br /&gt;
service”. These are authentic concerns for any electronic contract. In our system, we adapt Verma’s&lt;br /&gt;
defined components to be used by each contracted party to verify whether a contract has been&lt;br /&gt;
fulfilled or not. Verma also discusses various approaches to guaranteeing service, including an&lt;br /&gt;
insurance approach and an adaptive approach, which can be used by service providers.&lt;br /&gt;
&lt;br /&gt;
=== Reputation ===&lt;br /&gt;
&lt;br /&gt;
Groth et al., in their research [2] on the trustworthiness of contracts, propose two key&lt;br /&gt;
indicators of a contract’s potential reliability: the history of the contracting party, and the similarity&lt;br /&gt;
of the contract to other successful contracts. Groth et al. also lay out an effective template for&lt;br /&gt;
contracts (based in turn upon the IST-CONTRACT project) which we use and build upon in our&lt;br /&gt;
QUORUM system.&lt;br /&gt;
&lt;br /&gt;
=== Gossiping === &lt;br /&gt;
&lt;br /&gt;
In a large network, disseminating information through broadcast updates between&lt;br /&gt;
everyone in the network will create bandwidth, latency and denial-of-service concerns. Hence,&lt;br /&gt;
there needs to be some other ways to disseminate information, while avoiding the above mentioned&lt;br /&gt;
concerns. In their paper[3], Kermarrec et al. define gossiping in distributed systems to be “…the&lt;br /&gt;
repeated probabilistic exchange of information between two members.” In other words, gossiping&lt;br /&gt;
is the random dissemination of information, with correct timeouts and periods (depending on the&lt;br /&gt;
size of the network). In most cases, gossiping would include exchanging lists of information with&lt;br /&gt;
randomly selected nodes.&lt;br /&gt;
&lt;br /&gt;
In principle, most gossiping algorithms follow the framework provided by Kermarrec et al.:&lt;br /&gt;
&lt;br /&gt;
1) Peer (Node) Selection: Selecting a few random nodes in the network.&lt;br /&gt;
2) Data Exchanged: Selecting what information to send to the selected nodes.&lt;br /&gt;
3) Data Processing: Once data has been received via gossiping, process that data and&lt;br /&gt;
decide what action to take.&lt;br /&gt;
&lt;br /&gt;
Gossiping is a common method of dispersing information in distributed systems, and is&lt;br /&gt;
inspired by real life gossiping. Take, for example, the students in a university department as nodes&lt;br /&gt;
in your network. Once a new student joins the department, he establishes a friendship with a few&lt;br /&gt;
other students (nodes) in the department (network). Subsequently, these students may or may not&lt;br /&gt;
inform others in the department that the new student exists, disclosing the characteristics of the&lt;br /&gt;
&lt;br /&gt;
new student. This gossiping continues, and at the end of a given time period each student has some&lt;br /&gt;
information about some of the other students in the department; it is highly unlikely that any one&lt;br /&gt;
student has information regarding every other student in the department, but every student is&lt;br /&gt;
known by some other student in the department.&lt;br /&gt;
&lt;br /&gt;
== Case Study == &lt;br /&gt;
&lt;br /&gt;
The simplest and most common use case is that of a website suffering from a Denial of&lt;br /&gt;
Service attack or an unexpected traffic influx. In this example and for all future reference,&lt;br /&gt;
ForeverAlone.com is the Client and TooMuchBandwidth.net is the Provider. Some automated&lt;br /&gt;
process or monitor on the Client would be advised of the sudden surge in traffic and would arrange&lt;br /&gt;
to contact the Provider to request their services. A more detailed look into the request process is&lt;br /&gt;
detailed below.&lt;br /&gt;
&lt;br /&gt;
 [[File:Contract_timeline.png]]&lt;br /&gt;
&lt;br /&gt;
= Contracts =&lt;br /&gt;
&lt;br /&gt;
== Contract Template ==&lt;br /&gt;
Groth et al. provide an excellent template for a contract, in the form of a contract schema:&lt;br /&gt;
&lt;br /&gt;
 ANDREW TABLE 1 GOES HERE!!!&lt;br /&gt;
&lt;br /&gt;
We recognize that this template is simplistic in nature, but it provides an adequate basis for&lt;br /&gt;
discussion of electronic contracts; any implementation of such a template would need a more&lt;br /&gt;
detailed structure and syntax. It is worth noting, however, that the IST CONTRACT group, upon&lt;br /&gt;
whose work Groth et al. based their template, explored the idea of structuring a contract in an XML-&lt;br /&gt;
style wrapper, which seems a logical progression from the above template.&lt;br /&gt;
&lt;br /&gt;
== Contract Formation ==&lt;br /&gt;
&lt;br /&gt;
The formation of a contract has three general steps:&lt;br /&gt;
&lt;br /&gt;
1) The Client issues a Request For Proposal (RFP)&lt;br /&gt;
2) A Provider replies to Client with RFP&lt;br /&gt;
3) Both parties agree to terms&lt;br /&gt;
&lt;br /&gt;
Once these three steps have been followed, the contract is set and, assuming the activating&lt;br /&gt;
condition is met, the normative conditions are put into force.&lt;br /&gt;
&lt;br /&gt;
There exists a problem, however, in enforcing the formation of a contract: some mechanism&lt;br /&gt;
for verifying the origins of the contract is necessary to prevent the forging of contracts for the&lt;br /&gt;
purposes of self-promotion. This becomes particularly critical when a reputation system is in effect;&lt;br /&gt;
the ability to forge a completed contract would be an incredible advantage for a service provider&lt;br /&gt;
&lt;br /&gt;
wishing to boost its reputation (a key component of the QUORUM system, which we discuss in a&lt;br /&gt;
later section of this paper).&lt;br /&gt;
&lt;br /&gt;
We propose the following procedure for forming a contract:&lt;br /&gt;
&lt;br /&gt;
1) Contract agreement proceeds as above&lt;br /&gt;
2) Once the contract has been ratified by the Client and Provider, each provides a copy of&lt;br /&gt;
the contract template to its neighbors&lt;br /&gt;
3) Each neighbor signs the contract as a witness, and propagates the contract across the&lt;br /&gt;
network as a whole.&lt;br /&gt;
&lt;br /&gt;
This system will produce a group of multiple contracts, each signed by a different witness,&lt;br /&gt;
but all possessing the same contract identifier (since all copies share the same origin). These&lt;br /&gt;
contracts can later be collected into a single copy, with a list of all witnesses. Contracts can then be&lt;br /&gt;
verified based on the presence or absence of certain systems from the witness list. This observation&lt;br /&gt;
system is built upon a gossiping network protocol, which we describe in more detail later in this&lt;br /&gt;
paper.&lt;br /&gt;
&lt;br /&gt;
== Contract Publication ==&lt;br /&gt;
&lt;br /&gt;
In order to mitigate fraudulent reputation growth, the proposed witnessing mechanism&lt;br /&gt;
requires that the contract be propagated through the network. While only a minimum level of detail&lt;br /&gt;
needs to be shared in order to witness a contract, we recognize the need for a private option, where&lt;br /&gt;
two systems may forge a contract without any details becoming public knowledge. The QUORUM&lt;br /&gt;
system provides such an option, though any contract created in private cannot affect reputation; a&lt;br /&gt;
contract must be witnessed to affect reputation, and a contract must be published to be witnessed.&lt;br /&gt;
&lt;br /&gt;
= QUORUM =&lt;br /&gt;
&lt;br /&gt;
QUORUM, or Quantifiable Uniform Observation and Reporting of Unmanned Mediation, is&lt;br /&gt;
our proposed system for electronic contract negotiation and observation on a distributed system.&lt;br /&gt;
Ideally, QUORUM runs on every machine in the network, acting as a distributed cloud of&lt;br /&gt;
autonomous observers. In addition to the observers, QUORUM is also comprised of a reputation&lt;br /&gt;
system, which is built from the history of contracts on the network.&lt;br /&gt;
&lt;br /&gt;
The observers of QUORUM have a single responsibility. When a contract is published, each&lt;br /&gt;
observer attempts to verify that the normative conditions are being or can be satisfied. Once the&lt;br /&gt;
expiration condition is reached, each observer reports back to reputation system according to what&lt;br /&gt;
they believe the final state of the contract is. These observers must operate upon some metric&lt;br /&gt;
which is appropriate to the contract; metrics for the observers may be a simple binary condition&lt;br /&gt;
(e.g. has system A provided a piece of information to system B) or a more detailed requirement.&lt;br /&gt;
&lt;br /&gt;
== QUORUM Reputation ==&lt;br /&gt;
&lt;br /&gt;
The QUORUM observers report back on a contract in one of three ways:&lt;br /&gt;
&lt;br /&gt;
 ANDREW TABLE 2 GOES HERE!!&lt;br /&gt;
&lt;br /&gt;
The reputation system tracks, for each contracting system on the network, a reputation&lt;br /&gt;
score based upon the published contract history of that party. Successful contracts increase&lt;br /&gt;
reputation score, while breached contracts decrease reputation score. Contracts that are voided by&lt;br /&gt;
both parties or negotiated in private (i.e. without witnesses or QUORUM observation) have a&lt;br /&gt;
neutral effect on reputation score (though such contracts will still appear in the contract history).&lt;br /&gt;
This reputation system can then be used by Clients to determine which Provider proposal to accept.&lt;br /&gt;
&lt;br /&gt;
== QUORUM Gossip ==&lt;br /&gt;
&lt;br /&gt;
In order to facilitate the formation of contracts, it is useful to have a regularly updated&lt;br /&gt;
notion of which systems have certain capabilities. For example, if a particular system is in need of&lt;br /&gt;
processing time, it needs to be able to quickly determine which providers can offer assistance. To&lt;br /&gt;
this end, QUORUM requires an inter-system communication network, and so we propose the&lt;br /&gt;
following gossiping system.&lt;br /&gt;
&lt;br /&gt;
=== Gossiping in QUORUM ===&lt;br /&gt;
&lt;br /&gt;
As QUORUM operates, there are four scenarios which involve gossiping: the entrance of a&lt;br /&gt;
node, the location of available services, the exchange of reputation information, and the detection of&lt;br /&gt;
network failure. We will address each of these separately. Various gossiping algorithms exist [4],&lt;br /&gt;
any of which are sufficient for the implementation of QUORUM. Given our current system, we have&lt;br /&gt;
derived a gossiping method that utilizes some components of existing methods, such as the&lt;br /&gt;
framework in [3].&lt;br /&gt;
&lt;br /&gt;
Each node will have a list L of other nodes, in this list there exists the identity and known&lt;br /&gt;
services provided by that node. A node will update entries in L based upon the information it&lt;br /&gt;
receives through gossip messages.&lt;br /&gt;
&lt;br /&gt;
=== Entrance ===&lt;br /&gt;
&lt;br /&gt;
When a node joins a network, it will have the address of two existing nodes on the network.&lt;br /&gt;
After it joins the network, the two nodes will then randomly assign neighbors to the new node,&lt;br /&gt;
selecting them from the QUORUM via some algorithm. Depending on the size of the QUORUM, each&lt;br /&gt;
node will have a fixed h number of neighbors; the number of neighbors and how randomly these&lt;br /&gt;
neighbors are chosen is an area which needs to be investigated further.&lt;br /&gt;
&lt;br /&gt;
The joining node also sends to its neighbors a list of services that it can provide. Once the&lt;br /&gt;
neighbouring nodes have received identified and received the services of the incoming node, they&lt;br /&gt;
can then use a gossiping algorithm of the QUORUM to propagate this information. In turn, the&lt;br /&gt;
neighbors send their lists to the joining node, making it aware of the various capabilities of the&lt;br /&gt;
network it has joined.&lt;br /&gt;
&lt;br /&gt;
=== Search For Services ===&lt;br /&gt;
&lt;br /&gt;
As we saw in the related work, it is highly unlikely (depending on the size of the QUORUM)&lt;br /&gt;
for a node to have knowledge of every other node in the system. A given node that is looking for a&lt;br /&gt;
particular service x, will first look up in his own list L (that has been updated via gossiping&lt;br /&gt;
messages), and if he cannot find service x with the required reputation, he will then ask around the&lt;br /&gt;
QUORUM to find the service he is looking for.&lt;br /&gt;
&lt;br /&gt;
=== Failure Detection ===&lt;br /&gt;
&lt;br /&gt;
Failure detection in distributed systems is a prominent sub-problem of distributed systems,&lt;br /&gt;
and has approached by several research groups (see [5-9], as referenced in [5]). Below we present&lt;br /&gt;
an aggregation of the above efforts, applied to the QUORUM.&lt;br /&gt;
&lt;br /&gt;
Given the neighbor system of QUORUM, each neighbor can expect a gossip message from its&lt;br /&gt;
neighbors in a period of t seconds. If a neighbor of a node r fails to send such a message, then r will&lt;br /&gt;
send a heartbeat message to its neighbors (i.e. the pull model [7,8]) asking whether it is alive or not.&lt;br /&gt;
If r then receives a response, it knows that its neighbor is alive. If r does not receive a response&lt;br /&gt;
(after enough heartbeat messages to be convinced that his neighbor is dead), then it would remove&lt;br /&gt;
that node from the list of its neighbors, look for another neighbor, and communicate the node&lt;br /&gt;
failure (via gossiping messages) to the other members of the QUORUM. Given that this method&lt;br /&gt;
relies heavily upon the neighbors of a node, it might be prudent to implement an additional failure&lt;br /&gt;
detection method, such as that found in the work of Hayashibara et al.[9].&lt;br /&gt;
&lt;br /&gt;
= Future Work And Conclusion =&lt;br /&gt;
&lt;br /&gt;
Moving forward with QUORUM, one main objective would be to attempt an actual&lt;br /&gt;
implementation of the system according to our specifications. In our research we made several&lt;br /&gt;
assumptions, one of which was that computers are not mobile. There could be further research&lt;br /&gt;
done in examining and modifying our QUORUM to allow for system mobility.&lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] D.C Verma, Service Level Agreements on IP Networks, Proceedings of the IEEE, vol. 92, pp. 1382-&lt;br /&gt;
1388, September 2004.&lt;br /&gt;
&lt;br /&gt;
[2] P. Groth, S. Miles, S. Modgil, N. Oren, M. Luck, G. Yolanda, Determining the Trustworthiness of&lt;br /&gt;
New Electronic Contracts, Engineering Societies in the Agents World X, 2009.&lt;br /&gt;
&lt;br /&gt;
[3] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, SIGOPS Oper. Syst. Rev., 41(5):2-7,&lt;br /&gt;
2007.&lt;br /&gt;
&lt;br /&gt;
[4] S. Boyd, A. Ghosh, B. Prabhakar, and D. Shah. “Randomized Gossip Algorithms.” IEEE&lt;br /&gt;
Transactions on Information Theory, 52(6):2508-2530, June 2006&lt;br /&gt;
&lt;br /&gt;
[5] S. Sajjadpour, Failure Detection in Distributed Systems, Distributed Operating Systems course,&lt;br /&gt;
Carleton University, Winter 2011&lt;br /&gt;
&lt;br /&gt;
[6] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of&lt;br /&gt;
the IFIP International Conference on Distributed Systems Platforms and Open Distributed&lt;br /&gt;
Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[7] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In&lt;br /&gt;
Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The&lt;br /&gt;
version I used here is from 2002.&lt;br /&gt;
&lt;br /&gt;
[8] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In&lt;br /&gt;
21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[9] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings&lt;br /&gt;
of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-&lt;br /&gt;
75, 2004&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9536</id>
		<title>Category:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9536"/>
		<updated>2011-04-13T00:45:01Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that the majority of our efforts are contained on the &amp;quot;Discussion&amp;quot; page.&lt;br /&gt;
* [[DistOS-2011W Contracts and Observability Old First Page|Old First Page]]&lt;br /&gt;
&lt;br /&gt;
This report was done by Tarjit Komal, Andrew Luczak, Scott Lyons and Seyyed Sajjadpour.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This paper is an overview of a theoretical implementation of electronic contract negotiation&lt;br /&gt;
systems. We begin by exploring the previous work in the field of electronic contract resolution, and&lt;br /&gt;
we then outline the framework for QUORUM, a proposed system of electronic contract negotiation&lt;br /&gt;
and mediation with an integrated reputation system.&lt;br /&gt;
&lt;br /&gt;
== Focus Of Study ==&lt;br /&gt;
&lt;br /&gt;
The primary goal of this report is to provide some mechanism for a reliable and automated&lt;br /&gt;
contract negotiation framework, which system will ideally be functional over a distributed system.&lt;br /&gt;
As a secondary goal, we discuss a mechanism for observing these contracts; such a mechanism is&lt;br /&gt;
critical for determining when a contract has been properly fulfilled, which we show is a&lt;br /&gt;
requirement for the repeatable success of a contract negotiation system.&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
&lt;br /&gt;
== Automated Contracts ==&lt;br /&gt;
&lt;br /&gt;
We define an automated contract as any contract between computer systems requiring a&lt;br /&gt;
minimum of human intervention. Some human effort may be required to define the guidelines by&lt;br /&gt;
which the system negotiates (i.e. contract with a reliable system with longer wait times as opposed&lt;br /&gt;
to a less-reliable system with shorter wait times), but the system should be able operate&lt;br /&gt;
autonomously for the entire contract period.&lt;br /&gt;
&lt;br /&gt;
== Assumptions == &lt;br /&gt;
&lt;br /&gt;
In order to simplify the problem at hand, we make the following assumptions:&lt;br /&gt;
&lt;br /&gt;
1) All participants in a contract (i.e. the client and the provider), are automated systems&lt;br /&gt;
(either a single machine, or a group of machines).&lt;br /&gt;
2) All machines have a unique universal identifier which is un-spoofable.&lt;br /&gt;
3) Any conduct violations arising from a violation of contract parameters can be handled&lt;br /&gt;
with perfect efficiency and judicial accuracy.&lt;br /&gt;
4) Machines have no mobility, in either a physical or network context.&lt;br /&gt;
&lt;br /&gt;
We make these assumptions recognizing that the current implementation of the Internet&lt;br /&gt;
and other large systems make such a situation impossible (particularly the second assumption&lt;br /&gt;
wherein identifiers are un-spoofable and universal.&lt;br /&gt;
&lt;br /&gt;
== Related Work &amp;amp; Project Basis ==&lt;br /&gt;
&lt;br /&gt;
The field of electronic contracts has been approached in several different ways, with papers&lt;br /&gt;
describing several avenues of research; however, no paper we discovered provided a complete&lt;br /&gt;
system of electronic contract negotiation and validation. Based on what we’ve found in research&lt;br /&gt;
literature, Service Level Agreements (SLA) are the closest to our proposed system, and were the&lt;br /&gt;
basis for our framework.&lt;br /&gt;
&lt;br /&gt;
Using the groundwork laid by the following research groups, we look at the problem at a higher&lt;br /&gt;
level, and focus on an arbitrary network (i.e. a WAN or LAN) that sees computers as citizens.&lt;br /&gt;
Citizens of this network will get the chance to observe contracts and act as witnesses for other&lt;br /&gt;
citizens. We will show how SLA-style contract parameters can be used as the benchmarks of a&lt;br /&gt;
contract verification system, how a reputation system can increase the overall reliability of the&lt;br /&gt;
contract system, and how a gossiping system can provide an effective propagation of system&lt;br /&gt;
capabilities.&lt;br /&gt;
&lt;br /&gt;
=== SLA === &lt;br /&gt;
&lt;br /&gt;
Verma, in his paper [1], defines SLA to be “…a formal relationship that exists between a&lt;br /&gt;
service provider and its customer”. He also mentions some key components of SLAs such as: “a&lt;br /&gt;
description of the nature of service to be provided”; “the expected performance level of the service,&lt;br /&gt;
specifically its reliability and responsiveness”; and “the procedure for reporting problems with the&lt;br /&gt;
service”. These are authentic concerns for any electronic contract. In our system, we adapt Verma’s&lt;br /&gt;
defined components to be used by each contracted party to verify whether a contract has been&lt;br /&gt;
fulfilled or not. Verma also discusses various approaches to guaranteeing service, including an&lt;br /&gt;
insurance approach and an adaptive approach, which can be used by service providers.&lt;br /&gt;
&lt;br /&gt;
=== Reputation ===&lt;br /&gt;
&lt;br /&gt;
Groth et al., in their research [2] on the trustworthiness of contracts, propose two key&lt;br /&gt;
indicators of a contract’s potential reliability: the history of the contracting party, and the similarity&lt;br /&gt;
of the contract to other successful contracts. Groth et al. also lay out an effective template for&lt;br /&gt;
contracts (based in turn upon the IST-CONTRACT project) which we use and build upon in our&lt;br /&gt;
QUORUM system.&lt;br /&gt;
&lt;br /&gt;
=== Gossiping === &lt;br /&gt;
&lt;br /&gt;
In a large network, disseminating information through broadcast updates between&lt;br /&gt;
everyone in the network will create bandwidth, latency and denial-of-service concerns. Hence,&lt;br /&gt;
there needs to be some other ways to disseminate information, while avoiding the above mentioned&lt;br /&gt;
concerns. In their paper[3], Kermarrec et al. define gossiping in distributed systems to be “…the&lt;br /&gt;
repeated probabilistic exchange of information between two members.” In other words, gossiping&lt;br /&gt;
is the random dissemination of information, with correct timeouts and periods (depending on the&lt;br /&gt;
size of the network). In most cases, gossiping would include exchanging lists of information with&lt;br /&gt;
randomly selected nodes.&lt;br /&gt;
&lt;br /&gt;
In principle, most gossiping algorithms follow the framework provided by Kermarrec et al.:&lt;br /&gt;
&lt;br /&gt;
1) Peer (Node) Selection: Selecting a few random nodes in the network.&lt;br /&gt;
2) Data Exchanged: Selecting what information to send to the selected nodes.&lt;br /&gt;
3) Data Processing: Once data has been received via gossiping, process that data and&lt;br /&gt;
decide what action to take.&lt;br /&gt;
&lt;br /&gt;
Gossiping is a common method of dispersing information in distributed systems, and is&lt;br /&gt;
inspired by real life gossiping. Take, for example, the students in a university department as nodes&lt;br /&gt;
in your network. Once a new student joins the department, he establishes a friendship with a few&lt;br /&gt;
other students (nodes) in the department (network). Subsequently, these students may or may not&lt;br /&gt;
inform others in the department that the new student exists, disclosing the characteristics of the&lt;br /&gt;
&lt;br /&gt;
new student. This gossiping continues, and at the end of a given time period each student has some&lt;br /&gt;
information about some of the other students in the department; it is highly unlikely that any one&lt;br /&gt;
student has information regarding every other student in the department, but every student is&lt;br /&gt;
known by some other student in the department.&lt;br /&gt;
&lt;br /&gt;
= Case Study = &lt;br /&gt;
&lt;br /&gt;
The simplest and most common use case is that of a website suffering from a Denial of&lt;br /&gt;
Service attack or an unexpected traffic influx. In this example and for all future reference,&lt;br /&gt;
ForeverAlone.com is the Client and TooMuchBandwidth.net is the Provider. Some automated&lt;br /&gt;
process or monitor on the Client would be advised of the sudden surge in traffic and would arrange&lt;br /&gt;
to contact the Provider to request their services. A more detailed look into the request process is&lt;br /&gt;
detailed below.&lt;br /&gt;
&lt;br /&gt;
 [[File:Contract_timeline.png]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9535</id>
		<title>Category:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9535"/>
		<updated>2011-04-13T00:44:14Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that the majority of our efforts are contained on the &amp;quot;Discussion&amp;quot; page.&lt;br /&gt;
* [[DistOS-2011W Contracts and Observability Old First Page|Old First Page]]&lt;br /&gt;
&lt;br /&gt;
This report was done by Tarjit Komal, Andrew Luczak, Scott Lyons and Seyyed Sajjadpour.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This paper is an overview of a theoretical implementation of electronic contract negotiation&lt;br /&gt;
systems. We begin by exploring the previous work in the field of electronic contract resolution, and&lt;br /&gt;
we then outline the framework for QUORUM, a proposed system of electronic contract negotiation&lt;br /&gt;
and mediation with an integrated reputation system.&lt;br /&gt;
&lt;br /&gt;
== Focus Of Study ==&lt;br /&gt;
&lt;br /&gt;
The primary goal of this report is to provide some mechanism for a reliable and automated&lt;br /&gt;
contract negotiation framework, which system will ideally be functional over a distributed system.&lt;br /&gt;
As a secondary goal, we discuss a mechanism for observing these contracts; such a mechanism is&lt;br /&gt;
critical for determining when a contract has been properly fulfilled, which we show is a&lt;br /&gt;
requirement for the repeatable success of a contract negotiation system.&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
&lt;br /&gt;
== Automated Contracts ==&lt;br /&gt;
&lt;br /&gt;
We define an automated contract as any contract between computer systems requiring a&lt;br /&gt;
minimum of human intervention. Some human effort may be required to define the guidelines by&lt;br /&gt;
which the system negotiates (i.e. contract with a reliable system with longer wait times as opposed&lt;br /&gt;
to a less-reliable system with shorter wait times), but the system should be able operate&lt;br /&gt;
autonomously for the entire contract period.&lt;br /&gt;
&lt;br /&gt;
== Assumptions == &lt;br /&gt;
&lt;br /&gt;
In order to simplify the problem at hand, we make the following assumptions:&lt;br /&gt;
&lt;br /&gt;
1) All participants in a contract (i.e. the client and the provider), are automated systems&lt;br /&gt;
(either a single machine, or a group of machines).&lt;br /&gt;
2) All machines have a unique universal identifier which is un-spoofable.&lt;br /&gt;
3) Any conduct violations arising from a violation of contract parameters can be handled&lt;br /&gt;
with perfect efficiency and judicial accuracy.&lt;br /&gt;
4) Machines have no mobility, in either a physical or network context.&lt;br /&gt;
&lt;br /&gt;
We make these assumptions recognizing that the current implementation of the Internet&lt;br /&gt;
and other large systems make such a situation impossible (particularly the second assumption&lt;br /&gt;
wherein identifiers are un-spoofable and universal.&lt;br /&gt;
&lt;br /&gt;
== Related Work &amp;amp; Project Basis ==&lt;br /&gt;
&lt;br /&gt;
The field of electronic contracts has been approached in several different ways, with papers&lt;br /&gt;
describing several avenues of research; however, no paper we discovered provided a complete&lt;br /&gt;
system of electronic contract negotiation and validation. Based on what we’ve found in research&lt;br /&gt;
literature, Service Level Agreements (SLA) are the closest to our proposed system, and were the&lt;br /&gt;
basis for our framework.&lt;br /&gt;
&lt;br /&gt;
Using the groundwork laid by the following research groups, we look at the problem at a higher&lt;br /&gt;
level, and focus on an arbitrary network (i.e. a WAN or LAN) that sees computers as citizens.&lt;br /&gt;
Citizens of this network will get the chance to observe contracts and act as witnesses for other&lt;br /&gt;
citizens. We will show how SLA-style contract parameters can be used as the benchmarks of a&lt;br /&gt;
contract verification system, how a reputation system can increase the overall reliability of the&lt;br /&gt;
contract system, and how a gossiping system can provide an effective propagation of system&lt;br /&gt;
capabilities.&lt;br /&gt;
&lt;br /&gt;
=== SLA === &lt;br /&gt;
&lt;br /&gt;
Verma, in his paper [1], defines SLA to be “…a formal relationship that exists between a&lt;br /&gt;
service provider and its customer”. He also mentions some key components of SLAs such as: “a&lt;br /&gt;
description of the nature of service to be provided”; “the expected performance level of the service,&lt;br /&gt;
specifically its reliability and responsiveness”; and “the procedure for reporting problems with the&lt;br /&gt;
service”. These are authentic concerns for any electronic contract. In our system, we adapt Verma’s&lt;br /&gt;
defined components to be used by each contracted party to verify whether a contract has been&lt;br /&gt;
fulfilled or not. Verma also discusses various approaches to guaranteeing service, including an&lt;br /&gt;
insurance approach and an adaptive approach, which can be used by service providers.&lt;br /&gt;
&lt;br /&gt;
=== Reputation ===&lt;br /&gt;
&lt;br /&gt;
Groth et al., in their research [2] on the trustworthiness of contracts, propose two key&lt;br /&gt;
indicators of a contract’s potential reliability: the history of the contracting party, and the similarity&lt;br /&gt;
of the contract to other successful contracts. Groth et al. also lay out an effective template for&lt;br /&gt;
contracts (based in turn upon the IST-CONTRACT project) which we use and build upon in our&lt;br /&gt;
QUORUM system.&lt;br /&gt;
&lt;br /&gt;
=== Gossiping === &lt;br /&gt;
&lt;br /&gt;
In a large network, disseminating information through broadcast updates between&lt;br /&gt;
everyone in the network will create bandwidth, latency and denial-of-service concerns. Hence,&lt;br /&gt;
there needs to be some other ways to disseminate information, while avoiding the above mentioned&lt;br /&gt;
concerns. In their paper[3], Kermarrec et al. define gossiping in distributed systems to be “…the&lt;br /&gt;
repeated probabilistic exchange of information between two members.” In other words, gossiping&lt;br /&gt;
is the random dissemination of information, with correct timeouts and periods (depending on the&lt;br /&gt;
size of the network). In most cases, gossiping would include exchanging lists of information with&lt;br /&gt;
randomly selected nodes.&lt;br /&gt;
&lt;br /&gt;
In principle, most gossiping algorithms follow the framework provided by Kermarrec et al.:&lt;br /&gt;
&lt;br /&gt;
1) Peer (Node) Selection: Selecting a few random nodes in the network.&lt;br /&gt;
2) Data Exchanged: Selecting what information to send to the selected nodes.&lt;br /&gt;
3) Data Processing: Once data has been received via gossiping, process that data and&lt;br /&gt;
decide what action to take.&lt;br /&gt;
&lt;br /&gt;
Gossiping is a common method of dispersing information in distributed systems, and is&lt;br /&gt;
inspired by real life gossiping. Take, for example, the students in a university department as nodes&lt;br /&gt;
in your network. Once a new student joins the department, he establishes a friendship with a few&lt;br /&gt;
other students (nodes) in the department (network). Subsequently, these students may or may not&lt;br /&gt;
inform others in the department that the new student exists, disclosing the characteristics of the&lt;br /&gt;
&lt;br /&gt;
new student. This gossiping continues, and at the end of a given time period each student has some&lt;br /&gt;
information about some of the other students in the department; it is highly unlikely that any one&lt;br /&gt;
student has information regarding every other student in the department, but every student is&lt;br /&gt;
known by some other student in the department.&lt;br /&gt;
&lt;br /&gt;
= Case Study = &lt;br /&gt;
&lt;br /&gt;
The simplest and most common use case is that of a website suffering from a Denial of&lt;br /&gt;
Service attack or an unexpected traffic influx. In this example and for all future reference,&lt;br /&gt;
ForeverAlone.com is the Client and TooMuchBandwidth.net is the Provider. Some automated&lt;br /&gt;
process or monitor on the Client would be advised of the sudden surge in traffic and would arrange&lt;br /&gt;
to contact the Provider to request their services. A more detailed look into the request process is&lt;br /&gt;
detailed below.&lt;br /&gt;
&lt;br /&gt;
 [[File:Contract_timeline..png|600px|thumb|center|Figure 1- A Typical Contract Negotiation]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9534</id>
		<title>Category:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9534"/>
		<updated>2011-04-13T00:42:54Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that the majority of our efforts are contained on the &amp;quot;Discussion&amp;quot; page.&lt;br /&gt;
* [[DistOS-2011W Contracts and Observability Old First Page|Old First Page]]&lt;br /&gt;
&lt;br /&gt;
This report was done by Tarjit Komal, Andrew Luczak, Scott Lyons and Seyyed Sajjadpour.&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
This paper is an overview of a theoretical implementation of electronic contract negotiation&lt;br /&gt;
systems. We begin by exploring the previous work in the field of electronic contract resolution, and&lt;br /&gt;
we then outline the framework for QUORUM, a proposed system of electronic contract negotiation&lt;br /&gt;
and mediation with an integrated reputation system.&lt;br /&gt;
&lt;br /&gt;
== Focus Of Study ==&lt;br /&gt;
&lt;br /&gt;
The primary goal of this report is to provide some mechanism for a reliable and automated&lt;br /&gt;
contract negotiation framework, which system will ideally be functional over a distributed system.&lt;br /&gt;
As a secondary goal, we discuss a mechanism for observing these contracts; such a mechanism is&lt;br /&gt;
critical for determining when a contract has been properly fulfilled, which we show is a&lt;br /&gt;
requirement for the repeatable success of a contract negotiation system.&lt;br /&gt;
&lt;br /&gt;
= Background =&lt;br /&gt;
&lt;br /&gt;
== Automated Contracts ==&lt;br /&gt;
&lt;br /&gt;
We define an automated contract as any contract between computer systems requiring a&lt;br /&gt;
minimum of human intervention. Some human effort may be required to define the guidelines by&lt;br /&gt;
which the system negotiates (i.e. contract with a reliable system with longer wait times as opposed&lt;br /&gt;
to a less-reliable system with shorter wait times), but the system should be able operate&lt;br /&gt;
autonomously for the entire contract period.&lt;br /&gt;
&lt;br /&gt;
== Assumptions == &lt;br /&gt;
&lt;br /&gt;
In order to simplify the problem at hand, we make the following assumptions:&lt;br /&gt;
&lt;br /&gt;
1) All participants in a contract (i.e. the client and the provider), are automated systems&lt;br /&gt;
(either a single machine, or a group of machines).&lt;br /&gt;
2) All machines have a unique universal identifier which is un-spoofable.&lt;br /&gt;
3) Any conduct violations arising from a violation of contract parameters can be handled&lt;br /&gt;
with perfect efficiency and judicial accuracy.&lt;br /&gt;
4) Machines have no mobility, in either a physical or network context.&lt;br /&gt;
&lt;br /&gt;
We make these assumptions recognizing that the current implementation of the Internet&lt;br /&gt;
and other large systems make such a situation impossible (particularly the second assumption&lt;br /&gt;
wherein identifiers are un-spoofable and universal.&lt;br /&gt;
&lt;br /&gt;
== Related Work &amp;amp; Project Basis ==&lt;br /&gt;
&lt;br /&gt;
The field of electronic contracts has been approached in several different ways, with papers&lt;br /&gt;
describing several avenues of research; however, no paper we discovered provided a complete&lt;br /&gt;
system of electronic contract negotiation and validation. Based on what we’ve found in research&lt;br /&gt;
literature, Service Level Agreements (SLA) are the closest to our proposed system, and were the&lt;br /&gt;
basis for our framework.&lt;br /&gt;
&lt;br /&gt;
Using the groundwork laid by the following research groups, we look at the problem at a higher&lt;br /&gt;
level, and focus on an arbitrary network (i.e. a WAN or LAN) that sees computers as citizens.&lt;br /&gt;
Citizens of this network will get the chance to observe contracts and act as witnesses for other&lt;br /&gt;
citizens. We will show how SLA-style contract parameters can be used as the benchmarks of a&lt;br /&gt;
contract verification system, how a reputation system can increase the overall reliability of the&lt;br /&gt;
contract system, and how a gossiping system can provide an effective propagation of system&lt;br /&gt;
capabilities.&lt;br /&gt;
&lt;br /&gt;
=== SLA === &lt;br /&gt;
&lt;br /&gt;
Verma, in his paper [1], defines SLA to be “…a formal relationship that exists between a&lt;br /&gt;
service provider and its customer”. He also mentions some key components of SLAs such as: “a&lt;br /&gt;
description of the nature of service to be provided”; “the expected performance level of the service,&lt;br /&gt;
specifically its reliability and responsiveness”; and “the procedure for reporting problems with the&lt;br /&gt;
service”. These are authentic concerns for any electronic contract. In our system, we adapt Verma’s&lt;br /&gt;
defined components to be used by each contracted party to verify whether a contract has been&lt;br /&gt;
fulfilled or not. Verma also discusses various approaches to guaranteeing service, including an&lt;br /&gt;
insurance approach and an adaptive approach, which can be used by service providers.&lt;br /&gt;
&lt;br /&gt;
=== Reputation ===&lt;br /&gt;
&lt;br /&gt;
Groth et al., in their research [2] on the trustworthiness of contracts, propose two key&lt;br /&gt;
indicators of a contract’s potential reliability: the history of the contracting party, and the similarity&lt;br /&gt;
of the contract to other successful contracts. Groth et al. also lay out an effective template for&lt;br /&gt;
contracts (based in turn upon the IST-CONTRACT project) which we use and build upon in our&lt;br /&gt;
QUORUM system.&lt;br /&gt;
&lt;br /&gt;
=== Gossiping === &lt;br /&gt;
&lt;br /&gt;
In a large network, disseminating information through broadcast updates between&lt;br /&gt;
everyone in the network will create bandwidth, latency and denial-of-service concerns. Hence,&lt;br /&gt;
there needs to be some other ways to disseminate information, while avoiding the above mentioned&lt;br /&gt;
concerns. In their paper[3], Kermarrec et al. define gossiping in distributed systems to be “…the&lt;br /&gt;
repeated probabilistic exchange of information between two members.” In other words, gossiping&lt;br /&gt;
is the random dissemination of information, with correct timeouts and periods (depending on the&lt;br /&gt;
size of the network). In most cases, gossiping would include exchanging lists of information with&lt;br /&gt;
randomly selected nodes.&lt;br /&gt;
&lt;br /&gt;
In principle, most gossiping algorithms follow the framework provided by Kermarrec et al.:&lt;br /&gt;
&lt;br /&gt;
1) Peer (Node) Selection: Selecting a few random nodes in the network.&lt;br /&gt;
2) Data Exchanged: Selecting what information to send to the selected nodes.&lt;br /&gt;
3) Data Processing: Once data has been received via gossiping, process that data and&lt;br /&gt;
decide what action to take.&lt;br /&gt;
&lt;br /&gt;
Gossiping is a common method of dispersing information in distributed systems, and is&lt;br /&gt;
inspired by real life gossiping. Take, for example, the students in a university department as nodes&lt;br /&gt;
in your network. Once a new student joins the department, he establishes a friendship with a few&lt;br /&gt;
other students (nodes) in the department (network). Subsequently, these students may or may not&lt;br /&gt;
inform others in the department that the new student exists, disclosing the characteristics of the&lt;br /&gt;
&lt;br /&gt;
new student. This gossiping continues, and at the end of a given time period each student has some&lt;br /&gt;
information about some of the other students in the department; it is highly unlikely that any one&lt;br /&gt;
student has information regarding every other student in the department, but every student is&lt;br /&gt;
known by some other student in the department.&lt;br /&gt;
&lt;br /&gt;
= Case Study = &lt;br /&gt;
&lt;br /&gt;
The simplest and most common use case is that of a website suffering from a Denial of&lt;br /&gt;
Service attack or an unexpected traffic influx. In this example and for all future reference,&lt;br /&gt;
ForeverAlone.com is the Client and TooMuchBandwidth.net is the Provider. Some automated&lt;br /&gt;
process or monitor on the Client would be advised of the sudden surge in traffic and would arrange&lt;br /&gt;
to contact the Provider to request their services. A more detailed look into the request process is&lt;br /&gt;
detailed below.&lt;br /&gt;
&lt;br /&gt;
 [[File:contractForm.png|600px|thumb|center|Figure 1- A Typical Contract Negotiation]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Contracts_and_Observability_Old_First_Page&amp;diff=9533</id>
		<title>DistOS-2011W Contracts and Observability Old First Page</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Contracts_and_Observability_Old_First_Page&amp;diff=9533"/>
		<updated>2011-04-13T00:34:50Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: Created page with &amp;quot;==****Changes to be viewed (delete once acknowledged by group)****== (TK) - I have provided a summary of key concepts that will help with the idea of resource allocation across t…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==****Changes to be viewed (delete once acknowledged by group)****==&lt;br /&gt;
(TK) - I have provided a summary of key concepts that will help with the idea of resource allocation across the network under the summary for &#039;&#039;&#039;Heuristics for Enforcing Service Level Agreements in a Public Computing Utility&#039;&#039;&#039; &#039;&#039;(&amp;lt;--Scott can you link this directly to the summary...I have no idea how to)&#039;&#039; We can go more in depth with the concepts that catch your eyes. The paper is beautifully written and easy to understand&lt;br /&gt;
&lt;br /&gt;
==Problem Outline==&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* How do I observe the acts of other agents, particularly public acts?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
* How can contracts be made between computers/agents?&lt;br /&gt;
* How can we ensure that contracts are being upheld?&lt;br /&gt;
* What side effects does observance have? For example if everyone can see who buys something online, would that promote or demote using such website?&lt;br /&gt;
&lt;br /&gt;
==Report Outline==&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0B0GW1IZG3sfgZjI3YmM4NDAtNWE0Ny00YWUyLTgxMTctZWRiYzA3YjdmMzk4&amp;amp;hl=en Final Group Project Report]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/present/view?id=dc5r38d8_2hfmsggfx&amp;amp;interval=60 Group presentation]&lt;br /&gt;
&lt;br /&gt;
*Abstract&lt;br /&gt;
*Introduction&lt;br /&gt;
**Observability on a Network&lt;br /&gt;
*Automatic Contracts (System-to-System)&lt;br /&gt;
**What Can be Contracted?&lt;br /&gt;
**Determining When to Initiate a Contract&lt;br /&gt;
**States of a Contract&lt;br /&gt;
*Quantifiable Uniform Observation and Reporting of Unmanned Mediation (QUORUM)&lt;br /&gt;
**System Overview&lt;br /&gt;
***Roles in the QUORUM&lt;br /&gt;
***Gossip and Reputation&lt;br /&gt;
****QUORUM Cliques&lt;br /&gt;
***Validating a Contract, or How I Learned to Stop Worrying and Love the QUORUM	&lt;br /&gt;
****Private Contracts&lt;br /&gt;
*Alternatives/Other Approaches to QUORUM&lt;br /&gt;
*The Future of QUORUM&lt;br /&gt;
*Conclusion&lt;br /&gt;
&lt;br /&gt;
==Focus==&lt;br /&gt;
&lt;br /&gt;
As we&#039;ve discussed these topics we&#039;ve decided that the focus of our report will be on *Contracts* and the Observation of their fulfillment. We are also under the assumption that participants are uniquely and universally identifiable.&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
* Seyyed Hadi Sajjadpour&lt;br /&gt;
* Tarjit Komal&lt;br /&gt;
* Scott Lyons&lt;br /&gt;
* Andrew Luczak&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9532</id>
		<title>Category:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9532"/>
		<updated>2011-04-13T00:34:42Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: Replaced content with &amp;quot;Please note that the majority of our efforts are contained on the &amp;quot;Discussion&amp;quot; page.
* Old First Page&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that the majority of our efforts are contained on the &amp;quot;Discussion&amp;quot; page.&lt;br /&gt;
* [[DistOS-2011W Contracts and Observability Old First Page|Old First Page]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9438</id>
		<title>Category:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9438"/>
		<updated>2011-04-11T21:19:37Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Report Outline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that the majority of our efforts are contained on the &amp;quot;Discussion&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==****Changes to be viewed (delete once acknowledged by group)****==&lt;br /&gt;
(TK) - I have provided a summary of key concepts that will help with the idea of resource allocation across the network under the summary for &#039;&#039;&#039;Heuristics for Enforcing Service Level Agreements in a Public Computing Utility&#039;&#039;&#039; &#039;&#039;(&amp;lt;--Scott can you link this directly to the summary...I have no idea how to)&#039;&#039; We can go more in depth with the concepts that catch your eyes. The paper is beautifully written and easy to understand&lt;br /&gt;
&lt;br /&gt;
==Problem Outline==&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* How do I observe the acts of other agents, particularly public acts?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
* How can contracts be made between computers/agents?&lt;br /&gt;
* How can we ensure that contracts are being upheld?&lt;br /&gt;
* What side effects does observance have? For example if everyone can see who buys something online, would that promote or demote using such website?&lt;br /&gt;
&lt;br /&gt;
==Report Outline==&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0B0GW1IZG3sfgZjI3YmM4NDAtNWE0Ny00YWUyLTgxMTctZWRiYzA3YjdmMzk4&amp;amp;hl=en Final Group Project Report]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/present/view?id=dc5r38d8_2hfmsggfx&amp;amp;interval=60 Group presentation]&lt;br /&gt;
&lt;br /&gt;
*Abstract&lt;br /&gt;
*Introduction&lt;br /&gt;
**Observability on a Network&lt;br /&gt;
*Automatic Contracts (System-to-System)&lt;br /&gt;
**What Can be Contracted?&lt;br /&gt;
**Determining When to Initiate a Contract&lt;br /&gt;
**States of a Contract&lt;br /&gt;
*Quantifiable Uniform Observation and Reporting of Unmanned Mediation (QUORUM)&lt;br /&gt;
**System Overview&lt;br /&gt;
***Roles in the QUORUM&lt;br /&gt;
***Gossip and Reputation&lt;br /&gt;
****QUORUM Cliques&lt;br /&gt;
***Validating a Contract, or How I Learned to Stop Worrying and Love the QUORUM	&lt;br /&gt;
****Private Contracts&lt;br /&gt;
*Alternatives/Other Approaches to QUORUM&lt;br /&gt;
*The Future of QUORUM&lt;br /&gt;
*Conclusion&lt;br /&gt;
&lt;br /&gt;
==Focus==&lt;br /&gt;
&lt;br /&gt;
As we&#039;ve discussed these topics we&#039;ve decided that the focus of our report will be on *Contracts* and the Observation of their fulfillment. We are also under the assumption that participants are uniquely and universally identifiable.&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
* Seyyed Hadi Sajjadpour&lt;br /&gt;
* Tarjit Komal&lt;br /&gt;
* Scott Lyons&lt;br /&gt;
* Andrew Luczak&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9437</id>
		<title>Category:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-O%26C&amp;diff=9437"/>
		<updated>2011-04-11T21:19:27Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Report Outline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that the majority of our efforts are contained on the &amp;quot;Discussion&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==****Changes to be viewed (delete once acknowledged by group)****==&lt;br /&gt;
(TK) - I have provided a summary of key concepts that will help with the idea of resource allocation across the network under the summary for &#039;&#039;&#039;Heuristics for Enforcing Service Level Agreements in a Public Computing Utility&#039;&#039;&#039; &#039;&#039;(&amp;lt;--Scott can you link this directly to the summary...I have no idea how to)&#039;&#039; We can go more in depth with the concepts that catch your eyes. The paper is beautifully written and easy to understand&lt;br /&gt;
&lt;br /&gt;
==Problem Outline==&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* How do I observe the acts of other agents, particularly public acts?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
* How can contracts be made between computers/agents?&lt;br /&gt;
* How can we ensure that contracts are being upheld?&lt;br /&gt;
* What side effects does observance have? For example if everyone can see who buys something online, would that promote or demote using such website?&lt;br /&gt;
&lt;br /&gt;
==Report Outline==&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0B0GW1IZG3sfgZjI3YmM4NDAtNWE0Ny00YWUyLTgxMTctZWRiYzA3YjdmMzk4&amp;amp;hl=en Final Group Project Report]&lt;br /&gt;
[https://docs.google.com/present/view?id=dc5r38d8_2hfmsggfx&amp;amp;interval=60 Group presentation]&lt;br /&gt;
&lt;br /&gt;
*Abstract&lt;br /&gt;
*Introduction&lt;br /&gt;
**Observability on a Network&lt;br /&gt;
*Automatic Contracts (System-to-System)&lt;br /&gt;
**What Can be Contracted?&lt;br /&gt;
**Determining When to Initiate a Contract&lt;br /&gt;
**States of a Contract&lt;br /&gt;
*Quantifiable Uniform Observation and Reporting of Unmanned Mediation (QUORUM)&lt;br /&gt;
**System Overview&lt;br /&gt;
***Roles in the QUORUM&lt;br /&gt;
***Gossip and Reputation&lt;br /&gt;
****QUORUM Cliques&lt;br /&gt;
***Validating a Contract, or How I Learned to Stop Worrying and Love the QUORUM	&lt;br /&gt;
****Private Contracts&lt;br /&gt;
*Alternatives/Other Approaches to QUORUM&lt;br /&gt;
*The Future of QUORUM&lt;br /&gt;
*Conclusion&lt;br /&gt;
&lt;br /&gt;
==Focus==&lt;br /&gt;
&lt;br /&gt;
As we&#039;ve discussed these topics we&#039;ve decided that the focus of our report will be on *Contracts* and the Observation of their fulfillment. We are also under the assumption that participants are uniquely and universally identifiable.&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
* Seyyed Hadi Sajjadpour&lt;br /&gt;
* Tarjit Komal&lt;br /&gt;
* Scott Lyons&lt;br /&gt;
* Andrew Luczak&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9094</id>
		<title>Category talk:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9094"/>
		<updated>2011-04-04T18:06:27Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
One key concept that we should take from this paper is the way they decided how to allocate the resources. Here is a brief but excellent point to consider:&lt;br /&gt;
*In a public computing utility (PCU), the virtyal cluster (VC) management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the anchor points (AP) among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;KEY CONCEPTS&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key features of the PCU Model are:&#039;&#039;&lt;br /&gt;
*an ISP like service structure&lt;br /&gt;
*proposing the resource profiling scheme for resource registration&lt;br /&gt;
*addressing scalability by developing PCU structure made up of domains&lt;br /&gt;
*incorporating peering technology for inter-domain information dissemination &lt;br /&gt;
*SLA based service instantiation and monitoring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concepts of the VCs idea in this paper are:&#039;&#039;&lt;br /&gt;
*it mathematically formulates the trade-off between achieving the best QoS and reducing the system cost, making it best suitable for commercial infrastructures&lt;br /&gt;
*even though multiple services can occupy a single resource and the service–resource attachments can change with time, a virtualized static logical resource set exposed to the service origin (SO) hides the complexity&lt;br /&gt;
*being a semi-dynamic scheme, a VC can reshape itself matching the varying demand pattern, at the same time the static virtualization to the SO simplifying the service management&lt;br /&gt;
*the optimization based VC creation results in better resource utilization&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concept to anchor points:&#039;&#039;&lt;br /&gt;
*By providing a representation of demand distribution in a network, the concept of anchor point enables a client-centric resource allocation for widearea services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key attributes of Overload Partitions:&#039;&#039;&lt;br /&gt;
*they are selected via an optimization process and they are shared among multiple services.&lt;br /&gt;
*Provides a cost effective, but still QoS obeying solution to handle demand spikes in the network&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
(HS) This paper starts off by talking about different components of a service level agreement. These components include:&lt;br /&gt;
1) A description of the nature of service to be provided&lt;br /&gt;
2) The expected performance level of the service, specifically its reliability and responsiveness&lt;br /&gt;
3) The time-frame for response and problem resolution&lt;br /&gt;
4) The process for monitoring and reporting the service level&lt;br /&gt;
5) The consequences for the service provider not meeting its obligations&lt;br /&gt;
6) Escape clauses and constraints.&lt;br /&gt;
&lt;br /&gt;
Then they give three examples of Service level agreements on IP Networks:&lt;br /&gt;
1) Network Connectivity Services&lt;br /&gt;
2) Hosting Services&lt;br /&gt;
3) Integrated services&lt;br /&gt;
&lt;br /&gt;
And for each of the above three, they suggest some availability, performance and reliability clauses. I think that three notions&lt;br /&gt;
of &#039;availability, reliability and performance&#039; could be three parameters that the scheme we are designing should have for each contract.&lt;br /&gt;
&lt;br /&gt;
After this they discuss three different approaches to support SLAs&lt;br /&gt;
1) Insurance Approach&lt;br /&gt;
2) Provisioning Approach&lt;br /&gt;
3) Adaptive Approach&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
Imagine this as a table:&lt;br /&gt;
&lt;br /&gt;
*Type&lt;br /&gt;
**Whether this is an obligation or permission. A prohibition is modelled as an obligation not to do something, i.e. with a negative normative condition below&lt;br /&gt;
*Target&lt;br /&gt;
**The contract party obliged, prohibited or permitted by the clause.&lt;br /&gt;
*Activating Condition&lt;br /&gt;
**The circumstances under which the clause has force, parameterized by the variables specific to each instance.&lt;br /&gt;
*Normative Condition&lt;br /&gt;
**The circumstances under which the obligation is not being violated or the permission is being taken advantage of, parameterized by the variable specific to each instance. Therefore, for an obligation, the target must maintain the normative condition so as not to be in violation of the contract.&lt;br /&gt;
*Expiration Condition&lt;br /&gt;
**The circumstances under which the clause no longer has force, parameterized by the variables specific to each instance.&lt;br /&gt;
&lt;br /&gt;
This paper provides a nice, straight-forward definition of what a contract is, and provides the above schema for a contract.&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Basically users install this plugin/extension on their browsers. This extension has some XML template for websites to specify their privacy policies. &lt;br /&gt;
Users on the other hand, on their browser, fill out a preference form. When a user visits a website that has this XML form on their side, then it reads it and informs the user&lt;br /&gt;
of how compatible/in what area the privacy policy of that website with respect to the preferences given by the user. The language they use to exchange (for the XML template) is called APPEL.&lt;br /&gt;
It has been developed by the World Wide Web Consortium (W3C) and officially recommended on April 16, 2002. (from Wikipedia, http://en.wikipedia.org/wiki/P3p)&lt;br /&gt;
&lt;br /&gt;
Hence this is not related to what we want to do, given that we narrowed observability to only observability in contracts.&lt;br /&gt;
&lt;br /&gt;
==== Gossiping in Distributed Systems ==== &lt;br /&gt;
[1] Paper: Gossiping in Distributed Systems, Anne-Marie Kermarrec, Maarten van Steen, ACM Sigops 2007&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Gossip-based algorithms were first introduced for reliably disseminating data in large-scale distributed systems. However, their simplicity, robustness, and flexibility make them attractive for more than just pure data dissemination alone. In particular, gossiping has been applied to data aggregation, overlay maintenance, and resource allocation. Gossiping applications more or less fit the same framework, with often subtle differences in algorithmic details determining divergent emergent behaviour. This divergence is often difficult to understand, as formal methods have yet to be developed that can capture the full design space of gossiping solutions. In this paper, we present a brief introduction to the field of gossiping in distributed systems, by providing a simple framework and using that framework to describe solutions for various application domains. &lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
This paper talks about different applications of gossiping and different approaches. Of the most important applications are data dissemination and monitoring services (such as failure detection). Nearly all gossip style algorithms follow the following framework:&lt;br /&gt;
&lt;br /&gt;
a) Peer selection: This is the process of selecting a list of peers, either uniformly at random, or based on some ranking criteria (e.g. proximity, need etc.) to send some data to.&lt;br /&gt;
&lt;br /&gt;
b) Data Exchanged: Selecting information to pass on the peers selected.&lt;br /&gt;
&lt;br /&gt;
c) Data Processing: Processing a data received.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Each peer is equipped with a cache, consisting of references to other peers in the system.&amp;quot; This cache could also store information about other peers. In our project, this could be the service every other peer provides and the reputation that the peers have.&lt;br /&gt;
&lt;br /&gt;
The paper is then divided into a few categories:&lt;br /&gt;
&lt;br /&gt;
1) Dissemination&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling&lt;br /&gt;
&lt;br /&gt;
3) Topology Construction&lt;br /&gt;
&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
In each, they update the framework thats mentioned above. &lt;br /&gt;
&lt;br /&gt;
1) Data Dissemination: &amp;quot;Traditionally, gossip-based solutions have been used for data dissemination purposes. A standard approach toward dissemination is to simply let peers forward messages to each other [1]&amp;quot;. The framework for this section is as follows:&lt;br /&gt;
&lt;br /&gt;
Peer Selection: Each peer selects a list of peers to send information to.&lt;br /&gt;
&lt;br /&gt;
Data Exchanged: Some message is selected and sent.&lt;br /&gt;
&lt;br /&gt;
Data Processing: Receiving peer processes the data [1]&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling: &lt;br /&gt;
&lt;br /&gt;
Peer sampling assumes that the cost and latency of contacting each peer is the same. However, realistically this is not the case. In our system, we need to take into account cost/number of paths etc. as all other peers of a peer are not located next to a given peer.&lt;br /&gt;
&lt;br /&gt;
3) Topology Construction:&lt;br /&gt;
&lt;br /&gt;
  Here they mention that each node/peer only maintains a partial view of the entire system for practical reasons. &lt;br /&gt;
&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
  In this section, they mention the other use of gossiping, which is for resource management and monitoring such as failure detection. In this application, messages exchanged are about status information, such as &amp;quot;Are you alive?&amp;quot; or &amp;quot;I am alive&amp;quot; messages. These messages could be in the form of heartbeats. &lt;br /&gt;
&lt;br /&gt;
 In resource management, it could be used in resource allocation. They give an example of &amp;quot;a gossip-based approach to estimate which slice of a collection a node belongs has been proposed in.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9093</id>
		<title>Category talk:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9093"/>
		<updated>2011-04-04T18:05:33Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
One key concept that we should take from this paper is the way they decided how to allocate the resources. Here is a brief but excellent point to consider:&lt;br /&gt;
*In a public computing utility (PCU), the virtyal cluster (VC) management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the anchor points (AP) among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;KEY CONCEPTS&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key features of the PCU Model are:&#039;&#039;&lt;br /&gt;
*an ISP like service structure&lt;br /&gt;
*proposing the resource profiling scheme for resource registration&lt;br /&gt;
*addressing scalability by developing PCU structure made up of domains&lt;br /&gt;
*incorporating peering technology for inter-domain information dissemination &lt;br /&gt;
*SLA based service instantiation and monitoring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concepts of the VCs idea in this paper are:&#039;&#039;&lt;br /&gt;
*it mathematically formulates the trade-off between achieving the best QoS and reducing the system cost, making it best suitable for commercial infrastructures&lt;br /&gt;
*even though multiple services can occupy a single resource and the service–resource attachments can change with time, a virtualized static logical resource set exposed to the service origin (SO) hides the complexity&lt;br /&gt;
*being a semi-dynamic scheme, a VC can reshape itself matching the varying demand pattern, at the same time the static virtualization to the SO simplifying the service management&lt;br /&gt;
*the optimization based VC creation results in better resource utilization&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concept to anchor points:&#039;&#039;&lt;br /&gt;
*By providing a representation of demand distribution in a network, the concept of anchor point enables a client-centric resource allocation for widearea services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key attributes of Overload Partitions:&#039;&#039;&lt;br /&gt;
*they are selected via an optimization process and they are shared among multiple services.&lt;br /&gt;
*Provides a cost effective, but still QoS obeying solution to handle demand spikes in the network&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
(HS) This paper starts off by talking about different components of a service level agreement. These components include:&lt;br /&gt;
1) A description of the nature of service to be provided&lt;br /&gt;
2) The expected performance level of the service, specifically its reliability and responsiveness&lt;br /&gt;
3) The time-frame for response and problem resolution&lt;br /&gt;
4) The process for monitoring and reporting the service level&lt;br /&gt;
5) The consequences for the service provider not meeting its obligations&lt;br /&gt;
6) Escape clauses and constraints.&lt;br /&gt;
&lt;br /&gt;
Then they give three examples of Service level agreements on IP Networks:&lt;br /&gt;
1) Network Connectivity Services&lt;br /&gt;
2) Hosting Services&lt;br /&gt;
3) Integrated services&lt;br /&gt;
&lt;br /&gt;
And for each of the above three, they suggest some availability, performance and reliability clauses. I think that three notions&lt;br /&gt;
of &#039;availability, reliability and performance&#039; could be three parameters that the scheme we are designing should have for each contract.&lt;br /&gt;
&lt;br /&gt;
After this they discuss three different approaches to support SLAs&lt;br /&gt;
1) Insurance Approach&lt;br /&gt;
2) Provisioning Approach&lt;br /&gt;
3) Adaptive Approach&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
Imagine this as a table:&lt;br /&gt;
&lt;br /&gt;
*Type&lt;br /&gt;
**Whether this is an obligation or permission. A prohibition is modelled as an obligation not to do something, i.e. with a negative normative condition below&lt;br /&gt;
*Target&lt;br /&gt;
**The contract party obliged, prohibited or permitted by the clause.&lt;br /&gt;
*Activating Condition&lt;br /&gt;
**The circumstances under which the clause has force, parameterized by the variables specific to each instance.&lt;br /&gt;
*Normative Condition&lt;br /&gt;
**The circumstances under which the obligation is not being violated or the permission is being taken advantage of, parameterized by the variable specific to each instance. Therefore, for an obligation, the target must maintain the normative condition so as not to be in violation of the contract.&lt;br /&gt;
*Expiration Condition&lt;br /&gt;
**The circumstances under which the clause no longer has force, parameterized by the variables specific to each instance.&lt;br /&gt;
&lt;br /&gt;
This paper provides a nice, straight-forward definition of what a contract is, and provides the above schema for a contract.&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
This is about information observation, not what we want to do.&lt;br /&gt;
&lt;br /&gt;
Basically users install this plugin/extension on their browsers. This extension has some XML template for websites to specify their privacy policies. &lt;br /&gt;
Users on the other hand, on their browser, fill out a preference form. When a user visits a website that has this XML form on their side, then it reads it and informs the user&lt;br /&gt;
of how compatible/in what area the privacy policy of that website with respect to the preferences given by the user. The language they use to exchange (for the XML template) is called APPEL.&lt;br /&gt;
It has been developed by the World Wide Web Consortium (W3C) and officially recommended on April 16, 2002. (from Wikipedia, http://en.wikipedia.org/wiki/P3p)&lt;br /&gt;
&lt;br /&gt;
==== Gossiping in Distributed Systems ==== &lt;br /&gt;
[1] Paper: Gossiping in Distributed Systems, Anne-Marie Kermarrec, Maarten van Steen, ACM Sigops 2007&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Gossip-based algorithms were first introduced for reliably disseminating data in large-scale distributed systems. However, their simplicity, robustness, and flexibility make them attractive for more than just pure data dissemination alone. In particular, gossiping has been applied to data aggregation, overlay maintenance, and resource allocation. Gossiping applications more or less fit the same framework, with often subtle differences in algorithmic details determining divergent emergent behaviour. This divergence is often difficult to understand, as formal methods have yet to be developed that can capture the full design space of gossiping solutions. In this paper, we present a brief introduction to the field of gossiping in distributed systems, by providing a simple framework and using that framework to describe solutions for various application domains. &lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
This paper talks about different applications of gossiping and different approaches. Of the most important applications are data dissemination and monitoring services (such as failure detection). Nearly all gossip style algorithms follow the following framework:&lt;br /&gt;
&lt;br /&gt;
a) Peer selection: This is the process of selecting a list of peers, either uniformly at random, or based on some ranking criteria (e.g. proximity, need etc.) to send some data to.&lt;br /&gt;
&lt;br /&gt;
b) Data Exchanged: Selecting information to pass on the peers selected.&lt;br /&gt;
&lt;br /&gt;
c) Data Processing: Processing a data received.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Each peer is equipped with a cache, consisting of references to other peers in the system.&amp;quot; This cache could also store information about other peers. In our project, this could be the service every other peer provides and the reputation that the peers have.&lt;br /&gt;
&lt;br /&gt;
The paper is then divided into a few categories:&lt;br /&gt;
&lt;br /&gt;
1) Dissemination&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling&lt;br /&gt;
&lt;br /&gt;
3) Topology Construction&lt;br /&gt;
&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
In each, they update the framework thats mentioned above. &lt;br /&gt;
&lt;br /&gt;
1) Data Dissemination: &amp;quot;Traditionally, gossip-based solutions have been used for data dissemination purposes. A standard approach toward dissemination is to simply let peers forward messages to each other [1]&amp;quot;. The framework for this section is as follows:&lt;br /&gt;
&lt;br /&gt;
Peer Selection: Each peer selects a list of peers to send information to.&lt;br /&gt;
&lt;br /&gt;
Data Exchanged: Some message is selected and sent.&lt;br /&gt;
&lt;br /&gt;
Data Processing: Receiving peer processes the data [1]&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling: &lt;br /&gt;
&lt;br /&gt;
Peer sampling assumes that the cost and latency of contacting each peer is the same. However, realistically this is not the case. In our system, we need to take into account cost/number of paths etc. as all other peers of a peer are not located next to a given peer.&lt;br /&gt;
&lt;br /&gt;
3) Topology Construction:&lt;br /&gt;
&lt;br /&gt;
  Here they mention that each node/peer only maintains a partial view of the entire system for practical reasons. &lt;br /&gt;
&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
  In this section, they mention the other use of gossiping, which is for resource management and monitoring such as failure detection. In this application, messages exchanged are about status information, such as &amp;quot;Are you alive?&amp;quot; or &amp;quot;I am alive&amp;quot; messages. These messages could be in the form of heartbeats. &lt;br /&gt;
&lt;br /&gt;
 In resource management, it could be used in resource allocation. They give an example of &amp;quot;a gossip-based approach to estimate which slice of a collection a node belongs has been proposed in.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9092</id>
		<title>Category talk:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9092"/>
		<updated>2011-04-04T17:54:17Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
One key concept that we should take from this paper is the way they decided how to allocate the resources. Here is a brief but excellent point to consider:&lt;br /&gt;
*In a public computing utility (PCU), the virtyal cluster (VC) management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the anchor points (AP) among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;KEY CONCEPTS&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key features of the PCU Model are:&#039;&#039;&lt;br /&gt;
*an ISP like service structure&lt;br /&gt;
*proposing the resource profiling scheme for resource registration&lt;br /&gt;
*addressing scalability by developing PCU structure made up of domains&lt;br /&gt;
*incorporating peering technology for inter-domain information dissemination &lt;br /&gt;
*SLA based service instantiation and monitoring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concepts of the VCs idea in this paper are:&#039;&#039;&lt;br /&gt;
*it mathematically formulates the trade-off between achieving the best QoS and reducing the system cost, making it best suitable for commercial infrastructures&lt;br /&gt;
*even though multiple services can occupy a single resource and the service–resource attachments can change with time, a virtualized static logical resource set exposed to the service origin (SO) hides the complexity&lt;br /&gt;
*being a semi-dynamic scheme, a VC can reshape itself matching the varying demand pattern, at the same time the static virtualization to the SO simplifying the service management&lt;br /&gt;
*the optimization based VC creation results in better resource utilization&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concept to anchor points:&#039;&#039;&lt;br /&gt;
*By providing a representation of demand distribution in a network, the concept of anchor point enables a client-centric resource allocation for widearea services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key attributes of Overload Partitions:&#039;&#039;&lt;br /&gt;
*they are selected via an optimization process and they are shared among multiple services.&lt;br /&gt;
*Provides a cost effective, but still QoS obeying solution to handle demand spikes in the network&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
(HS) This paper starts off by talking about different components of a service level agreement. These components include:&lt;br /&gt;
1) A description of the nature of service to be provided&lt;br /&gt;
2) The expected performance level of the service, specifically its reliability and responsiveness&lt;br /&gt;
3) The time-frame for response and problem resolution&lt;br /&gt;
4) The process for monitoring and reporting the service level&lt;br /&gt;
5) The consequences for the service provider not meeting its obligations&lt;br /&gt;
6) Escape clauses and constraints.&lt;br /&gt;
&lt;br /&gt;
Then they give three examples of Service level agreements on IP Networks:&lt;br /&gt;
1) Network Connectivity Services&lt;br /&gt;
2) Hosting Services&lt;br /&gt;
3) Integrated services&lt;br /&gt;
&lt;br /&gt;
And for each of the above three, they suggest some availability, performance and reliability clauses. I think that three notions&lt;br /&gt;
of &#039;availability, reliability and performance&#039; could be three parameters that the scheme we are designing should have for each contract.&lt;br /&gt;
&lt;br /&gt;
After this they discuss three different approaches to support SLAs&lt;br /&gt;
1) Insurance Approach&lt;br /&gt;
2) Provisioning Approach&lt;br /&gt;
3) Adaptive Approach&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
Imagine this as a table:&lt;br /&gt;
&lt;br /&gt;
*Type&lt;br /&gt;
**Whether this is an obligation or permission. A prohibition is modelled as an obligation not to do something, i.e. with a negative normative condition below&lt;br /&gt;
*Target&lt;br /&gt;
**The contract party obliged, prohibited or permitted by the clause.&lt;br /&gt;
*Activating Condition&lt;br /&gt;
**The circumstances under which the clause has force, parameterized by the variables specific to each instance.&lt;br /&gt;
*Normative Condition&lt;br /&gt;
**The circumstances under which the obligation is not being violated or the permission is being taken advantage of, parameterized by the variable specific to each instance. Therefore, for an obligation, the target must maintain the normative condition so as not to be in violation of the contract.&lt;br /&gt;
*Expiration Condition&lt;br /&gt;
**The circumstances under which the clause no longer has force, parameterized by the variables specific to each instance.&lt;br /&gt;
&lt;br /&gt;
This paper provides a nice, straight-forward definition of what a contract is, and provides the above schema for a contract.&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
This is about information observation, not what we want to do.&lt;br /&gt;
==== Gossiping in Distributed Systems ==== &lt;br /&gt;
[1] Paper: Gossiping in Distributed Systems, Anne-Marie Kermarrec, Maarten van Steen, ACM Sigops 2007&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Gossip-based algorithms were first introduced for reliably disseminating data in large-scale distributed systems. However, their simplicity, robustness, and flexibility make them attractive for more than just pure data dissemination alone. In particular, gossiping has been applied to data aggregation, overlay maintenance, and resource allocation. Gossiping applications more or less fit the same framework, with often subtle differences in algorithmic details determining divergent emergent behaviour. This divergence is often difficult to understand, as formal methods have yet to be developed that can capture the full design space of gossiping solutions. In this paper, we present a brief introduction to the field of gossiping in distributed systems, by providing a simple framework and using that framework to describe solutions for various application domains. &lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
This paper talks about different applications of gossiping and different approaches. Of the most important applications are data dissemination and monitoring services (such as failure detection). Nearly all gossip style algorithms follow the following framework:&lt;br /&gt;
&lt;br /&gt;
a) Peer selection: This is the process of selecting a list of peers, either uniformly at random, or based on some ranking criteria (e.g. proximity, need etc.) to send some data to.&lt;br /&gt;
&lt;br /&gt;
b) Data Exchanged: Selecting information to pass on the peers selected.&lt;br /&gt;
&lt;br /&gt;
c) Data Processing: Processing a data received.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Each peer is equipped with a cache, consisting of references to other peers in the system.&amp;quot; This cache could also store information about other peers. In our project, this could be the service every other peer provides and the reputation that the peers have.&lt;br /&gt;
&lt;br /&gt;
The paper is then divided into a few categories:&lt;br /&gt;
&lt;br /&gt;
1) Dissemination&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling&lt;br /&gt;
&lt;br /&gt;
3) Topology Construction&lt;br /&gt;
&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
In each, they update the framework thats mentioned above. &lt;br /&gt;
&lt;br /&gt;
1) Data Dissemination: &amp;quot;Traditionally, gossip-based solutions have been used for data dissemination purposes. A standard approach toward dissemination is to simply let peers forward messages to each other [1]&amp;quot;. The framework for this section is as follows:&lt;br /&gt;
&lt;br /&gt;
Peer Selection: Each peer selects a list of peers to send information to.&lt;br /&gt;
&lt;br /&gt;
Data Exchanged: Some message is selected and sent.&lt;br /&gt;
&lt;br /&gt;
Data Processing: Receiving peer processes the data [1]&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling: &lt;br /&gt;
&lt;br /&gt;
Peer sampling assumes that the cost and latency of contacting each peer is the same. However, realistically this is not the case. In our system, we need to take into account cost/number of paths etc. as all other peers of a peer are not located next to a given peer.&lt;br /&gt;
&lt;br /&gt;
3) Topology Construction:&lt;br /&gt;
&lt;br /&gt;
  Here they mention that each node/peer only maintains a partial view of the entire system for practical reasons. &lt;br /&gt;
&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
  In this section, they mention the other use of gossiping, which is for resource management and monitoring such as failure detection. In this application, messages exchanged are about status information, such as &amp;quot;Are you alive?&amp;quot; or &amp;quot;I am alive&amp;quot; messages. These messages could be in the form of heartbeats. &lt;br /&gt;
&lt;br /&gt;
 In resource management, it could be used in resource allocation. They give an example of &amp;quot;a gossip-based approach to estimate which slice of a collection a node belongs has been proposed in.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9091</id>
		<title>Category talk:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9091"/>
		<updated>2011-04-04T17:53:44Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
One key concept that we should take from this paper is the way they decided how to allocate the resources. Here is a brief but excellent point to consider:&lt;br /&gt;
*In a public computing utility (PCU), the virtyal cluster (VC) management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the anchor points (AP) among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;KEY CONCEPTS&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key features of the PCU Model are:&#039;&#039;&lt;br /&gt;
*an ISP like service structure&lt;br /&gt;
*proposing the resource profiling scheme for resource registration&lt;br /&gt;
*addressing scalability by developing PCU structure made up of domains&lt;br /&gt;
*incorporating peering technology for inter-domain information dissemination &lt;br /&gt;
*SLA based service instantiation and monitoring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concepts of the VCs idea in this paper are:&#039;&#039;&lt;br /&gt;
*it mathematically formulates the trade-off between achieving the best QoS and reducing the system cost, making it best suitable for commercial infrastructures&lt;br /&gt;
*even though multiple services can occupy a single resource and the service–resource attachments can change with time, a virtualized static logical resource set exposed to the service origin (SO) hides the complexity&lt;br /&gt;
*being a semi-dynamic scheme, a VC can reshape itself matching the varying demand pattern, at the same time the static virtualization to the SO simplifying the service management&lt;br /&gt;
*the optimization based VC creation results in better resource utilization&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concept to anchor points:&#039;&#039;&lt;br /&gt;
*By providing a representation of demand distribution in a network, the concept of anchor point enables a client-centric resource allocation for widearea services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key attributes of Overload Partitions:&#039;&#039;&lt;br /&gt;
*they are selected via an optimization process and they are shared among multiple services.&lt;br /&gt;
*Provides a cost effective, but still QoS obeying solution to handle demand spikes in the network&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
(HS) This paper starts off by talking about different components of a service level agreement. These components include:&lt;br /&gt;
1) A description of the nature of service to be provided&lt;br /&gt;
2) The expected performance level of the service, specifically its reliability and responsiveness&lt;br /&gt;
3) The time-frame for response and problem resolution&lt;br /&gt;
4) The process for monitoring and reporting the service level&lt;br /&gt;
5) The consequences for the service provider not meeting its obligations&lt;br /&gt;
6) Escape clauses and constraints.&lt;br /&gt;
&lt;br /&gt;
Then they give three examples of Service level agreements on IP Networks:&lt;br /&gt;
1) Network Connectivity Services&lt;br /&gt;
2) Hosting Services&lt;br /&gt;
3) Integrated services&lt;br /&gt;
&lt;br /&gt;
And for each of the above three, they suggest some availability, performance and reliability clauses. I think that three notions&lt;br /&gt;
of &#039;availability, reliability and performance&#039; could be three parameters that the scheme we are designing should have for each contract.&lt;br /&gt;
&lt;br /&gt;
After this they discuss three different approaches to support SLAs&lt;br /&gt;
1) Insurance Approach&lt;br /&gt;
2) Provisioning Approach&lt;br /&gt;
3) Adaptive Approach&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
Imagine this as a table:&lt;br /&gt;
&lt;br /&gt;
*Type&lt;br /&gt;
**Whether this is an obligation or permission. A prohibition is modelled as an obligation not to do something, i.e. with a negative normative condition below&lt;br /&gt;
*Target&lt;br /&gt;
**The contract party obliged, prohibited or permitted by the clause.&lt;br /&gt;
*Activating Condition&lt;br /&gt;
**The circumstances under which the clause has force, parameterized by the variables specific to each instance.&lt;br /&gt;
*Normative Condition&lt;br /&gt;
**The circumstances under which the obligation is not being violated or the permission is being taken advantage of, parameterized by the variable specific to each instance. Therefore, for an obligation, the target must maintain the normative condition so as not to be in violation of the contract.&lt;br /&gt;
*Expiration Condition&lt;br /&gt;
**The circumstances under which the clause no longer has force, parameterized by the variables specific to each instance.&lt;br /&gt;
&lt;br /&gt;
This paper provides a nice, straight-forward definition of what a contract is, and provides the above schema for a contract.&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
This is about information observation, not what we want to do.&lt;br /&gt;
==== Gossiping in Distributed Systems ==== &lt;br /&gt;
[1] Paper: Gossiping in Distributed Systems, Anne-Marie Kermarrec, Maarten van Steen, ACM Sigops 2007&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Gossip-based algorithms were first introduced for reliably disseminating data in large-scale distributed systems. However, their simplicity, robustness, and flexibility make them attractive for more than just pure data dissemination alone. In particular, gossiping has been applied to data aggregation, overlay maintenance, and resource allocation. Gossiping applications more or less fit the same framework, with often subtle differences in algorithmic details determining divergent emergent behaviour. This divergence is often difficult to understand, as formal methods have yet to be developed that can capture the full design space of gossiping solutions. In this paper, we present a brief introduction to the field of gossiping in distributed systems, by providing a simple framework and using that framework to describe solutions for various application domains. &lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
This paper talks about different applications of gossiping and different approaches. Of the most important applications are data dissemination and monitoring services (such as failure detection). Nearly all gossip style algorithms follow the following framework:&lt;br /&gt;
&lt;br /&gt;
a) Peer selection: This is the process of selecting a list of peers, either uniformly at random, or based on some ranking criteria (e.g. proximity, need etc.) to send some data to.&lt;br /&gt;
&lt;br /&gt;
b) Data Exchanged: Selecting information to pass on the peers selected.&lt;br /&gt;
&lt;br /&gt;
c) Data Processing: Processing a data received.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Each peer is equipped with a cache, consisting of references to other peers in the system.&amp;quot; This cache could also store information about other peers. In our project, this could be the service every other peer provides and the reputation that the peers have.&lt;br /&gt;
&lt;br /&gt;
The paper is then divided into a few categories:&lt;br /&gt;
&lt;br /&gt;
1) Dissemination&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling&lt;br /&gt;
&lt;br /&gt;
3) Topology Construction&lt;br /&gt;
&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
In each, they update the framework thats mentioned above. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;1) Data Dissemination: &amp;quot;Traditionally, gossip-based solutions have been used for data dissemination purposes. A standard approach toward dissemination is to simply let peers forward messages to each other [1]&amp;quot;. The framework for this section is as follows:&lt;br /&gt;
&lt;br /&gt;
Peer Selection: Each peer selects a list of peers to send information to.&lt;br /&gt;
&lt;br /&gt;
Data Exchanged: Some message is selected and sent.&lt;br /&gt;
&lt;br /&gt;
Data Processing: Receiving peer processes the data [1]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling: &lt;br /&gt;
&lt;br /&gt;
Peer sampling assumes that the cost and latency of contacting each peer is the same. However, realistically this is not the case. In our system, we need to take into account cost/number of paths etc. as all other peers of a peer are not located next to a given peer.&lt;br /&gt;
&lt;br /&gt;
3) Topology Construction:&lt;br /&gt;
&lt;br /&gt;
  Here they mention that each node/peer only maintains a partial view of the entire system for practical reasons. &lt;br /&gt;
&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
  In this section, they mention the other use of gossiping, which is for resource management and monitoring such as failure detection. In this application, messages exchanged are about status information, such as &amp;quot;Are you alive?&amp;quot; or &amp;quot;I am alive&amp;quot; messages. These messages could be in the form of heartbeats. &lt;br /&gt;
&lt;br /&gt;
 In resource management, it could be used in resource allocation. They give an example of &amp;quot;a gossip-based approach to estimate which slice of a collection a node belongs has been proposed in.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9090</id>
		<title>Category talk:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9090"/>
		<updated>2011-04-04T17:53:17Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
One key concept that we should take from this paper is the way they decided how to allocate the resources. Here is a brief but excellent point to consider:&lt;br /&gt;
*In a public computing utility (PCU), the virtyal cluster (VC) management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the anchor points (AP) among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;KEY CONCEPTS&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key features of the PCU Model are:&#039;&#039;&lt;br /&gt;
*an ISP like service structure&lt;br /&gt;
*proposing the resource profiling scheme for resource registration&lt;br /&gt;
*addressing scalability by developing PCU structure made up of domains&lt;br /&gt;
*incorporating peering technology for inter-domain information dissemination &lt;br /&gt;
*SLA based service instantiation and monitoring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concepts of the VCs idea in this paper are:&#039;&#039;&lt;br /&gt;
*it mathematically formulates the trade-off between achieving the best QoS and reducing the system cost, making it best suitable for commercial infrastructures&lt;br /&gt;
*even though multiple services can occupy a single resource and the service–resource attachments can change with time, a virtualized static logical resource set exposed to the service origin (SO) hides the complexity&lt;br /&gt;
*being a semi-dynamic scheme, a VC can reshape itself matching the varying demand pattern, at the same time the static virtualization to the SO simplifying the service management&lt;br /&gt;
*the optimization based VC creation results in better resource utilization&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concept to anchor points:&#039;&#039;&lt;br /&gt;
*By providing a representation of demand distribution in a network, the concept of anchor point enables a client-centric resource allocation for widearea services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key attributes of Overload Partitions:&#039;&#039;&lt;br /&gt;
*they are selected via an optimization process and they are shared among multiple services.&lt;br /&gt;
*Provides a cost effective, but still QoS obeying solution to handle demand spikes in the network&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
(HS) This paper starts off by talking about different components of a service level agreement. These components include:&lt;br /&gt;
1) A description of the nature of service to be provided&lt;br /&gt;
2) The expected performance level of the service, specifically its reliability and responsiveness&lt;br /&gt;
3) The time-frame for response and problem resolution&lt;br /&gt;
4) The process for monitoring and reporting the service level&lt;br /&gt;
5) The consequences for the service provider not meeting its obligations&lt;br /&gt;
6) Escape clauses and constraints.&lt;br /&gt;
&lt;br /&gt;
Then they give three examples of Service level agreements on IP Networks:&lt;br /&gt;
1) Network Connectivity Services&lt;br /&gt;
2) Hosting Services&lt;br /&gt;
3) Integrated services&lt;br /&gt;
&lt;br /&gt;
And for each of the above three, they suggest some availability, performance and reliability clauses. I think that three notions&lt;br /&gt;
of &#039;availability, reliability and performance&#039; could be three parameters that the scheme we are designing should have for each contract.&lt;br /&gt;
&lt;br /&gt;
After this they discuss three different approaches to support SLAs&lt;br /&gt;
1) Insurance Approach&lt;br /&gt;
2) Provisioning Approach&lt;br /&gt;
3) Adaptive Approach&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
Imagine this as a table:&lt;br /&gt;
&lt;br /&gt;
*Type&lt;br /&gt;
**Whether this is an obligation or permission. A prohibition is modelled as an obligation not to do something, i.e. with a negative normative condition below&lt;br /&gt;
*Target&lt;br /&gt;
**The contract party obliged, prohibited or permitted by the clause.&lt;br /&gt;
*Activating Condition&lt;br /&gt;
**The circumstances under which the clause has force, parameterized by the variables specific to each instance.&lt;br /&gt;
*Normative Condition&lt;br /&gt;
**The circumstances under which the obligation is not being violated or the permission is being taken advantage of, parameterized by the variable specific to each instance. Therefore, for an obligation, the target must maintain the normative condition so as not to be in violation of the contract.&lt;br /&gt;
*Expiration Condition&lt;br /&gt;
**The circumstances under which the clause no longer has force, parameterized by the variables specific to each instance.&lt;br /&gt;
&lt;br /&gt;
This paper provides a nice, straight-forward definition of what a contract is, and provides the above schema for a contract.&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
This is about information observation, not what we want to do.&lt;br /&gt;
==== Gossiping in Distributed Systems ==== &lt;br /&gt;
[1] Paper: Gossiping in Distributed Systems, Anne-Marie Kermarrec, Maarten van Steen, ACM Sigops 2007&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Gossip-based algorithms were first introduced for reliably disseminating data in large-scale distributed systems. However, their simplicity, robustness, and flexibility make them attractive for more than just pure data dissemination alone. In particular, gossiping has been applied to data aggregation, overlay maintenance, and resource allocation. Gossiping applications more or less fit the same framework, with often subtle differences in algorithmic details determining divergent emergent behaviour. This divergence is often difficult to understand, as formal methods have yet to be developed that can capture the full design space of gossiping solutions. In this paper, we present a brief introduction to the field of gossiping in distributed systems, by providing a simple framework and using that framework to describe solutions for various application domains. &lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
This paper talks about different applications of gossiping and different approaches. Of the most important applications are data dissemination and monitoring services (such as failure detection). Nearly all gossip style algorithms follow the following framework:&lt;br /&gt;
&lt;br /&gt;
a) Peer selection: This is the process of selecting a list of peers, either uniformly at random, or based on some ranking criteria (e.g. proximity, need etc.) to send some data to.&lt;br /&gt;
b) Data Exchanged: Selecting information to pass on the peers selected.&lt;br /&gt;
c) Data Processing: Processing a data received.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Each peer is equipped with a cache, consisting of references to other peers in the system.&amp;quot; This cache could also store information about other peers. In our project, this could be the service every other peer provides and the reputation that the peers have.&lt;br /&gt;
&lt;br /&gt;
The paper is then divided into a few categories:&lt;br /&gt;
1) Dissemination&lt;br /&gt;
2) Peer Sampling&lt;br /&gt;
3) Topology Construction&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
In each, they update the framework thats mentioned above. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;1) Data Dissemination: &amp;quot;Traditionally, gossip-based solutions have been used for data dissemination purposes. A standard approach toward dissemination is to simply let peers forward messages to each other [1]&amp;quot;. The framework for this section is as follows:&lt;br /&gt;
&lt;br /&gt;
Peer Selection: Each peer selects a list of peers to send information to.&lt;br /&gt;
&lt;br /&gt;
Data Exchanged: Some message is selected and sent.&lt;br /&gt;
&lt;br /&gt;
Data Processing: Receiving peer processes the data [1]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling: &lt;br /&gt;
&lt;br /&gt;
Peer sampling assumes that the cost and latency of contacting each peer is the same. However, realistically this is not the case. In our system, we need to take into account cost/number of paths etc. as all other peers of a peer are not located next to a given peer.&lt;br /&gt;
&lt;br /&gt;
3) Topology Construction:&lt;br /&gt;
&lt;br /&gt;
  Here they mention that each node/peer only maintains a partial view of the entire system for practical reasons. &lt;br /&gt;
&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
  In this section, they mention the other use of gossiping, which is for resource management and monitoring such as failure detection. In this application, messages exchanged are about status information, such as &amp;quot;Are you alive?&amp;quot; or &amp;quot;I am alive&amp;quot; messages. These messages could be in the form of heartbeats. &lt;br /&gt;
&lt;br /&gt;
 In resource management, it could be used in resource allocation. They give an example of &amp;quot;a gossip-based approach to estimate which slice of a collection a node belongs has been proposed in.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9089</id>
		<title>Category talk:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9089"/>
		<updated>2011-04-04T17:06:26Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
One key concept that we should take from this paper is the way they decided how to allocate the resources. Here is a brief but excellent point to consider:&lt;br /&gt;
*In a public computing utility (PCU), the virtyal cluster (VC) management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the anchor points (AP) among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;KEY CONCEPTS&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key features of the PCU Model are:&#039;&#039;&lt;br /&gt;
*an ISP like service structure&lt;br /&gt;
*proposing the resource profiling scheme for resource registration&lt;br /&gt;
*addressing scalability by developing PCU structure made up of domains&lt;br /&gt;
*incorporating peering technology for inter-domain information dissemination &lt;br /&gt;
*SLA based service instantiation and monitoring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concepts of the VCs idea in this paper are:&#039;&#039;&lt;br /&gt;
*it mathematically formulates the trade-off between achieving the best QoS and reducing the system cost, making it best suitable for commercial infrastructures&lt;br /&gt;
*even though multiple services can occupy a single resource and the service–resource attachments can change with time, a virtualized static logical resource set exposed to the service origin (SO) hides the complexity&lt;br /&gt;
*being a semi-dynamic scheme, a VC can reshape itself matching the varying demand pattern, at the same time the static virtualization to the SO simplifying the service management&lt;br /&gt;
*the optimization based VC creation results in better resource utilization&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concept to anchor points:&#039;&#039;&lt;br /&gt;
*By providing a representation of demand distribution in a network, the concept of anchor point enables a client-centric resource allocation for widearea services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key attributes of Overload Partitions:&#039;&#039;&lt;br /&gt;
*they are selected via an optimization process and they are shared among multiple services.&lt;br /&gt;
*Provides a cost effective, but still QoS obeying solution to handle demand spikes in the network&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
(HS) This paper starts off by talking about different components of a service level agreement. These components include:&lt;br /&gt;
1) A description of the nature of service to be provided&lt;br /&gt;
2) The expected performance level of the service, specifically its reliability and responsiveness&lt;br /&gt;
3) The time-frame for response and problem resolution&lt;br /&gt;
4) The process for monitoring and reporting the service level&lt;br /&gt;
5) The consequences for the service provider not meeting its obligations&lt;br /&gt;
6) Escape clauses and constraints.&lt;br /&gt;
&lt;br /&gt;
Then they give three examples of Service level agreements on IP Networks:&lt;br /&gt;
1) Network Connectivity Services&lt;br /&gt;
2) Hosting Services&lt;br /&gt;
3) Integrated services&lt;br /&gt;
&lt;br /&gt;
And for each of the above three, they suggest some availability, performance and reliability clauses. I think that three notions&lt;br /&gt;
of &#039;availability, reliability and performance&#039; could be three parameters that the scheme we are designing should have for each contract.&lt;br /&gt;
&lt;br /&gt;
After this they discuss three different approaches to support SLAs&lt;br /&gt;
1) Insurance Approach&lt;br /&gt;
2) Provisioning Approach&lt;br /&gt;
3) Adaptive Approach&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
Imagine this as a table:&lt;br /&gt;
&lt;br /&gt;
*Type&lt;br /&gt;
**Whether this is an obligation or permission. A prohibition is modelled as an obligation not to do something, i.e. with a negative normative condition below&lt;br /&gt;
*Target&lt;br /&gt;
**The contract party obliged, prohibited or permitted by the clause.&lt;br /&gt;
*Activating Condition&lt;br /&gt;
**The circumstances under which the clause has force, parameterized by the variables specific to each instance.&lt;br /&gt;
*Normative Condition&lt;br /&gt;
**The circumstances under which the obligation is not being violated or the permission is being taken advantage of, parameterized by the variable specific to each instance. Therefore, for an obligation, the target must maintain the normative condition so as not to be in violation of the contract.&lt;br /&gt;
*Expiration Condition&lt;br /&gt;
**The circumstances under which the clause no longer has force, parameterized by the variables specific to each instance.&lt;br /&gt;
&lt;br /&gt;
This paper provides a nice, straight-forward definition of what a contract is, and provides the above schema for a contract.&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
This is about information observation, not what we want to do.&lt;br /&gt;
==== Gossiping in Distributed Systems ==== &lt;br /&gt;
[1] Paper: Gossiping in Distributed Systems, Anne-Marie Kermarrec, Maarten van Steen, ACM Sigops 2007&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Gossip-based algorithms were first introduced for reliably disseminating data in large-scale distributed systems. However, their simplicity, robustness, and flexibility make them attractive for more than just pure data dissemination alone. In particular, gossiping has been applied to data aggregation, overlay maintenance, and resource allocation. Gossiping applications more or less fit the same framework, with often subtle differences in algorithmic details determining divergent emergent behaviour. This divergence is often difficult to understand, as formal methods have yet to be developed that can capture the full design space of gossiping solutions. In this paper, we present a brief introduction to the field of gossiping in distributed systems, by providing a simple framework and using that framework to describe solutions for various application domains. &lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
This paper talks about different applications of gossiping and different approaches. Of the most important applications are data dissemination and monitoring services (such as failure detection). Nearly all gossip style algorithms follow the following framework:&lt;br /&gt;
&lt;br /&gt;
a) Peer selection: This is the process of selecting a list of peers, either uniformly at random, or based on some ranking criteria (e.g. proximity, need etc.) to send some data to.&lt;br /&gt;
b) Data Exchanged: Selecting information to pass on the peers selected.&lt;br /&gt;
c) Data Processing: Processing a data received.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Each peer is equipped with a cache, consisting of references to other peers in the system.&amp;quot; This cache could also store information about other peers. In our project, this could be the service every other peer provides and the reputation that the peers have.&lt;br /&gt;
&lt;br /&gt;
The paper is then divided into a few categories:&lt;br /&gt;
1) Dissemination&lt;br /&gt;
2) Peer Sampling&lt;br /&gt;
3) Topology Construction&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
In each, they update the framework thats mentioned above. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;1) Data Dissemination: &amp;quot;Traditionally, gossip-based solutions have been used for data dissemination purposes. A standard approach toward dissemination is to simply let peers forward messages to each other [1]&amp;quot;. The framework for this section is as follows:&lt;br /&gt;
&lt;br /&gt;
Peer Selection: Each peer P periodically chooses f &amp;gt;= 1 peers Q1, ... , Qf uniformly at random from the entire set of currently available peers.&lt;br /&gt;
&lt;br /&gt;
Data Exchanged: A message is selected from the local cache and copied from one peer to another. In a push model, P forwards messages to each Qi; in a pull model, each Qi sends a message to P. A combination of the two is also possible.&lt;br /&gt;
&lt;br /&gt;
Data Processing: Effectively, nothing special is done except storing the received message for a next iteration, or passing to a higher (application) layer. [1]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9088</id>
		<title>Category talk:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=9088"/>
		<updated>2011-04-04T17:05:52Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
One key concept that we should take from this paper is the way they decided how to allocate the resources. Here is a brief but excellent point to consider:&lt;br /&gt;
*In a public computing utility (PCU), the virtyal cluster (VC) management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the anchor points (AP) among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;KEY CONCEPTS&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key features of the PCU Model are:&#039;&#039;&lt;br /&gt;
*an ISP like service structure&lt;br /&gt;
*proposing the resource profiling scheme for resource registration&lt;br /&gt;
*addressing scalability by developing PCU structure made up of domains&lt;br /&gt;
*incorporating peering technology for inter-domain information dissemination &lt;br /&gt;
*SLA based service instantiation and monitoring&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concepts of the VCs idea in this paper are:&#039;&#039;&lt;br /&gt;
*it mathematically formulates the trade-off between achieving the best QoS and reducing the system cost, making it best suitable for commercial infrastructures&lt;br /&gt;
*even though multiple services can occupy a single resource and the service–resource attachments can change with time, a virtualized static logical resource set exposed to the service origin (SO) hides the complexity&lt;br /&gt;
*being a semi-dynamic scheme, a VC can reshape itself matching the varying demand pattern, at the same time the static virtualization to the SO simplifying the service management&lt;br /&gt;
*the optimization based VC creation results in better resource utilization&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key concept to anchor points:&#039;&#039;&lt;br /&gt;
*By providing a representation of demand distribution in a network, the concept of anchor point enables a client-centric resource allocation for widearea services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;The key attributes of Overload Partitions:&#039;&#039;&lt;br /&gt;
*they are selected via an optimization process and they are shared among multiple services.&lt;br /&gt;
*Provides a cost effective, but still QoS obeying solution to handle demand spikes in the network&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
(HS) This paper starts off by talking about different components of a service level agreement. These components include:&lt;br /&gt;
1) A description of the nature of service to be provided&lt;br /&gt;
2) The expected performance level of the service, specifically its reliability and responsiveness&lt;br /&gt;
3) The time-frame for response and problem resolution&lt;br /&gt;
4) The process for monitoring and reporting the service level&lt;br /&gt;
5) The consequences for the service provider not meeting its obligations&lt;br /&gt;
6) Escape clauses and constraints.&lt;br /&gt;
&lt;br /&gt;
Then they give three examples of Service level agreements on IP Networks:&lt;br /&gt;
1) Network Connectivity Services&lt;br /&gt;
2) Hosting Services&lt;br /&gt;
3) Integrated services&lt;br /&gt;
&lt;br /&gt;
And for each of the above three, they suggest some availability, performance and reliability clauses. I think that three notions&lt;br /&gt;
of &#039;availability, reliability and performance&#039; could be three parameters that the scheme we are designing should have for each contract.&lt;br /&gt;
&lt;br /&gt;
After this they discuss three different approaches to support SLAs&lt;br /&gt;
1) Insurance Approach&lt;br /&gt;
2) Provisioning Approach&lt;br /&gt;
3) Adaptive Approach&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
Imagine this as a table:&lt;br /&gt;
&lt;br /&gt;
*Type&lt;br /&gt;
**Whether this is an obligation or permission. A prohibition is modelled as an obligation not to do something, i.e. with a negative normative condition below&lt;br /&gt;
*Target&lt;br /&gt;
**The contract party obliged, prohibited or permitted by the clause.&lt;br /&gt;
*Activating Condition&lt;br /&gt;
**The circumstances under which the clause has force, parameterized by the variables specific to each instance.&lt;br /&gt;
*Normative Condition&lt;br /&gt;
**The circumstances under which the obligation is not being violated or the permission is being taken advantage of, parameterized by the variable specific to each instance. Therefore, for an obligation, the target must maintain the normative condition so as not to be in violation of the contract.&lt;br /&gt;
*Expiration Condition&lt;br /&gt;
**The circumstances under which the clause no longer has force, parameterized by the variables specific to each instance.&lt;br /&gt;
&lt;br /&gt;
This paper provides a nice, straight-forward definition of what a contract is, and provides the above schema for a contract.&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
This is about information observation, not what we want to do.&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
==== Gossiping in Distributed Systems ==== &lt;br /&gt;
[1] Paper: Gossiping in Distributed Systems, Anne-Marie Kermarrec, Maarten van Steen, ACM Sigops 2007&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Gossip-based algorithms were first introduced for reliably disseminating data in large-scale distributed systems. However, their simplicity, robustness, and flexibility make them attractive for more than just pure data dissemination alone. In particular, gossiping has been applied to data aggregation, overlay maintenance, and resource allocation. Gossiping applications more or less fit the same framework, with often subtle differences in algorithmic details determining divergent emergent behaviour. This divergence is often difficult to understand, as formal methods have yet to be developed that can capture the full design space of gossiping solutions. In this paper, we present a brief introduction to the field of gossiping in distributed systems, by providing a simple framework and using that framework to describe solutions for various application domains. &lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
This paper talks about different applications of gossiping and different approaches. Of the most important applications are data dissemination and monitoring services (such as failure detection). Nearly all gossip style algorithms follow the following framework:&lt;br /&gt;
&lt;br /&gt;
a) Peer selection: This is the process of selecting a list of peers, either uniformly at random, or based on some ranking criteria (e.g. proximity, need etc.) to send some data to.&lt;br /&gt;
b) Data Exchanged: Selecting information to pass on the peers selected.&lt;br /&gt;
c) Data Processing: Processing a data received.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Each peer is equipped with a cache, consisting of references to other peers in the system.&amp;quot; This cache could also store information about other peers. In our project, this could be the service every other peer provides and the reputation that the peers have.&lt;br /&gt;
&lt;br /&gt;
The paper is then divided into a few categories:&lt;br /&gt;
1) Dissemination&lt;br /&gt;
2) Peer Sampling&lt;br /&gt;
3) Topology Construction&lt;br /&gt;
4) Resource Management&lt;br /&gt;
&lt;br /&gt;
In each, they update the framework thats mentioned above. &lt;br /&gt;
&lt;br /&gt;
&amp;quot;1) Data Dissemination: &amp;quot;Traditionally, gossip-based solutions have been used for data dissemination purposes. A standard approach toward dissemination is to simply let peers forward messages to each other [1]&amp;quot;. The framework for this section is as follows:&lt;br /&gt;
&lt;br /&gt;
Peer Selection: Each peer P periodically chooses f &amp;gt;= 1 peers Q1, ... , Qf uniformly at random from the entire set of currently available peers.&lt;br /&gt;
&lt;br /&gt;
Data Exchanged: A message is selected from the local cache and copied from one peer to another. In a push model, P forwards messages to each Qi; in a pull model, each Qi sends a message to P. A combination of the two is also possible.&lt;br /&gt;
&lt;br /&gt;
Data Processing: Effectively, nothing special is done except storing the received message for a next iteration, or passing to a higher (application) layer. [1]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
2) Peer Sampling: &lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=8983</id>
		<title>Category talk:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=8983"/>
		<updated>2011-03-29T16:23:07Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
&lt;br /&gt;
(HS) This paper starts off by talking about different components of a service level agreement. These components include:&lt;br /&gt;
1) A description of the nature of service to be provided&lt;br /&gt;
2) The expected performance level of the service, specifically its reliability and responsiveness&lt;br /&gt;
3) The time-frame for response and problem resolution&lt;br /&gt;
4) The process for monitoring and reporting the service level&lt;br /&gt;
5) The consequences for the service provider not meeting its obligations&lt;br /&gt;
6) Escape clauses and constraints.&lt;br /&gt;
&lt;br /&gt;
Then they give three examples of Service level agreements on IP Networks:&lt;br /&gt;
1) Network Connectivity Services&lt;br /&gt;
2) Hosting Services&lt;br /&gt;
3) Integrated services&lt;br /&gt;
&lt;br /&gt;
And for each of the above three, they suggest some availability, performance and reliability clauses. I think that three notions&lt;br /&gt;
of &#039;availability, reliability and performance&#039; could be three parameters that the scheme we are designing should have for each contract.&lt;br /&gt;
&lt;br /&gt;
After this they discuss three different approaches to support SLAs&lt;br /&gt;
1) Insurance Approach&lt;br /&gt;
2) Provisioning Approach&lt;br /&gt;
3) Adaptive Approach&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Contracts&amp;diff=8645</id>
		<title>Category:2011-Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Contracts&amp;diff=8645"/>
		<updated>2011-03-17T17:19:20Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the category page for things regarding contracts&lt;br /&gt;
&lt;br /&gt;
* (TK) When I think of contracts, I think of:&lt;br /&gt;
** (TK) who is responsible for the terms and agreements&lt;br /&gt;
** (TK) who is made aware of the agreement? Is it broadcast to everyone or only a select few people?&lt;br /&gt;
** (TK) who/what is the governing body?&lt;br /&gt;
*** (SL) Does there even need to be a governing body?&lt;br /&gt;
** (TK) the first step should be to find a way to verify the different parties involved in the contract.&lt;br /&gt;
* (HS) What mechanism can be provided to enforce contracts?&lt;br /&gt;
* (SL) Should there be more of a feedback system than COMPLETE/INCOMPLETE?&lt;br /&gt;
* (SL) Does every contract have to be about the exchange of quantifiable &amp;quot;goods&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
[[Category:2011-O&amp;amp;C]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Observability&amp;diff=8637</id>
		<title>Category:2011-Observability</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Observability&amp;diff=8637"/>
		<updated>2011-03-17T16:16:13Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* (TK) How can we observe the information that we, our computer or ourselves, provide the &amp;quot;network&amp;quot; or public is not going to be maliciously used?&lt;br /&gt;
** (TK) One point that was discussed in class was the idea of a digital fingerprint. Is this really feasible? and how would it work?&lt;br /&gt;
** (HS) One way is to minimize what information you give away, or at least &#039;be aware&#039; of what you are giving away. However, observability is not limited to just information that we send out. We are also looking for ways to observe contracts being fulfilled.  &lt;br /&gt;
** (HS) Also besides the fingerprinting, there is no guarantee that once your information goes to a party that you want with any fingerprint mechanism or security measure, once they have it decrypted, you can&#039;t (assuming they are not caught) stop them from passing the information on. &lt;br /&gt;
[[Category:2011-O&amp;amp;C]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Observability&amp;diff=8636</id>
		<title>Category:2011-Observability</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Observability&amp;diff=8636"/>
		<updated>2011-03-17T16:16:02Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* (TK) How can we observe the information that we, our computer or ourselves, provide the &amp;quot;network&amp;quot; or public is not going to be maliciously used?&lt;br /&gt;
** (TK) One point that was discussed in class was the idea of a digital fingerprint. Is this really feasible? and how would it work?&lt;br /&gt;
** (HS) One way is to minimize what information you give away, or at least &#039;be aware&#039; of what you are giving away. However, observability is not limited to just information that we send out. We are also looking for ways to observe contracts being fulfilled.  &lt;br /&gt;
** (HS) Also besides the fingerprinting, there is not guarantee that once your information goes to a party that you want with any fingerprint mechanism or security measure, once they have it decrypted, you can&#039;t (assuming they are not caught) stop them from passing the information on. &lt;br /&gt;
[[Category:2011-O&amp;amp;C]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Contracts&amp;diff=8635</id>
		<title>Category:2011-Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Contracts&amp;diff=8635"/>
		<updated>2011-03-17T16:10:44Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the category page for things regarding contracts&lt;br /&gt;
&lt;br /&gt;
* (TK) When I think of contracts, I think of:&lt;br /&gt;
** (TK) who is responsible for the terms and agreements&lt;br /&gt;
** (TK) who is made aware of the agreement? Is it broadcast to everyone or only a select few people?&lt;br /&gt;
** (TK) who/what is the governing body?&lt;br /&gt;
** (TK) the first step should be to find a way to verify the different parties involved in the contract.&lt;br /&gt;
** (HS) What mechanism can be provided to enforce contracts?&lt;br /&gt;
&lt;br /&gt;
[[Category:2011-O&amp;amp;C]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Observability&amp;diff=8634</id>
		<title>Category:2011-Observability</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Observability&amp;diff=8634"/>
		<updated>2011-03-17T16:08:46Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* (TK) How can we observe the information that we, our computer or ourselves, provide the &amp;quot;network&amp;quot; or public is not going to be maliciously used?&lt;br /&gt;
** (TK) One point that was discussed in class was the idea of a digital fingerprint. Is this really feasible? and how would it work?&lt;br /&gt;
** (HS) One way is to minimize what information you give away, or at least &#039;be aware&#039; of what you are giving away. However, observability is not limited to just information that we send out. We are also looking for ways to observe contracts being fulfilled.  &lt;br /&gt;
[[Category:2011-O&amp;amp;C]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=8621</id>
		<title>Category talk:2011-O&amp;C</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category_talk:2011-O%26C&amp;diff=8621"/>
		<updated>2011-03-16T22:14:10Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Contracts&amp;diff=8580</id>
		<title>Category:2011-Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Contracts&amp;diff=8580"/>
		<updated>2011-03-15T18:06:14Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the category page for things regarding contracts&lt;br /&gt;
&lt;br /&gt;
[[Category:2011-O&amp;amp;C]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Contracts&amp;diff=8578</id>
		<title>Category:2011-Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Category:2011-Contracts&amp;diff=8578"/>
		<updated>2011-03-15T18:05:08Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the category page for things regarding contracts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Hello&lt;br /&gt;
** oh!&lt;br /&gt;
[[Category:2011-O&amp;amp;C]]&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8576</id>
		<title>Talk:DistOS-2011W Observability &amp; Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8576"/>
		<updated>2011-03-15T18:04:09Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Test */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;br /&gt;
&lt;br /&gt;
== Test ==&lt;br /&gt;
&lt;br /&gt;
hello!&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8554</id>
		<title>Talk:DistOS-2011W Observability &amp; Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8554"/>
		<updated>2011-03-15T17:36:46Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Summary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8553</id>
		<title>Talk:DistOS-2011W Observability &amp; Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8553"/>
		<updated>2011-03-15T17:36:26Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
TJ&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Had&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Hadi&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8549</id>
		<title>Talk:DistOS-2011W Observability &amp; Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8549"/>
		<updated>2011-03-15T17:33:27Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== &lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== &lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8548</id>
		<title>Talk:DistOS-2011W Observability &amp; Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8548"/>
		<updated>2011-03-15T17:32:36Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Papers==&lt;br /&gt;
&lt;br /&gt;
===Observability===&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
&lt;br /&gt;
==== Contract Monitoring ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Monitoring Service Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
===Contracts===&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
==== AURIC ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Bandwidth ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
==== Dynamic Adaptation ====&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
==== Heuristics for Enforcing Service Level Agreements ====&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreement in Cloud Computing ====&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Claimed by Scott&lt;br /&gt;
&lt;br /&gt;
==== Service Level Agreements on IP Networks ==== (Hadi)&lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
==== Trustworthiness of New Contracts ====&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
===== Abstract =====&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
===== Summary =====&lt;br /&gt;
Andrew&lt;br /&gt;
&lt;br /&gt;
==== Web Privacy with P3P ==== (Hadi)&lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
==Increasing Observability==&lt;br /&gt;
&lt;br /&gt;
Like we discussed on Thursday, the real question when looking at observability is whether an action can be viewed, and who can view it. In the real world, you have a chance of being observed no matter what you do; the Internet, on the other hand, reduces this observability and instead offers a modicum of anonymity.&lt;br /&gt;
&lt;br /&gt;
As the possibility of being observed increases, behavior adjusts to encourage the positive reputation of the actor or to conform with laws and regulations. This is the main benefit we wish to obtain by increasing the observability of digital actions. While omnipresent observation is possible on a computer network, in terms of observing contracts it might be more efficient to impose the possibility of being observed.&lt;br /&gt;
&lt;br /&gt;
===A Possible System for Increasing Observability of Contracts and Actions?===&lt;br /&gt;
&lt;br /&gt;
In class on Thursday, Scott brought up the idea of tracking a contract by making a minimal set of details available to all (i.e., everyone knows the parties involved in the contract, and whether the contract was fulfilled). Taking this a little further, our group considered the existence of an anonymous, distributed quorum of observers. &lt;br /&gt;
&lt;br /&gt;
This quorum would, upon the creation of a contract, be given a summary of the contract (for example, Company A has agreed to cache data for Company B on a given day, while Company B will reciprocate the following day). Over the term of the contract, the individual systems in the quorum would test the contract to see if the terms had been met. At the end of the contract period, the systems would provide a &amp;quot;vote&amp;quot; declaring whether they witnessed the contract being fulfilled.&lt;br /&gt;
&lt;br /&gt;
This system could also be extended to monitor general actions. Consider again this set of observers, however, now they connect at random to various websites, and take a snapshot of all connections to it. At any given time, no other user knows which system the observers will be monitoring. In other words, the observers are analogous to police patrols, albeit with no set patrol route.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Observability_%26_Contracts&amp;diff=8454</id>
		<title>DistOS-2011W Observability &amp; Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Observability_%26_Contracts&amp;diff=8454"/>
		<updated>2011-03-12T19:46:16Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Problem Outline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please note that the majority of our efforts are contained on the &amp;quot;Discussion&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
==Problem Outline==&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
* How do I observe the acts of other agents, particularly public acts?&lt;br /&gt;
* What &#039;&#039;&#039;CAN&#039;&#039;&#039; be observed?&lt;br /&gt;
* How can contracts be made between computers/agents?&lt;br /&gt;
* How can we ensure that contracts are being upheld?&lt;br /&gt;
* What side effects does observance have? For example if everyone can see who buys something online, would that promote or demote using such website?&lt;br /&gt;
&lt;br /&gt;
==Members==&lt;br /&gt;
* Seyyed Hadi Sajjadpour&lt;br /&gt;
* Tarjit Komal&lt;br /&gt;
* Scott Lyons&lt;br /&gt;
* Andrew Luczak&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8348</id>
		<title>Talk:DistOS-2011W Observability &amp; Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8348"/>
		<updated>2011-03-10T14:19:32Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Observability==&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
&lt;br /&gt;
== Contract Monitoring ==&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
== Monitoring Service Contracts ==&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contracts==&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
== AURIC ==&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
== Bandwidth ==&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
== Dynamic Adaptation ==&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
== Heuristics for Enforcing Service Level Agreements ==&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
== Service Level Agreement in Cloud Computing ==&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
=== Abstact ===&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Service Level Agreements on IP Networks ==&lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
== Trustworthiness of New Contracts ==&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
== Web Privacy with P3P ==&lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
==Consumer Privacy: Balancing Economic and Justice Considerations==&lt;br /&gt;
&lt;br /&gt;
M.Culnan, R. Biles, Journal of Social Issues &lt;br /&gt;
&lt;br /&gt;
http://onlinelibrary.wiley.com/doi/10.1111/1540-4560.00067/full&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Check link for abstract, couldn&#039;t copy paste! This paper talks about government regulation, industry self-regulation and technological solutions with regards to the internet.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8347</id>
		<title>Talk:DistOS-2011W Observability &amp; Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8347"/>
		<updated>2011-03-10T14:19:11Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Observability==&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
&lt;br /&gt;
== Contract Monitoring ==&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
== Monitoring Service Contracts ==&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contracts==&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
== AURIC ==&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
== Bandwidth ==&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
== Dynamic Adaptation ==&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
== Heuristics for Enforcing Service Level Agreements ==&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
== Service Level Agreement in Cloud Computing ==&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
=== Abstact ===&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Service Level Agreements on IP Networks ==&lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
== Trustworthiness of New Contracts ==&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
== Web Privacy with P3P ==&lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;br /&gt;
Also check http://www.w3.org/P3P/&lt;br /&gt;
&lt;br /&gt;
==Consumer Privacy: Balancing Economic and Justice Considerations==&lt;br /&gt;
&lt;br /&gt;
M.Culnan, R. Biles, Journal of Social Issues &lt;br /&gt;
&lt;br /&gt;
http://onlinelibrary.wiley.com/doi/10.1111/1540-4560.00067/full&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
&lt;br /&gt;
Check link for abstract, couldn&#039;t copy paste! This paper talks about government regulation, industry self-regulation and technological solutions with regards to the internet.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8346</id>
		<title>Talk:DistOS-2011W Observability &amp; Contracts</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Talk:DistOS-2011W_Observability_%26_Contracts&amp;diff=8346"/>
		<updated>2011-03-10T14:06:46Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Observability==&lt;br /&gt;
&lt;br /&gt;
* How do we define &#039;public&#039; action? How do we monitor &#039;public&#039; action without monitoring every action?&lt;br /&gt;
* How can you make sure your agent is acting according to your instructions?&lt;br /&gt;
* How can we ensure that information we receive through a third-party is legitimate?&lt;br /&gt;
&lt;br /&gt;
== Contract Monitoring ==&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-03668-2_29 Contract Monitoring in Agent-Based Systems: Case Study] from Lecture Notes in Computer Science by Jiří Hodík, Jiří Vokřínek and Michal Jakob, 2009&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Monitoring of fulfilment of obligations defined by electronic contracts in distributed domains is presented in this paper. A two-level model of contract-based systems and the types of observations needed for contract monitoring are introduced. The observations (inter-agent communication and agents’ actions) are collected and processed by the contract observation and analysis pipeline. The presented approach has been utilized in a multi-agent system for electronic contracting in a modular certification testing domain.&lt;br /&gt;
&lt;br /&gt;
== Monitoring Service Contracts ==&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/3-540-45705-4_15 An Agent-Based Framework for Monitoring Service Contracts] from Lecture Notes in Computer Science by Helmut Kneer, Henrik Stormer, Harald Häuschen and Burkhard Stiller, 2002&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Within the past few years, the variety of real-time multimedia streaming services on the Internet has grown steadily. Performance of streaming services is very sensitive to traffic congestion and results very often in poor service quality on today’s best effort Internet. Reasons include the lack of any traffic prioritization mechanisms on the network level and its dependence on the cooperation of several Internet Service Providers and their reliable transmission of data packets. Therefore, service differentiation and its reliable delivery must be enforced on a business level through the introduction of service contracts between service providers and their customers. However, compliance with such service contracts is the crucial point that decides about successful improvement of the service delivery process. For that reason, an agent-based monitoring framework has been developed and introduced enabling the use of mobile agents to monitor compliance with contractual agreements between service providers and service customers. This framework describes the setup and the functionality of different kinds of mobile agents that allow monitoring of service contracts across domains of multiple service providers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Contracts==&lt;br /&gt;
&lt;br /&gt;
* What can or can&#039;t be contracted?&lt;br /&gt;
* How can you quantify abstract resources?&lt;br /&gt;
* How can two or more parties agree with a minimum of intervention?&lt;br /&gt;
&lt;br /&gt;
Some forms of contracts exist in the form of Service Level Agreements, and there have been efforts made to automate this process:&lt;br /&gt;
&lt;br /&gt;
== AURIC ==&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-75694-1_21 AURIC: A Scalable and Highly Reusable SLA Compliance Auditing Framework] from Lecture Notes in Computer Science, by Hasan and Burkhard Stiller, 2007.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
Service Level Agreements (SLA) are needed to allow business interactions to rely on Internet services. Service Level Objectives (SLO) specify the committed performance level of a service. Thus, SLA compliance auditing aims at verifying these commitments. Since SLOs for various application services and end-to-end performance definitions vary largely, automated auditing of SLA compliances poses the challenge to an auditing framework. Moreover, end-to-end performance data are potentially large for a provider with many customers. Therefore, this paper presents a scalable and highly reusable auditing framework and a prototype, termed AURIC (Auditing Framework for Internet Services), whose components can be distributed across different domains.&lt;br /&gt;
&lt;br /&gt;
== Bandwidth ==&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-30189-9_19 SLA-Driven Flexible Bandwidth Reservation Negotiation Schemes for QoS Aware IP Networks] from Lecture Notes in Computer Science by Gerard Parr and Alan Marshall, 2004.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
We present a generic Service Level Agreement (SLA)-driven service provisioning architecture, which enables dynamic and flexible bandwidth reservation schemes on a per- user or a per-application basis. Various session level SLA negotiation schemes involving bandwidth allocation, service start time and service duration parameters are introduced and analysed. The results show that these negotiation schemes can be utilised for the benefits of both end user and network provide such as getting the highest individual SLA optimisation in terms of Quality of Service (QoS) and price. A prototype based on an industrial agent platform has also been built to demonstrate the negotiation scenario and this is presented and discussed.&lt;br /&gt;
&lt;br /&gt;
== Dynamic Adaptation ==&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-540-89652-4_28 Context-Driven Autonomic Adaptation of SLA] from Lecture notes in Computer Science, by authors Caroline Herssens, Stéphane Faulkner and Ivan Jureta, 2008.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
Service Level Agreements (SLAs) are used in Service-Oriented Computing to define the obligations of the parties involved in a transaction. SLAs define the service users’ Quality of Service (QoS) requirements that the service provider should satisfy. Requirements defined once may not be satisfiable when the context of the web services changes (e.g., when requirements or resource availability changes). Changes in the context can make SLAs obsolete, making SLA revision necessary. We propose a method to autonomously monitor the services’ context, and adapt SLAs to avoid obsolescence thereof.&lt;br /&gt;
&lt;br /&gt;
== Heuristics for Enforcing Service Level Agreements ==&lt;br /&gt;
[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.127.8674&amp;amp;rep=rep1&amp;amp;type=pdf Heuristics for Enforcing Service Level Agreements in a Public Computing Utility] A masters thesis paper by Balasubramaneyam Maniymaran.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
With the increasing popularity of consumer and research oriented wide-area applications,there arises a need for a robust and efﬁcient wide-area resource management system. Even though there exists number of systems for wide area resource management, they fail to couple the QoS management with cost management, which is the key issue in pushing such a system to be commercially successful. Further, the lack of IT skills within the companies arouses the need of decoupling service management from the underlying complex wide-area resource management. A public computing utility (PCU) addresses both these issues, and, in addition, it creates a market place for the selling idling computing resources. &lt;br /&gt;
&lt;br /&gt;
This work proposes a PCU model addressing the above mentioned issues and develops heuristics to enforce QoS in that model. A new concept called virtual clusters (VCs) is introduced as semi-dynamic, service speciﬁc resource partitions of a PCU, optimizing cost, QoS, and resource utilization. This thesis describes the methodology of VC creation, analyses the formulation of a VC creation into an optimization problem, and develops solution heuristics. The concept of VC is supported by two other concepts introduced here namely anchor point (AP) and overload partition (OLP). The concept of AP is used to represent the demand distribution in a network that assists the problem formulation of the VC creation and SLA management. The concept of overload partition is used to handle the demand spikes in a VC.&lt;br /&gt;
&lt;br /&gt;
In a PCU, the VC management is implemented in two phases: the ﬁrst is an off-line phase of creating a VC that selects the appropriate resources and allocates them for the particular service; and the second phase employs on-line scheduling heuristic to distribute the jobs/requests from the APs among the VC nodes to achieve load balancing. A detailed simulation study is conducted to analyze the performance of different VC conﬁgurations for different load conditions and scheduling schemes and this performance is compared with a fully dynamic resource allocation scheme called Service Grid. The results verify the novelty of the VC concept.&lt;br /&gt;
&lt;br /&gt;
== Service Level Agreement in Cloud Computing ==&lt;br /&gt;
[http://knoesis.wright.edu/library/download/OOPSLA_cloud_wsla_v3.pdf SLAs in Cloud Computing] A paper written by Pankesh Patel, Ajith Ranabahu, Amit Sheth.&lt;br /&gt;
&lt;br /&gt;
=== Abstact ===&lt;br /&gt;
Cloud computing that provides cheap and pay-as-you-go computing resources is rapidly gaining momentum as an alternative to traditional IT Infrastructure. As more and more consumers delegate their tasks to cloud providers, Service Level Agreements(SLA) between consumers and providers emerge as a key aspect. Due to the dynamic nature of the cloud, continuous monitoring on Quality of Service (QoS)attributes is necessary to enforce SLAs. Also numerous other factors such as trust (on the cloud provider) come into consideration, particularly for enterprise customers that may outsource its critical data. This complex nature of the cloud landscape warrants a sophisticated means of managing SLAs. This paper proposes a mechanism for managing SLAs in a cloud computing environment using the Web Service Level Agreement(WSLA) framework, developed for SLA monitoring and SLA enforcement in a Service Oriented Architecture (SOA). We use the third party support feature of WSLA to delegate monitoring and enforcement tasks to other entities in order to solve the trust issues. We also present a real world use case to validate our proposal.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Service Level Agreements on IP Networks ==&lt;br /&gt;
&lt;br /&gt;
By Dinesh C. Verma, IBM T. J Watson Research center&lt;br /&gt;
http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1323286&amp;amp;tag=1&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
Abstract: This paper provides an overview of service-level agreements in IP networks. It looks at the typical components of a service-level agreement, and identifies three common approaches that are used to satisfy service level agreements in IP networks. The implications of using the approaches in the context of a network service provider, a hosting service provider, and an enterprise are examined. While most providers currently offer a static insurance approach towards supporting service level agreements, the schemes that can lead to more dynamic approaches are identified.&lt;br /&gt;
&lt;br /&gt;
== Trustworthiness of New Contracts ==&lt;br /&gt;
&lt;br /&gt;
[http://dx.doi.org/10.1007/978-3-642-10203-5_12 Determining the Trustworthiness of New Electronic Contracts] from Lecture Notes in Computer Science by Paul Groth, Simon Miles, Sanjay Modgil, Nir Oren, Michael Luck and Yolanda Gil, 2009.&lt;br /&gt;
&lt;br /&gt;
=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
Expressing contractual agreements electronically potentially allows agents to automatically perform functions surrounding contract use: establishment, fulfilment, renegotiation etc. For such automation to be used for real business concerns, there needs to be a high level of trust in the agent-based system. While there has been much research on simulating trust between agents, there are areas where such trust is harder to establish. In particular, contract proposals may come from parties that an agent has had no prior interaction with and, in competitive business-to-business environments, little reputation information may be available. In human practice, trust in a proposed contract is determined in part from the content of the proposal itself, and the similarity of the content to that of prior contracts, executed to varying degrees of success. In this paper, we argue that such analysis is also appropriate in automated systems, and to provide it we need systems to record salient details of prior contract use and algorithms for assessing proposals on their content. We use provenance technology to provide the former and detail algorithms for measuring contract success and similarity for the latter, applying them to an aerospace case study.&lt;br /&gt;
&lt;br /&gt;
== Web Privacy with P3P ==&lt;br /&gt;
&lt;br /&gt;
http://www.oreilly.de/catalog/webprivp3p/&lt;br /&gt;
&lt;br /&gt;
This book talks about P3P and how companies and web developers can comply with p3p.&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8286</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8286"/>
		<updated>2011-03-09T02:20:50Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Seyyed Sajjadpour&lt;br /&gt;
&lt;br /&gt;
= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model [3,4]]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model [3,4]]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [3] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [3].&lt;br /&gt;
&lt;br /&gt;
[[File:Fig3_hadi.png|500px|thumb|center|The Dual Model[3]]]&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) &lt;br /&gt;
1) Clients &lt;br /&gt;
&lt;br /&gt;
2) Monitors&lt;br /&gt;
 &lt;br /&gt;
3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 [[File:fig4_hadi.png|700px|thumb|center|The hierarchical model [3]]]&lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path.&lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
[[File:Fig5_hadi.png|800px|thumb|center|Gossip + Hierarchical model]]&lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8285</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8285"/>
		<updated>2011-03-09T02:19:31Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Seyyed Sajjadpour&lt;br /&gt;
&lt;br /&gt;
= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks.&lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model [3,4]]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model [3,4]]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [3] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [3].&lt;br /&gt;
&lt;br /&gt;
[[File:Fig3_hadi.png|500px|thumb|center|The Dual Model[3]]]&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) &lt;br /&gt;
1) Clients &lt;br /&gt;
&lt;br /&gt;
2) Monitors&lt;br /&gt;
 &lt;br /&gt;
3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 [[File:fig4_hadi.png|700px|thumb|center|The hierarchical model [3]]]&lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path.&lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
[[File:Fig5_hadi.png|800px|thumb|center|Gossip + Hierarchical model]]&lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8284</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8284"/>
		<updated>2011-03-09T02:18:05Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Seyyed Sajjadpour&lt;br /&gt;
&lt;br /&gt;
= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks. &lt;br /&gt;
&lt;br /&gt;
Most of what I learnt in this task were from papers [3] and [4] as they have beautifully categorized everything. &lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model [3,4]]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model [3,4]]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [3] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [3].&lt;br /&gt;
&lt;br /&gt;
[[File:Fig3_hadi.png|500px|thumb|center|The Dual Model[3]]]&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) &lt;br /&gt;
1) Clients &lt;br /&gt;
&lt;br /&gt;
2) Monitors&lt;br /&gt;
 &lt;br /&gt;
3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 [[File:fig4_hadi.png|700px|thumb|center|The hierarchical model [3]]]&lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path.&lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
[[File:Fig5_hadi.png|800px|thumb|center|Gossip + Hierarchical model]]&lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8275</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8275"/>
		<updated>2011-03-09T00:23:20Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* The Pull Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks. &lt;br /&gt;
&lt;br /&gt;
Most of what I learnt in this task were from papers [3] and [4] as they have beautifully categorized everything. &lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model [3,4]]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model [3,4]]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [3] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [3].&lt;br /&gt;
&lt;br /&gt;
[[File:Fig3_hadi.png|500px|thumb|center|The Dual Model[3]]]&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) &lt;br /&gt;
1) Clients &lt;br /&gt;
&lt;br /&gt;
2) Monitors&lt;br /&gt;
 &lt;br /&gt;
3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 [[File:fig4_hadi.png|700px|thumb|center|The hierarchical model [3]]]&lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path.&lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
[[File:Fig5_hadi.png|800px|thumb|center|Gossip + Hierarchical model]]&lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8274</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8274"/>
		<updated>2011-03-09T00:23:04Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* The Push Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks. &lt;br /&gt;
&lt;br /&gt;
Most of what I learnt in this task were from papers [3] and [4] as they have beautifully categorized everything. &lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model [3,4]]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [3] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [3].&lt;br /&gt;
&lt;br /&gt;
[[File:Fig3_hadi.png|500px|thumb|center|The Dual Model[3]]]&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) &lt;br /&gt;
1) Clients &lt;br /&gt;
&lt;br /&gt;
2) Monitors&lt;br /&gt;
 &lt;br /&gt;
3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 [[File:fig4_hadi.png|700px|thumb|center|The hierarchical model [3]]]&lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path.&lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
[[File:Fig5_hadi.png|800px|thumb|center|Gossip + Hierarchical model]]&lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8273</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8273"/>
		<updated>2011-03-09T00:17:29Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* Gossip-Style Failure Detection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks. &lt;br /&gt;
&lt;br /&gt;
Most of what I learnt in this task were from papers [3] and [4] as they have beautifully categorized everything. &lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [3] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [3].&lt;br /&gt;
&lt;br /&gt;
[[File:Fig3_hadi.png|500px|thumb|center|The Dual Model[3]]]&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) &lt;br /&gt;
1) Clients &lt;br /&gt;
&lt;br /&gt;
2) Monitors&lt;br /&gt;
 &lt;br /&gt;
3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 [[File:fig4_hadi.png|700px|thumb|center|The hierarchical model [3]]]&lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path.&lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
[[File:Fig5_hadi.png|800px|thumb|center|Gossip + Hierarchical model]]&lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:Fig5_hadi.png&amp;diff=8272</id>
		<title>File:Fig5 hadi.png</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:Fig5_hadi.png&amp;diff=8272"/>
		<updated>2011-03-09T00:14:36Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8271</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8271"/>
		<updated>2011-03-09T00:13:48Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* The Hierarchical Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks. &lt;br /&gt;
&lt;br /&gt;
Most of what I learnt in this task were from papers [3] and [4] as they have beautifully categorized everything. &lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [3] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [3].&lt;br /&gt;
&lt;br /&gt;
[[File:Fig3_hadi.png|500px|thumb|center|The Dual Model[3]]]&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) &lt;br /&gt;
1) Clients &lt;br /&gt;
&lt;br /&gt;
2) Monitors&lt;br /&gt;
 &lt;br /&gt;
3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 [[File:fig4_hadi.png|700px|thumb|center|The hierarchical model [3]]]&lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path.&lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:Fig4_hadi.png&amp;diff=8270</id>
		<title>File:Fig4 hadi.png</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:Fig4_hadi.png&amp;diff=8270"/>
		<updated>2011-03-09T00:13:12Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8269</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8269"/>
		<updated>2011-03-09T00:11:42Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* The Hierarchical Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks. &lt;br /&gt;
&lt;br /&gt;
Most of what I learnt in this task were from papers [3] and [4] as they have beautifully categorized everything. &lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [3] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [3].&lt;br /&gt;
&lt;br /&gt;
[[File:Fig3_hadi.png|500px|thumb|center|The Dual Model[3]]]&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) &lt;br /&gt;
1) Clients &lt;br /&gt;
&lt;br /&gt;
2) Monitors&lt;br /&gt;
 &lt;br /&gt;
3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path.&lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8268</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8268"/>
		<updated>2011-03-09T00:11:24Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* More Complex Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks. &lt;br /&gt;
&lt;br /&gt;
Most of what I learnt in this task were from papers [3] and [4] as they have beautifully categorized everything. &lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [3] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [3].&lt;br /&gt;
&lt;br /&gt;
[[File:Fig3_hadi.png|500px|thumb|center|The Dual Model[3]]]&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) 1) Clients 2) Monitors 3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path. &lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8267</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8267"/>
		<updated>2011-03-09T00:09:24Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* The Dual Scheme */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks. &lt;br /&gt;
&lt;br /&gt;
Most of what I learnt in this task were from papers [3] and [4] as they have beautifully categorized everything. &lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [3] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [3].&lt;br /&gt;
&lt;br /&gt;
[[File:Fig3_hadi.png|500px|thumb|center|The Dual Model[3]]]&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) 1) Clients 2) Monitors 3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path. &lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:Fig3_hadi.png&amp;diff=8266</id>
		<title>File:Fig3 hadi.png</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:Fig3_hadi.png&amp;diff=8266"/>
		<updated>2011-03-09T00:08:03Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8265</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8265"/>
		<updated>2011-03-09T00:07:08Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks. &lt;br /&gt;
&lt;br /&gt;
Most of what I learnt in this task were from papers [3] and [4] as they have beautifully categorized everything. &lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [4] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [4].&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) 1) Clients 2) Monitors 3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path. &lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8264</id>
		<title>DistOS-2011W Failure Detection in Distributed Systems</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=DistOS-2011W_Failure_Detection_in_Distributed_Systems&amp;diff=8264"/>
		<updated>2011-03-09T00:06:16Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: /* The Pull Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Abstract =&lt;br /&gt;
&lt;br /&gt;
Failure detection has been studied for some time now. Failure detection is valuable to distributed systems as it adds to their reliability and increases their usefulness. Hence, it is important for distributed systems to be able to detect and cater to failures when they occur efficiently and accurately [3].&lt;br /&gt;
&lt;br /&gt;
= Introduction = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In my literature review, I first talk a little about the history of failure detectors in distributed systems, then move on to define the most used/known protocols used to monitor in between local processes, then move on to introducing their drawbacks, and then mention some work done in solving those drawbacks. &lt;br /&gt;
&lt;br /&gt;
Most of what I learnt in this task were from papers [3] and [4] as they have beautifully categorized everything. &lt;br /&gt;
&lt;br /&gt;
= History =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some work done in the 90’s was related to solving the consensus problem. Consensus roughly means processors/ units agreeing on a common decision despite failures [12].&lt;br /&gt;
&lt;br /&gt;
In the paper of J. Fischer et al. [7] prove that the fault-tolerant cooperative computing (consensus) cannot be solved in a totally asynchronous model. Asynchronous distributed systems are ones that message transmission rates are unbounded [12, 13]. They conclude that there needs to be models that take more realistic approaches based on assumptions on processors and communication timings. However, Chandra and Toueg [12 from 4] mention that by augmenting the asynchronous system model with failure detectors it would be possible to bypass the impossibility in [7].&lt;br /&gt;
&lt;br /&gt;
In [1], they suggest that an independent failure management system should be such that when it is investigating a service that is not responding, it will contact the Operating system that is running it to obtain further confidence. Their independent failure detector should have the following three functional modules:&lt;br /&gt;
“&lt;br /&gt;
1.	A library that implements simple failure management functionality and provide the API to the complete service.&lt;br /&gt;
2.	A service implementing per node failure management, combining fault management with other local nodes to exploit locality of communication and failure patterns.&lt;br /&gt;
3.	An inquiry service closely coupled with the operating system which, upon request, provides information about the state of local participating processes.” [1]&lt;br /&gt;
&lt;br /&gt;
In conclusion of their work, they suggest that failure detection should be a component of the operating system. Most work done after this, tries to go by this. &lt;br /&gt;
&lt;br /&gt;
All failure detection algorithms/schemes use time as a means to identify failure. There are different protocols/ways of using this tool. They vary on how this timeout issue should be addressed, when/where messages should be sent and how often, synchronous or asynchronous. For small-distributed networks, such as LANs etc., coordination and failure detection is simple and does not require much complexity. &lt;br /&gt;
&lt;br /&gt;
= Protocols =&lt;br /&gt;
&lt;br /&gt;
All failure detection mechanisms use time as a means to identify failure. As mentioned, the two most famous ones are the push and pull strategies. In [3], they also introduce a combination of both push and pull. &lt;br /&gt;
&lt;br /&gt;
== The Push Model == &lt;br /&gt;
&lt;br /&gt;
Assuming that we have two processes, p and q. With p being the process that is the monitor. Process q will be sending heartbeat messages every t seconds, hence process p will be expecting a “I am alive message” from q every t seconds. Heartbeat messages are messages that are sent on a timely bases to inform/get informed about a process. If after a timeout period T, p does not receive any messages from q, then it starts suspecting q [3,4]. The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
 [[File:fig1.png|400px|thumb|center|Push Model]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the figure, process q is sending heartbeat messages periodically. At one point it crashes and it stops sending messages. Process p, waiting for heartbeat messages, at this point does not receive any more messages, and after a timeout period of T, suspects that q has failed.&lt;br /&gt;
&lt;br /&gt;
== The Pull Model ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Assume that we have the same parameters as above. In this model, instead of the process q (the one that has to prove its alive) sending messages to p every few seconds, it sends ‘are you alive?’ messages to q every t seconds, and waits for q to respond ‘yes I am alive’ [3,4].  The figure below is used in both [3] and [4] with a minute difference in each.&lt;br /&gt;
 &lt;br /&gt;
[[File:Fig2.png|400px|thumb|center|The Pull Model]]&lt;br /&gt;
&lt;br /&gt;
In the above figure, p repeatedly checks if q is alive, and if q is alive it will respond with the &#039;I am alive&#039; heartbeat message. Once q crashes, p does not receive any more responses from q and starts suspecting the failure of q after a timeout T time.&lt;br /&gt;
&lt;br /&gt;
== The Dual Scheme ==&lt;br /&gt;
&lt;br /&gt;
The pull model is somehow inefficient as there are potentially too many messages sent between the processes. The pull model is a bit more efficient in this manner. Hence, in [4] they propose a model that is a mix of the two. During the first message sending phase, any q like process that is being monitored by p, is assumed to use the push model, and hence send “ I am alive” or “liveness” messages to p. After some time, p assumes that any q like process that did not send a liveness message is using the pull model.  The figure below is only in [4].&lt;br /&gt;
&lt;br /&gt;
= More Complex Methods =&lt;br /&gt;
&lt;br /&gt;
Although the above-mentioned protocols can help us in detecting failures in systems, however they do not scale well in large distributed systems. This is due mostly due to bandwidth limitations, message overload etc, hence the scalability problem is the major concern [3]. There have been various different approaches to solving this problem. In my review, I will touch upon the three that I investigated, which are &lt;br /&gt;
&lt;br /&gt;
1)	The Hierarchical Method&lt;br /&gt;
2)	Gossip-style Failure Detection&lt;br /&gt;
3)	The Accrual Failure Detector &lt;br /&gt;
&lt;br /&gt;
== The Hierarchical Model ==&lt;br /&gt;
&lt;br /&gt;
This model is an appropriate model for a LAN. In [3], they introduce three different elements exists (by summary) 1) Clients 2) Monitors 3) Monitorable objects in the hierarchical model. I will illustrate this by the figure below from [3], note I redrew the figure myself to avoid any copyright issues.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
In the figure, FD1, FD2, FD3 and FD3’ are all monitors/failure detectors. As you can notice the monitors are not all in the same LAN, however, each monitor only monitors monitorable objects in its own LAN. While monitoring the monitorables, they also notify the clients of the status of the objects they need to know about. This model greatly reduces the amount of messages exchanged in between process. Instead of the clients monitoring every object that is monitorable, monitors do so and notify the clients when necessary or when they ask for it. On top of that, monitors also ask other monitors about their monitorable objects, hence they do not need to communicate with every other monitorable object. Again this reduces the heartbeat messages exchanged. In the given example, even if FD3 or FD3’ fail, the clients will not notice it as messages can be routed through another path. &lt;br /&gt;
&lt;br /&gt;
== Gossip-Style Failure Detection ==&lt;br /&gt;
&lt;br /&gt;
The hierarchical configuration seems to be a good choice for a few LANs working together, however, it still does not solve our problem of larger scale networks, such as WANs or over the Internet distributed work. &lt;br /&gt;
&lt;br /&gt;
Gossiping in distributed systems is the repeated probabilistic exchange of information between two members [6]. The first use of Gossiping in distributed systems first appeared in [8, from 6].&lt;br /&gt;
&lt;br /&gt;
Gossiping dynamically changes information among peers. Each peer has a cache/list of other peers. Traditionally gossiping in distributed systems has been used to disseminate information/etc to other peers [6]. Most gossiping approaches have the following three tasks:&lt;br /&gt;
&lt;br /&gt;
1)	Peer Selection: In this task, each peer must choose some peers to send data to. This could be on a schedule, or it could be done randomly. &lt;br /&gt;
&lt;br /&gt;
2)	Data Exchanged: The peer sending the data, must select some data to send to the peers it has chosen.&lt;br /&gt;
&lt;br /&gt;
3)	Data Processing: The peer at the receiving end decides what to do with the data sent from other peers [6].&lt;br /&gt;
&lt;br /&gt;
In our case, we are interested in the use of gossiping for failure detection. In [2], they propose a Gossip-Style failure detection mechanism that we will look at here.&lt;br /&gt;
&lt;br /&gt;
In gossips, a member sends information to randomly chosen members [2]. Their gossips and gossips in general mix the efficiency of hierarchical dissemination and the robustness of flooding protocols [2]. Their protocol gossips to figure out who else is still gossiping. &lt;br /&gt;
&lt;br /&gt;
Each member maintains a list of each known member, its address and a heartbeat counter that will be the basis of judgment of failure. The heartbeat counter is mapped to the member each member in the list. Every Tg seconds, each member increments its own heartbeat and selects members to send its list to. Receiving members, will then merge the arrived list with their own list, and adopt the maximum heartbeat of each member in the list. Each member also keeps track of the last time a members heartbeat was incremented. If the heartbeat of a member has not increased in Tf (T fail) seconds, than that member is suspected for failure. However, given that it might take some time before a member might get an update, or one member has passed Tf of another member, but others might not necessarily have done so, they introduce another time variable Tc , such that they once they past this time, they can have greater confidence in the failure of a suspected node. &lt;br /&gt;
&lt;br /&gt;
Each member gossips at regular intervals, but these intervals are not synchronized with each other. &lt;br /&gt;
&lt;br /&gt;
The above mentioned is the core of the algorithm, in brief, each member has a list of other members with a heartbeat counter, once every few seconds, it randomly chooses other members to gossip its new list to and increments its own heartbeat. At the receiving end, the member merges his list with the incoming list. If for a given member, a heartbeat is not incremented with an adequate time, then that member will be suspect for failure. &lt;br /&gt;
&lt;br /&gt;
The paper then goes on analyzing their proposed scheme and calculating error detection time in different scenarios and also playing around with parameters. They investigate against; number of failed members, number of mistakes and against probability of message lost. They also investigate different what values they should choose for Tc, Tf with respect to the number of members, expected failure rate, expected message lost etc. &lt;br /&gt;
&lt;br /&gt;
=== Expanding the Gossip (Multi-level Gossiping) ===&lt;br /&gt;
&lt;br /&gt;
Their scheme so far works well for a subnet setting. They expand their gossiping scheme to a multi level gossiping scheme. To avoid using too much bandwidth, most gossiping is done in the same subnet, with few gossiping messages done in between subnets, and even fewer between domains. Their protocol wants to have on average one member per subnet to gossip another member in another subnet in each round. To achieve this, every member tosses a weighted coin every time it gossips. One out of n times, where n is the size of the subnet, it picks a random subnet within its domain, and random host to gossip to. Then the member tosses another coin to choose another domain.&lt;br /&gt;
&lt;br /&gt;
In [3], they draw a diagram in which they mix both the hierarchical model and the [2]’s gossip model. The figure is as follows: &lt;br /&gt;
&lt;br /&gt;
There have been other work done in gossip-style failure detection [15].&lt;br /&gt;
&lt;br /&gt;
== The Accrual Failure Detector ==&lt;br /&gt;
&lt;br /&gt;
In their paper N. Hayashibara et al. in [5] present a new approach to failure detection. They argue that it is difficult to satisfy several application requirements simultaneously while using classical failure detectors. They say that maintaining a certain level of quality-of-service on different requirements and at the same time performing failure detection must still allow tuning of services to meet their needs. They introduce the accrual failure detectors that are not based on a Boolean; either a process is a) correct/working b) suspected.&lt;br /&gt;
&lt;br /&gt;
In the accrual model, a monitor will output a value on a continuous scale rather than Booleans. In this protocol, it is the level of confidence in a suspicion that changes. A process’s level of suspicion increases over time by not receiving on time heartbeats. Their protocol samples heartbeats coming from different hosts, analyzes it, and uses that info to predict what pattern the next heartbeats will follow.  &lt;br /&gt;
&lt;br /&gt;
They use a function, susp_level p(t) &amp;gt;= 0.  This function will grow if the suspicion level of a process p increases. It will decrease if a process p is back up, and shouldn’t change much if it’s working. &lt;br /&gt;
&lt;br /&gt;
There has been some more work done in this field such as [10].&lt;br /&gt;
&lt;br /&gt;
= Further Work =&lt;br /&gt;
&lt;br /&gt;
There has also been other work done in this field that I did not get a chance to deeply analyze. Such works include quality of Service of failure detectors [9].&lt;br /&gt;
&lt;br /&gt;
There has also been work done on dynamic distributed systems. N. Sridhar in his paper [11] present local failure detectors that can tolerate mobility and topology changes.&lt;br /&gt;
&lt;br /&gt;
There is also work done in distributed wireless networks [14].&lt;br /&gt;
&lt;br /&gt;
= Conclusion =&lt;br /&gt;
&lt;br /&gt;
In my literature review, I talked about some work that had been done in the past, introduced some protocols that are used among processes to detect failures then expanded it to wider area networks with more sophisticated protocols and methods that I learnt through out reading different papers. &lt;br /&gt;
&lt;br /&gt;
= References =&lt;br /&gt;
&lt;br /&gt;
[1] W. Vogels. World wide failures. In proceeding of the ACM SIGOPS 1995 European Workshop, 1995.&lt;br /&gt;
&lt;br /&gt;
[2] R. Van Renesse, Y. Minsky, M. Hayden, A gossip-style failure detection service. In proceeding of the IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing, 1998. The version used here is from 2007.&lt;br /&gt;
&lt;br /&gt;
[3] P. Felber, X. Defago, R. Guerraoui, and P. Oser. Failure detectors as first class objects. In Proceedings of the International Symposium on Distributed Objects and Applications, 1999. The version I used here is from 2002.&lt;br /&gt;
[4] N. Hayashibara, A. Cherif, T. Katayama, Failure Detectors for Large-Scale Distributed Systems, In 21st IEEE Symposium of Reliable Distributed Systems (SRDS’ 02). 2002&lt;br /&gt;
[5] N. Hayashibara, X. Defago, R. Yared, T. Katayama. The φ accrual failure detector. In Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems (SRDS’ 04), pages 55-75, 2004&lt;br /&gt;
[6] A. Kermarrec, M. van Steen, Gossiping in Distributed Systems, ACM SIGOPS Operating Systems Review. 2007&lt;br /&gt;
[7] J.Fisher, N. Lynch and M. Paterson, Impossibility of Distributed Consensus with One Faulty Process, Journal of the ACM, 1985&lt;br /&gt;
[8] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart, and D. Terry. “Epidemic Algorithms for Replicated Database Maintenance.” In Proc. Sixth Symp. on Principles of Distributed Computing, pp. 1-12, Aug. 1987. ACM.&lt;br /&gt;
[9] W. Chen, S. Toueg, M.K. Aguilera, On the Quality of Service of Failure Detectors, IEEE transactions on Computers, 2002&lt;br /&gt;
[10] N. Hayashibara, M. Takizawa, Design of a Notification System for the Accrual Failure Detector, 20th International Conference on Advanced Information Networking and Applications – volume 1 (AINA’ 06). 2006&lt;br /&gt;
[11] N. Sridhar, Decentralized Local Failure Detection in Dynamic Distributed Systems, In Proceedings of the 25th IEEE Symposium on Reliable Distributed Systems. 2006&lt;br /&gt;
[12] T. Chandra, S. Toueg. Unreliable failure detectors for reliable distributed systems. Jouranl of the ACM. 1996&lt;br /&gt;
[13] T. Chandra, V. Hadizlacos, S. Toueg, The Weakest Failure Detector for Solving Consensus, Journal of the ACM (JACM), 1996&lt;br /&gt;
[14] J. Chen, S. Kher, A. Somani, Distributed fault detection of wireless sensor networks, In proceedings of the 2006 workshop on dependability issues in wireless ad hoc networks and sensor networks DIWANS ’06, 2006&lt;br /&gt;
[15] S. Ranganathan, A. George, R. Todd, M. Chidester, Gossip-Style Failure Detection an Distributed Consensus for Scalable Heterogeneous Clusters,  Cluster Computing, 2001&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:Fig2.png&amp;diff=8263</id>
		<title>File:Fig2.png</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:Fig2.png&amp;diff=8263"/>
		<updated>2011-03-09T00:05:28Z</updated>

		<summary type="html">&lt;p&gt;Hadi sajjadpour: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Hadi sajjadpour</name></author>
	</entry>
</feed>