شناخت جاوا و تکنولوژی های آن

مقدمه:

ما در عصری زندگی می کنیم که بسیاری از فعالیتهای آن توسط کامپیوتر صورت می گیرد از کارهای روزمره گرفته تا پیش بینی وضع هوا ،فضانوردی،صنایع گوناگون،همه و همه به نوعی از کامپیوتر سود می برند اما کامپیوتر چیست؟چگونه عمل میکند؟و چگونه زندگی مارا بهبود می دهد؟

کامپیوتر مجموعه ای از مدارات الکتریکی است که در کنار یکدیگر دستورالملهای خاصی را که در حافظه قرار دارند اجرا می کنند اجرای این مجموعه دستورالعملها،ممکن است انجام یک محاسبه ریاضی،نمایش یک تصویر در صفحه مونیتور یا کنترل یک دستگاه باشد برنامه نویسان می توانند با نوشتن این دستورالعملها و قرار دادن آنها در کامپیوتر

عمل مورد نظر خود را توسط کامپیوتر اجرا نمایند نحوه نوشتن این دستورالعملها و قرار دادن آنها در کامپیوتر قواعد و قوانین خاصی دارد.اینگونه دستورالعملها برای کامپیوتر قابل فهم است اما درک آنها برای انسانها مشکل است.

زبان کامپیوتری چیست؟

انسانها برای ارتباط با یکدیگر از زبان استفده میکنند وقتی دو انسان قصد صحبت بایکدیگر را دارند باید زبان یکدیگر را بدانند در غیر این صورت نمیتوانند با یکدیگر ارتباط برقرار کنند.

زبان انسانها به مجموعه ای از کلمات همراه باقواعد و دستورات خاص گفته می شود،مجموعه کلمات بر اساس قواعد و دستورات خاص در کنار یکدیگر قرار می گیرند تا مفهوم خاصی را بیان کنند این کلمات و قواعد برای دو نفری که با یکدیگر صحبت می کنند قابل درک است.

در مورد زبان کامپیوتری نیز وضع به همین منوال است وقتی تصمیم می گیرید از کامپیوتر بخواهید کار خاصی را برای شما انجام دهد باید با استفاده از زبانی که برای کامپیوتر قابل فهم است منظور خود را به کامپیوتر منتقل کنید.زبان کامپیوتری همانند زبان انسانها،مجموعه ای از کلمات و دستورات است،با این تفاوت که برای انسان و کامپیوتر قابل فهم بوده وبوسیله آن میتواند منظور خود را به کامپیوتر منتنقل کنید در حقیقت کار زبان کامپیوتری تبدیل دستورات انسان به دستورالعملهای قابل فهم برای کامپیوتر است.

از اولین روزهایی که کامپیوتر اختراع شد تا امروز،زبانهای مختلفی برای ارتباط با کامپیوتر نیز اختراع و ابداع شده- اند زبانهای اولیه بیشتر برای کامپیوتر قابل فهم بودند و درک آن برای انسان مشکل بود اما به تدریج زبانها توسعه یافتند وبه زبان انسان نزدیک شدند به زبانهایی که بیشتر برای کامپیوتر قابل فهم هستند زبانهای سطح پایین و به زبانهایی که بیشتر برای انسان قابل فهم هستند زبانهای سطح بالا گفته می شود.

از زبانهای سطح پایین می توان به زبان ماشین و زبان اسمبلی و از زبانهای سطح بالا می توان به زبان c، c++ و جاوا اشاره کرد.

امروز اکثر دانشجویان و افرادی که علاقه به یادگیری یک زبان برنامه نویسی هستند در سردرگمی بسر برده و نمی دانند چه زبانی را برای یادگیری انتخاب کنند،این بدلیل گستردگی زبانها و مهمتر از آن عدم شناخت از کاربرد ها و توانایی های زبانهای مختلف است.

در این تحقیق سی شده شناخت کلی از جاوا،تکنولوژیهای و توانمندی های آن و همچنین مقایسه ای کلی با زبانهای .net انجام شود.

 

 

تاریخچه جاوا

شرک sun microsystems،زبان زبان برنامه نویسی جاوا را در ژوئن سال ۱۹۹۵ معرفی کرد،قواعد و دستور زبان جاوا از c و c++ گرفته شده است.زبان جاوا ابتدا برای لوازم خانگی ،اسباب بازیها و وسایل الکترونیکی طراحی شد تا قبل از این زبان ،لوازم خانگی و الکترونیکی از زبانهایی مانند c استفاده می کردند.

چون لوازم خانگی،اسباب بازیها و وسایل الکترونیک کاملا متنوع بودند و سخت افزار متفاوتی داشتند،شرکتهای این تولید کننده این لوازم مجبور بودند برای هر کدام از آنها نرم افزار جداگانه ای بنویسند مثلا برنامه ای که به زبان c برای یک ماشین لباس شویی نوشته شده بود تا بعد از ۱۵ دقیقه یک آژیر تولید کند نمی توانست روی یک اسباب بازی به همان منظور استفاده شود زیرا اسباب بازی و ماشین لباسشویی سخت افزار متفاوتی داشتند این موضوع باعث افزایش هزینه تولید نرم افزار و سخت افزار شده بود در سال ۱۹۹۱ تیمی از مهندسان شرکت sun تصمیم گرفتند زبانی طراحی کنند که برای لوازم و وسایل الکترونیکی  خانگی مورد استفاده قرار گیرد.تلاش این متخصصان منجر به طراحی زبانی مستقل از سخت افزار شد این زبان ابتدا  oak نامگذاری شد اما بعدا در سال ۱۹۹۵ به (جاوا) تغییر نام داد.

مدتی کوتاه پس از ارایه این زبان،اینترنت توسعه یافت نکته جالب اینجا بود که کامپیوترهای اینترنت نیز همانند لوازم خانگی متفاوتو متنوع  بودند بنابراین نیاز به زبانی بود که بتوان با استفاده از آن برنامه هایی نوشت که در تمام کامپیوترها با سخت افزارهای مختلف قابل اجرا باشد،این بار نیز جاوا گزینه مناسبی بود، به یکباره زبان جاوا به یکی از محبوبترین زبانهای برنامه نویسی اینترنت تبدیل شد و طراحی مناسب آن باعث فراگیر شدن آن گردید امروزه جاوا به عنوان یکی از زبانهای عمده برنامه نویسی،در دنیا طرفداران بسیار زیادی دارد.

جاوا و مزایای آن 

جاوا یک زبان یک زبان برنامه نویسی است که دستور زبانی بسیار شبیه به c++ دارد در این زبان که در اصل از c++ گرفته شده است نقاط ضعف c++ در آن حذف شده است جاوا همانند c++ یک زبان شی گراست همه چیز در این زبان یک آبجکت است تمام اعمالی که با استفاده از زبانهای دیگر امکانپدیر هستند را نیز می توانید با استفاده از این زبان پیاده سازی کنید.

با استفاده از زبان جاوا چهار دسته عمده از برنامه ها را می توانید پیاده سازی کنید:

  • Desktop Application
  • Distributed Application
  • Web-based Application
  • Applets

 

Desktop  Application: به برنامه هایی گفته می شوند که روی یک کامپیوتر اجرا می شوند و یک کاربر با آن کار می کند.مثلا برنامه Windows Media Player یک Desktop Applicatin است.

Distributed  Application : به برنامه هایی گفته می شود که مجموعه ای از کاربران می توانند با کامپیوتر- های خود و از طریق شبکه از آن استفاده کنند. در این نوع برنامه ها، ممکن است هر قسمت از برنامه روی یک کامپیوتر اجرا شود.به عنوان نمونه،یک برنامه حسابداری تحت شبکه در این دسته قرار می گیرد.

Web-based Application:به برنامه هایی گفته می شود که کاربر از طریق جستجوگر با برنامه کار می کند.یک وب سایت اینترنتی که محصولات یک شرکت را معرفی و به مشتریان می فروشد،در این دسته قرار می گیرد.

Appletes: به برنامه هایی گفته می شود که داخل جستجوگر نمایش داده شده و اجرا می شوند امروزه اگر چه از اپلت ها کمتر استفاده می شوند اما هنوز در جاوا وجود دارند. اپلت‌ها امکانات فراوانی برای نوشتن برنامه‌های تحت وب در اختیار برنامه‌نویسان قرار می‌دهند که دیگر زبان‌های برنامه‌نویسی فاقد آن هستند. البته وجود ماشین مجازی جاوا برای اجرای اپلت لازم است. اپلت‌ها نظیر فناوری Activex شرکت مایکروسافت هستند که برنامه‌نویسان را قادر می‌سازد تا امکاناتی را به مرورگر کاربر بیافزایند.البته تفاوت این دو در امنیت می‌باشد به گونه‌ای که اپلت‌ها بدلیل اینکه در محیطی به نام جعبه شنی اجرا می‌شوند امن هستند ولی Activex ها فاقد چنین امنیتی هستند.سیستم عامل: هر چقدر زبانهای .net قوی باشند تنها بر روی پلت فرم ویندوز اجرا می‌شوند و برخی ویندوز را سیستم عامل غیر قابل اعتمادی در برنامه نویسی Enterprise می‌دانند. ولی جاوا از این نظر انتخابی خوب است.

زبانهای کامپایلی و زبانهای تفسیری

زبانهای کامپایلی به زبانهایی گفته می شود که شما باید از اجرای برنامه،آنرا کامپایل کنید.به عبارت بهتر،آنرا به زبان قابل فهم برای کامپیوتر تبدیل نمایید.برنامه هایی که به زبانهای کامپایلی نوشته می شوند توسط یک برنامه دیگر به نام کامپایلر به زبان کامپیوتر ترجمه می شود سپس برنامه ترجمه شده،توسط سیستم اجرا می شود.در این نوع زبانها شما باید:

۱. ابتدا برنامه خود را به آن زبان بنویسید

۲. برنامه نوشته شده را توسط کامپایلر (که خود یک برنامه کامپیوتری است) به زبان ماشین ترجمه کنید

۳. برنامه به زبان ماشین را اجرا کنید

زبانهای c و c++ و پاسکال مثالهایی از زبان کامپایلی هستند.

مثلا در سیستم عامل ویندوز، شما یک برنامه به زبان c می نویسید آنرا توسط کامپایلر، کامپایل می کنید و از روی آن یک فایل .exe می سازید(فایل .exe همان برنامه به زبان ماشین است) سپس با دابل کلیک کردن روی آن،آنرا اجرا می کنید.

در مقابل برنامه هایی که به زبانهای تفسیری نوشته می شود،برخلاف زبانهای کامپایلی ،نیاز به کامپایل ندارد و مستقیما توسط اجرا کننده آن اجرا می شود.

GW-Basic و زبانهای اسکریپتی مثل جاوا اسکریپت و مثالهایی از زبانهای تفسیری هستند.

برنامه ای که به زبان جاوا اسکریپت نوشته می شود مستقیما توسط جستجوگر اجرا می شود جستجوگر اجرا کننده جاوا اسکریپت محسوب می شود در این میان، شما هیچ عملیات خاصی برای کامپایل برنامه انجام نمی دهید این برنامه توسط جستجوگر مستقیما کامپایل و اجرا می شود.

در این میان، جاوا هم یک زبان تفسیری محسوب می شود و هم یک زبان کامپایلی.

برنامه ای که به زبان جاوا نوشته می شود ابتدا باید توسط کامپایلر جاوا به کدهای واسطه ای ترجمه شود که به آنها (بایت کد) گفته می شود سپس کدهای تولید شده،توسط ماشین مجازی جاوا یا همان JVM به زبان ماشین تفسیر شده و اجرا می شوند.JVM قسمتی از جاوا محسوب می شود که اجرا را بر عهده دارد.

تفاوت جاوا با c و c++

۱- در زبان جاوا،اشاره گر وجود ندارد (در زبان c++و c با استفاده از اشاره گرها می توانید مستقیما به خانه های حافظه کامپیوتر دسترسی پیدا کنید)

۲-در زبان جاوا پیش پردازنده وجود ندارد

۳-در زبان جاوا تبدیل اتومانیک انواع داده ممکن نیست (در زبان c++ و c شما می توانید یک مقدار کاراکتری (char) را در یک متغیر عددی (int) قرار دهید)

۴-جاوا templateرا پشتیبانی نمی کند.

۵-در جاوا امکان تغییر عملکرد عملگرهای پایه وجود ندارد(در زبان c++ می توانید عملکرد جدیدی برای

۶-در جاوا ،ارث پذیری چند گانه وجود ندارد(در زبان c++ هر کلاس می تواند از چندین کلاس دیگر مشتق شود این مسئله اگر چه برای c++ یک قابلیت بزرگ محسوب می شود اما باعث بوجود آمدن بسیاری از مسائل ثانویه در برنامه ها شده است به  علت پیچیدگیهای فراوان استفاده از ارث بری چندگانه،این قابلیت در زبان جاوا قرار داده نشده است).

خصوصیات جاوا

  • سادگی
  • شی گرایی
  • مستقل از سخت افزار و نرم افزار
  • توزیع شده
  • تفسیری
  • قابل اتکا(Robust)
  • امن(Secure)
  • Architectcture neutral
  • قابل حمل(portable)
  • کارایی بالا(high performance)
  • Multithreaded
  • پویایی

سادگی

تمام تلاش طراحان جاوا بر این بوده است تا زبانی طراحی کنند که یادگیری آسان داشته باشد تا یادگیری و استفاده از آن برای همگان امکانپذیر شود.به همین علت بسیاری از مفاهیم پیچیده (از قبیل اشاره گر ها،تغییر عملکردهای پایه و ارث بری چند گانه)را –که در c++ وجود دارد- در جاوا قرار نداده اند.

شی گرایی

در جاوا ،همه چیز شی است هر شی دارای یک سری خصوصیات است و یک سری رفتار از خود نشان می دهد در جاوا به شی،object،به صفت ،property و به رفتار method گفته می شود propertyها و methodها،اجزای تشکیل دهنده object محسوب می شوند(method معادل function در برنامه نویسی رویه ای است).

مستقل از سخت افزار و نرم افزار

احتمالا تا کنون فقط با کامپیوترهای pc سروکار داشته اید و احتمالا سیستم عامل تمام آنها هم ویندوز بوده اند! اما دنیای کامپیوتر ها تنها محدود به کامپیوتر های pc نمی شود،در دنیا انواع مختلفی از کامپیوترها وجود دارند که سخت افزار متفاوتی با یکدیگر دارند و بالطبع سیستم عامل های مختلفی برای آنها طراحی شده است.با وجود سخت افزار و نرم افزار متفاوت،برنامه هایی که برای هر یک از این کامپیوتر ها نوشته می شوند نیز متفاوت خواهند بود.

هر برنامه ای که به زبانهای کامپایلی از قبیل c++و c نوشته می شود توسط کامپایلر به زبان ماشین همان کامپیوتر ترجمه می شود،سپس شما می توانید آن برنامه را فقط روی همان کامپیوتر یا کامپیوتر های مشابه(کامپیوتر هایی که از لحاظ سخت افزاری و سیستم عامل مثل هم باشند)اجرا کنید اگر بخواهید همان برنامه را روی یک کامپیوتر متفاوت دیگر اجرا کنید باید کامپایلر متفاوتی داشته باشید تا آن برنامه را به زبان ماشین همان کامپیوتر کامپایل کند.

برنامه های جاوا مستقل از سخت افزار و نرم افزار هستند یعنی یک برنامه را می توان به آسانی از یک کامپیوتر به کامپیوتر دیگر منتقل کرد بدون اینکه در اجرای برنامه تغییری حاصل شود.وقتی برنامه ای به زبان جاوا می نویسید کامپایلر جاوا آنرا به (بایت کدهای میانی) ترجمه می کنند سپس ماشین مجازی جاوا،بایت کدهای تولید شده را بر -اساس سخت افزار و نرم افزار کامپیوتری که قرار است برنامه روی آن اجرا شود تفسیر می کند.به این ترتیب،برنامه ای که به زبان جاوا نوشته می شود،همیشه مستقل از سخت افزار و نرم افزار باقی می ماند،در هر صورت ماشین مجازی جاوا آنرا با کامپیوتر میزبان وفق می دهد.

قابل اتکا(Robust):

جاوا دارای چهار چوب محکمی است یعنی هر کدی که می نویسید کاملا تحت کنترل محیط جاوا قرار دارد زیرا:

۱-کامپایلر جاوا در زمان کامپایل کردن برنامه،درستی کد شما را بررسی می کند،مفسر جاوا نیز هنگام تفسیر بایت کدها به زبان ماشین،برخی از انواع اشکالات برنامه نویسی را گزارش می کند.

۲-جاوا دارای اشاره گر نیست تا برنامه نویسان از طریق آن بتوانند به خانه های غیر مجاز از حافظه دسترسی پیدا کنند.

۳-دسترسی به عناصر آرایه و کاراکترهای یک رشته در زمان اجرای برنامه کنترل می شود تا همواره اطمینان حاصل شود که عنصر خواسته شده در محدوده آن آرایه یا رشته موجود است.

۴-تبدیل یک نوع آبجکت به یک نوع آبجکت دیگر(cast کردن) در زمان اجرای برنامه بررسی می شود.

۵-در جاوا قسمتی برای (جمع آوری و حذف اتوماتیک آبجکتهای اضافه) تعبیه شده است که به آن garbage collectiom گفته می شود واز طریق آن،آبجکتهایی که توسط برنامه استفاده نمی شوند به صورت اتوماتیک از حافظه پاک می شوند.

۶-جاوا دارای مکانیسم قدرتمندی برای کنترل خطاها در برنامه است با استفاده از این قابلیت،کار اشکالزدایی برنامه و مدیریت خطاها آسان می شود.

امن

جاوا محیطی کاملا کنترل شده برای اجرای برنامه ها فراهم می کند، جاوا با داشتن کنترل کننده های متعدد اطمینان می دهد که برنامه شما در یک محیط امن اجرا می شود.

 

قابل انتقال

برنامه های جاوا را می توان بدون هیچ تغییری روی سیستمهای مختلف اجرا کرد(بدون وابستگی به سیستم عامل و سخت افزار)

Architecture neutrality

برای اینکه برنامه های جاوا قابل انتقال باشند،جاوا به گونه ای طراحی شده است که انواع داده ها روی تمام سیستم- ها اندازه یکسانی داشته باشند.(مثلا در جاوا داده نوع int روی تمام سخت افزارها و انواع سیستم عامل ها،۳۲ بیت است اما در زبان c ممکن است نوع int روی سیستم های مختلف،بسته به اینکه برنامه روی چه سیستم عامل یا سخت افزاری برنامه اجرا می شود،اندازه متفاوتی داشته باشد).

Multithreaded

یکی از خصوصیات سیستم عامل های امروزی،امکان اجرای همزمان دو قسمت(عمدتا مستقل)از یک برنامه است به هر کدام از این قسمتها Thread گفته می شود.در جاوا امکان نوشتن برنامه هایی که از چندین Thread تشکیل شده باشند،فراهم شده است.

اداره خودکار حافظه

جاوا از حافظهٔ بازیافتی خودکار برای ادارهٔ حافظه در چرخهٔ زندگی یک شی استفاده می‌کند. برنامه‌نویس زمانی که اشیا به وجود می‌آیند، این حافظه را تعیین می کند. و در زمان اجرا نیز، زمانی که این اشیا در استفادهٔ زیاد طولانی نباشند، برنامه نویس مسئول بازگرداندن این حافظه است. زمانی که مرجعی برای شی های باقیمانده نیست، شی‌های غیر قابل دسترس برای آزاد شدن به صورت خودکار توسط بازیافت حافظه،انتخاب می شوند. اگر برنامه‌نویس مقداری از حافظه را برای شی‌هایی که زیاد طولانی نیستند، نگه دارد، چیزهایی شبیه سوراخ حافظه اتفاق می‌افتند.

یکی از عقایدی که پشت سر مدل ادارهٔ حافظهٔ خودکار جاوا وجود دارد، این است که برنامه‌نویس هزینهٔ اجرای ادارهٔ دستی حافظه را نادیده می‌گیرد. در بعضی از زبان‌ها حافظه لازم برای ایجاد یک شی، به صورت ضمنی و بدون شرط، به پشته تخصیص داده می‌شود. و یا به‌طور صریح اختصاص داده شده و از heap بازگردانده می‌شود. در هر کدام از این راه‌ها، مسئولیت ادارهٔ اقامت حافظه با برنامه‌نویس است. اگر برنامه شی را برنگرداند، سوراخ حافظه اتفاق می‌افتد. اگر برنامه تلاش کند به حافظه‌ای را که هم‌اکنون بازگردانده شده، دستیابی پیدا کند یا برگرداند، نتیجه تعریف شده نیست و ممکن است برنامه بی‌ثبات شده و یا تخریب شود. این ممکن است با استفاده از اشاره‌گر مدتی باقی بماند، اما سرباری و پیچیدگی برنامه زیاد می‌شود. بازیافت حافظه اجازه دارد در هر زمانی اتفاق بیفتد. به‌طوری که این زمانی اتفاق می‌افتد که برنامه بی‌کار باشد. اگر حافظهٔ خالی کافی برای تخصیص شی جدید در heap وجود نداشته باشد، ممکن است برنامه برای چند دقیقه متوقف شود. در جایی که زمان پاسخ یا اجرا مهم باشد، ادارهٔ حافظه و منابع اشیا استفاده می‌شوند.

جاوا از نوع اشاره‌گر ریاضی C و ++C پشتیبانی نمی‌کند. در جایی که آدرس اشیا و اعداد صحیح می‌توانند به جای هم استفاده شوند. همانند ++C و بعضی زبان‌های شی‌گرای دیگر، متغیرهای نوع‌های اولیهٔ جاوا شی‌گرا نبودند. مقدار نوع‌های اولیه، مستقیماً در فیلدها ذخیره می‌شوند. در فیلدها (برای اشیا) و در پشته (برای توابع)، بیشتر از heap استفاده می‌شود. این یک تصمیم هوشیارانه توسط طراح جاوا برای اجرا است. به همین دلیل جاوا یک زبان شی‌گرای خالص به حساب نمی‌آید.

ماشین مجازی جاوا(JVM)

ماشین مجازی جاوا قسمتی از جاوا محسوب می شود که مسئولیت تفسیر بایت کدهای یک برنامه را به سخت افزار و نرم افزاری که برنامه در آن اجرا می شود را به عهده دارد.همانطور که قبلا توضیح دادیم وقتی شما برنامه ای به زبان جاوا می نویسیدکدهای برنامه را در فایلهایی به صورت *.java ذخیره خواهید کرد سپس آنهارا با استفاده از کامپایلر جاوا کامپایل می کنید،کدهایی که در فایل *.java قرار دارند توسط کامپایلر به بایت کد تبدیل شده ودر فایلهایی به صورت *.class ذخیره خواهد شد.تا این مرحله یعنی کلاسهای جاوایی که نوشته اید(*.java )و بایت کدهای تولید شده(*.class)مستقل از  سخت افزار و سیستم عامل هستند وقتی می خواهید برنامه تان را اجرا کنید ماشین مجازی جاوا وظیفه دارد بایت کدها را مطابق سخت افزار نرم افزار شما به برنامه های اجرایی تفسیر کند.

JDK

JDK که محفف کلمه Java Development می باشد،مجموعه ای از کلاسها و ابزارهاست که با استفاده از آن می توان یک برنامه جاوا را کامپایل و اجرا کرد.

JDKاز اجزای زیر تشکیل شده است:

۱-مجموعه ای از کلاسها(که در واقع کتابخانه یا library جاوا محسوب می شوند)

۲-کامپایلر

۳-دیباگر یا اشکالزدا

۳-محیط اجرایی جاوا(JRE)

JDK همچنین حاوی ابزارهایی است که هر کدام با استفاده از هر یک از آنها می توانید عملیات مختلفی که در زبان جاوا وجود دارند را انجام دهید برخی از این ابزارها عبارتند از:

javac: ابزاری برای کامپایل کردن کدهای جاواست این ابزار از روی فایل های *.java فایلهای *.class می سازد.

java: این ابزار، برنامه ای راکه کامپایل شده را اجرا می کند.

jar: از روی مجموعه ای از فایلها،یک فایل jar می سازد.فایلهای jar، فایلهای بسته بندی شبیه فایلهای zip هستند که در جاوا استفاده می شوند.این فایلها پسوند *.jar دارند.

Javadoc: از این ابزار برای تولید مستندات کلاسهای جاوا،استفاده می شود.

jdb: ابزاری برای اشکالزدایی برنامه هاست.

appletviewer: ابزاری برای تست و مشاهده اپلت هاست،زمانیکه در حال نوشتن یک اپلت هستید،با استفاده از این ابزار می توانید آنرا اجرا نموده و عملکرد صحیح آنرا بررسی کنید.

 

Java 2 Platform Enterprise Edition:

این نسخه از جاوا رو که به اختصار J2EE هم میگن شاید تجاری ترین و معروفترین بخش برنامه نویسی جاوا میباشد. تمامی امکانات گنجانده شده در این نسخه از جاوا برای طراحی و توسعه برنامه های تحت سرور و تحت وب در جاوا میباشد . یکی از گونه هایی که در برنامه نویسی جاوا تحت وب بسیار معروف شده JSP  یا Java Server Page میباشد که با این که این بخش فقط یکی از ۱۳ رکن این نسخه می باشد ولی دارای Framework  های زیاد و معروف میباشد که توسعه jsp را بسیار بسیار قوی تر میکنند .
این بخش از جاوا برای اجرا نیاز به یک JDK دارد یا همون J2SE و یک Application Server. اما Application Server چیست ؟ Application Server  ویا همون App Server یک ظرف نگه دارنده میباشد. برای اینکه کار app server براتون بهتر روشن شه می تونم این طوری براتون توضیح بدم همانطور که یک برنامه تحت وب مثلا یک برنامه cms تحت asp.net  برای اجرا به یک وب سرور مثل IIS برای اجرای عملیات مختلف و Parsing نیاز دارد یک برنامه ای که تحت J2EE نوشته شده برای اجرا به یک APP Server  نیاز داره تا اجرا بشه و کار هاشو انجام بده . این بخش از جاوا مفلاهیم بسیار سخت سقیلی داره که شاید یه نفر مثل من بعد از دو ماه شبانه روز سرو کله زدن باهاش نتونه حتی مفهومش رو هم درک کنه ولی در عوض این وعده رو بهتون میدم که در صورت پیدا کردن تسلط روی این بخش از جاوا میتونید کار هایی انجام بدی که برای انجامشون در دات نت و یا تکنولوژی های مشابه باید زجری وصف ناشدنی بکشید. اما جالبتر اینجاست که فقط خود شرکت سان برای این بخش جاوا app server ارائه نکرده و شرکت های IBM , BEA, SUN , Borland, Oracle, …..  هم برای این بخش App Server های قوی  ارائه کردند. این بخش از جاوا دارای App Server های مجانی و سورس بازی چون JBoss و یا Tomcat ویا Sun GlassFish تا App Server های گران قیمتی چون Web Sphere , WEB LOGIC  میباشد و حتی گران قیمت ترین نرم افزار دنیا که پکیج Business  Suite اوراکل هست مربوط به App Server قوی و کامل Oracle میباشد. (با این نتایج فکر کنم دلیل خوش پول بودن جاوا رو میتونید خوب درک کنید)

:J2SE

این نسخه حاوی کتابخانه ها و کامپایلر هایی هست که برای نوشتن یک برنامه معمولی و اصطلاحا Desktop Application به کار میره. در کتابخانه های کد موجود کلیه API ها و کلاس ها از شبکه(Socket) و طراحی فرم ویژوال (Swing , Awt)و گرافیک (J2D)دو بعدی و سه بعدی(J3D) و فایل(File API) و تصویر(Imaging) و متد فشرده سازی(Compressing) و ارتباط به دنیای خارج از جاوا (JNI) و هر چیزی که برای برنامه نویسی برنامه های معمولی نیازه موجوده . این کتابخانه بصورت عادی با نصب یکی از نسخه های JDK بر رو سیستم شما نصب میشود و امکان توسعه چنین فایل هایی را به شما میدهد.
اکثر برنامه نویسان زبان مایکروسافتی میتوانند به خوبی این نسخه از جاوا رو درک کنند زیرا اکثر برنامه هایی که در محیط هایی چون  VB6 مینویسند Desktop Application میباشد.
Java 2 Platform Enterprise Edition Java 2 Platform Enterprise Edition

جاوا در قلمرو موبایل‌(J2ME)

اشاره :
دنیا به سمت کوچک شدن پیش می‌رود. دستگاه‌های موبایل روز به روز فراگیرتر می‌شوند و هر روز فناوری‌های جدید جای خود را به جدیدترها می‌دهند. سان نیز با جاوا به میدان آمده است. آن‌ها قصد دارند حضور خود را در بازار موبایل پررنگ کنند و سهم بیشتری را در اختیار بگیرند. یک فریم‌ورک مستقل از پلتفرم، تنها یکی از زیرمجموعه‌های جاوا است. سان علا‌وه بر سیستم‌عامل دستگاه‌های موبایل، کارت‌های هوشمند را نیز نشانه گرفته است. سان در آینده خورشیدی در جیب شما خواهد بود … .

 

Java 2 Micro Edition چیست؟

زبان برنامه‌نویسی جاوا بیشتر با محیط برنامه‌نویسی تحت سرورش یا Java 2 Enterprise Edition شناخته می‌شود؛ محیطی که شامل فناوری‌هایی از قبیل Enterprise Java Beans) EJBS)، سِرولت‌ها (servlets)، و ‌‌JSPs
(Java Server Pages)ها است.

با این حال جاوا در اصل به عنوان یک زبان برنامه‌نویسی سمت کلا‌ینت و برای مصرف‌کنندگان طراحی شد؛ زبانی که با هدف استقلا‌ل نرم‌افزارها از پلتفرمی که آن را اجرا می‌کردند، توسعه یافت و به سرعت همه‌گیر شد. اما اکنون جاوا به خصلت اجداد خویش بازگشته است.

Java 2 Micro Edition) J2ME) نیز پلتفرمی است که برای دستگاه‌های موبایل طراحی شده و هدف آن ارائه نرم‌افزارهایی است که مستقل از سکوی کاری مقصد و سیستم‌عاملِ اجرا کننده آن (که در دنیای دستگاه‌های موبایل، تنوع بیشتری دارند)، به ارائه خدمات بپردازند.

پلتفرم Java2

چیزی که اکنون به آن جاوا می‌گوییم، در حقیقت پلتفرم Java2 از شرکت سان مایکروسیستمز است که در سه نسخه متفاوت عرضه می‌شود:

Java 2 Standard Edition)  J2SE)
Java 2 Enterprise  Editon) J2EE)
Java 2 Micro  Editon) J2ME)

هر نسخه از پلتفرم مذکور، یک محیط اجرایی کامل را که از JVM یا ماشین مجازی جاوا یک سری و کلا‌س‌های کتابخانه‌ای تشکیل شده برای اجرای نرم‌افزارهای مبتنی بر جاوا فراهم می‌کند.

هر یک از سه نسخه با هدف اجرای نرم‌افزارهای متفاوت روی سکوهای کاری متفاوت طراحی شده و توسعه یافته‌اند. J2EE با هدف ایجاد و توسعه نرم‌افزارهای دسکتاپ طراحی شد. این پلتفرم کلا‌س‌های ضروری رابط‌ کاربر را برای تولیدکنندگان نرم‌افزار فراهم می‌کند.

نرم‌افزارهای با هدف استفاده در سرورها نیز توسط J2EE طراحی و تولید می‌شوند و J2ME نیز در تولید نرم‌افزارهایی برای دستگاه‌های موبایل کاربرد دارد. آنچه تفاوت بین این نسخه‌ها محسوب می‌شود، کلا‌س‌های کتابخانه‌ای است که در هر یک از نسخه‌ها تعریف می‌گردد. به بیان ساده، می‌توان J2ME را زیرمجموعه‌ای از J2SE و J2SE را زیرمجموعه‌ای از J2EE محسوب کرد.

زیاد بودن حجم و تعداد کلا‌س‌های J2SE (که چیزی حدود ده تا بیست مگابایت است و برای دستگاه‌های موبایل امروزی، بزرگ و حجیم) باعث تولد J2ME شد. این پلتفرم شامل کتابخانه‌های کمتر و اختصاصی‌شده با حجمی قابل قبول برای دستگاه‌های ضعیف‌تر (نسبت به دسکتاپ‌ها) است. مشخصه‌های J2ME ،J2SE و J2EE به صورت مفصل در Java Communily Process) JCP) تعریف شده و قابل دسترس است. برای اطلا‌عات بیشتر می‌توانید به www.jcp.org مراجعه کنید.

Java 2 Micro Edition

در پلتفرم J2ME، محیط اجرایی جاوا برای دستگاه‌های کوچک و با قابلیت‌های محدود یعنی دستگاه‌هایی که در مقایسه با دسکتاپ‌ها از حافظه خیلی کمتر و محدودتر، صفحه‌نمایش کوچک‌تر و پردازنده‌های کندتر استفاده می‌کنند، تنظیم شده است.

نکته اصلی این است که برنامه‌نویسی در این محیط فرق چندانی با J2SE ندارد و تنها موارد موجود،‌دسترسی به منابع کتابخانه‌ای کمتر و البته حافظه اجرایی محدودتر است. مدیریت حافظه یکی از مهم‌ترین مسائلی است که باید به آن توجه کرد تا نرم‌افزار نهایی در پلتفرم مقصد، در حین اجرا با مشکلی مواجه نگردد.

البته J2ME اولین قدم برای تطبیق جاوا با محیط‌های اجرایی کوچک همچون دستگاه‌های موبایل نیست. Personal Java و Embeded Java نیز تلا‌ش‌هایی بودند تا نرم‌افزارهایی مبتنی بر Java 1.1.x برای دستگاه‌های موبایل توسعه یابند. اما امروزه، Personal Java و Embeded Java، از رده خارج شده‌اند و جای خود را به J2ME داده‌اند.

لا‌زم به ذکر است که از ۲۲ دسامبر سال ۲۰۰۶ میلا‌دی، سان مایکروسیستمز که منبع J2ME یا قسمت مهمی از آن را تحت General Public License) GPL) در اختیار عموم قرار داده است که گفته می‌شود در طی پروژه‌ای با نام Phone ME انجام گرفته است.

نگاهی به معماری Java ME
J2ME مجموعه‌ای از کتابخانه‌ها و فناوری‌های  مختلف است که در کنار هم، محیطی برای اجرای یک نرم‌افزار در یک دستگاه موبایل فراهم می‌کنند. در کلی‌ترین بحث می‌توان گفت که J2ME مبتنی بر سه المان اصلی است:

˜‌ پیکربندی: بسیاری از کتابخانه‌های پایه و قابلیت‌های ماشین مجازی برای رِنج وسیعی از دستگاه‌ها را شامل می‌شود.
˜ ‌پروفایل: مجموعه‌ای از APIها برای پشتیبانی از رِنج کمتری از دستگاه‌ها است.
˜‌ بسته‌های انتخابی: مجموعه‌ای از APIهای اختصاصی شده است.

Java Card
جاوا کارت فناوری نسبتاً نوظهوری است که برای استفاده از پلتفرم جاوا روی کارت‌های هوشمند مورد استفاده قرار می‌گیرد.
کارت‌های هوشمند وسایلی هستند که از نظر حافظه و محدودیت‌های دیگر، از دستگاه‌هایی که به وسیله J2ME پشتیبانی می‌شوند، ضعیف‌ترند.

با این‌که کارت‌های هوشمند یا Smart Cardها چندان هم جدید نیستند، کاربرد وسیعی در حوزه امنیت شخصی دارند. این کارت‌ها در حدود دو دهه پیش در اروپا ابداع شده، گسترش یافتند و در مراحل اولیه، بیشتر حافظه‌های همراهی بودند که حاوی اطلا‌عات ذخیره‌شده‌ای بودند و برای جلوگیری از دزدی از تلفن‌های عمومی مورد استفاده قرار گرفتند.
امروزه نیز می‌توانیم نمونه این کارت‌ها را در تلفن‌های عمومی کشورمان ببینیم. اما فناوری SmartCard یک استاندارد صنعتی است که توسط Joint Technical Committee 1) JTC1) از سازمان بین‌المللی استانداردها یا ISO و به همراه IEC یا کمیته بین‌المللی الکترونیک تعریف و تدوین شده است.
استاندارد بین‌المللی ISO/IEC 7816 که در سال ۱۹۸۷ تدوین شد و آخرین بار در سال ۲۰۰۳ مورد بازبینی قرار گرفت، تعریف‌های کاملی از کارت‌های هوشمند ارائه می‌دهد که شامل خصوصیات ظاهری، اتصالا‌ت فیزیکی، سیگنال‌های الکترونیکی و پروتکل‌های ارسالی، دستورات،‌ مدل امنیتی، شناسه‌های کاربردی و المان‌های مشترک داده‌ای می‌شود.
کارت‌های هوشمند عموماً از یک قطعه پلا‌ستیکی تشکیل شده‌اند که در داخل، دارای ICهای مختلفی می‌باشند. SIM کارت‌ها هم به نوعی Smart کارت محسوب شده و از مدل‌های امنیتی پیچیده‌ای استفاده می‌کند.
این کارت‌ها از نظر طریقه دسترسی به دو دسته اتصالی و غیراتصالی تقسیم می‌شوند. همان‌طور که از نام آن‌‌ها پیداست، انواع غیراتصالی از RFID یا شناسایی با موج رادیویی برای برقراری ارتباط استفاده می‌کنند. در حال حاضر یک دستگاه مبتنی بر Java Card از یک CPU هشت بیتی یا شانزده بیتی با کلا‌ک ۷/۳ مگاهرتز، ۱KBرم و ۶۱KB  حافظه داخلی بهره می‌جوید.

فناوری جاواکارت علا‌وه بر آن‌که در کارت‌های هوشمند مورد استفاده قرار می‌گیرد، در نمونه‌هایی از دکمه‌های هوشمند و گره‌های USB نیز کاربرد دارند. با توجه به این پتانسیل بالا‌ و کاربرد وسیع چنین فناوری‌هایی در امروز و آینده بود که سان به تعریف استاندارد جاوا کارت پرداخت و پلتفرمی را ارائه کرد که از آن برای ایجاد JavaCard Appletها استفاده می‌شد.

فناوری جاواکارت هم اکنون تحت نسخه ۲.۲ عرضه و پشتیبانی می‌شود و دارای سه زیر مجموعه است:
– ‌ماشین مجازی جاواکارت که زبان برنامه‌نویسی و ماشین مجازی مورد نیاز آن را تعریف می‌کند.
– محیط اجرای جاواکارت که طریقه عملکرد زمان اجرای کارت‌های هوشمند را تضمین می‌کند.
– API جاواکارت که حاوی کلا‌س‌ها، بسته‌های جاوا و چارچوب کاری باید جاواکارت را تشکیل می‌دهد.
همچنین سان با عرضه JavaCard Develophent Kit) JCDK) که حاوی پیکربندی‌های مرجع ماشین مجازی جاواکارت، محیط اجرایی جاواکارت و دیگر ابزاری توسعه JC است، زمینه را برای توسعه هرچه بهتر و آسان‌تر JC فراهم آورده است.

Java FX Mobile؛
Java FX Mobile یک سیستم‌عامل جاوایی است که در آغاز توسط شرکت JavaJa برای دستگاه‌های موبایل ایجاد شد و در آوریل ۲۰۰۷ توسط سان‌مایکروسیستمز خریداری گشت. این سیستم‌عامل جزئی از خانواده محصولا‌ت Java FX است که پلتفرمی جدید برای PDAها اسمارت‌فون‌ها و دستگاه‌های همراه محسوب خواهد شد.

Java FX Mobile از ساختارهای Java ME و Java SE روی یک هسته لینوکس بهره خواهد برد. گفته می‌شود سان، Java FX Mobile را به صورت باینری در اختیار تولیدکنندگان دستگاه‌های همراه خواهد داد که قصد عرضه محصولی با رابطه کاربر و عملکردی متفاوت دارند.
طبق اعلا‌م سان، Java FX Mobile یک محیط اجرایی کاملا‌ً مبتنی بر جاوا و فناوری‌های منبع‌بازِ لینوکس خواهد بود. این سیستم‌عامل از Java ME و دیگر APIهای استاندارد جاوا پشتیبانی خواهد کرد تا قابلیت اجرای رنج وسیعی از نرم‌افزاری جدید یا موجود را فراهم آورد.
سان اعتقاد دارد با پا گذاشتن در وادی سیستم‌عامل دستگاه‌های موبایل نسل بعد، به منبع‌باز و رایگان ماندنِ چرخه نرم‌افزارهای کاربردی موبایل کمک خواهد کرد.

Java FX Mobile نقش فناوری‌های جاوا را در توسعه نرم‌افزاری موبایل افزایش خواهد داد و یک محیط نرم‌افزاری کاملا‌ً یکسان و مجتمع را در اختیار کاربران و توسعه‌دهندگان قرار خواهد داد. تولیدکنندگان نیز می‌توانند با استفاده از میان‌افزارها و برنامه‌های کاربردی مقیم حافظه مبتنی بر جاوا به صورت سفارشی و دلخواه قابل تولید هستند، هزینه‌های تولید و زمان عرضه به بازار محصولا‌ت خود را کاهش دهند.

اکنون جاوا روی بیش از ۸/۱ میلیون تلفن همراه عرضه شده و اکثر توسعه‌دهندگان نرم‌افزارهای موبایل، از آن برای عرضه نرم‌افزارهای خود استفاده می‌کنند. اما Java FX Mobile نقش جاوا را در توسعه نرم‌افزارهای موبایل پررنگ‌تر خواهد کرد.
این مهم از طریق فراهم کردن میان‌افزارها و API مبتنی بر جاوا در این سیستم‌عامل انجام خواهد پذیرفت. به‌علا‌وه، تولیدکنندگان و اپراتورهای موبایل نیز به راحتی و با هزینه کمتری می‌توانند  نرم‌افزارهای مورد نیاز خود را سفارشی‌سازی کنند و در اختیار کاربران قرار دهند. مزایای Java FX Mobile را می‌توان از سه منظر بررسی کرد: منظر  تولیدکنندگان، منظر توسعه‌دهندگان و منظر اپراتورها.
از منظر تولیدکنندگان با استفاده از میان‌افزارها APIهای استاندارد جاوا، حذف و اضافه اجزای تشکیل‌دهنده نرم‌افزارها برای سخت‌افزارهای جدید در حال عرضه یا ایجاد قابلیت‌های جدید در نرم‌افزارهای مربوطه، بسیار راحت‌تر و با هزینه‌ کمتر انجام خواهد شد.
از دید توسعه‌دهندگان طرف سوم، با استفاده از API استاندارد و بازِ جاوا،‌ایجاد و تولید یک نرم‌افزار فراگیر که نیاز به تطبیق با سخت‌افزاری مختلف نداشته باشد و مستقل از محیط اجرایی، عملکرد صحیحی داشته باشد بسیار ساده‌تر شده است و هزینه‌های سرمایه‌گذاری کمتری را طلب می‌کند.
اپراتورها نیز می‌توانند با استفاده از این پلتفرم به آسانی و با هزینه‌های پایین‌تری به ارائه خدمات و نرم‌افزارهای مخصوص خود بپردازند و از مزایای عدم وابستگی این نرم‌افزارهای مبتنی بر جاوا به سخت‌افزار برخوردار گردند.
به هر حال، Java FX Mobile رقیبی سرسخت برای سیمبیان، ویندوز موبایل و Limo خواهد بود. سان با اهداف آرمان‌گرایانه خود پا به میدان رقابت غول‌هایی گذاشته است که آینده‌ای هیجان‌انگیز را رقم خواهند زد. آیا سیمبیان و یار قدیمی خود، نوکیا، برنده میدان خواهند بود یا ویندوز موبایل؟
آیا موتورولا‌ و متحدان بزرگش همچون NTTDoCoMo و NEC قادر خواهند بود لینوکس جدیدشان را در مقابل سیمبیان تجهیز کنند یا Limo باید آماده مبارزه با لینوکسی دیگر از جنس جاوا یا همان Java FX Mobile باشد؟ نتیجه این رقابت‌های سخت هرچه باشد، به یک مقصد منتهی می‌شود: زندگی بهتر و متفاوت از آنچه تاکنون تجربه کرده‌ایم!

تکنولوژی های جاوا (Java) در نرم افزارهای (Desk top)

شاخص مقالات

همان طور که شما جزئیات و نحوه زبان برنامه نویسی جاوا را فرا می گیرید، سؤالی برای شما مطرح می شود : کدام تکنولوژیهای جاوا را من نیاز دارم تا نرم افزار دسک تاپ را درست کنم و چه بسته هایی را باید وارد کنم؟ جواب به این بستگی دارد که شما چه نوع نرم افزاری را درست می کنید و چه کاری انجام می دهید.

این مقاله تولید کنندگان جدید در تکنولوژی های جاوا را مورد هدف قرار داده است این مقاله تکنولوژی هایی را شرح می دهد که در ساخت انواع مختلف نرم افزارهای جاوا دخیل هستند و زمانی که شما تصمیم می گیرید که از آنها استفاده نمایید به بررسی مقالات بیشتری بپردازید که جزئیات بیشتری را شرح خواهند داد که چگونه از این تکنولوژی ها استفاده نمایید و چطور از آنها در کنار هم استفاده کنید. در ضمن شما می توانید فراگیری برخی از تکنولوژی ها را از طریق بررسی کردن پیوندها در این مقاله شروع نمایید.

برای استفاده از هرگونه تکنولوژی در این مقاله ، شما باید پلاتفورم جاوا نصب شده در کامپیوتر خود داشته باشید.

نوع ، چشم انداز و عملکرد نرم افزار دسک تاپ

قبل از این که شما چیزهایی را در مورد تکنولوژی های موجود جاوا بخوانید ، شما باید دریابید که چه کسی از نرم افزار شما استفاده خواهد کرد، چگونه آنها از این نرم افزار استفاده خواهند نمود ، آیا این که این نرم افزار در دستگاه مشخص یا شبکه قرار خواهد گرفت ، و چه نوع چشم انداز یا واسط کاربر گرافیکی (GUI) این نرم افزار خواهد داشت.

قبل از این که شما نرم افزار را بسازید ، پنج حیطه ذیل را بررسی نمایید:

  • توزیع نرم افزار
  • GUI یا فقدان GUI
  • کارایی های نرم افزار
  • آرایش نرم افزار
  • دیگر تکنولوژی های جاوا

توزیع نرم افزار

نخست، شما باید تصمیم بگیرید که آیا نرم افزار شما توزیع خواهد شد. نرم افزار گسترده برنامه ای است که در بیش از یک کامپیوتر اجرا می شود و از طریق شبکه ارتباط برقرار می کند. بعضی از نرم افزارهای گسترده ، از دو برنامه نرم افزاری جداگانه هستند. نرم افزار سرور کمکی ( عقبی ) و نرم افزار کلاینت (client) جلویی. نرم افزار کمکی در سیستم مشترک ، مانند محیط عملیاتی Solaris یا لینوکس اجرا می شود و منابع مشترک ، مانند دیسک های پرینترها و مودم ها را مدیریت می کند. همچنین نرم افزار کمکی شامل قابلیت مهم پردازش برای نرم افزار است. نرم افزار کلاینت جلویی در ایستگاهها یا کامپیوترهای مشخص اجرا می شود. این نرم افزار همان چیزی است که کاربران می بینند زمانی که آنها از نرم افزار استفاده می کنند . نرم افزار کلاینت جلویی ، تابع های واسط کاربر را کنترل می کند مانند دریافت ورودی از کیبورد و نمایش دادن خروجی بر روی صفحه.

نرم افزارهای گسترده می توانند ساده باشند، که به یک کامپیوتر کلاینت و یک سرور نیاز دارند ؛ یا در حالت پیچیده تر ، به اکثر کامپیوترهای کلاینت و سرورهای مختلف نیاز دارند. نرم افزارهای غیر گسترده در دستگاه محلی اجرا می شوند و نیازی به دستیابی به سرورهای کمکی ندارند. شما ممکن است که یک برنامه ساده محاسباتی بنویسید. برای مثال، که فقط به صورت موضعی اجرا شود ، هر چند که شما این نوع نرم افزارها را گسترده می سازید.

اغلب مواقع ، نرم افزارهایی که شما می سازید ، برنامه های گسترده خواهند بود و در شبکه ها و یا در اینترنت با هر تعداد کامپیوتری که شما استفاده می کنید ، اجرا خواهد شد.

برای ساخت نرم افزارهای گسترده ، لازم است که شما چیزهایی را یاد بگیرید و از القای روش از راه دور جاوا

(Java RMI) استفاده کنید در حالی که روش های مقاصد راه دور جاوا از دیگر دستگاههای مجازی Java (JVMs) راه اندازی می شوند، و احتمالا” بر روی میزبان های مختلف Java RMI از متوالی سازی موضوع در پارامترهای مارشال و غیر مارشال استفاده می کنند و گونه ها را کوتاه نمی کند؛ و از چند ریختی موجود گرای واقعی ساپورت می نماید.

به عنوان مثال که چگونه Java RMI در نرم افزار دنیای واقعی کار می کند، مقاله “SLOOHing the Skies With Java Technologies,” را بخوانید، که شرح می دهد که چگونه Java RMI استفاده شده است تا تلسکوپ ها را قادر سازد تا با کامپیوترهای کاربر در سرتاسر دنیا ارتباط برقرار کند و به کاربران اجازه می دهد تا تلسکوپ را کنترل کنند.

در بخش ذیل بعضی از بسته هایی وجود دارند که برای پیاده سازی Java RMI شما استفاده خواهید نمود. توجه داشته باشید که اسامی بسته ذیل با MDYD[ شروع می شوند نه با MD YD.

در مورد اطلاعات زمینه و دستورالعمل درباره استفاده از Java RMI،  Java RMI Lesson در برنامه آموزشی Java را بخوانید.

GUI یا فقدان GUI

معمولا” نرم افزارها شامل مینی برنامه ها با عملکردهای مختلف می باشند. بعضی از مینی برنامه ها واسط کاربر گرافیکی (GUI) دارند، اگر تنها یک پنجره ساده یا باکس گفتگو باشد و اکثر مینی برنامه ها ، GUI ندارند. از این رو نرم افزار به نوبه خود ، GUI مهمی را دارند که شامل منوها، دکمه ها ، تول بارها، فیلدهای مشی و دیگر خصوصیات گرافیکی می باشند. عمدتا” GUI برای ورودی کاربراست ، اعم از این که کاربر دکمه ای را کلیک کند یا اطلاعاتی را تایپ نماید ، GUI کاربر را با اطلاعات اضافی آشکار می سازد. علاوه براین ، اغلب عناصر GUI ، اطلاعات را برای کاربر نشان می دهند. .

برای ساخت GUI ، شما می توانید از Java Foundation Classes/Swing (JFC/Swing) و Abstract Window Toolkit (AWT)API. استفاده کنید. اکثر رده ها و واسط ها در این بسته ها به شما اجازه می دهند که به آسانی دکمه ها ، موجودات چک ، باکس ، فیلدهای مشی و عناصر دیگر و عناصر لازم برای سازماندهی آنان را خلق کنید.

تاکنون راحت ترین راه برای ساخت چارچوب و کل عناصر GUI برای نرم افزار شما، استفاده کردن از محیط تولید مجتمع (IDE) مانند Net Beans IDE می باشد. IDE به شما اجازه می دهد تا عناصری را حرکت داده و آنها را در مکانی حذف نمایید در حالی که کد عنصر پیچیده ای را برای شما می نویسد. یادگیری این مسأله آسان است و برای شما وقت زیادی را ذخیره می سازد. اما هر تولید کننده باید دریابد که چگونه JFC/Swing و کد Awt  کار میکند، همچنین شما باید یاد بگیرید که به وسیله دست برای درک مفاهیم ، عناصر زیادی را برنامه ریزی کنید.

البته ، شما نباید که کل این بسته ها را وارد کنید ، فقط مواردی را که شما استفاده می کنید، وارد نمایید. اگر شما از Net Beans IDE استفاده می کنید ، شما در خواهید یافت که IDE عبارات وارد کردن را در کد شما بوجود می آورد همان طور که شما از JFC/Swingیا عناصرAwt  استفاده می کنید. شما به ایده خوبی می رسید که چه تعداد از این بسته ها را شما بر اساس آنها انجام می دهید.

برای بارگذاری کردن ( دان لود کردن) آخرین گونه Net Beans IDE ، به صفحه Net Beans IDE down loads  بروید. برای شروع به استفاده کردن از  Net Beans IDE ،  Net Beans IDE5.0Quick Start Guide.  را مشاهده می کنید.

برای فراگیری این که چگونه با استفاده از JFC/Swing کد گذاری کنید، درس A Brief Introduction to the Swing Package در برنامه آموزشی جاوا را بررسی کنید.

کارایی های نرم افزار:

این مقاله نمی تواند در مورد هر کارایی بحث کند که شما در نرم افزار خود از آن استفاده می کنید ، اما بعضی از کارایی ها در اکثر یا بیشتر نرم افزارها ، مشترک هستند. درک این مسأله لازم است که چگونه رانش رویداد عمل می کند. رانشگر رویداد، رده ای است که شامل دستورالعمل هایی است که چه اتفاقی رخ می دهد زمانی که کاربر دکمه ای را فشار می دهد یا منویی را انتخاب می کند. از این پس ، برخی از فعالیت ها انجام می شوند: نرم افزار می تواند اطلاعات را در GUI نشان بدهد ، داده ها را در فایل ها یا پایگاه داده ها بنویسد، فعالیت های ریاضی انجام بدهد و نتایج را در نمودارهای میله ای نشان بدهد و کارها را چنان آسان انجام بدهد چنانکه گویی باکس گفتگو را برای کاربر باز می کند تا اطلاعات بیشتری را وارد کند.

در مورد اطلاعات بیشتر در مورد چگونه کد گذاری نرم افزارهای GUI What is Swing? ، را ببینید در برنامه آموزش جاوا. شما یاد می گیرید که چگونه عناصر JFC/Swingرا ساخته و از آنها استفاده نمایید، رانشگرهای رویداد را بنویسید و غیره .

خواندن و نوشتن داده ها:

نوشتن ورودی کاربر در سیستم فایل مسطح در نرم افزارها، عمل متداولی است ، زمانی که آن را از فایلی می خوانید و در GUI می نویسید. برای مثال ، کاربر ممکن است که نام آدرس و شماره تلفن را در شکل GUI برای ثبت کردن نرم افزار در سرور واردکند. یک شیوه رانش کردن این داده ها ، داشتن نرم افزاری است که داده ها را در فایلی در کامپیوتر میزبان یا سرور بنویسد.

بسته MDYD\IR برای ورودی و خروجی سیستم (I/O) در رشته های داده ها ، متوالی سازی و سیستم فایل تهیه می شود. رشته I/O منبع ورودی یا مقصد خروجی را نشان می دهد. رشته می تواند انواع مختلف منابع و مقاصد ، از جمله فایل های دیسک ، وسایل ، برنامه های دیگر و آرایه های حافظه را نشان بدهد. رشته ها از انواع

مختلف داده ها ، من جمله بایت های ساده ، انواع داده های اولیه ، کارکترهای موضعی و موجودات ساپورت می نماید. بعضی از رشته ها صرفا” ، داده ها را انتقال می دهند ، در حالی که رشته های دیگر داده ها را به طرق مفید ، برزش نموده و انتقال می دهند.

مسئله ای نیست که چگونه رشته ها عمل می کنند ، کل رشته ها همان مدل ساده را در برنامه هایی نشان می دهند که از آنها استفاده می شود؛ رشته عبارتست از توالی داده ها. دو تا از گروههای متداول تر استفاده شده در بسته MDYD\IR عبارتند از :IOHQSXW5WHDP    و IOH2XW5W5WHDP  . هر دو بایت هایی را بوجود می آورند که به فایل ها متصل شده اند. برای یادگیری مطالب بیشتر در مورد رشته ها، I/O Streams در برنامه آموزشی جاوا بررس کنید.

روش متداول برای ذخیره سازی داده ها ، استفاده کردن از سیستم مدیریت پایگاه داده ها می باشد. برای کد گذاری نرم افزار خود برای نوشتن داده ها در پایگاه داده ها و سپس بازیابی نتایج ، لازم است که شما JDBC API. را یاد بگیرید. JDBC APIموجب دستیابی به داده های عمومی از زبان برنامه نویسی جاوا می شود ، که به شما امکان می دهد تا به طور مجازی به هر نوع منبع داده ای دسترسی پیدا کنید. از پایگاه داده های رابطه ای گرفته تا برگه گسترده ها و فایل های مسطح. تکنولوژی JDBC شالوده ای را فراهم می کند تا براساس آن ، ابزارها و واسط های متناوب را بنویسید. JDBC API برای دستیابی به پایگاه داده ها از هر دو مدل دولایه و سه لایه ساپورت می کند.

در مدل دو لایه ، جاوا applet  یا نرم افزار مستقیما” با منبع داده ها ارتباط برقرار می کند. این مدل نیاز به رانشگر تکنولوژی JDBC دارد که بتواند با منبع داده های خاص ارتباط برقرار کند منبعی که نرم افزار به آن دسترسی دارد. فرمان های کاربربه پایگاه داده ها یا منبع دیگر داده ها منتقل می شوند و نتایج این عبارات به کاربر برگردانده می شوند. منبع داده ها ممکن است که در ماشین دیگری قرار گرفته باشند که کاربر به طریقی به شبکه وصل می شود. از این موضوع به عنوان پیکره بندی سرور – کلانیت یاد می شود. دستگاه کاربر، کلانیت است و دستگاه قرار گرفته در منبع داده ها ، سرور می باشد. برای مثال شبکه می تواند اینترانت شرکت باشد که کارمندان را در شرکت به هم وصل می کند، یا ممکن است که اینترنت باشد.

در مدل سه لایه ، نرم افزار ، فرمان ها را به لایه میانی سرویس ها ارسال می کند ، که سپس فرمان ها را به منبع داده ها ارسال می کند. منبع داده ها فرمان ها را پردازش نموده و نتایج را به لایه میانی می فرستد ، که سپس آنها را برای کاربر می فرستد. مدیران سیستم اطلاعات مدیریت (MIS) ، مدل سه لایه را بسیار جذاب می دانند چون

لایه میانی حفظ کنترل را در حین دستیابی ممکن می سازد. و همچنین انواع به روز کران هایی که برای داده های گروهی اعمال می شوند.مزیت دیگر این است که مدل سه لایه ، آموزش نرم افزارها را ساده می شازد . برای مثال داده ها در پایگاه داده ها یا عناصر جدید اضافه شده بدون تداخل با تجربه کاربر ، تغییر می کنند. در نهایت ، در اکثر موارد ، ساختار سه لایه ، مزیت های عملکردی را نشان می دهد چون تغییرات متعدد و حافظه ، کارامدتر و مؤثرتر هستند.

برای نوشتن نرم افزارهایی که با استفاده از JDBC API بتوانید به پایگاه داده ها دسترسی پیدا کنید ، از موارد ذیل استفاده کنید:

  • طبقات و واسط هایی از بسته MDYD\VT
  • سیستم مدیریت پایگاه داده ها، مانند سیستم پایگاه داده های DB جاوا.
  • شما می توانید DB جاوا را با Sun Java System Application Server Platform Edition9 ویرایش نهم به عنوان بخشی از دان لود Java EE ، دان لود نمایید.
  • رانشگرهای مناسب برای سیستم مدیریت پایگاه داده ها.

برای فراگیری مطالب بیشتر به هنگام استفاده از JDBC API در نرم افزار خود ، Getting Started With the JDBC API.  را مشاهده کنید.

برای دان لود کردن سرور و پایگاه داده ها و IDE برای نوشتن نرم افزار، به Net Beans IDE5.0download page  بروید.

انجام دادن محاسبات و مدیریت داده ها:

بیشتر نرم افزار شما دارای کدی برای دستورالعمل هایی است که پشت صحنه رخ می دهند. احتمالا” شما با استفاده از رشته ها و اعداد برنامه ریزی زیادی انجام می دهید. چون شما باید کل داده ها را در زبان برنامه نویسی جاوا تایپ نمایید. شما باید با روش استفاده از بسته MDYD\QJ آشنا باشید.

در بسته MDYD\ODQ ، شما باید رشته ها را ، توالی کاراکترها درک کنید. رشته ها به طور گسترده در برنامه نویسی تکنولوژی جاوا استفاده می شوند. طبقه بندی  ۶WJQJ  برای ایجاد و برزش رشته ها استفاده می شود و به صورت طبقه  ۶WJQJ%XIOGHU .

شما باید با طبقه ۱XP EHU و زیر طبقات آن در بسته MDYD\ODQ آشنا باشید، که شما را قادر ساد که از نمونه های این طبقات استفاده کنید تا از انواع عدد اول. طبقات  ۳UQW5WHDP و HFIPDO)RUPDW روش هایی را برای نوشتن خروجی عددی فرمت بندی شده ارائه می کنند : در نهایت، طبقه O DWK  شامل تابع های ریاضی برای متمم کردن اپراتورهای ساخته شده در زبان است . این طبقه ، روش هایی برای تابع های مثلثاتی ، تابع های نمایی و غیره دارد.

به منظور کنترل یا برزش انواع مختلف داده ها ، لازم است که شما چیزهایی را در مورد چارچوب کلکسیون ها ، یک ساختار منسجم و واحد برای نشان دادن و برزش کلکسیون ها یاد بگیرید. معمولا” ، کلکسیون ها ، آیتم های داده های را نشان می دهند که گروه طبیعی ، مانند poker hand ، کلکسیون کارت ها ، فولدر پستی ، کلکسیون نامه ها یا دفترچه تلفن را نشان می دهند دفترچه ای که اسامی به همراه شماره تلفن ها در آن نوشته شده اند.

همزمانی تقریبی

اغلب نرم افزارها در یک زمان کار بیشتری انجام می دهند. برای مثال، نرم افزار صوتی پیوسته به طور همزمان ، اصوات دیجیتالی شبکه را خوانده ، آنرا باز نموده ، اجرای آن را مدیریت و نمایش آن را برای کاربر به روز می کند. معمولا” برنامه پردازش کلمه باید آماده باشد تا به کیبورد و رودادهای ماوس پاسخ بدهد، مسأله ای نیست که چگونه در زمان شلوغی ، متن را مجددا” فرمت بندی می کند یا نمایشگر را به روز می کند. نرم افزاری که چنین کاری را انجام می دهد به عنوان نرم افزار همزمانی شناخته شده است. ساپورت اصلی همزمانی در بسته

 MDYD \XWOF R Q FXUHQW موجود است.

کنترل خطا

زبان برنامه نویسی جاوا از استثناها برای کنترل خطاها و دیگر رویدادهای پیش بینی نشده استفاده می کند. استثناء رویدادی است که در حین اجرای برنامه رخ می دهد و جریان عادی دستورالعمل های برنامه را قطع می کند. زمانی که خطایی در روش رخ بدهد ، روش موجود را بوجود می آورد و آنرا در سیستم رانش بررسی می کند. موجود ، که موجود استثنایی نامیده می شود ، شامل اطلاعاتی در مورد خطا من جمله نوع و حالت برنامه است زمانی که خطا رخ می دهد. ایجاد موجود استثنایی و کنترل آن در سیستم زمان رانش ، به عنوان بر طرف کردن استثناء شناخته شده است.

برای کنترل استثناها در نرم افزار ، لازم است که شما دریابید که چگونه کد خود را بنویسید از این رو نرم افزار می تواند متوجه استثناء بشود و آن را برطرف کند. شما می توانید کل جزئیات را در مورد کنترل استثناء در Exceptions lesson در برنامه آموزشی Java یاد بگیرید.

آرایش نرم افزار

از Java Plug-in technology برای آرایش اپلت ها استفاده کنیدزمانی که شما از نرم افزار خود می خواهید که در بروزر اجرا شود یا زمانی که نرم افزار کاملا” با محتوای صفحه وب یکی می شود. زمانی که شما می خواهید که نرم افزار به تنهایی در دسک تاپ کاربر باقی بماند ، از Java Web Start technologyاستفاده کنید.

تکنولوژی Web Start Java نیاز به نرم افزارهایی دارد تا در فایل های آرشیو جاوا (JAR) بسته بندی شوند. فرمت فایل JAR شما را قادر می سازد تا فایل های متعدد را در یک فایل آرشیو دسته بندی کنید. معمولا” ، فایل JAR شامل فایل های طبقه و منابع اضافی توأم با اپلت ها و نرم افزارها است.

فایلهای JAR با فرمت فایل ZIP بسته بندی می شوند ، از این رو شما می توانید از آنها برای کارهایی مانند متراکم سازی داده ها بدون اتلاف ، آرشیوبندی ، پراکنده سازی و بازکردن آرشیو استفاده کنید. این کارها مهمترین کاربردهای فایل های JAR هستند و شما بسیاری از مزایای فایل JAR را با استفاده از خصوصیات اصلی کشف خواهید کرد.

اگر شما بخواهید که از قابلیت پیشرفته ارائه شده از طریق فرمت فایل JAR مانند امضای الکترونیکی استفاده کنید ، در ابتدا لازم است که شما با فعالیت های بنیادی آشنا شوید. برای انجام دادن کارهای اصلی با فایل های JAR ، شما از ابزار JAR به عنوان بخشی از Java Development Kit (JDK) استفاده می کنید. درس

Using JAR Files: The Basics در برنامه آموزشی جاوا ، جزئیات استفاده از JAR را شرح می دهد.

به محض این که شما نرم افزار بسته بندی شده در فایل JAR را داشته باشید ، شما می توانید از تکنولوژی Web Start Java برای آرایش نرم افزار استفاده کنید. نرم افزار Web Start جاوا توانی را برای عرضه کردن نرم افزارهای کامل به بازار تنها با یک کلیک فراهم می سازد. کاربر می تواند نرم افزارها را دان لود کرده و آنها را به بازار عرضه نماید، مانند برنامه کامل برگه گسترده یا کلانیت چت اینترنت ، بدون وارد شدن در روش های پیچیده نصب.

در عوض ، با نرم افزار Web Start جاوا ، کاربر با یک کلیک کردن پیوند در صفحه وب ، نرم افزار تکنولوژی بنیاد جاوا را به بازار عرضه می کند. پیوند به فایل (JNLP) پروتکل عرضه شبکه جاوا وصل می شود ، که نرم افزار Web Start جاوا را برای دان لود کردن ، ذخیره سازی و رانش نرم افزار ، آموزش می دهد.

برای یادگیری جزئیات با استفاده از نرم افزار Web Start جاوا برای آرایش نرم افزار

 Java Web Start soft ware lessonدر برنامه آموزشی جاوا را بخوانید.

دیگر تکنولوژی های جاوا

این بخش در مورد برخی از تکنولوژی های دیگر جاوا بحث خواهد کرد که شما باید آنها را بررسی کنید.

ایمنی نرم افزار

اکثر تولید کنندگان در رابطه با ایمنی نرم افزار بسیار آگاه هستند و تکنولوژی های جاوا به آدرس دادن این مسأله به طرق مختلف کمک می کند . تکنولوژی ایمنی جاوا شامل مجموعه بزرگی از API ها ، ابزار آلات و پیاده سازی های استفاده شده در الگوریتم های ایمنی ، مکانیسم ها و پروتکل ها می باشد. API های ایمنی پلاتفورم جاوا شامل طیف وسیعی از مناطق من جمله رمزی نگاری ، شالوده کلید عمومی ، ارتباط مطمئن ، معتبر سازی و کنترل دستیابی هستند. تکنولوژی ایمنی جاوا شما را با شبکه جامع امنیتی برای نوشتن نرم افزار ها آشنا می سازد ، و همچنین کاربر یا مدیر را با مجموعه ای از ابزار برای مدیریت مطمئن نرم افزارها ، آشنا می کند.

بسته ها و طبقات امنیتی زیادی وجود دارند که در اینجا ذکر می شوند ، اما منابع متعدد به شما در فراگیری ایمنی نرم افزار با استفاده از تکنولوژی های جاوا کمک می کنند. صفحه Security را در مورد لیست راهنماهای برنامه نویس ، خصوصیات API ، ابزار آلات و برنامه های آموزشی مشاهده کنید. علاوه بر این ، شما می توانید صفحه Java SE Security را بررسی کنید که شامل پیوندهای زیادی در مقالات ، صفحات سفید و اطلاعات دیگر می باشد.

API حالت انحصاری تمام پرده

اگر شما به گرافیک های عملکرد بالا در نرم افزار خود نیاز داشته باشید، برای برنامه هایی مانند گیم ها یا سلایدها ، شما باید چیزهایی را در مورد Full-Screen Exclusive Mode APIیاد بگیرید. حالت انحصاری تمام پرده ویژگی جدید قدرتمندی است که شما را قادر می سازد تا سیستم پنجره سازی را معلق نگه دارید از این رو نرم افزار می تواند مستقیما” بر روی پرده رسم شود. درس Full-Screen Exclusive Mode API در برنامه آموزشی جاوا به شما در مورد هر چیزی آموزش می دهد که شما برای استفاده از API به آن نیاز دارید.

بین المللی سازی

بین المللی سازی فرآیند طراحی نرم افزار است به گونه ای که با زبان ها و مناطق مختلف بدون تغییرات مهندسی تطبیق داشته باشد. گاهی مواقع واژه Internationalization به صورت i18n به اختصار نوشته می شود ، چون ۱۸ حرف بین  اولین و آخرین حرف وجود دارد اثر بین المللی سازی در جاوا به شما یاد می دهد که شما به چیزهایی نیاز دارید تا در مورد بین المللی سازی و محل سازی یاد بگیرید. محلی سازی اغلب به صورت L10N به اختصار نوشته می شود ، که فرآیند انتخاب نرم افزار برای منطقه یا زبان خاص با افزودن عناصر منطقه خاص و ترجمه متن می باشد. بسته ای که شما بسیار زیاد برای بین المللی سازی استفاده می کنید MDYD\XWO برای اطلاعات اضافی می باشد، صفحه Core Java Internationalization   را مشاهده کنید

خلاصه

عدد مطلق تکنولوژی های موجود جاوا گیج کننده هستند ، اما این مقاله به شما نقطه شروعی می دهد تا چیزهای لازم را یاد بگیرید تا نوع نرم افزارهای دسک تاپ مورد نیاز را طراحی کنید. اگر شما می خواهید که نرم افزار شما ، قابلیت های خاصی داشته باشند ، شما احتمالا” تکنولوژی های پیشرفته جاوا را پیدا می کنید تا برنامه خود را آن طور که لازم دارید ، طراحی کنید.

برای پیدا کردن لیست مختصر تکنولوژی های جاوا و فراگیری آن چه که آنها می خواهند مقاله

“Unraveling Java Terminology” را مشاهده کنید. این مقاله متداول ترین واژه های جاوا را تعریف می کند و پیوندهایی را برای اطلاعات بیشتر دان لودها فراهم می سازد. علاوه بر این ، شما می بینید که چگونه تکنولوژی ها با هم تطبیق پیدا می کنند و به سرعت وارد اسناد می شوند در صفحه Java SE 6 Platform at a Glance .

به بررسی دستورالعمل هایی بپردازید که چگونه از تکنولوژی های جاوا برای طراحی نرم افزار در مسائل آتی خبرنامه

Java Technology Fundamentals و در New to Java Programming Center استفاده کنید. همان طور که در این وب سایت استفاده شده اصطلاحات “Java Virtual machine” یا “JVM” به معنای ماشین مجازی برای پلاتفورم جاوا می باشند.

تفاوت جاوااسکریپت با جاوا

تقریباً در هر جا که آموزش جاوااسکریپت هست این مطلب هم مشاهده می شود چون خیلی ها فکر می کنند که این دو با هم یکی بوده یا حداقل اینکه جاوااسکریپت ساده شده زبان جاوا برای کاربرد در وب می باشد که اصلاً این چنین نیست.

همانطور که میدانید جاوااسکریپت متعلق به شرکت نت اسکیپ می باشد اما زبان جاوا متعلق به شرکت Sun Microsystems است. جاوااسکریپت در اصل یک زبان اسکریپت نویسی است نه یک زبان برنامه نویسی کامپیوتر، شاید بتوان اسکریپتها را یک نوع زبان برنامه نویسی خیلی سبک و ساده نامید اما جاوا یک زبان برنامه نویسی کاملاً پیچیده مانند زبان C است. تفاوت دیگر آنها اینست که جاوااسکریپت توسط یک برنامه مفسر یعنی interpreter  در مرورگر تعریف و تفسیر شده تا قابل اجرا باشد و حتماً هم این کار در مرورگر انجام می شود اما برنامه های جاوا باید توسط یک کامپایلر Compiler ، کامپایل شده که کامپایل شدن یعنی جمع آوری اطلاعات مورد نظر و ترجمه آن اطلاعات به زبان قابل فهم برای کامپیوتر و تبدیل آن به یک برنامه کاربردی واحد و مستقل برای کاربر را گویند. به همین دلیل برنامه های جاوا را که اپلت applet می نامند، مستقل اجرا می شوند. البته اپلتهای جاوا را می توان در صفحات وب هم گنجاند.

در یک جمله می توان گفت که جاوااسکریپت فقط در صفحات وب تأثیرگذار است اما زبان جاوا برای خلق برنامه های پیچیده در کامپیوتر ساخته شده است.

3 دیدگاه در “شناخت جاوا و تکنولوژی های آن

  1. Hamed گفت:

    سلام مطالب خیلی بجا و مفید بودند واگر به تفصیل باشند به مراتب عالی خواهد بود.

  2. محمد گفت:

    سلام
    واقعا مطالبتون قابل استفاده هستند.
    خسته نباشید

  3. razieh گفت:

    ممنون مفید بود.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *