وضعيت جاوا چگونه است:
جاوا يكي ديگر از تكنولوژيهاي عمده ايجاد محتويات فعال در اينترنت است.
اپلت هاي جاوا كه توسط كاوشگر بارها و بارها اجرا مي شوند،داراي بسياري از قابليت هاي Activex هستند. اپلت هاي جاوا براي جلوگيري از اقدامات خرابكارانه ،فاقد توانايي هاي خاص (از قبيل دسترسي به سيستم فايلsystemfile هستند و اين انها را بسيار محدود كرده است. از نظر تئوري ،اپلت هاي جاوا ايمن هستند چون اساساً نمي توانند كارهاي خطرناك انجام دهند.
همهجا راجع به فناوري جاوا صحبت ميشود، اما واقعا فناوري جاوا چيست؟
درباره فناوري جاوا:
فناورى جاوا هم يك زبان برنامهنويسي است و هم يك Platform
زبان برنامهنويسي جاوا:
زبان برنامهنويسي جاوا، يك زبان سطح بالا است كه با عبارات زير توصيف ميگردد :
·ساده
·خنثی درباره معماری (عدم وابسته به سخت افزار و سيستم عامل)Architecture netural
·شىء گرا
·قابل انتقال (Portable)
·توزيعشده (Distributed)
·كارايى بالا
·ترجمه شده (Interpreted)
·Multithreaded
·محكم (Robust)
·پويا
·ايمن (Secure)
در بيشتر زبانهاى برنامهنويسى، شما برنامه را براى اجرا بر روى كامپيوتر، ترجمه (Interpret) يا تفسير (Compile) مىكنيد.
زبان برنامهنويسى جاوا غيرمعمول است، يك برنامه هم ترجمه و هم تفسير مىشود. با استفاده از كامپايلر، شما ابتدا برنامه را به يك زبان ميانى با نام كدبايتى جاوا (Java bytecodes)، كدهاى مستقل از محيط، ترجمه شونده بوسيله مترجم (Interpreter) در يك محيط جاوا، تفسير مىكنيد. مترجم، هر دستور كدبايتى جاوا را پارس(تجزيه) كرده و آن را روى كامپيوتر اجرا مىكند. عمل تفسير فقط يك بار انجاممىشود. عمل ترجمه در هر بار اجراي برنامه اتفاق مىافتد.
مىتوان كدبايتى جاوا را مانند دستورات زبان ماشين براى ماشين مجازى جاوا
Java Virtual Machine : Java VM
در نظر گرفت. هر مترجم جاوا، خواه يك ابزار توليد و توسعه، خواه يك مرورگر وب كه بتواند اپلتها (Applet) را اجرا كند، يك پيادهسازى از ماشين مجازى جاوا است.
كدبايتى جاوا، "يك بار بنويس، همه جا اجرا كن" را ممكن مىسازد. شما مىتوانيد برنامهتان را در هر محيطى كه بتواند يك مفسر جاوا داشتهباشد، به كدبايتى تفسير كنيد. پس از آن، كدبايتى مىتواند در هر پيادهسازى از ماشين مجازى جاوا اجرا شود. اين بدان معنى است كه، اگر كامپيوتر، ماشين مجازى جاوا داشته باشد، همان برنامهاى كه در زبان برنامهنويسى جاوا نوشتهشدهباشد، مىتواند بر روى ويندوز 2000، ايستگاه كارى Solaris و يا بر روى يك iMac اجرا گردد.
محيط جاوا (Java Platform)يك Platform، محيطى سختافزارى يا نرمافزارى است كه در آن يك برنامه اجرا مىگردد. مهمترين اين محيطها شامل ويندوز 2000، لينوكس (Linux) و Solaris و MacOS است. بيشتر محيطها مىتوانند بصورت تركيبى از سيستمعامل و سختافزار توصيفشوند. محيط جاوا از بقيه محيطها متمايز است، زيرا فقط شامل محيطى مبتنى بر نرمافزار است كه بر روى بقيه محيطهاى مبتنى بر سختافزار اجرا مىشود.
محيط جاوا دو جزء دارد :
- ماشين مجازى جاوا
- ميانجى برنامهنويسى كاربردى جاوا (Java API)
درباره ماشين مجازى جاوا در بالا صحبت شد : اساسى براى محيط جاوا كه بر روى محيطهاى مبتنى بر سختافزار منتقلشدهاست.
Java API مجموعه بزرگى از اجزا ساختهشده نرمافزارى است كه توانايىهاى مفيد زيادى مانند اجزاء و ابزارهاى ميانجى گرافيكى كاربر را فراهم مىآورد. Java API به كتابخانههايى از كلاسها و ميانجىهاى مرتبط با نام Package گروهبندى شدهاست. بخش «فناورى جاوا چه كارى مىتواند انجام دهد؟»، قابليت استفاده بعضى از Packageهاى Java API را نشان مىدهد.
شكل زير برنامهاى كه در محيط جاوا اجرا مىشود را نشان مىدهد. Java API و ماشين مجازي، برنامه را از سختافزار مجزا ميكنند.
كد محلى، كدى است كه پس از تفسير، بر روى يك محيط سختافزارى خاص اجرا شود. بدليل مستقل از محيط بودن، محيط جاوا كمى كندتر از كد محلى است. اما مفسرين زيرك، مترجمينی که خوب تنظيمشوند و کمپايلرهای با توانايی کمپايل در زمان اجرا (just-in-time bytecode compilers) مىتوانند كارايى نزديك به كد محلى را بدون مخاطرهانداختن امكان انتقال، ايجادكنند.
فناوري جاوا چه كاري مي تواند انجام دهد؟
معمولترين نوع برنامههايي كه در زبان برنامهنويسي جاوا نوشتهشدهاست، اپلتها (Applet) و برنامههاي كاربردي هستند. اگر شما در اينترنت گردش كردهباشيد، احتمالا با اپلتها آشنا هستيد. يك اپلت، برنامهاي است كه با قراردادهايي همراهشدهاست كه به آن اجازه اجرا در يك مرورگر با قابليت جاوا را ميدهد.
اما زبان برنامهنويسي جاوا فقط براي نوشتن اپلتهاي جذاب و سرگرم كننده در وب نيست. زبان برنامهنويسي همه منظوره و سطح بالاي جاوا يك Platform نرمافزاري قدرتمند است. با استفاده از APIهاي فراوان، شما ميتوانيد انواع برنامهها را بنويسيد.
يك برنامه كاربردي، يك برنامه مستقل است كه مستقيما بر روي يك Platform جاوا اجرا ميشود. يك نوع خاص از برنامه كاربردي با نام سرور، Clientهاي شبكه را سرويسدهي و پشتيباني ميكند. مثالهايي از سرورها شامل : وب سرور، Proxy سرور، سرويسدهنده پست الكترونيك و Print سرور هستند. برنامه خاص ديگر، Servlet است. يك Servlet ميتواند تقريبا به عنوان يك اپلت كه در سمت سرور اجرا ميشود، در نظر گرفته شود. Java Servletها معمولترين انتخاب براي ساخت برنامههاي كاربردي فعل و انفعالي هستند كه بجاي CGI Scriptها استفادهميشوند. اما Servletها بجاي اجرا بر روي مرورگرها، در وب سرورهاي جاوا، براي پيكربندي و يا انجام يك درخواست، اجرا ميشوند.
APIها چگونه همه اين انواع برنامهها را پشتيبانيميكنند؟ اين كار توسط Packageهاي نرمافزاري كه محدوده وسيعي از وظايف را فراهمميآورند، انجام ميشود. هر پيادهسازي كامل از Platform جاوا، ويژگيهاي زير را ارايهميكند :
اصول و مباني : اشياء، رشتهها، Threadها، اعداد، ورودي و خروجي، ساختارهاي داده، مشخصات سيستم، تاريخ و زمان و ...
اپلتها : قراردادهاي خاص استفادهشده توسط اپلتها
شبكهسازي : URLها، TCP (Transmission Control Protocol)، UDP (User Datagram Protocol)، Socketها، آدرسهاي IP (Internet Protocol)
بينالمللي سازي : ارايه كمك براي نوشتن برنامههايي كه بتوانند براي كاربران سراسر دنيا محلي (Localized) شوند. برنامهها ميتوانند بصورت خودكار با يك محل خاص سازگار شوند و با زبان مناسب نمايش دادهشوند.
امنيت : هم سطح بالا و هم سطح پايين، شامل امضاي الكترونيكي، مديريت كليد عمومي و كليد خصوصي، كنترل دسترسي و گواهينامهها.
اجزاي نرمافزاري : با نام JavaBeans كه ميتوانند به معماري اجزاي موجود متصل شوند.
سريال سازي اشيا : اجازه ضبط دائم (persistence ) با حافظه فرعی كم و ارتباط اشياء توسط صدازدن از راه دور RMI (Remote Method Invokation) ميدهد.
ارتباط پايگاهدادهاي جاوا (JDBC) : ارايه دسترسي يكنواخت به محدوده وسيعي از پايگاههاي داده رابطهاي
Platform جاوا همچنين APIهايي براي گرافيك دو بعدي و سه بعدي، توانايي دسترسي، سرورها، collaboration،سرويس تلفني، صحبت، تصاوير متحرك و ... دارد
JRE (Java 2 Runtime Environment) شامل ماشين مجازي، كلاسهاي هستهاي Platform جاوا و فايلهاي پشتيبان است. Java 2 SDK، شامل JRE و ابزارهاي توليد و توسعه مانند كامپايلرها و debuggerها است.
فناوري جاوا چگونه زندگي را تغيير ميدهد؟
با يادگيري زبان برنامهنويسي جاوا قول شهرت، خوشبختي و يا حتي يك شغل دادهنميشود. اما احتمالا زبان برنامهنويسي جاوا، برنامههاي شما را بهتر كرده و نياز به تلاش كمتري نسبت به ساير زبانها دارد. فناوري جاوا در موارد زير به شما كمك خواهد كرد :
شروع سريع : اگر چه زبان برنامهنويسي جاوا، يك زبان شيءگراي قدرتمند است، اما براي يادگيري، بسيار آسان است، مخصوصا براي برنامهنويساني كه با C و C++ آشنا هستند.
كدنويسي كمتر : مقايسه اندازهاي برنامهها ( تعداد كلاسها، تعداد متدها و ... )، نشانميدهد كه يك برنامه نوشتهشده در زبان برنامهنويسي جاوا ميتواند يكچهارم همان برنامه در زبان C++ باشد.
كدنويسي بهتر : زبان برنامهنويسي جاوا، به تمرينات كدنويسي خوب تشويق ميكند و بخش جمعآوري آشغال (garbage collection) آن به جلوگيري از هدررفتن حافظه كمكميكند. شيءگرايي آن، معماري اجزا JavaBean و APIهاي فراوان و با سهولت گسترش، اجازه استفاده مجدد از كدهاي تست شده ديگران و مواجهه كمتر با اشكالات را باعث ميشود.
ساخت سريعتر برنامهها : زمان ساخت ممكن است دو برابر سريعتر از نوشتن همان برنامه در C++ باشد. زيرا شما خطوط كمتري برنامه مينويسيد و همچنين جاوا نسبت به C++ زبان برنامهنويسي سادهتري است.
دوري از وابستگي به Platform با 100% جاوا خالص : شما ميتوانيد برنامهتان را بصورت قابل انتقال توسط عدم استفاده از كتابخانههاي نوشتهشده در ساير زبانها حفظ كنيد.
يك بار بنويس، همه جا اجرا كن : به دليل اينكه برنامههاي 100% جاوا به كدبايتهاي مستقل از ماشين تفسير ميشوند، بطور سازگار بر روي هر Platform اجرا ميشوند.
توزيع آسانتر نرمافزار : شما ميتوانيد اپلتها را از يك سرور مركزي بهروز كنيد. اپلتها مزيت، بارگذاري كلاسهاي جديد بصورت "on the fly" را به همراه دارند، بدون اينكه نياز به كامپايل مجدد همه برنامه باشد.
اپلت هاي جاوا كه توسط كاوشگر بارها و بارها اجرا مي شوند،داراي بسياري از قابليت هاي Activex هستند. اپلت هاي جاوا براي جلوگيري از اقدامات خرابكارانه ،فاقد توانايي هاي خاص (از قبيل دسترسي به سيستم فايلsystemfile هستند و اين انها را بسيار محدود كرده است. از نظر تئوري ،اپلت هاي جاوا ايمن هستند چون اساساً نمي توانند كارهاي خطرناك انجام دهند.
همهجا راجع به فناوري جاوا صحبت ميشود، اما واقعا فناوري جاوا چيست؟
درباره فناوري جاوا:
فناورى جاوا هم يك زبان برنامهنويسي است و هم يك Platform
زبان برنامهنويسي جاوا:
زبان برنامهنويسي جاوا، يك زبان سطح بالا است كه با عبارات زير توصيف ميگردد :
·ساده
·خنثی درباره معماری (عدم وابسته به سخت افزار و سيستم عامل)Architecture netural
·شىء گرا
·قابل انتقال (Portable)
·توزيعشده (Distributed)
·كارايى بالا
·ترجمه شده (Interpreted)
·Multithreaded
·محكم (Robust)
·پويا
·ايمن (Secure)
در بيشتر زبانهاى برنامهنويسى، شما برنامه را براى اجرا بر روى كامپيوتر، ترجمه (Interpret) يا تفسير (Compile) مىكنيد.
زبان برنامهنويسى جاوا غيرمعمول است، يك برنامه هم ترجمه و هم تفسير مىشود. با استفاده از كامپايلر، شما ابتدا برنامه را به يك زبان ميانى با نام كدبايتى جاوا (Java bytecodes)، كدهاى مستقل از محيط، ترجمه شونده بوسيله مترجم (Interpreter) در يك محيط جاوا، تفسير مىكنيد. مترجم، هر دستور كدبايتى جاوا را پارس(تجزيه) كرده و آن را روى كامپيوتر اجرا مىكند. عمل تفسير فقط يك بار انجاممىشود. عمل ترجمه در هر بار اجراي برنامه اتفاق مىافتد.
مىتوان كدبايتى جاوا را مانند دستورات زبان ماشين براى ماشين مجازى جاوا
Java Virtual Machine : Java VM
در نظر گرفت. هر مترجم جاوا، خواه يك ابزار توليد و توسعه، خواه يك مرورگر وب كه بتواند اپلتها (Applet) را اجرا كند، يك پيادهسازى از ماشين مجازى جاوا است.
كدبايتى جاوا، "يك بار بنويس، همه جا اجرا كن" را ممكن مىسازد. شما مىتوانيد برنامهتان را در هر محيطى كه بتواند يك مفسر جاوا داشتهباشد، به كدبايتى تفسير كنيد. پس از آن، كدبايتى مىتواند در هر پيادهسازى از ماشين مجازى جاوا اجرا شود. اين بدان معنى است كه، اگر كامپيوتر، ماشين مجازى جاوا داشته باشد، همان برنامهاى كه در زبان برنامهنويسى جاوا نوشتهشدهباشد، مىتواند بر روى ويندوز 2000، ايستگاه كارى Solaris و يا بر روى يك iMac اجرا گردد.
محيط جاوا (Java Platform)يك Platform، محيطى سختافزارى يا نرمافزارى است كه در آن يك برنامه اجرا مىگردد. مهمترين اين محيطها شامل ويندوز 2000، لينوكس (Linux) و Solaris و MacOS است. بيشتر محيطها مىتوانند بصورت تركيبى از سيستمعامل و سختافزار توصيفشوند. محيط جاوا از بقيه محيطها متمايز است، زيرا فقط شامل محيطى مبتنى بر نرمافزار است كه بر روى بقيه محيطهاى مبتنى بر سختافزار اجرا مىشود.
محيط جاوا دو جزء دارد :
- ماشين مجازى جاوا
- ميانجى برنامهنويسى كاربردى جاوا (Java API)
درباره ماشين مجازى جاوا در بالا صحبت شد : اساسى براى محيط جاوا كه بر روى محيطهاى مبتنى بر سختافزار منتقلشدهاست.
Java API مجموعه بزرگى از اجزا ساختهشده نرمافزارى است كه توانايىهاى مفيد زيادى مانند اجزاء و ابزارهاى ميانجى گرافيكى كاربر را فراهم مىآورد. Java API به كتابخانههايى از كلاسها و ميانجىهاى مرتبط با نام Package گروهبندى شدهاست. بخش «فناورى جاوا چه كارى مىتواند انجام دهد؟»، قابليت استفاده بعضى از Packageهاى Java API را نشان مىدهد.
شكل زير برنامهاى كه در محيط جاوا اجرا مىشود را نشان مىدهد. Java API و ماشين مجازي، برنامه را از سختافزار مجزا ميكنند.
كد محلى، كدى است كه پس از تفسير، بر روى يك محيط سختافزارى خاص اجرا شود. بدليل مستقل از محيط بودن، محيط جاوا كمى كندتر از كد محلى است. اما مفسرين زيرك، مترجمينی که خوب تنظيمشوند و کمپايلرهای با توانايی کمپايل در زمان اجرا (just-in-time bytecode compilers) مىتوانند كارايى نزديك به كد محلى را بدون مخاطرهانداختن امكان انتقال، ايجادكنند.
فناوري جاوا چه كاري مي تواند انجام دهد؟
معمولترين نوع برنامههايي كه در زبان برنامهنويسي جاوا نوشتهشدهاست، اپلتها (Applet) و برنامههاي كاربردي هستند. اگر شما در اينترنت گردش كردهباشيد، احتمالا با اپلتها آشنا هستيد. يك اپلت، برنامهاي است كه با قراردادهايي همراهشدهاست كه به آن اجازه اجرا در يك مرورگر با قابليت جاوا را ميدهد.
اما زبان برنامهنويسي جاوا فقط براي نوشتن اپلتهاي جذاب و سرگرم كننده در وب نيست. زبان برنامهنويسي همه منظوره و سطح بالاي جاوا يك Platform نرمافزاري قدرتمند است. با استفاده از APIهاي فراوان، شما ميتوانيد انواع برنامهها را بنويسيد.
يك برنامه كاربردي، يك برنامه مستقل است كه مستقيما بر روي يك Platform جاوا اجرا ميشود. يك نوع خاص از برنامه كاربردي با نام سرور، Clientهاي شبكه را سرويسدهي و پشتيباني ميكند. مثالهايي از سرورها شامل : وب سرور، Proxy سرور، سرويسدهنده پست الكترونيك و Print سرور هستند. برنامه خاص ديگر، Servlet است. يك Servlet ميتواند تقريبا به عنوان يك اپلت كه در سمت سرور اجرا ميشود، در نظر گرفته شود. Java Servletها معمولترين انتخاب براي ساخت برنامههاي كاربردي فعل و انفعالي هستند كه بجاي CGI Scriptها استفادهميشوند. اما Servletها بجاي اجرا بر روي مرورگرها، در وب سرورهاي جاوا، براي پيكربندي و يا انجام يك درخواست، اجرا ميشوند.
APIها چگونه همه اين انواع برنامهها را پشتيبانيميكنند؟ اين كار توسط Packageهاي نرمافزاري كه محدوده وسيعي از وظايف را فراهمميآورند، انجام ميشود. هر پيادهسازي كامل از Platform جاوا، ويژگيهاي زير را ارايهميكند :
اصول و مباني : اشياء، رشتهها، Threadها، اعداد، ورودي و خروجي، ساختارهاي داده، مشخصات سيستم، تاريخ و زمان و ...
اپلتها : قراردادهاي خاص استفادهشده توسط اپلتها
شبكهسازي : URLها، TCP (Transmission Control Protocol)، UDP (User Datagram Protocol)، Socketها، آدرسهاي IP (Internet Protocol)
بينالمللي سازي : ارايه كمك براي نوشتن برنامههايي كه بتوانند براي كاربران سراسر دنيا محلي (Localized) شوند. برنامهها ميتوانند بصورت خودكار با يك محل خاص سازگار شوند و با زبان مناسب نمايش دادهشوند.
امنيت : هم سطح بالا و هم سطح پايين، شامل امضاي الكترونيكي، مديريت كليد عمومي و كليد خصوصي، كنترل دسترسي و گواهينامهها.
اجزاي نرمافزاري : با نام JavaBeans كه ميتوانند به معماري اجزاي موجود متصل شوند.
سريال سازي اشيا : اجازه ضبط دائم (persistence ) با حافظه فرعی كم و ارتباط اشياء توسط صدازدن از راه دور RMI (Remote Method Invokation) ميدهد.
ارتباط پايگاهدادهاي جاوا (JDBC) : ارايه دسترسي يكنواخت به محدوده وسيعي از پايگاههاي داده رابطهاي
Platform جاوا همچنين APIهايي براي گرافيك دو بعدي و سه بعدي، توانايي دسترسي، سرورها، collaboration،سرويس تلفني، صحبت، تصاوير متحرك و ... دارد
JRE (Java 2 Runtime Environment) شامل ماشين مجازي، كلاسهاي هستهاي Platform جاوا و فايلهاي پشتيبان است. Java 2 SDK، شامل JRE و ابزارهاي توليد و توسعه مانند كامپايلرها و debuggerها است.
فناوري جاوا چگونه زندگي را تغيير ميدهد؟
با يادگيري زبان برنامهنويسي جاوا قول شهرت، خوشبختي و يا حتي يك شغل دادهنميشود. اما احتمالا زبان برنامهنويسي جاوا، برنامههاي شما را بهتر كرده و نياز به تلاش كمتري نسبت به ساير زبانها دارد. فناوري جاوا در موارد زير به شما كمك خواهد كرد :
شروع سريع : اگر چه زبان برنامهنويسي جاوا، يك زبان شيءگراي قدرتمند است، اما براي يادگيري، بسيار آسان است، مخصوصا براي برنامهنويساني كه با C و C++ آشنا هستند.
كدنويسي كمتر : مقايسه اندازهاي برنامهها ( تعداد كلاسها، تعداد متدها و ... )، نشانميدهد كه يك برنامه نوشتهشده در زبان برنامهنويسي جاوا ميتواند يكچهارم همان برنامه در زبان C++ باشد.
كدنويسي بهتر : زبان برنامهنويسي جاوا، به تمرينات كدنويسي خوب تشويق ميكند و بخش جمعآوري آشغال (garbage collection) آن به جلوگيري از هدررفتن حافظه كمكميكند. شيءگرايي آن، معماري اجزا JavaBean و APIهاي فراوان و با سهولت گسترش، اجازه استفاده مجدد از كدهاي تست شده ديگران و مواجهه كمتر با اشكالات را باعث ميشود.
ساخت سريعتر برنامهها : زمان ساخت ممكن است دو برابر سريعتر از نوشتن همان برنامه در C++ باشد. زيرا شما خطوط كمتري برنامه مينويسيد و همچنين جاوا نسبت به C++ زبان برنامهنويسي سادهتري است.
دوري از وابستگي به Platform با 100% جاوا خالص : شما ميتوانيد برنامهتان را بصورت قابل انتقال توسط عدم استفاده از كتابخانههاي نوشتهشده در ساير زبانها حفظ كنيد.
يك بار بنويس، همه جا اجرا كن : به دليل اينكه برنامههاي 100% جاوا به كدبايتهاي مستقل از ماشين تفسير ميشوند، بطور سازگار بر روي هر Platform اجرا ميشوند.
توزيع آسانتر نرمافزار : شما ميتوانيد اپلتها را از يك سرور مركزي بهروز كنيد. اپلتها مزيت، بارگذاري كلاسهاي جديد بصورت "on the fly" را به همراه دارند، بدون اينكه نياز به كامپايل مجدد همه برنامه باشد.
+ نوشته شده در ساعت توسط احسان خوشخرام
|