Vyatta؛ يك روتر نرم‌افزاري اپن‌سورس

 

اشاره :

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

 


منبع: تك‌ريپابليك‌

شركت Vyatta كه در زمينه ايجاد پلتفرم اپن‌سورس براي استفاده در روترها كار مي‌كند، آرزوي تبديل روتر خود به محصولي تجاري را در سر مي‌پروراند. اين محصول كه vee-atta خوانده مي‌شود ادامه‌دهنده راهي است كه ردهت با لينوكس و Asterisk با VoIP پيمودند.

Vyatta چه چيزي در چنته دارد؟

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

تمام آنچه براي اين كار احتياج داريد، دانلود يك ايميج سي‌دي زنده ‌(Live CD) از وب‌سايت اين شركت است. سپس اين ايميج را با ابزارهاي رايج به يك سي‌دي تبديل نماييد و سيستم را با آن بوت كنيد.

به نظر ما و مطابق آنچه در آزمايش‌ها مشاهده شد، هر كاري كه پيش از اين با روتر استاندارد سيسكو انجام مي‌داديد، با Vyatta شدني است. به‌علاوه، ديگر نيازي نيست نگران مجوزهاي گوناگون سيسكو باشيد. در زير فهرستي از امكانات استاندارد اين دستگاه و ويژگي‌هاي آن‌ها را مي‌بينيد:

˜ قابليت اجرا روي هرگونه پردازنده 32 بيتي AMD و اينتل‌
˜ پشتيباني از سرعت‌هاي گوناگون اترنت شامل Gig-E
˜ كارت‌هاي T1 و T3
˜ پشتيباني از IPv4، IPv6،RIP ،OSPF ،BGP و انواع روترهاي استاتيك‌
˜ عمل نمودن به عنوان سرور DHCP و رله‌
˜ اترنت،PPP ،Frame-Relay ،HDLC و 802.1q VLAN
˜ VRRP و منبع تغذيه اضافي در سرورها
˜ قابليت كار با فايروال، NAT ،site-to site VPN و RADIUS
˜ Syslog و SNMP2 c
˜ قابليت استفاده از Ethereal براي نظارت بر بسته‌هايي كه از روتر مي‌گذرند.
˜ CLI ،Telnet ،SSHv2 و رابط كاربري مبتني بر وب‌

نسخه استاندارد Vyatta (مشهور به Community Edition) كاملاً رايگان است. البته هنوز از اين نسخه هيچ پشتيباني‌اي نمي‌شود و نسخه‌هاي اصلاحي نيز هر شش ماه يك ‌بار در دسترس كاربران قرار مي‌گيرد.

نسخه حرفه‌اي (Professional Edition) نيز در صورت نياز در دسترس است كه قيمت آن از 497 دلار آغاز مي‌گردد. نسخه ديگري به نام نسخه سازماني ‌(Enterprise Edition) با قيمت 647 دلار نيز وجود دارد كه چنانچه پشتيباني و نسخه‌هاي اصلاحي مورد نياز باشند، مي‌توان اين نسخه‌ها را خريداري نمود.

براي ارتباط شبكه‌اي با دستگاه پي‌سي يا سرور، مي‌توانيد از كارت‌هاي اترنت استاندارد استفاده نماييد يا كارت‌هاي T1/T3 را از Vyatta خريداري كنيد (براي اطمينان از سازگاري كارت‌ها بهتر است اين اقلام را از خود شركت تهيه نماييد).

البته شركت Vyatta تجهيزات كامل را نيز به فروش مي‌رساند (مثل سرورهاي مجهز به سيستم‌عامل Vyatta) قيمت اين تجهيزات كه شامل سرور با سخت‌افزار ساخت دل، پشتيباني و سيستم‌عامل روتر Vyatta مي‌شود از 1800 دلار آغاز مي‌گردد كه قيمتي به مراتب پايين‌تر از يك روتر سيسكو است.

اولين نگاه‌

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

پس از ورود به سايت مشاهده مي‌كنيد يك دموي ويديويي در مورد چگونگي استفاده از نرم‌افزار جهت كاربراني كه براي اولين بار اقدام به استفاده از اين نرم‌افزار نموده‌اند، قرار داده شده است كه موقتاً از آن صرف‌نظر نموديم. مطابق آنچه در راهنماي Vyatta Quick Evaluation Guide آمده است، نصب و راه‌اندازي نرم‌افزار و آماده‌سازي دستگاه براي استفاده، حدود سي دقيقه به طول مي‌انجاميد كه در انتهاي مقاله صحت اين مطلب را بررسي مي‌كنيم.

ما از VMware Server براي ايجاد يك لينوكس مجازي ميهمان روي دستگاهي با ويندوز اكس‌پي استفاده نموديم و Vyatta ISO را به عنوان سي‌دي بوت تعريف كرديم. ماشين مجازي لينوكس بدون مشكل، بوت و اجرا گرديد كه عكس‌هاي مربوط به آن را در شكل 1 و 2 ملاحظه مي‌كنيد.

شکل 1


پس از مشاهده خط فرمان، با نام كاربري پيش‌فرض و رمز Vyatta وارد سيستم شديم و پس از آن با وارد كردن دستور configure به شكل زير آدرس IP كارت اترنت را تنظيم نموديم:

set interfaces Ethernet eth0 address
10.253.210.210prefix 16
set service http
commit


براي مشاهده فرمان، exit را تايپ كنيد و بعد فرمان show را وارد نماييد.

نكته مهمي كه بايد در مورد روتر Vyatta به خاطر بسپاريد، اين است كه تا زماني كه از فرمان commit استفاده نكنيد، قادر نخواهيد بود هيچ تغييري در پيكربندي سيستم انجام بدهيد (مانند روترهاي سيسكو، مي‌توانيد از كليد Tab براي اجراي خودكار فرامين استفاده نماييد و با تايپ «؟» منوي help را احضار كنيد. همچنين از ميانبرهاي فرامين سيسكو مانند ctrl+W براي حذف حرف قبلي يا از تركيب ctrl+A به منظور رفتن به انتهاي خط استفاده نماييد).

شکل 2


در اينجا دو وضعيت (mode) وجود دارند: وضعيت نمايش عادي (به شكل prompt <) و وضعيت پيكربندي (به شكل prompt #).

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

اين رابط امكانات خوبي از قبيل نمودارهاي نمايش كارايي و حتي يك برنامه براي مشاهده و محاسبه خصوصيات subnet دارد كه همگي از منوي Tools قابل دسترسند. شكل شماره 3 تصويري از وب‌سايت را نشان مي‌دهد.

شکل 3


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

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

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

 
ترجمه: هومن تحويلداري‌
ماهنامه شبکه - شهريور ۱۳۸۶ شماره 79

آشنايي با SQL Server 2005

 

اشاره :

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

 


1- آشنايي با نسخه‌هاي SQL Server 2005

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

˜‌ (SQL Server2005 Enterprise Edition (32-bit and 64 bit

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

˜ (SQL Server2005 Standard Edition (32-bit and 64-bit 

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

˜ (SQL Server2005 Workgroup Edition (32-bit only

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

‌‌˜ (SQL Server 2005 Developer edition (32-bit and 64-bit

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

˜ (SQL Server2005 Express Edition (32-bit only 

اين نسخه كاملاً مجاني است و مي‌تواند به عنوان يك سرويس‌دهنده يا يك سرويس گيرنده با حجم كوچكي از اطلاعات استفاده شود. بدين‌ترتيب برنامه‌نويساني نيز كه مي‌خواهند برنامه‌اي بنويسند كه داراي يك بانك اطلاعات كوچك است ديگر نيازي نيست كه نگران بانك اطلاعاتي خود باشند. چرا كه مي‌توانند برنامه خود را همراه با يك نسخه مجاني Exprees Edition ارائه كنند.

˜ SQL Server 2005 Compact Edition و SQL Server2005 Mobile Edition

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

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

2- كدام سيستم عامل؟

در مورد اين‌كه SQL Server2005 روي كدام سيستم عامل را نصب كنيم، بسته به اين‌كه شما كدام نسخه را بخواهيد نصب كنيد، انتخاب‌هاي زيادي وجود دارد. اما پيشنهاد مي‌كنم كه روي سيستم‌عامل windows server2003 نصب كنيد.

چراكه با اين كار مي‌توانيد از امكانات امنيتي اين سيستم‌عامل در پايگاه داده خود بهره ببريد. توجه داشته باشيد كه اگر شما windows server2003 نداريد، بدين معني نيست كه نمي‌توانيد از SQL Server2005 استفاده نماييد؛ مي‌توانيد SQL Server2005 را روي windows XP SP2 نصب كنيد.

اگر windows Server2003 را نصب كرديد، حتماً از قسمت نرم‌افزارهايي كه با خود سي‌دي ويندوز عرضه مي‌شوند، نرم‌افزار IIS را نيز نصب كنيد. براي اين كار كافي است به Control Panel>add or remove Programs>add/remove windows component مراجعه كنيد و روي Aplication server دو بار كليك كنيد و سپس با انتخاب گزينه Internet Information services نرم‌افزار IIS را نصب كنيد. به خاطر داشته باشيد كه پيش از نصب حتماً سي‌دي ويندوز را در دستگاه گذاشته باشيد (شكل 1).

شکل 1


نكته: در رابطه با اين‌كه كدام نسخه‌ها از SQL Server2005 را روي چه سيستم‌عاملي نصب كنيد و چه نيازهاي سخت‌افزاري يا نرم‌افزاري داريد، مي‌توانيد به اين آدرس زير مراجعه كنيد.

3- نصب SQL Server2005

بعد از قرار دادن دي‌وي‌دي SQL Server2005 در دستگاه و اجراي فايل Setup و تأييد License برنامه، صفحه‌اي را مشاهده مي‌كنيد كه برنامه‌هاي مورد نياز براي نصب SQL Server2005 را در كامپيوتر شما نصب مي‌كند. اين موارد به‌طور مشخص NET FRAMWORK 2.0. و NATIVE CLIENT براي دسترسي به سرويس‌دهنده شبكه و تعدادي فايل حمايتي براي نصب SQL Server2005 است (شكل 2).

شکل 2


بعد از انتخاب گزينه Install صفحه آغازين نصب SQL  Server2005 ظاهر مي‌شود و با انتخاب گزينه Next صفحه‌اي مانند شكل 3 ظاهر مي‌شود.



شکل 3

اين صفحه در حقيقت قسمت چك كردن سيستم براي مشخص كردن مهيا بودن سيستم براي نصب SQL Server2005 است. همان‌طور كه مي‌بينيد، مواردي مانند نصب بودن ماجول‌هاي حمايت از XML و وجود Service pack در سيستم‌عامل يا دارا بودن حداقل نيازهاي سخت‌افزاري براي نصب SQL  Server2005، نصب بودن IIS و ... در اين صفحه چك مي‌شود.

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

در ادامه نصب SQL Server2005 روي كامپيتر شما آغاز مي‌شود. در ادامه صفحه بايد شماره سريال را وارد كنيد كه با انجام اين كار صفحه‌اي مانند شكل 4 ظاهر مي‌شود.

شکل 4


در اين صفحه مي‌توانيد با انتخاب سرويس‌هاي مناسب ادامه نصب نرم‌افزار را پي بگيريد. مايكروسافت اكيداً توصيه مي‌كند كه براي داشتن امنيت بهتر اگر از ماجولي استفاده نمي‌كنيد، از نصب آن خودداري كنيد. اما اگر به منظور آموزش نرم‌افزار را نصب مي‌كنيد، مي‌توانيد همه ماجول‌هاي آن را نصب كنيد.

توصيه مي‌كنم همه مثال‌ها و راهنماي نرم‌افزار كه به آن Books On Line مي‌گوييم را نيز حتماً نصب كنيد كه بعداً حتماً به كارتان خواهد آمد. براي نصب همه ماجول‌ها مي‌توانيد با انتخاب گزينه Advance از صفحه بعدي كمك بگيريد (شكل 5).

شکل 5


در صفحه بعدي شما دو انتخاب خواهيد داشت: انتخاب اول، گزينه Default instance است. اين گزينه هنگامي استفاده مي‌شود كه براي اولين بار مشغول نصب SQL  Server روي سيستم خود هستيد. اما اگر روي سيستم خود داراي SQL Server  هستيد، سيستم جديدي كه نصب مي‌كنيد، حتماً بايد داراي يك نام جديد باشد تا قابل شناسايي باشد.

بنابراين گزينه Named Instance را انتخاب مي‌كنيم و يك نام را در قسمت مربوطه براي سيستم خود وارد مي‌كنيم و سپس با گزينه Next به صفحه بعد مي‌رويم. شايد از خود بپرسيد: به چه دليلي ممكن است نياز داشته باشيم چند نسخه از اين نرم‌افزار را روي سيستم خود داشته باشيم.

مايكروسافت چهار دليل را براي اين مسئله بيان مي‌كند: اول هنگامي كه بخواهيد چند نسخه مختلف را به طور همزمان روي سيستم خود داشته باشيد. دوم هنگامي كه مي‌خواهيد كار يك برنامه براي برقراري ارتباط بين چند سيستم را تست كنيد.

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


شکل 6


در ادامه بايد كاربران مجاز را با سطح دسترسي مشخص براي سيستم معلوم  كنيد. براي اين كار سه راه وجود دارد: اول شما انتخاب مي‌كنيد كه افرادي كه به كامپيوتري كه سيستم مديريت پايگاه شما روي آن نصب است دسترسي دارند با همان username و password به SQL Server2005 دسترسي خواهند داشت. حالت دوم هنگامي است كه خود username و password جديد براي كاربر انتخاب مي كنيد. حالت سوم نيز هنگامي است كه به ازاي هر سرويس، كاربر تعريف مي‌كنيد (شكل 7).

شکل 7


همان‌طور كه در شكل 7 مي‌بينيد، مي‌توانيد از قسمت پايين سرويس‌هايي كه بعد از نصب مي‌خواهيد اجرا شود را انتخاب كنيد. با انتخاب گزينه NEXT به صفحه بعد مي‌رويد. در اين صفحه نحوه تعيين هويت را براي SQL Server2005 معلوم مي‌كنيد.

براي اين‌ كار دو راه‌حل داريد: اول انتخاب Windows Authentication Mode كه موجب مي‌شود سيستم از روال‌هاي امنيتي سيستم‌عامل استفاده كند و دوم Mixed Mode كه هم روال‌هاي سيستم‌عامل است و هم ساير روال‌هاي تعريف شده براي خود SQL Server. بايد توجه داشت كه با انتخاب Mixed Mode بايد نام و رمز مدير سيستم را معلوم كنيد.

در اينجا دو نكته اساسي وجود دارد: اول اين‌كه Windows Authentication Mode از امنيت بيشتري برخوردار است و البته در اينجا دليل استفاده از سيستم‌عامل Windows Server2003 معلوم مي‌شود. دوم اين‌كه، اگر از Mixed Mode استفاده مي‌كنيد، حتماً بايد براي مدير سيستم از يك Password قوي استفاده كنيد. توجه داشته باشيد كه Mixed Mode هنگامي كاربرد دارد كه كاربران زيادي از طريق يك برنامه با SQL Server2005 ارتباط برقرار مي‌كنند (شكل 8).

شکل 8


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

يعني هر Collation داراي نظم خاصي است. البته مي‌توانيد به ازاي هر سرويس قرارداد خاصي  تنظيم كنيد. براي اين ‌كار كافي است فقط تيك اول صفحه را فعال كنيد. اما فعلاً بهتر است به همان صورت پيش فرض نصب كنيد (شكل 9).

شکل 9


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


دوم براي اين است كه اطلاعات كاربرد و ويژگي‌هاي مورد استفاده شما از SQL Server2005 به مايكروسافت فرستاده شود تا اگر در كار شما مطلب يا كاربرد جديدي بود، در نسخه هاي بعدي به عنوان قسمتي از راهنما به كاربران عرضه شود.

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

شکل 10


و بدين ترتيب نصب SQL Server2005 به پايان مي‌رسد.

4- آشنايي با محيط SQL Server Management Studio

بعد از نصب SQL Server2005 با مراجعه به گزينه Start و انتخاب programs در windows XP يا انتخاب All programs در Windows Server2003 و انتخاب Microsoft SQL Server2005 گزينه SQL Server Management Studio را مشاهده خواهيد كرد و با انتخاب اين گزينه محيط اين برنامه ظاهر خواهد شد.
 
از اين به بعد اين گونه كارها را بدين شكل نمايش مي‌دهيم.
مثلاً: Start>Programs>Microsoft SQL Server 2005>SQL Server Management studio در ابتدا با صفحه‌اي مانند شكل 11 روبه‌رو مي‌شويد.

شکل 11


اگر روي كامپيوتر خود چند  سيستم نصب كرده‌ايد، مي‌توانيد سرويس‌دهنده‌اي را كه مي‌خواهيد به آن وصل شويد، از قسمت Server Name انتخاب كنيد و البته نحوه وصل شدن به سيستم و نام ورمز كاربري را نيز توسط قسمت Authentication معين كنيد تا بتوانيد به SQL Server Management Studio (از اين به بعد آن را به اختصار SSMS مي‌ناميم) وصل شويد و بدين‌ترتيب شكل 12 را خواهيد ديد.

شکل 12


همان‌طور كه در شكل مي‌بينيد، در سمت چپ داراي Object explorer هستيم. بدين ترتيب مي‌توانيم به همه شيءهاي موجود دسترسي داشته باشيم. اگر بخواهيم نگاهي ظاهري به اين قسمت داشته باشيم، اولين چيزي كه جلب توجه مي‌كند، وجود يك شيء به نام Server است و البته درست حدس زديد.

با دسترسي به اين شيء اين امكان براي ما وجود خواهد داشت كه همزمان به چند Server مختلف دسترسي داشته باشيم. براي اين‌ كار كافي است از منوي file گزينه Connect Object Explorer را انتخاب كنيد تا بتوانيد سرور جديدي را كه مي‌خواهيد به آن وصل شويد، انتخاب كنيد.

در Object Explorer بعد از گزينه Server داراي شيء Database هستيم. نكته بسيار جالب و مهم اين است كه در SQL Server2005 شما System Database و Database Snapshot را به صورت جدا از بقيه پايگاه هاي كاربر مي‌بيند و بدين ترتيب امكان مديريت بسيار بيشتر و راحت‌تر براي كاربر وجود دارد.

در قسمت پايگاه‌هاي كاربر اگر هر پايگاه را انتخاب كنيد داراي موارد ذيل هستيد: اول از همه، Database Diagramكه شامل دياگرام‌هاي رسم شده براي پايگاه است. سپس Tables كه همان جداول پايگاه است وجود دارد. بعد گزينه‌ view كه فهرست ويوهاي پايگاه در آن قرار دارد و به همين ترتيب بقيه موارد نيز ديده مي‌شود.

از شماره بعد به توضيح همزمان روش‌هاي پياده‌سازي پايگاه و امكاناتي مي‌پردازيم كه SQL Server2005 براي كاربر به وجود مي‌آورد.

کيوان تيرداد
ماهنامه شبکه - شهريور ۱۳۸۶ شماره 79

نگاهي به پروتكل Secure Sockets Layer     


  

اشاره :

هنگامي كه وب‌سايت amazon.com از شما مي‌خواهد «با استفاده از سرور ايمن ما وارد سيستم شويد» و سپس اطلاعات مالي مهم مانند شماره كارت اعتباري خود را وارد كنيد، براي ايمن‌سازي تبادل اطلاعات بين مرورگر و سرور، چه اتفاقاتي رخ مي‌دهد؟ براي پاسخ به اين پرسش بايد پروتكل SSL يا Secure Sockets Layer را مورد بررسي قرار دهيم. اين پروتكلِ وب‌محور، به ‌منظور ايمن‌سا‌زي تبادل داده‌ها در اينترنت ايجاد شده است و براي درك نحوه عملكرد آن بايد با دو تكنيك رمزنگاري كليد متقارن (symetric-key) و كليد عمومي (public-key: PK) كه در اين پروتكل مورد استفاده قرار مي‌گيرند، آشنا شويد.

 


منبع: IEEE Computer

تكنيك‌هاي رمزنگاري‌


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

در بخش «دستگاه رمزنگاري توماس جفرسون» در همين مقاله، يك نمونه از ابزاري كه در قرن هيجدهم براي رمزگذاري و رمزگشايي پيغام‌ها به‌ كار مي‌رفت، مورد بررسي قرار گرفته است. براي رمزگشايي پيغام، فرستنده و دريافت‌كننده آن بايد تكنيك يكساني را به‌ كار بگيرند و يك كلمه رمز مشخص كنند.

در رمزگذاري به شيوه كليد متقارن، به اين كلمه رمز كه يك عدد تصادفي است، اصطلاحاً كليد (key) گفته مي‌شود. در رمزنگاري به شيوه كليد عمومي كه داراي يك جفت كليد عمومي (public) و خصوصي (private) است، اين كلمه رمز درواقع همان كليد خصوصي است. پس از بررسي روش‌هاي رمزنگاري، علت استفاده همزمان از دو شيوه مذكور مشخص خواهد شد.

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

همان‌طور كه در  شكل 1 مي‌بينيد، در رمزنگاري به شيوه كليد متقارن، تابع رمزگذاري (‌)E با استفاده از يك كليد محرمانه k، پيغام متني P را به متن رمزشده C تبديل مي‌كند. دريافت‌كننده اين پيغام رمزشده، با اعمال تابع رمزگشايي (‌)D و همان كليد محرمانه k، اين پيغام را به حالت اوليه P بازمي‌گرداند.

بهترين تكنيك رمزنگاري به شيوه كليد متقارن، DES يا‌ Data Encryption Standard نام دارد و از سال 1976 مورد استفاده قرار گرفته است. تكنيك DES در واقع يك متن كدشدهِ تكراري است كه به قطعات 64 بيتي متن ساده متصل مي‌شود.

تابع رمزگذاري به‌ واسطه جابه‌جايي، توسعه، انتقال، فشرده‌سازي، تعويض و تركيب قطعات 64 بيتي متن پيغام با يك كليد 56 بيتي، هر قطعه از متن ورودي را به يك قطعه متن 64 بيتي كدشده تبديل مي‌كند. گيرنده پيغام، با اجراي معكوس مراحل رمزگذاري و با استفاده از همان كليد 56 بيتيk ، قادر است پيغام را به حالت اوليه بازگرداند.

شکل1- فرآيند رمزگذاري از فرمول (C=E(P تبعيت مي‌کند. براي رمزگشايي پيغام از فرمول (P=D(C استفاده مي‌شود. در رمزگذاري به شيوه کليد متقارن، رابطه K1=K2 برقرار است. در رمزگذاري به شيوه کليد عمومي، کليد رمزگذاري با کليد عمومي دريافت‌کننده پيغام يکسان است و کليد رمزگشايي همان کليد خصوصي دريافت‌کننده است.

تكنيك DES از همان ابتداي كار، به عنوان يك روش ايمن براي انجام تراكنش‌هاي مالي مورد استفاده قرار گرفت، اما امروزه كارايي گذشته را ندارد. فضاي 56 بيتي كليد مورد استفاده در اين تكنيك، 2 به توان 56 كليد منحصر به‌فرد توليد مي‌كند. بنابراين، جست‌وجوي دقيق فضاي كليد، متضمن دستيابي به مقدار كليدk  و تبديل متن كدشدهC  به پيغام اوليه P خواهد بود.

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

از ميان اين روش‌ها مي‌توان از DES سه‌گانه (در اين روش، تكنيك DES سه بار پياپي و با استفاده از سه كليد 56 بيتي متفاوت اجرا مي‌شود. در اين نوع رمزنگاري، فضاي كليد مود استفاده، معادل يك كليد 168 بيتي خواهد بود.)، تكنيك IDEA يا International Data Encryption Algorithm  با كليدهاي 128 بيتي، تكنيك RC4 (كليدهايي با فضاي بالاي دو كيلوبيت يا 2048 بيت) و تكنيك RC5 (كليدهايي با فضاي بالاي 256 بيت) نام برد.

هنگام استانداردسازي روش‌هاي رمزنگاري در سال 1997 مؤسسه ملي استاندارد و فناوري با برگزاري يك مسابقه عمومي، تكنيك DES را با تكنيك AES يا Advanced Encription Standard جايگزين كرد. برنده اين مسابقه روشي موسوم به Rijndael يا Rhine-doll  بود كه دو رمزنگار بلژيكي معرفي كردند.

تكنيك AES مانند DES نوعي رمزنگاري با استفاده از قطعات تكراري متن كدشده است، اما در آن از متن‌هاي 128 بيتي همراه كليدهاي 128، 192 يا 256بيتي استفاده مي‌شود. بهره‌گيري از كليد 256 بيتي، تعداد 2 به توان 256 انتخاب را براي كليد فراهم مي‌كند. جست‌وجوي اين فضا حتي براي كامپيوترهاي پيشرفتهِ امروزي نيز غيرممكن است.

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

رمزنگاري به شيوه كليد عمومي‌

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

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

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

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

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

امضاي ديجيتالي‌

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

فرض كنيد عنصر Xقصد ارسال داده‌هاي ايمن را براي عنصر Yدارد و عنصر Y بخواهد از ارسال اين اطلاعات توسط عنصر Xاطمينان حاصل كند.

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

سپس تابع رمزگذاري را با استفاده از كليد عمومي عنصر Y روي متن پيغام اجرا مي‌كند. بدين ترتيب متن رمزشده به ‌دست مي‌آيد.

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

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

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

ترجمه: محمد ناصح
ماهنامه شبکه - تير ۱۳۸۶ شماره 77

نگاهي به ‌Storage Server 2003




اشاره :

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

 


ذخيره‌سازي اطلاعات با  Storage Server 2003 
 Microsoft Storage Server يا MSS يكي از نرم‌افزارهاي قدرتمند مايكروسافت است كه سرويس‌ پشتيباني از فايل‌ها و چاپگرها را در سطح شبكه ارائه مي‌دهد. اين برنامه بدون آن‌كه هيچ مزاحمتي را براي عمل سرويس‌دهي فايل (File Servering) ويندوز 2003  به‌وجود آورد، در تلفيق چند سرويس‌دهنده فايل با يكديگر و ايجاد هماهنگي بين آن‌ها در ساختن يك سيستم يكپارچه پشتيباني از اطلاعات شبكه، نقش اساسي را ايفا مي‌كند.
 
در اين ميان نقش شركت‌هاي مهمي چون HP ،DELL ،Fujistu و بسياري ديگر كه با ارايه ادوات ذخيره‌سازي اطلاعات و سازگار نمودن محصولات خود با MSS، اين راه‌حل را قوي‌تر نموده‌اند، را نبايد از ياد برد. MSS در دو ويرايش مختلف عرضه مي‌شود. ويرايش Enterprise كه به عنوان يك سرور ذخيره‌سازي اطلاعات در مراكز بزرگ اطلاعاتي
(Data Center) به‌كار مي‌رود و نسخه استاندارد آن كه به‌عنوان سرور فايل و چاپگر در ادارات و شركت‌هاي كوچك يا متوسط مورد‌استفاده قرار مي‌گيرد.
 
نقطه قوت و در واقع يكي از منطقي‌ترين دلايل استفاده از ‌MSS اين است كه اين سرور نرم‌افزاري قادر است انواع ادوات ذخيره‌سازي اطلاعات را از قديمي‌ترين تا جديدترين و از كوچك‌ترين تا بزرگ‌ترين آن‌ها را با يكديگر به خوبي تلفيق كند. به عنوان مثال در نظر بگيريد كه يك شركت مخابراتي كه از سيستم‌هاي يونيكس يا MainFrame  استفاده مي‌كرده و فايل‌هاي خود را سال‌ها بر روي نوارهاي مغناطيسي (Tape) ذخيره مي‌كرده است، اكنون قصد دارد از ابزار ذخيره‌سازي پيشرفته‌اي مثل HP Proliant DL 380 استفاده كند، ضمن اين‌كه تمايل به پرداخت هزينه تعويض كليه ادوات قديمي خود را هم ندارد.

در اين وضعيت MSS مي‌تواند به‌عنوان يك رابط و هماهنگ كننده، امكان دسترسي همزمان به هر دو ابزار ذخيره‌سازي مذكور را فراهم آورد. دومين عامل موفقيت MSS قيمت مناسب آن است. اصولاً سازندگان ادوات ذخيره‌سازي مثلHP در زمان ساخت و ارايه دستگاه‌هاي خود به بازار هم به قيمت و كارايي دستگاه خود و هم به قيمت و كارايي نرم‌افزار سرويس‌دهنده آن توجه خاصي مي‌كنند. در اين راستا قيمت مناسب، كارايي خوب و سازگاري مناسب MSS با محصولات و سخت‌افزارهاي ساخت اين شركت‌ها باعث شده است تا اين سرور نرم‌افزاري بتواند به تنهايي 41 درصد بازار اين‌گونه سرويس‌دهنده‌هاي شبكه را از آن خود نمايد، بازاري كه سال‌ها در اختيار شركت‌هاي بزرگي چون EMC و يا Network Appliance بوده است.
 
MSS با پشتيباني از انواع ادوات ذخيره‌سازي تا حجم 40 ترابايت، سرويس‌هاي متعددي را جهت مديريت اين ادوات در اختيار مسؤولين پشتيباني سيستم قرار مي‌دهد. به عنوان مثال سرويس
Volume Shadow Service) VSS) نه‌تنها امكان تهيه يك كپي آن‌لاين را از يك يا چند ابزار ذخيره‌سازي اطلاعات بر‌روي يك يا چند ابزار ديگر فراهم مي‌آورد، بلكه با اين كار، در واقع يك سيستم فايلي پيشرفته توزيع‌شده
 (Distributed File System) را بين چند سرور موجود در شبكه كه هر كدام ادوات ذخيره‌سازي مخصوص به خود را دارند ايجاد مي‌كند و عمليات تقسيم و توازن سرويس دسترسي به فايل (كلاسترينگ) را با حداكثر 8 سرور موجود در شبكه به خوبي انجام مي‌دهد.

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

قابليت‌ها و قدرت انطباق MSS با انواع فايل سيستم‌هاي مربوط به سكوهاي ديگر مثل NFS ،SMB ،AppleTalk وNetware، سرعت مناسب انتقال يا كپي كردن و توزيع اطلاعات بر روي سرورهاي شبكه (حتي سرورهاي راه‌دور و يا سرورهاي اينترنتي) باعث شده تا شركت‌هاي ديگري هم كاربران خود را تشويق به استفاده از آن نمايند. به عنوان مثال كمپاني DELL  نيز براي استفاده از ادوات ذخيره‌سازي سري N خود مثل Power Vault 775N راه‌حل مايكروسافت را به كاربران خود توصيه كرده است. حتي برخي شركت‌هاي ديگر هم از طريق ارايه نرم‌افزار به اين زنجيره همكاري پيوستند.

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

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

File serving -1
ارايه انواع روش‌هاي دسترسي و حفاظت از اطلاعات ذخيره شده، پشتيباني از پروتكل‌هاي مختلف ارتباطي جهت برقراري ارتباط با انواع اطلاعاتي كه تحت استانداردهاي مختلف ذخيره‌سازي بر روي ادوات گوناگون در پلتفرم‌هاي مختلف ذخيره شده‌اند، قابليت فايل سرور ويندوز 2003 را در حد بسيار مطلوبي بالا برده است.

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

 Backup/Replication - 3
بسياري از برنامه‌هايي كه سرويس‌هاي عمده شبكه‌اي مثل بانك‌اطلاعاتي، ايميل، وب و ... را ارايه مي‌دهنده در داخل بدنه خود داراي ابزارهايي جهت ايجاد نسخه‌هاي پشتيبان از اطلاعات يا كدهاي موجود هستند. حتي خود ويندوز 2003 هم به تنهايي مي‌تواند از فايل‌ها، فولدرها، ودرايوهايي كه مدير سيستم مشخص مي‌كند به صورت دستي يا  خودكار و در مقاطع زماني خاص پشتيبان‌گيري كند. اما كاري كه MSS مي‌تواند در اين زمينه انجام دهد، بسيار بيش از اين موارد است.

امكان ارتباط با اين برنامه‌هاي سرويس‌دهنده شناسايي فايل‌هاي اطلاعاتي آن‌ها، و گرفتن نسخه پشتيبان برروي ادوات مختلف ذخيره‌سازي (و نه تنها هاردديسك سرور اصلي سرويس‌دهنده) مي‌تواند به صورت بسيار سريع و نامحسوس و حتي بدون آن‌كه نيازي به متوقف كردن موقت سرويس مذكور براي ايجاد نسخه پشتيبان باشد، اين كار را انجام دهد. اين شيوه به‌خصوص براي ايجاد نسخه‌هاي پشتيبان از اطلاعات سرويس‌دهنده‌هاي مايكروسافتي، مثل ‌SQL Server يا Exchange به دليل انسجام همه اين برنامه‌ها در‌حول‌‌و‌حوش ويندوز 2003 و اكتيودايركتوري، از كارآيي و قابليت‌اطمينان زيادي برخوردار است.

 Integration With SAN -4
هر سه سناريوي ذكر شده در موارد فوق، مي‌تواند علاوه بر اجرا برروي ادوات ذخيره‌سازي كه براساس يك شبكه معمولي كار مي‌كنند، يعني Network Attached Storage) NAS)، برروي محيط‌هاي ذخيره‌سازي مبتني بر ديتا يعني(SAN (Storage Area Network هم اجرا شود. قابل ذكر است كه خود SAN (برخلاف NAS كه يك ابزار ذخيره‌سازي است) نوعي شبكه است كه سرورها و ادوات ذخيره‌سازي را براساس استانداردهاي مشخصي به هم وصل مي‌كند. بدين‌وسيله در بسياري موارد استفاده از SAN به دليل اختصاص يك شبكه مخصوص براي انجام امور مربوط به انتقال اطلاعات، از كارآيي بيشتري نسبت به NAS برخوردار است. نقش MSS در اينجا شناسايي دقيق سرورها  و ادوات ذخيره‌سازي موجود در يك شبكه SAN، و كمك به ايجاد يك محيط متمركز و منسجم بين آن‌ها است. در اينجا MSS دقيقاً همان سناريوهايي را كه در يك شبكه داراي ذخيره‌سازي NAS انجام مي‌داد، براي محيط شبكه‌اي SAN هم انجام مي‌دهد و مي‌تواند سرويس‌ فايل، يكپارچگي بين پلتفرم‌ها، و اعمال مربوط به پشتيبان‌گيري را، در اين شبكه نيز به نحو مطلوب انجام دهد.

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

مديريت پايگاه داده‌ها در SQL Server - بسته‌هايDTS

   


اشاره :

در ادامه مباحث مربوط به مديريت پايگاه‌هاي اطلاعاتي، در آخرين قسمت اين مجموعه، يكي از ابزارهاي جالب قابل استفاده در SQL Server را كه امكان نقل و انتقال اطلاعات و يا پردازش آن‌ها را به‌صورت دستي يا اتوماتيك و در قالب يك يا چند عمل مجزا و در عين حال مرتبط با يكديگر فراهم مي‌آورد، مورد بررسي قرار مي‌دهيم. اين ابزار كه سرويس انتقال اطلاعات (Data Transformation service) نام دارد شامل سه قسمت مختلف بوده كه مهمترين آن بسته‌هاي (DTS (DTS Packages است.

 


DTS چيست؟
DTS يك ابزار  با واسط گرافيكي كاربر جهت انتقال اطلاعات موردنياز از يك محل به محل ديگر است. با استفاده از اين  ابزار مي‌توان يك سري از اطلاعات موجود در سيستم را با استفاده از روش‌هاي عادي كاري پايگاه داده مانند دستور SELECT انتخاب كرده و به يك يا چند مقصد مختلف فرستاد. ويژگي ديگر اين نوع انتقال اطلاعات اين است كه مي‌توان آن را با استفاده از روش‌هاي مخصوص، زمانبندي (schedule) كرده تا به صورت اتوماتيك انجام شود. ويژگي سوم آن اين است كه علاوه برامكان استفاده از زبان SQL  براي استخراج اطلاعات يا پردازش قبل از انتقال آن، مي‌توان با استفاده از امكانات ديگري  پردازش و انتقال اطلاعات را انجام داد. البته واژه DTS در كل به يك سري ابزارها و سرويس‌هاي مختلف اطلاق مي‌شود كه مهمترين ابزار يا قسمت آن همان
 بسته‌هاي ( DTS (PACKAGE DTS بوده كه كار مهم انتقال و پردازش زمانبندي شده اطلاعات را انجام مي‌دهد.

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

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

1- Importing / Exporting 
اين نوع Task قادر است اطلاعات را از جايي مثل يك جدول بانك اطلاعاتي SQL Server يا هر نوع ديگر مثل اكسس و يا يك فايل ساده  Text بخواند و آن را در يك جدول بانك اطلاعاتي SQL Server وارد (Import) كند. همچنين اين Task مي‌تواند عكس اين عمل را انجام دهد. يعني اطلاعات يك جدول بانك اطلاعاتي يا قسمتي از آن اطلاعات را به فرمت اكسس، اكسل يا فايل متني (Text) درآورد (Export) و آن را در مقصد موردنظر قرار دهد.

2- Transform 
با استفاده از اين نوع Task مي‌توان با نوشتن يك دستورالعملSELECT نتيجه حاصل از عمل پرس‌وجو برروي يك يا چند جدول بانك اطلاعاتي مبدا را به يك جدول موجود در بانك اطلاعاتي مقصد انتقال داد. در اين روش بانك اطلاعاتي مبدا و مقصد مي‌توانند جدا از هم و يا يكسان باشند.

3- Copy 
اين نوع Task مي‌تواند هر موجوديتي در يك بانك اطلاعاتي مثل ديدها (view)، ايندكس‌ها، لاگ‌ها، روتين و توابع، تريگرها و هر چيزي را به يك بانك اطلاعاتي ديگر منتقل كند.

4- Send/Receive Message
با اين نوعTask  مي‌توان بين بسته‌هاي مختلف DTS موجود در سيستم ارتباط برقرار كرده و بين آن‌ها پيغام رد و بدل كرد. همچنين با استفاده از آن مي‌توان يك بسته را در داخل يك بسته ديگر فراخواني يا اجرا كرد. به‌علاوه اين‌كه اين نوع Task امكان ارسال Email را هم دارد.

5- Execute 
با استفاده از اين نوع Task مي‌توان يك سري دستورالعمل SQL يا حتي اسكريپت‌هاي ActiveX و يا فايل‌هاي Exe   را اجرا كرد.

Taskهاي از پيش تعريف شده در SQL Server عبارتند از:

1-FTP : جهت دريافت يك يا چند فايل از يك سرور FTP به داخل بسته DTS  

2- ActiveX Script: براي استفاده از قابليت‌هاي زبان‌هاي اسكريپتي مثل ويژوال بيسيك يا جاوا در يك پردازش ‌خاص.

3- Transform Data: جهت انتقال اطلاعات بين دو منبع اطلاعاتي.

4- Execute Process: جهت اجراي يك فايل Exe 

5- Execute SQL: جهت اجراي يك سري دستورات SQL 

6- Data Driven Query: براي ايجاد يك منبع انتقال اطلاعات با استفاده از دستورSELECT 

7- Copy Object: اينTask مي‌تواند كليه موجوديت‌هاي يك بانك اطلاعاتي را به بانك اطلاعاتي ديگر منتقل كند.

8- Send Mail: جهت ارسال ايميل به يك مقصد مشخص

9- Bulk Insert: جهت ورود (Import) اطلاعات از يك فايل به يك جدول بانك اطلاعاتي

10- Execute Package: با استفاده از اين Task مي‌توان يك بسته DTS ديگر را در داخل بسته DTS جاري لود و اجرا كرد.

11- Message Queve II: براي استفاده از امكانات پيغام‌دهي سرويس MSMQ ويندوز 2000 يا 2003 براي مبادله پيغام بين برنامه‌ها و  ايستگاه‌هاي مختلف

12- Transfer Error Massages: براي انتقال پيغام‌هاي خطاي موجود در جدول سيستمي sysmessages از يك بانك اطلاعاتي به بانك ديگر

13- Transfer DataBase: براي انتقال كل بدنه يك بانك اطلاعاتي با تمام محتوا، ساختار و اطلاعاتش از يك سرور به سرور ديگر.

ارتباط DTS  
مبدا و مقصد داده‌هاي منتقل شده توسط Task‌ها، مي‌توانند از انواع فايل‌هاي مختلف انتخاب شوند. كليه منابع اطلاعاتي كه از OLEDB و يا ODBC پشتيباني كنند مانند اوراكل، كليه فرمت‌ها برنامه‌هاي مشهوري كه در ذخيره و پردازش اطلاعات كاربرد زيادي دارند مثل اكسل، فاكس‌پرو، پاراداكس، اكسس و امثال آن، فايل‌هاي متني و همچنين كليه منابع اطلاعاتي كه ساختاري به غير از بانك‌هاي رابطه‌اي دارند مثل Exchange Server و بسياري برنامه‌هاي ديگر، مي‌توانند از جمله اين موارد باشند و در ساختن يك بسته DTS به عنوان مبدا يا مقصد به‌كار روند.

 

شكل 1

شكل 2

شكل 3

شكل 4

شكل 5

DTS Work Flow
مراحل زماني و توالي اجراي قسمت‌هاي مختلف يك بسته DTS را جريان كاري DTS مي‌نامند. در واقع با استفاده از اين جريان‌هاي كاري مي‌توان مشخص كرد كه كدام Task بايد زودتر اجرا شود و يا اين‌كه اجراي يك Task پيش نياز اجرا شدن چه Task (هاي) ديگري است. بدين‌وسيله اجرا شدن هر Task نسبت به Task ديگري داراي اولويت كمتر، بيشتر و يا حتي برابر مي‌تواند باشد. بدين‌معني كه در برخي اوقات يك Task بايد تا اتمام موفقيت‌آميز يك Task  ديگر صبر كند.

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

در SQL Server سه نوع جريان كاري مختلف وجود دارد كه به نام‌هاي on completion ،on success ،on failure  عبور از يك Task به Task ديگر را به ترتيب در صورت اتمام پردازش، پردازش موفقيت‌آميز و پردازش غيرموفق Task  مبدا، انجام مي‌دهند.

به عنوان مثال: فرض كنيد در يك سيستم اطلاعاتي توزيع شده (Distributed) به‌صورت منظم و روزانه و در يك ساعت خاص بايد به يك سايت FTP متصل شده، يك فايل با نام  Imp.txt را كه هر روز در سايت مذكور روزآمد update مي‌شود را دريافت كرده، و آن را در جدول customers از پايگاه داده Northwind قرار دهيم.
 
فرض مي‌كنيم اين فايل متني (Text) شامل ليست مشتريان جديدي است كه روزانه به سيستم فروش ما اضافه مي‌شود. بنابراين پس از قرار دادن مشتريان جديد در جدول مذكور بايد يك دستور SQL را اجرا كنيم تا براي مشتريان تازه وارد شده در جدول customers يك حساب تفضيلي در جدول Accounts ايجاد كند.
 
از قرار معلوم در اين مثال به يك DTS Connection جهت دسترسي به پايگاه داده Northwind، يك Task از نوع FTP ، يك Task ديگر از نوع  Bulk Insert و  نهايتاً يك Task از جنس Execute SQL نيازمنديم. به همين منظور بر روي زبانه Data Transformation Services در Enterprise Manager كليك كرده  سپس بر روي آيتم Local Package كليك سمت راست مي‌كنيم و دستور New Package را انتخاب مي‌كنيم تا پنجره ويژه طراحي بسته‌هاي DTS باز شود. ابتدا يك Connection از جنس OLEDB را بر روي صفحه قرار داده و آن را به پايگاه داده Northwind متصل مي‌كنيم. (شكل 1)‌

سپس از داخل ليست وظايف (Tasks)، يك شي از جنس FTP را برروي صفحه قرار داده و آدرس سايت موردنظر و مكان قرارگيري فايل دانلود شده را در محل Directory Path مشخص مي‌كنيم، سپس به زبانه Files رفته و فايل يا فايل‌هايي را كه قرار است دانلود شوند مشخص مي‌نماييم كه در اين مثال يك فايل متني با نام New Customer.txtرا كه حاوي اطلاعات مشتريان جديد است انتخاب مي‌كنيم. (شكل2)‌

در مرحله بعد يك شي از جنس BULK Insert را برروي صفحه طراحي قرار داده و قسمت‌هاي Connection ،Table و Data file آن را به ترتيب با اتصال پايگاه ساخته شده، جدول مشتريان و مقصد فايل دانلود شدني توسط FTP را پر مي‌كنيم. (شكل 3)

در آخرين مرحله ايجاد اشياء، اكنون نوبت به ايجاد يك شي Execute SQL جهت اجراي تابع از پيش ساخته شده است كه براي كليه مشتريان جديد جدول customers يك حساب در جدول Accounts باز مي‌كند. اين شي را بر روي صفحه قرار داده و دستور SQL موردنظر را در محل SQL statement وارد مي‌كنيم. (شكل 4)

پس از ايجاد تمام اشياء موردنياز، اكنون نوبت به ايجاد جريان‌هاي كاري لازم (WorkFlows) بين آن‌ها مي‌رسد. آنچه به نظر مي‌رسد اين است كه ابتدا يك جريان كاري بين دو موجوديت FTP و BULK Insert ايجاد كنيم. از آنجا كه اين جريان كاري بايد فقط در صورت موفقيت‌آميز بودن عمليات دريافت فايل توسط شي FTP منتقل شود، بنابراين براي ايجاد جريان كاري مذكور، با استفاده از حركت ماوس هر دو شي مذكور را انتخاب كرده و سپس از منوي WorkFlow  دستور on success را انتخاب مي‌كنيم. همين عمل را براي دو شي Bulk Insert و Execute SQL هم انجام مي‌دهيم. (شكل 5)
 
اكنون بسته DTS آماده اجرا است. اين بسته مي‌تواند هم به صورت دستي و از همين محل طراحي تست يا اجرا شود و هم مي‌تواند براي اجرا در مقاطع زماني خاص (مثلاً روزي يك بار) در ساعت مخصوص زمانبندي (schedule)  شود تا به صورت خودكار و در زمان موردنياز اجرا گردد. بدين‌منظور، پس از ساختن و ذخيره كردن بسته DTS مذكور، از محيط طراحي DTS خارج شده و برروي نام بسته موردنظر كليك سمت راست مي‌كنيم و دستور Schedule Package را انتخاب مي‌نماييم. در اينجا مي‌توانيم زمان و توالي اجراي اتوماتيك بسته DTS ساخته شده را تعريف كنيم.

مهيار داعي‌الحق
ماهنامه شبکه - اسفند ۱۳۸۳ شماره 52

اصول طراحي بانك هاي اطلاعاتي رابطه اي - قسمت آخر



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

متن کامل مقاله ( 110 کيلوبايت )

بهروز نوعي پور
ماهنامه شبکه - تير و مرداد ۱۳۸۲ شماره 34


اصول طراحي بانك هاي اطلاعاتي رابطه اي - قسمت چهارم

 

 
اشاره :

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

متن کامل مقاله ( 118 کيلوبايت )


بهروز نوعي پور
ماهنامه شبکه - خرداد ۱۳۸۲ شماره 33

اصول طراحي بانك هاي اطلاعاتي رابطه اي - قسمت سوم

 


اشاره :

در قسمت نخست مقاله حاضر كلياتي پيرامون طراحي بانك‌هاي اطلاعاتي رابطه‌اي مطرح شد. در قسمت دوم نيز گام‌هاي اول و دوم طراحي يعني «مشخص كردن كاربرد اصلي بانك اطلاعاتي» و «تفكيك جدول‌هاي مورد نياز براي ذخيره‌سازي داده‌ها» مورد بررسي قرار گرفت. اينك در قسمت سوم، رويه تعريف فيلدهاي هر جدول را مرور مي‌كنيم. منبع اصلي اين مقاله سايت MSDN مايكروسافت بوده است و مثال‌ها پيرامون بانك اطلاعاتي Northwind در نرم‌افزار MS Access مي‌باشند.

متن کامل مقاله ( 120 کيلوبايت )


 
بهروز نوعي پور
ماهنامه شبکه - ارديبهشت ۱۳۸۲ شماره 32


اصول طراحي بانك هاي اطلاعاتي رابطه اي - قسمت دوم

 

 
مقاله چند قسمتي حاضر، اصول و گام‌هاي طراحي يك بانك اطلاعاتي رابطه‌اي (Relational Database) را مورد بررسي قرار داده است. در قسمت اول مقاله (شماره 209)، كلياتي از بحث مطرح شد. در اين قسمت گام‌هاي اول و دوم طراحي را دنبال خواهيم كرد. در اين مقاله از بانك اطلاعاتي نمونه Northwind Traders (همراه نرم‌افزار MS Access) به عنوان مثال استفاده شده است. از سايت مايكروسافت به عنوان منبع اين مقاله استفاده شده است.

متن کامل مقاله ( 127 کيلوبايت )

بهروز نوعي پور
ماهنامه شبکه - فروردين ۱۳۸۲ شماره 31

اصول طراحي بانك اطلاعاتي رابطه اي - قسمت اول




اشاره :

طراحي بانك اطلاعاتي رابطه‌اي (Relational Database Design) يكي از مباحث مهم در سيستم‌هاي اطلاعاتي است و نرم‌افزارهايي كه براي اين منظور ساخته شده‌اند، همواره يكي از مهم‌ترين ابزارهاي كامپيوتري به شمار آمده‌اند. طي چند سال گذشته كه مجموعه نرم‌افزاري آفيس مايكروسافت به يكي از محبوب‌ترين ابزارهاي تحت ويندوز تبديل شده، برنامه Microsoft Access مورد توجه بسياري از كاربران قرار گرفته است. امروزه با گسترش كاربرد سايت‌هاي وب، اهميت به كارگيري پايگاه داده‌ها در ساختار سيستم‌هاي اطلاعاتي دو چندان شده است. به همين دليل است كه نرم‌افزارهايي مثل SQL Server، MySQL و اوراكل نقش مهمي در طراحي سايت‌هاي ديناميك و برنامه‌نويسي براي وب دارند. ويژگي مشترك اين نرم‌افزارها آن است كه بيشتر قابليت‌هايشان را از طريق يك زبان مشترك – يعني SQL – مي‌توان به كار گرفت. از سوي ديگر، برخي از كارشناسان كامپيوتر آشنايي با مباني بانك‌هاي اطلاعاتي را بخشي از «سواد كامپيوتري» تلقي كرد‌ه‌اند، چنان كه آشنايي با اين اصول،‌ قسمتي از يك برنامه آموزش همگاني كامپيوتر در جهان (موسم به ICDL) را تشكيل مي‌دهد. در مقاله چند قسمتي كه پيش روي شماست گام‌هاي طراحي يك بانك اطلاعاتي رابطه‌اي به زباني ساده تشريح شده است. محتواي اين مقاله بيشتر نحوه كار با نرم‌افزار اكسس را مدنظر دارد،‌ اما عمده مطالب، كم و بيش براي كار با نرم‌افزار SQL Server نيز قابل استفاده است.

متن کامل مقاله ( 120 کيلوبايت )

ماهنامه شبکه - بهمن ۱۳۸۱ شماره 29

مديريت پايگاه داده ها در SQL server - قسمت دوم : نظارت بر عملكرد سيستم     


  

اشاره :

قسمت اول اين مقاله به بحث پيرامون ايجاد نسخه‌هاي پشتيبان (Back up) از يك بانك اطلاعاتي مي‌پرداخت. در اين قسمت قصد داريم موضوع مهم نظارت يا مانيتورينگ عملكرد سيستم و كاربران در SQL Server كه يكي از وظايف مديريت سيستم در جهت كشف ايرادات آن است را بررسي كنيم.

 


يكي از اساسي‌ترين كارهايي كه بعد از پياده‌سازي يك بانك اطلاعاتي و در حين استفاده كاربران از آن بايد صورت گيرد، نظارت دقيق بر رفتار سيستم و بررسي واكنش‌هايي است كه آن بانك اطلاعاتي در شرايط خاص و ضمن استفاده‌هاي متنوع كاربران مختلف از خود نشان مي‌دهد. بنابراين اين نظارت دايمي بايد طبق اصول خاص و يك برنامه منظم و با استفاده از امكاناتي كه بانك اطلاعاتي در اختيار مديريت سيستم قرار مي‌دهد انجام گيرد تا از بروز مشكلات احتمالي جلوگيري به عمل آيد. اين مشكلات به طور كلي به سه دسته عمده  كُند شدن سرعت جستجو در سيستم (Query performance problem) ،كم شدن تعداد فرايندهاي قابل اجرا در  واحد زمان (Transactions  Throughput problem) ،كاهش كارايي سيستم در اثر افزايش كاربران و تداخل كارهاي آن‌ها در يكديگر ( Concurrent users problem) تقسيم مي‌شود. براي اين منظور در SQLerver ابزارهاي خاصي براي مانيتورينگ سيستم درنظر گرفته شده تا مدير سيستم بتواند به موقع نقاط ضعف سيستم (از لحاظ نرم‌افزاري يا سخت‌افزاري) را شناسايي كرده و قبل از اين‌كه سيستم را دچار بحران نمايد يا اين‌‌كه كار به گله‌مند شدن كاربران بيانجامد با مشورت طراحان، برنامه‌نويسان و مسؤولين شبكه راه‌حل مناسبي براي آن مشكل پيدا كند. در صورت كشف مشكل مذكور، ايجاد تغييراتي در روابط منطقي يا فيزيكي جداول بانك اطلاعاتي توسط طراحان بانك، بهينه‌سازي كدهاي برنامه‌نويسي شده و رفع نقاط ضعف آن توسط برنامه‌نويسان و ارتقاي سخت‌افزار شبكه و سرور بانك اطلاعاتي توسط مسؤولين شبكه مي‌تواند راهگشاي بسياري از اين نوع معضلات به حساب آيد. در SQL Server يك ابزار مناسب براي مانيتورينگ يك بانك اطلاعاتي وجود دارد كه در اين‌جا به معرفي آن مي‌پردازيم.

SQL Server Profiler
اين ابزار در واقع برنامه‌اي است كه قادر به اشكال‌زدايي دستورات SQL مي‌باشد. هر نوع دستور SQL كه به تنهايي يا از داخل يك برنامه يا از طرف يك روال ذخيره شده (Stroed Procedvre) و يا هر جاي ديگر اجرا شود توسط اين برنامه شناسايي و ثبت مي‌شود. سپس برنامه مذكور عمل تجزيه وتحليل خود را بر روي اين دستور SQL انجام داده و نتايج آن را به مدير سيستم نمايش مي‌دهد.

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

1- Cursors 
اين مجموعه رخدادهاي مربوط به اتفاقاتي است كه باعث ايجاد شدن، مورد استفاده قرار گرفتن و حذف شدن يك دسته ركوردهاي اطلاعاتي از يك يا چند جدول مي‌شود. همان‌طور كه مي‌دانيد در SQL Server مي‌توان با استفاده از دستور SELECT تعدادي از جداول بانك اطلاعاتي را با هم لينك كرده و مجموعه ركوردهاي اطلاعاتي مربوطه را در يك گروه به نام كرسر قرار داد (همان چيزي كه در زبان‌هاي برنامه‌نويسي مثل ويژوال بيسيك به آن Recordset گفته مي‌شود) هر عملي كه باعث ايجاد شدن يا هر نوع عمليات ديگر بر روي يك كرسر شود مي‌تواند مورد تعقيب پروفايلر قرار گرفته و ثبت شود.

2- Data Base 
اين مجموعه از رخدادها مربوط به فايل‌هاي داده‌اي يك بانك اطلاعاتي است. هر تغييري كه در ساير فايل‌هاي داده‌اي و فايل‌هاي لاگ يك بانك ايجاد شود در اين مجموعه قرار مي‌گيرد.

3- Errors and Warning 
مقام پيام‌هاي خطا و هشدار كه در زمان اجراي دستورات SQL  يا در زمان كامپايل و اجراي SPها و يا Triggerها به كاربر داده مي‌شود و همچنين خطاهاي مربوط به OLE DB در اين گروه قرار مي‌گيرد.

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

5- Scans  
هر عملي كه در حافظه اصلي تخصيص داده شده به SQL server  قابل دستيابي باشد در اين دسته قرار مي‌گيرد. به‌خصوص عمليات مربوط به Cache كه در داخل موتور بانك اطلاعاتي انجام مي‌شود جزو اين دسته محسوب مي‌شوند.

6- Stored procedveres 
شامل كليه وقايعي كه ممكن است براي يك روال رخ دهد مي‌باشد. كامپايل، فراخواني، شروع اجرا، وضعيت در حال اجرا، پايان اجرا، همگي از جمله رخدادهاي قابل وقوع در اين دسته مي‌باشند.

7- TSQL 
اين نوع رخدادها شامل كليه وقايعي است كه باعث اجراي هر يك از دستورات زبان TSQL  به صورت تكي يا دسته‌اي (Batch) مي‌شود. دستورات SELECT ،Insert ،UpdATE ، DELETE و ... هر كدام آغاز و پاياني مشخص با نتايج معين در يك بانك اطلاعاتي دارند كه مي‌توانند به وسيله اين نوع رخداد مورد بررسي قرار گيرند.

8- Transaction   

شكل 1

در اين دسته، كليه وقايع مربوط به فرآيند از جمله شروع (BEGIN) تأييد
 (Commit) و بازگشت (Roll Back) قرار مي‌گيرند. هر فرآيند شامل چند دستور SQL  مي‌باشد كه يا بايد همگي بدون اشكال اجرا شوند و يا اين‌كه هيچكدام اجرا نگردند.
اهميت فرآيند و استفاده مناسب از آن‌ها در يك بانك اطلاعاتي و برنامه كاربردي مربوط به آن جاي هيچ‌گونه ترديدي را براي وجود ابزاري جهت ثبت و مانيتورينگ وقايع  باقي نمي‌گذارد. لذا اين دسته از رخدادها همانند رخدادهاي SQL يكي از پركاربردترين رخدادها قلمداد مي‌شوند.

9- Session 
اين دسته از وقايع شامل كليه رخدادهاي مربوط به اتصال كاربران به بانك اطلاعاتي (login) و خروج از آن (logout) يا قطع اتصال در اثر بروز هر عاملي (Disconnect) مي‌باشد و براي كنترل و رفع ايراد ورود و خروج كاربران به سيستم مورد استفاده قرار مي‌گيرد.

اجراي آزمايشي يك Trace 

شكل 2

براي شروع، مي‌خواهيم يك تعقيب آزمايشي براي ثبت برخي رخدادهاي قابل وقوع در سيستم با استفاده از پروفايلر بسازيم. براي اين‌كار برنامه Profiler را اجرا كرده و منوي New Trace را كليك مي‌كنيم تا ليستي از وقايع قابل ثبت كه آن‌ها را در قسمت قبل شرح داديم ظاهر شود. در قسمت General كافي است يك نام براي Trace  موردنظر انتخاب كرده و سپس يك مسير براي درج فايل حاوي لاگ رخدادهاي مذكور، به پروفايلر معرفي كنيم. لازم به ذكر است كه پروفايلر قادر است به جاي يك فايل، لاگ‌هاي توليد شده را در يكي از جداول همان بانك اطلاعاتي ذخيره كند. همچنين اگر مايل باشيد كه هيچ لاگي براي شما ثبت نشود، پروفايلر مي‌تواند صرفاً لاگ‌ها را در قالب يك پنجره در داخل خود برنامه به صورت يك ليست به شما نشان دهد (شكل 1).

در ضمن در داخل همين پنجره مي‌توانيد يك الگوي پيش‌ساخته را كه قبلاً توسط خودتان يا ديگران تنظيم شده مورد استفاده قرار دهيد تا در قسمت بعد كه مي‌خواهيد رخدادها را از داخل ليست انتخاب نماييد دچار مشكل نشويد. البته برنامه پروفايلر به صورت پيش‌فرض الگوي استاندارد خودش براي نظارت بر عملكرد كاربران و موتور پايگاه داده را به نام SQL Profilerstandard به شما پيشنهاد مي‌كند كه كافي است با قبول كردن آن به زبانه Events برويد. در آن‌جا طبق الگوي مذكور، يك سري از رخدادها از داخل ليست سمت چپ به صورت اتوماتيك انتخاب شده و جهت لاگ شدن در ليست سمت راست قرار مي‌گيرد، علاوه براي اين‌كه شما هم مي‌توانيد با استفاده از دو كليدAdd  و Remove رخدادهاي موردنظر خودتان را جهت لاگ شدن به ليست سمت راست، اضافه يا كم كنيد (شكل 2).

شكل 3

در اين‌جا فرض بر اين است كه قصد ما ساختن يك  Trace براي كنترل و نظارت بر دستورات SQL در حال اجرا توسط كاربر مدير سيستم يعني sa مي‌باشد بنابراين كافيست صرفاً مجموعه زير گروه TSQL را در ليست سمت راست نگه داريم و بقيه را با كليد Remove به سر جاي خود يعني ليست سمت چپ برگردانم.

در قسمت بعد بايد ستون‌هاي مورد استفاده لاگ را مشخص كنيم. با اين كار پروفايلر اطلاعات مربوط به لاگ‌هاي توليد شده را به شكل مناسبي كه ما مي‌خواهيم توليد مي‌كند اين انتخاب در زبانه Data Coloumns  قابل تنظيم است. به عنوان مثال ستون TextData متن عبارت SQL در حال اجرا را نشان مي‌دهد يا اين‌كه ستون Application  نام برنامه كاربردي كه اين دستور SQL  از طرف آن برنامه، اجرا شده را مشخص مي‌نمايد. بهتر است در اين مرحله كليه ستون‌هاي پيش‌فرض انتخاب شده توسط پروفايلر را قبول كرده و به مرحله آخر يعني فيلتر كردن اطلاعات برسيم (شكل 3).


شكل 4

در زبانه فيلتر (Filter) امكان محدود كردن نمايش اطلاعات لاگ شده (منظور رديف‌هاي آن اطلاعات است) به كاربر داده مي‌شود. به عنوان مثال چون هدف ما صرفاً نمايش دستورات SQL اجرا شده توسط كاربر sa است، به همين دليل يك فيلتر بر روي ستون User DataBase تعريف كرده و قسمت like آن را به كلمه sa انتساب مي‌دهيم. حتي اگر باز هم قصد محدودتر كردن گزارش را داشته باشيد مي‌توانيد روي ستون‌هاي ديگر هم فيلتر بگذاريد. مثلاً براي اين‌كه صرفاً دستورات DELETE كاربر مذكور به شما نشان داده شود مي‌توانيد در همين جا علاوه بر فيلتر قبل، يك فيلتر جديد بر روي ستون Text Data تعريف كرده و عبارت LIKE  آن را به كلمه DELETE منتسب كنيد (شكل 4).

پس از طي مراحل فوق، اكنون نوبت به اجراي Trace مذكور مي‌رسد اين‌كار از طريق كليك بر روي دكمه Run انجام مي‌گيرد. بلافاصله يك پنجره جديد حاوي ستون‌هايي كه ما در قسمت Coloumns انتخاب كرده بوديم نمايش داده مي‌شود. اين ليست بعد از انجام هر دستور SQL كه شرايط موردنظر ما در قسمت Filter برآورده كند به روز
(Refresh)  مي‌شود و كليه دستورات مذكور را به ترتيب زمان انجام، در درون ليست قرار مي‌دهد (شكل 5).
 

شكل 5

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

مديريت پايگاه داده ها در SQL Server - قسمت سوم: انتقال اطلاعات با Replication

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

 


معرفي
Replication راه‌حلي براي انتقال اطلاعات از يك بانك اطلاعاتي SQL server به يك بانك اطلاعاتي ديگر از همان نوع و البته مستقر در يك محل و كامپيوتر ديگر است. اين فرآيند توسط ايجاد يك كپي از اطلاعات موجود در مبدا و انتقال آن به مقصد صورت مي‌گيرد. در اين ارتباط اطلاعاتي، اصطلاحاً به كامپيوتر و بانك‌ اطلاعاتي مبدا، ناشر(publisher) و به كامپيوتر و بانك اطلاعاتي مقصد، مشترك يا متعهد (subscriber) مي‌گويند. البته اين نوع رابطه، با وجود تنها يك ناشر اما يك يا چند مشترك امكان‌پذير است. بدين‌معني كه اطلاعات يك بانك اطلاعاتي در مبدا قابل انتقال به چند مقصد مختلف است. از نسخه 7 به بعدSQL Server امكان تغيير اطلاعات در مقصد و انتقال آن به مبدا نيز وجود دارد. با اين وصف، اين رابطه داده‌اي بين ناشر و مشترك ممكن است گاهي اوقات برعكس شود و جاي مبدا و مقصد در يك مقطع زماني عوض شود. اين قابليت يكي از ويژگي‌هاي مهم SQL Server است كه در نسخه‌هاي قديمي آن وجود نداشت. بدين‌ترتيب يك كامپيوتر مشترك يا مقصد مي‌تواند گاهي اوقات نقش ناشر يا مبدا را در همان رابطه بازي كند. به اين قابليت جديد Multi site update مي‌گويند.
درSQL Server، سه نوع انتقال اطلاعات از طريق Replication وجود دارد. هر كدام از اين سه راه، سناريوي خاصي براي انتقال اطلاعات از مبدا به مقصد و يا برعكس را مديريت مي‌كنند كه در ادامه به بررسي آن‌ها مي‌پردازيم.

1- انتقال اطلاعات به روش ادغام (Merge
اين نوع انتقال اطلاعات كه از قابليت Multi site هم پشتيباني مي‌كند، زماني مورد استفاده قرار مي‌گيرد كه استقلال داخلي هر بانك اطلاعاتي طرف يك رابطه، به رسميت شناخته مي‌شود. بدين‌معني كه در يك رابطه انتقال اطلاعات، هر كامپيوتر ضمن حفظ ساختار بانك اطلاعاتي خود، هم مي‌تواند نقش ناشر را داشته باشد و هم نقش مشترك را ايفا نمايد. در اين حالت هر تغييري در جداول مشترك هر طرف، بلافاصله در طرف ديگر هم اِعمال مي‌شود. نكته مهمي كه در اين‌جا مطرح است اين است كه چطور طرفين اين ارتباط متقابل بايد با هم هماهنگ باشند و اولويت يكديگر را به رسميت بشناسند. به عنوان مثال فرض كنيد در يك زمان واحد، هر دو طرف بخواهند اطلاعاتي را در مورد يك جدول بانك اطلاعاتي به يكديگر ارسال كنند. (يعني بروز حالت تداخل) اين مشكل با استفاده از روش خاصي كه هر نوع Replication مخصوص خودش دارد، قابل حل است. به‌طور كلي در حالت ادغام، يك پايگاه داده حايل ميان ناشر و مشترك به عنوان توزيع‌گر (Distributor) ساخته مي‌شود. اين پايگاه داده به نامDistribution در ليست پايگاه‌هاي داده‌اي ناشر قرار‌مي‌گيرد و وظيفه ايجاد همزماني (synchronization) بين ناشر و مشتركين را ايفا مي‌كند.
پايگاه داده توزيع‌گر هم مي‌تواند در سمت ناشر و هم در يك كامپيوتر مياني ديگر (غير از كامپيوترهاي سمت مشترك) قرار داشته باشد. اين پايگاه داده ضمن ايجاد همزماني در ردوبدل اطلاعات بين ناشر و مشترك، اين امكان را نيز فراهم مي‌سازد تا مدير سيستم بتواند اولويت و در واقع ارجحيت جهت انتقال اطلاعات در زمان بروز تداخل را مشخص كند. اين اولويت (priority) در زمان تعريف طرف‌هاي ناشر و مشترك يك Replication از نوع ادغام توسط مدير سيستم تنظيم مي‌شود.

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

3- انتقال براساس فرآيند (Transactional) 
اين روش يكي از بهترين و قابل كنترل‌ترين روش‌هاي انتقال اطلاعات است. در اين روش هر تغييري كه در جداول ناشر صورت گيرد، به‌صورت يك دستور SQL درآمده و تحت يك فرآيند واحد هم در سمت ناشر و هم در سمت كليه مشتركين اجرا مي‌شود. در اين صورت اگر به‌طور مثال يكي از مشتركين به دليلي با اشكال مواجه شده و تغيير موردنظر در آن انجام نشود، اين تغيير نه در خود ناشر و نه در هيچ‌كدام از مشتركين ديگر نيز انجام نخواهد شد. بدين‌معني كه يا يك تغيير در اطلاعات، براي تمام كامپيوترها اعم از ناشر و كليه مشتركين انجام مي‌شود و يا اين‌كه براي هيچ‌كدام انجام نخواهد شد در اين حالت هم يك پايگاه داده واسطه به نام Distribution نقش دريافت و ارسال فرآيند را به طرف مشترك ايفا مي‌كند. در واقع روش فرآيند، در مقايسه با دو روش قبل از حالت به هنگام (online)  بودن بيشتري برخوردار است. يعني اين‌كه هر فرآيند و هر دستور در همان لحظه كه مي‌خواهد در ناشر اجرا شود، به واسط فرستاده شده و سپس در يك زمان واحد در كليه مشتركين نيز انجام مي‌شود و در واقع زمان تغيير اطلاعات در ناشر و در مشتركين تقريباً يكسان است. همچنين در اين روش تداخلي هم پيش نمي‌آيد. چون هر تغييري ابتدا بايد به واسط فرستاده شود و از آن‌جا به جاهاي ديگر ارسال شود و واسط هم آن‌ها را در يك صف اولويت (priority queue) قرار داده و به ترتيب انجام مي‌دهد. نتيجه اين نوع انتقال اطلاعات، داشتن چند پايگاه داده كاملاً يكسان و به‌هنگام در مكان‌هاي مختلف است كه همگي از يك ناشر، اطلاعات موردنظر را دريافت مي‌كنند.

تعريف ناشر و مشتركين
براي تعيين يك SQL Server به عنوان ناشر، كافي  است يك رابطه Replication براي آن تعريف كرده و پس از انجام تنظيمات مربوطه و طي مراحل خاص هر يك از سه نوع انتقال اطلاعات، آن كامپيوتر را به عنوان مبدا يا ناشر يك فرآيند انتقال معرفي كنيم. در همين حين و براي ايجاد پايگاه داده واسط يا همان توزيع‌گر (Distributor) هم مي‌توان وارد عمل شده و خود ناشر را به عنوان توزيع‌گرِ آن فرآيندِ انتقال معرفي كنيم. پس از اين‌كار نوبت به تعريف مشتركين مي‌رسد. براي تعريف يك مشترك از دو راه مي‌توان اقدام كرد، كه هر يك كاربرد مخصوص به خود را دارند. در روش اول كه فرستادن اطلاعات به طرف يك مشترك است و در اصطلاح push ناميده مي‌شود، معرفي مشترك از سمت ناشر انجام مي‌شود. بدين‌معني كه مدير سيستم مي‌تواند بلافاصله پس از تعريف يك ارتباط و ناشر آن از همان لحظه و در همان محل استقرار ناشر، مشتركين را يك به يك به اين نوع ارتباط دعوت و اضافه كند و اطلاعات را به سمت آن‌ها بفرستد. اين ارتباط به دليل اين‌كه كاملاً از طرف ناشر، كنترل مي‌شود، از حالت به‌هنگام بيشتري
(online) برخوردار است و اطلاعات بلافاصله به سمت مشترك فرستاده مي‌شود. در روش دوم كه Pull نام دارد، تعريف مشترك از سمت خودش انجام مي‌شود و در واقع اين مشترك است كه اطلاعات را از ناشر طلب مي‌كند. اين حالت بيشتر در مواقعي كاربرد دارد كه اولاً تعداد مشتركين از قبل براي ناشر مشخص نيست و ثانياً بروز بودن اطلاعات در آن واحد از اهميت حياتي براي سيستم برخوردار نيست و انتقال اطلاعات مي‌تواند با تأخير و با درنگ زماني و در زمان دلخواه مشترك ‌نجام شود.

طرح يك مسأله‌
فرض كنيد مي‌خواهيم با استفاده از مكانيسم Replication، اطلاعات موجود در بانك اطلاعاتي Northwind را از يك پايگاه داده SQL Server به نام server به يك بانك اطلاعاتي به همان نام و بر روي يك پايگاه داده ديگر مستقر در يك سرور راه دور به نام Home server منتقل كنيم. براي اين‌كار مي‌توانيم از هر كدام از سه روش انتقال اطلاعات، استفاده نماييم.


مراحل ايجاد ناشر

براي اين كار، در پنجره Enterprise Manager، بر روي گزينه Publication از آيتم Replication كليك سمت راست نموده و فرمان New را انتخاب مي‌نماييم. با آغاز ويزارد مخصوص، كليد Next را كليك كرده و در صفحه بعد در پاسخ به اين سؤال كه آيا مي‌خواهيد پايگاه داده توزيع‌گر (Distributor) در همين كامپيوتر ساخته شود يا خير، گزينه اول يعني خود كامپيوتر server را انتخاب مي‌كنيم و به مرحله بعد مي‌رويم (شكل 1). 




در پنجره بعدي از كاربر خواسته مي‌شود تا فولدري را جهت قرار دادن فايل‌هاي مربوط به عمليات انتقال مشخص كند. وجود اين فولدر براي انجام عمل Distribution ضروري است و بايد طوري انتخاب شود كه در شبكه‌اي كه قرار است مشتركين به آن بپيوندند قابل دسترسي باشد. پس از انتخاب اين فولدر و كليك بر روي كليد Next، در مرحله بعد نام بانك اطلاعاتي موردنظر يعني Northwind را از داخل ليست انتخاب كرده و به مرحله اصلي يعني انتخاب نوع Replication مي‌رسيم كه در اين‌جا همان گزينه اول يعني snapshot را انتخاب مي‌كنيم (شكل 2).



سپس در مرحله بعد بايد هر موجوديتي اعم از جداول و روال‌هايي، را كه مي‌خواهيم در اين عمليات انتقال وجود داشته باشند، معرفي كنيم براي مثال جدول مشتريان (customers) را از داخل ليست جداول علامت زده و به مرحله بعد مي‌رويم. (شكل 3) در مرحله بعد يك نام براي عمليات انتقال انتخاب كرده و كليد Next را مي‌زنيم و در نهايت با كليك بر روي عبارت Finish عمليات را پايان مي‌دهيم.




مراحل ايجاد مشتركين‌

1- روش Pull (از طريق مشترك)
براي ايجاد يك مشترك با روش pull، به كامپيوتر مشترك مراجعه كرده و بر روي گزينه subscription كليك سمت راست كرده و فرمان New pull را انتخاب مي‌كنيم. سپس از داخل پنجره بعدي گزينه دوم يعني Look in the Active Directory را انتخاب مي‌نماييم (شكل 4).




در مرحله بعد نام ناشر و سپس نام بانك‌اطلاعاتي موردنظر، نام عمل نشر كه در ناشر تعريف كرديم و سپس رمز عبور مربوط به يك كاربر معتبر در ناشر مثلاً كاربر sa را وارد مي‌نماييم. (شكل 5)




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



با اين كار مراحل تعريف يك مشترك از طريق pull پايان مي‌پذيرد. اما نكته مهمي كه در اين‌جا بايد به آن اشاره كنيم اين است كه براي فراهم ساختن امكان تعريف مشتركين از طريق pull حتماً بايد اين اجازه را قبلاً و از طريق ناشر به كاربران مشترك داده باشيم.  
براي اين‌كار، قبل از تعريف مشترك، بايد در كامپيوتر ناشر، بر روي نام عمليات انتقال ايجاد شده كليك سمت راست كرده و گزينه خصوصيات (properties) را انتخاب نماييم. سپس زبانه subscription option را باز كرده و مطمئن شويم كه گزينه‌هاي Allow anonymous و همچنين Allow Pull در حالت تأييد شده باشند (شكل 7).



2 - روش push  (از طريق ناشر)
براي تعريف يك مشترك با استفاده از روش push، به كامپيوتر ناشر مراجعه كرده و بر روي نام عمليات نشر كه قبلاً ايجاد كرده‌ايم كليك سمت راست مي‌كنيم. سپس روي گزينه push new كليك مي‌كنيم. با شروع مراحل ويزارد، نام كامپيوتر مشترك را از ليست انتخاب مي‌كنيم (شكل 8).



در مراحل بعدي با معرفي بانك اطلاعاتي Northwind به عنوان مقصد به پنجره ويژه تعريف زمان به‌روز شدن مشترك مي‌رسيم كه از بين دو نوع بلادرنگ و زماندار قابل انتخاب است. كه باز هم نوع اول را انتخاب مي‌كنيم. در مرحله بعد هم مطمئن مي‌شويم كه گزينه start snapshot agent در حالت تأييد قرار دارد و سپس با چند كليك بر روي كليدNext عمليات را پايان مي‌دهيم. نكته بسيار مهمي كه براي تعريف مشترك از طريق روش push بايد در نظر داشته باشيم اين است كه براي ظاهر شدن نام هر مشترك در ليست انتخاب كه در شكل 8 ملاحظه كرديد، بايد قبلاً اين مشترك با استفاده از عمليات Registration در كامپيوتر ناشر تعريف شده باشد. در غير اين‌صورت نام آن در داخل ليست مشتركين ظاهر نمي‌شود. عمل مذكور هم در يك محيط شبكه‌اي بسيار آسان است. كافي است بر روي SQL Server Group در كامپيوتر ناشر كليك راست كرده و با انتخاب New Registration و وارد كردن نام مشترك اين كار را انجام دهيم.

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

مديريت پايگاه داده ها در SQL Server - امنيت اطلاعات و عمليات (قسمت چهارم)

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

 


امنيت در ورود به سيستم
زماني كه يك بانك اطلاعاتي جديد را در SQL Server تعريف مي‌كنيد، با كليك سمت راست بر روي نام موتور پايگاه داده‌اي يك سرور درEnterprise Manager و انتخاب قسمت Properties، در زبانه security، موتور بانك اطلاعاتي

شكل 1

امكان انتخاب دو روش مختلف در معرفي و يا شناسايي كاربران مجاز براي ورود به سيستم يا همان عمل احراز هويت (Authentication) را در دسترس قرار مي‌دهد. البته بعد از ساخت يك بانك اطلاعاتي، با كليك سمت راست بر روي نام آن بانك و انتخاب گزينه Properties و سپس security هم مي‌توان روش مورد استفاده را تغيير داد. (شكل 1)
يكي از اين دو روش كه برمبناي ارتباط موتور اين پايگاه داده با اكتيودايركتوري ويندوز 2000 سرور بنا شده است و Windows only نام دارد، باعث مي‌شود تا كاربران از قبل تعريف شده در دامنه (Domain) يك شبكه مبتني بر ويندوز 2000 سرور، به رسميت شناخته شوند. در اين صورت نيازي به معرفي كاربر جديد و يا انتخاب دو نام كاربري براي يك نفر وجود ندارد و كاربر مذكور مي‌تواند از همان نام كاربري و رمز عبوري كه براي ورود به دامنه شبكه ويندوزي خود استفاده مي‌كند، براي اتصال به بانك اطلاعاتي هم استفاده كند.
در روش دوم، ارايه مجوز دسترسي به كاربران با سيستمي خارج از محدوده دامنه‌‌ويندوزي صورت مي‌گيرد. بدين‌صورت مدير سيستم مجبور است براي كليه كاربراني كه قصد اتصال به بانك را دارند، نام كاربري و رمزعبور جديدي را تعريف كند.


تعريف كاربران

شكل 2

در صورتي كه شيوه دوم تعريف كاربران را انتخاب كرده باشيد، بايد ابتدا ليستي از كاربران را به همراه رمزعبور
مربوطه‌شان در قسمتي از صفحه Enterprise Manager كه با عنوان Security مشخص شده، معرفي كنيد. اين كار با كليك سمت راست بر روي گزينه Login در قسمت مذكور و سپس new login انجام مي‌گيرد. انتخاب يك نام كاربري به همراه ورود رمزعبور تنها كاري است كه بايد در اين جا انجام گيرد تا يك كاربر به‌طور عمومي در ليست كاربران يك موتور پايگاده داده‌ قرار گيرد.

از اين به بعد، وظيفه مدير سيستم تعيين دسترسي كاربران تعريف شده در قسمت security، به بانك‌هاي مختلف تعريف شده در پايگاه است.
اين‌كار نيز از دو طريق قابل انجام است. در روش اول، دسترسي به هر بانك اطلاعاتي از طريق همان قسمت security صورت مي‌گيرد. كافي است بر روي هر كاربري كه در اين قسمت تعريف كرده‌ايد، كليك سمت راست كرده و ابتدا گزينه خصوصيات و سپس زبانه DataBase Access را انتخاب كنيد. پس از آن ليستي از كليه بانك‌هاي اطلاعاتي موجود در پايگاه به شما نمايش داده مي‌شود كه بايد بانك موردنظر را انتخاب كرده و در ستون Permit كليك موردنظر را انجام دهيد. پس از اين كار

شكل 3

مي‌توانيد يك نام نمايشي را براي نام كاربري مربوطه در ستون user تايپ كنيد. در اين‌جا به عنوان مثال امكان دسترسي كاربر mda را به بانك Northwind فراهم نموده و نام نمايشي <مهيار داعي‌الحق> براي آن انتخاب شده است (شكل 2). همان‌طور كه مشاهده مي‌كنيد اين كاربر به‌طور خودكار در گروه كاربري عمومي (public) بانك مذكور قرار داده مي‌شود.
در روش دوم، به سراغ بانك اطلاعاتي موردنظر در ليست DataBases رفته و با كليك سمت راست بر روي عبارتusers، گزينه New User را انتخاب مي‌كنيم. حال در پنجره نمايش داده شده، بايد از درون ليست Login name، يكي از كاربراني را كه قبلاً در قسمت security تعريف كرده‌ايم انتخاب كرده و نام نمايشي آن را هم در قسمت user name تايپ كنيد. در اين‌جا هم به‌صورت خودكار، كاربر مذكور در گروه كاربري Public براي آن بانك اطلاعاتي قرار مي‌گيرد. (شكل 3)


نقش‌ها (Roles)

درSQL Server، مي‌توان چندين كاربر را در يك گروه كاربري قرار داد. وقتي يك گروه كاربري تعريف مي‌شود، دسترسي آن به قسمت‌هاي مختلف يك بانك اطلاعاتي و كليه عملياتي كه اعضاء آن گروه مي‌توانند انجام دهند، توسط مدير سيستم تعيين مي‌گردد. از اين به بعد هرگاه كاربر جديدي به آن گروه اضافه ‌شود، نيازي به تعريف مجدد سطوح دسترسي و عملياتي براي وي وجود ندارد و سطوح دسترسي به صورت خودكار از طرف گروه به عضو جديد اعطا مي‌شود. درSQL Server به‌صورت پيش‌فرض تعدادي نقش (Role) وجود دارد كه در واقع همان گروه‌هاي كاربري مذكور مي‌باشد. هر كاربري كه توسط مدير سيستم به جمع كاربران اضافه مي‌شود به طور خودكار در نقش public ظاهر مي‌شود. نقش‌هاي از پيش تعريف شده و نحوه دسترسي و قابليت عملياتي آن‌ها عبارت هستند از:

1- db-accessadmin
كاربران تعريف شده در اين نقش قادر خواهند بود، سطوح دسترسي و امنيتي كليه كاربران و نقش‌ها را در قسمت‌هاي مختلف پايگاه تعريف كنند.

2- db-backupoperator

اين نقش مسؤول ايجاد نسخه‌هاي پشتيبان از سيستم و اطلاعات درون آن است.

3- db-datareader

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

4- db-datawriter
افراد تعريف شده در اين نقش قادرند تا كليه اطلاعات موجود در كليه جداول بانك را با استفاده از دستورات سه‌گانهInsert ،UPdate ،Delete تغيير دهند. مگر آن ‌كه جدول يا فيلد خاصي توسط مكانيسم Deny از دسترس‌شان دور نگه داشته شود.

5- db-ddladmin
كاربران داراي اين نقش مي‌توانند ساختار جداول، ديدها، روتين‌ها و توابع يك بانك اطلاعاتي را با استفاده از دستورات سه‌گانه Create ،alter ،Drop، بسازند، تغيير دهند يا از بين ببرند.

6- db-denydatareader
اين نقش قادر به خواندن هيچ اطلاعاتي از جداول يا ساير قسمت‌هاي بانك نيست.

7- db-denydatawriter
اين نقش هم قادر به تغيير دادن هيچ يك از قسمت‌هاي بانك اطلا‌عاتي نيست.

8- db-owner
اين نقش قادر به انجام هر عملي در بانك‌اطلاعاتي مي‌باشد و بالاترين سطح موجود در يك بانك است.

9- db-securityadmin
مسؤول تعريف و تنظيم نقش‌ها، كاربران و سطوح دسترسي در يك بانك است.

10- public
كاربران اين نقش‌ قادرند تمام جداول، ديدها و ساير قسمت‌هايي كه توسط خودشان يا توسط كاربران متعلق به
نقش dbowner ساخته شده را بخوانند و بنويسند.

شكل 4

اما به غير از نقش‌هاي مذكور، مدير سيستم هم مي‌تواند به تناسب، نقش‌هايي را در سيستم تعريف كند. به عنوان مثال فرض كنيد كه در يك واحد حسابداري، كارمندان عادي آن قسمت، موظف به وارد كردن اسناد مالي به يكي از جداول بانك‌اطلاعاتي با استفاده از يك برنامه ويژوال بيسيك هستند. مدير مالي نيز توسط دكمه موجود در همان برنامه قادر است يك روتين ذخيره شده (stored procedure) را فراخواني كرده تا اسناد وارد شده را تأييد كند. بنابراين فقط كاربر مربوط به مدير مالي حق اجراي روتين مذكور را دارد. برهمين اصل مدير پايگاه يك گروه به نام <حسابداران> را براي ورود اسناد و گروه ديگري را به نام <مدير مالي> براي مديريت آن دپارتمان و جانشينان احتمالي وي در نظر مي‌گيرد و براي گروه اول، اجراي روتين مذكور را در حالت ممنوع (Deny) و براي گروه دوم، در حالت مجاز (Allow) قرار مي‌دهد. شما مي‌توانيد براي تعريف يك گروه يا نقش جديد، بر روي آيتم Roles كليك سمت راست كرده و گزينه New Role و سپس يك نام دلخواه را انتخاب كرده و آن‌گاه با كليك بر روي دكمه Add كاربران از قبل تعريف شده‌تان را يك به يك به جمع آن گروه اضافه نماييد. شايان ذكر است كه هر كاربر مي‌تواند جزء چند گروه يا نقش باشد. در ادامه بايد در همان پنجره مذكور با كليك بر روي دكمه مجوز (Permission)، دسترسي و قابليت عملياتي آن گروه را هم تعريف كنيد. (شكل 4)


انواع مجوزها

1- جداول اطلاعاتي و ديدها

شكل 5

در مورد يك جدول بانك اطلاعاتي شما مي‌توانيد امكان انجام پرس‌وجو، درج، تغيير، حذف و تعريف وابستگي را به ترتيب با علا‌مت زدن در ستون‌هاي SELECT ،UPDATE ،DELETE و DRI براي يك گروه يا كاربر، ممكن يا غيرممكن كنيد. در ضمن در صورتي كه بخواهيد بر روي تك‌تك فيلدها، قواعدي را وضع كنيد مي‌توانيد بر روي دكمه Colums هر جدول كليك كرده و امكان آوردن آن فيلد را در يك عبارت پرس‌وجو (SELECT) و يا امكان تغيير آن فيلد را در يك عمليات UPDATE براي گروه يا كاربر موردنظر مشخص كنيد. (شكل 5)‌ لازم به ذكر است كه همين عمليات براي ديدهاي
(View) يك بانك هم قابل انجام است.


شكل 6


2- روتين‌ها و توابع

در مورد روتين‌ها و توابع تعريف‌شده (User Defined Fonction) فقط يك ستون مجوز به نام Exec و آن هم به معني امكان استفاده يا عدم استفاده وجود دارد كه توسط مدير سيستم تنظيم مي‌شود. (شكل 6)


3- مجوزهاي اساسي

به غير از عمليات‌عمومي سيستم مثل جستجو، درج، تغيير، اجراي روتين و... كه در بالا ذكر شد، در SQL serverامكانات ويژه‌اي نيز براي كاربردهاي خاص در نظر گرفته شده كه فقط در مواقع لزوم به برخي كاربران يا نقش‌ها اعطا مي‌شود. اگر بر روي نام هر بانك اطلاعاتي موجود در سيستم مثل Northwind، كليك راست كرده و آيتم خصوصيات را انتخاب كنيد، در زبانه آخر يعني Permission ليستي از نقش‌ها و كاربرهاي موجود در سيستم را مشاهده مي‌كنيد كه در جلوي نام هر يك از

شكل 7

آن‌ها و در 8 ستون به ترتيب از چپ به راست امكان ساخت جدول، ديد، روتين، مقادير پيش‌فرض، قواعد، توابع، پشتيبان‌گيري از اطلاعات و پشتيبان‌گيري از لاگ‌ها وجود دارد كه در مواقع خاصي قابل اعطا به كاربران با نقش‌هاي مختلف مي‌باشد. به عنوان مثال اگر برنامه‌نويس قصد داشته باشد تا براي فراهم‌ساختن امكان تهيه يك گزارش پيچيده، به كاربري اجازه اجراي دستور CREATE VIEW را از داخل يكي از فرم‌هاي برنامه ويژوال بيسيك خود بدهد، بايد قبلاً مدير پايگاه را مطلع نموده تا وي ستون Create View را براي آن كاربر، فعال نمايد. همين عمل جهت ساخت جداول موقت براي گرفتن گزارش يا ساير عمليات‌ پيچيده هم وجود دارد و از طريق ستون Create Table قابل انجام است.
در اين صورت كاربر مي‌تواند با استفاده از دستوراتي كه منتهي به ساخت جدول مي‌شود مثل Create Table يا Select INTO جداول موقتي را توسط برنامه ويژوال بيسيك مورد استفاده خود ايجاد نموده و پس از پايان كار با استفاده از دستور DROP آن‌ها را حذف نمايد. (شكل 7)

مهيار داعي‌الحق
ماهنامه شبکه - آذر ۱۳۸۳ شماره 49

راهكارهايي براي‌ افزايش سرعت در بانك‌هاي اطلاعاتي SQL Server

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

 


توسعه 
به‌طور كلي براي افزايش سرعت يك بانك اطلاعاتي مي‌توان به دو روش اقدام كرد. در واقع پنج عامل مورد اشاره در بالا‌، به دو دسته طولي و عرضي تقسيم‌بندي مي‌شوند. در توسعه طولي كه در اصطلاح انگليسي به Scalp up نيز شناخته مي‌شود، مدير سيستم با صرف هزينه‌، به ارتقاي سخت‌افزار (مثل پردازنده‌ها يا هاردديسك‌ها) يا به‌طوركلي ايجاد شبكه‌اي سريع‌تر اقدام مي‌نمايد يا مثلاً سيستم‌عامل خود را به نسخه‌اي جديدتر و پايدارتر ارتقا مي‌دهد. اما در روش عرضي (Scale out) تقريباً با حفظ همان سخت‌افزار و ساختار شبكه، به بهينه‌سازي روابط موجود ميان عناصر دخيل در سرعت مثل برنامه‌هاي كاربردي، بانك اطلاعاتي و سرور اقدام مي‌كند.

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

راه‌حل يكم: افزايش حافظه مورد استفاده SQL Server از يك به سه گيگابايت. اين كار را بايد با دستكاري در فايلBoot.ini سرور 2000 يا 2003 كه SQL Server در آنجا قرار دارد، انجام دهيد. براي اطلاع از چگونگي انجام‌دادن اين كار، به سايت پشتيباني مايكروسافت رجوع كنيد نشاني(
http://support.microsoft.com) و در آنجا عبارت AWE SQLServer را جستجو كنيد تا مقالاتي كه در اين زمينه وجود دارد، در دسترس شما قرار گيرد.

راه‌حل دوم: ارتقاي سيستم‌عامل ويندوز 2000 به 2003 كه در فرايند caching، سيستم‌عاملي پايدارتر و هوشمندتر قلمداد مي‌شود.

راه‌حل سوم: استفاده از پردازنده‌هاي Xeon به جاي پنتيوم 4 در سرور. اين پردازنده‌ها به دليل ويژگيhyper threading، مي‌توانند سرعت پردازش اطلاعات در سمت سرور را به دو برابر افزايش دهند.

راه‌حل چهارم: هاردديسك‌هاي اسكازي با 15‌هزار دور در دقيقه و سرعت سه مگابيت در ثانيه و يا Sata با 10‌هزار دور در دقيقه و دو مگابيت در ثانيه نسبت به هاردديسك‌هاي IDE با 7500 دور در دقيقه و يك مگابيت در ثانيه از عملكرد بهتري برخوردارند.پس درصورت امكان، از اين ادوات ذخيره‌سازي در سرور بانك اطلا‌عاتي استفاده كنيد.

 راه‌حل پنجم: جداسازي محل ذخيره فايل‌هاي داده‌اي بانك اطلاعاتي (mdf) و فايل‌هاي لاگ (ldf) برروي دو هاردديسك مختلف يا دو ديسك مختلف از يك RAID. معمولاً براي نگهداري mdf استفاده از RAID1 و براي ldf  استفاده از RAID5 توصيه مي‌شود.

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

راه‌حل ششم: راه‌حل آخر و در واقع مشكل‌ترين راه، تقسيم بانك اطلاعاتي (در صورت لزوم) به دو بانك جدا از هم و بر روي دو سرور مختلف است. به عنوان مثال، فرض كنيد كه عمليات روزانه سيستم شما به دو دسته تقسيم مي‌شود: دسته يكم عملياتي است كه طي آن بايد از آخرين اطلاعات موجود بر روي سيستم استفاده شود و هرگونه تغيير نيز بايد فوراً  در همان لحظه بر روي بانك سيستم‌ها (جداول مربوط به آن‌ها كه به
online transactional Processing) OLTP) مشهورند،) اعمال شود.

دسته دوم نيز شامل عملياتي است كه طي آن مي‌توان از اطلاعات چند ساعت يا چند روز پيش نيز استفاده كرد و لزومي به داشتن آخرين اطلاعات به صورت لحظه‌اي نيست. به عنوان نمونه فرض كنيد تعدادي از گزارش‌هاي سيستم مربوط به تحليل آماري فرايندهاي مختلف ماه پيش است. بنابراين بايد تمهيداتي انديشيده شود تا تهيه اين گزارش‌ها -كه البته ارزش آني ندارند، اما به دليل بازه زماني و نوع تحليل آن‌ها، منابع زيادي از سيستم براي خواندن اطلاعات انبوه و تجزيه و تحليل صرف مي‌شود، بايد بر روي سرور دومي در شبكه كه به
سيستم‌هاي online Analytical Processing) OLAP) مشهورند قرار گيرند تا در كار كساني كه مشغول  كار با OLTP  هستند، خللي ايجاد نشود.

بنابراين سرور دومي را در شبكه در نظر بگيريد و كپي بانك اطلاعاتي موجود در سرور اول را به سرور دوم انتقال دهيد. سپس با استفاده از روش Replication سيستم را طوري تنظيم كنيد تا در مواقع خلوت‌بودن ترافيك سيستم (مثلاً نيمه شب) اطلاعات Upgrade شده آن روز را از سرور اول به سرور دوم كپي كند. كليه برنامه‌هايي كه با OLAP  كار مي‌كنند را به بانك مشابه، اما با آدرس سرور دوم ارجاع دهيد.
 
براي كسب اطلاعات بيشتر در زمينه نحوه انجام‌دادن Replication، عبارت مذكور را در سايت ماهنامه شبكه جستجو كنيد. تا به مقالا‌تي در اين زمينه دست پيدا كنيد.

توسعه عرضي (Scale out) 

نام خانوادگي

نام

شماره تامين اجتماعي بيمه شده

شماره سريال بيمه شده

ب

الف

ايندكس خوشه‌اي يا خاصيت منحصر به فرد

كليد اوليه ايندكس غيرخوشه‌اي

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

1 - از ساخت جداولي كه فاقد كليد اوليه (Primary key) باشند، خودداري كنيد. كليد اوليه علاوه بر جلوگيري از  ورود اشتباه اطلاعات از سوي كاربر، به دليل داشتن خاصيت منحصر به‌فرد بودن (Unique) به سريع‌تر پيدا‌شدن ركورد موردنظر از همان جدول كمك شاياني مي‌كند. تا آنجا كه براي سيستم امكان دارد براي كليد اوليه از فيلدهاي عددي استفاده كنيد.

استفاده از فيلدهاي رشته‌اي (string) مثلchar ياvarchar به‌عنوان كليد اوليه، كمي كندتر از فيلدهاي عددي است. از انتخاب فيلدهاي رشته‌اي با طول زياد و يا فيلدهايي مثل Memo ،Text و Picture به عنوان كليد اوليه نيز اجتناب كنيد.

2 - تمام كليدهاي خارجي (Foreign key) قابل تعريف در بانك را تعريف كنيد. وجود كليدهاي خارجي نيز علاوه بر جلوگيري از اشتباه كاربر در واردكردن يا حذف اطلاعات، موجب مي‌شود هنگام لينك شدن (join) جداول مادر و فرزند از طريق كليدهاي خارجي، سيستم سرعت بيشتري را در انجام دستورات Select شما از خود نشان دهند.

3 - همان‌طور كه مي‌دانيد ايندكس‌ها در دو نوع خوشه‌اي (cluster) و غيرخوشه‌اي (Non cluster) قابل ساخت هستند. ايندكس‌ها باعث افزايش سرعت خواندن اطلاعات به‌وسيله دستور Select مي‌شوند.
ما تعريف بي‌رويه آن‌ها در سيستم نيز باعث كاهش سرعت اجراي دستورات فرايندي مثل Insert ،Update و Delete  مي‌شود. بنابراين سعي كنيد ايندكس‌هاي ضروري را در سيستم تعريف كنيد. اما در اين راه دست و دلبازي بي‌مورد از خود نشان ندهيد. به عنوان مثال، فرض كنيد در يك شعبه اداره تأمين اجتماعي، جدولي ويژه تعريف بيمه‌شدگان به شكل زير وجود دارد.  

مبلغ

تاريخ

شماره سريال

1

جزء دوم كليد اوليه

جزء اول كليد اوليه

1

 

كليد خارجي از جدول قبل

1

جزئي از ايندكس خوشه اي

جزئي از ايندكس خوشه اي

جدولي نيز براي نگهداري وجه حق بيمه از بيمه‌شدگان نيز تعريف شده است.

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

نكته مهم ديگر اين است كه لا‌زم است تمام كليدهاي اوليه جداول ايندكس داراي باشند (خوشه‌اي يا غيرخوشه‌اي) نكته ديگر در زمان ساخت ايندكس‌ها فاكتور پرشدن (Fill Factor) آن‌ها است. اين فاكتور در واقع بيانگر ميزان فضاي مياني است كه بايد براي ركوردهايي كه در آينده درج يا حذف مي‌شوند، خالي نگه داشته شود. بنابراين اگر احساس مي‌كنيد جدول شما به‌طور مداوم مورد عمليات حذف و درج (Insert،‌Delete) قرار مي‌گيرد، اين فاكتور را پايين (مثلاً 30 درصد) انتخاب كنيد. اما اگر صرفاً عمليات درج بر روي يك جدول انجام مي‌گيرد و ميزان حذف اطلاعات از آن بسيار كم است، مي‌توانيد اين ميزان را به ارقام بالاتر مثلاً 90 درصد افزايش دهيد. زيرا اين نوع جداول نيازي به داشتن فضاي خالي مياني براي ركوردهايي كه در آينده جانشين ركوردهاي حذف شده مي‌شوند، ندارد.

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

4 - در هنگام نوشتن دستورات Select يا در هنگام ساختن ديدها، از استفاده بي‌مورد از پارامترهاي پردازش مثلDistinct و LIKE order by و لينك‌هاي خارجي (Outer join) اجتناب كنيد. در صورت استفاده از اين پارامترها، مطمئن باشيد كه گذاشتن آن‌ها كاملاً ضروري است و چاره ديگري نداريد.

5 - از واگذاري پردازش‌هاي رياضي يا آماري سنگين و مداوم به سرور بانك اطلاعاتي بپرهيزيد. مثلا‌ً به دستور زير نگاهي بيندازيد.

SELECT( a*( b+c )) +( d* E+F))  %G/H From ... WHERE ...


به‌جاي اين‌كار، مي‌توانيد ابتدا با استفاده از يك Select معمولي مثل Select a ,b ,c ,d ,E ,F ,G ,h  فيلدهاي موردنظر را در حافظه كلاينت لود كنيد و سپس عمليات رياضي مذكور را در همان جا انجام دهيد. با اين كار پردازشي كه سرور بايد مثلاً براي 50 كلاينت در عرض چند دقيقه انجام دهد، بين آن 50 كلاينت تقسيم مي‌شود و در واقع هر كلاينت فقط سهم پردازشي مربوط به خود را انجام مي‌دهد.

6 - گاهي عمل اجتماع بين دو Select  توسط دستور Union به شدت بر عملكرد و سرعت سيستم اثر منفي مي‌گذارد. بنابراين در صورت امكان به جاي استفاده از روش مذكور، از روش‌هاي ديگري كه هدفتان را برآورده نمايد، استفاده كنيد.

7 - سعي نماييد فيلدهايي كه از نظر مقدار و ارزش با يكديگر مقايسه مي‌شوند، از يك جنس (type) باشند. در غير اين‌صورت سيستم‌مجبور مي‌شود به طور ضمني، عمل تبديل داده را انجام دهد كه كمي برايش وقت‌گير است. به مثال زير توجه كنيد و فرض بگيريد فيلد customer ID در جدول customers از جنس nchar تعريف شده است. 

Declare@custID char (5)
Set @ CustID =' FDLKO'
Select * From Customers where customerID=@custID


8 - تاحد ممكن از به كار بردن توابع (چه پيش ساخته توسط SQL Server و چه ساخته شده توسط كاربر) در قسمت WHERE يا order by اجتناب كنيد. مثال زير نمونه‌اي از اين مورد است:

Select * Form orders Where DateAdd (Day, 15, orderdata) = '2005/23/07'


9 - در زمان نوشتن تريگر (trigger) بر روي جداول يك بانك اطلاعاتي، از نوشتن تعداد زيادي دستورالعمل در آن‌ها خودداري كنيد. به عبارت ديگر تريگرها را تا حد امكان كوتاه كنيد و دستورالعمل‌ پياد‌ه‌سازي آن‌ها را كم نماييد.
10 - در زمان ساخت كرسر (cursor) درون توابع، روال‌ها و تريگرها از پارامترهاي Forward only يا read only و همچنين local استفاده كنيد تا SQL Server با دانستن اين نكته كه شما قصد تغيير داده‌ها در كرسر موردنظر را نداريد، تغيير يافتني بودن آن‌ها را درنظر نگيرد و آن را براي شما سريع‌تر بسازد.

11 - در صورتي كه تكه‌اي از برنامه شما به ساخت يك جدول موقت (temporary table) نياز دارد، اين كار بايد با ظرافت خاصي صورت بگيرد. اصولا SQL Server براي اجتناب برنامه‌نويسان از ساخت جداول موقت، از يك نوع داده(Data type) خاص به نام Table پشتيباني مي‌كند كه مزيت استفاده از آن اين است كه به‌جاي هاردديسك، در حافظه رم قرارگرفته است و در نتيجه نسبت به جداول موقت سرعت بيشتري دارد.

اما به ياد داشته باشيد كه استفاده بي‌رويه از اين نوع داده، حافظه زيادي را صرف مي‌كند كه مي‌تواند باعث كاهش كارايي سيستم شود. بنابراين اگر احساس مي‌كنيد تعداد جداول موقت، ركوردهاي آن‌ها و زمان استفاده از آن‌ها كم است، از اين نوع داده استفاده كنيد. در غير اين‌صورت، راه‌حل جدول موقت را انتخاب كنيد.
 
12-  قفل‌گذاري بر روي ركوردهايي كه در حال خواندن، درج شدن، حذف شدن يا تغيير كردن هستند، هميشه از مباحث مهم بانك‌هاي اطلاعاتي بوده‌است. همان‌طور‌كه مي‌دانيد يك فرايند (Transaction) شامل يك يا چند دستورالعمل SQL است كه يا بايد همگي به صورت موفقيت‌آميز اجرا شوند (committed) يا در صورت ايجاد خطا در زمان اجراشدن يكي، اجراي بقيه نيز منتفي شود (Rollbacked).
 

ايندكس گذاري برروي ديده ها(Indexed Views) يكي از بهترين راههاي فوري جهت افزايش سرعت جستجو بر روي ديدهااست. در حالت عادي گزينه Manage Indexes بر روي ديدها قابل انتخاب نيست مگر آنكه اولا كليه جداول يا ديدهاي موجود در آن، خود داراي ايندكس باشد و دوم اينكه كليه ديدهاي موجود در آن و هم خود ديد مورد نظر با دستور زير ساخته شده باشند.
Create View....Whit Schema Binding AS.......
 

فرايند به دو صورت قابل پياده‌سازي است. اين كار يا با استفاده از دستورات Begin trans و Committrans انجام مي‌شود كه به آن حالت صريح (Explicit) مي‌گويند يا به صورت ضمني (Implicit) صورت مي‌گيرد كه در آن اثري از دو دستور مذكور ديده نمي‌شود و هر دستور SQL يك فرايند مجزا به حساب مي‌آيد. در هر دو روش ركوردهايي كه تحت‌تأثير دامنه فرايند قرار مي‌گيرند، توسط سيستم قفل مي‌گردند و براي ديگر كاربران نيز غيرقابل استفاده مي‌شوند و در نتيجه باعث كاهش سرعت كار آن‌ها به دليل ايجاد انتظار براي آزاد شدن ركوردها مي‌شود.
 
بنابراين براي رسيدن به حداكثر كارايي سيستم، بايد از ايجاد قفل‌هاي بي‌مورد بر روي ركوردهاي جداول بانك اطلاعاتي جلوگيري كرد. اين كار با استفاده از دستور SET Transaction Isolation Level Read Uncommitted براي فرايندهاي صريح (قبل از شروع فرايند، يعني قبل از دستور (begin Trans  و يا استفاده از دستور WITH NOLOCK  براي فرايندهاي ضمني (پس از قسمت From هر دستور SQL) قابل انجام است. در مورد مسئله فرايندها و انواع قفل‌گذاري مطالب خواندني زيادي در سايت مايكروسافت وجود دارد كه درصورت تمايل مي‌توانيد به آن‌ها نيز مراجعه كنيد.

13 - روال‌هاي ذخيره شده (stored Procedures) پس از هر اجرا، به ازاي هر دستورالعملي كه اجرا مي‌كنند،  جهت اطلاع برنامه فراخوان (كلاينت) از موفقيت‌آميز بودن اجراي آن دستور SQL، پيغامي را به سمت آن برنامه مي‌فرستند. اين مسئله باعث افزايش ترافيك شبكه در اثر فرستادن مداوم پيغام ازSP به سمت كاربر مي‌شود. با تايپ دستور زير در ابتداي يكSP، مي‌توانيد آن را از انجام اين كار منع كنيد:
SET NOCOUNT ON

نتيجه‌گيري‌
مطالب فوق تنها قسمتي از راهكارهاي قابل انجام براي رسيدن به‌سرعت و بازدهي مناسب در بانك‌هاي اطلا‌عاتي مبتني بر SQL Server است. در ضمن‌ بايد اين نكته را هم درنظر داشت كه اصولا‌ً در سيستم‌هاي بزرگ اطلا‌عاتي تحت شبكه، توپولوژي و نوع اجزاي موجود در شبكه از اهميت بسيار زيادي در تعيين سطح كارايي يك بانك اطلا‌عاتي برخورداراست. گاهي حتي در حالي‌كه بهترين طراحي و پيكربندي SQL Server براي يك بانك اطلا‌عاتي انجام شده، يك اشتباه كوچك در سطح شبكه مي‌تواند تمام زحمات را بر ‌باد دهد يا مثلا‌ً يك سهل‌انگاري در نوشتن روال‌هاي ذخيره شده يا تريگرها مي‌تواند سيستم را به‌يك لوپ (Loop) پردازشي بي‌نهايت ببرد و باعث افت شديد سرعت اجراي برنامه‌ها شود. بنابراين در اين‌گونه سيستم‌ها، استفاده بجا و مناسب از منابع سيستم و شبكه و دقت در طراحي و پياده‌سازي جداول، ديدها، روال‌هاي ذخيره‌شده و تريگرها بسيار مهم  و حياتي است.

مهيار داعي‌الحق
ماهنامه شبکه - آذر ۱۳۸۴ شماره 60

مديريت پايگاه داده‌ها در SQL Server - بسته‌هايDTS

اشاره :
در ادامه مباحث مربوط به مديريت پايگاه‌هاي اطلاعاتي، در آخرين قسمت اين مجموعه، يكي از ابزارهاي جالب قابل استفاده در SQL Server را كه امكان نقل و انتقال اطلاعات و يا پردازش آن‌ها را به‌صورت دستي يا اتوماتيك و در قالب يك يا چند عمل مجزا و در عين حال مرتبط با يكديگر فراهم مي‌آورد، مورد بررسي قرار مي‌دهيم. اين ابزار كه سرويس انتقال اطلاعات (Data Transformation service) نام دارد شامل سه قسمت مختلف بوده كه مهمترين آن بسته‌هاي (DTS (DTS Packages است.

 


DTS چيست؟
DTS يك ابزار  با واسط گرافيكي كاربر جهت انتقال اطلاعات موردنياز از يك محل به محل ديگر است. با استفاده از اين  ابزار مي‌توان يك سري از اطلاعات موجود در سيستم را با استفاده از روش‌هاي عادي كاري پايگاه داده مانند دستور SELECT انتخاب كرده و به يك يا چند مقصد مختلف فرستاد. ويژگي ديگر اين نوع انتقال اطلاعات اين است كه مي‌توان آن را با استفاده از روش‌هاي مخصوص، زمانبندي (schedule) كرده تا به صورت اتوماتيك انجام شود. ويژگي سوم آن اين است كه علاوه برامكان استفاده از زبان SQL  براي استخراج اطلاعات يا پردازش قبل از انتقال آن، مي‌توان با استفاده از امكانات ديگري  پردازش و انتقال اطلاعات را انجام داد. البته واژه DTS در كل به يك سري ابزارها و سرويس‌هاي مختلف اطلاق مي‌شود كه مهمترين ابزار يا قسمت آن همان
 بسته‌هاي ( DTS (PACKAGE DTS بوده كه كار مهم انتقال و پردازش زمانبندي شده اطلاعات را انجام مي‌دهد.

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

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

1- Importing / Exporting 
اين نوع Task قادر است اطلاعات را از جايي مثل يك جدول بانك اطلاعاتي SQL Server يا هر نوع ديگر مثل اكسس و يا يك فايل ساده  Text بخواند و آن را در يك جدول بانك اطلاعاتي SQL Server وارد (Import) كند. همچنين اين Task مي‌تواند عكس اين عمل را انجام دهد. يعني اطلاعات يك جدول بانك اطلاعاتي يا قسمتي از آن اطلاعات را به فرمت اكسس، اكسل يا فايل متني (Text) درآورد (Export) و آن را در مقصد موردنظر قرار دهد.

2- Transform 
با استفاده از اين نوع Task مي‌توان با نوشتن يك دستورالعملSELECT نتيجه حاصل از عمل پرس‌وجو برروي يك يا چند جدول بانك اطلاعاتي مبدا را به يك جدول موجود در بانك اطلاعاتي مقصد انتقال داد. در اين روش بانك اطلاعاتي مبدا و مقصد مي‌توانند جدا از هم و يا يكسان باشند.

3- Copy 
اين نوع Task مي‌تواند هر موجوديتي در يك بانك اطلاعاتي مثل ديدها (view)، ايندكس‌ها، لاگ‌ها، روتين و توابع، تريگرها و هر چيزي را به يك بانك اطلاعاتي ديگر منتقل كند.

4- Send/Receive Message
با اين نوعTask  مي‌توان بين بسته‌هاي مختلف DTS موجود در سيستم ارتباط برقرار كرده و بين آن‌ها پيغام رد و بدل كرد. همچنين با استفاده از آن مي‌توان يك بسته را در داخل يك بسته ديگر فراخواني يا اجرا كرد. به‌علاوه اين‌كه اين نوع Task امكان ارسال Email را هم دارد.

5- Execute 
با استفاده از اين نوع Task مي‌توان يك سري دستورالعمل SQL يا حتي اسكريپت‌هاي ActiveX و يا فايل‌هاي Exe   را اجرا كرد.

Taskهاي از پيش تعريف شده در SQL Server عبارتند از:

1-FTP : جهت دريافت يك يا چند فايل از يك سرور FTP به داخل بسته DTS  

2- ActiveX Script: براي استفاده از قابليت‌هاي زبان‌هاي اسكريپتي مثل ويژوال بيسيك يا جاوا در يك پردازش ‌خاص.

3- Transform Data: جهت انتقال اطلاعات بين دو منبع اطلاعاتي.

4- Execute Process: جهت اجراي يك فايل Exe 

5- Execute SQL: جهت اجراي يك سري دستورات SQL 

6- Data Driven Query: براي ايجاد يك منبع انتقال اطلاعات با استفاده از دستورSELECT 

7- Copy Object: اينTask مي‌تواند كليه موجوديت‌هاي يك بانك اطلاعاتي را به بانك اطلاعاتي ديگر منتقل كند.

8- Send Mail: جهت ارسال ايميل به يك مقصد مشخص

9- Bulk Insert: جهت ورود (Import) اطلاعات از يك فايل به يك جدول بانك اطلاعاتي

10- Execute Package: با استفاده از اين Task مي‌توان يك بسته DTS ديگر را در داخل بسته DTS جاري لود و اجرا كرد.

11- Message Queve II: براي استفاده از امكانات پيغام‌دهي سرويس MSMQ ويندوز 2000 يا 2003 براي مبادله پيغام بين برنامه‌ها و  ايستگاه‌هاي مختلف

12- Transfer Error Massages: براي انتقال پيغام‌هاي خطاي موجود در جدول سيستمي sysmessages از يك بانك اطلاعاتي به بانك ديگر

13- Transfer DataBase: براي انتقال كل بدنه يك بانك اطلاعاتي با تمام محتوا، ساختار و اطلاعاتش از يك سرور به سرور ديگر.

ارتباط DTS  
مبدا و مقصد داده‌هاي منتقل شده توسط Task‌ها، مي‌توانند از انواع فايل‌هاي مختلف انتخاب شوند. كليه منابع اطلاعاتي كه از OLEDB و يا ODBC پشتيباني كنند مانند اوراكل، كليه فرمت‌ها برنامه‌هاي مشهوري كه در ذخيره و پردازش اطلاعات كاربرد زيادي دارند مثل اكسل، فاكس‌پرو، پاراداكس، اكسس و امثال آن، فايل‌هاي متني و همچنين كليه منابع اطلاعاتي كه ساختاري به غير از بانك‌هاي رابطه‌اي دارند مثل Exchange Server و بسياري برنامه‌هاي ديگر، مي‌توانند از جمله اين موارد باشند و در ساختن يك بسته DTS به عنوان مبدا يا مقصد به‌كار روند.

 

شكل 1

شكل 2

شكل 3

شكل 4

شكل 5

DTS Work Flow
مراحل زماني و توالي اجراي قسمت‌هاي مختلف يك بسته DTS را جريان كاري DTS مي‌نامند. در واقع با استفاده از اين جريان‌هاي كاري مي‌توان مشخص كرد كه كدام Task بايد زودتر اجرا شود و يا اين‌كه اجراي يك Task پيش نياز اجرا شدن چه Task (هاي) ديگري است. بدين‌وسيله اجرا شدن هر Task نسبت به Task ديگري داراي اولويت كمتر، بيشتر و يا حتي برابر مي‌تواند باشد. بدين‌معني كه در برخي اوقات يك Task بايد تا اتمام موفقيت‌آميز يك Task  ديگر صبر كند.

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

در SQL Server سه نوع جريان كاري مختلف وجود دارد كه به نام‌هاي on completion ،on success ،on failure  عبور از يك Task به Task ديگر را به ترتيب در صورت اتمام پردازش، پردازش موفقيت‌آميز و پردازش غيرموفق Task  مبدا، انجام مي‌دهند.

به عنوان مثال: فرض كنيد در يك سيستم اطلاعاتي توزيع شده (Distributed) به‌صورت منظم و روزانه و در يك ساعت خاص بايد به يك سايت FTP متصل شده، يك فايل با نام  Imp.txt را كه هر روز در سايت مذكور روزآمد update مي‌شود را دريافت كرده، و آن را در جدول customers از پايگاه داده Northwind قرار دهيم.
 
فرض مي‌كنيم اين فايل متني (Text) شامل ليست مشتريان جديدي است كه روزانه به سيستم فروش ما اضافه مي‌شود. بنابراين پس از قرار دادن مشتريان جديد در جدول مذكور بايد يك دستور SQL را اجرا كنيم تا براي مشتريان تازه وارد شده در جدول customers يك حساب تفضيلي در جدول Accounts ايجاد كند.
 
از قرار معلوم در اين مثال به يك DTS Connection جهت دسترسي به پايگاه داده Northwind، يك Task از نوع FTP ، يك Task ديگر از نوع  Bulk Insert و  نهايتاً يك Task از جنس Execute SQL نيازمنديم. به همين منظور بر روي زبانه Data Transformation Services در Enterprise Manager كليك كرده  سپس بر روي آيتم Local Package كليك سمت راست مي‌كنيم و دستور New Package را انتخاب مي‌كنيم تا پنجره ويژه طراحي بسته‌هاي DTS باز شود. ابتدا يك Connection از جنس OLEDB را بر روي صفحه قرار داده و آن را به پايگاه داده Northwind متصل مي‌كنيم. (شكل 1)‌

سپس از داخل ليست وظايف (Tasks)، يك شي از جنس FTP را برروي صفحه قرار داده و آدرس سايت موردنظر و مكان قرارگيري فايل دانلود شده را در محل Directory Path مشخص مي‌كنيم، سپس به زبانه Files رفته و فايل يا فايل‌هايي را كه قرار است دانلود شوند مشخص مي‌نماييم كه در اين مثال يك فايل متني با نام New Customer.txtرا كه حاوي اطلاعات مشتريان جديد است انتخاب مي‌كنيم. (شكل2)‌

در مرحله بعد يك شي از جنس BULK Insert را برروي صفحه طراحي قرار داده و قسمت‌هاي Connection ،Table و Data file آن را به ترتيب با اتصال پايگاه ساخته شده، جدول مشتريان و مقصد فايل دانلود شدني توسط FTP را پر مي‌كنيم. (شكل 3)

در آخرين مرحله ايجاد اشياء، اكنون نوبت به ايجاد يك شي Execute SQL جهت اجراي تابع از پيش ساخته شده است كه براي كليه مشتريان جديد جدول customers يك حساب در جدول Accounts باز مي‌كند. اين شي را بر روي صفحه قرار داده و دستور SQL موردنظر را در محل SQL statement وارد مي‌كنيم. (شكل 4)

پس از ايجاد تمام اشياء موردنياز، اكنون نوبت به ايجاد جريان‌هاي كاري لازم (WorkFlows) بين آن‌ها مي‌رسد. آنچه به نظر مي‌رسد اين است كه ابتدا يك جريان كاري بين دو موجوديت FTP و BULK Insert ايجاد كنيم. از آنجا كه اين جريان كاري بايد فقط در صورت موفقيت‌آميز بودن عمليات دريافت فايل توسط شي FTP منتقل شود، بنابراين براي ايجاد جريان كاري مذكور، با استفاده از حركت ماوس هر دو شي مذكور را انتخاب كرده و سپس از منوي WorkFlow  دستور on success را انتخاب مي‌كنيم. همين عمل را براي دو شي Bulk Insert و Execute SQL هم انجام مي‌دهيم. (شكل 5)
 
اكنون بسته DTS آماده اجرا است. اين بسته مي‌تواند هم به صورت دستي و از همين محل طراحي تست يا اجرا شود و هم مي‌تواند براي اجرا در مقاطع زماني خاص (مثلاً روزي يك بار) در ساعت مخصوص زمانبندي (schedule)  شود تا به صورت خودكار و در زمان موردنياز اجرا گردد. بدين‌منظور، پس از ساختن و ذخيره كردن بسته DTS مذكور، از محيط طراحي DTS خارج شده و برروي نام بسته موردنظر كليك سمت راست مي‌كنيم و دستور Schedule Package را انتخاب مي‌نماييم. در اينجا مي‌توانيم زمان و توالي اجراي اتوماتيك بسته DTS ساخته شده را تعريف كنيم.

مهيار داعي‌الحق
ماهنامه شبکه - اسفند ۱۳۸۳ شماره 52

مهاجرت به MySQL

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

 


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

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

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

با اين‌حال اكنون وضع به گونه ديگري است. تغييراتي كه در نسخه‌هاي جديد ‌‌MySQL داده شده، اين موتور پايگاه داده‌اي را در معرض رقابت جديدي با بانك‌هاي اطلاعاتي سرشناسي چون اوراكل و ‌‌SQLServer قرار داده است. بنابراين براي بسياري از شركت‌هايي كه قصد اختصاص هزينه‌هاي كمتري براي برخورداري از يك سيستم بانك‌اطلاعاتي را دارند، ‌MySQL يك آلترناتيو ايدهآل به حساب مي‌آيد. غير از هزينه‌‌هاي مربوط به مالكيت (TCO) كه پايين بودن آن يكي از نقاط‌قوت ‌MySQL قلمداد مي‌شود، عامل مهم ديگري وجود دارد كه همان خدمات پشتيباني است. اين عامل كه همواره از عوامل بسيار با اهميت در حوزه‌هاي مختلف ‌IT است، تا چند سال قبل با علامت سوال بزرگي درباره برخي محصولات اپن سورس مثل ‌MySQL همراه بود.
 
نامشخص بودن متولي رسمي در قالب يك شركت مطرح و همچنين تعدد توزيع و نسخه‌هاي مختلف، همواره يكي از نقاط‌ضعف برخي نرم‌افزارهاي سورس باز بوده است. اما در مورد ‌MySQL و به‌ويژه در سال‌هاي اخير كه پس از انجمن‌هايي چون ‌MySQL AB، شركت‌هاي مطرحي مثل ‌‌SAP به توسعه و پشتيباني نسخه‌هايي از نرم‌افزارهاي مبتني ‌بر ‌‌MySQL پرداختند، اوضاع بسيار قابل اعتمادتر از گذشته شده‌است. افزايش تعداد حاميان ‌MySQL در ميان شركت‌هاي معتبر و شكل‌گيري اجتماعاتي براي حمايت از توسعه‌دهندگان و استفاده‌كنندگان ‌‌MySQL با نام MySQL Community و MySQL NetWork، از عوامل پايدارتر شدن موضع ‌MySQL در برابر ساير رقبا است.

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

‌نگاهي به ‌‌mySQL AB
اصولاً مسئله مهاجرت از يك نرم‌افزار به نرم‌افزار ديگر، پيچيده و مستلزم دقت كافي در نكات فني و مالي است. بدون‌شك هيچ مشتري عاقلي حاضر به خريد يك محصول نرم‌افزاري كه نام يك شركت پشتيباني‌كننده را به همراه نداشته باشد، نيست. حال هرچه اين شركت سرشناس‌تر و محصولش در بازار داراي استفاده كننده بيشتري باشد، اطمينان مشتريان بعدي نيز بالاتر مي‌رود و ناخودآگاه محصول فوق را به عنوان يك انتخاب قوي براي آن‌ها درمي‌آورد. در حال حاضر‌ MySQL NetWork از اين ويژگي برخوردار است. اين اتحاديه تا سال 2005 در بيش از 22 كشور دنيا، بالغ بر هشت ميليون نسخه ‌‌MySQL AB را نصب و پشتيباني كرده‌است و به گفته مسئولان آن، روزانه تقريباً چهل هزار نفر اقدام به دانلود تمام يا قسمتي از محصولات ‌‌MySQL AB مي‌نمايند.
 
اما شركت‌هاي بزرگي كه خواستار ارائه پشتيباني از محصولات باشند نيز مي‌توانند امتياز پشتيباني موسوم به‌MySQL NetWork را خريداري كنند و از مزاياي آن بهره‌مند شوند. هم‌اكنون شركت‌هاي معتبري چون HP، ناول، دل و ديگران نيز از عاملا‌ن فروش امتياز پشتيباني ‌‌MySQL Network هستند و بسياري از شركت‌ها يا سازمان‌هاي بزرگ نظير ياهو، گوگل، ناسا، سايت آمازون و ... نيز از مشتريان اين امتياز پشتيباني به شمار مي‌آيند. به گفته دان آگرونو، مدير فني سايت هواشناسي ‌Weather.com (يكي از ده سايت اينترنتي بزرگ جهان)، استفاده از يك سيستم عامل لينوكس، پردازنده اينتل و بانك ‌MySQL به جاي سرور سولاريسي در اين سايت باعث كاهش يك سوم هزينه‌هاي نگهداري و افزايش سي‌درصدي كارايي و حجم پردازش شده است.

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

بنابراين مشتري در زمان استفاده از ‌‌MySQL نبايد نگران هزينه احتمالي براي ارتقاي سخت‌افزار خود يا افزايش تعداد سرورها، پردازنده‌ها، يا هارديسك‌ها باشد. چراكه‌ MySQL مي‌تواند تا حدود قابل توجهي اين نياز را جبران نمايد. وجود انواع موتورهاي ذخيره‌سازي ‌(‌Store Engin در ‌MySQL) كه شيوه ذخيره‌سازي اطلاعات را براي كاربردهاي گوناگون تعريف مي‌نمايند، از جمله ابزارهاي مهم در مقبول بودن سرعت سيستم به حساب ميآيند. دو موتور ذخيره‌سازي مشهور به نام ‌‌InnODB براي كاربردهاي OLTP و موتور ISAM براي كاربردهاي OLAp به علاوه چندين موتور ذخيره‌سازي ديگر براي  ساير كاربردها دستيابي به اين هدف را آسان‌تر نموده‌اند. ابزارهاي ديگري چون سيستم ايندكس‌گذاري روي متون ‌(Text Indexing)، سيستم تنظيم‌كننده و پيكربندي حافظه‌ ‌Cache مورداستفاده موتور MySQL، و برنامه‌هاي بهينه‌ساز كارايي سيستم ‌(‌Optimizer) نيز از جمله ابزارهاي موجود در اين بانك اطلاعاتي هستند.

جدول 1


حتي بسياري از كارشناسان بر اين باورند كه در هنگام الزام به استفاده از تعداد سرورهاي بيشتر نيز ‌‌MySQL داراي مزيت بزرگ است؛ زيرا هم از افزايش تعداد سرورهاي بانك اطلاعات در هر دو شكل آن يعني هم به صورت اشتراك داده و هم به صورت خوشه‌بندي به خوبي پشتيباني مي‌كند و هم خريد مجوز آن براي افزايش و استفاده روي سرورهاي جديد بسيار مقرون به صرفه‌تر از ساير بانك‌هاي اطلاعاتي موجود چون اوراكل يا ‌SQLServer است. جدول 1 نسبت هزينه به كارايي‌‌(علا‌مت $‌US به معناي واحد هزينه به دلار و ‌TOPS يعني تعداد عمليات قابل اجرا در واحد ثانيه است) را براي چند پايگاه داده مختلف نشان مي‌دهد. در اين جدول عدد كمتر نشان‌دهنده هزينه كمتر و كارايي بيشتر است.

مهيار داعي‌الحق
ماهنامه شبکه - خرداد ۱۳۸۵ شماره 65

ابزارهاي ويژوال‌ در MySQL

 

اشاره :

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

 


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

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

از اين رو بانك‌اطلاعاتي MySQL كه قاعدتاً با توجه به پيشرفت‌هاي روز به‌روز و شگفت‌انگيز محيط‌هاي گرافيكي همزاد خود يعني لينوكس، راهي جز پيوستن به خط‌مشي مذكور را نمي‌ديد، از نسخه 4 و به خصوص نسخه 5 شاهد دگرگوني بسيار شگرفي در ارائه ابزارهاي گرافيكي مديريت، توسعه و عيب‌يابي بانك‌هاي اطلاعاتي شد. اين ابزارهاي گرافيكي همچون خود هسته MySQL به‌صورت منبع‌باز و در دو قالب برنامه قابل نصب و سورس‌كد قابل كامپايل از سايت mysql.com به‌صورت رايگان براي انواع سكوها چون ويندوز، لينوكس و مكينتاش قابل دسترس هستند.

شكل 1

مديريت سيستم و MySQL Administrator 
از اين برنامه براي انجام‌دادن عمليات مديريتي  و پيكربندي MySQL استفاده مي‌شود. ويرايش كنوني اين ابزار مديريتي داراي يازده قسمت مختلف است كه هركدام وظيفه خاصي را به عهده دارند (شكل 1) كه برخي از آن‌ها عبارتند از:

Ÿ‌‌Server Information 
در اين قسمت مشخصات سرور ارائه ‌دهنده سرويس‌هاي MySQL مثل نام كامپيوتر، آدرسIP، سيستم عامل، پردازنده و امثال آن براي مدير سيستم نمايش داده مي‌شود.

Ÿ‌Server Control 
در اين پنجره امكان شروع يا توقف سرويس MySQL و كنترل آن وجود دارد. در واقع اين قسمت همان كاري را انجام مي‌دهد كه مركز كنترل سرويس در سيستم عامل به عهده دارد.

Ÿ‌Startup Parameters 
شايد مهم‌ترين و به بياني، مديريتي‌ترين بخش ابزار مذكور، قسمت مربوط به تنظيم پارامترهاي پيكربندي موتورMySQL است. براي كار با اين پنجره تسلط به مفاهيم پايگاه‌هاي داده‌اي و همچنين واژه‌ها و تكنيك‌هاي مديريتيMySQL بسيار ضروري است. در واقع اين زير برنامه از تنظيمات شبكه‌اي چون پورت TCP/IP گرفته تا تنظيمات امنيتي موتور MySQL را انجام مي‌دهد. به‌علا‌وه، تمام پارامترها و تنظيمات مربوط به دو موتور ذخيره‌سازي مشهور يعني MyISAM و InnoDB به‌خصوص تنظيمات مربوط به بافرهاي آن‌ها نيز دراين جا تعريف مي‌شوند.

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

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

Ÿ‌Server Connentions 
در اين پانل، اطلاعاتي درمورد كاربران در حال اتصال و كار با بانك‌هاي اطلاعاتي مثل نام كاربر، كامپيوتر در حال استفاده، بانك اطلاعاتي مورد استفاده، نوع كار در حال انجام و ... نمايش داده شده و امكان توقف پردازش‌هاي در حال انجام توسط كاربر به وسيله مكانيسم Kill Process براي مدير بانك اطلاعاتي فراهم گشته است.

Ÿ‌Health 
نمايي از وضعيت فعلي سيستم مثل ميزان استفاده از پردازنده، حافظه، ترافيك داده‌اي در شبكه و خلاصه‌اي از وضعيت فعلي پارامترهاي اوليه‌اي كه در قسمت Startup Variables توسط مدير سيستم تنظيم شده بود و ساير موارد مربوط به كارايي و موقعيت پردازشي سرور در اين قسمت قابل مشاهده است.

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

مديريت بانك اطلاعاتي و Query Browser 
Query Browser عنوان يك ابزار گرافيكي توانمند براي كار با موجوديت‌هاي درون يك بانك اطلاعاتي است. در واقع با اين ابزار مي‌توان يك بانك‌اطلاعاتي يا همان به اصطلاح Schema را ساخت و موجوديت‌هاي درون آن اعم از جداول، ديدها، روال‌ها و توابع را تعريف كرد. در سمت راست پانل اين ابزار پنجره‌اي به نام Schemata وجود دارد كه محل تعريف و مشاهده بانك‌هاي اطلاعاتي و موجوديت‌هاي درون آن‌هاست. در اين پنجره كاربر قادر خواهد بود با يك راست‌كليك‌ ساده و انتخاب New Schema پايگاه داده جديد خود را تعريف كند و سپس به همين روش به تعريف ساختار دروني آن بپردازد.

شكل 2

براي اين كار كافي است با راستكليك روي نام بانك ايجاد شده، گزينه ‌New Table را انتخاب كنيد. پس از آن پنجره‌اي نمايش داده مي‌شود كه تمام امكانات ساده و پيشرفته‌ براي تعريف يك جدول (ستون‌ها) در آن مشاهده مي‌شود. اين پنجره درعين سادگي، امكان تعريف فيلدهاي يك جدول را به آساني فراهم مي‌كند.

به‌علا‌وه، بخش‌هايي براي انجام‌دادن امور پيشرفته‌اي چون ايندكس‌گذاري روي جدول و انتخاب ايندكس (از بين سه نوع Btree ،Hash ،(Rtree يا حتي انتخاب نوع موتور ذخيره‌سازي مورد استفاده براي كار با داده‌هاي اين جدول در حال ساخت (از بين هفت موتور ذخيره‌سازي مشهور چون ISAM ،InnoDB ،MyISAM ،Memory ،Merge ،NDB ،BDB) و ساير تكنيك‌هاي پيشرفته را نيز دارد.

در سمت چپ اين ابزار نيز محل نوشتن دستورات SQL براي كار با داده‌هاي موجود در جداول بانك اطلاعاتي يا درهنگام ساخت ساير موجوديت‌ها مثل ديدها، روال‌ها و توابع مشاهده مي‌شود. (شكل 2)

شكل 3

مهاجرت و Migration ToolKit
 
با اين همه، مهم‌ترين واژه دنياي پلتفرم‌هاي نرم‌افزاري كه اتفاقا ًMySQL سرمايه‌گذاري و سروصداي زيادي روي آن به راه انداخته، مسئله مهاجرت است.
 
با ابزار Migration Toolkit، يك توسعه‌‌دهنده يا مدير سيستم مي‌تواند بانك اطلاعاتي موجود خود را از يك پلتفرم يا موتور پايگاه داده‌اي ديگر مثل اوراكل، اكسس يا SQLServer به MySQL  انتقال دهد.

اين ابزار با استفاده از فناوري جاوا و توابع موجود در محيط يا پلتفرم اجرايي جاوا (jRE) قادر است بانك‌هاي اطلاعاتي موجود در هر پايگاه داده‌اي را كه از jDBC براي اتصال به آن پشتيباني مي‌كند، به MySQL منتقل كند.
 
در قدم اول مدير سيستم، مبدا و مقصد مهاجرت يك بانك اطلاعاتي را مشخص مي‌كند. آن‌گاه فهرستي از موجوديت‌هاي داخل بانك مبدا نمايان مي‌شود و او مي‌تواند جداول، ديدها و هر چيزي را كه مايل به انتقال به MySQL است، انتخاب كند. با اين كار، ابزار مهاجرت، اسكريپت‌هاي DDL براي ساخت اين موجوديت‌ها در مقصد را آماده مي‌كند. در قدم بعد، يك بانك اطلاعاتي در سرور MySQL (مقصد) ساخته شده و اسكريپت‌هاي DDL در آن‌جا اجرا مي‌شوند. بدين ترتيب يك ساختار مشابه بانك اطلاعاتي مبدا، در سرور MySQL مقصد ساخته شده و درنهايت با يك عمل انتقال داده يا به اصطلاح يك كپي گروهي (Bulk Copy) كليه داده‌هاي موجود در جداول به بانك اطلاعاتي مقصد كپي مي‌شود. (شكل 3)

شكل 4

طراحي بانك اطلاعاتي و MySQL Workbench
 
ميزكار MySQL عنوان برنامه‌اي جديد است كه به وسيله آن مي‌توان جداول و ديدهاي يك بانك اطلاعاتي را طراحي كرد و روابط بين جداول را به‌صورت گرافيكي تعريف نمود.

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

ميزكار MySQL را در واقع مي‌توان هم نوعي برنامه طراحي بانك به حساب آورد و هم نوعي Query Browser  گرافيكي‌تر دانست كه مي‌تواند عملكرد اين برنامه را شفاف‌تر و آسان‌تر نمايد. ضمن اين‌كه مستندات (Document) مناسبي را نيز براي استفاده تحليلگران، برنامه‌نويسان و مديران سيستم پديد آورد. (شكل 4)

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

مهيار داعي‌الحق
ماهنامه شبکه - تير ۱۳۸۵ شماره 66

فیبر نوری


 تاریخچه

بعد از اختراع لیزر در سال 1960 میلادی، ایده بکارگیری فیبر نوری برای انتقال اطلاعات شکل گرفت .خبر ساخت اولین فیبر نوری در سال 1966 همزمان در انگلیس و فرانسه با تضعیفی برابر با اعلام شد که عملا درانتقال اطلاعات مخابراتی قابل استفاده نبود تا اینکه در سال 1976 با کوشش فراوان محققین تلفات فیبر نوری تولیدی شدیدا کاهش داده شد و به مقدار رسید که قابل ملاحظه با سیم های کوکسیکال مورد استفاده در شبکه مخابرات بود.

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

چگونگی
می دانیم هر گاه نور از محیط اول به محیط دوم که غلیظتر است وارد شود دچار شکست میشود.واگر نور از محیط غلیظ با بیش از زاویه حد به سطح آن برخورد کندسطح ماده همانند یک آینه تخت عمل می کند و نور بازتابش می کند.

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

فیبرهای نوری نسل سوم
طراحان فیبرهای نسل سوم ، فیبرهایی را مد نظر داشتند که دارای حداقل تلفات و پاشندگی باشند. برای دستیابی به این نوع فیبرها، محققین از حداقل تلفات در طول موج 55/1 میکرون و از حداقل پاشندگی در طول موج 3/1 میکرون بهره جستند و فیبری را طراحی کردند که دارای ساختار نسبتا پیچیده تری بود. در عمل با تغییراتی در پروفایل ضریب شکست فیبرهای تک مد از نسل دوم ، که حداقل پاشندگی ان در محدوده 3/1 میکرون قرار داشت ، به محدوده 55/1 میکرون انتقال داده شد و بدین ترتیب فیبر نوری با ماهیت متفاوتی موسوم به فیبر دی.اس.اف ساخته شد.

نکته قابل ذکر این است که مشخصات یک محیط (ماده) را با پنج عامل &(سیکما)،
u(میو)، 'u(میو پریم)،E(اپسیلن)و'E(اپسیلن پریم) تعریف میکنند.حال فیبر نوری را با یک Eی یعنی از جنسی می سازند تا نور با هر زاویه ای هم که به سطح مقطع آن برخورد کرد از آن خارج نشود و در طول فیبر حرکت کند.فرایند انتقال سیگنال بدین صورت است که یک سیگنال را توسط چند عمل مدولاسیون به فرکانس ۶۴kHzمی رسانند سپس توسط لیزر آن را به فرکانس نور تبدیل و به داخل فیبر می تابانند.چون فر کانس نور در حد گیگابایت است یک پهنای باند فوق العاده زیاد برای انتقال سیگنال در اختیار ما قرار می دهد وهمچنین با مالتی پلکس کردن سیگنالها میتوان ۱۹۲۰ کانال را همزمان از داخل فیبر عبور داد.این خاصیت باعث شده تا ارتباط بین دو مرکز مخابرات تنها با یک رشته فیبر بر قرار شود.اتلاف توان سیگنال در ۱ کیلومتر از فیبر نوری در فرکانس ۴۰۰ گیگا هرتز ۱۰dB است در مقایسه با کابل هم محور به قطر ۱ سانتی متر که در فرکانس ۱۰۰ کیلو هرتز ،۱dBو در فرکانس ۳مگاهرتز dB ۱/ ۵ اتلاف دارد .این اتلاف کم کم فیبرها باعث شده تا در میان راه ازrepeater کمتری استفاده شود و از هزینه ها کاسته شود.همچنین ارزان بودن فیبر وخواصی همچون ضد آب بودن آن باعث شده تا از فیبر روز به روز به طور گسترده تری استفاده شود.تنها ایرادی که به فیبر وارد است اینست که به راحتی سیمها نمیتوان آنها را پیچ وخم داد زیرا زاویه تابش نور در داخل آن تغییر میکند و باعث می شود نور از سطح آن خارج شودو اینکه اتصال دو رشته فیبر نیز احتیاج به دقت ولوازم خاص خود را دارد.

انواع فیبر نوری:

1 -(
single mode fibersmf:قطر هسته ۹ میکرون و طول موج ۳/۱ میکرومتر:
 
2 -(
multi mode fibermmf:خود بر دو نوع است:
 
الف:
multi mode stop index:زاویه شکست در سراسر کابل یکسان است ودارای پهنای باند ۲۰ تا ۳۰ مگاهرتز است.

ب:
multi mode graded index:سرعت انتشار نور در این کابل در جایی که شکست نور تحت زاویه کمتری صورت می گیرد نسبت به جایی که تحت زاویه بزرگتری صورت می گیرد،بیشتر است.پهنای باند آن ۱۰۰مگا هرتز تا ۱ گیگا هرتز است.

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

روشهای ساخت پیش سازه
روش های فرایند فاز بخار برای ساخت پیش سازه فیبرنوری را می توان به سه دسته تقسیم کرد :
- رسوب دهی داخلی در فاز بخار
- رسوب دهی بیرونی در فاز بخار
- رسوب دهی محوری در فاز بخار


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

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

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

مزایای فیبر نوری
1- انتقال اطلاعات در فیبر نوری بسیار بالا و در حد سرعت نور می باشد
2- فیبر های نوری از عوامل طبیعی کمتر تاثیر می پذیرند بدین صورت که میدان های مغناطیسی و یا الکتریکی شدید بر آن هیچ تاثیری نمی گذارد
3- به دلیل عدم تاثیر پذیری عواملی چون میدان های مغناطیسی می توان آن را در کنار کابلهای فشار قوی استفاده کرد
4- تولید آن مقرون به صرفه است به طوری که حتی از کابلهای مسی که هم اکنون برای انتقال اطلاعات استفاده می شود مقرون به صرفه تر می باشد
5- به دلیل تضعیف بسیار کم شعاع نوری در فیبر نوری نیار به تقویت کننده های بین راهی در مسافت های طولانی بسیار کمتر از کابلهای کواکسیال می باشد

معایب فیبر نوری
1- از فیبر نوری فقط می توان برای انتقال اطلاعات آن هم به صورت شعاع های نوری استفاده کرد و نمی توان برای انتقال الکتریسیته استفاده نمود
2- اتصال دو فیبر نوری به یکدیگر بسیار مشکل و وقت گیر می باشد و نیاز به دانش فنی خاص خود را دارد
3- نمی توان چند شعاع نوری را به طور همزمان انتقال داد

 

  با سپاس از آقای بازقندی

RADIUS  و IAS



 

 
ارائه دهندگان سرويس اينترنت ( ISPs ) و ساير شركت های بزرگ همواره با اين چالش جدی مواجه هستند كه چگونه انواع دستيابی به شبكه و  accounting را از يك نقطه ‌صرفنظر از نوع تجهيزات استفاده شده برای دستيابی به شبكه ، مديريت نمايند .
با اين كه برخی سيستم های عامل دارای امكانات خاصی در اين رابطه می باشند ، در اغلب شركت های بزرگ می بايست از يك زيرساخت اختصاصی برای تائيد و مديريت دستيابی به شبكه استفاده گردد .
پروتكل RADIUS ( برگرفته شده از  Remote Authentication Dial-In User Service   ) ، استانداردی برای طراحی و پياده سازی سرويس دهندگانی است كه مسئوليت تائيد و مديريت كاربران را برعهده خواهند گرفت.مشخصات و نحوه عملكرد پروتكل RADIUS  در  RFC 2865 و RFC 2866 تعريف شده است .
پروتكل RADIUS از يك معماری سرويس گيرنده - سرويس دهنده برای تائيد و accounting استفاده می نمايد . پروتكل فوق اطلاعات accounting ، پيكربندی ، تائيد و  مجوزها را بين يك سرويس گيرنده RADIUS و يك سرويس دهنده RADIUS  حمل می نمايد . سرويس گيرنده RADIUS می تواند يك سرويس دهنده دستيابی شبكه ( NAS ، برگرفته شده از network access server ) و يا هر نوع دستگاه مشابه ديگری باشد كه نيازمند تائيد  و accounting است .
همانگونه كه اشاره گرديد NAS به عنوان يك سرويس گيرنده RADIUS عمل می نمايد . سرويس گيرنده مسئول ارسال اطلاعات كاربر  برای سرويس دهنده RADIUS است تا بر اساس نتايج برگردانده شده توسط سرويس دهنده ، در خصوص كاربر تعيين تكليف گردد . سرويس دهندگان RADIUS مسئول دريافت درخواست ارتباط كاربر ، تائيد وی و ارسال اطلاعات پيكربندی مورد نياز برای سرويس گيرنده به منظور عرضه سرويس به كاربر می باشند . يك سرويس دهنده RADIUS می تواند به عنوان يك سرويس گيرنده پراكسی به ساير سرويس دهندگان RADIUS و يا ساير سرويس دهندگان تائيد نيز عمل نمايد . 
سرويس گيرندگان RADIUS از طريق پورت های 1812 و 1813 پروتكل حمل UDP ( برگرفته شده از User Datagram Protocol ) با يك سرويس دهنده RADIUS ارتباط برقرار می نمايند . در نسخه های اوليه پروتكل RADIUS از پورت های 1646 و 1645 پروتكل UDP  استفاده می گرديد . پروتكل RADIUS از پروتكل حمل TCP ( برگرفته شده از  Transmission Control Protocol ) حمايت نمی نمايد .

RADIUS و سرويس دهنده IAS
با استفاده از پروتكل RADIUS  می توان دستگاهی نظير يك NAS را بگونه ای پيكربندی نمود تا يك كاربر را برای‌ استفاده از يك سرويس خاص تائيد نمايد . به عنوان نمونه ، يك ISP می بايست كاربر يك پورت شبكه dial-in  را تائيد نمايد تا اين اطمينان ايجاد گردد كه وی مجاز به استفاده از پورت مورد نظر می باشد . در چنين مواردی لازم است كه NAS اطلاعات مورد نياز برای اين ارتباط را دريافت نمايد . اطلاعات فوق توسط يك سرويس دهنده RADIUS در اختيار وی گذاشته می شود . پس از ايجاد ارتباط ، دستگاه NAS ممكن است در صورت نياز اطلاعات accounting را به منظور اهداف مالی و شارژ كاربر تامين و ارائه نمايد .
شكل 1 نحوه تعامل بين يك سرويس گيرنده RADIUS ( نظير يك دستگاه NAS ) و يك سرويس دهنده RADIUS ( نظير Internet Authentication Service ) را نشان می دهد .  

  
شكل 1 : نحوه ارتباط بين يك سرويس دهنده و سرويس گيرنده RADIUS

به منظور حمايت از معماری های پيچيده تر شبكه ، می توان از يك RADIUS Proxy استفاده نمود كه اطلاعات RADIUS را از يك سرويس گيرنده RADIUS دريافت و  آن را برای يك سرويس دهنده RADIUS رله می نمايد . پاسخ سرويس دهنده RADIUS از طريق RADIUS proxy ارسال می گردد .در چنين مواردی اطلاعات مربوط به تائيد و مجوزها می تواند با استفاده از يك RADIUS proxy  ارسال گردد .
شكل 2 نحوه عملكرد RADIUS proxy را نشان می دهد .


شكل 2 : نحوه عملكرد RADIUS proxy

در ويندوز 2003 ( نسخه های سرويس دهنده ) ، IAS ( برگرفته شده از  Internet Authentication Service ) مطابق استاندارد تعريف شده در  RFC 2865 و RFC 2866 به عنوان يك سرويس دهنده RADIUS و پراكسی پياده سازی شده است . در نسخه های سرويس دهنده ويندوز 2000 ، شركت مايكروسافت صرفا" ويژگی سرويس دهنده RADIUS را پياده سازی كرده بود . علاوه بر اين ، در نسخه های سرويس دهنده ويندوز 2003 كه بر روی آنها سرويس RRAS ( برگرفته شده از  Routing and Remote Access service) اجراء شده است را می توان به عنوان يك سرويس گيرنده RADIUS پيكربندی كرد . بدين ترتيب امكان تائيد سرويس گيرندگان dial-in و يا VPN ( برگرفته شده از  Virtual Private Networks ) از طريق يك سرويس دهنده RADIUS فراهم می گردد .
عناصر سرويس دهنده RADIUS در IAS  قادر به تائيد درخواست های سرويس گيرندگان RADIUS از طريق يك بانك اطلاعاتی محلی و يا اكتيو دايركتوری می باشند . IAS جزئيات اطلاعات accounting ارائه شده توسط سرويس گيرنده RADIUS را در يك فايل متن و يا يك بانك اطلاعاتی رابطه ای ذخيره می نمايد . ويژگی RADIUS proxy تعبيه شده در IAS  قادر به ارسال پيام های تائيد و accounting برای ساير سرويس دهندگان RADIUS  می باشد .
پيكربندی IAS را می توان بگونه ای انجام داد كه وی قادر به انجام فرآيند تائيد و عمليات مربوط به accounting باشد . همچنين می توان سرويس گيرندگان RADIUS و يا RADIUS Proxy را به منظور استفاده از سرويس دهندگان اضافی پيكربندی نمود .
IAS امكان دستيابی به اطلاعات accounting كاربران ، نگهداری شده بر روی سرويس دهنده IAS و يا يك كنترل كننده domain  را دارد ( در صورتی كه سرويس دهنده IAS  عضوی از يك domain  باشد ).
تراكنش های دستيابی و accounting بين سرويس گيرنده و سرويس دهنده با استفاده از يك رمز محرمانه به اشتراك گذاشته شده صورت می پذيرد . رمز فوق هرگز بر روی شبكه ارسال نخواهد شد و از آن به همراه فيلد تائيد كننده و به منظور ارائه يك سطح امنيتی مناسب بر روی پيام های RADIUS  استفاده می گردد . در صورت نياز به يك سطح بالاتر امنيتی ، سرويس دهنده و سرويس گيرنده RADIUS می توانند از IPSec برای رمزنگاری پيام  های RADIUS استفاده نمايند ( اين موضوع خارج از حوزه پروتكل RADIUS می باشد ) .

source:www.srco.ir

  VoIP چيست و چگونه كار می كند؟

تهيه شده توسط گروه امنيت اطلاعات مشورت

تاريخ انتشار : 26 شهريور 1384

ناشر : مهندسي شبكه همكاران سيستم

 

مقدمه

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

ممكن است از خود بپرسيد كه اين امر چگونه مي­تواند مفيد واقع شود. خوب، كافي است چند ثانيه راجع به آن فكر كنيد. اگر تبديل سيگنال­هاي آنالوگ به داده­هاي ديجيتال ممكن باشد، VoIP مي­تواند يك ارتباط اينترنت استاندارد را به يك روش مجازاً رايگان براي برقراي ارتباطات تلفني در هر جاي دنيا تبديل ­كند. فقط كافي است هزينه ISP را بپردازيد. اين امر شما را قادر مي­كند كه شركت­هاي تلفني را به­طور كامل كنار بگذاريد.

VoIP قابليت اين را دارد كه روش كار سيستم­هاي تلفني را كاملاً متحول كند. شركت­هاي زيادي هستند كه سرويس VoIP ارئه مي­دهند و پيوسته هم در حال افزايش هستند. 

در حال حاضر شركت­هاي مخابراتي پيشگام در دنيا، پس از وقوف به امكانات بي­پايان اين تكنولوژي جديد، در حال تأسيس مراكز VoIP در سراسر دنيا هستند و فروش سيستم­هاي تلفن VoIP روز­به­روز در حال گسترش است.


 

نحوه برقراري ارتباط

با سيستم­هاي VoIP به يكي از سه روش زير مي­توان ارتباط تلفني برقرار كرد:

  1. ATA(gateway)

ساده­ترين روش برقراري ارتباط VoIP با استفاده از ATA(Analog Telephone Adaptor)ها كه gateway هم ناميده مي­شوند، مي­باشد. اين ابزارها اين امكان را به شما مي­دهند كه از تلفن­هاي آنالوگ استاندارد فعلي­تان استفاده كنيد(اگر هنوز از تلفن­هاي آنالوگ استفاده مي­كنيد). به آساني مي­توانيد handset استانداردتان را به ATA متصل كنيد، سپس ATA را به كامپيوتر يا ارتباط اينترنت­تان وصل كنيد. با اين كار قادر به برقراري ارتباط VoIP خواهيد بود. ATA سيگنال آنالوگ را از تلفن استاندارد شما مي­گيرد و آن را به سيگنال ديجيتال آماده براي انتقال در بستر اينترنت تبديل مي­كند. همراه برخي ATAها يك نرم­افزار هست كه روي كامپيوتر load مي­شود و شما را قادر مي­سازد كه آن را براي VoIP با دقت پيكربندي كنيد.

 

  1. IP Phones

اين handsetها كاملاً شبيه handsetهاي استاندارد معمولي است. داراي يك كانكتور RJ 45 Ethernet به جاي كانكتورهاي استاندارد RJ 11 هستند. اين تلفن­ها تمام نرم­افزارها و سخت­افزارهاي لازم براي برقراري ارتباطات VoIP را به صورت built-in دارند. مستقيمأ به روتر شما وصل مي­شوند و يك ورودي سريع و مقرون به صرفه به دنياي VoIP فراهم مي­كنند.

 

  1. كامپيوتر به كامپيوتر 

اين روش آسان­ترين روش استفاده از تكنولوژي VoIP است. شركت­هاي زيادي هستند كه نرم­افزارهاي مقرون­به­صرفه­اي ارائه مي­دهند كه مي­توانيد براي اين نوع VoIP از آن­ها استفاده كنيد. معمولاً تنها مبلغي كه بايد پرداخت كنيد فقط هزينه ماهانه ISP است. تمام آن­چه كه نياز داريد يك ميكروفون،بلندگو، يك كارت صداي مناسب و يك ارتباط اينترنت با سرعت مناسب است.

 

شركت­هاي تلفني بزرگ امروزه با استفاده از VoIP هزاران تماس تلفني راه دور را از طريق يك circuit switch به درون يك IP gateway مسيردهي مي­كنند. اين داده­ها در طرف ديگر توسط يك gateway دريافت ­شده و سپس با يك circuit switch محلي ديگر مسيردهي مي­شود. هر روزه شركت­هاي بيش­تري سيستم­هاي تلفني VoIP را نصب مي­كنند و تكنولوژي VoIP در حال رشد است.

 

مزاياي VoIP

از­آن­جايي­كه با استفاده از VoIP شما از هر جايي كه به پهناي باند مناسب دسترسي داشته باشيد، مي­توانيد ارتباط برقرار كنيد، كاربران مي­توانند هنگام مسافرت ATAها يا IP Phoneهايشان را همراه داشته باشند و به تمام خدماتي كه تلفن خانگي­شان ارائه مي­دهد دسترسي داشته باشند.

برخي افراد از يك softphone براي دسترسي به سرويس VoIPشان استفاده مي­كنند. يك softphone يك نرم­افزار ويژه است كه سرويس VoIP را به كامپيوتر يا laptop شما load مي­كند. اين برنامه­ها اين امكان را به شما مي­دهد كه از طريق laptopتان از هرجاي دنيا كه به يك ارتباط با پهناي باند مناسب دسترسي داشته باشيد ارتباط تلفني برقرار كنيد.

اغلب شركت­هاي تلفني سنتي هزينه سرويس­هاي اضافي را در صورت حساب شما مي­گنجانند. در حالي­كه اگر از سرويس­دهنده­هاي VoIP استفاده كنيد، اين سرويس­ها استاندارد به حساب مي­آيد. سرويس­هايي مثل:

  • Caller ID
  • Call Waiting
  • Call Transfer
  • Repeat Dialing
  • Return Call
  • Three-way Dialing

 

بعضي از سرويس­دهندگان VoIP مزاياي بيش­تري در مورد فيلتر كردن تماس­هاي تلفني ارائه مي­دهند. اين قابليت­هاي اضافي به شما اين امكان را مي­دهد كه در مورد چگونگي انتقال تماس­هاي تلفني بر اساس اطلاعات Caller ID تصميم­گيري نمائيد. اين قابليت­ها به شما امكان انجام كارهاي زير را مي­دهد:

  1. انتقال تماس تلفني به يك شماره تلفن خاص (Forwarding)
  2. ارسال مستقيم تماس به Voicemail
  3. ارسال پيغام اشغال بودن مشترك به تماس گيرنده
  4. امكان سرويس در دسترس نبودن مشترك

بسياري از سرويس­هاي VoIP امكان بررسي Voicemail شما را از طريق اينترنت و يا توسط فايل پيوست نامه الكترونيكي كه به كامپيوتر يا PDA شما ارسال شده است را مي­دهد. در هنگام تهيه سرويس VoIP از سيستم تلفن و سرويس دهنده VoIP در مورد قابليت­هاي آن­ها و هزينه خدمات سوال كنيد.

براي مديران شبكه، سيستم تلفن VoIP به اين معني است كه به جاي دو شبكه تنها با يك شبكه روبرو هستند. جابجايي سيستم VoIP نيز به آساني صورت مي­گيرد. اين بدين دليل است كه اكثر سيستم­هاي تلفن مورد استفاده در شبكه VoIP داراي رابط Web بوده و به راحتي توسط مدير شبكه قابل مديريت هستند. پروسه MAC(Move, Add, Change) به راحتي قابل انجام خواهد شد و لازم نيست براي هر بار انجام MAC با سرويس­دهنده­تان تماس بگيريد. تمام اين­ها به معناي هزينه كم­تر براي سازمان شما مي­باشد.

يكي ديگر از منافعي كه براي شركت­هاي داراي VoIP مي­تواند وجود داشته باشد اين است كه شعب سازمان­ها مي­توانند در سرتاسر دنيا پراكنده شده باشند و نيازي به مجتمع بودن آن­ها نيست.

 

انتخاب يك سيستم تلفن VoIP

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

علاوه بر اين شما بايد مطمئن باشيد كه تمامي دستگاه­هاي مورد استفاده شما مانند فكس، پردازشگر كارت اعتباري، سيستم­هاي امنيتي و ... مي­توانند به صورت يكپارچه به سيستم تلفن VoIP شما متصل شود.

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

10 نكته در مديريت فناوري اطلاعات

نويسنده: Janice Ward

مترجم: سلمه عبداللهي سهي

ناشر: مهندسي شبكه همكاران سيستم مشورت

واژه‌هاي كليدي: مديريت پروژه، كار، گروه، تكنولوژي اطلاعات، آموزش

  

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

 

1- براي ارتقاء سطح فني كارشناسان خود وقت و هزينه صرف كنيم.

 

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

 

2- از اينكه هر يك از كارشناسانتان دقيقا ً چه كاري را انجام مي‌دهند اطلاع داشته باشيم.

 

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

 

3- كارهاي كارشناسانمان را برايشان انجام ندهيم.

 

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

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

 

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

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

 

5- به ارتباطات به منزله يك خيابان شلوغ، پرسرعت و دو طرفه نگاه كنيم.

 

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

 

6- همه افراد را به انجام كار گروهي تشويق كنيم.

 

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

 

7- بازخورهاي مرتب بگيريم و اجازه دهيم كه كارشناسان بدانند دقيقا ً چه چيزي از آنها مي‌خواهيم.

 

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

 

8- به درستي استخدام كنيم.

 

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

 

9- بهترين الگوهاي IT را يادبگيريم ولي فقط در مورد آنها صحبت نكنيم.

 

بهترين الگوهاي كار را كه متناسب با محيط كاري ما مي‌باشند يادبگيريم و خودمان و واحدمان را بر اساس معيارهاي آن ارزيابي كنيم.ITIL (Information Technology Infrastructure Library) را كاوش كنيم و حداقل مواردي را كه مي‌توانيم در واحدمان پياده كنيم، مشخص كنيم. برنامه بهبود و ترميم از شرايط حادمان را به روز كنيم و آماده عمل باشيم. ارزيابي‌هاي امنيتي را به طور مرتب انجام دهيم. با آگاهي كامل به كار ادامه دهيم. فقط در مورد بهترين الگوها صحبت كردن نتيجه‌اي نخواهد داشت. ما بايد در مورد اين ايده‌ها و كاربردشان در محيط كاريمان دانش كامل داشته باشيم، سپس برنامه‌ريزي كرده و تغييرات مناسب و مربوط را پياده‌سازي كنيم.

 

10- يك مدير پروژه خوب باشيم.

 

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

فناوري RFID


قسمت اول:

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

 


تگ‌ها:

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

RFID2.JPG

 

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

RFID3.JPG

 

خصوصيات و قابليت‌ها:

قابليت بكارگيري تگ‌هاي RFID در مكان‌هاي صنعتي فقط يكي از خصوصياتي است كه آن را از باركد و يا ساير فناوري‌هاي شناسايي و جمع‌آوري خودكار داده‌ها يا AIDC (Automatic Identification and Data Collection) مجزا و برتر مي‌سازد. يكي از بارزترين خصوصيات اين فناوري عدم نياز آن به ديد مستقيم بين تگ و تگ‌خوان جهت تبادل داده است كه موجب مي‌شود در شرايطي كه تگ و تگ‌خوان در زاويه مناسبي قرار ندارند و يا اجسام و يا پوشش بسته‌بندي، مانع ايجاد كند ، نيز عمليات شناسايي و ثبت اطلاعات تگ انجام شود. تگ‌خوان‌ها همچنين مي‌توانند تعداد زيادي تگ را با هم و در يك زمان شناسايي كند.

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

سيستم كد محصول الكترونيكي يا EPC (Electronic Product Code) در فناوري RFID، يك شماره سريال استاندارد منحصربفرد براي هر تگ فراهم مي‌نمايد. بسياري از فرآيندها و پردازش‌هاي نوين ايجاد شده در حوزه زنجيره تامين بر مبناي استفاده از مزاياي اين شماره منحصربفرد، استاندارد و امن ارائه شده‌اند. اين شماره‌ها با طول‌هاي مختلف 64، 96 و 256 بيتي استفاده مي‌شوند. در شكل زير ساختار انواع كدهاي استاندارد جهاني EPC آمده است:

RFID4.JPG

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

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

 

فركانس‌ها و استاندارد EPC:

فركانس يكي از مهمترين پارامتر‌هاي موثر در بُرد و كارايي سيستم RFID است. تقريبا كليه سيستم‌هاي RFID استفاده شده در كاربرهاي انبار، مراكز توزيع و زنجيره‌هاي تامين در يكي از سه خانواده فركانسي زير مي‌باشد:

§ فركانس (HF) 13.56MHz: معمولا براي فواصل كوتاه و در حدود يك متر.

§ فركانس (UHF) 860~960MHz: كه استاندارد شناخته شده EPC-global نسل دوم (Gen2) را شامل مي‌شود و بُرد تا 6 متر را خواهد داشت.

§فركانسGHz 2.45 : كه در تگ‌هاي فعال استفاده مي‌شود و بُرد بالايي دارد. معمولا در شناسايي و تعيين موقعيت در محوطه‌هاي بزرگ كاربرد دارد.

فناوري UHF، محدوده پوشش مناسب، سرعت، امنيت و تجهيزات مقرون‌بصرفه‌اي را كه بيشتر برنامه‌هاي كاربردي و سيستم‌هاي انبار، مديريت كالا و توليد نياز دارند فراهم مي‌نمايد. استاندارد EPC Gen 2 UHF براي رفع نيازهاي زنجيره‌هاي تامين ارائه شده است و در محدوده فركانسي 860~960MHz عمل مي‌كند، همچنين احتمال تداخل با سيستم‌هاي راديويي مانند استاندارد شبكه‌هاي راديويي802.11 كمتر مي‌باشد. اين استاندارد سرعت بالا در شناسايي و خواندن تگ‌ها، فاصله مناسب، كد‌هاي الكترونيكي محصول كه شماره‌گذاري سريال منحصربفرد را فراهم مي‌كند و ميزان حافظه مناسبي را نيز براي ذخيره اطلاعات كاربر، ارائه مي‌نمايد


با سپاس از سايت www.sgnec.net

DMZ چيست؟ِ

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

در مورد شبكه‌هاي كامپيوتري نيز بطور مشخص، همين روال را پيش می گيريم. يعني مرزهاي شبكه داخلي خود را كنترل مي‌كنيم. منظور از مرز شبكه، لبه تماس شبكه داخلي با شبكه(هاي) خارجي نظير اينترنت، شبكه يكي از شعب سازمان و يا شبكه يك سازمان ديگر است.

براي كنترل اين مرزها از Firewall استفاده مي‌شود

 با پياده‌سازي تكنيك‌هاي Packet Filtering، بخشي از وظايف يك Firewall را می توان به Router(هاي) لب مرز واگذار كرد. ولي Routerها به تنهايي قادر به انجام كل وظايف يك Firewall نيستند و استفاده از Firewallها امري اجتناب ناپذير است. دليل ناكافي بودن Packet Filtering در Router لب مرز دو چيز است: يكي اينكه اصولا" تمامي تكنيك‌هايي كه در Firewallها پياده سازي مي‌شوند، در Router قابل اجرا نيست و گذشته از آن، اصل دفاع لايه به لايه (يا دفاع در عمق) ميگويد كه محافظت بايستي در بيش از يك لايه انجام شود. (مانند دژهاي قديمي كه با لايه‌هاي مختلف (خندق، دروازه اصلي، دروازه‌هاي فرعي، برجها و ...) از آنها محافظت مي‌شد.

در شكل‌هاي زير يك نمونه از پياده سازي Firewallها را مشاهده می كنيد.

----------------------------------------------------------------------------------------------------------

 در شكل‌هاي فوق، Router لب مرز، ترافيك را در سطح IP كنترل می كند. اين Router اولين لايه دفاعي شبكه محسوب مي‌شود. همانطور كه مشاهده مي‌شود در اين Router فقط به كاربراني از اينترنت اجازه عبور داده مي‌ شود كه متقاضي يكي از سرويس‌هاي وب، پست الكترونيك و يا DNS باشند.

 در هر شكل ناحيه وجود دارد موسوم به DMZ مخفف DeMilitarized Zone كه در اين ناحيه سرورهايي را قرار ميدهيم كه بايستي از اينترنت ديده شوند مانند Web Server، E-Mail Server و DNS Server. اگر بخواهيم DMZ را با يك مثال روشنتر توصيف كنيم، بايستي بگوييم كه DMZ مانند نمايشگاه و فروشگاه يك شركت است كه تقريبا" به همه اجازه داده مي‌شود به داخل آن بيايند و از محصولات ما ديدن كنند، اصولا" نمايشگاه به همين منظور ايجاد شده، فلسفه وجودي Web Server اين است كه از اينترنت ديده شود.

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

 پس در ساده‌ترين شكل، شبكه ما از سه ناحيه Public Network، DMZ و Private Network تشكيل شده و در مرز هر كدام از اين نواحي بايستي تمهيدات كنترلي اتخاذ كرده و عبور و مرور بسته‌هاي اطلاعاتي را كنترل كنيم. در ادامه مقاله از اين سه بخش تحت عناوين Internat، DMZ و LAN نام خواهيم برد.

ممكن است علاوه بر سه ناحيه فوق، در ناحيه LAN، بخشي داشته باشيم كه از نظر حساسيت در سطح بالاتري نسبت به ساير LAN باشد. اين ناحيه، ناحيه‌ايست كه سرورهاي حساس شبكه مانند سرور مالي و يا فايل سرور بخش تحقيق و توسعه قرارداد. براي اين ناحيه لازم است Firewall مجزايي پياده سازي شود. اين Firewall لايه‌اي است كه به لايه‌هاي امنيتي اضافه شده و دسترسي غير مجاز به اين ناحيه را مشكل‌تر مي‌كند:

به شكل زير توجه كنيد: (Routerها با R و Firewallها با F مشخص شده‌اند)

همانطور كه ملاحظه مي‌كنيد، R1 و R2 بعنوان Routerهاي لب مرز شبكه‌ها را از اينترنت جدا كرده‌اند. در كل مجموعه، يك DMZ داريم كه با F1 از بقيه مجموعه جدا شده است. F3 و F5 دو وظيفه بعهده دارند، يكي مرز بين اينترنت و LANهاي مربوط به خود را كنترل ميكنند، و ديگر اينكه ارتباط بين دو LAN را كنترل مي‌كنند اين ارتباط ممكن است Lease Line، Wireless و يا يك زوج سيم مسي باشد. اين Firewalها با پشتيباني از سرويس VPN، ارتباط داخلي امني را بين دفترمركزي و شعبه برقرار ميكنند.

اما F2 و F4 نيز در شرايط مشابهي هستند، اين دو وظيفه جدا سازي منطقه حساس را از بقيه LAN بر عهده دارند و علاوه برآن F2 دو Subnet موجود در شبكه دفتر مركزي را نيز از هم جدا ميكند. جداسازي Subnetها از هم در راستاي محدود كردن حملات احتمالي است. اگر به نحوي يكي از Subnetها مورد حمله واقع شد، (مثلا" با Wormي كه از طريق e-mail و يا حتي از طريق ديسكت و CD وارد آن شده) اين آلودگي به همان Subnet محدود شده و ساير بخشهاي شبكه ايمن باقي بمانند.

نتيجه گيري:

ديديم كه برای تامين امنيت يك شبكه، Firewall اولين چيزی است كه بايستی پياده سازی شود. نكته حائز اهميت آنكه، نصب يك Firewall در شبكه به تنهايی امنيت آن شبكه را تامين نخواهد كرد، آنچه مهمتر است، تعريف قواعد كنترل (Rules) و اعمال تنظيمات اوليه و همچنين مهمتر از آن به روزرسانی قواعد برمبنای تكنيكهای نفوذ و حملات جديد است.

طراحي firewall


توپولوژی های فايروال

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

سناريوی اول : يک فايروال Dual-Homed
در اين توپولوژی که يکی از ساده ترين و در عين حال متداولترين روش استفاده از يک فايروال است ، يک فايروال مستقيما" و از طريق يک خط Dial-up ، خطوط ISDN و يا مودم های کابلی به اينترنت متصل می گردد. در توپولوژی فوق امکان استفاده از DMZ وجود نخواهد داشت .

برخی از ويژگی های اين توپولوژی  عبارت از :

  • فايروال مسئوليت بررسی بسته های اطلاعاتی ارسالی با توجه به قوانين فيلترينگ تعريف شده بين شبکه داحلی و اينترنت و برعکس را برعهده دارد.

  • فايروال از آدرس IP خود برای ارسال بسته های اطلاعاتی بر روی اينترنت استفاده می نمايد .

  • دارای يک پيکربندی ساده بوده و در مواردی که صرفا" دارای يک آدرس IP معتبر ( Valid ) می باشيم ، کارساز خواهند بود .

  • برای اتصال فايروال به اينترنت می توان از يک خط Dial-up معمولی ، يک اتصال ISDN و  مودم های کابلی  استفاده نمود .

سناريوی دوم : يک شبکه Two-Legged به همراه قابليت استفاده از يک ناحيه DMZ
در اين توپولوژی که نسبت به مدل قبلی دارای ويژگی های پيشرفته تری است ، روتر متصل شده به اينترنت به هاب و يا سوئيچ موجود در شبکه داخلی متصل می گردد .

برخی از ويژگی های اين توپولوژی عبارت از  :

  • ماشين هائی که می بايست امکان دستيابی مستقيم به اينترنت را داشته باشند ( توسط فايروال فيلتر نخواهند شد ) ، به هاب و يا سوئيچ خارجی  متصل می گردند .

  • فايروال دارای دو کارت شبکه است که يکی به هاب و يا سوئيچ خارجی و ديگری به هاب و يا سوئيچ داخلی متصل می گردد. ( تسهيل در امر پيکربندی فايروال )

  • ماشين هائی که می بايست توسط فايروال حفاظت گردند به هاب و يا سوئيچ داخلی متصل می گردند .

  • به منظور افزايش کارآئی و امنيت شبکه ، می توان  از سوئيچ در مقابل هاب استفاده نمود .

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

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

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

  • پيکربندی مناسب ناحيه DMZ به دو عامل متفاوت بستگی خواهد داشت : وجود يک روتر خارجی و داشتن چندين آدرس IP 

  • در صورتی که امکان ارتباط با اينترنت از طريق يک اتصال PPP ( مودم Dial-up ) فراهم شده است و يا امکان کنترل روتر وجود ندارد و يا صرفا" دارای يک آدرس IP می باشيم ، می بايست از يک راهکار ديگر در اين رابطه استفاده نمود . در اين رابطه می توان از دو راه حل متفاوت با توجه به شرايط موجود  استفاده نمود :

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

راه حل دوم، ايجاد يک فايروال  Three Legged است که در ادامه به آن اشاره خواهيم کرد .

سناريوی سوم : فايروال Three-Legged
در اين توپولوژی که نسبت به مدل های قبلی دارای ويژگی های پيشرفته تری است ، از يک کارت شبکه ديگر بر روی فايروال و برای ناحيه DMZ استفاده می گردد . پيکربندی فايروال بگونه ای خواهد بود که روتينگ بسته های اطلاعاتی بين اينترنت و ناحيه DMZ  با روشی متمايز و متفاوت از اينترنت و شبکه داخلی ،  انجام خواهد شد .

برخی از ويژگی های اين توپولوژی عبارت از :

  • امکان داشتن يک ناحيه DMZ وجود خواهد داشت .

  • برای سرويس دهندگان موجود در ناحيه DMZ می توان از آدرس های IP غيرمعتبر استفاده نمود .

  • کاربرانی که از اتصالات ايستای PPP استفاده می نمايند نيز می توانند به  ناحيه DMZ دستيابی داشته و از خدمات سرويس دهندگان متفاوت موجود در اين ناحيه استفاده نمايند .

  • يک راه حل مقرون به صرفه برای سازمان ها و ادارات کوچک است .

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

  • در صورتی که امکان کنترل روتر متصل به اينترنت وجود نداشته باشد ، می توان کنترل ترافيک ناحيه DMZ  را با استفاده از امکانات ارائه شده توسط فايروال شماره يک انجام داد .

  • در صورت امکان سعی گردد که  دستيابی به ناحيه DMZ محدود شود .