برنامک[۱] یا اپلت (به انگلیسی: applet)، یک نرمافزار کاربردی کوچک است که در زمینه و متن برنامهٔ دیگری اجرا میشود، بهعنوان مثال در یک جویشگر وب. برنامک معمولاً تابعهای با حجم کم را انجام میدهد که کاربرد مستقل ندارند.
مقدمه
اصطلاح اپلت (برنامک) در سال ۱۹۹۳ توسط applescript معرفی شد. کلمهٔ برنامک میتواند برای شرح برنامههایی استفاده شود که بهتنهایی و بدون لینک به شبکه قابل استفاده هستند. از قبیل بستههای کامل که با سیستمعامل ارائه میشوند برای مثال ماشینحساب یا یک ویرایشگر متن.
برنامکها و برنامهها
برنامکها برعکس برنامهها نمیتوانند مستقل اجرا شوند. ساختار برنامک یک رابط گرافیکی قدرتمند است و اغلب با کاربر به صورت فعل و انفعالی در ارتباط است. هرچند آنها از لحاظ امنیت دارای ضعف میباشند.
برنامکها در قالبی که توسط برنامهٔ میزبان و از طریق افزایه (پلاگین) است اجرا میشوند یا در برنامههای کاربردی سیار که بوسیلهٔ مدل برنامهنویسی برنامک پشتیبانی میشوند اجرا میشود.
مثالها
جاوا اپلت و فیلمهای فلش نمونههایی از اپلتها هستند. نمونهٔ دیگر اپلتها Windows Media Player است که برای نشان دادن فایلهای ویدئویی در اینترنت اکسپلورر و دیگر جستجوگرهای وب که افزایه (پلاگین) را پشتیبانی میکنند مورداستفاده قرار میگیرد. بعضی از افزایهها علاوه بر نمایش مدلهای مختلف سهبُعدی در یک جویشگر وب بوسیلهٔ برنامک اجازهٔ چرخاندن مدل و بزرگنمایی آن را به کاربر میدهند. بسیاری از جویشگرها، بازیهای مبتنی بر برنامک هستند، ولی، برخی برنامههای تابعی هستند که احتیاج به نصب دارند.
زندگی یک فایل سرولت. سرولت برنامهای در زبان برنامهنویسی جاوا برای توسعه تواناییهای سرورها است، هرچند سرولتها میتوانند به هر نوع درخواستی پاسخ دهند، اما بیشترین کاربرد را در استقرار برنامههایی با قابلیت استقرار روی وب سرورها دارند،و میتوان سرولت جاوا را نمونهای مانند پی اچ پی ای اس پی دات نت دانست.[۱]
یک سرولت کلاسی از جاواست که در جاوای سازمانی مطابق با رابط برنامهنویسی سرولت جاواست، پروتکلی که مسئول پاسخ به درخواست است. آنها تنها به پروتکل مشتری-سرور محدود نمیشود، ولی بیشتر مواقع از پروتکل انتقال ابرمتن استفاده مینماید. بنابراین کلمهٔ سرولت بیشتر بر اچتیتیپی سرولت دلالت دارد.[۲] توسعهدهندهٔ نرمافزار از سرولت برای اضافه کردن محتوای پویا به سرور وب با استفاده از سکوی جاوا استفاده مینماید. صفحهٔ تولید شده عمدتاً شامل محتوای اچتیامال است ولی گاهی نیز سایر دادههای مانند اکسامال را نیز شامل میشود. سرولتها، همتای مبتنی بر جاوای فناوریهایی غیر جاوایی مانند سیجیال و صفحههای سرور فعال است. سرولتها میتوانند حالت وضعیت متغیرها را در یک نشست حفظ نمایند. این کار به کمک کوکی اچتیتیپی و موتور بازنویسی انجام میدهند.
تاریخچه
مشخصات کلی سرولتها توسط سان میکروسیستمز ایجاد و نگارش اولش با شمارهٔ ۱.۰ در ژوئن ۱۹۹۷(خرداد ۱۳۷۶) نهایی شد. با انتشار نگارش ۲.۳ مشخصات سرورلت تحت فرایند جمعیت جاوا (ف.ج.ج) قرار گرفت. سند جیاسار ۵۳، محتوی مشخصات «جاوا سرولت ۲.۳» و «صفحات جاوا سرور» است. سند جیاسار ۱۵۴ نیز مشخصات سرولت ۲.۴ و ۲.۵ را در برد دارد. از مارس ۲۰۱۰ (اسفند ۱۳۸۸) نگارش کنونی سرولت با شماره ۳.۰ منتشر شد. در وبلاگ آن بر روی Java.net، کارمند کارآزمودهٔ سان و مدیر ماهی شیشهای به تشریح تاریخچهٔ فناوری سرولت پرداخت. جیمز گاسلینگ فردی بود که در روزهای آغازین جاوا فکر ایجاد آن را میپروراند. ولی مفهوم آن تا زمان ارائه آن به صورت محصول از سوی جاوا عملی نشد. این پیش از عملی شدن جاوای سازمانی بود.
نگارشایپیال سرولتتاریخ انتشار شماره جی اس آرسکوتغییرات مهم
سرولت ۴.۰ شهریور ۱۳۹۶ ۳۶۹ Java EE 8 HTTP/2
سرولت ۳.۱ خرداد ۱۳۹۲ ۳۴۰ Java EE 7 Non-blocking I/O, HTTP protocol upgrade mechanism (WebSocket)
سرولت ۳.۰ آذر ۱۳۸۸ ۳۱۵ JavaEE 6,JavaSE 6 قابلیت اتصال، سهولت توسعه، سرولت نامتقارن، امنیت، بارگذاری پرونده
سرولت ۲.۵ شهریور ۱۳۸۵ ۱۵۴ JavaEE 5,JavaSE 5 نیازمند جاوا استاندارد نگارش ۵، قابلیت تفسیر
سرولت ۲.۴ آبان ۱۳۸۲ ۱۵۴ J2EE 1.4 , J2SE 1.3 استفاده از شمای اکسامال در web.xml
سرولت ۲.۳ مرداد ۱۳۸۰ ۵۳ J2EE 1.3 , J2SE 1.2 افزودهشدن Filter
سرولت ۲.۲ مرداد ۱۳۷۸ ۹۰۲، ۹۰۳ J2EE 1.2 , J2SE 1.2 الحاق به نگارش سازمانی، معرفی برنامههای مستقل وب در قالب فایل war.
سرولت ۲.۱ آبان ۱۳۷۷ نامعلوم نامعلوم اولین مشخصات رسمی ارائه شد، اضافهشدن RequestDispatcher و ServletContext
سرولت ۲.۰
نامعلوم JDK 1.1 بخشی از کیت توسعهٔ جاوا سرولت ۲.۰
سرولت ۱.۰ خرداد ۱۳۷۹ نامعلوم نامعلوم
برتریها نسبت به سیجیآی
برتریهای استفاده ار سرولت را میتوان در افزایش اجرا و راحتی استفادهٔ ترکیبی به سیجیآی سنتی است. اسکریپتهای سیجیآیِ سنتی که با زبان جاوا نوشته میشود دارای مشکلاتی در اجراست:
در هنگام ایجاد درخواست اچتیتیپی، به ازای هر درخواست اسکریپت سیجیآی، فرایندی ایجاد میشود. این سربار پردازشی ایجاد شده میتواند بر سیستم فشار شدیدی وارد نماید، مخصوصاً هنگامی که پردازش کار پردازشی سریعی را ایجاد مینماید. بنابراین ایجاد پردازش از خودِ پردازش بیشتر زمان میبرد. جاوا سرولت این مشکل را حل نموده است، سرولت یک پردازش جداگانه نیست. هر درخواست دریافت شده، توسط یک نخ در فرایند وبِ موجود بررسی میشود، که موضوع ایجاد فرایند جداگانه به وسیلهٔ نسخهبرداری (فورک) توسط شبح اچتیتیپی را بر طرف مینماید.
درخواستهای همزمان در سیجیآی موجب آن میشود که اسکریپت سیجیآی، به دفعات درخواستی در حافظه بارگذاری شود. در حالیکه با استفاده از سرولتها نیز به ازای هر درخواست یک نخِ جدید تولید میشود.
تنها یک کلاس که به صورت مشترک مورد استفاده است، در حافظه ایجاد میگردد. این کار باعثِ کاهش استفاده از حافظه و بهبود مدیریت دادهها خواهد شد.
یک سرولت توسط موتورِ سرولت در محیطِ محدود اجرا میشود که به آن گودال ماسه میگویند. این کار شبیه اجرای اپلت در گودالِ ماسهٔ مرورگر وب است. این کار باعث کاهش خطرات بالقوه خواهدشد.
کانتِینِر وب متد init() را صدا میزند. این متد سرولت را مقداردهی نموده و باید پیش از آغاز زندگی سرولت فراخوانی شود، متد init() تنها یکبار فراخوانی میشود.
بعد از مقداردهی، سرولت میتواند به پاسخِ درخواستهای ارسال شده بپردازد. هر درخواست اچتیتیپی در نخِ مخصوص و جداگانهای پاسخ داده میشود. کانتینر وب، متد service() را به ازای هر درخواست فراخوانی مینماید. متد service() نوع درخواست دریافت شده را تعیین و آن را به متد مناسبی که وظیفهاش رفع نیازهای آن درخواست است، ارسال مینماید. توسعهدهندهٔ سرولت باید این متدها را پیادهسازی نماید. در صورت عدم پیادهسازی متد یادشده، متدِ والدِ کلاس فراخوانی خواهد شد که معمولاً با ارسال یک خطا به درخواستکننده همراه است.
در نهایت، کانتینر وب، متد destroy() را فراخوانی نموده که سرولت را از دور کار خارج مینماید. متد destroy() مانند متد مقدار دهی تنها یک بار در چرخهٔ کاری فراخوانی میشود.