<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dariusz grabka &#187; Masters Research</title>
	<atom:link href="http://grabka.org/internet/category/human-computer-interaction/masters-research/feed/" rel="self" type="application/rss+xml" />
	<link>http://grabka.org/internet</link>
	<description>sharing is caring.</description>
	<lastBuildDate>Mon, 26 Jul 2010 18:56:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>First draft of my thesis, done! Kinda.</title>
		<link>http://grabka.org/internet/2009/04/first-draft-of-my-thesis-done-kinda/</link>
		<comments>http://grabka.org/internet/2009/04/first-draft-of-my-thesis-done-kinda/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 19:03:58 +0000</pubDate>
		<dc:creator>dariusz</dc:creator>
				<category><![CDATA[Masters Research]]></category>
		<category><![CDATA[search tagging]]></category>
		<category><![CDATA[thesis]]></category>

		<guid isPermaLink="false">http://grabka.org/internet/?p=307</guid>
		<description><![CDATA[So as many of you know, I&#8217;ve been trying to get my Master&#8217;s thesis done soon so I can graduate this May.  Today I reached a bit of a milestone:  the first draft.   It&#8217;s not all I want it to be: it&#8217;s still missing a few figures, mostly screenshots to explain what&#8217;s going on.  That&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>So as many of you know, I&#8217;ve been trying to get my Master&#8217;s thesis done soon so I can graduate this May.  Today I reached a bit of a milestone:  the first draft.   It&#8217;s not all I want it to be: it&#8217;s still missing a few figures, mostly screenshots to explain what&#8217;s going on.  That&#8217;s funny because the thesis is partly about how difficult it is to comprehensively describe pictures.   But I wanted to fire something reasonable off to my advisor so he can start editing it / tearing it to pieces.</p>
<p>If you&#8217;re interested, you can <a title="thesis pdf" href="http://grabka.org/projects/thesis/thesis.20090516.pdf">download it here</a> [PDF, 4MB].  Only 58 pages 1.25 spacing.  Booyah.</p>
<div class="wp-caption alignnone" style="width: 460px"><a href="http://grabka.org/images/thesis.gif"><img title="Thesis Comedy" src="http://grabka.org/images/thesis.gif" alt="The dude even looks like me :(" width="450" /></a><p class="wp-caption-text">The dude even looks like me :(</p></div>
]]></content:encoded>
			<wfw:commentRss>http://grabka.org/internet/2009/04/first-draft-of-my-thesis-done-kinda/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Starting my tagging study!</title>
		<link>http://grabka.org/internet/2008/08/starting-my-tagging-study/</link>
		<comments>http://grabka.org/internet/2008/08/starting-my-tagging-study/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 05:32:59 +0000</pubDate>
		<dc:creator>dariusz</dc:creator>
				<category><![CDATA[Masters Research]]></category>
		<category><![CDATA[hci]]></category>
		<category><![CDATA[image search]]></category>
		<category><![CDATA[tagging]]></category>

		<guid isPermaLink="false">http://grabka.org/internet/?p=115</guid>
		<description><![CDATA[So I&#8217;m starting my study of tagging, and searching with keywords.  Image search has lots of really interesting nuanced problems, but the ones that interest me involve the language of the image &#8220;tag&#8221;. If you&#8217;re interested in participating, take a look at my little recruitment page: http://grabka.org/internet/flickrsearchtagging/ It&#8217;s a multi-step process that starts with you [...]]]></description>
			<content:encoded><![CDATA[<p>So I&#8217;m starting my study of tagging, and searching with keywords.  Image search has lots of really interesting nuanced problems, but the ones that interest me involve the language of the image &#8220;tag&#8221;.</p>
<p>If you&#8217;re interested in participating, take a look at my little recruitment page:</p>
<p>http://grabka.org/internet/flickrsearchtagging/</p>
<p>It&#8217;s a multi-step process that starts with you installing some software, and sending me an email with your Flickr username.  After that, it&#8217;s all simple :-)</p>
<p>Take a look at the study page if you are interested in participating.  I need about 50 people to do this.</p>
]]></content:encoded>
			<wfw:commentRss>http://grabka.org/internet/2008/08/starting-my-tagging-study/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flickr Search Tagging – First Alpha Release</title>
		<link>http://grabka.org/internet/2008/05/flickr-search-tagging-first-alpha-release/</link>
		<comments>http://grabka.org/internet/2008/05/flickr-search-tagging-first-alpha-release/#comments</comments>
		<pubDate>Tue, 20 May 2008 23:52:13 +0000</pubDate>
		<dc:creator>dariusz</dc:creator>
				<category><![CDATA[Masters Research]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[greasemonkey]]></category>
		<category><![CDATA[hci]]></category>
		<category><![CDATA[search tagging]]></category>

		<guid isPermaLink="false">http://grabka.org/internet/?p=49</guid>
		<description><![CDATA[Introducing Flickr Search Tagging! It&#8217;s a little utility that enables a couple of things: Let&#8217;s you to propose tags for images that don&#8217;t belong to you on Flickr. Contributing tags if you want to help describe the image is often not possible, unless: you&#8217;re the owner, you&#8217;re a contact of the owner, or the person [...]]]></description>
			<content:encoded><![CDATA[<p>Introducing <strong>Flickr Search Tagging</strong>!</p>
<p>It&#8217;s a little utility that enables a couple of things:</p>
<ol>
<li><strong>Let&#8217;s you to propose tags</strong> for images that <em>don&#8217;t belong to you</em> on Flickr. Contributing tags if you want to help describe the image is often not possible, unless: you&#8217;re the owner, you&#8217;re a contact of the owner, or the person has allowed very permissive tagging rights.</li>
<li><strong>Keeps your search queries around</strong> the tagging area.  Queries are valuable, because you as a user took the time to contribute that text at some point.  Now you can leverage that same text when you want to tag an image.</li>
<li><strong>Tag your images</strong> with the proposed tags, or delete the proposed tags.</li>
</ol>
<p>If this sounds novel and useful, it is :)  Or at least, that&#8217;s what I&#8217;m trying to prove in my thesis.</p>
<p><span id="more-49"></span></p>
<h2>Installation</h2>
<p>In order to do any of this, you need to:</p>
<ol>
<li>Be using Firefox 1.5+, <a href="http://flock.com/">Flock</a>, and any other browser that can run <a title="greasemonkey download" href="http://www.greasespot.net/">Greasemonkey 0.6+</a>.  This is an untested claim :-)</li>
<li><a title="greasemonkey 0.7 install" href="https://addons.mozilla.org/firefox/748/">Install Greasemonkey in Firefox</a>, if you don&#8217;t have it installed already.</li>
<li>Install my magical script: <span style="text-decoration: line-through;">Flickr Search Tagging</span> <a title="flickr search tagging at userscripts" href="http://userscripts.org/scripts/show/27013">UserScripts.org</a></li>
</ol>
<h2>What happens to my contributed tags?</h2>
<p>They get stored on a server (atthelib.com), attached to a timestamp, your Flickr account name, and the identifier of the photo you are tagging.</p>
<p>In terms of privacy and control of the tags: there is very little.  This whole process is using the &#8220;Wikipedia approach&#8221;: everyone can contribute.  The owner of the image can delete a contributed tag.  A deleted, contributed tag cannot be re-added.  There are some anti-spam measures, including limits to how many tags can be proposed at one time, in one day, from one location, and so on.</p>
<p>Anywho, this is an alpha release, so any and all feedback is most welcome (feel free to use the comment form below)!  This is part of a Master&#8217;s thesis, so for now all rights and copyrights are strictly reserved.</p>
<h2>Screenshot</h2>
<p><a href="http://grabka.org/internet/wp-content/uploads/2008/05/test.png"><img class="aligncenter size-full wp-image-51" title="Flickr Search Tagging - Proposal View" src="http://grabka.org/internet/wp-content/uploads/2008/05/test.png" alt="What you see when proposing tags for an image." width="350" height="500" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://grabka.org/internet/2008/05/flickr-search-tagging-first-alpha-release/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Defining the human context for search and retrieval.</title>
		<link>http://grabka.org/internet/2008/03/defining-the-human-context-for-search-and-retrieval/</link>
		<comments>http://grabka.org/internet/2008/03/defining-the-human-context-for-search-and-retrieval/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 22:22:42 +0000</pubDate>
		<dc:creator>dariusz</dc:creator>
				<category><![CDATA[Masters Research]]></category>
		<category><![CDATA[image search]]></category>
		<category><![CDATA[taxonomy]]></category>

		<guid isPermaLink="false">http://grabka.org/internet/2008/35/defining-the-human-context-for-search-and-retrieval/</guid>
		<description><![CDATA[I&#8217;m trying to wrap my head around all of the information I&#8217;m reading about image search. Search, retrieval, information, data, all of these terms are loaded, and used differently depending on whether I&#8217;m reading an HCI paper, a text analysis paper, or a blog post about search engine optimisation (SEO). In hopes of simplifying things, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m trying to wrap my head around all of the information I&#8217;m reading about image search.  Search, retrieval, information, data, all of these terms are loaded, and used differently depending on whether I&#8217;m reading an HCI paper,  a text analysis paper, or a blog post about search engine optimisation (SEO).</p>
<p>In hopes of simplifying things, I&#8217;ve settled on a human-centred, conceptual definition of search:</p>
<blockquote><p><strong>Search </strong>refers to the process of a user developing a need, defining a query, retrieving information, viewing result(s), providing feedback, and refinements of those steps.</p></blockquote>
<p>The end result does not have to be finding a single result.  Occasionally, other steps in the search process, such as seeing a result set, can satisfy the users need.  For example, if the need was to gain information (&#8220;What does a <a href="http://www.cardomain.com/ride/2241226" title="olds toro fe3, my first car :)">&#8217;87 Oldsmobile Toronado FE3</a> look like?&#8221;) rather than find a specific image (&#8220;I need a picture of a black <a href="http://www.cardomain.com/ride/2802428" title="84 cutlass supreme">&#8217;84 Cutty</a>!&#8221;), viewing the result set may be enough.</p>
<p>Figure 1 is an illustrates the definition of search, in the human and interface context.</p>
<p><span id="more-35"></span></p>
<p align="center"><img src="http://grabka.org/internet/wp-content/uploads/2008/03/searchresized.png" alt="Search (Small)" /><br />
Figure 1 &#8211; Defining <em>Search</em> &#8211; <a href="http://grabka.org/internet/wp-content/uploads/2008/03/search.png" title="Search (Full Size)">View full size (54KB)</a></p>
<p>Search begins when a user develops a need for the search, and visits some image search service.  The user then enters a query that they believe matches their search need (often is not the case).  The form of this query is dramatically affected by the context of the interface:  if the interface is just a keyword search bar, the user will enter keywords.  If the interface offers a sample-image upload, the user may upload a sample image.  If an interface offers domain specific search criteria, it will help the user find relevant images in that domain ex. an automobile search service that allows users to select &#8220;modified&#8221; vs. &#8220;stock&#8221; vs. &#8220;show&#8221; vehicles.</p>
<p>The query is then transformed into something that is useful for the information retrieval system.  Information retrieval can include retrieving images as well as their metadata, their categories, or tags or whatnot.  Here retrieval refers explicitly to the process done by the computers involved, rather than by the user.  The bulk of the challenges that are tackled by researchers involved in CBIR occur around this step (query-to-retrieval-to-result-set).</p>
<p>Once the retrieval process is complete, a result set can be displayed back to the user.  The format, order, and other information offered by the interface has a profound impact on a users ability to find a acceptable result, or otherwise navigate the result set.  The result set can offer enough information for the user to then want to refine their query, or even refine their initial search need.</p>
<p>While interacting with the result set the user can choose to select an individual result for closer inspection, selection, or whatever they want.  The user may offer feedback based on their reaction to either a single result, or the part of the result set they are interacting with.  The interface hopefully allows for some sort of feedback mechanism which feeds into the relevance calculations of the image retrieval system.  The result set then will update based on the feedback.  Examples of this would be finding images &#8220;more like this one&#8221;, excluding small images, offering &#8220;yes, this is perfect!&#8221;</p>
<p>A users act of selecting an image out of a result set is probably important enough to provide at least some relevance feedback.  This idea has been supported by research that claims that the vast majority of image searching work is done by interacting with the result set, well before a single image is selected.</p>
<p>The processing of feedback may not have an impact on the result set, but may improve search results in the future.  An example of this kind of feedback would be tagging an image that the user viewed.  ex. a photo of the Toronto skyline is viewed, and the user adds a tag or comment: &#8220;CN Tower at night&#8221;.  Flickr, Facebook, and other image hosting services heavily leverage this process in their search process.</p>
<p>Anyway, that&#8217;s the taxonomy I will be working with.  Feedback and commentary are most welcome.</p>
<h2>CBIR is missing the point</h2>
<p>As a side note, much of the technology mentioned in CBIR papers doesn&#8217;t give much credence to the human use element (&#8220;Why would people use this?&#8221;), nor the interface element (&#8220;How would a person make use of this, even if it was useful?&#8221;). There are many, many theses worth of papers to be written about:  picking an element used in CBIR and studying the corresponding human and interface artifacts ex. searching with an image texture in mind (&#8220;fuzzy dog&#8221;), and studying what people are expecting to find, and how an interface can facilitate that.</p>
]]></content:encoded>
			<wfw:commentRss>http://grabka.org/internet/2008/03/defining-the-human-context-for-search-and-retrieval/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finding research papers online</title>
		<link>http://grabka.org/internet/2008/03/finding-research-papers-online/</link>
		<comments>http://grabka.org/internet/2008/03/finding-research-papers-online/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 23:41:35 +0000</pubDate>
		<dc:creator>dariusz</dc:creator>
				<category><![CDATA[Masters Research]]></category>
		<category><![CDATA[finding papers]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://grabka.org/internet/?p=18</guid>
		<description><![CDATA[Finding relevant and useful research papers is different now than even a few years ago.  Search tools are improving, online collections are growing, and your local university library probably has a proxy that allows you to vist any paper they have access to online.  I have found the following tools useful in finding papers within [...]]]></description>
			<content:encoded><![CDATA[<p>Finding relevant and useful research papers is different now than even a few years ago.  Search tools are improving, online collections are growing, and your local university library probably has a proxy that allows you to vist any paper they have access to online.  I have found the following tools useful in finding papers within the domain of Computer Science.</p>
<p>Google  <a title="google scholar" href="http://scholar.google.com/">Scholar</a>, at least amongst my peer group, doesn&#8217;t need an introduction.  The quality of its results,  the listing of authors on the left hand side, and one click access to &#8220;Recent articles&#8221; makes it my default search.  But I regularly dip into Live Search, ACM Portal, and (less often) CiteSeer to get a more comprehensive list of papers.</p>
<p><a title="live search academic" href="http://academic.live.com">Live Search Academic</a>, the offering from Microsoft, has a very neat interface that allows you to quickly preview the abstracts of the papers in your result set by hovering over them with your mouse.   In addition to searching by relevance (default), number of citations, and by author, you can group by an author (very useful), journal (neat), and conference (sounds useful .. isn&#8217;t).  The hover-over BibTex citation export is very quick and simple.</p>
<p><a href="http://portal.acm.org">ACM Portal</a> is most useful for me on campus, as the articles are downloadable when my IP is in the range that the Library uses.  As far as finding <strong>most recent</strong> research, Portal beats both Scholar and Live, hands down.</p>
]]></content:encoded>
			<wfw:commentRss>http://grabka.org/internet/2008/03/finding-research-papers-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Settling on a Research Topic</title>
		<link>http://grabka.org/internet/2008/02/settling-on-a-research-topic/</link>
		<comments>http://grabka.org/internet/2008/02/settling-on-a-research-topic/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 20:42:46 +0000</pubDate>
		<dc:creator>dariusz</dc:creator>
				<category><![CDATA[Masters Research]]></category>
		<category><![CDATA[cbir]]></category>
		<category><![CDATA[image search]]></category>
		<category><![CDATA[user interfaces]]></category>

		<guid isPermaLink="false">http://grabka.org/internet/2008/5</guid>
		<description><![CDATA[To be perfectly honest, I was admittied into my Masters program with zero funding. In retrospect, starting a two year+ project with no guaranteed income wasn&#8217;t the greatest idea, for a variety of reasons. First, every semester I hope/pray to get a Graduate Teaching Assistant job, which luckily gets easier and easier as I accumulate [...]]]></description>
			<content:encoded><![CDATA[<p>To be perfectly honest, I was admittied into my Masters program with zero funding.  In retrospect, starting a two year+ project with no guaranteed income  wasn&#8217;t the greatest idea, for a variety of reasons.</p>
<p>First, every semester I hope/pray to get a Graduate Teaching Assistant job, which luckily gets easier and easier as I accumulate &#8220;seniority points.&#8221;</p>
<p>Second, no funding means no specified project, which means freedom to choose any research topic I please, as long as <a href="http://www.cis.uoguelph.ca/user/mwirth" title="Michael Wirth">my (very lenient/forgiving) advisor</a> is OK with it.  Well, it&#8217;s been about eight months since I&#8217;ve come back from India all ready to start researching, and only two days ago did I actually settle on a topic.</p>
<p>Eight months is a long time to pay tuition, and follow dead ends with literature reviews. Also, those months are expensive if you waste your time on partying, girls, video games, Union involvement, student government, keggers, new housemates, motorcycles, trips to Mississippi, Vancouver, Ottawa, and so on.  Well .. maybe it wasn&#8217;t a complete <em>waste</em>, per se :)</p>
<p>Finally, I&#8217;ve settled on a topic that I&#8217;m truly interested in.</p>
<p><span id="more-5"></span></p>
<h2>Usability and Image Search</h2>
<p>The topic:  usability of image retrieval interfaces for systems based on image content, rather than user-provided textual meta-data.</p>
<p>What does this mean?  Image searching (like Google Image, or Flickr search) is actually really, really complicated stuff. The systems on the back-end of the process use a variety of <em>properties</em> of an image to catalogue it in their vast library: the file name, it&#8217;s dimensions, data size, human contributed tags and categories, and a whole slew of other things. That specific information is called the <em>metadata</em>.  Most of major (Yahoo, Google, MSN, etc.) image search engines also scour the web-page content that surrounds  an image to get more metadata that can be searched.</p>
<p>Human contributed metadata is particularly meaningful: tags, categories, and file names point to the content of the image, not just its properties.   The problem with human contributed metadata is that it&#8217;s:</p>
<ul>
<li>very incomplete</li>
<li>very subjective, thus possibly inaccurate</li>
<li>very time consuming if you do want to make it accurate or complete</li>
<li>there are no standard descriptive elements in markup languages like XHTML or HTML for people to  tag their images on the web</li>
</ul>
<p>If you have a photo of a man riding a bicycle in Greece, unless you&#8217;ve tagged that picture with &#8220;man&#8221;, &#8220;bicycle&#8221;, &#8220;greece&#8221; (in four or five of the most common languages in the world), the likelihood of that image being catalogued so it can be found by an interested party is quite low.</p>
<p>Researchers since the mid-1990&#8242;s have spent a lot of time and energy in a field that hopes to automate more and more of that descriptive process, so that images can be searched on more than their properties. The field is called Content Based Image Retrieval (CBIR).  Rather than relying on metadata to describe images, one can have a computer  &#8220;see&#8221; the image and record information about it: colour, texture, salient regions, shapes, layout, etc.  This is the <em>content</em> of the image. Cataloguing all of the useful content of a very large number of images accurately, completely, and in a way that can be easily searched, is the holy grail of this field.  We are decades away from such a system, but <em>major</em> strides in that direction have already taken place.</p>
<h2>Humans + CBIR</h2>
<p>A smaller consideration of all of this is:  how is a person supposed to search for something based on content?  As in, I know a dog is fuzzy, I know that the computer can find fuzzy textures, but how do I describe to a search engine that I want to find all images of a brown, fuzzy dog?  It sounds simple, should be simple, but is not simple in the current state-of-the-art.</p>
<p>Usability is a field that concerns itself with how things are used, especially interfaces of computer programs.  I&#8217;m very interested in usability of these image search systems; image search systems that already exist, and proposed systems that will exist once we have the technology to automatically identify brown fuzzy dogs in your Flickr photos from the cottage.</p>
<p>So that&#8217;s where I&#8217;m at.  I have a general idea of the area I&#8217;m interested in, so I&#8217;m in the process of reading some review papers about the state of CBIR.  Hopefully, a literature review is coming next.</p>
]]></content:encoded>
			<wfw:commentRss>http://grabka.org/internet/2008/02/settling-on-a-research-topic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Denial of Service and Web Services Architecture</title>
		<link>http://grabka.org/internet/2007/02/webservice-denialofservice/</link>
		<comments>http://grabka.org/internet/2007/02/webservice-denialofservice/#comments</comments>
		<pubDate>Thu, 15 Feb 2007 16:17:35 +0000</pubDate>
		<dc:creator>dariusz</dc:creator>
				<category><![CDATA[Masters Research]]></category>
		<category><![CDATA[denial of service]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://grabka.org/internet/2007/29/webservice-denialofservice/</guid>
		<description><![CDATA[This paper addresses issues of Denial of Service (DoS) for Web Services.  Architecture of Web Services is described in context of being doubly susceptible to DoS, and contrasted against other models of delivering software. The impact on the client-publisher relationship is discussed, given the impact of loss of functionality during DoS. Solutions involving performance testing and connection security are proposed.

Paper presented as part of graduate course CIS*6650, Winter of 2007, to Dr. Qusay Mahmoud at the University of Guelph, Guelph, Ontario.]]></description>
			<content:encoded><![CDATA[<p><em>Note: Paper presented as part of graduate course CIS*6650 (Winter 2007) to Dr. Qusay Mahmoud at the University of Guelph, Guelph, Ontario.</em></p>
<h2>Abstract</h2>
<p>This paper addresses issues of Denial of Service (DoS) for Web Services.  Architecture of Web Services is described in context of being doubly susceptible to denials of service (DoS), and contrasted against other models of delivering software. The impact on the client-publisher relationship is discussed, given the impact of loss of functionality during DoS. Solutions involving performance testing and connection security are proposed.</p>
<p><span id="more-29"></span></p>
<h2>Introduction</h2>
<p>The Internet is an ideal candidate as a platform for offering business services.  Thus it is the foundation of the recent emergence of the Web Services standards. Despite the success of the underlying structure, Web Services are structured in way that contrasts the architecture of the Internet.  Web Services emulate the structure of the enterprises that offer the services, by specializing functionality at the nodes in the network, rather than distributing functionality amongst its clients. This architecture makes clients specifically susceptible to Denials of Service. Enterprises must employ safeguards to ensure that the functionality they are offering as Web Services will not be subject to Denials of Service.</p>
<p>This paper begins with discussing the architecture of the Internet, specifically the distributed nature of its core functionality.  Denial of Service is detailed as it relates to the servers that are used as hosts of Web Services.  The architecture of Web Services is discussed, and it is argued that preventing Denial of Service is a particularly critical concern as Web Services are doubly sensitive to Denial of Service attacks: at the Internet host, and the Web Services itself.  Finally, solutions which work to prevent Denials of Service in Web Services are proposed.</p>
<h2>The Internet and Denial of Service</h2>
<p>As the host for Web Services, it is important to understand what makes the Internet as robust and available as it is.  The variety of services that make up the Internet architecture are designed in such a way that each end point of the Internet can be self-sustaining, based on the requirements of the client and decentralized security considerations[GGKL89]. This functionality includes Internet Protocol (IP) addressing, domain name (DNS) resolution, content serving (HTTP for Web, SMTP for E-Mail, and many services), and content caching. The client’s ability to run a fully functional Internet node is limited by cost and expertise, but this expertise is very much within the reach of a typical Information Technology (IT) department.  This allows Internet service providers (ISPs) to provide all of the required Internet services for its clients.  This functionality is not only available to ISPs and IT departments, but each client node on the Internet; most Linux distributions are packaged with all of the tools necessary to recreate the Internet network, for example.</p>
<p>The strength of this distributed approach is that if one or many remote nodes in the network fail, the overall functionality is maintained for the other nodes.  The content at those remote nodes may be unavailable, but the functionality of the Internet tasks is not affected as a whole.  Most importantly, Internet services at the other nodes can continue to function. This is in contrast to many distributed software architectures, including Web Services, which concentrate unique, required functionality in each of the nodes.</p>
<h2>Denials of Service</h2>
<p>Every node on the Internet that is assigned a unique Class A IP address is accessible from the rest of the Internet.  Those exposed nodes often services such as web servers or email servers for other parties to access.  As a downside to their general availability, these services can be subject to attacks, including Denial of Service (DoS) attacks.</p>
<p>DoS attacks involve overwhelming a system with requests in a given period of time to the point where the system cannot further respond[MSB+06]. The server is designed to respond to all requests, or at least attempt to minimally process them, even to just to make the decision to discard the request.  The sum of processing power required to deal with the flurry of requests overwhelms the system resources, and prevents the system from functioning properly.  Adversaries can attack the externally exposed functionality of Internet nodes; the Transmission Control Protocol (TCP) layer of HTTP (web) servers are particularly targeted, and have been exploited by denial of service attacks since the early 2000s [MSB+06].</p>
<p>Requests stemming from a DoS attack can be malformed, incomplete, properly formed but meant to induce resource intensive actions, or formed to specifically take advantage of specific service vulnerability.  DoS attacks can come from a single client, or from multiple clients simultaneously[MSB+06]; this is called a Distributed Denial of Service attack (DDoS), and provides new challenges for system administrators who wish to prevent or stop an attack[Cha02].  There is much published research which details mechanisms for stopping and preventing DoS attacks for servers that communicate using TCP. But research and technical documentation which focuses on preventing DoS attacks at the layer of the Web Service is unfortunately limited.  The DoS can potentially happen at the SOAP messaging layer, lower at the XML parser, or higher up at the functionality enabled by the Web Service. The W3C identifies DoS attacks using SOAP messages as a threat for message level security in WS-Architecture notes, thus raising awareness of the issue[Dav04].</p>
<p>The W3C identifies other message level security threats, including man-in-the-middle attacks and spoofing[Dav04]. Man-in-the-middle attacks involve intercepting messages between the client and server by a third party.  The intercepted messages can then either be monitored or injected with other data.   Spoofing involves faking the address or other identifier in a request, in order to emulate a legitimate or trusted client, or to maintain anonymity by falsifying the adversary’s true identity.  These attacks are of particular, as they are often used in combination with DoS[MSB+06]; this hinders efforts to block the adversaries using firewalls, or other routing solutions.</p>
<h2>Web Services and Denial of Service</h2>
<p>The architecture of Web Services often mimics the design of the enterprise, rather than that of its Internet host.  An enterprise offers specialised services, and thus has some of those services exposed as Web Services.  In a traditional Internet setup, business-critical functionality is often hidden away from the exposed services offered by the node, away from the risk associated with attacks. Business services that are not exposed through the web server are thus not victimized to the same extent as exposed services; these services can continue to function properly during an attack.   For example, billing, ordering, and customer relationship management should not be affected by the loss of the sales and product information website, regardless of the close relationship of those components.</p>
<p>With the provision of Web Services critical business processes are exposed over the Internet.  Thus any enterprise that delivers Web Services is now responsible for delivering and securing their Internet availability, as it becomes a carrier of their business process.  Web Service providers must be aware that the availability of their service is critical to their clients as much as it is to them.</p>
<h2>Web Service DoS and Clients</h2>
<p>The functionality and availability of Web Services becomes critical to the clients that use it, as well as to the enterprise that hosts the service. The failure of the node that provides the Web Service means immediate failure of that functionality in the rest of the system. This may be completely crippling to clients, and detrimental to the business process of the provider. The extent of the disability will depend on the nature of the service being provided, the frequency of use of that Web Service within the rest of the clients system, and other design considerations. Web Service functionality is critical to the enterprise that publishes it, as it would be rare for an enterprise to take the time and energy to integrate a Web Service into its process if it was not critical to the success of the process.</p>
<p>With the adoption of an enterprise’s Web Services by a client, the software written for or by the client now critically depends on the reliable, secure, and steady provision of the Web Service.  This is different from the model of service offered using localized software, where the service is provided locally at the client site by installing the software on the client’s IT resources.  Software that is reliant on Web Services is structured in a way that is not distributed or localized; instead the software explicitly depends on the availability of the functionality offered by a remote node in the system. When adversaries attack Web Services, DoS attacks critically affect all participants in the service.  Clients are thus more susceptible to Denials of Service with Web Services than with other localized or distributed models of delivering services through software.</p>
<h2>Double Sensitivity</h2>
<p>Web Services can be targeted with DoS attacks in two ways: attacking the Web Service directly with native messaging protocols like SOAP, or attacking the underlying service providing transport protocol.  Web Services rely on transport protocols such as HTTP and SMTP, which are provided by servers which are vulnerable to DoS, man-in-the-middle attacks, and spoofing attacks.  Thus Web Services are vulnerable to all of the attacks that are present in the architecture of the Internet, as well as attacks on the Web Service itself. Additionally, Web Service availability is affected by general Internet availability.  This availability can be affected by congestion, slow response times due to busy or improperly balanced networks, routing between networks, and other network concerns that are not directly tied to the Web Service.</p>
<p>The Web Service server itself is vulnerable at many layers. DoS attackers can target the often intensive task of parsing XML documents.  Clients as well as attackers have access to a complete functional description of the service via exposed WSDL files. Using WSDL information attackers can formulate requests which are known to be particularly resource intensive. WSDL though can no more be considered a vulnerability than providing publicly accessible API documentation. Thus securing the WSDL may be as imperative as securing any internal system documentation.</p>
<h2>Web Services are Resource Intensive</h2>
<p>It can be argued that the Web Service architecture, much like most modern remote function execution architectures, is quite resource intensive for the host.  Microsoft has tested two of their remote function platforms, .Net Remoting and ASP .NET Web Services. Microsoft has found that the response time and the number of requests handled per second with the web service standard SOAP format performs as much as 60% worse than remote calls in a binary format[Pri02]. Not all toolkits and software platforms are created equal; some perform far better under load than others.</p>
<p>Industry has mirrored this concern that Web Services implementations are resource intensive. In late 2006 media outlets reported that given the choice between Amazon.com Web Services and simpler representational state transfer (REST) interface, one in five of development clients choose Web Services[Tim06]. This choice is driven by a variety of factors, but anecdotal evidence collected from Internet blogs indicates that response speed of the web service implementation weighs heavily. Jeff Barr of the Amazon Web Services team has been quoted as saying the performance of the REST functionality is up to six times faster than the equivalent web services functionality at Amazon[Ada03].</p>
<p>Any Internet service can limit DoS vulnerability by maintaining the ability to deal with a large number of requests, be they valid or invalid.  Thus selection of a platform to develop Web Services must include performance evaluation in order to handle. Particularly important in testing for DoS resilience is measuring at which point denial of service occurs, and controlling resource use appropriately. DoS is far more critical in Web Services than in other software services since, as explained before, client systems are critically affected.</p>
<h2>Protecting Web Services from DoS</h2>
<p>In the quest to protect Web Services from DoS, several solutions appear, each with their own set of tradeoffs.  The solution can involve establishing dedicated, secured connections between the client and provider of the Web Service. Additionally, providers can ensure service by maintaining very high thresholds for performance, which involves testing the performance of the Web Service software platform.  Lastly, service providers must limit the Internet exposure of functionality, especially if it is resource intensive.  Detecting these attacks is an area of research receiving some research attention[PSKC06], but avoiding them through design and architecture solutions is the promoted approach.</p>
<p>The W3C notes that in order for a web service to operate properly, it must function securely[Dav04]. This includes securing the message exchange, publication of the Web Service, discovery of the Web Service. Solutions to security problems require many different security mechanisms, including authentication and authorization of identities, encryption of the message traffic, and auditing of policies between the client and the server. In practical terms, prevention of DoS attacks in Web Services can be difficult as measures taken to ensure authentication and authorization may in fact increase the performance burden of the Web Service, and accelerate DoS.</p>
<p>Several solutions exist which can prevent DoS attacks on enterprise services which rely on the conditions of the connection between the client and service. Each solution requires establishing a trusted relationship between the client and publisher of the service. Dedicated connections between parties that rely on each others functionality reduce the risk of DoS, as well as general network congestion affecting service availability. Dedicated connections are not exposed to general Internet traffic which avoids external DoS attacks. DoS attacks can originate from trusted nodes within those dedicated connections, which emphasises the need for auditing mutual security policies.</p>
<p>Secured connections can protect against spoofing during DoS attacks, as the identity of the clients within the secured environment is often known, or at least described in such a way that is traceable and blockable in case of an attack. There are many traffic security options, including dedicated connections which are routed outside of general internet traffic, secured software tunnels, and virtual private networks (VPNs).</p>
<p>Additionally, highly emphasising performance evaluation during Web Service development can aid in protecting against DoS.  All web services toolkits are not created equal, performance testing of the proposed architecture must include loads that induce denials of service. Most modern programming languages can inter-operate with simpler, faster methods than Web Services, so the choice of using Web Services must be evaluated from a performance standpoint.  The proposed solution must meet the performance needs under heavy load conditions.</p>
<p>When designing the Web Service, the developer must limit the publicly available exposed functionality of the business process. The initial point of contact should require authentication of the client, and the initial steps of the authentication process must be resource un-intensive. For example, a developer should avoid making secured connections to internal mail servers to check account availability. Any function calls to the rest of the Web Service interface should demand an authentication token that is very easily dismissed if invalid. Though, for Web Services that are public and rely on public participation to succeed, extra care must be taken to maximize the efficiency and minimize response time, as authentication may be too much of deterrent for widespread adoption of the service. The choice to authenticate and authorize may impact on privacy issues. Though for Web Services that are inter-enterprise, and generally considered private, extra care must be taken to ensure the availability of the service. Security and availability of the service are paramount, and a complete denial of service should be avoided.</p>
<h2>Conclusion</h2>
<p>DoS of Web Services is particularly cruel to clients, as well as being detrimental to the business process of the publishers. Thus enterprises must be diligent ensure that the functionality they are offering as Web Services will not be taken down by attacks. The WS architecture is structured in way that contrasts the successful architecture of the Internet, but with safeguards in place to secure and isolate connections between the client and service, taking care to performance test the platforms, and by limiting publicly available functionality Web Services can fight back and maintain high levels of availability.</p>
<h2>References</h2>
<p>[Ada03] Adam Trachtenberg. PHPWeb Services without SOAP. O’Reilly OnLamp, October 30 2003.</p>
<p>[Cha02] RKC Chang. Defending against flooding-based distributed denial-of-service attacks: a tutorial. Communications Magazine, IEEE, 40(10):42–51, 2002.</p>
<p>[Dav04] David Booth, Hugo Haas, Francis McCabe, Eric Newcomer, Michael Champion, Chris Ferris, David Orchard. Web Services Architecture &#8211; W3C Working Group Note, February 2004.</p>
<p>[GGKL89] M. Gasser, A. Goldstein, C. Kaufman, and B. Lampson. The digital distributed system security architecture. In Proc. 12th NISTNCSC National Computer Security Conference, pages 305–319, 1989.</p>
<p>[MSB+06] D. Moore, C. Shannon, D.J. Brown, G.M. Voelker, and S. Savage. Inferring Internet denial-of-service activity. ACM Transactions on Computer Systems (TOCS), 24(2):115–139, 2006.</p>
<p>[Pri02] Priya Dhawan. Performance Comparison: .NET Remoting and ASP.NET Web Services. MSDN Library, September 2002.</p>
<p>[PSKC06] Srinivas Padmanabhuni, Vineet Singh, K M. Senthil Kumar, and Abhishek Chatterjee. Preventing service oriented denial of service (PreSDOS): A proposed approach. In ICWS ’06: Proceedings of the IEEE International Conference on Web Services (ICWS’06), pages 577–584, Washington, DC, USA, 2006. IEEE Computer Society.</p>
<p>[Tim06] Tim Anderson. WS-* vs. The REST. The Register Online, April 29 2006.</p>
]]></content:encoded>
			<wfw:commentRss>http://grabka.org/internet/2007/02/webservice-denialofservice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax Annotated Bibliography &#8211; A new hero for the Web?</title>
		<link>http://grabka.org/internet/2006/11/ajax-bibliography/</link>
		<comments>http://grabka.org/internet/2006/11/ajax-bibliography/#comments</comments>
		<pubDate>Wed, 01 Nov 2006 16:27:14 +0000</pubDate>
		<dc:creator>dariusz</dc:creator>
				<category><![CDATA[Masters Research]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[bibliography]]></category>
		<category><![CDATA[hci]]></category>

		<guid isPermaLink="false">http://grabka.org/internet/2006/30/ajax-annotated-bibliography-a-new-hero-for-the-web/</guid>
		<description><![CDATA[Note: This presentation and bibliography was delivered as part of a graduate course in Object Oriented Design (Fall 2006) to Dr. Bill Gardner, at the University of Guelph. Ajax was pretty cutting edge in 2006. :) AJAX is a new term, but it referes to a collection of technologies that have been complete since around [...]]]></description>
			<content:encoded><![CDATA[<p><em>Note:  This presentation and bibliography was delivered as part of a graduate course in Object Oriented Design (Fall 2006) to Dr. Bill Gardner, at the University of Guelph.  Ajax was pretty cutting edge in 2006. :)<br />
</em></p>
<p>AJAX is a new term, but it referes to a collection of technologies that have been complete since around 2004.  It&#8217;s use has been popularized through the groundbreaking work of Microsoft, Google, and smaller firms such as AdaptivePath, who coined the term.  AJAX adds the capability of getting new data from a server once a web page has been generated, in hopes of reducing screen refresh, lowering bandwidth utilization; additionally, developers hope to increase user interactivity of web based applications to the level of a regular desktop application.  All of this has come at a cost though, including increased complexity, reduced accessibility, and new security threats.</p>
<p><span id="more-30"></span></p>
<h2>Literature on AJAX</h2>
<p>Little academic literature that focuses on AJAX exists, as most of its components have been the result of previous academic and industry work.  Much of the literature that exists is in the form of white papers, recommendations, and industry practitioner guidelines. One of the first such guidelines comes from Microsoft, where they discuss using ASP to do server callbacks after the web page has been generated[1]. Microsoft did not coin the usage of the term AJAX; that was done well by Garrett et al. at Adaptive Path, who wrote the root article that contributed to common understanding of how AJAX applications are to be structured, and how they differ from regular web applications[2]. If you&#8217;re interested in determining whether AJAX is in fact a model you should be pursuing in developing  your own application, there is no shortage of expert opinion on the pros and cons of the technology [3].</p>
<p>Specifically in terms of security concerns, which are always heightened when developing web-accessible applications, there are a whole new set of things to think about [4]. Good industry examples are abound.  A great collection of these examples is Ajaxian[5], a website run by seasoned web developers. The components that make up AJAX are not anything that web developers have not used before. The Wikipedia entry on AJAX programming [6] defines these components, and gives context to their use: JavaScript, XMLHttpRequest Class in JavaSctipt, XML as a data transport, and the Document Object Model (DOM) for manipulation of the static web page. Historical information on how AJAX got to the point it did points to an evolution from DHTML, as well as Microsoft&#8217;s work in Remote Scripting [6].</p>
<p>For guidance on implementing AJAX within your own work, Apple&#8217;s Developer Connection entries [7] are thorough and explore issues related to browser incompatibility. Though, in order to stay on top of all of the browser related issues, a developer can rely on a variety of frameworks and libraries that are kept up to date with functionality and security updates:</p>
<ul>
<li>Dojo. An open-source framework being supported by IBM and Sun.<br />
<a href="http://dojotoolkit.org/">http://dojotoolkit.org/</a></li>
<li>Atlas. The Microsoft AJAX framework that employs ASP.<br />
<a href="http://ajax.asp.net/Default.aspx">http://ajax.asp.net/Default.aspx</a></li>
<li>Google Web Toolkit.  Googles official AJAX toolkit (as seen in Google Mail and Google Maps).<br />
<a href="http://code.google.com/webtoolkit/">http://code.google.com/webtoolkit/</a></li>
<li>Prototype. A decidedly simpler  library than any of the above.<br />
<a href="http://prototype.conio.net/">http://prototype.conio.net/</a></li>
</ul>
<p>You can download my presentation here: <a href="http://grabka.org/internet/wp-content/uploads/2008/03/ajax.pdf" title="Presentation: Ajax - A new hero for the Web?">Presentation: Ajax &#8211; A new hero for the Web?</a>.  Some images used in the presentation are sourced from [2].</p>
<h2>References</h2>
<ol>
<li>Esposito, D. “Cutting Edge: Script Callbacks in ASP.NET.” <em>MSDN Magazine.</em> (August 2004).<br />
<a href="http://msdn.microsoft.com/msdnmag/issues/04/08/CuttingEdge/">http://msdn.microsoft.com/msdnmag/issues/04/08/CuttingEdge/</a></li>
<li>Garrett, JJ. “Ajax: A New Approach to Web Applications.” <em>Adaptive Path, LLC.</em> (February 2005).<br />
<a href="http://www.adaptivepath.com/publications/essays/archives/000385.php">http://www.adaptivepath.com/publications/essays/archives/000385.php</a></li>
<li>Downes J, Walker J. “Pros and Cons of using Ajax in a CMS.” <em>CMS Watch. </em>(February 2006).<br />
<a href="http://www.cmswatch.com/Feature/143-Direct-Web-Remoting">http://www.cmswatch.com/Feature/143-Direct-Web-Remoting</a></li>
<li>Twynham, S. “AJAX Security.”<em> IT-Observer.</em> (February 2006).<br />
<a href="http://www.it-observer.com/articles/1062/ajax_security">http://www.it-observer.com/articles/1062/ajax_security</a></li>
<li><em>Ajaxian</em>.  (October 2006) <a href="http://ajaxian.com/">http://ajaxian.com/</a></li>
<li>Wikipedia contributors, &#8220;Ajax (programming),&#8221; <em>Wikipedia, The Free Encyclopedia. </em>(November 1, 2006). <a href="http://en.wikipedia.org/w/index.php?title=Ajax_%28programming%29&amp;oldid=84836383">http://en.wikipedia.org/wiki/Ajax_%28programming%29</a></li>
<li>Apple Computer, Inc. “Dynamic HTML and XML: The XMLHttpRequest Object.” <em>Apple Developer Connection.</em> (June 2005).<br />
<a href="http://developer.apple.com/internet/webcontent/xmlhttpreq.html">http://developer.apple.com/internet/webcontent/xmlhttpreq.html</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://grabka.org/internet/2006/11/ajax-bibliography/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
