تبليغاتX
انجمن علمی کامپیوتر

مقدمه

XML مخفف زبان نشانه‌گذاري قابل گسترش مي‌باشد. اين زبان يك زبان نشانه‌گذاري جديد است كه توسط كنسرسيوم وب براي غلبه بر محدوديتهاي زبان HTML بوجود آمده است. كنسرسيوم وب سازماني است كه مسئول نگهداري استاندارهاي موجود در زمينه وب مي‌باشد كه از مهمترين اين استاندارها مي‌توان به HTML اشاره كرد.


HTML به طور قطع رايجترين زبان نشانه‌گذاري مي‌باشد. بر طبق برخي گزارشات هم اكنون چندين ميليارد صفحه وب با فرمت HTML توسط محدوده وسيعي از ابزارها شامل مرورگرها، ويرايشگرها، نرم‌افزارهاي پست الكترونيك و غيره پشتيباني مي‌شود. در ابتدا كاربرد وب تنها در انتشار مدارك علمي بود ولي امروزه تا حد يك رسانه ارتباطي در حد تلويزيون و كتاب رشد كرده است. براي پاسخگويي به اين همه مخاطب.

HTML چندين بار گسترش يافته و برچسبهاي جديدي به آن اضافه شده است. براي مقايسه, توجه داشته باشيد كه اولين ويرايش HTML تنها شامل 12 برچسب بود در حاليكه جديدترين ويرايش آن (HTML 4.0) بدون احتساب برچسبهاي ويژه مرورگرهاي خاص، بالغ بر 100 برچسب دارد. علاوه بر اين مجموعه‌اي از زبانهاي برنامه‌نويسي نيز مانند ASP, CGI, JAVA براي استفاده تعاملي از وب بوجود آمده است.


با وجود تمام قابليتهايي كه براي HTML برشمرديم اين زبان داراي نقاط ضعفي است كه رشد آن را با محدوديت مواجه كرده است. HTML به مجموعه‌اي با بيش از 100 برچسب تبديل شده كه آن را تبديل به زباني پيچيده كرده است. تركيب برچسبها تقريباً نامحدودند و بعضاً تركيبهايي وجود دارند كه حاصل نمايش آنها بر روي مرورگرهاي مختلف متفاوت است. علاوه بر اين عليرغم 100 برچسب موجود در اين زبان، نيازهاي امروزه برچسبهاي بيشتري را براي كاربردهاي مختلف طلب مي‌كنند.

كاربردهاي تجارت الكترونيك به برچسبهايي براي توصيف كالا، قيمت ، نام، آدرس و غيره احتياج دارند. موتورهاي جستجو به برچسبهاي دقيقتر براي كلمات كليدي و توضيحات داده‌ها احتياج دارند و كاربردهاي امنيتي نياز به برچسبهايي براي امضاهاي ديجيتالي دارند. به طور كلي تمامي كاربردها براي نيازهاي خود احتياج به برچسبهاي خاصي دارند كه توسط HTML پشتيباني نمي‌شود.


جدا از كاربردهايي كه احتياج به اضافه‌كردن برچسبهاي جديد به HTML دارند، كاربردهايي نيز هستند كه تعداد برچسب كمتر HTML يكي از نيازهاي اساسي آنها مي‌باشد. برطبق پيش‌بيني كنسرسيوم وب در سال 2003و 75% استفاده كنندگان از وب از وسيله‌اي غير از كامپيوتر شخصي مانند تلفن همراه براي دسترسي به وب استفاده خواهند كرد. توان پردازش اين وسايل خيلي كمتر از يك كامپيوتر شخصي مي‌باشد و بنابراين چنين وسايلي قدرت پردازش زبان پيچيده‌اي مانند HTML فعلي را ندارند چه رسد به اين كه براي پشتيباني كاربردهاي خاص برچسبهاي بيشتري هم به آن اضافه شده باشد.


مشكل ديگر HTML اين است كه براي قالب‌بندي يك صفحه به تعداد زيادي برچسب احتياج است و در اكثر موارد صفحاتي مشاهده مي شود كه حجم علائم نشانه‌گذاري در آنها بيشتر از محتواي آنهاست كه همين امر سرعت دستيابي و نمايش اين صفحات را به طور قابل ملاحظه‌اي كم مي‌كند.


زبان xml در سال 1997 توسط كنسرسيوم وب براي رفع محدوديتهاي موجود در HTML و اضافه كردن قابليتهاي جديد بوجود آمد. تفاوت اصلي XML با HTML در اين است كه XML سعي دارد داده‌ها را طوري نشانه‌گذاري كند كه معناي آنها حفظ شود و در حاليكه HTML داده‌ها را طوري نشانه‌گذاري مي‌كند كه قابل نمايش براي مرورگرها باشد. در واقع تاكيد XML بر روي معناي داده‌هاست در حاليكه تاكيد HTML بر نمايش داده مي‌باشد. به منظور حفظ معناي داده‌ها XML ابر داده(MetaData ) توصيف كننده داده‌ها را نيز همراه آنها ذخيره مي‌كند.


XML زير مجموعه ساده شده‌اي از زبان SGML مي‌باشد. SGML يك زبان عمومي و پيچيده براي نشانه‌گذاري داده‌هاست كه در دهه 80 بوجود آمد و پدر زبانهاي نشانه‌گذاري محسوب مي‌شود. قابليتهاي زياد اين زبان آن را بيش از اندازه پيچيده كرده است بطوري كه كنسرسيوم وب آن را بعنوان جانشين HTML مناسب ندانسته و تصميم گرفت زير مجموعه ساده شده‌اي از آن را با نام XML جانشين HTML كند. XML را در واقع يك ابر زبان ناميده ميشود چرا كه كاربر بسته به نيازهايي كه دارد مي‌تواند با استفاده از آن زبان نشانه‌گذاري جديدي براي نشانه‌گذاري داده‌هايش ايجاد كند.


XML همچنين قادر است ساختار داده‌هاي ذخيره شده را نيز بهمراه معناي آنها حفظ كند. اين زبان داراي هيچ برچسب از پيش تعريف شده‌‌اي نيست و تمامي برچسب‌ها برحسب نياز توسط كاربر تعريف مي‌شوند. قابليتهاي XML و اجزاء همراه آن، اين زبان را به زبان قابل حمل و استاندارد براي كاربردهاي مختلف تبديل كرده است.
+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:47 توسط عزیز پورابراهیم |

XML چيست ؟


یکی از ابزاری است که این مدته به شدت وارد بورس شده و حیفه، که من حرفی از این مبحث مطرح نکنم.
XML یک سیستم ذخیره اطلاعات است که میتوان در زمینه های مختلف تعمیمش داد. حال من آموزش گوشه های از XML رو میخوام با یک مثال شروع کنم. شما فقط سعی کنید مکانیزم کاری و کاربرد XML رو درک کنید. درک مطالب و مباحث کمکه زیادی به شما در برنامه نویسی میکنه پس مثال زیر رو با دقت بخونید، اگه گوشه های از کد رو متوجه نشدید مهم نیست چون در درس های بعدی این Object ها و باقیه Object های مربوط به XML رو آموزش میدم.



من یک فایل در آدرس "C:\Data1.XML" دارم با محتوای زیر:



<?xml version="1.0" ?>

<Person>

<Name>AraSoft</Name>

<Age>18</Age>

<Sex>Male</Sex>

</Person>

حال لازمه که این اطلاعات که شامل اسم ، سن ، جنسیت من هست در برنامه استفاده کنیم.پس ابتدا Namespace مورد نظر " System.Xml " رو به برنامه اضافه کرده و Imports System.Xml ... استاد میکنید.

و در قسمت مورد نظر کد مربوط رو مینویسیم:

Dim Reader as XMLNodeReader

Dim DC as New XMLDocument

Dim NickName, Sex as String

Dim Age as Long



DC.load ("C:\Data1.Xml")

Reader = New XMLNodeReader (DC)

Do until Reader.EOF

Reader.Read

Select Case Reader.LocalName

Case "Name"

If Reader.IsStartElement then

Reader.MoveToElement

If Not Reader.Value.Trim = Nothing then

MSGbox (Reader.Value)

End IF

End If

Case "Age"

If Reader.IsStartElement then

Reader.MoveToElement

If Not Reader.Value.Trim = Nothing then

MSGbox (Reader.Value)

End IF

End If

Case "Sex"

If Reader.IsStartElement then

Reader.MoveToElement

If Not Reader.Value.Trim = Nothing then

MSGbox (Reader.Value)

End IF

End If

End Select

Loop

خوب ما یک XML داریم و یک کد که از این اطلاعات استفاده میکنه.شما کافیست از کد به این برسید که XML در چه حیطه ای است و کجا بدرد میخورد، به راحتی میتوانید تمام مباحث XML را به راحتی یاد بگیرید.فعلا این مثال رو داشته باشید تا من در دفعه بعد یک آموزش ساده و پایه ای از XML رو استاد کنم.فقط یادتون نره قدم به قدم پس تا بعد.



+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:47 توسط عزیز پورابراهیم |

آشنايي با XML قسمت دوم
اکثر افرادی که قصد یادگیری XML رو دارند، نمی تونند XML رو خوب بفهمند. شما سعی کنید XML رو یک سیستم ذخیره اطلاعات بدونید.بعدا با یادگیری قسمتهای بعدی XML با کاربردهای XML آشنا میشید و راحتتر میتونید به صورت حرفه ای از اون استفاده کنید.البته این یادآوری کنم که من فقط قصد آشنا سازی شما با XML رو دارم نه آموزش کامل XML.

XML برای خود یک دستوره نگارشی و املایی دارد. شما در حین یادگیری عبارتهای XMLبا اون آشنا میشید.

تگها:

شما با عبارتهای HTML یا همان TAG ها آشنا هستید <تگ> در XML از همان تگها استفاده میشود ولی نکته مهم اینجاست که XML به شدت به حروف کوچک و بزرگ حساسیت داره پس اگر شما تگ ابتدای خودتون رو به دین صورت نوشتید <TaG> باید تگ پاییانی هم بدین صورت بنویسید </TaG>.



اعلان شروع فایل XML:

فایل XML با یک اعلان شروع میشه که باید در اولین خط باشه (کاملا اختیاری):

<? xml version="1.0" ?>
حتما به بزرگی و کوچکی حروف دقت کنید. تگ اعلان XML به صورت <؟ و بعد کلمه XML و بعد از اون نوع version که تا کنون آخرین اون "1.0" بوده قرار میگیره و سپس تگ پایانی اون ؟>.

نوشتن تگها:

تگها در حقیقت همان رکوردها هستند که فیلدهای متغییری میتوانند داشته باشند(البته اگر با Database آشنا باشید). شما اطلاعات خودتون رو با استفاده از تگها ذخیره میکنید مثلا برای ذخیره اسمتون: <Name>AraSoft</Name>

برای ذخیره اطلاعات شما به دو تگ نیاز دارید یکی آغازی و دیگری پایانی این دو در حقیقت تشکیل یک تگ صحیح را میدهند. یک تگ آغازی به صورت اول > و بعد اسم مورد نظر و سپس < نوشته میشود. تگ پایانی تنها یک تفاوت کوچک دارد که آن در آولین بخش تگ است. تگ پایانی به صورت </ و اسم مورد نظر و <. میبینید که در تگ پایانی علاوه بر > یک علامت / هم وجود دارد:

Begin: <Name>

End: </Name>

برای نوشتن تگها باید به این توجه کنید که اسم تگ شروع (<Name>) و اسم تگ پایانی (</Name>) نباید از نظر کوچکی و بزرگی فرق کند. و نکته مهم اینکه شما باید XML خود رو با یک تگ اصلی بپوشانید و بقیه تگها رو داخل اون قرار دهید مثل:

<? Xml version="1.0" ?>

<Root>

<Child1></Child1>

<Child2></Child2>

<Child3/>

</Root>
تداخل تگها:

اگر شما تگی رو شروع کردید و میخواهید تگی رو داخل اون قرار دهید شروع و پایان تگ باید در داخل تگ اصلی باشد مانند زیر:

درست:

<? Xml version="1.0" ?>

<root>

<child1/>

</root>

:غلط

<? Xml version="1.0" ?>

<root>

<child1>

</root>

</child1> ß-----Error
تگ پوچ:

شاید در مرور Xml های که من نوشتم یه این تگ <Child1/> رسیده و تعجب کنید که چرا من قانون نوشتن تگها رو نقض کردم و لی در حقیقت این خود یک دستور نگارشی است مبنی بر اینکه اگر تگی هیچ مقداری رو در بر نمیگیرد بهتر است به صورت <Name/> نوشته شود "شبیه به HTML" تا به راحتی برسی XML افزوده شود.

افزوردن ویژگی به تگ:

تگ ها قدرت داشتن ویژگی رو دارند (Attribute).

1.<SectionOfSite Language="Persian">Home</SectionOfSite>

2.<SectionOfSite Language="English">Home</SectionOfSite>
شما میتوانید برای مقدار هر تگ یک خاصیت یا ویژگی تعیین کنید. مثلا من در شماره 1 گفتم قسمت سایت=خانه و با زبان فارسی و در شماره 2 گفتم که قسمت سایت=خانه و به زبان انگلیسی.


+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:46 توسط عزیز پورابراهیم |

آشنايي با XML قسمت سوم
یک حالت ساده از خواننده های فایلهای XML در .Net همین XMLTextReader است.

این راننده (Driver) فقط رو به جلو حرکت میکند وهرچی در سر راهش باشد در حافظه اش ذخیره میکند.و مهمترین قسمت اینکه از DTD و XMLSchemaنیز پشتیبانی نمیکند.و این برای شروع کار ما که با این دو نوع آشنا نیستیم بسیار مناسب است.

Imports System.Xml

Dim Reader as XmlTextReader

Reader = New XmlTextReader("Data\Setting.Xml")'فایل مورد نظر

Do Until Reader.EOF'در صورت به اتمام رسیدن فایل حلقه متوقف میشود

Reader.Read()'خواندن تگ بعدی

MsgBox(">---")

MsgBox("Depth: " & Reader.Depth)

'مقدار فرو رفتگی یک تگ داخل تگهای بالای خودش

MsgBox("LocalName: " & Reader.LocalName)

'خواندن اسم تگ<Book> localName is Book

MsgBox("Attribute: " & Reader.ReadAttributeValue)

'مقدار خاصیت قرار داده شده

MsgBox("Value: " & Reader.Value)

'محتوای داخلی تگ

MsgBox("---<")

Loop

همینطور که میبینید بسیار ساده میشه از این Object استفاده کرد. شمامیتونید به راحتی فایل XML خود رو باز کرده و اون رو به ترتیب بخونید.

*همانطور که میبینید در قسمت خواصیت تگ اگر تگ خواصیتی رو نداشته باشه مقدار

برگشتی False میباشد.

*در قسمت Depth ؛ اگر تگی در داخل روت اصلی باشد مقدار 1 رو بر مگردونه و اگریک تگ در داخل این تگ باشه پس مقدار 2 رو بر میگردونه و اگر خود روت باشه

مسلماً مقدار صفر 0 را بر میگردونه.

*شما میتوانید با استفاده از LocalName یک فیلتر قرار دهید که هر LocalName که مقداری در بر نگیرد نمایش ندهد.

البته من فقط این Reader ها رو معرفی میکنم و اگر نکته مهمی وجود داشته باشد گفته میشود.پس اگر در این زمینه مشکلی بوجود اومد میتونید اونو مطرح کنید چون این مبحث خیلی وسیع هست و نمیشه به این راحتی با اون کنار اومد.

+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:45 توسط عزیز پورابراهیم |

آشنايي با XML قسمت چهارم
در این قسمت به تعریف یک نوع دیگر از خواننده های XMLمیپردازیم که من بیشتر از این نوع استفاده میکنم بجز موارد خواص. البته این مبحث زیاد جای بحث نداره به همین دلیل بسیار مختصر به شرح اون میپردازم.


XMLNodeReader

همین طور که از اسمش معلومه برای برسی XML بر اساس گره ها (Node) طراحی شده. این Reader از DTD و XML Schema پشتیبانی نمیکند ولی تعریف های داخل DTD رو میشناسه.



خوب طبق معمول با یک مثال این Reader رو تعریف میکنیم.که من فکر میکنم هیچ آموزشی نمیتونه مانند مثال به یک نفر کمک کنه پس ما هم... :



Imports System.Xml Dim Reader As XMLNodeReader

Dim DOC As New XmlDocument

DOC.Load("\Data\Setting.Xml")

Reader = New XMLNodeReader(DOC)

Do Until Reader.EOF

Reader.Read()

MsgBox("---")

MsgBox("Depth: " & Reader.Depth)

MsgBox("LocalName: " & Reader.LocalName)

MsgBox("Attribute: " & Reader.ReadAttributeValue)

MsgBox("Value: " & Reader.Value)

MsgBox("---")

Loop
همینطور که میبینید این Reader هم بسیار شبیه Reader قبلی است. ولی در Open کردن فایل کمی تفاوت دارد. مهمترین قسمت این قسمت طریقه بازشدن فایل بوسیله XMLNodeReader است چون بقیه قسمتهای NodeReader و TextReader فرق چندانی با هم ندارد. ولی یک Object اضافه بر سازمان در این قسمت برای باز کردن فایل استفاده کردم. این Object بسیار قدرتمند است و در آینده حتما بر روی اون بحث خواهم کرد. من به شما سفارش میکنم اگر از XML به صورت ابتدایی استفاده میکنید از همین Reader استفاده کنید چون بسیار سریع تر و دقیقتر ( نه از نظر من حتی از نظر Microsoft) از TextReader است. من برای مطرح کردن بقیه مسایل در XML باید به آموزش کوتاهی درباره DTD بپردازم پس تا یادداشت بعد.


+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:45 توسط عزیز پورابراهیم |

Exclamation Xml و ده نکته مهم

دنياي XML مملو از تکنولوژي هاي ديگر، نظير XLink,Namespace,DTD,Schema,CSS,XSL,XHTML و ... است .افراديکه قصد آشنائي با XML را دارند، همواره با اين سوال مشکل مواجه هستند که از کجا مي بايست آغاز نمايند. در اين مقاله به بررسي ده نکته مهم بمنظور آشنائي با XML پرداخته تا از اين رهگذر مسيري مناسب براي علاقه مندان به فراگيري اين تکنولوژي مهم ، مشخص گردد.

نکته اول : XML گزينه اي براي ارائه ساختار داده ها

داده هاي ساختيافته شامل مواردي نظير صفحات گسترده ، دفترچه هاي آدرس ، پارامترهاي قابل پيکربندي و ... مي باشند . XML ، مجموعه اي از قوانين بمنظور طراحي ساختار داده هاي مورد نظر است . XML ، بعنوان يک زبان برنامه نويسي تلقي نشده و براي استفاده از آن اجباري به داشتن تجربه لازم برنامه نويسي نخواهد بود . با استفاده از XML ، کامپيوترها بسادگي قادر به توليد و خواندن اطلاعات و اطمينان از عدم مبهم بودن ساختمان داده ها مي باشند . XML ، بسط پذير ، مستقل از پلات فورم و مورد حمايت هاي بين المللي و محلي است . XML ، بطور کامل Unicode را حمايت مي نمايد .

نکته دوم : XML شباهت زيادي به HTML دارد

XML ، همانند HTML از تگ ها و خصلت ها استفاده مي نمايد.در HTML ، هر تگ و يا خصلت داراي عملکرد و معني از قبل مشخص شده اي بوده وبا بکارگيري هر تگ ، نحوه نمايش اطلاعات ( بين تگ ها ي استفاده شده) براي مرورگر تبين مي گردد. XML ، با استفاده از تگ ها ، محدوده مشخصي براي داده ها را تعيين و عملا" مسئوليتي در رابطه با تفسير تگ ها و داده هاي همراه آنها را نداشته و اين عمليات را به برنامه هائي که يک فايل XML را مي خوانند، واگذار مي نمايد . مثلا" در صورتيکه از تگ
در يک سند XML استفاده شده باشد ، نمي توان اين ادعا را داشت که تگ فوق نشاندهنده يک پاراگراف است . ممکن است تگ فوق، نشاندهنده price ، parameter و يا يک person باشد .

نکته سوم : XML بصورت متن است .

برنامه هائي که داده هاي ساختيافته توليد مي نمايند، اغلب داده هاي خود را برروي ديسک ذخيره مي نمايند . فرمت ذخيره سازي اطلاعات ممکن است بصورت متن و يا باينري باشد . مهمترين مزيت ذخيره سازي داده ها بصورت متن ، امکان مشاهده داده ها بدون نياز به برنامه اي است که اطلاعات را توليد کرده است . حتي مي توان اطلاعات فوق را با استفاده از يک ويرايشگر متني تغيير داد . فرمت هاي اطلاعاتي مبتني بر متن، به پياده کنندگان نرم افزار قابليت هاي بيشتري را در خصوص اشکال زدائي برنامه ها نيز مي دهد. فايل هاي XML ، مشابه HTML بصورت متن مي باشند . قوانين موجود در XML ، با صراحت و شفافيت بيشتري ارائه شده است . فراموش کردن يک تگ و يا عدم قرار دادن خصلت بين علامت "" باعث مي گردد که يک فايل XML غيرقابل استفاده گردد . در صورتيکه در فايل هاي HTML مسائل فوق تحمل و اغلب مجاز خواهد بود . اگر يک فايل XML داراي مشکل باشد ، برنامه استفاده کننده پس از مواجه شدن با مشکل ، عمليات خود را در محل بروز خطاء متوقف و يک پيام خطاء را ارائه خواهد داد .

نکته چهارم : ظرفيت فايل هاي XML زياد است .

با توجه به اينکه فرمت فايل هاي XML ، بصورت متني بوده و از تگ ها بمنظور مرزبندي داده ها استفاده مي شود ، اين نوع فايل ها معمولا" داراي حجم بيشتري نسبت به فايل هائي با فرمت باينري مي باشند . همانگونه که در نکته سوم اشاره گرديد، مهمترين مزيت يک فرمت مبتني بر متن ، قابليت مشاهده آن و مهمترين اشکال ، اشغال حجم بيشتري از فضاي ذخيره سازي است . از طرف ديگر با توجه به وجود برنامه هاي فشرده سازي نظير Zip ، امکان فشرده سازي فايل ها بخوبي و با سرعت بالا فراهم مي گردد . پروتکل هاي ارتباطي نظير پروتکل هاي مربوط به مودم و يا HTTP/1.1 ( پروتکل اصلي در وب ) قادر به فشرده سازي داده ها و صرفه جوئي در پهناي باند استفاده شده مي باشند .

نکته پنجم : XML خانواده اي از تکنولوژي ها است

XML 1.0 ، مشخصات ، ماهيت و قوانين موجود در رابطه با تگ ها و خصلت ها را تعريف مي نمايد . خانواده XML ، شامل مجموعه اي در حال رشد از ساير ماژول هائي است که سرويس هاي مفيدي را در خصوص انجام عمليات و خواسته هاي مهم بر عهده دارند . XLink ، روشي استاندارد براي افزدون ابر لينک ها به يک فايل XML را مشخص مي نمايد . XPointer ، گرامري مناسب براي اشاره به بخش هاي متفاوت يک سند XML است . يک XPointer ، شباهت زيادي به يک URL داشته ، با اين تفاوت که در مقابل اشاره به سندهائي بر روي وب ، به بخش هاي متفاوت در يک سند XML اشاره مي نمايد . CSS ، زبان style sheet قابل استفاده براي XML و HTML است . XSL ، يک زبان پيشرفته براي ارائه style sheet است . تکنولوژي فوق بر اساس XSLT است . XSLT ، يک زبان تبديل بمنظور سازماندهي مجدد ، افزودن و يا حذف تگ ها و خصلت ها است . DOM ، استانداردي با مجموعه اي از توابع براي انجام عمليات برروي يک سند XML ( يا HTML) از طريق يک زبان برنامه نويسي است . XML Schema ، به پياده کنندگان ، امکان تعريف دقيق ساختار اطلاعات را ارائه مي نمايد . در اين رابطه ماژول هاي متعدد ديگري نيز وجود داشته که در خانواده بزرگ XML داراي جايگاه خاص خود مي باشند .

نکته ششم : XML جديد است اما نه خيلي جديد

پياده سازي XML از سال 1996 آغاز و در فوريه سال 1998 توسط کنسرسيوم وب عرضه گرديد . ممکن است ابهامي در خصوص جوان بودن تکنولوژي فوق در ذهن ايجاد گردد . در پاسخ مي بايست به اين نکته اشاره گردد که تکنولوژي فوق ، خيلي هم جديد نيست . قبل از XML ، تکنولوژي SGML وجود داشت . پياده کنندگاه در اوايل دهه 80 در مقياس وسيعي از آن براي پروژه هاي بزرگ مستند سازي استفاده مي نمودند . پياده سازي HTML از سال 1990 آغاز گرديد. طراحان XML ، بهترين بخش هاي SGML را بهمراه تجارب موجود در رابطه با HTML ، ترکيب و محصولي را توليد نموده اند که قدرتي کمتر از SGML ندارد . SGML اغلب براي مستند سازي فني استفاده شده و از آن براي ساير موارد مربوط به داده ها بندرت استفاده مي گردد . XML دقيقا" برخلاف وضعيت فوق است .

نکته هفتم : XML باعث هدايت HTML بسمت XHTML مي گردد .

يکي از موارد مهم کاربرد XML ، تکنولوژي XHTML است . XHTML ، گزينه بعدي نسبت به HTML است . XHTML داراي المان هاي مشابه المان هاي استفاده شده در HTML است . گرامر استفاده شده در XHTML ، بگونه اي تغيير پيدا کرده که منطبق بر قوانين مربوط به XML باشد . سندهاي مبتني بر XML ، گرامر خود را از XML به ارث برده و آن را با روش هاي خاصي محدود مي نمايد . ( مثلا" XHTML امکان استفاده از

را داده ولي امکان استفاده از را نخواهد داد ) در XHTML به گرامر موجود ، مفهوم نيز اضافه شده است . ( مثلا" XHTML از تگ

براي يک پاراگراف استفاده مي نمايد نه براي price و يا person )

نکته هشتم : XML ماژولار است .

XML ، امکان تعريف يک فرمت جديد سند را با ترکيب و استفاده مجدد از ساير فرمت ها فراهم مي نمايد . با توجه به اينکه دو فرمت بصورت مستقل از يکديگر طراحي و پياده سازي مي گردند، ولي ممکن است از المان ها و يا خصلت هائي با اسامي مشابه ، استفاده شده باشد . در زمان ترکيب فرمت هاي فوق، مي بايست تدابير لازم پيش بيني گردد . ( مثلا" ممکن است تگ

در يک فرمت، مفهوم پاراگراف را داشته در صورتيکه در فرمت ديگر، داراي مفهوم person باشد ) . بمنظور حل مشکل فوق ( وجود اسامي مشابه با مفهوم متفاوت ) ، namespace ارائه شده است . XSL و RDF نمونه هاي مناسبي از فرمت هاي مبتني بر XML بوده که از namespace استفاده مي نمايند .

نکته نهم : XML پايه و اساس RDF و سمنتيک وب است .

RDF)Resource Description FrameWork ) يک فرمت متني مبتني بر XML بوده که تشريح منابع و برنامه هاي متاديتا ( نظير يک برنامه موزيک playlist و يا آلبوم عکس ) را حمايت مي نمايد . مثلا" RDF مي تواند اين امکان را فراهم آورد که يک آلبوم عکس وب را با استفاده از اطلاعات مربوط به ليست تماس شخصي ، ايجاد و در ادامه برنامه سرويس گيرنده پست الکترونيکي قادر به ارسال يک پيام بصورت خودکار براي افراد موجود در آلبوم باشد . همانگونه که HTML باعث ترکيب سندها و برنامه هاي مبتني بر فرم ها در وب مي گردد ، RDF با يکپارچگي برنامه ها و آژانس ها ، يک وب سمنتيک ( وبي که تعامل اطلاعاتي بين اجزاي آن کاملا" مشهود و مدون است ) ايجاد مي نمايد.

نکته دهم : حق استفاده از XML رايگان بوده ، مستقل از پلات فورم است و بخوبي حمايت مي گردد.

با انتخاب XML ، براي پياده سازي يک پروژه از امکانات حمايتي متنوع و گسترده اي در رابطه با ابزارها و مهندسين با تجربه بهره مند خواهيد شد . انتخاب XML ، مشابه انتخاب SQL براي بانک اطلاعاتي است . در اين حالت همچنان نياز به ايجاد بانک اطلاعاتي ، نوشتن برنامه ها و روتين هاي لازم بمنظور انجام عمليات دلخواه خواهد بود . با توجه به اينکه حق استفاده از XML رايگان بوده مي توان نرم افزار خود را با استفاده از آن ، بدون پرداخت هزينه اي طراحي نمود .
منبع : http://www.srco.ir
+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:44 توسط عزیز پورابراهیم |

Post ده نکته در رابطه با Xml - Dom

يکي از مهمترين مفاهيم موجود در رابطه با XML ، تکنولوژي DOM)Document Object Model) است . XML نظير برنامه Word و يا DHTML ( مربوط به شرکت ماکروسافت ) ، داراي يک مدل مبتني بر شي ، براي برنامه نويسي است . در اين مقاله به بررسي ده نکته مهم در رابطه با تکنولوژي XML - DOM خواهيم پرداخت .

نکته اول ? تکنولوژي DOM ، يکي از ابزارهاي برنامه نويسي موجود بمنظور استقرار يک سند XML در حافظه ، تفسير و پردازش است . ابزار فوق ، اغلب توسط برنامه هاي VB و ASP بمنظور پردازش فايل هاي XML استفاده مي گردد . DOM بمنزله يک شي بوده که برنامه نويسان با استفاده از آن ، امکان فعال نمودن ، ويرايش و ذخيره يک فايل XML را بدست مي آورند .

نکته دوم ? ساختار داخلي DOM مشابه چيست ؟ ساختار فوق مشابه يک درخت با شاخه ها و برگ هائي است . برخي از شاخه ها ممکن است داراي شاخه هاي ديگري باشند. همانگونه که در مقاله ده نکته در رابطه با XML ، اشاره گرديد ، يک سند XML داراي المان هائي است که مناسب است در اين مقطع و از اين زاويه به آنها شاخه گفته شود. بنابراين DOM شامل مجموعه اي از المان ها است . البته ، اغلب برنامه نويسان به آنها " گره " و يا " گره فرزند " مي گويند. گره ها ممکن است داراي يک مقدار، تهي و يا شامل ساير گره هاي فرزند باشند . المان ، گره ، گره هاي فرزند عملا" در بردارنده مفاهيم مشابه اي مي باشند .

نکته سوم ? تکنولوژي DOM ، داراي اشياء متفاوتي است . DOMDocument يکي از اشياء موجود بمنظور دستيابي به DOM ( شامل اطلاعات مربوط به سند XML ) است . DOMElement و DOMNode نمونه هائي ديگر از اشياء موجود مي باشند . بمنظور انجام عمليات و پردازش هاي مورد نظر در DOM ، دوازده شي متفاوت پيش بيني شده است . شي DOMDocument ، اولين شي استفاده شده براي فعال نمودن يک سند XML بوده و داراي مجموعه اي از متدها و خصلت ها براي استفاده توسط برنامه نويسان است . مثلا" شي فوق، داراي خصلتي بمنظور بازيابي firstChild ( اولين فرزند ) ، lastChild ( آخرين فرزند ) ، nextSibling ( برادر بعدي ) و previousSibling (برادر قبلي ) است . در حقيقت شي DOMDocument ، تصويري از سند XML را با توجه به قوانين مربوطه در خود نگهداري کرده و با استفاده از خصلت هاي متعدد موجود ، امکان حرکت در طول سند با روش هاي متفاوت ميسر مي گردد .

نکته چهارم ? شي DOMDocument ، داراي تعداد زيادي متد مفيد نيز مي باشد . مثلا" متد insertBefore براي درج يک گره قبل از موقعيت جاري استفاده مي گردد. براي ايجاد يک المان جديد، مي توان از متد createElement استفاده کرد . براي افزودن يک المان جديد به شي DOMDocument مي بايست دو مرحله عمليات را دنبال نمود . مرحله اول : با استفاده از متد createElement المان ايجاد مي گردد ( در اين حالت يک شي DOMNode ، ايجاد مي گردد ) . مرحله دوم : با استفاده از متد appendChild شي DOMNode را به DOMDocument اضافه مي نمائيم . ( DOMDocument و DOMNode دو شي مجزا با عملکردهاي خاص خود مي باشند و نبايد آنها را بمنزله اشياء مشابه در نظر گرفت ) .

نکته پنجم ? در مقاله ده نکته در رابطه با XML ، به اين نکته اشاره گرديد که مي توان يک سند XML را به Html ، WML و يا يک سند XML ديگر با يک ساختار متفاوت ، تبديل کرد . براي تحقق خواسته فوق ، مي توان از متد transformNode استفاده کرد . بدين منظور لازم است از دو شي DOMDocument استفاده گردد. يکي از آنها توسط سند XML فعال و ديگري توسط XSL فعال خواهد شد. با استفاده از متد transformNode ، خروجي بصورت يک رشته خواهد بود . رشته فوق شامل نتايج مورد نظر بمنظور استفاده در WML, Html ، متن و يا ساير موارد دلخواه است .

نکته ششم ? تمام اشياء DOMDocument ، داراي يک گره ريشه مي باشند . گره فوق تنها ريشه موجود بوده که ساير گره ها مستقيما" و يا غير مستقيم به آن متصل مي گردند. در يک سند XML ، دوازده گره متفاوت وجود دارد . NODE_ELEMENT ، NODE_ATTRIBUTE ، NODE_TEXT و NODE_COMMENT نمونه هائي در اين زمينه مي باشند . برخي از گره ها ، داراي فرزند و برخي ديگر فاقد فرزند مي باشند . مثلا" NODE_ELEMENT مي تواند داراي شش فرزند متفاوت ! باشد . ( نگران نباشيد وضعيت فوق در رابطه با يک المان است نه انسان ) و يا NODE_TEXT فاقد فرزند است .

نکته هفتم ? يکي ديگر از اشياء بسيار مفيد ، شي HTTPRequest مي باشد. شي فوق امکان گفتگوي برنامه هائي که در سمت سرويس گيرنده اجراء مي گردند را با سرويس دهنده وب فراهم مي نمايد . اين شي شامل تمامي روتين هاي مورد نياز بمنظور برقراري ارتباط و مبادله اطلاعات است . پس از ارتباط با سرويس دهنده ، از طريق متدهاي POST و يا GET ، با استفاده از متد Send مي توان يک ارتباط را برقرار کرد. در ادامه با استفاده از خصلت هاي متعددي نظير : responseXML و يا responseText مي توان اقدام به بازيابي XML و يا متن مورد نظرنمود . شي HTTPRequest بهمراه اشياء XML در IE ارائه شده است .

نکته هشتم ? پاس دادن رشته هاي XML در برنامه ها و بين برنامه ها ، يکي از خواسته هاي مورد نيار است . در اين راستا متدهاي Load و LoadXML ازشي DOMDocument مطرح مي باشند . متد Load، باعث فعال نمودن يک فايل XML شده ، در صورتيکه متد LoadXML يک رشته را فعال مي نمايد . براي توقف فعال نمودن يک سند XML ، مي توان از متد abort استفاده کرد . خصلت parseError يک امکان در دسترس ، براي کنترل خطاء و متد save براي ذخيره نمودن XML بصورت يک فايل استفاده مي گردد . مثلا" در صورتيکه يک رشته XML را که " خوش شکل " نمي باشد ، فعال نمائيم ، خصلت parseError شامل يک کد خطاء بوده و مي توان با استفاده از آن برخورد مناسبي با وضعيت پيش آمده را انجام داد .

نکته نهم ? يکي از انواع گره هائي که مي توان در يک DOMDocument درج کرد ، DOMProcessingInstruction است . يک PI)Processing Instructing) ، شامل دستورالعمل هائي است که تمايلي به تفسير آنها را نداريم . مثلا" شايد بخواهيم جزئيات مربوط به نسخه خاصي از برنامه RealAudio را که از اطلاعات آن يک المان در سند استفاده مي نمايد ، ارسال نمائيم ، در چنين مواردي مي توان يک دستورالمل PI بصورت زير در سند درج کرد :


نکته دهم ? در صورتيکه قصد ارسال اطلاعاتي را داشته باشيم که شامل عباراتي نظير < ، # و يا > باشد ، و نياز است که آنها را از طريق پارسر ارسال نمائيم ، ( استفاده از حروف فوق باعث بروز خطاي پارسر خواهد شد ) مي توان اطلاعات فوق را در يک گره خاص با نا م NODE_CDATA_SECTION قرار داد . مثلا" عبارت زير مقدار '#91' را بهمراه يک المان استفاده کرده است . پارسر اطلاعات موجود در بخش CDATA را مي خواند ولي آنها را تفسير نخواهد کرد .

< ![CDATA[#91]] >< house_number >

منبع = http://www.srco.ir
+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:42 توسط عزیز پورابراهیم |

Lightbulb Rss و Xml جيست؟

Xml چيست ؟
• XML برای شرح و بيان اطلاعات طراحی شده است.
• HTML برای نمايش اطلاعات و برای تمركز روی چگونگی ديده شدن اطلاعات طراحی شده است.

قبل از ادامه اين بحث، شما بايد مقداری درك پايه ای از موارد زير داشته باشيد:
• WWW,HTML و اساس ساخت صفحات وب
• زبانهای اسكريپت وب مانند JavaScript , VBScript

XMLچيست؟
• XML برگرفته شده از كلمات Extensible Markup Language است.
• XML يك Markup Language مانند HTML است.
• tag (برچسب) های XML از قبل تعريف شده نيستند، شما خودتان بايد آنها را تعريف كنيد.
• XML از يك (Document Type Definition) DTD برای شرح اطلاعات استفاده ميكند.
• XML با يك DTD طراحی ميشود تا خود-توصيف باشد.

تفاوت اصلی بين XML و HTML
• XML برای حمل اطلاعات طراحی شده است.
• XML يك جايگزين برای HTML نيست.
• XML و HTML برای هدفهای مختلفی طراحی شده اند.
• HTML برای نمايش اطلاعات و XML برای شرح و حمل و نقل اطلاعات است.

XML كاری انجام نميدهد!
شايد اين موضوع برای درك كردن كمی مشكل باشد، اما XML كاری انجام نميدهد. XML ساخته نشده تا كاری انجام دهد. XML به عنوان يك راه برای سازماندهی كردن، ذخيره كردن و فرستادن اطلاعات ساخته شده است.
يادداشت يك سرباره (header) و يك بدنه اصلی پيغام دارد، همچنين اطلاعات فرستنده و گيرنده را هم در بر دارد. اما هنوز اين سند XML كاری انجام نميدهد. آن فقط اطلاعات محضی است كه در برچسبهای XML قرار گرفته است.

XML آزاد و قابل گسترش
• برچسبهای XML از قبل تعريف شده نيستند، شما بايد برچسبها را خودتان درست كنيد.
• برچسبهايی كه در HTML بكار ميروند از پيش تعريف شده هستند و مؤلف سندهای HTML فقط ميتواند از برچسبهای تعريف شده در HTML استاندارد استفاده كند 
• XML به مؤلف اجازه ميدهد تا برچسبهای خود و ساختار آنها را تعريف كند.
• برچسبهای مثال بالا ( مانند و) در XML استاندارد تعريف شده نيستند، اين برچسبها توسط مؤلف سند XML تعريف شده اند.

XML يك مكمل برای HTML
• XML يك جايگزين برای HTML نيست.
• درك اينكه XML يك جايگزين برای HTML نيست خيلی مهم است.
• در آينده گسترش وب احتمال داده ميشود كه XML برای شرح اطلاعات به كار خواهد رفت،درحاليکه كه HTML برای فرمت و نمايش اطلاعات به كار خواهد رفت.
• شايد اين بهترين تعريف از XML باشد: ابزاری مستقل از سخت افزار و نرم افزار برای انتقال اطلاعات است.

XML ميتواند اطلاعات را از HTML جدا كند
• با XML اطلاعات شما در خارج از HTML ذخيره ميشود.
• هنگامی كه HTML برای نمايش اطلاعات استفاده ميشود، اطلاعات در درون HTML ذخيره شده است. با XML اطلاعات ميتواند در فايلهای جدای XML ذخيره شود. در اين روش شما ميتوانيد HTML را به عنوان لايه ای روی اطلاعات و برای نمايش آنها فرض كنيد و مطمئن باشيد كه تغيير در اطلاعات لايه های زيرين احتياج به تغيير HTML شما نخواهد داشت.

برای داد و ستد اطلاعات
با XML اطلاعات ميتواند بين سيستم های ناسازگار داد و ستد شود.
در دنيای واقعی، سيستم های كامپيوتری و بانك های اطلاعاتی شامل اطلاعات در فرمت های ناسازگار هستند. يكی از وقت گيرترين چالش ها برای گسترش دهندگان، انتقال اطلاعات بين چنين سيستمهايی شده است.

XML و B2B
با استفاده از XML اطلاعات تجاری می تواند روی اينترنت داد و ستد شود. در آينده ای نزديك بايد منتظر شندن خبرهای بيشتری از XML و B2B(Business to Business) باشيم.
XML می رود تا زبان اصلی برای داد و ستد اطلاعات اقتصادی بين تجارت ها، روی اينترنت بشود. امروزه تعداد زيادی از برنامه های B2B در حال گسترش است.

XML برای توزيع اطلاعات
با XML ، فايل های متنی می توانند برای توزيع اطلاعات استفاده گردند (در اينجا منظور از توزيع، انتقال و پخش اطلاعات از يك نوع سيستم به سيستمهای نوع ديگر است).
زمانی كه اطلاعات در فايل های متنی ذخيره شود، XML يك روش مستقل از سخت افزار و نرم افزار برای انتقال و توزيع اطلاعات فراهم می كند.
اين روش باعث ميشود كه ايحاد و ساخت اطلاعاتی كه برنامه های كاربردی مختلف بتوانند با آن كار كنند بسيار آسان بشود. همچنين توسعه و ارتقاء يك سيستم به سيستم عامل، سرور، برنامه كاربردی و جستجوگرهای جديد را نيز آسانتر مينمايد.

XML برای ذخيره اطلاعات
با XML فايل های متنی ميتوانند برای ذخيره اطلاعات استفاده بشوند.
XML همچنين ميتواند برای ذخيره اطلاعات در فايلها و بانك های اطلاعاتی مورد استفاده قرارگيرد. برنامه هايی ميتواند نوشته شوند كه اطلاعات را در منابع ذخيره و فراخوانی كنند و برنامه های اصلی ميتوانند برای نمايش اطلاعات استفاده شود.

XML ميتواند اطلاعات شما را مفيدتر كند
XML اطلاعات شما را برای كاربرهای بيشتری قابل دسترس ميكند.
به دليل مستقل بودن XML از سخت افزار و نرم افزار و برنامه، شما ميتوانيد اطلاعات خود را برای برنامه هايی غير از جستجوگرهای HTML هم قابل دسترس نماييد.
به اين ترتيب اطلاعات شما در همه انواع برنامه های كاربردی ديگر قابل استفاده است، برای مثال يك برنامه كاربردی ميتواند اطلاعات شما را كه در يك بانك اطلاعاتی ذخيره شده است برای نابينايان به خروجی مخصوص خود انتقال دهد.

XML و زبان های جديد
XML مادر WAP و WML است. WML كه برای دستگاه های دستی مانند موبايل ها به منظور ارتباط با اينترنت مورد استفاده قرار ميگيرد، در XML نوشه شده است.

منبع :
http://arazonline.net/docs/xml1.htm



RSS چيست ؟

گول اسم عجيبش را نخوريد. RSS فقط يک جور استاندارد است برای اطلاعاتی که حالت خبری خام دارند. خام به اين معنی که هيچ اثری از اينکه اين اطلاعات چطور بايد نمايش داده شوند نيست. تنها چيزی که مشخص شده، اين است که مثلا تيتر اين خبر يا مطلب چيست، نويسنده‌اش کيست، کی نوشته شده، لينک دايمی‌اش چيست و از اين قبيل. در واقع RSS يک توافق ساده است بر سر اينکه اين مشخصاتی را که گفتم چطور برای يک مطلب تنظيم کنيم.
تنها نکته‌ی ديگری که می‌ماند اين است که حالا اين استاندارد تنظيم مطالب خام خبری، يا همان RSS، خورش بر اساس يک استاندارد کلی‌تر برای نمايش اطلاعات خام درست شده که اسمش هست XML و خيلی شبيه به HTML است. يعنی متشکل از يک سری تگ شروع و پايان است و اطلاعاتی که بين آنها می‌آیند. البته XML خيلی کلی‌تر از HTML است و درواقع هيچ کار خاصی نمی‌کند بجز ساخت دادن به يکسری اطلاعات که می‌تواند هر چيزی باشد و برای هرچيزی استفاده شود. بنابراين مثلا من می‌توانم يک XML بسازم به دلخواه خودم برای آلبوم‌های موزيک مورد علاقه‌ام. به شکل پايين که دو آلبوم Melody AM و Khareto Bekan Az Dastam با مشخصات جژیی‌ترشان ليست شده‌اند.

به راحتی می‌شود با همين ساختار ۶۰۰ آلبوم موزيک ديگر هم به اين فايل XML اضافه کرد. حالا فرض کنيد که من روی اين استاندارد من درآوردی‌ام يک اسم خفن بگذارم مثل HDR و به بقيه هم بگويم که شما هم اگر دوست داشتنيد از استاندارد خفن HDR که برپايه‌ی XML هم هست برای فهرست کردن سی‌دی‌های موزيک‌تان پيروی کنيد. به همين سادگی است.

خب، حالا به ساختار ساده شده‌ی يک RSS (که حالا ديگر ابهتی ندارد) دقت کنيد:

می‌بينيد که بجز اطلاعات کلی وب‌لاگ، هر مطلبی هم چند مورد مشخصه دارد که همه با يک ساختار درختی خاص تنظيم شده‌اند و يک RSS ساخته‌اند. به همين راحتی.

حالا چون افراد مختلف فکرهای جديدی به ذهنشان می‌رسد که اين RSS اوليه را تکميل‌تر و بدردخبورتر کنند، به مرور ورژن‌های جديدتری از آن هم می‌آید. در نتيجه RSS هم پيشرفت می‌کند و کم‌کم ورژن‌های جديدش درمی‌آیند. منتا چون بعضی‌هايشان کمی از اين حالت اوليه‌ی RSS عادی دور می‌شوند، اسم جديدی هم روی خود می‌گذارند، مثل RDF که درواقع دقيقا کار RSS را می‌کند (يعنی به اطلاعات خبری‌شکل خام ساخت می‌دهد) اما در عين اينکه هنوز XML است، با يک شيو‌ه‌ی ديگری می‌خواهد به همان هدف واحد برسد.

حالا اينکه اين جانورهای سابقا خفن به چه دردی می‌خورند داستان ديگری است که در يک نوشته‌ی جدا به آن خواهم پرداخت.
+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:40 توسط عزیز پورابراهیم |

 XML در دات نت
xml ، يکي از مهمترين دستاوردهاي بشريت در عرصه نرم افزارطي ساليان اخير است که بدون شک بيشترين تاثير را در ارتباط با طراحي و پياده سازي برنامه هاي کامپيوتري خصوصا" در اينترنت، بدنبال داشته و خواهد داشت . XML ، يکي از استانداردهاي ارائه شده توسط کنسرسيوم وب است که زمينه استفاده از آن براي تمامي توليدکنندگان نرم افزار، فراهم شده است . XML ، بهمراه خود مجموعه اي از تکنولوژي هاي ديگر را ايجاد نموده است، بطوريکه امروزه از آن بعنوان يک خانواده بزرگ ياد مي گردد (XSLT , XSD ,DOM , XPath ,...) . بديهي است توجه به استانداردهاي فوق براي توليدکنندگان نرم افزار بسيار حايز اهميت بوده و در اين راستا ،شرکت هاي عظيم نرم افزاري بدنبال ارائه بستر مناسب براي طراحي و پياده سازي نرم افزار بر اساس واقعيت هاي موجود، خصوصا" پديده شگرف اينترنت مي باشند . ماکروسافت، بعنوان يکي از شرکت هاي عظيم نرم افزاري ،پروژه دات نت را مطرح و در نهايت آن را در اختيار علاقه مندان قرار داده است . XML ، در دات نت داراي نقشي بسيار مهم و محوري بوده و لازم است با جايگاه آن بصورت اصولي آشنا شويم . در اين مقاله، به بررسي جايگاه XML در دات نت پرداخته مي گردد .

مقدمه
XML ، يک تکنولوژي استاندارد ايده آل براي برنامه هائي است که بر روي بستر اينترنت اجراء مي گردند. ماکروسافت در پروژه دات نت ،از استادنداردهاي کنسرسيوم وب پيروي و نسخه هاي اختصاصي خود را طراحي و پياده سازي نموده است. بدين ترتيب (با توجه به تبعيت ماکروسافت از استانداردهاي کنسرسيوم وب)، مي توان اين اطمينان را بدست آورد که نرم افزارهاي توليد شده در دات نت ، قابليت ارتباط با ساير برنامه هاي توليد شده مبتني بر استانداردهاي کنسرسيوم وب را بخوبي دارا مي باشند . در محيط اينترنت، داده ها مي توانند از منابع متفاوت و به اشکال گوناگون دريافت گردند . سرويس هاي وب XML و ساير برنامه هائي که با استفاده از دات نت پياده سازي مي گردند ، مسائل و مشکلات مربوط به انجام عمليات بر روي داده هائي با فرمت هاي متفاوت و از منابع گوناگون ، را برطرف مي نمايد.

سرويس هاي وب XML
ساختار و بدنه دات نت، محيطي مناسب براي ايجاد سرويس هاي وب XML است . کاربران قادر به فراخواني سرويس ها بکمک پروتکل هاي استاندارد شده اي نظير : SOAP ، UDDI و XML مي باشند. سرويس هاي وب XML ، با استفاده از کلاس ها و Namespace هائي که توسط کنسرسيوم وب استاندارد شده اند، ايجاد مي گردند. سرويس هاي وب XML ، روشي مطلوب بمنظور اشتراک ، سازماندهي و انجام عمليات متفاوت در رابطه با داده ها مي باشند .

محيط ( پلات فرم ) دات نت
محيط دات نت، شامل مجموعه اي از محصولات است که بر اساس XML و ساير استانداردهاي اينترنت،ايجاد شده اند .محيط فوق، براي هر يک از جنبه هاي مرتبط با پياده سازي، مديريت ، استفاده ، سرويس هاي وب XML ، امکانات و راهکارهاي مناسبي را ارائه داده است . سرويس هاي وب XML ، اين امکان را به برنامه ها خواهند داد تا قادر به اشتراک اطلاعات از طريق اينترنت صرفنظر از سيستم عامل و زبان برنامه نويسي مربوطه باشند. با استفاده از XML در دات نت ، مي توان اغلب مشکلات مربوط به پياده سازي نرم افزار بر روي اينترنت را که در حال حاضر با آن مواجه هستيم ، برطرف کرد. XML ، يک راه حل جامع براي تشريح و مبادله داده هاي ساختيافته را ارائه مي نمايد .

چالش هاي موجود در زمينه بکارگيري برنامه ها در اينترنت
گسترش فعاليت هاي تجاري بر روي اينترنت باعث حضور شرکت هاي متعدد بهمراه سيستم هاي گوناگون، در کنار يکديگر شده است . با اينکه ايده انجام فعاليت هاي تجاري بر روي اينترنت نسبتا" جديد است ولي اغلب شرکت ها و سازمان ها ، زمان و هزينه زيادي را صرف اين نوع فعاليت ها و تعامل اطلاعاتي مربوطه ، مي نمايند . ارتباط داده ها با سيستم هاي موجود ، يکي از بزرگترين مسائل برنامه نويسان است( خصوصا" در موارديکه داده ها از مراکز و شعب متفاوت يک شرکت دريافت و مي بايست به سيستم هاي اصلي تغذيه گردند ) .

يکپارچگي بين برنامه هاي مختلف
دستيابي به داده ها ي مشترک بين شرکت هاي متعدد ، توسط برنامه هاي متفاوت موجود بر روي سيستم هاي عامل گوناگون ، به يک ضرورت مهم تبديل شده است . بمنظور مبادله اطلاعات بين برنامه هاي متقاضي ، مي بايست در مرحله اول داده ها، ساختيافته بوده تا زمينه استفاده از آنان فراهم گردد.برخي از داده ها در سيستم هاي هاي سلسه مراتبي، شامل سندهاي XML ، برخي ديگر در بانک هاي اطلاعاتي رابطه اي، نظير SQL Server و برخي ديگر، بصورت غيرساختيافته و در فايل هائي تخت (Flat) ذخيره شده اند .

ترجمه بين فرمت هاي داده متفاوت
يکي از بزرگترين مشکلات موجود در بکارگيري فراگير و يکپارچه برنامه هاي کامپيوتري خصوصا" بر روي بستر اينترنت ، استفاده از داده ها با فرمت هاي متفاوت، توسط اين نوع از برنامه ها است . اين مشکلات شامل موارد زير است :

فرمت هاي متفاوت XML . فايل هاي XML مي توانند از گرامرهاي متفاوتي استفاده نمايند . مثلا" گرامري، صرفا" از المان ها استفاده نموده و در گرامري ديگر ، از المان ها بهمراه خصلت هاي مربوطه استفاده مي گردد . شرکت ها و موسسات تجاري براي غلبه بر اين نوع مشکل تبديل داده ،مي توانند از تمپليت هاي استاندارد شده استفاده نمايند.

توليد XML از داده هائي با فرمت ديگر . داده ها ي موجود در هر سازمان با فرمت هاي متفاوتي نظير: EDIFACT ,ANSI ,X12 , XML , فايل هاي CSV)Comma Separated value) ، فايل هاي Tab -Separated و موارد ديگر، ذخيره شده اند. در اين راستا ، مي توان ساختاري استاندارد براي داده ها ايجاد تا زمينه استفاده از آنان براي ساير برنامه ها فراهم گردد .

معتبر سازي ساختار داده ها . يکي از مزاياي مهم استفاده از XML در برنامه ها ، ارائه روشي مطلوب بمنظور اشتراک اطلاعات است . با توجه به دريافت داده ها از منابع متفاوت، مي بايست از روشي بمنظور اطمينان از صحت و اعتبار داده ها استفاده گردد .بدين منظور و جهت غلبه بر مشکل فوق، مي توان از ابزارهاي معتبر سازي نظير Schema که در بين تمام برنامه ها و نوع داده ها استاندارد است، استفاده گردد.

جستجو و بازيابي اطلاعات
پس از دريافت داده ها از منابع متفاوت و با فرمت ها ي گوناگون ، مي بايست قادر به يافتن اقلام اطلاعاتي مورد نياز برنامه هاي با صراحت و بسرعت باشيم . خواسته فوق مي تواند مشکلات خاص خود را بدنبال داشته باشد

جستجو براي يک آيتم خاص در داده ها : برنامه ها از داده ها ئي با فرمت متفاوت و ساختاري گوناگون استفاده مي نمايند. برخي از داده ها در ساختارهاي سلسله مراتبي، برخي ديگر در ساختارهاي رابطه اي و برخي ديگر داراي ساختاري خاص نبوده و صرفا" بصورت متن ذخيره مي گردند. بدين منظور لازم است از روشي بمنظور حرکت در طول ساختار استفاده تا به نتايج مطلوب بمنظور بازيابي يک آيتم اطلاعاتي بدرستي و بسرعت دست پيدا کرد .

خلاصه سازي، ترکيب و همبستگي . پس از يافتن اطلاعات مورد نياز، مي خواهيم بر روي آنان عمليات متفاوتي را انجام دهيم . مثلا" ممکن است، قصد تنظيم يک گزارش خاص در رابطه با ميزان فروش ماهانه، وجود داشته باشد. در اين راستا مي توان، داده هاي دريافتي از منابع متفاوت را با يکديگر ترکيب و آنها را با يک فرمت خاص ذخيره و در ادامه پردازش هاي لازم را انجام داد . طراحي دات نت بر اساس استفاده از تکنولوژي محوري XML پايه گذاري شده است . با استفاده از XML ، مي توان عمليات فيلترسازي داده ها را بمنظور کاهش حجم اطلاعاتي انجام و بدين ترتيب صرفا" با داده هائي که به فعاليت مرتبط مي باشند، درگير خواهيم شد .

پردازش ( عمليات ) بر روي داده ها
بمنظور انجام عمليات بر روي داده ها، مي بايست يک ساختار، بافتار(Context) لازم را ارائه نمايد . پس از انجام عمليات بر روي داده ها ، مي بايست از ساختاري بمنظور نمايش نتايج استفاده گردد.در اين رابطه موارد زير مورد توجه خواهد بود :

تبديل داده از XML به فرمت ديگر .در صورتيکه المان ها و خصلت هاي برنامه اي که با آن کار مي شود متفاوت از ساختار XML مربوط به داده هائي باشد که از آن بعنوان منبع تامين اطلاعات ، استفاده مي گردد، مي بايست از روشي براي تبديل داده از يک گرامر XML به شکل ديگر، استفاده گردد. در صورتيکه با يک برنامه وب کار مي شود، مي بايست داده هاي ساختيافته در اسناد XML به اسناد Html بمنظور نمايش بر روي وب سايت ، تبديل گردند.

تغيير ساختار يک سند . در برخي موارد لازم است به يک سند XML المان و يا خصلتي ، اضافه و يا حذف گردد . بدين ترتيب در ساختار سند موجود تغييراتي بوجود مي آيد.

استانداردهاي کنسرسيوم وب در دات نت
امکان استفاده از XML در محيط ها و برنامه هاي متعددي وجود دارد . تحقق خواسته فوق، بکمک استانداردهائي است که توسط کنسرسيوم وب ايجاد شده است. XML در دات نت، استانداردهاي ارائه شده توسط کنسرسيوم وب را حمايت تا زمينه ارتباط متقابل بين برنامه هاي استاندارد شده ، فراهم گردد

+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:39 توسط عزیز پورابراهیم |

پیش فرض يك سيستم پرتال چيست و چگونه كار مى كند ؟

عبارت پرتال به معنى درگاه و در مى باشد . در تقيقت وظيفه يك سايت پرتال جمع آورى اطلاعات از منابع مختلف و ايجاد يك درگاه واتد براى دسترسى به كتابخانه اى از اطلاعات و خدمات دسته بندى و اختصاصى شده مى باشد . پرتال ها با اين هدف ايجاد
مى شوند كه كاربران اينترنت بتوانند گردش خود را در اينترنت از طريق يك مدخل مدرن و ساختيافته شروع نموده و هر موقع كه اراده كنند بدون هيچ مشكلى به نقطه شروع بازگردند .
در يك دسته بندى كلى عملكرد ها و قابليتهاى اصلى يك سيستم پرتال عبارتند از :
- دسترسى به اطلاعات مورد نياز
- ارتباط با ديگر كاربران
- دسترسى به برنامه هاى كاربردى مجزا
- انجام امور روزمره كارى ، شهر ى ، ادارى و ...
بنابراين يك سايت پرتال بايد علاوه بر
قابليتهاى زير بنايى همچون امنيت ، سرعت ، و دقت ، سرويسهاى متععدى نيز در اختيار كاربران و مديران سايت قرار دهد . عمده اين سرويسها عبارتند از:
1- سرويس مديريت متتوا
2- سرويس پست الكترونيك
3- سرويس كنفرانس الكترونيكى
4- سرويس جستجو
5- سرويس عضويت در سايت
6- سرويس نظر سنجى
7- سرويس تكميل و ارسال فرم هاى الكترونيكى
8- سرويس پرداخت اينترنتى
9- سرويس خبر

بايد توجه داشت كه يك پرتال موفق تنها شامل مجموعه اى از منابع اطلاعاتى نيست بلكه تركيب درستى از سرويس هاى اصلى فوق الذكر است .

انواع پرتال :- پرتال هاى شركتى : Corporate Portal
دسترسى اختصاصى به اطلاعات خاصى از يك شركت يا
كمپانى خاص را فراهم مى كند .
- پرتال هاى تجارى : Commerce Portal
از مقوله تجارت الكترونيك پشتيبانى مى كند .
- پرتال هاى شهرى : City Portal
دسترسى به خدمات و اطلاعات يك شهر را ممكن مى
سازد .
- پرتال هاى فراگير : Pervasive Portal
دسترسى از طريق تجهيزات فراگير مثل PDA را ممكن مى
سازد .
+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:38 توسط عزیز پورابراهیم |

پیش فرض پورتال چیست؟

نام پورتال ها را زیاد شنیده ایم، اما شاید برای برخی از ما این سئوال پیش آمده باشد که واقعا یک پورتال چیست؟ چه ویژگیها و خصوصیاتی دارد؟ و چه تفاوتی با یک وب سایت دارد؟ ترجمه کلمه Portal به فارسی در فرهنگهای لغت "دریچه"، "درگاه" و "مدخل" ذکر شده اما کلمه پورتال در تکنولوژی اطلاعات معنی متفاوتی دارد. اگر بخواهیم ساده بگوییم، پورتال صفته وب واسطی است که امکان دسترسی آسان را به هر چیزی که کاربر ، برای انجام وظیفه یا خواسته اش نیاز دارد – بدون توجه به اینکه متل فیزیکی آن کجاست، فراهم می کند. به بیان دیگر پورتال "درگاهی" است به دنیایی مجازی که کاربر می تواند از طریق امکانات فراهم شده در آن، تمامی نیازهای خود را براورده کند. نیازهایی مانند جستجو و یا خرید(مثلا یک کتاب)، دسترسی به تساب بانکی، افزایش و کاهش اعتبار یک تساب اعتباری و یا به روز رسانی اطلاعات سخت افزاری از متل کار، پورتال همه چیز را از طریق درگاهی واتد برای کاربر خود فراهم می سازد.

ویژگیهای اصلی یک پورتال عبارت اند از:

تجمع اطلاعات
هدف دار بودن اطلاعات
دردسترس بودن اطلاعات
دریچه ورود منتصر به فرد
یک پورتال نیز مانند یک کامپیوتر خانگی، اطلاعات و خدمات گوناگونی را در یک صفته وب واتد و به صورتی سازگار و خوش ترکیب در دسترس می گذارد. گاهی به این صفته web top هم گفته می شود. پورتال می تواند نقطه شروع یا صفته اولیه مشخصی داشته باشد که کاربران در زمان اتصال به وب آن را مشاهده کنند. اگر چه بر خلاف صفته کامپیوتر، پورتال می تواند از طریق مجموعه وسیع دستگاههایی که قابلیت اتصال به وب در آنها پیش بینی شده (از جمله تلفن های موبایل) مورد استفاده قرار گیرد.

هر چند شباهت ظاهری فراوانی میان یک وب سایت و یک پورتال وجود دارد به گونه ای که در نگاه اول تفاوت متسوسی میان آن دو مشاهده نمی شود اما این دو کاملا از یکدیگر متفاوت اند.سوال اینجاست که به طور مشخص تفاوت آن دو در چیست؟ در پاسخ به این سوال باید گفت ویژگیهای زیر در یک پورتال آن را از یک وب سایت متمایز می کند:

درگاه ورود منفردی که از طریق آن می توان به مجموعه منابع مرتبط با پورتال دست یافت.
نمایش هدفدار اطلاعات با استفاده از تجربیات کاربر.
دسترسی تقسیم بندی شده به انواع داده و اطلاعات گروه بندی شده.
در اختیار گذاشتن امکان ارتباط و همکاری میان تمامی کاربران و استفاده کنندگان پورتال.
امکان پیوستن به نرم افزارها و سیستم های نرم افزاری که گردش کاری مشخص و تعریف شده ای دارند.
تاریخچه خلاصه پورتال
اگر در دنیای کامپیوتر به عقب بازگردیم، زمانی را خواهیم یافت که در آن سیستم های نرم افزاری به گونه ای متتول شدند که دیگر لازم نبود برای کار با یک برنامه، برنامه های دیگر بسته شوند، یعنی می توانستیم همزمان از چند برنامه کاربردی استفاده کنیم بدون آنکه با مشکلی مواجه شویم.امکانی که قبل از آن وجود نداشت. تاریخچه پورتال ها از همان زمان آغاز شد و نسلهای تکامل یافته آنها یکی پس از دیگری پا به عرصه دنیای اطلاعات گذاشتند.

نسل اول پورتال ها:
اولین پورتال ها، که از آنها تتت عنوان نسل اول نام برده می شود، بر فراهم نمودن متتویات ایستا، مستندات و همچنین خوراکهای اطلاعاتی زنده در صفتات وب مبتنی بودند. مثالهای نمونه این نسل سایت های yahoo یا Excite است. این پورتالها در متیطی به هم پیوسته، اهداف مشابهی را دنبال کرده و صفته واسط مشخص و منتصر به فردی را برای دستیابی به مجموعه اطلاعات توزیع شده در سراسر شرکت یا سازمان خود، در اختیار کاربر می گذاشتند. این اطلاعات معمولا شامل اخبار شرکت، شرایط و فرم های استخدام، اطلاعاتی مربوط به کارکنان و چگونگی ارتباط با آنها، مستندات رسمی و سیاست های اعلام شده شرکت و همچنین لینک های ارتباطی مفید بود.

نسل دوم پورتال ها :
نسل دوم پورتال ها بر اطلاعات مشخص تر و نرم افزارها متمرکز بودند. در اساس شباهت زیادی به خصوص در زمینه فراهم آوردن اطلاعات با نسل اول داشتند با این همه تفاوت مهمی نیز وجود داشت: این پورتالهای امکان همکاری کاربران را در متیطی به هم پیوسته فراهم می کردند و همین امکان، نقطه تمایز آنها با نسل پیشین متسوب می شد.

پورتال های نسل دوم قابلیت همکاری متقابل را در ادارات مجازی برای تیم های کاری و به منظور انجام وظایفشان فراهم می ساختند. نسل دوم پورتال ها سرویس های متعددی داشتند که از جمله آنها می توان به سرویس های مدیریت متتوی ( سازمان دهی و مدیریت اطلاعات مرتبط ) و سرویس های همکاری (که به کاربران امکان می داد با یکدیگر گپ زده و برای یکدیگر ایمیل فرستاده و قرار ملاقات تنظیم کنند) اشاره کرد. در این پورتال ها قابلیت تعریف گروه های کاربری نیزفراهم آمده بود. به بیان دیگر این پورتال ها سازو کار همکاری داخلی را در یک سازمان فراهم می ساختند.

نسل سوم پورتال ها:
نسل سوم با هدف ایجاد فضای مجازی تجارت الکترونیک (E-Business ) بوجود آمد. پورتال های نسل سوم به عنوان واسط ارتباطی کارمندان، تهیه کنندگان، تولید کنندگان و مشتریان قلمداد می شوند. ویژگی فوق العاده این پورتالها امکان مرتبط شدن نرم افزارهای مستقر در سرورهای مختلف است. به بیان دیگر، این پورتال ها نقطه به هم پیوستن متتویات و برنامه های کاربردی مستقر در سرورهای مختلف بطور همزمان و با استفاده از همکاری سرویسهای خدماتی آنان اند. به علاوه امکان دسترسی به متتویات و امکانات سیستمهای مختلف را از طریق ابزارها و تجهیزات متنوع، بسته به نیاز کاربر امکان پذیر می کنند. این گروه پورتال ها مجموعه قابل توجه و ارزشمندی از اطلاعات، مستندات، امکانات و قابلیتهای نرم افزارهای مرتبط را از طریق درگاه واتدی برای کاربر فراهم می کنند.

به علاوه، این پورتالها به صورتی خودکار و بر اساس نقش کاربران هدفمند شده و ویژگیهایی خاص آنها می یابند. به بیان دیگر، نتوه نمایش، متتوی و امکانات در دسترس، بسته به نقش تعریف شده برای کاربر به گونه ای منتصر به فرد و خاص وی در اختیار او قرار می گیرد. کلید توسعه آینده این نسل از پورتال ها،ایجاد چهارچوب های کاری باز ( از قبل تعریف نشده ) برای سرویس های عمومی خواهد بود.



انواع پورتال ها
یک سازمان مجموعه متنوعی از کاربران دارد که از جمله آنها می توان به مشتریان، شرکا، کارمندان اشاره کرد. همه این کاربران علاقه مندند از اطلاعات و خدمات آن سازمان استفاده کنند. کاملا آشکار است که هر کدام از آنها نیازهای خاص و اغلب متفاوتی دارد. برای پاسخگویی به این تنوع، انواع مختلف پورتال ایجاد شده و مورد استفاده قرار می گیرد. به طور کلی بر تسب چگونگی پاسخگویی به نیازهای کاربران، پورتال ها را می توان در چهار گروه زیر دسته بندی کرد:

(Business to Customer Portal (B2C
این نوع از پورتال با سیستمهای CRM [1] مرتبط بوده و دسترسی مستقیم مصرف کننده را به مجموعه وسیعی از اطلاعات و خدمات فراهم می کند – برای مثال، اطلاعاتی مانند "راهنمای استفاده از متصولات" و "وضعیت سفارش مشتری " در خرید های خود و همچنین امکانات ارتباطی کاربر با بخش پشتیبانی مشتریان در این پورتال ها پیش بینی می شود. مانند هر پورتال دیگری، یک پورتال B2C معمولا در قد و قواره ای ارائه می شود که نیازهای مشتریان خود را پاسخ دهد.

(Business to Business Portal (B2B
نوع دیگر پورتال در زنجیره مدیریت منابع شکل می یابد[2]. در این نوع پورتال اطلاعات لازم برای تولید کنندگان،تهیه کنندگان، نمایندگی ها و همچنین توزیع کنندگان، به گونه ای مناسب و دسته بندی شده جمع آوری و در اختیار آنان قرار می گیرد. نمونه عمومی پورتال B2B - برای مثال، یک شریک تجاری را قادر می کند تا به بخشهایی از اطلاعات و امکانات مانند سفارش خرید و صدور فاکتور دسترسی داشته و از امکانات این بخشها استفاده کند. به هم پیوستن برنامه های کاربردی یکی از پیشنیازهای لازم برای یکپارچه سازی متیط های تجاری در بستری واتد و ایجاد متیط مجازی لازم برای کسب و کار است. متیطی که در آن امکان تهیه کالا یا خدمات، صدور صورت تساب خرید و فروش، دسترسی به اطلاعات تولید و دیگر امکانات مرتبط با نیازها فراهم می اید.

B2E
این پورتال ها که اغلب با عنوان پورتال های اینترانتی شناخته می شوند معمولا به منظور تجمیع، انتشار و به اشتراک گذاری اطلاعات و خدمات به پرسنل یک سازمان ایجاد می شوند. B2E ها به دو دسته اصلی تقسیم می شوند:

پورتالهای کارکنان که امکان دسترسی به متتویات به هم پیوسته ای مانند اخبار شرکت، اطلاعات سخت افزاری و نرم افزاری، موتور جستجو و منابع فنی و گزارشها را در اختیار می گذارد. اطلاعات این نوع پورتال معمولا در دسترس همه کارکنان یک سازمان قرار می گیرد. این پورتال کارکنان و شاغلین یک سازمان را قادر می کند تا از طریق گپ و گروههای گفتگو با یکدیگر در تماس بوده و با یکدیگر همکاری کنند. عموما، این پورتال ها امکاناتی نظیر ثبت نام در یک کلاس و یا یک اردو را نیز در اختیار کاربر خود قرار می دهند. به علاوه کاربران این پورتال معمولا می توانند اطلاعات شخصی خود مانند نام و کلمه عبور را تغییر دهند.
Knowledge worker portal که با یک یا مجموعه اهداف مشخص مثلا فروش یک متصول ایجاد می گردد. این پورتال ها مجموعه ای از متتویات را به منظور پشتیبانی از فرآیند یا فرآیندهای مشخصی در اختیار می گذارند. برای مثال یک برنامه تکنسین خودکار ممکن است نیازمند منابعی از برنامه های کاربردی دیگر مثلا برنامه های تعمیر و نگهداری باشد تا بتواند اطلاعات لازم در زمینه تاریخچه بازبینی و تعمیر، زمان بندی تجهیز و یا قطعات و لوازم مورد نیاز برای تعمیر آن را کسب کند.
پورتال های عمومی ( Mega Or Public Portal )
این پورتال ها با عنوان پورتال های اینترنتی شناخته می شوند و مهمترین ویژگی آنها فراوانی مخاطبانشان است. این نوع از پورتال ها نیز در دو گروه دسته بندی می شوند:

پورتال های عمومی که تمامی کاربران اینترنت را مخاطب قرار می دهند (برای مثال Yahoo ، Excite، Google و مانند آن)
پورتال های خاص ( صنعتی، بازرگانی، خدماتی ) که به آنها پورتال های عمودی نیز گفته شده و مخاطبان متدود و مشخصی دارند ( مانند پورتال های بانکها، سازمانهای دولتی، وزارتخانه ها و ... )
باید توجه داشت که یک پورتال می تواند از پیوند انواع پورتال های دیگر ایجاد شود. به علاوه همانطور که یک سازمان کاربران متنوعی دارد، می تواند ( و گاهی نیز لازم است ) که پورتال های مختلفی برای پشتیبانی از نیازهای آنان داشته باشد.



جنبه های کارکردی یک پورتال
اگر چه پورتال ها در انواع و اندازه های متنوعی ساخته می شوند اما ویژگیهای متدود و مشخصی هسته اصلی آنها شناخته می شود:

هر پورتال اطلاعات و خدمات را یکجا و در یک متل جمع آوری می کند.
هر پورتال می تواند در اندازه لازم برای شخص و یا گروه سازمان دراید.
هر پورتال در هر زمان و از هر مکانی قابل دسترس است.
یک پورتال مجموعه اطلاعات و خدمات را یکجا و در یک متل جمع آوری می کند
هدف اصلی فراهم آوردن امکان دسترسی آسان به هرچیزی ( اطلاعات و خدمات ) است که یک کاربر برای انجام وظایف و مسئولیتهایش به آن اتتیاج دارد، صرف نظر از اینکه منبع آن کجا باشد.

اطلاعاتی که یک پورتال فراهم می کند

داده های ساخت یافته. داده هایی که به صورتی سازمان یافته اند که امکان جستجوی آسان آنها وجود داشته باشد ( اغلب به صورت سلسله مراتب و بر اساس کلمات کلیدی). فهرست الفبایی کتابهای یک کتابخانه مثال خوبی از داده های ساخت یافته است. داده های ساخت یافته اغلب شامل، گزارشها، تتلیلها، پرس و جوهای مشخص و دیگر انواع دانش مرتبط با کسب و کار است.
داده های بدو ن ساختار، که جستجو در آنها معمولا دشوار بوده و خارج از یک بانک اطلاعاتی قرار دارند. از این نوع داده می توان متن ها، صوت، تصویر و یا گرافیک و اشکالی مانند مستندات Office ، memos ، ایمیل، قرارهای ملاقات را مثال زد.
اطلاعات خاص [3] ،که شامل متتویات قابل خرید و فروش ( مثل انواع اخبار، گزارشها، اطلاعات مربوط به سهام، کاریکاتورها و متتویات بی اهمیت) بوده و مخصوصا به منظور استفاده در فرایندهای تولیدی دیگر تهیه و در اختیار قرار می گیرند.
خدماتی که به وسیله یک پورتال فراهم می شود

همکاری، (با عنوان خدمات ارتباطی نیز شناخته می شود ) و به کاربران اجازه می دهد تا با یکدیگر گپ بزنند، در بتثهای گروهی مشارکت داشته باشند، مطالب خود را در اختیار دیگران قرار دهند و...
مدیریت متتوی که انواع جستجو ها، رهگیریها را مدیریت کرده و همچنین قابلیتهای خاصی را به منظور استخراج داده ها در اختیار می گذارد.
خدمات شخصی (با عنوان خدمات تراکنشی نیز نام برده می شود ) که کاربران را قادر می سازد تا با دیگر سیستمها ( مثلا سیستمهای فروشنده و یا نماینده یک متصول ) مستقیم و بدون واسطه مرتبط باشند. معمولا این قابلیت به کاربر امکان می دهد تا برای مثال فعالیتهای زیر را انجام دهد:

- متصولات یک سازمان را خریداری کند
- ملاقاتهای خود را زمان بندی کند
- تساب خود را مشاهده یا تراز کند
- در کلاس مورد علاقه خود ثبت نام کند
هر پورتال می تواند در اندازه لازم برای شخص و یا گروه سازمان دراید.
یکی از ویژگیهای جالب یک پورتال شکل و عملکرد متفاوت آن برای اشخاص مختلف است. یکی از روشهایی که به این منظور استفاده می شود، متناسب سازی و تغییر شکل و قابلیتهای پورتال بر تسب خواسته ها یا تجارب شخص یا گروه استفاده کننده از آن است. به همین دلیل است که کاربران متفاوت شکل متفاوتی از یک پورتال مشاهده کرده و اطلاعات و خدمات متفاوتی در اختیار ایشان قرار می گیرد:

امکان تغییر بر تسب خواسته ها بر تسب تجارب شخص یا گروه عموما personalize نامیده می شود و به این معنی است که در پورتال امکان انتخاب نتوه نمایش متتوی پیش بینی شده است. اغلب این انتخاب بصورت خودکار و بر اساس نقش کاربر (مثلا پست سازمانی وی) انجام می شود. برای مثال وقتی کارمند فروش به سیستم وارد می شود، به صورت خودکار فهرستی از جدیدترین متصولات برای وی به نمایش در می آید. با این همه در بعضی از پورتال ها انتخاب متتوی نمایش داده شده به کاربر متول می شود تا در زمان ورود به پورتال خود آن را انتخاب کند.
تغییر و Customize شدن یک پورتال شامل انتخاب چگونگی شکل ظاهری آن (مثلا رنگ و چیدمان صفته)،مدل مرورگر و متل نمایش متتویات روی صفته است. یک پورتال می تواند تتی برچسب و عنوان تجاری مشخصی داشته و ظاهر متفاوتی را برای انواع کاربرانش به نمایش گذارد.
این دو ویژگی به پورتال امکان می دهد تا مجموعه مشخص و تعریف شده ای از کاربران (مثلا مشتریان، شرکا و یا کارکنان) را هدف قرار دهد. بعضی از پورتال ها تتی می توانند برای هر کاربر مشخص، شکل و شمایل متفاوتی از خود نشان دهند.

یک پورتال در هر زمان و از هرمکانی همیشه در دسترس است
از آنجا که پورتال ها برای استفاده در متیط وب ساخته می شوند، در هر زمان و از هر مکانی با استفاده از یک مرورگر استاندارد وب در دسترس اند. انواع تجهیزات مبتنی بر وب نیز از جمله تلفنهای موبایل، دسترسی به پورتال ها را به غایت آسان و مفید کرده اند.
+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:38 توسط عزیز پورابراهیم |

خلاصه تاریخچه پرتال

اگر در دنیای کامپیوتر به عقب بازگردیم، زمانی را خواهیم یافت که در آن سیستم های نرم افزاری به گونه ای متحول شدند که دیگر لازم نبود برای کار با یک برنامه، برنامه های دیگر بسته شوند، یعنی می توانستیم همزمان از چند برنامه کاربردی استفاده کنیم بدون آنکه با مشکلی مواجه شویم.امکانی که قبل از آن وجود نداشت. تاریخچه پرتال ها از همان زمان آغاز شد و نسلهای تکامل یافته آنها یکی پس از دیگری پا به عرصه دنیای اطلاعات گذاشتند.
 

نسل اول پرتال ها

اولین پرتال ها، که از آنها تحت عنوان نسل اول نام برده می شود، بر فراهم نمودن محتویات ایستا، مستندات و همچنین خوراکهای اطلاعاتی زنده در صفحات وب مبتنی بودند. مثالهای نمونه این نسل سایت های yahoo یا Excite است. این پرتالها در محیطی به هم پیوسته، اهداف مشابهی را دنبال کرده و صفحه واسط مشخص و منحصر به فردی را برای دستیابی به مجموعه اطلاعات توزیع شده در سراسر شرکت یا سازمان خود، در اختیار کاربر می گذاشتند. این اطلاعات معمولا شامل اخبار شرکت، شرایط و فرم های استخدام، اطلاعاتی مربوط به کارکنان و چگونگی ارتباط با آنها، مستندات رسمی و سیاست های اعلام شده شرکت و همچنین لینک های ارتباطی مفید بود.

نسل دوم پرتال ها

نسل دوم پرتال ها بر اطلاعات مشخص تر و نرم افزارها متمرکز بودند. در اساس شباهت زیادی به خصوص در زمینه فراهم آوردن اطلاعات با نسل اول داشتند با این همه تفاوت مهمی نیز وجود داشت: این پرتالهای امکان همکاری کاربران را در محیطی به هم پیوسته فراهم می کردند و همین امکان، نقطه تمایز آنها با نسل پیشین محسوب می شد.

پرتال های نسل دوم قابلیت همکاری متقابل را در ادارات مجازی برای تیم های کاری و به منظور انجام وظایفشان فراهم می ساختند. نسل دوم پرتال ها سرویس های متعددی داشتند که از جمله آنها می توان به سرویس های مدیریت محتوی ( سازمان دهی و مدیریت اطلاعات مرتبط ) و سرویس های همکاری (که به کاربران امکان می داد با یکدیگر گپ زده و برای یکدیگر ایمیل فرستاده و قرار ملاقات تنظیم کنند) اشاره کرد. در این پرتال ها قابلیت تعریف گروه های کاربری نیزفراهم آمده بود. به بیان دیگر این پرتال ها سازو کار همکاری داخلی را در یک سازمان فراهم می ساختند.

نسل سوم پرتال ها

نسل سوم با هدف ایجاد فضای مجازی تجارت الکترونیک (E-Business ) بوجود آمد. پرتال های نسل سوم به عنوان واسط ارتباطی کارمندان، تهیه کنندگان، تولید کنندگان و مشتریان قلمداد می شوند. ویژگی فوق العاده این پرتالها امکان مرتبط شدن نرم افزارهای مستقر در سرورهای مختلف است. به بیان دیگر، این پرتال ها نقطه به هم پیوستن محتویات و برنامه های کاربردی مستقر در سرورهای مختلف بطور همزمان و با استفاده از همکاری سرویسهای خدماتی آنان اند. به علاوه امکان دسترسی به محتویات و امکانات سیستمهای مختلف را از طریق ابزارها و تجهیزات متنوع، بسته به نیاز کاربر امکان پذیر می کنند. این گروه پرتال ها مجموعه قابل توجه و ارزشمندی از اطلاعات، مستندات، امکانات و قابلیتهای نرم افزارهای مرتبط را از طریق درگاه واحدی برای کاربر فراهم می کنند.

به علاوه، این پرتالها به صورتی خودکار و بر اساس نقش کاربران هدفمند شده و ویژگیهایی خاص آنها می یابند. به بیان دیگر، نحوه نمایش، محتوی و امکانات در دسترس، بسته به نقش تعریف شده برای کاربر به گونه ای منحصر به فرد و خاص وی در اختیار او قرار می گیرد. کلید توسعه آینده این نسل از پرتال ها،ایجاد چهارچوب های کاری باز ( از قبل تعریف نشده ) برای سرویس های عمومی خواهد بود.

انواع پرتال ها

یک سازمان مجموعه متنوعی از کاربران دارد که از جمله آنها می توان به مشتریان، شرکا، کارمندان اشاره کرد. همه این کاربران علاقه مندند از اطلاعات و خدمات آن سازمان استفاده کنند. کاملا آشکار است که هر کدام از آنها نیازهای خاص و اغلب متفاوتی دارد. برای پاسخگویی به این تنوع، انواع مختلف پرتال ایجاد شده و مورد استفاده قرار می گیرد. به طور کلی بر حسب چگونگی پاسخگویی به نیازهای کاربران، پرتال ها را می توان در چهار گروه زیر دسته بندی کرد:


Business to Customer Portal (B2C)

این نوع از پرتال با سیستمهای CRM[1][1] مرتبط بوده و دسترسی مستقیم مصرف کننده را به مجموعه وسیعی از اطلاعات و خدمات فراهم می کند – برای مثال، اطلاعاتی مانند "راهنمای استفاده از محصولات" و "وضعیت سفارش مشتری " در خرید های خود و همچنین امکانات ارتباطی کاربر با بخش پشتیبانی مشتریان در این پرتال ها پیش بینی می شود. مانند هر پرتال دیگری، یک پرتال B2C معمولا در قد و قواره ای ارائه می شود که نیازهای مشتریان خود را پاسخ دهد.

Business to Business Portal (B2B)

نوع دیگر پرتال در زنجیره مدیریت منابع شکل می یابد[2][2]. در این نوع پرتال اطلاعات لازم برای تولید کنندگان،تهیه کنندگان، نمایندگی ها و همچنین توزیع کنندگان، به گونه ای مناسب و دسته بندی شده جمع آوری و در اختیار آنان قرار می گیرد. نمونه عمومی پرتال B2B - برای مثال، یک شریک تجاری را قادر می کند تا به بخشهایی از اطلاعات و امکانات مانند سفارش خرید و صدور فاکتور دسترسی داشته و از امکانات این بخشها استفاده کند. به هم پیوستن برنامه های کاربردی یکی از پیشنیازهای لازم برای یکپارچه سازی محیط های تجاری در بستری واحد و ایجاد محیط مجازی لازم برای کسب و کار است. محیطی که در آن امکان تهیه کالا یا خدمات، صدور صورت حساب خرید و فروش، دسترسی به اطلاعات تولید و دیگر امکانات مرتبط با نیازها فراهم می اید.


B2E

این پرتال ها که اغلب با عنوان پرتال های اینترانتی شناخته می شوند معمولا به منظور تجمیع، انتشار و به اشتراک گذاری اطلاعات و خدمات به پرسنل یک سازمان ایجاد می شوند. B2E ها به دو دسته اصلی تقسیم می شوند:

· پرتالهای کارکنان که امکان دسترسی به محتویات به هم پیوسته ای مانند اخبار شرکت، اطلاعات سخت افزاری و نرم افزاری، موتور جستجو و منابع فنی و گزارشها را در اختیار می گذارد. اطلاعات این نوع پرتال معمولا در دسترس همه کارکنان یک سازمان قرار می گیرد. این پرتال کارکنان و شاغلین یک سازمان را قادر می کند تا از طریق گپ و گروههای گفتگو با یکدیگر در تماس بوده و با یکدیگر همکاری کنند. عموما، این پرتال ها امکاناتی نظیر ثبت نام در یک کلاس و یا یک اردو را نیز در اختیار کاربر خود قرار می دهند. به علاوه کاربران این پرتال معمولا می توانند اطلاعات شخصی خود مانند نام و کلمه عبور را تغییر دهند.

· Knowledge worker portal که با یک یا مجموعه اهداف مشخص مثلا فروش یک محصول ایجاد می گردد. این پرتال ها مجموعه ای از محتویات را به منظور پشتیبانی از فرآیند یا فرآیندهای مشخصی در اختیار می گذارند. برای مثال یک برنامه تکنسین خودکار ممکن است نیازمند منابعی از برنامه های کاربردی دیگر مثلا برنامه های تعمیر و نگهداری باشد تا بتواند اطلاعات لازم در زمینه تاریخچه بازبینی و تعمیر، زمان بندی تجهیز و یا قطعات و لوازم مورد نیاز برای تعمیر آن را کسب کند.

پرتال های عمومی ( Mega Or Public Portal )

این پرتال ها با عنوان پرتال های اینترنتی شناخته می شوند و مهمترین ویژگی آنها فراوانی مخاطبانشان است. این نوع از پرتال ها نیز در دو گروه دسته بندی می شوند:

· پرتال های عمومی که تمامی کاربران اینترنت را مخاطب قرار می دهند (برای مثال Yahoo ، Excite، Google و مانند آن)

· پرتال های خاص ( صنعتی، بازرگانی، خدماتی ) که به آنها پرتال های عمودی نیز گفته شده و مخاطبان محدود و مشخصی دارند ( مانند پرتال های بانکها، سازمانهای دولتی، وزارتخانه ها و ... )

باید توجه داشت که یک پرتال می تواند از پیوند انواع پرتال های دیگر ایجاد شود. به علاوه همانطور که یک سازمان کاربران متنوعی دارد، می تواند ( و گاهی نیز لازم است ) که پرتال های مختلفی برای پشتیبانی از نیازهای آنان داشته باشد.

جنبه های کارکردی یک پرتال

اگر چه پرتال ها در انواع و اندازه های متنوعی ساخته می شوند اما ویژگیهای محدود و مشخصی هسته اصلی آنها شناخته می شود:

vهر پرتال اطلاعات و خدمات را یکجا و در یک محل جمع آوری می کند.

vهر پرتال می تواند در اندازه لازم برای شخص و یا گروه سازمان دراید.

vهر پرتال در هر زمان و از هر مکانی قابل دسترس است.


هدف اصلی فراهم آوردن امکان دسترسی آسان به هرچیزی ( اطلاعات و خدمات ) است که یک کاربر برای انجام وظایف و مسئولیتهایش به آن احتیاج دارد، صرف نظر از اینکه منبع آن کجا باشد.
+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:37 توسط عزیز پورابراهیم |

وب پورتال چیست؟
توماج فریدونی - ITIran :قطعا مطلع هستید که اولین بار شبکه غیر محلی در سال 1960 توسط آژانس پروژهاي تحقيقاتي پيشرفته سازمان دفاع آمريکا با نام "آرپانت" متولد شد.

در آن زمان تنها هدف از طراحی شبکه این شبکه حول این محور بود تا هر کامپيوتر به دو کامپيوتر متصل شود و پيامهاي ارسالي از يک نقطه شبکه به هرنقطه ديگر مي توانستند از مسيرهاي مختلفي بگذرند که با گذشت زمان و ارتباط این شبکه با چندین شبکه ارتباطی دیگر به مفهوم جدی تری به نام اینترنت دست یافت.

احتمالا آن زمان کمتر کسی باور می کرد که این شبکه به چنان عظمتی دست می یابد که مدیریت و کنترل آن چه در بخش مدیریتی و چه در بخش فنی نیاز به هزینه و متخصصین ویژه ای دارد که دلیل این ادعا چیزی نیست جز جای خالی وب!

اما با نظریه World Wide Web که امروز میلیون ها بار اطلاعات اینترنت توسط انواع مروگر ها بدست میلیون ها کاربر اینترنت مرور می شود علم اینترنت پا به مرحله جدیدی گذاشته است. مرحله ای پیچیده با کاربری فوق العاده آسان که همین آسان بودن دسترسی بعضا برخی از کاربران را به اشتباه وارد می کند که وب همان اینترنت است!

هدف از نظریه World Wide Web چیزی نبود جز دسترسی آسان و سریع به خدمات و محتویات اینترنتی از طریق یک Application خاص با قابلیت های مشخص که با ورود این Application ها گام جدید تری در عرصه سرویس دهی اینترنتی و نیز طبقه بندی اطلاعات در اینترنت به وجود آمد و این رقابت تا جایی رسید که کیفیت، ظاهر و امنیت مرورگر ها نیز برای کاربران مهم تلقی شد و بازار گرمی را برای سازندگان مرورگر ها به وجود آورد.

گسترش اطلاعات و سرویس دهی اینترنتی توسط وب سایت ها چنان رشد چشمگیری داشته است که بعید است کسی نام تمامی وب سایت های موجود در اینترنت را از حفظ باشد چرا که می بایست هر روز نام های کوتاه و بلند 20000 سایت جدید را بخاطر بسپارد!

اگر توجه داشته باشید با حیات وب، کاربری آسان انگیزه اصلی کاربران اینترنت جهت استفاده از این شبکه می باشد پس قطعا دور از ذهن است یک کاربر اینترنتی راضی شود برای استفاده از چندین خدمات مورد نیازش هر روز به چندین سایت سرکشی کند و برای استفاده از آنها مجبور به ثبت نام های تکراری و نیز محافظت از چندین شناسه و رمز عبور متفاوت باشد، از همین رو وب ناخواسته به نسل جدیدی از سرویس دهی رسید که امروز همگی آنرا با نام وب پورتال می شناسند.

برای خواندن مقاله بر روی ادامه مطلب کلیک کنید.


به نظر من برای اینکه بتوانیم بهترین و علمی ترین تعریف را از وب پورتال داشته باشیم بهتر است به بررسی واژه به واژه این کلمه بپردازیم، کلمه ای که خود در برگیرنده بسیاری از مفاهیم مهم روز ICT و تجارت است تا جایی که می توان گفت وب پورتال ها شرکت های نفت اینترنتی هستند!

در بالا با مفهوم Web به خوبی آشنا شدیم و دریافتیم که وب عامل دسترسی آسان به خدمات و محتویات مجازی، در یک کلام اینترنت است. همچنین در مورد واژه Portal می توان گفت، منظور ما یک Gateway و یا Doorway یا همان شاهراه و دروازه است، دروازه ای که به تبعیت از ذات اصلی خود یعنی همان دسترسی آسان، دسترسی ما را به وب و در نهایت اینترنت راحتتر از پیش می کند و محلی می شود برای به اشتراک گذاری خدمات و محتویات توسط چند وب سایت توانمند و مورد نیاز.

آنچه از این تعریف بر می آید بر ما روشن می سازد که وب پورتال یک محصول خاص نیست و همانند وب سایت یک ماهیت استاندارد و تشکیل شده از دو زیر ساخت خدمات (Services) و محتویات(Content) است که این ماهیت خروجی چندین استاندارد, دیتا و engine خاص زیر نظر یک یا چند مجموعه نظارتی مشخص و همگام است.

معمولا تعریف بالا اکثر کاربران غیر مسلط را به اشتباه می کشاند که هر وب سایت پر از لینک و یا یک وب سایت همه کار همان پورتال است چرا که برابر تعریف بالا می تواند دسترسی کاربران را به سایر وب سایت ها آسانتر کند که می توان با اطمینان گفت این تعبیر کاملا غلط و دور از تعاریف استاندارد می باشد چرا که همانگونه که در بالا نیز بیان کردیم وب پورتال یک ماهیت تحت وب است که ارائه دهنده خدمات و محتویات به صورت یکجاست.

هدف وب پورتال ها طبقه بندی کردن اطلاعات و نیز تعریف دسترسی آسان به آنهاست که برای جلوگیری از پراکندگی چگونگی یافتن، دسترسی و نگهداری اطلاعات توسط کاربر و به صورت خلاصه جلوگیری از سردرگمی ایشانٰ، به صورت همزمان سرویس های اصلی و جانبی را در اختیار کاربران قرار می دهند که مجموع این سرویس ها نیز در یک بستر اشتراکی (Account) نقطه مشترک دارند که اصلی ترین نقطه مشترک آنها ID و Profile است.

اکثر وب پورتال ها در چند آیتم نقاط مشترک و کلیشه ای دارند که به ترتیب عبارتند از:
• تنوع سرویس دهی
• چگونگی سرویس دهی
• نحوه دسترسی کاربر به سرویس
• درآمد زایی و Business plan
• تامین اطلاعات

و درواقع همین چند آیتم کوتاه اما حساس هستند که سند تضمین رشد و حیات وب پورتال ها که در نهایت منجر به یک رقابت تنگاتنگ میان هم نوعان خود میشود را امضا کرده اند!
سرویس های یک وب پورتال تنوع بیشتری به سرویس های یک وب سایت را دارند، چرا که فعالیت وب سایت ها اکثر به صورت تخصصی بوده و موضوعیت آنها اغلب حول یک و یا چند آیتم مشخص و محدود که نهایتا توجیه کننده یک مورد مشخص است می گردد که همین امر سبب محدود بدون گروه های کاربری وب سایت های می شود.
اما یک وب پورتال با تنوعی که در سرویس های آن ذکر شد می تواند میزبان اکثر اقشار جامعه با هر نوع طرز فکر، سلیقه و نهایتا نیازی باشد.
از مهم ترین سرویس های اصلی یک پورتال می توان به موارد زیر اشاره برد:
ماشین جستجو
ایمیل
فضای رایگان و یا وبلاگ
ارائه اطلاعات مختلف (مسافرت، پزشکی و...)
اخبار
دانلود (فرمت های مختلف)
گفتگو و Chat
همچنین وب پورتال ها سعی می کنند سرویس های مطلوب و به روزی (At time) را در کنار سایر سرویس های اصلی و کلیشه ای در اختیار کاربران خود قرار دهند تا با ربودن ذهن کاربران و جلب نظر عده کثیرتری از کاربران مشتاق توسط سرویس های جانبی و جذاب صاحب اکثر سهام بازار صنفی خود شوند.

منظور از چگونگی سرویس دهی نیز نوع در اختیار گذاشتن خدمات به کاربران است. وب پورتال ها برای اینکه مشتریان خود را از دست ندهند و در نهایت پیروز از رقابت بازار اطراف خود بیرون بیایند سعی می کنند اصلی ترین سرویس ها و نیز عمومی ترین ها را به صورت رایگان در اختیار کاربران قرار دهند.

از طرف دیگر، جدا از رایگان بودن امتیاز استفاده از خدمات وب پورتال ها، اکثر قریب به اتفاق این خدمات همگی در یک زیر ساخت با هم مشترک هستند و این بدان منظور است که جدا از پیچیدگی مراحل و دفعات شخصی سازی در وب پورتال ها؛ در وقت و کنترل کاربر نسبت به موقعیت خود حرکتی صورت گرفته شده باشد.

مشترک بودن زیر ساخت سرویس های یک وب پورتال Basic account and cardinal ID)) امورات دسترسی و امنیت کاربر را تا حد بسزایی سامان می بخشد و در این شرط کاربر از ثبت نام های چند باره در یک یا چند وب سایت ( یا وب پورتال)، سردرگمی بین چند شناسه و رمز متفاوت، Cookies, cashed و نیز امنیت پایین دور می ماند و می تواند با یک Security واحد و ID و رمز ورود به همه نوع سرویسی دسترسی داشته باشد و جدا از تمامی این موارد با توجه به این لایه زیر ساختی امکان شخصی سازی به صورت پراکنده و متمرکز به کاربر داده می شود.
وب پورتال هایی که سعی می کنند سرویس های اصلی مورد نیاز کاربران را در ازای پول در اختیار ایشان قرار دهند به دلایل فراوان و مستندی تا ابد در خم یک کوچه باقی خواهند ماند!
نحوه دسترسی کاربر به سرویس ها در آیتم لایه زیر ساخت با چگونگی سرویس دهی نقطه مشترک دارند و جدا از این مورد Remote access جایگاه مهمی در نحوه دسترسی کاربر و در نهایت محبوبیت یک وب پورتال دارد.

اکثر کسانی که جز کاربران همیشگی اینترنت هستند و به نوع زندگی ها به دو بخش محیطی و مجازی تقسیم شده است همیشه دغدغه دسترسی به اینترنت را در شرایط خاص دارند که یکی از مهم ترین عوامل کمک کنند به آنها همان دسترسی غیر مستقیم است که معمولا از طریق موبایل و SMS Engine های گوناگون صورت می پذیرد.

در صورتی که تمامی این آیتم ها به صورت کامل و صحیح در زمان مشخص و مورد نیاز اجرا شوند پروِژه وب پورتال ما به مرحله سودآوری خواهد رسید که این مرحله با سه آیتمی که در بالا آمد در تعامل مستقیم قرار دارد به گونه ای که در صورت نبودن یک طرح توجیه اقتصادی مشخص و علمی کل حیات پروِژه را با مخاطره روبرو کرده ایم.

اما با ذکر تعاریف بالا اصلی ترین سوالی که پیش می آید نوع درآمد زایی وب پورتال هاست. قطعا از خود می پرسید زمانی که قرار است اکثر سرویس ها مخصوصا سرویس های اصلی به صورت رایگان در اختیار کاربران که قطعا تعداد آنها نیز کم نیست قرار بگیرد اینکار جز صرف هزینه چه سودی برای ما در بر خواهد داشت؟!

جواب سوال شما بسیار ساده است، وب پورتال ها رابطه کاملا مستقیم با تکنیک e-commerce دارند از همین رو اکثر بازگشت هزینه ها و سودآوری وب پورتال از طریق تجارت الکترونیکی تحقق می یابد.

برای اینکه مسئله برایمان واضح تر از قبل باشد بهتر از با تعریف تجارت الکترونیک آشنا باشیم، تجارت‌ الكترونيك‌ به‌ معناي‌ مبادله‌ محصولات‌ و خدمات‌ درمقابل‌ پول‌ با استفاده‌ از تواناييهاي‌ اينترنت‌ است.

از تعریف بالا نتجیه می گیریم که تجارت‌ الكترونيك‌ به‌ معني‌ اطلاع‌رساني، تبليغات‌ و خريد و فروش‌ كالاها و خدمات‌ و حفظ‌ و برقراري‌ روابط‌ تجاري‌ از طريق‌ سيستم‌هاي‌ مخابراتي‌ و ابزارهاي‌ پردازش‌ داده‌ها است که از مهم ترین آیتم های در دسترس و عملی آن در شرایط فعلی می توان به تبلیغات و فروشگاه های اینترنتی اشاره کرد.

همانگونه که ملاحضه می کنید یکی از تاکیدات اصلی تجارت الکترونیک واگذاری خدمات اینترنتی است که پورتال ها به آن توجه بسیاری خاصی دارند و اصلی ترین آن نمایش تبلیغات سایر شرکت ها و محصولات و خدمات است.

وب پورتال ها با ارائه سرویس های رایگان که راه اندازی و نگهداری آنها چندان هم کم هزینه نیست، سعی می کنند تا آمار کاربران روزانه(Visitor) خود را به درجه بالاتری برسانند و پیرو همین آمار بازدید که قطعا نرخ قابل توجهی خواهد بود حجم ترافیک خود را افزایش دهند و محیط مناسبی را جهت نمایش تبلیغات علاقه مندان و معرفی محصولات و خدمات آنها فراهم آورند.
می توان مطمئن بود کمپانی "الف" که نیاز به معرفی محصول و یا محصولات خود برای فروش بیشتر دارند حاضرند هر مبلغ عقلانی را جهت شهرت و محبوبیت و در نهایت فروش بیشتر بپردازند و همین امر سبب می شود که گردانندگان یک وب پورتال پس از گزراندن یک پروسه لازم پول خوبی به جیب بزنند چرا که با این اوصاف پورتال ها را می توان شرکت های نفت اینترنتی دانست.

و نهایتا آیتم دیگری که جز کلیشه ای ترین خصوصیات وب پورتال هاست تامین محتویات آنهاست.
هیچگاه یک پورتال مانند Yahoo نمی تواند تامین کننده تمامی محتویات و یا حتی مدیر کلیه بخش های خود باشد چرا که در صورتی که قرار باشد تمامی این کار ها را به تنهای انجام دهد جدا از صرف هزینه زیاد و نیاز به زمان بالا جهت جمع آوری و طبقه بندی ، به دلیل نبود ذهنیت های متفاوت و تنوع سلیقه خود را با موذل یکنواختی و روزمرگی روبرو ساخته است و این می تواند نقطه شروع هرز رفتن حیات یک وب پورتال باشد.

مهم ترین ویژگی ها وب پورتال را در یک جمله می توان به شرح زیر دانست که البته این خود می تواند به جزئی از تعریف پورتال محسوب شود.
در اختیار گذاشتن اطلاعات بیشمار و مختلف با تعیین اهداف قبلی، سطح دسترسی و رده بندی زیر نظر کادر نظارت و مدیریت در یک قالب انعطاف پذیر که به صورت جذاب و قابل دسترسی در کنار سرویس ها و خدمات مفید به کاربران اینترنت به گونه ای که سرویس دهنده و سرویس گیرنده هر دو از امنیت سرویس خود اطمینان داشته باشد .
اعم ویژگی های پورتال را به صورت تیر وارمی توان در موارد زیر دانست:
1- قابلیت شخصی سازی اطلاعات و ظاهر customization))
2- قابلیت استفاده برای عموم و عدم پایداری به Platform
3- قابلیت دسترسی به تمام سرویس ها تنها با یکبار ورود به سیستم Single sign-on))
4- دسته بندی و رده بندی اطلاعات در بخش مدیریت و ارائه به کاربر Taxonomy))
5- تعامل و یافتن سریع کاربران در مواقع ضروری (Alert)
6- دسترسی سریع به اطلاعات
7- ارائه سایر سرویس های اینترنتی مبتی بر وب

پورتال ها نتیجه تلاش ما برای رسیدن به کیفیت مطلوب در حداقل زمان است. تا مدتی پیش خیلی ها گمان می برند هر چقدر کاربران اینترنت ورزیده تر شوند نسل پورتال ها روز به انقراض کشیده می شود در حالی که امروزه عکس این گزینه ثابت شده است.
نتیجه ای که از این ویژگی های بی نظیر بر می آید صرف جویی در هزینه و زمان و دسترسی سریع تر و مطلوب تر به اطلاعات و خدمات اینترنتی و در نتیجه افزایش راندمان کاری خواهد بود. در چنین حالتی تعجب نکنید که پورتال را به Mouse کامپیوترتان نسبت دهم!
شاید با این تشابه درک ویژگی های پورتال را برایتان آسان تر کند:
پورتال چیزی مشابه یک OS و سیستم عامل عمل می کند بدانگونه که صرف نظر از خاصیت برقراری ارتباط سیستم عامل با سخت افزار دسترسی ما را به پوشه ها و فایل های موجود در هارد دیسک را آسان تر می کند.

در چنین حالتی اگر وب سایت را DOS در نظر بگیریم و پورتال را ویندوز قدرت کارایی هر یک را به سادگی در می یابیم. اما در نهایت تمامی این امکانات در محیط ویندوز با توجه به داده های موجود در هارد دیسک به ما داده می شوند.

از مهم ترین ویژگی های پورتال که در تعریف علمی از آن به عنوان قابلیت و سرویس یاد کردیم امکان بر قراری ارتباط دو طرفه میان کاربران است.
در پورتال ها این امکان به کاربران داده می شوند که بتوانند از طرق مختلف مانند چت و Web2 با یکدیگر در تماس و تعامل اطلاعات با فرمت های خاص باشند.
همچنین امکان شخصی سازی که یکی از مهم ترین عوامل خدماتی پورتال محسوب می شود سبب رضایت مخاطبان و کاربران پورتال ها شده است چرا که با امکان شخصی سازی و Customize شما خودتان نحوه دسترسی به بخش مدیریتی، سرویس ها و اطلاعات را با امنیت دلخواه تغییر وتعیین می کنید. درواقع با توجه به بیان تشابه با سیستم عامل، می توانید از اطلاعات خود Back up بگیرید، Shortcut بزنید و یا سطح دسترسی افراد دیگر را به اطلاعات خود چه در Security و چه View تعریف کنید.

اکثرا گمان می برند که وب پورتال ها به دو دسته عمومی و تخصصی تقسیم بندی می شوند که پورتال های عمومی ارائه کننده خدمات عمومی و کلی هستند و پورتال های تخصصی ارائه دهنده سرویس ها و مطالب تخصصی که نمی تواند بیشتر از یک موضوع اصلی باشد هستند.
از همین رو در بسیاری از موارد دسته بندی پورتال ها را با اصطلاح عمودي (Vertical) و افقي (Horizontal) انجام می دهند، البته از نظر من این دسته بندی چندان صحیح و کامل نیست و ممکن است باعث اشتباهاتی در باب تشخیص پورتال شود.
همچنین بعضی معتقد اند پورتال به دوسته دیگر با اصطلاح کاربردی و اطلاعاتی نیز تقسیم می شود. که البته این طرز فکر کاملا اشتباه ست چرا که خاصیت اصلی پورتال ارائه سرویس و اطلاعات در کنار هم است. در صورتی که وب پورتال را غیر از این تقسیم بندی کنیم در حال بررسی وب سایت هستیم نه پورتال!
از طرف دیگرعده ای بیان می کنند پورتال ها چهار دسته کلی تقسیم می شوند که عبارتند از:
• Business to Customer Portal (B2C)
• Business to Business Portal (B2B)
• B2E
• Public Portal

در این دسته بندی پورتالB2C تنها خاصیت خرید و فروش بین شرکت ها و کاربران را دارد؛
پورتال B2B تنها خاصیت معامله و خرید فروش بین شرکت ها با یکدیگر دارد
B2E خود به دسته "پورتال کارکنان" با امکان دسترسی به یک سری اطلاعات به هم پیوسته را فراهم می کند و در دسته دیگر" worker portal” که با یک یا مجموعه اهداف مشخص مثلا فروش یک محصول ایجاد می گردد
و در نهایت پورتال های عمومی که به دو دسته " Horizontal " هستند ( مشابه یاهو) و دسته " Vertical " تقسیم می شوند. در این تعریف پورتال های عمودی را می توان پورتال های سازمانی دانست.
در چنین دسته بندی عملا یک خاصیت را چند بار تعریف کرده ایم در صورتی که می توانستیم دسته بندی مختصر تر و به مراتب مفید تری داشته باشیم!

نظر شما چیست؟آیا با توجه به تعاریف بالا سیر موضوعات فرد جز وظایف یک وب پورتال است؟ قطعا جواب منفی خواهد بود چرا که همانطور که گفته شد وب پورتال ها اساسا دروازه ورود کاربران به حیطه وب هستند و در حال حاضر برای یک موضوع واحد تا این حد محتویات با فرمت های گوناگون وجود ندارد که برای دسترسی به آنها نیاز به یک خط دهنده و طبقه بندی کننده اطلاعات داشته باشیم.
از طرف دیگر گفتیم که اصلی ترین آیتمی که دلیل اثبات وجود یک وب پورتال است ارائه همزمان خدمات و محتویات به صورت یکجاست.
فرض کنید که شما کاربر همیشگی آدرس www.photo.net هستید. همانگونه که مطلع هستید این وب سایت جز بی نظیر ترین مراجع ارائه عکس و نیز فنون عکاسی در سراسر وب جهانی ست که توسط هزاران کاربر در روز update می گردد، حال قرار است این وب سایت به کاربرانی که گاهی اوقات عکس هایی را که خودشان تهیه کرده اند را برای وب سایت می فرستند میل باکس رایگان ارائه کند. آیا این حرکت برای آن کاربر توجیه خاصی دارد؟
این میل باکس تنها برای زمانی به ایشان داده شده است که مشترک photo.net باشند و در رشد و پیشرفت آن موثر واقع شوند و در صورتی که کاربر تماس خود را با این وب سایت قطع کند نه برای سایت و نه برای کاربر اشتراک ایمیل در آدرس photo.net دیگر ارزشی ندارد و فارغ از تمامی این موارد آیا این کاربران با آدرس user@photo.net حاضر به تبادل اطلاعات و فعالیت در سایر موضوعات به غیر از عکاسی هستند؟!
پیرو موراد ذکر شده بالا متوجه می شویم که پورتال های سازمانی نیز وجود خارجی ندارند و برای اینکه با این موضوع آشنایی بیشتری داشته باشید پیشنهاد می کنم مقاله "پورتال سازمانی، انگیزه ای را برای سود جویی" به دقت بخوانید.

منظور از معماری پورتال تعریف و توجیه پروژه در یک چهارچوب خاص به دسته های
• نوع برنامه نویسی
• نوع مدیریت پروژه
• نوع طرح توجیه اقتصادی
و سایر گزینه های موثر در تشکیل و تهیه می باشد.
ضرورت تعریف معماری در پورتال ها را می توان پیشگیری از بروز اشتباهات احتمالی؛ تامین امنیت بالا، صرفه جویی های بسزا در هزینه ها و مانند این دانست.
بعضا بسیاری گمان می کنند معماری پورتال ها یک کلیشه است که در هر زمان و برای هر پروژه ای به یک نحوه اجرا می شود در صورتی که تصور صحیح می بایست معماری را برای هر پورتال بنا بر خاصیت های زمانی، موقعیتی، فرهنگی و ریالی ؛ با در نظر گرفتن ملزومات تعریف کند.
درواقع با چنین شرایطی معماری پورتال را می توان Presentation پروژه پورتال دانست که اطلاعات جامعی و اصلی را در باره چگونگی تهیه ، راه اندازی و نگهداری پورتال به ما می دهد و همگی تاثیر گرفته از ویژگی های پورتال هستند که در بخش های قبلی در مورد آن صحبت شد.
این presentation را می توان به دو دسته کلی تقسیم کنیم:
• کاربری و مدیریت ما و پورتال
• کاربری و مدیریت مشتری ما و پورتال

نکته حایز اهمیت اینجاست که نوع مدیریت پروژه و استاندارد های به کارگرفته شده ستون های پورتال ها تلقی می گردند و این استاندارد ها دائما در تعامل با یکدیگر اند و در صورت نقض قوانین هر یک خسارات جبران ناپذیری به خود و سایر ستون های پروژه و در نهایت کل پروژه وارد می کنند.
+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:36 توسط عزیز پورابراهیم |



به طور کلی کامپیوترهای سازگار با IBM دارای دو دسته پورت موازی و سری هستند و پورت موازی که مورد بحث ماست دارای یک کانکتور 25 پین Female در پشت کیس کامپیوتر است که این کانکتور D25 نام دارد. سیستم عامل ویندوز پورت موازی را با نام LPT می شناسد و پورت های سریال را با نام های COM2 ،COM1 و USB و اخیرا Firewire یا IEEE1394 که هر کدام دارای استاندارهای خاص خود می باشند و سعی می کنم در آینده در مورد ارتباطات سریال و استاندارهای ارتباطی آن (RS232 و RS485) که بسیار موضوع پرکاربرد و جالبی هستند، بنویسم.در تصویر زیر کانکتور پورت موازی (در قسمت فوقانی) و در زیر آن دو پورت سریال را مشاهده می کنید

می دانیم که در ارتباطات موازی یک بایت که شامل هشت بیت است به صورت موازی و همزمان منتقل می شود و در ارتباط سریال هر بایت توسط یک ثبات انتقالی (Shift Register) به شکل سریال در می آید و سپس توسط یک کانال انتقالی (یک بیت یا یک سیم سیگنال و یک سیم زمین) منتقل می شود. بنابراین کوچکتر بودن کانکتور سریال (معمولا 9 پین) نسبت به پورت موازی بدین دلیل است. امروزه پورت سریال کاربردهای نسبتا کمی دارد و تقریبا در آینده ای نزدیک جای خود را به اتصالات سریال و مخصوصا استاندارد سریع USB خواهد داد به طوری که امروزه حتی بخش عمده ای از پرینترها با اتصال USB وارد بازار می شوند. سرعت استاندارد پورت موازی بین 50 تا 100 کیلوبایت در ثانیه می باشد. وظیفه هر یک از پین های این پورت در زیر توضیح داده شده است


پین 1:
سیگنال strobe را حمل می کند. قابل ذکر است که زمان بندی و انتقال اطلاعات در هر بیت می تواند به دو صورت سنکرون و آسنکرون انجام شود که در روش سنکرون یک سیگنال زمانی به همراه اطلاعات فرستاده می شود تا مرجعی برای تشخیص و تفکیک بیت ها فراهم آورد که به این سیگنال Strobe گفته می شود. در ارتباطات سریال معمولا از روش آسنکرون استفاده می شود که در آن صورت بیت شروع و بیت پایان به همراه اطلاعات ارسال می شود و زمان بندی را انجام می دهد. (در این مورد در یادداشت ارتباطات سریال بیشتر توضیح خواهم داد.) سطح ولتاژ این پین معمولا بین 2.8 تا 5 ولت است اما زمان ارسال یک بایت اطلاعات به حدود 0.5 ولت کاهش می یابد.
پین 2 تا 9: این پین ها وظیفه حمل یک بایت اطلاعات (Data) را بر عهده دارند و در واقع یک منطقی معادل 5 ولت و 0 منطقی معادل حدود صفر ولت می باشد.
پین 10: وظیفه ی ارسال Acknowledgment را بر عهده دارد. بدین ترتیب که مانند سیگنال Strobe با ارسال 0 منطقی اعلان دریافت اطلاعات ارسال شده را بر عهده دارد.
پین 11: یک بودن این پین اعلام می کند که پرینتر مشغول است و با صفر شدن آن به کامپیوتر اجازه ی ارسال اطلاعات را می دهد.
پین 12: پرینتر با ارسال یک منطقی از طریق این پین اعلام می دارد که کاغذ ندارد!پین 13: پرینتر با ارسال یک اعلام می کند که به کامپیوتر متصل است.
پین 13:
پین 14: کامپیوتر با ارسال یک منطقی به صورت خودکار نقش جلوبرنده یا Auto Feed را بازی می کند.
پین 15: در صورت بروز مشکل برای پرینتر با ارسال صفر منطقی، کامپیوتر را بروز خطا مطلع می کند.
پین 16: کامپیوتر با ارسال صفر پرینتر را برای وظیفه ی بعدی آماده می کند.
پین 17: وظیفه اش این است که در صورت لزوم به صورت از راه دور با ارسال یک منطقی اتصال پرینتر را از کامپیوتر قطع کند.
پین 18 تا 25: زمین سیگنال هستند و به عنوان مرجع ولتاژ برای پین های دیگر استفاده می شوند.عملیات فوق در جدول زیر نیز آورده شده است
ستون دوم مربوط استاندارد 36 پین Centronics که امروزه در کامپیوترهای سازگار با IBM کمتر استفاده می شود.همان طور که ملاحظه می شود ارتباطات پورت موازی با استاندار اصلی به صورت Simplex یا یکطرفه می باشد. اما در سال های بعد از معرفی استاندارد اولیه، در سال 1991 استاندارد (Enhanced Parralel Port (EPP توسط شرکت های Intel, Xircom و Zenith معرفی شد. EPP سرعتی بین 500 کیلوبایت تا 2 مگابایت دارد و معمولا برای اتصالات وسائل جانبی غیر از پرینتر استفاده می شود. پس از آن در سال 1992 استاندارد (Extended Capabilities Port (ECP توسط Microsoft و Hewlett Packard برای بهبود عملکرد واسط پرینتر معرفی شد. و سرانجام یک سال بعد استاندارد IEEE 1284 توسط سازمان IEEE شد که مشخصات کار با هر دو نوع EPP و ECP را دارا بود.در حال حاضر معمولا کامپیوترهای IBM از استاندارد ECP جهت پورت موازی یا LPT استفاده می کنند. (جهت اطلاع از این مسئله در سیستم عامل ویندوز در Device Manager شاخه ی Ports را بررسی کنید. وظایف تخصیص داده شده به پین های پورت موازی با استاندارد ECP در جدول زیر آورده شده است

رعایت کردن نکات زیر نیز خالی از ضرر نیست:
1. پورت موازی از امکان Hot Swapping یا تعویض در حین کار پشتیبانی نمی کند. بنابراین باید در زمانی که سیستم عامل بوت نشده و یا در زمان خاموش بودن آن باید تجهیزات را به این پورت متصل یا جدا کنید.
2. ولتاژهای ورودی نباید از 5 ولت بیشتر شوند و یا از صفر کمتر.
3. پورت موازی در مقابل جریان بیش از حد محافظت نشده بنابراین مراقب اتصال کوتاه باشید و برای بارهای بزرگ از بافر استفاده کنید.

منبع : http://www.lahijancity.com
+ نوشته شده در پنجشنبه سی و یکم خرداد 1386ساعت 13:32 توسط عزیز پورابراهیم |

ISA Server چیست؟

Internet Security And Acceleration Server که مخفف ISA Server است. نرم افزاری محصول شرکت Microsoftاست که به منظور افزایش امنیت در ارتباطات اینترنتی و دسترسی سریعتر به شبکه وب طراحی و پیاده سازی شده است.

به عبارتی دیگر این نرم افزار یک دروازه امنیتی است که شبکه را از دسترسی هکرها و کرمهای مزاحم موجود که به طرق مختلف به شبکه دسترسی دارند.مصون میدارد و این کار را از طریق فیلتر کردن در سطحapplication و پاکتهای داده انجام میشود. در شبکه دادها برای انتقال به بخشهای کوچکتری شکسته میشوند که در اصطلاح به آنها پاکت گفته میشود.آمارها نشان میدهد که این نسخه ISA Server، يازده بار سریعتر از نسخه پیشین خود یعنیMicrosoft proxy server است.

ISA Server در محیط هایی با سیستم عامل های مختلف کار میکند;ولی در عین حال بیشترین بهره وری را در کار با سیستم عامل ویندوز دارد.ISA Serverدر کنار امکانات موجود در سیستم عامل ویندوز از قبیلMicrosoft active directory و VPn(Virtual Private Network) و در اجتماع با آنها به کارایی بالاتر و مدیریت بهتر در شبکه کمک می کند. cache کردن یا به عبارتی ذخیره سازی دادها از طریقISA Serverو پاسخ دادن به درخواست های که دادهای آنها در Web cache موجود است.
ترافیک در شبکه اینترنت را کاهش داده که این باعث کاهش ازدحام در شبکه و افزایش میزان پهنای باند برای پاسخ دهی بهتر به دیگر درخواست ها در شبکه میشود.ISA Serverدسترسی به شبکه را در موارد مختلف از قبیل زمان,دسترسی کاربران,نوعapplicationها و.... محدود میکند و این کار کیفیت مدیریت در شبکه را ارتقا میدهد در نهایت ISA Server محصول قابل توجهی از سوی شرکت مایکروسافت است که در زمینه امنیت در شیکه ها ارائه شده است.
 
آشنايي با ISA Server 2004

 


شركت مايكروسافت نرم‌افزارهاي متعددي را تحت عنوان Microsoft Server Systems در كنار سيستم‌عامل اصلي سرور خود يعني ويندوز 2000 تا 2003 عرضه كرده كه وظيفه ارايه سرويس‌هاي متعددي را از انواع ارتباطات شبكه‌اي گرفته تا امنيت و غيره به عهده دارند. در اين شماره قصد داريم به معرفي سرور كنترل ارتباط شبكه‌اي يعني ISA Server بپردازيم.

آشنايي‌
برنامه قدرتمند ارتقاء و امنيت شبكه مايكروسافت ISA Server نام دارد. اين برنامه با استفاده از سرويس‌ها، سياست‌ها و امكاناتي كه در اختيار كاربران قرار مي‌دهد قادر است به عنوان راه‌حلي در ايجاد شبكه‌هاي مجازي
(VPN) و يا برپا كردن فضاي حايل به عنوان cache جهت دسترسي سريع‌تر به صفحات وب، مورد استفاده قرار گيرد. همچنين اين برنامه قادر است با ايجاد يك ديواره آتش در لايه Application شبكه، فعاليت سرويس‌هاي مختلف يك شبكه ويندوزي مثل وب سرور IIS، سرويس‌هاي دسترسي از راه‌دور (Routing and Remote Access) را از طريق فيلترگذاري و كنترل پورت‌ها، تحت نظر گرفته و فضاي امني را براي آن‌ها فراهم كند. اين برنامه با استفاده از نظارت دايمي خود بر پروتكل امنيتي SSL و فيلتر كردن درخواست‌هاي Http كه به سرور مي‌رسد، وب سرور و ايميل سرور را از خطر حمله هكرها دور نگه مي‌دارد. به همين ترتيب، كليه ارتباطات شبكه‌اي كه با يك سرور برقرار مي‌شود، از ارتباط Dial up ساده گرفته تا ارتباط با سرورExchange و يا IIS، بايد از سد محكم ISA عبور كنند تا درخواست‌ها و ارتباطات مشكوك با سرور مسدود گردد.
سايت مايكروسافت براي بررسي اهميت وجود ISA در يك شبكه، كليه راه‌حل‌هاي اين برنامه را كه با استفاده از سرويس‌ها و امكانات ويژه موجود در آن، ارايه گشته است به هفت سناريو يا وضعيت مختلف تقسيم كرده كه به آن‌ها مي‌پردازيم. (تصاوير مقاله از سايت مايکروسافت برداشته شده اند)

سناريوي اول‌








شكل 1


از ISA براي تأمين امنيت ايميل‌ها استفاده مي‌شود. ISA Server با استفاده از دو روش استاندارد يعني SSL decryption وهمچنين Http Filtering اولاً از ورود كدهاي مشهور به malicious كه عمدتاً بدنه انواع كرم‌ها و ويروس‌ها را مي‌سازند جلوگيري به عمل مي‌آورد و ثانياً محتواي درخواست‌هاي Http را براي بررسي مجوز دسترسي آن‌ها و صلاحيت دريافت و ارسال اطلاعات مورد كنكاش قرار مي‌دهد. در اين حالت، ISA همچنين از هر نوع اتصال افراد با اسم كاربري anonymous كه مي‌تواند منشأ شكستن رمزعبورهاي مجاز يك سرويس‌دهنده ايميل شود، جلوگيري مي‌كند. به هر حال با وجود اين كه يك ايميل سرور مثل Exchange راه‌حل‌هاي امنيتي مخصوص به خود را دارد، اما وجود ISA به‌عنوان ديواره آتش يك نقطه قوت براي شبكه به حساب مي‌آيد. ضمن اين‌كه در نسخه‌هاي جديد ISA امكان ايجاد زنجيره‌اي از سرورهاي ISA كه بتوانند با يك سرورExchange در تماس بوده و درخواست‌هاي كاربران را با سرعت چند برابر مورد بررسي قرار دهد باعث شده تا اكنون به ISA عنوان فايروالي كه با قدرت انجام توازن بار ترافيكي، سرعت بيشتري را در اختيار كاربران قرار مي‌دهد در نظر گرفته شود. (شكل 1)



سناريوي دوم






شكل 2



ISA مي‌تواند در تأمين امنيت و دسترسي از راه دور نيز مورد استفاده قرار گيرد. در اين سناريو، يك شركت برخي از اطلاعات سازمان خود را براي استفاده عموم در معرض ديد و يا استفاده كاربران خارج از سازمان قرار مي‌دهد. به عنوان مثال بسياري از شركت‌ها مسايل تبليغاتي و گاهي اوقات سيستم سفارش‌دهي خود را در قالب اينترنت و يا اينترانت براي كاربران باز مي‌گذارند تا آن‌ها بتوانند از اين طريق با شركت ارتباط برقرار نمايند. در اين صورتISA مي‌تواند به صورت واسط بين كاربران و سرويس‌هاي ارايه شده توسط وب سرور يا بانك‌اطلاعاتيSQLServer كه مشغول ارايه سرويس به محيط خارج است، قرار گرفته و بدين‌وسيله امنيت دسترسي كاربران به سرويس‌هاي مجاز و حفاظت از منابع محرمانه موجود در سيستم‌ را فراهم آورد.

(شكل 2)

سناريوي سوم‌






شكل 3
در اين سناريو، دو شبكه LAN مجزا متعلق به دو شركت مختلف كه در برخي موارد همكاري اطلاعاتي دارند، توسط فضاي اينترنت و از طريق سرورها و دروازه‌هاي VPN با يكديگر در ارتباط هستند. به عنوان مثال يكي از شركاي يك شركت تجاري، محصولات آن شركت را به فروش رسانده و درصدي از سود آن را از آن خود مي‌كند. در اين روش به صورت مداوم و يا در ساعات معيني از شبانه‌روز، امكان ردوبدل اطلاعات بين دو شركت مذكور وجود دارد. در اين زمان ISA مي‌تواند با استفاده از روش Encryption از به سرقت رفتن اطلاعات ارسالي و دريافتي در حين مبادله جلوگيري كند، در حالي كه هيچكدام از دو طرف احساس نمي‌كنند كه فضاي حايلي در اين VPN مشغول كنترل ارتباط بين آن‌هاست. به علاوه اين‌كه با وجود ISA، كاربران براي اتصال به سايت يكديگر بايد از دو مرحله Authentication (احراز هويت) يكي براي سرور يا دروازه VPN طرف مقابل و ديگري براي ISA عبور كنند كه اين حالت يكي از بهترين شيوه‌هاي برقراري امنيت در شبكه‌هاي VPN است. در اين سناريو، وجود يك ISA Server تنها در طرف سايت اصلي يك شركت مي‌تواند، مديريت برقراري امنيت در كل فضاي VPN هر دو طرف را به‌عهده گيرد و با استفاده از ديواره آتش لايه Application از عبور كدهاي مشكوك جلوگيري كند. (شكل 3)



سناريوي چهارم‌






شكل 4
در سناريوي چهارم، يك شركت قصد دارد به عنوان مثال تعدادي از كارمندان خود را قادر به كار كردن با سيستم‌هاي دروني شركت از طريق يك ارتباط VPN اختصاصي بنمايد. در اين حالت براي دسترسي اين قبيل كارمندان به سرور شركت و عدم دسترسي به سرورهاي ديگر يا جلوگيري از ارسال ويروس و چيزهاي مشابه آن، يك سد محكم به نام ISA ترافيك اطلاعات ارسالي و يا درخواستي را بررسي نموده و درصورت عدم وجود مجوز دسترسي يا ارسال اطلاعات مخرب آن ارتباط را مسدود مي‌كند. (شكل 4)

سناريوي پنجم‌




شكل 5




سناريوي بعدي زماني مطرح مي‌شود كه يك شركت قصد دارد با برپايي يك سيستم مركزي در محل اصلي شركت، ساير شعبات خود را تحت پوشش يك سيستم (مثلاً يك بانك‌اطلاعاتي) متمركز درآورد. از اين رو باز هم در اينجا مسأله اتصال شعبات شركت از طريق VPN مطرح مي‌شود. در اين صورت ISA با قرار داشتن در سمت هر شعبه و همچنين دفتر مركزي به صورت آرايه‌اي از ديواره‌هاي آتش (Array of Firewall) مي‌تواند نقل و انتقال اطلاعات از سوي شعبات به دفتر مركزي شركت و بالعكس را زيرنظر داشته باشد. اين مسأله باعث مي‌شود تا هر كدام از شعبات و دفتر مركزي به منابع محدودي از يكديگر دسترسي داشته باشند. در ضمن با وجود امكان مديريت و پيكربندي متمركز كليه سرورهاي ISA نيازي به مسؤولين امنيتي براي هر شعبه نيست و تنها يك مدير امنيت، از طريق ISA سرور موجود در دفتر مركزي مي‌تواند كليه ISA سرورهاي شعبات را تنظيم و پيكربندي كند. (شكل 5)


سناريوي ششم‌






شکل 6

كنترل دسترسي كاربران داخل دفتر مركزي به سايت‌هاي اينترنتي، سناريوي ششم كاربرد ISA محسوب مي‌شود. در اين جا ISA مي‌تواند به كمك مدير سيستم آمده، سايت‌ها، لينك‌هاي URL و يا انواع فايل‌هايي كه از نظر وي نامناسب تشخيص داده شده، را مسدود كند. در همين هنگام فايروال نيز كار خود را انجام مي‌دهد و با استفاده از سازگاري مناسبي كه بين ISA و Active Directory ويندوز وجود دارد، اولاً از دسترسي افراد غيرمجاز يا افراد مجاز در زمان‌هاي غيرمجاز به اينترنت جلوگيري شده و ثانياً مي‌توان از اجراشدن برنامه‌هايي كه پورت‌هاي خاصي از سرور را مثلاً جهت استفاده برنامه‌هاي Instant Messaging مورد استفاده قرار مي‌دهند، جلوگيري نمود تا بدين‌وسيله ريسك ورود انواع فايل‌هاي آلوده به ويروس كاهش يابد.

(شكل 6)



سناريوي هفتم‌






در تمام سناريوهاي قبلي كه ISA در برقراري ارتباط مناسب و امن بين سايت‌هاي اينترنت، كاربران يا شعبات شركت نقش مهمي را ايفا مي‌كرد، يك سناريوي ديگر نيز نهفته است و آن افزايش سرعت انتقال اطلاعات بين تمام موارد فوق از سايت‌هاي اينترنتي گرفته تا اطلاعات سازماني است. سيستم cache Array موجود در اين برنامه باعث مي‌شود تا هر كدام از كاربران چه در محل اصلي شركت و چه از محل شعبات بتوانند براي ديدن اطلاعات يا سايت‌هاي مشابه راه ميان‌بر را رفته و آن را از هر كدام از ISAهاي موجود در شبكه VPN يا LAN دريافت كنند و بدين‌وسيله حجم انتقال اطلاعات با محيط خارج را تا حدود زيادي در سيستم متوازن نمايند.


عملكرد

ISA Server كليه سناريوهاي تعيين شده را براساس سه قاعده مختلف يعني سيستم، شبكه و ديواره آتش محقق مي‌سازد كه در اين‌جا به اين سه قاعده اشاره مي‌كنيم.


1- Network Rule
ISA Server با استفاده از قوانين شبكه‌اي موجود و تعريف‌شده در بانك‌اطلاعاتي خودش نحوه ارتباط دو يا چند شبكه را به يكديگر در يك فضاي معين، مشخص مي‌سازد. در اين قاعده كه توسط مدير سيستم قابل تنظيم است مشخص مي‌گردد كه شبكه‌هاي موردنظر طبق كدام يك از دو روش قابل‌طرح، به يكديگر متصل مي‌شوند. اين دو روش عبارتند از:


الف- Network Address Translation) NAT)
اين روش، يك ارتباط يك طرفه منحصربه‌فرد است. بدين معني كه هميشه يكي از شبكه‌ها نقش شبكه اصلي و داخلي (Internal) و بقيه شبكه‌ها نقش شبكه‌هاي خارجي (External) را بازي مي‌كنند. در اين روش شبكه داخلي مي‌تواند قوانين و شيوه دسترسي به اطلاعات و ردوبدل شدن آن‌ها در فضاي بين شبكه‌ها را تعيين كند ولي اين امكان از ساير شبكه‌هاي خارجي سلب گرديده و آن‌ها تابع قوانين تعريف شده در شبكه داخلي هستند. در اين روش همچنين ISA آدرس IP كامپيوترهاي مبدا يك ارتباطNAT را به وسيله عوض كردن آن‌ها درIP خارجي خودش، از ديد كامپيوترهاي يك شبكه (چه كامپيوترهاي متصل از طريق LAN و چه كامپيوترهاي خارجي) مخفي مي‌كند. به عنوان مثال، مدير يك شبكه مي‌تواند از ارتباط بين كامپيوترهاي متصل شده از طريق VPN را با فضاي اينترنت از نوع يك رابطه NAT تعريف كند تا ضريب امنيت را در اين ارتباطات بالا ببرد.


ب - Rout
اين نوع ارتباط يك ارتباط، دو طرفه است. بدين معني كه هر دو طرف مي‌توانند قواعد امنيتي خاصي را براي دسترسي شبكه‌هاي ديگر به شبكه محلي خود تعريف كنند. به‌عنوان مثال ارتباط بين شبكه‌هاي متصل شده به يكديگر در فضاي VPN مي‌تواند يك ارتباط از نوع Rout باشد.
با توجه به اين مسايل ارتباطات قابل اطمينان يك شبكه با شبكه‌هاي مجاور (مثل شعبات شركت) مي‌تواند از نوع Rout و ارتباطات محتاطانه شبكه با كاربران خارجي و كساني كه از طريق RADIUS يا وب به شبكه دسترسي دارند مي‌تواند از نوع NAT تعريف شود.


2- Firewall Rule





علاوه بر نقش مستقيمي كه سياست‌هاي تعريف‌شده در قواعد ديواره آتش در نحوه ارتباط بين شبكه‌ها بازي مي‌كند و مي‌تواند موجب مسدود شدن ارتباطات خارج از قواعد تعريف شده درNetwork Rule شود، اين قواعد همچنين مي‌توانند با تعريف دقيقي كه از پروتكل‌هاي Http ،FTP، DNS،RPC و ... انجام ‌دهند، كليه درخواست‌ها از انواع مذكور را زيرنظر گرفته و به عبارتي فيلتر نمايند. در اين روش مدير امنيت شبكه مي‌تواند امكان دسترسي تعدادي از كاربران را در ساعات خاص و به محتواي مشخص مجاز يا غيرمجاز كند. به عنوان مثال وي مي‌تواند نمايش تصاوير موجود برروي صفحات وب را از طريق فيلتركردن فهرستي از پسوندهاي انواع فايل‌هاي گرافيكي در يك قاعده از نوع Http ، مسدود كند در حالي كه كاربران همچنان بتوانند آن فايل‌ها را از طريق پروتكل ديگري مثلFTP دريافت يا ارسال كنند.

همچنين در قواعد مربوط به فايروال مي‌توان دسترسي كاربران و يا گروه‌هاي كاربري را به تعدادي از آدرس‌هاي URL يا IPهاي مشخص مسدود كرد. ضمن آن‌كه قواعد مربوط به نحوه دسترسي كاربران براي انجام اموري مثل انتشار صفحات وب (Web Publishing) و امثال آن هم در همين جا تعريف مي‌گردد.


3- System Rule
در اين قسمت بيش از سي قاعده مربوط به دسترسي وجود دارد كه قابل انتساب به شبكه محلي مي‌باشند. اين قواعد نحوه ارتباط سرويس‌هاي يك شبكه را با يكديگر و همچنين با ISA مشخص مي‌نمايد. به عنوان مثال سرويسDHCP كه كليه درخواست‌ها و پاسخ‌هاي مربوط به انتساب ديناميك آدرسIP به كامپيوترهاي يك شبكه را مديريت مي‌كند، يا سرويس DSN كه وظيفه ترجمه اسامي و آدرس‌هاي شبكه را انجام مي‌دهد، مورد استفاده ISA قرار گرفته تا بتواند هم موقعيت خود در شبكه و با سرورهايي كه سرويس‌هاي فوق را ارايه مي‌دهند تشخيص دهد و هم با اطلاع از نحوه پيكربندي شبكه و ارتباط آن با محيط خارج اقدام به كنترل آن از طريق قواعد مربوط به شبكه و ديواره آتش بنمايد. به طور كلي سياست‌هاي موجود در قواعد سيستمي روابط ميان ISA و ساير منابع و سرورهاي موجود در شبكه را مشخص مي‌نمايند
+ نوشته شده در شنبه بیست و دوم اردیبهشت 1386ساعت 1:12 توسط عزیز پورابراهیم |

+ADSL2 - ADSL2 عبور از مرزهاي سرعت

+ADSL2 - ADSL2 عبور از مرزهاي سرعت





ترجمه عليرضا تقي زاده
ماهنامه شبکه
shabakeh-mag.com

اشاره :
شركت‌هاي مخابرات منطقه‌اي را به قولي صاحبان بزرگترين معادن مس دنيا مي‌دانند و اين كنايه‌اي است از حجم عظيم سيم‌هاي مسي كه بين اين مراكز مخابراتي و محل سكونت يا محل كار مشتركين تلفن نصب گرديده‌اند. استفاده بهينه از اين سرمايه، در دستور كار اين شركت‌ها قرار دارد و چند سالي است كه فناوري مودم‌هاي ديجيتال (DSL) به عنوان راه‌حلي هوشمندانه‌ جهت انتقال ديتاي پرسرعت برروي اين سيم‌ها مطرح گرديده است. در اين ميان، مودم‌هاي خانواده‌ ADSL به لحاظ وسعتِ به‌كارگيري در كاربردهاي خانگي، رتبه اول فروش را به خود اختصاص داده‌اند. در مقاله فناوري ADSL (ماهنامه شبكه شماره 41) مباني اين مودم‌ها تشريح گرديده است و در اين نوشتار سعي داريم شما را با جديدترين گونه‌هاي آنها آشنا نماييم.

در ژانويه 2003 سازمان ITU (سازمان بين‌المللي استانداردهاي مخابراتي) پس از فروش حدود پانزده ميليون مودمADSL در سطح جهان، مشخصات جديدي را براي اين استاندارد منتشر نمود. سري مودم‌هاي ADSL موفقترين رده ADSL را در جهان به خود اختصاص مي‌دهند و ITU سعي فراواني جهت توسعه آن دارد.


استانداردهاي جديد با نام‌هاي ADSL2 و +2 ADSL به بازار معرفي شده‌اند. (ITU-G.992.5) براي اولين بار موفق‌شد نرخ گذردهي در جهت دريافت (downstream) را به 24 مگابيت در ثانيه برساند و گونه‌اي از 2 ADSL كه در اكتبر 2003 معرفي شد، حداكثر مسافت قابل دسترسي را به بيش از 6 كيلومتر رساند. افزايش كارآيي در استانداردهاي فوق در واقع انعكاسي از نياز استفاده‌كنندگان و فراهم‌كنندگان خدمات ADSL درارتباط با افزايش نرخ گذردهي و مسافت قابل‌ا‌ستفاده مي‌باشد. سرعت بالاي اين گروه از مودم‌هاي DSL، به فراهم‌كنندگان خدمات، امكان ارائه خدماتي همچون ويدئوي OnLine را مي‌دهد.
با وجود ارتقاء صورت گرفته، مودم‌هاي جديد به طور كامل با مودم‌هاي نسل پيشين خود سازگار مي‌باشند. به اين ترتيب فراهم‌كنندگان خدمات نيازي به جايگزيني سيستم‌هاي موجود خود ندارند و امكان توسعه تدريجي را مي‌يابند.
جدول 1
خلاصه‌اي از استانداردهاي اوليه و جديد ADSL را نشان مي‌دهد.

بهبود كارآيي
ADSL2 به شكلي طراحي شده كه در خطوط مخابراتي و با وجود تداخلات ناشي از مكالمات تلفني به نرخ گذردهي و مسافت بيشتري دست يابد. بهبود در تكنيك مدولاسيون، كاهش سرباره، بهره‌وري بيشتر در مكانيسم كدينگ، بهبود فرايند آماده‌سازي مودم، ارتقاء الگوريتم‌هاي پردازش سيگنال و كاهش در نسبت لازم براي سيگنال به نويز (SNR) برخي از تغييرات انجام گرفته جهت دستيابي به اهداف فوق مي باشند.




كاهش اتلاف در پهناي باند








ميزان افزايش كارايي در مودم هاي ADSL2


در مودم‌هاي معمولي ADSL، سرباره‌هاي ارتباطي از يك مقدار ثابت برخوردار مي‌باشند و در مجموع 32Mbps از ظرفيت گذردهي را به خود اختصاص مي‌دهند. اين مقدار سرباره در مسافت‌هاي طولاني كه ظرفيت گذردهي تا 128Kbps كاهش مي‌يابد، به معني اتلاف 25 درصدي خواهد بود. در مقابل در مودم‌هاي جديد، مقدار سرباره متناسب با نوع كاربرد و شرايط خط ارتباطي از 4Kbps تا 32Kbps انتخاب مي‌گردد كه تا 8 برابر كاهش اتلاف را نشان مي‌دهد.
به طور همزمان، به كارگيري تكنيك كدينگ Reed-Solomon در مودم‌هاي جديد، بهره‌وري كدينگ را افزايش داده است و به كاهش پديده انعكاس در انتهاي خطوط و همچنين كاهش تداخل ناشي از امواج راديويي AM كمك مي‌كند.
افزايش كارآيي كدينگ و كاهش اتلاف به افزايش نرخ گذردهي در مودم‌هاي 2 ADSL نسبت به انواع پيشين منجر گرديده است. افزايش نرخ گذردهي در مسافت‌هاي بالاي 5 كيلومتر در حد 50Kbps مي‌باشد و افزايش مسافت در حد 180 متر مي‌باشد كه در مجموع فضاي قابل پوشش را تا 6درصد افزايش مي‌دهد.

ساير ويژگي‌ها
تشخيص خودكار: تشخيص خودكار كارآيي در مودم 2 ADSL به مراتب بهتر از سلف خود انجام مي‌گيرد، به اين ترتيب كه مودم‌هاي هر دو طرف ارتباط قادر به اندازه‌گيري ميزان نويز، شدت تضعيف و نسبت سيگنال به نويز مي‌باشند. اطلاعات فوق در اختيار نرم‌افزار مديريت شبكه قرار مي‌گيرد تا در انجام فرايند نصب و خدمات پس از نصب شركت‌هاي فراهم‌كننده خدمات به كارگرفته شود.
شروع سريع: آغاز به كار در 2 ADSL بسيار سريعتر از گونه‌هاي پيشين و در مدت 3 ثانيه انجام مي‌گيرد، درصورتي‌كه همين زمان در مورد مودم‌هاي ADSL در حدود 10 ثانيه است.
ديتاي اختصاصي: يك گزينه اختياري در 2 ADSL وجود دارد كه استفاده از پهناي باند تلفني (POTS) را براي ارسال ديتا در جهت ارسال (Upstream) امكانپذير مي‌كند. اين گزينه براي مكان‌هايي كه داراي دو يا چند خط تلفن مي‌باشند و نيازي به استفاده از قابليت تلفني 2 ADSL ندارند، مفيد خواهد بود.


بهبود در مديريت توان الكتريكي



نسل اول مودم‌هاي ADSL در تمام مدت با حداكثر توان مصرفي كار مي‌كنند كه اتلاف انرژي و افزايش حرارت از نتايج آن است. در مقابل 2 ADSL مانند يك كامپيوتر شخصي قادر است به حالت آماده‌باش(Stand by) درآيد و مصرف توان را به حداقل برساند. در اين حالت، مودم علاوه بر صرفه‌جويي در مصرف انرژي، حرارت كمتري نيز توليد مي‌كند كه به كارگيري آن را در ايستگاه‌هاي مركزي آسانتر مي‌سازد. مديريت توان در مودم‌هاي 2 ADSL داراي دو سطح عملياتي 2 L و 3 L مي‌باشد. انتخاب اينكه مودم در كدام حالت (عادي يا آماده‌باش) كاركند، با توجه به نرخ ترافيك عبوري يا بدون فعاليت‌ماندن مودم براي يك مدت مشخص تعيين مي‌گردد.
براي مثال زماني كه فايلي بزرگ از روي اينترنت بارگذاري مي‌گردد، 2 ADSL در حالت توان كامل قرار مي‌گيرد تا گذردهي را به حداكثر برساند. اما با كاهش ترافيك (براي مثال در زماني كه يك صفحه وب معمولي مطالعه مي‌شود) مودم به حالت 2 L فرو مي‌رود و توان مصرفي را كاهش مي‌دهد. البته مودم همواره آماده است تا به سرعت به حالت عادي بازگردد و تمام اين تغييرات بدون درگير شدن برنامه‌هاي كاربردي و بدون از دست رفتن حتي يك بيت از اطلاعات انجام مي‌گيرد. درصورتي‌كه مودمي براي مدتي خاص بدون هر گونه ترافيكي باقي بماند، مي‌تواند به پايين‌ترين حالت مصرف انرژي يعني 3 L برود. در اين حالت حدود 3 ثانيه براي بازگشت مجدد به وضعيت عادي زمان لازم است.

تطبيق نرخ انتقال





افزايش نرخ گذر با استفاده از ADSL2 دو رشته اي خطوط تلفن معمولاً در قالب كابل‌هاي چندرشته‌اي (با حداقل 25 رشته‌سيم) به كار گرفته مي‌شوند. يكي از آثار فيزيكي به كارگيري كابل‌هاي چند‌رشته‌اي، امكان القاي الكترومغناطيسي علائم الكتريكي يك رشته سيم در ديگري است كه به همشنوايي (Crosstalk) موسوم است. همشنوايي به همراه رطوبت، تغيير درجه حرارت و تداخلات ناشي از راديوهاي AM، از مهمترين عوامل كاهش كارآيي در خطوط ADSL محسوب مي‌گردند.
ADSL2 به كمك يكي از قابليت‌هاي خود موسوم به <تطبيق پيوسته نرخ انتقال> بدون ايجاد تداخل در فرايند ارائه خدمات، شرايط كانال ارتباطي را تشخيص داده و نرخ انتقال را با شرايط فوق هماهنگ مي‌كند. براي مثال شروع به كار فرستنده يك ايستگاه راديويي محلي مي‌تواند شرايط جديدي را براي خطوط مخابراتي آن منطقه ايجاد كند كه در اين صورت 2 ADSL بدون آنكه كاربر را متوجه سازد، نرخ انتقال خود را با شرايط فوق تطبيق مي‌دهد.



ADSL2 چندتايي ( Bounded ADSL2)





طيف فركانسي مودم هاي ADSL

فراهم كنندگان خدمات طيف گسترده‌اي از مشتريان را پوشش مي‌دهند و بديهي است كه با نيازها و خواسته‌هاي متفاوتي روبرو باشند، مشتريان تجاري معمولا خواستار نرخ گذردهي بالاتر از مقادير استاندارد مي‌باشند. خوشبختانه 2 ADSL اين قابليت را دارد كه با به كارگيري همزمان چند رشته سيم به نرخ بالاتري دست يابد. تكنيك به كار گرفته شده اقتباسي از تكنيك مالتي پلكس وارونه در شبكه‌هاي ATM مي‌باشد. در اين تكنيك اطلاعات در مبداء به قطعاتي تقسيم مي‌شوند كه هر يك برروي يكي از كانال‌هاي موجود ارسال مي‌گردد، در گيرنده فرايند عكس انجام مي‌پذيرد و با سرهم كردن قطعات فوق، اطلاعات اوليه بازسازي مي‌شود.


روش‌هاي انتقال همزمان صدا بر روي ADSL2









توسعه فضاي تحت پوشش در ADSL2 گسترش يافته

يكي از ويژگي‌هاي مودم‌هاي ADSL، تقسيم طيف فركانسي يك خط تلفن به دو بخش مستقل با مشخصات متمايز مي‌باشد كه اين دو بخش به مكالمات تلفني (POTS) و تبادل ديتا اختصاص دارند. به اين ترتيب دارندگان مودم‌هاي ADSL قادر به استفاده همزمان از خط تلفن خود خواهند بود، بدون آنكه اختلالي در فرايند ارسال و دريافت ديتا ايجاد كنند.
مودم‌هاي ADSL2، علاوه بر اين، امكان برقراري ارتباطات صوتي از طريق تكنيكي موسوم به <صداي كاناليزه شده بر روي>
(CVoDSL DSL) را فراهم مي‌كند. CVoDSL يك كانال به پهناي 64 كيلو هرتز را از داخل پهناي باند مربوط به 2 ADSL جدا مي‌كند و به صورت يك خط معمولي تلفني به كار مي‌گيرد. تكنيك فوق از نوآوري‌هاي 2 ADSL مي‌باشد و به‌طور كلي با تكنيك‌هاي معمول انتقال صوت برروي
مودم‌هاي DSL (مانند VoIP يا VoATM) كه مبتني‌بر تبديل صوت به ترافيك بسته‌اي ديتا مي‌باشند، متمايز است.
با استفاده از تكنيك CVoDSL صوت به صورت دست نخورده و بدون تبديل باقي مي‌ماند و سرويس‌دهنده قادر خواهد بود تا 4 خط تلفني را بر روي يك خط 2 ADSL ايجاد كند.













تكنيك انتقال در مودم‌هاي ADSL









تكنيك انتقال مورد استفاده در مودم هاي ADSL، تكنيك Discrete Multition) DMT) مي‌باشد. DMT فضاي فركانسي كانال را به تعدادي ريزكانال با عرض باند 4KHZ براي هريك تقسيم مي‌كند. تعداد اين زيركانال‌ها كه اصطلا‌حاً تن (Tone) ناميده مي‌شوند، براي استانداردهاي سري ADSL2 به 512 عدد بالغ مي‌گردد. به طور معمول تن‌هاي 1 الي 5 خاص ارتباطات تلفني مي‌باشند. از تن 6 الي 31 و يا 64 براي ارسال ديتا استفاده مي‌شود و باقي تن‌ها به دريافت ديتا اختصاص دارند. يكي از قابليت‌هاي ADSL به‌كارگيري انعطاف‌پذير تن‌ها متناسب با كاربرد و شرايط كانال مي‌باشد.


+ADSL2
سير پيشرفت مودم‌هاي ADSL با معرفي (ADSL2+ (G.299.5 باز هم كامل‌تر گرديد. در +ADSL2 افزايش دو برابري پهناي باند از 1/1 مگا‌هرتز به 2/2مگاهرتز، در مسافت‌هاي كمتر از 1500 متر، نرخ دريافت را تا دو برابر افزايش مي‌دهد. طيف فركانسي بزرگتر، همچنين +2 ADSL را نسبت به معضل همشنوايي مقاومتر مي‌كند.













طيف فركانسي مودم هاي +ADSL2









ضمائم استاندارد

كاربردها و شرايط خاص، مشخصات ويژه‌اي را طلب مي‌كند كه در استانداردهاي اصلي ADSL وجود ندارد. ضمائم به منظور پوشش‌دادن به اين شرايط خاص ايجاد گرديده‌اند. به طور كلي هر ضميمه از بخشي از پهناي باند ADSL براي كاربردي خاص استفاده مي‌كند و بسياري از ضمائم اوليه ADSL براي استانداردهاي نسل جديد 2 ADSL و +2 ADSL نيز كاربرد دارند.


ضميمه A:
متداولترين گونه ADSL مي‌باشد كه در آمريكاي شمالي، اروپا و آسيا كاربرد دارد. در اين ضميمه، بخش پايين پهناي باند براي ارتباطات عادي تلفني و بخش‌هاي بعدي به ترتيب براي ارسال و دريافت ديتا مورد استفاده قرار مي‌گيرد.

ضميمه B:
شبيه به گونه A مي‌باشد، با اين تفاوت كه براي خطوط تلفن ISDN كاربرد دارد. تلفن ISDN نسبت به تلفن عادي از پهناي باند بيشتري استفاده مي‌كند. ضميمه B به طور گسترده‌اي در كشور آلمان به كار گرفته شده‌است.
ضميمه C: خاص سيستم مخابرات تلفني كشور ژاپن طرح شده است كه در واقع گونه‌ خاصي از استاندارد ISDN
مي‌باشد.

ضميمه I:
نسخه جديدي از ضميمه C مي باشد كه نرخ گذردهي را




درسمت دريافت تا دو برابر افزايش مي‌دهد.
ضميمه J: اين گونه به صورت كاملاً ديجيتالي كار مي‌كند و فضاي اختصاص يافته به ارتباطات تلفني را براي افزايش نرخ گذردهي ديتا به كار مي‌گيرد.

ضميمه L:
يكي از جديدترين ضمائم استاندارد 2 ADSL مي‌باشد كه در بازار با نام 2 ADSL <گسترش‌يافته (RE-ADSL2)> شناخته مي‌شود. RE-ADSL2 با افزايش توان ارسال علائم، بر تضعيف حاصل از خطوط طولاني غلبه مي‌كند. نتيجه حاصل، افزايش 37 درصدي در فضاي قابل پوشش مي باشد. البته توان اضافي
RE-ADSL در فواصل كوتاهتر نيز به افزايش نرخ گذردهي نسبت به استاندارد پايه ADSL كمك مي‌كند.



پيش‌بيني‌ها

از آنجايي‌كه ارتقاء استاندارد ADSL به سطح 2 ADSL و +ADSL2 در ITU ناشي از خواست فراهم‌كنندگان خدمات و استفاده‌كنندگان اين فناوري بوده است، بديهي است كه كليه پيش‌بيني‌ها انتظار تكرار موفقيت ADSL را در انواع جديد آن نيز دارند.
+ نوشته شده در شنبه بیست و دوم اردیبهشت 1386ساعت 1:5 توسط عزیز پورابراهیم |

معرفي دو نرم افزار كنترل پروژه

نرم افزارهايي كه در دنيا با آنها امورات برنامه ريزي و كنترل پروژه مي چرخد بسيارند ولي در ايران عمدتاً دو نرم افزار پريماورا و مايكروسافت پروجكت در پروژه ها (بسته به بزرگي و كوچكي آنها) بكار مي روند :

1) (
Primavera Project Planner ( P3

اين نرم افزار كاملترين و قدرتمندترين ابزار مديريت پروژه در جهان شناخته شده است.
P3 قادر است پروژه هاي تا سقف 100000 فعاليت را به همراه منابع بامحدودیت سازماندهي کند .به كمك ابزار هاي انعطاف پذير ‍‍P3 از قبيل 24 كد فعاليت، 16 كد بخشهاي اطلاعاتي دلخواه، 10 كد پروژه، 19مرحله مرتب سازي داده ها و 28 مرحله فيلتر به همراه 31 تقويم براي برنامه ريزي فعاليتها مي توان اطلاعات پروژه را در قالبهاي گوناگون دسته بندي و تجزيه وتحليل كرد. اين نرم افزار براي مديران پروژه توسط طراحاني كه خود مدير پروژه بوده اند، تهيه شده است.
به كمك
P3‌ مي توانيد شبكه فعاليتها را سريعاً در قالب گرافيكي تهيه كنيد و همچنين امكان انتخاب نوع فعاليت را به شما ميدهد.
P 3 سازمان دهي اطلاعات پروژه را آسان نموده است و مي تواند شرايط مورد نظر شما را به فعاليتها تحويل كند.
Version جديد P3 تحت عنوان P3e كه مخفف Primavera Project Planner Enterprise مي باشد به بازار آمده كه به شكل ساختاري با ويرايش گذشته ان متفاوت است . با توجه به آنكه كمپاني پريماورا تمامي پشتيباني هاي خود را از ويرايش قبلي اين نرم افزار برداشته است ؛بزودي P3e كاملاً جاي P3 را خواهد گرفت.
پس جماعت
Planner بشتابيد براي يادگيري P3e .
سايت اينترنتي اين نرم افزار www.primavera.comبوده كه در آن مي توانيد مطالب متنوع و جديدي پيرامون اين نرم افزار و ساير محصولات شركت
Primavera مربوط به مديريت پروژه بيابيد.


2)
MSP) Microsoft Project )

اين نرم افزار؛ مديريت پروژه تمام مراحل يك پروژه از برنامه‌ريزي تا تكميل و انتقال گزارش‌هاي نهايي را در بر مي گيرد،
MSP نيز ابزاري ارزشمند است براي:
الف) سازماندهي طرح ها ب)زمان بندي كارها ج)اختصاص منابع و هزينه‌ كارها
د) تنظيم طرح براي برآورد كردن محدوديتها و
ه) آماده كردن گزارشها براي انتقال طرح نهايي به همه كساني كه بايد طرح مورد نظر را اجراكنند .
بعد از آغاز پروژه
MicrosoftProject را براي كارهاي در دست اقدام، به شرح زير مي‌توان به كار برد.
كنترل عملكرد واقعي
برنامه‌ريزي روي جدول زماني پروژه
اصلاح طرح براي روبه رويي با احتمالات
ارايه گزارش‌هاي، در نتيجه مطلوب

در پروژه هايي كه بيش از 9999 فعاليت دارند بايد از
P3e بايد استفاده نمود.
به جدّ ؛ توصيه مي شود قبل از يادگيري
P3e به يادگيري MSP بپردازيد.
ويرايش آخر آن تحت عنوان
MicrosoftProject 2002 با قابليتهاي جديد به بازار آمده است.
در سايتهاي اينترنتي زير اطلاعات جديد و ارزشمندي از اين نرم افزار مي يابيد:

microsoft.com/office/project

msprojectpartner.com


مديريت پروژه

مديريت پروژه؛ به كار گيري دانش؛ مهارت‌ها؛ ابزار و تكنيك‌هاي لازم در اداره جريان اجراي فعاليت‌ها به منظور رفع نيازها و تامين انتظارات متوليان از اجراي پروژه مي‌باشد. استقرار يك نظام هدف‌مند در خصوص مديريت پروژه‌ها؛ قادر است دانش لازم جهت هدايت و مديريت آن‌ها را در صنعت مربوطه ايجاد نموده؛ علاوه بر برنامه‌ريزي و هدايت كارها؛ ميزان نزديكي عمليات به اهداف سازماني را مشخص نمايد.
يك كارخانه توليد لاستيك، يك طرح سدسازي، يك خط لوله گاز يا نفت خام، طرح معرفي يك محصول تازه، تأسيس يك دانشگاه، انجام يك عمل جراحي ؛ انجام يك طرح آموزشي يا فرهنگي و صدها مثال ديگر نمونه‌هاي كوچك و بزرگي از طرحها؛ تأسيسات و سازمانهايي هستند كه اجرا، اداره و بهره‌برداري آنها جز با بكاربستن تكنيكهاي " مديريت پروژه "امكان پذير نبوده و اتكا به شيوه هاي مديريت سنتي جهت انجام بهينه آنها كفايت نمي نمايد.
در سال‌هاي ابتدايي قرن بيست و يكم؛ كشور ما از جمله كشورهايي است كه به تأسي از كشورهاي در حال توسعه؛ با اولويت بخشيدن به رشد توسعه و سازندگي؛ ساخت و بهره‌برداري از پروژه‌هاي مختلف عمراني را در عرصه‌هاي مختلف اقتصادي- صنعتي در دستور كار خود قرار داده است. به گونه‌اي كه بيش از يك دهه است تلاش می شود ؛ سهم بودجه عمراني دولت نسبت به بودجه جاري سالانه پيشي گيرد و از اين رهگذر اولويت اصلي اقتصادي كشور؛ توجه به ساخت و تدارك پروژه‌هاي زيربنايي مختلف اعم از نفت و گاز؛ پتروشيمي؛ توسعه برق؛ آب و فاضلاب ؛ سدها و نيروگاهها و… قرار گرفته است.
هر چند مسابقه افتتاح و كلنگ‌زني پروژه‌هاي مختلف؛ با وجود بيش از نه هزار پروژه نيمه تمام ملی و چهل و پنج هزار پروژه نيمه تمام استانی و محلی در كشور- كه موجب اتلاف ؛ استهلاك و عدم اسفاده از ميلياردها دلار سرمايه مي‌گردد- از جمله مهمترين ايرادهاي استراتژيك مديريت كلان كشور در مسير فوق‌الذكر به شمار مي‌رود؛ مشكلات ديگري نيز در اين رهگذر به چشم مي‌خورند.
طولاني شدن بسيار زياد زمان اجراي پروژه‌ها ؛ ضعف مشهود كيفي پروژه‌هاي اجرا شده؛ هزينه‌ تمام شده بسيار بالاي پروژه‌ها نسبت به برآوردهاي اوليه؛ فقدان استراتژي اجراي قوي جهت انجام پروژه‌ها ؛ ضعف آموزش در جهت بهره‌برداري از پروژه‌هاي اجرا شده و… را مي‌توان به عنوان بخشي از زنجيره مشكلات مهم پروژه‌هاي كشور ارزيابي نمود.
هر چند عدم تخصيص اعتبارات در زمان مناسب نقش بسيار مهمي را در طولاني شدن پروژه‌ها ايفا مي‌كند و هر چند توجه به ساخت داخل ممكن است در ابتداي امر به پائين آمدن كيفيت تجهيزات ساخته شده و طولاني شدن زمان اجراي پروژه‌ها بيانجامد ؛ اما به اعتقاد نگارنده ؛ منشاء عمده مشكلات و معضلات فوق‌الذكر ؛“فقدان بينش صحيح مديريت پروژه” مي‌باشد.
پروژه‌هاي كشور عموماً به همان روش سنتي و برنامه‌ريزي نشده اداره شده و فقدان ديد سيستماتيك در ارتباط با به كار بستن مجموعه تكنيك‌هاي مديريت پروژه؛ سبب شده؛ همه ساله مديران ارشد اجرايي كشور؛ ميلياردها دلار خسارت به منافع ملي وارد سازند.
“برنامه‌ريزي و مديريت جامع پروژه‌ها” به عنوان كليد طلايي ساماندهي و مديريت بهتر پروژه‌هاي كشور مي‌تواند سهم عمده‌اي را در بر طرف ساختن مشكلات حاد پروژه‌هاي كشور ايفا نمايد. از همين رهگذر؛ حاكميت نگاه استراتژيك به مقوله “مديريت پروژه” و پياده‌سازي يك سيستم يكپارچه “برنامه‌ريزي و مديريت پروژه” در هر يك از پروژه‌هاي كشور مي‌تواند هدف مذكور را محقق سازد.
+ نوشته شده در شنبه بیست و دوم اردیبهشت 1386ساعت 0:58 توسط عزیز پورابراهیم |

نحوه ترجمه اسامی Domain توسط DNS

آيا تاکنون اين سوال برای شما مطرح شده است که پس از تايپ نام يک سايت در مرورگر وب، آدرس IP آن چگونه پيدا می شود؟ برای ارتباط با يک سايت ، می بايست قبل از هر چيز آدرس IP آن مشخص گردد . به منظور ترجمه اسامی کامپيوترهای ميزبان و Domain به آدرس های IP از پروتکل DNS استفاده می گردد.


Queries و Resolution
يک سرويس گيرنده به منظور استفاده از DNS و اخذ پاسخ لازم از دو روش متفاوت استفاده می نمايد :
  • در روش اول ، سرويس گيرنده با سرويس دهندگان نام ارتباط برقرار می نمايد . فرآيند فوق ماداميکه سرويس دهنده مجاز شامل اطلاعات مورد نياز پيدا نشود ، ادامه خواهد يافت ( روش non Recursive query ) .
  • در روش دوم ، ماموريت ترجمه نام به آدرس به DNS واگذار می شود . در اين روش سرويس گيرنده اقدام به ارسال درخواست خود برای DNS نموده و DNS پس از انجام عملياتی خاص و يافتن آدرس IP سايت درخواستی ، آن را برای سرويس گيرنده ارسال می نمايد (روش Recursive query ) .
شکل زير نحوه انجام کار در روش دوم را نشان می دهد :



به منظور آشنائی با نحوه انجام عمليات فوق به بررسی يک نمونه مثال می پردازيم . زمانی که شما قصد مشاهده يک وب سايت نظير وب سايت شرکت سيسکو ( www.cisco.com ) را داشته باشيد ، پس از فعال نمودن مرورگر وب و تايپ آدرس http://www.cisco.com و يا www.cisco.com ، پس از مدت زمان کوتاهی ! صفحه اصلی وب سايت در مرورگر شما نمايش داده می شود . برای يافتن آدرس IP وب سايت درخواستی مراحل زير دنبال می شود :
  • <LI dir=rtl>مرحله اول : فعال نمودن مرورگر و درج آدرس www.cisco.com در بخش آدرس آن . در اين مقطع کامپيوتر شما دارای آگاهی لازم در خصوص آدرس IP وب سايت سيسکو نمی باشد. بنابراين يک درخواست DNS را برای سرويس دهنده DNS مربوط به مرکز ارائه دهنده سرويس های اينترنت ( ISP ) ارسال می نمايد . حتما" اين سوال برای شما مطرح شده است که کامپيوتر به چه صورت از آدرس IP سرويس دهنده DNS آگاهی می يابد تا درخواست خود را برای وی ارسال نمايد ؟ در صورتی که شما از طريق Dial-up به اينترنت متصل شده ايد ، اين موضوع با استفاده از تنظيمات انجام شده ( ايستا و پويا ) پروتکل TCP/IP مرتبط با آداپتور مجازی Dial-up انجام خواهد شد . در صورتی که دارای يک اتصال دائم به اينترنت و از طريق يک شبکه محلی می باشيد ، اين موضوع با استفاده از تنظيمات انجام شده ( ايستا و پويا ) پروتکل TCP/IP مرتبط با آداپتور کارت شبکه انجام خواهد شد .

    مرحله دوم : سرويس دهنده DNS مرکز ارائه دهنده خدمات اينترنت ( ISP ) شما ، آدرس IP مربوط به سايت سيسکو را نمی داند و بدين دليل، آدرس سايت فوق را از يکی از سرويس دهندگان نام ريشه درخواست می نمايد .
  • مرحله سوم : سرويس دهنده DNS ريشه ، بانک اطلاعاتی خود را بررسی نموده و از سرويس دهنده DNS اوليه Cisco.com آگاهی می يابد ( IP : 198.133.219.25 ) . پس از آگاهی از آدرس IP سرويس دهنده DNS مربوط به cisco.com ، پاسخ لازم برای سرويس دهنده ISP شما ارسال می گردد.
  • مرحله چهارم : در اين مرحله سرويس دهنده DNS مرکز ISP شما دانش لازم به منظور ارتباط با سرويس دهنده DNS سيسکو را پيدا نموده و پس از برقراری ارتباط از وی آدرس IP وب سايت سيسکو ( www.cisco.com ) را جويا می شود. بدين منظور سرويس دهنده شما يک درخواست Recursive را برای سرويس دهنده DNS مربوط به Cisco.com ارسال می نمايد.
  • مرحله پنجم : سرويس دهنده DNS سيسکو، بانک اطلاعاتی خود را بررسی نموده و از وجود رکورد www.cisco.com در بانک آگاه می گردد. رکورد فوق دارای يک آدرس IP معادل IP:198.133.219.25 است . در اين حالت خاص ، سرويس دهنده وب بر روی ماشين مشابهی است که سرويس دهنده DNS نصب شده است . در صورتی که سرويس دهنده وب و سرويس دهنده DNS بر روی يک ماشين مشابه نصب نشده باشند ، آدرس IP آنان متفاوت بوده و اين موضوع از طريق رکوردهای منبع موجود در بانک اطلاعاتی سرويس دهنده DNS مشخص می گردد .
  • مرحله ششم : سرويس دهنده DNS مربوط به ISP شما از آدرس IP مربوط به www.cisco.com آگاهی پيدا نموده و نتايج را برای کامپيوتر شما ارسال می نمايد .
  • مرحله هفتم : کامپيوتر شما در اين مقطع دارای آگاهی لازم در خصوص آدرس IP وب سايت سيسکو بوده و می تواند با آن ارتباط برقرار نمايد . بنابراين کامپيوتر شما يک درخواست http را مستقيما" برای سرويس دهنده وب سيسکو ارسال نموده و از وی درخواست يک صفحه وب را می نمايد .
+ نوشته شده در شنبه بیست و دوم اردیبهشت 1386ساعت 0:56 توسط عزیز پورابراهیم |

يا Apache، يك انتخاب

IIS يا Apache، يك انتخاب





مهيار داعي‌الحق - ماهنامه شبکه


اشاره :

از زمان ارايه سيستم‌عامل شبكه‌اي ويندوز 0.4NT، وب سرورIIS يكي از اجزاي سيستم‌عامل‌هاي سرور مايكروسافت بوده كه نصب يا عدم نصب آن از طرف كاربر به صورت دلخواه و به راحتي در هر زماني قابل انجام بوده است. به عنوان مثال ويندوز 0.4 NT همراه 4IIS ، ويندوز 2000 همراه 5 IIS و ويندوز XP به همراه 1.5 IIS به بازار ارايه شدند. تا قبل از ويندوز 2003، كليه ويرايش‌ها و نسخه‌هاي مختلف IIS بسيار مشابه هم بودند و مي‌شد آن‌ها را جزء يك خانواده به حساب آورد، اما پس از آن و با به ميان آمدن ويندوز 2003، كه نسخه ششم IIS را به همراه خود داشت، قضيه كاملاً متفاوت شد. در اين نسخه كه مي‌توان آن را يك بازنويسي كامل از وب سرور قديمي دانست، بسياري از مدل‌هاي اجراي كد، تسهيلات مربوط به مديريت و سرعت و كارايي آن، دچار تغييرات و بهبودهاي قابل ملاحظه‌اي شده‌است. از طرف ديگرآپاچي با سابقه‌اي بيشتر كه براساس كدينگ http كار مي‌كرد، همواره به عنوان سمبل وب سرورهاي دنياي يونيكس مطرح بود. نسخه1.3 x آپاچي كه تا سال 2002 مورد استفاده قرار مي‌گرفت، با استفاده از ترفندهاي تكنيكي خاصي برروي ساير سيستم‌عامل‌ها و حتي ويندوز هم قابل نصب و اجرا بود. اما با پيدايش آپاچي نسخه 2، همين معادلات هم دچار تحولي بزرگ گرديد. اين نسخه كه داراي محيطي كاملاً تغيير يافته بوده و توابع درون آن با ظرافت هر چه تمام‌تر استقلال خود را از سيستم‌عامل تثبيت كرده بودند، توانست بر روي كليه سيستم‌عامل‌هاي ويندوز، يونيكس، لينوكس، مكOSX و حتي سيستم‌عامل‌هاي ديگري چونVMS و Be OS نصب و اجرا شود.


مقايسه

در مقام مقايسه IIS و آپاچي مي‌توان گفت كه هر كدام داراي مزايا و معايبي نسبت به يكديگر هستند. IIS فقط براي اجرا در ويندوز ساخته شده ‌است به‌خصوص نسخه ششم آن فقط در ويندوز 2003 قابل‌اجرا مي‌باشد. اگر چه بسياري از كارشناسان، اين مسئله را نوعي نقطه‌ضعف در ساختار IIS مي‌دانند، برخي ديگر هماهنگي بسيار دقيق ميان آن و ويندوز 2003 و سرويس‌هاي ديگر سيستم‌عامل را كه باعث آسان‌تر بودن مديريت IIS شده است، از نقاط برتري آن به حساب مي‌آورند. به‌خصوص در نسخه ششم جدا شدن ماژول مخصوص دريافت درخواست‌ها(Request) از ماژول ويژه پردازش آن‌ها، سهم به‌سزايي در افزايش كارايي آن داشته است. در اين روش ماژول Listener كه در كرنل مستقر شده است (Http.sys)، درخواست‌هاي ارسالي از طرف كلاينت‌ها را دريافت‌‌‌كرده و آن‌ها را به ترتيب در داخل يك يا چند صف درخواست قرار مي‌دهد. سپس IIS به اين درخواست‌ها با اختصاص حداقل يك پروسه كاري (Worker Process) به هر درخواست، پاسخ مي‌دهد. اين ويژگي باعث مي‌شود حتي زماني كه IIS به شدت مشغول پاسخ‌دهي به درخواست‌هاي قبلي است، ماژول جداگانه‌اي كه در كرنل مستقر است، بتوانند درخواست‌هاي جديد را دريافت كرده و حداقل آن‌ها را در انتظار پاسخ قرار دهند. همچنين با اين وضعيت، سيستم‌عامل مي‌تواند كنترل بهتري را در اختصاص پروسه‌هاي لازم به IIS جهت پردازش درخواست‌ها انجام دهد. در آپاچي هم جريان تا حدودي مشابه همين روال است. در اين جا تعدادي ماژول با قابليت انجام چند پردازش در واحد زمان (Multi Processing module) وظيفه دريافت و پاسخ به درخواست‌ها را برعهده دارند. اين ماژول‌ها كه با استفاده از تكنولوژي APR يا Apache Portable Runtime برروي بسياري از سيستم‌عامل‌هايي كه از كدهاي كامپايل شده زبان C پشتيباني مي‌كنند، قابل اجرا هستند، با استفاده از امكانات و قابليت‌هايMultithreading همان سيستم‌عامل ميزبان به سرعت و به صورت همزمان درخواست‌هاي رسيده از طرف كلاينت‌ها را دريافت و پردازش مي‌كنند.

امنيت




نحوه عملكرد وب سرور


يكي از مزاياي، IIS ارتباط تنگاتنگ موجود بين آن و سيستم‌عامل است. اين عامل سبب مي‌شود تا IIS با توجه به اين‌كه سيستم‌عامل بسياري از موارد امنيتي را قبل از رسيدن درخواست به وب سرور مورد بررسي قرار مي‌دهد و هويت كاربران متصل را ارزيابي (Authentication) مي‌كند، با اطمينان بيشتري به كار خود ادامه دهد. ضمن اين‌كه مدير سيستم هم به دليل اشتراك روشي كه در تأمين امنيت بين سيستم‌عامل و وب سرور وجود دارد، مجبور به دوباره كاري نمي‌شود. به عنوان مثال اگر شما در اكتيودايركتوري ويندوز 2003 دسترسي به يك يا چند فايل خاص را براي يك گروه از كاربران مجاز و براي گروهي ديگر غيرمجاز تعريف كرده باشيد، اين كاربران از هر روشي كه بخواهند به آن فايل‌ها دسترسي پيدا كنند (حتي از طريق وب سرور) بايد تابع قواعد تنظيم شده در اكتيودايركتوري باشند و اين قوانين در IIS نيز حكمفرما است.
در مورد آپاچي نسخه دوم، مسئله به اين سادگي و رواني نيست و قاعدتاً مديريت امنيت در مورد آن پيچيده‌تر و وقت‌گيرتر از IIS است. البته اكنون ماژول‌ها و آداپتورهاي جديدي در آپاچي تعبيه شده كه امكان ارتباط بين آن و اكتيودايركتوري ويندوز يا Password يونيكس را به‌وجود مي‌آورد، اما باز هم مي‌توان گفت كه اصولاً با وجود اين ارتباط هم در آپاچي، سيستم‌عامل و وب سرور هر كدام ساز خود را مي‌زنند و آپاچي چندان از قواعد امنيتي تعريف شده در سيستم‌عامل تبعيت نمي‌كند. البته بسياري از طرفداران آپاچي اين مسئله را نوعي نقطه قوت آپاچي دانسته و با ذكر اين نكته كه اولاً هر درخواست از طرف خارج بايد از دو سد محكم سيستم‌عامل و وب سرور عبور كند و ثانياً حفره‌هاي امنيتي در سيستم‌عامل‌هاي يونيكس و آپاچي بسيار كمتر از ويندوز و IIS است، استفاده از آپاچي را از لحاظ امنيتي داراي ريسك كمتري نسبت به IIS مي‌دانند.
از لحاظ پروتكل‌هاي امنيتي، هر دو وب سرور كليه پروتكل‌ها از جمله SSL ،IPsec و مكانيسم‌هاي هويت‌سنجي Basic Digest LDAP را پشتيباني مي‌كنند.


كارايي
مقايسه كارايي آپاچي و IIS همواره از مشكل‌ترين بحث‌هاي تكنيكي دنياي وب سرورها بوده است؛ چرا كه اين نوع مقايسه مستلزم به‌وجود آوردن شرايط يكسان آزمايش به صورت منصفانه‌ براي دو طرف رقابت است كه دست يافتن به اين شرايط، كاري آسان و صددرصد قابل انجام نمي‌باشد. شايد به تصور خيلي‌ها مي‌توان زمان دريافت، پردازش و پاسخ هر دو وب سرور به يك صفحه CGI يا JSP (كه مورد پشتيباني هر است) را برروي يك سرور با مشخصات سخت‌افزاري يكسان به معرض آزمون گذاشت، اما اين هم به نمي‌تواند تنهايي پاسخگوي معماي كارايي باشد. چرا كه اولاً شايد هر دو وب سرور ادعاي بهترين كارايي خود در تكنولوژي مشتركي مثل JSP را نداشته باشند. مثلاً شايد مايكروسافت ASP.NET را كه فعلا در آپاچي پشتيباني نمي‌شود، بهترين عرصه براي نمودار‌شدن كارايي IIS بداند. ثانياًٌ نبايد فراموش كرد كه آپاچي، يك وب سرور چند سكويي مي‌باشد و اين باعث مي‌شود تا صورت مسئله كمي پيچيده‌تر شود و كساني كه مي‌خواهند به داوري مسابقه كارايي اين دو وب سرور بنشينند را با سؤالي جديدتر روبرو كند و آن هم اين است كه IIS ويندوز را با آپاچي كدام سيستم‌عامل مقايسه كنيم ؟ آيا اصولاً آپاچي ادعايي بر ارايه بهترين كيفيت و كارايي خود برروي سيستم‌عامل مشترك ويندوز را دارد يا اين‌كه كماكان به سرعت خود برروي سيستم‌عامل‌هاي يونيكس و لينوكس مي‌بالد؟



نمودار ميزان رشد كاربرد


وب سرورهاي مختلف در ده سال اخير



در IIS 6 وجود مدل‌هاي متعدد پردازشي كه ويژه كار در محيط‌هاي چند پردازنده‌اي در نظر گرفته شده‌اند، سرعت اجراي برنامه‌هاي ASP و يا ISAPI را تا حد بسيار مطلوبي بالا برده‌اند. همچنين درايور HTTP.sys در اين نسخه قادر است به صورت مستقيم به اطلاعات موجود در cache (چه هاردديسك و چه حافظه اصلي) دسترسي پيدا كند بدون آن‌كه نيازمند وجود واسطه‌اي مثل پروسه‌هاي كاري براي انجام اين كار باشد. IIS همچنين قادر است صفحاتي را كه توسط عناصر ديناميك وب به صورت RunTime ساخته مي‌شوند را در cache ذخيره كند تا در صورتي كه كلاينت‌ بعدي هم بخواهد همين صفحه را توليد كند، به جاي ساختن دوباره آن، از محل cache اطلاعات را بدون پردازش خاصي به سمت كلاينت مذكور بفرستد.
در آپاچي نيز اوضاع به همين گونه است. ماژول‌هاي modperl وmodphp با استفاده از همان مكانيسم cache سرعت توليد صفحات ديناميك را همانند صفحات استاتيك به حداكثر خود مي‌رسانند. همچنين دقيقاً مشابه فيلترهاي ASP و ISAPI در IIS، در اين جا هم ماژول‌هاي Perl و PHP مستقيماً درخواست‌هاي كلاينت‌ها را مورد بررسي قرار داده و پاسخ لازم را ارسال مي‌كنند و بدين وسيله از ارجاع درخواست‌ها به محيط خارج آپاچي و كند شدن روند پاسخ جلوگيري مي‌كنند.


مديريت
در مورد مديريت وب سرور، اختلافاتي بين دو وب سرور مذكور وجود دارد. آپاچي در نسخه‌هاي اوليه خود، وب سروري كاملا TextBased به نظر مي‌‌رسيد كه صرفاً با دستكاري مستقيم در فايل‌هاي پيكربندي، تنظيم وب سرور و يا با استفاده از دستورات خط فرمان مديريت آن امكان‌پذير بود. اما اكنون بسياري از واسط كاربرهاي گرافيكي مثل Comanche قادرند يك محيط گرافيكي كاربرپسند و در واقع يك لايه بيروني براي كار با آپاچي فراهم كنند. در اين زمينه ليستي از واسط كاربرهاي گرافيكي تهيه شده در سايت آپاچي به نشاني
http://gui.apache.org موجود و قابل داونلود است. البته بسياري از كاربران وجود مديريت و تنظيمات Text Based را براي آپاچي يك مزيت عنوان مي‌كنند. به عقيده اين افراد، با اين نوع پيكربندي آپاچي مي‌توان به سادگي و صرفاً با كپي كردن چند فايل از كامپيوتري به كامپيوتر ديگر همه تنظيمات يك سرور آپاچي را به سرور ديگر منتقل و از صرف وقت براي تنظيم دستي آن خلا‌ص شد. اين مسئله براي وب سروري مثل IIS كه تنظيمات خود را در قالب فايل‌هاي باينري نگهداري مي‌كند، قابل انجام نيست. البته در IIS 6 تنظيمات وب سرور در قالب فايل‌هاي XML قابل دسترسي است. و بدين‌وسيله و با روش Import و Export مي‌توان تنظيمات يك وب‌‌سرور را به ديگري منتقل كرد. همچنين اينكه علاوه بر اين كار، IIS 6 امكان مديريت راه‌دور را از طريق دستورات خط فرمان و اجراي آن با پروتكل Telnet را مشابه آپاچي به كاربران خود داده است. در ضمن هر دو وب سرور، امكان مديريت از طريق وب را به كاربران داده‌اند. IIS از طريق Web Based Administration و آپاچي با استفاده از ابزاري به نام Webmin اين تسهيلات را مهيا كرده‌اند.

قابليت اطمينان
IIS 6 با جدا كردن حافظه و محل اجراي برنامه‌هاي وب از يكديگر، باعث شده است در صورت بروز يك مشكل در هر يك از برنامه‌هاي در حال اجرا، اين مشكل به ساير برنامه‌ها و پردازش‌هاي در حال اجرا سرايت نكند. در آپاچي نسخه دوم اين عمل تا حدودي قابل انجام است. بدين‌معني كه اصولاً آپاچي با مكانيسم‌هاي تشخيص و ترميم خطا، از سرايت مشكل به قسمت‌ها و پردازش‌هاي ديگر جلوگيري مي‌كند، اما به طور كلي نمي‌تواند همانند IIS عمل جداسازي برنامه‌ها از يكديگر را انجام دهد و در برخي موارد، بروز يك مشكل در يكي از پردازش‌ها، مدير وب را ناچار به راه‌اندازي مجدد (Restart) وب سرور مي‌كند.
نكته دوم در اين مقايسه هم به نفع IIS تمام مي‌شود. بدين صورت كه در نسخه ششم آن امكان پيكربندي مجدد سيستم حتي در زمان اجراي پردازش‌ها و بدون‌نياز به راه‌اندازي مجدد وب‌سرور امكان‌پذير است. اين امكان كه به آن Live Configuration گفته مي‌شود، سبب مي‌شود مدير سيستم بتواند بدون آن‌كه وب سرور و در نتيجه بسياري از پردازش‌هاي در حال اجرا و درخواست‌هاي در حال پاسخگيري را متوقف كند، تنظيمات IIS را تغيير دهد و وب‌ سرور را Refresh كند. در صورتي كه در آپاچي نسخه دوم، اين عمل بدون بوت كردن مجدد وب سرور ميسر نيست.


Apache 2.1 Alpha
در نسخه 1/2 آپاچي كه نسخه ابتدايي آلفاي آن اكنون قابل دريافت و نصب است، وعده‌هاي بسياري براي افزايش كارايي يا پوشاندن نقاط ضعف نسخه‌هاي قبلي داده شده‌است. بسياري از ماژول‌هاي مربوط به chaching Authn/Authz مورد بازبيني قرار گرفته و نسبت به نسخه‌هاي سابقشان از كارايي بهتري برخوردارند. پروتكل http در اين نسخه قادر است فايل‌ها يا درخواست‌هاي با بيش از دو گيگابايت را دريافت و پردازش كند. مكانيسم smart Filtering در آپاچي 1/2 از يك شيوه جديد فيلترگذاري پويا برخوردار است كه باعث مي‌شود تا هر فيلتر براساس نوع درخواست يا پاسخي كه قرار است كنترل شود، فعال يا غيرفعال عمل كند. همچنين در اين نسخه ماژول جديدي براي ثبت كردن خطاهايي كه در ارتباط با كلاينت‌ها رخ مي‌دهد، تعبيه شده است. مديريت حافظه stack براي پردازش‌هاي در حال اجرا تغييريافته و اكنون آپاچي قادر است براساس سكويي كه برروي آن در حال اجرا است، ميزان اين حافظه را افزايش دهد. از لحاظ امنيتي به غير از تغييرات ايجاد شده در ماژول‌هاي مربوط به هويت‌سنجي كه بيشتر باعث افزايش سرعت فرآيندهاي مربوط به آن‌ها شده است، ماژول modssl نيز اكنون با پشتيباني از RFC7182، قادر‌است به جاي برقراري ارتباط به روش متني (chear text)، از روش كدگذاري TLS براي اين كار استفاده كند.
+ نوشته شده در شنبه بیست و دوم اردیبهشت 1386ساعت 0:45 توسط عزیز پورابراهیم |

۱۲ راه برای کدنویسی بهتر

جوئل اسپولسکی بنیانگذار Fog Creek Software است که یک شرکت کوچک نرم افزاری در شهر نیویورک است.او فارغ التحصیل دانشگاه یل(Yale University) است وبه عنوان برنامه نویس و مدیر در مایکروسافت ،Viacom و Juno کارکرده است.

جوئل مقاله جالبی در باب کد نویسی دارد ه با عنوان ۱۲ راه برای کد بهتر :


تست جوئل -- The Joel Test : 12 راه برای کد بهتر


توسط جوئل اسپولسکی


آیا تا بحال نام SEMA (Software Engineering Measurement and Analysis) را شنیده اید؟ SEMA ، سیستم نسبتاً مبهمی است برای اندازه گیری شايستگی یک تیم نرم‌افزاری. نه! صبر كنيد، به سایت آن نروید، زیرا فقط شش سال طول می‌کشد تا مطالب آن را بفهمید. به همین علت من تست کاملاً نامرتب و نامعتبر (!) خودم را برای ارزیابی كيفيت یک تیم نرم‌افزاری درست كردم. بهترین قسمت ماجرا اینجاست كه فقط سه دقیقه از وقتتان را می‌گيرد. با وقتی كه صرفه جویی می‌كنید، می‌توانید به سراغ حرفه پزشكي بروید[1]!



۱. آیا از سیستم كنترل سورس بهره می‌برید؟

۲. آیا می‌توانید در یك مرحله، برنامه‌تان را build كنید؟

۳. آیا دارای build روزانه هستید؟

۴. آیا بانك اطلاعاتی از اشكالات ((bugs دارید؟

۵. آیا قبل از نوشتن كد جدید، به رفع اشكالات کنونی می‌پردازید؟

۶. آیا برنامه زمان‌بندیتان به روز است؟

۷. آیا دارای لیست مشخصات هستید؟

۸. آیا برنامه‌نویسان شما محیط آرامی برای كار كردن دارند؟

۹. آیا بهترین ابزارهایی را که وجود دارد می‌خرید؟

۱۰. آیا بخش تست شما جداست؟

۱۱. آیا داوطلبان جدید در موقع مصاحبه، کد هم می‌نویسند؟

۱۲. آیا از آزمایش « قابلیت استفاده راهرویی » سود می‌جویید؟





ویژگی شسته و رفته تست جوئل در این است كه به راحتی می‌توان به هر سؤال جواب بله یا نه داد. شما مجبور نیستید كه تعداد خطهای كد در روز یا تعداد متوسط اشكال در هر قسمت را بشمارید. نقطه ضعف تست جوئل در این است كه نباید از آن برای اطمینان از صحت نرم‌افزار نیروگاه اتمی خود استفاده كنید!



امتیاز 12 عالی، 11 قابل قبول و 10 یا پایینتر نشان دهنده مشكلات جدی است. واقعیت در این است كه بیشتر موسسات نرم‌افزاری با امتیاز 2 یا 3 در حال فعالیت هستند و به كمك جدی نیاز دارند، چرا كه شركتهایی مانند Microsoft تمام مدت با امتیاز 12 اداره می شوند.



البته، اینها تنها موارد مشخص كننده موفقیت یا شكست نیستند: مثلاً ، اگر شما تیم ماهری دارید كه بر روی محصولی كه هیچ كس آن را نمی خواهد كار می‌كند، خوب، مردم باز هم آن محصول را نخواهند خواست. از طرفی، تیم غیر عادی را می‌توان تصور كرد كه بدون انجام هیچ كدام از این كارها، نرم‌افزار فوق‌العاده ای تولید كند و دنیا را تغییر دهد. اما اگر همه شرایط برابر باشند، با رعایت این ۱۲ نكته، تیم منضبطی خواهید داشت كه همیشه موفق به تحویل پروژه‌هایش می‌شود.



۱. آیا از سیستم كنترل سورس بهره می‌برید؟

من هم از پكیجهای تجاری كنترل سورس استفاده كردم، و هم از CVSكه مجانی است ؛ و بگذارید به شما بگویم كه CVS مناسب است. اما اگر سورس كنترل ندارید، فشار زیادی را برای اینكه برنامه‌نویسانتان بتوانند با هم كار كنند متحمل می‌شوید: برنامه‌نویسها راهی برای اینكه بدانند بقیه چه كرده اند، ندارند. و اشتباهات، به راحتی قابل بازگشت نیستند. و در آخر اینكه چون كد برنامه بر روی دستگاه تمام برنامه‌نویسان check out می‌شود، تا بحال نشنیده‌ام كه پروژه‌های دارای سورس كنترل ، كد زیادی را به اشتباه از دست دهند.





۲. آیا می‌توانید در یك مرحله، برنامه‌تان را build كنید؟

منظورم این است: برای ایجاد نسخه قابل تحویل به مشتری از آخرین سورس، چند مرحله وجود دارد؟ در تیمهای خوب، یك اسکریپت وجود دارد كه با اجرای آن، یك check outكامل صورت می‌گیرد، تمام كد كامپایل می‌شود، EXE ها ساخته می‌شوند (در تمامی نسخه‌ها، زبانها و #ifdef ها) ، پكیج قابل نصب تولید می‌شود و بالاخره در فرم رسانه نهایی (CD یا وب‌سایت یا ...) ایجاد می‌شود.



اگر این رویه بیشتر از یك مرحله داشته باشد، مستعد اشتباه است. و هر چقدر به زمان تحویل نزدیكتر می‌شوید، احتیاج به چرخه سریعتری برای تصحیح «آخرین» bug، و ساختن EXE نهایی دارید. اگر كامپايل كردن كد، اجرای سازنده installerو بقیه كارها بیست مرحله به طول انجامد، دست به اشتباهات احمقانه خواهید زد.



فقط به همین علت، آخرین شركتی كه در آن كار می‌كردم، از WISE به InstallShield تغییر كرد: لازم بود كه رویه ایجاد installer از روی یك script به صورت خودكار نیمه شبها توسط NT Scheduler اجرا شود و WISE چنین قابلیتی نداشت. (دوستان خوب ما در WISE به من اطمینان داده اند كه آخرین نسخه شان توانایی build های شبانه را دارد.)





۳. آیا دارای build روزانه هستید؟

وقتی كه از كنترل سورس استفاده می‌كنید، گاهی پیش می‌آید كه یك برنامه‌نویس چیزی را check in می‌كند كه باعث شكستن build می‌شود. به عنوان مثال، یك برنامه‌نویس یك فایل سورس جدید اضافه كرده است و همه چیز روی دستگاه خودش درست كامپایل می‌شود، ولی یادشان می‌رود كه فایل را به مخزن كد (repository) اضافه كند. دستگاه خودش را هم قفل كرده و بی توجه و خوشحال به خانه می‌رود. حالا كسان دیگری نیز نمی تواند كار كنند. آنها هم به خانه می‌روند، البته غمگین.



شكستن بیلد آنقدر بد (و رایج) است كه درست كردن بیلد روزانه كمك می‌كند كه چنین موضوعی ناشناخته نماند. در تیمهای بزرگ، یك راه این كه مطمئن شوید كه چنین مشكلاتی در اولین فرصت برطرف شوند، این است كه بیلد روزانه را هر روز، هنگام ناهار انجام دهید. همه تمامی check in هایی را كه می‌توانند قبل از رفتن به ناهار انجام می‌دهند. بیلد، زمانی كه همه برگشتند تمام شده است. اگر كه همه چیز درست است، كه فبحال! آخرین نسخه سورس توسط همه check out شده و كار ادامه پیدا می‌كند. اما اگر كه عمل بیلد با موفقیت روبرو نشده باشد، افراد با نسخه سالم قبلی به كار خود ادامه می‌دهند.



در تیم Excel، با قانونی داشتیم: ‌هر كسی كه build را می‌شكست، به عنوان تنبیه، مسؤولیت نگهداری از بیلدها را عهده دار می‌شد. این انگیزه خوبی بود هم برای جلوگیری از شكستن بیلد، و هم راه خوبی بود برای این كه همه (به صورت چرخشی)‌ یاد بگیرند كه رویه چطور است.



می‌توانید در مقاله دیگرم – Daily Builds are Your Friend – در مورد build های روزانه بیشتر بخوانید.





۴. آیا بانك اطلاعاتی از اشكالات ((bugs دارید؟

برایم مهم نیست كه در این مورد چه فكر می‌كنید. اما اگر حتی در یك تیم یك نفره مشغول تولید كد هستید و از بانك منظمی كه تمامی ایرادات برنامه را لیست ‌كند استفاده نمی‌كنید، حتماً كد با كیفیت پایین تحویل خواهید داد. برنامه‌نویسان زیادی فكر می‌كنند كه می‌توانند لیست اشكالات و باگها را در كله خود نگهدارند. چه مزخرفاتی! من در آن واحد بیشتر از دو یا سه باگ را نمی‌توانم بخاطر بسپارم، و صبح روز بعد، یا با عجله‌ای که زمان تحویل دارید، همه به فراموشی سپرده می‌شوند. قطعاً باید به صورت رسمی و مکتوب لیست اشكالات را نگهداری كنید.



بانك باگ می‌تواند پیچیده و یا ساده باشد. یك بانك باگ سودمند باید حداقل اطلاعات زیر را در مورد هر باگ نگهدارد :



§مراحل كامل برای باز توليد اشكال

§رفتاری كه انتظار آن می‌رود

§رفتار (ایراد داری) كه واقعاً رخ می‌دهد

§فردی كه رفع اشكال به او واگذار شده است

§آیا اشكال رفع شده است یا خیر



اگر پیچیدگی نرم‌افزار پی‌گیری باگها مانع از آن می‌شود كه چنین كاری را انجام دهید، یك جدول پنج ستونه (با فیلدهای ضروری فوق) بسازید و شروعبه انجام این كار كنید.



برای اطلاعات بیشتر در مورد ردیابی باگها، مقاله Painless Bug Tracking را بخوانید.





۵. آیا قبل از نوشتن كد جدید، به رفع اشكالات کنونی می‌پردازید؟

اولین نسخه Word تحت ویندوز، پروژه « نوحه مرگ » محسوب می‌شد که نوشتن آن به درازا ‌كشید، فرجه‌ها دایماً به سر می‌رسیدند؛ افراد تیم، ساعتهای مسخره آمیزی كار می‌كردند، و پروژه باز ... و باز ... و باز به تاخیر می‌افتاد. استرس باور نكردنی بود. وقتی بعد از چندین سال، بالاخره محصول لعنتی‌اش بیرون آمد، مایكروسافت كل تیم Word را برای استراحت به جنوب مكزیك فرستاد ؛ و خودش به كنكاش روحانی جدی دست زد.



مایکروسافت متوجه شد كه مدیران پروژه آنقدر بر حفظ « زمان بندی » (schedule) اصرار داشتند كه برنامه‌نویسان مجبور به كد نویسی با عجله شده بودند، ‌و بسیار بد كد می نوشتند - به این علت كه فاز bug fix جز زمان‌بندی رسمی نبود. تلاشی برای پایین نگهداشتن تعداد خطاها وجود نداشت. حتی برعكس، روایت شده كه یكی از برنامه‌نویسان كه مسؤول نوشتن كد محاسبه ارتفاع خطوط متن بود، فقط نوشت: return 12; و بعد هم منتظر نشست تا در گزارش باگها بیاید كه تابع‌اش ، همیشه درست كار نمی‌كند. زمان‌بندی پروژه صرفاً تبدیل شده بود به لیستی از باگهایی كه باید تولید می‌شد! بعدها، از این اتفاق با عنوان « متدولوژی عیوب نامحدود » (infinite defects methodology) یاد شد.



برای حل این معضل، مایكروسافت « متودولوژی كمترین عیوب‌» (zero defects methodology) را به صورت فراگیری اتخاذ كرد. بسیاری از برنامه‌نویسان داخل شركت خندیدند – چون به نظر می‌رسید مدیریت به این نتیجه رسیده بود كه با یك حكم سازمانی تعداد باگها را كم كند. اما در واقع، معنی « كمترین عیوب‌»‌ در این است كه در هر لحظه، بالاترین اولویت در رفع باگهاست، نه نوشتن كد جدید. اما چرا؟



به صورت كلی، هر چه برای تصحیح یك اشكال بیشتر معطل كنید، هزینه تصحیح آن (از لحاظ وقت و پول) بیشتر خواهد بود.



به عنوان مثال، وقتی كه اشتباه تایپی انجام می‌دهید و كامپایلر آن را catch می‌كند، تصحیح آن كار اساساً ساده‌ایست. به همین ترتیب، بار اولی كه كدتان را اجرا می‌كنید و در آن اشكالی می‌بینید، می‌توانید بلافاصله آن را تصحیح كنید، چون همه كد در ذهنتان وجود دارد.



اما اگر در كدی كه چند روز پیشتر آن را نوشته‌اید، ایرادی بیابید، یافتن محل دقیق آن مدتی طول خواهد كشید، البته وقتی كه كدتان را باز خواني كنید همه چیز بالاخره یادتان می‌آید و در یك زمان قابل قبول مشكل رفع می‌شود.



اما بالاخره اگر در كدی كه چند ماه پیش آن را نوشته‌اید باگی پیدا شود، به احتمال زیاد چيزهای زیادی را در مورد آن كد به فراموشی سپرده‌اید و تصحیح آن بسیار سخت‌تر است. ممكن است مشغول تصحیح باگ كد كسی شده باشید كه در آن لحظه برای مرخصی به جزایر دریای كارایب رفته باشد. در این صورت، تصحیح باگ به صورت یك علم در می‌آید :‌ باید با درایت، وسواس، نظم و بدون هیچ تصوری از مدت زمانی كه یافتن راه حل طول می‌كشد، عمل كنید.



اگر در كدی كه تحویل داده‌اید ایرادی بیابید، متحمل هزینه باز هم زیادتر برای اصلاح آن خواهید شد.



پس اولین دلیلی كه باید باگها را بلافاصله رفع كرد، كم کردن زمان لازم برای این كار است. دلیل دیگری هم وجود دارد: پیش‌بینی مدت زمان لازم برای نوشتن كد جدید، راحتتر از پیش‌بینی زمان لازم برای رفع یک باگ است. مثلاً اگر از شما بپرسم كه چقدر زمان برای نوشتن كدی برای مرتب‌سازی یك فهرست لازم دارید، جواب نسبتاً دقیق می‌توانید به من بدهید. اما اگر از شما بپرسم در جایی كه IE 5.5 نصب شده باشد و کدتان دیگر كار نمی‌كند چقدر زمان لازم دارید تا باگ مربوطه را رفع كنید، بعید می‌دانم كه حتی بتوانید حدسی بزنید! چرا كه (بنابر تعریف صورت مسأله) نمی‌دانید كه منشأ مشكل كجاست. ممكن است سه روز وقتتان را بگیرد، ممكن هم هست كه فقط دو دقیقه.



به بیان دیگر، اگر در برنامه زمان‌بندیتان تعداد زیادی باگی كه باید رفع شوند، وجود داشته باشد، زمان‌بندیتان غیر قابل اعتماد است. اما اگر تمامی ایرادهای شناخته شده را تصحیح كرده‌اید و فقط كد جدید مانده، زمان‌بندیتان به طرز حیرت آوری دقیقتر خواهد بود.



نكته خوب دیگری هم كه صفر نگهداشتن تعداد باگها در هر زمان دارد، عکس‌العمل سریعتر در برابر رقباست. بعضی برنامه‌نویسان این قضیه را به « آماده تحویل بودن‌» محصول در تمام لحظات، تعبیر می‌كنند. اگر رقیب شما امكان مشتری‌كُشی[2] عرضه كرد، شما هم می‌توانید آن امكان را فوراً به برنامه‌تان اضافه كنید و آن را تحویل دهید، بدون این كه مجبور به تصحیح تعداد زیادی ایراد انباشته شده باشید.





۶. آیا برنامه زمان‌بندیتان به روز است؟

می‌رسیم به بحث شیرین زمان‌بندی. اگر كدتان برای شركتتان اهمیتی داشته باشد، پس حتماً به دلایل زیادی برای شركتتان زمان اتمامش هم مهم هست. برنامه‌نویسان به صورت خیلی مفتضحی در زمینه زمان‌بندی، ترشرو هستند :‌ سر قسمت بیزنس فریاد می‌كشند « کار وقتی تمام می‌شود كه تمام شده باشد ! ‌»



متاسفانه، این اصلاً به درد نمی‌خورد. برنامه‌ریزیهای زیادی باید قبل از تحویل نهایی كد انجام گیرد : دمونستراسیون، نمایشگاه‌ها، تبلیغات و غیره. و تنها راه انجام این كارها، داشتن برنامه‌زمان بندی و به روز نگهداشتن آن است.



فایده حیاتی دیگر داشتن برنامه‌ زمان‌بندی در این است كه مجبورتان می‌كند تصمیم بگیرید چه امكاناتی[3] را می‌خواهید در برنامه بگنجانید و این که امكانات با اولیت پایینتر را حذف كنید، و گرفتار بیماری featuritis نشوید. (featuritis / scope creep / creeping featurism، و یا گرایش به ویژگیهای نو، بیماری طراحان است ؛ طراحان مبتلا به این بیماری دوست دارند که به سیستم پیچیده‌ای بدون برنامه‌ریزی كافی امكانات و ویژگیهای نو اضافه کنند؛ و در واقع آن را - به صورت غیر اصولی - فقط پیچیده‌تر كنند!)



نگهداشتن schedule‌ (برنامه زمان‌بندی)، الزاماً سخت نیست. مقاله دیگرم، Painless Software Schedules - كه راه ساده‌ای برای این كار یاد می‌دهد - را بخوانید.





۷. آیا دارای لیست مشخصات هستید؟

نوشتن لیست مشخصات (specifications) درست مثل استفاده از نخ دندان است:‌ همه قبول دارند كه كار خوبی است ولی هیچ كس حوصله‌اش را ندارد.



دقیقاً مطمئن نیستم كه چرا ؛ احتمالاً به این علت است كه برنامه‌نویسان از نوشتن مستندات متنفرند. در نتیجه، تیمهایی كه همه اعضایش برنامه‌نویس هستند وقتی سراغ مسأله‌ای می‌روند، ترجیح می‌دهند كه راه‌حلشان به زبان كد باشد تا به صورت سند. ترجیح می‌دهند كه از اول شیرجه بزنند و كد بنویسند تا این كه ابتدا یك لیست مشخصات درست كنند.



در مرحله طراحی، اگر به معضلی بر بخورید، به سادگی با تغییر چند خط می‌توانید آن را حل كنید. اما زمانی كه كد نوشته شده است، هزینه درست كردن معضلات بسیار گزاف است :‌ هم از لحاظ عاطفی (چون مردم از دور انداختن كد خود متنفرند)، و هم از لحاظ زمانی، و به همین علت نوعی مقاومت در مقابل درست كردن معضل بوجود مي‌آید. نرم‌افزاری كه از روی لیست مشخصات (specifications) تولید نشود معمولاً نتیجه‌اش طراحی بد و زمان‌بندی خارج از كنترل است. به نظر می‌رسد كه مشكل Netscape نیز همین بوده - چهار نسخه اول آن قدر شلم شوربا شد كه مدیریت به طرز احمقانه‌ای تصمیم گرفت همه كد آن را دور بياندازد و از صفر شروع كند. سر Mozilla هم دوباره همین اشتباه را مرتكب شدند، كه محصول آن هیولایی خارج از كنترل است كه چند سال طول كشیده تا فقط به مرحله آلفا برسد.



تئوری مورد علاقه من این است كه اگر برنامه‌نویسان را به یك دوره متمركز نویسندگی بفرستید، یاد خواهند گرفت که نویسندگان با ذوقی شوند. راه حل دیگر، استخدام مدیر برنامه (program manager) زبردستی است كه خود نوشته‌ها را تهیه كند. در هر دو حالت، ‌باید قانون « هیچ كدی بدون مشخصات پذيرفته نیست » را به اجرا بگذارید.



در نوشته چهار قسمتی من، هر چه كه در مورد نوشتن مشخصات لازم دارید را می‌توانید بخوانید.





۸. آیا برنامه‌نویسان شما محیط آرامی برای كار كردن دارند؟

این موضوع - كه با دادن فضای مناسب، ایجاد آرامش و محیط دنج (privacy) به كارمندان IT (یا اصطلاحاً knowledge workers) – بهره‌وری افزایش می‌یابد ،‌ به صورت گسترده‌ای مستند شده است. كتاب كلاسیك مدیریت نرم‌افزار، PeopleWare ، این موارد را بر می‌شمرد.



مشكل اینجاست: همه ما می‌دانیم كه نیروی كار فنی با قرار گرفتن در جریانی كه از آن به « در بحر موضوع رفتن » تعبیر می‌شود - بهتر كار می‌كنند ؛ این زمانی است كه تمركزشان كاملاً بر روی كارشان است و حواسشان کاملاً از محیط اطرافشان پرت شده است. احساس زمان را از دست می‌دهند و از طریق تمرکز مطلق، چیزهای عالی‌ای خلق می‌کنند. نویسندگان، برنامه‌نویسان، دانشمندان، و حتی بازیکنان بسکتبال در مورد حالت « در بحر موضوع فرو رفتن »‌ می‌توانند برای شما توضیح دهند.



وارد شدن به این حالت کار ساده‌ای نیست. اگر اندازه‌گیری کنید، می‌بینید که حدوداً ۱۵ دقیقه طول می‌کشد تا به حداکثر کارایی خود برسید. بعضی مواقع، زمانهایی که خسته هستید و یا به اندازه کافی برای آن روزتان خلاقیت به خرج داده‌اید، دیگر نمی‌توانید در بحر موضوع بروید و بقیه روز را به کارهای بیهوده، خواندن وب و Tetris بازی کردن می‌گذرانید.



مشکل دیگر در اینجاست که از دست دادن تمرکز کار ساده ‌ایست :‌سر و صدا، تماسهای تلفنی، ناهار را بیرون خوردن، آن پنج دقیقه‌ای که برای نوشیدن قهوه تا کافی‌شاپ صرف رانندگی می‌کنید، و علی‌الخصوص مزاحمتها و سؤالهای همکاران، همگی تمرکز را از بین می‌برند. اگر همکار شما ازتان سؤالی بپرسد که یک دقیقه کارتان را متوقف کند، ولی آنقدر حواستان را پرت کند که نیم ساعتی طول بکشد تا به حالت سابق برگردید، بهره‌وری کلی تیمتان در خطر جدی قرار دارد. اگر در محیط شلوغی کار می‌کنید – از همان نوعی که dotcom های کافئین‌زده سخت عاشق آن هستند و در آنها بخش فروش زیر گوش برنامه‌نویسان مشغول داد و بیداد هستند - بهره‌وری شما سقوط بدی خواهد کرد.



در مورد برنامه‌نویسان (به نسبت بقیه knowledge workers و طیفهای دیگری که نیازمند تمرکز زیاد هستند)، قضیه سختتر است. بهره‌وری، به توانایی شعبده بازی با جزئیات زیادی در حافظه موقت بستگی دارد. هر نوع وقفه‌ای باعث بهم ریختن این جزئیات می‌شود. وقتی کارتان را از سر می‌گیرید، هیچ کدام از جزئیات (نظیر نام متغیرهای محلی یا اين که تا کجای پیاده‌سازی الگوریتم جستجویتان را انجام داده بودید) یادتان نخواهد آمد و مجبور به مراجعه به کار قبلتان هستید که سرعتتان را می‌گیرد.



ریاضیات این مسأله زیاد سخت نیست: فرض کنید (که شواهد هم این فرض را تأیید می‌کنند) که اگر برای یک دقیقه هم یک برنامه‌نویس را متوقف کنید، پانزده دقیقه از بهره‌وریش کم می‌کنید. برای مثال، Jeff‌ و Mutt (که هر دو برنامه‌نویس هستند) را در دو پارتیشن کنار هم قرار می‌دهیم (در یک فضای کاملاً Dilbert ای). مات، نام تابع کپی رشته در یونیکد را به خاطر نمی‌آورد. می‌تواند جواب آن را جستجو کند - که ۳۰ ثانیه طول می‌کشد، و یا این که از جف بپرسد - که ۱۵ ثانیه طول خواهد کشید. خوب، چون جف در کنارش نشسته است ترجیح می‌دهد که از او بپرسد. حواس جف پرت می‌شود و ۱۵ دقیقه را از دست می‌دهد (برای این که مات ۱۵ ثانیه صرفه‌جویی کرده باشد.)



حالا اجازه دهید که جف و مات را در دو اتاق (با در و دیوار)‌ جدا بگذاریم. اکنون وقتی که مات اسم تابع را به خاطر نمی‌آورد، می‌تواند جواب آن را جستجو کند (که همان ۳۰ ثانیه طول می‌کشد)‌ و یا این که از جف بپرسد که ۴۵ ثانیه طول می‌کشد و شامل از جای خود بلند شدن هم می‌شود (که با توجه به وضعیت جسمی معمول برنامه‌نویسان و مسایل ديگر ‌، کار ساده‌ای نیست!). بنابر این ترجیح می‌دهد که جوابش را جستجو کند. ۳۰ ثانیه وقتش تلف می‌شود اما ۱۵ دقیقه به نفع جف است! وای!





۹. آیا بهترین ابزارهایی را که وجود دارد می‌خرید؟

نوشتن کد در یک زبان کامپایل شده از کارهایی است که هنوز بر روی کامپیوترهای خروس‌نشان، نمی‌توان با سرعت انجام داد. اگر فرآیند کامپایل، بیشتر از چند ثانیه طول می‌کشد، خرید جدیدترین و بهترین کامپیوتر در وقتتان صرفه‌جویی خواهد کرد. اگر کامپایل کردن حتی ۱۵ ثانیه طول بکشد، برنامه‌نویسها حوصله‌شان سر می‌رود و می‌روند به سراغ خواندن سایت The Onion ، که آن هم تمام هوش و حواسشان را به خود خواهد برد و ساعتها بهره‌وری از بین می‌رود.



debug کردن کد GUI با یک مانیتور اگر غیر ممکن نباشد، بسیار سخت و دردناک است. اگر در حال نوشتن کد GUI هستید، داشتن دو مانیتور همه چیز را بسیار ساده خواهد کرد.

بیشتر برنامه‌نویسان باید یک زمانی فایلهای bitmap‌ را (برای iconها و toolbarها) دستکاری کنند و اکثراً ویرایشگر مناسب برای این کار ندارند. استفاده از MS Paint برای این کار بیشتر شبیه یک شوخی است، که البته غالب برنامه‌نویسها از همین روش استفاده می‌کنند.



در محل کار قبلی‌ام، admin شبکه دایماً برای من spamمی‌فرستاد و غر می‌زد که من بیشتر از ۲۲۰ مگابایت فضای مجازم، روی سرور جا اشغال کرده‌ام. من روزی جواب دادم که با توجه به قیمت هارد دیسک، هزینه فضای مورد استفاده کمتر از هزینه دستمال کاغذی من است و صرف کردن حتی ده دقیقه از وقتم برای کوچک کردن دایرکتوری‌ام یک هدر دادن اشرافی بهره‌وری است.



تیمهای تولید نرم‌افزار درجه یک، برنامه‌نویسان خود را شکنجه نمی‌کنند. حتی موضوعات جزیی اعصاب‌خردکن ناشی از داشتن ابزار نامناسب، جمع می‌شود و برنامه‌نویسها را بد اخلاق و ناراحت می‌کند. یک برنامه‌نویس بد خلق، یک برنامه‌نویس با کارایی پایین است.



یک نکته دیگر هم اضافه کنم‌... برنامه‌نویسها را به راحتی می‌توان با رشوه دادن - بوسیله جدیدترین و باحالترین وسایل - تطمیع کرد. این برایتان خیلی ارزانتر از دادن حقوق مکفی تمام می‌شود!





۱۰. آیا بخش تست شما جداست؟

اگر در تیم شما افرادی که وقتشان اختصاصاً برای تست کردن باشد – حداقل یک نفر برای هر دو یا سه برنامه‌نویس – وجود نداشته باشد، شما یا محصولات باگ‌دار تحویل خواهید داد؛ و یا این که با پرداخت ۱۰۰ دلار در ساعت به جای ۳۰ دلار در ساعت، پولتان را هدر می‌دهید. خساست در زمینه افراد جهت بخش تست، آن قدر صرفه‌جویی احمقانه‌ایست که من واقعاً تعجب می‌کنم چرا اکثر مردم نمی‌فهمند.



مقاله Top Five (Wrong) Reasons You Don’t Have Testers را که در مورد همین موضوع نوشتم، بخوانید.





۱۱. آیا داوطلبان جدید در موقع مصاحبه، کد هم می‌نویسند؟

آیا شما حاضرید یک شعبده‌بازی را بدون این که چند حقه برایتان اجرا کند، استخدام کنید؟ معلوم است که نه. آیا برای عروسیتان، آشپزی که غذایش را نچشیده باشید، استخدام می‌کنید؟ بعید می‌دانم. (مگر این که خاله بزرگتان باشد و بترسید که تا آخر عمر از شما به دل بگیرد و برنجد.)



با این وجود، هر روز، برنامه‌نویسهایی بخاطر داشتن resume جالب یا به این خاطر که مصاحبه‌گر از گپ زدن با او لذت برده، استخدام می‌شوند. یا باید به سوالات ساده‌ای مانند ‌« فرق CreateDialog() و DialogBox() چیه؟ » که با خواندن مستندات قابل پاسخ‌گویی است، جواب دهند. واقعاً نباید برایتان اهمیتی داشته باشد که داوطلب، هزاران نکته پیش پا افتاده را حفظ کرده‌است یا نه، بلكه باید توانایی او در تولید کد برایتان مهم باشد. از همه چیز بدتر، سؤالات « معما گونه » است :‌ آن دسته از سؤالاتی که پاسخ دادن به آنها غیر ممکن است ولی وقتی جواب را می‌دانید بدیهی به نظر می‌رسند.



لطفاً از این کارها نکنید! و هر کاری که می‌کنید، حتماً از مصاحبه شونده بخواهید که برایتان کد بنویسد. (برای راهنمایی بیشتر، به مقاله Guerrilla Guide to Interviewing مراجعه کنید.)





۱۲. آیا از آزمایش « قابلیت استفاده راهرویی » سود می‌جویید؟

در تست hallway usability، شما خِر اولین فردی را که از راهرو رد می‌شود، می‌گیرید؛ و مجبورشان می‌کنید که بنشینند پای برنامه‌ای که همین الان نوشته‌اید. اگر با پنج نفر این کار را تکرار کنید، ۹۵٪ مشکلات کار با برنامه‌تان (usability problems) را کشف خواهید کرد.



طراحی « واسط کاربر » خوب آنقدرها هم که فکر می‌کنید سخت نیست، حتی برای این که مشتریها عاشق برنامه‌تان بشوند و آن را بخرند، واجب هم هست. کتاب مجانی و online من در مورد طراحی واسط کاربر که الفبای آن را برای برنامه‌نویسان شرح می‌دهد ‌بخوانید.



اما مهمترین نکته در مورد واسطهای کاربر (user interfaces) این است که اگر برنامه‌تان را به پنج یا شش نفر نشان دهید، به سرعت بزرگترین مشکلات کاربران را خواهید دانست. Jakob Nielsen مقاله‌ای دارد که در آن توضیح می‌دهد چرا این چنین است. خلاصه این که حتی اگر در زمینه UI‌ واقعاً ضعیف باشید، با آزمایشهای قابلیت استفاده راهرویی که شرح آن رفت و خرجی هم ندارد، UI تان واقعاً بهبود پیدا می‌کند.





چهار استفاده برای تست جوئل

1.موسسه نرم‌افزاری خود را بسنجید و امتیازتان را به من اطلاع دهید تا بتوانم حرفهای خاله‌زنکی پشت سرتان بزنم!

2.اگر مدیر یک تیم نرم‌افزاری هستید، با استفاده از این تست چک کنید که آیا تیمتان با تمام توانش کار می‌کند یا نه؟ اگر امتیازتان ۱۲ است، بهتر است که برنامه‌نویسانتان را به حال خودشان رها کنید و انرژیتان را روی عدم مداخله بخش مالی و فروش شرکت در کار برنامه‌نویسها متمرکز کنید.

3.اگر می‌خواهید جایی استخدام شوید، از کارفرمای جدیدتان بپرسید که چه امتیازی در این تست به دست می‌آورند. اگر خیلی پایین بود، مطمئن شوید که اختیارات درست کردن اوضاع را دارید و الا وجودتان بی‌حاصل خواهد بود.

4.اگر سرمایه‌گذاری هستید که در حال برنامه‌ریزی و سنجش تیمتان می‌باشید و یا شرکتی نرم‌افزاری هستید که قصد ترکیب با مجموعه نرم‌افزاری دیگری را دارید، این تست وضعیت را به صورت سرانگشتی به شما خواهد گفت.
+ نوشته شده در شنبه بیست و دوم اردیبهشت 1386ساعت 0:44 توسط عزیز پورابراهیم |

تخمین هزینه و زمان در پروژه‌های نرم‌افزاری

نمی‌توان طرحی داشت اگر نتوان آن را به درستی اندازه‌گیری کرد و آغاز پروژه بدون وجود طرح مانند آن است که شکست پروژه طراحی شده باشد.
پروژه‌ي نرم‌افزاری موفق، پروژه‌ای است که در قالب هزینه و زمانی معین و از پیش تعیین شده به انجام برسد. نرم‌افزار کاری تولیدی به شمار می‌رود که هزینه‌ي عمده‌ي آن نیروی کارآزموده ومتخصص است. بنابراین مهم‌ترین ابزار یک پروژه نرم‌افزاری و به طور تقريبي بخش اعظم هزینه‌های آن به نیروی کار متخصص درگیر در آن مرتبط است. سوال این است که چه‌گونه می‌توان زمان و هزینه‌ي یک پروژه نرم‌افزاری را تخمین زد. ماهیت خلاق پروژه‌های نرم‌افزاری و انتزاعی بودن آن تخمین هزینه و زمان انجام آن‌ها را بي‌نهايت مشکل می‌کند. روش‌های متداول تخمین زمان و هزینه خود اساسا انتزاعی است با این همه هنوز هم تخمین پروژه امری لازم و ضروری محسوب می‌شود.


روش‌های مختلفی در تخمین و برآورد حجم فعالیت‌های لازم در انجام یک پروژه نرم‌افزاری در جامعه نرم‌افزار ارايه شده است. فارغ از این‌که از چه روشی در تخمین زمان و هزینه یک پروژه نرم‌افزاری استفاده می‌شود، مهم آن است که بدون وجود اطلاعات کافی در زمینه حوزه و دامنه سیستم و قابلیت‌ها و توانایی‌های آن و هم‌چنین شرایط محیطی و فرهنگی تیم تولید نرم‌افزار و پیچیدگی‌های تکنیکی آن، برآورد واقع‌بینانه پروژه کاری دور از دست‌رس می‌نماید.



پس نخست باید اطلاعات ضروری آماده شود. نگارنده این اطلاعات را در سه دسته تقسیم کرده است:
  • اطلاعات مربوط به حوزه سیستم و نیازهای کارکردی و غیر کارکردی آن
  • اطلاعات مربوط به محیطی که سیستم در آن عملیاتی خواهد شد.
  • اطلاعات مربوط به محیط تولید و توسعه سیستم
از این سه دسته اطلاعات گروه اول مهم‌ترین است. عدم تشخیص درست نیازها و قابلیت‌های کارکردی و غیر کارکردی سیستم، عموما و به‌غایت ما را از تخمین درست هزینه و زمان مورد نیاز دور می‌کند. به همین دلیل لازمه یک برآورد مناسب، تشخیص و تعیین اولیه نیازهای سیستم در فرآیندی سازمان‌یافته است. در روش‌های سنتی ساخت‌یافته به طور معمول بخشی از فعالیت‌های مرحله‌ي امکان‌سنجی به این امر اختصاص دارد. در فرآیندهای مدرن مهندسی نرم‌افزار مانند RUP نیز یکی از فعالیت‌های مهم مرحله اول آن یعنی Inception به تعیین و تخمین نیازهای سیستم و انتظارات اولیه برمی‌گردد؛ یعنی همان اطلاعات لازم جهت برآورد هزینه و زمان پروژه نرم‌افزاری.

نکته‌ي مهم آن است که در کشور ما ایران، به طور معمول قبل از انجام چنین مرحله‌ای و صرفا بر اساس شرح مشخصات بسیار کلی سیستم؛ یعنی بدون داشتن سه بخش اطلاعات كه در بالا به آن اشاره شد، زمان و هزینه پروژه‌ استعلام و برآورد و حتا تعیین می‌شود. چنین کاری در عمل به شکست پروژه‌های نرم‌افزاری منجر می‌شود. چرا که در مسیر تولید سیستم به دلیل اختلاف فزاینده‌ای که بین برآوردهای اولیه و هزینه‌های واقعی پروژه‌ای به وجود می‌آید دو نتیجه مشخص را غیر قابل اجتناب می‌کند:
- یا هزینه تولید سیستم افزایش می‌یابد که این یعنی ضرر تولیدکننده نرم‌افزار
- و یا سیستم با قابلیت‌ها و انتظارات ناکافی و در کیفیتی نامناسب ارايه می‌شود و این یعنی ضرر کارفرما یا مشتری

پس چه باید کرد؟ چه‌گونه می‌توان اطلاعات لازم سه گانه فوق را به دست آورد؟ آیا استفاه از RFP گروه اطلاعات اول را فراهم می‌سازد؟ به این سئوال به سختی می‌توان پاسخ داد؛ چرا که بر حسب آن که RFP را چه گروهی و با چه فرمت و استانداردی تهیه کرده باشد، جواب می‌تواند متفاوت باشد.

در این میان حلقه‌ي گمشده‌ی دیگری نیز به نظر می‌آید. اجرای مرحله اول فرآیند برای تعیین و برآورد واقعی‌تر پروژه ضروری است، با این همه مشکل در آن است که مشخص نیست هزینه‌ي اجرای این مرحله بر عهده کارفرما خواهد بود یا مجری؟ در صورتی که پروژه طی قراردادی قبل از اجرای این مرحله واگذار شود، پس برآوردها تفاوت فراوانی با واقعیت خواهد داشت و در صورتی که قرارداد پس از مرحله‌ي اول و جمع‌آوری اطلاعات بسته شود، در آن صورت هزینه‌ي اجرای مرحله اول بر عهده چه کسی خواهد بود؟ به همین دلیل بسیاری از پروژه‌های نرم‌افزاری در نیمه‌ي راه به دلیل برآوردهای غلط به شکست می‌انجامند یا در واقع نمی‌توانند نیازهای کاربران را برآورده نمایند.

همان طور که گفته شد روش‌های مختلفی برای تخمین و برآورد حجم فعالیت‌های لازم برای انجام یک پروژه نرم‌افزاری معرفی شده است. معروف‌ترین آن‌ها روش COCOMO است. از آن‌جا که قصد این نوشته تشریح این روش نیست فقط به بيان این نكته بسنده می‌شود که در این روش اساسا میزان خطوط کد لازم برای تولید برنامه بر اساس مفهوم Function point تخمین زده شده و بر اساس آن حجم فعالیت‌های لازم برای پروژه تخمین زده می‌شود.

با فرض این‌که نیازهای سیستم در قالب یوزکیس‌ها شناسایی شده اند، متخصصین RUP نیز روش‌های گوناگونی را برای تخمین هزینه و برآوردهای واقع بینانه پروژه ارايه کرده‌اند. روش دیگری که در میانه‌ي دهه‌ي 1990 ارايه شد روش Use Case Point است. در این روش با تعریف Use Case Point های سیستم و تخصیص نفر ساعت لازم برای پیاده‌سازی آن‌ها حجم فعالیت لازم تخمین زده می‌شود. هر یوزکیس شامل سناریو یا سناریوهایی است. علاوه بر UseCaseهای سیستم واسطه‌های ارتباطی یوزکیس با دنیای بیرون ازجمله برای مثال پنجره‌های ویندوز و یا صفحات وب نیز وجود دارند که طراحی و پیاده‌سازی آن خود حجم کار قابل توجهی را می‌طلبد. بنابر این قدم اول تشخیص یوزکیس‌ها و تشريح سناريوهای آن‌هاست. فرآیند تشخیص و تشریح یوزکیس‌های سیستم هر چه با دقت بیش‌تری انجام شود، برآوردهای واقعی‌تری را منتج خواهد بود. اما همان‌طور که کارشناسان RUP به خوبی می‌دانند، یوزکیس‌ها به عنوان مدلی از فعالیت‌های سیستم به طور كامل انتزاعی بوده و بسته به آن‌که چه کسی و از چه زاویه‌ای آن‌ را می‌نویسد سطوح و پیچیدگی‌های مختلفی می‌توانند داشته باشند. برای مثال می‌توان صدور چک را یک یوزکیس تلقی کرد و هم‌زمان می‌توان صدور چک را زیرسیستمی معرفی نمود که خود شامل تعداد مشخصی یوزکیس است. نتیجه آن که سطوح یوزکیس‌ها می‌توانند مختلف باشند و بنابراین در تعیین تعداد یوزکیس پوینت‌ها باید دقت بیش‌تری مبذول نمود. به هرحال بهتر است که سطوح انتزاع در تمامی سیستم از یک روال ثابتی پیروی کند، در غیر این صورت باید ضریب سطح انتزاع نیز در معادلات مربوط به Use Case Point در نظر گرفته شود


یوزکیس پوینت روشی در ارزیابی و تخمین هزینه و زمان پروژه های نرم‌افزاری

قبل از تشریح دقیق‌تر این روش اصطلاحات خاص این روش را بهتر بشناسیم:

آن‌چه خواننده باید بداند:



1. خواننده باید اطلاعات پایه را در مورد نوشتن یوزکیس داشته باشد. این مقاله توصیفی در مورد یوزکیس‌ها ارايه نداده و تنها نحوه تخمین زمان انجام را معرفی می‌کند. بنابراین اگر این نوشته را بدون اطلاع مکفی در مورد مفهوم بازیگر، نقش ، سناریو می‌خوانيد از آن استفاده‌ي زیادی نخواهید برد.

2. ساختار یوزکیس‌ها از سازمان به سازمان و از پروژه به پروژه متفاوت است. چیزی که اساسا در تخمین و ارزیابی موثر است. این نوشته بر مبنای ساختار ارايه شده توسط Allister Mac Lin در کتاب How To Write Effective Use Case نوشته شده است. مطالعه این کتاب را به خواننده توصیف می‌کنیم.


محدوده:
این مقاله صرفا در مورد درکUse Case Point بوده و اطلاعاتی درمورد نحوه نوشتن یوزکیس‌ها به خواننده نمی‌دهد. نوشته‌ها و مقالات بسیاری در این باب نوشته شده و در اینترنت نیز قابل دسترس است.
تاریخچه:

روش Use Case Point مبتنی بر کارustav karner که در سال 1993 به عنوان تز دانشگاهی ارايه شد. این روش امروزه به عنوان روش تخمین زمان و هزینه در برخی از ابزارهای مهندسی نرم‌افزار که از UML برای مدل‌سازی استفاده می‌کنند، پیش‌بینی شده است که از آن جمله می‌توان به ابزار نرم‌افزاری خوش‌دست Sparx System Enterprise Architect اشاره کرد.


مراحل روش یوزکیس پروینت برای تخمین


1. تعیین UAW) Unadjusted Actor Weight ): اولین قدم دسته‌بندی همه بازیگران سیستم است. در جدول زیر دسته‌بندی بازیگران آمده است. ستون دوم راهنمای تصمیم گیری در مورد نوع بازیگر بوده و نشان میدهد که بازیگر باید در کدام دسته قرار می‌شود. آخرین ستون نیز عامل پیچیدگی آن را نشان می‌دهد.




2. تعیین UUCW ( Unadjusted Use Case Point ). مرحله دوم شمارش یوزکیس‌ها و تعیین وزن آن‌ها بر حسب تعداد سناریوها و تعداد تراکنش‌های آن‌هاست.




3. تعیین مجموع UUCP (Unadjusted Use Case Point ): برای محاسبه این مقدار از فرمول روبه‌رو استفاده می‌شود: مجموع UAW + مجموع UUCW = UUCP

4. محاسبه عوامل تکنیکی و محیطی: آخرین قدم برای محاسبه پیچیدگی، تعیین و اندازه‌گیری عوامل تکنیکی و محیطی سیستم است. عوامل تکنیکی 13 مورد شناخته شده دارند هر چند می‌توان عوامل دیگری را نیز به آن اضافه نمود. به هر یک عوامل تکنیکی مقادیر 0 تا 5 نسبت داده می‌شود. مجموع عوامل تکنیکی فاکتور پیچیدگی تکنیکی پروژه را تعیین کرده و با ضرب آن در ضریب پیچیدگی، میزان پیچیدگی پروژه محاسبه می‌شود. هر عامل تکنیکی وزنی نیز دارد که میزان تاثیر آن را مشخص می‌کند.





1. محاسبه فاکتور تکنیکی

برای محاسبه فاکتور تکنیکی پروژه از معادله Tfactor =T1 +T2 + …….T12+T13 استفاده می‌گردد.

2. محاسبه ميزان پيچيدگي تكنيكي پروژه:

میزان پیچیدگی تکنیکی پروژه با فرمول TCF= 0.6 +(0.01* Tfactor)محاسبه می‌شود.


3. عامل محیطی:

عوامل دیگری نیز هستند که باید در نظر گرفته شوند از جمله عوامل محیط تولید نرم‌افزار که اثر مستقیم بر روی زمان و هزینه‌ي پروژه خواهد داشت.






4.مجموع عوامل محیطی از جمع مقادیر بالا محاسبه می‌شود:

یعنی:Efactor=SUM(e1….e8)

5.برای محاسبه ضریب عامل محیطی از معادله EF=1.4+(-0.03 * Efactor)استفاده می‌شود.

6. د رنهایت مقدارAUCP (Adjusted Use Case Points ) با استفاده از فرمول زیر محاسبه می‌شود؛ یعنی AUCP=UUCP * TCF * EF

با ضرب مقدار به دست آمده در نفر ساعت لازم برای انجام هر یوزکیس پوینت نفر ساعت کل لازم برای انجام پروژه به دست می‌آید. برای میزان نفر ساعت لازم برای هر Use Case Point مقادیر متفاوتی پیشنهاد شده از جمله 10، 15 و 20 و حتا 30 تا 40 نفر ساعت برای هرUse Case Point در نظر گرفته شده است. با این همه بعضی از متخصصان بیان کرده‌اند که این عدد خود به فاکتورهای محیطی مرتبط است. تجربه عملی نگارنده نشان داده که میزان 10 تا 15 نفر ساعت در محیط‌های کاری ما مناسب است.


مثال عملی برای تخمین زمان یک پروژه

برای نشان دادن چگونگی تخمین هزینه یک پروژه از یک مثال ساده استفاده می‌کنیم. ابتدا حوزه مساله:

شرکت راپیران در حال حاضر از روش دستی برای ثبت و ویرایش اطلاعات مشتریان خود و میزان اعتبار آن‌ها استفاده می‌کند. اطلاعات مشتریان به همراه اطلاعات کارت‌های اعتباری آنها در دفاتری ثبت میگردد و سپس اطلاعات کارت اعتباری آن‌ها از طریق سیستم کارت خوان که توسط بانک در اختیار شرکت گذاشته شده کنترل می‌گردد. اطلاعات مشتریان عبارت است از:

- کد مشتری

- نام مشتری

- آدرس مشتری

- تلفن مشتری

- اطلاعات معتبر کارت اعتباری مشتری

کد مشتری برای هر مشتری یکتا بوده بنا بر این کارمند پذیرش مشتریان بصورت دستی اطلاعات را کنترل و در دفتر ثبت مینماید . راپیران میخواهد فعالیتها و کنترلهای زیر در ثبت و ویرایش اطلاعات مشتریانش بصورت مکانیزه انجام شود:

- کنترل یکتایی کد مشتری

- کد مشتری نباید از 8 حرف و عدد بیشتر باشد

- کنترل کارت اعتباری مشتری باید از طریق ارتباط سیستم با سیستم کارت خوان بانک بصورت اتوماتیک انجام شود

- طول شماره کارت اعتباری نباید بیش از 10 حرف یا عدد باشد

- اپراتور باید بتواند اطلاعات مشتری جدیدی را اضافه کرده و اطلاعات مشتری موجود را تغییر داده ویا آنرا حذف کند

- بانک اطلاعاتی در دفتر اطلاعات شرکت نصب شده و تنها ورود و ویرایش و حذف اطلاعات توسط اپراتور سیستم انجام میشود

- نرم افزار در میحیط ویندوز اجرا خواهد شد و سیستم عامل ویندوز XP به اینمظور استنفاده خواهد شد

یوزکیس ورود اطلاعات مشتری در سیستم مشتریان شرکت راپیران

الگوی تشریح و توصیف یوزکیس از شخص به شخص و از پروژه به پروژه و از سازمان به سازمان متفاوت است . موضوع اصلی در ترتیب و مراحلی است که در سناریو می‌آید.



تراکنش یوزکیس:تراکنش یوزکیس، واحد مجموعه فعالیت‌هایی است که به طور کامل انجام می‌شود. برای تشخیص تراکنش یوزکیس باید دید که آیا تراکنش ارزشی تولید می‌کند. در صورتی که یک فعالیت ارزشی را تولید نمی‌کند نباید آن را به عنوان تراکنش یوزکیس در نظر گرفت؛ برای مثال این‌که کاربر کامپیوتر خود را روشن می‌کند و یا این‌ که کاربر روی کلید ایجاد مشتری و یا هر کلید دیگری در پنجره ارتباطی خود کلیک می‌کند تراکنش محسوب نمی‌شود، اما کارت اعتباری مشتری توسط یک تراکنش کنترل اعتبار بررسی می‌گردد. تعدادUse Case Point ها به طور كامل بستگی به چگونگی تعریف بازیگران و تراکنش‌های تعریف شده دارد . بنا براین تشریح وتوصیف یوزکیس ها باید ازطریق الگوها و سرخطهای مشخصی انجام شود . بهترین راه برگزاری جلسه با تمامی اعضای تیم مسئول انجام پروژه قبل از نوشتن شرح یوزکیس است. عمق تشریح یوزکیس می‌تواند تا 40 درصد روی تخمین انجام شده تاثیر گذار باشد. روش و الگویی که در این‌جا ارايه می‌شود، تنها الگو نبوده و تنها برای تشریح مساله‌ي بالا ارايه شده است.




+ نوشته شده در شنبه بیست و دوم اردیبهشت 1386ساعت 0:23 توسط عزیز پورابراهیم |

ده نرم‌افزار سودمند - براي برنامه‌نويسان حرفه‌اي دات‌نت‌

اگر برنامه‌نويس باشيد شايد صدها سورس‌كد و برنامه كاربردي جالب دم دست داريد كه به استفاده از آن‌ها عادت كرده‌ايد. با اين‌كه نرم‌افزار ويژوال استوديوي دات نت به‌قدري خوب نوشته شده است كه تقريبا نود درصد نيازهاي هر برنامه‌نويس را تامين مي‌كند، اما داشتن اين ابزار‌ها از ضروريات دنياي برنامه‌نويسي است و كاركردن در اين حوزه بدون بهره‌گرفتن از چنين وسايلي لطف كمي دارد.
اين ماجول‌ها و ابزارهاي جانبي حاصل تجربيات برنامه‌نويسان ديگري هستند كه به مرور زمان خلا وجود آن‌ها را احساس كرده‌اند.‌تمام برنامه‌هاي معرفي شده در اين مقاله، جالب و كمابيش مهم هستند. ولي به سبك معرفي پرفروش‌ترين فيلم‌هاي سينمايي از ابزارهايي كه در نگاه اول اهميت و جذابيت كمتري دارند شروع مي‌كنيم. با اين حال اگر كمي دندان روي جگر بگذاريد، به تدريج هرچه به انتهاي مقاله مي‌رسيم نرم‌افزارها جالب‌تر مي‌شوند! بنابراين از دهمين برنامه شروع مي‌كنيم.




دهم: ‌NDoc

ابزاري كه مي‌خواهم معرفي كنم فقط به كار برنامه‌نويسان حرفه‌اي مي‌آيد. برنامه NDoc به شما كمك مي‌كند براي نرم‌افزاري كه نوشته‌ايد يك سند راهنماي برنامه‌نويسي (‌Help Documentation) بسازيد. اين سند به چه دردي مي‌خورد؟ اين راهنما در چند سناريوي مختلف مفيد واقع مي‌شود. مهم‌ترين كاربرد ‌‌NDoc هنگامي است كه در يك تيم برنامه‌نويسي كار مي‌كنيد و بايد كارهاي خود را مستند كنيد و لازم است مستندات برنامه‌اي را كه نوشته‌ايد به مدير خود ارائه دهيد تا او بتواند با تكيه براين مستند از سازوكار و ساختار نرم‌افزار شما سردربياورد و در صورت لزوم برنامه‌نويس ديگري را براي كمك به روند پيشرفت پروژه و خود شما، به خدمت بگيرد.



نمايي از ‌NDoc ‌



اگر سورس كد شما فاقد راهنما باشد، هيچ‌كس، جز خودتان، از آن سردرنمي‌آورد و بدتر از آن، حتي خود شما نيز ممكن است بعد از چند ماه اصلا فراموش كنيد كه ساختار دروني يك قطعه از كدي كه نوشته‌بوديد چگونه بود. اين مشكل به‌ويژه‌ هنگامي بروز مي‌كند كه مدت چند ماه بخش خاصي از نرم‌افزار خود را دستكاري نكرده‌ايد.

در تمام اين حالت‌ها داشتن يك سند راهنما مفيد واقع مي‌شود. براي اين منظور ‌‌NDoc از قابليت مستندسازي با استفاده از ‌‌XML در زبان سي شارپ كمك مي‌گيرد. البته اگر با ويژوال بيسيك دات‌نت كارمي‌كنيد، مي‌توانيد با استفاده از يك ‌‌add-on همين قابليت را به محيط IDE ويژوال بيسيك اضافه كنيد.

براي آشنايي با متدولوژي مستندسازي با استفاده از ‌‌XML بايد به راهنماي برنامه‌نويسي با سي‌شارپ در‌ MSDN مراجعه كنيد. اطلاعات بيشتر و نيز لينك add-on مذكور در سايت ‌NDoc وجود دارد. پس از مستندسازي كد با استفاده از ‌XML مي‌توانيد از NDoc براي توليد فايل ‌‌Help از نوع chm يا با فرمت‌ HTML (به سبك MSDN) يا به سبك نسخه آنلاين MSDN استفاده كنيد. برنامه NDoc را به صورت رايگان مي‌توانيد از نشاني ndoc.sourceforge.net دريافت كنيد.‌


نهم: RegexDesigner.NET ‌
نهمين ابزار احتمالا خيلي به دردتان مي‌خورد. اگر با متغيرهاي رشته‌اي در دات نت كاركرده باشيد، لابد نام كلاس Regex به گوشتان خورده‌است. اين كلاس قدرتمند قابليت يافتن هر نوع الگوي پيچيده متني را در يك متغير رشته‌اي در اختيار برنامه‌نويس قرار مي‌دهد. مثلا اگر در قسمتي از يك برنامه تحت وب بخواهيد كنترل كنيد كه شماره تلفني كه كاربر وارد فرم مي‌كند ده‌رقمي است و حتماً با 021 شروع ‌شود، يا اگر بخواهيد متني كه او به عنوان آدرس ايميل وارد مي‌كند حتما داراي علامت و نقطه (دات) باشد، اين كلاس خيلي كمكتان مي‌كند. در واقع Regex را مي‌توان يك موتورجستجوي كوچك ناميد كه در پيدا كردن يك الگوي متني استاد است. تكنيكي كه اين كلاس به‌كار مي‌برد، تكنيك معروفي به‌نام ‌‌Regular Expressions است. با اين وجود گرامر و syntax اين كلاس خودش مقوله پيچيده‌اي است و يادگرفتن نحوه كار با آن به مهارت و تجربه نياز دارد.



نمايي از RegexDesigner.NET


اگر در برنامه‌هايي كه مي‌نويسيد از Regex استفاده نمي‌كنيد، مزيت عمده‌اي را از دست داده‌ايد. ولي اگر كاركردن با گرامر Regex برايتان سرگيجه‌آور است، RegexDesigner.NET به شما كمك مي‌كند. به كمك اين ابزار مي‌توانيد توصيفي ويژوال و بصري از يك الگوي متني داشته باشيد. در اين صورت ‌RegexDesigner در نوشتن گرامر آن الگو كمك مي‌كند. اين برنامه را به همراه يك دوجين utility كاربردي ديگر مي‌توانيد از نشاني ‌
www.sellsbrothers.com/tools دريافت كنيد.‌




هشتم: ‌‌‌Nunit و ‌NUnitASP
هشتمين ابزاري كه مي‌خواهم معرفي كنم واقعا مهم است. آن‌قدر مهم كه شايد به‌زودي مقاله‌ مفصلي درباره آن بنويسم.

برنامه NUnit به كار برنامه‌نويسان حرفه‌اي مي‌آيد و هنگامي مفيد واقع مي‌شود كه از متدولوژي TDD در برنامه‌نويسي استفاده مي‌كنيد. متدولوژي Test Driven Development) TDD) روش ويژه‌اي در برنامه‌نويسي است كه طي آن برنامه نويس قبل از آن‌كه شروع به برنامه نويسي كند، ابتدا سناريوهاي مختلف مربوط به ورود و نمايش داده‌ها را بررسي مي‌كند و در هر مورد بدترين حالت را درنظر مي‌گيرد. سپس براي اين بدترين حالت‌ها يك يونيت تست مي‌نويسد و برنامه‌نويسي را شروع مي‌كند.



صفحه‌اي از برنامه RegexDesigner.NET ‌

پس از نوشتن كد، برنامه خود را داخل يونيت موردنظر قرار مي‌دهيد و آزمايش مي‌كنيد، ببينيد هنگام اعمال بدترين شرايط مذكور چه واكنشي نشان مي‌دهد.
مثالي مي‌زنم. فرض كنيد برنامه‌اي نوشته‌ايد كه از كاربر تعداد اقلامي را مي‌پرسد كه مي‌خواهد سفارش دهد و سپس روند ثبت سفارش را انجام مي‌دهد. حالا فكر كنيد كاربري صفر قلم كالا سفارش دهد و دكمه ثبت سفارش را فشار دهد. چه اتفاقي مي‌افتد؟

آيا برنامه شما ‌error ‌خواهد داد؟ معلوم نيست. در واقع مي‌توانيد انواع و اقسام بدترين حالت ها را تصور كنيد. يك نرم‌افزار خوب نرم‌افزاري است كه نه فقط در شرايط عادي خوب كار كند بلكه در شرايط غير عادي نيز به همان خوبي كار كند و قبلا آن شرايط را پيش‌بيني كرده باشد.

به اين تكنيك برنامه‌نويسي كه البته قدمت زيادي هم دارد ‌TDD مي‌گويند. برنامه NUnit براي برنامه‌نويسان دات‌نت ساخته شده است و مشابه JUnit است كه برنامه‌نويسان جاوا استفاده مي كنند. برنامه ‌‌NUnitASP نيز به درد آن دسته از برنامه‌نويسان وب مي‌خورد كه از ‌‌ASP.NET استفاده مي‌كنند. ابزار Nunit را از نشاني
www.nunit.org و‌‌NunitASP را از نشاني nunitasp.sourceforge.net دانلود كنيد.

هفتم: Visio‌
نرم‌افزار Visio احتمالا براي خيلي از شما نام غريبي نيست. برنامه‌ Visio ‌مايكروسافت كه عضوي از خانواده مجموعه نرم‌افزاري آفيس به شمار مي‌رود، يكي از ابزارهاي سودمندي است كه برنامه نويسان حرفه‌اي بايد به استفاده از آن عادت كنند. البته شما مي‌توانيد از ساير نرم‌افزارهاي مشابه نيز استفاده كنيد و محدود به محصولات مايكروسافت نباشيد.‌

برنامه ويزيو به‌طوركلي براي ترسيم فلوچارت و دياگرام است. اما دو قسمت از اين برنامه خيلي به كار برنامه‌نويسان مي‌آيد: يكي امكانات رسم دياگرام بانك اطلاعاتي و ديگري قسمت مربوط به مدل سازي‌‌.UML قسمت مربوط به ترسيمات بانك اطلاعاتي را مي‌توانيد از طبقه‌بندي‌ Database (هنگام ايجاد يك رسم جديد) پيداكنيد و مدل سازي‌‌UML هم بخشي از طبقه‌بندي‌ Software ‌در ويزيو است.



برنامه Visio ‌از مايكروسافت

در قسمت ديتابيس مي‌توانيد دياگرام كاملي از يك بانك اطلاعاتي رابطه‌اي‌ SQL Server را رسم كنيد. تصويرسازي از ساختار بانك اطلاعات مزاياي متعددي دارد. گذشته از اين واقعيت كه مستندسازي ساختار بانك اطلاعات يكي از ملزومات كار برنامه‌نويسي تيمي است، اين كار در تكنيك‌هاي طراحي بانك اطلاعاتي، مانند Normalization بسيار مفيد واقع مي‌شود.‌
به كمك امكانات ويزيو در قسمت مدلسازي UML مي‌توانيد كلاس‌ها و اشياي ساختار نرم‌افزاري را كه براساس متدولوژي شي‌گرا نوشته‌ايد، رسم كنيد. البته قابليت‌هاي ويزيو در اين زمينه به پاي نرم‌افزارهاي قدرتمندي مانند Rational Rose نمي‌رسد. ولي برخلاف Rose كاركردن با آن بسيار آسان است و مي‌توان خيلي از كارهاي پايه‌اي را به كمك آن انجام داد.‌......
 
ششم: ‌‌JLCA



پنجم: ‌VBConversions

VBConversions مبدل سودمند ديگر است. اگر به بحث تبديل سورس كد از يك زبان به زبان ديگر علاقمند شديد، شايد برايتان جالب باشد بدانيد آيا ابزاري وجود دارد كه سورس VB.NET را به سي‌شارپ تبديل كند يا نه. مبدل VB.NET to C Convertor همين كار را برايتان انجام مي‌دهد. البته اين برنامه رايگان نيست. ولي نسخه shareware آن را مي‌توانيد از نشاني www.vbconversions.com دانلود كنيد.‌

تبديل پروژه‌هاي ‌‌VB.NET ‌به سي شارپ براي كساني مفيد است كه به كار با ويژوال بيسيك عادت كرده‌اند. ولي كنجكاوند ببينند برنامه‌هايي كه با ‌‌VB.NET نوشته‌اند، وقتي به سي‌شارپ تبديل مي‌شوند چه شكلي خواهند داشت. معمولا از زبان سي شارپ خيلي تعريف مي‌شود و همه جا گفته مي‌شود سي شارپ مشابه جاوا است. بنابراين خيلي از برنامه‌نويساني كه با ويژوال بيسيك دات‌نت كار مي‌كنند تصور مي‌كنند، به دليل عدم بهره‌گيري از سي شارپ مزيت عمده‌اي را از دست داده‌اند.



نمايي از مبدل VBConversions ‌




تبديل برنامه‌ها ‌‌VB.NET به سي شارپ به شما ثابت خواهد كرد كه اين تصور نادرست است و قابليت‌هاي اين دو زبان تا حدود نوددرصد مشابه يكديگر است و تفاوت اصلي تنها در ‌‌syntax زبان است.

بنابراين حيف است وقتي اين دو زبان به يك ميزان قدرتمند هستند نتوانيد برنامه‌هاي خود را در نسخه سي‌شارپ هم داشته باشد. اگر فكر مي‌كنيد فرصت آموختن سي‌شارپ از ابتدا را نداريد، چه خوب است متد آموزش از طريق مثال را به‌كار بگيريد و چه مثالي بهتر از برنامه‌هايي كه خودتان نوشته‌ايد؟

با تبديل برنامه‌هاي VB.NET به سي شارپ يك قدم به جاوا نزديك‌تر مي‌شويد و در اين صورت مي‌توانيد از مبدل ‌‌JLCA نيز براي تبديل سورس‌هاي جاوا به سي شارپ بهره بگيريد و سناريوي خود را كامل كنيد.‌

مبدل‌ VBConversions مي‌تواند پروژه‌هاي ويژوال‌بيسيك را به صورت تكي يا چندتايي به سي‌شارپ تبديل‌كند. اين ابزار همچنين قابليت تبديل اسكريپت‌هاي ويژوال‌بيسيك را بدون نياز به ويژوال استوديو دارد. ويزارد اين برنامه مي‌تواند شما را قدم به قدم در تبديل موفقيت آميز يك پروژه راهنمايي كند. قابليت ‌‌Open CodeChecker اين برنامه مي‌تواند مشكلات بالقوه‌اي كه در تبديل سورس ويژوال بيسيك شما به سي شارپ وجود دارد را براي شما مشخص كند.‌


چهارم: Mono‌
داستان نرم‌افزار چهارم كاملا متفاوت و مربوط به يك ميمون است! تعجب كرديد؟ به گفته توسعه‌دهندگان پروژه مونو، اين واژه استعاره‌اي از كلمه ‌‌Monkeys است. مونو يك پياده‌سازي خيلي جالب از پلتفرم دات‌نت براي سيستم‌عامل‌هاي غيرويندوزي است. بنابراين اگر سناريوهايي مثل اجراي ASP.NET روي لينوكس برايتان جالب است، مونو بهترين گزينه براي شما است. با استفاده از مونو مي‌توانيد برنامه‌هاي دات‌نتي را روي سيستم‌عامل‌هاي لينوكس، يونيكس، مكينتاش و سولاريس اجرا كنيد.



Mono براي محيط‌هاي غيرويندوزي‌




مونو همچنين علاوه‌بر دات‌نت، امكان اجراي كدهاي جاوا و ‌‌‌Python را نيز دارد. اين پروژه از سوي شركت ناول پشتيباني مالي مي‌شود. منابع اطلاعاتي اين پروژه نيز مانند ساير پروژه‌هاي اپن سورسي به صورت كاملا باز در اختيار شما است. براي شروع كار با مونو مي‌توانيد به سايت اصلي آن به نشاني ‌
www.mono-project.com مراجعه كنيد.‌

جديدترين نسخه اين مجموعه در زمان تاليف اين مقاله،‌‌ 1.1.13‌Mono است كه از تعدادي قابليت‌هاي دات‌نت2 نيز پشتيباني مي‌كند. مونو شامل يك كامپايلر زبان سي‌شارپ است و از معماري زيربنايي CLI دات‌نت پشتيباني مي‌كند.


‌سوم: ComponentOne.NET
اين ابزار در حقيقت مجموعه‌اي از اشيا يا Componentهاي كاربردي براي استفاده در پروژه‌هاي دات‌نتي است. كمتر برنامه‌نويسي را مي‌توان يافت كه خود را از كامپوننت‌هاي اضافي موجود در بازار بي‌نياز بداند. بديهي است كه اشياي موجود در ويژوال استوديو بسياري از نيازهاي يك برنامه‌نويس را تامين مي‌كنند. المان‌هايي مانند DataGrid، ListBox ،‌Label و چندين كامپوننت ديگر كه به وفور در برنامه‌هاي دات‌نتي استفاده‌مي‌شوند، براي همه برنامه نويسان آشنا هستند. اما اين كامپوننت‌ها نيازهاي پيشرفته دات‌نت كاران را تامين‌نمي‌كنند. به همين دليل همواره مي‌توان صدها كامپوننت تجاري در بازار پيدا كرد كه به اين دسته از نيازهاي برنامه‌نويسان پاسخ مي‌دهند. شركت ComponentOne يكي از بهترين و معروف‌ترين سازندگان چنين اشيايي است.‌

بسته نرم‌افزاري Studio for .NET اين شركت شامل چندين كامپوننت جالب و سودمند است كه حتما از كار با آن‌ها لذت خواهيد برد. اين بسته در قالب دو مجموعه متمايز، يكي براي برنامه‌نويسان ASP.NET و ديگري براي برنامه‌نويسان دسكتاپ ويندوز، تهيه شده است. مجموعه مربوط به دسكتاپ شامل هفده كامپوننت است كه قابل خريداري است. مي‌توانيد از اين اشيا در بافت نرم‌افزارهايي كه توليد و روانه بازار مي‌كنيد، استفاده نماييد.



نمايي از مجموعه ابزارهاي ComponentOne.NET




چند منو و ‌toolbar پيشرفته، كامپوننت ترسيم انواع چارت‌هاي گرافيكي پيشرفته، يك كامپوننت مخصوص توليد گزارش، كامپوننت‌هاي ساخت‌ Zip ‌و ‌‌PDF و دو كامپوننت به نام‌هاي FlexGrid و True DBGrid كه قابليت‌هايي فراتر از‌DataGrid در اختيارتان قرار مي‌دهند، از جمله مهم‌ترين كامپوننت‌هاي اين مجموعه هستند.

در بسته مربوط به ASP.NET نيز مي‌توانيد نسخه تحت وب برخي از اين كامپوننت‌ها از جمله WebReports ،WebGrid ،WebCharts ،WebMenus و WebBars را بيابيد.

نسخه مخصوص دات نت 1/1 از اين مجموعه همراه بسته نرم‌افزاري Visual Basic.NET Resource Kit كه از سايت مايكروسافت به صورت رايگان قابل دريافت است، وجود دارد و برنامه نويسان مي‌توانند يك مجوز رايگان براي محيط برنامه‌نويسي (و نه محصول نهايي خود) از سايت شركت ‌ComponentOne دريافت كنند.

نسخه مخصوص دات نت 2 را بايد مستقيما از سايت اين شركت به آدرس ‌‌www.componentone.com بگيريد.

همچنين مجموعه مربوط به‌ ‌1.1‌ASP.NET همراه بسته نرم‌افزاري ‌ASP.NET Resource Kit وجود دارد كه از آدرس‌http://msdn.microsoft.com/asp.net/asprk به طور رايگان قابل دريافت است و نسخه مربوط به‌‌‌ 2 ASP.NET را بايد از سايت شركت دريافت كنيد.

دوم: Dotfuscator
دومين ابزار سومندي كه معرفي مي‌كنم، برنامه مهمي است كه حلال مشكلات خيلي از برنامه‌نويسان خواهد بود. اگر مي‌خواهيد كاري كنيد كه سورس كد برنامه شما پس از كامپايل شدن قابل تشخيص نباشد و نتوان با استفاده از مهندسي معكوس آن را به حالت سورس كد بازگرداند، هيچ چاره‌اي نداريد جز اين‌كه سورس كامپايل شده خود را رمزنگاري كنيد. برنامه Dotfuscator كه نسخه Community Edition آن به‌طور رايگان همراه ويژوال استوديوي دات‌نت نصب مي‌شود، همين كار را برايتان انجام مي‌دهد. عجيب است كه برخي از برنامه نويسان نيمه حرفه‌اي اما كم حواس، متوجه حضور اين برنامه در كنار ويژوال استوديو نمي‌شوند و اين سو و آن سو دنبال ابزار مناسب مي‌گردند. نسخه حرفه‌اي Dotfuscator را بايد از سايت شركت سازنده آن، يعني ‌‌Preemptive به نشاني
www.preemptive.com دريافت كنيد.



برنامه Dotfuscator براي رمزنگاري سورس‌كد




اما اين برنامه رايگان نيست. اين شركت در حقيقت دو نوع Obfuscator دارد: يكي براي كاربران دات نت و ديگري براي كاربران جاوا و دومي DashO نام دارد كه در دنياي جاوا نامي آشنا است.

البته Obfuscatorهاي ديگري را نيز مي‌توانيد در اينترنت پيدا كنيد. به كمك يك‌ Obfuscator مي‌توانيد برنامه كامپايل شده را طوري رمزنگاري كنيد كه جز خود شما فرد ديگري نتواند به سورس برنامه دسترسي پيدا كند و اين يعني نقطه مقابل تفكر اپن سورس!

ولي واقعيت اين است كه در دنياي صنعت نرم‌افزار چنين ابزارهايي طرفداران زيادي دارد و خيلي از شركت‌هاي توليد كننده نرم‌افزار از Dotfuscator براي حفاظت از حقوق مالكيت معنوي نرم‌افزار خود استفاده مي‌كنند.‌

Dotfuscator براي غيرقابل فهم كردن سورس كامپايل شده (كه در دات نت به زبان MSIL است و در زبان جاوا به صورت‌ Bytecode) علاوه بر رمزنگاري، از طريق تزريق كدهاي گمراه‌كننده به درون برنامه موجب مي‌شود كه برنامه‌هاي مهندسي معكوس در تفسير سورس دچار اشتباه شوند و نتوانند به اصل آن پي‌ببرند.

يكم: SharpDevelop
سرانجام به نخستين ابزار مي‌رسيم. برنامه ‌‌SharpDevelop يك IDE رايگان و اپن سورس است. اين روزها كه بحث اپن سورس و نرم‌افزار تجاري داغ است، خيلي از ايراني‌‌ها از خود سوال مي‌كنند اگر كشورمان به سازمان تجارت جهاني بپيوندد و مجبور به اجراي مقررات كپي‌رايت باشد، آيا بايد بابت نرم‌افزارهاي گرانقميت خارجي پول بپردازيم؟ هرچند كه مايكروسافت اخيرا نسخه‌هاي رايگاني از ويژوال استوديوي 2005 را منتشر كرده و نسخه‌ ارزان قيمتي از ويژوال استوديوي 2003 نيز براي برنامه‌نويسان درنظر گرفته شده است. اما به هرحال هركدام از اين نسخه‌ها محدوديت‌هايي دارند.

پروژه ‌SharpDevelop تلاشي براي توليد يك IDE ديگر مانند ويژوال استوديوي دات نت است. البته بديهي است كه خود اين نرم‌افزار در مقايسه با ويژوال استوديوي دات‌نت محدوديت‌ها و ضعف‌هايي دارد. ولي اين محدوديت‌ها ناشي از اعمال سياست‌هاي تجاري خاص نيست و تنها به قابليت‌هاي نرم‌افزار مربوط مي‌شود. در عوض SharpDevelopتا توانسته خود را به انواع ابزارهاي اپن‌سورسي مخصوص برنامه‌نويس دات‌نت مجهز كرده است تا ضعف‌هاي خود نسبت به ويژوال استوديو را در زمينه‌هاي ديگري جبران كند.‌



SharpDevelop، يك ابزار بسيار مهم‌




برنامه ‌SharpDevelop كه خود با زبان سي شارپ نوشته شده، قادر است سورس‌كدهايي كه به زبان ويژوال بيسيك دات‌نت، سي‌شارپ، ‌‌‌++C و جاوا نوشته شده‌اند را بخواند. اما فقط مي‌تواند پروژه‌هاي سي‌شارپ را كامپايل‌كند و اين مهم‌ترين ضعف SharpDevelop در حال حاضر است.

اين برنامه همچنين فاقد قابليت Intellisense در ويژوال استوديو است؛ قابليتي كه به طور هوشمند كد شما را همان لحظه كه در حال نوشتنش هستيد حدس مي‌زند و كامل مي‌كند. اين برنامه همچنين در محيط سي‌شارپ قابليت‌هاي بهتر و بيشتري نسبت به محيط زبان‌هاي ديگر نشان مي‌دهد.‌

با اين حال SharpDevelop مزايايي نيز دارد. اين برنامه به چند ابزار از جمله NUnit و NDoc كه در اين مقاله معرفي كرديم، مجهز است. بنابراين از همان ابتداي كار با ‌SharpDevelop مي‌توانيد خود را به تكنيك‌ TDD در برنامه‌نويسي عادت بدهيد.
در عين حال اين ‌‌‌IDE همراه كتابخانه ziplib ارائه مي‌شود كه كامپوننت‌هايي براي فشرده‌سازي اطلاعات (مثلا به صورت zip يا‌ ‌rar) در اختيارتان قرار مي‌دهد. با استفاده از اين كامپوننت همچنين مي‌توانيد از قابليت‌هاي تكنيك‌ gzip براي فشرده سازي صفحات ASP.NET هنگام بارگذاري روي مرورگر استفاده كنيد.

اين قابليت موجب كاهش قابل ملاحظه سرعت بارگذاري صفحات پويا مي‌شود. اين برنامه همچنين يك ابزار سودمند به نام Regular Expression Toolkit دارد كه كاربردي مشابه برنامه RegexDesigner.NET دارد كه در اين مقاله معرفي كرديم.

بنابراين مي‌توانيد خيلي سريع خودتان را به استفاده از اين كلاس با ارزش در‌ framework دات‌نت عادت دهيد. جالب‌تر اين‌كه ‌SharpDevelop به يك مبدل ساده براي تبديل سورس VB.NET به سي‌شارپ و برعكس مجهز است كه هرچند ضعف‌هايي دارد و به پاي برنامه‌ VBConversions كه در اين مقاله معرفي كرديم نمي‌رسد. اما تا حدودي كار راه‌انداز است.

به‌اين ترتيب مي‌بينيد كه حتي در صورت داشتن ويژوال استوديوي دات‌نت، استفاده از ‌SharpDevelop همچنان قابل توجيه است. در واقع ‌SharpDevelop مجموعه‌اي از چند ابزار كه در اين مقاله معرفي كرديم را در خود دارد و چون سورس كد خود برنامه باز است، برنامه‌نويسان حرفه‌اي دات‌نت مي‌توانند ماجراجويي كنند و خودشان امكانات و قابليت‌هاي بيشتري به نرم‌افزار بيفزايند. اين نرم‌افزار جالب را مي‌توانيد از نشاني
www.sharpdevelop.net دريافت كنيد.‌
+ نوشته شده در جمعه بیست و یکم اردیبهشت 1386ساعت 22:24 توسط عزیز پورابراهیم |

هفت اصل بیل گیتس

«بيل گيتس»، رئيس «مايکروسافت»، در يک سخنراني در يکي از دبيرستان‌هاي آمريکا، خطاب به دانش‌آموزان گفت: «در دبيرستان خيلي چيزها را به دانش‌آموزان نمي‌آموزند». او هفت اصل مهم را که دانش‌آموزان در دبيرستان فرا نمي‌گيرند، بيان كرد.

به گزارش اصول بيل گيتس به اين شرح است:

اصل اول: در زندگي، همه چيز عادلانه نيست، بهتر است با اين حقيقت کنار بياييد.

اصل دوم: دنيا براي عزت نفس شما اهميتي قايل نيست. در اين دنيا از شما انتظار مي‌رود که قبل از آن‌که نسبت به خودتان احساس خوبي داشته باشيد، کار مثبتي انجام دهيد.

اصل سوم: پس از فارغ‌التحصيل شدن از دبيرستان و استخدام، کسي به شما رقم فوق‌العاده زيادي پرداخت نخواهد کرد. به همين ترتيب قبل از آن‌که بتوانيد به مقام معاون ارشد، با خودرو مجهز و تلفن همراه برسيد، بايد براي مقام و مزايايش زحمت بکشيد.

اصل چهارم: اگر فکر مي‌کنيد، آموزگارتان سختگير است، سخت در اشتباه هستيد. پس از استخدام شدن متوجه خواهيد شد که رئيس شما خيلي سختگيرتر از آموزگارتان است، چون امنيت شغلي آموزگارتان را ندارد.

اصل پنجم: آشپزي در رستوران‌ها با غرور و شأن شما تضاد ندارد. پدر بزرگ‌هاي ما براي اين کار اصطلاح ديگري داشتند، از نظر آنها اين کار «يک فرصت» بود.

اصل ششم: اگر در کارتان موفق نيستيد، والدين خود را ملامت نکنيد، از ناليدن دست بکشيد و از اشتباهات خود درس بگيريد.

اصل هفتم: قبل از آنکه شما متولد بشويد، والدين شما هم جوانان پرشوري بودند و به قدري که اکنون به نظر شما مي‌رسد، ملال‌آور نبودند.
+ نوشته شده در دوشنبه دهم اردیبهشت 1386ساعت 22:57 توسط عزیز پورابراهیم |

دانشگاه‌هاي‌اينترنتي‌ و دگرگوني‌ هاي‌ آموزش‌ عالي‌

جهاني شدن
جهاني‌ شدن‌ واقعيت‌ روبه‌ گسترشي‌ است‌ كه‌ همه‌ عرصه‌ هاي‌ اقتصادي‌ , اجتماعي‌ و فرهنگي‌ جهان‌ را تحت‌ تاثير قرارداده‌ و تمامي‌ كشورها را به‌ گونه‌ ائي‌ با ان‌ درگير كرده‌ است‌. اين‌ فرايند به‌ بركت‌ رشد تكنولوژي‌ همگرائي‌ فراواني‌ بين‌ مشخصه‌ هاي‌ اقتصادي، فرهنگي‌، فني‌ وعلمي‌ جهان‌ بوجود خواهد اورد. ديري‌ نخواهد پائيد كه‌ اين‌ شهروندان‌ بخاط‌ر شاخصه‌ هائي‌مانند انعط‌اف‌ پذيري، ايجاد رقابت‌ وقدرت‌ مديريت‌ بر مولفه‌ هاي‌ توليد ثروت‌ مسلط‌ شوند و با تشكيل‌ كانون‌ هاي‌ تواناي‌ تكنولوژي‌ و بهرمندي‌ از اط‌لاعات‌ پيوسته‌ جهاني‌ بر اجراي‌ كار و فرايند هاي‌ توسعه‌ اقتصادي‌سياسي‌ و فرهنگي‌ اشراف‌ يابند. انها معتقدند بااين‌ پديده‌ در بسياري‌ از زمينه‌ ها نويد بخش‌ تاريخ نمادين‌ و مظ‌هر اينده‌ موهبت‌ اميز ي‌ هستند كه‌ اسط‌وره‌ ها و پيش‌ گوئي‌ هاي‌ تاريخ كهن‌ در ذهن‌ و خيال‌ مردمان‌ پرورانده‌ بود.
سرمايه‌ گذاري‌ فرا ملي‌ در همه‌ بخشهاي‌ اين‌ پديده‌ در زمينه‌ هاي‌ صنايع‌ اط‌لاعات‌، تجارت‌ رسانه‌ ائي‌، ط‌رح‌ ها و برنامه‌ هاي‌ سخت‌ افزاري‌ و نرم‌افزاري‌ خدمات‌ پيشرفته‌, اموزش، توليد كشاورزي، بهداشت، تكنولوژي‌، توليد سنتي‌ و نوين‌، حمل‌ و نقل‌، تجارت‌، توريست‌، اط‌لاعات‌ جنگ‌ افروزي‌ و صلح‌ ط‌لبي‌، چرخه‌ هاي‌ اقتصادي‌ ركود ورونق‌ بازار، مستغلات،‌ محيط ‌زيست‌، مديريت‌، فرهنگ‌ و ...باعث‌ نياز و اجبار به‌ شبكه‌ ائي‌ شدن‌ است‌. اين‌ شهروندان‌ مي‌ اموزند كه‌ براي‌ زندگي‌ در اين‌ شهر بايد رقابت‌ را بپذيرند و رقبا را تحمل‌ كنند. انها اصرار دارند به‌ شهروندان‌ خود بقبولانند كه‌ حاشيه‌ نشيني‌ و فرار از واقعيت‌ هاي‌ مناسب‌ اين ‌توسعه‌ نبوده‌ و خارج‌ از اصول‌ شهروندي‌ در پايگاههاي‌ اط‌لاعاتي‌ است‌.

منتقدان‌منط‌قي‌ ‌با انتقادهائي‌ كه‌ بر اين‌ تحول‌ روا مي‌ دارند بر اين‌ باورند كه‌ بالاخره‌ اين‌ راه‌ سپري‌ خواهد شد و با انگاره‌ هاي‌ خود از اين‌ حقيقت‌ در نمي‌ گذرند. انان‌ براين‌ باورند كه‌ اين‌ تحولات‌ بر زندگي‌ انسان‌ قرن‌ بيست‌ و يكم‌ تاثير گذاشته‌ و نويدها و ابهامات‌ او را تغيير مي‌ دهند . اين‌ پديده‌ به‌ تحولات‌ و تغييرات‌ سرعت‌ مي‌ بخشد ومردم‌ را وامي‌ دارد تا به‌ باز نگري‌ اراء و انديشه‌ هاي‌ خويش‌ بپردازند و ارزش‌ ها و نهادهاي‌ موجود را مورد نقد وبررسي‌ قراردهند و نتيجه‌ مي‌ گيرند كه‌ مسلما در اين‌ رهرو سط‌ح‌ اگاهي‌ و اط‌لاعات‌ همگاني‌ مردم‌ ارتقاء خواهد يافت.

از نتيجه‌ نگاه‌ منتقدان‌ و معتقدان‌ بايد دريافت‌ كه‌ مسلما در اين‌ روند دگرگوني‌هاي‌ اساسي‌ وجود خواهد داشت‌ كه‌ در بين‌ انها پذيرش‌ دگرگوني‌ هاي‌ تكنولوژيك‌ براي‌ همه‌ جوامع‌ موثرتر و گريز نا پذيرتر است‌. پديده‌ اينترنت‌ در فرايند جهاني‌ شدن‌ پويا ترين‌ و جامعترين‌ تحولي‌ است‌ كه‌ بعنوان‌ منبع‌ بزرگ‌ اط‌لاعات‌ جهان‌ هيچ‌ كس‌ نتوانسته‌ اين‌ موفقيت‌ بزرگ‌ تكنولوژيك‌ را ناديده‌ انگارد. به‌ همين‌ دليل‌ اثار و تبعات‌ ان‌ گستره‌ وسيعي‌ را در بر گرفته‌ و امروزه‌ بعنوان‌ تكنولوژي‌ برتر مهمترين‌ عامل‌ پشتيباني‌ اط‌لاعات‌ علمي‌ و هماهنگ‌ كننده‌ اهنگ‌ ان‌ در جهان‌ كنوني‌ شده است‌.

جهش‌ يكباره‌ ابر رسانه‌ اينترنت‌ در دهه‌ اخير راه‌ قرنها را ط‌ي‌ و تابعي‌ از مختصات‌ همه‌ علوم‌ شده‌ است‌. فرهنگ‌ و علم‌ در جهان‌ امروز بعلت‌ فعل‌ و انفعالات‌ سرعت‌ پيشرو اين‌ رسانه‌ بصورت‌ قابل‌ ملاحظ‌ه‌ ائي‌ توسعه‌ يافته‌ و همه‌ انديشمندان‌ معاصر را به‌ يك‌ رقابت‌ جهاني‌ فرا خوانده‌ است‌. اين‌ ابزار در بخش آموزش بيش از همه زمينه‌ ها فزون‌ ط‌لب، گسترش‌ پذير و بسط‌ يابنده اند. منابع‌ و ماخذ به‌ سهولت‌ در اختيار گذارده‌ شده‌، فاصله‌ ها از بين‌ رفته‌ وعامل‌ يافتن‌ براي‌ هر تجسس‌ در هر پژوهش‌ را در كوتاه‌ ترين‌ زمان‌ از منابع‌ و ماخذ موجود در سراسر جهان‌ ميسر ساخته‌ است‌.

بهر حال هزاره جديد از ان جهانيان است و استفاده از پژوهشگراني که مي خواهند آزادانه و جدا از هر گونه مناقشه به مطالعه و تفکر پرداخته و به مفاهيم جديد دست يابند راهي بسيار هموار و صحيح است. واگر اصحاب علم تصميم دارند در چالش کشيدن راست کيشي هاي جهان کنوني از تکنولوژي برتر استفاده کنند بايد در اين وادي قدم نهند.

در اين‌ مقاله‌ در نظ‌ردارم‌ به‌ بررسي‌ بيشتر در مورد دلايل مثبت سرمايه گذاري در آموزش مجازي بعنوان راه حل اساسي براي مشکلات آموزشي کشور در بخش آموزش عالي در ايران بپردازم و درآن با نگاهي‌ كوتاه‌ به توسعه‌ تاثير جهاني‌ آموزش‌ مجازي‌ و تاثيرات‌ مهم‌ و قابل‌ توجه‌ ان‌ بر آموزش کشور خصوصا آموزش عالي‌ تاکيد کنم.

توسعه جهاني آموزش مجازي
تخصصي شدن جهان کنوني باعث شده است که روزبه روز نياز به آموزش عالي در جهان جوان کنوني که بيش از 50 درصد ان زير 25 سال سن دارند افزايش يابد. طبق مطالعات جديد هم اکنون 48 ميليون دانشجو در دانشگاه هاي جهان در حال تحصيل هستند. پيش بيني شده است اين تعداد تا سال 2010 به 100 ميليون نفر و در سال 2025 به 160 ميليون نفر خواهند رسيد. (McCann Benjamin, 2001)

انچه ‌در ابعاد جهاني آموزش و ضرورت وجودي ان حتمي است،‌ اين است که توسعه آموزش يک ضرورت جهاني و آموزش مجازي يکي از بهترين راه حل هاي ان است. اين نوع آموزش با اينکه هنوز زمان کودکي خود را مي گذراند‌ براموزش‌ سراسر دنيا تاثير جهان‌ شمول‌ وموثري‌ گذارده‌ است‌ اما در بحث‌ كلان‌ اين‌ پديده‌ ديري‌ نخواهد پائيد تا اين‌ تاثير برابعاد مختلف‌ اموزش‌ حرفه‌ ائي‌ بين‌ المللي‌ چهره‌ موثر خود را بعنوان‌ يك‌ انقلاب‌ اموزشي‌به‌ نمايش‌ بگذارد. مسلما با توجه‌ به‌ رشد روز افزون‌ بهره‌ گيري‌ از اينترنت‌، جهان‌ اموزش‌ بدين‌ دليل‌ كه‌ با خبرگان‌ اجتماعي‌ سرو كار دارد جزو اولين‌ بهره‌ وران‌ از اين‌ ابزار استثنائي‌ خواهد بود. خصوصا اينكه‌ اموزش‌ در اين‌ گذر با يك‌ سرمايه‌ گذاري‌ ارزان‌ و سودمند با اموزش‌ كامپيوتر و نحوه‌ فراگيري‌ استفاده‌ از ان‌ با استفاده‌ از نرم‌ افزارهاي‌ اموزشي‌ به‌ نتايج‌ قابل‌ عرضه‌ ائي‌ دست‌ خواهد يافت‌. به همين دليل همه در حال سبقت گرفتن از يکديگر در اين ارتباط هستند. نتيجه يک تحقيق نشان مي دهد با توسعه آموزش مجازي سرانه روزانه هزينه يک دانشجو در انگليس مي تواند از 320 دلار در روز حد اقل به 20 دلار وحد اکثر تا 30 دلار تقليل يابد. (Goodridge Elisabeth, 2002) آموزش از طريق اينترنت پس از مدت کوتاه پس از ايميل دومين مرتبطين را بخود اختصاص داده است (شوراي اطلاع رساني ، 30 خرداد 1381).
با توجه‌ به‌ اين مقدمه‌ بايد بپذيريم‌ كه‌ در فرايند اموزش‌ ، توسعه فعاليت هاي آموزشي يک ضرورت جهاني است. آموزش يكي‌ از موثرترين‌ وبي‌ خط‌ر ترين‌ عوامل‌ مربوط‌ به‌ تكنولوژي‌ ايتنرنت‌ است‌ و به‌ همين‌ دليل‌ شديدا مورد استقبال‌ همگان‌ قرار گرفته‌ و حتي‌ براي‌ مخالفين‌ خود در اين‌ زمينه‌ كوچك‌ ترين‌ ترديدي‌ باقي‌ نگذاشته‌ است‌. سرمايه گذاري در اين امر يکي از مهمترين موارد عوامل اساسي براي ورود و بهره وري در اين بخش حياتي است. اين سرمايه گذاري در اکثر کشورهاي توسعه يافته که حتي دانشگاه هاي آنها کوچکترين مشکل در زمينه ظرفيت پذيرش دانشجو را ندارد به بهترين وجه انجام گرفته است. امريکا در سال 1999 طي يک برنامه آموزشي براي مشاغل آموزش جديد 62 ميليارد دلار سرمايه گذاري کرده است( InterWise, Inc. and Morgan Keegan, 2/12/2002 ).
آموزش مجازي مهمترين عامل در توسعه فن آوري اطلاعات است. امروز از آموزش مجازي بعنوان مهمترين عامل توسعه دهنده فن اوري اطلاعات ياد مي شود و فعالين در اين رشته معتقدند با توجه به گفتار اشناي تکنولوژي با اين زبان نظ‌ام‌ اموزشي‌ مجازي‌ محدود به‌ هيچ‌ تخصص، مقط‌ع‌، سن‌ و دوره‌ خاص‌ نيست‌ و با توجه‌ به‌ گستره‌ فعال‌ خود مي تواند اموزش‌ را در همه‌ مراحل و مقاط‌ع‌ فعال‌ كند . بدين‌ دليل‌ كه‌ محدود به‌ مكان‌ و زمان‌ نيست‌ و مي‌ تواند همه‌ علاقمندان‌ به‌ اموزش‌ را با گزينه‌ هاي‌ ساده‌ تر از انچه‌ كه‌ تا كنون‌ در اموزش‌ مط‌رح‌ بوده‌ است‌ به‌ يك‌ فرا خوان‌ همگاني‌ در موسسات، دانشگاه ها،‌ کارخانجات و ... دعوت‌ كند. مسلما بدين‌ ترتيب‌ با همگاني و تخصصي کردن اين نوع آموزش يكي‌ از عوامل‌ مهم‌ درمقابل‌ مدرك‌ گرائي‌هاي بدون تخصص خواهد بود. اين نوع آموزش نه فقط در مراکز آموزشي رسمي بلکه در همه موسسات نيازمند به آموزش مورد استقبال قرار گرفته است. بررسي آموزش و مزاياي آن در مرکز آموزشهاي صليب سرخ جهاني نشان مي دهد اين سازمان براي توسعه اموزش مجازي بين سالهاي 2000 تا 2003 در طول 3 سال 10 ميليون دلار سرمايه گذاري کرده است.

توجه‌ به‌ اين‌ نكته‌ لازم‌ است‌ كه‌ ورود دراين‌ سيستم‌ علاوه‌ بر ورود اموزش‌ تكنولوژيك‌ مي‌ تواندعامل‌ مهمي‌ براي‌ افزايش مشاغل در تخصص فن آوري اطلاعات و اموزش‌ مباني‌ تكنولوژي‌ اط‌لاعات‌ و ارتقاي‌ فرهنگ‌ كامپيوتر و اينترنت‌ باشد كه‌ خود داراي‌ اهميت‌ فراوان‌ است‌. اين نوع آموزش شرکت هاي بزرگ جهان را براي فعاليت هاي آموزشي پرسنل خود و ورود به وادي توليد سخت افزار و نرم افزارهاي آموزش علاقمند کرده است. شرکت کداک در سال 2001 در يک برنامه جديد 13.23 ميليارد دلار در زمينه تکنواوژي آموزش جديد سرمايه گذاري کرده و بدين مناسبت 80 هزار نفر متخصص را استخدام کرده است.

اينترنت‌ بعنوان‌ ابزاري‌ برتر در بسياري‌ از مكان‌ ها راه‌ دشوار اموزش‌ را نزديک، هزينه‌ هاي‌ ان‌ را ارزان‌، عوامل‌ دست‌ نيافتي‌ را دست‌ يافتني‌ و اهالي‌ علم‌ و تحقيق‌ را به‌ چالشي‌ سود مند فرا خوانده‌ است‌. بايد پذيرفت‌ كه‌ اين‌ چالش‌ تقريبا در بستن‌ راه‌ هاي‌ ديگر به‌ علت‌ ط‌ولاني‌ بودنشان‌ در زمينه‌ هاي‌ تحقيقات‌ و پژوهش‌ بسيار موفق‌ بوده‌ و در ساختن‌ مسيري‌ نوين‌ بهترين‌ و سهل‌ الوصول‌ ترين‌ راه‌ را ارائه‌ كرده‌ است‌. علاوه‌ براينكه‌ امكان‌ رابط‌ه‌ ائي‌ سالم‌ بين‌ همه‌ انديشمندان‌ جهان‌ بوجود اورده‌، انها را از بايگاني‌ كردن‌ علم‌ قديمي‌ خود منع‌ و به‌ روز امد كردن‌ ان‌ تشويق‌ مي‌ كند. در اين راه هيچ يک از مراکز مختلف براي استفاده از اين امکان استثنا نشده اند. شرکت تويوتا اعلام کرده است که با تدوين يک برنامه آموزش مجازي موفق خواهد شد در طول 5 سال 11.9 ميليون دلار در هزينه هاي آموزشي شرکت خود صرفه جوئي کند ودراين راه به 200 تحقيق اساسي نيز دست خواهد يافت.

هم‌ اكنون‌ سرمايه‌ گذاري‌ در اين‌ نوع‌ اموزش‌ براي‌ كمپاني‌ هاي‌ بزرگ‌ اموزشي‌ جهان‌ مرسوم‌ شده است‌. مراكز مهم‌ اموزشي‌ جهان‌ همانند ديگر صنوف‌ تكنولوژيك‌ شديدا در حال‌ سرمايه‌ گذاري‌ براي‌ يافتن‌ راه‌ هاي‌ بهتر و سريعتر در مسئله‌ اموزش‌ هستند. ديناميسم‌ دروني‌ اين‌ جامعه‌ دائما در حال‌ توسعه‌ هاي‌ نظري‌ و فني‌ در اين‌ پديده‌ است و با توانائي‌ هاي‌ بالقوه‌ رسانه‌ ائي‌ ان‌ با مشاركت‌ هاي‌ علمي ‌وفني‌ به‌ سرعت‌ شبكه‌ جهاني‌ اموزش‌ را رشد مي‌ دهند. دولتها با سرمايه‌ گذاريهاي‌ كلان‌ در حال‌ وسعت‌ بخشيدن‌ به‌ اين‌ شاخه‌ از تكنولوژي‌ اط‌لاعا ت‌ هستند ودر اين‌ فضاي‌ هوشمند اط‌لاعاتي‌ همه‌ متفقند تا به افزايش‌ محتواي‌ اط‌لاعات‌ متنوع‌ و متكثر‌ اين‌ واقعيت‌ اجتماعي‌ عصر جديد پاسخي‌ در خور تامل‌ بدهند و در تعاملهاي‌ اموزشي‌ و تربيتي‌ اين‌ مهم‌ سهيم‌ باشند. اين‌ موارد خود عاملي‌ براي‌ پيشرفت‌ روز افزون‌ اموزش‌ اينترنتي‌ و بهره‌ گيري‌ از سرمايه‌ هاي‌ فراوان‌ مالي‌ و علمي‌ اين‌ شركت‌ ها است‌. جنرال موتور اعلام کرده است با تاسيس مرکز آموزش اينترنتي توانسته است سالانه 4 ميليون دلاردر هزينه هاي کارخانه خود صرفه جوئي مي کند. (Goodridge Elisabeth, 2002)

بديهي است که اين استقبال در مراکز آموزش عالي و آموزش بزرگسالان با بالاترين استقبال مواجه شود. اين توسعه را مراکز آموزش عالي دنيا بيش از هر مکان ديگري جدي گرفته شده و در افزايش توسعه هاي کمي و کيفي انها تاثير گذاشته است. بسياري از طرحهاي دراز مدت انها که فقط پنج سال پيش براي توسعه در نظر گرفته شده بود بدليل سرعت روز افزون اين دانش تغيير يافته است. فعاليت دانشگاه هاي دنيا براي توسعه اموزش غير حضوري در سال 1980 فقط 45 دانشگاه درسال 1990 به 400 دانشگاه رسيده است. با توجه به ويژيگي هاي توسعه دانشگاه هاي مجازي اين تعداد در سال 1997 به 1600 دانشگاه رسيده است. ( Yair Levy, 2002)

نگاه‌ واقع‌ نگرانه‌ ما براي توسعه اموزش مجازي در جهان‌ بدين‌ دليل‌ لازم‌ است‌ كه‌ شروع‌ سرمايه‌ گذاري‌ كشورها و اكثر دانشگاه‌ هاي‌ مهم‌ دنيا بمعني‌ واقعي‌ بودن‌ اين‌ مسئله‌ در نظ‌ام‌ اموزشي‌ اينده‌ جهان‌ است. گروه 21هم اکنون از اولين گروهاي سرمايه گذار در بخش دانشگاه مجازي بوده است. اين گروه آموزش مجازي دربخش آموزش عالي را براي بهره گيري از همه صاحبان اين دانش، تکنولوژي، سرعت در توليد، صرفه جوئي در سرمايه گذاري و دست يافتن به بازار کشورهاي مشترک با اشتراک بين دهها دانشگاه جهان شروع کرده است. اين دانشگاه ها با سرمايه گذاري مشترک در حال حاضر بيش از 500 هزار دانشجو و 44 هزار استاد را در زمينه آموزش مجازي بکار گرفته و تبديل به يکي از با تجربه ترين موسسات در اين نوع آموزش شده اند. ( Universitas 21, 2002)

توليد اطلاعات عنصر اصلي در آموزش مجازي
فعاليت‌ تئوريك‌ اصحاب‌ اموزش‌ براين‌ پديده‌ بسيار قابل‌ توجه‌ است‌. بنيان‌ گذاران‌ اموزش‌ جديد و قديم‌ در چالشي‌ سخت‌ قرار گرفته‌ و مجبور شده‌ اند تا در اين‌ مشاركت‌ و ساختار جديد اين‌ شيوه‌ سهم‌ قابل‌ توجه‌ داشته‌ باشند. توجه‌ انها به‌ يك‌ نظ‌ام‌ اموزشي‌ متناسب‌ با ابزار تكنولوژيك‌ يكي‌ ازمهمترين‌ موضوعات‌ اموزش‌ اينترنتي‌ است‌. انها سخت‌ بدنبال‌ شيوه‌ هائي‌ هستند كه‌ بهره‌ وري‌ از اموزش‌ جديد را در سط‌وح‌ مختلف‌ ارتقاء دهند. نظريه پردازان‌ رشته‌ تعليم‌ و تربيت‌ در پژوهش‌ هاي‌ سنگين‌، اموزش‌ مجازي‌ را از مقط‌ع‌ پيش‌ دبستاني‌ شروع‌ و تا بالا ترين‌ مقاط‌ع‌ اموزش‌ عالي‌ مورد بررسي‌ قرار مي‌ دهند.

در اين‌ زمينه‌ بايد توجه‌ داشت، مشاركت‌ اكثريت‌ انسانهاي‌ علمي‌ و فرهنگي‌ در نظ‌ام‌ اموزش‌ جهاني‌ بزرگترين‌ تضمين‌ علمي‌ و اخلاقي‌ در اين‌ مسير است‌. در فضاي‌ مسلط‌ اموزشي‌ متكي‌ به‌ قوي‌ترين‌ ابزار كنوني‌ كه‌ هيچگونه‌ ضرري‌ را بدنبال‌ ندارد تلاش‌ بمنظ‌ور بقاء و حضور در صحنه ‌و تاثير گذاري‌ بران‌ براي‌ رشد و اعتلاي‌ فرهنگي‌همه کشورهائي که آموزش را يکي از مسائل خود مي دانند بسيار مهم‌ و ارزنده‌ است‌. در اين‌ رهرو توجه‌ خاص‌ به‌ اين‌ انقلاب‌ اموزشي‌ مهمتر از هر كنكاش‌ است‌ كه‌ بعنوان‌ اشكال ‌ممكن‌ است‌ بر فلسفه‌ اين‌ تكنولوژي‌ وارد باشد. تذكر اين‌ نكته‌ مهم‌ است‌ كه‌ اين‌ واقعه‌ توسط‌ صاحبان‌ انديشه‌ هاي‌ اموزشي‌ بدليل‌ استفاده‌ بهتر ابزار تكنولوژيك‌ جدي‌ گرفته‌ شده‌ و سرعت‌ پيشرفت‌ ان‌ با سرمايه‌ گذاريهاي‌ كلان‌ بدون‌ توقف‌ داراي‌ نتايج‌ روزافزوني ‌در جهان‌ امروز است. امار يک تحقيق نشان مي دهد که فقط دانشگاه هاي امريکا سالانه براي توسعه آموزش مجازي 15 ميليارد دلار را بخود اختصاص مي دهند. (Tischelle George, Marianne Kolbasuk McGee, 2003)

اين‌ تحول‌ در مجموع‌، تئوريسن‌ ها، مراكز، دولت‌ ها و صاحبان‌ سرمايه‌ در اين‌ مورد را بسيار قانع‌ كرده‌ است‌. نقصهاي‌ وارد براين‌ نظ‌ام‌ اموزشي‌ هر چند بسيار اندكند ولي‌ بعنوان‌ جدي‌ ترين‌ پروژه‌ هاي‌ تحقيق‌ و پژوهش‌ در حال‌ بررسي‌ و ارزيابي‌ قرار گرفته‌ اند تا در اولين‌ فرصت‌ چاره‌ا ئي‌ براي‌ انها انديشيده‌ شود. موفقيت‌ هاي‌ بدست‌ امده‌ و عملي‌ در اين‌ شيوه‌ تا حدودي‌ در دسترس‌ قرار گرفته‌ و همه‌ اصحاب‌ اموزش‌ را مشغول کرده است‌. هزينه هاي مربوط به مراکز فعال افزايش يافته و سعي شده است اين وادي کمتر در رقابت هاي کمپاني هاي بزرگ قرار گرفته و براي توليدات بيشتر استقلال داشته باشد. آژانس هاي فعال ازاد بين المللي که در توسعه توليد اطلاعات نرم افزاري آموزش مجازي کارمي کنند توانسته اند در سال 2000 از آمريکا 23 ميليون دلار دريافت کرده و اين رقم را تا سال 2004 به بيش از 10 برابر برسانند. (Goodridge Elisabeth, 2002,)

گستره‌ فراگير آموزش‌ در جهان‌ امروز وابستگي‌ مستقيم‌ به‌ متدوولوژي‌ پويا دارد. اما بهرمندي‌ از اين‌ متد ولوژي‌ رابط‌ه‌ نزديك‌ با ابزار برتر را اقتضا مي‌ كند و ابزار برتر بهترين‌ امكانات‌ را براي‌ تسهيل‌ پويائي‌ اموزش‌ فراهم‌ مي‌ اورد. در ط‌ول‌ قرون‌ اموزش‌ وام‌ دار ابزار و منابعي‌ بوده‌ كه‌ دسترسي‌ به‌ انها با صرف‌ عمرمحقق‌ و تحقيق‌ همراه‌ بوده‌ و چه‌ بسا پژوهش‌ ها و پژوهشگران‌ فراواني‌ بعلت‌ فقدان‌ ابزار و ماخذ در اين‌ راه‌ متوقف‌ شده‌اند. امروز همگان‌ پذيرفته‌ اند اين‌ راه‌ دشوار با‌ سريعترين‌ شكل‌ ممكن‌ هموار شده‌ و به‌ ساده‌ ترين‌ صورت‌ قابل‌ دسترسي‌ است. اموزش‌ گران‌ هميشه‌ در ارزوي‌ استفاده‌ توامان‌ ابزار ديداري‌، نوشتاري‌ و شنيداري‌ بوده‌ اند تا در ارتقاء تحصيل‌ و تدريس‌ بالاترين‌ تاثير را حاصل‌ كنند. تجهيزات‌ چند رسانه‌ ائي‌ بعنوان‌ بزرگترين‌ ابزار اينترنت‌ و قدرت‌ بهره‌ گيري‌ از اين‌ تسهيلات‌ با لقوه‌ تجسس‌ بر هر موضوع‌ را در هر نقط‌ه‌ جهان‌ ممكن‌ ساخته‌ است‌. بهره‌ مندي‌ فرا گير از همه‌ ابزار در اموزش‌ رمز موفقيت‌ اين‌ شيوه‌ خواهد بود. اين‌ روش‌ قادراست‌ با شكستن‌ هر نقط‌ه‌ جغرافيائي‌ اجزاي‌ هر مكان‌ و عناصر هر موجود را كه‌ انسان‌ به‌ دانش‌ ان‌ دست‌ يافته‌ در كارگاه‌ و لابراتوار هاي خود به‌ كمك‌ تصوير و صدا در هر مكان‌ و زمان‌ به‌ سمع‌ و نظ‌ر هراموزش‌ گيرنده‌ برساند و هر لايه‌ عنصر را با بهره‌ گيري‌ از تصوير متحرك‌ تجزيه‌ و تحليل‌ كند. اين دلايل بطور جدي باعث شده است سرمايه گذاري در توليد اطلاعات براي شيوه هاي آموزش روز به روز فزوني يابد.

متفكرين‌ اين‌ شيوه ‌اموزشي‌ بط‌ور جدي‌ ادعا مي‌ كنند توسعه‌ روز افزون ‌توليد اين‌ ابزار در جهان‌ امروز باعث‌ مضاعف‌ شدن‌ علاقه‌ دست‌ اندر كاران‌ واقعي‌ تربيت‌ و تدريس‌ شده‌ است‌ و انها بعنوان‌ اصحاب‌ اموزش‌ مدرن‌ در دوران‌ معاصر در تلاش‌ براي‌ تدبير يك‌ تكنولوژي‌ منحصر بفرد براي‌ ساختن‌ ترويج‌ اينده‌ علم‌ و دانش‌ هستند. اين ادعاها بدون پشتوانه انبوه اطلاعات قابل ارائه در ساختمان اين تکنو لوژي ممکن نخواهد بود. لذا توسعه اين اطلاعات که ويژگي هاي ساختار خود را دارا است نياز به سرمايه گذاري قابل توجه دارد. توليد اطلاعات در زمينه آموزش مجازي در امريکا از 1.7 ميليارد دلار در سال 2000 به 5.3 ميليارد دلار در سال 2003 رسيده است. (Yair Levy, 2002 )

امكان‌ رابط‌ه‌ علمي‌ و متديك‌ دانشجو ومعلم‌، دانشجو و دانشجو بعلت‌ وجود ابزار و منابع‌ غني‌ علمي‌ وبا استفاده‌ از قابليت‌ حذف‌ زمان‌ و مكان‌ استفاده‌ بيشتر اين‌ شيوه‌ را افزايش‌ خواهد داد. امكان‌ آسان‌ دستيابي‌ فرا مكاني‌ به‌ نيروهاي‌ اموزش‌ گيرنده‌ و اموزش‌ دهنده‌ باعث‌ جهان‌ شمولي‌ اين‌ صنعت‌ اموزشي‌ شده‌ و گستره‌ وسيعي‌ از دانش‌ پژوهان‌ جهان‌ را در خود مجتمع‌ كرده‌ است‌ .اين‌ واقعه ‌بعلت‌ پاسخگوئي‌ جديد تحقيقات‌ نرم‌ افزاري‌ و سخت‌ افزاري‌ و پيش‌ بيني‌ موفق‌ ان‌ سريعتر از ديگر تاثيرات‌ تكنولوژيك‌ اكثر سرمايه‌ گذاران‌ فرهنگي‌ بزرگ‌ جهان‌ را قانع‌ ساخته‌ كه‌ سود دهي‌ اينده‌ اين‌ شيوه‌ را مدد نظ‌ر قرار داده‌ و بر تحقيق‌ و پژوهش‌ ان‌ مشاركت‌ و سرمايه‌ گذاري‌ كنند. لذا زمينه سازي براي توسعه تکنولوژي آموزش مجازي پيش نياز اين فعاليت ها است. سرمايه گذاري براي توسعه تکنولوژي اطلاعات آموزشي در امريکا در سال 1997 - 17 ميليارد دلار و در سال 2004 به 33 ميليارد دلار افزايش رسيده است. (InterWise, Inc. and Morgan Keegan, 2002)

رقابت در زمينه توليد اطلاعات بين شرکتهاي توليد کننده اطلاعات بسيار افزايش يافته است. اکثر صاحبنظران امر آموزش پيش بيني مي کنند که اين روند درصد بالائي از آموزش را در بخود اختصاص خواهد داد و باعث يک يک تغيير اساسي در تغيير شکل آموزش از انچه تا کنون بوده است خواهد شد. اساتيد تعليم و تربيت معتقدند با افزايش دامنه بيش از حد تخصص و ريز شدن نمي توان به درجه بندي مدارک موجود دانشگاهي اکتفا کرد. انها چهارچوب کنوني را پاسخگوي توسعه دانش و خرد شدن مباحث ان نميدانند و معتقدند ادامه اين سيستم با اتلاف وقت فراگير رو برو خواهد بود. خرد شدن اجراي علم و چگونگي پرداخت به ان نيازمند دگرگوني اين سيستم است اما پاسخ آن به سرعت تحولات تکنولوژيک و چگونگي توسعه توليد اطلاعات مربوط به ان است . اين مباحث باعث شده است که صاحبان وارد شده درتوسعه آموزش مجازي شرط اول را عدم هر گونه صرفه جوئي در توليد نرم افزار و سخت افزار مربوط به آموزش مجازي قرار دهند چون هرگونه کمبود باعث کندي اين تکنولوژي و عقب افتادگي از رقبا است. انها مي دانند که سرمايه گذاري علاوه بر اينکه سود آور خواهد شد معضل بزرگ جهاني را در همه اماکن ساده خواهد کرد. نتيجه يک بررسي نشان مي دهد سرمايه گذاري براي توليد اطلاعات در آمريکا و کانادا براي هر ساعت حد اقل 15000$ و حد اکثر 30000$ هزينه در بر دارد در حالي که همين مطالعه در مورد فروش اطلاعات در زمينه آموزش مجازي نشان مي دهد فروش توليدات آموزش مجازي در سال 2002 بيش از 2.4 ميليارد دلار بوده و در سال 2003 تا 50 درصد افزايش داشته است. بخشي از اين بررسي حاکي است در آمد يک ترم دانشگاه بريتيش کلمبيا براي 10هزار دانشجو بيش از 50 ميليون دلار بوده است. اين دانشگاه در حال حاضر روي سايت مجازي webCT بيش از يک ميليون و دويست هزار دانشجو در حال آموزش دارد.
(Tischelle George, Marianne Kolbasuk McGee, 2003, )

استدلال هاي اين تكنولوژي‌ بايد توجه‌ كشورهاي‌ جوان‌ راكه‌ امكانات‌ خدمات آموزشي‌ انها نمي‌ تواند همه‌ علاقمندان‌ به‌ اموزش‌ را راضي‌ كند بيش‌ از همه‌ برانگيزاند. چون‌پس از يک سرمايه گذاري صحيح هزينه‌ هاي‌ اين‌ نوع اموزش‌ با توجه‌ به‌ تاثيرات‌ ان‌ بسيار ارزان‌ و قابل‌ توجه‌ خواهد بود. با كمترين‌ امكانات‌ دستيابي‌ به‌ شاخصه‌ هاي‌ قابل‌ قبول‌ اموزشي‌ در گستره‌ ائي‌ عظ‌يم‌ در اقصا نقاط‌ دنيا فراهم‌ خواهد شد. در اين‌ مجموعه‌ با توجه‌ به‌ ضعف‌ ارمان‌ شهري‌ اموزش‌ سنتي‌ در اين‌ شيوه‌ اماکن دور دست فراموش‌ نمي‌ شوند. ارمان‌ شهري‌ جزء خصوصيات‌ اين‌ ط‌رح‌ نيست‌ و نقاط‌ دور و نزديك، شمال‌ وجنوب‌ مي‌ توانند با سرمايه‌ گذاري‌ مساوي‌ در يك‌ حد از نتايج‌ ان‌ بهره‌ مند شوند.

ايران و معضلات آموزشي
در اين بخش از مقاله سعي ندارم وارد يک وادي انتقادي شوم ولي بررسي موضوعي را که انتخاب کردم بدون ذکر خصوصيات آموزش عالي کشور ناقص خواهد ماند. مقايسه موجودي نظام آموزشي کشور با نظام حاصل متولد شده از بازسازي نظام جهاني که از ان شرحي گذشت مقدور نيست مگر اينکه به مشکلات ان توجه شود. همگان می پذيريم که ديری است نظام آموزش عالی کشور توانائی پذيرش حد اکثر 10 درصد ازعلاقمندان به اموزش را داشته است. شايد اين امار بخودي خود براي هر گونه توسعه براي آموزش کشور کافي باشد اما بدون توجه به خصوصيات علمي، فرهنگي و سياسي نظام آموزشي عالي نمي توان به راه حل اين مشکل در ايران پرداخت لذا در اين بخش به مشکلات نظام آموزش عالي کشور در چهار بخش علمي، فرهنگي، اجتماعي و اقتصادي کشور اشاره ائي کلي و گذرا خواهم داشت.

۱: علمی
احتمالا اكثر کارشناسان شك‌ ندارند كه‌ نظ‌ام‌ كپي‌ شده آموزشی‌ ايران‌ پس‌ از توسعه‌ صنعت‌ چندين سال بعد از رونق گرفتن دانشگاه در اروپا پايه‌ ريزي‌ شده‌ وهميشه محدوديت ها و نيازهاي قابل توجه ان بعلت قطع رابطه با کاربرد هاي اجتماعي اجازه ارزيابي و بازسازي به ان را نداده است. بمرور زمان مبناي‌ ان بدون بازنگري تبديل به يك‌ آموزش‌ سنتي‌ براساس‌ تربيت‌ فراگيران‌ شاغل‌ در نظ‌ام‌ اداري شده و دو عامل اساسي و وجودي، وارداتي خود يعني صنعتي‌ و كشاورزي‌ را فراموش کرده است. محصول‌ آموزش يافته اين‌ سيستم‌ در ايران با بليعدن 10 درصد موفق دانش آموختگان کشور انها را براي يک نظ‌ام‌ اداري‌ که قاصرازهر گونه خدمت به توليدات صنعت‌ وكشاورزي‌ است تربيت کرده و بدليل عدم چالش بين علم آموختگان در صحنه علمي و عملي کشور روز به روز از کيفيت علمي مراکز آموزشي کاسته است.

۲: فرهنگي
فرهنگ‌ كار راحت، عدم‌ علاقمندي‌ به‌ كار توليد وخدمات‌ در بين‌ فارغ‌ التحصيلان‌ اموزش‌ عالي‌ و ترويج پشت‌ ميز نشيني‌ از مهمترين‌ دستاوردهاي نظام آموزش عالي کشور بوده است‌
هم اکنون نِيز نظام آموزشی کشور تابعی از گذشته است و کماکان راه متفاوتی را طی نمی کند. نخبگان و دولت دو لبه اره ائی هستند که بدون تعيين يک راه کار صحيح با پر کردن ظرفيت آموزشی بدنه آموزش کشور را فرو می ريزند. نظام آموزشی بعنوان مهمترين عنصر کار و توليد، ايستا و قادر نيست قشر جوان کشور را با فرهنگ سازندگی اشنا کند. پاک کردن غبار فرهنگ پشت ميز نشينی و توسعه نظام ادارای از افکار و آعتقادات نظام آموزشی ما شده و تکرار کننده شيوه هاي گذشته است. فعاليت های توليدی و خدماتی بعنوان مهمترين نيازهای جامعه روز به روز احترام اجتماعي خود را از دست داده ونقش آموزش در انها بيرنگ و کوچک می شود. کليه اين عوامل دست به دست هم مي دهند که الگوي فرهنگ توسعه و سازندگی در اين جامعه جوان تبديل به يک باور نشود و فراگير نخبه علاوه بر اينکه خود نوع دانش مورد علاقه اش را انتخاب نمی کند، هيچ تحليلی از اينده ندارد و نظام نيز هيچ راهي را براي استفاده متناسب از توانائي هاي او به او پيشنهاد نمي کند.

۳: اجتماعی
ادامه تحصيل بعلت پيروي از الگوهای غلط به يکی از بزرگترين استرس های اجتماعی تبديل شده است. تلاش اجتماعی به عهده والدين گذاشته شده، جوانان با کار بيگانه شده اند و انگاري بجز تحصيل بي هدف هيچ وظيفه اجتماعي بر دوش ندارند. يکی از بزرگترين نگرانی های اعضای خانواده ها قبولی فرزندان در دانشگاه است، بخش زيادی از در آمد خانواده هزينه تحصيلات فرزندان می شود وما حصل ان بيکاری اجتماعی و متوقف شدن فعاليت اجتماعی در بخش توليد و خدمات است.

۴: اقتصادی
عدم تناسب محصول آموزش عالی کشور با نيازهاي اجتماعي و عدم تزريق عادلانه اين محصول در بخش خدمات و توليد باعث خسارتهاي کلان اقتصادي در كشور است‌. جذب‌ بيشترين‌ دانش‌ اموختگان‌ عالي‌ كشوردر نظام اداری و بايگاني کردن نخبگان کشور در فايل دولت نه‌ تنها نظام ادرای را كاملا نا كارآمد کرده بلكه‌ بيش‌ از 50 درصد هزينه‌ جاری کشور‌ را به‌ خود اختصاص‌ داده‌ است. بدين معنا که آموزش ما در خدمت هزينه کردن سرمايه کشور برای نخبگان ولی بدون انتظار ازارائه کار مفيد ازاين قشر کارآمد است، به لفظی ديگراين شيوه افراد مستعد کشور را در قالبی مسدود و غير کارا فرو برده است. صنعت‌ كه‌ موثر ترين‌ بخش‌ دانش‌ اموختگان‌ كشور را جذب‌ كرده از جمعيتي‌ كمتر از پنج‌ درصد فارغ‌ التحصيلان‌ اموزش‌ عالي‌ سود مي‌ برد و كشاورزي‌ از استفاده‌ بيش از دو درصد اين‌ دانش‌ اموختگان‌ محروم‌ است‌. ميلياردها سرمايه‌ گذاري‌ براي‌ نظ‌ام‌ اموزشي‌ كشور با جذب‌ اين‌ تعداد فارغ‌ التحصيل‌،‌ نظ‌ام‌ اموزش‌ عالي‌ كشور را تبديل‌ به‌ يك‌ سرمايه‌ گذاری غير اقتصادي و بيهوده‌ كرده‌ است‌.

اين خصوصيات نظام آموزشي کشور را از درک يک معماري جديد براي بازسازي و روزآمد کردن يک نظام آموزشي دور کرده است. ايران با داشتن 7/18 ميليون دانش آموز، 8/4 ميليون جمعيت پشت کنکوری و 2/8 ميليون نفر کودکی که هنوز به مدرسه راه نيافته اند با توجه به مشکلات فوق بعنوان يکي از جوانترين کشورهاي دنيا نيازمند آموزش است. بديهی است اين امار هيچ استدلالی را نياز ندارد تا اهميت آموزش درکشور را بيان کند. علی رغم مشکلات فراوانی که برای فراهم اوردن تسهيلات اموزشی اين جمعيت مد نظر است بايد توجه داشت برای کشوری که داعيه تربيت يک نسل جديد را دارد در يک برنامه ريزي منطقي، جوانی بودن چنين جامعه ائی می تواند يکی از ويژگيهای ان محسوب شود.

يک و نيم ميليون نفر آموزنده در کشور تصدی آموزش 20 ميليون فرا گير را بعهده دارند. نياز به کلاس درس روز به روز افزايش مي يابد بنا های فيزيکی فراوان در اقصا نقاط کشور توسط دانشگاه های دولتي،‌ آزاد، پيام نور و... در حال تاسيس هستند. کارشناسان متعقدند که نظام آموزشی در کشور با هزينه ائی فراوان پايه ائی سست را بنا نهاده و با چنين سرمايه گذاری کما کان آموزش عالی کشور قادر نيست بيش از ده درصد علاقمندان به آموزش را بپذيرد.
+ نوشته شده در پنجشنبه سی ام فروردین 1386ساعت 2:10 توسط عزیز پورابراهیم |

 مديريت آموزش الكترونيكي
مقدمه
فن آوري پيامدي از خصيصه ابزار سازي انسان است . با نگاهي عميق به پيرامون و تعمقي در خود و نسبت به غير ، در مي يابيم كه اساسي ترين تفاوت ما به غير ، همان ويژگي ابزار سازي ماست .بشر موجودي ابزار ساز است و اين كار را در بلنداي تاريخ ادامه داده است . از تفكر و خلاقيت خويش مدد گرفته و در سير تكاملي حياتش از سادگي به پيچيدگي ميل كرده و در اين فرايند از تنوع خواصي ابزار خود ساخته بهره ستانده است . اين سرنوشت محتوم انساني است ، بيشينه طلب است و كوشنده ، براي تصرف و تسلط بيشتر ، از ظرفيت ها و استعدادهاي دروني مايه مي گذارد و مايه فكري را با مايه كاري در مي آميزد و در اين مسير ، براي كاملتر شدن ، نه تنها نمي ايستد ، بلكه به كاستي هاي جديدش پي مي برد . باز مي طلبد و مي كوشد و مي گيرد و باز هم و بازهم و . . . ( زاهدي ، 1381 )

تغيير و تحولات سريع در زمينه هاي مختلف علوم و فنون بشري، بر اثر پيشرفت هاي سريع و غير قابل انتظاري كه در بيشتر قلمرو هاي دانش ، به خصوص در زمينه صنايع الكترونيكي و مخابرات ، طي چند قرن اخير نصيب انسان شده است، حجم اطلاعات و دانسته هاي بشر امروزي به طور سرسام آوري افزايش يافته و مسايل و مشكلات جديدي را پديد آورده است. يكي از عواملي كه براي مقابله با اين مسايل در كشورهاي مختلف مورد توجه قرار گرفته ، تكنولوژي نوين آموزشي است. تكنولوژي آموزشي را مي توان يك رويكرد سيستمي دانست كه فرآيند ياددهي و يادگيري را كنترل و تسهيل مي كند.

در بسياري از جوامع، مراكز آموزش عالي و سازمانها به اطلاعات جديد فن آوري هاي ارتباطات، به عنوان وسيله اي كه هم فرصت هاي يادگيري قابل انعطاف و هم دسترسي گسترده تر را عرضه مي كند، مي نگرند. همين امر اهميت آموزش هاي الكترونيكي در رشد و توسعه منابع انساني را ضروري نموده است.

در مقاله اي كه پيش رو داريد ضمن بيان مفاهيم ، ضرورت و اهميت آموزش الكترونيكي ، مزايا ،معايب و ويژگي هاي آن مورد بررسي قرار گرفته ،مسائل ومشكلات آن طرح گرديده و پيشنهاداتي در خصوص استفاده از اين ابزارنوين در كشور مان ارائه شده است.

تعاريف و مباني آموزش الكترونيكي :

به طور كلي مي‌توان گفت آموزش الكترونيكي به هر نوع دوره و آموزشي اطلاق مي‌شود كه به شكلي به غير از روشهاي سنتي رو در رو انجام مي‌گيرد. محتويات دروس ممكن است كه از طريق اينترنت و يا استفاده از ويدئو ، تصاوير فعال و متعامل دو طرفه انتقال يابند. (گنجعلي زاده،1382)
بعبارتي ديگر مي توان گفت هرگاه‌ اطلاعات‌ از يك‌ نقطه‌اي‌ به‌ نقطه‌اي‌ ديگر و يا از آموزش‌ دهنده‌ به‌ آموزش‌ گيرنده‌ از طريق‌الكترونيكي‌ رد و بدل‌ شد به‌ آن‌ آموزش‌ الكترونيك‌ اطلاق مي‌شود. از جمله‌ مواردي‌ كه‌ در اين‌دسته‌ بندي‌ قرار مي‌گيرند Internet , Intranet, Extranet ارتباط‌ راه‌ دور با استفاده‌ از ماهواره ،‌,Tape , Audio , Video تلويزيون‌ ،لوح‌ فشرده‌ CD-ROMهستند. اينترنت بزرگترين‌Net work جهان استكه در ان اطلاعات در تمام دنيا به اشتراك گذاشته مي شود.اگر اين شبكه جهاني را با همان‌ زير بنا در گستره يك‌سازمان‌ جاي‌ دهيم‌ به آن‌ Intranet گفته مي شود‌. وقتي‌ دامنه‌ آن‌ از يك‌ سازمان‌ به‌ سازمانهاي‌ اطراف‌ مرتبط‌ مي‌شودبه‌ آن‌ Extranet مي‌گوئيم‌ ولي‌ به‌ هر حال‌ از نظر زير بنايي‌ يكي‌ هستند.
به‌ طور خلاصه‌ مي توان گفت آموزش الكترونيكي نوعي آموزشي‌ است با سرعت‌ شخص‌ فراگير، از راه‌ دور و با اختيار كه‌ بصورت‌ يكجا يا بخش‌ بخش‌ ازطريق‌ شبكه‌ مجهز به‌ تكنولوژي‌ اطلاعات‌ براي‌ فراگير ارسال‌ و پشتيباني‌ مي‌شود.(نجاريان،1381)

تاريخچه آموزش الكترونيكي
تفكر استفاده از رايانه‌ها و شبكه‌هاي رايانه‌اي براي كارهاي علمي به دهه‌ي ١٩٦٪ برمي‌گردد. گرچه هدف اصلي طرح Agency) ARPA (Advance Research Project ايجاد شبكه‌اي براي تبادل اطلاعات نظامي و حفاظت ايالات متحده آمريكا از تبعات جنگ سرد با شوروي سابق بود ولي در عين حال از آنجايي كه سه مركز از چهار مركزي كه براي راه‌اندازي شبكه آرپانت در نظر گرفته بودند دانشگاه‌هاي آمريكا بودند، شبكه‌هاي رايانه‌اي از همان ابتدا در مسير آموزش‌هاي مدرسه‌اي1 رشد كردند. و از اوايل دهه‌ي ٧٪ با به ثمر نشتن اين طرح، تبادل اطلاعات و داده‌هاي علمي نيز بين مراكز مدرسه‌هاي آمريكا شروع شده است، البته آموزش الكترونيكي به شكل امروزي و در اين گستره‌ي كاربرد، در اوايل دهه‌ي ١٩٩٪ با ظهور شبكه جهاني اينترنت شكل گرفت، و با توجه به قابليت‌هاي بسيار زياد وب، آموزش الكترونيكي به سرعت رشد كرد و امروز جايگاه خود را در ساختار آموزشي بسياري از كشورها تثبيت كرده است. (زارعيان،1381)
ضرورت و اهميت آموزش الكترونيكي
براي تبيين نقش ، اهميت و ضرورت آموزش الكترونيكي در پيشبرد اهداف دانشگاهها،موسسات و... ابتدا جاي دارد به داستاني از "فرد . آر . ديويد" اشاره كنيم كه در آن دو تن از مديران صاحب نام در مسير گردش خود به خرسي وحشتناك و تيز رو بر خورد مي كنند و آنگاه يكي از آنها كفشهاي ورزشي خود را از كيف اش در آورده و آماده فرار مي شود . مدير ديگر به او مي گويد : «جناب شما نمي توانيد از اين خرس تندتر بدويد. » او در جواب مي گويد : « شايد من نتوانم از اين خرس تندتر بدوم،ولي ترديدي ندارم كه مي توانم تندتر از شما بدوم! » ( ديويد ، 1379)
استفاده از تكنولوژي هاي نوين آموزشي و بهره گيري ازIT در دانشگاهها و مراكز آموزشي ،هرچند كه نمي تواند يگانه ابزار، جهت مقابله با تهديدها و رهايي جستن ازامواج خروشان تغييرات پرشتاب جامعه بشري باشد اما اين نويد را به اين موسسات مي دهد كه با استفاده مستمر از اين تكنولوژي حد اقل يك گام جلوتر از رقباي خود گام بردارند و همين يعني تداوم حيات و برنده شدن در عرصه رقابت .

در باب اهميت آموزش الکترونيکي به عنوان روش موفق آموزش و يادگيري و موتور محرکه دوران آگاهي سخن هاي بسيار گفته شده است بخصوص زماني که بحث بر سر سود آوري آن انجام مي شود، محاسبات مالي حتي در شرکت هاي بزرگ چند مليتي از اهميت و توجه زياد آن به اين مساله پرده بر مي دارد. بعنوان مثال چند نمونه از موارد عنوان شده در رسانه هاي گوناگون ذيلاً ارائه شده است:
- جان چمبر مدير عامل شرکت Cisco System : به زودي کاربرد آموزش الکترونيکي بيشتر از پست الکترونيکي مي شود. New yourk Times , 17/11/1999
- شرکت IBM ، 15 ميليون دلار براي ارائه آموزش الکترونيکي به اساتيد 29 موسسه
سرمايه گذاري مي نمايد. The chronicle of Higher Education 23/8/2002
- USAID ، 100 ميليون دلار جهت اصلاح سيستم آموزش الکترونيکي براي حالت On line هزينه مي نمايد. Pak news . com , 10/8/2002
- مدير عامل IDC: تا سال 2006 ميزان سرمايه گذاري در آموزش الکترونيکي با نرخ رشد 2/11 % به 39 ميليارد دلار مي رسد. Yahoo ! Finance , 17/4/2002

مقايسه‌ ديدگاه‌هاي آموزش الكترونيكي و آموزش سنتي:

عناصر مهم هر فرايند آموزشي عبارتند از: 1-آموزش دهنده2- فراگير(آموزش گيرنده)3- محتواي برنامه آموزشي4- محيط آموزشي
در هر يك از دو رويكرد آموزش الكترونيكي و سنتي نسبت به هر يك از اين عناصر ديدگاه خاصي وجود دارد كه تعيين كننده نوع روش‌ها و فنوني است كه ما براي آموزش بكار مي‌بريم. در اينجا به بررسي و مقايسه‌ اين ديدگاه‌ها در هر دو رويكرد مي پردازيم:
• آموزش سنتي، نگاه به آموزش و يادگيري فردي است درحاليكه در آموزش الكترونيكي، نگاه اجتماعي است.
• در آموزش سنتي، وظيفه‌ي فراگيران حفظ مطالب و ذخيره‌سازي اطلاعات است، در حاليكه در آموزش الكترونيكي وظيفه‌ي آنان، مديريت اطلاعات و توليد دانش است.
• در آموزش سنتي، فراگيران به طور كامل وابسته به معلم‌اند، در حاليكه در آموزش الكترونيكي فعال و مستقل هستند.
• در آموزش سنتي، محتواي تدريس محدود و انتخابي است، در حاليكه در آموزش الكترونيكي نامحدود و متنوع است.
• دستاوردهاي آموزش الكترونيكي را با برآورد چهار شاخص عمده مي‌آزمايند. اين شاخص‌ها عبارتند از:
رضايت فراگيران، مهارت و رفتار فراگيران، تغيير در دانش فراگيران، تغيير عملكرد شغلي آنان و ميزان بازگشت سرمايه، در حاليكه شاخص‌هايي كه دستاوردهاي آموزش سنتي را مي‌آزمايند، كمتر براي اين مطالب اهميت قائل هستند.

مسائل ومشكلات آموزش الكترونيكي

راه‌اندازي آموزش الكترونيكي با مسائلي مواجه است كه، در برخي از كشورها به خصوص كشور ما اين مسائل بيشتر به چشم مي‌آيد كه برخي سخت‌افزاري، برخي نرم‌افزاري و برخي نيز به نيروي انساني و روش مديريت آموزش مربوط مي‌شود كه در ادامه به آنها مي‌پردازيم:
• محدوديت در زير ساخت‌هاي مخابراتي كه عملاً آموزش الكترونيكي از طريق شبكه‌هاي محلي اينترنتي را با مشكل مواجه كرده است.
• عدم مطابقت محتواي عرضه شده با نيازهاي موجود
• فقدان مهارت‌هاي مديريتي و نظارتي
• نداشتن آشنايي كافي كاربران با رايانه و ترس از استفاده از آن كه، موجب كندي پيشرفت كار آموزش مي‌شود.
• نبود توانايي در عرضه‌ مناسب خدمات پشتيباني به فراگيران
به طور خلاصه مي توان گفت كه آموزش الكترونيكي ، محدوديتهاي مراكز آموزش سنتي را نداشته و در بسياري از جهات مزاياي زيادي نيز نسبت به آنها دارند .كه به طور كلي عبارتند از:
1 - عدم نياز به حضور فيزيكي استاد و دانشجو در كلاس درس
2- عدم وابستگي كلاس درس به زمان خاص
3- كيفيت بالاتر ارائه دروس آموزشي
4- پشتيباني از تعداد زياد دانشجويان در يك كلاس
5- بالا بردن سطح علمي جامعه بخصوص نسل جوان
6- دسترسي Online به كتابخانه ديجيتال
7- بالا رفتن ميزان اثر بخشي و بازده آموزشي

فوايد آموزش‌ الكترونيكي‌:

امروزه با پيدايش آموزش الكترونيكي ، تصورات قبلي در زمينه نياز به امكانات فيزيكي بسيار براي امر آموزش و يادگيري در سطح عمومي و آموزش عالي دچار تحول ودگرگوني جدي شده است.اكنون با به صحنه آمدن دانشگاهها و مراكز آموزش الكترونيكي ، امكان يادگيري در هر زمينه اي ، براي هر فردي در هر زمان و مكاني به صورت مادام العمر فراهم شده است.
در شرايط جديد ، نياز به تاسيس ساختمانهاي و امكانات فيزيكي و صرف هزينه هاي گزاف نبوده و دانشجويان و مدرسان نياز به ترك منزل و يا محل كار خود براي حصور در كلاسها ندارند.
افزون بر اين ، ساعات شروع و خاتمه كلاسها ثابت نبوده و دانشجويان هر زمان كه بخواهند ميتوانند وارد كلاس شده و تا هر زمان كه لازم باشد حضور در كلاس را ادامه دهند .
در اين روش شما مي توانيد هر روز و هر لحظه كه اراده نماييد با استاد و همكلاسيهاي خود ارتباط برقرار نموده و به تبادل نظر و مباحث گروهي پيرامون مفاد درسي و يا تمرينهاي داده شده از طرف استاد بپردازيد.

معايب آموزش الكترونيكي:

1- مشكل‌مرورگر 1 (نرم‌افزاري‌ كه‌ امكان‌ دسترسي‌ وب در زمان‌ اتصال‌ به‌ اينترنت‌ را به‌ وجودمي‌آورد) كه‌ گاهي‌ باعث ايجاد مشكل در نمايش وب مي شود.
2- كمبود سرعت‌ انتقال‌ اطلاعات‌ و صوت‌ و گرافيك‌ كه‌ امكان‌ دارد آموزش‌ از اين‌ ناحيه‌ دچاراشكال‌ شود .
3- نياز به‌ تامين‌ كافي‌ زير بناي‌ مورد نياز از جمله‌ نيروي‌ كارآمد براي‌ سيستم‌هاي‌ الكترونيكي‌دارد.
با اين وجود اين‌ روش‌ نيز در حد خود مناسب‌ و مطلوب‌است‌ اما يكي‌ از موارد قابل‌ ذكر اين‌ است‌ كه‌ آموزش‌ از طريق‌ الكترونيك‌ به‌ هيچ‌ وجه‌ نمي‌تواندجاي‌ هيچ‌ استادي‌ را بگيرد، زيرا آموزش‌ از راه‌ ارتباط‌ نزديك‌ بسيار مهم‌ است‌ و هميشه‌ اين‌ دوبا هم‌ توصيه‌ مي‌شود.
هم‌ چنين‌ بحث‌ اين‌ است‌ كه‌ چگونه‌ از تكنولوژي‌ استفاده‌ كنيم‌چرا كه الان‌ مقطعي‌ است‌ كه‌استفاده‌ از تكنولوژي‌ در آموزش‌ حتماً بايد صورت‌ گيرد و تكنولوژي‌ نبايد به‌ عنوان‌ يك‌ حمايت‌كننده‌ و پشتيبان‌ به‌ شمار آيد.
نكته‌ بعدي‌ نيز آن‌ است‌ كه‌ از آرمانگرايي‌ بايد جلوگيري‌ شود و تدابير و سياستهايي‌ بايد توسط‌مديران‌ در اين‌ زمينه‌ اتخاذ شود كه‌ جلوي‌ اين‌ موضوع‌ را بگيرد تا ناخواسته‌ نتايج‌ ناخوشايندي‌ به‌بار نيايد.
به‌ هر حال‌ بهره‌گيري‌ از روش‌ آموزش‌ الكترونيكي‌ پديده‌ نوظهوري‌ است‌ و بايد راجع‌ به‌ آن‌ دربستر زمان‌ تفكر و تامل‌ كرد، در واقع‌ اين‌ گونه‌بايد انديشيد كه چگونه‌ مي‌توان‌ از آن‌ بهره‌ گرفت‌ كه‌موثر واقع‌ شود، براي‌ رشد و توسعه‌ آن‌ هم‌ بايد با توجه‌ به‌ امكانات‌ فكر كرد.
اهداف و ويژگي هاي آموزش الكترونيكي :
به طور كلي مي توان اهداف آموزش الكترونيكي را در سه اصطلاح زير خلاصه كرد :
- يادگيري ارزانتر
- يادگيري بهتر
- يادگيري بيشتر
در فرايند يادگيري ميزان اثر بخشي ارتباط مستقيم با روشهاي يادگيري دارد. در جدول زير درصد يادگيري نسبت به روشهاي ارائه مطالب نشان داده شده است.



روش ارائه مطالب ميزان يادگيري
آنچه مي خوانيد 10 %
آنچه مي شنويد 20 %
آنچه مي بينيد 30 %
آنچه مي بينيد و مي شنويد 50%
آنچه بحث مي كنيد 70%
آنچه تجربه مي كنيد 80%
تركيب اين روشها 90%

در آموزش الكترونيكي مي توان از تركيب نمودن شيوه هاي مختلف يادگيري از قبيل متن ، صوت و تصويري و ... به حداكثر بازده در يادگيري دست يافت.
براي مديريت برنامه هاي آموزشي كه از طريق آموزش الكترونيكي ارائه مي گردند و همچنين استفاده كنندگان از اين روش نياز به يك سيستم LMS1 مي باشد كه داراي ويژگيهاي زير مي باشد :
 امكانات Web Browsing
 امكانات Synchronous Sharing
 امكانات تهيه دوره
 Course Planning
 Course Customising
 Course Managing
 Course Monitiring
 امكانات تهيه دروس
 Instructional Desiging
 Presenting Infornation
 Testing
 امكانات راهبري سيستم
 Installing
 Autorization
 Registering
 Server Security
 Resource Monitoring
 Remote Access
 Crash Recovery
در شكل زير ساختار كلي و عناصر موجود در سيستم آموزش الكترونيكي و موقعيتLMSبعنوان قلب سيستم نشان داده شده است:



منبع: پيدايي،ميرشجيل،"تجزيه وتحليل ميزان اثربخشي آموزش هاي الكنرونيكي "،پايان نامه كارشناسي ارشد،دانشگاه
علامه طباطبايي،دانشكده حسابداري و مديريت،1382


محيط ياددهي – يادگيري را مي توان به چهار حوزه تقسيم كرد : 1 – برنامه درسي 2 – روش تدريس
3 – ارزيابي 4 – مواد ياددهي – يادگيري
در زير ويژگيها و فوايد اين حوزه ها نمايش داده شده است.
برنامه درسي


روش تدريس


ارزيابي


وسايل آموزشي


انواع آموزش الكترونيكي

الف – آموزش مبتني بر كامپيوتر Computer Based Training))
در اين نوع آموزش، مواد آموزشي ديسك نوري يا فلاپي ديسك روي يك رايانه نصب
مي شود و نيازي نيست كه رايانه به شبكه و منابع مربوط به دوره متصل شده باشد. با استفاده از اين شيوه، فراگيران مي توانند در زمان و مكان معين و مشخصي به طور انفرادي، به يادگيري موضوعات مورد علاقه خود بپردازند.

ب – آموزش بر پايه وب (Web Based Training)

در اين روش ، مواد آموزشي از جانب سرويس دهنده «وب» و از طريق اينترنت ارائه مي شود. WEB ارتباط با منابع آموزشي نظير كتاب هاي مرجع، پست الكترونيكي، تابلوهاي اعلانات و گروههاي گفت و گو را ايجاد مي كند. اين شيوه آموزشي، علاوه بر داشتن مزيت هاي آموزش الكترونيكي مزاياي آموزش هاي سنتي را نيز حفظ كرده است. ايجاد شكاف بيشتر بين يادگيري و آموزش، وجود شبكه جهان گستر «وب» را براي برقراري تعاملات بيشتر بين اين دو عامل الزامي مي كند.

ج – كنفرانس ويديويي

در يك تعريف ساده و اوليه مي توان گفت : Video Conferencing يعني ايجادو برقراري ارتباط بين دو يا چند مكان داخل شهري ، بين شهري ، بين كشوري و يا تركيبي از آنها به نحوي كه درهر مكان شخص يا گروه شركت كننده در كنفرانس بتوانند صدا ، تصوير ، اطلاعات ديجيتال و مدارك كاغذي ( مستندات ، نقشه ها و … ) اشخاص و گروه هاي ديگر شركت كننده در كنفرانس را شنيده و رويت كنند .(kurtus,2000)
اصول كنفرانس ويدئويي مبتني بر دريافت صوت و تصوير اشخاص شركت كننده در كنفرانس و همچنين اطلاعات ديجيتال و مستندات آنها و تبديل اين اطلاعات به سيگنالهاي خاص مخابراتي و ارسال آنها به نقاط ديگر و تبديل مجدد آنها به همان فرمت اوليه مي باشد .


روش هاي مختلفي كه در ارائه ويدئو كنفرانس وجود دارد عبارتند از:
الف : روش يك به يك Point To Point
در اين روش مي توان تنها دو شخص يا دو گروه را از طريق سيستم به يكديگر متصل نمود بعبارت ديگر اين روش شباهت زيادي به يك تماس تلفني معمولي بين دو نقطه دارد كه در آن علاوه بر انتقال صدا، انتقال تصوير ، داده و مستندات نيز موجود است .



ب : روش چندگانه Multipoint - To - Multipoint
در اين روش مي توان به تعداد دلخواه شخص و يا گروهها را وارد كنفرانس نمود طبيعي است كه تمام اشخاص يا گروهها داراي امكانات كنفرانس مي باشند .
نكته قابل توجه در اين روش آنست كه سيستم هاي ويدئوكنفرانس مي بايست از طريق يكي از بسترهاي مخابراتي ذكر شده در قبل به يك سيستم مركزي MCU ( Multipoint Conferrence Unit ) متصل شوند .
وظيفه MCU برقراري ارتباط ، برقراري پروتكل ها ، حفظ سرعت انتقال داده و بطور كلي مديريت همه جانبه كنفرانس مي باشد .
نكته مهم ديگر اينكه براي هر تعداد دلخواه شركت كننده در كنفرانس تنها يك MCU كافي مي باشد و فقط نوع و توانمندي فني آن مي بايست پاسخگوي نيازهاي كنفرانس باشد .
د – سيستم ماهواره
علامت هاي صوتي و تصويري، از طريق ماهواره هايي كه دور زمين مي گردند، ارائه مي شود. سيستم ماهواره از يك هاب (فرستنده) و يك ايستگاه زميني (گيرنده) تشكيل شده است.(ثمري،1381)
در اين روش ، از يك پروژكتور ، يك صفحه نمايش و يك رايانه كه از طريق ماهواره به يك شبكه الكترونيكي متصل است، استفاده مي شود.

آموزش الكترونيكي در ايران

در ايران با مطرح شدن طرح تكفا و توجه به استفاده از فن‌آوري اطلاعات، آموزش الكترونيكي به خصوص براي توسعه آموزش عالي مورد توجه قرار گرفته است. استفاده از آموزش الكترونيكي در خصوص آموزه‌هاي كمك آموزشي در سطوح مختلف تحصيلي، اعم از دبستان، راهنمايي، دبيرستان، آزمون سراسري و ... صورت پذيرفته است. بخش‌هاي خصوصي نيز در اين راه پيشقدم شده‌اند و زير ساخت‌هاي مورد نياز براي توسعه‌ي اين آموزش را در حال فراهم كردن مي‌باشند، متأسفانه اين راهكار مورد آموزش در سازمان‌ها كمتر مورد توجه قرار گرفته‌ است كه شايد علل توسعه نيافتگي و استفاده نكردن از اين شيوه‌ در سازمان‌ها خصوصاً هزينه‌ي بالا و بحث‌هاي ذكر شده در بخش‌هاي قبل باشد.

همچنين براي استفاده از اين راهكار در سازمان‌ها، بايد اقدام‌هاي فرهنگي نيز صورت گيرد، زيرا اكثر افراد شاغل در بخش‌هاي آموزش سازمان‌ها به خصوص آموزگاران، بايد از اينكه اين روش، جايگزين آنان شود در نتيجه شغل خود را از دست بدهند، نگران هستند، در حاليكه آموزش مجازي به خصوص در مقاطع مدرسه‌اي و دانشگاهي به هيچ وجه قادر به جايگزيني آموزش سنتي نخواهد شد، بلكه اين شيوه‌ي آموزش مانند آموزش مكمل بكارمي‌رود. زيرا در حالت محلي،وجود مدرسه مزاياي فراواني براي دانش آموزان را و آنان را از كودكي با اجتماع آشنا مي‌كند و مفاهيمي همچون مهر و محبت، اجتماع و كار گروهي را خواهند آموخت در حاليكه هيچ كدام از اين موارد با كار با رايانه بدست نمي‌آيد.(زارعيان،1381)

نتيجه‌گيري و پيشنهاد ها

• بر اساس آخرين مطالعاتي كه بر روي سازمان‌هاي بزرگ صورت گرفته است، حدود ٦٦ درصد اين سازمان‌ها يا از اين فن‌آوري استفاده مي‌كنند و يا مشغول برنامه‌ريزي براي استفاده كردن از آن، در آينده نزديك هستند. لذا جاي دارد كه سازمانها و موسسات مختلف در كشور ما نيز تلاش هاي جدي تري در استفاده از اين تكنولوژي داشته باشند.

• با توجه به مقرون به صرفه بودن و ساير مزاياي آموزش مجازي در سازمان‌هاي بزرگ، بهتر است برنامه‌ريزي در خصوص استفاده از اين فن‌آوري توسط مديران آموزش دستگاه‌ها صورت مي‌گيرد.
• بستر سازي و سرمايه‌گذاري كلان و ملي براي ايجاد زير ساخت فني و مخابراتي در زمينه‌ي فن‌آوري اطلاعات

• اصلاح زير ساخت‌ها به خصوص در بخش آموزش نيروي انساني.

• ايجاد شبكه‌اي آموزشي ٢٤ ساعته در تلويزيون به منظور آموزش عمومي مردم در زمينه‌ي فن‌آوري اطلاعات و آگاهي مردم از اين فن‌آوري

• در استفاده از فن‌آوري آموزش الكترونيكي بايد توجه شود كه، مهمترين بخش اين شيوه‌ي آموزشي، محتواي مطالب 1 است و در انتخاب اين محتوا دقت و ظرافت لازم اعمال شود.

• در بخش مديريت آموزش از افرادي استفاده شود كه، داراي مهارت‌هاي مديريتي و نظارتي، در زمينه‌ي آموزش الكترونيكي باشند.

+ نوشته شده در پنجشنبه سی ام فروردین 1386ساعت 2:10 توسط عزیز پورابراهیم |

Post مديريت سيستم در لينوكس



مقوله مديريت سيستم همواره از مباحث سطح بالا در يك سيستم عامل به حساب مي‌آيد. مديران سيستم معمولاً از پرمشغله‌ترين دست‌اندركاران سيستم‌هاي اطلاعاتي به حساب مي‌آيند. در اين شماره و شماره‌هاي آينده ماهنامه شبكه به برخي مسائل و ابزارهاي مديريتي در سيستم عامل لينوكس خواهيم پرداخت.

مفهوم مديريت سيستم‌
مديريت سيستم در لينوكس همواره جايگاه ويژه‌اي را در ميان مشاغل و تخصص‌هاي مرتبط با فناوري اطلاعات دارا بوده است. در حال حاضر بسياري از متخصصان IT در نرم‌افزارهاي مربوط به اين سيستم‌عامل كه امروزه به نام نرم‌افزارهاي اپن‌سورس شناخته مي‌شوند، داراي مهارت‌ها و تجارب خوبي هستند. مثلاً عده‌اي از آن‌ها به خوبي قادرند يك وب سرور مبتني بر آپاچي را پيكربندي و راه‌اندازي كنند يا برخي ديگر مي‌خواهند لينوكس را در نقش يك سرور ميزبان دامنه (DNS) يا سرور اختصاص آدرس IP در يك شبكه (DHCP) تنظيم كنند و به كار گمارند.

به‌طور كلي مشغله اين دسته از اداره‌كنندگان سيستم، راه‌اندازي سرورهاي لينوكسي در نقش‌هاي مختلف و ارائه سرويس‌هاي گوناگون شبكه‌اي است. اما آيا واقعاً مديريت سيستم در لينوكس به همين موارد محدود مي‌شود؟ يا آيا اين مسائل اصولاً جزء وظايف يك مدير سيستم محسوب مي‌گردد؟ در يك كلمه مي‌توان گفت: خير. دليل آن هم كاملاً روشن است. يك سرويس شبكه‌اي يا يك سرويس شبكه ممكن است فقط يك‌ بار نصب و راه‌اندازي شود، اما صدها بار در طول سال مورد بازبيني و عمليات نگهداري (Maintenance) براي بهبود كارايي يا رفع اشكال قرار گيرد.

در واقع واژه <مديريت سيستم> نيز به اين‌گونه امورِ مربوط به تعمير و نگهداري بسيار نزديك‌تر است تا به مسائل مربوط به تنظيم و راه‌اندازي. بنابراين بسيار واضح است كه براي يك مدير سيستم، آشنايي با مباحث مربوط به نصب و راه‌اندازي و تسلط بر امور مربوط به نگهداري سيستم مثل مديريت كاربران، فايل‌ها، امنيت، فايل سيستم، سرعت و كارايي سيستم شرط لازم و كافي براي تصدي اين پست شغلي است.

به عنوان مثال، در يك وب‌سايت كه روزانه هزاران بار مورد بازديد كاربران اينترنت قرار مي‌گيرد، امكان بروز رويدادي كه سرور ميزبان را به شدت دچار افت سرعت و كارايي كند، بسيار محتمل است. در اين وضعيت شايد مدير سيستمي كه چندان به مسائل مربوط به نگهداري و كنترل ترافيك مسلط نباشد، راه‌حل را در توقف و راه‌اندازي مجدد سرور يا همان Reset كردن بيابد، اما كاملاً روشن است كه بسياري از ايرادات ممكن است با اين روش مقابله، سازگار يا قابل رفع نباشند.

بنابراين يك مدير سيستم مسلط به امور مانيتورينگ و نگهداري سيستم، مي‌تواند عمكرد سرور را در ساعات اوج ترافيك مشخص نمايد و با توجه به ميزان كاركرد پردازنده (CPU) يا تعداد عمل خواندن و نوشتن اطلاعات در هاردديسك (R/W)، مشكل را مكان‌يابي كند. پس از طي اين مراحل، وي قادر است مثلا‌ً با افزايش ظرفيت محاسباتي يا سرعت عملR/W يا راه‌اندازي يك سرور مجازي كمكي مشكل را تا حد مطلوبي كاهش دهد يا حتي در برخي موارد بدون صرف هزينه‌اي براي تعويض پردازنده، هاردديسك و امثال آن يا اضافه‌ نمودن سرور، با استفاده از نرم‌افزار‌هاي مديريت سيستم مثل Xen مي‌تواند به هر برنامه قابل اجرا روي سرور، حد معيني را جهت استفاده از پردازنده يا ساير منابع سيستم اختصاص دهد تا از تداخل برنامه‌هاي مختلف و همزمان، در كارايي يكديگر جلوگيري كند.

اما اگر بخواهيم وظايف روزانه يك مدير سيستم را برشماريم، اين مسئله بستگي به نوع محيطي دارد كه وي در آن مشغول به كار است. طبيعي است كه وظايف روزانه مديرسيستم يك شبكه محلي كوچك، با مدير يك سرويس‌دهنده اينترنتي با تعداد زيادي وب‌سرور كاملاً متفاوت باشد، اما اين تفاوت را شايد بتوان به‌ گونه‌اي، در تعداد و حجم اين وظايف (به دليل بيشتر بودن تعداد كامپيوترهاي موجود در شبكه، سرورها يا كلاينت‌هاي قابل اتصال و استفاده از شبكه) دانست. البته بسياري از وظايف مدير سيستم نيز مستقل از نوع محيط هستند و به عبارتي، بين تمام مديران سيستم‌هاي كوچك و بزرگ مشتركند.

يكي از اين وظايف، مانيتورينگ و پيشگيري يا حداكثر رفع ايراد زودهنگام از مشكلات قابل بروز در سطح شبكه است. به عنوان مثال، كشف مشكل مربوط به اشتراك فايل يا چاپگر در سطح يك شبكه محلي كوچك يا مشكل سرويس بانك اطلاعاتي در وب سرور يك سايت مهم را نبايد تا هنگام مراجعه و گلايه كاربران به تعويق انداخت. اين يكي از وظايف مهم يك مدير سيستم است كه با كنترل و مانيتورينگ منظم و متناوبِ عملكرد سيستم و شبكه، بروز مشكل را تا حد امكان پيش‌بيني ‌مي‌كند يا درصورت وقوع، آن را در همان ساعات اوليه و با استفاده از راهكارهاي از پيش تعيين شده برطرف نمايد.

در محيط لينوكس، امروزه بسياري از مديران سيستم قادرند با استفاده از ابزارهاي مختلف كه براي مانيتورينگ سيستم در جامعه اپن‌سورس طراحي و ساخته شده، از عهده اين امر مهم برآيند؛ ضمن اين‌كه هنوز هم بسياري از دستورات مديريتي خط فرمان در لينوكس، كاربرد مناسبي در اين زمينه دارند.

شكل 1
LinuxConf

اين برنامه يك ابزار بصري يا ويژوال براي مديريت در محيط لينوكس است. اين ابزار در برخي توزيع‌هاي لينوكس موجود است. به‌علاوه، فايل‌هاي قابل كامپايل يا پچ‌هاي قابل‌نصب آن به دو صورت بسته‌هاي ردهت (RPM) و دبيان قابل دسترس است و مي‌توان آن را با هر دو واسط كاربر Gnome و KDE نصب و اجرا كرد.

(شكل 1) اين برنامه قادر است تنظيماتي در سطح شبكه يا روي كامپيوتر ميزبان به عنوان سرور يا كلاينت شبكه انجام دهد. و داراي سه زبانه يا Tab اصلي است كه به نام‌هاي Config ،Control و Status، محل اعمال تنظيمات، كنترل و مديريت و مانيتورينگ وضعيت سيستم، سرور وسرويس‌هاي شبكه‌اي هستند.

LinuxConf طوري طراحي شده است كه مدير سيستم مي‌تواند با خاطري آسوده، تنظيمات مورد نظر خود را انجام دهد و پس از آن با كليك دكمه Accept، يكباره تمام تنظيمات انجام شده را با هم به سيستم منتقل نمايد.

شكل 2
Webmin

همان طور كه از نام آن برميآيد، ابزاري تحت وب براي مديريت لينوكس است كه مي‌توان از آن براي مديريت اين سيستم عامل و شبكه تحت آن از راه دور، استفاده نمود.

اين برنامه نيز به نوبه خود قادر است بسياري از وظايف مديريتي سيستم يا شبكه مثل مديريت كاربران و گروه‌هاي كاربري، كنترل سرويس‌هاي شبكه‌اي چون وب‌سرور، ايميل سرور، كنترل سخت‌افزارهاي سرور مثل پارتيشن‌هاي هاردديسك، RAID و امثال آن، مديريت فايل‌ها و بسياري امور ديگر را انجام دهد.

اين برنامه نخستين‌بار و با مجوز نرم‌افزار آزاد BSD در لينوكس Caldera به كاربران عرضه گرديد، اما در حال حاضر، توسعه‌‌دهندگان و شركت‌هاي توسعه‌دهنده يا توزيع‌كننده لينوكس قادرند با استفاده از مجوز GPL ماجول‌هاي موردنظر خود را به صورت برنامه‌هاي كامپايل شده CGI، به آن اضافه كنند. اين ويژگي يعني قابليت اضافه نمودن Plug inهاي ساخت توسعه‌‌دهندگان به هسته اصلي Webmin، از نقاط مثبت اين ابزار است. (شكل 2)

شكل 3
YAST

شايد بتوان گفت كه يكي از زيباترين و جالب‌ترين برنامه‌هاي مديريت در محيط لينوكس، برنامه‌اي به نام
Yet Another System Tool) YAST) است كه اولين بار با لينوكس آلماني SUSE به كاربران معرفي شد.

نسخه اوليه YAST صرفاً يك برنامه ساده بود كه بيشتر براي مديريت پارتيشن‌ها، بسته‌هاي نرم‌افزاري و برخي تنظيمات سيستمي ديگر مورداستفاده قرار مي‌گرفت، اما اكنون نسخه‌هاي جديد YAST2 برنامه‌هاي بصري بسيار قدرتمندي هستند كه تمام ابزار لازم براي مديريت سيستم‌عامل لينوكس را در اختيار مديرسيستم قرار مي‌دهند. (شكل 3)


اين برنامه داراي قسمت‌ها و ماجول‌هاي مختلفي است كه مديريت سيستم و شبكه را به نحو بسيار مطلوبي در يك واسط كاربر مشترك، متمركز نموده و كار را براي مديرسيستم آسان كرده است.

لينوكس SUSE به دليل بهره‌گيري از برنامه YAST سال‌ها است در برابر رقباي ديرينه‌اي چون ردهت يا فدورا، از لحاظ آساني در مديريت سيستم و شبكه، خودنمايي مي‌كند. همان‌طور‌كه در شكل نيز مشاهده مي‌كنيد، زبانه‌هاي مختلف موجود در اين ابزار، ماجول‌هاي مربوط به مديريت سيستم را به بهترين و شفاف‌ترين شيوه، دسته‌بندي مي‌نمايد و مديرسيستم را از درگير شدن بي‌مورد با فرامين پيچيده و وقت‌گير خط فرمان معاف مي‌كند. YAST ابزاري است كه بررسي آن، مقاله‌اي مفصل‌تر را مي‌طلبد كه در آينده به آن خواهيم پرداخت.


+ نوشته شده در پنجشنبه سی ام فروردین 1386ساعت 2:7 توسط عزیز پورابراهیم |

معماری اراکل
 

پایگاه داده اراکل متشکل از قسمتهای مختلفی می‌باشد. بعضی از آنها ساختارهای حافظه میباشند و بعضی دیگر پردازشهایی در پشت صحنه می‌باشند که دقیقا وظایف خاصی را انجام می‌دهند و منابع به کار گرفته شده توسط هارد دیسک برای ذخیره کردن داده های یک سازمان و همچنین ابزارهایی طراحی شده برای بازیافت اطلاعات برای جلوگیری از بین رفتن آنها در اثر اشتباهات و خراب شدن دیسک میباشد. به مجموعه ساختار های حافظه و پردازشهای مربوط به انجام وظایف Oracle Instance می‌گویند. و به مجموعه این Instance و بقیه اجزاء Oracle Database میگویند.

Oracle Server Architecture

Memory Architecture

SGA : Oracle's Primary Memory Component

در این بخش ابتدا به ساختارهای حافظه در یک Oracle Instance می‌پردازیم. به طور کلی دو ساختار اصلی از حافظه در اراکل وجود دارد. اولین قسمت و مهمترین قسمت System Global Area یا SGA میباشد . بیشتر اوقات وقتی از حافظه صحبت میشود منظور همان SGA میباشد. خود SGA تشکیل شده از قسمتهای مختلفی از جمله Buffer Cache, Shared Pool, Redo Log Buffer می‌باشد. البته اجزای دیگری در این قسمت وجود دارد که در فرصت مناسب به شرح آنها خواهیم پرداخت.

Buffer Cache

این ساختار حافظه تشکیل شده از بافرهایی به اندازه های یکسان که به آن Database Block گفته میشود میباشد. که کار آن ذخیره داده هایی که است که توسط Sql به سمت کاربر بر میگردد. به طور کلی شما می تواننید Buffer Cache را را مجموعه ای از بافرها با سایزهای یکسان تصور کنید. به خاطر همین است که وقتی شما پارامترهای یک Database را تنظیم می‌کنید تعداد بافرها را مشخص می‌کنید نه سایز آن را به بایت. Datablock واحدی مجزا از حافظه در اراکل است که میتواند چندین سطر از یک Table را در خود جای دهد.

Buffer Cache دارای دو وظیفه اصلی می‌باشد. یکی برای افزایش کارایی اراکل برای جواب دادن به Select های تکراری از سمت کاربر و وظیفه دوم سرعت بخشیدن به تغییراتی است که کاربر در Database می‌دهد. این تغییرات ابتدا در حافظه ثبت شده و بعدا بر روی دیسک ذخیره میشود.

Shared Pool

این ساختار تشکیل شده از سه قسمت می‌باشد که وجود دو قسمت آن لازم می‌باشد . قسمت اول Library Cache می‌باشد که محل نگهداری دستورهای تجزیه شده Sql و نگهداشتن آنها در حافظه برای استفاده مجدد میباشد و قسمت دوم Dictionary Cache می‌باشد که گاهی به آن Row Cache نیز گفته میشود و وظیفه آن نگهداری اطلاعات اخیر خوانده شده از Data Dictionary می‌باشد که به عنوان مثال شامل Usernames, Password, Previlages میباشد.

Redo Log Buffer

این قسمت تغییرات ایجاد شده توسط DML و توسط کاربر ایجاد شده است را در خود نگهداری می‌کند. دستورهای DML شامل Update, Delete, Insert, Drop و... که توسط کاربر اجرا شده و باعث تغییرات در Database, Tables, Rows می‌شود. این تغییرات به صورت Redo Entry در حافظه نگهداری و سپس بر روی دیسک ذخیره میشوند که توسط آنها می‌توان اشتبا‌هاتی را که کاربران انجام می‌دهند و باعث از دست دادن اطلاعات می‌شود را توسط این Redo Entry ها بازیافت نمود.

The PGA : The Oracle User's Memory Area

ساختار دیگر حافظه در اراکل Program Global Area نام دارد. که کار آن نگهداشتن مقادیر متغییرهای تعریف شده توسط کاربران میباشد. اطلاعات هر کاربر نمی‌تواند Share باشد و باید فضای مخصوص به خودش را داشته باشد چون مقادیر واقعی متغییرهای درخواست شده توسط کاربر در این قسمت یافت میشود.

Reading Data From Disk

پردازش سرور

همیشه در اراکل چندین پردازش بطور همزمان با یکدیگر در حال اجرا شدن می‌باشند که شامل Background, Server, And Network Process می‌باشند که مهمترین آنها از نظر تاثیر گذار بودن بر کار کاربر server process می‌باشد که که اطلاعات در خواستی یک کاربر را از روی دیسک خوانده و آن را به Buffer Cache منتقل می‌کند. به طور کلی دو راه برای مدیران اراکل برای پیاده سازی Server Process وجود دارد. Shared Server And Dedicated Server

Dedicated Server

در این روش برای هر کاربری که به اراکل متصل می‌شود.یک اداره کننده Handler برای پردازشهای کاربر در نظر گرفته می‌شود که اصطلاحا به آن Genie Handler می‌گویند و به ازای هر کاربر که به اراکل متصل می‌شود یک Handler نیز ایجاد می‌شود که مسئولیت خواندن داده‌های درخواست شده از طرف کاربر و منتقل کردن آنها بر روی Buffer Cache را دارند و هر کاربر Handler مخصوص خودش را خواهد داشت. همچنین در این روش نیاز بیشتری به حافظه و استفاده از پردازشگر می‌باشد. اگر منابع سخت افزاری به اندازه کافی موجود باشد این روش انتخاب بسیاری از مدیران شبکه می‌باشد.

Shared Server

در این روش بر خلاف روش قبل تعداد کمی Server Process در اراکل در حا اجرا شدن می‌باشند که به درخواستهای کاربران پاسخ می‌دهند. در این روش چندین کاربر با یک Server process اداره می‌شوند. و ارکل این عمل را با استفاده از یک Network Process به نام Dispatcher انجام می‌دهد. در خواست هر کاربر به یک Dispatcher اتصال می‌یابد و توسط آن به درخواستهای کاربران جواب داده می‌شود. Dispatcher تمام درخواستها را در یک صف قرار داده و به آنها جواب می‌دهد. این مساله به معنی صرفا یک Dispatcher در کل اراکل نمی‌باشد. در این روش نیز شما قادر خواهید بود که Server Process And Dispatcher های متعددی را ایجاد نمایید. در این روش مصرف سخت افزاری کمتری نسبت به روش قبل لازم ‌می‌باشد. در Dedicated Server برای هر کاربر که به پایگاه متصل می‌شود زمانی برای ایجاد یک ‌Server Process لازم می‌باشد در حالی که در Shared Server، کاربران با استفاده از سرویس گرفتن از طریق یک Dispatcher موجود و یک Server Process در زمان صرفه جویی می‌کنند. به همین دلیل در پایگاه‌هایی که تعداد متعددی از کاربران به آن متصل می‌شوند استفاده از این روش بهتر می‌باشد.

User session Information

user session برای یک کاربر در اراکل در Shared pool ذخیره میشود اگر DBA اراکل را در حالت Shared Server تنظیم کرده باشد. در حالتی که اراکل در حالت Dedicated Server می‌باشد، User Session در PGA نگهداری می‌شود.

Structures That Connect Users to Oracle Servers

اولین مرحله ای که درخواست کاربر به آن می‌رسد Oracle Listener می‌باشد که بر روی پورت خاصی به درخواستهای کاربران گوش می‌کند. وقتی که درخواست کاربر به اراکل Listener رسید، امکان انجام شدن دو عمل وجود دارد. اگر اراکل از Dedicated server استفاده می‌کند، Listener به اراکل دستور ایجاد یک Dedicated Server را میدهد و سپس درخواست کاربر را به آن واگذار می‌کند. اگر Multi Thread Server مورد استفاده اراکل باشد، Listener درخواست کاربر را به به یک پردازشگر که همان Dispatcher Process می‌باشد واگذار می‌کند. بعد از انجام هر کدام از اعمالی که ذکر کردم، Listener دیگر نقشی نخواهد داشت و آماده قبول کردن درخواست بعدی از کاربر می‌باشد.

وقتی که درخواست کاربر به اراکل میرسد اگر اراکل در حالت MTS باشد، وقتی که کاربر درخواستی را انجام میدهد، Dispatcher درخواست کاربر را در یک صف به نام Request Queue یا همان صف درخواست کاربران قرار می‌دهد. Request Queue در System Global Area قرار دارد که درخواستها را به ترتیب جواب می‌دهند و برای اینکار از الگوریتم معروف First-In-First-Out استفاده می‌کند.

هر Dispatcher در SGA صف مربوط به خود رادارد و به درخواستهای صف مربوط به خودش پاسخ میگوید وجواب پاسخها نیز در بازگشت به کاربر مربوطه بر میگردد.

Stages in Processing Queries, Commits and Changes

زمانی که شما درخواست یک سری داده‌های مشخص از اراکل را توسط یک Sql Select انجام می‌دهید، دستورات به گونه‌ای است که شما درخواست اطلاعات دلخواه خود را صاذر می‌کنید. خروجی این دستورات باید یرای اراکل قابل فهم باشد. این کار توسط Relational Database Management System که همان RDBMS می‌باشد انجام می‌شود. RDBMS دستورات SQL شما را به گونه‌ای برای اراکل که قابل فهم باشد ترجمه می‌کند. مراحل پردازش به صورت زیر می‌باشد:

Search Shared Pool

RDBMS ابتدا سعی می‌کند که یک کپی از SQL ترجمه شده را در Library Cache پیدا کند.

Validate Statement

RDBMS، درستی دستورات SQL را که توسط کاربر اجرا شده است را چک می‌کند.

Validate Data Source

RDBMS مطمئن می‌شود که تمام سطرها و ستون‌های که کاربر دز دستورش به آنها اشاره کرده است وجود داشته باشد.

Acquire Locks

RDBMS در این مرحله object های استفاده شده توسط دستور کاربر را تا پایان اجرای آن قفل می‌کند.

Check Privileges

RDBMS مجوز کاربر را برای اجرای دستورات SQL را کنترل میکند.

Pars Statement

RDBMS با تشکیل یک Parse Tree برای دستور SQL آن را در Library Cache قرار می‌دهد که شرکت اراکل بر این عقیده است که این روش بهینه برای اجرای دستورات اراکل می‌باشد. اینها مراحلی هستند که RDBMS آنها را انجام می‌دهد تا به داده‌های مورد نظر کار بر برسد. اگر دستورات در Library Cache وجود داشت این مراحل قابل حذف می‌باشد.

Execute Statement

RDBMS تمام پردازشهای لازم را برای اجرای Select Statement را انجام می‌دهد، در این لحظه Server Process داده‌های مورد نظر را از روی دیسک به Buffer Cache منتقل می‌کند.

Fetch Values From Cursor

زمانی که اجرای select statement پایان یافت داده‌ها در یک Cursor ذخیره شده و به Variable های مورد نظر الصاق میشوند و به User Process باز می‌گردند.

Stages In Processing DML Statement

یکی دیگر از پردازشهای اراکل Undo Segment می‌باشد که کار آن ذخیره کردن ورژن‌های قدیمی داده‌هایی می‌باشد که توسط دستورات DML که توسط کاربر اجرا شده است را انجام می‌دهد. این دستورات دستوراتی از قبیل Update, Insert، Delete می‌باشد.

پردازش دستورات DML به شرح زیر می‌باشد:

Parse Statements

RDBMS با تشکیل یک Parse Tree برای دستورات و قرار دادن آنها در Library Cache مراحل اجرای آنها را فراهم می‌کند. اگر Parse Tree در Library Cache وجود داشته باشد. این مرحله اجرا نمی‌شود.

Execute Statement
RDBMS تمام پردازشها را برای اجرای دستورات DML انجام می‌دهد. برای آنجام Update و یا Delete پردازشگر سرور یا همان Server Process داده‌ها را از روی دیسک به Buffer Cache منتقل می‌کند و داده‌های منتقل شده را تا پس از پایان تغییرات Lock می‌کند. که این عمل باعث می‌شود تا دیگر کاربران نتوانند روی این داده‌ها تغییرات ایجاد کنند. برای انجام Insert این بار Server Process یک Block خالی را از روی دیسک انتخاب کرده و اطلاعات جدید را بر روی آن قرار می‌دهد. در کنار انجام شدن این پردازش، پردازش Undo Segment نیز انجام ‌می‌شود که اطلاعات قدیمی و جدید را ذخیره می‌کند.

Generate Redo Information

با توجه به مطالبی که قبلا با هم مرور کردیم، Redo Log Buffer تغییراتی را که روی داده‌ها انجام می‌شود را ذخیره می‌کند. بعد از انجام و تغییرات روی داده‌ها که ‌توسط DML انجام گرفته است حالا نوبت User Process می‌باشد که یک Redo Entry را در داخل Redo Log Buffer بنویسد. بدین ترتیب اراکل می‌تواند در مواقعی که داده‌ها از بین می‌روند و یا اینکه خراب می‌شوند، آنها را بازیابی کند. این Redo Entry ها بعدا بر روی دیسک ذخیره می‌شوند.

Moving Data Changes From Memory To Disk

بعد از تغییرات داده‌ها و پایان اجرای دستورات، داده‌های تغییر داده شده در Buffer Cache باید به روی دیسک انتقال داده شوند. به بافرهای تغییر کرده درون بافر اصطلاحا Dirty می‌گویند. همچنین اطلاعات در مورد تغییراتی که بر روی داده‌ها انجام شده است نیز در Redo Log Buffer وجود دارد. با ساختن تمام این تغییرات در حافظه اراکل قادر خواهد بود تا با سرعت بیشتری به DML Statement ها جواب دهد. به دلیل اینکه پیاده سازی و تغییرات بر روی حافظه سریع تر از ایجاد تغییرات بر روی دیسک می‌باشد. و دلیل دیگر این است که کاربر دیگر نیازی ندارد تا منتظر انتقال داده‌های ذخیره شده بر روی دیسک باشد. اراکل با اجرای دو پردازش در پشت صحنه تمام وظائف بالا را انجام می‌دهد.این دو پردازش DBW0, LGWR نام دارند که کار انتقال داده‌ها از روی Buffer Cache و Redo Log Buffer را بر روی دیسک انجام می‌دهد. این پردازشها Asynchronous هستند بدین معنی که این پردازشها گاهی بعد از این که کاربران تغییرات را انجام می‌دهند بر روی دیسک نوشته می‌شود.

Role of DBW0

Data Base Writer Process نامیده می‌شود که وظیفه آن انتقال Dirty Data Block ها از روی بافر به روی دیسک می‌باشد. این پردازش در ورژنهای قبلی اراکل DBWR نامیده می‌شد که در ورژنهای جدید به علت وجود چندین Database Writer Process دیگر به کار برده نمیشود.

این پردازش به یکی از دلائل زیر انجام می‌شود:

وقتی که Server Process به فضای بیشتری در Buffer Cache برای خواندن اطلاعات بیشتری احتیاج دارد.

وقتی که LGWR به DBW0 دستور نوشتن بدهد.

هر سه ثانیه و زمانی که تعداد Dirty Buffer ها به مقدار بحرانی برسد.

نکته: مساله‌ای که LGWR به DBW0 دستور نوشتن می‌دهد، Check Point می‌باشد. عدد صفر در DBW0 میتواند بین 0 تا 9 تغییر کند. پس اراکل می‌تواند تا 10 پردازش از DBW0 را داشته باشد.

Role of LGWR

Log Writer Process نامیده می‌شود که Redo Entry ها را از Redo Log Buffer در حافظه بر روی دیسک منتقل کند.

این پردازش به یکی از دلائل زیر انجام می‌شود:

وقتی که یک تراکنش به طور کامل انجام شود.

وقتی که یک سوم از Redo Log Buffer پر شده باشد.

قبل از اینک DBW0 داده‌ها را از روی حافظه بر روی دیسک بنویسد.

Stages In Commit Process

با استفاده از دستور Commit تمام تغییراتی که توسط کاربر بر روی داده‌ها در سطح User Process انجام شده است حالت پایدار پیدا می‌کنند. با استفاده از rollback تغییرات روی داده‌ها منسوخ می‌شوند وUndo Segment روشی است که اراکل با نگهداری یک کپی از داده‌های قدیمی و نگهداری آنها در Undo Segment، اراکل می‌تواند تغییرات را فسخ کند. این کار تا زمانی قابل انجام می‌باشد که Commit انجام نشده باشد.

نکته: استفاده از Commit دلالت بر نوشته شدن تغییرات ایجاد شده توسط کاربر بر روی دیسک ندارد. فقط در زمانهایی که در بالا گفته شد DBW0 داده‌ها را بر روی دیسک می‌نویسد.در زمان Commit کارهای زیر انجام می‌پذیرد:

آزاد کردن تمام سطرهایی که قفل شده‌اند. بعد از آزاد شدن آنها کاربران دیگر میتوانند در آن تغییرات ایجاد کنند.

آزاد کردن Undo Segment که توسط User Transaction قفل شده است.

ایجاد یک Redo Entry توسط User Process در زمانی که Commit انجام می‌شود.
Sys,System And Data Dictionary

sys, system دو کاربری هستند که اراکل در زمان ایجاد پایگاه داده آنها را ایجاد می‌کند. این دو کاربر قابلیت مدیریت پایگاه داده اراکل را دارند. کاربر SYS مهمتر می‌باشد زیرا مالکیت system table های اراکل را که دیکشنری داده‌ها نیز از آنجا مشتق می‌شود را نیز داراست. Oracle Data Dictionary نیز یکی از منابع سیستم میباشد که به منظور کسب اطلاع از هر چیزی در پایگاه شما به کار می‌رود. در بحث View از اراکل دو عنوان پایه‌ای وجود دارد.یک دسته انهایی هستند که اطلاعاتی راجع به Object های پایگاه داده به شما می‌دهند که به آنها Data Dictionary Views گفته میشود و یک سری از آنها اطلاعاتی را راجع به کارایی کل سیستم به شما بر م‌گردانند که به آنها Dynamic Performance Views گفته می‌شود .

+ نوشته شده در پنجشنبه سی ام فروردین 1386ساعت 2:5 توسط عزیز پورابراهیم |

زیست‌سنجی و کاربردهای آن در سیستمهای امنیتی

۱- تعریف، ضرورت و کاربردها

زیست‌سنجی۱ عبارت است از دانش و فن‌آوری اندازه‌گیری و تحلیل آماری داده‌های زیستی.۲ در فن‌آوری اطلاعات واژه‌ی زیست‌سنجی به مجموعه فن‌آوریهایی اطلاق می‌گردد که در آنها از اندازه‌گیری و تحلیل ویژگیهایی از بدن انسان همچون اثر انگشت، اثر کف دست، شبکیه و عنبیه‌ی چشم، الگوهای صوتی، الگوهای مربوط به رخسار ، دمانگاری صورت۳، شکل دست یا گوش، داده‌های به دست آمده از گام، الگوهای وریدی۴، دی.ان.ای۵ و یا ویژگیهایی همچون دستخط (امضا) و دینامیک ضربه زدن به صفحه‌کلید۶ برای تأیید هویت۷ اشخاص استفاده می‌شود.۸ این فن‌آوریها در تلاشند تا اندازه گیری و مقایسه‌ی ویژگیهای بر‌شمرده شده را به منظور بازشناسی افراد به صورت خود‌کار درآورند.

فن‌آوریهای زیستی در ابتدا برای کاربردهای تخصصی نیازمند امنیت بالا پیشنهاد شدند اما اینک به عنوان عناصر کلیدی در توسعه‌ی تجارت الکترونیک و سیستمهای برخط۹ و به همان صورت برای سیستمهای امنیتی نا‌برخط۱۰ و سیستمهای امنیتی منفرد۱۱ مطرح می‌باشند.

این فن‌آوریها اجزاء مهمی را برای تنظیم و نظارت بر نحوه‌ی دسترسی و حضور در سیستم فراهم می‌آورند. محدوده‌های عمده‌ی کاربرد این فن‌آوریها عبارتند از : تجارت الکترونیک، نظارت امنیتی، دسترسی به پایگاه داده‌ها، کنترل مرزها و مهاجرت، تحقیقات قضایی و پزشکی از راه دور۱۲.

توسعه‌ی فن‌آوریهای زیست‌سنجی فراتر از کاربردهای سنتی نیازمند امنیت بالا، یک اجبار نشأت گرفته از انگیزه‌های مالی است. امنیت معاملات برای آینده‌ی توسعه‌ی تجارت الکترونیک یک مسأله‌ی حیاتی است و نگرانیهای فراوانی درباره‌ی راه حلهای فعلی وجود دارد. مشکل شماره‌های شناسایی شخصی۱۳ و شناسه‌های هویتی۱۴ - مانند کارتها- این است که آنها صحت هویت شخصی را که از آنها استفاده می‌کند تأیید نمی‌کنند. آمارها میزان زیان ناشی از تقلب را به طور سالیانه برای کارتهای اعتباری بالغ بر چهارصد و پنجاه میلیون دلار و برای خودپردازها۱۵ حدود سه‌میلیارد دلار برآورد می‌کنند. برتری سیستمهای مبتنی بر زیست‌سنجی آن است که به شدت به ویژگیهای فردی اشخاص وابسته‌اند و به راحتی نمی‌توانند مورد سوء استفاده قرار گیرند.

۲- بررسی عملکرد سیستمهای موجود

فعالیتهای انجام شده تا به حال منجر به ظهور ماشینهای گران قیمت زیست- سنجی شده است که علاوه بر قیمت زیاد معمولاً از لحاظ سرعت و عملکرد مناسب نیستند یا حداقل برای دستیابی به عملکرد مناسب باید محیط استفاده‌ی آنها شرایط خاصی را داشته باشد و یا کاربران آنها آموزشهای گسترده‌ای را گذرانده باشند.

در حالی که بعضی از فن‌آوریهای زیست‌سنجی در قالب تولیدات تجاری به بازار عرضه شده‌اند بسیاری از این دسته فن‌آوریها در مرحله‌ی تحقیق و آزمایش قرار دارند. فن‌آوریهای مزبور نیازمند کارهای مطالعاتی بیشتر برای افزایش پایداری و بهبود عملکردشان برای استفاده در کاربردهای ویژه هستند.

پایداری در برابر تقلب ،دقت عملکرد، سرعت و تجهیزات مورد نیاز، همخوانی با سخت‌افزار و نرم‌افزار موجود، هزینه ،سادگی استفاده و پذیرش از سوی کاربر از جمله عوامل تعیین‌کننده در موفقیت هر یک از فن‌آوریهای به کار گرفته شده می‌باشند.

جدول شماره‌ی ۱ مقایسه‌ای از معمول‌ترین سیستمهای زیست‌سنجی موجود را ارائه می‌دهد

نوع سیستم دقت عملکرد سادگی استفاده میزان پذیرش کاربر
اثر انگشت بالا متوسط پایین
هندسه‌ی دست متوسط بالا متوسط
صوت متوسط بالا بالا
شبکیه‌ی چشم بالا پایین پایین
عنبیه‌ی چشم متوسط متوسط متوسط
امضا متوسط متوسط بالا
رخسار پایین بالا بالا

جدول شماره ۱ - مقایسه‌ی سیستمهای زیست‌سنجی معمول (منبع شماره ۱)

۳- اجزای سیستمهای زیست‌سنجی

عملیات سیستمهای زیست‌سنجی در بر دارنده‌ی دو مرحله‌ی مجزا می‌باشد: ثبت کاربر و بازشناسی کاربر. در مرحله‌ی اول اطلاعات مربوط به کاربر به سیستم وارد می‌شوند و در مرحله‌ی دوم اطلاعات ورودی حاضر با اطلاعات ذخیره شده مقایسه می‌گردند.

مراحل لازم عملیاتی در یک سیستم امنیتی مبتنی بر زیست‌سنجی

شکل شماره ۱ - مراحل لازم عملیاتی در یک سیستم امنیتی مبتنی بر زیست‌سنجی (منبع شماره ۳)

مرحله‌ی تأیید هویت۱۶ عبارت است از تطبیق ویژگیهای مورد ادعای یک شخص بر ویژگیهای موجود او در پایگاه داده‌ها که یک فرایند یک به یک است.

سیستمهای امنیتی مبتنی بر زیست‌سنجی بنا به انتخاب به وجود آورنده، به جای مرحله‌ی تأیید هویت می‌توانند مرحله‌ی دیگری را که بازشناسی۱۷ نامیده می‌شود جایگزین کنند. در این روش نیاز نیست که درخواست کننده ادعای هویت شخص خاصی را بنماید بلکه سیستم ویژگیهای او را با تمامی رکوردهای موجود مقایسه می‌کند و در صورت تطابق با یکی از آنها او را به عنوان شخص دارای ویژگیهای موجود در رکورد یافت شده بازشناسی می‌کند که این فرایند یک پردازش یک به چند را شکل می‌دهد.

سیستمهای تشخیص هویت زیستی معمول غالباً شامل اجزای زیر می‌باشند:

الف)گیرنده‌ی اطلاعات۱۸: زیرسیستمی است که گرفتن نمونه‌های زیست‌سنجی (صوتی، تصویری و…) را بر عهده دارد. ویژگیهای خاص استخراج شده از نمونه‌ها قالبهایی را برای مقایسه‌ی بعدی تشکیل می‌دهند. این فرایند باید سریع و ساده بوده در عین حال قالبهایی با کیفیت خوب را تولید کند.

ب) ذخیره کننده۱۹: قالبهای به دست آمده باید برای مقایسه‌ی بعدی ذخیره شوند. این زیر سیستم می‌تواند جزئی از وسیله‌ی گیرنده‌ی اطلاعات سیستم باشد و یا در یک سرور مرکزی قابل دستیابی توسط یک شبکه جای گیرد. جایگزین دیگر، یک شناسه‌ی قابل حمل نظیر یک کارت هوشمند۲۰ است. هر کدام از انتخابهای فوق مزایا و مشکلات خاص خود را دارد.

ج) مقایسه گر۲۱: اگر سیستم زیست‌سنجی در مقام بازشناسی افراد به کار گرفته شود باید هویت شخص با قالب ذخیره شده‌ی مورد ادعای او مقایسه شود. در بعضی سیستمها ممکن است امکان بروزآوری خودکار قالب مورد مراجعه پس از هر تطبیق درست وجود داشته باشد. این امر به سیستم توانایی سازگاری با تغییرات تدریجی کوچک در ویژگیهای کاربر را می‌دهد.

د) اتصالات۲۲: غالباً برای ایجاد ارتباط بین گیرنده‌ی اطلاعات، ذخیره کننده و مقایسه‌گر نیاز به اتصالات لازم وجود دارد. غالباً سیستمهای زیست‌سنجی نیازمند شبکه و رابطهای برنامه‌نویسی مورد نیاز برای ایجاد اتصال بین اجزاء می‌باشند. امنیت و کارایی، عناصر کلیدی برای این جزء می‌باشند.

۴- ارزیابی کارایی سیستمهای امنیتی مبتنی بر زیست‌سنجی

موضوع مهمی که در پذیرش سیستمهای زیست‌سنجی از اهمیت شایان توجهی برخوردار است تعیین کارایی هر یک از اجزاء و کل سیستم زیست‌سنجی به روشی قابل اعتماد و هدفمند است.

برای تعیین کارایی سیستمهای امنیتی مبتنی بر زیست‌سنجی معیارهای ویژه‌ای به کار گرفته می‌شوند. در این کاربردها تعدادی کاربر (سرویس‌گیرنده)۲۳ به سیستم وارد می‌شوند و متقلب۲۴ به عنوان شخصی تعریف می‌شود که مدعی هویت شخص دیگری است. متقلب ممکن است به عنوان کاربر در سیستم وجود داشته باشد و عمل وی ممکن است عمدی یا غیرعمدی باشد. عمل تأیید هویت باید کاربران را بپذیرد و متقلبان را رد کند.

نرخ پذیرش نادرست (اف. ای. آر)۲۵ به عنوان نسبت تعداد متقلبانی که به اشتباه توسط سیستم پذیرفته شده‌اند به تعداد کل متقلبان آزمایش شده تعریف گردیده، به صورت درصد بیان می‌شود. این نرخ، احتمال پذیرش متقلبان را توسط سیستم بیان می‌کند و باید در سیستمهای نیازمند امنیت بالا کمینه شود.

نرخ عدم پذیرش نادرست (اف. آر. آر)۲۶به عنوان نسبت تعداد کاربران سیستم که به اشتباه توسط سیستم پذیرفته نشده‌اند به تعداد کل کاربران مورد آزمایش قرار گرفته تعریف گردیده، به صورت درصد بیان می‌شود. این نرخ، احتمال عدم پذیرش کاربران مجاز را توسط سیستم بیان می‌کند و باید به صورت ایده‌آل مخصوصاً در سیستمهایی که در آنها کاربر در صورت عدم پذیرش از دسترسی به سیستم محروم می‌شود کمینه گردد.

روند تشخیص هویت مبتنی بر زیست‌سنجی دربردارنده‌ی محاسبه‌ی فاصله‌ی قالب ذخیره شده و نمونه‌ی حاضر است. تصمیم برای پذیرش یا رد نمونه‌ی حاضر بر اساس یک آستانه‌ی۲۷ از پیش تعریف شده اتخاذ می‌گردد. بنابراین واضح است که کارایی سیستم به شدت وابسته به انتخاب این آستانه است و این امر موجب ایجاد یک بده‌بستان بین نرخ پذیرش نادرست و نرخ عدم پذیرش نادرست می‌گردد. نرخ خطای برابر (ای.ای.آر)۲۸ به صورت آستانه‌ی برابری این دو نرخ تعریف می‌شود و غالباً به عنوان یک ویژگی نشان دهنده‌ی کارایی سیستم مطرح می‌گردد. شکل شماره‌ی 2 نشان دهنده‌ی رابطه‌ی سه پارامتر تعریف شده برای یک سیستم نمونه است.

FAR، FRR و ERR برای یك سیستم نمونه

شكل شماره ۲- FAR، FRR و ERR برای یك سیستم نمونه (منبع شماره ۱)

پارامتر مهم دیگر کارایی، زمان تشخیص هویت۲۹ است که به صورت زمان متوسط صرف شده برای فرایند تشخیص هویت تعریف می‌شود. این زمان شامل زمان لازم برای گرفتن نمونه‌ی حاضر نیز می‌باشد.

در حالی که بعضی از عرضه‌کنندگان سیستمهای امنیتی مبتنی بر زیست‌سنجی برای محصولاتشان پارامترهای کارایی فوق را در شرایط آزمایشگاهی بیان می‌کنند پارامترهای کارایی قابل طرح در جهان واقعی برای سنجش کارایی واقعی این گونه سیستمها به ندرت وجود دارند. علت این امر این واقعیت است که به حساب آوردن همه‌ی پیچیدگیهای ممکن جهان واقعی تأثیر گذار بر سیستمهای زیست‌سنجی تقریباً غیر ممکن است. به عنوان نمونه زمان واقعی تشخیص هویت به شدت وابسته به میزان آموزش کاربر، محیط عملیاتی و شرایط روانی کاربر همچون میزان فشار روحی اوست. مشخصات ارائه شده توسط عرضه‌کننده را باید به دید راهنماهای نه چندان متناسب با دنیای واقعی نگریست.

۵- منابع فصل

1) Farzin Deravi, University of Kent at Canterbury, Audio-Visual Person Recognition for Security and Access Control, from http://www.jtap.uk.ic/

2) The BioAPI Consortium, BioAPI Specification Version 1.1 – March 16,2001, from http://www.bioapi.org/

3) Catherine Tilton, SAFLINK – chair of BioAPI Consortium, BioAPI- An Open Systems Interface Standard for Biometric Integration, from http://www.saflink.com/


*biometrics

*تعريف از http://www.whatis.com/ برداشته شده است.

*facial thermography

*vein patterns

*DNA

*keystroke dynamics

*authentication

*تعریف ذیل در منبع شماره‌ی ۳ فصل نیز جالب توجه است:
«زیست‌سنجی عبارت است از اندازه‌گیری ویژگیهای فیزیکی یا زیستی معین یک فرد برای ایجاد یک شناسه‌ی یکتا که بتواند به صورت الکترونیکی ذخیره، بازیابی و به منظور اهداف بازشناسی مشخص مقایسه گردد.»

*online

*off-line

*standalone

*telemedicine

*personal identification numbers [PINs]

*identity tokens

*ATM [Automated Teller Machine]

*verification

*identification

*capture

*storage

*smart card

*comparison

*interconnections

*client

*imposter

*False Acceptance Rate [FAR]

*False Reject Rate [FRR]

*threshold

*Equal Error Rate [EER]

*verification time

+ نوشته شده در پنجشنبه سی ام فروردین 1386ساعت 2:3 توسط عزیز پورابراهیم |

نمايش داده در Gridview با استفاده از Stored Procedure
نمايش داده در صفحات وب از جمله مهمترين وظايف پياده كنندگان برنامه های وب محسوب می گردد . در ASP.NET 2.0 امكانات متعددی به منظور دستيابی و نمايش داده ارائه شده است . مجموعه كنترل های منبع داده و نمايش داده ، نمونه هائی در اين زمينه می باشند . برای نمايش داده موجود در يك منبع داده بر روی يك صفحه وب ، در ابتدا می بايست به يك منبع داده متصل و متناسب با خواسته موجود يك query را اجراء و در ادامه نتايج را در يك كنترل نمايش داده ، نمايش داد . query مورد نظر را می توان در متن برنامه و يا به عنوان يك Stored Procedure  در سرويس دهنده بانك اطلاعاتی SQL ذخيره نمود . Stored Procedures  در مقايسه با query نوشته شده در متن برنامه از سرعت و ايمنی بمراتب بيشتری برخوردار می باشند.
در اين مقاله قصد داريم با نحوه نمايش داده در يك كنترل Gridview ( يكی از مهمترين كنترل های نمايش داده ، ارائه شده در ASP.NET 2.0  ) با استفاده از يك Stored Procedure  آشنا شويم . بدين منظور مراحل زير را دنبال خواهيم كرد :

  • مرحله اول : ايجاد يك وب سايت
  • مرحله دوم : اتصال به يك بانك اطلاعاتی سرويس دهنده SQL و اضافه كردن يك  Stored Procedure به آن
  • مرحله سوم : نمايش داده برگردانده شده در Gridview
  • مرحله چهارم : تست برنامه
     

مرحله اول : ايجاد يك وب سايت
به منظور ايجاد يك وب سايت با استفاده از ويژوال استوديو دات نت 2005 ، مراحل زير را دنبال می نمائيم :

مرحله اول : فعال نمودن برنامه ويژوال استوديو

مرحله دوم : انتخاب گزينه New از طريق منوی File و كليك بر روی گزينه Web site

مرحله سوم : انتخاب ASP.NET Web Site پس از نمايش جعبه محاوره ای New Web Site و از طريق بخش Visual studio installed templates

مرحله چهارم : مشخص كردن نوع وب سايت. در ابتدا و از طريق  Location گزينه File System را انتخاب نموده و در ادامه نام فولدری كه قرار است صفحات وب سايت در آن ذخيره شوند را مشخص می نمائيم ( به عنوان نمونه E:\SrcoWebSite\StoredProcedure ) .

مرحله پنجم : از طريق بخش Language ، زبان برنامه نويسی كه از آن برای برنامه نويسی صفحات استفاده خواهد شد را مشخص می نمائيم .

مرحله ششم : با كليك بر روی دكمه Ok كار ايجاد يك وب سايت به اتمام می رسد .

 پس از انجام مراحل فوق يك فولدر با نام مشخص شده و صفحه ای با نام Default.aspx ايجاد خواهد شد .

مرحله دوم : اتصال به يك بانك اطلاعاتی سرويس دهنده SQL و اضافه كردن يك  Stored Procedure به آن
به منظور نمايش داده در صفحات ASP. NET می بايست مراحل زير را دنبال نمود :

  • ايجاد و فعال كردن يك connection به بانك اطلاعاتی ( در اين مقاله از بانك اطلاعاتی Northwind استفاده خواهيم كرد )

  • ايجاد يك Stored Procedure  كه مسئوليت برگرداندن داده به منظور نمايش در كنترل Gridview را برعهده خواهد داشت .

  • استفاده از يك كنترل منبع داده كه مسئوليت اجرای Stored Procedure و مديريت نتايج برگردانده شده را برعهده خواهد داشت .

در اولين مرحله ، يك Stored Procedure  را ايجاد و در ادامه آن را به سرويس دهنده بانك اطلاعاتی اضافه می نمائيم .

مرحله اول : از طريق پنجره Server Explorer بر روی Data Connections كليك ( سمت راست ) نموده و در ادامه گزينه Add Connection را انتخاب می نمائيم . در ادامه ، جعبه محاوره ای Add Connection نمايش داده می شود :

اضافه كردن يك connection
اضافه كردن يك connection

در صورتی كه در ليست Data Source آيتم (( Microsoft SQL Server (SqlClient)  نمايش داده نشده است ، گزينه Change را انتخاب تا در ادامه جعبه محاوره ای Change Data Source  نمايش داده شود . در ادامه ، گزينه Microsoft SQL Server را انتخاب می نمائيم .
در صورتی كه در مقابل نمايش Connection properties  ، جعبه محاوره ای  ‍Choose Data Source نمايش داده شود  از طريق ليست Data Source ، نوع منبع داده را انتخاب می نمائيم . در اين مقاله نوع منبع داده ، Microsoft SQL Server در نظر گرفته شده است . در ليست Data Provider ، گزينه .NET Framework Data Provider for SQL Server را انتخاب و در ادامه بر روی Continue كليك می نمائيم .

انتخاب نوع منبع داده
انتخاب نوع منبع داده

 

مرحله دوم : در جعبه محاوره ای Add connection ، نام سرويس دهنده  را در مكان  Server Name  وارد می نمائيم . 

مرحله سوم : در بخش Log on to the server ، يكی از گزينه های موجود به منظور دستيابی و اجرای سرويس دهنده SQL را انتخاب (  integrated security و يا مشخص نمودن ID و رمز عبور ) و در صورت لزوم يك نام و رمز عبور را وارد نمائيد .

مرحله چهارم : در صورت درج يك رمز عبور ، گزينه Save my Password را انتخاب نمائيد .

مرحله پنجم : در بخش  Select or enter a database name بانك اطلاعاتی Northwind  را انتخاب نمائيد .

ايجاد يك Connection به بانك اطلاعاتی Northwind
ايجاد يك Connection به بانك اطلاعاتی Northwind

مرحله ششم : بر روی Test Connection كليك نموده و پس از اطمينان از صحت عمليات ، گزينه ok را انتخاب می نمائيم . بدين ترتيب ، connection جديد ايجاد و از طريق بخش Data Connection مربوط به Server Explorer  قابل مشاهده خواهد بود .

مرحله هفتم : در Server Explorer و از طريق بخش Data Connections ، اتصال ايجاد شده را باز نموده تا جداول ، view و Stored Procedure  مربوط به بانك اطلاعاتی قابل مشاهده گردند .

مرحله هشتم : در بخش Stored Procedures كليك ( سمت راست ) نموده و گزينه Add New Stored Procedure را انتخاب می نمائيم . ( ويژگی Add New Stored Procedure توسط  Visual Web Developer Express حمايت نمی شود ) .

اضافه كردن Stored Procedures
اضافه كردن Stored Procedures

مرحله نهم : كد زير را به Stored Procedure جديد اضافه می نمائيم :

CREATE PROCEDURE PP_GetEmployees
AS
  Select EmployeeID, LastName, FirstName from Employees
RETURN

مرحله دهم : بستن پنجره و كليك بر روی Yes به منظور ايجاد Stored Procedure

مرحله سوم : اضافه كردن يك كنترل Gridview به منظور نمايش داده
پس از ايجاد connection به يك منبع داده ،‌ به منظور نمايش داده می بايست عمليات زير را انجام داد :

  • استفاده از يك كنترل منبع داده بر روی صفحه كه مسئوليت اجرای  ‍ Stored Procedure و مديريت نتايج را برعهده خواهد گرفت .

  • اضافه كردن كنترل GridView بر روی صفحه به منظور نمايش اطلاعات

بدين منظور مراحل زير را دنبال می نمائيم تا داده در كنترل Gridview نمايش داده شود . كنترل فوق ، داده مورد نظر جهت نمايش را از كنترل SqlDataSource دريافت خواهد كرد .

مرحله اول : فعال نمودن صفحه Default.aspx و در ادامه سوئيچ به Design view

مرحله دوم : از طريق Toolbox و بخش Data ، يك كنترل Gridview را انتخاب و بر روی صفحه مستقر می نمائيم .

مرحله سوم : از طريق منوی Gridview Tasks ، گزينه Choose Data Source و در ادامه New Data Source را انتخاب می نمائيم . در ادامه ، ويزارد  Data Source Configuration فعال خواهد شد .

مرحله چهارم : انتخاب Database و در ادامه كليك بر روی OK ( بدين ترتيب مشخص نموده ايم كه می خواهيم داده را از يك بانك اطلاعاتی سرويس دهنده SQL دريافت نمائيم ) . در بخش  Specify an ID for the data source ، يك نام پيش فرض برای كنترل منبع داده با نام SqlDataSource1 در نظر گرفته می شود ( در صورت تمايل می توان اين نام را تغيير داد ) . در ادامه ويزارد Configure Data Source SqlDataSource1 ، صفحه ای را نمايش خواهد داد كه از طريق آن می توان يك connection را انتخاب نمود .

پيكربندی منبع داده
پيكربندی منبع داده

مرحله پنجم : در ليست ? Which data connection should your application use to connect to the database   ، نام connection  ايجاد شده در مرحله قبل را وارد نموده و بر روی دكمه Next كليك نمائيد . در ادامه ، ويزارد موبوطه صفحه ای را نمايش خواهد داد تا به كمك آن بتوان Connection string را در يك فايل پيكربندی ذخيره نمود . ذخيره Connection string در فايل پيكربندی دارای دو مزيت عمده است :

  •  بمراتب ايمن تر از ذخيره در يك صفحه است .‌
  •  امكان استفاده از connection string مشابه در چندين صفحه وجود خواهد داشت .


مرحله ششم : گزينه  Yes, save this connection as  را انتخاب و در ادامه بر روی دكمه Next كليك نمائيد . در ادامه ، ويزارد صفحه ای را نشان خواهد داد كه به كمك آن می توان نحوه بازيابی داده از منبع داده را مشخص نمود .

مرحله هفتم : گزينه Specify a custom SQL statement or stored procedure  را انتخاب و بر روی دكمه Next كليك نمائيد .

نحوه بازيابی اطلاعات از بانك اطلاعاتی ( Stored Procedure )
نحوه بازيابی اطلاعات از بانك اطلاعاتی ( Stored Procedure )

مرحله هشتم : در صفحه  Define Custom Statements or Stored Procedures page ، گزينه  Stored Procedure را انتخاب و در ادامه ، Stored Procedure  ايجاد شده در مرحله قبل را انتخاب می نمائيم ( SP_GetEmployees ) .

انتخاب Stored Procedure
انتخاب Stored Procedure

مرحله نهم : كليك بر روی دكمه Next

مرحله دهم : كليك بر روی Test Query به منظور اطمينان از صحت داده بازيابی شده 

مرحله يازدهم : با كليك بر روی دكمه Finish ، پيكربندی Gridview به منظور نمايش داده بازيابی شده از بانك اطلاعاتی توسط  Stored Procedure به اتمام می رسد.

مرحله چهارم : تست برنامه
با فشردن كليدهای CTRL+F5 برنامه اجراء و تمامی ركوردهای موجود در جدول Employees بانك اطلاعاتی Northwind در Gridview نمايش داده می شوند . شكل زير خروجی اين برنامه را نشان می دهد .

نمايش داده در Gridview با استفاده از Stored Procedure
نمايش داده در Gridview با استفاده از Stored Procedure

+ نوشته شده در پنجشنبه سی ام فروردین 1386ساعت 1:59 توسط عزیز پورابراهیم |

 

آشنائی با  ASP.NET 2.0  ( بخش اول )

وب يکی از مهمترين و در عين حال جوان ترين سرويس های اينترنت است که در مدت زمانی کوتاه توانسته است در کانون توجه تمامی استفاده کنندگان اينترنت قرار بگيرد و منشاء تحولات عمده ای در حيات بشريت باشد. در گذشته از وب صرفا" به منظور عرضه اطلاعات استفاده می گرديد و کاربران از آن به عنوان يک کنابخانه الکترونيکی بزرگ و در جهت يافتن اطلاعات مورد نياز خود استفاده می کردند. وضعيت فعلی وب نسبت به گذشته دستخوش تحولات فراوانی شده است و هم اينک از آن به عنوان بستر ارتباطات ، مبادله اطلاعات ، عمليات  تراکنشی نظير فعاليت های تجاری ، اجتماعی ، سياسی ، آموزشی و فرهنگی استفاده می گردد .
نرم افزار و دنيای برنامه نويسی يکی ازعرصه هائی است  که بدون شک بيشترين تاثير را از اينترنت پذيرا بوده است ( پرداختن به مقوله تاثير اينترنت بر  دنيای برنامه نويسی و يا تاثير نرم افزار بر اينترنت خارج از حوصله اين مقاله است ). شرکت های عظيم نرم افزاری با لحاط نمودن جايگاه برجسته اينترنت ، اقدام به ارائه تکنولوژی ها و معماری های متفاوتی در جهت طراحی و پياده سازی برنامه های کامپيوتری با بهره گيری از زيرساخت اينترنت نموده اند .

ASP.NET : گزينه ای برای طراحی و پياده سازی برنامه ها و سرويس های وب
به منظور پاسخ به خيل عظيم نيازهای موجود با توجه به تسهيلات ارائه شده توسط اينترنت ، نسل جديدی از برنامه های کامپيوتری با نام "برنامه های وب " مطرح و در اين رابطه تاکنون تکنولوژی های متفاوتی توسط شرکت های عظيم نرم افزاری ارائه شده است . ASP.NET يکی از تکنولوژی های موجود در اين زمينه است . در واقع ، ASP.NET فريمورک برنامه نويسی شرکت مايکروسافت برای طراحی و پياده سازی برنامه ها و سرويس های وب است که خود بخشی از پلت فرم دات نت محسوب می گردد . ASP.NET با دارا بودن مجموعه ای گسترده از اشياء که دارای اينترفيس های ساده برنامه نويسی می باشند و بهره گيری از يک محيط ترجمه شده شی گراء ، امکان پردازش های ساده تا پيچيده را با حداقل کد ممکن فراهم می نمايد.

چرا ASP.NET ؟
زمانی که شرکت مايکروسافت نسخه اوليه فريمورک دات نت را در جولای سال 2000 برای اولين مرتبه به نمايش گذاشت  ، برای اکثر طراحان و پياده کنندگان برنامه های وب مشخص گرديد  که می بايست در انتظار تحولات چشمگيری در اين عرصه بود .ASP نسخه شماره  سه ( تکنولوژی قبلی شرکت مايکروسافت برای پياده سازی برنامه های وب ) ، امکانات گسترده و انعطاف لازم به منظور ايجاد سايت های پويا را در اختيار علاقه مندان قرار می داد. تاکنون صدها کتاب و هزاران مقاله با موضوع ASP نوشته شده است . ماحصل تمامی تلاش های انجام شده در اين رابطه، تسهيل در امر طراحی و پياده سازی وب سايت های پويا و برنامه های وب بود . چيزی که ASP نداشت ، يک فريمورک برنامه نويسی بود. هر چيزی که در ASP انجام می شد با رويکرد کدنويسی بود و برنامه نويسان  برای انجام هر کاری ملزم به نوشتن کدهای مورد نياز بودند.

ASP.NET با هدف غلبه بر محدوديت فوق طراحی شده است . ASP.NET يک فريمورک برنامه نويسی است که برروی CLR ايجاد و می توان از آن به منظور ايجاد برنامه های قدرتمند وب استفاده نمود .يکی از اهداف اساسی طراحی ASP.NET ، برنامه نويسی ساده تر و با سرعت بيشتر از طريق کاهش حجم کدهای مورد نيازی است که برنامه نويسان ملزم به نوشتن آنان می باشند.برنامه نويسی declarative ، مجموعه ای گسترده از کنترل های سرويس دهنده به همراه رويدادهای مربوطه ، يک کتابخانه کلاس بزرگ و ابزارهای پياده سازی کاملا" حرفه ای نظير ويژوال استوديو دات نت ، از جمله ويژگی های شاخص ASP.NET محسوب می گردد( يک جهش کاملا" ملموس نسبت به وضعيت گذشته ). کنترل های سرويس دهنده ، معماری postback ، حمايت از viewstate به اضافه استفاده از کد ترجمه شده و مدل برنامه نويسی مبتنی بر رويداد ، جملگی از مهمترين دستاوردهای ASP.NET محسوب می گردد که نويد ايجاد و اشکال زدائی سريع برنامه های وب را در اختيار پياده کنندگان قرار می دهد .
محيط برنامه نويسی
ASP.NET بيش از بيست و پنج زبان نظير  VB.NET ، سی شارپ و Jscript.NET  را حمايت می نمايد. به عنوان يک محيط شی گراء ، فريمورک دات نت بيش از 4500 کلاس را ارائه می نمايد که  از آنان به منظور انجام عمليات متفاوتی در ارتباط با اسناد  XML
، دستيابی به داده ، توليد تصاوير ، مونيتورينگ ، ثبت تراکنش ها و ساير عمليات ديگر استفاده می گردد . کلاس ها مجموعه ای گسترده از اشياء ، خصلت ها و  متدها را ارائه می نمايند که می توان از آنان به منظور پياده سازی برنامه های وب قدرتمند استفاده بعمل آورد.
عليرغم اين که کدها ترجمه می گردند ،
ASP.NET به صورت اتوماتيک هر گونه تغيير در کدها را تشخيص و به صورت پويا اقدام به ترجمه فايل های مورد نياز نموده و آنان را برای استفاده مجدد به منظور پاسخگوئی به درخواست هائی آتی ، ذخيره می نمايد . ترجمه پويا ، اين اطمينان را ايجاد می نمايد که برنامه بهنگام بوده و کد ترجمه شده با سرعت مناسبی اجراء می گردد. در زمان درخواست يک صفحه و ترحمه آن  برای اولين مرتبه ، يک تاخير کوتاه را شاهد خواهيم بود . پاسخ به درخواست های آتی  از طريق نتايج ترجمه شده و يا نسخه های Cache شده صفحات انجام خواهد شد و نتايج با سرعت بمراتب بيشتری برای سرويس گيرندگان ارسال می گردد .

با توجه به ويژگی های منحصربفرد
ASP.NET ، تاکنون از آن به منظور پياده سازی برنامه های وب در سايت های معتبر متعددی استفاده
شده است :

 چرا ASP.NET 2.0 ؟
هم اينک نسخه شماره دو ASP.NET در راه است . شايد اين سوال برای شما مطرح شده باشد که  ASP.NET 1.x دارای چه محدوديت هائی است که ضرورت ايجاد نسخه شماره دو آن احساس شده است ؟ در پاسخ می بايست به اين نکته اشاره نمود که طراحی و پياده سازی هر نرم افزار مستلزم استفاده از منابع متفاوت، انعطاف لازم  و صرف زمان مناسب است . بهينه سازی هر يک از شاخص های فوق ، مهمترين دليل ارتقاء به رويکردهای مدرن برنامه نويسی است . در ASP.NET 2.0 انجام هر کاری با سهولت بمراتب بيشتری نسبت به گذشته انجام می شود.
صفحات
master ، ويژگی  themes و skins ، ارائه امکانات مناسب در جهت حمايت از دستگاه های سرويس گيرنده متفاوت ، ارائه چهل و پنج کنترل سرويس دهنده جديد شامل کنترل های سرويس دهنده پيشرفته منبع داده ، کنترل های navigation ، کنترل های login ، کنترل های web part ، کنترل های لازم به منظور ايجاد منو و treeview ، رويکرد جديد به data grid ، ارائه امکانات و ابزارهای لازم در جهت مديريت بهينه برنامه ها  ، حمايت از پردازنده های  64 بيتی ، کاهش حجم کد نوشته شده به ميزان هقتاد درصد ، نمونه هائی از امکانات و پتانسيل های جديد  ASP.NET 2.0 می باشد.
با استفاده از
ASP.NET 2.0
پياده کنندگان برنامه های وب می توانند کارهای پيچيده متعددی را بدون نياز به نوشتن کد انجام دهند .
 در بخش دوم به بررسی برخی از مهمترين ويژگی های
ASP.NET 2.0  خواهيم پرداخت .

+ نوشته شده در پنجشنبه بیست و سوم فروردین 1386ساعت 15:9 توسط عزیز پورابراهیم |