Java EE - چیست؟
Java EE پلتفرمی است که بر روی Java SE ساخته شده است که یک API و محیط زمان اجرا را برای توسعه و اجرای برنامه های شبکه در مقیاس بزرگ، چند لایه، مقیاس پذیر، قابل اعتماد و ایمن فراهم می کند. به این گونه برنامه ها، برنامه های کاربردی سازمانی می گویند زیرا آنها مشکلاتی را که کسب و کارهای بزرگ با آن مواجه هستند حل می کنند. با این حال، این فقط شرکتهای بزرگ و سازمانهای دولتی نیستند که میتوانند از این نوع برنامهها و مزایایی که Java EE ارائه میکند بهره ببرند. راه حل هایی که پلت فرم Java EE ارائه می دهد برای توسعه دهندگان فردی و سازمان های کوچک مفید و گاهی اوقات به سادگی ضروری هستند.توسعه جاوا EE
Java EE از طریق فرآیند جامعه جاوا (JCP) که در سال 1998 تشکیل شد، توسعه یافته است. این به افراد علاقه مند اجازه می دهد تا در شکل دادن به نسخه های آینده مشخصات پلت فرم زبان جاوا شرکت کنند. اساس این فرآیند JSR (درخواست مشخصات جاوا) است، اسناد رسمی که مشخصات و فناوریهایی را که برای اضافه شدن به پلتفرم جاوا پیشنهاد میشود، توصیف میکند. چنین درخواست هایی توسط اعضای جامعه - توسعه دهندگان و شرکت های معمولی انجام می شود. مورد دوم شامل اوراکل، رد هت، آیبیام، آپاچی و بسیاری دیگر میشود. آن ها بچه ها ویژگی ها و چیزهای جدیدی را برای در نظر گرفتن پیشنهاد می کنند که می خواهند در جاوا گنجانده شوند. و سپس رأی گیری می کنند که بر اساس آن تصمیم گیری می شود که چه چیزی در نسخه بعدی گنجانده شود. تاریخچه نسخه Java EE به شکل زیر است:- J2EE 1.2 (دسامبر 1999)
- J2EE 1.3 (سپتامبر 2001)
- J2EE 1.4 (نوامبر 2003)
- Java EE 5 (مه 2006)
- Java EE 6 (دسامبر 2009)
- Java EE 7 (مه)
- Java EE 8 (اوت 2017)
- جاکارتا EE 8 (سپتامبر 2019)
معماری کاربردی Java EE
یک مقدمه کوتاه برای درک آسان تر، اجازه دهید در مورد ساختار برنامه های Java EE و برخی از اصطلاحاتی که در ادامه استفاده خواهیم کرد صحبت کنیم. برنامه های Java EE ساختاری دارند که دارای دو ویژگی کلیدی است:- اولا، چند سطحی. برنامه های Java EE چند لایه هستند و ما در این مورد با جزئیات بیشتری صحبت خواهیم کرد.
- دوم، لانه سازی. یک سرور Java EE (یا سرور برنامه) با کانتینرهای مؤلفه در داخل آن وجود دارد. این ظروف حاوی اجزای (بینگو!) هستند.
سطوح برنامه
برنامه های چند لایه برنامه هایی هستند که بر اساس اصول عملکردی به ماژول های ایزوله (سطوح، لایه ها) تقسیم می شوند. به طور معمول (از جمله در زمینه توسعه Java EE)، برنامه های کاربردی سازمانی به سه سطح تقسیم می شوند:- مشتری؛
- سطح متوسط؛
- سطح دسترسی به داده ها
-
لایه مشتری برنامه ای است که داده ها را از سرور Java EE (لایه میانی) درخواست می کند. سرور نیز به نوبه خود درخواست مشتری را پردازش می کند و به آن پاسخ می دهد. برنامه مشتری می تواند یک مرورگر، یک برنامه مستقل (موبایل یا دسکتاپ) یا سایر برنامه های سرور بدون رابط گرافیکی باشد.
-
سطح میانی به نوبه خود به سطح وب و سطح منطق تجاری تقسیم می شود.
-
لایه وب شامل اجزایی است که تعامل بین مشتریان و لایه منطق تجاری را فراهم می کند.
فناوریهای Java EE زیر در سطح وب استفاده میشوند:
- فناوری چهره های JavaServer (JSF)؛
- صفحات سرور جاوا (JSP)؛
- زبان بیان (EL)؛
- سرولت ها
- زمینه ها و تزریق وابستگی برای جاوا EE (CDI).
-
لایه منطق تجاری شامل اجزایی است که تمام منطق تجاری برنامه را پیاده سازی می کند. منطق کسب و کار کدی است که عملکردی را ارائه می دهد که نیازهای برخی از حوزه های تجاری خاص (صنعت مالی، بانکداری، تجارت الکترونیک) را پوشش می دهد. این سطح را می توان هسته کل سیستم در نظر گرفت.
فناوری هایی که در این سطح درگیر هستند:
- Enterprise JavaBeans (EJB)؛
- خدمات وب JAX-RS RESTful;
- نهادهای Java Persistence API.
- سرویس پیام جاوا.
-
-
سطح دسترسی به داده ها این سطح گاهی اوقات سطح سیستم های اطلاعات سازمانی (EIS) نامیده می شود. EIS از سرورهای مختلف پایگاه داده، سیستم های برنامه ریزی منابع سازمانی ERP (برنامه ریزی منابع سازمانی) و سایر منابع داده تشکیل شده است. لایه منطق تجاری به این لایه برای داده دسترسی دارد.
در این سطح می توانید فناوری هایی مانند:
- Java Database Connectivity API (JDBC);
- Java Persistence API;
- معماری اتصال دهنده جاوا EE;
- Java Transaction API (JTA).
سرورهای برنامه، کانتینرها، اجزای سازنده
بیایید نگاهی به تعریف Java EE از ویکی پدیا بیاندازیم. Java EE مجموعه ای از مشخصات و مستندات مربوط به زبان جاوا است که معماری پلتفرم سرور را برای وظایف شرکت های متوسط و بزرگ توصیف می کند. برای درک بهتر معنای "مجموعه مشخصات" در این زمینه، بیایید یک قیاس با رابط جاوا ترسیم کنیم. رابط جاوا خود فاقد عملکرد است. این به سادگی قراردادی را تعریف می کند که بر اساس آن برخی از عملکردها اجرا می شود. اما کلاس های دیگر اینترفیس را پیاده سازی می کنند. علاوه بر این، یک رابط می تواند چندین پیاده سازی داشته باشد که هر کدام ممکن است در برخی جزئیات با یکدیگر متفاوت باشند. با مشخصات همه چیز دقیقاً یکسان است. Naked Java EE فقط مجموعه ای از مشخصات است. این مشخصات توسط سرورهای مختلف جاوا EE پیاده سازی شده است. سرور Java EE یک برنامه کاربردی سرور است که APIهای پلتفرم Java EE را پیاده سازی می کند و خدمات استاندارد Java EE را ارائه می دهد. سرورهای جاوا EE گاهی اوقات سرورهای کاربردی نامیده می شوند. داده های سرور می تواند شامل اجزای برنامه باشد که هر کدام با سطح خود در یک سلسله مراتب چند سطحی مطابقت دارد. سرور Java EE خدمات مختلفی را در قالب یک کانتینر به این قطعات ارائه می کند. کانتینرها رابط بین مؤلفه هایی هستند که میزبانی می کنند و عملکرد سطح پایین مستقل از پلت فرم که از مؤلفه پشتیبانی می کند. کانتینرها خدمات خاصی را به اجزایی که میزبانی می کنند ارائه می دهند. به عنوان مثال، مدیریت چرخه عمر توسعه، تزریق وابستگی، همزمانی و غیره. کانتینرها پیچیدگی فنی را پنهان می کنند و قابلیت حمل را افزایش می دهند. چهار نوع مختلف کانتینر در Java EE وجود دارد:-
کانتینرهای اپلت توسط اکثر مرورگرها پیاده سازی می شوند. هنگام توسعه اپلت ها، می توانید روی جنبه بصری برنامه تمرکز کنید، در حالی که کانتینر یک محیط امن را فراهم می کند.
-
Application Client Container (ACC) شامل مجموعهای از کلاسهای جاوا، کتابخانهها و سایر فایلهای مورد نیاز برای پیادهسازی ویژگیهایی مانند تزریق، مدیریت امنیت و خدمات نامگذاری در برنامههای Java SE است.
-
کانتینر وب خدمات اصلی را برای مدیریت و اجرای اجزای وب (سرورلت ها، اجزای EJB Lite، صفحات JSP، فیلترها، شنوندگان، صفحات JSF و خدمات وب) ارائه می دهد. این مسئول نمونه سازی، مقداردهی اولیه و فراخوانی سرولت ها و پشتیبانی از پروتکل های HTTP و HTTPS است. این کانتینر برای ارائه صفحات وب به مرورگرهای مشتری استفاده می شود.
-
کانتینر EJB (Enterprise Java Bean) مسئول مدیریت و اجرای اجزای مدل EJB است که حاوی لایه منطق تجاری برنامه است. موجودیتهای جدید EJB bean را ایجاد میکند، چرخه حیات آنها را مدیریت میکند و خدماتی مانند تراکنش، امنیت، همزمانی، توزیع، نامگذاری یا قابلیتهای فراخوانی ناهمزمان را ارائه میکند.
-
اپلت ها برنامه های رابط کاربری گرافیکی (GUI) هستند که در مرورگر اجرا می شوند. آنها از API غنی Swing برای تولید رابط های کاربری قدرتمند استفاده می کنند.
-
برنامه ها برنامه هایی هستند که در سمت کلاینت اجرا می شوند. به طور معمول آنها رابط کاربری گرافیکی (GUI) هستند و برای پردازش دسته ای استفاده می شوند.
-
برنامه های کاربردی وب (شامل سرورها و فیلترهای آنها، شنوندگان رویدادهای وب، صفحات JSP و JSF) - در یک کانتینر وب اجرا می شوند و به درخواست های HTTP از مشتریان وب پاسخ می دهند. Servlets همچنین از SOAP و RESTful web service endpoints پشتیبانی می کند.
-
برنامه های کاربردی (ساخته شده با Enterprise Java Beans، Java Message Service، Java Transaction API، تماس های ناهمزمان، Time Services) در یک کانتینر EJB اجرا می شوند. EJB های مدیریت کانتینر، منطق تجاری تراکنشی را مدیریت می کنند. آنها را می توان به صورت محلی یا از راه دور از طریق RMI (یا HTTP برای خدمات وب SOAP و RESTful) در دسترس قرار داد.
فن آوری ها
بنابراین، ما معماری را مرتب کرده ایم. ساختار کلی باید واضح باشد. در فرآیند تشریح اجزای معماری، به برخی از فناوریهای Java EE مانند EJB، JSP و غیره پرداختیم. اجازه دهید نگاهی دقیقتر به آنها بیندازیم. جدول زیر فناوری هایی را نشان می دهد که عمدتاً در سطح مشتری استفاده می شوند:فن آوری | هدف |
---|---|
سرولت ها | کلاس های جاوا که به صورت پویا درخواست های مشتری را پردازش می کنند و پاسخ ها را تولید می کنند (معمولاً صفحات HTML). |
چهره های سرور جاوا (JSF) | چارچوبی برای ساخت برنامه های کاربردی وب با رابط کاربری. به شما امکان میدهد اجزای رابط کاربری (مثلاً فیلدها و دکمهها) را در یک صفحه قرار دهید، این مؤلفهها را تبدیل و تأیید کنید، و این دادهها را در فضای ذخیرهسازی سمت سرور ذخیره کنید. |
فن آوری Faces Faces Server Java | این یک زیرنوع از برنامه JSF است که از صفحات XHTML به جای صفحات JSP استفاده می کند |
صفحات سرور جاوا (JSP) | اسناد متنی که در سرورلت ها کامپایل می شوند. به شما امکان می دهد محتوای پویا را به صفحات ثابت (مانند صفحات HTML) اضافه کنید. |
کتابخانه برچسب استاندارد صفحات سرور جاوا (JSTL) | یک کتابخانه برچسب که عملکرد اصلی را در زمینه صفحات JSP کپسوله می کند. |
زبان بیان | مجموعه ای از تگ های استاندارد که در صفحات JSP و Facelet برای دسترسی به اجزای Java EE استفاده می شود. |
زمینه ها و تزریق وابستگی برای Java EE (CDI) | نشان دهنده مجموعه ای از خدمات ارائه شده توسط کانتینرهای Java EE برای مدیریت چرخه عمر اجزا و همچنین تزریق اجزا به اشیاء مشتری به روشی امن است. |
اجزای لوبیا جاوا | اشیایی که به عنوان ذخیره موقت داده برای صفحات برنامه عمل می کنند. |
فن آوری | هدف |
---|---|
اجزای Enterprise Java Beans (Enterprise Bean). | EJB ها لوبیاهای مدیریت شده ای هستند که دارای عملکرد اصلی یک برنامه کاربردی هستند. |
خدمات وب JAX-RS RESTful | این یک API برای توسعه خدمات وب است که با سبک معماری REST مطابقت دارد. |
نقاط پایانی سرویس وب JAX-WS | API برای ایجاد و مصرف خدمات وب SOAP. |
موجودیت های Java Persistence API (JPA). | یک API برای دسترسی به داده ها در ذخیره سازی داده ها و تبدیل آن داده ها به اشیاء زبان برنامه نویسی جاوا و بالعکس. |
لوبیاهای مدیریت شده جاوا EE | لوبیاهای مدیریت شده که منطق تجاری برنامه را ارائه میکنند اما به ویژگیهای تراکنشی یا امنیتی EJB نیاز ندارند. |
سرویس پیام جاوا | Java Message Service (JMS) API یک استاندارد پیام رسانی است که به اجزای برنامه Java EE امکان ایجاد، ارسال، دریافت و خواندن پیام ها را می دهد. این امر ارتباط توزیع شده، قابل اعتماد و ناهمزمان بین اجزا را تضمین می کند. |
فن آوری | هدف |
---|---|
Java Database Connectivity API (JDBC) | API سطح پایین برای دسترسی و بازیابی داده ها از فروشگاه های داده. یک استفاده معمولی از JDBC نوشتن پرس و جوهای SQL در برابر یک پایگاه داده خاص است. |
Java Persistence API | یک API برای دسترسی به داده ها در ذخیره سازی داده ها و تبدیل آن داده ها به اشیاء زبان برنامه نویسی جاوا و بالعکس. API سطح بسیار بالاتر در مقایسه با JDBC. تمام پیچیدگی های JDBC را از توسعه دهنده در زیر کاپوت پنهان می کند. |
معماری اتصال دهنده جاوا EE | API برای اتصال سایر منابع شرکتی مانند:
|
Java Transaction API (JTA) | یک API برای تعریف و مدیریت تراکنش ها، از جمله تراکنش های توزیع شده و تراکنش ها در چندین فروشگاه داده. |
GO TO FULL VERSION