مایکروسافت آفیس
مایکروسافت آفیس
مایکروسافت آفیس یک مجموعه اداری در بر گیرندهی نرمافزارهای یکپارچه با هم، سرورها و سرویسها است که برای سیستمعاملهای مایکروسافت ویندوز و مک اواس ده ساخته شده است. مایکروسافت آفیس در سال ۱۹۸۹ برای سیستمعامل مک اواس اکس معرفی شد و در سال بعد یعنی ۱۹۹۰ نسخه تحت ویندوز آن نیز به بازار آمد. اولین نسخه از مجموعه مایکروسافت آفیس شامل برنامههای مایکروسافت ورد، مایکروسافت اکسل و مایکروسافت پاورپوینت بود. همچنین برنامههای مایکروسافت اکسس و اسکجول پلاس در نگارش حرفهای این نسخه وجود داشت.
واپسین نگارش مایکروسافت آفیس، آفیس 2013 نام دارد که در تاریخ 25 اکتبر 2013 برای مایکروسافت ویندوز منتشر شد و آخرین نسخه تحت سیستمعامل مک اواس اکس نیز آفیس ۲۰۰۸ نام گرفته است که در تاریخ ۱۵ ژانویه ۲۰۰۸ منتشر شده است. آفیس ۲۰۰۷/آفیس ۲۰۰۸ در بردارندهٔ رابط کاربری جدیدی است و از فرمتهای جدید موسوم به Office Open XML با فرمتهای docx، xlsx، pptx سود میبرد. ضمن اینکه مایکروسافت قابلیت جدید، رایگان و افزودنی با نام بستهٔ هماهنگ سازی مایکروسافت آفیس (به انگلیسی: Microsoft Office Compatibility Pack) ایجاد کرده است تا کاربران بتوانند با برنامههای پیشین آفیس همچون برنامههای آفیس ۲۰۰۳ و آفیس ۲۰۰۰٬ پروندهها با ریخت و فورمت Office Open XML file format را باز کنند. برای نمونه با مایکروسافت آفیس ورد ۲۰۰۳ که به گونهی کارخانهای ناتوان از گشودن و سپاردن در پسوند docx است٬ بتواند پسوند docx را گشوده و آن را ویرایش کرده و آن را ذخیره و سپارش کند.
طبق تحقیقات کمپانی Forrester Research تا تاریخ ژوئن ۲۰۰۹ بعضی از نسخههای مایکروسافت آفیس در ۸۰ درصد موارد تجاری و اداری استفاده شدهاست و ۶۴ درصد این موارد از آفیس ۲۰۰۷ استفاده کردهاند.
تاریخچهٔ نگارشها
نگارشهای تحت ویندوز
مایکروسافت آفیس ۳٫۰
مایکروسافت آفیس ۴٫۰
مایکروسافت آفیس ۴٫۳
مایکروسافت آفیس ۹۵
مایکروسافت آفیس ۹۷
مایکروسافت آفیس ۲۰۰۰
مایکروسافت آفیس اکسپی
مایکروسافت آفیس ۲۰۰۳
مایکروسافت آفیس ۲۰۰۷
مایکروسافت آفیس ۲۰۱۰
مایکروسافت آفیس ۲۰۱۳
نگارشهای تحت مک اواس اکس
مایکروسافت آفیس برای مک
مایکروسافت آفیس ۱٫۵ برای مک
مایکروسافت آفیس ۲٫۹ برای مک
مایکروسافت آفیس ۴٫۰ برای مک
مایکروسافت آفیس ۹۸ نسخهٔ مکینتاش
مایکروسافت آفیس ۲۰۰۱
مایکروسافت آفیس v.X
مایکروسافت آفیس ۲۰۰۴ برای مک
مایکروسافت آفیس ۲۰۰۸ برای مک
مایکروسافت آوت لوک
مایکروسافت اوت لوک (به انگلیسی: Microsoft Outlook) نرمافزار مدیریت ایمیل است که برای اولین بار در سال نود به همراه بستهٔ آفیس رونمایی شد.
این برنامه جزو مجموعه نرمافزارهای آفیس میباشد. این برنامه برای مدیریت ایمیلها مورد استفاده قرار میگیرد. همچنین یک سرویس ایمیل دهی نیز هست.
مایکروسافت اسکیوال سرور
مایکروسافت اس.کیو.ال سرور یا مایکروسافت سیکول سرور (به انگلیسی: Microsoft SQL Server) یک نرمافزار سیستم مدیریت بانکهای اطلاعاتی است که توسط شرکت مایکروسافت توسعه داده میشود. برخی از ویژگیهای این سیستم مدیریت پایگاه دادهها به این شرح است:
بانک اطلاعاتی رابطهای
امکان استفاده از: trigger, View, Stored procedure
پشتیبانی از XML
OLAP
بسیار قدرتمند و بدون محدودیت حجم و تعداد رکورد
پشتیبانی از FullText Search برای سرعت در بازیابی اطلاعات و استفاده از زبان طبیعی در جستجوها
SQL Server 2008
نسخهٔ بعدی سرور SQL سرور SQL2008 میباشد با کد نامگذاری «کاتمایی» که برای ارائه به بازار 27فوریه سال 2008 پیشنهاد گردیده و سپس (RTM) در Q32008 عرضه گردید.
آخرین CTP در 19فوریه سال 2008 عرضه گردید. اهداف SQL Server 2008 ایجاد و مدیریت دادهها به شکل هماهنگی، سازماندهی و محافظت به شکل اتوماتیک میباشد. با توسعه دائمی SQL Server در عرضه تکنولوژی اتلاف وقت به نزدیک صفر رسید.
SQL Server 2008 همیشه در برگیرنده حمایت از دادههای ساختاری یا نیمهساختاری میباشد که این امر شامل قالبهای رسانهای دیجیتال برای عکسها، صوتی، تصویری و دیگر دادههای چند رسانهای میباشد.
در نسخهٔ جدید، اکثر دادههای چندرسانهای را میتوان به عنوان BLOB (بخش بزرگ بانیری) ذخیرهسازی کرد. آگاهی درونی از دادههای چندرسانهای به ما این اجازه را خواهد داد که کارکردهای تخصیص یافته را اجرا نماییم. براساس نظرات پل فلسنر، معاونت ارشد مایکروسافت، کاربران سرور SQL Server 2008 شرکت مایکروسافت میتوانند به ذخیرهسازِی دادههای پشتیبانی شده برای دادههایی با تنوع متفاوت بپردازد: XML، پست الکترونیکی (email)، زمان/تقویم، فایل، پرونده .... از جمله این دادهها میباشند. همین طور با SQL Server 2008 به خوبی میتوان به اجرای عملیاتی چون جستجو، پرسوجو، تجزیهوتحلیل، تقسیمبندی و انطباق همه نوع از دادهها پرداخت. از انواع دیگری از دادههایی جدید میتوان از اختصاص دادهها و نوعهای زمانی و انواعی از دادههای فضایی نام برد که دادههای وابسته به مکان میباشند.
پشتیبانی بهتر برای دادههای غیرساختاری یا نیمهساختاری با استفاده از بخش * FILESTREAMانجام شده. این نوع از دادهها میتوانند اضافه شده یا اینکه برای بازگرفت به هر فایل ذخیره شده، شد سیستم فایلها بکار رونده دادههای منسجم یا فرادادهها در هر فایل باید در پایگاه دادههای SQL Server ذخیره شوند. و در آنجا اجزا غیرساختاری در سیستم فایل ذخیره میشوند. اکثر فایلها میتوانند هم از طریق کنترلکننده فایل Win32 و هم از طریق SQL Server با استفاده از T-SQL در پایگاه دادهها قرار گیرند.
انجام و دستیابی به دادههای فایل به عنوان یک BLOB باینری محسوب میشود. پشتیبانی و ذخیرهسازی در پایگاه دادهها پشتیبانی و ذخیرهسازی فایلهای مرجع میباشد.
SQL Server 2008 همین طور از سلسله مراتب دادههای اصلی پشتیبانی میکند و در برگیرندهٔ مفهوم T-SQL میباشد که مستقیماً با آنها سروکار دارد بدون اینکه به تحقیق بازگشتی بپردازد.
دادههای فضایی میتوانند به دو صورت ذخیرهسازی شوند. یک «زمین صاف» (هندسه یا هندسه مسطح) که نوعی از دادهها میباشند که ارائهدهندهٔ دادههای هندسی فضایی میباشند و به شکلهایی که رد اصل به صورت سیستمهای طراحی کروی و همپایه و... هستند پیشبینی شدهاند. صورت دیگر نوع دادههای «زمین کروی» (هندسی) هستند که به استفاده از مدلهای بیضی شکل آنچه که در زمین به صورت منفرد و پیوسته تعریف میشوند، میپردازند.
SQL Server در برگیرنده ویژگیهای بهتری در زمینه فشردگی و متراکم داده میباشد و بنابراین در بهبود یافتن توانایی اسکالر به ما کمک میکند. این بخش همین طور دارای اقتدار منابع بوده و به ما این اجازه را میدهد که به ذخیرهسازی منابع برای کاربران بپردازیم.
SQL Server در بردارندهٔ قابلیتهایی برای شفافسازی دادهها برای فشردهسازی و ذخیره آنها میباشد SQL Server کتمایی از موجودیت ساختار *ADO.NET پشتیبانی کرده و به ثبت ابزارها، همانندسازی و تعریف دادهها میپردازد. تعریف دادهها به ساختن مدل دادههای موجود خواهد پرداخت.
سرویسهای ثبتکنندهٔ SQL Server به ثبت جداول با قابلیتهایی از تطبیق دادهها و تجسم محصولات خواهند پرداخت.
آنچه که به وسیلهٔ مایکروسافت از مدیریت جانبی حاصل میشود اجازه میدهد که سیاست پیکربندی و محدودیتها در پایگاه کامل دادهها و جداول مورد اطمینان بطور دستوری ایجاد گردد.
نسخهٔ مدیریت استادیو {{|5}} SQL Server شامل SQL Server 2008 میباشد که به پشتیبانی از جستجوگر SQL میپردازد. علاوه بر این به وسیلهٔ CTP رایج انتخاب لازم برای تحقیق و بررسی محدود میشود. این امر باعث ساختارهای دیگری از T-SQL در انتشارات بعدی میگردد. * SQL Server 2008 به ایجاد پایگاه دادههای موجود از طریق بدنه قدرت ویندوز و کاربرد مدیریت در دسترسی میپردازد. بنابراین سرور و همهٔ نمونههای پیوسته میتوانند به وسیله بدنهٔ قدرت ویندوز اداره شوند. * Editions شرکت مایکروسافت به ایجاد سرور SQL موجود در نسخههای چندگانه کرد که دارای دستگاههایی با ویژگی متفاوت و کاربرانی با اهداف متمایز بود.
آخرین ویرایش :
SqlServer 2014
ویرایشهای مختلف
سرور SQL ویرایش متراکم (SQL CE)
این ویراستار فشرده یک موتور با پایگاه دادههای مستحکم میباشد. به جهت اندازه کوچک آن دارای دستگاهی با ویژگیهای کاهشدهنده در مقایسه با ویراستارهای دیگر میباشد. این وسیله به وسیلهٔ پایگاه دادهها با سایز حداکثر 4GB محدود شده و نمیتواند براساس سرویس ویندوز عمل نماید ویراستار متراکم باید تابع تقاضای کاربرد میباشد.
سرور SQL ویرایش محدود (SQL Server Express)
سرور SQL با ویراژ پرسرعت یک میزان پایین، ویراژ آزاد از سرور SQL میباشد که در برگیرنده موتور مرکزی پایگاه دادههاست. در حالیکه هیچ گونه محدودیتی در شماره پایگاه دادهها یا کاربران پشتیبانی شده وجود ندارد پایگاه دادههای کلی به ذخیرهسازی در بخشهای مجزا میپردازد. هدف از این کار جایگزینی *MSDE میباشد. سرویس جستجوگر متن کامل به عنوان یک بخش ضمیمه در سرور SQL با ویراژ پرسرعت قرار میگیرد. بطور کلی نسخهٔ سرور SQL مدیریت استودیو برای عمل ویراستاری در دسترس میباشد.
سرور SQL ویرایش گروه کاری
سرور SQL با ویراژ کار گروه در برگیرنده موتور مرکزی پایگاه دادهها میباشد این بخش از دیسک ویراژ در شمار نمونههایی با فعالیت کمتر قرار میگیرد و در برگیرنده عملکردهایی با دسترسی بالا و شاخصهای برابر نمیباشد.
سرور SQL ویرایش سازمانی
سرور * SQL ویرایش سازمانی، نسخهای از سرور SQL با ویژگیهای کامل میباشد که در برگیرندهٔ هر دو موتور مرکزی پایگاه دادهها و سرویسهای اضافی میباشد و این در حالی است که وجود دامنهٔ ابزارها برای ایجاد و اداره سرور SQL به صورت خوشهای است.
سرور SQL ویرایش برنامه نویسان
نگارش قابل کدنویسی سرور SQL دارای همان ویژگیهای نگارش enterprise این سرور میباشد که با وسیله لایسنس، کاربرد آن تنها به عنوان یک سیستم آزمایش و توسعه محدود گردیده و به عنوان یک سرور تولیدی محسوب نمیشود. این نسخه به عنوان بخشی از برنامه Dream Spark مایکروسافت برای بارگذاری توسط دانشجویان به طور رایگان موجود میباشد.
مایکروسافت اکسپرشن وب
مایکروسافت اکسپرشن وب (Microsoft Expression Web) یک نرمافزار ویراستار وب و طراحی وبسایت ساخته شده توسط شرکت مایکروسافت است.
مایکروسافت بیزتاک سرور
مایکروسافت بیزتاک سرور یا به اختصار "بیزتاک" مجموعهای از خدمات نرمافزاری است که ساختن راه حل های یکپارچه سازی را آسان میگرداند.
شما برای راه اندازی این سولوشن یا راه حل نرمافزاری نیاز به یک سرور سخت افزاری مجزا دارید. یکی از پیش نیاز های نرمافزاری آن، شرپوینت است.
میتوان گفت برای یکپارچه سازی یک سازمان شما در ابتدا نیاز به تجزیه و تحلیل دقیق و نیاز سنجی هستید. در گام بعدی شما به کمک برنامه نویسی و تعریف شکل و قالب پیغام ها و تعاریف دیگر یکپارچه سازی را انجام میدهید.
این برنامه یک داشبورد و کنترل پنل مرکزی در اختیار شما قرار میدهد که وضعیت جریان های کاری و پروسه های کسب و کار خود را میتوانید در آن مشاهده کنید.
این سرور مبتنی بر پیغام طراحی شده است که کاملاً با طراحی های پیشرفته ی کنونی مثل SOA منطبق است. پس شما هم برای یکپارچه سازی کلیه نرمافزار های موجود، باید نگاه سرویس گرا داشته باشید.
همه برنامه های سازمانی شما برای یکپارچه سازی میتوانند پیغامی را به سرور ارسال کنند که سرور بیزتاک با مدیریت کلیه پیغام ها و ایجاد پیغام های جدید و ارسال آن برای برنامه های دیگر سازمان شما یا سازمان همکار شما، یکپارچه سازی را فراهم می کند.
برنامه هایی که میخواهند به بیزتاک وصل شوند را شما باید تحلیل کنید تا بتوانید برای آنها وب سرویسی بنویسید که کار فرستادن پیغام را منظم و مدیریت شده و هماهنگ و استاندارد انجام دهد.
این سرور بر اساس دو لایه طراحی شده است که لایه ی اول مبتنی بر پیغام همه ی کار ها را مدیریت می کند و لایه ی دوم مبتنی برای Orachestration است که هماهنگ کننده و نظم دهنده به کلیه ی دریافت ها و ارسال های پیغام ها با برنامه های جزیره ای در سازمان شماست.
مراحل نصب بیزتاک را با جستجوی ساده در گوگل میتوانید به صورت
های فارسی وا نگلیسی به صورت گام به گام بیابید.
کاربرد های بیزتاک بدلیل تنوع بسیار زیاد آن بستگی به نیاز خاص سازمان شما دارد.
مایکروسافت واننوت
مایکروسافت وان نت (به انگلیسی: Microsoft OneNote) نرمافزار برداری مجموعهٔ مایکروسافت آفیس است که اولین بار به همراه مایکروسافت آفیس ۲۰۰۳ ارائه شد.
آشنایی با واننوت
تعریف واننوت
برنامه OneNote مکانی است برای جمعآوری، تنظیم، جستجو و به اشتراک گذاشتن اطلاعات مورد نیاز فرد. انواع مختلف یادداشتها در دفترچهها، فصلها و صفحات واننوت قابل ذخیره است. این نرمافزار میتواند به عنوان دفترچه شخصی فرد برای جلوگیری از فراموشی عمل کند.
برنامه واننوت را میتوان یک نسخه الکترونیکی از دفترچههای کاغذی معمول دانست.
تاریخچه برنامه واننوت
برنامه واننوت در سال ۲۰۰۳ میلادی بصورت یک برنامه جدای از آفیس ۲۰۰۳ نصب میشد و البته کارآیی آن کمتر از وان نوت فعلی بود. به مرور که کاربران واننوت پیشنهادهای خود را جهت رفع کاستیهای آن به مایکروسافت دادند و افزونههای مختلفی برای آن نوشته شد، مایکروسافت نسخه جدید آن را در نسخه ۲۰۰۷ آفیس قرار داد. فعلاً نسخه ۲۰۱۳ واننوت به عنوان نسخه آخر این نرمافزار با تغییر شکل ظاهری واننوت و تبدیل منوهای ثابت آن به منوهای سیار و روبانی و اضافه نمودن چند قابلیت دیگر در بازار موجود است.
مایکروسافت ویزیو
مایکروسافت ویزیو (به انگلیسی: Microsoft Visio) نرمافزاری برای طراحی نمودارها است که تحت سیستمعامل ویندوز کار میکند.
معماری نرمافزار
معماری نرمافزار یعنی ساختار و سازمان یک سیستم نرمافزاری که به منظور پشتیبانی از عملیات مشخص، بر روی سازماندهی اجزاء متمرکز میباشد. در واقع اجزاء را در حوزههای مرتبط به هم گروه بندی میکند. دیگر حوزههای مرتبط به هم، بر روی تبادل و تعامل با این حوزه متمرکز میشوند.
معماری نرمافزار از کلیدیترین بخشهای تولید نرمافزار مخصوصا نوع تجاری آن است که البته در سالهای اخیر با ایجاد مدلهای کلاسیک تولید نرمافزار به نرمافزارهای عظیم تر محدود شده است.
معماری نرمافزار در واقع انتخاب یک ساختار کلی برای پیاده سازی یک پروژه نرمافزاری بر مبنای مجموعه ای از نیازهای کاربری و تجاری یک سیستم نرمافزاری است تا هم بتوان کاربردهای مورد نظر را پیاده سازی کرد و هم بتوان کیفیت نرمافزار، تولید آن و نگهداری آن را نیز بهینه کرد و سرعت بخشید. به عبارتی دیگر: معماری نرم افزار یک برنامه یا سیستم محاسباتی، ساختار یا ساختارهای آن سیستم محاسباتی است که خصوصیات قابل رویت از بیرون، عناصر و ارتباطات بین آنها را نشان می دهد.
معماری سرویسگرا
معماری سرویسگرا (به انگلیسی: Service-oriented Architecture (به اختصار SOA))، رهیافتیست برای ساخت سامانههای توزیعشده که کارکردهای نرمافزاری را در قالب سرویس ارائه میکند.
از این سرویسها هم میتوان برای فراخوانی در نرمافزارهای دیگر و هم برای ساخت سرویسهای جدید استفاده کرد. معماری سرویسگرا مجموعهای انعطافپذیر از اصول طراحی است که در مراحل توسعهٔ سامانهها و یکپارچگی در رایانش استفاده میشود. سامانهای که بر معماری سرویسگرا استوار است، کارکرد را به عنوان مجموعهای از سرویسهای سازگار بستهبندی میکند که میتوانند در چندین سامانهٔ مجزا از دامنههای تجاری گوناگون استفاده شوند.
کیت توسعه نرمافزار
کیت توسعهٔ نرمافزار یا SDK مجموعه توابع و کتابخانههای کامپایل شدهای که تولیدکنندگان نرمافزار برای آسان کردن برنامهنویسی برای محیط یا سکوی خاصی فراهم میکنند و در اختیار برنامهنویسان کاربردی قرار میدهند.
نمونهها
Microsoft Windows SDK
Xcode
Android SDK
واین
واین (به انگلیسی: Wine) یک نرمافزار کاربردی آزاد است که به نرمافزارهای نوشتهشده سیستمعامل مایکروسافت ویندوز اجازهٔ اجرا شدن بر روی سیستمعاملهای شبه-یونیکس را میدهد. همچنین واین دارای کتابخانهای به نام Winelib است که توسعهدهندگان میتوانند نرمافزارهای ویندوز خود را با آن کامپایل کنند تا سازگار کردن آن برای سیستمعاملهای شبه-یونیکس راحتتر شود.
واین یک شبیهساز کامل نیست اما میتوان آنرا لایه سازگاری نامید به این خاطر که آن پیادهسازی دوبارهٔ دیالالهای ویندوز است. نام واین از مخفف جملهٔ Wine Is Not an Emulator آمدهاست که «واین یک شبیهساز نیست» معنی آن است.
واین در حالت پیشفرض بر روی اکثر توزیعهای گنو/لینوکس نصب نیست و باید آن را جداگانه نصب کنید.
مایکروسافت و واین
مایکروسافت تا به حال به صورت عمومی چیزی درباره واین نگفتهاست. اگرچه نرمافزار ویندوز آپدیت به روزرسانیهای نرمافزارهای ویندوز که از طریق واین اجرا میشوند را مسدود میکند. در ۱۶ فوریه ۲۰۰۵ Ivan Leo Puoti متوجه شد که مایکروسافت شروع به بررسی در ویندوز رجیستری برای پیدا کردن کلیدهای تنظیمات واین میکند تا نرمافزار ویندوز آپدیت آن نرمافزارها را مسدود کند تا به روز نشوند.
نرمافزار WGA نیز کلیدهای تنظیمات واین را جستجو میکند. در سوالات متدوال نرمافزار WGA آمدهاست که WGA برای واین طراحی نشدهاست، از آنجایی که واین «ویندوز اصل» را تشکیل نمیدهد. وقتی WGA واین را بر روی سیستم تشخیص دهد، پیغامی به کاربران میدهد که ویندوز شما اصل نیست دانلود برای شما غیرفعال خواهد شد. با وجود این موضوع برخی گزارش دادهاند که WGA بر روی واین به خوبی کار میکند.
پیجین
پیجین (به انگلیسی: Pidgin) یک کلاینت پیامرسان فوری (به انگلیسی: Instant Messaging) است که قابلیت اجرا بر روی چند سکو (به انگلیسی: Cross-platform) را دارد. تعداد کاربران پیجین در سال ۲۰۰۷ بیش از ۳ میلیون نفر تخمین زده شدهاست. پیجین یک نرمافزار آزاد است و تحت مجوز جیپیال انتشار مییابد.
اسکوئید
اسکوئید (به انگلیسی: squid) یک کارساز پراکسی (پراکسی سرور) است که روی http و https و ftp عمل میکند و میتواند به عنوان کارساز کش (کشسرور) نیز به کار رود. اسکوئید یک برنامه چندسکویی است و قابل نصب بر روی طیف وسیعی از سیستمعاملهای شبه یونیکس و همینطور ویندوز است. تا نسخه ۲٫۷، نسخههایی برای سیستمعامل ویندوز منتشر میشد، اما پشتیبانی از ویندوز در نسخههای بعدی متوقف شد. این برنامه که تحت پروانه جیپیال منتشر میشود، یک نرمافزار آزاد است.
تاریخچه
اسکوئید در ابتدا تحت عنوان Harvest object cache توسط پروژه هاروست در دانشگاه دانشگاه کولورادو بولدر توسعه داده شد. در دانشگاه کالیفرنیا، سن دیاگو کارهای بیشتری بر روی برنامه انجام گرفت و بودجه پروژه از طریق دو کمکهزینه توسط بنیاد ملی علوم تامین شد. Duane Wessels «آخرین نسخه غیر تجاری» از این برنامه را منشعب کرد و نام آن را به اسکوئید تغییر داد تا مانع اختلاف با انشعاب تجاری که Cached 2.0 نامیده میشد، شود که در نهایت نسخه تجاری به نتکش تغییر نام یافت. نسخه ۱٫۰٫۰ برنامه اسکوئید در سال ۱۹۹۶ منتشر شد. در حال حاضر این برنامه تقریبا به طور کامل توسط داوطلبان توسعه داده میشود.
اشکال نرمافزاری
اشکال(به انگلیسی: Bug)، گیر یا باگ نوعی خطا یا اشتباه در اجرای نرمافزار است که موجب نتایج اشتباه یا اجرا نشدن نرمافزار میشود. علت این اشکالات میتواند اشتباه در هنگام برنامهنویسی باشد. شرکتهای سازنده نرمافزارها برای حل این مشکل قبل از ارائه نسخه نهایی نسخههایی تحت نام بتا یا آلفا انتشار میدهند تا افرادی آنها را بررسی کنند و این باگها را گزارش کنند. به این افراد بتا تستر (Beta Tester) میگویند.
بعضی اوقات شرکتهای سازنده نرمافزار به عمد یک یا چند اشکال در نسخههای قابل بازی قبل از انتشار، که رایگان پخش میکنند، میگذارند تا از کپی غیرمجاز آنها جلوگیری کنند مانند بازی کیش یک آدمکش.
انواع اشکال
این خطاها انواع مختلفی دارند و هر کدام از این نوعها در زمان خاصی تشخیص داده میشوند، انواع خطاهای برنامهنوسی به شرح زیر میباشد:
خطاهای زمان اجرا
خطاهای زمان کامپایل
خطاهای لغوی
خطاهای نحوی
خطاهای معنایی
خطاهای منطقی
که از بین همهٔ این خطاها، خطاهای نحوی رایجترین میباشد.
خطاهای دیرهنگام
بعضی اوقات خطا لغوی است ولی به جای اینکه تحلیلگر لغوی آن را تشخیص دهد، در یک مرحله بعد تشخیص داده میشود که به این نوع خطاها، خطاهای دیرهنگام گویند.
اشکالزدایی
در علم رایانه، اشکال نرمافزاری یا باگ، به خطاهای برنامهنویسی گفته میشود. به حل این مشکلات اشکالزدایی یا دیباگ میگویند. حل مشکلات نرمافزاری به دو صورت انجام میپذیرد: اول با داشتن کد اصلی برنامه. دوم با داشتن خود فایل اصلی برنامه.
با داشتن کد اصلی برنامه میتوان از امکانات مفسر برای اشکالزدایی استفاده نمود ولی در صورتی که فایل اصلی در اختیار باشد، میتواند به کمک علم مهندسی معکوس این کار را انجام داد.
دلیل نام گذاری
در دنیای رایانه، باگ (به انگلیسی: Bug) یا اشکال به معنی اشتباه یا اشکال در برنامه است. اما معنای اصلی آن در انگلیسی حشره میباشد. روزی که رایانهٔ Mark I در هاروارد خراب شد پس از یک جستجوی طولانی متخصصین علت مشکل را پیدا کردند. یک حشره کوچک بین نقاط تماس یک رله قرار داشت. به همین دلیل وجود اشکالات رایانهای باگ (حشره) نام گرفت و برطرف کردن این اشکالات کامپیوتری را دیباگ نامیدند.
اصل سادگی
ساده نگاهش دار، احمقانه، یا اصل کیس (به انگلیسی: KISS principle) عنوان اصلی است که توسط کلی جانسون (به انگلیسی: Kelly Johnson) معرفی شد. صورتهای مختلفی که برای این سرنام ذکر شده است شامل عبارات زیر میباشد:
«keep it short and simple»
«keep it simple and stupid»
«keep it simple and straitforward»
«keep it simple sir»
«keep it simple or be stupid»
«keep it simple and sincere»
تلگرام
پیامرسان تلگرام یک پیامرسان چندسکویی است که برای نسخههای کلاینت متنباز است. کاربران تلگرام میتوانند پیامها، تصاویر، ویدئوها و اسناد (همه انواع پروندهها پشتیبانی میشود) خودویرانگر و رمزنگاریشده تبادل کنند. تلگرام رسماً برای اندروید و آیاواس (از جمله تبلتها و دستگاههای بدون وای-فای) در دسترس است. نرمافزارهای کلاینت غیررسمی برای ویندوز فون، همینطور نسخه وب، نسخه اواس ده، نسخه لینوکس و یک کلاینت دسکتاپ ویندوز از توسعهدهندههای مستقل که از رابط برنامهنویسی نرمافزار تلگرام استفاده میکنند در دسترس هستند.
سیری
سیری (به انگلیسی: Siri) یک دستیار شخصی هوشمند و راهنمای دانا است که به عنوان یک اپلیکیشن برای آیاواس اپل کار میکند. این اپلیکیشن از رابط کاربری به زبان طبیعی برای پاسخ دادن به سوالات و ایجاد توصیههای کاربر استفاده میکند. انجام این کارها به وسیله ارسال درخواستها به یک مجموعه از خدمات وب صورت میگیرد.
پاسخهای طنزگونهٔ سیری
گوگل گلس: شرکت اپل به صورت رسمی مطلبی را در نفی یا قبول گوگل گلس منتشر نکردهاست اما در سیستم سخنگوی موبایلهای آیفون سیری به صورت طنزگونهای پاسخهایی را قرار دادهاست که در صورتی که کاربر به سیستم سیری بگوید اوکی گلس (عبارتی که به گوگل گلس گفته میشود تا دستورها را انجام دهد) سیری پاسخهای متفاوتی را به کاربر ارائه میدهد که گویای این نکته است که گوگل گلس گجت جالب نیست.
سف
سف یک سکوی ذخیرهسازی آزاد، به منظور ایجاد آبجکت، بلاک و فایل سیستم بر روی مجموعهای از رایانههای متصل به هم (کلاستر) ایجاد شده است. هدف اصلی سف ایجاد یک فایل سیستم توزیع شده بر روی مجموعهی زیادی از کامپیوترها در مقیاس بالا است. دادهها در سف به صورت خودکار کپی میشوند و در صورت خطا در یک بخش، از کپی آن اطلاعات جایگزین میشود. سف به صورتی طراحی شده است که خود به صورت خودکار ترمیم و مدیریت کند و بر روی سختافزارهای عادی نصب و راهاندازی میشود.
مایکروسافت آفیس یک مجموعه اداری در بر گیرندهی نرمافزارهای یکپارچه با هم، سرورها و سرویسها است که برای سیستمعاملهای مایکروسافت ویندوز و مک اواس ده ساخته شده است. مایکروسافت آفیس در سال ۱۹۸۹ برای سیستمعامل مک اواس اکس معرفی شد و در سال بعد یعنی ۱۹۹۰ نسخه تحت ویندوز آن نیز به بازار آمد. اولین نسخه از مجموعه مایکروسافت آفیس شامل برنامههای مایکروسافت ورد، مایکروسافت اکسل و مایکروسافت پاورپوینت بود. همچنین برنامههای مایکروسافت اکسس و اسکجول پلاس در نگارش حرفهای این نسخه وجود داشت.
واپسین نگارش مایکروسافت آفیس، آفیس 2013 نام دارد که در تاریخ 25 اکتبر 2013 برای مایکروسافت ویندوز منتشر شد و آخرین نسخه تحت سیستمعامل مک اواس اکس نیز آفیس ۲۰۰۸ نام گرفته است که در تاریخ ۱۵ ژانویه ۲۰۰۸ منتشر شده است. آفیس ۲۰۰۷/آفیس ۲۰۰۸ در بردارندهٔ رابط کاربری جدیدی است و از فرمتهای جدید موسوم به Office Open XML با فرمتهای docx، xlsx، pptx سود میبرد. ضمن اینکه مایکروسافت قابلیت جدید، رایگان و افزودنی با نام بستهٔ هماهنگ سازی مایکروسافت آفیس (به انگلیسی: Microsoft Office Compatibility Pack) ایجاد کرده است تا کاربران بتوانند با برنامههای پیشین آفیس همچون برنامههای آفیس ۲۰۰۳ و آفیس ۲۰۰۰٬ پروندهها با ریخت و فورمت Office Open XML file format را باز کنند. برای نمونه با مایکروسافت آفیس ورد ۲۰۰۳ که به گونهی کارخانهای ناتوان از گشودن و سپاردن در پسوند docx است٬ بتواند پسوند docx را گشوده و آن را ویرایش کرده و آن را ذخیره و سپارش کند.
طبق تحقیقات کمپانی Forrester Research تا تاریخ ژوئن ۲۰۰۹ بعضی از نسخههای مایکروسافت آفیس در ۸۰ درصد موارد تجاری و اداری استفاده شدهاست و ۶۴ درصد این موارد از آفیس ۲۰۰۷ استفاده کردهاند.
تاریخچهٔ نگارشها
نگارشهای تحت ویندوز
مایکروسافت آفیس ۳٫۰
مایکروسافت آفیس ۴٫۰
مایکروسافت آفیس ۴٫۳
مایکروسافت آفیس ۹۵
مایکروسافت آفیس ۹۷
مایکروسافت آفیس ۲۰۰۰
مایکروسافت آفیس اکسپی
مایکروسافت آفیس ۲۰۰۳
مایکروسافت آفیس ۲۰۰۷
مایکروسافت آفیس ۲۰۱۰
مایکروسافت آفیس ۲۰۱۳
نگارشهای تحت مک اواس اکس
مایکروسافت آفیس برای مک
مایکروسافت آفیس ۱٫۵ برای مک
مایکروسافت آفیس ۲٫۹ برای مک
مایکروسافت آفیس ۴٫۰ برای مک
مایکروسافت آفیس ۹۸ نسخهٔ مکینتاش
مایکروسافت آفیس ۲۰۰۱
مایکروسافت آفیس v.X
مایکروسافت آفیس ۲۰۰۴ برای مک
مایکروسافت آفیس ۲۰۰۸ برای مک
مایکروسافت آوت لوک
مایکروسافت اوت لوک (به انگلیسی: Microsoft Outlook) نرمافزار مدیریت ایمیل است که برای اولین بار در سال نود به همراه بستهٔ آفیس رونمایی شد.
این برنامه جزو مجموعه نرمافزارهای آفیس میباشد. این برنامه برای مدیریت ایمیلها مورد استفاده قرار میگیرد. همچنین یک سرویس ایمیل دهی نیز هست.
مایکروسافت اسکیوال سرور
مایکروسافت اس.کیو.ال سرور یا مایکروسافت سیکول سرور (به انگلیسی: Microsoft SQL Server) یک نرمافزار سیستم مدیریت بانکهای اطلاعاتی است که توسط شرکت مایکروسافت توسعه داده میشود. برخی از ویژگیهای این سیستم مدیریت پایگاه دادهها به این شرح است:
بانک اطلاعاتی رابطهای
امکان استفاده از: trigger, View, Stored procedure
پشتیبانی از XML
OLAP
بسیار قدرتمند و بدون محدودیت حجم و تعداد رکورد
پشتیبانی از FullText Search برای سرعت در بازیابی اطلاعات و استفاده از زبان طبیعی در جستجوها
SQL Server 2008
نسخهٔ بعدی سرور SQL سرور SQL2008 میباشد با کد نامگذاری «کاتمایی» که برای ارائه به بازار 27فوریه سال 2008 پیشنهاد گردیده و سپس (RTM) در Q32008 عرضه گردید.
آخرین CTP در 19فوریه سال 2008 عرضه گردید. اهداف SQL Server 2008 ایجاد و مدیریت دادهها به شکل هماهنگی، سازماندهی و محافظت به شکل اتوماتیک میباشد. با توسعه دائمی SQL Server در عرضه تکنولوژی اتلاف وقت به نزدیک صفر رسید.
SQL Server 2008 همیشه در برگیرنده حمایت از دادههای ساختاری یا نیمهساختاری میباشد که این امر شامل قالبهای رسانهای دیجیتال برای عکسها، صوتی، تصویری و دیگر دادههای چند رسانهای میباشد.
در نسخهٔ جدید، اکثر دادههای چندرسانهای را میتوان به عنوان BLOB (بخش بزرگ بانیری) ذخیرهسازی کرد. آگاهی درونی از دادههای چندرسانهای به ما این اجازه را خواهد داد که کارکردهای تخصیص یافته را اجرا نماییم. براساس نظرات پل فلسنر، معاونت ارشد مایکروسافت، کاربران سرور SQL Server 2008 شرکت مایکروسافت میتوانند به ذخیرهسازِی دادههای پشتیبانی شده برای دادههایی با تنوع متفاوت بپردازد: XML، پست الکترونیکی (email)، زمان/تقویم، فایل، پرونده .... از جمله این دادهها میباشند. همین طور با SQL Server 2008 به خوبی میتوان به اجرای عملیاتی چون جستجو، پرسوجو، تجزیهوتحلیل، تقسیمبندی و انطباق همه نوع از دادهها پرداخت. از انواع دیگری از دادههایی جدید میتوان از اختصاص دادهها و نوعهای زمانی و انواعی از دادههای فضایی نام برد که دادههای وابسته به مکان میباشند.
پشتیبانی بهتر برای دادههای غیرساختاری یا نیمهساختاری با استفاده از بخش * FILESTREAMانجام شده. این نوع از دادهها میتوانند اضافه شده یا اینکه برای بازگرفت به هر فایل ذخیره شده، شد سیستم فایلها بکار رونده دادههای منسجم یا فرادادهها در هر فایل باید در پایگاه دادههای SQL Server ذخیره شوند. و در آنجا اجزا غیرساختاری در سیستم فایل ذخیره میشوند. اکثر فایلها میتوانند هم از طریق کنترلکننده فایل Win32 و هم از طریق SQL Server با استفاده از T-SQL در پایگاه دادهها قرار گیرند.
انجام و دستیابی به دادههای فایل به عنوان یک BLOB باینری محسوب میشود. پشتیبانی و ذخیرهسازی در پایگاه دادهها پشتیبانی و ذخیرهسازی فایلهای مرجع میباشد.
SQL Server 2008 همین طور از سلسله مراتب دادههای اصلی پشتیبانی میکند و در برگیرندهٔ مفهوم T-SQL میباشد که مستقیماً با آنها سروکار دارد بدون اینکه به تحقیق بازگشتی بپردازد.
دادههای فضایی میتوانند به دو صورت ذخیرهسازی شوند. یک «زمین صاف» (هندسه یا هندسه مسطح) که نوعی از دادهها میباشند که ارائهدهندهٔ دادههای هندسی فضایی میباشند و به شکلهایی که رد اصل به صورت سیستمهای طراحی کروی و همپایه و... هستند پیشبینی شدهاند. صورت دیگر نوع دادههای «زمین کروی» (هندسی) هستند که به استفاده از مدلهای بیضی شکل آنچه که در زمین به صورت منفرد و پیوسته تعریف میشوند، میپردازند.
SQL Server در برگیرنده ویژگیهای بهتری در زمینه فشردگی و متراکم داده میباشد و بنابراین در بهبود یافتن توانایی اسکالر به ما کمک میکند. این بخش همین طور دارای اقتدار منابع بوده و به ما این اجازه را میدهد که به ذخیرهسازی منابع برای کاربران بپردازیم.
SQL Server در بردارندهٔ قابلیتهایی برای شفافسازی دادهها برای فشردهسازی و ذخیره آنها میباشد SQL Server کتمایی از موجودیت ساختار *ADO.NET پشتیبانی کرده و به ثبت ابزارها، همانندسازی و تعریف دادهها میپردازد. تعریف دادهها به ساختن مدل دادههای موجود خواهد پرداخت.
سرویسهای ثبتکنندهٔ SQL Server به ثبت جداول با قابلیتهایی از تطبیق دادهها و تجسم محصولات خواهند پرداخت.
آنچه که به وسیلهٔ مایکروسافت از مدیریت جانبی حاصل میشود اجازه میدهد که سیاست پیکربندی و محدودیتها در پایگاه کامل دادهها و جداول مورد اطمینان بطور دستوری ایجاد گردد.
نسخهٔ مدیریت استادیو {{|5}} SQL Server شامل SQL Server 2008 میباشد که به پشتیبانی از جستجوگر SQL میپردازد. علاوه بر این به وسیلهٔ CTP رایج انتخاب لازم برای تحقیق و بررسی محدود میشود. این امر باعث ساختارهای دیگری از T-SQL در انتشارات بعدی میگردد. * SQL Server 2008 به ایجاد پایگاه دادههای موجود از طریق بدنه قدرت ویندوز و کاربرد مدیریت در دسترسی میپردازد. بنابراین سرور و همهٔ نمونههای پیوسته میتوانند به وسیله بدنهٔ قدرت ویندوز اداره شوند. * Editions شرکت مایکروسافت به ایجاد سرور SQL موجود در نسخههای چندگانه کرد که دارای دستگاههایی با ویژگی متفاوت و کاربرانی با اهداف متمایز بود.
آخرین ویرایش :
SqlServer 2014
ویرایشهای مختلف
سرور SQL ویرایش متراکم (SQL CE)
این ویراستار فشرده یک موتور با پایگاه دادههای مستحکم میباشد. به جهت اندازه کوچک آن دارای دستگاهی با ویژگیهای کاهشدهنده در مقایسه با ویراستارهای دیگر میباشد. این وسیله به وسیلهٔ پایگاه دادهها با سایز حداکثر 4GB محدود شده و نمیتواند براساس سرویس ویندوز عمل نماید ویراستار متراکم باید تابع تقاضای کاربرد میباشد.
سرور SQL ویرایش محدود (SQL Server Express)
سرور SQL با ویراژ پرسرعت یک میزان پایین، ویراژ آزاد از سرور SQL میباشد که در برگیرنده موتور مرکزی پایگاه دادههاست. در حالیکه هیچ گونه محدودیتی در شماره پایگاه دادهها یا کاربران پشتیبانی شده وجود ندارد پایگاه دادههای کلی به ذخیرهسازی در بخشهای مجزا میپردازد. هدف از این کار جایگزینی *MSDE میباشد. سرویس جستجوگر متن کامل به عنوان یک بخش ضمیمه در سرور SQL با ویراژ پرسرعت قرار میگیرد. بطور کلی نسخهٔ سرور SQL مدیریت استودیو برای عمل ویراستاری در دسترس میباشد.
سرور SQL ویرایش گروه کاری
سرور SQL با ویراژ کار گروه در برگیرنده موتور مرکزی پایگاه دادهها میباشد این بخش از دیسک ویراژ در شمار نمونههایی با فعالیت کمتر قرار میگیرد و در برگیرنده عملکردهایی با دسترسی بالا و شاخصهای برابر نمیباشد.
سرور SQL ویرایش سازمانی
سرور * SQL ویرایش سازمانی، نسخهای از سرور SQL با ویژگیهای کامل میباشد که در برگیرندهٔ هر دو موتور مرکزی پایگاه دادهها و سرویسهای اضافی میباشد و این در حالی است که وجود دامنهٔ ابزارها برای ایجاد و اداره سرور SQL به صورت خوشهای است.
سرور SQL ویرایش برنامه نویسان
نگارش قابل کدنویسی سرور SQL دارای همان ویژگیهای نگارش enterprise این سرور میباشد که با وسیله لایسنس، کاربرد آن تنها به عنوان یک سیستم آزمایش و توسعه محدود گردیده و به عنوان یک سرور تولیدی محسوب نمیشود. این نسخه به عنوان بخشی از برنامه Dream Spark مایکروسافت برای بارگذاری توسط دانشجویان به طور رایگان موجود میباشد.
مایکروسافت اکسپرشن وب
مایکروسافت اکسپرشن وب (Microsoft Expression Web) یک نرمافزار ویراستار وب و طراحی وبسایت ساخته شده توسط شرکت مایکروسافت است.
مایکروسافت بیزتاک سرور
مایکروسافت بیزتاک سرور یا به اختصار "بیزتاک" مجموعهای از خدمات نرمافزاری است که ساختن راه حل های یکپارچه سازی را آسان میگرداند.
شما برای راه اندازی این سولوشن یا راه حل نرمافزاری نیاز به یک سرور سخت افزاری مجزا دارید. یکی از پیش نیاز های نرمافزاری آن، شرپوینت است.
میتوان گفت برای یکپارچه سازی یک سازمان شما در ابتدا نیاز به تجزیه و تحلیل دقیق و نیاز سنجی هستید. در گام بعدی شما به کمک برنامه نویسی و تعریف شکل و قالب پیغام ها و تعاریف دیگر یکپارچه سازی را انجام میدهید.
این برنامه یک داشبورد و کنترل پنل مرکزی در اختیار شما قرار میدهد که وضعیت جریان های کاری و پروسه های کسب و کار خود را میتوانید در آن مشاهده کنید.
این سرور مبتنی بر پیغام طراحی شده است که کاملاً با طراحی های پیشرفته ی کنونی مثل SOA منطبق است. پس شما هم برای یکپارچه سازی کلیه نرمافزار های موجود، باید نگاه سرویس گرا داشته باشید.
همه برنامه های سازمانی شما برای یکپارچه سازی میتوانند پیغامی را به سرور ارسال کنند که سرور بیزتاک با مدیریت کلیه پیغام ها و ایجاد پیغام های جدید و ارسال آن برای برنامه های دیگر سازمان شما یا سازمان همکار شما، یکپارچه سازی را فراهم می کند.
برنامه هایی که میخواهند به بیزتاک وصل شوند را شما باید تحلیل کنید تا بتوانید برای آنها وب سرویسی بنویسید که کار فرستادن پیغام را منظم و مدیریت شده و هماهنگ و استاندارد انجام دهد.
این سرور بر اساس دو لایه طراحی شده است که لایه ی اول مبتنی بر پیغام همه ی کار ها را مدیریت می کند و لایه ی دوم مبتنی برای Orachestration است که هماهنگ کننده و نظم دهنده به کلیه ی دریافت ها و ارسال های پیغام ها با برنامه های جزیره ای در سازمان شماست.
مراحل نصب بیزتاک را با جستجوی ساده در گوگل میتوانید به صورت
های فارسی وا نگلیسی به صورت گام به گام بیابید.
کاربرد های بیزتاک بدلیل تنوع بسیار زیاد آن بستگی به نیاز خاص سازمان شما دارد.
مایکروسافت واننوت
مایکروسافت وان نت (به انگلیسی: Microsoft OneNote) نرمافزار برداری مجموعهٔ مایکروسافت آفیس است که اولین بار به همراه مایکروسافت آفیس ۲۰۰۳ ارائه شد.
آشنایی با واننوت
تعریف واننوت
برنامه OneNote مکانی است برای جمعآوری، تنظیم، جستجو و به اشتراک گذاشتن اطلاعات مورد نیاز فرد. انواع مختلف یادداشتها در دفترچهها، فصلها و صفحات واننوت قابل ذخیره است. این نرمافزار میتواند به عنوان دفترچه شخصی فرد برای جلوگیری از فراموشی عمل کند.
برنامه واننوت را میتوان یک نسخه الکترونیکی از دفترچههای کاغذی معمول دانست.
تاریخچه برنامه واننوت
برنامه واننوت در سال ۲۰۰۳ میلادی بصورت یک برنامه جدای از آفیس ۲۰۰۳ نصب میشد و البته کارآیی آن کمتر از وان نوت فعلی بود. به مرور که کاربران واننوت پیشنهادهای خود را جهت رفع کاستیهای آن به مایکروسافت دادند و افزونههای مختلفی برای آن نوشته شد، مایکروسافت نسخه جدید آن را در نسخه ۲۰۰۷ آفیس قرار داد. فعلاً نسخه ۲۰۱۳ واننوت به عنوان نسخه آخر این نرمافزار با تغییر شکل ظاهری واننوت و تبدیل منوهای ثابت آن به منوهای سیار و روبانی و اضافه نمودن چند قابلیت دیگر در بازار موجود است.
مایکروسافت ویزیو
مایکروسافت ویزیو (به انگلیسی: Microsoft Visio) نرمافزاری برای طراحی نمودارها است که تحت سیستمعامل ویندوز کار میکند.
معماری نرمافزار
معماری نرمافزار یعنی ساختار و سازمان یک سیستم نرمافزاری که به منظور پشتیبانی از عملیات مشخص، بر روی سازماندهی اجزاء متمرکز میباشد. در واقع اجزاء را در حوزههای مرتبط به هم گروه بندی میکند. دیگر حوزههای مرتبط به هم، بر روی تبادل و تعامل با این حوزه متمرکز میشوند.
معماری نرمافزار از کلیدیترین بخشهای تولید نرمافزار مخصوصا نوع تجاری آن است که البته در سالهای اخیر با ایجاد مدلهای کلاسیک تولید نرمافزار به نرمافزارهای عظیم تر محدود شده است.
معماری نرمافزار در واقع انتخاب یک ساختار کلی برای پیاده سازی یک پروژه نرمافزاری بر مبنای مجموعه ای از نیازهای کاربری و تجاری یک سیستم نرمافزاری است تا هم بتوان کاربردهای مورد نظر را پیاده سازی کرد و هم بتوان کیفیت نرمافزار، تولید آن و نگهداری آن را نیز بهینه کرد و سرعت بخشید. به عبارتی دیگر: معماری نرم افزار یک برنامه یا سیستم محاسباتی، ساختار یا ساختارهای آن سیستم محاسباتی است که خصوصیات قابل رویت از بیرون، عناصر و ارتباطات بین آنها را نشان می دهد.
معماری سرویسگرا
معماری سرویسگرا (به انگلیسی: Service-oriented Architecture (به اختصار SOA))، رهیافتیست برای ساخت سامانههای توزیعشده که کارکردهای نرمافزاری را در قالب سرویس ارائه میکند.
از این سرویسها هم میتوان برای فراخوانی در نرمافزارهای دیگر و هم برای ساخت سرویسهای جدید استفاده کرد. معماری سرویسگرا مجموعهای انعطافپذیر از اصول طراحی است که در مراحل توسعهٔ سامانهها و یکپارچگی در رایانش استفاده میشود. سامانهای که بر معماری سرویسگرا استوار است، کارکرد را به عنوان مجموعهای از سرویسهای سازگار بستهبندی میکند که میتوانند در چندین سامانهٔ مجزا از دامنههای تجاری گوناگون استفاده شوند.
کیت توسعه نرمافزار
کیت توسعهٔ نرمافزار یا SDK مجموعه توابع و کتابخانههای کامپایل شدهای که تولیدکنندگان نرمافزار برای آسان کردن برنامهنویسی برای محیط یا سکوی خاصی فراهم میکنند و در اختیار برنامهنویسان کاربردی قرار میدهند.
نمونهها
Microsoft Windows SDK
Xcode
Android SDK
واین
واین (به انگلیسی: Wine) یک نرمافزار کاربردی آزاد است که به نرمافزارهای نوشتهشده سیستمعامل مایکروسافت ویندوز اجازهٔ اجرا شدن بر روی سیستمعاملهای شبه-یونیکس را میدهد. همچنین واین دارای کتابخانهای به نام Winelib است که توسعهدهندگان میتوانند نرمافزارهای ویندوز خود را با آن کامپایل کنند تا سازگار کردن آن برای سیستمعاملهای شبه-یونیکس راحتتر شود.
واین یک شبیهساز کامل نیست اما میتوان آنرا لایه سازگاری نامید به این خاطر که آن پیادهسازی دوبارهٔ دیالالهای ویندوز است. نام واین از مخفف جملهٔ Wine Is Not an Emulator آمدهاست که «واین یک شبیهساز نیست» معنی آن است.
واین در حالت پیشفرض بر روی اکثر توزیعهای گنو/لینوکس نصب نیست و باید آن را جداگانه نصب کنید.
مایکروسافت و واین
مایکروسافت تا به حال به صورت عمومی چیزی درباره واین نگفتهاست. اگرچه نرمافزار ویندوز آپدیت به روزرسانیهای نرمافزارهای ویندوز که از طریق واین اجرا میشوند را مسدود میکند. در ۱۶ فوریه ۲۰۰۵ Ivan Leo Puoti متوجه شد که مایکروسافت شروع به بررسی در ویندوز رجیستری برای پیدا کردن کلیدهای تنظیمات واین میکند تا نرمافزار ویندوز آپدیت آن نرمافزارها را مسدود کند تا به روز نشوند.
نرمافزار WGA نیز کلیدهای تنظیمات واین را جستجو میکند. در سوالات متدوال نرمافزار WGA آمدهاست که WGA برای واین طراحی نشدهاست، از آنجایی که واین «ویندوز اصل» را تشکیل نمیدهد. وقتی WGA واین را بر روی سیستم تشخیص دهد، پیغامی به کاربران میدهد که ویندوز شما اصل نیست دانلود برای شما غیرفعال خواهد شد. با وجود این موضوع برخی گزارش دادهاند که WGA بر روی واین به خوبی کار میکند.
پیجین
پیجین (به انگلیسی: Pidgin) یک کلاینت پیامرسان فوری (به انگلیسی: Instant Messaging) است که قابلیت اجرا بر روی چند سکو (به انگلیسی: Cross-platform) را دارد. تعداد کاربران پیجین در سال ۲۰۰۷ بیش از ۳ میلیون نفر تخمین زده شدهاست. پیجین یک نرمافزار آزاد است و تحت مجوز جیپیال انتشار مییابد.
اسکوئید
اسکوئید (به انگلیسی: squid) یک کارساز پراکسی (پراکسی سرور) است که روی http و https و ftp عمل میکند و میتواند به عنوان کارساز کش (کشسرور) نیز به کار رود. اسکوئید یک برنامه چندسکویی است و قابل نصب بر روی طیف وسیعی از سیستمعاملهای شبه یونیکس و همینطور ویندوز است. تا نسخه ۲٫۷، نسخههایی برای سیستمعامل ویندوز منتشر میشد، اما پشتیبانی از ویندوز در نسخههای بعدی متوقف شد. این برنامه که تحت پروانه جیپیال منتشر میشود، یک نرمافزار آزاد است.
تاریخچه
اسکوئید در ابتدا تحت عنوان Harvest object cache توسط پروژه هاروست در دانشگاه دانشگاه کولورادو بولدر توسعه داده شد. در دانشگاه کالیفرنیا، سن دیاگو کارهای بیشتری بر روی برنامه انجام گرفت و بودجه پروژه از طریق دو کمکهزینه توسط بنیاد ملی علوم تامین شد. Duane Wessels «آخرین نسخه غیر تجاری» از این برنامه را منشعب کرد و نام آن را به اسکوئید تغییر داد تا مانع اختلاف با انشعاب تجاری که Cached 2.0 نامیده میشد، شود که در نهایت نسخه تجاری به نتکش تغییر نام یافت. نسخه ۱٫۰٫۰ برنامه اسکوئید در سال ۱۹۹۶ منتشر شد. در حال حاضر این برنامه تقریبا به طور کامل توسط داوطلبان توسعه داده میشود.
اشکال نرمافزاری
اشکال(به انگلیسی: Bug)، گیر یا باگ نوعی خطا یا اشتباه در اجرای نرمافزار است که موجب نتایج اشتباه یا اجرا نشدن نرمافزار میشود. علت این اشکالات میتواند اشتباه در هنگام برنامهنویسی باشد. شرکتهای سازنده نرمافزارها برای حل این مشکل قبل از ارائه نسخه نهایی نسخههایی تحت نام بتا یا آلفا انتشار میدهند تا افرادی آنها را بررسی کنند و این باگها را گزارش کنند. به این افراد بتا تستر (Beta Tester) میگویند.
بعضی اوقات شرکتهای سازنده نرمافزار به عمد یک یا چند اشکال در نسخههای قابل بازی قبل از انتشار، که رایگان پخش میکنند، میگذارند تا از کپی غیرمجاز آنها جلوگیری کنند مانند بازی کیش یک آدمکش.
انواع اشکال
این خطاها انواع مختلفی دارند و هر کدام از این نوعها در زمان خاصی تشخیص داده میشوند، انواع خطاهای برنامهنوسی به شرح زیر میباشد:
خطاهای زمان اجرا
خطاهای زمان کامپایل
خطاهای لغوی
خطاهای نحوی
خطاهای معنایی
خطاهای منطقی
که از بین همهٔ این خطاها، خطاهای نحوی رایجترین میباشد.
خطاهای دیرهنگام
بعضی اوقات خطا لغوی است ولی به جای اینکه تحلیلگر لغوی آن را تشخیص دهد، در یک مرحله بعد تشخیص داده میشود که به این نوع خطاها، خطاهای دیرهنگام گویند.
اشکالزدایی
در علم رایانه، اشکال نرمافزاری یا باگ، به خطاهای برنامهنویسی گفته میشود. به حل این مشکلات اشکالزدایی یا دیباگ میگویند. حل مشکلات نرمافزاری به دو صورت انجام میپذیرد: اول با داشتن کد اصلی برنامه. دوم با داشتن خود فایل اصلی برنامه.
با داشتن کد اصلی برنامه میتوان از امکانات مفسر برای اشکالزدایی استفاده نمود ولی در صورتی که فایل اصلی در اختیار باشد، میتواند به کمک علم مهندسی معکوس این کار را انجام داد.
دلیل نام گذاری
در دنیای رایانه، باگ (به انگلیسی: Bug) یا اشکال به معنی اشتباه یا اشکال در برنامه است. اما معنای اصلی آن در انگلیسی حشره میباشد. روزی که رایانهٔ Mark I در هاروارد خراب شد پس از یک جستجوی طولانی متخصصین علت مشکل را پیدا کردند. یک حشره کوچک بین نقاط تماس یک رله قرار داشت. به همین دلیل وجود اشکالات رایانهای باگ (حشره) نام گرفت و برطرف کردن این اشکالات کامپیوتری را دیباگ نامیدند.
اصل سادگی
ساده نگاهش دار، احمقانه، یا اصل کیس (به انگلیسی: KISS principle) عنوان اصلی است که توسط کلی جانسون (به انگلیسی: Kelly Johnson) معرفی شد. صورتهای مختلفی که برای این سرنام ذکر شده است شامل عبارات زیر میباشد:
«keep it short and simple»
«keep it simple and stupid»
«keep it simple and straitforward»
«keep it simple sir»
«keep it simple or be stupid»
«keep it simple and sincere»
تلگرام
پیامرسان تلگرام یک پیامرسان چندسکویی است که برای نسخههای کلاینت متنباز است. کاربران تلگرام میتوانند پیامها، تصاویر، ویدئوها و اسناد (همه انواع پروندهها پشتیبانی میشود) خودویرانگر و رمزنگاریشده تبادل کنند. تلگرام رسماً برای اندروید و آیاواس (از جمله تبلتها و دستگاههای بدون وای-فای) در دسترس است. نرمافزارهای کلاینت غیررسمی برای ویندوز فون، همینطور نسخه وب، نسخه اواس ده، نسخه لینوکس و یک کلاینت دسکتاپ ویندوز از توسعهدهندههای مستقل که از رابط برنامهنویسی نرمافزار تلگرام استفاده میکنند در دسترس هستند.
سیری
سیری (به انگلیسی: Siri) یک دستیار شخصی هوشمند و راهنمای دانا است که به عنوان یک اپلیکیشن برای آیاواس اپل کار میکند. این اپلیکیشن از رابط کاربری به زبان طبیعی برای پاسخ دادن به سوالات و ایجاد توصیههای کاربر استفاده میکند. انجام این کارها به وسیله ارسال درخواستها به یک مجموعه از خدمات وب صورت میگیرد.
پاسخهای طنزگونهٔ سیری
گوگل گلس: شرکت اپل به صورت رسمی مطلبی را در نفی یا قبول گوگل گلس منتشر نکردهاست اما در سیستم سخنگوی موبایلهای آیفون سیری به صورت طنزگونهای پاسخهایی را قرار دادهاست که در صورتی که کاربر به سیستم سیری بگوید اوکی گلس (عبارتی که به گوگل گلس گفته میشود تا دستورها را انجام دهد) سیری پاسخهای متفاوتی را به کاربر ارائه میدهد که گویای این نکته است که گوگل گلس گجت جالب نیست.
سف
سف یک سکوی ذخیرهسازی آزاد، به منظور ایجاد آبجکت، بلاک و فایل سیستم بر روی مجموعهای از رایانههای متصل به هم (کلاستر) ایجاد شده است. هدف اصلی سف ایجاد یک فایل سیستم توزیع شده بر روی مجموعهی زیادی از کامپیوترها در مقیاس بالا است. دادهها در سف به صورت خودکار کپی میشوند و در صورت خطا در یک بخش، از کپی آن اطلاعات جایگزین میشود. سف به صورتی طراحی شده است که خود به صورت خودکار ترمیم و مدیریت کند و بر روی سختافزارهای عادی نصب و راهاندازی میشود.
خط مشی جاوا
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایتکد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا، بایتکدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایتکد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای JVM قبلی معرفی شد، کم شود. یکی از این تکنیکها JIT است که بایتکد جاوا را به کد محلی ترجمه کرده و سپس آن را پنهان میکند. در نتیجه برنامه خیلی سریعتر نسبت به کدهای ترجمه شدهٔ خالص شروع و اجرا میشود. بیشتر VMهای پیشرفته، بهصورت کامپایل مجدد پویا، در آنالیز VM، رفتار برنامهٔ اجرا شده و کامپایل مجدد انتخاب شده و بهینهسازی قسمتهای برنامه، استفاده میشوند. کامپایل مجدد پویا میتواند کامپایل ایستا را بهینهسازی کند. زیرا میتواند قسمت hot spot برنامه و گاهی حلقههای داخلی که ممکن است زمان اجرای برنامه را افزایش دهند را تشخیص دهد. کامپایل JIT و کامپایل مجدد پویا به برنامههای جاوا اجازه میدهد که سرعت اجرای کدهای محلی بدون از دست دادن قابلیت انتقال افزایش پیدا کند.
تکنیک بعدی به عنوان کامپایل ایستا شناخته شدهاست. که کامپایل مستقیم به کدهای محلی است مانند بسیاری از کامپایلرهای قدیمی. کامپایلر ایستای جاوا، بایتکدها را به کدهای شی محلی ترجمه میکند.
کارایی جاوا نسبت به نسخههای اولیه بیشتر شد. در تعدادی از تستها نشان داده شد که کارایی کامپایلرJIT کاملاًَ مشابه کامپایلر محلی شد. عملکرد کامپایلرها لزوماً کارایی کدهای کامپایل شده را نشان نمیدهند. یکی از پیشرفتهای بی نظیر در در زمان اجرای ماشین این بود که خطاها ماشین را دچار اشکال نمیکردند. علاوه بر این در زمان اجرای ماشینی مانند جاوا وسایلی وجود دارد که به زمان اجرای ماشین متصل شده و هر زمانی که یک استثنا رخ میدهد، اطلاعات اشکال زدایی که در حافظه وجود دارد، ثبت میکنند.
پیادهسازی
شرکت سان میکروسیستم مجوز رسمی برای پلت فرم استاندارد جاوا را به مایکروسافت ویندوز, لینوکس، و سولاریس (سیستمعامل). دادهاست. همچنین محیطهای دیگری برای دیگر پلت فرمها فراهم آوردهاست. علامت تجاری مجوز شرکت سان میکروسیستم طوری بود که با همهٔ پیادهسازیها سازگار باشد. به علت اختلاف قانونی که با ماکروسافت پیدا کرد، زمانی که شرکت سان ادعا کرد که پیادهسازی ماکروسافت از RMI یا JNI پشتیبانی نکرده و ویژگیهای خاصی را برای خودش اضافه کردهاست. شرکت سان در سال ۱۹۹۷ پیگیری قانونی کرد و در سال ۲۰۰۱ در توافقی ۲۰ میلیون دلاری برنده شد. در نتیجه کمی بعدماکروسافت جاوا را به ویندوز فرستاد. در نسخهٔ اخیر ویندوز، مرورگر اینترنت نمیتواند از جاوا پلت فرم پشتیبانی کند. شرکت سان و دیگران یک سیستم اجرای جاوای رایگان برای آنها و نسخههای دیگر ویندوز فراهم آوردند.
اداره خودکار حافظه
جاوا از حافظهٔ بازیافتی خودکار برای ادارهٔ حافظه در چرخهٔ زندگی یک شی استفاده میکند. برنامهنویس زمانی که اشیا به وجود میآیند، این حافظه را تعیین میکند. و در زمان اجرا نیز، زمانی که این اشیا در استفادهٔ زیاد طولانی نباشند، برنامه نویس مسئول بازگرداندن این حافظهاست. زمانی که مرجعی برای شیهای باقیمانده نیست، شیهای غیر قابل دسترس برای آزاد شدن به صورت خودکار توسط بازیافت حافظه، انتخاب میشوند. اگر برنامهنویس مقداری از حافظه را برای شیهایی که زیاد طولانی نیستند، نگه دارد، چیزهایی شبیه سوراخ حافظه اتفاق میافتند.
یکی از عقایدی که پشت سر مدل ادارهٔ حافظهٔ خودکار جاوا وجود دارد، این است که برنامهنویس هزینهٔ اجرای ادارهٔ دستی حافظه را نادیده میگیرد. در بعضی از زبانها حافظه لازم برای ایجاد یک شی، به صورت ضمنی و بدون شرط، به پشته تخصیص داده میشود. و یا بهطور صریح اختصاص داده شده و از heap بازگردانده میشود. در هر کدام از این راهها، مسئولیت ادارهٔ اقامت حافظه با برنامهنویس است. اگر برنامه شی را برنگرداند، سوراخ حافظه اتفاق میافتد. اگر برنامه تلاش کند به حافظهای را که هماکنون بازگردانده شده، دستیابی پیدا کند یا برگرداند، نتیجه تعریف شده نیست و ممکن است برنامه بیثبات شده و یا تخریب شود. این ممکن است با استفاده از اشارهگر مدتی باقی بماند، اما سرباری و پیچیدگی برنامه زیاد میشود. بازیافت حافظه اجازه دارد در هر زمانی اتفاق بیفتد. بهطوری که این زمانی اتفاق میافتد که برنامه بیکار باشد. اگر حافظهٔ خالی کافی برای تخصیص شی جدید در هیپ وجود نداشته باشد، ممکن است برنامه برای چند دقیقه متوقف شود. در جایی که زمان پاسخ یا اجرا مهم باشد، ادارهٔ حافظه و منابع اشیا استفاده میشوند.
جاوا از نوع اشارهگر ریاضی C و ++C پشتیبانی نمیکند. در جایی که آدرس اشیا و اعداد صحیح میتوانند به جای هم استفاده شوند. همانند ++C و بعضی زبانهای شیگرای دیگر، متغیرهای نوعهای اولیهٔ جاوا شیگرا نبودند. مقدار نوعهای اولیه، مستقیماً در فیلدها ذخیره میشوند. در فیلدها (برای اشیا) و در پشته (برای توابع)، بیشتر از هیپ استفاده میشود. این یک تصمیم هوشیارانه توسط طراح جاوا برای اجرا است. به همین دلیل جاوا یک زبان شیگرای خالص به حساب نمیآید.
گرامر
گرامر جاوا وسیعتر از ++C است و برخلاف ++C که ترکیبی است از ساختارها و شیگرایی، زبان جاوا یک زبان شیگرای خالص میباشد. فقط نوع دادة اصلی از این قاعده مستثنی است. جاوا بسیاری از ویژگیها را پشتیبانی میکند و از کلاسها برای سادهتر کردن برنامهنویسی و کاهش خطا استفاده میکند.
بر طبق قرارداد فایل هل بعد از کلاسهای عمومی نام گذاری میشوند. سپس باید پسوند java را به این صورت اضافه کرد: Hello world.java. این فایل اول باید با استفاده از کامپایلر جاوا به بایت کد کامپایل شود. در نتیجه فایل Hello world.class ایجاد میشود. این فایل قابل اجرا است. فایل جاوا ممکن است فقط یک کلاس عمومی داشته باشد. اما میتواند شامل چندین کلاس با دستیابی عمومی کمتر باشد.
کلاسی که به صورت خصوصی تعریف میشود ممکن است در فایل.java ذخیره شود. کامپایلر برای هر کلاسی که در فایل اصلی تعریف میشود یک کلاس فایل تولید میکند. که نام این کلاس فایل همنام کلاس است با پسوند.class
کلمه کلیدی public (عمومی) برای قسمتهایی که میتوانند از کدهای کلاسهای دیگر صدا زده بشوند، به کار برده میشود. کلمهٔ کلیدی static (ایستا) در جلوی یک تابع، یک تابع ایستا را که فقط وابسته به کلاس است و نه قابل استفاده برای نمونههایی از کلاس، نشان میدهد. فقط تابعهای ایستا میتوانند توسط اشیا بدون مرجع صدا زده شوند. دادههای ایستا به متغیرهایی که ایستا نیستند، نمیتوانند دسترسی داشته باشند.
کلمهٔ کلیدی void (تهی) نشان میدهد که تابع main هیچ مقداری را بر نمیگرداند. اگر برنامهٔ جاوا بخواهد با خطا از برنامه خارج شود، باید system.exit() صدا زده شود. کلمهٔ main یک کلمهٔ کلیدی در زبان جاوا نیست. این نام واقعی تابعی است که جاوا برای فرستادن کنترل به برنامه، صدا میزند. برنامه جاوا ممکن است شامل چندین کلاس باشد که هر کدام دارای تابع main هستند.
تابع main باید آرایهای از اشیا رشتهای را بپذیرد. تابع main میتواند از آرگومانهای متغیر به شکل public static void main(string…args) استفاده کند که به تابع main اجازه میدهد اعدادی دلخواه از اشیا رشتهای را فراخوانی کند. پارامترstring[]args آرایهای از اشیا رشته ایست که شامل تمام آرگومانهایی که به کلاس فرستاده میشود، است.
چاپ کردن، قسمتی از کتابخانهٔ استاندارد جاوا است. کلاس سیستم یک فیلد استاتیک عمومی به نام out تعریف کردهاست. شی out یک نمونه از کلاس printstream است و شامل تعداد زیادی تابع برای چاپ کردن اطلاعات در خروجی استاندارد است. همچنین شامل println(string) برای اضافه کردن یک خط جدید برای رشتهٔ فرستاده شده اضافه میکند.
توزیعهای جاوا
منظور از توزیع جاوا پیادهسازیهای مختلفی است که برای کامپایلر جاوا و همچنین مجموعه کتابخانههای استاندارد زبان جاوا (JDK) وجود دارد. در حال حاضر چهار توزیعکنندهٔ عمده جاوا وجود دارند:
سان میکروسیستمز: توزیع کننده اصلی جاوا و مبدع آن میباشد. در اکثر موارد هنگامی که گفته میشود جاوا منظور توزیع سان میباشد.
GNU Classpath: این توزیع از سوی موسسه نرمافزارهای آزاد منتشر شده و تقریباً تمامی کتابخانه استاندارد زبان جاوا در آن بدون بهرهگیری از توزیع شرکت سان از اول پیادهسازی شدهاست. یک کامپایلر به نام GNU Compiler for Java نیز برای کامپایل کردن کدهای جاوا توسط این موسسه ایجاد شدهاست. فلسفه انتخاب نام Classpath برای این پروژه رها کردن تکنولوژی جاوا از وابستگی به علامت تجاری جاوا است بطوریکه هیچ وابستگی یا محدودیتی برای استفاده آن از لحاظ قوانین حقوقی ایجاد نشود و از طرفی به خاطر وجود متغیر محیطی classpath در تمامی محیطهای احرایی برنامههای جاوا، این نام به نوعی تکنولوژی جاوا را برای خواننده القا میکند. کامپایلر GNU توانایی ایجاد کد اجرایی (در مقابل بایت کد توزیع سان) را داراست. لازم به ذکر است که در حال حاضر شرکت سان تقریباً تمامی کدهای JDK را تحت مجوز نرمافزارهای آزاد به صورت متن باز منتشر کردهاست و قول انتشار قسمت بسیار کوچکی از این مجموعه را که بهدلیل استفاده از کدهای شرکتهای ثانویه نتوانسته به صورت متن باز منتشر نماید در آینده نزدیک با بازنویسی این کدها دادهاست.
مایکروسافت #J: این در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه میباشد که توسط مایکروسافت و در چارچوب.net ارائه شدهاست. انتظار اینکه در سیستمعاملی غیر از ویندوز هم اجرا شود را نداشته باشید.
AspectJ: این نیز یک زبان مجزا نیست. بلکه یک برنامه الحاقی میباشد که امکان برنامه نویسی Aspect Oriented را به جاوا میافزاید. این برنامه توسط بنیاد برنامهنویسی جلوهگرا و به صورت کدباز ارائه شدهاست.
کلاسهای خاص
برنامک (برنامههای کاربردی کوچک)
اپلت جاواها برنامههایی هستند که برای کاربردهایی نظیر نمایش در صفحات وب، ایجاد شدهاند. واژهٔ import باعث میشود کامپایلر جاوا کلاسهای javaapplet.Applet وjava.awt.Graphics را به کامپایل برنامه اضافه کند. کلاس Hello کلاس Applet را توسعه میدهد. کلاس اپلت چارچوبی برای کاربردهای گروهی برای نمایش و کنترل چرخهٔ زندگی اپلت، درست میکند. کلاس اپلت یک تابع پنجرهای مجرد است که برنامههای کوچکی با قابلیت نشان دادن واسط گرافیکی برای کاربر را فراهم میکند. کلاس Hello تابع موروثی print(Graphics) را از سوپر کلاس container باطل میکند، برای اینکه کدی که اپلت را نمایش میدهد، فراهم کند. تابع paint شیهای گرافیکی را که شامل زمینههای گرافیکی هستند را میفرستد تا برای نمایش اپلتها استفاده شوند. تابع paint برای نمایش "Hello world!" تابع drawstring(string,int,int) را صدا میزند.
جاوا سرولت
تکنولوژی servlet جاوا گسترس وب را به آسانی فراهم میکند. و شامل مکانیزمهایی برای توسعهٔ تابعی سرور وب و برایدسترسی به سیستمهای تجاری موجود است.servlet قسمتی از javaEE است که به درخواستهای مشتری پاسخ میدهد.
واژهٔ import کامپایلر جاوا را هدایت میکند که تمام کلاسهای عمومی و واسطها را از بستههای java.io وjava.servlet را در کامپایل وارد کند.
کلاس Hello کلاس Genericservlet را توسعه میدهد. کلاس Genericservlet واسطی برای سرور فراهم میکند تا درخواست را به servlet بفرستد و چرخهٔ زندگی servlet را کنترل کند.
JSP
صفحهٔ سرور جاوا قسمتی از سرور javaEE است که پاسخ تولید میکند. نوعاً صفحات HTML به درخواستهای HTTP از مشتری.JSPها کد جاوا در صفحهٔ HTML را با استفاده از حائل <%and%> اضافه میکنند.JSP به javaservlet کامپایل میشود.
سوینگ
Swing کتابخانهٔ واسط گرافیکی کاربر است برای پلت فرم javaSE. ابزاری مشابه پنجره، GTK و motif توسط شرکت sun فراهم شدهاند. این مثال کاربرد swing یک پنجرهٔ واحد همراه با Hello world را ایجاد میکند.
اولین جملهٔ import کامپایلر جاوا را هدایت میکندتا کلاس Borderlayout را از بستهٔ java.awt در جاوا به کامپایل اضافه کند. و import دوم همهٔ کلاسهای عمومی و واسط آنها را از بستهٔ javax.swing اضافه میکند. کلاس Hello کلاس Jframe را توسعه میدهد. کلاس Jframe یک پنجره با میلهٔ عنوان و کنترل بستن است.
زمانی که برنامه آغاز میشود، تابع main با JVM صدا زده میشود. این یک نمونهٔ جدید از کلاس Hello را ایجاد کرده و با صدا زدن تابع setvisible(boolean) با مقدار true نمایش داده میشود.
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایتکد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا، بایتکدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایتکد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای JVM قبلی معرفی شد، کم شود. یکی از این تکنیکها JIT است که بایتکد جاوا را به کد محلی ترجمه کرده و سپس آن را پنهان میکند. در نتیجه برنامه خیلی سریعتر نسبت به کدهای ترجمه شدهٔ خالص شروع و اجرا میشود. بیشتر VMهای پیشرفته، بهصورت کامپایل مجدد پویا، در آنالیز VM، رفتار برنامهٔ اجرا شده و کامپایل مجدد انتخاب شده و بهینهسازی قسمتهای برنامه، استفاده میشوند. کامپایل مجدد پویا میتواند کامپایل ایستا را بهینهسازی کند. زیرا میتواند قسمت hot spot برنامه و گاهی حلقههای داخلی که ممکن است زمان اجرای برنامه را افزایش دهند را تشخیص دهد. کامپایل JIT و کامپایل مجدد پویا به برنامههای جاوا اجازه میدهد که سرعت اجرای کدهای محلی بدون از دست دادن قابلیت انتقال افزایش پیدا کند.
تکنیک بعدی به عنوان کامپایل ایستا شناخته شدهاست. که کامپایل مستقیم به کدهای محلی است مانند بسیاری از کامپایلرهای قدیمی. کامپایلر ایستای جاوا، بایتکدها را به کدهای شی محلی ترجمه میکند.
کارایی جاوا نسبت به نسخههای اولیه بیشتر شد. در تعدادی از تستها نشان داده شد که کارایی کامپایلرJIT کاملاًَ مشابه کامپایلر محلی شد. عملکرد کامپایلرها لزوماً کارایی کدهای کامپایل شده را نشان نمیدهند. یکی از پیشرفتهای بی نظیر در در زمان اجرای ماشین این بود که خطاها ماشین را دچار اشکال نمیکردند. علاوه بر این در زمان اجرای ماشینی مانند جاوا وسایلی وجود دارد که به زمان اجرای ماشین متصل شده و هر زمانی که یک استثنا رخ میدهد، اطلاعات اشکال زدایی که در حافظه وجود دارد، ثبت میکنند.
پیادهسازی
شرکت سان میکروسیستم مجوز رسمی برای پلت فرم استاندارد جاوا را به مایکروسافت ویندوز, لینوکس، و سولاریس (سیستمعامل). دادهاست. همچنین محیطهای دیگری برای دیگر پلت فرمها فراهم آوردهاست. علامت تجاری مجوز شرکت سان میکروسیستم طوری بود که با همهٔ پیادهسازیها سازگار باشد. به علت اختلاف قانونی که با ماکروسافت پیدا کرد، زمانی که شرکت سان ادعا کرد که پیادهسازی ماکروسافت از RMI یا JNI پشتیبانی نکرده و ویژگیهای خاصی را برای خودش اضافه کردهاست. شرکت سان در سال ۱۹۹۷ پیگیری قانونی کرد و در سال ۲۰۰۱ در توافقی ۲۰ میلیون دلاری برنده شد. در نتیجه کمی بعدماکروسافت جاوا را به ویندوز فرستاد. در نسخهٔ اخیر ویندوز، مرورگر اینترنت نمیتواند از جاوا پلت فرم پشتیبانی کند. شرکت سان و دیگران یک سیستم اجرای جاوای رایگان برای آنها و نسخههای دیگر ویندوز فراهم آوردند.
اداره خودکار حافظه
جاوا از حافظهٔ بازیافتی خودکار برای ادارهٔ حافظه در چرخهٔ زندگی یک شی استفاده میکند. برنامهنویس زمانی که اشیا به وجود میآیند، این حافظه را تعیین میکند. و در زمان اجرا نیز، زمانی که این اشیا در استفادهٔ زیاد طولانی نباشند، برنامه نویس مسئول بازگرداندن این حافظهاست. زمانی که مرجعی برای شیهای باقیمانده نیست، شیهای غیر قابل دسترس برای آزاد شدن به صورت خودکار توسط بازیافت حافظه، انتخاب میشوند. اگر برنامهنویس مقداری از حافظه را برای شیهایی که زیاد طولانی نیستند، نگه دارد، چیزهایی شبیه سوراخ حافظه اتفاق میافتند.
یکی از عقایدی که پشت سر مدل ادارهٔ حافظهٔ خودکار جاوا وجود دارد، این است که برنامهنویس هزینهٔ اجرای ادارهٔ دستی حافظه را نادیده میگیرد. در بعضی از زبانها حافظه لازم برای ایجاد یک شی، به صورت ضمنی و بدون شرط، به پشته تخصیص داده میشود. و یا بهطور صریح اختصاص داده شده و از heap بازگردانده میشود. در هر کدام از این راهها، مسئولیت ادارهٔ اقامت حافظه با برنامهنویس است. اگر برنامه شی را برنگرداند، سوراخ حافظه اتفاق میافتد. اگر برنامه تلاش کند به حافظهای را که هماکنون بازگردانده شده، دستیابی پیدا کند یا برگرداند، نتیجه تعریف شده نیست و ممکن است برنامه بیثبات شده و یا تخریب شود. این ممکن است با استفاده از اشارهگر مدتی باقی بماند، اما سرباری و پیچیدگی برنامه زیاد میشود. بازیافت حافظه اجازه دارد در هر زمانی اتفاق بیفتد. بهطوری که این زمانی اتفاق میافتد که برنامه بیکار باشد. اگر حافظهٔ خالی کافی برای تخصیص شی جدید در هیپ وجود نداشته باشد، ممکن است برنامه برای چند دقیقه متوقف شود. در جایی که زمان پاسخ یا اجرا مهم باشد، ادارهٔ حافظه و منابع اشیا استفاده میشوند.
جاوا از نوع اشارهگر ریاضی C و ++C پشتیبانی نمیکند. در جایی که آدرس اشیا و اعداد صحیح میتوانند به جای هم استفاده شوند. همانند ++C و بعضی زبانهای شیگرای دیگر، متغیرهای نوعهای اولیهٔ جاوا شیگرا نبودند. مقدار نوعهای اولیه، مستقیماً در فیلدها ذخیره میشوند. در فیلدها (برای اشیا) و در پشته (برای توابع)، بیشتر از هیپ استفاده میشود. این یک تصمیم هوشیارانه توسط طراح جاوا برای اجرا است. به همین دلیل جاوا یک زبان شیگرای خالص به حساب نمیآید.
گرامر
گرامر جاوا وسیعتر از ++C است و برخلاف ++C که ترکیبی است از ساختارها و شیگرایی، زبان جاوا یک زبان شیگرای خالص میباشد. فقط نوع دادة اصلی از این قاعده مستثنی است. جاوا بسیاری از ویژگیها را پشتیبانی میکند و از کلاسها برای سادهتر کردن برنامهنویسی و کاهش خطا استفاده میکند.
بر طبق قرارداد فایل هل بعد از کلاسهای عمومی نام گذاری میشوند. سپس باید پسوند java را به این صورت اضافه کرد: Hello world.java. این فایل اول باید با استفاده از کامپایلر جاوا به بایت کد کامپایل شود. در نتیجه فایل Hello world.class ایجاد میشود. این فایل قابل اجرا است. فایل جاوا ممکن است فقط یک کلاس عمومی داشته باشد. اما میتواند شامل چندین کلاس با دستیابی عمومی کمتر باشد.
کلاسی که به صورت خصوصی تعریف میشود ممکن است در فایل.java ذخیره شود. کامپایلر برای هر کلاسی که در فایل اصلی تعریف میشود یک کلاس فایل تولید میکند. که نام این کلاس فایل همنام کلاس است با پسوند.class
کلمه کلیدی public (عمومی) برای قسمتهایی که میتوانند از کدهای کلاسهای دیگر صدا زده بشوند، به کار برده میشود. کلمهٔ کلیدی static (ایستا) در جلوی یک تابع، یک تابع ایستا را که فقط وابسته به کلاس است و نه قابل استفاده برای نمونههایی از کلاس، نشان میدهد. فقط تابعهای ایستا میتوانند توسط اشیا بدون مرجع صدا زده شوند. دادههای ایستا به متغیرهایی که ایستا نیستند، نمیتوانند دسترسی داشته باشند.
کلمهٔ کلیدی void (تهی) نشان میدهد که تابع main هیچ مقداری را بر نمیگرداند. اگر برنامهٔ جاوا بخواهد با خطا از برنامه خارج شود، باید system.exit() صدا زده شود. کلمهٔ main یک کلمهٔ کلیدی در زبان جاوا نیست. این نام واقعی تابعی است که جاوا برای فرستادن کنترل به برنامه، صدا میزند. برنامه جاوا ممکن است شامل چندین کلاس باشد که هر کدام دارای تابع main هستند.
تابع main باید آرایهای از اشیا رشتهای را بپذیرد. تابع main میتواند از آرگومانهای متغیر به شکل public static void main(string…args) استفاده کند که به تابع main اجازه میدهد اعدادی دلخواه از اشیا رشتهای را فراخوانی کند. پارامترstring[]args آرایهای از اشیا رشته ایست که شامل تمام آرگومانهایی که به کلاس فرستاده میشود، است.
چاپ کردن، قسمتی از کتابخانهٔ استاندارد جاوا است. کلاس سیستم یک فیلد استاتیک عمومی به نام out تعریف کردهاست. شی out یک نمونه از کلاس printstream است و شامل تعداد زیادی تابع برای چاپ کردن اطلاعات در خروجی استاندارد است. همچنین شامل println(string) برای اضافه کردن یک خط جدید برای رشتهٔ فرستاده شده اضافه میکند.
توزیعهای جاوا
منظور از توزیع جاوا پیادهسازیهای مختلفی است که برای کامپایلر جاوا و همچنین مجموعه کتابخانههای استاندارد زبان جاوا (JDK) وجود دارد. در حال حاضر چهار توزیعکنندهٔ عمده جاوا وجود دارند:
سان میکروسیستمز: توزیع کننده اصلی جاوا و مبدع آن میباشد. در اکثر موارد هنگامی که گفته میشود جاوا منظور توزیع سان میباشد.
GNU Classpath: این توزیع از سوی موسسه نرمافزارهای آزاد منتشر شده و تقریباً تمامی کتابخانه استاندارد زبان جاوا در آن بدون بهرهگیری از توزیع شرکت سان از اول پیادهسازی شدهاست. یک کامپایلر به نام GNU Compiler for Java نیز برای کامپایل کردن کدهای جاوا توسط این موسسه ایجاد شدهاست. فلسفه انتخاب نام Classpath برای این پروژه رها کردن تکنولوژی جاوا از وابستگی به علامت تجاری جاوا است بطوریکه هیچ وابستگی یا محدودیتی برای استفاده آن از لحاظ قوانین حقوقی ایجاد نشود و از طرفی به خاطر وجود متغیر محیطی classpath در تمامی محیطهای احرایی برنامههای جاوا، این نام به نوعی تکنولوژی جاوا را برای خواننده القا میکند. کامپایلر GNU توانایی ایجاد کد اجرایی (در مقابل بایت کد توزیع سان) را داراست. لازم به ذکر است که در حال حاضر شرکت سان تقریباً تمامی کدهای JDK را تحت مجوز نرمافزارهای آزاد به صورت متن باز منتشر کردهاست و قول انتشار قسمت بسیار کوچکی از این مجموعه را که بهدلیل استفاده از کدهای شرکتهای ثانویه نتوانسته به صورت متن باز منتشر نماید در آینده نزدیک با بازنویسی این کدها دادهاست.
مایکروسافت #J: این در حقیقت یک توزیع جاوا نیست. بلکه زبانی مشابه میباشد که توسط مایکروسافت و در چارچوب.net ارائه شدهاست. انتظار اینکه در سیستمعاملی غیر از ویندوز هم اجرا شود را نداشته باشید.
AspectJ: این نیز یک زبان مجزا نیست. بلکه یک برنامه الحاقی میباشد که امکان برنامه نویسی Aspect Oriented را به جاوا میافزاید. این برنامه توسط بنیاد برنامهنویسی جلوهگرا و به صورت کدباز ارائه شدهاست.
کلاسهای خاص
برنامک (برنامههای کاربردی کوچک)
اپلت جاواها برنامههایی هستند که برای کاربردهایی نظیر نمایش در صفحات وب، ایجاد شدهاند. واژهٔ import باعث میشود کامپایلر جاوا کلاسهای javaapplet.Applet وjava.awt.Graphics را به کامپایل برنامه اضافه کند. کلاس Hello کلاس Applet را توسعه میدهد. کلاس اپلت چارچوبی برای کاربردهای گروهی برای نمایش و کنترل چرخهٔ زندگی اپلت، درست میکند. کلاس اپلت یک تابع پنجرهای مجرد است که برنامههای کوچکی با قابلیت نشان دادن واسط گرافیکی برای کاربر را فراهم میکند. کلاس Hello تابع موروثی print(Graphics) را از سوپر کلاس container باطل میکند، برای اینکه کدی که اپلت را نمایش میدهد، فراهم کند. تابع paint شیهای گرافیکی را که شامل زمینههای گرافیکی هستند را میفرستد تا برای نمایش اپلتها استفاده شوند. تابع paint برای نمایش "Hello world!" تابع drawstring(string,int,int) را صدا میزند.
جاوا سرولت
تکنولوژی servlet جاوا گسترس وب را به آسانی فراهم میکند. و شامل مکانیزمهایی برای توسعهٔ تابعی سرور وب و برایدسترسی به سیستمهای تجاری موجود است.servlet قسمتی از javaEE است که به درخواستهای مشتری پاسخ میدهد.
واژهٔ import کامپایلر جاوا را هدایت میکند که تمام کلاسهای عمومی و واسطها را از بستههای java.io وjava.servlet را در کامپایل وارد کند.
کلاس Hello کلاس Genericservlet را توسعه میدهد. کلاس Genericservlet واسطی برای سرور فراهم میکند تا درخواست را به servlet بفرستد و چرخهٔ زندگی servlet را کنترل کند.
JSP
صفحهٔ سرور جاوا قسمتی از سرور javaEE است که پاسخ تولید میکند. نوعاً صفحات HTML به درخواستهای HTTP از مشتری.JSPها کد جاوا در صفحهٔ HTML را با استفاده از حائل <%and%> اضافه میکنند.JSP به javaservlet کامپایل میشود.
سوینگ
Swing کتابخانهٔ واسط گرافیکی کاربر است برای پلت فرم javaSE. ابزاری مشابه پنجره، GTK و motif توسط شرکت sun فراهم شدهاند. این مثال کاربرد swing یک پنجرهٔ واحد همراه با Hello world را ایجاد میکند.
اولین جملهٔ import کامپایلر جاوا را هدایت میکندتا کلاس Borderlayout را از بستهٔ java.awt در جاوا به کامپایل اضافه کند. و import دوم همهٔ کلاسهای عمومی و واسط آنها را از بستهٔ javax.swing اضافه میکند. کلاس Hello کلاس Jframe را توسعه میدهد. کلاس Jframe یک پنجره با میلهٔ عنوان و کنترل بستن است.
زمانی که برنامه آغاز میشود، تابع main با JVM صدا زده میشود. این یک نمونهٔ جدید از کلاس Hello را ایجاد کرده و با صدا زدن تابع setvisible(boolean) با مقدار true نمایش داده میشود.