توسعهدهندگانی که برنامههای جاوای جاسازی شده را مینویسند، مجموعهای از چارچوبها و ابزارهای دیگر برای انتخاب دارند. در اینجا بهترین فریم ورک های جاوا که امروزه برای توسعه جاسازی شده استفاده می شوند، آورده شده است.
- اندروید
- چارچوب جاسازی شده جاوا
- پردازش رویداد Oracle
- جرسی
- Vert.x
- Dropwizard
- آپاچی مینا
- کارت جاوا
- در مورد چارچوبهای وب جاوا چطور؟
- استفاده از جاوا استاندارد برای برنامه های جاسازی شده
سازندگان جاوا چشم انداز این را داشتند که این زبان “یک بار بنویسید، در هر جایی اجرا شود” و موفقیت آنها نمی توانست آشکارتر از دنیای جاسازی شده باشد. توانایی نوشتن فقط یک نسخه از یک برنامه جاوا و اجرای نزدیک استفاده از باینری های یکسان در همه جا برای تیم هایی که نرم افزاری را برای دستگاه های کوچک و رایانه های مخفی ایجاد می کنند بسیار جذاب است. به.
انعطاف پذیری جاوا برای اجرا در هر مکانی نیز در دراز مدت به تیم های محصول کمک می کند، زیرا نسل دوم، سوم یا چهارم یک محصول ممکن است بر روی تراشه های مختلف اجرا شود. نرم افزار را معمولاً می توان با کمی یا بدون کدگذاری اضافی تطبیق داد.
امروزه فریمورک های جاوا متعددی برای ایجاد برنامه های جاوا جاسازی شده استفاده می شود. برخی ابزارهای عمومی هستند که در بسیاری از انواع ماشینها مورد استفاده قرار میگیرند. آنها اغلب بهترین نقطه شروع برای تیم هایی هستند که برنامه های جدید ایجاد می کنند.
سایر چارچوبها برای دستگاه یا خانوادهای از دستگاهها ایجاد شدهاند. اینها ممکن است شامل یک پایه برنامه نویسی و ویژگی هایی باشد که از دستگاه ها یا سایر محصولاتی که برنامه شما روی آنها اجرا می شود پشتیبانی می کند. رایجترین نمونه از این نوع چارچوب جاوای جاسازی شده ممکن است Android باشد که توسعهدهندگان از آن برای ایجاد برنامهها برای تلفنهای Android، Chromebook و سایر دستگاهها مانند تلویزیون استفاده میکنند.
در اینجا هشت چارچوب جاوا جاسازی شده عالی وجود دارد. هر کدام از آنها از ثبات و وسعت پلتفرم جاوا و کتابخانه های شخص ثالث برای دستگاه های کوچک و رایانه های مخفی بهره می برند. این چارچوبها تکنیکها و رویکردهای سنتی جاوا را برای اجرای سریعتر و سبکتر در بازار تعبیهشده تطبیق میدهند.
اندروید
اندروید احتمالاً شناختهشدهترین فریمورک جاسازی شده جاوا است. این به عنوان پایه ای برای ایجاد اپلیکیشن برای گوشی هایی که گوگل برای رقابت با اپل می ساخت آغاز شد. بیشتر کدهای اصلی منبع باز بودند و اکنون بسیاری از انواع دیگر دستگاه ها (نه فقط تلفن ها) از برنامه های اندروید پشتیبانی می کنند. سیستم عامل کروم گوگل که در کروم بوک ها استفاده می شود، تنها یک نمونه است. دهها جعبه کوچک، برنامههای Android را به صفحههای بزرگ و تخت برای اتاق نشیمن میآورند.
نوشتن برنامههای Android راهی ساده برای هدفگیری همه این دستگاهها است. همچنین به سازندگان دستگاه اجازه میدهد تا محصولات خود را برای توسعهدهندگان شخص ثالث باز کنند.
برخی از توسعه دهندگان فقط با کتابخانه های اصلی Android کار می کنند که برای بسیاری از برنامه ها کافی است. برخی دیگر از فریم ورک هایی استفاده می کنند که در بالای اندروید قرار دارند. برخی از محبوبترین آنها Ionic، Flutter، و Framework7. یک ویژگی مشترک به توسعه دهندگان اجازه می دهد تا طراحی را برای پلتفرم های دیگری مانند iOS تغییر دهند. به عنوان مثال، فلاتر شش پلتفرم مختلف را هدف قرار می دهد.
چارچوب جاسازی شده جاوا
فریمورک جاسازیشده جاوا نوشتن کدهای جاوا سطح بالا را برای توسعهدهندگان سادهتر میکند. به رابط هایی که در سیستم های تعبیه شده رایج هستند صحبت می کند. نمونه های محبوب Raspberry Pi و Orange Pi هستند. با استفاده از این چارچوب، نیازی به تسلط بر برنامه نویسی سطح پایین مورد نیاز برای برقراری ارتباط با رابط های سخت افزاری مانند SPI، I2C، سریال، GPIO< /a>، یا One Wire. توسعه دهندگان این چارچوب قبلاً بیشتر این موارد را برای شما انجام داده اند.
چارچوب جاسازی شده جاوا به چندین ماژول اصلی تقسیم می شود. ماژول اصلی مستقیماً به لایه سیستم عامل لینوکس که برد را کنترل می کند متصل می شود. استفاده از جاوا خالص را برای اتصال به بسیاری از وظایف در لایه سیستم عامل ساده می کند. همچنین درایورهایی برای قطعات اصلی سخت افزاری که معمولاً در این بردهای کوچک یافت می شوند وجود دارد.
پردازش رویداد Oracle
یکی از کارهای یک دستگاه تعبیه شده، گرفتن داده است. به عنوان مثال، طبقات کارخانه برای ردیابی تولید و نظارت بر ناهنجاری ها به ماشین های تعبیه شده متکی هستند. پردازش رویداد Oracle Framework نسخه سبکی از Oracle Event Driven Server است که به دستگاهها امکان میدهد رویدادها را ضبط کنند، آنها را فیلتر کنند و در صورت نیاز آنها را ارسال کنند. برخی از دستورات پیکربندی از SQL به عاریت گرفته شده است که برداشتن آن را نسبتاً آسان می کند. مدل پردازش رویداد چارچوب همچنین میتواند در جریان رویداد برای جستجوی همبستگیها و الگوهای دیگر در دادهها جستجو کند.
جرسی
اگر یک شغل نیاز به برنامهنویسی یک دستگاه جاسازی شده برای پاسخ به رویدادهای RESTful دارد، جرسی یک گزینه خوب برای دستکاری بسته های JSON که می آیند و می روند با گسترش JAX-RS< بهینه شده است. /a> جعبه ابزار. معماران این راه حل را دوست دارند زیرا می تواند یکی از بهترین راه ها برای خودکارسازی ارتباط با دستگاه باشد.
جرسی چند ویژگی اضافی را ارائه می دهد، از جمله توانایی “تکه کردن” پاسخ ها. این به معنای ذخیره داده و سپس ارسال آن در یک تکه بزرگ است. Chunking به ویژه برای دستگاه هایی که همیشه به اینترنت متصل نیستند مفید است. همچنین برای کاهش بار روی هر سرور مرکزی که وظیفه برقراری ارتباط با بسیاری از دستگاهها را دارد، مفید است.
نسخه x
بسیاری از مردم Vert.x را بهعنوان چارچوبی برای ساخت برنامههای کاربردی وب با امکانات کامل میدانند. آنچه خوب است این است که به ماژول ها تقسیم شده است و شما مجبور نیستید از همه آنها استفاده کنید. هسته Vert.x حاوی اکثر کدهای مهم برای نوشتن سرویس هایی است که با دنیا و ماشین هرکسی که یک ابزار اساسی ایجاد میکند میتواند به پروتکلهای شبکه و سیستم فایل چارچوب Vert.x برای راهاندازی جریانهایی که درخواستهای ورودی و خروجی را تغییر میدهند تکیه کند.
برخی از ماژول های Vert.x ممکن است برای کارهای جاسازی شده ایده آل باشند. برای مثال، کتابخانههای OpenAPI و API Service، بسیاری از کارهای مربوط به پشتیبانی از یک API را انجام میدهند. کتابخانه GraphQL روالهای لازم برای پشتیبانی از تماسهای GraphQL را جمع میکند. این کتابخانهها عمدتاً بر ایجاد برنامههای کاربردی وب و خدمات وب متمرکز هستند، اما میتوان از آنها برای مدیریت ارتباطات سادهتر نیز استفاده کرد.
Dropwizard
اگر هدف ایجاد یک وب سرویس ساده، قدرتمند و RESTful است، بسیاری از توسعه دهندگان جاوا به Dropwizard روی می آورند. همچنین برای برنامه های تعبیه شده یک انتخاب عالی است. میتوانید از API وب سرویسها برای کنترل و پیکربندی دستگاهها استفاده کنید و دستگاههای دیگر میتوانند از طریق API آن به این سرویس دسترسی داشته باشند. انسان ها می توانند سرویس را از طریق صفحات HTML ایستا با کمی جاوا اسکریپت کنترل کنند.
Dropwizard به تعدادی ماژول کوچکتر تقسیم میشود که بسته به ویژگیهایی که نیاز دارید میتوان آنها را گنجانده یا حذف کرد. هسته و پایگاه داده برای کارهای اساسی خوب هستند. افرادی که با خدمات شما تعامل دارند میتوانند از فرمها یا views. احراز هویت عموماً ایده خوبی است و ماژول تأیید هویت Dropwizard از پایه و OAuth2 پشتیبانی می کند. پروتکل ها.
آپاچی مینا
هر برنامهای که به یک لایه شبکه قوی نیاز دارد، میتواند از Apache Mina استفاده کند تا برخی از NDPهای مختلف (Neighbor پروتکل کشف) یا اتصالات TCP به روشی ایمن و قابل اعتماد. این کد بر روی کلاسهای جدید IO (Java NIO) ساخته شده است تا توسعهدهندگان بتوانند با دادههایی که میآیند یا میروند به شیوهای انتزاعیتر رفتار کنند. کد آن تا حد زیادی مبتنی بر رویداد است، و توسعه دهندگان را از توجه به رابط شبکه بی نیاز می کند.
کارت جاوا
برخی از پردازندههای تعبیهشده در لایههای امنیتی اضافی پیچیده شدهاند تا به دادههای حساس مانند جزئیات تراکنشهای مالی کمک کنند. کارت جاوا Oracle از برنامههای کاربردی متعددی که در چنین محیطهای امنی مانند تراشههای مقاوم در برابر دستکاری اجرا میشوند، پشتیبانی میکند. این پردازندهها اغلب کندتر هستند و با حافظه کمتری عرضه میشوند و چارچوب کارت جاوا برای اجرای روان با منابع کمتر حذف شده است.
در مورد چارچوب های وب جاوا چطور؟
در حالی که این مقاله چارچوبهای طراحی شده برای ماشینهای جاسازی شده را برجسته میکند، واقعیت این است که توسعهدهندگان بیشتر و بیشتر در حال ایجاد برنامههای وب برای دستگاههای جاسازی شده هستند. دستگاههای کوچکتر ممکن است قدرت کمتری داشته باشند، اما اغلب دارای رم و قدرت CPU کافی برای اجرای یک برنامه وب سرور برای چند مشتری هستند. برنامهای که برای یک میلیارد کاربر در اینترنت باز در نظر گرفته نشده است، میتواند به خوبی در یک سیستم جاسازی شده اجرا شود.
این اغلب راه حل خوبی است زیرا به کاربران امکان می دهد از طریق یک برنامه وب به دستگاه متصل شوند. توسعه دهندگان می توانند از تمام ویژگی های استاندارد یک وب سایت اصلی استفاده کنند.
بسیاری از فریم ورک های محبوب برنامه های کاربردی وب به طور قابل توجهی روی ماشین های کوچک کار می کنند. این تا حدی به دلیل فشار برای کوچک کردن و سادهسازی سمت سرور برنامههای وب جاوا است. چارچوبهای سبکتر و جدیدتر مانند Spring Boot، Vert.x، و Vaadin (همچنین به Hilla مراجعه کنید a>)، همه گزینه های قابل اعتماد هستند. برخی از توسعه دهندگان جاسازی شده حتی با چارچوب های قدیمی تر و سنگین تر مانند Spring، Struts یا چهره های سرور جاوا.
همه این چارچوبها به سالهایی برمیگردند که سرورها بسیار ضعیفتر بودند. آنها می توانند برای سناریوهایی که یک کاربر نیاز به تعامل با نرم افزار دارد و دستگاه تعبیه شده نسبتاً قدرتمند است، به خوبی کار کنند.
استفاده از جاوا استاندارد برای برنامه های جاسازی شده
برخی توسعه دهندگان نیازی به استفاده از چارچوب تعبیه شده ندارند زیرا کتابخانه ها و ویژگی های مورد نیاز خود را از نسخه استاندارد جاوا دریافت می کنند. Java Micro Edition (JME) در چندین نسخه موجود است و برخی هستند به صراحت برای سیستم های تعبیه شده طراحی شده است. آنها کتابخانه های مهم جاوا، مانند یک کتابخانه OAuth برای احراز هویت و یک کتابخانه JSON برای تجزیه و نوشتن پیام ها را فراهم می کنند. در برخی موارد، این ممکن است کافی باشد.
توسعه دهندگان با بردهای بزرگتر و قدرتمندتر حتی ممکن است از Java Standard Edition برای برنامه های جاسازی شده در دستگاه های کوچک استفاده کنند. Oracle Java SE Embedded یک نسخه استاندارد جاوا تنظیم شده است برای دنیای جاسازی شده.
Oracle از انواع مختلفی از دستگاه ها با در دسترس قرار دادن باینری های استاندارد پشتیبانی می کند. به عنوان مثال، Raspberry Pi و چند سیستم تعبیه شده کوچک دیگر از پیش ساخته شده اند. اوراکل همچنین از بخشهای مهم بازار مانند تلفنها و تلویزیون.
برای پروژههای توسعه جاوای جاسازی شده اولیه، یک دانلود استاندارد از Oracle میتواند هر آنچه را که نیاز دارید ارائه دهد.
پست های مرتبط
۸ چارچوب جاوا برای توسعه تعبیه شده
۸ چارچوب جاوا برای توسعه تعبیه شده
۸ چارچوب جاوا برای توسعه تعبیه شده