آموزش wmi
بسم الله الرحمن الرحیم
آموزش برنامه نویسی
دوره آموزشی WMI (بخش اول)
در صنایع، کارخانه ها و مجموعه های بزرگ یکی از مباحثی که همیشه مورد بررسی قرار می گیرد مبحث مانیتورینگ تجهیزات می باشد. این مبحث در همه ی حوزه های صنایع کوچک و بزرگ مورد توجه است.
از همین رو پروتکل های زیادی در دنیا به وجود آمده اند که بر اساس آن ها می توان وضعیت تجهیزات سخت افزاری و نرم افزاری دستگاه های مختلف را مورد بررسی قرار داد.
آموزش پروتکل snmp
در این مورد معروف ترین پروتکل، پروتکل SNMP می باشد. همانطور که می دانید پروتکل مجموعه از قوانین و اطلاعاتی است که به شما اجازه می دهد بر اساس یک استاندارد خاص فعالیت های خود را انجام دهید. پروتکل SNMP مخفف عبارت Simple Network Management Protocol می باشد، در این پروتکل شما بر استفاده از یک Application اطلاعات سخت افزاری و نرم افزاری تجهیزات درون شبکه را جمع آوری و ذخیره می کنید.
معرفی QT
در مبحث جمع آوری اطلاعات و مانیتورینگ معمولا از زبان های سطح پایین مانند C , C++ استفاده می کنند، زیرا شما می توانید با توجه به دسترسی این زبان ها به اطلاعات پایه هر سیستم، اطلاعات مورد نیاز خود را دریافت کنید. با توجه به این مسئله که نرم افزارهای امروزی به صورت گرافیکی باید طراحی شوند، از فریم ورک هایی برای رفع این مشکل در زبان های سطح پایین استفاده می شوند. به طور مثال محبوبترین فریم ورکی که برای طراحی نرم افزارهای SNMP مورد استفاده قرار می گیرد، فریم ورک QT می باشد.
این فریم ورک با داشتن امکان طراحی یک نرم افزار Cross Platform برای سیستم عامل های مختلف و همچنین طراحی User interface و در نهایت استفاده از دستورات C و Open Source بودن آن بسیار مورد علاقه سازمان ها و صنایع مختلف می باشد.
اما طبیعتا برنامه نویسی این فریم ورک به سادگی زبان های سطح بالا نخواهد بود! که همین باعث می شود این Framework در نزد توسعه دهندگان محبوبیت زیادی نداشته باشد.
در این آموزش قصد داریم Framework ایی را به شما معرفی کنیم که تمام نیاز های شما را به سادگی می تواند برطرف کند.
یکی از مزایای QT مبحث امنیت و Open Source بودن آن می باشد.
همانطور که اطلاع دارید از ابتدای سال 2015 مایکروسافت .NET را به صورت Open Source انتشار داد، در نتیجه شما می توانید از این منظر زبان سی شارپ را یک زبان مطمئن در نظر بگیرید. علاوه Open Source شدن .NET کامپایلر جدید مایکروسافت که با نام Roslyn (رازلین) معرفی شد به صورت Open Source و حتی به صورت Service قابل بررسی و استفاده می باشد. پیش تر مطلبی را در خصوص معرفی Roslyn انتشار داده ایم که می توانید در مورد این کامپایلر مطالب بیشتری را مطالعه کنید.
معرفی Roslyn
ویژگی بعدی QT قابلیت اجرای برنامه های نوشته شده توسط این فریم ورک بر روی سیستم عامل های مختلف و یا Cross Platform بودن آن می باشد، سی شارپ نیز می تواند بر روی سیستم عامل های مختلف مورد استفاده قرار گیرد.
آموزش برنامه نویسی سی شارپ
C# Cross Platform
طبیعتا سی شارپ نیز قابلیت پیاده سازی User Interface را دارد، در نتیجه می توان به سادگی تصمیم گرفت که بهتر است از زبان C++ و فریم ورک QT استفاده کنیم و یا زبان سی شارپ!
اما یکی دیگر از ویژگی هایی که باعث می شود از زبان C در بحث مانیتورینگ استفاده شود، دسترسی این زبان برنامه نویسی به اطلاعات پایه سخت افزاری و نرم افزاری سیستم ها است.
آموزش wmi
مایکروسافت از .NET 1 فریم ورکی (Framework) را با نام WMI که مخفف عبارت Windows Management Instrumentation می باشد، معرفی کرده است. این Framework در واقع یک پایگاه داده از اطلاعات سیستم عامل، سخت افزار و نرم افزارهایی است که بر روی یک سیستم نصب شده است. شاید تاکنون این بخش از سیستم عامل را مشاهده کرده باشید، اگر به قسمت Computer Management بروید می توانید در بخش Services and Applications سرویس WMI را مشاهده کنید.
سرویس WMI به عنوان بخشی از سیستم عامل، به شما اجازه می دهد تا اطلاعات مختلفی را مانند بخش های زیر بدست آورید:
- Win32 Provider
- WDM Provider
- Event Log Provider
- Registry Provider
- SNMP Provider
- View Provider
- Performance Counter Provider
- Active Directory Provider
- Windows Installer Provider
مثلا در خصوص بدست آوردن اطلاعات سخت افزار شما می توانید با یک دستور ساده اطلاعات زیر را بدست آورید:
- HDD Serial Number
- HDD Sizes
- HDD Free Space
- CPU Serial Number
- CPU Clock Speed
- CPU Socket Type
- Network Adapter MAC Address
- Network Adapter Default Gateway
شخصا حدود 5 سال پیش، در سال 1389 با فریم ورک WMI آشنا شدم، در ابتدا یک سرویس و فریم ورک ساده به نظر می رسد اما اطلاعات بسیار کاملی را می توان توسط فریم ورک WMI بدست آورد.
متاسفانه فریم ورک WMI برای برنامه نویسان یک فریم ورک گمنام می باشد، از همین رو بسیار از افراد برای پروژه هایی که نیاز است مباحث کار با اطلاعات دستگاه های سخت افزاری و نرم افزاری را انجام دهند، به سراغ زبان های C,C++ می روند. طبیعتا استفاده از زبان های C,C++ بسیار هزینه بر و پردرد سر خواهد بود.
در این دوره آموزشی سعی خواهیم کرد با فریم ورک WMI یک پروژه ی ساده را انجام دهیم. در بخش بعدی انشالله مباحث مربوط به این Framework را با یک مثال کامل طراحی و پیاده سازی خواهیم کرد.