اجزا وب
اجزاء وب
تار گیتیگستر ترکیبی از چهار عنصر اصلی است:
hypertext یا بسامتن: فرمتی از اطلاعات که به افراد اجازه می دهد تا در محیط کامپیوتر با استفاده از ارتباط داخلی موجود میان دو متن از بخشی از سند به بخش دیگری از آن یا حتی سند دیگری مراجعه کنند و به اطلاعات جدیدی دسترسی پیدا کند.
URL: شناسههای منحصر به فردی که برای مشخص کردن محل حضور اطلاعات موجود روی شبکه (فایل کامپیوتری، سند یا منابع دیگر) به کار می روند.
مدل Client-Server یا مشتری-خدمتگزار: سیستمی که در آن نرمافزار یا کامپیوتر مشتری از نرمافزار یا کامپیوتر خدمتگزار تقاضای دریافت منابع اطلاعاتی مانند داده یا فایل می کند.
markup language یازبان علامتگذاری: کاراکترها یا کدهای موجود در متن که ساختار متن وب معنایی را مشخص می کنند.
معماری سیستم وب
کلاً از دیدگاه فنی سیستم وب در دو بخش سازماندهی می شود:
برنامه سمت سرویس دهنده ی وب و برنامه سمت مشتری وب
پایگاه اطلاعاتی توزیع شده از صفحات ابرمتن، فایل های داده مثل صدا، تصویر و بطور کل هر منبع
صفحه وب چیزی نیست مگر یک فایل متنی بسیار ساده که با یکی از زبان های نشانه گذاری ابرمتنی مثل HTML، XHTML ، DHTML یا XML تدوین می شود. کاری که مرورگر به عنوان مشتری وب انجام می دهد آن است که تقاضای دریافت یکی از صفحات یا فایل ها را در قالب قراردادی استاندارد (به نام پروتکل HTTP) به سمت سرویس دهنده ارسال کند. در سمت مقابل سرویس دهنده ی وب این تقاضا را پردازش کرده و در صورت امکان، فایل مورد نظر را برای مرورگر ارسال می کند. مرورگر پپس از دریافت فایل ابرمتنی ، آن را تفسیر کرده و به صورت صفحه آرایی شده روی خروجی نشان می دهد. اگر فایل ابرمتنی در جایی به فایل صدا یا تصویر پیوند خورده باشد آن ها نیز توسط مرورگر تقاضا شده و پس از دریافت در جای خود قرار می گیرند.
وب چگونه عمل میکند
برای مشاهده یک صفحه وب یا دیگر منابع اطلاعاتی روی تور جهان گستر معمولاً URL صفحه را در یک مرورگر وب وارد میکنیم و یا لینک ابر متن مربوط با آن صفحه یا منبع را انتخاب میکنیم. اولین گام که در پشت پرده انجام میشود اختصاص یک آدرس IP به بخش سرور URL است که توسط پایگاه داده توزیع شده اینترنت صورت میگیرد که به آن DNS میگویند.
در مرحله بعد یک درخواست HTTP به مرور وب در آن آدرس IP ارسال میشود و درخواست مشاهده صفحه ارائه میگردد. در صورتی که یک صفحه معمولی در خواست شده باشد متن HTML، تصاویر گرافیکی یا هر فایل دیگری که مربوط به آن صفحه است در اختیار مشتری (مرورگر وب) قرار میگیرد. سپس مرورگر وب صفحه HTML، و دیگر فایلهای دریافت شده را ترجمه میکند. در نهایت "صفحه" مورد نظر مشتری در اختیار وی قرار میگیرد.
در تور جهان گستر، یک برنامه مشتری که عامل کاربر نام دارد منابع اطلاعاتی مانند صفحات وب یا فایلهای کامپیوتری را با استفاده از URL از وب در خواست میکند. اگر عامل کاربر نوعی مرورگر وب باشد، اطلاعات را روی مانیتور نشان میدهد. کاربر میتواند با دنبال کردن لینکهای موجود در صفحه وب به بقیه منابع موجود روی تور جهان گستر دسترسی پیدا کند. همچنین میتوان با پرکردن فرمهای HTML و تحویل این فرمهای وب میتوان اطلاعات را بر اساس پروتکل انتقال ابرمتن به سرور وب برگرداند تا از آن ذخیره شده یا پردازش شوند. صفحات وب در کنار هم قرار گرفته و وبسایتها را می سازند. عمل دنبال کردن ابرلینک از یک وب سایت به وب سایت دیگر را "مرور وب" یا " گشت و گذار" وب مینامند.
اصطلاح "گشت و گذار در اینترنت" اولین بار توسط جین آرمور پولی که یک کتابدار بود در مقاله یا به نام "Surfing the INTERNET" مطرح شد که ژوئن سال 1992 در "بولتن کتابخانه ویلسن" در دانشگاه مینوستا چاپ شد. اگر چه پولی مستقلاً از این کلمه استفاده کرد اما در یوزنتهای مربوط به سالهای 1991 و 1992 این کلمه دیده میشود و حتی عدهای میگویند که این کلمه در مجمع هکرها در دو سال قبل از آن به صورت شفاهی عنوان شده بود. پولی در تاریخ اینترنت به مادر اینترنت معروف است.
اغلب صفحات وب شامل ابر لینکهایی هستند که به صفحات و منابع اطلاعاتی مرتبط با آنها مانند صفحات دانلود، اسناد منابع، تعاریف و غیره منتهی میشوند. چنین مجموعهای از منابع مفید و مرتبط با هم توسط لینکهای ابر متن به یکدیگر متصل شدهاند را "وب" اطلاعات مینامند. قرار دادن این مجموعه منابع روی اینترنت شبکهای را تولید کرد که در اوایل دهه 1990 توسط تیم برنرز لی، " تور جهان گستر" نامیده شد.
عملکرد برنامه ی سرویس دهنده و مشتری وب
در سمت سرویس دهنده ی وب، پروسه ای وجود دارد که دائماً به پورت شماره 80 گوش می دهد و منتظر تقاضای برقراری اتصال توسط مشتریان می ماند. دقت کنید که برنامه ی سرویس دهنده از سوکت های نوع استریم استفاده می کند و اتصال از نوع TCP است. فرامین و داده هایی که بین سرویس دهنده و مرورگر وب مبادله می شوند تماماً متنی هستند.(همانند سیستم پست الکترونیکی) پس از آنکه ،ژ\ بین برنامه ی سویس دهنده و مشتری برقرار شد برنامه ی مشتری حق دارد یک یا چندین تقاضا بفرستد و این تقاضا ها باید در قالب استاندارد HTTP باشد. سرویس دهنده، یکایک تقاضا ها را دریافت و پردازش و در صورت امکان آن ها را اجرا می کند.
کش (cache)
اگر کاربر پس از مدت زمان اندکی به سرعت به صفحه وب برگردد احتمال دارد که اطلاعات از سرور وب اصلی بازیابی نشوند. به طور پیش فرض، مرورگرهای همه منابع وب را روی هارد کامپیوتر مشتری، مخفی (کش) میکنند. مرورگر درخواست HTML را تنها در صورتی که نیاز به روزآوری دادههای قبلی وجود داشته باشد ارسال میکند. در غیر این صورت از دادههای کش استفاده میشود.
این عمل باعث کاهش ترافیک شبکه اینترنت میشود. تصمیمگیری در مورد انقضای زمان استفاده از منبع تصویر، CSS، فایل جاوا اسکریپت و همچنین HTML به صورت مستقل انجام میگیرد. بنابراین حتی در برخی از سایتهای با محتوای پویا، بسیاری از منابع اطلاعاتی اصلی فقط در هر بار مراجعه عرضه میشوند. بهتر است طراحان وب سایت همه فایلهای جاوا اسکریپت و CSS را درون تعدادی فایل سایت جمعآوری کنند تا کش های کاربران بتوانند از آنها استفاده کنند و بدین ترتیب زمان دانلود شدن صفحه و تعداد مراجعات به سرور کاهش یابد.
همچنین بخشهای دیگری از اینترنت میتوانند محتوای وب را کش (مخفی) کنند. یکی از بهترین این اجزاء دیوارهای آتش است که در شرکتها و محیطهای دانشگاهی کاربرد دارد و منابع وب درخواست شده توسط یک کاربر را برای همه کاربران کش میکند. با وجود آن که این قابلیتها در اغلب مرورگرهای وب دیده میشود طراحان صفحات وب میتوانند عناوین HTTP که توسط کاربر درخواست شده را کنترل کنند تا صفحات در مواردی که لازم نیست در کش ذخیره نشوند؛ مثلاً صفحات خبری و بانکها.
بدین ترتیب میتوانیم بین اعمال "دریافت" و "ارسال" HTTP تفاوت قائل شویم. در صورتی که همه شرایط محقق شود، دادههایی که توسط فرمان دریافت (GET) درخواست شدهاند میتوانند در کش ذخیره شوند در حالی که دادههای به دست آمده پس از ارسال (posting) اطلاعات به سرور در کش ذخیره نمیشوند.
جاوا و جاوا اسکریپت
این سیستم به سرورهای وب امکان میدهد تا برنامههای کوچکی (که اپلت (applet) نامیده میشوند) را مستقیماً در شبکه اطلاعات بازیابی شده قرار دهند و این اپلتها که در کامپیوتر کاربر اجرا میشوند تعامل کاربر با اینترنت را سرعت میبخشد. در نهایت این سیستم به عنوان ابزاری برای تولید محتویات پیچیده طرف سرور مورد استفاده قرار گرفت. شرکت سان تلاش میکرد جاوا را به عنوان یک پلاتفرم برای اپلتهای طرف مشتری مطرح کند اما به دلایلی مانند عدم وجود یکپارچگی با محتوا (اپلتها به جعبههای کوچکی محدود میشدند که درون صفحه قرار داشتند) و عملکرد ضعیف (مخصوصاً شروع با تأخیر) ماشین مجازی بر روی سختافزارهای PCهای آن زمان این امر هرگز محقق نشد.
با این وجود، جاوا اسکریپت یک زبان برنامهنویسی اسکریپتی است که برای صفحات وب طراحی شده است. نسخه استاندارد آن ECMAScript نام دارد. اگر چه نام آن شبیه جاوا است اما توسط شرکت ارتباطات نت اسکیپ (Netscape) طراحی شده است و تقریباً هیچ ارتباطی با جاوا که ساخت شرکت میکروسیستمهای سان است ندارد. تنها شباهت آن با جاوا در این است که نحوه نگارش آن از زبان برنامه نویسی C گرفته شده است. جاوا اسکریپت مانند جاوا برنامه نویسی شیءگرا است اما شبیه سی پلاس پلاس و بر خلاف جاوا امکان استفاده از کدهای درهم (مخلوط) یعنی استفاده هم زمان از زبان برنامهنویسی شیء گرا و برنامهنویسی رویهای را فراهم میآورد. جاوا اسکریپت در کنار مدل شیء سند به زبان برنامهنویسی بسیار قویای تبدیل شده که حتی طراحان آن چنین تصوری از موفقیت آن نداشتند. گاهی اوقات در مورد آن از کلمه HTML پویا (DHTML) استفاده میشود تا گذر از صفحات HTML "ایستا" بیشتر حس میشود.
(برنامهنویسی) آجاکس یک فناوری مبتنی بر جاوا اسکریپت است که تأثیر زیادی بر شکلگیری تور جهان گستر داشته است. در این روش در زمانهای لازم، تنها بخشی از صفحه وب که مورد نیاز کاربر است به روز میشود تا سرعت کاربر بالاتر برود. آجاکس یکی از جنبههای مهم وب 2.0 محسوب میشود.
تأثیر بر روابط اجتماعی
وب در دنیای امروزی تبادل اطلاعات بین افراد در سراسر جهان را بسیار ساده و آسان نموده است و این امر با این حجم وسیع هرگز در تاریخ بشر سابقه نداشته است. افرادی که در گوشه و کنار جهان قرار دارند و هزاران کیلومتر از یکدیگر فاصله میتوانند افکار خود را به راحتی مبادله کنند و یا از روحیات و خط مشی زندگی خود با دیگران صحبت کنند. تجربههای عاطفی، عقاید سیاسی، رسوم فرهنگی، ضربالمثلهای ریتمدار، پندهای تجاری، کارهای هنری، تصاویر و عکسها، قطعات ادبی بدون هیچ سرمایهگذاری از جانب کاربر به راحتی در اختیار وی قرار میگیرد. اگر چه کارایی وب به فناوری مادی آن وابسته است اطلاعات موجود روی آن به شیوه کتابخانه و یا مطبوعات به صورت فیزیکی ارائه نمیشوند. بنابراین انتشارات اطلاعات از طریق وب اینترنت به کتابها و مجلههای فیزیکی و مادی محدود نمیشود و نیاز به کپی کردن فیزیکی اطلاعات وجود ندارد. اطلاعات موجود روی وب به صورت دیجیتال ارائه میشوند و بنابراین جستجو در آنها به سرعت زیادی صورت میگیرد. که بسیار سریعتر از جستجو در کتابخانه است و حتی فردی که در اینترنت جستجو میکند نسبت به فردی که از پست نامه، تلفن، تلگراف و یا وسایل ارتباطی دیگر استفاده میکند با سرعت بیشتری اطلاعات را بازیابی میکند.
وب مهمترین ابزار تبادل اطلاعات است که در کره زمین رونق فراوانی یافته است. این قابلیت به کاربران اجازه میدهد تا با افراد و گروههای مختلفی که در سراسر جهان پراکنده هستند و در فضا و مکان متفاوتی قرار دارند ارتباط برقرار کنند و نیاز به برقراری ارتباط فیزیکی میان افراد را مرتفع میسازد.
از آنجا که وب در سراسر جهان فعال است، عدهای آن را عامل ایجاد تفاهم میان افراد ساکن در سراسر جهان میدانند. وب پتانسیل فراوانی برای ایجاد روابط اجتماعی دارد و میتواند حس نوعدوستی و درک متقابل را افزایش دهد و یا حتی باعث شو که خشونت به صورت وسیعی رواج یابد و یا رژیمهای ظالم و عوام فریب به خواستههای خود که در طول تاریخ از دستیابی به آنها عاجز بودند بترسند.
امروزه در وب انواع مختلف اطلاعات را میتوان یافت و افرادی که تمایل دارند با جوامع و فرهنگهای مختلف آشنا شدند مراجعه به وب سادهترین راه است. اگر بخواهیم به شهری دور دست سفر کنید، وب بهترین مرجع ممکن برای یافتن اطلاعات مربوط به آن شهر است مخصوصاً اگر شهر مورد نظرتان در یکی از کشورهای توسعه نیافته قرار داشته باشد. روزنامههای محلی، مطبوعات دولتی و غیره از طریق اینترنت به راحتی قابل دسترسی هستند و به همین دلیل است که کاربران اینترنت روز به روز افزایش مییابند.
انتشار صفحات وب
صفحات وب در دسترس همه رسانههای جمعی قرار دارد. برای آنکه بتوانید یک صفحه وب را "منتشر" کنید لازم نیست به سراغ یک ناشر یا مؤسسه رسانهای که در سرتاسر جهان مشاهده میشوند بروید. ابر متن، برخلاف کتاب و اسناد، دارای یک نظم خطی از ابتدا تا انتها نیست. ابر متن به بخشهای فصل، زیر فصل و عناوین که در کتابها دیده میشود تقسیمبندی نمیشود.
اگر چه برخی از وب سایتها به چند زبان عرضه میشوند بسیاری از آنها فقط به یک زبان ارائه میشوند. همه برنامههای کامپیوتری همه کاراکترهای خاص و متون دو سویه RTL را در بر نمیگیرند. این عوامل این ادعا را که تور جهان گستر، جهان را به سمت یکپارچه شدن پیش میبرد به چالش میکشد. فرصت مناسب برای انتشار اطلاعات در صفحات وب شخصی و همچنین صفحات خانوادگی تجارتهای خرد و غیره توسط خدمات رایگان میزبانی وب به اوج خود رسیده است.
سرعت در وب
نگرانی موجود در مورد ازدحام اطلاعات روی زیر ساختار اینترنت و تأخیر زیاد در دسترسی به دادهها به باعث شده است که نام World Wide Web به "World Wide Wait" تغییر کند! افزایش سرعت اینترنت مسألهای مهم در بحثهای مربوط به استفاده از همتا سازی و کیفیت خدمات (QOS) است. راه حلهای ممکن برای کاهش انتظار برای مشاهده صفحات وب در سایت W3C ارائه شده است.
راهنمای استانداردهای موجود برای پاسخ زمانی ایدهآل صفحات وب (مطابق کتاب نیلسن، چاپ 1999، صفحه 42) عبارتند از:
1/0 ثانیه (یک دهم ثانیه). زمان ایدهآل پاسخ کاربر هیچ گونه تأخیری را حس نمیکند.
1 ثانیه. حداکثر زمان قابل قبول. زمان دانلود بیش از 1 ثانیه کاربر را خسته میکند.
10 ثانیه. زمان غیر قابل قبول. کاربر خسته شده و دوست دارد سایت را ترک کند. این اعداد برای طراحی ظرفیت سرور کاربرد زیادی دارند.
www در نامهای وبسایتها
از لحاظ فنی هیچ دلیلی وجود ندارد که نام سایت حتماً با www آغاز شود و اولین سرور وب در "info.cern.ch" قرار داشت. استفاده از پیشوند www یک توافق است که بین سازمانهای ارائه دهنده خدمات وب انجام شده است تا تمامی نامهای میزبان از یک پروتکل تبعیت کنند؛ برای مثال، بسیاری از سازمانها نام سرور اصلی پروتکل گوفر خرد را به صورت gopher.wherever.edu تعریف میکنند و از پیشوندهای دیگری استفاده میکنند تا بتوان از چندین سرور وب استفاده کنند. برخی از مرورگرها به صورت خودکار www را به ابتدا و ".com" را به انتهای URL تایپ شده اضافه میکنند. در مرورگرهای اینترنت اکسپلورر و فایرفاکس موزیلا با فشردن همزمان کلیدهای ctrl و Enter پیشوند "http://www." و پسوند "com." به انتهای URL اضافه میشوند.
تلفظ "www
در زبان انگلیسی، WWW طولانیترین تلفظ ممکن تور جهان گستر است که یک سرواژه سه حرفی است که به نه سیلاب نیاز دارد. داگلاس آدامز اظهار داشت: World Wide Web تنها عبارتی است که تلفظ شکل مختصر آن سه برابر بیشتر از تلفظ خود آن طول میکشد.
نسخههای کوتاهتر عبارتنداز "triple double 'u'"، "triple dub"، "dub dub dub"، "wuh wuh wuh" و "all the 'double u's". در زبانهای دیگر "WWW" را اغلب "VVV" تلفظ میکنند. در زبان چینی، World Wide Web را به صورت wàn wéi wǎng تلفظ میکنند (به چینی: 万维网) که به معنای "شبکه ده هزار بعدی" است.
تاریخچه وب جهان گستر
تیم برنرزلی در سال ۱۹۸۹ وقتی که اولین طرح پیشنهادی و طرح خود را به موسسهٔ سرن (پروهشگاه فیزیک هستهای و انرژیهای سطح بالا) در سویس بوردر فرانسه میفرستاد؛ اینترنت را اختراع کرد.
خصوصیات نسخههای مختلف وب
وب نسخهٔ یک: مستندات (توسط پیوندها-لینکها-) به هم مرتبط شدهاند.
وب نسخهٔ دو: محتویات توسط کاربران ایجاد میشود و اطلاعات بصورت پویا تولید و رشد پیدا میکنند.
وب نسخه سه: ارتباط دادهها، ابزار، و مردم در سراسر جهان(به وقوع میپیوندد).
این اختراع مثل تمام اخترعات بنیادی وب بر پایه سه تکنولوژی اصلی شکل گرفته:
آدرس یاب یا شناسه آدرس واحد (معروف URL یا URI) منبع مستندات یا اطلاعات در وب برای پیدا کردن آن مستند در کل وب.
زبان نشانه گذاری متن هوشمند (HTML) برای ارائه محتویات صفحات وب و برقراری پیوندها(لینکها).
پرتکل انتقال متن هوشمند (HTTP) برای انتقال اطلاعات وبی در سرتاسر اینترنت.
همان اوایل کار، خیلی زود تیم برنزلی متوجه شد که وب برای موفق بودن نیاز به عامل چهارمی و آن آزاد بودن و بازبودن (دسترسیها در) وب است. این تصمیم موثر، راه را برای رسید وب به وضعیت موجود امروز باز کرد که(باعث شد اینترنت:) جهانی، باز و آزاد، سازگار با سیستمهای عامل و سخت افزارهای متفاوت، یک مجموعه مرتبط با هم، آموزشی، تجاری، سرگرم کننده، رفاه آور برای مردم شدهاست.
وب ۱٫۰
در ابتدا داستان با شبکهای از مقالات و متنها شروع شد.
و مطمئناً در سال ۱۹۹۸ ارائه شدن گوگل با پیشنهاد الگوریتم جدید، بواسطه سادگی و توانایی خود در جستجو در اینترنت، بهبودی و پیشرفت قابل توجهی برای وب بود. موتور جستجوی گوگل انتظارات بعدی مصرف کنندگان که به دنبال پیدا کردن اطلاعات، محصولات و سرویسها و دیگر مردم بودند را بالا برد. همچنین گوگل سطح پذیرش راهبرد تجارت پیچیده تر و برنامه فروش آنلاین برای شرکتها را ارتقا داد(با این بهانه) که بتوانند رتبه خود را در گوگل بیشتر کنند (تا در اولین نتایج جستجوی گوگل قرار گیرند). این کار گوگل انقلاب جدیدی در بوجود آمدن کسب و کارهای آنلاین (حاضر در همه جا و همه وقت) و مدلهای جدید تبلیغات و همچنین بازارهای جدید را باعث شد.
بدین ترتیب وبلاگها دارای شخصیتی خواص برای خود شدند که این شخصیت را مستقیماً از مولف خود به ارث میبرند (شما با مطالعه دفترچه خاطرات شخصی هر فرد میتوانید با ابعاد متفاوت شخصیتی وی نیز تا اندازهای مه امکان دارد آشنا شوید
وب ۲٫۰
این اتفاقات ما را به وب ۲٫۰ رساند. در حالی که تجارتها و کسب و کارها داشتند از روشهای قبل به روشهای جدید وب مهاجرت میکردند یک نسل جدیدی از کاربران و برنامه نویسان وب شروع به همکاری فعالی کردند. در سال ۲۰۰۴ تیم اوریلی وب ۲٫۰ را با عنوان انقلاب تجارت در صنعت کامپیوتر بوسیله مهاجرت به روی بستر وب" را (به جهان)معرفی کرد. اصل قضیه وب ۲٫۰ این است که کاربرانی مثل خود مصرف کنندگان محتویات را ایجاد میکنند. و به این ترتیب اطلاعات خیلی پویاتر از اطلاعات در وب ۱٫۰ میباشد.
جامعه ویکیپدیا مفهوم همکاری و خرد جمعی جوامع مردمی وب ۲٫۰ را ارتقا داد. ویکیپدیا وب ۲٫۰ را اینگونه تعریف میکند:«عنوانی که روند استفاده از وب جهانگستر (www)و تکنولوژیها و طراحیهای آن که هدفش رسیدن به افزایش خلاقیت، اشتراک گذاشتن اطلاعات و مهمتر از همه همکاری کاربران است را توصیف میکند.».
(در محدوده وب ۲٫۰) شرکتها باید تصمیم بگیرند که برای کارشان وبلاگ بسازند یا نسازند!، و اینکه به هر حال میخواهند نظر مشتریانشان در مورد محصولاتشان را به دیگران نشان بدهند یا خیر. شرکتها به سمت و سوی فعال سازی و کاربردی تر کردن نظرات مشتریانشان در کسب و کارشان هستند، تا بتوانند نیازمندیهای مشتریانشان و توقعات نحوه تعامل خرید و فروششان را بهتر برآورده سازند.
یوتیوب خیلی خوب به تعریف همکاری اجتماعات در وب ۲٫۰ کمک کرد. در آوریل ۲۰۰۸ موتور جستجوی یوتیوب ۸۰ میلیون پاسخ ارائه کرده که حدود ۴ میلیون از آنها کانالهای ایجاد شده توسط کاربران است.
به گفته شرکت بینالمللی اطلاعات(IDC)، ویدئوهای تولید شده توسط کاربران و آپلود شده در روز در تمام سایتهای فیلم بیش از ۵۰۰ هزار قطعه فیلم در سال ۲۰۰۷ بوده و در چهار سال بعد از آن به حدود ۵ میلیون (ویدئو در روز)خواهد شد.
چیزهای شگفت انگیزی در اینترنت اتفاق افتادهاست. به هر حال در موارد متعددی وب ۲٫۰ باز هم بصورت محدوده بستهای (به حساب میآید)، که در آن معمولاً پیوند دادنها داخل آن (برای نگه داشتن مصرف کنندگان و مشتریان)ساده نیست و هنوز در خارج از سایت مربوطه یا بین چند سایت مختلف باید صورت گیرد و بعضی اوقات نیر استفاده اختصاصی از راه حلها و ضمیههای بعد مانع همکاری و ارتباط میشود.
وب ۳٫۰
اگر نخواهیم بگوییم انقلاب، تحول بعدی در وب ارتباط سخت افزار(مثل موبایل، لپ تاپ، و سایر دستگاههای سخت افزاری)به اینترنت بود. راه جدیدی برای یکپارچه سازی و هموار کردن راههای بدست آوردن اطلاعات و دید جدیدی که قبلاً اصلاً امکان پذیر نبود. و راه جدیدی برای ارتباط به اینترنت از طریق دستگهای متنوعی که قابلیت و توانایی پیداکردن و تجزیه و تحلیل و شسته رفته کردن اطلاعات را دارند.
کنسرسیوم وب جهانگستر (w۳c)تکنولوژیهای جدیدی را برای به وقوع پیوستن وب ۳٫۰ استاندارد سازی کرد. که شامل عناوین: وب مفهومی، ویدئو روی وب، وب سیار و همراه و وب در همه جا و تمام شرایط میباشند.
وب مفهومی
وب مفهومی چارچوبی مشترک مبتنی بر آدرسهای اینترنتی بوجود آورد که اجازه میدهد در سرتاسر برنامهها، برنامههای بزرگ و محدودههای اجتماعی، اطلاعات به همدیگر مرتبط شوند، به اشتراک گذاشته شوند و قابلیت استفاده مجدد پیدا کنند. با استفاده از تکنولوژیهای کنسرسیوم جهانگستر(w۳c) در وب مفهومی افراد یا دستگاها میتوانند با استفاده از یک نمونه از اطلاعات از یک مجموعه به مجموعه بی انتهایی از اطلاعات مرتبط به آن مطلب که در پایگاهای اطلاعاتی سرتاسر جهان دستیابی کند. این پایگاها از طریق شبکه سخت افزاری و کابل کشی به هم مرتبط نشدهاند بلکه این اطلاعات پراکنده در مناطق مختلف جغرافیایی بوسیله پارامترهای مشترکی مانند: یک شخص خاص، یک مکان خاص، یک ایده و نظریه خاص، یک مفهوم خاص و.... به هم پیوند داه میشوند.
اهداف اصلی وب مفهومی
وب مفهومی، شبکهای از اطلاعات به هم مرتبط است. خیلی از اطلاعاتی که در طول روز آنها را از اینترنت استفاده میکنیم در یک جا نیستند. برای مثال شما صورتحساب بانکی خود را در اینترنت در سایت بانک مربوطه و عکسهای خود را در آلبوم اینترنتی در سایتی دیگر و قرار ملاقاتهای خود را باز در جایی دیگر میبینید. اما آیا میتوانید عکسهای خودتان را در تقویم خودتان ببینید و بفهمید کی آن عکس را گرفتهاید و در آن وقت چه میکردید؟ آیا میتوانید گزارشهای بانکی خود را در تقویم خود ببینید؟ چرا نه؟! چون شبکهای ازاطلاعات به هم مرتبط شده ندارید. چون هرکدام از اطلاعات شما بوسیله برنامهای خاص کنترل میشوند و در سایت خاصی نگهداری میشوند.
دیدگاه وب مفهومی این است که مبانی وب را از تکیه بر مستندات و فایلها به پایه ریزی بر اساس اطلاعات گسترش دهیم. اطلاعات یک مطلب باید بتوانند به مستندات مورد استفاده در معماری عمومی وب دسترسی داشته باشند، مثلاً آدرسهای اینترنتی باید قابلیت اتصال به مستند دیگر یا قسمت از آن را که در رابطه با همین موضوع است در حال حاضر ارتباط داشته باشند. این یعنی اینکه ایجاد یک چارچوب مشترکی که اجازه بدهد اطلاعات قابلیت اشتراک گذاری و استفاده مجدد در سرتاسر برنامهها، برنامههای خیلی بزرگ و محدودههای ارتباطی و اجتماعی بصورت اتوماتیک و خودکار با کیفیت و درستی ابزارهای دستی، که شامل قابلیت ایجاد ارتباطات جدید و قابل نمایش در میان اطلاعات باشد.
فضای مجازی مجتمع یا مجتمع فضای مجازی (محاسبات ابری-رایانش ابری)
مجتمع فضای مجازی یا فضای مجازی مجتمع چیست؟
تصورکنید کامپیوتر و تمام دستگاههای قابل حملتان (مثل موبایل و لپ تاپ و کتاب خوان و...) در تمام اوقات با هم همسان سازی شده باشند(sync سنکرون باشند). تصورکنید هر وقت که اراده کردید به تمام اطلاعات شخصی خودتان دسترسی پیدا کنید. تصورت کنید توانایی دسته بندی و سازماندهی و جستجوی تمام اطلاعاتتان را روی اینترنت داشته باشید. تصور کنید که بتوانید تمام اطلاعات خود را از قبیل عکس، فیلم، مطلب، ایمیل، فایلها و مدارک، و... را برای دوستان، فامیل، همکاران بصورت فوری به اشتراک بگذارید. همه اینها وعدهای مجتمع فضای مجازی شخصی است.
این مطلب را درک و باور کنید یا نه، به هر حال احتمالاً همین الآن در حال استفاده از یک سرویس مبتنی بر فضای مجازی مجتمع هستید. و تقریباً همه کسانی که با کامپیوتر کار میکنند. gmail و google docs دو نمونه اولیه از مجتمع فضای مجازی هستند که ما حتی فکرش را هم نمیکردیم که بر پایه همین نوع سرویس باشند.
بطور خلاصه، فضای مجازی مجتمع شخصی به این معنی است که: همه بخشهای اطلاعاتی که در طول زندگی و راجع به هرجنبه از زندگیتان در هروقت که نیاز داشته باشید دم دست شما و آماده برای استفاده شما هستند. اطلاعات باید سیار و همراه، قابل انتقال و در هر لحظه قابل دستیابی باشد. شاه کلید امکان پذیر شدن، قابلیت حمل و تعاملی شدن اطلاعاتتان همسان و به روز بودن اطلاعات شما در میان دستگاهها مورد استفاده شما(مانند لپ تاپ، موبایل و...)مثل اطلاعات به اشتراک گذاشته شده باشند. اطلاعات به اشتراک گذاشته شده، اطلاعاتی هستند که در هرجاکه اراده کنیم به آنها دسترسی پیدا میکنیم، مثل هر شبکههای اجتماعی مجازی، بانکها، وبلاگها، اتاقهای خبری، اجتماعات اقتصادی و غیره. نهایتاً، فضای مجازی مجمتمع شخصی که شامل همه اطلاعاتتان از دفترچه تلفن و آدرسهایتان گرفته تا کلکسیون آهنگها و صداها و مدارک و گزارشهای کاری و اقتصادی و.... به فضای مجازی مجتمع عمومی و فضای مجازی مجتمع دیگران متصل خواهد شد. همه چیز به هم متصل خواهد شد. این یعنی اینکه در هر جای اینترنت که با آن سرو کله دارید، مانند کار کردن با افراد دیگر، میتوانید به آن اطلاعات مورد نظرتان اتصال برقرار کنید. این قضیه شامل، شبکههای اجتماعی، بانکها، دانشگاهها، محلهای کاری، فامیل و دوستان خودتان هم میشود. مطمئناً، شما خواهید توانست که چه قسمتی از اطلاعات شما عمومی و چه قسمتی بصورت خصوصی بماند. دستهای از فضای مجازی مجتمع شخصی، شکل جدیدی از شبکههای اجتماعی مجازی را شکل خواهند داد که تنظیمات حریم شخصی بیشتری از امثال فیس بوک خواهند داشت، و ویژه تر خواهند شد اگر این دسته بندیها فامیل محور یا تجارت گرا باشند.(حریم شخصی مسئله بزرگ آمار جرم در فضای مجازی مجتمع افراد خواهد شد). سرانجام، ابزارها ودستگاههای شما(در فضای مجازی مجتمع)، درباره شما یاد می گیرند و می فهمند شما چه کار میکنید، به کجا میروید و قصد انجام چه کاری را دارید و قتی شما به سراغ آنها میروید. ممکنه این نظرات شبیه داستانهای علمی تخیلی به نظر برسد، اما مطمئناً ما را به سمتی فضای مجازی مجتمع سوق خواهد داد. هرچند هنوز کاملاً وجود ندارد. ما در حال ایجاد فضای مجازی مجتمع شخصیمان هستیم.
فضای مجازی مجتمع شخصی شما
فضای مجازی مجتمع شخصی راهی برای ارتباط تجربههای کاربران، همگرایی(و متمرکزشدن و یکی شدن) تکنولوژها با دستگاهها و سخت افزارهایی که از سیستم عاملهای مشابهی استفاده میکنند، شبکههای به هم مرتبط (مانندشبکههای رادیویی)است. اما با وجود همگرایی تکنولوژیها، سخت افزارها به سمت تنوع و واگرایی بیشتر میل میکنند. چالش بعدی این است که بفهمیم چگونه در سرتاسر این تنوع دستگاهها بصورت مستمر ارتباط برقرار کنیم. مجتمع سازی(محاسبات ابری) امروزی در میان کل تولیدات یک شرکت بخصوص بصورت خیلی خوبی سنکرون اطلاعات(همسان سازی و همزمان سازی)و مطالب صورت گرفتهاست. با پیش زمینه فضای مجازی مجتمع شخصی، مصرف کنندگان میتوانند پخش کنند: آهنگ، تصاویر، محصولات و چیزهای خیلی زیادتری از هر مطلبی که امکان دسترسی به آن را دارند و از هر دستگاه سخت افزاری که دارند و هرجا که اتفاق میافتد، را داشته باشند.
سرویسهای «فضای مجازی مجتمع»از چه چیزیهای تشکیل میشوند
راه تولید کنندگان و تحلیل گران نشان میدهد که فضای مجازی مجتمع در تمام نقاط جهان بصورت پراکندهاست. برخی از ابهامات در جو تجارت و برخی در هنگام مشخص شدن برخی اشکالات فنی است. وقتی (الکی)به هرچیزی برچسب فضای مجازی مجتمع بچسبانند، این اصطلاح معنی خودش را از دست میدهد و به عبارت دیگر لوث میشود.
شرکت بینالمللی اطلاعات کامپیوتر(IDC) با لیست دم دستی بدرد بخوری آمده تا تعیین کند چه چیزهای را میشود برچسب فضای مجازی مجتمع زد و چه چیزهای را نه؟!
مشخصات کلیدی سرویسهای «فضای مجازی مجتمع
اطلاعات بوسیله شخص ثالث، خارج از محدوده سایت ایجاد شده باشد.
بوسیله اینترنت قابلیت دسترسی داشته باشد.
حداقل یا هیچ فرد ماهر در زمینه فناوری اطلاعات برای پیاده سازی آن نباشد.
تامین کننده باشد: یعنی خودش تامین کننده نیازهای درخواستها باشد، تقریباً همزمان استقرار پیدا کند(همزمان در اینترنت و دستگاههای متصل به آن، لپ تاپ و پخش کنندهها و کامپیوتر هیا شخصی و...)، بصورت پویا و خوب دسته بندی شود
مدل قیمت گذاری داشته باشد: بصورت خوب دسته بندی شود، کاربردی باشد(مبتنی براستفاده کاربر باشد)(حداقل قابلیت انتخاب داشته باشد).
رابط کاربر خوب داشته باشد(قابلیت نمایش در مرورگر و جانشین داشته باشد. به قول معروف Userfriendly باشد).
رابط سیستم داشته باشد: توابع کتابخانهای وب سرویسی داشته باشد.
قابلیت اشتراک گذاری منابع یا نسخههای مشترک را داشته باشد(قابلیت سفارشی کردن در حیطه سرویسهای اشتراک گذاری).
تار گیتیگستر ترکیبی از چهار عنصر اصلی است:
hypertext یا بسامتن: فرمتی از اطلاعات که به افراد اجازه می دهد تا در محیط کامپیوتر با استفاده از ارتباط داخلی موجود میان دو متن از بخشی از سند به بخش دیگری از آن یا حتی سند دیگری مراجعه کنند و به اطلاعات جدیدی دسترسی پیدا کند.
URL: شناسههای منحصر به فردی که برای مشخص کردن محل حضور اطلاعات موجود روی شبکه (فایل کامپیوتری، سند یا منابع دیگر) به کار می روند.
مدل Client-Server یا مشتری-خدمتگزار: سیستمی که در آن نرمافزار یا کامپیوتر مشتری از نرمافزار یا کامپیوتر خدمتگزار تقاضای دریافت منابع اطلاعاتی مانند داده یا فایل می کند.
markup language یازبان علامتگذاری: کاراکترها یا کدهای موجود در متن که ساختار متن وب معنایی را مشخص می کنند.
معماری سیستم وب
کلاً از دیدگاه فنی سیستم وب در دو بخش سازماندهی می شود:
برنامه سمت سرویس دهنده ی وب و برنامه سمت مشتری وب
پایگاه اطلاعاتی توزیع شده از صفحات ابرمتن، فایل های داده مثل صدا، تصویر و بطور کل هر منبع
صفحه وب چیزی نیست مگر یک فایل متنی بسیار ساده که با یکی از زبان های نشانه گذاری ابرمتنی مثل HTML، XHTML ، DHTML یا XML تدوین می شود. کاری که مرورگر به عنوان مشتری وب انجام می دهد آن است که تقاضای دریافت یکی از صفحات یا فایل ها را در قالب قراردادی استاندارد (به نام پروتکل HTTP) به سمت سرویس دهنده ارسال کند. در سمت مقابل سرویس دهنده ی وب این تقاضا را پردازش کرده و در صورت امکان، فایل مورد نظر را برای مرورگر ارسال می کند. مرورگر پپس از دریافت فایل ابرمتنی ، آن را تفسیر کرده و به صورت صفحه آرایی شده روی خروجی نشان می دهد. اگر فایل ابرمتنی در جایی به فایل صدا یا تصویر پیوند خورده باشد آن ها نیز توسط مرورگر تقاضا شده و پس از دریافت در جای خود قرار می گیرند.
وب چگونه عمل میکند
برای مشاهده یک صفحه وب یا دیگر منابع اطلاعاتی روی تور جهان گستر معمولاً URL صفحه را در یک مرورگر وب وارد میکنیم و یا لینک ابر متن مربوط با آن صفحه یا منبع را انتخاب میکنیم. اولین گام که در پشت پرده انجام میشود اختصاص یک آدرس IP به بخش سرور URL است که توسط پایگاه داده توزیع شده اینترنت صورت میگیرد که به آن DNS میگویند.
در مرحله بعد یک درخواست HTTP به مرور وب در آن آدرس IP ارسال میشود و درخواست مشاهده صفحه ارائه میگردد. در صورتی که یک صفحه معمولی در خواست شده باشد متن HTML، تصاویر گرافیکی یا هر فایل دیگری که مربوط به آن صفحه است در اختیار مشتری (مرورگر وب) قرار میگیرد. سپس مرورگر وب صفحه HTML، و دیگر فایلهای دریافت شده را ترجمه میکند. در نهایت "صفحه" مورد نظر مشتری در اختیار وی قرار میگیرد.
در تور جهان گستر، یک برنامه مشتری که عامل کاربر نام دارد منابع اطلاعاتی مانند صفحات وب یا فایلهای کامپیوتری را با استفاده از URL از وب در خواست میکند. اگر عامل کاربر نوعی مرورگر وب باشد، اطلاعات را روی مانیتور نشان میدهد. کاربر میتواند با دنبال کردن لینکهای موجود در صفحه وب به بقیه منابع موجود روی تور جهان گستر دسترسی پیدا کند. همچنین میتوان با پرکردن فرمهای HTML و تحویل این فرمهای وب میتوان اطلاعات را بر اساس پروتکل انتقال ابرمتن به سرور وب برگرداند تا از آن ذخیره شده یا پردازش شوند. صفحات وب در کنار هم قرار گرفته و وبسایتها را می سازند. عمل دنبال کردن ابرلینک از یک وب سایت به وب سایت دیگر را "مرور وب" یا " گشت و گذار" وب مینامند.
اصطلاح "گشت و گذار در اینترنت" اولین بار توسط جین آرمور پولی که یک کتابدار بود در مقاله یا به نام "Surfing the INTERNET" مطرح شد که ژوئن سال 1992 در "بولتن کتابخانه ویلسن" در دانشگاه مینوستا چاپ شد. اگر چه پولی مستقلاً از این کلمه استفاده کرد اما در یوزنتهای مربوط به سالهای 1991 و 1992 این کلمه دیده میشود و حتی عدهای میگویند که این کلمه در مجمع هکرها در دو سال قبل از آن به صورت شفاهی عنوان شده بود. پولی در تاریخ اینترنت به مادر اینترنت معروف است.
اغلب صفحات وب شامل ابر لینکهایی هستند که به صفحات و منابع اطلاعاتی مرتبط با آنها مانند صفحات دانلود، اسناد منابع، تعاریف و غیره منتهی میشوند. چنین مجموعهای از منابع مفید و مرتبط با هم توسط لینکهای ابر متن به یکدیگر متصل شدهاند را "وب" اطلاعات مینامند. قرار دادن این مجموعه منابع روی اینترنت شبکهای را تولید کرد که در اوایل دهه 1990 توسط تیم برنرز لی، " تور جهان گستر" نامیده شد.
عملکرد برنامه ی سرویس دهنده و مشتری وب
در سمت سرویس دهنده ی وب، پروسه ای وجود دارد که دائماً به پورت شماره 80 گوش می دهد و منتظر تقاضای برقراری اتصال توسط مشتریان می ماند. دقت کنید که برنامه ی سرویس دهنده از سوکت های نوع استریم استفاده می کند و اتصال از نوع TCP است. فرامین و داده هایی که بین سرویس دهنده و مرورگر وب مبادله می شوند تماماً متنی هستند.(همانند سیستم پست الکترونیکی) پس از آنکه ،ژ\ بین برنامه ی سویس دهنده و مشتری برقرار شد برنامه ی مشتری حق دارد یک یا چندین تقاضا بفرستد و این تقاضا ها باید در قالب استاندارد HTTP باشد. سرویس دهنده، یکایک تقاضا ها را دریافت و پردازش و در صورت امکان آن ها را اجرا می کند.
کش (cache)
اگر کاربر پس از مدت زمان اندکی به سرعت به صفحه وب برگردد احتمال دارد که اطلاعات از سرور وب اصلی بازیابی نشوند. به طور پیش فرض، مرورگرهای همه منابع وب را روی هارد کامپیوتر مشتری، مخفی (کش) میکنند. مرورگر درخواست HTML را تنها در صورتی که نیاز به روزآوری دادههای قبلی وجود داشته باشد ارسال میکند. در غیر این صورت از دادههای کش استفاده میشود.
این عمل باعث کاهش ترافیک شبکه اینترنت میشود. تصمیمگیری در مورد انقضای زمان استفاده از منبع تصویر، CSS، فایل جاوا اسکریپت و همچنین HTML به صورت مستقل انجام میگیرد. بنابراین حتی در برخی از سایتهای با محتوای پویا، بسیاری از منابع اطلاعاتی اصلی فقط در هر بار مراجعه عرضه میشوند. بهتر است طراحان وب سایت همه فایلهای جاوا اسکریپت و CSS را درون تعدادی فایل سایت جمعآوری کنند تا کش های کاربران بتوانند از آنها استفاده کنند و بدین ترتیب زمان دانلود شدن صفحه و تعداد مراجعات به سرور کاهش یابد.
همچنین بخشهای دیگری از اینترنت میتوانند محتوای وب را کش (مخفی) کنند. یکی از بهترین این اجزاء دیوارهای آتش است که در شرکتها و محیطهای دانشگاهی کاربرد دارد و منابع وب درخواست شده توسط یک کاربر را برای همه کاربران کش میکند. با وجود آن که این قابلیتها در اغلب مرورگرهای وب دیده میشود طراحان صفحات وب میتوانند عناوین HTTP که توسط کاربر درخواست شده را کنترل کنند تا صفحات در مواردی که لازم نیست در کش ذخیره نشوند؛ مثلاً صفحات خبری و بانکها.
بدین ترتیب میتوانیم بین اعمال "دریافت" و "ارسال" HTTP تفاوت قائل شویم. در صورتی که همه شرایط محقق شود، دادههایی که توسط فرمان دریافت (GET) درخواست شدهاند میتوانند در کش ذخیره شوند در حالی که دادههای به دست آمده پس از ارسال (posting) اطلاعات به سرور در کش ذخیره نمیشوند.
جاوا و جاوا اسکریپت
این سیستم به سرورهای وب امکان میدهد تا برنامههای کوچکی (که اپلت (applet) نامیده میشوند) را مستقیماً در شبکه اطلاعات بازیابی شده قرار دهند و این اپلتها که در کامپیوتر کاربر اجرا میشوند تعامل کاربر با اینترنت را سرعت میبخشد. در نهایت این سیستم به عنوان ابزاری برای تولید محتویات پیچیده طرف سرور مورد استفاده قرار گرفت. شرکت سان تلاش میکرد جاوا را به عنوان یک پلاتفرم برای اپلتهای طرف مشتری مطرح کند اما به دلایلی مانند عدم وجود یکپارچگی با محتوا (اپلتها به جعبههای کوچکی محدود میشدند که درون صفحه قرار داشتند) و عملکرد ضعیف (مخصوصاً شروع با تأخیر) ماشین مجازی بر روی سختافزارهای PCهای آن زمان این امر هرگز محقق نشد.
با این وجود، جاوا اسکریپت یک زبان برنامهنویسی اسکریپتی است که برای صفحات وب طراحی شده است. نسخه استاندارد آن ECMAScript نام دارد. اگر چه نام آن شبیه جاوا است اما توسط شرکت ارتباطات نت اسکیپ (Netscape) طراحی شده است و تقریباً هیچ ارتباطی با جاوا که ساخت شرکت میکروسیستمهای سان است ندارد. تنها شباهت آن با جاوا در این است که نحوه نگارش آن از زبان برنامه نویسی C گرفته شده است. جاوا اسکریپت مانند جاوا برنامه نویسی شیءگرا است اما شبیه سی پلاس پلاس و بر خلاف جاوا امکان استفاده از کدهای درهم (مخلوط) یعنی استفاده هم زمان از زبان برنامهنویسی شیء گرا و برنامهنویسی رویهای را فراهم میآورد. جاوا اسکریپت در کنار مدل شیء سند به زبان برنامهنویسی بسیار قویای تبدیل شده که حتی طراحان آن چنین تصوری از موفقیت آن نداشتند. گاهی اوقات در مورد آن از کلمه HTML پویا (DHTML) استفاده میشود تا گذر از صفحات HTML "ایستا" بیشتر حس میشود.
(برنامهنویسی) آجاکس یک فناوری مبتنی بر جاوا اسکریپت است که تأثیر زیادی بر شکلگیری تور جهان گستر داشته است. در این روش در زمانهای لازم، تنها بخشی از صفحه وب که مورد نیاز کاربر است به روز میشود تا سرعت کاربر بالاتر برود. آجاکس یکی از جنبههای مهم وب 2.0 محسوب میشود.
تأثیر بر روابط اجتماعی
وب در دنیای امروزی تبادل اطلاعات بین افراد در سراسر جهان را بسیار ساده و آسان نموده است و این امر با این حجم وسیع هرگز در تاریخ بشر سابقه نداشته است. افرادی که در گوشه و کنار جهان قرار دارند و هزاران کیلومتر از یکدیگر فاصله میتوانند افکار خود را به راحتی مبادله کنند و یا از روحیات و خط مشی زندگی خود با دیگران صحبت کنند. تجربههای عاطفی، عقاید سیاسی، رسوم فرهنگی، ضربالمثلهای ریتمدار، پندهای تجاری، کارهای هنری، تصاویر و عکسها، قطعات ادبی بدون هیچ سرمایهگذاری از جانب کاربر به راحتی در اختیار وی قرار میگیرد. اگر چه کارایی وب به فناوری مادی آن وابسته است اطلاعات موجود روی آن به شیوه کتابخانه و یا مطبوعات به صورت فیزیکی ارائه نمیشوند. بنابراین انتشارات اطلاعات از طریق وب اینترنت به کتابها و مجلههای فیزیکی و مادی محدود نمیشود و نیاز به کپی کردن فیزیکی اطلاعات وجود ندارد. اطلاعات موجود روی وب به صورت دیجیتال ارائه میشوند و بنابراین جستجو در آنها به سرعت زیادی صورت میگیرد. که بسیار سریعتر از جستجو در کتابخانه است و حتی فردی که در اینترنت جستجو میکند نسبت به فردی که از پست نامه، تلفن، تلگراف و یا وسایل ارتباطی دیگر استفاده میکند با سرعت بیشتری اطلاعات را بازیابی میکند.
وب مهمترین ابزار تبادل اطلاعات است که در کره زمین رونق فراوانی یافته است. این قابلیت به کاربران اجازه میدهد تا با افراد و گروههای مختلفی که در سراسر جهان پراکنده هستند و در فضا و مکان متفاوتی قرار دارند ارتباط برقرار کنند و نیاز به برقراری ارتباط فیزیکی میان افراد را مرتفع میسازد.
از آنجا که وب در سراسر جهان فعال است، عدهای آن را عامل ایجاد تفاهم میان افراد ساکن در سراسر جهان میدانند. وب پتانسیل فراوانی برای ایجاد روابط اجتماعی دارد و میتواند حس نوعدوستی و درک متقابل را افزایش دهد و یا حتی باعث شو که خشونت به صورت وسیعی رواج یابد و یا رژیمهای ظالم و عوام فریب به خواستههای خود که در طول تاریخ از دستیابی به آنها عاجز بودند بترسند.
امروزه در وب انواع مختلف اطلاعات را میتوان یافت و افرادی که تمایل دارند با جوامع و فرهنگهای مختلف آشنا شدند مراجعه به وب سادهترین راه است. اگر بخواهیم به شهری دور دست سفر کنید، وب بهترین مرجع ممکن برای یافتن اطلاعات مربوط به آن شهر است مخصوصاً اگر شهر مورد نظرتان در یکی از کشورهای توسعه نیافته قرار داشته باشد. روزنامههای محلی، مطبوعات دولتی و غیره از طریق اینترنت به راحتی قابل دسترسی هستند و به همین دلیل است که کاربران اینترنت روز به روز افزایش مییابند.
انتشار صفحات وب
صفحات وب در دسترس همه رسانههای جمعی قرار دارد. برای آنکه بتوانید یک صفحه وب را "منتشر" کنید لازم نیست به سراغ یک ناشر یا مؤسسه رسانهای که در سرتاسر جهان مشاهده میشوند بروید. ابر متن، برخلاف کتاب و اسناد، دارای یک نظم خطی از ابتدا تا انتها نیست. ابر متن به بخشهای فصل، زیر فصل و عناوین که در کتابها دیده میشود تقسیمبندی نمیشود.
اگر چه برخی از وب سایتها به چند زبان عرضه میشوند بسیاری از آنها فقط به یک زبان ارائه میشوند. همه برنامههای کامپیوتری همه کاراکترهای خاص و متون دو سویه RTL را در بر نمیگیرند. این عوامل این ادعا را که تور جهان گستر، جهان را به سمت یکپارچه شدن پیش میبرد به چالش میکشد. فرصت مناسب برای انتشار اطلاعات در صفحات وب شخصی و همچنین صفحات خانوادگی تجارتهای خرد و غیره توسط خدمات رایگان میزبانی وب به اوج خود رسیده است.
سرعت در وب
نگرانی موجود در مورد ازدحام اطلاعات روی زیر ساختار اینترنت و تأخیر زیاد در دسترسی به دادهها به باعث شده است که نام World Wide Web به "World Wide Wait" تغییر کند! افزایش سرعت اینترنت مسألهای مهم در بحثهای مربوط به استفاده از همتا سازی و کیفیت خدمات (QOS) است. راه حلهای ممکن برای کاهش انتظار برای مشاهده صفحات وب در سایت W3C ارائه شده است.
راهنمای استانداردهای موجود برای پاسخ زمانی ایدهآل صفحات وب (مطابق کتاب نیلسن، چاپ 1999، صفحه 42) عبارتند از:
1/0 ثانیه (یک دهم ثانیه). زمان ایدهآل پاسخ کاربر هیچ گونه تأخیری را حس نمیکند.
1 ثانیه. حداکثر زمان قابل قبول. زمان دانلود بیش از 1 ثانیه کاربر را خسته میکند.
10 ثانیه. زمان غیر قابل قبول. کاربر خسته شده و دوست دارد سایت را ترک کند. این اعداد برای طراحی ظرفیت سرور کاربرد زیادی دارند.
www در نامهای وبسایتها
از لحاظ فنی هیچ دلیلی وجود ندارد که نام سایت حتماً با www آغاز شود و اولین سرور وب در "info.cern.ch" قرار داشت. استفاده از پیشوند www یک توافق است که بین سازمانهای ارائه دهنده خدمات وب انجام شده است تا تمامی نامهای میزبان از یک پروتکل تبعیت کنند؛ برای مثال، بسیاری از سازمانها نام سرور اصلی پروتکل گوفر خرد را به صورت gopher.wherever.edu تعریف میکنند و از پیشوندهای دیگری استفاده میکنند تا بتوان از چندین سرور وب استفاده کنند. برخی از مرورگرها به صورت خودکار www را به ابتدا و ".com" را به انتهای URL تایپ شده اضافه میکنند. در مرورگرهای اینترنت اکسپلورر و فایرفاکس موزیلا با فشردن همزمان کلیدهای ctrl و Enter پیشوند "http://www." و پسوند "com." به انتهای URL اضافه میشوند.
تلفظ "www
در زبان انگلیسی، WWW طولانیترین تلفظ ممکن تور جهان گستر است که یک سرواژه سه حرفی است که به نه سیلاب نیاز دارد. داگلاس آدامز اظهار داشت: World Wide Web تنها عبارتی است که تلفظ شکل مختصر آن سه برابر بیشتر از تلفظ خود آن طول میکشد.
نسخههای کوتاهتر عبارتنداز "triple double 'u'"، "triple dub"، "dub dub dub"، "wuh wuh wuh" و "all the 'double u's". در زبانهای دیگر "WWW" را اغلب "VVV" تلفظ میکنند. در زبان چینی، World Wide Web را به صورت wàn wéi wǎng تلفظ میکنند (به چینی: 万维网) که به معنای "شبکه ده هزار بعدی" است.
تاریخچه وب جهان گستر
تیم برنرزلی در سال ۱۹۸۹ وقتی که اولین طرح پیشنهادی و طرح خود را به موسسهٔ سرن (پروهشگاه فیزیک هستهای و انرژیهای سطح بالا) در سویس بوردر فرانسه میفرستاد؛ اینترنت را اختراع کرد.
خصوصیات نسخههای مختلف وب
وب نسخهٔ یک: مستندات (توسط پیوندها-لینکها-) به هم مرتبط شدهاند.
وب نسخهٔ دو: محتویات توسط کاربران ایجاد میشود و اطلاعات بصورت پویا تولید و رشد پیدا میکنند.
وب نسخه سه: ارتباط دادهها، ابزار، و مردم در سراسر جهان(به وقوع میپیوندد).
این اختراع مثل تمام اخترعات بنیادی وب بر پایه سه تکنولوژی اصلی شکل گرفته:
آدرس یاب یا شناسه آدرس واحد (معروف URL یا URI) منبع مستندات یا اطلاعات در وب برای پیدا کردن آن مستند در کل وب.
زبان نشانه گذاری متن هوشمند (HTML) برای ارائه محتویات صفحات وب و برقراری پیوندها(لینکها).
پرتکل انتقال متن هوشمند (HTTP) برای انتقال اطلاعات وبی در سرتاسر اینترنت.
همان اوایل کار، خیلی زود تیم برنزلی متوجه شد که وب برای موفق بودن نیاز به عامل چهارمی و آن آزاد بودن و بازبودن (دسترسیها در) وب است. این تصمیم موثر، راه را برای رسید وب به وضعیت موجود امروز باز کرد که(باعث شد اینترنت:) جهانی، باز و آزاد، سازگار با سیستمهای عامل و سخت افزارهای متفاوت، یک مجموعه مرتبط با هم، آموزشی، تجاری، سرگرم کننده، رفاه آور برای مردم شدهاست.
وب ۱٫۰
در ابتدا داستان با شبکهای از مقالات و متنها شروع شد.
و مطمئناً در سال ۱۹۹۸ ارائه شدن گوگل با پیشنهاد الگوریتم جدید، بواسطه سادگی و توانایی خود در جستجو در اینترنت، بهبودی و پیشرفت قابل توجهی برای وب بود. موتور جستجوی گوگل انتظارات بعدی مصرف کنندگان که به دنبال پیدا کردن اطلاعات، محصولات و سرویسها و دیگر مردم بودند را بالا برد. همچنین گوگل سطح پذیرش راهبرد تجارت پیچیده تر و برنامه فروش آنلاین برای شرکتها را ارتقا داد(با این بهانه) که بتوانند رتبه خود را در گوگل بیشتر کنند (تا در اولین نتایج جستجوی گوگل قرار گیرند). این کار گوگل انقلاب جدیدی در بوجود آمدن کسب و کارهای آنلاین (حاضر در همه جا و همه وقت) و مدلهای جدید تبلیغات و همچنین بازارهای جدید را باعث شد.
بدین ترتیب وبلاگها دارای شخصیتی خواص برای خود شدند که این شخصیت را مستقیماً از مولف خود به ارث میبرند (شما با مطالعه دفترچه خاطرات شخصی هر فرد میتوانید با ابعاد متفاوت شخصیتی وی نیز تا اندازهای مه امکان دارد آشنا شوید
وب ۲٫۰
این اتفاقات ما را به وب ۲٫۰ رساند. در حالی که تجارتها و کسب و کارها داشتند از روشهای قبل به روشهای جدید وب مهاجرت میکردند یک نسل جدیدی از کاربران و برنامه نویسان وب شروع به همکاری فعالی کردند. در سال ۲۰۰۴ تیم اوریلی وب ۲٫۰ را با عنوان انقلاب تجارت در صنعت کامپیوتر بوسیله مهاجرت به روی بستر وب" را (به جهان)معرفی کرد. اصل قضیه وب ۲٫۰ این است که کاربرانی مثل خود مصرف کنندگان محتویات را ایجاد میکنند. و به این ترتیب اطلاعات خیلی پویاتر از اطلاعات در وب ۱٫۰ میباشد.
جامعه ویکیپدیا مفهوم همکاری و خرد جمعی جوامع مردمی وب ۲٫۰ را ارتقا داد. ویکیپدیا وب ۲٫۰ را اینگونه تعریف میکند:«عنوانی که روند استفاده از وب جهانگستر (www)و تکنولوژیها و طراحیهای آن که هدفش رسیدن به افزایش خلاقیت، اشتراک گذاشتن اطلاعات و مهمتر از همه همکاری کاربران است را توصیف میکند.».
(در محدوده وب ۲٫۰) شرکتها باید تصمیم بگیرند که برای کارشان وبلاگ بسازند یا نسازند!، و اینکه به هر حال میخواهند نظر مشتریانشان در مورد محصولاتشان را به دیگران نشان بدهند یا خیر. شرکتها به سمت و سوی فعال سازی و کاربردی تر کردن نظرات مشتریانشان در کسب و کارشان هستند، تا بتوانند نیازمندیهای مشتریانشان و توقعات نحوه تعامل خرید و فروششان را بهتر برآورده سازند.
یوتیوب خیلی خوب به تعریف همکاری اجتماعات در وب ۲٫۰ کمک کرد. در آوریل ۲۰۰۸ موتور جستجوی یوتیوب ۸۰ میلیون پاسخ ارائه کرده که حدود ۴ میلیون از آنها کانالهای ایجاد شده توسط کاربران است.
به گفته شرکت بینالمللی اطلاعات(IDC)، ویدئوهای تولید شده توسط کاربران و آپلود شده در روز در تمام سایتهای فیلم بیش از ۵۰۰ هزار قطعه فیلم در سال ۲۰۰۷ بوده و در چهار سال بعد از آن به حدود ۵ میلیون (ویدئو در روز)خواهد شد.
چیزهای شگفت انگیزی در اینترنت اتفاق افتادهاست. به هر حال در موارد متعددی وب ۲٫۰ باز هم بصورت محدوده بستهای (به حساب میآید)، که در آن معمولاً پیوند دادنها داخل آن (برای نگه داشتن مصرف کنندگان و مشتریان)ساده نیست و هنوز در خارج از سایت مربوطه یا بین چند سایت مختلف باید صورت گیرد و بعضی اوقات نیر استفاده اختصاصی از راه حلها و ضمیههای بعد مانع همکاری و ارتباط میشود.
وب ۳٫۰
اگر نخواهیم بگوییم انقلاب، تحول بعدی در وب ارتباط سخت افزار(مثل موبایل، لپ تاپ، و سایر دستگاههای سخت افزاری)به اینترنت بود. راه جدیدی برای یکپارچه سازی و هموار کردن راههای بدست آوردن اطلاعات و دید جدیدی که قبلاً اصلاً امکان پذیر نبود. و راه جدیدی برای ارتباط به اینترنت از طریق دستگهای متنوعی که قابلیت و توانایی پیداکردن و تجزیه و تحلیل و شسته رفته کردن اطلاعات را دارند.
کنسرسیوم وب جهانگستر (w۳c)تکنولوژیهای جدیدی را برای به وقوع پیوستن وب ۳٫۰ استاندارد سازی کرد. که شامل عناوین: وب مفهومی، ویدئو روی وب، وب سیار و همراه و وب در همه جا و تمام شرایط میباشند.
وب مفهومی
وب مفهومی چارچوبی مشترک مبتنی بر آدرسهای اینترنتی بوجود آورد که اجازه میدهد در سرتاسر برنامهها، برنامههای بزرگ و محدودههای اجتماعی، اطلاعات به همدیگر مرتبط شوند، به اشتراک گذاشته شوند و قابلیت استفاده مجدد پیدا کنند. با استفاده از تکنولوژیهای کنسرسیوم جهانگستر(w۳c) در وب مفهومی افراد یا دستگاها میتوانند با استفاده از یک نمونه از اطلاعات از یک مجموعه به مجموعه بی انتهایی از اطلاعات مرتبط به آن مطلب که در پایگاهای اطلاعاتی سرتاسر جهان دستیابی کند. این پایگاها از طریق شبکه سخت افزاری و کابل کشی به هم مرتبط نشدهاند بلکه این اطلاعات پراکنده در مناطق مختلف جغرافیایی بوسیله پارامترهای مشترکی مانند: یک شخص خاص، یک مکان خاص، یک ایده و نظریه خاص، یک مفهوم خاص و.... به هم پیوند داه میشوند.
اهداف اصلی وب مفهومی
وب مفهومی، شبکهای از اطلاعات به هم مرتبط است. خیلی از اطلاعاتی که در طول روز آنها را از اینترنت استفاده میکنیم در یک جا نیستند. برای مثال شما صورتحساب بانکی خود را در اینترنت در سایت بانک مربوطه و عکسهای خود را در آلبوم اینترنتی در سایتی دیگر و قرار ملاقاتهای خود را باز در جایی دیگر میبینید. اما آیا میتوانید عکسهای خودتان را در تقویم خودتان ببینید و بفهمید کی آن عکس را گرفتهاید و در آن وقت چه میکردید؟ آیا میتوانید گزارشهای بانکی خود را در تقویم خود ببینید؟ چرا نه؟! چون شبکهای ازاطلاعات به هم مرتبط شده ندارید. چون هرکدام از اطلاعات شما بوسیله برنامهای خاص کنترل میشوند و در سایت خاصی نگهداری میشوند.
دیدگاه وب مفهومی این است که مبانی وب را از تکیه بر مستندات و فایلها به پایه ریزی بر اساس اطلاعات گسترش دهیم. اطلاعات یک مطلب باید بتوانند به مستندات مورد استفاده در معماری عمومی وب دسترسی داشته باشند، مثلاً آدرسهای اینترنتی باید قابلیت اتصال به مستند دیگر یا قسمت از آن را که در رابطه با همین موضوع است در حال حاضر ارتباط داشته باشند. این یعنی اینکه ایجاد یک چارچوب مشترکی که اجازه بدهد اطلاعات قابلیت اشتراک گذاری و استفاده مجدد در سرتاسر برنامهها، برنامههای خیلی بزرگ و محدودههای ارتباطی و اجتماعی بصورت اتوماتیک و خودکار با کیفیت و درستی ابزارهای دستی، که شامل قابلیت ایجاد ارتباطات جدید و قابل نمایش در میان اطلاعات باشد.
فضای مجازی مجتمع یا مجتمع فضای مجازی (محاسبات ابری-رایانش ابری)
مجتمع فضای مجازی یا فضای مجازی مجتمع چیست؟
تصورکنید کامپیوتر و تمام دستگاههای قابل حملتان (مثل موبایل و لپ تاپ و کتاب خوان و...) در تمام اوقات با هم همسان سازی شده باشند(sync سنکرون باشند). تصورکنید هر وقت که اراده کردید به تمام اطلاعات شخصی خودتان دسترسی پیدا کنید. تصورت کنید توانایی دسته بندی و سازماندهی و جستجوی تمام اطلاعاتتان را روی اینترنت داشته باشید. تصور کنید که بتوانید تمام اطلاعات خود را از قبیل عکس، فیلم، مطلب، ایمیل، فایلها و مدارک، و... را برای دوستان، فامیل، همکاران بصورت فوری به اشتراک بگذارید. همه اینها وعدهای مجتمع فضای مجازی شخصی است.
این مطلب را درک و باور کنید یا نه، به هر حال احتمالاً همین الآن در حال استفاده از یک سرویس مبتنی بر فضای مجازی مجتمع هستید. و تقریباً همه کسانی که با کامپیوتر کار میکنند. gmail و google docs دو نمونه اولیه از مجتمع فضای مجازی هستند که ما حتی فکرش را هم نمیکردیم که بر پایه همین نوع سرویس باشند.
بطور خلاصه، فضای مجازی مجتمع شخصی به این معنی است که: همه بخشهای اطلاعاتی که در طول زندگی و راجع به هرجنبه از زندگیتان در هروقت که نیاز داشته باشید دم دست شما و آماده برای استفاده شما هستند. اطلاعات باید سیار و همراه، قابل انتقال و در هر لحظه قابل دستیابی باشد. شاه کلید امکان پذیر شدن، قابلیت حمل و تعاملی شدن اطلاعاتتان همسان و به روز بودن اطلاعات شما در میان دستگاهها مورد استفاده شما(مانند لپ تاپ، موبایل و...)مثل اطلاعات به اشتراک گذاشته شده باشند. اطلاعات به اشتراک گذاشته شده، اطلاعاتی هستند که در هرجاکه اراده کنیم به آنها دسترسی پیدا میکنیم، مثل هر شبکههای اجتماعی مجازی، بانکها، وبلاگها، اتاقهای خبری، اجتماعات اقتصادی و غیره. نهایتاً، فضای مجازی مجمتمع شخصی که شامل همه اطلاعاتتان از دفترچه تلفن و آدرسهایتان گرفته تا کلکسیون آهنگها و صداها و مدارک و گزارشهای کاری و اقتصادی و.... به فضای مجازی مجتمع عمومی و فضای مجازی مجتمع دیگران متصل خواهد شد. همه چیز به هم متصل خواهد شد. این یعنی اینکه در هر جای اینترنت که با آن سرو کله دارید، مانند کار کردن با افراد دیگر، میتوانید به آن اطلاعات مورد نظرتان اتصال برقرار کنید. این قضیه شامل، شبکههای اجتماعی، بانکها، دانشگاهها، محلهای کاری، فامیل و دوستان خودتان هم میشود. مطمئناً، شما خواهید توانست که چه قسمتی از اطلاعات شما عمومی و چه قسمتی بصورت خصوصی بماند. دستهای از فضای مجازی مجتمع شخصی، شکل جدیدی از شبکههای اجتماعی مجازی را شکل خواهند داد که تنظیمات حریم شخصی بیشتری از امثال فیس بوک خواهند داشت، و ویژه تر خواهند شد اگر این دسته بندیها فامیل محور یا تجارت گرا باشند.(حریم شخصی مسئله بزرگ آمار جرم در فضای مجازی مجتمع افراد خواهد شد). سرانجام، ابزارها ودستگاههای شما(در فضای مجازی مجتمع)، درباره شما یاد می گیرند و می فهمند شما چه کار میکنید، به کجا میروید و قصد انجام چه کاری را دارید و قتی شما به سراغ آنها میروید. ممکنه این نظرات شبیه داستانهای علمی تخیلی به نظر برسد، اما مطمئناً ما را به سمتی فضای مجازی مجتمع سوق خواهد داد. هرچند هنوز کاملاً وجود ندارد. ما در حال ایجاد فضای مجازی مجتمع شخصیمان هستیم.
فضای مجازی مجتمع شخصی شما
فضای مجازی مجتمع شخصی راهی برای ارتباط تجربههای کاربران، همگرایی(و متمرکزشدن و یکی شدن) تکنولوژها با دستگاهها و سخت افزارهایی که از سیستم عاملهای مشابهی استفاده میکنند، شبکههای به هم مرتبط (مانندشبکههای رادیویی)است. اما با وجود همگرایی تکنولوژیها، سخت افزارها به سمت تنوع و واگرایی بیشتر میل میکنند. چالش بعدی این است که بفهمیم چگونه در سرتاسر این تنوع دستگاهها بصورت مستمر ارتباط برقرار کنیم. مجتمع سازی(محاسبات ابری) امروزی در میان کل تولیدات یک شرکت بخصوص بصورت خیلی خوبی سنکرون اطلاعات(همسان سازی و همزمان سازی)و مطالب صورت گرفتهاست. با پیش زمینه فضای مجازی مجتمع شخصی، مصرف کنندگان میتوانند پخش کنند: آهنگ، تصاویر، محصولات و چیزهای خیلی زیادتری از هر مطلبی که امکان دسترسی به آن را دارند و از هر دستگاه سخت افزاری که دارند و هرجا که اتفاق میافتد، را داشته باشند.
سرویسهای «فضای مجازی مجتمع»از چه چیزیهای تشکیل میشوند
راه تولید کنندگان و تحلیل گران نشان میدهد که فضای مجازی مجتمع در تمام نقاط جهان بصورت پراکندهاست. برخی از ابهامات در جو تجارت و برخی در هنگام مشخص شدن برخی اشکالات فنی است. وقتی (الکی)به هرچیزی برچسب فضای مجازی مجتمع بچسبانند، این اصطلاح معنی خودش را از دست میدهد و به عبارت دیگر لوث میشود.
شرکت بینالمللی اطلاعات کامپیوتر(IDC) با لیست دم دستی بدرد بخوری آمده تا تعیین کند چه چیزهای را میشود برچسب فضای مجازی مجتمع زد و چه چیزهای را نه؟!
مشخصات کلیدی سرویسهای «فضای مجازی مجتمع
اطلاعات بوسیله شخص ثالث، خارج از محدوده سایت ایجاد شده باشد.
بوسیله اینترنت قابلیت دسترسی داشته باشد.
حداقل یا هیچ فرد ماهر در زمینه فناوری اطلاعات برای پیاده سازی آن نباشد.
تامین کننده باشد: یعنی خودش تامین کننده نیازهای درخواستها باشد، تقریباً همزمان استقرار پیدا کند(همزمان در اینترنت و دستگاههای متصل به آن، لپ تاپ و پخش کنندهها و کامپیوتر هیا شخصی و...)، بصورت پویا و خوب دسته بندی شود
مدل قیمت گذاری داشته باشد: بصورت خوب دسته بندی شود، کاربردی باشد(مبتنی براستفاده کاربر باشد)(حداقل قابلیت انتخاب داشته باشد).
رابط کاربر خوب داشته باشد(قابلیت نمایش در مرورگر و جانشین داشته باشد. به قول معروف Userfriendly باشد).
رابط سیستم داشته باشد: توابع کتابخانهای وب سرویسی داشته باشد.
قابلیت اشتراک گذاری منابع یا نسخههای مشترک را داشته باشد(قابلیت سفارشی کردن در حیطه سرویسهای اشتراک گذاری).
خط مشی جاوا
یکی از ویژگیهای جاوا قابل حمل بودن آن است. یعنی برنامهٔ نوشته شده به زبان جاوا باید به طور مشابهی در کامپیوترهای مختلف با سختافزارهای متفاوت اجرا شود. و باید این توانایی را داشته باشد که برنامه یک بار نوشته شود، یک بار کامپایل شود و در همه کامپیوترها اجرا گردد. به این صورت که کد کامپایل شدهٔ جاوا را ذخیره میکند، اما نه بهصورت کد ماشین بلکه بهصورت بایتکد جاوا. دستورالعملها شبیه کد ماشین هستند، اما با ماشینهای مجازی که به طور خاص برای سختافزارهای مختلف نوشته شدهاند، اجرا میشوند. در نهایت کاربر از سکوی جاوا نصب شده روی ماشین خود یا مرورگر وب استفاده میکند. کتابخانههای استاندارد یک راه عمومی برای دسترسی به ویژگیهای خاص فراهم میکنند. مانند گرافیک، نخکشی و شبکه. در بعضی از نسخههای ماشین مجازی جاوا، بایتکدها میتوانند قبل و در زمان اجرای برنامه به کدهای محلی کامپایل شوند. فایدهٔ اصلی استفاده از بایتکد، قسمت کردن است. اما ترجمهٔ کلی یعنی برنامههای ترجمه شده تقریباً همیشه کندتر از برنامههای کامپایل شدهٔ محلی اجرا میشوند. این شکاف میتواند با چند تکنیک خوشبینانه که در کاربردهای 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 نمایش داده میشود.