<?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>تکوپدیا &#187; جاوا</title>
	<atom:link href="http://techopedia.net/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://techopedia.net</link>
	<description>Techopedia; #Where Tech Defined</description>
	<lastBuildDate>Fri, 16 Jul 2010 11:25:08 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>حفاظت در مقابل درخواست های دوگانه</title>
		<link>http://techopedia.net/1387/04/24/response-cache-double-request-protection/</link>
		<comments>http://techopedia.net/1387/04/24/response-cache-double-request-protection/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 09:35:47 +0000</pubDate>
		<dc:creator>نرگس حبیبی</dc:creator>
				<category><![CDATA[دسته‌بندی نشده]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[جاوا]]></category>
		<category><![CDATA[مهندسی نرم افزار]]></category>

		<guid isPermaLink="false">http://techopedia.net/1387/04/24/response-cache-double-request-protection/</guid>
		<description><![CDATA[Response Cache: Double Request Protection (کش پاسخ: حفاظت در مقابل درخواست های دوگانه) یک مشکل استاندارد در web-application ها پردازش مناسب درخواست های دوگانه (چندگانه) با دیتای یکسان است. سناریوهای ممکن عبارتند از: ۱- refresh کردن صفحه جاری ۲- انجام bakc-forward در صفحات وب ۳ &#8211; کلیک کردن بیش از یکبار دکمه submit درخواست های <a href='http://techopedia.net/1387/04/24/response-cache-double-request-protection/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><strong>Response Cache: Double Request Protection</strong></p>
<p style="text-align: justify;"><strong>(کش پاسخ: حفاظت در مقابل درخواست های دوگانه)<br />
</strong><br />
یک مشکل استاندارد در <a href="http://en.wikipedia.org/wiki/Web_application">web-application</a> ها پردازش مناسب درخواست های دوگانه (چندگانه) با دیتای یکسان است. سناریوهای ممکن عبارتند از:<br />
۱- refresh کردن صفحه جاری<br />
۲- انجام bakc-forward در صفحات وب<br />
۳ &#8211; کلیک کردن بیش از یکبار دکمه submit</p>
<p>درخواست های چندگانه می تواند اثرات جدی بر روی برخی application ها مانند خرید و فروش اینترنتی داشته باشد. راه حل های client-side برای رفع این مشکل، کامل نیستند. به عنوان مثال می توان توسط JavaScript، double click را بر روی submit غیرفعال کرد، مشروط بر اینکه کاربر JavaScript را در مرورگر خود فعال کرده باشد.<br />
هر چند مشکل در مورد refresh و back- forward به قوه خود باقی است. و یا تنظیم هدرهای HTML تنها منجر به اعلام warning به کاربر می شود که می تواند از آن صرف نظر کند. تنها متد قابل اعتماد، حفاظت در طرف سرور است. راه حل ساده و اولیه، تولید شناسه های یکتا در پاسخ به درخواست های یک کاربر (هر session) و ارسال یه سرور توسط hidden fields و  مقایسه آن با id ذخیره شده در session است. در صورت یکسان بودن هر دو id، کاربر به صفحه خطا هدایت می شود. اما نمایش صفحه خطا چندان مطلوب نیست چون کاربر گزارش وضعیتی مناسبی در مورد عمل قبلی خود دریافت نمی کند. Response cache یک راه حل کلی مبتنی بر Servlet Filter است. کلیه درخواست ها به یک فیلتر ارسال می شود. در صورتی که درخواست برای اولین بار ارسال شده باشد پردازش توسط سرولت های مقصد انجام شده و نتیجه به کاربر ارسال و ضمنا در کش ذخیره می گردد. در صورت تکراری بودن، نتیجه قبلی از کش ارسال می شود.</p>
<p>- این library را می توانید از <a href=" http://www.fingo.info/en/storage/fingo-utils-1.0.2-src.zip">اینجا </a>دانلود کنید.<br />
- <a href="http://www.fingo.info/en/articles/_1.html">منبع </a>از گروه <a href="http://www.fingo.info/en/index.html">FINGO </a><br />
- اطلاعات بیشتر در مورد Servlet Filter را می توانید در <a href="http://java.sun.com/products/servlet/Filters.html">The Essentials of Filters </a>بیابید.﻿</p>
]]></content:encoded>
			<wfw:commentRss>http://techopedia.net/1387/04/24/response-cache-double-request-protection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>استفاده مجدد از نرم‌افزار &#8211; مکانیزم امنیتی</title>
		<link>http://techopedia.net/1385/09/05/j2ee-security-mechanism-facilitates-code-reuse/</link>
		<comments>http://techopedia.net/1385/09/05/j2ee-security-mechanism-facilitates-code-reuse/#comments</comments>
		<pubDate>Sun, 26 Nov 2006 13:50:25 +0000</pubDate>
		<dc:creator>نرگس حبیبی</dc:creator>
				<category><![CDATA[امنیت]]></category>
		<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[جاوا]]></category>
		<category><![CDATA[مهندسی نرم افزار]]></category>

		<guid isPermaLink="false">http://techopedia.net/1385/09/05/j2ee-security-mechanism-facilitates-code-reuse/</guid>
		<description><![CDATA[به موازات توسعه کمپانی های تولید نرم افزار، تواناییی های آنها در ارائه راه حل های نرم افزاری پیچیده، با زمان و هزینه مناسب باید افزایش یابد. یک استراتژی برای رسیدن به این هدف تعیین فرصت های استفاده مجدد از نرم افزار است. بخش مهمی از توسعه نرم افزارهای تحت شبکه، طراحی و پیاده سازی <a href='http://techopedia.net/1385/09/05/j2ee-security-mechanism-facilitates-code-reuse/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p dir="rtl"><font face="Tahoma">به موازات توسعه کمپانی های تولید نرم افزار، تواناییی های آنها در ارائه راه حل های نرم افزاری پیچیده، با زمان و هزینه مناسب باید افزایش یابد. یک استراتژی برای رسیدن به این هدف تعیین فرصت های <strong> <a href="http://www.amazon.com/Software-Reuse-Architecture-Organization-Business/dp/0201924765">استفاده مجدد از نرم افزار</a> </strong>است. بخش مهمی از توسعه نرم افزارهای تحت شبکه، طراحی و پیاده سازی جنبه های امنیتی سیستم است. مکانیزم امنیتی تعریف شده در   <a href="http://java.sun.com/javaee/">J2EE</a> برای User Authentication and  Authorization، قابلیت استفاده مجدد از جنبه های امنیتی را افزایش می دهد.</font></p>
<p dir="rtl"><font face="Tahoma"><strong> <a href="http://developers.sun.com/sw/docs/articles/appserver/securing_j2ee.html">Realm</a></strong> در تعاریف J2EE به منطق احراز هویت کاربران اطلاق می شود و روش های مختلفی چون Database Security و LDAP را می توان در آن به کار گرفت.</font></p>
<p dir="rtl"><font face="Tahoma">به عنوان نمونه پیاده سازی به روش Database Security تحت وب سرور Tomcat شامل مراحل زیر است:</font></p>
<p dir="rtl"><font face="Tahoma">-    ایجاد پایگاه داده امنیتی جهت ذخیره اطلاعات دامنه های داده موجود(Data Domains) ، اطلاعات authentication و authorization کاربران سیستم، نقش های(Roles) تعریف شده و دامنه های داده ای که نقش های هر کاربر در آن معتبر است.</font></p>
<p dir="rtl"><font face="Tahoma">-    تعیین یکی از مکانیزم های احراز هویت برای application (HTTP Basic Authentication، Form-Based Authentication، Client-Certificate Authentication، Mutual Authentication، Digest Authentication،&#8230;) در web.xml</font></p>
<p dir="rtl"><font face="Tahoma">-    تعریف محدودیت های امنیتی (Security Constraints) برای بخش های دلخواه application توسط تعیین نقش هایی که درخواست آنها برای دسترسی مجاز است.</font></p>
<p dir="rtl"><font face="Tahoma">-    پیاده سازی دلخواه کلاس Realm. (سرور username و password کاربر را جهت احراز هویت بهRealm ارسال کرده و Realm شی موسوم به Principal که حاوی اطلاعات authentication و authorization کاربر-بر طبق Database Security- می باشد را برمی گرداند.</font></p>
<p dir="rtl"><font face="Tahoma">به این ترتیب انعطاف پذیری قابل ملاحظه ای توسط استفاده از  <strong> <a href="http://en.wikipedia.org/wiki/Polymorphism_%28computer_science%29">polymorphism</a></strong> و  <strong> <a href="http://www.awprofessional.com/articles/article.asp?p=170809&#038;seqNum=9">Declarative Security</a></strong> (در مقابل   <a href="http://72.5.124.55/blueprints/guidelines/designing_enterprise_applications/eis_tier/security/index.html">hard coded security</a>) به دست می آید.</font></p>
<p dir="rtl"><font face="Tahoma">* در  <a href="http://www.theserverside.com/tt/articles/article.tss?l=ReusableSecurity">Reusable Security for Segmented Data Domains</a> ادامه مطلب را کامل بخوانید.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://techopedia.net/1385/09/05/j2ee-security-mechanism-facilitates-code-reuse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Terracotta for Spring &#8211; محاسبات توزیع شده آسان</title>
		<link>http://techopedia.net/1385/08/27/terracotta-for-spring/</link>
		<comments>http://techopedia.net/1385/08/27/terracotta-for-spring/#comments</comments>
		<pubDate>Sat, 18 Nov 2006 07:37:22 +0000</pubDate>
		<dc:creator>نرگس حبیبی</dc:creator>
				<category><![CDATA[تکنولوژی]]></category>
		<category><![CDATA[جاوا]]></category>
		<category><![CDATA[مهندسی نرم افزار]]></category>

		<guid isPermaLink="false">http://techopedia.net/1385/03/23/terracotta-for-spring-made-distributed-computing-easy/</guid>
		<description><![CDATA[کلاسترینگ بهترین روش توزیع پردازش ها و محاسبات در مقایسه با CORBA, RMI, COM و &#8230; است. مزیت اصلی کلاسترینگ ساده سازی مدل برنامه نویسی است. کلاسترینگ و به طور کلی توزیع باید از دید برنامه ساز پنهان باشد، اما روش های موجود این امکان را فراهم نمی کنند و منطق نرم افزار تحت تاثیر <a href='http://techopedia.net/1385/08/27/terracotta-for-spring/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p align="justify" dir="rtl"><font face="Tahoma">کلاسترینگ بهترین روش توزیع پردازش ها و محاسبات در مقایسه با <a href="http://www.cs.wustl.edu/%7Eschmidt/corba-overview.html">CORBA</a>, RMI, COM  و &#8230; است. مزیت اصلی کلاسترینگ ساده سازی مدل برنامه نویسی است. کلاسترینگ و به طور کلی توزیع باید از دید برنامه ساز پنهان باشد، اما روش های موجود این امکان را فراهم نمی کنند و منطق نرم افزار تحت تاثیر توزیع قرار می گیرد. به عنوان مثال برای استفاده از کلاسترینگی که  Application server هایی چون BEA Weblogic ارائه می دهد، برنامه ساز باید به serializable بودن اشیا (به منظور جابه جایی بر روی ندهای کلاستر در هنگام نیاز) توجه داشته باشد.<br />
ساده ترین راه حل برای ارائه ظرفیت قابل پیش بینی، دسترس پذیری بالا و قابلیت توسعه ، بدون اثرگذاری بر منطق نرم افزار، بیرون بردن موارد مربوط به کلاسترینگ از لایه application به JVM است.<br />
<a href="http://terracottatech.com/terracotta_spring.shtml">Terracotta for  Spring</a> یک Framework برای سیستم های مبتنی بر  <a href="http://www.theserverside.com/tt/articles/article.tss?l=SpringFramework">Spring framework</a> است که کلاسترینگ با کارایی بالا و شفاف، بدون نیاز به کوچکترین تغییری در کد را فراهم می کند. به وسیله آن می توان یک  Single node application ایجاد کرده و سپس اشیای مورد نظر برای توزیع در کلاستر را در فایل تنظیمات معرفی نمود. Terracotta خود ادامه پروسه را هندل خواهد کرد.</font>
</p>
<p align="justify" dir="rtl"><font face="Tahoma"><a title="منبع" href="http://www.theserverside.com/tt/articles/article.tss?l=DistCompute">منبع</a>  | <a title="بررسی ویژگی های م�صول" href="http://www.devx.com/Java/Article/31228/1954?pf=true">بررسی ویژگی های محصول</a>  | <a title="دانلود نرم افزار" href="http://www.terracottatech.com/terracotta_spring.shtml"> دانلود نرم افزار</a></font></p>
]]></content:encoded>
			<wfw:commentRss>http://techopedia.net/1385/08/27/terracotta-for-spring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
