سایت اقدام پژوهی - گزارش تخصصی و فایل های مورد نیاز فرهنگیان
1 -با اطمینان خرید کنید ، پشتیبان سایت همیشه در خدمت شما می باشد .فایل ها بعد از خرید بصورت ورد و قابل ویرایش به دست شما خواهد رسید. پشتیبانی : بااسمس و واتساپ: 09159886819 - صارمی
2- شما با هر کارت بانکی عضو شتاب (همه کارت های عضو شتاب ) و داشتن رمز دوم کارت خود و cvv2 و تاریخ انقاضاکارت ، می توانید بصورت آنلاین از سامانه پرداخت بانکی (که کاملا مطمئن و محافظت شده می باشد ) خرید نمائید .
3 - درهنگام خرید اگر ایمیل ندارید ، در قسمت ایمیل ، ایمیل را بنویسید.
در صورت هر گونه مشکل در دریافت فایل بعد از خرید به شماره 09159886819 در شاد ، تلگرام و یا نرم افزار ایتا پیام بدهید آیدی ما در نرم افزار شاد : @asemankafinet
ابتدا به ذکر مشخصاتی کلی درباره پروژه موردنظر میپردازیم:
این پروژه در رابطه با یک راه دو بانده به طول 200 کیلومتر میباشد که در یک مسیر بدون موانع طبیعی قرار دارد و زمانهای حدس زده شده برای آن برای یک راه معمولی و بدون مشکل میباشد و این زمان با توجه به امکانات و شرایط ما تعریف شده است
هدف ما در این پروژه طراحی شبکه CPM مربوط به پروژه احداث راه میباشد.
در احداث یک راه به طور کلی دو مرحله وجود دارد:
الف- مرحله مطالعات راهسازی
ب- مرحله مربوط به کارهای اجرایی
الف- مرحله مطالعات راه سازی:
این مرحله خود دارای سه قسمت است:
1-مطالعات مربوط به فاز صفر
2-مطالعات مربوط به فاز (مرحله ) اول
3-مطالعات مربوط به فاز (مرحله ) دوم
1- در مطالعات مقدماتی یا فاز صفر اهداف پروژه، لزوم احداث پروژه، نوع راه، طول تقریبی راه، و هزینه تقریبی پروژه مورد بررسی قرار میگیرد.
به طول کلی برای ایجاد شبکه راههای کشوری یک طرح و مطالعه کلی باید داشته باشیم تا بتوان بر اساس این شبکه مطالعه شده و بر اساس الویتهای مختلف و با توجه به شاخصهای تعیین کننده به اجرا و ساخت راه پرداخت برای اینکار میتوان از یک سیستم مقایسه ای کمک گرفت یعنی پروژه مورد نظر را با پروژههای شبیه به آن در سطوح مختلف مقایسه کرد، این سطوح میتوانند سطوح جهانی، کشوری و یا منطقه ای باشد. در بررسی اولیه به بررسی اهمیت پروژه پرداخته میشود یعنی در مطالعه مقدماتی باید به تعیین اولویت، لزوم احداث، نوع راه، طول تقریبی وهزینه تقریبی راه پرداخت.
2- به طول کلی میتوان برای مطالعات مرحله اول یا فاز اول به صورت زیر عمل کرد:
1- شناسایی مسیرهای ممکن (واریانت): برای اینکار ابتدا نقاط اجباری عبور را تعیین میکنیم. این نقاط میتوانند به صورت مصنوعی مانند شهرها یا به صورت طبیعی مانند گردنهها باشند و سپس از روی این نقاط مسیرهای مختلف شناسایی میشوند.
مقایسه مسیرهای مختلف: واریانت در اصطلاح هر مسیر ممکن قابل اجرا بین دو نقطه میباشد. که از نظر مهندسی بین دو نقطه بینهایت واریانت وجود دارد. اهمیت کار در این قسمت این است که از بین این واریانتها مناسبترین آنها انتخاب شود. سپس از نظر فنی، مهندسی مورد بررسی و مقایسه قرار گیرد.
3- انتخاب مسیر: در این مرحله مناسب ترین واریانت با توجه به توجیهات بند قبل انتخاب میشود و به عبارتی برای مطالعات مرحله دوم صورت مسئله تعیین میشود.
3- مطالعات مربوط به فاز دوم: در این مرحله با توجه به مرحله قبل نقشههای مربوط به کار تهیه میشوند مانند نقشههای مسطحاتی، پروفیل طولی، پروفیل عرضی، حجم عملیات خاکی، تعیین محل قرضه و دپو و ... جزئیات تهیه طرح و نقشهها به شرح و ترتیب زیر میباشد:
1) تهیه نقشههای توپوگرافی با مقیاس معین
2) انجام عملیات نقشه برداری
3) انتقال اطلاعات جمع آوری شده از محل بر روی نقشه و تعیین مسیر و خط پروژه
4) میخ کوبی و پیاده کردن مسیر از روی نقشه
5) مشخصات هندسی محل و دهانه آبروها، پلها، کانالهای انحراف آب، محل تاسیسات عمومی و خصوصی باید بر روی نقشه مسطحه و مقطع (عرضی و طولی) به مقیاس تعیین شود.
6) کلیه نقشههای تفصیلی اجرایی برای اسناد ومدارک مناقصه باید بر اساس نقشه برداریها، مقاطع طولی و عرضی تهیه شود.
7) بررسی کامل و جامع درباره مصالح بنایی محل
8) انجام محاسبات فنی و تهیه نقشههای تفصیلی اجرایی
9) تهیه مشخصات فنی عمومی و خصوصی طبق آیین نامه مورد تایید
10) تهیه جداول مقادیر کارها
11) تهیه برآورد هزینه کلیه عملیات بر اساس مقادیر کارهای مختلف
12) تهیه گزارش نهایی شامل کلیه اطلاعات و مدت زمان برای انجام پروژهها
13) تهیه و تنظیم اسناد و مدارک مناقصه
بعد از انجام مرحله مطالعات راهسازی، نوبت به اجرا میرسد که ابتدا در این جا شبکه مربوط به مرحله اول یعنی مطالعات را ترسیم میکنیم و بعد از آن، یعنی در ادامه این شبکه مرحله اجرا را ترسیم میکنیم.
ب – مرحله مربوط به کارهای اجرایی
مرحله دوم شامل اجرای این پروژه است که قبل از توضیح در رابطه با آن به شکل مقطع عرضی از یک راه توجه میکنیم و سپس مراحل اجرا را به طول مختصر توضیح میدهیم:
بر این اساس روسازی از قسمتهای مختلفی تشکیل شده است که هر قسمت وظیفه یا وظایف خاصی دارد معمولا روسازی از سه بخش رویه، اساس، زیر اساس تشکیل میشود. روسازی راه جسم متراکمی است که از نظر جنس مصالح سنگی و دانه بندی شده میباشد و دارای مقاومت کافی برای تحمل نیروها میباشد که این کار با طراحی مناسب انجام میشود.
زیرسازی نیز قسمتی است که باید دارای استحکام کافی برای تحمل روسازی باشد و برای تامین سطح صاف و مقاوم جهت حرکت وسایل نقلیه شرط لازم انجام صحیح عملیات زیر سازی است.
در اجرا ابتدا بستر راه را از مصالح مقاوم ریخته و آن را متراکم میکنیم. تراکم بهتر را میتوان با رسیدن به رطوبت اپتیمم بدست آورد به همین خاطر قبل از تراکم سطح بستر را آبپاشی میکنیم، سپس لایه زیر اساس را از مصالح نامرغوب و ارزان میریزیم و مانند بستر متراکم میکنیم به این صورت که ابتدا آبپاشی کرده و سپس غلتک میزنیم. سپس نوبت به اساس راه میرسد که از مصالح مرغوب که عمدتا از جنس مصالح سنگی شکسته شده و مرغوب میباشد انجام میدهیم، سپس روی مصالح دانه ای اساس، لایه قیری به نام پرپمکت میریزیم تا باعث چسبندگی لایه بندی و مصالح سنگی شود، سپس مصالح لایه بندی را به کمک ماشین آلات مخصوص آسفالت روی سطح پخش میکنیم و بعد از آن غلتک میزنیم تا به تراکم مورد نظر برسیم بعد از آن لایه قیری تک کت را برای ایجاد چسبندگی بین دو لایه بندی و توپکا میریزیم و سپس مصالح توپکا را که مصالح آسفالتی مرغوبتری نسبت به بیندر است روی لایه تک کت میریزیم و مثل روش قبل غلتک میزنیم تامتراکم شود.
پس از ایجاد راه نوبت به نصب علائم راهنمایی و رانندگی میرسد که ابتدا علائم نصب شده و سپس راه راخط کشی میکنیم.
در طی راهسازی عملیات دیگری نیز مانند تونلسازی، ایجد کالورت، خاکبرداری و خاکریزی، زدن ترانشه و ... انجام میشود که ما در اینجا مراحل ساده راهسازی را به طور مختصر بیان کردیم و این مراحل را به صورت شبکه CPM رسم میکنیم که در زیر بعد از رسم شبکه مسائلی که باید در شبکه مشخص شوند را توضیح و محاسبه لازم را انجام میدهیم.
طرح شبکه CPM مربوط به مطالعات راهسازی
مراحل مختلف به ترتیب اهمیت:
1-مطالعات مربوط به فاز صفر
2-مطالعات مربوط به مرحله (فاز ) اول
3-مطالعات مربوط به مرحله (فاز ) دوم
1-مطالعات مربوط به فاز صفر
1.اهداف پروژه
2.لزوم احداث پروژه
3.نوع راه
4.طول تقریبی راه
5.هزینه تقریبی پروژه
2-مطالعات مربوط به مرحله (فاز ) اول
1.شناسایی مسیرهای ممکن (واریانتها)
2.مقایسه مسیرهای مختلف
3.انتخاب مسیر
3-مطالعات مربوط به مرحله (فاز ) دوم
1.تهیه نقشههای توپوگرافی
2.انجام عملیات نقشه برداری
3.انتقال اطلاعات جمع آوری شده از محل بر روی نقشه و تعیین مسیر و خط پروژه
4.میخ کوبی و پیاده کردن مسیر از روی نقشه
5.مشخصات هندسی محل و دهانه آبروها، پلها، کانالهای انحراف آب، محل تاسیسات عمومی و خصوصی باید بر روی نقشه مسطحه و مقطع (عرضی و طولی) به مقیاس تعیین شود.
6.کلیه نقشههای تفصیلی اجرایی برای اسناد ومدارک مناقصه باید بر اساس نقشه برداریها، مقاطع طولی و عرضی تهیه شود.
7.بررسی کامل وجامع درباره مصالح بنایی محل
8.انجام محاسبات فنی و تهیه نقشههای تفصیلی اجرایی
9.تهیه مشخصات فنی عمومی و خصوصی طبق آیین نامه مورد تایید
10.تهیه جداول مقادیر کارها
11.تهیه برآورد هزینه کلیه عملیات بر اساس مقادیر کارهای مختلف
12.تهیه گزارش نهایی شامل کلیه اطلاعات و مدت زمان برای انجام پروژهها
13.تهیه و تنظیم اسناد و مدارک مناقصه
طبق مراحل طبقه بندی شده در صفحه قبل نام گذاری مراحل را برای آسان شدن کار در شبکه CPM به این ترتیب اتخاذ میکنیم که مثلا فعالیت 2-1 نشاندهنده فاز صفر قسمت 2 است و یا فعالیت 3-2 نشاندهنده فاز اول قسمت 3 است.
با مراجعه به مراحل طبقه بندی شده در صفحه قبل کاملا متوجه این قسمت بندی خواهید شد.
حال طبق مراحل یاد شده شبکه CPM مربوط به این مراحل به صورت زیر است.
زمانهای مربوط به این پروژه که با توجه به طول و وسعت و عوامل متعدد دیگر متفاوت است تعریف میشوند که ما در اینجا این زمانها را برای یک پروژه معمولی (بدون تونل، کالورت و ...) و به طول 200 کیلومتر فرض میکنیم. حال با توجه به توضیحات داده شده سه زمان تعریف میکنیم که عبارتند از:
زمان خوشبینانه، زمان بدبینانه، زمان محتمل.
در مورد مطالعه مربوط به فاز صفر زمانها بدین صورت تعریف میشوند و در ضمن زمانهای تعریف شده برحسب ماه میباشند.
زمان انتظار
زمان بدبینانه
زمان محتمل
زمان خوشبینانه
فعالیت
2
2
1
2
3
3
3
1
2
4
2
2
1
2
3
1
1
1
2
2
1-1
2-1
3-1
4-1
5-1
حال سه زمان مربوط به فاز اول را به صورت زیر تعریف میکنیم (ضمنا زمانهای مربوط به این فاز نیز برحسب ماه میباشد)
زمان انتظار
زمان بدبینانه
زمان محتمل
زمان خوشبینانه
فعالیت
3
2
2
4
2
3
3
2
2
2
2
1
1-2
2-2
3-2
زمانهای مربوط به فاز دوم نیز به صورت زیر است و این زمانها نیز برحسب ماه میباشند.
زمان انتظار
زمان بدبینانه
زمان محتمل
زمان خوشبینانه
فعالیت
3
5
6
5
4
6
5
6
4
3
1
2
1
4
6
7
6
5
8
7
7
5
4
1
3
1
3
5
6
5
4
6
5
6
4
3
1
2
1
2
4
5
4
3
4
3
5
3
2
1
1
1
1-1
2-1
3-1
4-1
5-1
6-1
7-1
8-1
9-1
10-1
11-1
12-1
13-1
حال شبکه CPM مربوط به مرحله مطالعات راهسازی با زمانهای مربوط رسم میشود که به صورت زیر است: (در ضمن زمانهای انتظار مربوط به هر فعالیت در داخل مربع روی شبکه نشان داده شده است)
زمانها در زیر هر شاخه قرار میگیرد.
بعد از انجام این عملیات نوبت به مشخص کردن مسیر بحرانی میرسد برای پیدا کردن مسیر بحرانی TL و TE مربوط به هر رویداد را روی آن مشخص میکنیم.
ابتدا TE را مشخص میکنیم و سپس با فرض مساوی قرار دادن TL با TE در انتهای مسیر TLها را پیدا میکنیم و بعد از آن مسیر بحرانی برابر مسیری خواهد بود که TL و TEهایش با هم برابرند.
پس مسیر بحرانی مربوط به شکل صفحه قبل عبارتست از مسیر :
1-6-9-22
که در این مسیر با توجه به شکل قبل یکی از مسیرهای بحرانی میباشد که مسیرهای بحرانی دیگر هم وجود دارند که درهمه این مسیرهای بحرانی Ts که زمان زودترین تکمیل پروژه است برابراند. که همان 12 ماه میباشد. به عنوان مثال یکی دیگر از زمانهای بحرانی عبارتست از:
1-5-6-7-9-12-22
دو مسیر بحرانی دیگر نیز وجود دارند که عبارتنداز:
1-5-6-7-9-14-22
1-5-6-7-9-16-22
طرح شبکه CPM مربوط به عملیات اجرای راهسازی
مراحل مختلف اجرا به طور کلی به مراحل زیر تقسیم بندی میشود که به ترتیب اولویت به ذکر آنها میپردازیم:
1-زیر سازی یا بستر راه
2-روسازی
قسمت 1 که همان بستر راه است برای اجرا به مراحل زیر تقسیم بندی میشود:
1-زیر سازی یا بستر راه
1.بدست آوردن تتنشهای وارده به زیر سازی برای تحمل آن
2.انتخاب مصالح مناسب برای تحمل این تنشها
3.بدست آوردن ضخامت مناسب برای زیر سازی با مصالح انتخاب شده
4.بدست آوردن میزان تراکم مصالح برای عملیات غلتک زنی مصالح بستر راه
5.ریختن مصالح مورد نیاز بستر در محل
6.آبپاشی مصالح بستر راه
7.غلتک زنی مصالح بستر راه وایجاد تراکم استاندارد
قسمت دوم که شامل روسازی راه میشود به مراحل زیر تقسیم بندی میشود.
2-روسازی
1.تعیین تنشهای وارده به زیر اساس
2.انتخاب مصالح مناسب برای زیر اساس برای تحمل این تنشها
3.بدست آوردن ضخامت مناسب برای زیر اساس با مصالح انتخاب شده
4.بدست آوردن میزان تراکم برای عملیات غلتک زنی مصالح زیر اساس راه
5.ریختن مصالح مورد نیاز زیر اساس در محل
6.آبپاش مصالح زیر اساس
7.غلتک زنی وایجاد تراکم استاندارد برای مصالح زیر اساس
8.تعیین تنشهای وارده به اساس راه
9.انتخاب مصالح مناسب برای اساس برای تحمل این تنشها
10.بدست آوردن ضخامت مناسب برای اساس با مصالح انتخاب شده
11.بدست آوردن میزان تراکم برای عملیات غلتک زنی مصالح اساس راه
12.ریختن مصالح مورد نیاز اساس راه در محل
13.آبپاشی مصالح اساس راه
14.غلتک زنی وایجاد تراکم استاندارد برای مصالح اساس راه
15.تعیین تنشهای وارده به رویه راه
16.انتخاب مصالح مناسب برای رویه در تهیه لایه آسفالتی بیندر و ترپکا برای تحمل این تنشها
17.بدست آوردن ضخامت مناسب برای لایه بیندر و توپکادر رویه راه
18.بدست آوردن میزان تراکم برای عملیات غلتک زنی مصالح لایه بیندر و توپکا
19.پاشیدن لایه قیری پریمکت روی مصالح اساس
20.ریختن لایه بیندر و سپس غلتک زنی آن برای ایجاد تراکم استاندارد
21.پاشیدن لایه قیری تک کت روی لایه بیندر
22.ریختن لایه توپکا و سپس غلتک زنی آن برای ایجاد تراکم استاندارد
23.خط کشی راه و نصب علائم راهنمایی و رانندگی
طبق مراحل طبقه بندی شده در صفحه قبل به رسم شبکه CPM مربوط به اجرای راه میپردازیم نامگذاری فعالیتها نیز به این صورت است که مثلا فعالیت 2-1 به معنی انتخاب مصالح مناسب برای بستر راه میباشد که با توجه به مراحل طبقه بندی شده در صفحه قبل کاملا مشخص است و مثلا فعالیت 3-2 نشاندهنده بدست آوردن ضخامت مناسب برای مصالح زیر اساس است.
حال با توجه به توضیحات داده شده در بالا به رسم شبکه CPM مربوط به اجرای راه میپردازیم که به صورت زیر است.
حال میپردازیم به تعریف سه زمان خوشبینانه و بدبینانه و محتمل و از روی آنها زمان انتظار را بدست میآوریم که با توجه به مطالب گفته شده در قبل میدانیم که این زمانها همگی به طول و وسعت عوامل متعدد دیگری بستگی دارند که چون نوع پروژه ما یک پروژه معمولی بدون بدون تونل و ... است و طول پروژه را 200 کیلومتر در نظر گرفتیم زمانها به صورت زیر تعریف میشوند. (در ضمن زمانها برحسب ماه میباشند) و فعالیتهای زیر مربوط به بستر راه میباشند).
زمان انتظار
زمان بدبینانه
زمان محتمل
زمان خوشبینانه
فعالیت
2
1
3
1
3
1
4
3
1
4
1
4
1
5
2
1
3
1
3
1
4
1
1
2
1
2
1
3
1-1
2-1
3-1
4-1
5-1
6-1
7-1
زمانهای مربوط به فعالیتهای مربوط به روسازی راه به صورت زیر میباشندکه برحسب ماه بیان شدهاند.
زمان انتظار
زمان بدبینانه
زمان محتمل
زمان خوشبینانه
فعالیت
2
1
3
1
3
1
4
2
1
3
1
4
3
4
1
3
3
1
2
5
1
3
4
3
1
4
1
4
1
5
3
1
4
1
5
4
5
1
4
4
1
2
6
1
4
5
2
1
3
1
3
1
4
2
1
3
1
4
3
4
1
3
3
1
2
5
1
3
4
1
1
2
1
2
1
3
1
1
2
1
3
2
3
1
2
2
1
2
4
1
2
3
1-2
2-2
3-2
4-2
5-2
6-2
7-2
8-2
9-2
10-2
11-2
12-2
13-2
14-2
15-2
16-2
17-2
18-2
19-2
20-2
21-2
22-2
23-2
حال شبکه CPM مربوط به مرحله اجرای راهسازی با زمانهای مربوطه رسم میشود که به صورت زیر است در اینجا نیز زمانهای انتظار بدست آمده درداخل مربع زیر هر فعالیت نشان داده شده است.
بعد از انجام این عملیات نوبت به مشخص کردن مسیر بحرانی میرسد که با توجه به شکل کاملا واضح است که یک مسیر داریم و مسیر بحرانی ما همان مسیر است.
با توجه به اینکه مراحل عملیات اجرای راهسازی باید کاملا پشت سر هم اجرا شوند و ترتیب کاملا اهمیت دارد بنابر این شبکه CPM برای اجرا یک شبکه بدون انشعاب در میآید.
با توجه به دو شبکه رسم شده CPM مربوط به مطالعات و اجرا نتیجه میگیریم.
که برای این پروژه که راهی است معمولی و به طول 200 کیلومتر مطالعه ما حدود 12 ماه طول میکشد و اجرا حدود 71 ماه طول میکشد که این مقدار زمان با توجه به شرایط و امکانات ما در نظر گرفته شده است که زمان منطقی مورد قبول است.
همان طور که با اکسل کار می کنید، شاید متوجه شوید که تعدادی از عملیات و فرمانها را مکرار استفاده می کنید. برای مثال، در هر نوبت که یک کار برگ را ایجاد می کنید، شاید سریعا یک سری از عناوین را در سراسر یک ردیف وارد می کنید یا تعدادی از ارقام را به سبک ارزی قالب بندی می نمایید.
اگر چه می توان کارهای تکراری را با استفاده از نوار ابزار به صورت بهینه انجام داد شاید ایجاد ماکرو برای انجام عملیات و فرمانهای تکراری برایتان ساده تر باشد. ماکرو را در یک کاربرگ ماکرو ضبط می کنید، یک کاربرگ بخصوص اکسل که بسیار شبیه به کاربرگ معمولی می باشد. باید کاربرگ ماکرو جهت نوشتن ماکروها بر روی فایل باز باشد.
ماکرو از سه بخش تشکیل می شود:
نام ماکرو
کلید میانبر ماکرو
مراحل ماکرو
به وسیله نام ماکرو آن را سازماندهی و اجرا می کنید. برای مثال، ماکروی ایجاد شده جهت تغییر فونت داده ها در کابرگ می تواند نام font_change داشته باشد.
کلید میانبر ماکرو یک کلید ترکیبی اختیار است که می توانید از آن جهت اجرا ماکرو استفاده کنید. برای مثال می توانید کلیدهای ترکیبی ctrl+shift+F را جهت اجرا نمودن font_change به این ماکرو تخصیص دهید.
مراحل ماکرو فرمانهای زبان برنامه نویسی Visual Basic می باشند که با اجرای آنها ماکرو اجرا می شود. این مراحل یک لیست از دستورات می باشند که اکسل آنها را به ترتیب اجرا می کند، شروع کار از اولین خط و پایان کار در آخرین خط دستورات می باشد. توجه داشته باشید که دستورات در ماکرو باید با یک نقطه شروع شوند. علامت مساوی پس از دستور قرار می گیرد. با فراموش نمودن نقطه در آغاز خط و علامت مساوی بعد از دستور، اکسل به طور کلی دستور را نادیده می گیرد.
اولین فرمان باید sub باشد، یک فرمان بخصوص که به اکسل شروع عملیات ماکرو را خبر می دهد. آخرین فرمان باید End sub باشد یک فرمان بخصوص که به اکسل پایان عملیات ماکرو را خبر می دهد.
ماکرو ها جهت خودکار سازی عملیات تکراری و پیچیده بسیار مفید می باشند. اگر چه یک ماکرو یک سری از دستورات برنامه نویسی می باشد، نیازی به دانش برنامه نویسی جهت نوشتن یک ماکور ندارید. اکسل ویژگی ذخیره سازی ماکرو را که عملیات شما را به دستورات ماکرو ترجمه می کند در اختیاراتان می گذارد.
ایجاد یک ماکرو
با ضبط نمودن دستورات ماکرو در یک ماجول یا کاربرگ ماکرو در یک کارپوشه، می توانید از اکسل بخواهید که یک سری از فرمانها و عملیات را برایتان انجام دهد . یک ماکرو می تواند بجای عملیات ماوس یا صفحه کلید در اکسل استفاده شود. یعنی یک ماکرو می تواند عملیات را به صورت خودکار سازی شده در اکسل انجام دهد. شما فقط به سادگی یک ماکرو را جهت انجام عملیات مورد نظر در اکسل ضبط می کنید. سپس اکسل عملیات را در هر زمان تکرار می کند.
می توانید جهت ایجاد یک ماکرو دستورات را به صورت دستی وارد نموده یا از گزینه های Tools ، Macro و Record استفاده کنید. ایجاد ماکرو به صورت دستی نیاز به دقت بالا در هر مرحله از نوشتن ماکرو دارد. یک اشتباه تایپی کوچک می تواند روش عملیات ماکرو را تغییر دهد. با انتخاب نمودن Tools ، Macro و Record حرکات و عملیات انجام شده بر روی اکسل به سادگی ذخیره سازی می شوند. پس از کامل نمودن عملیات ضبط ماکرو می توانید آن را در مراحل بعد ویرایش نمایید. برای اکثر اهداف، از گزینه های Tools ، Macro و Record جهت ایجاد ماکرو ها استفاده کنید. از این طریق اجرای ماکرو را تضمین خواهید نود.
نامگذاری ماکرو
نام ماکرو می تواند 256 کاراکتر بدون فاصله داشته باشد. استفاده از اسامی کوتاه مفهوم دار جهت یافتن سریع ماکرو به وسیله شما یا سایرین توصیه می شود. ماکرو را بعد از انتخاب Tools ، Macro و Record new macro نامگذاری می کنید.
نام پیش فرض تخصیص داده شده به یک ماکرو و لغت macro و به دنبال آن یک شماره می باشد که شبیه macro2, macro1 و غیره خواهد بود. نام در کادر macro nameبه صورت متمایز شده در داخل کادر مکالمه record macro ظاهر می شود. در این حالت، می توانید نام جدید ماکرو را بر روی نام پیش فرض آن تایپ کنید. به خاطر داشته باشید، نام نباید شامل فاصله باشد. اگر از فاصله برای نام استفاده کنید، اکسل نام ماکرو را قبول نخواهد کرد.
انتخاب یک کلید میانبر
کلیدهای میانبر ماکرو باید ترکیبی از کلید ctrl و کلیدی از صفحه کلید باشد. همچنین می توانید از کلید shift, ctrl برای ساختن میانبر استفاده کنید. برای مثال، می توانید برای اجرای ماکروی font_change از کلیدهای تخصیص داده شده ctrl+shift+F استفاده کنید.
اکسل بسیاری از کلیدهای میانبر ctrl را برای استفاده خود تخصیص می دهد. اکسل در مورد کلیدهای میانبری که قبلا تخصیص داده شده به شما هشدار می دهد. جهت جلوگیری از استفاده مجدد کلیدهای تخصیص داده شده موجود، از کلیدهای ترکیبی ctrl+shift برای کلیدهای میانبر خود استفاده کنید.
تشریح ماکرو
مراحل وارد نمودن توضیحات جت توضیح ماکرو و عملیات آن اختیاری می باشد. توضیحات می توانند برای شما و سایرین هنگام کار مفید باشند. توضیحات پیش فرض شامل تاریخ ایجاد یا تغییر ماکرو و نام کاربر می باشد. در مثال ماکرو font_change شاید بخواهید در مورد تغییر فونت توسط ماکرو توضیحاتی را اضافه کنید.
ضبط ماکرو
ماکرو بر روی کاربرگ ماکرو در کارپوشه ضبط می شود. هنگام ضبط یک ماکرو اکسل نوار ابزار stop Recordingو Relative reference می شود و به نمایش می گذارد. دکمه Recording طبق نامش کار را انجام می دهد- ضبط ماکرو را متوقف می کند دکمه Relative refrece به شما اجازه حرکت بین آدرسهای مطلق و نسبی را می دهد به صورت پیش فرض، اکسل آدرس را به صورت مطلق ضبط می کند مگر آنکه دکمه Relative Reference از نوار stop Recording را جهت استفاده از آدرسهای نسبی کلیک کنید. زمانی که آدرس نسبی را انتخاب می کنید، دکمه Relative Reference از نوار ابزار تو رفته به نظر می رسد. دکمه Relative Reference را جهت فعال نمودن آدرس مطلق کلیک کنید. دکمه به حالت اول خود باز می گردد.
این تمرین کار عملی شما را برای ساختن یک ماکرو به نام Fonty changet که فونت و اندازه فونت داده های کاربرگ را تغییر می دهد قدم به قدم راهنمایی می کند. از کار پوشه MyBudget در اینجا استفاده نمایید.
ذخيره سازي يك ماكرو
هنگام ذخيره سازي كارپوشه اكسل ماكروي روي كاربرگ ماكرو را با كارپوشه ذخيره سازي مي كند. لازم نيست هيچ كاري براي ذخيره سازي ماكرو انجام دهيد. در صورت بسته كار پوشه بدون ذخيره سازي تغييرات و به صورت تصادفي, اكسل ماكرو را ذخيره سازي نمي كند. بايد از اول شروع نموده و ماكرو را مجددا ايجاد كنيد.
اجراي ماكرو
پس از ايجاد ماكرو مي توانيد از ان جهت تكرار فرمانها استفاده كنيد. اكسل روشهاي متفاوتي را براي اجراي ماكرو در اختياراتان مي گذارد. در اينجا دو روش متداول براي اجراي ماكرو ذكر شدهاند: گزينه هاي Tools, marco, macros و run. استفاده از كليد ميانبر ماكرو (در صورتي كه آن را تعريف نموده باشيد).
سريعترين روش اجراي ماكرو استفاده از كليد ميانبر مي باشد. اگر ماكرو كليد ميانبر نداشته باشد بايد از گزينه هاي Tools, marco, macros و run. استفاده كنيد.
براي اجراي ماكرو به وسيله كليد ميانبر كليد ميانبر تخصيص داده شده را فشار دهيد. قبل از انجام اين كال سلي را بايد انتخاب كنيد.
رفع خطاهاي ماكرو
ماكرو ها هميشه به صورت عالي كار نمي كننند. شايد اشتباهي هنگام ضبط نمودن ماكرو صورت گرفته باشد يا اينكه يك مرحله را فراموش كرده باشيد. نگران پيغامهاي خطا در ماكرو نباشيد. مي توانيد آنها را به وسيله ابزارهاي ويرايش اضافه نمودن و حذف فرمانها از دستورات ماكرو رفع نماييد.
يك ماكرو شايد نياز به فرمانهاي و عمليات جديد داشته باشدي يا شايد بخواهيد تعدادي فرمان يا عمليات را حذف نمايد. در صورت تمايل به انجام تغييرات بر روي عمليات و فرمانهاي موجود در يك ماكرو يا رفع خطاهاي آن چه بايد كرد؟ مشكلي نخواهد داشت مي توانيد اين تغييرات را با ويرايش نمودن ماكرو اعمال نماييد.
مشاهده كد يك ماكرو
دستورات ماكرو به زبان برناه نويسي نسبتا ساده visual basic نوشته شده اند با كاربرگ ماكرو بر روي صفحه مانيتور مي توانيد با ويرايش فرمانها تغييرات را بر روي دستورات visual basic اعمال كنيد. مي توانيد فرمانهاي ماكرو را حذف كنيد, محتويات سل كاربرگ را ويرايش نماييد, يا حتي فرمانهاي جديدي را به ماكرو اضافه كنيد. براي انجام تغييرات نياز به دانش فني visual basic خواهيد داشت.
مي توانيد با كاربرگ ماكرو كد ماكرو را مشاهده كنيد. براي بازنمودن كاربرگ ماكرو, گزينه هاي macro, tools و macros را انتخاب كنيد. در كادر مكالمه macro ماكرو font_change را انتخاب كنيد دكمه edit را كليك كنيد.
سنكته : روش ديگر مشاهده كد ماكرو انتخاب نمودن گزينه هاي visual basic editor, macro,tools يا فشار دادن كليدهاي تركيبي alt+f11
ويرايش نمودن ماكرو
مي توانيد يك فرمان را به صورت دستي جهت تغيير دادن ماكرو اضافه, حذف يا ويرايش كنيد با ويندو visual basic instructions در سمت راست صفحه مانيتور جهت انجام تغييرات كار خواهيد كرد. براي مشاهده بهتر عمليات دراين ويندو دكمه maximize در گوشه فوقاني و راست پنجره را كليد كنيد.
اشكال زدايي مرحله اي ماكرو
هنگامي كه از step mode جهت اشكال زدايي ماكرو استفاده مي كنيد, ويژوال بيسك يك تيرك زرد رنگ در حاشيه چپ پنجره را به نماي مي گذارد و دستورات خط مربوطه از ماكرو را با رنگ زرد متمايز مي كند. براي آنكه ببينيد آيا دستور شامل خطا, منجمله خطاي تايپي مي شود آن را به دقت مورد مطالعه قرار دهيد.
براي استفاده از step mode جهت اشكال زدايي ماكرو , گزينه debug از نوار منوي visual basic را انتخاب كنيد. سپس سه انتخاب از step mode خواهيد داشت.
step info- نشانگر step mode را در داخل دستوارت قرار مي دهد و آنها را به صورت تك دستور و خطي اجرا مي كند.
step over- نشانگر step mode را در داخل پنجره code قرار مي دهد و يك رويه يا عبارت را اجرا مي كند.
step out- دستورات باقيمانده در رويه را از نقطه اجرا به بعد اجرا مي كند.
از فرمانهاي step mode جهت اجراي دستورات به صورت مرحله اي براي پيدا نمودن هر گونه خطا استفاده كنيد
پيوست نمودن يك ماكرو به نوار ابزار
ضمن ساختن ماكرو ها شايد نام يا حتي نام ميانبر ماكرو را فراموش كنيد. براي انتخاب ماكرو از گزينه هاي run,macro,tools استفاده كنيد. اما اين كار نياز به استفاده تكراري از ليست اسامي در كادر مكالمه macro دارد. روش بهينه اجراي ماكرو تخصيص دادن يك دكمه به نوار ابزار مي باشد. با انجام اين كار مي توانيد ماكرو را در هر زمان به وسيله ماوس اجراي كنيد. پيوست نمودن ماكرو ها به يك نوار ابزار روش سريع سازماندهي ماكرو ها جهت استفاده ساده مي باشد.
استفاده از يك ماكرو در ساير كارپوشه ها
دانستن مسائل پشت پرده هنگام ايجاد يك ماكرو مهم مي باشد. هنگامي كه يك ماكرو را ايجاد مي كنيد, اكسل ضربات صفحه كليد و عمليات ماوس شما را به عنوان يك سري دستورات بر روي كاربرگ ماكرو ذخيره سازي مي كند. مي توانيد به وسيله اكسل دستورات را در يكي از سه مكان زير ذخيره سازي نماييد.
·كار پوشه فعال
·يك كار پوشه جديد
·كارپوشه personal Macro
اكسل به صورت پيش فرض ماكرو را در كارپوشه فعال ذخيره سازي مي كند. اگر ماكرو فقط بر روي كارپوشه جاري قابل اجرا مي باشد ماكرو را بر روي كارپوشه فعال ذخيره سازي نماييد. اگر ماكرو شما در يك كارپوشه جديد قابل اجرا مي باشد يك كاپوشه جديد را ايجاد نموده و ماكرو را بر روي آن ذخيره سازي نماييد. اگر ماكروي شما در هر كارپوشه اي قابل اجرا باشد ماكرو را بر روي كارپوشه personal macro ذخيره سازي نماييد. كارپوشه personal macro هميشه پس از آغاز اكسل موجود و قابل استفاده مي باشد. مي توانيد كارپوشه personal macro را جهت به نمايش گذاشتن كاربرگ ماكرو در هر زمان باز نماييد.
با ضبط ماكرو و انتخاب گزينه هاي record new macro, maco, macro, tools اكسل كادر مكامله record macro را باز مي كند در اين كادر مكالمه ذخيره سازي ماكرو را وارد كنيد. تيرك فهرستي store macro in را جهت مشاهده گزينه ها كليك كنيد.
فهميدن ويروسهاي ماكرو
حتما تاكنون مطالب زيادي را درباره ويروسها و نحوه انتقال آنها از ساير كامپيوتر هاي يك شبه اينترنت يا ديسك ها بر روي كامپيوتر خود شنيده ايد. اگر ماكروي شما حاوي ويروس باشد, چه بايد كرد؟ ويروسهاي منتقل شده از يك شبكه غير مطمئن يا پايگاه اطلاعاتي دراينترنت مي توانند ماكرو هاي شما را آلوده سازند.
جهت جلوگيري از آلودگي كامپيوتر خود به وسيله ويروسهاي ماكرو مي توانيد يك پيغام را هنگام باز نمودن كارپوشه حاوي ماكرو به نمايش بگذاريد. اين پيغام هشدار دهنده درهر حال در صورت وجود يا عدم وجود ويروس در ماكرو به نمايش گذاشته مي شود. پس از به نمايش در آمدن پيغام, حتما در مورد منبع كارپوشه انتقال يافته اطمينان حاصل نماييد. جهت تست كارپوشه ها براي ويروسهاي ماكرو و به نمايش گذاشتن پيغام هشدار دهنده گزينه هاي macro,tools و سپس security را انتخاب كنيد. كادر مكالمه security باز مي شود و با كليد tab مي توانيد جابجا شده و آن را فعال كنيد.
گزينه high امكان اجراي ماكروهاي علامتگذاري شده از منابع مطمئن را فراهم مي سازد. پس از انتخاب گزينه high ماكرو هاي علامتگذاري نشده را به صورت خودكار غير قابل استفاده مي شوند گزينه medium را انتخاب نموده و تاييد كنيد. اين گزينه پيغام هشدار ويروس را به نمايش مي گذارد. گزينه low كاپوشه ها را جهت ويروس يابي تست نمي كند. بنابر اين گزينه low پيغام هشدار ويروس را به نمايش نمي گذارد.
پس از بازنمودن يك كاربرگ كه شامل ماكرو ها بوده و درجه امنيت آن medium مي باشد اكسل پيغام هشدار نشان مي دهد. اگردكمه disable macros را كليد كنيد. اكسل ماكرو هاي كاربرگ را ناديده مي گيرد. اگر دكمه enable macro را كليد كنيد اكسل اجازه استفاده از ماكرو ها در كارپوشه را به شما مي دهد.
ديد و اهداف و طرح : I : ديد : چند سال قبل مشخص شد كه ديد و تخيل يك جابه جايي سيم كم هزينه و كم قدرت مبني بر راديو عملي بود. چنين ارتباط حاضردر همه جايي پايه اي را براي ارتباط دادن وسايل قابل حمل با يكديگر در يك حالت اختصاصي با ايجاد كردن شبكه هاي شخصي كه مزاياي مشابهي با همتاي محيط اداريشان شبكه محلي دارند فراهم ميكند. در سالهاي اخير ارتباط بي سيم يك زمينه فعالي از تحقيق بوده است همانطور كه ما شاهد تعداد زيادي از ابتكارات صنعتي و دولتي بوده – ايم ، تلاشهاي پژوهشي و فعاليت هاي استانداردي كه هدفشان فعال سازي فن آوريهاي شبكه سازي بي سيم و موبايل است. درنتيجه ما امروز مجموعه مختلفي از فن آوريهاي دسترسي به بي سيم شبكه هاي ماهواره اي تا سيستم هاي سلولي منطقه وسيع و از حلقه محلي بي سيم و كامپيوتر شخصي تا شبكه محلي بيسيم را داريم . هرچند اكثر اين راه حل ها سناريوهايي با برنامه محدود ومخصوصي را هدف قرار ميدهند. با تمام چنين تلاشهايي كه صرف فن آوريهاي ارتباط بيسيم ميشود ، ما هنوز فاقد يك چارچوب جهاني هستيم كه روشي براي دستيابي به اطلاعات بر اساس مجموعه مختلفي از وسايل
( به طور مثال PDAs و كامپيوتر شخصي موبايل و فراخوان هاي راديويي و غيره ) به يك روش موثر و كاربر پسند و بدون عيب هستيم . اگر چه ما درمورد افزايش ناگهاني فعاليت ها دراين زمينه تشويق و تحريك شده ايم. ، ما مايليم يك راه حل بيسيم را مشاهده كنيم كه كليه اين فن آوريها را در بخشهاي مختلفي با هم جمع ميكند و درهمان زمان يك راه حل ارتباطي جهاني و حاضر درهمه جا را بين وسيله هاي محاسباتي و ارتباطي و پشتيباني كننده فراهم ميكند. Bluetooth تلاشي توسط كنسزسيومي از شركت ها جهت درك كردن اين ديد ميباشد. IBM و اينتل و نوكيا و توشيبا و گروه منافع خاص bluetooth كه در فوريه 1998توسط رهبران تلفن موبايل و محاسبات شكل گرفتند يك ويژگي فن آوري بدون حق امتياز را طرح ريزي كردند درجايي كه هر يك از شركتهاي اوليه بخش مهمي در فعال سازي اين ديد بودند . ما معتقديم كه bluetooth ميتواند ارتباط بيسيم را براي وسايل شخصي و تجاري موبايل متحول سازد و صداي بي عيب و ارتباطات اطلاعاتي را ازطريق ارتباطات راديويي كم برد را فعال سازد و به كاربران اجازه دهد كه به آساني و به سرعت تغيير حدود وسيعي از وسايل را بدون نياز به كابل ها ارتباط دهد وقابليتهاي ارتباطات را براي كامپيوترهاي موبايل و تلفن هاي موبايل و ديگر وسايل متحرك درداخل و خارج ازاداره توسعه دهد. با درنظر گرفتن يك تغيير حدود وسيعي از وسايل محاسباتي و ارتباطي ازقبيل PDAs و كامپيوترهاي كوچك نات بوك و پيجر ها و تلفن هاي موبايل با قابليتهاي مختلف ما انتظار داريم كه bluetooth يك راه حلي را براي دسترسي به اطلاعات و ارتباطات شخصي با فعال ساختن يك همكاري بين وسايل در مجاورت يكديگر فراهم كند درجايي كه هر وسيله براساس رابط كاربرش وظيفه داتي آنرا فراهم ميكند. و فاكتور و هزينه و محدوديتهاي قدرت را فراهم ميكند. به علاوه فن آوري bluetooth تعداد وسيعي از مدل هاي كاربري جديد را براي وسايل قابل حمل فعال ميسازد. براي توليد كنندگان كامپيوترهاي نات بوك توسعه يك راه حل فركانس راديويي كم برد كامپيوتر نات بوك را قادر ميسازد تا به انواع مختلفي از تلفن هاي موبايل و ديگر كامپيوترهاي نات بوك ارتباط پيدا كنند. براي توليد كنندگان دستگاه فرشتنده و گيرنده تلفن موبايل راه حل فركانس راديويي بسياري از سيمهاي مورد نياز براي تبادل اطلاعات صوتي و اطلاعاتي را حذف ميكند. كيتهاي بي دسته بيسيم حتي زماني كه تلفن موبايل دريك كيف نگه داشته ميشود به كار انداخته ميشوند. به عنوان مثالي براي مدل هاي كاربري جديد ما با به كار گيري يك تلفن موبايل به عنوان يك پل كامپيوتر موبايل را به اينترنت وصل ميكنيم . دراين سناريو اتصال به اينترنت به طور خودكار برقرار ميشود و بدون نياز به تلاشي آگاهانه ازطرف كاربر جهت متصل كردن كامپيوتر موبايل به تلفن موبايل و پيكر بندي اين دو وسيله جهت ارتباط دادن به طور خودكار پيكربندي ميشوند. ما به اين امر به عنوان يك محاسبه مخفي يا يك مدل ارتباطي نا آگاهانه اشاره ميكنيم كه الگويي قدرتمند براي برنامه هاي جديد و مهيج است. يك ويژگي خيلي مهم bluetooth اين است كه آن را از ديگر فن آوريهاي بي سيم متمايز ميسازد طوري كه آن براساس كاركردهاي فراهم شده توسط وسايل مختلف مدل هاي قالبليت استفاده تركيبي را فعال ميسازد . دوباره بگذاريد كه ما يك ارتباط بين يك PDA ( وسيله محاسباتي ) و يك تلفن موبايل را ( وسيله ارتباطي ) با به كار گيري bluetooth و يك ايستگاه پايه سلولي با فراهم كردن ارتباط براي ارتباطات صوتي و اطلاعاتي درنظر بگيريم. دراين مدل PDA كاركرد آن را به عنوان وسيله محاسباتي حفظ ميكند و تلفن نقش آن را به عنوان وسيله ارتباطي حفظ ميكند . هر يك از اين وسايل به طور موثري كاركرد خاصي را فراهم ميكنند با اين وجود كاركردشان جدا گانه است و هر يك ميتوانند به طور مستقلي ار يكديگر استفاده شوند. هرچند وقتي اين وسايل نزديك يكديگر هستند آنها يك كاركرد تركيبي مفيدي را فراهم ميكنند. ما باور ميكنيم كه اين كاركرد و مدل ارتباطي براساس تركيبي از فن آوريهاي دسترسي به بي سيم كه هر كدام با قابليت هاي وسيله مختلف و نيازمنديها مطابقت دارند يك نمونه قدرتمندي است كه ارتباطات بيسيم فراگير و حاضر در همه جا را فعال ميسازد. بسياري از اين فن آوريهاي ارتباط بي سيم امروز وجود دارند ، هرچند جهت فراهم كردن يك ارتباط بي سيم و شبكه سازي و چارچوب برنامه براي درك كردن را ه حل كلي نيازي ديده ميشود. اين دقيقا جدول گروه منافع خاص bluetooth است . علاوه بر تركيب كردن منابع شبكه خصوصي ، ارتباط فركانس راديويي شبكه شخصي را به زير ساختار سيم دار ارتباط ميدهد. يك نقطه دستيابي به اطلاعات دريك اداره و اتاق كنفرانس يا كيوسك فرودگاه به عنوان يك دروازه اطلاعاتي براي يك كامپيوتر نات بوك يا دستگاه فرستنده و گيرنده تلفن موبايل عمل ميكنند. باقي مانده اين مقاله به شرح زير سازمان بندي ميشود. بخش II اهدافي را توضيح ميدهد كه اميدوار است گروه ذينفع خاص به آن برسند. بخش III يك مروري از طرح bluetooth را فراهم ميكند ازآنجائيكه آن درحال حاضر وجود دارد . بخش IV گروه ذينفع خاص bluetooth را با ديگر ابتكارات صنعتي مقايسه ميكند كه فن آوري بي سيم را دربر ميگيرد و بخش V مقاله را خلاصه ميكند.
II : اهداف : مدل هاي كاربردي جديد : گروه ذينفع خاص تلاش ميكند كه مدل هاي كاربردي جديد را فعال سازد و منافع اضافي را براي كاربران تلفن قابل حمل و محصولات كامپيوتر ايجاد كند. علاوه بر مثالهاي ارائه شده در بخش I ، گروه ذينفع خاص ميخواهد كه احتمالات آينده زير را قادر سازد. 1- تلفن سه در يك : دراين سناريو شما ميتوانيد كه از همان تلفن درجايي كه شما هستيد استفاده كنيد. زماني كه شما در اداره هستيد ، تلفن شما به عنوان يك اينتر كام عمل ميكند. ( هيچ هزينه تلفني ندارد ) و درمنزل آن به عنوان يك تلفن قابل حمل عمل ميكند. ( هزينه خط ثابت ) وزماني كه شما در خارج از محوطه هستيد تلفن به عنوان يك تلفن موبايل كاركرد دارد . 2- حقه كامپيوتر چمداني : زمانيكه نات بوكتان هنوزدر كامپيوتر چمداني است از پست الكترونيكي استفاده كنيد. وقتي نات بوك شما يك پست الكترونيكي دريافت ميكند شما در تلفن موبايلتان با يك هشدار روبه رو مي شويد. شما نيز ميتوانيد كليه پست هاي الكترونيكي آينده را جستجو كنيد و آنهايي را بخوانيد كه در پنجره تلفن موبايل انتخاب ميكنيد. 3- هم زمان ساز خودكار : همزماني زمينه اي خودكار شماره به روز در مي آورد. همزماني خودكار اطلاعات در روميزيتان و نات بوك و دستيار ديجيتال شخصي و تلفن موبايل . به طور مثال به محض اينكه شما ليست آدرس و تقويم را درنات بوك دفترتان وارد كنيد به طور خودكار به روز در مي آيد كه با يكي در روميزيتان يا بالعكس مطابقت دارد . يك كارت تجاري را در تلفنتان جمع آوري كنيد و در كامپيوتر شخصي نات بوكتان آن را به ليست آدرستان اضافه كنيد.
B : رقابت هاي سيستم : مدل هاي كاربردي توضيح داده شده در بالا نياز دارند كه نياز هاي مختلف سيستم برآورده شود. در اين بخش ما چندين شرط و رقابتي كه آنها ارائه ميكنند را مرور ميكنيم.
جابه جايي صوت و اطلاعات : پروتوكل هوايي بايد از صوت آني با كيفيت خوب پشتيباني كند درجايي كه خوب كيفيت خط تلفن سيمي را درنظر ميگيرد. كيفيت صوت براي كاربران نهايي مهم است كه به آن عادت دارند ،و براي موتورهاي تشخيص گفتار كه دقتشان به آن بستگي دارد نيز مهم است .
ميتوانند اتصلات اختصاصي را برقرار كنند. : ماهيت ديناميك تحرك ايجاد كردن فرضياتي درمورد محيط عملياتي را غير ممكن ميسازد . واحد هاي bluetooth بايد بتوانند ديگر واحد هاي سازگار را آشكار سازند و ارتباطاتي رابا آنها برقرار سازند. يك تك واحد بايد بتواند ارتباطات چند گانه را علاوه بر پذيرفتن ارتباطات جديد برقرار كند درحاليكه ارتباط براي كاربر گيج كننده و غير قابل قبول به نظر ميرسد. خصوصاً اگر ما بخواهيم كه از محاسبه نا آگاهانه در هنگام حفظ كردن توانايي براي انجام دادن عمليات محاوره اي پشتيباني كنيم.
تحمل كردن تداخل از ديگر منابع در يك باند پروانه ندار : راديوي blutooth در باند 2.4 گيگاهرتز پروانه ندار عمل ميكند جايي كه بسياري از دستگاه هاي فرستنده فركانس راديويي خارج ميشوند. اين حقيقت كه اجاق هاي ميكرو ويو عمل كننده در اين فركانس يك دليلي است كه چرا اين باند دراكثر كشورها امتياز ندارد. رقابت جلوگيري كردن از تنزل عملكرد است درزماني كه در دستگاه هاي فرستنده ديگر فركانس راديويي از جمله ديگر شبكه هاي شخصي در كاربرد نزديك در عمليات هستند.
كاربرد جهاني : نه تنها كابل هاي استاندارد مجهز به انواعي از كنكتورها هستند ، استاندارد هاي مختلف در محل هاي مختلف جغرافيايي درسرتاسر جهان وجود دارند. مسافران متحرك با تجربه عادت كرده اند كه تعدادي از اتصال دهنده هاي شبكه و تلفن و قدرت مختلف را حمل كنند. رقابت در اينجا ماهيتي منظم دارد كه بسياري از دولتها در فن آوري فركانس راديويي مجموعه اي از محدوديتهاي خودشان را دارند. و زمانيكه باند 2.4 گيگا هرتز ازطريق اكثر قسمتهاي جهان بدون امتياز است ، آن در تعدادي از كشورهاي مختلف درتغيير حدود و انشعاب متغير است.
مقدار مشابهي از حفاظت در مقايسه با كابل : علاوه بر ماهيت كم برد راديو و تكنيكهاي با طيف گسترده ، برنمامه ها و پروتوكول هاي ارتباطي bluetooth نيز مكانيسم هاي موثق سازي و پوشيدگي را فراهم ميكنند. كاربران مطمئنا نميخواهند كه ديگران به مكالماتشان گوش دهند و انتقالات اطلاعاتشان را تجسس ميكنند يا براي دسترسي به اينترنت از تلفن هاي موبايلشان استفاده ميكنند.
اندازه كوچك جهت تطبيق كردن يكپارچگي با انواع وسايل : مدول راديوي bluetooth بايد به اندازه كافي كوچك باشد تا اجازه يكپارچگي رابه وسيله هاي قابل حمل بدهد. وسيله هاي قابل فرسودگي ازقبيل تلفن هاي موبايل و دستگاه هاي هدفون و علامت هاي كوچك براي يك مدول راديويي فضاي كمي دارند.
مصرف قدرت نا محسوس در مقايسه با وسيله اي كه راديو استفاده ميكند. : بسياري از وسايل bluetooth با باتري كارميكنند. اين شرايط يكپارچگي راديوي bluetooth را نشان ميدهند و نبايد به طور مهمي عمر باتري وسيله را كم كند.
تشويق كردن استقرار حاضر در همه جاي فن آوري : براي نائل شدن به اين هدف ، گروه ذينفع خاص يك مشخصه آشكاري را با تعريف كردن راديو و ارتباط فيزيكي و برنامه ها و پروتوكل هايي در سطح بالاتر و خدمات لازم براي پشتيباني كردن از مدل هاي كاربردي در ديد طرح ريزي ميكنند. مشخصات تحت اصطلاحات انتخاب مطلوب از جمله بدون امتياز براي اعضاي گروه ذينفع خاص دردسترس قرار خواهند گرفت.
C : مشخصات : مشخصات bluetooth با تضمين كردن عمليات داخلي عملي بين وسيله هاي bluetooth توليد كنندگان مختلف شرايط را تعيين ميكنند. مشخصات bluetooth پيشرفت ميكنند و هر مطلب ارائه شده در اينجا اوليه است بدون توجه درمعرض تغيير است. مشخصات از دو مجموعه از اسناد تشكيل شده است. 1- تعريفات پروتوكول و راديو 2- شرايط موافقت – شكل يك چارچوب برنامه را در ارتباط با پشته راديو وپروتوكول مطرح ميكند. راديو از فرستادن و دريافت كردن جريانهاي بيت تلفيقي مراقب به عمل مي آورند. پروتوكول باند پايه زمان بندي و فرايند ارتباطات و بسته هاي كوچك و كنترل جريان ارتباطي را تعيين ميكند. مدير ارتباطي مسئوليت مديريت كردن حالتهاي ارتباطي را ميپذيرد و fairness را درميان پيروها و مديريت قدرت و ديگر وظايف مديريت به اجرا در مي آورد. كنترل ارتباط منطقي تسهيم كردن پروتوكول هاي در سطح بالاتر و قطعه بندي و دوباره سوار كردن بسته هاي بزرگ و كشف وسيله را ترتيب ميدهد. اطلاعات صوتي مستقيما برروي باند پايه نگاشت ميشود درحاليكه كنترل صوتي بالاي كنترل ارتباط منطقي لايه بندي ميشود. و بالاي لايه ارتباطي اطلاعاتي RFCOMM و پروتوكول هاي سطح شبكه چكيده هاي ارتباطات مختلف را فراهم ميكنند. RFCOMM نمونه سازي كابل سري را با به كارگيري يك زير مجموعه اي از استاندارد ETSI GSM 07.10 فراهم ميكند. ديگر قسمتهاي مشخصات bluetooth با عملي بودن داخلي با ديگر پروتوكول ها و پشته هاي پروتوكول ارتباط دارد . تعيين كردن TCP/IP نسبت به bluetooth نياز به اين دارد كه پل سازي و و وضوح آدرس و تعيين كردن MTU و نگاشتهاي داده پراكني و multicast حل شوند. براي سرعت دادن به تعداد برنامه هاي مخصوص بيسيم گروه ذينفع خاص بلوتوس عملي بودن داخلي را با پشته هاي پروتوكول لايه بالاتر IrDA و WAP درنظر ميگيرند. به طور مثال IrOBEX يك فرمت مستقل از پس وپيش كردن و پروتوكول جلسه را براي مبادله شيء تعيين ميكنند و به عنوان مبنايي براي انواعي از برنامه ها تبادل فايل ها و كارت هاي تجاري براي هم زماني كردن آدرس ها و زمان بندي هاي تقويمي مورد استفاده قرار ميگيرند. بخش ديگر اين مشخصه شرايط موافقت را تعيين ميكند. به علت انواع وسيعي از وسيله هاي احتمالي بلوتوس مجموعه مختلفي از شرايط مورد نياز هستند. به طور مثال يك نفرانتظار نداردكه يك هدفون صوتي همان نيازمنديهاي حد اقل را به عنوان يك كامپيوتر نوت بوك داشته باشد. هدف بخش پذيرش مشخصه هر وسيله اي را تضمين ميكند كه يك علامت ويژه بلوتوس دارند كه از مجموعه حد اقلي از منافع براي كاربرش پشتيباني ميكند.
III : طرح بلوتوس : بلوتوس با تاكيد برروي نيرومندي و كم هزينه بودن تعيين و طراحي شده است . پياده سازي آن براساس يك كارايي بالا است با اين وجود هزينه كم فرستنده و گيرنده راديوي را مجتمع ميكند. بلوتوس در كاربران متحرك و تجاري مورد هدف قرار گرفته است كه نياز دارند يك ارتباطي يا شبكه كوچكي را بين كامپيوترشان و تلفن موبايل و ديگر دستگاه هاي جانبي ايجاد كنند. برد مورد نياز و اسمي راديوي بلوتوس ازاينرو به 10 متر تنظيم شده است . براي حمايت كردن از ديگر كاربران به طور مثال محيط خانه مجموعه تراشه بلوتوس ميتواند با يك تقويت كننده توان خارجي براي گسترش دادن برد تقويت و افزايش يابد. به طور مثال سخت افزار باند پايه كمكي كه 4 كانال صوتي يا بيشتر را پشتيباني ميكند نيز ميتواند اضافه شود. اين افزايش ها در مجموعه تراشه پايه كاملا با مشخصات اسمي سازگاري دارند و ممكن است اضافه شوند و بستگي به برنامه دارند. بلوتوس از يك ساختار پيكونت اختصاصي استفاده ميكند كه بعد به شبكه توزيع اشاره ميكنند. بلوتوس در باند بين المللي 2.4 GHz ISM به كار مي افتد و با يك ميزان اطلاعات فاحش يك مگا بيت در ثانيه به كار انداخته ميشوند و ويژگي مصرف پايين انرژي را براي استفاده شدن در وسيله هاي كار كرده با باتري دارند. با فن آوري شبكه توزيع كه بعدا در اين مقاله توضيح داده ميشود رسيدن به يك توان كلي بيش از 10 مگا بيت در ثاينه يا بيست كانال صوتي در يك شبكه توزيع كاملا بسط يافته امكان پذير بوده است. اين ساختار نيز گسترش دادن برد راديويي را به سادگي با اضافه كردن واحد هاي اضافي بلوتوس به عنوان پل هايي درمكان هاي راهبردي ممكن ميسازد. يك تك واحد ميتواند يك ميزان انتقال داده حد اكثر 721كيلو بيت در ثانيه را يا ماكزيموم 3 كانال صوتي را پشتيباني ميكنند. يك تركيبي از انتقال داده و صوتي نيز به منظور پشتيباني كردن از برنامه هاي چند رسانه اي نيز امكان پذير هستند. يك طرح كد گذاري صوت قوي با يك سرعت 64كيلو بيت درثانيه در كانال صوتي مورد استفاده قرار ميگيرد. جهت نگه داشتن اين سرعت انتقال در محيط راديويي شلوغ يك پروتوكول سويچينگ بسته كوچك با جهش فركانس و تكنيك هاي پيشرفته برنامه نويسي به كار گرفته ميشود. بايد ذكر شود كه بلوتوس ويژگي يك تنزل مطبوع سرعت هاي انتقال صوت و اطلاعات را در محيط هاي شلوغ فركانس راديويي دارد.
A : تعاريف راهبر پيرو : در شبكه بلوتوس كليه واحد ها واحد هاي همتايي با رابط هاي نرم افزاري وسخت افزاري هستند كه با يك آدرس 48 بيتي منحصر به فرد مشخص شده است. در آغاز يك ارتباط ، واحد اغازين به طور موقتي به عنوان يك راهبر تعيين ميشود.
اين تعيين تنها درطول اين ارتباط معتبر است . آن راهبر است كه ارتباط را آغاز ميكند و ترافيك ارتباطي را كنترل ميكند. پيرو ها جهت كاهش دادن تعداد بيت هاي نشاني دهي مورد نياز براي ارتباطات فعال يك آدرس عضو 3بيتي موقتي را تعيين كردند.
B : توپولوژي شبكه : شبكه بلوتوس از اتصالات نقطه به نقطه و نقطه به چند نقطه پشتيباني ميكنند. يك پيكونت شبكه اي است كه با يك راهبر و يك يا چند پيرو تشكيل ميشود. هر پيكونت با يك كانال جهش فركانس مختلف تعريف ميشود. كليه واحد هاي شركت كننده در همان پيكونت براي اين كانال همزمان شده اند .
C : پروتوكول هوايي قوي و برد سازگار : براي به دست آوردن بيشترين نيرومندي ممكن براي محيط هاي راديويي پارزيت دار ، بلوتوس از يك پروتوكل گزينشي بسته كوچك براساس يك طرح جهش فركانس با 1600جهش در ثانيه استفاده ميكند. طيف فركانس موجود كامل با 97 جهش از پهناي باند يك مگا هرتزي مورد اسفاده قرار ميگيرند كه با استاندارد IEEE 802.11 مقايسه ميشوند. اين جهش فركانس يك پهناي باند منطقي و بهترين ايمني تداخلي را با به كار گيري طيف موجود كامل باند صنعتي و علمي و پزشكي آزاد 2.4 گيگا هرتزي ارائه ميدهد. كانال هاي مجازي با به كار گيري ترتيب هاي پرش شبه تصادفي معين ميشوند. طرح پرش فركانس با درخواست تكراري اتوماتيك سريع و بررسي افزونگي چرخه اي و تصحيح خطا در جلو براي داده ها تركيب ميشود. براي صوت يك طرح تلفيق دلتاي شيب دار متغير استفاده ميشود. براي ذخيره كردن توان و به حد اقل رساندن مسائل تداخل يك شاخص قدرت سيگنال هاي دريافت شده بايك برد ديناميك 72 دسيبل به كار گرفته ميشود. شاخص قدرت سيگنال هاي دريافت شده سيگنال دريافت شده را از واحد هاي مختلف اندازه گيري ميكند و توان خروجي فركانس راديويي را با شرايط دقيق درهر نمونه تطابق ميدهد. يعني با يك موشواره يا هدفون توان خروجي به برد يك متر محدود ميشود درجايي كه يك دستگاه هدفون به يك برد 100 متري يا بيشتر نياز دارد .
D : برقرار كردن اتصالات شبكه : درزمان ابتدا برقرار كردن يك شبكه يا اضافه كردن مولفه ها به پيكونت واحد ها بايد شناسايي شوند. واحد ها ميتوانند به طور ديناميك يا پويايي در هر زمان به پيكونت وصل شوند يا قطع شوند. دو اختيار موجود منجر به زمانهاي اتصال 0.64, 1.28 ثانيه اي ميشود. و اين زماني كاربرد دارد كه آدرس واحد معلوم باشد و از زمان اتصال قبلي بيش از 5 ساعت نگذشته باشد . يك واحد نيازي ندارد كه درتمام زمانها متصل شود از آنجائيكه يك تاخير نمونه كمتر از يك ثانيه براي شروع تغييرات مورد نياز است. ازاينرو وقتي كاربردي ندارند واحد ميتواند در حالت خواب يا آماده باش باشد و اكثر اوقات در جايي است كه يك نوسانگر كم قدرت داير ميباشد. اين البته براي عملكرد باتري سودمند است. قبل از برقراري هر ارتباطي كليه واحد ها در حالت آماده باش هستند. در اين حالت يك واحد غيراتصالي تنها به هر 1.28 ثانيه يا 2.56 ثانيه به پيامها گوش ميدهد وبستگي به اختيار انتخابي دارد . هر زمان كه واحدي بيدار شود آن به يكي از 32 فركانس پرشي تعيين شده براي اين واحد گوش ميدهد. روش اتصال با يكي از واحد هاي راهبر آغاز ميشود.درصورتي كه آدرسي از قبل معلومن باشد يك اتصال با يك پيام PAGE يا برقرار ميشود و درصورتي كه آدرس نامعلوم باشد به دنبال يك پيام بعدي PAGE با پيام درخواست ايجاد ميشود. در حالت Page اوليه واحد صفحه بندي ( كه راهبر است ) رشته اي از 16 پيام صفحه يكسان را به 16 فركانس پرشي مختلف تعيين شده براي واحد صفحه بندي شده ميفرستد. ( پيرو ) رشته نيمي از توالي فركانس ها را دربر ميگيرد كه پيرو ميتواند بيدار شود. آن 128 يا 256 بار تكرار ميشود كه بستگي به نيازهاي واحد صفحه بندي شده دارد . اگر بعد از اين زمان هيچ پاسخي دريافت نشود راهبر يك رشته اي از 16 پيام صفحه برابر را به 16 فركانس پرشي باقي مانده انتقال ميدهد. تاخير حد اكثر قبل از اينكه راهبر به پيرو برسد دو برابر
1.28 يا 2.56 ثانيه است درصورتي كه تناوبي از 1.28 ثانيه براي صفحه بندي و به ترتيب تناوب 5.12 ثانيه اي با 2.56 ثانيه اي انتخاب شوند. به طور آشكاري يك سبك وسنگين كردن بين تاخير دستيابي و ذخيره هاي قدرت به علت انتخابات موجود وجود دارد . فركانس هاي پرشي در اولين رشته از صفحه بر اساس تخمين زماني پيرو راهبر هستند. رشته شامل پرش بيدار شده تخميني و 8 پرش قبل از اين پرش و7 پرش بعد از اين پرش
است. درنتيجه تخمين ميتواند در خطا +_7 باشد و هنوز راهبر با اوليت رشته از صفحه به پيرو ميرسد. چون تخمين در هر برقراري اتصال به روز در مي آيد تاخير اكتسابي درزماني كه يك زمان كوتاه تر از زمان آخرين اتصال واحد ها ميگذرد كوتاه تر است. با يك اشتباه نوسانگر كم قدرت بهتر از +-250ppm ، اولين رشته هنوز بعد از حد اقل 5 ساعت خطا بدون هيچ اتصالي معتبر است. يعني براي يك دوره زماني حد اقل 5 ساعت از زمان آخرين اتصال زمانهاي ميانگين اكتساب به ترتيب 0.64 و 1.28 ثانيه هستند. اگر اولين رشته فركانس بيداري پيرو را دربر نگيرد دومين رشته را دربر ميگيرد و تاخيرات فراگير ميانگين 1.92 و 3.84 ثانيه هستند. پيام INQUIRY به طور نمونه براي پيدا كردن چاپگرهاي عمومي و فاكس ها و تجهيزات مشابه با يك آدرس نامعلوم كاربرد دارد . پيام INQUIRY خيلي شبيه به پيام صفحه است اما ممكن است براي جمع آوري كردن كليه پاسخها به يك دوره رشته اضافي نياز داشته باشد. اگر هيچ داده اي نياز به انتقال نداشته باشد واحد ها ممكن است درجايي كه تنها يك تايمر داخلي اجرا ميشود در وضعيت HOLD نگه داشته شوند. درزماني كه بيرون از وضعيت HOLD هستند انتقال داده ها ميتواند به طور فوري دوباره آغاز شود. واحد ها ممكن است دريك حالت كم قدرت بدون انتقال داده ها متصل باقي بمانند. HOLD به طور نمونه زماني استفاده ميشودكه چندين پيكونت به هم وصل ميشوند. آن بايد براي واحد هايي استفاده شود درجايي كه اطلاعات بايد به طور غير مككر ازسال شوند و مصرف كم قدرت اهميت دارد . يك برنامه نمونه يك ترموستات اتاق است كه ممكن است نياز داشته باشد كه تنها هر دقيقه داده ها را منتقل نمايد. دو حالت كم قدرت بيشتر موجود ميباشند ، وضعيت SNIFF و وضعيت PARK . اگر ما حالتها را در ترتيب افزايشي كارايي توان به ليست در بياوريم ازاينرو وضعيت SNIFF چرخه كاري بالاتري دارد كه با يك چرخه كاري كمتر به دنبال وضعيت HOLD ميباشند و با كمترين چرخه كاري با وضعيت PARK به پايان ميرسند.
E : انواع ارتباطات : يكبار كه يك واحد بلوتوس به يك پيكونت متصل شد آن ممكن است به وسيله دو نوع ارتباط ارتباط برقرار كند. يعني بين هر دو عضو پيكونت كه يك جفت راهبر پيرو را تشكيل ميدهد. دو نوع ارتباط مورد پشتيباني قرار ميگيرند. اين ارتباطات عبارتند از : 1- لينك ارتباط گراي همزمان 2- لينك بي ارتباط غير همزمان . انواع مختلف ارتباطات ممكن است بين جفت هاي مختلف راهبر پيرو همان پيكونت كاربرد داشته باشد و نوع ارتباط ممكن است به طور اختياري درطول يك جلسه تغيير كند. نوع ارتباط تعيين ميكند كه چه نوع بسته كوچكي در يك ارتباط خاص استفاده ميشود. در هرنوع ارتباطي 16 نوع بسته كوچك استفاده ميشوند. بسته ها كاركردهاي مختلفي دارند و اطلاعات قابليتهايي دارد . براي مخابرات دورشته اي كامل يك طرح دورشته اي تقسيم زماني كاربرد دارد . هر بسته كوچك نسبت به بسته كوچك قبلي در يك كانال پرشي مختلف مخابره ميشود. يك لينك ارتباط گراي همزمان يك اتصال دورشته اي كامل نقطه به نقطه بين راهبر و پيرو است . اين ارتباط تنها با راهبر برقرار ميشود و تا زمانيكه توسط راهبر انتشار پيدا كند حساس نگه داشته ميشود. لينك ارتباط گراي همزمان به طور نمونه براي يك ارتباط صوتي كاربرد دارد. راهبر شكافهاي استفاده شده براي لينك ارتباط گراي همزمان در كانال را ذخيره ميكند. لينك بي ارتباط غير همزمان يك اتصال زودگذر را بين راهبرو هر يك از پيرو ها در مدت دوام يك چارچوب ( شكاف راهبر به پيرو و شكاف پيرو به راهبر ) برقرار ميسازد. هيچ شكافي ذخيره نشده است. راهبر ميتواند آزادانه تصميم بگيرد كه كدام پيرو نشاني ميدهد و در كدام ترتيب است . نشاني جنبي عضو در سر پيام بسته كوچك پيرو را تعيين ميكند. يك طرح نمونه برداري جهت كنترل كردن ترافيك پيروها به راهبر كاربرد دارد . لينك براي داده هاي همزمان يا غير همزمان درنظر گرفته شده است. هرچند اگر راهبر ازاين ارتباط براي نشاني دادن به همان پيرو در فواصل منظم كاربرد دارند آن يك لينك همزمان ميشود. يك لينك بي ارتباط غير همزمان از وضعيت هاي متقارن و نامتقارن پشتيباني ميكند. به علاوه وضعيت ها بدون تصحيح خطا در جلو يا با آن و با درخواست تكراري خودكار و بررسي هاي افزونگي چرخه اي يا فقدان آنها تعيين شده اند.
F : تعريف بسته كوچك : يك بسته كوچك شامل 3 ستون ميشود : يك كد دستيابي 72 بيتي و يك سرپيام 54بيتي و يك بار مفيد با طول متغير ميباشد . بسته هاي كوچك ممكن است فقط شامل كد دستيابي كوتاه شده و كد دستيابي و سرپيام يا كد دستيابي و سرپيام و بار مفيد باشند . بسته كوچك با يك كد دستيابي كانال 72 بيتي آغاز ميشود. اين كد دستيابي براي همزمان كردن كاربرد دارد و DC جبران سازي و شناسايي را جبران ميكند. كد دستيابي كليه بسته هاي كوچك مبادله شده در كانال پيكونت را شناسايي ميكند. كليه بسته هاي كوچك ارسال شده به همان پيكونت مقدم بر همان كد دستيابي كانال هستند. درگيرنده واحد بلوتوس يك ارتباط دهنده متحرك در مقابل كد دستيابي ارتباط داده ميشود و درزماني كه يك آستانه زياد ميشود راه اندازي ميشود. اين سيگنال راه انداز جهت بيدار كردن پردازش كامل سيگنال گيرنه كاربرد دارد. به علاوه ان جهت ثابت كردن زمان بندي گيرنده كاربرد دارد . ارتباط دهنده درطول پنجره جستجوي كامل فعال باقي ميماند . زماني كه مقدار ارتباطي جديد يافت شد كه بزرگتر از مقدار ارتباطي قبلي است كه به طور اصولي گيرنده را راه اندازي ميكند گيرنده كامل دوباره راه اندازي ميشود . كد دستيابي كانال شامل يك مقدمه و يك واژه كاراكتر همگام و يك پشت بند ميباشد ، شكل 5 را مشاهده كنيد. هردو مقدمه و پشت بند الگوهاي بيتي ثابتي هستند. مقدمه يك الگوي يك تا صفر ثابت 4 سمبل استفاده شده جهت تسهيل كردن جبران سازي DC است. ترتيب يا 1010 يا 0101 ميباشد كه بستگي به اين دارد كه كم اهميت ترين بيت كد دستيابي زير به ترتيب يك يا صفر است . كلمه يا واژه كاراكتر همگام يك كد 64بيتي است و از LAP راهبر مشتق ميشود. كد فاصله ظاهري بين كلمات كاراكتر همگام را براساس آدرس هاي مختلف تضمين ميكند. به علاوه آن ويژگي هاي ارتباط خودكار و متقابل را دارد كه فرايند همزماني زمان بندي را را پيشرفت ميدهند. مانند مقدمه پشت بند يك الگوي يك تا صفر ثابت از 4 علامتي است كه براي جبران سازي خوب كاربرد دارد. ترتيب 1010 يا 0101 است كه بستگي به اين دارد كه با اهميت ترين بيت كلمه كاراكتر همگام به ترتيب صفر يا يك است. سر پيام كه در شكل 6 نشان داده شده است شامل اطلاعات كنترل لينك در سطح پايينتر است . آن شامل 6 ستون است : يك آدرس جنبي 3 بيتي ، يك نوع بسته كوچك 4 بيتي ، يك بيت كنترل جريان يك بيتي ، يك علامت تاييد يك بيتي ، يك شماره ترتيب يك بيتي ويك بررسي خطاي سرپيام 8 بيتي . اطلاعات كلي سرپيام شامل 18 بيت است اما با يك برنامه نويسي تصحيح خطا در جلوي 1/3 حفاظت ميشود كه منجر به يك طول سرپيام 54 بيتي ميگردد.
M-ADDR : اين ستون يك آدرس عضو را نشان ميدهد كه جهت تشخيص دادن شركت كننده هاي فعال در پيكونت كاربرد دارد . با M-ADDR راهبر ميتواند پيرو مختلف فعال را در پيكونت جدا كند. اين M-ADDR به طور موقتي براي يك واحد براي زماني تعين ميشود كه در كانال فعال است. بسته هاي كوچك مبادله شده بين راهبر و پيرو فعال همگي اين
M-ADDR را دارند. آدرس تمام صفر براي اهداف پراكنده كردن اطلاعات ذخيره ميشوند. پيرو ها در وضعيت PARK غير فعال هستند اما هنوز با كانال FH قفل ميشوند. پيرو هاي متوقف شده از يك M-ADDR استفاده نميكنند اما از آدرس منحصر به فرد 48 بيتي كاملشان استفاده ميكنند.
نوع : 16 نوع مختلف از بسته هاي كوچك ميتواند تشخيص داده شود. كد TYPE 4 بيتي تعيين ميكند كه نوع بسته كوچك كاربرد دارد. مهم است كه توجه كنيم ترجمه رمز TYPE بستگي به نوع ارتباط فيزيكي مرتبط با بسته كوچك دارد. ابتدا آن تعيين ميشود كه بسته كوچك يك بسته كوچك ارتباط گراي همزمان يا يك بسته كوچك بي ارتباط غير همزمان است. ازاينرو آن تعيين ميشود كه كدام نوع بسته كوچك ارتباط گراي همزمان يا بي ارتباط غير همزمان با ان ارتباط دارد . رمز TYPE نيز نشان ميدهد كه چند شكاف را بسته كوچك فعلي اشغال ميكنند. اين اجازه ميدهد كه گيرنده هاي غير آدرس داده شده براي مدت دوام شكافهاي اشغال شده به خواب ميروند.
جريان : اين بيت براي كنترل جريان نسبت به لينك بي ارتباط غير همزمان كاربرد دارد . زماني كه حافظه موقت RX براي ارتباط ACL در گيرنده كامل است و با واحد پشتيباني ارتباط خالي نميشود يك علامت توقف مخابره داده ها را به طور موقتي متوقف ميكند. توجه كنيد كه سيگنال stop تنها با بسته هاي كوچك بي ارتباط غيرهمزمان ارتباط دارد . بسته هاي كوچك فقط شامل كنترل لينك هستند يا بسته هاي كوچك ارتباط گراي همزمان ميتوانند هنوز دريافت شوند. زماني كه بافر يا حافظه موقت گيرنده خالي باشد ، علامت GO برميگردد. زماني كه هيچ بسته كوچكي دريافت نشود يا سرپيام دريافت شده در خطا باشد يك GO به طور ضمني فرض ميشود.
ARQN : اين يك ستون تصديق كننده است كه فرستنده را مطلع ميسازد كه دريافت بسته كوچك در شكاف قبلي موفقيت آميز يا ناموفق بوده است. زماني كه هيچ ستون معتبر
ARQN دريافت نشود ARQN=0 به طور ضمني فرض ميشود. ARQN در بسته كوچك بازگشتي يك سيستم عامل است كه از سوي سيستم عامل ديگر اجرا ميشود. موفقيت دريافت به وسيله بررسي افزونگي چرخه اي بررسي ميشود كه كه به هر بار مفيدي كه حاوي داده ها يي است اضافه ميشود. يك طرح ARQN شماره گذاري نشده استفاده ميشود كه به اين معني است كه ARQN به بسته كوچك دقيقا دريافت شده ارتباط دارد .
SEQN : اين ستون شماره گذاري براي تشخيص دادن بسته هاي كوچك جديد ازبسته هاي كوچك مخابره شده ميباشد. بيت SEQN براي هر ارسال بسته كوچك جديد تبديل ميشود. يك بسته كوچك ارسال شده همان بيت SEQN را حفظ ميكند. اگر دو بسته كوچك متوالي با همان بيت SEQN دريافت شوند دومين بسته درنظر گرفته نميشود.
HEC : هر سرپيامي يك بررسي خطاي سرپيام براي بررسي كردن بي نقصي سرپيام دارد . HEC شامل يك واژه 8 بيتي است كه با 647 چند كلمه اي ايجاد ميشود. قبل از ايجاد كردن HEC ، به وجود آورنده HEC با 8 بيتي بالاي بخش آدرس هويت راهبر آغاز ميشود. HEC ازاينرو نسبت به 10 بيت سرپيام محاسبه ميشود. قبل از بررسي كردن HEC ، گيرنده بايد بررسي كردن مدارات HEC را با UAP 8بيتي صحيح تر آغاز كند. اگر HEC نقص داشته باشد ، بسته كوچك كامل دور انداخته ميشود.
G : انواع بسته كوچك : رمز TYPE 4 بيتي در سرپيام بسته كوچك 16 نوع بسته كوچك مختلف را تعيين ميكند. انواع بسته هاي كوچك به 4 قسمت تقسيم شده اند. اولين بخش شامل 4 بسته كوچك است و براي بسته هاي كوچك كنترل شده ذخيره شده است كه براي همه انواع ارتباط فيزيكي مشترك هستند. دومين بخش شامل 6 بسته كوچك است و براي بسته هاي كوچكي ذخيره شده است كه يك شكاف زماني تكي را اشغال ميكنند. سومين بخش شامل 4 بسته كوچك ميباشد و براي بسته هاي كوچكي ذخيره شده است كه 3 شكاف زماني را دربر ميگيرند. چهارمين بخش شامل 2 بسته كوچك ميشود و براي بسته هاي كوچكي كه 5 شكاف زماني را دربر ميگيرند ذخيره شده است. اشغال شكاف در قطعه بندي منعكس ميشود و ميتواند مستقيما از نوع رمز مشتق شود. جدول يك بسته هاي كوچك تعيين شده براي انواع لينك هاي ارتباط گراي همزمان و بي ارتباط غير همزمان را خلاصه ميكند. دراين لحظه 4 بسته كوچك مختلف ارتباط گراي همزمان تعيين شده اند. تاكنون تنها بسته هاي كوچك تك شكافي تعيين شده اند. بسته هاي كوچك ارتباط گراي همزمان به طور نمونه براي اطلاعات همزماني چون صوت استفاده ميشوند. بسته هاي كوچك درمقدار كد گذاري تصحيح خطا در جلو به كار رفته متفاوت هستند و بخشي از بسته كوچك براي اطلاعات و صوت ذخيره ميشود. براي لينك بي ارتباط غير همزمان 6 بسته كوچك مختلف تعيين شده اند. آنها درمقدار اطلاعات حمل شده و در وجود يا فقدان كد گذاري تصحيح خطا در جلو متفاوت هستند ، خواه ARQ يا درخواست تكراري خودكار كاربردي باشد يا خير .
H : تصحيح خطا : سه طرح تصحيح خطا وجود دارد كه براي بلوتوس تعيين شده است :
1-تصحيح خطا در جلو با ميزان 1/3 2- تصحيح خطا در جلو با ميزان 2/3 3- طرح درخواست تكراري خودكار براي داده ها .=== هدف از طرح تصحيح خطا در جلو د بار مفيد داده ها تعداد ارسالات و مخابره ها را كاهش ميدهد. هرچنددر يك محيط منطقي بدون خطا تصحيح خطا در جلو بالاسري اضافي را ارائه ميدهد كه عملكرد را كاهش ميدهد. ازاينرو تعاريف بسته كوچك كه در بخش G ارائه شده است براي استفاده كردن از تصحيح خطا در جلو در بار مفيد انعطاف پذير نگه داشته ميشوند و منجر به بسته هاي كوچك DM يا DH براي لينك بي ارتباط غير همزمان و بسته هاي كوچك HV براي لينك ارتباط گراي همزمان ميگردد. سرپيام بسته كوچك هميشه با تصحيح خطا در جلو با ميزان 1/3 محافظت ميشود . آن شامل اطلاعات ارتباطي ارزشمد است وبايد خطاهاي بيتي بيشتري را حفظ كند.
I : كد گذاري كلامي : در سيستم بلوتوس دو طرح كد گذاري كلامي تلفيق سازي دلتاي شيب دار پيوسته و تلفيق سازي كد گذاري شده پالس لوگاريتمي پشتيباني شده اند و هر دو در 64 بيت در ثانيه عمل ميكنند. رمز گذار كلامي پيش فرض قوي تر از رمز گذار CVSD قوي است . رمز گذار CVSD يك رمز گذار موج شكل است كه يك طرح تلفيق سازي دلتا را به كار ميگيرد. براي كاهش دادن اثرات اضافه باري شيب تراكم سيلابي كاربرد دارد . رابط رمز گذار كلامي CVSD 8000 نمونه در ثانيه در PCM خطي است . CVSD به طور مطلوبي در يك محيط پارازيت دار تنزل ميكند. افزايش تداخل به عنوان يك پارازيت زمينه اي افزايش يافته تجربه ميشود. رمز گذاري كلامي متناوب logPCM اساسي است. PCM خطي 16 بيتي در 8000 نمونه در ثانيه با به كار گيري يك تراكم A-law با logPCM 8 بيتي متراكم ميشود.
J : موثق سازي و پوشيدگي : به منظور فراهم كردن حفاظت كاربر و پوشيدگي اطلاعات سيستم بايد اقدامات امنيتي را در لايه برنامه و لايه فيزيكي فراهم كند. اين اقدامات براي يك محيط همتا مناسب خواهد بود. اين به اين معني است كه در هر واحد بلوتوس موثق سازي و رمز دار كردن به همان روش پياده ميشود. بلوتوس يك رمز دار كردن سطح پايه را تعيين ميكند كه به خوبي مناسب پياده سازي سيليكون ميباشد و يك الگوريتم موثق سازي را تعيين ميكند كه وسيله هايي را فراهم ميكنند كه ضرورتا قابيلتهاي پردازش ميزبان را در سطح امنيتي ندارند. به علاوه الگوريتم هاي رمزي ميتوانند به يك روش عقب مانده سازگار با به كارگيري مذاكره مدل پشتيباني شود. ويژگي هاي اصلي عبارتند از 1- روال پاسخ مطالبه اي براي موثق سازي 2- توليد كليد جلسه . كليد هاي جلسه ميتوانند درهر زماني در طول يك ارتباط تغيير كنند. 4- رمز جريان . در مسائل كلي امنيتي سه هويت مورد استفاده قرار ميگيرند. يك هويت عمومي كه براي هر كاربر منحصر به فرد است ، يك هويت سري و يك هويت تصادفي كه براي هر تغيير جديدي متفاوت هستند. سه هويت و اندازه هاي آنها كه در بلوتوس مورد استفاده قرار گرفته اند در جدول 2 خلاصه شده اند. آدرس بلوتوس طول 48 بيتي دارد و براي هر واحد بلوتوس منحصر به فرد است . آدرس هاي بلوتوس عموما معلوم هستند و ميتواند يا ازطريق محاورهه اي MMI به دست آيند يا به طور خودكار ازطريق روال پرس و جو به دست آيند. كليد كاربر يك كليد سري 64 بيتي است كه در طول مقدار دهي اوليه مشتق شده اند اما هر گر بيشتر آشكار نميشود. RAND يك شماره تصادفي است كه از يك فرايند شبه تصادفي در واحد بلوتوس مشتق شده است.
IV : ديگر ابتكارات بيسيم : اين بخش تاريخچه و تمركز چندين گروه صنعتي بيسيم را توضيح ميدهد. === A : IrDA : (http://www.irda.org ) : انجمن اطلاعاتي مادون قرمز يك شركت غير انتفاعي است كه در 1993برقرار شده است كه براي لينك هاي ارتباطات مادون قرمز تعيين شده است و ازاستانداردهاي سخت افزار ونرم افزار پشتيباني ميكند . پشته پروتوكول IrDA جهت پشتيباني كردن از مدل هاي كاربردي مشابه با مدل هاي بلوتوس طراحي شده است . برنامه هاي موروثي كابل سري گرا ازطريق نمونه سازي كابل پشتيباني شده اند ، درحاليكه APIs ويژه IR توسعه برنامه ها را مورد پشتيباني قرار ميدهد و ميتواند از كليه قابليتهاي مديريت ارتباطي IR و پروتوكول هاي انتقالي سود ببرد. در بسياري از چاپگرهاو كامپيوترهاي دستي و نوت بوك و دوربين هاي تصويري ساكن ديجيتال ازقبل رابط هاي سازگار با IrDA وجود دارد . مزاياي IR نسبت به فركانس راديويي شامل هزينه كاهش يافته و قدرت آماده باش كمتر و پهناي باند وسيعتر و مقررات كمتر حاكم بر كاربرد جهاني ميباشد. مهمترين عيب IR محدوديت خط ديد است كه مانع ديد مخفي بلوتوس و محاسبه ناآگاهانه ميشود. گروه ذينفع خاص معتقد به پيشرفت توسعه برنامه ها ميباشد كه نسبت به IR يا FR كار ميكنند. توسعه دهنده برنامه و خصوصاً كاربر نبايد اهميت بدهند كه چه وسيله فيزيكي مورد استفاده قرار گرفته است. براي رسيدن به اين امر گروه ذينفع خاص بلوتوس درارتباط با پروتوكول هاي IrDA درسطح بالاتر كار ميكند و براي رسيدن به عملي شدن داخلي درسرتاسر رسانه بيسيم به IrDA نزديك ميشود.
B : IEEE 802.11 : : (http : //www.ieee.org ) استاندارد IEEE 802.11 لايه هاي فيزيكي RF و IR ، لايه كنترل دستيابي به رسانه براي ارتباط شبكه محلي و نقطه دستيابي اضافي و پروتوكول هاي امنيتي راتعيين ميكند. اگر به طور عمومي صحبت كنيم ، IEEE 802.11 مجموعه بزرگتري از لايه هاي فيزيكي را تعيين ميكند كه شامل دوراه حل راديويي ( پرش فركانس و ترتيب مستقيم ) و يك راه حل IR ميشود درحاليكه بلوتوس ازيك راه حل راديويي با پرش فركانس سريع استفاده ميكند. با توجه به لايه MAC ، بلوتوس ازيك طرح TDMA ارتباط گرا استفاده ميكند درحاليكه IEEE 802.11 از يك طرح دستيابي چند تايي با حس حامل با اجتناب از تلاقي استفاده ميكند. هدف IEEE 802.11 فعال سازي برنامه هاي مبتني بر شبكه محلي با يك دربرگيري بيشتر راديويي است درحاليكه نمونه بلوتوس ارتباط بيسيم را بين انواع مختلف وسيله ها فعال ميسازد كه شامل يك نقطه دستيابي به شبكه محلي سيمي در يك محيط پيكونت است . درنهايت IEEE 802.11 اخيرا يك وضوح كم برد مشابه با بلوتوس را تحت گروه كاري PANدرنظر گرفته است.
C : homeRF : ( http://www.homerf.org ) : گروه كاري homeRFيك مشخصه آشكاري را با هدف قراردادن محيط خانگي توسعه ميدهد. HomeRF برروي گسترش هاي بيسيم و مستقل با فن آوريهاي شبكه سازي خانگي تمركز ميكند. در طرح فعلي آن مشخصه homeRF يك پروتوكول هوايي را براساس تركيبي از CSMA/CA براي اطلاعات و فن آوري تلفن بيسيم براي صوت تعيين ميكند. در طرف صوتي homeRF از يك رمز گذاري ADPCM در 32 كيلو بايت در ثانيه درمقايسه با كدگذاري CVSD قوي تر در 64كيلو بايت در ثانيه استفاده ميكند. هرچند homeRF توانايي را براي ارسال كردن يك بسته كوچك صوتي حفظ ميكند درحاليكه بلوتوس هرگز صوت را مخابره نميكند. عامل مشخصه ديگر اين است كه كليه ترافيك صوتي homeRF ازطريق يك نقطه كنترل كانال بندي ميشود درحاليكه ترافيك صوتي بلوتوس مانند كليه ترافيك داده ها از ارتباطات اختصاصي بين هر دو واحد بلوتوس استفاده ميكند. در طرف داده ها بلوتوس homeRF را به عنوان نسخه تخفيفي IEEE 802.11 مشاهده ميكند.
V : خلاصه : با توسعه دادن مشخصات براي يك تعويض كابل راديويي كم قدرت و كم هزينه گروه ذينفع خاص بلوتوس اميدوار است در شبكه سازي شخصي به تكامل برسد. در اين مقاله ما بعضي از ديد ها و رقابت ها و طرح ها را به اشتراك گذاشته ايم كه گروه ذينفع خاص در نظر ميگيرد. جهت اطلاعات بيشتر ، خوانندگان تشويق شده اند كه سايت
اينترنتي http: // www.bluetooth.con را كشف كنند. با زمان اين نشريه اولين نشر مشخصات بلوتوس براي مرور كردن و پيشنهاد دادن دردسترس اعضاي گروه ذينفع خاص است. نشر مشخصات بلوتوس 1.0 براي اولين قسمت از سال در 1999 برنامه ريزي شده است و محصولات سازگار با آن مشخصه در اواخر 1999 مورد پيش بيني هستند.
سپاسگذاريها : در گروه ذينفع خاص افراد بسياري وجود دارند و ادامه مي يابند و به ايده هاي ارزشمند كمك ميكنند و در تكميل كردن مشخصات تلاش ميكنند. براي نام گذاري كردن كليه اين افرادي كه اين مقاله را ماوراي طول اختصاص داده شده به آن بسط ميدهند اين تشكرات زيادي را درنظر بگيريد. نويسندگان مايلند كه از ويكتور بال و سيگموبايل براي دعوت نامه شان براي به اشتراك گذاشتن برنامه با گروه پژوهشي تشگر بكنندو ازمديريت برنامه گروه ذينفع خاص براي اجازه دادن به چاپ اين مقاله در اين مرحله از مشخصات تشكر بكنند. نام بلوتوس توسط پادشاه وايكينگ دانماركي هارالد بلوتوس پسر Gorm the old و پدر sevn forkbeard الهام گرفته است. نام رمز براي جيم كارداچ اعتبار دارد و نويسندگان به كليه درخواست هاي مرتبط با نام براي توضيح اشاره ميكنند.
از زبانهای برنامه نويسی تحت Windowsمی باشد(که زين پس آن را VB خواهيم خواند) که برای کدنويسی از دستورات زبان Basic سود می برد.
VB (مانند تمام زبانهای برنامه نويسی تحت ويندوز) با استفاده از تمام امکانات زيبای ويندوز (که باعث فراگيرشدن اين سيستم عامل زيبا و توانمند در ميان کاربران شده است)، طراحی محيطی زيبا و قدرتمند را برایپروژه مورد نظر، بسيار ساده می نمايد.
در حال حاضر، به جرأت می توان گفت که يکی از انتخاب های اصلي برنامه نويسان حرفه ای در سطح جهان برای تهيه پروژه های با قابليت های ويژه، VB می باشد، خصوصاً از VB6 که مايکروسافت عملاً با افزودن توانايی های متنوع بسيار به VB، حتی حاضر شد از ديگر زبانهای معروف تحت ويندوز خود مانند Visual C++ و Visual Foxpro بگذرد و سعی در هدايت تمام برنامه نويسان به سوی VB داشته باشد.
در حال حاضر که به تهيه اين جزوه همت گماردم، نسخه آزمايشی VB.net در بازار وجود دارد ولی عموماً برنامه نويسان ازVB6 استفاده می کنند و لذا ما نيز اين نسخه ازVB را برای آموزش انتخاب می کنيم، هر چند تمام خوانندگان عزيز می دانند که عموماً با فراگيری يک نسخه از يک برنامه، فراگيری نسخه های بعدی آن کار چندان دشواری نخواهد بود.
خوانندگان عزيز توجه داشته باشند که برای فراگيریVB، آشنايی با ويندوز و Basic لازم است. همچنين بهتر است در هنگام مطالعه، VB باز باشد و مطالب را در همان لحظه کار کنند.
هنگامی که VB اجرا می شود، توسط پنجره ای (شکل1)، نوع پروژه ای که می خواهيد طراحی کنيد از شما خواسته می شود.
همان طور که ملاحظه می فرماييد، انواع مختلفی از پروژه ها در اين پنجره وجود دارد که در ادامه به برخی از آنها خواهيم پرداخت، ولی فعلاً نوع استاندارد پروژه های VB يعنی نوع Standard EXE را انتخاب و آن را باز(Open) می کنيم. اين نوع پروژه (که غالب پروژه ها را در بر می گيرد) برای تهيه برنامه های کاربردی(Applications) مورد استفاده قرار می گيرد. پس از باز کردن پروژهStandard Exe ، پنجره اصلیVB (شکل 2 ) برای اين نوع پروژه باز می شود:
اين پنجره، علاوه بر آنچه عموماً در پنجره های ويندوز می بينيم (مانند Title Bar وMenu Bar)، شامل چند بخش بسيار مهم می باشد: 1- يک فرم(Form) خالی با عنوان (Caption)برابر Form1 وجود دارد. اين همان فرمی است که بلافاصله پس از اجرا (Run) شدن برنامه، روی صفحه نمايش، قرار می گيرد (اين پيش فرض قابل تغيير است). 2- نوار ابزار Standard Buttons که دکمه هايی با کاربرد معمولاً بيشتر را شامل می شود. تعدادی از اين دکمه ها را در ويندوز می شناسيد (مانند Copy, Paste, Undo, Redo, Open وSave) و برخی ديگر را در ادامه خواهيم ديد. 3- پنجره ای سمت چپ تصوير ديده می شود. اين پنجره شامل برخی از کاربردي ترين کنترلهای قابل ديدن (VCL) می باشد. در ادامه با VCLها آشنا خواهيم شد و از آنها بسيار بهره خواهيم برد. به اين پنجره Tool Bar (جعبه ابزار) گفته می شود. 4- در سمت راست تصوير سه پنجره ديگر ديده می شود. در بالا، پنجره پروژه (Project)، سپس پنجره مشخصات(Properties) و در پايين، پنجرهForm Layout قرار دارد. پنجرهProject شامل نام تمام اجزای پروژه مانند فرمها، ماژولها(Moduls)،Activex ها و ... می باشد. مثلاً اگر در پروژه ای چند فرم وجود داشته باشد و بخواهيم به فرم ديگری برويم، کافی است نام آن را در اين پنجره دابل کليک نماييم. پنجره Properties، برخی از مشخصه(Property) های مربوط به VCL ای که انتخاب شده (Select) باشد را نمايش می دهد که می توان آنها را در هنگام طراحی(Design Time) تغيير داد (ساير مشخصه ها بايد در هنگام اجرا(Run Time) تنظيم شوند.) در پنجرهForm Layout نيز می توان مکان قرار گيری Form هنگام اجرای برنامه(Run Time) بر روی صفحه نمايش را تعيين کرد (همچنين اين کار را توسط کدنويسي نيز می توان انجام داد و عموماً همين روش هم توصيه می شود و لذا عموماً حتی می توان اين پنجره را به کل بست).
در اين بخش با شمای کلیVB آشنا شديم، در ادامه درباره VCL ها و نحوه کدنويسي برای آنها مطالب مفيدی خواهيم آموخت.
مفاهيم بنيادی
درVB، شئ (Object) هایبسياری وجود دارد مانند فرمها، دکمه ها، برچسب ها، تصاوير و ... . همانطور که می دانيم هر شئ(Object) دارای يک سری مشخصات(Properties) میباشد. به عنوان مثال اگر يک اتومبيل را به عنوان يک شئ در نظر بگيريم،اين اتومبيل دارای مشخصاتي چون رنگ خاص، وزن خاص، طول و عرض و ارتفاعخاص، ميزان خاص مصرف بنزين و ... می باشد که در تمايز دو اتومبيل ازهم، همين مشخصات هستند که به ما کمک می کنند. درVB نيز هر Object دارای يک تعداد مشخصه (Property) می باشد. به عنوان مثال يکدکمه(Button) دارای مشخصاتی چون عرض(Width) و ارتفاع(Height) خاص و يايک عنوان(Caption) خاص و ... می باشد. برخی شئ(object) ها درVB، فقطدر کدنويسي قابل دسترسی هستند(مانند شئADODB که در آينده با آن آشناخواهيد شد) اما برخی ديگر علاوه بر زمان کدنويسي، در زمان طراحی (Design) نيز می توان آنها را بر روی فرمها و در جای دلخواه قرار داد وآنها را تنظيم (Set) نمود. به اشياء نوع اخير، کنترل (Control) گفته میشود. کنترل ها خود دو گونه اند، برخی علاوه بر زمان طراحی (Design) در زمان اجرا (Run Time) نيز ديده می شوند، به اين نوع کنترل دراصطلاح(Visual Control) VCL گفته می شود که بيشترين انواع کنترلها رادر بر می گيرند (مانند دکمه ها، جدولها، برچسبها و بسياری ديگر که درادامه خواهند آمد) اما برخی ديگر از کنترل ها فقط در هنگام طراحی (Design) ديده می شوند و در هنگام اجرا تنها عمل خاصی انجام می دهند وخود ديده نمی شوند (مانند کنترلTimer)، به اين نوع کنترلها،Non-Visual Control گفته می شود. بايد توجه داشته باشيدکه کنترلهایNon-Visual،ذاتاً درRun Time ديده نمی شوند ولی ممکن است بنابر نيازی و در زمانیخاص از اجرا، خودمان برای يک يا چند VCL نيز مقدار مشخصه Visual آنهارا برابرFalse قرار دهيم که مسلماً در اين حالت با وجود اينکه در آنزمان، اين کنترلها ديده نمی شوند ولی VCL بودن آنها تغييری نکردهاست. کنترل ها (اعم ازVCL ها و غير آن) معمولاً دارای تعدادی Event می باشند. Event ، رويداد يا رخدادی است که توسط کاربر و معمولاً بااستفاده از ماوس يا صفحه کليد برای يک کنترل خاص روی می دهد.مثلاً يککنترل ممکن است دارای رويداد (Event) Click باشدکه اين نوع رويدادزمانی که کاربر در هنگام اجرای برنامه (Run Time) بر روی آن کنترل خاصکليک نمايد رخ می دهد.برخی Event های معمول ديگر برای کنترلها عبارتنداز: DoubleClick (زمانی که بر روی آن کنترل دابل کليک شود) ، MouseMove (زمانی که نشانگر ماوس بر روی آن کنترل قرار دارد) ، KeyPress (زمانیکه کليدی از صفحه کليد زده شد) ، KeyDown (زمانی که کليدی از صفحه کليدپايين بود) ، KeyUp (زمانی که کليد زده شده برداشته شد) ، MouseDown ، MouseUp و ... که در ادامه با آنها بيشتر آشنا خواهيم شد. برای هر Event (رويداد) می توان يکEvent Procedure داشت. Event Procedure پاسخی است که يک کنترل زمانی که يک Event رخ می دهد، از خود نشان میدهد. در واقع Event قطعه برنامه ای است که زمانی که بر روی يک کنترل،يک Event رخ می دهد، به طور اتوماتيک اجرا می شود. کنترلها معمولاًعلاوه بر يک سری مشخصات (Properties) و يک سری رويداد (Event) ، دارایتعدادی نيز متد (Method) می باشد. متدها عملياتهای تعريف شده ای هستندکه توسط آنها يک عمل خاص بر روی کنترلها انجام می شود. توجه داريمکه تفاوت متدها و Event Procedure ها در اين است که متدها توسط VB ،شناخته شده اند و عملشان هميشه ثابت است، اما Event Procedure ها توسطبرنامه نويس و به دلخواه او تهيه می شود، بنابراين Method های مشابه برروی کنترلهای متفاوت، پاسخ مشابهی دارد ولی ممکن است Event های مشابهبر روی کنترلهای متفاوت با توجه به Event Procedure های مخصوص هر يک،متفاوت باشد (مثلاً رويداد Click برای يک کنترل، کاری انجام دهد و برایکنترلی ديگر، کاری ديگر). نکته ديگری که بايد به آن توجه داشت اينستکه Procedure ها به طور مستقيم اجرا نمی شوند بلکه فقط زمانی که نامشانفراخوانی شود اجرا می شوند. بنابراين مثلاً در مورد Event Procedure هابايد بدانيم که با اينکه کد مربوط به آنها نوشته شده است ولی تا وقتیکه آن Event خاص (که باعث فرا خوانی Event Procedure مربوط می شود) رویندهد، اين کدها اجرا نخواهند شد.
اولين پروژه و آشنايی با برنامه نويسی بوسيلهVB
به عنوان اولين پروژه، قصد داريم فرمی داشته باشيم با دو دکمه Message و Exit که اگر در دکمه Message کليک شد، پيغامی نمايش داده شود و اگر دکمه Exit کليک شد از برنامه خارج شود(شکل3):
ابتدا فرمی که بر روی صفحه نمايش باز است (فعلاً به نام Form 1 ) را به اندازه دلخواه در می آوريم و در حالی که Selectاست، از پنجره Properties (سمت راست تصوير) ، مشخصه (Property) های زير را چنين Set می کنيم:
1- مشخصه Name آن را به frmFirstProject تغيير می دهيم.
2- مشخصه Caption آن را به First Project تغيير می دهيم.
مشخصه Caption معمولاً عنوانها را تغيير می دهد. مثلاً در مورد فرمها، آنچه در اين مشخصه Set شود در Title Bar از آن فرم ديده می شود يا در مورد دکمه ها، آنچه در اين مشخصه قرار داده شود، آن چيزی است که بر روی دکمه ( به عنوان نام دکمه ای که ُکاربر می بيند) ديده می شود.
مشخصه Name يکی از مهمترين مشخصه هايی است که بايد برای تمام کنترلها Set شود.آنچه در اين مشخصه قرار گيرد، نامی است که VB آن کنترل را به اين نام می شناسد (و خصوصاً در هنگام کدنويسی و برای دسترسی به کنترلها، بسيار مورد استفاده واقع می شود). به طور پيش فرض VB برای هر کنترل يک Nameدر نظر می گيرد، اما در پروژه های واقعی ، معمولاً تعداد کنترلها آنقدر زياد می شوند که نامهای پيش فرض به سختی در ذهن می ماند. برای اين منظور بهتر است به کنترلها، نامهايی را نسبت دهيم که از جهتی با او متناسب باشد. لذا بهتر است اولاً در نام آنها چيزی باشد که نشان از نوع آن کنترل باشد و عبارتی نيز باشد که بيانگر موضوع يا کار فعلی آن باشد. به عنوان مثال شما می بينيد که ما در مشخصه Name از form ، گفتيم که قرار دهيم: frmFirstProject که frm به خاطر تشخيص Form بودن آن است و First Project به خاطر تشخيص اينکه اين فرم برای First Project است. يا مثلاً به فرض اگر بخواهيم دکمه ای به نام Exit بر روی فرمی داشته باشيم، من ترجيح می دهم که نام آن را cmdExit بگذارم که cmd را از CommandButton گرفته ام. توجه داريم که اين نامی است که VB آن را می شناسد وگرنه برای زيبايی کار Captionاين دکمه را همان Exit می گذاريم و اين نام گذاری به زيبايی پروژه ما لطمه ای وارد نمی کند.
برای ادامه، دو دکمه (CommandButton) بر روی فرم قرار می دهيم (که برای اين منظور از پنجره Controlها که در سمت چپ تصوير است، کنترل CommandButton به شکل را دابل کليک می کنيم و يا با يک Click و انتخاب آن، بر روی فرم، به اندازه دلخواه Drag & Drop می کنيم) و جای آنها را به مکان دلخواه مورد نظر (به وسيله Drag & Drop آنها) تغيير می دهيم. آنگاه برای يکی از آنها:
1- مشخصه Name را به cmdMessage تغيير می دهيم.
2- مشخصه Caption را به Message تغيير می دهيم.
و برای ديگری تغيير می دهيم:
1- مشخصه Name را به cmdExit .
2- مشخصه Caption را به Exit .
که پس از اين، شمای ظاهری (Interface) برنامه کامل شده است و بايد به کدنويسي آن پرداخت.
اگر بر روی دکمه Exit دابل کليک کنيد (البته هنوز در Design Time هستيم و نه Run Time)، Event Procedure مربوط به رويداد Click (Event) از آن را به صورت زير باز می کند:
Private Sub cmdExit_Click ()
End Sub
که هر دستوری که در اين Procedure (يعنی بين خط Private و خط End Sub) نوشته شود، در زمان اجرا، وقتی کاربر روی دکمه Exit کليک می کند، اين دستورات اجرا خواهند شد.
دستوری که بايد در cmdExit_Click نوشته شود بسيار ساده است:
Private Sub cmdExit_Click ()
End
End Sub
دستور End هر جايی از برنامه که اجرا شود فوراً اجرای برنامه را متوقف و از آن خارج می شود.
حال اگر به ترتيبی که در بالا ذکر شد، Event Procedure مربوط به رويداد click از دکمه Message را نيز باز می کنيم و آن را به صورت زير تغيير می دهيم:
Private Sub cmd, Message - Click
MsgBox “The first project was done successful” و و “Thanks”
End Sub
پروژه مورد نظر آماده شده شده است. دستور MsgBox (مخفف Message Box )باعث می شود تا يک کادر پيغام بر روی صفحه نمايش ظاهر شود و تا زمانی که دکمه OK از آن را فشار دهيم، پيغامی را نمايش دهد. در اين دستور پارامتر اول، پيغام مورد نظر را به صورت string (يک داده متنی) دريافت مي کند (در VB هر عبارتی که بين دو علامت " " قرار گيرد، string فرض می شود) و پارامتر سوم نيز به عنوان Message Box (که در Title Bar آن آورده خواهد شد) را به صورت متنی دريافت می کند. توجه داريم که بين هر دو پارامتر از علامت کاما (,) استفاده می کنيم و بنابراين در دستور MsgBox برنامه مان برای اينکه پس از پارامتر اول، پارامتر سوم را وارد کنيم بين آن دو پارامتر، دو بار کاما گذاشته ايم.
حال برنامه تان را اجرا کنيد و نتيجه کار را ببينيد (اجرای برنامه در VB توسط کليد F5 صورت می گيرد.
ذکر چند نکته:
1- اگر بخواهيد فشردن ALT+X همان عمل دکمه Exit را انجام دهد(ايجاد(Hot key) ، کافی است در Caption اين دکمه چنين بنويسيد: E&xit که در اين صورت در زمان اجرا، زير حرف x يک underline (زير خط) می کشد که در ويندوز اين حالت نشانگرHot key داشتن آن حرف است ، همين کار را هم در مورد دکمه Message انجام دهيد.
2- در هنگام کدنويسي اگر چند حرف اول يک کلمه شناخته شده VB (مانند نام کنترلها و يا Property ها، Method ها و ...) را بنويسيم و CTRL+Space را فشار دهيم، اگر تنها يک کلمه با حرف اول برابر آنچه شما نوشته ايد پيدا کند، بقيه حروف را خود، کامل می کند و اگر تعدادی کلمه با اين مشخصات پيدا کند، ليست آنها را نمايش می دهد که می توانيد يا يکی از آنها را انتخاب کنيد (بر روی کلمه از ليست برويد و کليد space را بزنيد) و يا تعدادی از حروف آن را بنويسيد تا محدوده کلمات مشابه کوتاهتر شود. اين کار را حتماً امتحان کنيد!
3- زمانی که يک فرم باز می شود، به ترتيب چهار Event بر روی آن رخ می دهد:
· Initialize
·Load
·Activate
·Got focus
که زمانی که رويداد اول رخ می دهد، هنوز object های روی فرم ايجاد نشده اند و قابل دسترسی نيستند. اين object ها در load ساخته می شوند، اما هنوز فرم نمايش داده نشده است. وقتی فرم نمايش داده می شود، رويداد Activate و وقتیfocus به آن داده می شود، رويداد Got focus روی مي دهد. (منظور از گرفتن focus اينست که آن کنترل خاص که در اينجا فرم است، کانون تمام پيامها شود، مثلاً اگر کليدی زده شد به آن فرستاده شود و ...).
4- برای ذخيره کردن پروژه از منوی فايل و گزينه Saveاستفاده می شود که بايد تمام فرمها، ماژولها، ... و اصل پروژه را جداگانه ذخيره کرد. لذا اگر شما برنامه FirstProject راsave کنيد، يکبار نام فرم را save می کند (با پسوند.frm) و يکبار فايل پروژه را (با پسوند.VBP).
مثالی ديگر و استفاده از Label و TextBoxها
فرض کنيد بخواهيم فرمی داشته باشيم که دارای دو Text Box (که در VB برای عمليات دريافت اطلاعات از کاربر (DataEntrq) معمولاً از اين کنترل استفاده می شود) برای درجه سيلسيوس و درجه فارنهايت باشد و توسط يک دکمه (و در واقع با فشردن آن توسط کاربر) مقداری که در Text box مربوط به درجه سيلسيوس نوشته شده بود را به فارنهايت تبديل کند و نتيجه را در Text Box مربوط به آن درج نمايد. (توجه: اگر Cمقدار درجه برحسب سيلسيوس و Fمقدار درجه برحسب فارنهايت باشد، تبديل سيلسيوس به فارنهايت از فرمول F=9/5C+32 محاسبه می شود). شکل نهايی فرم را می توانيد در شکل 4 ببينيد.
برای اين منظور، از جعبه ابزار (جعبه حاوی کنترلها) ، دو برچسب (Label) که در جعبه ابزار به شکل ديده می شود را بر روی فرم قرار می دهيم(برچسب(Label) ها در VB معمولاً زمانی استفاده می شود که بخواهيم بر روی فرم، عبارتی را به کاربر نشان دهيم که او قابليت تغيير آن را نداشته باشد.) آنها را بوسيله Drag & Drop به مکان دلخواه منتقل می کنيم و برای يکی از آن دو:
1- مشخصه Name را به lblCelsius
2- مشخصه Caption را به Celsius
و برای ديگری:
1- مشخصه Name را به lblFahrenheit
2- مشخصه Caption را به Fahrenheit
تغيير می دهيم. توجه داريم که در نامگذاری Label ها با سه حرف اول lbl آغاز کرده ايم. همچنين توجه داريم که در شکل 4 ، بر روی فرم، عبارات Celsius و Fahrenheit در واقع همين دو Label هستند.
نکته: برای Label هايک مشخصه (Property) ديگر به نام Auto Size وجود دارد که اگر مقدار آن را به Trueتغيير دهيم، اندازه (size) آن به طور اتوماتيک به اندازه متن (caption) داخل آن خواهد شد و بنابراين معمولاً بهتر است اين مشخصه را نيز set کنيم.
حال دو Text Box (جعبه متن) در مقابل اين Label (Text Box ها در جعبه ابزار به شکل ديده می شوند، معمولاً برای نمايش و دريافت اطلاعات به طور توأم به کار می رود (بر عکس Label ها که فقط وظيفه نمايش اطلاعات را به عهده داشتند) و خصوصاً برای فرمهای DataEntrq (دريافتی اطلاعات) بسيار مناسب هستند. پروژه فعلی ما، نمونه ای کوچک از فرمهای DataEntrq است) و مناسب با هر يک از برچسب ها، برای يکی از آن دو Text Box :
1- مشخصه Name رابه txtCelsius تغيير می دهيم.
2- مشخصه Text را خالی می کنيم.
و برای ديگری:
1_ مشخصه Name را به txtFahrenheit تغيير می دهيم.
3- مشخصه Text را خالی می کنيم.
واضح است که در نامگذاری TextBox ها نيز از قرارداد سه حرف اول متناسب با نوع شئ، استفاده کرديم و سه حرف اول آنها را txt گذاشتيم.
مشخصه Text در Textbox ها آن متنی است که داخل آن متنی است که داخل آن نوشته می شود(شبيه مشخصهCaption در Label ها) و چونقرار است کاربرما آن را وارد کند، آن را خالی (NULL) کرديم.
حال يک دکمه (Command button) نيز به فرم اضافه و:
1- مشخصه Name را به cmdConvent
2- مشخصه Caption را به convent
تغيير می دهيم.
خوب، ظاهر (Interface) برنامه آماده شد. حال به کدنويسی برای آن می پردازيم. اين اولين باری است که می خواهيم در زمان اجرا (Run Time) از مشخصه ای استفاده کنيم (مشخصه Text از txtCelsiusکه توسط کاربر وارد شده) و مشخصه ای را در اين حال (Run Time) تغيير دهيم (مشخصه Text ازtxtFahrenheit که بايد نتيجه را بنويسد)
در VB هنگام کدنويسی برای Run Time هر زمان بخواهيم از يک Object استفاده کنيم، کافی است نام (Name) آن را بنويسيم و اگر بخواهيم به يکی از مشخصه های آن دست يابيم، کافی است پس از نام آن يک نقطه (Dot) قرار دهيم و سپس نام مشخصه (Property) مورد نظر خورد را بنويسيم.
با توجه به اين مطلنب، ديگر نوشتن کدهای مثال فوق کار چندان دشواری نيست. اگر بر روی دکمه Convent (البته در Design Time ) دابل کليک نماييد، در اينصورت Procedure مربوط به رويدادِ(Event) کليک از آن باز می شود که کافی است در آن نوشته شود:
txtFahrenheit.Text = (9/5*txtCelsius.Text) + 32
يعنی Procedure بايد به شکل زير شود:
Private Sub cmdConvent_Click ()
txtFahrenheit.Text = (9/5*txtCelsius.Text) +32
End Sub
واضح است که وقتي مشخصه Text از يک Text Box در سمت يک تساویِ جايگزينی قرار می گيرد، مقدار فعلی آن در عمليات شرکت می کند و وقتی اين مشخصه در سمت چپ اين جايگزين قرار می گيرد، مقادير محاسبه شده در آن قرار می گيرد. بنابراين، Procedure فوق می گويد که وقتی بر روی دکمه Convent کليک شد، هر مقداری که کاربر، داخل جعبه Celsius نوشته باشد را در 9/5 ضرب و با32 جمع کن و مقدار نهايی را داخل جعبه مربوط به Fahrenheit بنويس. اين برنامه را حتماً بنويسيد، آن را اجرا منيد و با نحوه استفاده از Property ها در اين کدنويسی بری Run Time آشنا شويد. در ادامه، بيشتر با اين نوع استفاده از Property ها (يعنی set کردن در کدنويسی بجای set کردن در پنجره Properties از Design Time) مواجه خواهيم شد. و مهم است که اين نوع استفاده را خوب درک کنيم. نکته: مشخصه Text برایTextBox ها و مشخصه Caption برای Label ها، مشخصه های پيش فرض آنها محسوب می شوند و اگر نام آنها را بدون هيچ مشخصه ای بنويسيمف اين مشخصه ها در نظر گرفته می شود، اذا مثلاً در Procedure بالا می توانستيم بجای txtCelsius.Text از خود txtCelsius نيز استفاده کنيم.
تغييری در وضعيت مثال قبل و استفاده از رويداد Keyup
فرض کنيد بخواهيم مثال قبل را طوری تغيير دهيم که با نوشتن هر رقمی در txtCelsius ، بدون نياز به فشردن کليد، نتيجه به طور خودکار در txtFahrenheit نوشته شود.مثلاً به محض اينکه عدد8 رازديم، تبديل شده 8 را به فارنهايت بنويسيد و به محض فشردن کليد 0 (روی هم شده است80) تبديل شده 80 را به فارنهايت بنويسد و ...
ابتدا کدهای نوشته شده برای cmdconvert را پاک کنيد و سپس خود کليد را نيز از روی فرم حذف کنيد تا به سراغ کدنويسی برای خودText Box ها برويم.
Text Box ها دارای جهار رويداد (Event) مهم می باشند:
KeyDown – KeyUp – KeyPress – Change
زمانی که فوکوس(تمرکز) به يک Text Box داده شود، اگر کليدی از صفحه کليد زده شود، ابتدا رويدادKeyPressرخ می دهد ( و اين به سيستم می فهماند که يک کليدی فشرده شد) ، سپس رويداد KeyDown رخ می دهد ( و اين به سيستم می فهماند که کليد زده شده، تازه زده شده است و هنوز فشرده است) و وقتی دستمان را از روی کليد برداريم، رويداد KeyUpرخ می دهد.
رويداد Change نيز زمانی که هر تغييری در مقدار داخل Text box انجام شود، روی می دهد (و لذا مثلاً اگر کليدی مثل Arrow Keys (کليدهای حرکتی) که تغييری در مقدار داخل Text Box انجام نمی دهد زده شود، رويداد Change رخ نمی دهد.)
توجه داشته باشيم که KeyDown (وKeyUp) برای همه کليدهای صفحه کليد رخ می دهد اما رويداد KeyPress برای برخی مثل Arrow Keys رخ نمی دهد.
Event Procedure مربوط به KeyDown و KeyUp دارای دو آرگومان (پارامتر) هستند:
1- پارامتر keycode که کد اسکی کليد فشرده شده را بر می گرداند.
2- پارامتر Shift که يکی از چهار مقدار 0 و 1 و 2 و 3 را بر می گرداند. اگر مقدار برگشتی آن يک باشد، يعنی در حال فشردن کليد زده شده، کليد Shift پايين بوده، مقدار برگشتی دو نشانگر پايين بودن کليدAltو مقدار برگشتی برابر سه، نشانگر پايين بودن کليد Control می باشد و صفر بودن آن، فشردن کليد بدون پايين بودن هيچ يک از اين سه کليد می باشد. و Event Procedure مربوط به KeyPress تنها يک آرگومان KeyAscki دارد که کد اسکی کليد فشرده شده را برمی گرداند.
با توجه به مطالب گفته شده، کافی است برای رويدادِ (Event)KeyUp از txtCelsius چنين بنويسيم:
Private Sub txtCelsius_KeyUp (KeyCode As Integer, shift As Integer)
txtFahrenheit = (Val (txtCelsius)*9/5) + 32
End Sub
ذکر چند نکته:
1- اگر بر روی يک TextBox در Design Time دابل کليک کنيد، به طور پيش فرض، رويداد Change از آن را برای کدنويسی باز می کند. اگر می خواهيم Event Procedure رويدادهای ديگر را بياوريم، کافی است از Combo Box منوی باز شونده عمودی کرکره ای که يک فلش رو به پايين سمت راست خود برای باز شدن منو دارد) سمت راست بالای صفحه کدنويسی، يکی از Event Procedure ها را به دلخواه انتخاب کنيم. Combo Box سمت چپ آن هم نام تمام Object های استفاده شده در آن فرم خاص را دارد که هر کدام انتخاب باشد، در Combo Box سمت راست، Procedure های آن Object خاص را ليست خواهد کرد. در شکل 5 برخی از رويدادهای مربوط به txtCelsius را می بينيد.
2- همانطور که می بينيم در Procedureفوق برای Text Box ها، نام هيچ مشخصه ای را نياورديم که همانطور که قبلاً توضيح داده شد، در اينصورت به طور پيش فرض، مشخصه Text برای آنها در نظر گرفته می شود.
3- تابع Val (مخفف Value) مقدار عددی يک string را برمی گرداند. از آنجا که مقدار داخل txtCelsiusاز نوع string 0متنی) است ولی بايد بر روی آن عمل ضرب و تقسيم و جمع را انجام دهيم. ابتدا آن را توسط تابع Val، عددی نموديم. (هر چند VB تا جای ممکن سعی می کند خودش اين تبديلات را اگر ما هم نگذاريم، انجام دهد ولی بهتر است عادت شود، برای جلوگيری از خطاهای احتمالی، شرايط هر موقعيت را فراهم آوريم.)
ادامه:
آخرين کاری که بايد برای پروژه Second Example انجام دهيم، جلوگيری از خطای Type Miss Mach است. اين خطا زمانی روی می دهد که در يک عمليات، مقادير مناسب نباشند. مثلاً اگر بخواهيم مقدار متنی “Ali” را در مثلاً 5 ضرب کنيم، اين خطا (که در VB، خطای شماره 13 است) رخ می دهد.
در برنامه ما هم، اگر کاربر، در txtCelsius بجای يک عدد، حرفی را بنويسد، هنگام ضرب شدن در 9/5، همين خطا رخ خواهد داد.
برای جلوگيری از بروز خطا و گرفتن کنترل خطا بدست برنامه، از تابع On Error استفاده می کنيم. اگر Procedure مربوط به رويداد Key Up از txtCelsius را به صورت زير تغيير دهيم:
Private Sub txtCelsius–KeyUp (KeyCode As Integer, shift as Integer)
On Error Goto xx
txtFahrenheit = (txtCelsius * 9/5) + 32
Exit Sub
xx:
IF Err. number = 13 then
txtFahrenheit = “can’t convert “
End IF
End Sub
در اينصورت تابع On Error می گويد که وقتی به خطايی در ادامه برخوردی به خطی از Procedure که دارای برچسب xx (يک برچسب اختياری) است برو (Goto xx) . اگر برنامه به اين خط برود (يعنی وقتی خطايی رخ داد) ، بررسی می کند اگر شماره خطای رخ داده شده (Err يک Object هميشگی در VB است که مشخصه number از آن، شماره شماره خطای رخ داده را در خود نگهداری می کند) برابر B بود، بجای convert کردن، در txtFahrenheitبنويسيد” can’t convert “ (اميدوارم نحوه بکارگيری دستورات شرطی (IF sentences) را بدانيد). تنها نکته ای که هست اينکه اگر خطا رخ نداد و convert انجام شد، ديگر نبايد به خط xx وارد شود و لذا از دستور Exit sub استفاده کردع ايم. اين دستور در هر جايی از يک sub اجرا شود، بلافاصله از آن خارج می شود و دستورات ديگر را اجرا نمی کند.
مثالی برای رويداد Keypress
فرض کنيد بر روی فرم، يک Text Box به نام txtUserName قرار داده ايم و بخواهيم کاربر، هر حرفی را داخل آن نوشت، با حرف بزرگ انگليسی زده شود (يعنی اگر وارد کرد a، در Text Box درج شود A) در اين صورت کافی است برای رويداد KeyPress از آن بنويسيم:
Private Sub txtUserName_KeyPress (KeyAscii As Integer)
KeyAscii = ASC (Ucase (Chr (KeyAscii)))
End Sub
دستور بکار رفته در اين Procedure می گويد که کد اسکی کليد فشرده شده را (توسط آرگومانِ keyAscii) دريافت کن، کاراکتر آن را (توسط تابع Chr) پيدا کن، آن کاراکتر را به حرف بزرگ تبديل کن (توسط تابع Ucase مخفف Upper Case) و آنگاه کد اسکی حرف تبديل يافته را (توسط تابع ASC) پيدا کن و دوباره در آرگومان keyAscii قرار بده. به اين ترتيب کاربر هر کليدی را که فشار دهد، حرف بزرگ آن در Text Box درج می شود.
برخی مشخصه های Text Boxها:
Name -1 : نامی که VB آن را با اين نام می شناسد.
Alignment -2: تراز متن داخل Text Box (راست چين، وسط چين، چپ چين)
Appearance -3: با مقدار Flat و 3D که سه بعدی بودن يا تخت بودن آن را مشخص می کند.
Back Color -4: رنگ زمينه Text Box
Border Style -5: که تعيين می کند که text Box حاشيه داشته باشد (fixed Single) و يا خير (None)
Enable -6: اين مشخصه برای هر کنترلی False باشديعنی آن کنترل غير فعال است (رنگ خاکستری شده کنترلها در ويندوز نمايشگر False بودن Enable آن است).
Font -7: نوع فونت متن
Fore Color -8: رنگ متن
Height -9: ارتفاع Text Box
Left -10: فاصله گوشه چپ و بالای Text Box از Container (دربرگيرنده) آن (تا به حال يک دربرگيرنده (container) را ديده ايم که فرمها می باشند. Container ها به کنترلهايی گويند که کنترلهای ديگر می توانند بر روی آن قرار گيرند مثل کنترل Frame يا کنترل Picture).
Locked -11: که اگر مقدار آن True باشد، Text Box توسط کاربر، قابل ويرايش (Edit) نخواهد بود.
Max Length -12: حداکثر تعداد کاراکتری که می تواند داخل Text Box قرار گيرد که اگر مقدار آن صفر باشد، محدوديت تعداد نخواهد داشت.
Mouse Icon -13: آيکون ماوس وقتی روی آن قرار می گيرد (به شرطی که مشخصه بعدی يعنی Mouse Pointer بابر Custom تغيير داده شود.
Mouse Pointer -14: نمايشگر ماوس وقتی روی آن است که اگر برابر Custom شود، هر چه در Mouse Icon، set شده باشد، آيکون ماوس می شود.
Multi Line -15: اگر مقدار آن برابر True شود، می توان در Text Box، چند خطی نوشت و در واقع آن را شبيه يک Editor نمود.
Password Char -16: گه اگر يک کاراکتر در آن قرار گيرد، هرچه داخل Text Box نوشته شود، با آن کاراکتر ديده می شود (شما در وارد کردن Password در هر ويندوز مسلماً با مقدار * برای Password برخورد داشته ايد).
Right To Left -17: که اگر مقدار آن True باشد، پاراگراف راست به چپ می شود (مثل آنچه ما در فارسی نوشتن به آن نيازمنديم).
Scroll Bars -18: اگر مقدار Multi Line برابر True باشد، توسط مشخصه Scroll Bars می توان وجود scrollbar عمودی (vertical) ، افقی (horizontal) و يا ترکيبی از آن دو (Both) را داشت.
Tab Index -19: ترتيب پرش از کنترل به کنترل ديگر هنگام زدن کليد Tab. مثلاً اگر سه Text Box بر روی فرم داشته باشيم و مقدار Tab Index آنها به ترتيب 0 و 1 و 2 بگذاريم، در هنگام اجرا، فوکوس به Text Box با مقدار Tab Index برابر صفر داده می شود که اگر کليد Tab را بزنيد، فوکوس به Text Box با مقدار Tab Index ببرابر يک داده خواهد شد و الی آخر.
Tab Stop -20: که اگر مقدار آن برای کنترلی False باشد، با زدن کليد Tab هيچگاه فوکوس به آن داده نخواهد شد (با Tab نمی توان روی آن رفت).
Tag -21: عملاً کار خاصی انجام نمی دهد و فقط می توانيم چيزی را در آن ذخيره کنيم که بعداً خودمان از آن استفاده کنيم.
Tool Tip Text -22: که مقدار آن هر چه باشد وقتی در Run Time ماوس را لحظه ای روی آن کنترل خاص نگه داريم، يک راهنمای کوتاه زرد رنگ با متن برابر مقدار تعريف شده در Tool Tip Text از آن بيرون خواهد آمد.
Top -23: فاصله گوشه راست و بالای کنترل از container (دربرگيرنده) خود.
Visible -24: که اگر مقدار آن False باشد، آن کنترل توسط کاربر (يعنی در Run Time) ديده نخواهد شد.
Width -25: عرض کنترل
توجه:
1- بسياری از مشخصات فوق در کنترلهای ديگری غير از Text Boxها هم با همان کاربرد، وجود دارند.
2- از مشخصاتی که در بالا آورده نشد، بزخی را در جای خود توضيح خواهيم داد.
نکته:
می توان برنامه را توسط کليد F8، خط به خط اجرا کرد. در اين حال اگر ماوس را روی هر متغيری در پنجره کدنويسی نگه داريم، مقدار فعلی آن را به صورت Tool Tip می نويسد.
از اين مورد، در Debug کردن و يافتن خطاهای برنامه کمک بسياری می توان گرفت.
همچنين اگر در پنجره Immediate در هنگام Run Time دستوری را بنويسيم، اين دستور بلافاصله اجرا خواهد شد. مثلاً می توانيم يک متغير را فوراً مقدار دهی کنيم يا ...
همچنين اگر بر روی هر خطی کليد F9 را بزنيم، يک Break (شکست) روی آن خط ايجاد می کند، حال اگر کليد F5 را بزنيد، برنامه اجرا می شود تا به آن خطِ Break شده برسد و در آنجا متوقف می شود. که برای ادامه برنامه می توان بسته به مورد، از F5 يا F9 استفاده کرد.
با گسترش استفاده از تکنولوژي وب و توسعه برنامههايي که براي کارکرد درين بستر توليد ميشوند مباحث مربوط به امنيت پايگاههاي داده اي بعد جديدتري پيدا کرده اند. هر چند از آغاز پيداش پايگاههاي داده همواره امنيت و تامين آن يک دغدغه مهم و پياده سازي مناسب و کاراي آن يک خصوصيت بنيادي در پايگاههاي داده بوده است اما بهر روي بحث امنيت (Security)همواره در سايه مقولاتي همچون عملکرد مناسب (Functionality) ، کارايي (Performance) و قابليت اطمينان (Reliability) قرار ميگرفت. به عبارتي هنوز هم چندان عجيب نيست اگر ببينيم يک برنامه رده سازماني (Enterprise Level) با تعداد زيادي Client بدون هيچگونه ملاحظه امنيتي توليد شده و مورد استفاده باشد. حتي ميتوان درين زمينه مثالهاي جالبتري يافت. اغلب برنامههاي Client-Server با نام کاربري sa(System Administrator) به پايگاههاي داده متصل ميشوند. از ديد امنيتي اين مطلب يک فاجعه محسوب ميشود. هيچ تغيير و يا خرابکاري اي قابل رديابي نيست، همه کاربران به همه اطلاعات دسترسي دارند و الي آخر.
آنچه ذکر شد ، در واقع تصويري از وضعيت جاري بود، که بايد از دو منظر نگريسته شود: عدم وجود مکانيزمهاي امنيتي مناسب و نيز در صورت وجود چنين مکانيزمهايي عدم بهره گيري صحيح ازانها يا نداشتن سياست امنيتي مطلوب.
اين وضعيت شايد در دنياي برنامههاي مبتني بر تکنولوژيهاي Mainframe يا Client-Server قابل تحمل بود اما در شرايط فعلي که برنامهها با سرعت زيادي به سمت بهره گيري از بستر وب ميروند ادامه اين روند فاجعه بار است. در حال حاضر ديگر کاربران يک برنامه به صورت بالقوه تنها کارمندان يک سازمان نيستند. هر فردي ميتواند به سادگي باز کردن يک مرورگر وب به پايگاه داده شما متصل شود و مطمئن باشيد اگر مکانيزمهاي امنيتي را رعايت نکرده باشيد ، حذف تمامي دادههاي شما حتس از عهده يک نفوذگر عادي هم بر ميآيد.
اجازه دهيد يک فرض اساسي را مطرح کنيم. مديران IT يک سازمان بر دو دسته اند: مديران نوگرايي که به صورت داوطلبانه سازمان را به سمت ارائه خدمات عمومي و گسترده هدايت ميکنند و به همين دليل تکنولوژي وب را به عنوان تنها بستر موجود براي ارائه اين خدمات ميپذيرند و مديران سنتي محافظه کاري که قابليت اطمينان و کارايي سيستم جاري را تحت هيچ شرايطي حاضر نيستند در معرض خطر قرار دهند. وب از نظر اين گروه دوم کماکان يک تکنولوژي مشکوک غير قابل اطمينان است. در واقع دلايل فني اين گروه دوم هنوز هم چشمگير و قابل اعتناست، به خصوص گروهي که از mainframeها صحبت ميکنند. قابليت اطمينان 0.99999 هنوز هم در دنياي غير Mainframe يک روياست.
زماني که بحث امنيت در بستر وب مطرح ميشود به صورت عمده سه جزء زير مد نظر است:
·امنيت سرور(Server Security)
·امنيت در تصديق اعتبار(Authentication Security)
·امنيت محاوره(Session Security)
در ادامه نگاهي به جزئيات هريک از اجزاي اين دسته بندي خواهيم داشت.
شايد بخش عمده امنيت سرور مربوط به مدير شبکه و نيز کارشناس امنيت اطلاعات باشد. ازين نظر DBA مسئوليت چنداني ندارد ، البته اين به شرطي ست که قبلا متخصص امنيت شبکه مکانيزمهاي امنيتي مناسب را جهت سرور پيش بيني کرده باشد. اين مکانيزمها محدوده وسيعي از ابزارها و راه حلهاي امنيتي را در بر ميگيرد: فايروالها ، تشخيصگرهاي نفوذ (Intrusion Detectors) ، ضد ويروسها ، ... از جمله ابزارها هستند . معماري امن شبکه و لحاظ کردن مسائل امنيتي درين معماري نيز ميتواند حائز اهميت باشد. تمامي اين مباحث زير مجموعه بحث امنيت شبکه ميباشند که در بخش آتي به صورت خيلي مختصر به آن اشاره خواهيم کرد:
معماري امن شبکه با نگاه به پايگاه داده
الف. در نظر گرفتن سخت افزار جداگانه جهت سرور وب و سرور پايگاه داده
بسياري از سرويسهاي کنوني وب و حتي شبکههاي داخلي (Intranet) به گونه اي طراحي شدهاند که سرور اصلي پايگاه داده (Back End Server) را روي همان سروري در نظر ميگيرند که سرويس وب روي آن راه اندازي شده است. البته براي اين کار چندين توجيه وجود دارد :
·توجيه اقتصادي: در نظر گرفتن هر دو سرويس بر روي يک ماشين از جهت هزينه کل سازمان يک صرفه جويي محسوب ميشود. بايد توجه داشت که براي ارايه هر دوي اين خدمات ماشينهاي با قدرت پردازش بالا بايد در نظر گرفته شوند.
·توجيه فني: عده اي برين عقيدهاند که ارائه اين دو خدمت بر روي يک ماشين سبب بهبود کلي کارايي ميشود. استدلال اصلي محدوديت سرعت بر روي شبکه است. اين استدلال نيز توجيه چنداني ندارد زيرا حداقل سرعت شبکههاي محلي فعلي ۱۰۰Mb/s است که بسيار بالاتر از حداکثر سرعت شبکههاي WAN در حال حاضر است.
بنابراين از دو توجيه بالا تنها استدلال مبتني بر صرفه جويي اقتصادي کماکان ميتواتند مطرح باشد. اما خطرات اجراي اين دو سرويس بر روي يک مکاشين به حدي ست که بهتر است سازمان به جاي پذيرش اين ريسکها، هزينه اضافي مربوطه را متحمل شود. تا کنون روشهاي متعددي براي نفوذ به سرورهاي وب طراحي و اجرا شده است. بسياري از ويروسهاي کامپيوتري و نيز کرمهاي اينترنتي (Code Redو Nimda) نيز اساسا بر پايه همين ضعفها عمل ميکنند. صرف نظر از نوع سرور وبي که در نظر ميگيريد (Apache،IIS يا هر سرور ديگر) هميشه بايد اين احتمال را بدهيد که در صورت وجود يک شکاف امنيتي در سرور مربوطه، شما در مجموع کمترين ضرر را متحمل شويد.
جدا کردن فيزيکي دو سرور وب و پايگاه داده اين امر را تا حدي (دقت کنيد که فقط تا حدي و نه به طور کامل) براي شما تضمين ميکند که حتي اگر نفوذگري توانست اختيارات مدير سيستم مربوط به سرور وب را به دست بياورد نتواند به سادگي به اطلاعات موجود روي پايگاه داده نيز دست يابد.
ب. قرار ندادن پايگاه داده در DMZ:
در صورتي که از يک معماري امن براي پياده سازي شبکه خود استفاده کرده باشيد به احتمال زياد شبکه شما داراي يک بخش DMZ(Don’t Militarized Zone) خواهد بود. معمولا ارائه دهندگان خدمات عمومي را درين بخش از شبکه قرار ميدهند. بعنوان مثال سرورهاي وب، سرورهاي ميل ... که همگي جهت خدمات عمومي بکار ميروند درين بخش از شبکه قرار دارند.
ايده عمومي داشتن يک بخش DMZ ساده ست: سرورهايي که خدمات عمومي بيرون سازماني ارايه ميدهند نيازمند سطح کمتري از امنيت هستند. در واقع همه ميتوانند به آنها دسترسي داشته باشند. اين دسترسي همگاني به هيچ وجه لازم نيست در مورد تمامي منابع شبکه اعمال شود. بنابرين منابع عمومي شبکه را در بخشي از شبکه قرار ميدهند که حساسيت امنيتي کمتري نسبت به آن وجود دارد. اين همان بخش DMZ است. با توجه به مطالب بالا بسيار بديهي به نظر ميرسد سرور پايگاه داده را بايد در همان بخش DMZ قرار دهيم زيرا که عموما اين سرور نيز مسئوليت ارائه خدمات همگاني را بعهده دارد. اما قضيه در باره سرور پايگاه داده تا حدي متفاوت است. اين سرور گرچه خدمات همگاني نيز عرضه ميکند اما تنها بخشي از دادههاي آن ممکن است جنبه همگاني داشته باشد در حالي که عمده آن در اغلب اوقات سري ست. بعنوان مثال سروري که اطلاعات مربوط به کارت اعتباري افراد را نگهداري ميکند از اهميت فوق العاده اي برخوردار است و هرگونه دسترسي به کل دادههاي آن ميتواند فاجعه بار باشد.
بنابراين بر خلاف ديد اوليه به اين نتيجه ميرسيم که پايگاه داده نميتواند و نبايد که در بخش DMZ قرار گيرد. اما راهکار جداسازي آن ازين بخش چيست؟
راه حل ايده آل براي اين جداسازي به شرح زير است: به صورت عام از يک فايروال اصلي براي ايمني کل شبکه و جداسازي آن از دنياي بيرون استفاده ميشود. اين فايروال در قسمت بيروني DMZ قرار دارد و داراي قواعد خاص خود است. بدلايلي که در بخش پيش ذکر شد که کلا عبارت بود از نياز به ارائه خدمات عمومي ،اين فايروال نميتواند کل ترافيک ورودي را محدود کند و ناچار است يک سياست (Policy) حداکثري را اعمال کند.
اما در داخل خود شبکه ، مابيت LAN داخلي و DMZ از فايروال دومي استفاده ميشود. اين فايروال دوم در حالت ايده آل تمامي ترافيک ورودي را سد ميکند بجز ترافيک ورودي از وب سرور به پايگاه داده. با اين تمهيد خاص هم پچايگاه داده خدمات عمومي خود را ارائه ميدهد و هم دستيابي عموم را به آن سد کرده ايم. درين صورت يک نفوذ گر حتي پس ازينکه کنترل کامل سرور وب را در اختيار گرفت ناچار است از قواعد سختگيرانه فايروال دوم نيز عبور کند و تازه پس ازان بايد بتواند به سرور پايگاه داده نيز نفوذ کند که انجام اين هر دو کار بسيار دشوار ميباشد و ريسک چنين شبکه اي عملا پايين ميباشد.
اما شايد در مقابل روش ما استدلالي اينچنين ارائه شود: ميتوان تنها با استفاده از يک فايروال امنيت را تامين کرد. روش آنهم اينست که براي سرورهاي پايگاه داده از IP مجازي استفاده کنيم. در واقع اين سرورها پشت يک NAT قرار داشته باشند. درين صورت نفوذگر اساسا از وجود پايگاه داده خبر ندارد تا بخواهد به آن نفوذ کند. اين استدلال يک ابراد عمده دارد و آنهم اينست که اگر نفوذ گر بتواند کنترل سرور وب را در اختيار بگيرد عملا در همان شبکه اي قرار گرفته است که سرور پايگاه داده دران قرار دارد و داراي همان رنج IP ميشود. بنابراين پس ازينکار در واقع تمهيد قبلي ما بلااثر ميشود و نفوذ گر ميتواند بسادگي مانند يک کاربر داخلي شبکه ما عمل کند.
حال که استدلالات فوق را پذيرفته ايم ميتوانيم کمي ايده آل تر باشيم و شبکه را ايمن تر کنيم. فرض کنيد که يک نفوذگر بتواند از لايه اول امنيتي شما عبور کرده وارد DMZ شود. اگر اين نفوذ به دليل نقص قواعد امنيتي فايروال شماره يک باشد احتمال نفوذ همين شخص به لايه دوم بسيار پايين است. اما اگر اين نفوذ به دليل وجود شکاف امنيتي خاصي بر روي فايروال باشد چطور؟ فرض کنيد به عنوان مثال هردو فايروال شما Check Point است. آنوقت نفوذگر بهمان سادگي که از لايه اول عبور کرده از لايه دوم امنيتي شما نيز خواهد گذشت چون هر دو فايروال ما از يک نوع است و طبيعتا شکاف امنيتي هردو يکسان است. بنابراين ميتوان پيشنهاد داد که فرضا اگر فايروال لاه اول شما Check Point است در لايه دوم بهتر است از PIX استفاده کنيد. اين مطلب باعث امنيت بالاتر شبکه شما خواهد شد.
اين روش گرچه موثر است اما از عهده هرسازماني بر نمي آيد. نگهداري، بروزسازي و پيکربندي فايروال عموما خودش يک تخصص خاص و بالنسبه گرانقيمت است. بنابراين وقتي از دو نوع فايروال استفاده ميکنيد دو تخصص جداگانه را در سازمان خود نياز خواهيد داشت که اين مطلب باعث دو برابر شدن هزينه نيروي انساني شما خواهد شد. علاوه برينکه اصولا خود سخت افزار فايروال هم گرانقيمت است و اصولا مشخص نيست که سازمان شما حاضر باشد چنين هزينه اي را متقبل شود (حتي با فرض دانستن ريسک امنيتي بالاي آن)
راه حل ديگري که ميتوان براي جداسازي بخش امن شبکه ارائه داد استفاده از بيش از يک کارت شبکه در فايروال است (شکل ۲)
همانطور که مشخص است درين روش توسط يک فايروال، DMZ از بخش امن شبکه جداسازي ميشود. تنها ترافيکي که حق عبور از اينترفيس اول (eth1) به اينترفيس امن (eth2) را دارد ترافيک ورودي از وب سرور به سرور پايگاه داده ميباشد. اين روش بسيار ارزان تر از روش قبلي ست اما مشخصا امنيت آن در حد امنيت روش قبل نيست و علاوه برآن ممکن است فايروال موجود ما عملا از چندين کارت شبکه پشتيباني نکند.
علاوه بر دو راهي که در فوق براي جداسازي پايگاه داده از مابقي شبکه ارائه داديم راه حل سومي هم وجود دارد: اينکه اساسا پايگاه داده را از مابقي شبکه جدانکنيم! دقت کنيد که با توجه به هزينه و نيز اندازه سازمان ممکن است جداسازي امکان پذير نباشد و حتي مجبور شويم که اين دو سرور را برروي يک ماشين اجرا کنيم. حتي درين صورت نيز بهتر است حداقل کارهايي که جهت ايمني مضاعف پايگاه داده از دستمان بر ميآيد انجام دهيم. بعنوان مثال ميتوانيم از يک فايروال نرم افزاري ارزان قيمت جهت ايمني بيشتر استفاده کنيم. بهر حال اين راه حل توصيه نميشود مگر در شرايط اجبار.
رمز نگاري اطلاعات مابين سرور وب و سرور پايگاه داده
براي جلوگيري از سرقت اطلاعات در بين راه(Sniffing) عموما از روشهاي رمز نگاري استفاده ميشود. متداول ترين روش تحت وب براي انجام اين منظور استفاده از پروتکل SSL است. عموم اطلاعات امن که بر روي اينترنت منتقل ميشوند از همين پروتکل استفاده ميکنند . بعنوان مثال انتقال اطلاعات شناسايي با سرورهاي معروف ايميل، انتقال اطلاعات مربوط به کارت اعتباري و غيره.
تا بدينجا اين پروتکل که اغلب سرورهاي وب و نيز مرورگرها ازان پشتيباني ميکنند سطحي از امنيت را تامين ميکند. اما آيا همين کافي ست؟
اغلب اين اشتباه پيش ميآيد که همين سطح از رمز نگاري را در مقابل حمله Sniffing کافي ميدانند. بايد دقت کرد که SSL به صورت عام تنها براي رمزنگاري اطلاعات مابين Client و سرور وب به کار ميرود و به صورت عادي اطلاعات مابين وب سرور و سرور پايگاه داده به صورت عادي و بدون رمزنگاري (Plain Text) منتقل ميشوند. بنابراين حتي اگر همه جوانب را در شبکه بيروني رعايت کرده باشيم، يک نفوذگر داخلي به سادگي ميتواند اطلاعات در حال انتقال مابين اين دو سرور را شنود کند. اين مطلب زماني بسيار جدي ميشود که بدانيم بر اساس دادههاي موجود، بالاتر از ۶۰٪حملات موجود حملات درون سازماني ميباشد.
چاره کار استفاده از يک روش رمز نگاري مابين سرور وب و سرور پايگاه داده است. اغلب سرورهاي پايگاه داده امروزه از SSL حمايت ميکنند. MS SQL Server2000 ، Oracle،Sybase ازين جمله اند. البته استفاده از SSL براي ارتباط مابين اين دو سرور لازمه اش اينست که برنامه اصلي شما (Web Application) با همين ملاحظه طراحي و پياده سازي شده باشد.
اما در صورتي که برنامه شما از قبل موجود باشد يا از SSL پشتيباني نکند يا به هر صورت شما مايل به ايجاد هزينه اضافي نباشيد چه؟ آيا راه حل ديگري براي رمزنگاري مابين دو سرور وجود دارد؟ خوشبختانه چنين راه حلي وجود دارد: استفاده از SSH يا يک برنامه مشابه.
اصولا SSH برنامه اي شبيه Telnet است اما نسخه امن آن. يکي از قابليتهاي SSH ايجاد يک تونل امن است. به اين صورت که ميتوان برنامه SSH را به گونه اي اجرا کرد که بر روي يک پورت شنود کند کل اطلاعات آن را رمز کرده به کامپيوتر مقصد ارسال کند و آنجا پس از تبديل به حالت عادي به پورت مقصد تحويل دهد. با استفاده از اين روش (SSH Port Forwarding) يک تونل امن به صورت شفاف مابين دو سرور ايجاد شده است(شکل ۳).
مزيت استفاده ازين روش اينست که نياز به هيچگونه تغييري در سرورها و يا برنامهها ندارد و تنها توسط چند خط دستور قابل اجراست.
د. عدم استفاده از Hub و بهره گيري از Switch
به صورت عادي زماني که از Hub استفاده ميکنيم تمامي اطلاعات عبوري در هريک از سيستمهاي موجود در شبکه داخلي قابل شنود است. يک نفوذ گر معمولي با استفاده از يکي از ابزارهاي Sniffing ميتواند اينترفيس شبکه با به حالت Promiscuous برده ، تمامي اطلاعات در حال جابجايي بر روي LAN را دريافت کند. البته استفاده از رمز نگاري خطر بالقوه بهره گيري ازين روش را کم ميکند اما هيچگاه نميتوان مطمئن بود که کل اطلاعات رمز نگاري شده است. بنابراين بهتر است حتي المقدور امکان بهره گيري از Sniffing را بر روي شبکه کاهش دهيم. استفاده از سوپيچها به جايهاب يکي از روشهاي حل اين مساله است. با استفاده از سوئيچ در واقع يک مدار مجازي (Virtual Circuit) مابين دو نود در حال مکالمه ايجاد ميشود و ديگران به اطلاعات در حال انتقال مابين آن دو دسترسي ندارند.
۲-۶. ارائه امن اطلاعات
از ديد کلي امنيت اطلاعات براي ارائه خدمات اطلاع رساني بر روي وب به صورت عمده دو راه وجود دارد:
·توليد اطلاعات به صورت استاتيک
·توليد اطلاعات به صورت ديناميک
۱-۲-۶. توليد اطلاعات به صورت استاتيک و مسائل امنيتي آن
معمولترين نوع دسترسي به اطلاعات در اينترنت استفاده از صفحات HTML است. هنوز هم بسياري از متخصصين، اين روش در دسترس گذاري اطلاعات (Web Publishing) را به روشهاي ديگر ترجيح ميدهند. البته دلايل اصلي آنها بيشتر مربوط به سادگي و قابليت انعطاف اين روش است.
درين روش اطلاعات يک بار توليد ميشود. توليد اطلاعات (صفحات HTML) ميتواند به صورت دستي يا به صورت اتوماتيک توسط برنامههاي معمولي Client-Server انجام شود. پس از انجام اين فاز کليه اطلاعات بر روي سايت و سرور اصلي قرار ميگيرد (Upload).
امنيت اين روش به سادگي تامين ميشود. کافيست که اشخاص نام فايلهاي HTML را ندانند، درين صورت هرگز به آنها دسترسي نخواهند داشت. اينکار با استفاده از مکانيزم ساده اي صورت ميگيرد. عموم وب سرورها براي دايرکتوريهاي مختلف حق دسترسي تعريف ميکنند که يکي ازين حقوق دسترسي حق مشاهده محتويات يک دايرکتوري است. در صورتي که کاربري اين حق را نداشته باشد از اسامي فايلها بي خبر خواهد بود و در نتيجه قادر به مشاهده آنها نيست.
استفاده ازين روش مزايا و معايب خاص خود را دارد. مزيت آن امنيت بالاست. در واقع درينجا هيچ ارتباز اکيتيوي با سرور پايگاه داده وجود ندارد. اطلاعات به صورت برون خط (Offline) بر روي سرور وب بارگذاري ميشوند و پس ازان هيچ ارتباطي مابين کاربر عادي و چپايگاه داده وجود نخواهد داشت. بدين ترتيب خطر حملات به پايگاه داده کاهش چشمگيري مييابد. اما از ديگر سو مديريت حجم انبوه اطلاعات با استفاده ازين روش بسيار دشوار ميباشد . ضمن اينکه قابليت انعطاف روش نيز بسيار محدود است. در واقع زماني که ازين روش استفاده ميکنيم هدف اصلي خدمت رساني و سهولت استفاده را قرباني امنيت کرده ايم.
۲-۲-۶. توليد اطلاعات به صورت ديناميک
اين روش متداول ترين شيوه ايست که امروزه جهت ارائه خدمات بر بستر وب مورد استفاده قرار ميگيرد. درين روش صفحات موجود بر روي سرور وب عملا داراي هيچ اطلاعاتي نميباشند يا داراي حداقل اطلاعات هستند. تمامي اطلاعات در پايگاه داده است. به محض دريافت هر تقاضايي توسط سرور وب ، صفحات مورد درخواست او به صورت ديناميک از طريق جستجوي (Query) مناسب در پايگاه داده توليد ميشود.
براي پياده سازي اين روش طيف وسيعي از تکنولوژيها وجود دارد. ASP،JSP،PHP،CGI،ISAPI... و چندين روش ديگري که عم٥ما حول همين توليد ديناميک اطلاعات إر محيط وب طراحي شده اند. هريک از اين زبانها و روشها خود موضوع بحث مفصل و جداگانه اي است اما از ديد بحث حاضر چند نکته مهم را بايد مد نظر داشت:
·تا کنون شکافهاي جدي امنيتي در مورد هر يک ازين روشها شناخته شده إست و با وجود اين حل اغلب آنها هنوز هم هيچکدام آنها امنيت بالايي را به تنهايي تضمين نميکنند.
·با وجود نکته بالا، چون هدف اصلي ارائه خدمت ياسرويس است در بسياري موارد چاره اي بجز استفاده از يکي از اين روشها نداريم.
·هنگام انتخإب هر يک از اين روشها بايد ملاحظات امنيتي مربوط به ابزارهاي مديريت وتوسعه را نيز لحاظ کنيم.
طي بخش گذشته عموما توجه ما معطوف به اين مطلب بود که چگونه جلوي دستيابي افراد غير مجاز به سيستم و اطلاعات گرفته شود. اما هيچ گاه به اين مطلب اشاره نکرديم که مجاز يا غير مجاز بودن افراد را چگونه تشخيص ميدهيم. در واقع روش شناسايي افراد در يک سيستم امن چگونه ميتواند باشد.
ابتدايي ترين روشي که درين زمينه ميتوان در نظر گرفت تصديق اعتبار ساده بر حسب نام کاربري و کلمه عبور است. گرچه پياده سازي اين روش سنتي بسيار ساده است اما امنيتي هم که تامين ميکند حداقل امنيت ممکن است. درين روش کاربر يکبار در سيستم شناسايي ميشود و پس ازان اطلاعات به صورت عادي بر روي شبکه جريان مييابد. مشکلات اين روش را ميتوان به صورت زير خلاصه کرد:
تمامي اطلاعات در بين راه قابل شنود هستند.
·بند بالا به خصوص شامل خود نام کاربري و کلمه عبور هم ميشود. به عبارتي اين دو هم به سادگي ميتوانند توسط شخص ثالثي در بين راه شنود شده و بعدا مورد استفاده قرار گيرند.
·در شرايطي که نام کاربري و کلمه عبور لو رود کل امنيت سيستم دچار اخلال خواهد شد.
در واقع اين روش تنها تضمين کننده حداقل غير قابل قبولي از امنيت در تصديق اعتبار افراد است. بنابراين بايد به دنبال روشهاي جايگزيني بود که معايب فوق را نداشته باشند.
رمزنگاری در پروتکلهای انتقال
تمرکز بیشتر روشهای امنیت انتقال فایل بر اساس رمزنگاری دیتا در طول انتقال از طریق شبکههای عمومی مانند اینترنت است. دیتایی که در حال انتقال بین سازمانهاست بوضوح در معرض خطر ربوده شدن در هر کدام از محلها قرار دارد. – مثلا در شبکههای محلی برای هر یک از طرفین یا مرزهای Internet-LAN که سرویسدهندگاناینترنت از طریق آنها مسیر دیتا را تا مقصد نهایی مشخص میکنند. حساسیت دیتا ممکن است بسیار متغییر باشد، زیرا دیتای انتقالی ممکن است بهر شکلی از رکوردهای مالی بستهبندی شده تا تراکنشهای مستقیم باشند. در بعضی موارد، ممکن است علاوه بر محافظت دیتا روی اینترنت، نیاز به محافظت دیتا روی LAN نیز باشد. مشخصاً، محافظت از دیتا در مقابل حملات LAN مستلزم رمزنگاری دیتای انتقالی روی خود LAN است. به این ترتیب، بهرحال، نیاز به بسط امنیت تا برنامههایی است که خود دیتا را تولید و مدیریت میکنند، و تنها اطمینان به راهحلهای محیطی کفایت نمیکند و به این ترتیب بر پیچیدگی مسأله امنیت افزوده میشود.
پروتکلها
·اگرچه ثابتشده است که رمزنگاری راهحل بدیهی مسائل محرمانگی است، اما سردرگمی در مورد دو نوع رمزنگاری (برنامه در مقابل شبکه) همچنان وجود دارد و بدلیل وجود پروتکلهای ارتباطی گوناگون است که نیازهای تعامل بیشتر آشکار میشود. (مانند IPSec ، S/MIME، SSL و TLS) اگرچه این پروتکلها قول تعامل را میدهند، اما تعامل کامل بدلیل مستقل بودن محصولات پروتکلها در حال حاضر وجود ندارد. آزمایشهایی در حال حاضر در حال انجام هستند که به حل شدن این مسائل کمک میکنند، اما کاربران باید مطمئن شوند که تعامل بین محصول انتخابیشان و محصولات سایر شرکای تجاری امری تثبیت شده است. پروتکلهای سادهتر (SSL/TLS، IPSec و تا حدی پایینتر S/MIME) عموماً مسائل کمتری از نظر تعامل دارند.
پروتکلهای رمزنگاری انتقال
·با ترکیب تواناییها برای تایید هویت توسط رمزنگاری متقارن و نامتقارن برای ممکن ساختن ارتباطات تاییدشده و رمزشده، این پروتکلها پایههای امنیت را فراهم میکنند. تقربیاً تمام پروتکلها نیازهای جامعیت را پشتیبانی میکنند به طوری که محتویات ارتباطات نمیتوانند تغییر یابند، اما بیشتر آنها از Non-Repudiationپشتیبانی نمیکنند و به این ترتیب امکان ایجاد رکوردهای پایداری را که هویت منبع را به محتوای پیام پیوند میدهند، ندارند.
·به این چند پروتکل به طور مختصر اشاره میشود:
·SSL
·تکنولوژی SSL (Secure Socket Layer) اساس World Wide Web امن را تشکیل میدهد. SSL که در مرورگرهای وب کاملاً جاافتاده است، توسط بسیاری از سازمانها برای رمزنگاری تراکنشهای وبی خود و انتقال فایل استفاده میشود. بعلاوه SSL بصورت روزافزون بعنوان یک مکانیسم امنیت در تلاقی با پروتکلهای پرشمار دیگر استفاده میشود و بهمین ترتیب ابزاری برای ارتباط سروربهسرور امن است. SSL ارتباطات رمزشده و بشکل آغازین خود تایید هویت سرور از طریق استفاده از گواهی را (در حالت کلاینتبهسرور) پشتیبانی میکند. کاربران اغلب برای استفاده از برنامهها از طریق کلمه عبور تایید هویت میشوند، و با پیشرفت SSL استاندارد (مثلا SSL V.3.0) تایید هویت کلاینت از طریق گواهی به این پروتکل اضافه شده است.
·*برای FT (انتقال فایل): ابزار FT اغلب از SSL برای انتقال فایل در یکی از دو حالت استفاده میکنند. اولی، مد کلاینتبهسرور است که کاربر را قادر میسازد، در حالیکه در حال استفاده از یک مرورگر وب استاندارد است مستندات را از یک سرور دریافت یا آنها را به سرور منتقل کند. که این قابلیت نیاز به نرمافزار مختص انتقال در کلاینت را برطرف میسازد و بسیار راحت است، اما اغلب فاقد بعضی ویژگیهای پیشرفته مانند نقاط آغاز مجدد و انتقالهای زمانبندیشده است که سازمانها نیاز دارند. SSL همچنین میتواند برای اتصالات سروربهسرور امن – برای مثال، در اتصال با FTP و سایر پروتکلها – مورد استفاده قرار گیرد.
TLS
·TLS (Transport Layer Security)، جانشین SSL، برپایه SSL3.0 بنا شده است، اما به کاربران یک انتخاب کلید عمومی و الگوریتمهای Hashing میدهد. (الگوریتمهای Hashing فانکشنهای یکطرفهای برای حفظ جامعیت پیامها هستند و توسط بیشتر پروتکلها استفاده میشوند.) اگرچه TLS و SSL تعامل ندارند، اما چنانچه یکی از طرفین ارتباط TLS را پشتیبانی نکند، ارتباط با پروتکل SSL3.0 برقرار خواهد شد. بیشتر مزایا و معایب SSL به TLS هم منتقل میشود، و معمولا وجه تمایز خاصی وجود ندارد، و از همه نسخهها به عنوان SSLیاد میشود.
S/MIME
·S/MIME ( Secure Multipurpose Internet Mail Extention) که اختصاصاً برای پیامرسانی ذخیره-و-ارسال طراحی شده است، بعنوان استاندارد امنیت ایمیل برتر شناخته شده است. مانند بیشتر پروتکلهای رمزنگاری (مثلا SSL ، TLS و IPSec)، S/MIMEبا رمزنگاری تنها سروکار ندارد. بهرحال، علاوه بر تصدیق هویت کاربران و ایمنسازی جامعیت پیامها (برای مثال مانند آنچه SSL انجام میدهد)، S/MIMEتوسط امضای دیجیتال، رکوردهای پایداری از صحت پیامها ایجاد میکند (ضمانت هویت فرستنده چنانچه به محتوای پیام مشخصی مرتبط شده). این عمل باعث میشود فرستنده پیام نتواند ارسال آنرا انکار کند.
FT :
·سیستمهای ایمیل رمزشده (با استفاده از S/MIME) میتوانند برای ارسال فایلهای کوچک استفاده شوند (محدودیت حجم فایل بخاطر داشتن محدودیت حجم فایل در بیشتر سرورهای ایمیل است)، ولی S/MIME کلاً میتواند برای انتقال فایلهای بزرگتر توسط پروتکلهای انتقال فایل استفاده شود.
SSH
·SSH (Secure Shell) هم یک برنامه و یک پروتکل شبکه بمنظور وارد شدن و اجرای فرمانهایی در یک کامپیوتر دیگر است. به این منظور ایجاد شد تا یک جایگزین رمزشده امن برای دسترسیهای ناامن به کامپیوترهای دیگر مثلا rloginیا telnet باشد. نسخه بعدی این پروتکل تحت نام SSH2 با قابلیتهایی برای انتقال فایل رمزشده از طریق لینکهای SSH منتشر شد.
·*برای FT :
·SSH می تواند برای پشتیبانی انتقال فایل رمزشده (به شکل SFTP) استفاده شود اما طبیعت خط فرمان بودن آن به این معنی است که بیشتر توسط مدیران سیستمها برای ارسال درون سازمان استفاده میشود تا برای انتقال فایل تجاری. بعلاوه استفاده از SSH نیاز به نرمافزار یا سیستم عاملهای سازگار با SSH در دو طرف اتصال دارد، که به این ترتیب SSH برای سروربهسرور انجام میگیرد.
آیا می توان به برنامه های رمز نگاری اعتماد کرد؟
عیوب رمزنگار در gnu
امروزه از رمزنگاری در برنامه های بسیاری استفاده می شود اما از كجا بايد بدانيم كه آنچه به عنوان رمزنگاري پياده سازي شده، رمزنگاري مناسب است؟ تنها راه روشن شدن اين مطلب مهندسي معكوس ميباشد. همچنين روند تاريخي نرمافزارهاي رمزنگاري نشان ميدهد كه رمزنگاري با عملكرد بد، بسيار رايجتر از رمزنگاري با عملكرد خوب ميباشد. بنابراين به نظر ميرسد كه نرمافزارهاي متن باز راهحل مناسبي ميباشند. اما اين واقعيت كه كد متن خواندني است به اين معنا نيست كه توسط مجربين امنيت خوانده ميشود. در اين مقاله، برنامة رمزنگاري پست الكترونيكي امن بررسي ميگردد. GNU Privacy Guard، GPG)يا (GnuPG نسخة معروف متن باز رايگان نرمافزار PGP ميباشد و مشابه استاندارد OpenPGP است و در بيشتر توزيعهاي GNU/Linux مانند, MandrakeSoft ,Debian Red Hat و SuSE بكار ميرود. ما اجزاء كد متني v1.2.3 GPG را بررسي كرده و چندين عيب رمزنگاري در آن يافتهايم. جديترين عيب GPG به شرح ذيل ميباشد.
كليد خصوصي امضاكنندة پيام به روش ELGamal (توليد شده توسط مجري)، در كمتر از يك ثانيه، بر روي PC بازيابي ميگردد. اخيراً امضاهاي ELGamalو نشانة ELGamal + كليدهاي رمزنگاري از GPG حذف شدهاند. خوشبختانه، ELGamal گزينة پيش فرض GPG براي كليدهاي امضا نميباشد. كلمات كليدي: رمزنگاري كليد عمومي، OpenPGP, GPG, GnuPG، آناليز رمز RSA، ELGamal ، پيادهسازي.
در دنيـــاي رمزنگاري، استانـــداردهاي متعددي چـــــون [20]RSA PKCS ،[8]NESSIE , [14]IEE P1363[15]CRYPTREC, و … وجود دارد و با وجود چنين استانداردهايي ممكن است به نظر برسد كه رمزنگاري خوب بسيار است. اما همانگونه كه استفاده از رمزنگاري گستردهتر ميشود چگونه مي توان اطمينان داشت كه رمزنگاري پيادهسازي شده در دنياي واقعي، رمزنگاري مناسب است. خط جداكننده بين رمزنگاري خوب و بد بسيار باريك ميباشد. [21,2,4] تنها راه تشخيص نحوة عملكرد نرمافزارهاي رمزنگاري، مهندسي معكوس است.
مثلاً نرمافزار رمزنگاري را در نظر بگيريد كه RSA 1024 بيتي و AES 128 بيتي را پيادهسازي كرده است. اين ويژگيها، اطلاعات زيادي دربارة امنيت واقعي رمزنگاري بيان نميكند. در اين زمينه سوالات متعددي مطرح است. از كدام RSA استفاده شده است؟ آيا RSA همان نوعي است كه در كتابها تشريح شده [5](با Zero-padding). آيا AES، 128 بيتي با نماي عمومي 3 رمزنگاري شده است؟ آيا كليدهاي خصوصي با مولدهاي عددي شبه تصادفي ضعيف مانند نسخههاي قديمي Netscape توليد شدهاند [9]؟ چه كسي ميداند كه آيا واقعاً RSA-OAEP [21]پيادهسازي شده است ؟ با بررسي تاريخچه نرمافزارهاي رمزنگاري، متاسفانه به نظر ميرسد كه رمزنگاري بد بسيار رايج است. [12,28] بنابراين به نظر ميرسد كه نرمافزارهاي متن باز راه حل مناسبي ميباشند. اما اين واقعيت كه كد متني قابل خواندن است، بدين معنا نيست كه توسط مجربين
رمزنگاري خوانده ميشود. پستالكترونيكي امن، معروفترين تكنولوژي نرمافزاري استفاده شده در اينترنت ميباشد[1] و به كاربران امكان احراز اصالت ويا محرمانگي پست الكترونيكي را ميدهد. پست الكترونيكي امن، در اوايل دهة 90 با ظهور نرمافزارPretty Good Privacy(PGP) معروف گرديد[27]. PGP توسط Phil Zimmermann در آمريكا ايجاد شد. به دليل محدوديتهاي سخت صدور نرمافزارهاي رمزنگاري و ساير قوانين آمريكا در گذشته، PGP براي نواحي خارج از آمريكا بسيار نامناسب بود.[10] GNUPrivacy Guard (GunPG يا GPG) در اواخر دهة 90 براي رفع سوالات مطرح در PGP ايجاد گرديد. GPG، پيادهسازي كاملي از OpenPGP [26] است و استانداردي ميباشد كه PGP را گسترش داده است. GPG با گواهينامة عمومي GNU GPL))) GNU General PublicLicense) و به صورت رايگان منتشر گرديد. كد كامل متني GPG موجود است[10] و جايگزين رايگان PGP ميباشد. وزارت اقتصاد و تكنولوژي فدرال آلمان پايهگذار گسترش بيشتر GPG بود. GPG پايه كاربري بسيار مناسبي دارد و در بيشتر توزيعات GNU/Linux مانندRedHat ، MandrakeSoft ، SuSE و Debian موجود است. اولين نسخة ايستاي GPG در 7 سپتامبر 1999 منتشر گرديد.
مروری بر GNU- V.1.2.3
[15]، امضاء و رمزنگاري با استفاده از ELGamal ، RSA,DSA Twofish, Blowfish, 3DES, AES, ,CASTS ,SHA-1,MD5 , RIPE-MD-160 و TIGER را پشتيباني مينمايد. GPG پيامهاي PGP نسخههاي 5،6،7 را رمزگشايي، ارزيابي و امضاء مينمايد. PGP مطابق با استاندارد OpenGPG است ودر مرجع [26] و RFC 2440 [6] تشريح شده است.
GPG محرمانگي و/ يا احراز اصالت پستالكترونيكي را تأمين ميكند: GPG به كاربران امكان رمزنگاري و رمزگشايي، امضا و ارزيابي امضاي پستالكترونيكي را به كمك رمزنگاري كليد عمومي ميدهد و به كمــــك زيـرساخت كليد عمومي، كليد عمومي ساير كاربران را احرازاحراز اصالت مينمايد.
GPG v1.2.3، به كاربر امكان توليد چندين نوعكليد عمومي/خصوصي را ميدهد. دستور مربوط به توليد كليدgpg -- gen-key است.- در حالت استاندارد، رمزنگاري و امضا به شرح ذيل ميباشد:
• (1) DSA وELGamal : گزينههاي پيش فرض ميباشند. كليدهاي DSA، براي امضا و كليدهاي ELGamal، براي رمزنگاري بكارميروند. (نوع 16 در ترمينولوژي OpenPGP)• (2)DSA : DSA فقط براي امضا بكار ميرود.• (5) RSA: RSA فقط براي امضا بكار ميرود.
-وضعيت تخصصي رمزنگاري و امضا به شرح ذيل ميباشد:• (4) ELGamal براي امضا و رمزنگاري: در ترمينولوژي OpenPGP، اينها كليدهاي از نوع 20 ميباشند.
• (7)RSA هم براي امضا و هم براي رمزنگاري بكار ميرود.به طور خاص، كليد امضاي ELGamal، براي رمزنگاري نيز مورد استفاده قرار ميگيرد اما كليد رمزنگاري ELGamal محدود به رمزنگاري است. در v1.2.3 GPG، كليدهاي امضاي ELGamal فقط در وضعيت تخصصي توليد نميگردند. اما نسخههاي قبلي GPG اينگونه نبودهاند. در وضعيت استاندارد v1.0.7GPG موارد (1)، (2)، (4)، (5) را پيشنهاد مينمايد.
GPG براي رمزنگاري پست الكترونيكي از رمزنگاري تركيبي استفاده مينمايد. كليد نشست (با روش رمزنگاري متقارن) با روش رمزنگاري كليد عمومي RSA و يا ELGamal رمز ميگردد.كليد نشست به روش OpenPGP ، شكل مييابد. ( شكل1): اولاً، شناسة هشتتايي (one-octet) الگوريتم رمزنگاري متقارن، پيشوند كليد نشست ميباشد. پس از آن مجموع دو هشتتايي (Two-octet checksum) به كليد نشست متصل ميگردد كه معادل مجموع هشتتاييهاي قبلي ميباشد و شامل شناسة الگوريتم مود 65536 نيست.
مجموع دوهشتتايي بر روي بايتهاي كليد كليد الگوريتم رمزمتقارن شناسة هشتتايي الگوريتم رمزمتقارن شكل1- ساختار كليد نشست در Open PGPپس از آن مطابق با روش PKCS#1 v1.5 نوع بلوك 02 ، بايتهايي به كليد نشست افزوده ميشود.([17] و شكل 2): ابتدا يك بـــايت صفر به سمت چپ كليد نشست اضافه مـــيشود و پس از آن بايتهاي تصادفي ودر پايان بايتهاي 00 02 اضافه ميگردند. اگرچه PKCS#1 v1.5 فقط براي رمزنگاري RSA بكار رفته، اين ساختار هم در RSA و هم در ELGamal بكار ميرود. تصادفي بودن مورد نياز براي ايجاد و بايتهاي تصادفي غيرصفر با پردازهاي كه در اصل مندرج در [11] شرح داده شده، ايجاد ميشود.
GPG ، بــــراي امضا و رمـــزنگاري، از همان متد توليد كليد، استفـــاده مينمايد. ELGamal در GPG در گروه چندگانه (multiplication) با مولد g پيادهسازي ميشود. كليد خصوصي با x مشخص ميشود و كليد عمومي مربوطه ميباشد. multiplication) با مولد g پيادهسازي ميشود. كليد خصوصي با x مشخص ميشود و كليد عمومي مربوطه ميباشد.
عدد اول بزرگ p به طريقي انتخاب ميشود كه تجزيه p-1 كاملاً شناخته شده باشد و همه عوامل طول بيتي بزرگتر از آستانة qbit داشته باشند و اين آستانه وابسته به طول بيت p است. ارتباط بين سايز p و آستانة آن در جدول Wiener آمده است(شكل4): دقت كنيد كه 4qbit كمتر از طول بيت p است.
1792 1536 1280 1024 768 512 طول بيت p212 198 183 165 145 119 qbit3840 3584 3328 3072 2816 2560 2304 2048296 288 279 269 259 249 237 225شكل 4- جدول Wiener بكار رفته براي ايجاد اعداد اول ELGamelپس از انتخاب p، مولد g از با آزمايش مولدهاي بعدي پيدا ميگردد و اين آزمايش با عدد 3 آغاز ميشود: اگر 3 مولد نباشد، آنگاه عدد 4 آزمايش ميشود و …، توليد جفت (p,g) در روية generate-elg-prime از فايل cipher/primegen.c انجام ميگيرد . جفت كليد عمومي و خصوصي در رويه generate از فايل cipher/primegen.c توليد ميشود. اگرچه مولد g كوچك ميباشد اما از آنجائيكه (p-1)/2 حداقل و بيت است، و g>2 مــيباشد، Bleichenbachers forgery از امضاي ELGamal بكار نميرود. نماي خصوصي x به عنوان عدد شبه تصادفي درهنگ p-1 انتخاب نميشود، و نكتة ذيل دربارة GPG قابل ذكر است: عدد تصادفي را انتخاب كنيد كه داراي سه ويژگي است: 0<Xانجام ميگيرد. بنابراين، x كوچكتر از p انتخاب ميگردد تا اعمال مخفي را تسريع نمايد. بنابراين اين امر بر امنيت نشانههاي GPG- ELGamal تأثيردارد .
امضا
شرح: جفت(a,b) ، امضاي پيامي است كه به صورت عدد صحيح m مود p شكل يافته است. جائيكه و . عدد صحيح k، عدد تصادفي است كه نسبت به p-1 اول ميباشد، و با هر امضا توليد ميگردد. GPG امضاي (a,b) را، با بررسي اينكه آيا 0<A وجود دارد. به طور تئوريك، k عدد تصادفي امن رمزنگاري شده مود p-1 است، به نحويكه k نسبت به p-1 اول ميباشد. حملات جديد بر روي شماهاي امضاي log گسسته [13],[2],[22])) نشان داده كه هر گونه كمبود اطلاعات (يا هر ويژگي ويژهاي) بر روي k ممكن است باعث گردد كه حملهگر كليد خصوصي امضاكننده را در زمان كوتاهتري نسبت به آنچه براي حل لگاريتمهاي گسسته مورد نياز است، بازيابي مينمايد. براي انجام چنين كاري، جفتهاي پيام/ امضاي بسياري در دسترس ميباشند. با داشتن جفت پيام/ امضا و اطلاعات جزئي بر روي k، كليد خصوصي امضاكننده افشا مي گردد، اگرچه امضاكنندهها، از k هاي مختلفي استفاده مينمايند: در صورتيكه چنين جفتهايي به قدر كفايت جمعآوري گردند، استخراج كليد خصوصي عملي ميباشد. نحوة توليد k در روية gen-k از فايلcipher/ElGamal.c شرح داده شده است. k با بيت شبه تصادفي انتخاب شده است(مشابه توليد نماي خصوصي x، به جز اينكه k ممكن است كمتر از بيت شبه تصادفي داشته باشد). از آنجا كه k نسبت به p-1 اول نميباشد، k افزايش مييابد. به طور كلي، k نهايي بسيار كوچكتر ازp ميباشد و بنابراين به صورت يكپارچه، در مود p-1 توزيع شده است: طول بيت k در حدود ميباشد، در حاليكه p حداقل است. اين امر بدين شكل تشريح ميگردد: IMO با k كمتر از p كفايت مينمايد و كارايي رمزنگاري را به خوبي بهبود ميبخشد. ما از جدول Wiener استفاده ميكنيم و ناحية اين بزرگي را ميافزاييم. بايد در نظر داشت كه k به طور يكساني براي رمزنگاري و امضا بكا مي رود. به هرحال انتخاب k كوچك براي امضا نامناسبتر از بكارگيري k كوچك براي رمزنگاري ميباشد.
آشنایی با یک برنامه رمزنگاری قدرتمند و ساده (PGP)
با استفاده از PGP (PrettyGood Privacy)شما میتوانید محرمانگی پیغامها و فایلهایتان را حفظ کنید بطوریکه فقط دریافتکنندگان مورد نظر شما بتوانند آنها را بخوانند. بعلاوه میتوانید پیامها و فایلهایتان را امضای دیجیتال کنید تا دریافتکنندگان از تعلق آنها به شما مطمئن شوید. یک پیام امضاءشده، عدم تغییر محتویات آن را نیز تایید میکند. البته PGP تنها نرمافزار ارسال و دریافت ایمیلهای امن نیست اما کاربرد آن در این زمینه نسبتا زیاد است.
PGP براساس رمزنگاری کلید عمومی عمل میکند که در آن از یک جفت کلید برای برقراری ارتباط امن استفاده میشود. برای ارسال ایمیل خصوصی به یک نفر، ازکپی کلید عمومی آن شخص برای رمزنگاری اطلاعات استفاده میکنید و به این ترتیب تنها آن فرد میتواند با استفاده از کلید خصوصی خود ایمیل را رمزگشایی کند. بالعکس، چنانچه شخصی بخواهد برای شما ایمیل امن ارسال کند، از کلید عمومی شما برای رمز کردن متن نامه استفاده میکند و تنها شمایید که میتوانید آن متن را با استفاده از کلید خصوصی خود رمزگشایی کنید. بنابراین شما دیگران را از کلید عمومی خودتان مطلع میکنید اما از کلید خصوصی خودتان، خیر!!!
همچنین از کلید خصوصی خود برای امضای ایمیلی که قصد ارسال آنرا دارید استفاده میکنید. دریافتکنندگان میتوانند از کلید عمومی شما برای تعیین اینکه آیا واقعا خود شما آنرا ارسال کردهاید و آیا متن نامه در طول ارسال تغییر نکرده است، استفاده کنند. شما هم برای تایید امضای دیگران از کلید عمومی آنها برای رمزگشایی متن دریافتشده استفاده میکنید.
در ادامه به نحوه کار با نرمافزار PGP اشاره میشود، با خواندن این مطلب به سراغ این نرمافزار بروید و سعی کنید از این به بعد ایمیلهای رمزشده برای ما بفرستید.
۱- PGP را روی کامپیتور خود نصب کنید:
با مراجعه به راهنمای نصب PGP که معمولا همراه این نرمافزار است با نحوه نصب آن آشنا خواهید شد. در صورت نبود این راهنما، خودتان دست بکار شوید. چندان مشکل نیست.
۲- یک جفت کلید خصوصی و عمومی ایجاد کنید:
قبل از اینکه بتوانید استفاده از PGP را آغاز کنید، نیاز به تولید یک جفت کلید دارید. میتوانید اینکار را در طول نصب PGP انجام دهید یا زمان دیگری که این نرمافزار را اجرا میکنید. شما به جفت کلید برای موارد زیر نیاز دارید:
·رمزنگاری اطلاعات
·رمزگشایی اطلاعاتی که با کلید شما رمز شدهاند.
·امضاء کردن اطلاعات
۳- مبادله کلیدهای عمومی با دیگران:
بعد از اینکه جفتکلید را ایجاد کردید، میتوانید مکاتبه با دیگر استفادهکنندگان PGP را آغاز کنید. شما به یک کپی از کلید عمومی دیگران نیاز دارید. کلید عمومی شما بصورت بلوکی از متن است، بنابراین تبادل کلید با شخص دیگر آسان است. میتوانید کلید عمومی خود را در ایمیل قرار دهید، آنرا در فایل کپی کنید یا آنرا به یک سرویسدهنده کلید ارسال کنید تا هرکسی بتواند به کپی آن در صورت نیاز دسترسی داشته باشد. (مراقب باشید که کلید خصوصی خود را برای دیگران ارسال نکنید، در ضمن مطمئن باشید که از کلید عمومی یک نفر نمیتوان به کلید خصوصی وی پی برد)
۴- از اعتبار کلید عمومی دیگران مطلع شوید:
هنگامی که شما یک کپی از کلید عمومی شخصی را دارید، میتوانید آنرا به جاکلیدی خود اضافه کنید. بعد از آن میتوانید نسبت به تعلق این کلید به شخص مورد نظر اطمینان حاصل کنید و اینکه این کلید تغییر نکرده است. اینکار با مقایسه اثرانگشت (fingerprint) یکتا که در کنار کپی کلید عمومی آن شخص دارید با اثرانگشت کلید اصلی که در اختیار صاحب اصلی کلید است، انجام میپذیرد. هنگامی که مطمئن شدید که کلید عمومی معتبری از آن شخص در اختیار دارید، به آن کلید نشانه معتبر بودن اضافه میکنید.
۵- امنکردن ایمیلها و فایلهایتان را آغاز کنید:
بعد از اینکه جفت کلیدهایتان را تولید کردید و کلیدهای عمومی را مبادله کردید، میتوانید دست به کار رمزنگاری، امضاء ، رمزگشایی و تایید ایمیلها و فایلها شوید. برای انجام یک عمل PGP باید فایل یا پیامی را که میخواهید امن کنید انتخاب کنید و سپس عمل مورد نظر خود را «رمزنگاری (Encrypt)، امضاء (Sign) ، رمزگشایی (Decrypt) یا تایید (Verify) » از طریق منوی PGP انتخاب کنید. منوهای PGP از چند طریق در دسترس هستند؛ مثلا در Windows Explorer شما میتوانید روی فایل مورد نظر کلیک راست کنید و سپس عمل مناسب را در قسمت PGP انتخاب کنید.
۶- فایلهای مورد نظر را پاک کنید.
هنگامی که احتیاج به پاک کردن دائمی یک فایل دارید، میتوانید با استفاده از ویژگی Wipe این عمل را انجام دهید تا مطمئن شوید که فایل قابل بازیابی نیست. فورا در محل ذخیره فایل اطلاعاتی نوشته میشود تا نتوان فایل را با استفاده از نرمافزارهای بازیابی دیسک حاصل کرد.
ضمنا نرمافزار PGP به شما امکان رمزکردن، رمزگشایی و سایر اعمال را روی اطلاعاتی که روی clipboard قرار دارد، میدهد. سپس اطلاعات تغییریافته را روی همان clipboard قرار میدهد. حتما میدانید که با انتخاب گزینه copy ، متن انتخاب شده به clipboard و با انتخاب گزینه paste متن موجود در clipboard به پنجره فعال شما منتقل میشود.
سئوالهای بودن جواب
مديريت نوين بر پايه فناوري اطلاعات طراحي شده است. مديريت تجاري و اداري به گونهاي تغيير خواهد يافت كه هرم تشكيلاتي كمارتفاع و عريض خواهد گرديد. رياست سازماني به مدد فناوري اطلاعات به انبوهي از مديريت هاي مستقل و كوچك و كارآمد متصل خواهد گرديد. سازمانها در مقابل نيازهاي مشتريان و مردم چـــــابكتر ومسئولانهتـــر عمل خواهند كرد. اگر دادههاي مورد تبادل سازمانها توسط سايرين منهدم، و يا دستكاري نشود. اگر برنامههاي محرمانه در دسترس ديگران نباشد و اگر شبكه دادهها و شريان حيات مديريت نوين در روز مبادا از هم گسسته نشود.
1- آيا لازم نيست قبل از راهاندازي شبكهدادهها در مديريت سازماني به فكر استحكام آن باشيم؟
2- آيا شبكه دادههاي كشور براي حداكثر مقاومت در برابر بمباران وبلاياي طبيعي طراحي شده است؟
3- آيا ميتوان دادههاي مورد تبادل تمامي مديريت ها را در يك نقطه ازشبكه مورد شنود قرار داد؟
4- آيا كنترلي شبانهروزي و ابزار آلاتي قابل اعتماد براي رفع اختلالات چنين شبكهاي وجود دارد ؟
5- آيا قوانين مديريتي و سازماني براي تفسيرهاي تازه از ابلاغات، بخشنامه ها، لغو دستورها و جرائم سازگار است؟
6- آيا ميتوان دادههاي خصوصي خود را چنان رمزنگاري كرد كه حتي پليس هم نتواند آن را بخواند؟
7- اگر كسي ادعا كند كه دادههاي او دزديده شده است و در نزد كسي به صورت رمز شده نگهداري ميشود، چه مداركي به نفع يا بر عليه مدعي است؟ و اگر پس از باز شدن رمز، ادعا ثابت نشود، خسارت افشاي دادهها را چگونه محاسبه ميكنيم و چه كسي ميپردازد؟
8- اگر تبعه يك كشور با قوانين آزاد در رمزنگاري وارد كشور ما بشود ميتواند با دستگاه خود(كه مجهز به سيستم رمزنگاري است) با خارج از كشور ما تماس بگيرد؟ ميتواند با همكار خود در داخل كشور تماس بگيرد؟
9- اگر تبعه يك كشور كه رمزنگاري در آن جرم است، در كشور ما(كه رمزنگاري در آن جرم نيست) از دستگاههاي رمزنگاري استفاده كند و اين كار مورد اعتراض كشور متبوع او باشد، ما از اين فرد حمايت ميكنيم، يا آن را به كشور متبوعش پس ميدهيم، اگر دادههاي مورد تبادل را بخواهند آن را تحويل خواهيم داد؟ اساساً حق داريم اين اطلاعات را قبلاً ضبط كرده باشيم؟ چه مرجع قضائي اين حكم را ميدهد؟ براي ايرانيان چه كسي حكم ميكند؟ 10- آيا در كشور ما رمزنگاري جرم است؟ اگرنوعي خاص از آن جرم است، نويسنده نرمافزار خريد و فروش سهام بازار بورس چگونه ميتواند براي نرمافزار خود مجوز فروش بگيرد؟ اگر در اين نرمافزار براي حفظ محرمانگي، از رمزنگاري استفاده شده باشد، چه نوعي از آن مجاز است؟ نسخه صادراتي آن چطور؟
سامانه خرید و امن این
سایت از همهلحاظ مطمئن می باشد . یکی از
مزیت های این سایت دیدن بیشتر فایل های پی دی اف قبل از خرید می باشد که شما می
توانید در صورت پسندیدن فایل را خریداری نمائید .تمامی فایل ها بعد از خرید مستقیما دانلود می شوند و همچنین به ایمیل شما نیز فرستاده می شود . و شما با هرکارت
بانکی که رمز دوم داشته باشید می توانید از سامانه بانک سامان یا ملت خرید نمائید . و بازهم
اگر بعد از خرید موفق به هردلیلی نتوانستیدفایل را دریافت کنید نام فایل را به شماره همراه 09159886819 در تلگرام ، شاد ، ایتا و یا واتساپ ارسال نمائید، در سریعترین زمان فایل برای شما فرستاده می شود .
آدرس خراسان شمالی - اسفراین - سایت علمی و پژوهشی آسمان -کافی نت آسمان - هدف از راه اندازی این سایت ارائه خدمات مناسب علمی و پژوهشی و با قیمت های مناسب به فرهنگیان و دانشجویان و دانش آموزان گرامی می باشد .این سایت دارای بیشتر از 12000 تحقیق رایگان نیز می باشد .که براحتی مورد استفاده قرار می گیرد .پشتیبانی سایت : 09159886819-09338737025 - صارمی
سایت علمی و پژوهشی آسمان , اقدام پژوهی, گزارش تخصصی درس پژوهی , تحقیق تجربیات دبیران , پروژه آماری و spss , طرح درس
مطالب پربازديد
متن شعار برای تبلیغات شورای دانش اموزی تحقیق درباره اهن زنگ نزن انشا در مورد 22 بهمن