هفتم ژانويه پايان عمر فدورا 8
وبسايت پروژه فدورا اعلام كرد كه پشتيباني از توزيع فدورا 8، هفتم ژانويه 2009 (دهه دوم دي ماه) به پايان ميرسد. اين زمان، كمي طولانيتر از چيزي است كه در صفحه قوانين پشتيباني آن آمده است، احتمال ميرود اين تعويق از قطع پشتيباني، به خاطر اين باشد كه نخواهند كريسمس ناخوشايندي براي كاربران فدورا رقم بزنند. بنابراين، كاربران فدورا حدود يك ماه تا ارتقاء فدورا فرصت دارند.
منبع: LWN.NET
پايتون 3 بالاخره آماده شد
پايتون 3 (پايتون 3000، k3py )بالاخره براي دريافت آماده شد. اين نسخه كه در تاريخ عرضه اين زبان برنامهنويسي، نقطه عطف بزرگي بهحساب ميآيد، حدود سه سال تحت توسعه بوده و از اين به بعد با نگارش .x2 خود دچار عدم تطابق است. در صفحه تغييرات اين زبان برنامهنويسي، به اموري پر شدن كاستيهاي اين زبان برنامهنويسي، حذف روشها و گرامرهاي غيرمصطلح و غيركاربردي و همچنين ايجاد بهبودهايي در سازماندهي كتابخانههاي استاندارد اشاره شده است.
منبع: Python.org
جهش سود ناول در فروش لينوكس
در سه ماهه چهارم سال جاري ميلادي، درآمد حاصل از كسب و كار روي لينوكس در شركت ناول 33 درصد رشد داشته است كه اين رغم در مقايسه با سال گذشته، رشد 11 درصدي را نشان ميدهد. اين شركت همچنين در بخش سيستمها و مديريت منابع نيز 15 درصد رشد داشته است. درآمد ناول در بخش تعاملهاي بازرگاني نه درصد كاهش داشته است اما از بخش خدمات تجاري خود 26درصد درآمد خالص بدست آورده است.
####
خلق برنامههاي كاربردي استثنايي با JavaFX Script
يكي از جديدترين اعضاي خانواده زبانهاي برنامهنويسي است كه روي پلتفرم جاوا و تنها با نصب (Java SE) 6 Standard Edition اجرا ميشود. جاواFX اسكريپت، يك زبان بسيار ديناميك و قابل حمل است كه از قدرت و توانايي لازم براي ايجاد واسط گرافيكي كاربر با هر اندازه و هر درجه از پيچيدگي برخوردار است. واسطهاي گرافيكي ايجاد شده توسط جاواFX اسكريپت شبيه واسطهايي هستند كه با Swing نوشته شدهاند، با اين تفاوت كه كد نوشته شده كوچكتر و سادهتر است. هرچند دستور زبان جاواFX اسكريپت با دستور زبان جاوا متفاوت است، بخش بزرگي از فناوري كه اين دو زبان بر پايه آنها بنا شدهاند يكسان است.
تاريخچه
جاوا FX اسكريپت (بخش اسكريپتنويسي جاواFX)، زندگي خود را بهعنوان پروژهاي بهنام 3F كه توسط كريس اوليور انجام ميشد آغاز كرد. پيدايش جاواFX در ماه مي سال 2007 براي اولين بار اعلام شد. در ماه مي سال 2008 شركت Sun اعلام كرد كه نسخه روميزي و نسخه طراحي شده براي جستجوگرها تا پاييز سال 2008 منتشر ميشوند و JavaFX Mobile نيز در بهار سال 2009 در دسترس كاربران قرار خواهد گرفت. از ماه جولاي سال 2008 توسعهدهندگان كد ميتوانستند يك پيش نمايش از JavaFX SDK را براي ويندوز و مكينتاش بارگذاري كنند. هنوز اطلاع رسمي دقيقي در مورد زمان پشتيباني جاواFX از لينوكس وجود ندارد. با اينحال هم اكنون بيشترسرويسهاي جاواFX روي لينوكس اجرا ميشوند.
ويژگيها
جاوا FX اسكريپت مجموعهاي از محصولات نرمافزاري است كه براي ايجاد آنچه كه برنامههاي كاربردي اينترنتي غني1 و به اختصار RIA ناميده ميشوند پديد آمد. علاوه بر RIA اين زبان براي توسعه برنامههاي كاربردي تحت وب كه ويژگيها و كاربرد برنامههاي كاربردي روميزي سنتي را داشته باشند، مورد استفاده قرار ميگيرد. از ميان اين برنامهها ميتوان به برنامههاي كاربردي چندرسانهاي اشاره كرد. محصولات جاواFX ميتوانند برنامههاي كاربردي براي رايانههاي روميزي، موبايل، تلويزيون و ديگر پلتفرمها ايجاد كنند.
بخش اصلي و اوليه جاواFX، جاواFX اسكريپت ناميده ميشود كه يك زبان توصيفي است و بهمنظور سادهتر كردن استفاده از سويينگ براي آن دسته از برنامهنويسان واسط كاربر يا طراحان برنامههاي ويژوال كه با زبانهاي اسكريپتنويسي آشنايي دارند ايجاد شد. در جاواFX اسكريپت، ساختمان كد برنامهنويسي به نحوي طراحي شده است كه با ساختار واسط گرافيكي كاربر سازگاري بالايي داشته باشد.
از ديگر بخشهاي جاواFX، ميتوان به جاواFX موبايل اشاره كرد. جاواFX موبايل يك سيستم عامل براي تلفنهاي همراه است. تلفنهاي هوشمند2 و PDAها از مهمترين ابزارهايي هستند كه در اين طرح مورد نظر قرار گرفتهاند.
جاواFX موبايل كه روي يك هسته لينوكس اجرا ميشود، Java SE و Java ME را پياده سازي ميكند. جيمز گاسلينگ، از پيشگامان جاوا ميگويد: "در بخشهايي از جهان، تلفن همراه يك كاربر، نقش رايانه شخصي روميزي او را ايفا ميكند.
اين گروه از كاربران هدف اصلي ما در اين طرح هستند." هريك از ما ميتوانيم يكي از اعضاي اين گروه باشيم. زماني كه سفر ميكنيم، تلفن همراه ما در صورت برخورداري از امكانات كافي، جانشين مناسبي براي رايانه شخصي و لپتاپ خواهد بود.
وي در مورد چگونگي پيدايش ايده اصلي اين پروژه ميگويد: "اكثر زبانهاي اسكريپتنويسي موجود، در جهت رفع نيازهاي صفحات وب كار ميكنند. هدف ما طراحي زباني بود كه بيشتر در خدمت واسطهاي گرافيكي كاربر باشد و نيازهاي واسطهايي را كه از حجم زيادي پويانمايي برخوردارند برطرف كند."
شواهد موجود حاكي از اين هستند كه جاواFX از رقباي اصلي Flash Player، AIR و Silverlight مايكروسافت خواهد بود.
مقايسه جاوا FX اسكريپت و زبانهاي مشابه
تمركز شركت سان روي جاوا FX اسكريپت منجر به كند شدن پيشرفت در زمينه بهبود و توسعه سويينگ و قدرت توليد كد توسط آن شده است. اكنون اين سوال ذهن بسياري از برنامهنويسان را به خود مشغول كرده است: آيا تمركز روي جاواFX به مرور منجر به نابودي و محو تدريجي سويينگ خواهد شد؟
هرچند جاواFX با كد جاوا بهخوبي كار ميكند، سازگاري آن با سويينگ چندان زياد نيست. در حقيقت برنامهنويساني كه تجربه كار با سويينگ را دارند، لازم است يك مدل جديد برنامهنويسي، API و حتي كار با ابزارهاي جديدي را فراگيرند تا بتوانند پروژههاي مشابهي را با جاوا FX اسكريپت پيادهسازي كنند. از طرف ديگر، برخي از اجزاي موجود در سويينگ مانند JTable در محيط جاوا FX اسكريپت كار نميكنند و كدنويسي براي آنها بايد مجددا انجام شود. به عبارت ديگر، اگرچه سويينگ و جاوا FX اسكريپت ميتوانند با هم كار كنند، دو فناوري كاملا مجزا براي توسعه واسط كاربر3 هستند.
عمر سويينگ تقريبا به يك دهه ميرسد و در زماني كه بسياري از فناوريهاي ديگر با مشكلات متعددي دست به گريبان بودند سويينگ انتخابي عالي و درخشان بود. در مقايسه با AJAX، كار با اجزاي سويينگ سادهتر و عملكرد آنها به ويژه وقتي حجم دادههاي حاضر در پروژه زياد است، به مراتب بهتر است.
اما در سالهاي اخير، با پيدايش جعبه ابزارهاي جديد و متنوعي مانند Flex كه توسعه واسطهاي گرافيكي كاربر را آسان ميسازند، قدمت سويينگ بيشتر به چشم ميآيد و به نظر ميرسد كه سويينگ كمكم جاي خود را به اعضاي جديد خانواده زبانها و ابزارهاي توسعه دهنده واسط گرافيكي كاربر خواهد داد. از ديد بسياري از برنامهنويسان، فلكس به مراتب مولدتر و كارآمدتر از سويينگ است. فلكس فاقد بخشهاي خسته كننده موجود در سويينگ، مانند Data binding، Validation و UI layout است. برنامهنويسان شركت سان پيش از آغاز پروژه جاوا FX اسكريپت با ايجاد اجزاي جديد، برخي از اين مشكلات را از ميان برداشتند. اما با ظهور جاوا FX اسكريپت توسعه سويينگ با جديت سابق دنبال نميشود.
از ديگر موضوعات مورد بحث، مقايسه جاوا FX اسكريپت با زبانهاي مشابه مانند فلش، DHTML و سيلورلايت است.
يكي از عواملي كه بقاي نرمافزارهاي قديمي را تضمين ميكند اين است كه آنها روي اكثر جستجوگرها نصب شدهاند. اكنون بيش از 75% از جستجوگرها مجهز به جاوا هستند. اين رقم در مورد Flash به 85% و در مورد جاوا اسكريپت به 98% ميرسد. در مقابل، JavaFX فعلا روي هيچ جستجوگري اجرا نميشود.
جذابيت سيلورلايت و جاواFX در اين است كه هر دو آنها از همان فناوريهايي استفاده ميكنند كه در سمت سرور استفاده ميشود. فلش و جاوا اسكريپت از اين قاعده پيروي نميكنند و اين امر، آنها را با محدوديت منابع روبرو ميكند. مشكل ايجكس و DHTML اين است كه كدهاي نوشته شده با استفاده از اين دو زبان آنچنان ضعيف هستند كه همه برنامهنويساني كه از آنها استفاده ميكنند براي جلوگيري از ايجاد مانع در اجراي كد به ايجاد wrapperهاي سمت سرور رو آوردهاند.
ابزار توسعه كدهاي فلش، فلش است. كدهاي DHTML و ايجكس با استفاده از Notepad و GWT در ويندوز و XEmacs در يونيكس ايجاد ميشوند. در مورد جاواFX ابزار برنامهنويسي نتبينز است. برنامهنويسان سيلورلايت از Visual Studio Orcas همراه با يك ابزار طراحي استفاده ميكنند. در ميان اين ابزارها، نتبينز از ديگران قويتر است. به اين ترتيب برنده نبرد ميان اين زبانها پيشاپيش مشخص است.
كدهاي جاوا در زمان اجرا به حافظه اصلي بسيار زيادي نياز دارند. يك واسط كاربر ساده در زمان اجرا به طور متوسط به حدود 65 مگابايت حافظه اصلي نياز دارد. اجراي همزمان چند برنامه جاوا، در ازاي هر برنامه 65 مگابايت ديگر از حافظه اصلي را اشغال ميكند. فرض كنيد يك وبسايت آموزشي، مجموعهاي از نرمافزارهاي نمايشي4 را بارگذاري كرده است. بارگذاري همزمان چند دمو، در عمل تمام حافظه اصلي سيستم را اشغال ميكند. اين امر استفاده از كدهاي جاوا در حجم انبوه را با محدوديتهايي مواجه ميسازد.
شواهد موجود حاكي از اين است كه در دراز مدت، برنامههاي فلش از شانس رقابت كمتري در مقايسه با رقباي ديگر برخوردارند. فلش براي توليد سريع فايلهاي ويدئويي، ساخت آگهيهاي تبليغاتي و فيلمهاي كوتاه مناسب است. اما در مورد پويانماييها و ويديوهاي بزرگ كارايي لازم را ندارد. در مقابل، جاواFX و سيلورلايت شانس بسيار بيشتري براي بقا دارند. مايكروسافت به دليل نفوذ گسترده در بازار جهاني و در ميان كاربراني كه از رايانه براي كاربردهاي عمومي استفاده ميكنند همواره مخاطبان خاص خود را دارد. شركت سان نيز با دارا بودن ميليونها برنامهنويس جاوا در عرصه باقي خواهد ماند.
از ويژگيهاي برنامهنويسان جاوا اين است كه خود را با هر قالب كاري جديدي كه براي زبان جاوا ايجاد شود تطبيق ميدهند. از سوي ديگر بخش قابل توجهي از كاربران جاوا و محصولات شركت سان را كاربران دانشگاهي تشكيل ميدهند. اين كاربران خود از ايجاد كنندگان فناوريهاي جديد هستند.
آيا جاواFX به يك فناوري RIA پويا و تكامل يافته تبديل خواهد شد؟ اين موضوعي است كه در هفته آينده به آن خواهيم پرداخت.
پينوشتها
Rich Internet Client. 1
Smartphones. 2
User Interface. 3
Demo. 4
####
تاثير برنامهنويسي در قابليت انتقال
پيش از اين در مورد استانداردسازي زبانهاي برنامهسازي صحبتهايي داشتهايم و گفتيم لازم است كه هر گروه يا شركتي كه قصد دارد به پيادهسازي يك زبان بپردازد، لازم است از استانداردهاي آن زبان پيروري و آن را پشتيباني كند و يك برنامهنويسي نيز بايد براي كار با آن زبان، استانداردهاي مربوط و نيز استانداردهاي خاص كامپايلر مورد استفاده را مطالعه كند تا در نهايت به يك برنامه يا پروژه موفق دست يابد. البته براي رسيدن به موفقيت در اين زمينه فاكتورهاي بسيار ديگري نيز وجود دارد كه هر كدام را در جاي مناسبي مطرح خواهيم كرد.
ممكن است اين سوال مطرح شود كه اصولا چه زماني استانداردسازي زبانهاي برنامهنويسي انجام ميشود. اگر قبل از آن كه زبان برنامهنويسي پيادهسازي شود و مورد آزمايش قرار گيرد، اقدام به استانداردسازي آن شود ممكن است در آينده با مشكلات بسيار روبهرو شود و ناچار به تغيير يا اصلاح آن شوند.
از سوي ديگر، اگر در استانداردسازي زبان تاخير طولاني بهوجود بيايد ممكن است شاهد پيادهسازيهاي متعددي از آن زبان باشيم كه بهدليل نداشتن يك مرجع واحد، ناسازگاريهاي متفاوتي با هم خواهند داشت. بيشك در اين مدت افراد بسياري نيز با آن پيادهسازيها كار و به آنها عادت كردهاند و در نتيجه اگر كسي بخواهد از يك پيادهسازي به ديگري روي بياورد در كار با آن دچار مشكل خواهد شد. همچنين اگر برنامهاي را كه به يك زبان واحد نوشته شده است و در كامپايلري بدون اشكال به فايل اجرايي نهايي منتج شده است، در پيادهسازي ديگر آن كامپايلر بخواهيم كنيم ممكن است با اشكالات متعدد روبهرو شويم كه عملا اشكاليابي و اشكالزدايي آن را غيرممكن خواهد ساخت و در نتيجه فرد مجبور خواهد بود همواره با يك كامپايلر كار كند. اين كه نتوان يك برنامه به يك زبان واحد را در كامپايلرهاي ديگر همان زبان كامپايل كرد، يك اشكال بزرگ بهشمار ميرود كه به آن نداشتن قابليت انتقال1 گفته ميشود.
لزوم قابليت انتقال
شايد در نگاه برخي افراد قابليت انتقال يك زبان برنامهسازي، مساله مهمي نباشد. مثلا ممكن است سوال شود كه وقتي يك برنامه در كامپايلري مثل كامپايلر ++C بورلند بدون اشكال به فايل اجرايي تبديل ميشود، چه لزومي دارد آن را به كامپايلر ++C مايكروسافت انتقال دهيم؟ اين سوال از دو ديدگاه قابل بررسي است. اول اين كه يك برنامه لزوما توسط يك نفر كامپايل نميشود. ممكن است افراد مختلف كه با كامپايلرهاي مختلف كار كردهاند، بخواهند يك برنامه را كامپايل كنند. نميتوان انتظار داشت كه هر كس كه ميخواهد يك برنامه را كامپايل كند، حتما كامپايلر مربوط به آن را نصب كند. زيرا اين كار مستلزم صرف زمان جهت آشنا شدن با آن كامپايلر، كار با ابزارهاي آن و حتي نصب آن است. ضمن اين كه بهعلت پيروي نكردن كامپايلرها از يك استاندارد خاص، شخص بايد با آن پيادهسازي از زبان نيز آشنا شود و جزئيات آن را فرا بگيرد.
ديدگاه ديگر به اين مساله آن است كه شخص بخواهد آن برنامه را در يك سيستم عامل ديگر اجرا كند. بنابر اين حتي با پذيرفتن مشكلات ياد شده در ديدگاه اول، نصب آن كامپايلر در سيستم عامل ديگر امكانپذير نخواهد بود. بهعبارت ديگر، بهعلت سازگار نبودن دو كامپايلر، كه در دو سيستم عامل مجزا اجرا ميشوند، انتقال يك برنامه از يك ماشين به ماشين ديگر با سيستمعامل متفاوت ممكن خواهد بود. بنابر اين اجراي هر برنامه به يك سيستم عامل محدود خواهد شد و اين باعث ميشود تا برنامهما تنها براي كاربران سيستم عامل مورد نظر ما كار كند.
بنابر اين به تاخير انداختن استانداردسازي زبان؛ خطر ناسازگاري بين پيادهسازيهاي مختلف زبان و در نتيجه كاهش قابليت انتقال را در پي خواهد داشت. در نتيجه استانداردسازي بايد در زماني صورت گيرد كه نه تجربهكافي در مورد آن زبان و بهكارگيري آن در دست نباشد و نه اين كه آنقدر دير اقدام شود كه شاهد مشكلات ناسازگاري باشيم.
نقش برنامهنويس
با اين كه مسائل گفته شده در ميزان قابليت انتقال يك برنامه نقش اساسي دارند، اما نقش برنامهنويس و نحوه كدنويسي او را نيز نبايد ناديده گرفت. نحوه پيادهسازي يك زبان دست ما نيست كه بخواهيم آن را مطابق ميل خود تغيير دهيم. اما ما با رعايت برخي نكات و ريزهكاريها ميتوانيم در بهبود برنامههاي خود تاثيرگذار باشيم.
كمي از كليگويي به سمت جزئيات ميرويم تا اين مساله را بهتر درك كرده و بتوانيم آن را در عمل نيز بهكار بگيريم و با تعميم آن به موارد مشابه، سطح برنامهنويسي خود را ارتقا بخشيم. فرض كنيد ميخواهيم از يك فايل چندين ركورد چند ركورد را بخوانيم. هنگام خواندن ركوردها، معمولا اشارهگري2 به ركورد جاري در حال خواندن اشاره ميكند. حال ممكن است در يك پيادهسازي از زبان بعد از خواندن ركورد جاري، اشارهگر فايل به ابتداي ركورد بعد رفته و منتظر دريافت دستور خواندن يا نوشتن بماند و در پيادهسازي ديگر زبان، اشارهگر فايل زماني به ركورد بعدي پرش كند كه دستور خواندن يا نوشتن را دريافت كرده باشد و در حالت معمول به آخرين ركوردي كه خوانده است، اشاره كند.
تاثير اين دو پيادهسازي هنگامي كه قرار است چند ركورد پشت سر هم خوانده شده و پردازش شود يكسان است. در غير اينصورت مواردي وجود دارد كه اين دو نوع رفتار در بخش ديگر برنامه اثر ميگذارد. ضمن اين كه ممكن است در پيادهسازي ديگر زبان برنامهنويس مجبور باشد اشارهگر فايل را با دستور صريح تغيير دهد و اين كار بهطور خودكار صورت نگيرد.
معمولا با نوشتن يك برنامه آزمايشي كوچك ميتوان نوع پيادهسازي رفتاري را در يك زبان تشخيص داد و معمولا اين خصوصيات در طول برنامهنويسي در خاطر شخص باقي ميماند. اما برنامهنويس بايد به اين نكته توجه داشت باشد كه اگر قرار باشد برنامه خود را در يك كامپايلر ديگر از آن زبان يا در سيستمعامل ديگري كامپايل كند، ممكن است حتي اگر با خطايي نيز مواجه نشود، يك اشكال منطقي ظريف در برنامه ظهور كند كه معمولا يافتن اينگونه اشكالات زمانگير و خستهكننده است.
توصيهاي كه به برنامهنويسان در اين زمينه ميشود آن است كه براي بالا بردن خوانايي برنامه و قابليت حمل آن، برخي مواردي كه به طور منطقي توسط زبان انجام ميشود و يا طي عملياتي در پشت صحنه انجام ميشود با دستورات صريح، طوري كه در سرعت برنامه تاثير نداشته باشند، قيد كنند. به عنوان مثال برنامهنويسي ميداند كه متغير a در شروع يك عمليات بايد مقدار صفر داشته باشد. همچنين ميتواند نتيجه بگيرد كه مقدار a در طول برنامه هنگامي كه به شروع عمليات ياد شده ميرسد صفر خواهد بود. با اين وجود بهتر است به اين نتيجهگيري اكتفا نكرده و با يك دستور صريح انتساب صفر به )0a (a= هرگونه شك و شبههاي را از ميان بردارد. ضمن اين كه اگر شخص ديگري بخواهد اين كد را بخواند، بيترديد ميتواند نتيجه بگيرد كه در آن نقطه از برنامه مقدار a صفر است.
يا مثلا در مورد ديگر برنامهنويس ميداند كه اگر يك آرايه3 از اعداد صحيح4 تعريف كند، كامپايلر مقدار هر مولفه آن را بهطور پيشفرض صفر در نظر ميگيرد. اما خوب است هنگامي كه ميخواهد از آن آرايه استفاده كند، با دستورات صريح، به مولفههاي آرايه مقدار صفر را نسبت دهد. زيرا اولا به خواننده برنامه ميگويد كه صفر بودن مقدار در آن نقطه اهميت دارد و توجه او را به اين مساله جلب ميكند، ثانيا ممكن است يك پيادهسازي از آن زبان به هنگام تعريف آرايه، آن را مقدار دهي اوليه صفر نكند و از همان مقاديري استفاده كند كه در خانههاي حافظه قبلا نوشته شده است. در اين صورت با كامپايل شدن مجدد آن برنامه در كامپايلر ديگر، يك خطاي منطقي بروز ميكند. در صورتي كه اگر آن دستور انتساب مقدار به مؤلفهها وجود داشت اين اشكال رخ نميداد. در واقع ذكر آن دستور براي كامپايلر اول اضافه و براي كامپايلر دوم ضروري است و ما به خاطر اين ضرورت، بهتر است اضافه بودن اولي را بپذيريم. البته گاهي ممكن است اين كار باعث كاهش كارايي برنامه شود كه در اين مورد نيز در آينده صحبت خواهيم كرد.
پينوشتها
Portability. 1
Pointer. 2
Array. 3
Integer. 4
####
Bluetooth چيست؟
بلوتوث مجموعهاي از قوانين ارتباطي براي تبادل داده در فواصل كوتاه است. بلوتوث را ميتوان هم در دستگاههاي قابلحمل (مانند تلفن همراه) و هم در دستگاههاي ثابت بهكار برد. هدف از استفاده از بلوتوث، فراهم آوردن بستري براي ارتباط چند دستگاه، صرفنظر از تفاوتهاي سختافزاري آنان است.
لوگو و ريشه واژه
بلوتوث را بهنام شاه قرن دهم دانمارك و نروژ (هرالد بلوتوث) ناميدهاند. شاه بلوتوث توانست قبيلههاي در جنگل داخل دانمارك (كه سوئد و اسكانديناوي هم شامل آن ميشوند) را با نروژ متحد كند. در واقع او كسي بود كه ديپلماسي را از جنگ بهسمت گفتگو سوق داد. مخترعان فناوري بلوتوث باور داشتند كه اين نامي مناسب براي فناوري آنهاست كه به وسايل مختلف اجازه ميدهد نوعي گفتگو با هم داشته باشند. لوگوي بلوتوث مخفف نام هرالد بلوتوث است كه با تركيبي از خطوط باستاني ژرمنها كه نشان H آن به صورت نشان B آن بهصورت درآمده است، تصوير شده است.
بلوتوث از يكي از فناوريهاي راديويي استفاده ميكند. داده را به قسمتهاي كوچكتر تقسيم ميكند و تكهتكه به مقصد ميفرستد. در حالت عادي سيستم ماژولكردن (تقسيمبندي داده به قطعات كوچكتر) آن بر اساس سيستم گاوسي است و ميتواند تا يك مگابيت بر ثانيه اطلاعات را انتقال دهد. يكي از ويژگيهاي بلوتوث اين است كه صرفنظر از نوع دستگاه ميتواند انتقال را انجام دهد و از اين رو امروزه بهطور عام مورد استفاده قرار ميگيرد.
استانداردها و ويژگيهاي بلوتوث را گروهي موسوم به «SIG: Bluetooth Special Interest Group» تعيين ميكنند. SIG از مجموعهاي از شركتها در حوزه مخابرات، محاسبات، شبكه و الكترونيك تشكيل شده است.هدف بلوتوث در ابتدا ايجاد پروتكل ارتباطي بود كه مصرف برق پاييني داشته باشد. بلوتوث در حال حاضر در سه كلاس عرضه ميشود كه بسته به ميزان برق مصرفي گيرنده آن، تا 1 متر، 10 متر و 100 متر را پشتيباني ميكند. به اين خاطر كه بلوتوث از فناوري راديويي استفاده ميكند، نيازي نيست كه دو دستگاه همديگر را ببينند و از همين رو ميتوانند بسته به نوع دستگاه فرستنده™گيرندهشان، حتي فاصله زيادي از هم داشته باشند.
بلوتوث عليه وايفاي (Wi-Fi)
بلوتوث و WiFi هر دو جزو فناوريهايي بهحساب ميآيند كه توسط شركتهاي تجاري توليد شده و استاندارد جهاني ندارند. وايفاي نسبت به بلوتوث ميتواند تا برد بيشتري دستگاهها را ببيند و با سرعت بيشتري انتقال داده را انجام دهد، اما سختافزار پيشنياز آن و همچنين برق مصرفي زيادي دارد.
وايفاي و بلوتوث از يك بازه فركانسي استفاده ميكنند، اما روش ماژولكردنشان متفاوت است. بلوتوث بهعنوان جايگزين كابلها در محيط كوچك مطرح است و وايفاي بهعنوان جايگزين براي ارتباطات بزرگتر و شبكههاي محلي.
نسخه فعلي استاندارد بلوتوث به نسخه قبلي آن وابسته است. نسخه 2 آن نوامبر 2004 عرضه شد و توانست فناوري جديدتري را عرضه كند كه سرعت انتقال را چند برابر ميكرد. سرعت فناوري فعلي تا 3 مگابيت برثانيه رسيده است.
در ماژولكردنهاي استاندارد و پايه، بلوتوث از همان فناوري فركانسي گاوسي (GFSK) استفاده ميكند، اما در فناوري جديد خود از تركيبي از GFSK و انتقال فازي (PSK) استفاده ميكند.
SIG بلوتوث 1/2 سسسرا جولاي 2007 عرضه كرد. ويژگيهاي كليدي نسخه فعلي استاندارد بلوتوث، بهشرح زير است:
پاسخ گسترش يافته
فراهم آوردن اطلاعات بيشتر هنگام جستجوي دستگاهها، پيش از اتصال. اين اطلاعات شامل نام دستگاهها، ليست سرويسهايي كه دستگاه از آنها پشتيباني ميكند و اطلاعاتي از اين دست است.
مصرف برق كمتر
وقتي دستگاه در حالت آماده باش است، مصرف برق پايينتر آمده است. از اين رو دستگاههاي HID(دستگاههاي مرتبط با انسان) بيشترين سود را از اين مساله ميبرند. بهگونهاي كه ماوس و كيبوردهاي بلوتوث ميزان عمر خود را بين 3 تا 10 برابر افزايش دادهاند.
ادامه رمزگذاري
اگر ميزان اتصال بيشتر از 3/23 ساعت (يك روز به واحد بلوتوث) باشد، در اين صورت سيستم ميتواند ارسال دادهها را ادامه دهد و امنيت انتقال داده را حفظ كند.
تعامل ارتباط نزديك به هم (NFC)
ايجاد خودكار اتصال بلوتوث، تنها با نزديك كردن دستگاه مجهز به بلوتوث به دستگاهي كه از NFC پشتيباني ميكند. در اين صورت ميتوان گوشي را با نزديك كردن به تلفن، به آن متصل كرد. يا ميتوان دوربين يا تلفن همراه را با نزديك كردن به چاپگر، بهطور خودكار به آن متصل كرد.
در نسخه آتي بلوتوث قرار است ارتباط دستگاهها از طريق پهناي باند بسيار عريض (UWB) انجام شود كه در اين صورت سرعت انتقال دادهها تا 480مگابيت بر ثانيه افزايش نشان خواهد داد.
منابع
http://en.wikipedia.org/wiki/Bluetooth
http://www.bluetooth.com/bluetooth/
bluetooth.htmhttp://www.howstuffworks.com/
####
آشنايي با مفاهيم شبكه و پروتكلها
TCP/IP
در اين شماره شما را با پروتكلهاي اصلي اينترنت آشنا ميكنيم. (Transmission Control Protocol/Internet Protocol) خانوادهاي بزرگ از پروتكلها و برنامههايي است كه براي سازماندهي كامپيوترها و ابزارهاي ارتباطي در شبكه استفاده ميشوند. آيپيها دادهها را از مكاني به مكان و سيستم ديگر منتقل ميكنند در حالي كه TCPاز صورت گرفتن صحيح تمام كارها مطمئن ميشود. هزاران برنامه كاربردي امروزه توسط TCPاستفاده ميشوند كه برخي از آنها معروفتر و پركاربردترند. براي مثال:
1– انتقال فايل با استفاده از پروتكل انتقالي فايلFTP
2– برنامه Telnet، كه يك رابط خط فرمان از راه دور است
3– خدمات ايميل با استفاده از پروتكلهاي گوناگون مثل پروتكل انتقالي پستي ساده SMTP و پروتكل POP(Post Office)
4– مرورگر وب (Web Browser)با استفاده از پروتكل انتقالي ابرمتنها .Http
هر كدام از اين برنامه و پروتكلها بستهها را تهيه كرده و آنها را به پشته TCP/IP سرور محلي ميفرستند. نرمافزار لايه TCP روي سيستم اين داده و بسته را ميگيرد و با قرار دادن هدر TCP در جلوي هر پيام بستههاي TCP را توليد ميكنند. براي نفوذ به سرورها و كلاينتها نياز به شناسايي و درك كامل شماره پورتهاي مهم و باز سرورها و بيتهاي كنترل بستهها است. هر كامپيوتر آنلاين در داخل شبكه به وسيله آيپي يكتايي كه بههنگام ورود به دنياي اينترنت به آنها اختصاص پيدا ميكند با كامپيوترهاي ديگر در شبكه ارتباط برقرار ميكند و اين ارتباط توسط پورتهاي باز در هر دو سيستم ميسر ميشود، سرآيند (هدر) هر بسته TCPشامل دو عدد درگاه يا پورت است.
پورت مبدا و پورت مقصد. اين اعداد 16 بيتي همانند درهاي كوچكي بر روي سيستم يعني جايي كه داده ميتواند فرستاده و يا دريافت شود هستند، تعداد پورتها 65535 شماره است كه سيستمها با اين پورتها با هم ارتباط برقرار ميكنند، پورت صفر TCP رزرو شده و استفاده نميشود. هر بسته TCP از ميان يكي از اين درها از سيستم مبدا بيرون ميآيد (عدد پورت TCP مبدا) و پورت ديگر روي كامپيوتر مقصد مشخص شده است.
وقتي كه يك برنامه كاربردي سرور مبتني بر TCP روي سيستم كار ميكند به پورت خاصي براي بستههاي TCP كه از يك كلاينت ميآيد گوش ميدهد، به يك پورت با سرويس شنوايي پورت باز و به جايي كه چيزي براي شنيدن وجود ندارد پورت بسته گفته ميشود. سرورهاي گوناگون برنامههاي كاربردي به پورتهاي مشهور و معروف گوش ميدهند، پورتهاي TCP معروف و مورد استفاده از اين قبيل هستند:
TCP Port 21 : FTP
TCP Port 23 : Telnet
TCP Port 25 : SMTP
TCP Port 80 : HTTP WWW)
براي مثال اگر بر روي سروري پورت 80 و سرويس وبسرور وجود نداشته باشد، كاربران نميتوانند به پورت 80 آن سرور كه همان Httpاست وصل شوند. به تمام سايتهايي كه در اينترنت ميبينيد با پورت 80 يا 8080 سرور آن سايتها توسط پورت مرورگر وب خود (مانند Internet Exploler) وصل هستيد، هكرها اغلب ليستي از پورتهاي باز روي سيستم هدفشان به وسيله پورت اسكنرها تهيه ميكنند و از طريق حفرههاي امنيتي و آسيبپذير برنامههاي كاربردي كه بر روي آن پورتها به درخواستهاي شما گوش ميدهند، به داخل سرورها نفوذ ميكنند. بنابراين ما ميتوانيم با پويش سيستم خود و فهميدن پورتهاي باز سيستم، آن برنامههايي كه نيازي به آنها نداريم را غيرفعال كنيم تا بدين وسيله قدم كوچكي در ايمن كردن كامپيوترمان برداريم. براي فهميدن پورتهاي باز در سيستم خود ميتوان از دستور Netstat كه در خود ويندوز وجود دارد استفاده كرد.
پورتهايي كه فعال هستند هر كدام توسط يك نرم افزار خاص مديريت ميشوند. براي مثال پورت 25 براي ارسال ايميل است. بنابراين اين كار بايد توسط يك نرمافزار انجام شود و اين بر روي پورت 25 منتظر (فالگوش) ميماند و اينجا ممكن است شخصي از فلان نرمافزار و ديگري از بهمان نرمافزار مثلا~وتلوك اكسپرس براي دريافت آن ايميل استفاده كند، ولي به هرحال پورت 25 هميشه براي ارسال ايميل است.
منابع: experts-exchange.com و protocols.com