Java ME 8 ואינטרנט הדברים

מערכות משובצות הן מערכות מחשב המוטמעות במכשירים שלמים, שתפקידיהם הייעודיים נמצאים במערכת מכנית או חשמלית גדולה יותר. בדרך כלל נעשה שימוש ביישומים תעשייתיים וגם צרכניים, מערכות משובצות נכנסות לאור הזרקורים עם האינטרנט של הדברים (IoT). עבור מפתחים שרק התחילו לעבוד עם IoT, מאמר זה הוא מדריך ללמוד יותר על הטכנולוגיות המורכבות מפלטפורמת IoT של Oracle: Java ME 8, Java ME Embedded, Java SE Embedded ו- Java Embedded Suite.

בשנת 1991 ניסה מארק וייזר, אז ראש מרכז המחקר פאלו אלטו (PARC) של זירוקס, לתפוס את העידן הקרוב של מחשוב בכל מקום. וציין ש"הטכנולוגיות העמוקות ביותר הן אלה שנעלמות ", תיאר וייזר את הניסויים השונים והמחשבים שביצעו עמיתיו ב- PARC, כאשר הם חיפשו דרך חדשה לחשוב על מחשבים כמערכות משובצות. החזון שלהם, שהיה אולי נראה פנטסטי כמו רחף בשנת 1991, הופך להיות נפוץ יותר כיום:

סאל מתעורר: היא מריחה קפה. לפני כמה דקות השעון המעורר שלה, שהתריע על ידי גלגולה חסרת המנוחה לפני שהתעוררה, שאל בשקט "קפה?" והיא מלמלה, "כן." "כן" ו"לא "הן המילים היחידות שהוא יודע [...]

בארוחת הבוקר סאל קורא את החדשות. היא עדיין מעדיפה את טופס הנייר, כמו רוב האנשים. היא מגלה ציטוט מעניין של בעל טור במדור העסקים. היא מנגבת את העט שלה מעל שם העיתון, התאריך, הסעיף ומספר העמוד ואז מקיפה את הצעת המחיר. העט שולח הודעה לעיתון, המעבירה את הצעת המחיר למשרדה [...]

ברגע שסאל מגיעה לעבודה, הצפייה הקדמית (במכוניתה) עוזרת לה למצוא מקום חניה במהירות. כשהיא נכנסת לבניין המכונות במשרדה מתכוננות להתחבר אליה ...

המכשירים המשובצים בתרחיש בבוקר יום העבודה של וייזר משתמשים בחיישנים כדי לעקוב אחר האינטראקציות של המשתמש האנושי, וקישוריות אלחוטית כדי לתזמן תגובה: המיטה של ​​סל, השעון המעורר ומכונת הקפה מחוברים כולם כדי להבטיח שכוס הקפה הראשונה שלה יוצאת לדרך לפני שהיא מתגלגלת מחוץ למיטה. עבור וייזר ועמיתיו זו הייתה מחשוב רגוע ; היום אנו יכולים לקרוא לזה האינטרנט של הדברים (IoT).

קרא עוד על עבודתו של וייזר ב- PARC ועל תיאוריית המחשוב בכל מקום: "הבטח את איכות שירותי האינטרנט בעידן המחשוב הרגוע" (פרנק סומרס, JavaWorld, אפריל 2001).

סקירת IoT

אם יש מאפיין מגדיר אחד של IoT, זה יכולת פעולה הדדית או תיאום של מספר מכשירים. כפי שנצפה בתרחיש לעיל, IoT משתמש בחיישנים לאיסוף נתונים (במקרה זה על האינטראקציות של סאל בסביבתה) ובקישוריות אלחוטית כדי לתזמן תגובה. IoT בנוי על מפגש של טכנולוגיות, כולל פלטפורמות חומרה חדשות וישנות, ביג דאטה, מחשוב ענן ומחשוב מכונה למכונה (M2M). ממשקי API הם הדבק הדרוש, המביא יחד את כל החלקים הנעים הללו.

והכי חשוב עבור מפתחי Java, Java היא המפתח ברבות מהטכנולוגיות IOT המתעוררים כבר, ו- Oracle התחייבה ביצוע Java פלטפורמה מובילה (אם לא פלטפורמה) עבור IOT. Java ME 8 מפיח חיים חדשים בטכנולוגיית המכשירים הקטנים של Java ומרחיב אותה עם קו מובחן של פלטפורמות Java משובצות.

החלקים הבאים יציגו את הטכנולוגיות המורכבות מפלטפורמת ה- IoT של אורקל; עקוב אחר הקישורים למידע נוסף על Java ME, Java ME 8 ושלוש המסגרות המשובצות: Java ME Embedded, Java SE Embedded ו- Java Embedded Suite.

Java ME

מהדורת Java Micro Edition נועדה במקור להתמודד עם האילוצים הקשורים לבניית יישומים למכשירים קטנים. בהתבסס על Java SE, Java ME (או J2ME, כפי שהכרנו אותו בשנת 1999) הייתה הפלטפורמה ליישומי Java הפועלים במכשירים קטנים עם זיכרון מוגבל, יכולת תצוגה וכוח. כיום הוא משמש לפיתוח מערכות משובצות, החל מבקרות תעשייתיות וכלה בטלפונים ניידים (במיוחד טלפונים פיצ'רים), לסטרטופ-אפ ונגני Blu-ray.

מפתחים העובדים ב- Java ME יכולים לבחור בין מספר תצורות, פרופילים וחבילות אופציונליות:

  • תצורה מספקת את הערכה הבסיסית ביותר של ספריות יכולות מכונים וירטואלי עבור מגוון רחב של מכשירים.
  • פרופיל הוא סט של ממשקי API התומכים בטווח צר של מכשירים.
  • חבילה אופציונלית היא קבוצה של ממשקי API טכנולוגיה ספציפית. ממשק ה- API להודעות אלחוטיות הוא דוגמה אחת. עיין בפריימר החבילות האופציונלי של Oracle למידע נוסף על חבילות אופציונליות.

תצורות ופרופילים

עם הזמן צצו שתי תצורות: תצורת התקנים מחוברת מוגבלת (CLDC) היא התצורה עבור מכשירים קטנים, ותצורת התקנים מחוברים (CDC) היא התצורה של מכשירים ניידים מסוגלים יותר כמו טלפונים חכמים וממירים.

פרופילי Java ME יושבים על גבי תצורות, ומגדירים ממשקי API ברמה גבוהה יותר ליישומים מסוימים. פרופיל התקני מידע נייד (MIDP) , למשל, יושב על גבי CLDC ומספק ממשקי משתמש, רשת, ו- API של אחסון מתמשך. יישומים הפועלים בסביבת CLDC / MIDP (כגון משחקים) מכונים MIDlets .

תכנות מכשירים עם CLDC / MIDP

"תכנות מכשירים עם MIDP" (Michael Cymerman) כולל הדגמה מעשית למפתחים חדשים ב- CLDC / MIDP. ראה גם "בניית MIDlets" (ג'ונתן קנודסן וסינג לי) ו"עיצובים גדולים למכשירים קטנים "(בן הוי).

עבור CDC, ישנם שלושה פרופילים, בסיס, בסיס אישי ואישי:

  • פרופיל הקרן הוא קבוצה של ממשקי API של Java המכוונים למכשירי טביעת רגל נמוכים שיש להם משאבים מוגבלים ואינם זקוקים לממשק משתמש גרפי (GUI).
  • פרופיל הבסיס האישי הוא קבוצה-על של ממשקי ה- API של פרופיל הקרן ותומך בהתקנים עם דרישות ממשק משתמש קל. פרופיל זה מגיע עם מסגרת לבניית רכיבי GUI קלים ותומך בכמה שיעורים של ערכת הכלים המופשטים (AWT).
  • הפרופיל האישי מרחיב את פרופיל הבסיס האישי בעזרת ערכת כלים GUI המבוססת על AWT. הוא מספק סביבת יישומי Java ME מלאה עם תמיכה מלאה ב- AWT ומיועד למכשירים מתקדמים יותר כמו מחשבי כף יד, ממירים, קונסולות משחקים וכן הלאה.

יישומים הפועלים בסביבת CDC / בסיס / בסיס אישי / אישי (כגון תפריטים של סרטי Blu-ray) מכונים Xlets .

ערכת כלים ממשק משתמש קל משקל

השימוש ב- AWT של Java (ערכת כלים חלונית מופשטת) ליצירת יישומים ניידים חוצי פלטפורמות עם משיכה רחבה של משתמשים הוא מאתגר! גופן, פריסה והבדלים אחרים גורמים לאותו יישום להיראות ולהתנהג בצורה שונה מאוד במכשירים שונים. יתר על כן, יכולות ממשק משתמש מתקדמות כגון אנימציה ואפקטים נעדרות. בהכרה בליקויים אלה, פיתחה סאן מיקרוסיסטמס את ערכת כלים ממשק משתמש קל משקל (LWUIT) [PDF], ערכת כלים ממשק משתמש בהשראת Swing עבור Java ME התומכת ב- CLDC 1.1 עם MIDP 2.0 ו- CDC עם פרופיל בסיס אישי. קוד קוד אחד הוא יישום קוד פתוח פופולרי של ה- LWUIT המקורי.

Java ME 8

בסוף שנת 2012, אורקל החלה בפרויקט שאפתני להעברת עדכון גדול של תקן פלטפורמת Java ME. שתי בקשות Java Specification (JSR) תוכננו לעמוד בדרישות השוק הנוכחיות למכשירים משובצים ולהכין את Java ME למפרט פלטפורמת Java עתידי: JSR 360 (CLDC 8), עדכון אבולוציוני ל- CLDC 1.1.1, יביא את המכונה הווירטואלית, Java שפה וספריות מעודכנות עם Java SE 8. JSR 361 (Java ME Embedded Profile / MEEP 8) יעדכן את פרופיל מודול המידע - הדור הבא (IMP-NG).

CLDC 8 ו- MEEP 8

CLDC 8 מבוסס על JSR 139 (CLDC 1.1) ומיישר את מכונת הליבה הווירטואלית של Java ME, תמיכה בשפות, ספריות ותכונות אחרות עם Java SE 8:

  • המכונה הווירטואלית עודכנה כך שתתאים לגירסה 2 של מפרט JVM.
  • תכונות חדשות יותר של שפת Java SE כגון גנריות, קביעות, ביאורים ומשאבים עם ניסיון-עם נתמכים כעת.
  • ספריות חדשות כגון אוספים, קבוצת משנה NIO ותת-ערכת ממשק API לרישום נתמכות כעת.
  • תומכת במסגרת חיבורים כללית מאוחדת ומשופרת עבור קלט / פלט רב-פרוטוקולי.

MEEP 8 מעדכן את המפרט המקורי של IMP-NG כדי לספק סביבת יישומים חזקה וגמישה לפלטפורמות Java מוטבעות קטנות. המפרט מבוסס על CLDC 8 עם התכונות הבאות:

  • מודל רכיב ושירותים חדש וקל משקל
  • ספריות משותפות
  • מקביליות מרובת יישומים, תקשורת בין יישומים ומערכת אירועים
  • ניהול אפליקציות
  • אפשרות API למתן מענה למקרי שימוש בטביעת רגל נמוכה

MEEP 8 מעניקה למפתחי יישומים משובצים סביבת יישומים מודרנית המאפשרת פיתוח ופריסה של פתרונות משובצים שהם פתרונות מודולריים, חזקים ומתוחכמים שעברו אופטימיזציה למגוון רחב של מקרי שימוש ומכשירים.

מידע נוסף על Java ME 8

המבוא של טרנס בר לעשיר התכונות המובילות שלו ב- Java ME 8 מזהה את הרכיבים הכלולים במהדורת אפריל 2014 ראה גם את דף ההורדות של Java ME SDK 8 לקבלת תיעוד נוסף.

Java מוטבע

Java Embedded הוא פועל יוצא של Java ME ו- Java SE, חבילה של שלוש פלטפורמות הממוקדות ספציפית למכשירים משובצים. כל אחד מהמוצרים הללו מספק מכונה וירטואלית מיוחדת וממוטבת של Java ומספק את האמצעים לעדכון התוכנות והשירותים המותקנים (למשל באמצעות OSGi). להלן אני מתאר את Java ME Embedded, Java SE Embedded ואת Java Embedded Suite.

ג'אווה למערכות משובצות?

אמנם לא נכלל במאמר זה, אך אתגרים וטכניקות ספציפיים קשורים לתכנות משובץ. לא כל המפתחים מסכימים שג'אווה מתאימה ביותר לפתור אותם.

Java ME מוטבע

Java ME Embedded מורכב למעשה משתי גרסאות: Java ME Embedded ו- Java ME Embedded Client.

Java ME Embedded הוא יישום Java ME CLDC המספק פלטפורמת יישומים חזקה וגמישה עם פונקציונליות מוטמעת ייעודית למכשירים מחוברים תמיד ללא ראש (כלומר ללא ממשק גרפי / משתמש). מעצבי ומפתחי מערכות יכולים להשתמש ב- Java ME Embedded כדי ליצור פתרונות משוכללים וקטנים המשמשים את היתרונות של שפת Java, זמן ריצה ומערכת אקולוגית תוך עמידה ביעדי משאבי מערכת הדוקים. Oracle Java ME Embedded יכול לשמש מכשירים עם זיכרון של פחות ממגה-בייט אחד.

Java ME Embedded Client הוא יישום CDC של Java ME שהוקטן כדי להתאים למגבלות המכשירים המוגבלים במשאבים ומותאם למערכות מוטבעות נמוכות עד בינוניות. למרות שמוצר זה מציע טביעת רגל קטנה, הוא עדיין מספק את מרבית תכונות שפת Java וזמן הריצה שמפתחי Java מכירים ורגילים להם ב- Java SE. Java ME Embedded Client יכול לשמש מכשירים עם פחות מ -10 מגה-בייט וזיכרון וללא גרפיקה.

קבל את מוטבע Java ME 8

ניתן להוריד את Java ME Embedded 8 למכשירי ARM שונים או את Java ME Embedded Client 1.1.1 לסביבות ARM, MIPS ו- x86. יהיה עליך להתקין את Java ME SDK 8 כדי להריץ פלטפורמה זו. ראה גם מדריך ההגירה של Java ME CDC של Oracle ל- Java SE Embedded 8.

Java SE מוטבע

Java SE Embedded הוא יישום מלא של פלטפורמת Java SE שעברה אופטימיזציה למערכות משובצות. גרסה 8, המהדורה האחרונה של פלטפורמה זו, כוללת את התכונות הבאות:

  • תכונות שפה חדשות ב- Java SE 8 לשיפור פרודוקטיביות המפתחים
  • פרופילים וכלים קומפקטיים ליצירת מכונות וירטואליות מותאמות אישית ומותאמות לחלל
  • 50% ביצועים טובים יותר מגרסאות קודמות בזכות Java SE 8
  • יישומי GUI נהדרים עם JavaFX מואץ באמצעות GPU
  • כלים לניטור זמן ריצה מפורט וניתוח אירועים לאחר מעשה

שים לב ש- Java SE Embedded 8 יכול לשמש מכשירים עם אחסון מינימלי של 11 מגה. הורד את Java SE Embedded 8 לפלטפורמות ARM, אדריכלות כוח ו- x86.

משלב פלטפורמת Java

אורקל הציגה את תוכנית ה- Java Platform Integrator כדי לספק לשותפים את היכולת להתאים אישית מוצרי Java Embedded, כולל Java ME Embedded, Java ME Embedded Client ו- Java SE Embedded כדי להגיע לסוגי מכשירים שונים ופלחי שוק.

סוויטת Java מוטמעת

Java Embedded Suite הוא ההיצע הסופי במשפחת Java Embedded. חבילת כלים זו מוסיפה תכונות מסוג ארגוני לזמן הריצה המוטמע של Java SE, ומאפשרת ליישומים לבצע את הפעולות הבאות:

  • אחסן נתונים במסד נתונים יחסי של Java DB.
  • מארח יישומי אינטרנט מבוססי servlet של GlassFish, למשל, כדי לתת גישה מרחוק מאובטחת לנתוני המכשיר ולפעולותיו.
  • אירחו וגשו לשירותי אינטרנט RESTful באמצעות הטמעת המפרט JAX-RS של אורקל ג'רזי.

בעיקרו של דבר, Java Embedded Suite משלב Java SE Embedded 7 (המספק זמן ריצה ליישומי Java) עם Java DB (המספק מסד נתונים לאחסון תוכן מקומי בצורה מאובטחת), GlassFish for Embedded Suite (המספק שרת יישומים לדפי אינטרנט), ג'רזי Framework Services Web (לאירוח ולגישה לשירותי אינטרנט), ועיבוד אירועים עבור Java Embedded (המטפל בעיבוד אירועים בזמן אמת, ואשר הוא רכיב אופציונלי).

הורד את Java Embedded Suite עבור ARM או x86.

סיכום

אורקל מיקמה את Java ME וטכנולוגיות נלוות כדי לעמוד באתגרי הפיתוח למכשירים משובצים, כאשר IoT היא המטרה הסופית שלה. מאמר זה הציג פריימר קצר ב- Java ME ואז הציג בפניכם את מוצרי Java ME 8, Java ME Embedded, Java SE Embedded ו- Java Embedded Suite של אורקל.

לקבלת מדריכי תכנות ושיטות עבודה מומלצות שיעזרו לך להתחיל עם יסודות ה- IoT, בקר בדפי התכנות Java ME, MIDP ו- Embedded Java ב- JavaWorld. למידע נוסף על האסטרטגיה של אורקל למקומות ה- IoT וג'אווה באסטרטגיה זו, עיין במאמרים, בסרטונים, בעבודות הדף ובחוברות השונים בדף המידע של האינטרנט של הדברים.

סיפור זה, "Java ME 8 ו- Internet of Things" פורסם במקור בהוצאת JavaWorld.