<?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/"
	xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Szkoła Web 3.0 &#187; Post Tags &#187; JEE</title>
	<atom:link href="http://www.semanticschool.com/tag/jee/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.semanticschool.com</link>
	<description>Dowiedz się czym jest Sieć Semantyczna</description>
	<lastBuildDate>Mon, 05 Jul 2010 22:45:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<!-- podcast_generator="podPress/8.8" - maintenance_release="8.8.5.3" -->
	<copyright>Copyright &#xA9; Szkoła Web 3.0 2010 </copyright>
	<managingEditor>info@semanticschool.com (Szkoła Web 3.0)</managingEditor>
	<webMaster>info@semanticschool.com (Szkoła Web 3.0)</webMaster>
	<category>posts</category>
	<image>
		<url>http://www.semanticschool.com/wp-content/plugins/podpress/images/powered_by_podpress.jpg</url>
		<title>Szkoła Web 3.0 &#187; Post Tags &#187; JEE</title>
		<link>http://www.semanticschool.com</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>The School of Semantics</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &amp; Culture" />
	<itunes:author>Szkoła Web 3.0</itunes:author>
	<itunes:owner>
		<itunes:name>Szkoła Web 3.0</itunes:name>
		<itunes:email>info@semanticschool.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://www.semanticschool.com/wp-content/plugins/podpress/images/powered_by_podpress_large.jpg" />
		<item>
		<title>Publikujemy w Web 3.0 &#8211; część 3: Niezmienne URI</title>
		<link>http://www.semanticschool.com/2009/11/niezmienne-uri/#utm_source=feed&amp;utm_medium=feed&amp;utm_campaign=feed</link>
		<comments>http://www.semanticschool.com/2009/11/niezmienne-uri/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 10:40:40 +0000</pubDate>
		<dc:creator>Sebastian Kruk</dc:creator>
				<category><![CDATA[Podstawy]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Biblioteki]]></category>
		<category><![CDATA[cool]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[organizacja]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[rest api]]></category>
		<category><![CDATA[uri]]></category>
		<category><![CDATA[URL]]></category>
		<category><![CDATA[URN]]></category>
		<category><![CDATA[usługa]]></category>

		<guid isPermaLink="false">http://www.semanticschool.com/?p=464</guid>
		<description><![CDATA[Dziś zaczniemy od pewnego eksperymentu. Wyobraźmy sobie, że wchodzimy do supermarketu, w którym bywamy co kilka dni, idziemy do stoiska z pieczywem, a tam ... buty. Idziemy do stoiska z mięsem a tam gry wideo, a na stoisku z warzywami - pieczywo. Chyba nikt nie będzie zadowolony z takiej sytuacji, prawda ? Nie pozostaje nam [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-thumbnail wp-image-535" title="Proper locations emerging" src="http://www.semanticschool.com/wp-content/uploads/2009/11/ist2_674922-compass-11-150x150.png" alt="Proper locations emerging" width="150" height="150" />Dziś zaczniemy od pewnego eksperymentu. Wyobraźmy sobie, że wchodzimy do supermarketu, w którym bywamy co kilka dni, idziemy do stoiska z pieczywem, a tam ... buty. Idziemy do stoiska z mięsem a tam gry wideo, a na stoisku z warzywami - pieczywo. Chyba nikt nie będzie zadowolony z takiej sytuacji, prawda ? Nie pozostaje nam nic innego jak tylko albo obejść cały supermarket albo zapytać sprzedawców, i na nowo "nauczyć się" co gdzie się teraz znajduje.</p>
<p>A teraz, załóżmy, że supermarket to nasz serwis internetowy, a my jesteśmy agentem semantycznym próbującym uzyskać dostęp do poprzednio zidentyfikowanego źródła informacji. W momencie kiedy nasze położenie dokumentów i usług zmienia się na naszym serwisie, nie agent semantyczny (i nie tylko) musi na nowo sporządzić sobie mapę serwisu (czyli zaindeksować go).</p>
<p>Jak możemy ustrzec siebie i nasz serwis przez niestabilnymi URLami, które będą się zmieniały ? Rozwiązaniem promowanym m.in. przez sir Tima Bernersa-Lee są tak zwane "<a href="http://www.w3.org/Provider/Style/URI" target="_blank">Cool URIs</a>" (czyli "odjazdowe" URI), które nie ulegają zmianie.</p>
<p><span id="more-464"></span></p>
<p>Według TBL, kluczową kwestią w projektowaniu schematów URI jest zapewnienie ich niezmienności w czasie. Dzięki temu dany zasób lub usługa będzie zawsze dostępna pod tym samym adresem. Tak na marginesie, to podobne podejście ma środowisko bibliotekarzy; nie ma się co dziwić, w końcu od wieków muszą odnajdywać książki w przepastnych bibliotekach.</p>
<p>Wielu z was zapewne stwierdzi, że niezmienne URI to ciekawa naukowa wizja, ale w rzeczywistości; wymienicie nawet kilka kontr-przykładów:</p>
<ol>
<li><strong>Konieczność przeorganizowanie serwisu</strong> - po pewnym czasie doszliście do wniosku, że obecny sposób funkcjonowania waszego systemu i tego jakie URLe są generowane musi zostać poprawiony; tym samym schemat URI waszego serwisu ulegnie zmianie. To prawda, tak się może zdarzyć i niestety zdarza się zbyt często. A powód jest zazwyczaj jeden i ten sam: w czasie projektowania serwisu nie przemyślano dobrze architektury informacji i usług, a jedynie skupiono się (jeśli wogóle) na architekturze samego systemu. To doprowadziło do problemów z reprezentacją identyfikatorów zasobów.<strong>Wniosek: </strong>projektowanie architektury informacji jest równie ważne (o ile nie ważniejsze) od projektu samego systemu; system zawsze można poprawić, zmienić technologię, ale URI są jego interfejsem dla innych usług, i nie należy tego zaniedbywać.<br />
<strong> </strong></li>
<li><strong>Prawa dostępu</strong> - może się zdarzyć, że w natłoku dokumentów, którymi zarządza nasz system będziemy zmuszeni do zmiany uprawnień dostępu do nich. Jeżeli nasze URI będą budowane w oparciu o tę informację, np:
<ul>
<li>/archive/documents/123 - dla dokumentów archiwalnych,</li>
<li>/secret/documents/234 - dla dokumentów prywatnych,</li>
<li>/public/documents/345 - dla dokumentów publicznych,</li>
</ul>
</li>
<li>to przenoszenie dokumentów np. do archiwum, powoduje że ich identyfikator się zmienia, i wszystkie referencje w innych dokumentach powinny zostać zaktualizowane.<strong>Rozwiązanie</strong>: przechowywać informacje o stanie i prawie dostępu na poziomie metadanych i stosować jednolity schemat URI dla wszystkich dokumentów w systemie.</li>
<li><strong>Dokument zmienił swoje miejsce na dysku</strong> - sytuacja kiedy jeden z pracowników przejmuje obowiązki kolegi w czasie jego urlopu, i w tym czasie część dokumentów jest dostarczana z jego przestrzeni dyskowej zamiast z przestrzeni dyskowej kolegi, mogłaby teoretycznie prowadzić do zmiany adresu URL tych dokumentów, np. z /~pracownikA/documents/123.pdf do /~pracownikB/documents/123.pdf. .<strong>Rozwiązanie: </strong>wykorzystać mechanizmy mapowania dostarczne przez serwery HTTPD (np. <a href="http://httpd.apache.org/" target="_blank">Apache</a>).</li>
<li><strong>Zmiana implementacji usługi wystawiającej dokumenty</strong> - pierwsza wersja systemu powstała w PHP, a teraz z uwagi na wydajność musimy zaimplementować nasze usługi w JEE; w najlepszym wypadku będziemy musieli zmienić rozszerzenia skryptów z <code>php</code> na <code>jsp</code>. Ale przecież nie musiało do tego dość, tworzone przez nas schematy URI powinny być niezależne od implementacji danej usługi. <strong>Podpowiedź:</strong> ponownie mogą nam pomóc mechanizmy mapowania i przekierować dostarczane przez serwery HTTPD; część środowisk  umożliwia definiowanie schematów bez "rozszerzeń", np. JEE za pomocą serwletów.</li>
<li><strong>URN vs URI</strong> - z założenia unikalne i niezmienialne miałybyć <a href="http://pl.wikipedia.org/wiki/Uniform_Resource_Name" target="_blank">URN</a> (ang. <em>Universal Resource Name</em>). To prawda, ale sam schemat HTTP z którego chcemy korzystać w URI, nie uniemożliwia niezmienialności identyfikatorów. Niestety, zazwyczaj jesteśmy sami winni temu, że one się zmieniają.</li>
<li><strong>Brak odpowiednich narzędzi </strong>- chyba najczęstrza wymówka. Niestety dla wielu prawdziwa. Jedyne co mogę tutaj zaoferować to pomoc z <a href="http://www.knowledgehives.com/lang-pl/contact" target="_blank">naszej strony</a> w dobraniu lub wyprodukowaniu odpowiednich rozwiązań.</li>
</ol>
<p>Podsumowując, czego nie umieszczamy w URI?</p>
<ol>
<li>Nazw i nazwisk - np. dokumentów, twórców, włascicieli</li>
<li>Tematow, klasyfikacji, opisów</li>
<li>Stanu dokumentów</li>
<li>Praw dostepu</li>
<li>Typów plików i ich rozszrzeń</li>
<li>Informacji o implementacji danej usługi dostarczającej dokumenty, np. PHP lub JSP.</li>
</ol>
<p>Pamiętajmy również, że nazwa domeny jest częścia URI - więc trzeba zapewnić, żeby się nie zmieniała.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.semanticschool.com/2009/11/niezmienne-uri/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 4.982 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-07-30 18:50:05 -->
