האם אורקל משתמשת ב- Java
האם מסדי נתונים של Oracle משתמשים ב- Java באופן פנימי
כל לקוח מתחיל הפעלה, מתקשר למודולי ההיגיון בצד השרת שלו דרך נקודות כניסה ברמה העליונה, ובסופו של דבר מסיים את ההפעלה. סביבת השרת מסתרת ניהול מפגשים, רשתות ומשאבים משותפים אחרים מתוכניות Java מתארחות.
סיכום
מסדי הנתונים של Oracle משתמשים ב- Java באופן פנימי. Oracle מספקת פיתרון Java מקצה לקצה למפתחי יישומים ארגוניים. פיתרון זה כולל ממשקים פרוגרמטיים בצד הלקוח וצד השרת, כלים לפיתוח Java ו- JVM המשולב במסד הנתונים של Oracle. Java בפיתוח יישומי מסד נתונים מציע תכונות כמו תכנון נהלים ופונקציות הקשורות לנתונים, להרחיב את היכולות של מסד הנתונים עם ספריות Java, וגישור על SQL ו- Java2ee World. סביבת התכנות של Java מספקת גם נהלים מאוחסנים ב- Java כבן לוויה לממשקי תכנות PL/SQL, JDBC ו- SQLJ לגישה לנתוני SQL וכלים לניהול כיתות. בנוסף, מסדי נתונים של Oracle מציעים אינטגרציה ופונקציונליות של PL/SQL, ומאפשרים קריאה של תוכניות PL/SQL קיימות מ- Java ולהיפך. מנהלי התקנים של JDBC המסופקים על ידי אורקל מאפשרים קישוריות למסד הנתונים ליישומי Java ויישומונים.
נקודות מפתח
1. Java בפיתוח יישומי מסד נתונים:
- תכנון נהלים ופונקציות הקשורות לנתונים באמצעות Java SE ממשקי API ו- JDBC.
- הרחבת טווח ההגעה והיכולות של מסד הנתונים עם ספריות Java סטנדרטיות וצד ג ‘.
- חלוקה גמישה של יישומי J2SE לגישה לנתונים סימטריים ברמת JDBC.
- גישור בין SQL ו- J2EE World על ידי קריאת רכיבי אינטרנט וגישור על שירותי SQL ושירותי אינטרנט.
2. שימוש בסביבת תכנות Java:
- נהלים מאוחסנים ב- Java כ- Java המקבילה והמלווה של PL/SQL.
- ממשקי תכנות JDBC ו- SQLJ לגישה לנתוני SQL.
- כלים ותסריטים לפיתוח, טעינה וניהול שיעורים.
3. נהלים מאוחסנים ב- Java:
נהלים מאוחסנים ב- Java הם תוכניות Java שנפרסות בשרת ופועלות מהשרת, ממש כמו נהלים מאוחסנים PL/SQL. ניתן להפעיל אותם ישירות או בעקיפין דרך טריגרים. מסד הנתונים של Oracle מספק יישום מלא של שפת התכנות הסטנדרטית של Java ו- JVM.
4. שילוב PL/SQL ופונקציונליות של Oracle RDBMS:
מסדי נתונים של Oracle מאפשרים קריאה לתוכניות PL/SQL קיימות מתוכניות Java ו- Java מ- PL/SQL. זה מאפשר מינוף קוד PL/SQL ו- Java ומנצל את הזדמנויות המחשוב האינטרנט מבוססות Java. מנהלי התקנים של JDBC המסופקים על ידי Oracle כוללים את מנהל ההתקן הדק של JDBC, מנהל התקן OCI של JDBC, ומנהל התקן פנימי של שרת JDBC.
שאלות
1. אילו תכונות מציעות Java בהצעת פיתוח יישומי מסד נתונים?
Java בפיתוח יישומי מסד נתונים מציע תכונות כמו תכנון נהלים ופונקציות הקשורות לנתונים, להרחיב את היכולות של מסד הנתונים עם ספריות Java, וגישור על SQL ו- Java2ee World.
2. מה הנוהל המאוחסן ב- Java המקביל ל- PL/SQL?
הנהלים המאוחסנים ב- Java משמשים כמקבילה של Java ובן לוויה עבור PL/SQL.
3. מהם ממשקי התכנות לגישה לנתוני SQL ב- Java?
ממשקי התכנות JDBC ו- SQLJ משמשים לגישה לנתוני SQL ב- Java.
4. אילו כלים זמינים בסביבת תכנות Java?
סביבת התכנות של Java מספקת כלים ותסריטים לפיתוח, טעינה וניהול שיעורים.
5. כיצד ניתן להפעיל נהלים מאוחסנים ב- Java?
ניתן להפעיל נהלים מאוחסנים ב- Java ישירות או בעקיפין באמצעות טריגרים.
6. האם מסדי נתונים של אורקל יכולים להתקשר לתוכניות PL/SQL קיימות מ- Java?
כן, מסדי נתונים של אורקל תומכים בקריאת תוכניות PL/SQL קיימות מ- Java.
7. כיצד יכולים יישומי Java לגשת לנתוני Oracle SQL?
יישומי Java יכולים לגשת לנתוני SQL של Oracle דרך מנהלי התקנים של JDBC המסופקים על ידי Oracle.
8. מה המטרה של הנהג הדק של JDBC?
מנהל ההתקן הדק של JDBC מאפשר לכתוב יישומי ויישומי Java טהורים אשר ניגשים לנתוני Oracle SQL. זה מתאים ליישומים ויישומים מבוססי אינטרנט.
9. במה שונה מנהל ההתקן של JDBC OCI מהנהג הדק של JDBC?
מנהל ההתקן של JDBC OCI ניגש לקוד ילידים ספציפי לאורקל וספריות בלקוח או ברובד האמצעי, ומספק דחיפה של ביצוע.
10. למה המשמש את מנהל ההתקן הפנימי של שרת JDBC?
מנהל ההתקן הפנימי בצד השרת JDBC מאפשר ליישומי Java הפועלים ב- Oracle JVM בשרת כדי לגשת לנתונים מוגדרים מקומיים באמצעות JDBC, ומספקת דחיפה של ביצועים על ידי שימוש בספריות Oracle RDBMS הבסיסיות ישירות.
האם מסדי נתונים של Oracle משתמשים ב- Java באופן פנימי
כל לקוח מתחיל הפעלה, מתקשר למודולי ההיגיון בצד השרת שלו דרך נקודות כניסה ברמה העליונה, ובסופו של דבר מסיים את ההפעלה. סביבת השרת מסתרת ניהול מפגשים, רשתות ומשאבים משותפים אחרים מתוכניות Java מתארחות.
האם אורקל משתמשת ב- Java
Oracle מספקת למפתחי יישומים ארגוניים פיתרון Java מקצה לקצה ליצירה, פריסה וניהול יישומי Java. הפיתרון הכולל מורכב מממשקים פרוגרמטיים בצד הלקוח וצד השרת, כלים לתמיכה בפיתוח Java ו- JVM המשולב עם מסד הנתונים של Oracle. כל המוצרים הללו תואמים לחלוטין את תקני Java. פרק זה מכסה את הנושאים הבאים:
- Java בפיתוח יישומי מסד נתונים
- שימוש בסביבת תכנות Java
- נהלים מאוחסנים ב- Java
- שילוב PL/SQL ופונקציונליות של Oracle RDBMS
- כלי פיתוח
- פרוטוקול אינטרנט גרסה 6 תמיכה
1.6.1 Java בפיתוח יישומי מסד נתונים
התכונות החשובות ביותר של Java בפיתוח יישומי מסד נתונים הן:
- תכנון נהלים ופונקציות הקשורות לנתונים באמצעות Java SE ממשקי API ו- JDBC.
- הרחבת טווח ההגעה והיכולות של מסד הנתונים עם ספריות Java סטנדרטיות וצד ג ‘. לדוגמה, גישה למסדי נתונים של צד שלישי באמצעות הנהגים שלהם במסד הנתונים וגישה ל- Hadoop/HDFS.
- מתן חלוקה גמישה של פלטפורמת Java2, יישומי מהדורה סטנדרטית (J2SE) לגישה לנתונים סימטריים ברמת JDBC.
- גישור בין SQL ופלטפורמת Java2, Enterprise Edition (J2EE) World מאת:
- קריאת רכיבי אינטרנט, כמו JSP ו- Servlet
- גישור בין שירותי SQL ושירותי אינטרנט באמצעות הסקרות שירות אינטרנט
1.6.2 שימוש בסביבת תכנות Java
בנוסף ל- Oracle JVM, סביבת תכנות Java מספקת:
- נהלים מאוחסנים ב- Java כ- Java המקבילה והמלווה של PL/SQL. נהלים מאוחסנים ב- Java משולבים בחוזקה עם PL/SQL. אתה יכול להתקשר לנהלים מאוחסנים ב- Java מחבילות PL/SQL ונהלי PL/SQL מהנהלים המאוחסנים ב- Java.
- ממשקי התכנות JDBC ו- SQLJ לגישה לנתוני SQL.
- כלים ותסריטים המסייעים בפיתוח, טעינה וניהול שיעורים.
הטבלה הבאה עוזרת לך להחליט מתי להשתמש באיזה API של Java:
לקבל הליך Java שנקרא מ- SQL, כמו טריגר.
נהלים מאוחסנים ב- Java
כדי לקרוא הצהרת SQL סטטית ופשוטה מטבלה ידועה עם שמות עמודות ידועים מאובייקט Java.
לקרוא הצהרות SQL דינאמיות, מורכבות מאובייקט Java.
1.6.3 נהלים מאוחסנים ב- Java
נהלים מאוחסנים ב- Java הם תוכניות Java שנכתבו ונפרסות בשרת ופועלות מהשרת, בדיוק כמו נוהל מאוחסן PL/SQL. אתה קורא אותו ישירות עם מוצרים כמו SQL*Plus, או בעקיפין עם טריגר. אתה יכול לגשת אליו מכל לקוח Oracle Net, כגון OCI ו- Pro*, או JDBC או SQLJ.
בנוסף, אתה יכול להשתמש ב- Java כדי לפתח תוכניות חזקות בצד השרת, שיכולות להיות בלתי תלויות ב- PL/SQL. מסד הנתונים של Oracle מספק יישום מלא של שפת התכנות הסטנדרטית של Java ו- JVM תואם לחלוטין.
נושאים קשורים
1.6.4 אינטגרציה של PL/SQL ופונקציונליות Oracle RDBMS
אתה יכול להתקשר לתוכניות PL/SQL קיימות מתוכניות Java ו- Java מ- PL/SQL. פיתרון זה מגן וממנף את קוד ה- PL/SQL ו- Java שלך ופותח את היתרונות וההזדמנויות של מחשוב אינטרנט מבוסס Java.
מסד הנתונים של Oracle מציע שני ממשקי API שונים של Java לגישה לנתוני SQL, JDBC ו- SQLJ. שני ממשקי ה- API הללו זמינים בלקוח, וגם ה- API של JDBC זמין גם בשרת. כתוצאה מכך, באפשרותך לפרוס את היישומים שלך בלקוח ובשרת.
הנושאים הבאים מציגים את ממשקי ה- API של Java המסופק על ידי מסד הנתונים של אורקל:
1.6.4.1 נהגי JDBC
JDBC הוא פרוטוקול גישה למסד נתונים המאפשר לך להתחבר למסד נתונים ולהפעיל הצהרות SQL ושאילתות למסד הנתונים. ספריות הליבה של Java Class מספקות את ה- APIs הבאים של JDBC: Java.SQL ו- Javax.SQL . עם זאת, JDBC נועד לאפשר לספקים לספק מנהלי התקנים המציעים את ההתמחות הדרושה למסד נתונים מסוים. אורקל מספקת את מנהלי ההתקנים המובחנים של JDBC:
נהג דק של JDBC
אתה יכול להשתמש במנהל התקן הדק של JDBC כדי לכתוב יישומים ויישומי Java טהורים אשר ניגשים לנתוני Oracle SQL. מנהל ההתקן הדק של JDBC מתאים במיוחד ליישומים ויישומים מבוססי אינטרנט, מכיוון שאתה יכול להוריד אותו באופן דינמי מדף אינטרנט, בדומה לכל יישומון Java אחר.
נהג JDBC OCI
מנהל ההתקן של JDBC OCI ניגש לקוד המקורי הספציפי לאורקל, כלומר קוד שאינו ג’אווה וספריות בלקוח או ברובד האמצעי, ומספק דחיפה של ביצוע.
מנהל התקן פנימי בצד השרת JDBC
מסד הנתונים של Oracle משתמש במנהל התקן הפנימי בצד השרת כאשר קוד ה- Java פועל בשרת. זה מאפשר ליישומי Java הפועלים ב- Oracle JVM בשרת כדי לגשת לנתונים מוגדרים באופן מקומי, כלומר נתונים על אותה מערכת ובאותו תהליך, עם JDBC. זה מספק דחיפה בביצועים, בגלל יכולתו להשתמש ישירות בספריות Oracle RDBMS הבסיסיות, ללא תקורה של חיבור רשת מתערב בין קוד ה- Java ל- SQL Data. על ידי תמיכה באותו ממשק Java-SQL בשרת, מסד הנתונים של Oracle אינו מחייב אותך לעבד מחדש קוד בעת פריסתו.
נושאים קשורים
האם מסדי נתונים של Oracle משתמשים ב- Java באופן פנימי?
לַעֲרוֹך:
אורקל אכן כוללת JVM הפועל באותה מכונה כמו מסד הנתונים עצמו, אך זה לא משמש להפעלת קוד “קשור DBMS”.זה רק שם כדי להפעיל נהלים/פונקציות מאוחסנות שנכתבו ב- Java.
ענה 13 בספטמבר 2011 בשעה 6:43
a_horse_with_no_name a_horse_with_no_name
78K 14 14 תגי זהב 157 157 תגי כסף 194 194 תגי ברונזה
וואו, לא ידעתי על החלק C. +1.
13 בספטמבר 2011 בשעה 10:17
עיין ב”ציר הזמן של ההיסטוריה “שלהם: אורקל.COM/US/CONORETION/CIMELINE/INDEX.HTML: 1983: “אורקל משחררת את גרסה 3 של בסיס הנתונים שלה, עם קוד השרת שנכתב בשפת התכנות C”
13 בספטמבר 2011 בשעה 10:24
הניחוש שלי הוא שג’אווה לא קיימת אז. אני חושב שג’אווה ראשונה הגיעה באורקל 8i.
13 בספטמבר 2011 בשעה 16:59
ה- JVM הפנימי אינו משמש להפעלת קוד “קשור DBMS”. זה רק שם כדי להפעיל נהלים/פונקציות מאוחסנות שנכתבו ב- Java.
13 בספטמבר 2011 בשעה 18:27
@a_horse_with_no_name – אני מניח שזה תלוי למה אתה מתכוון בחבילות “סטנדרטיות”. אורקל שולח מספר חבילות המובנות ב- Java (כל דבר שמשתמש ב- XDB, למשל, כולל רבות מחבילות XMLQuery, תלוי ב- JVM הפנימי). אלה אינם “סטנדרטיים” במובן של חבילות שרוב המפתחים משתמשים בה לעיתים קרובות. אבל הם “סטנדרטיים” במובן זה שהם מותקנים כשאתה מבצע התקנת ברירת מחדל של מסד הנתונים של Oracle.
1
מבוא ל- Java במסד הנתונים של אורקלספר זה מספק סקירה כללית כיצד לפתח, לטעון ולבצע את יישומי ה- Java שלך במסד הנתונים של Oracle.
פרק זה מכיל את המידע הבא:
- תוכן פרק
- מה חדש במהדורה זו?
- סקירה כללית של ג’אווה
- מדוע להשתמש ב- Java במסד הנתונים של Oracle?
- מה שונה עם oraclejvm?
- רכיבים עיקריים של OracleJVM
- אסטרטגיית היישום של Java של אורקל
- Desuport of J2ee Technologies במסד הנתונים של Oracle
תוכן פרק
- מציגה את שפת Java עבור מתכנתי מסדי נתונים של אורקל. מפתחי Oracle PL/SQL רגילים לפתח יישומים בצד השרת שיש להם שילוב הדוק עם נתוני SQL. אתה יכול לפתח יישומים בצד השרת של Java המנצלים את המדרגיות והביצועים של מסד הנתונים של Oracle. אם אינך מכיר את Java, ראה “סקירה כללית של Java” .
- בוחן מדוע יכול לשקול להשתמש ב- Java במסד הנתונים של Oracle. ראה “מדוע להשתמש ב- Java במסד הנתונים של Oracle?” . בנוסף, ניתן תיאור קצר עבור כל אחד מממשקי ה- API של Java הנתמכים במסד הנתונים של אורקל. רשימת ממשקי ה- API כוללים נהלים מאוחסנים ב- JDBC ו- Java. ראה “אסטרטגיית היישום של אורקל Java” .
מה חדש במהדורה זו?
החלקים הבאים מתארים את התוספות למהדורה זו:
- שדרוג ל- J2SE 1.4.1
- מודל זיכרון חדש למפגשי מצב ייעודיים
- מסדי נתונים של שירותי אינטרנט
- ממשק ג’אווה יליד
- קריאת EJB
שדרוג ל- J2SE 1.4.1
במהדורה זו, שיעורי המערכת משודרגים מ- J2SE 1.3 עד J2SE 1.4.1. J2SE 1.4.1 תואם ל- J2SE 1.3. Sun Microsystems מפרסמת את רשימת חוסר ההתאמה בין J2SE 1.4.1 וגרסאות קודמות באתר האינטרנט הבא:
http: // java.שמש.com/מוצרים/j2se/1.4.1/תאימות.html
כחלק מהשדרוג של שיעורי המערכת ל- J2SE 1.4.1, OracleJVM תומך ב- AWT ללא ראש. AWT ללא ראש מאפשר לחישוב AWT, שאינו מסתמך על התצוגה המקורית ומכשירי הקלט של הפלטפורמה להתרחש, אך במקום זאת, מנסים את הניסיון לגשת למשאבים ילידים אלה. שיטות שמנסות להציג ממשק משתמש גרפי או לקרוא מכניסה מקלדת או עכבר במקום לזרוק את חריג זמן ההפעלה החדש Java.awt.חסרי ראש. באופן דומה, ה- OracleJVM Unaallows מנסה לנגן או להקליט סאונד באמצעות מכשירי הצליל המקוריים של השרת, אך עדיין מאפשר ליישומים לקרוא, לכתוב ולתפעל קבצי קול נתמכים. למידע נוסף, ראה “ממשקי משתמש בשרת” .
מודל זיכרון חדש למפגשי מצב ייעודיים
במסד הנתונים של Oracle, ל- OracleJVM יש מודל זיכרון חדש למפגשים שמתחברים למסד הנתונים דרך שרת ייעודי. מכיוון שמבטיחה כי הפעלה המשתמשת בשרת ייעודי תשתמש באותו תהליך עבור כל שיחת מסד נתונים, האזור הגלובלי של התהליך משמש להקצאות זיכרון והקצאות אובייקטים ספציפיות להפעלה. המשמעות היא שחלק מהאובייקטים והמשאבים שהיו בעבר הוחזרו בסוף כל שיחה יכולים כעת לחיות בשיחות. בפרט, משאבים ספציפיים למערכת הפעלה מסוימת, כגון אשכולות וקבצים פתוחים, כעת כבר לא מנקים בסוף כל שיחת מסד נתונים.
למפגשים המשתמשים בשרתים משותפים, ההגבלות על שיחות שהוחלו במהדורות קודמות עדיין קיימות. הסיבה היא שמושב שמשתמש בשרת משותף אינו מובטח להתחבר לאותו תהליך בשיחת מסד נתונים שלאחר מכן, ומכאן הזיכרון הספציפי להפעלה ואובייקטים שצריכים לחיות על פני שיחות נשמרים באזור הגלובלי של המערכת. המשמעות היא שיש לנקות משאבים ספציפיים לתהליך, כגון חוטים, קבצים פתוחים ושקעים בסוף כל שיחה, ומכאן שלא יהיו זמינים לשיחה הבאה. לפרטים נוספים על התנהגות OracleJVM בעת שימוש בשרתים משותפים, ראה “שיקולים מיוחדים לשרתים משותפים” .
מסדי נתונים של שירותי אינטרנט
במסד הנתונים של Oracle, באפשרותך לטעון לקוח שירותי אינטרנט ערימת OracleJVM כדי לתמוך בהקרנות לשירותי אינטרנט חיצוניים מ- Java כמו גם מ- PL/SQL. אתה יכול להשתמש בכלי JPublisher כדי לייצר פרוקסי לקוח סטטיים של Java, כמו גם מפרטי שיחות PL/SQL על פרוקסי אלה שנטענים ב- OracleJVM כדי לאפשר גישה לשירותי אינטרנט מ- Java, PL/SQL ו- SQL Code Code.
ממשק ג’אווה יליד
במסד הנתונים של אורקל, כעת תוכלו להפעיל שיטות סטטיות ציבוריות של שיעורי Java ב- OracleJVM ישירות מלקוחות Java מבלי להגדיר את מפרטי השיחה של PL/SQL ולתקשר אליהם דרך JDBC. במקום זאת, אתה יכול להשתמש בכלי השירות של JPublisher כדי ליצור מחלקת פרוקסי לקוח עם אותה חתימה כמו מחלקת Java בצד השרת. לאחר שהפעלת מופע של פרוקסי לקוח עם חיבור JDBC, אתה יכול להתקשר ישירות לשיטות ה- proxy ישירות.
איור 1-1 מדגים ממשק API של STAD בצד הלקוח לצורך הפתיחה ישירה של שיטות Java בצד השרת סטטי. Jpublisher דואג בשקיפות לייצור הדקים.
איור 1-1 ממשק Java יליד
לדוגמה, כדי להתקשר לשיטה הבאה בשרת
Oracle String Public.SQLJ.בּוֹדֵק.JDBCVersion.to_string ();
jpub -java = אורקל.SQLJ.בּוֹדֵק.JDBCVersion
קריאת EJB
ביישומים ארגוניים מסוימים זה הופך חיוני לגשת לפולי Java Enterprise (EJB) שנפרסים בשרת מרוחק, מתוך מסד הנתונים. מסד הנתונים של Oracle מספק אמצעי לגישה ל- EJBs הפרוסים מרחוק מעל RMI.
איור 1-2 קריאת EJB
סקירה כללית של ג’אווה
Java התגלה כשפת התכנות המכוונת לאובייקט שבחרת. זה כולל את המושגים הבאים:
- מכונה וירטואלית של Java (JVM), המספקת את הבסיס הבסיסי לעצמאות פלטפורמה
- טכניקות ניהול אחסון אוטומטיות, שהן הנראות בהן הן אוסף זבל
- תחביר שפה ששאל מ- C ואוכף הקלדה חזקה
התוצאה היא שפה המכוונת לאובייקט ויעילה לתוכניות ברמת היישום.
Java and Abpertible Contramming Contramming
פרק זה מכסה כמה טרמינולוגיה בסיסית של פיתוח יישומי Java בסביבת מסד הנתונים של Oracle. המונחים צריכים להיות מוכרים למתכנתי Java מנוסים. דיון מפורט על תכנות מונחה עצמים או בשפת Java הוא מעבר לתחום של ספר זה. טקסטים רבים, בנוסף למפרט השפה המלא, זמינים בחנות הספרים שלך ובאינטרנט. ראו “קריאה מוצעת” בהקדמה של מצביעים לחומרי התייחסות ולמקומות למצוא מידע הקשור לג’אווה באינטרנט.
שיעורים
כל שפות התכנות המכוונות לאובייקטים תומכות במושג הכיתה. בדומה להגדרת טבלה, מחלקה מספקת תבנית לאובייקטים החולקים מאפיינים משותפים. כל כיתה יכולה להכיל את הדברים הבאים:
- תכונות-משתנים סטטיים או מופע שכל אובייקט בכיתה מסוימת מחזיק.
- שיטות-אתה יכול להפעיל שיטות המוגדרות על ידי הכיתה או בירושה על ידי כל שיעורים המורחבים מהכיתה.
כשאתה יוצר אובייקט משיעור, אתה יוצר מופע של אותו מעמד. המופע מכיל שדות של אובייקט, המכונה נתוניו, או מצב. איור 1-3 מציג דוגמה לשיעור עובדים המוגדר בשתי תכונות: שם משפחה (שם משפחה) ומזהה עובדים (ID).
איור 1-3 שיעורים ומקרים
כשאתה יוצר מופע, התכונות מאחסנות מידע פרטני ופרטי הרלוונטי רק לעובד. כלומר, המידע הכלול במופע עובד ידוע רק עבור אותו עובד יחיד. הדוגמה באיור 1-3 מציגה שני מקרים של עובדים-סמית וג’ונס. כל מופע מכיל מידע הרלוונטי לעובד הבודד.
תכונות
תכונות בתוך מקרה מכונות שדות. שדות מופע מקבילים לשדות של שורת טבלה יחסית. הכיתה מגדירה את השדות, כמו גם את סוג כל שדה. אתה יכול להכריז על שדות ב- Java כדי להיות סטטיים, ציבוריים, פרטיים, מוגנים או ברירת מחדל.
- שדות גישה ציבוריים, פרטיים, מוגנים או ברירת מחדל נוצרים בכל מקרה.
- שדות סטטיים הם כמו משתנים גלובליים בכך שהמידע זמין לכל המקרים של מעמד העובדים.
מפרט השפה מגדיר את כללי הנראות של נתונים עבור כל השדות. כללי הראות מגדירים באילו נסיבות אתה יכול לגשת לנתונים בשדות אלה.
שיטות
הכיתה מגדירה גם את השיטות שאתה יכול להפעיל במופע של אותה כיתה. שיטות נכתבות ב- Java ומגדירות את התנהגותו של אובייקט. חבורה זו של מצב והתנהגות היא תמצית האקפסולציה, שהיא תכונה של כל שפות התכנות המכוונות לאובייקטים. אם אתה מגדיר מעמד עובדים, ומצהיר כי תעודת זהות של כל עובד היא תחום פרטי, אובייקטים אחרים יכולים לגשת לאותו שדה פרטי רק אם שיטה מחזירה את השדה. בדוגמה זו, אובייקט יכול לאחזר את מזהה העובד על ידי קריאת העובד.שיטת getId ().
בנוסף, עם אנקפסולציה, תוכלו להצהיר כי העובד.שיטת getId () היא פרטית, או שאתה יכול להחליט לא לכתוב עובד.שיטת getId (). אנקפסולציה עוזרת לך לכתוב תוכניות לשימוש חוזר ולא מנוצלות לרעה. Encapsulation הופך את הציבור רק לתכונות של אובייקט המוצהר לציבור; כל שאר השדות והשיטות הם פרטיים. ניתן להשתמש בשדות ושיטות פרטיות לעיבוד אובייקטים פנימיים.
היררכיה בכיתה
Java מגדיר שיעורים בתוך היררכיה גדולה של שיעורים. בראש ההיררכיה נמצא מעמד האובייקטים. כל השיעורים ב- Java יורשים ממעמד האובייקטים ברמה מסוימת, כשאתם ניגשים דרך שרשרת הירושה של קלאסיה. כשאנו אומרים כי Class B יורש ממחלקה A, כל מופע של מחלקה B מכיל את כל השדות המוגדרים בכיתה B, כמו גם את כל השדות המוגדרים בכיתה A. לדוגמה, באיור 1-4, מחלקת העובד במשרה מלאה מכילה את שדות ה- ID והשם Lastname המוגדרים בכיתת העובדים, מכיוון שהיא יורשת ממעמד העובדים. בנוסף, כיתת המשרה המלאה מוסיפה תחום נוסף, בונוס, שנמצא רק בתוך משרה מלאה.
אתה יכול להפעיל כל שיטה במופע של מחלקה B שהוגדרה בכיתה A או B או B. בדוגמת העובד שלנו, מופע העובד במשרה מלאה יכול להפעיל שיטות המוגדרות רק בתוך המעמד שלה, או שיטות המוגדרות בתוך מעמד העובדים.
איור 1-4 היררכיה בכיתה
מקרים של מחלקה B ניתנים להחלפה במקרים של מחלקה A, מה שהופך את הירושה למבנה חזק נוסף של שפות מונחות עצמים לשיפור השימוש בקוד. אתה יכול ליצור שיעורים חדשים המגדירים התנהגות ומציינים היכן הגיוני בהיררכיה, ובכל זאת להשתמש בפונקציונליות קיימת בספריות כיתות.
ממשקים
Java תומך רק בירושה יחידה; כלומר, לכל כיתה יש כיתה אחת ויחידה שממנה הוא יורש. אם עליכם לרשת ביותר ממקור אחד, Java מספקת את המקבילה לירושה מרובה, ללא הסיבוכים והבלבול שבדרך כלל מלווים אותה, דרך ממשקים. ממשקים דומים לשיעורים; עם זאת, ממשקים מגדירים חתימות שיטה ולא יישומים. השיטות מיושמות בכיתות המוצהרות ליישום ממשק. ירושה מרובה מתרחשת כאשר מחלקה יחידה תומכת בו זמנית בממשקים רבים.
רב צורתיות
נניח בדוגמת העובד שלנו כי סוגי העובדים השונים חייבים להיות מסוגלים להגיב עם הפיצויים שלהם עד כה. הפיצוי מחושב באופן שונה עבור סוגים שונים של עובדים.
- עובדי משרה מלאה זכאים לבונוס
- אנשים שאינם מעובדים מקבלים תשלום שעות נוספות
בשפות פרוצדוראליות מסורתיות, היית כותב הצהרת מתג ארוך, עם המקרים האפשריים השונים מוגדרים.
מתג: (עובד.סוג) מקרה: עובד החזר עובדים.Salarytodate; מקרה: עובד החזר משרה מלאה.Salarytodate + עובד.בונוסטודט .
אם אתה מוסיף סוג חדש של עובד, עליך לעדכן את הצהרת המתג שלך. אם אתה משנה את מבנה הנתונים שלך, עליך לשנות את כל הצהרות המתג שמשתמשות בו. בשפה מוכוונת אובייקטים כמו Java, אתה מיישם שיטה, פיצוי Todate (), עבור כל תת-סוג של מעמד עובדים הדורש כל טיפול מיוחד מעבר למה שכבר מוגדר בכיתת עובדים. לדוגמה, אתה יכול ליישם את שיטת הפיצויים Todate () של מעובד שאינו מעלה, כדלקמן:
פיצוי צף פרטי ()
אתה מיישם את השיטה של FullwardeMobleee, כדלקמן:
פיצוי צף פרטי ()
השימוש הנפוץ בשם השיטה פיצוי Todate () מאפשר לך להפעיל את השיטה הזהה בכיתות שונות ולקבל תוצאות שונות, מבלי לדעת את סוג העובד שאתה משתמש בו. אתה לא צריך לכתוב שיטה מיוחדת לטיפול בעובדים במשרה מלאה ועובדים חלקים. יכולת זו של האובייקטים השונים להגיב למסר הזהה בדרכים שונות מכונה פולימורפיזם.
בנוסף, אתה יכול ליצור מעמד חדש לחלוטין שאינו יורש מעובד ב- All-קבלן-וליישם שיטת פיצוי (). תוכנית המחושבת עד היום סך שכר הייתה חוזרת על פני כל האנשים בשכר, ללא קשר לשאלה אם הם היו במשרה מלאה, חלקית או קבלנים, ותוסיף את הערכים שהוחזרו מהפעלת שיטת הפיצויים () על כל אחד מהם. אתה יכול לבצע שינויים בבטחה בשיטות הפיצויים האישיים () עם הידע כי מתקשרים של השיטות יעבדו כראוי. לדוגמה, אתה יכול להוסיף בבטחה שדות חדשים לשיעורים קיימים.
המכונה הווירטואלית של Java (JVM)
בדומה לשפות מחשב אחרות ברמה גבוהה, מקור ה- Java שלך אוסף להוראות מכונה ברמה נמוכה. ב- Java, הוראות אלה ידועות כקודי Bytodes (מכיוון שגודלם הוא באופן אחיד בייט אחסון אחד). מרבית השפות האחרות-כמו C-הוראות להוראות ספציפיות למכונה-כמו הוראות ספציפיות למעבד אינטל או HP. מקור ה- Java שלך אוסף לסט סטנדרטי, עצמאי לפלטפורמה, של מקדדי Byte, שמקיימים אינטראקציה עם מכונה וירטואלית של Java (JVM). ה- JVM הוא תוכנית נפרדת המותאמת לפלטפורמה הספציפית בה אתה מבצע את קוד ה- Java שלך. איור 1-5 ממחיש כיצד Java יכול לשמור על עצמאות הפלטפורמה. מקור ה- Java שלך נערך לקודי Byte, שהם עצמאיים לפלטפורמה. כל פלטפורמה התקנה JVM הספציפי למערכת ההפעלה שלה. קידורי ה- Java Java ממקורך מתפרשים דרך ה- JVM לפעולות תלויות בפלטפורמה מתאימות.
איור 1-5 מבנה רכיב Java
כשאתה מפתח תוכנית Java, אתה משתמש בספריות כיתות ליבה מוגדרות מראש שנכתבו בשפת Java. ספריות כיתת הליבה של Java מחולקות באופן הגיוני לחבילות המספקות פונקציונליות נפוצה, כמו תמיכה בשפה בסיסית (Java.לאנג), קלט/פלט (Java.IO) וגישה לרשת (Java.נֶטוֹ). יחד, ספריות JVM ו- Core Class מספקות פלטפורמה שעליה יכולים מתכנתים של Java להתפתח בביטחון שכל מערכת חומרה ומערכת הפעלה התומכת ב- Java תבצע את התוכנית שלהם. הרעיון הזה הוא זה שמניע את הרעיון “כתוב פעם אחת, רץ לכל מקום” של ג’אווה.
איור 1-6 ממחיש כיצד יישומי Oracle Java יושבים על גבי ספריות כיתת הליבה של Java, אשר בתורם יושבות בראש ה- JVM. מכיוון שמערכת התמיכה של Oracle Java ממוקמת בתוך בסיס הנתונים, ה- JVM מקיים אינטראקציה עם ספריות מסד הנתונים של Oracle, במקום ישירות עם מערכת ההפעלה.
איור 1-6 מבנה רכיב Java Java Database Database
Sun Microsystems מספקת מפרטים זמינים לציבור הן לשפת Java והן ל- JVM. מפרט שפת Java (JLS) מגדיר דברים כמו תחביר וסמנטיקה; מפרט JVM מגדיר את ההתנהגות הנמוכה הנמוכה עבור “המכונה” שמבצעת את קודי ה- BYTE. בנוסף, Sun Microsystems מספקת חבילת בדיקות תאימות עבור מיישמי JVM כדי לקבוע אם הם עמדו במפרט. חבילת מבחן זו מכונה ערכת תאימות Java (JCK). יישום OracleJVM עומד באופן מלא עם JCK. חלק מהאסטרטגיה הכוללת של Java הוא שתקן שצוין באופן גלוי, יחד עם דרך פשוטה לאמת ציות לתקן זה, מאפשרת לספקים להציע תמיכה אחידה ל- Java בכל הפלטפורמות.
מאפייני מפתח בשפת Java
לשפת Java תכונות עיקריות שהופכות אותה לאידיאלית לפיתוח יישומי שרת. תכונות אלה כוללות:
- פשטות-ג’אווה היא שפה פשוטה יותר מרוב האחרים המשמשים ביישומי שרת בגלל אכיפה העקבית של מודל האובייקט. הסט הגדול והסטנדרטי של ספריות כיתות מביא כלים עוצמתיים למפתחי Java בכל הפלטפורמות.
- ניידות-ג’אווה ניידת על פני פלטפורמות. אפשר לכתוב קוד תלוי פלטפורמה ב- Java, אך זה פשוט לכתוב תוכניות שמעבירות בצורה חלקה על פני מכונות. יישומי Oracle Server, שאינם תומכים בממשקי משתמש גרפיים ישירות בפלטפורמה המארחת אותם, נוטים גם להימנע מבעיות ניידות הפלטפורמות המעטות שיש ל- Java.
- ניהול אחסון אוטומטי-המכונה הווירטואלית של Java מבצעת אוטומטית את כל הקצאת הזיכרון וההתמחות במהלך ביצוע התוכנית. מתכנתי Java לא יכולים להקצות או לזיכרון חופשי במפורש. במקום זאת, הם תלויים ב- JVM כדי לבצע את פעולות הנהלת החשבונות הללו, ומקצים את הזיכרון כאשר הם יוצרים אובייקטים חדשים וממלאים זיכרון כאשר האובייקטים כבר לא מופנים. הפעולה האחרונה מכונה אוסף זבל.
- הקלדה חזקה-לפני שאתה משתמש במשתנה Java, עליך להכריז על סוג האובייקט שהוא יחזיק. ההקלדה החזקה של Java מאפשרת לספק פיתרון סביר ובטוח לשיחות בין שפות בין יישומי Java ל- PL/SQL, ולשילוב שיחות Java ו- SQL באותה יישום.
- אף עצות-למרות שג’אווה שומרת על חלק גדול מהטעם של C בתחביר שלה, היא אינה תומכת במצביעים ישיר או מניפולציה של מצביע. אתה מעביר את כל הפרמטרים, למעט סוגים פרימיטיביים, על ידי הפניה (כלומר זהות אובייקט נשמרת), ולא לפי ערך. Java אינו מספק גישה ישירה ברמה הנמוכה של C.
- טיפול בחריגים-חריגים של ג’אווה הם אובייקטים. Java מחייב מפתחים להצהיר אילו חריגים יכולים להיזרק בשיטות בכל כיתה מסוימת.
- מרחב שמות גמיש-ג’אווה מגדיר שיעורים ומחזיק אותם במבנה היררכי המשקף את מרחב השמות של האינטרנט. אתה יכול להפיץ יישומי Java ולהימנע מהתנגשויות בשמות. תוספי Java כמו ממשק שמות ומדריך Java (JNDI) מספקים מסגרת לשירותי שם מרובים להיות פדרציה. גישת מרחב השמות של Java גמישה מספיק כדי שאורקל תשלב את הרעיון של סכימה לפתרון שמות כיתות, תוך כדי עמידה מלאה במפרט השפה.
- אבטחה-תכנון קידורי בייטא של Java ו- JVM מאפשרים מנגנונים מובנים כדי לוודא שהקוד הבינארי של Java לא הוחלף בו. מסד הנתונים של Oracle מותקן עם מופע של SecurityManager, אשר בשילוב עם אבטחת מסד הנתונים של Oracle, קובע מי יכול להפעיל כל שיטות Java.
- סטנדרטים לקישוריות למאגרי מידע יחסית-JDBC מאפשרים לקוד Java גישה ולתפעל נתונים תושב במאגרי נתונים יחסית. אורקל מספקת נהגים המאפשרים קוד Java עצמאי של ספקים לגישה למסד הנתונים היחסי.
מדוע להשתמש ב- Java במסד הנתונים של Oracle?
הסיבה היחידה שמותר לך לכתוב ולהעמיס יישומי Java בתוך בסיס הנתונים היא מכיוון שמדובר בשפה בטוחה. Java פותח כדי למנוע ממישהו להתעסק במערכת ההפעלה בה שוכן קוד ה- Java. שפות מסוימות, כמו C, יכולות להציג בעיות אבטחה בתוך בסיס הנתונים; Java, בגלל עיצובו, היא שפה בטוחה לאפשר בתוך בסיס הנתונים.
למרות ששפת Java מציגה יתרונות רבים למפתחים, מתן יישום של JVM התומך ביישומי שרת Java באופן מדרגי הוא אתגר. פרק זה דן בכמה מהאתגרים הללו.
- Java ו- RDBMS: שילוב חזק
- ריבוי ריבוי
- ניהול אחסון אוטומטי עם איסוף זבל
- עָקֵב
- ביצועים
- טעינה בכיתה דינמית
Java ו- RDBMS: שילוב חזק
Oracle RDBMS מספקת יישומי Java עם מנוע לעיבוד נתונים דינאמי התומך בשאילתות מורכבות ותצוגות שונות של אותם נתונים. כל בקשות הלקוח מורכבות כשאילתות נתונים לעיבוד מיידי, ותוצאות השאילתה נוצרות תוך כדי תנועה.
מספר תכונות הופכות את Java לאידיאלי לתכנות שרתים. Java מאפשר לך להרכיב יישומים באמצעות רכיבי תוכנה מחוץ למדף (Javabeans). בטיחות סוגו וניהול הזיכרון האוטומטי מאפשרים שילוב הדוק עם ה- RDBM. בנוסף, Java תומך בהפצה השקופה של רכיבי היישום ברשת.
לפיכך, Java ו- RDBMS תומכים בהרכבה מהירה של יישומים מבוססי רכיבים ומרכזי רשת שיכולים להתפתח בחינניות ככל שהצרכים העסקיים משתנים. בנוסף, באפשרותך להעביר יישומים וחנויות נתונים משולחן העבודה ולרשתות חכמות ושרתים ממוקדי רשת. חשוב מכך, אתה יכול לגשת לאותם יישומים וחנויות נתונים מכל מכשיר לקוח.
איור 1-7 מציג תצורת דו-שכבתית מסורתית, לקוח/שרת, בה לקוחות מתקשרים לנהלים מאוחסנים ב- Java באותה דרך שהם מכנים נהלים מאוחסנים PL/SQL. (PL/SQL הוא 4GL מתקדם המשולב היטב עם מסד הנתונים של Oracle.) הנתון מראה גם כיצד מנהל החיבור לשירותי Oracle Net יכול להעניק חיבורי רשת רבים לחיבור מסד נתונים יחיד. זה מאפשר ל- RDBMS לתמוך במספר גדול של משתמשים במקביל.
איור 1-7 תצורת לקוח/שרת דו-שכבתי
ריבוי ריבוי
תמיכה רב -ריבוי מצוינת לעתים קרובות כאחת מתכונות המדרגיות העיקריות של שפת Java. בהחלט, שפת ה- Java וספריות הכיתה הופכות את זה לפשוט יותר לכתוב יישומים מרובי -חריגים ב- Java מאשר שפות רבות אחרות, אך זו עדיין משימה מפחידה בכל שפה לכתוב אמינה וניתנת להרחבה בקוד רב -מדרגי.
כשרת מסד נתונים, מסד הנתונים של Oracle פועל ביעילות לוחות זמנים עבור אלפי משתמשים. ה- OracleJVM משתמש במתקנים של שרת RDBMS כדי לתאם במקביל את ביצוע ה- Java עבור אלפי משתמשים. למרות שמסד הנתונים של Oracle תומך בחוטי רמת שפה של Java הנדרשים על ידי JLS ו- JCK, שימוש בחוטים במסגרת מסד הנתונים לא יגדיל את המדרגיות שלך. השימוש במדרגיות המוטמעת של מסד הנתונים מבטל את הצורך בכתיבת שרתי Java רב -חריפים. עליך להשתמש במתקני מסד הנתונים לתזמון משתמשים על ידי כתיבת יישומי Java חד-הברגה. בסיס הנתונים ידאג לתזמון בין כל יישום; לפיכך, אתה משיג מדרגיות מבלי שתצטרך לנהל חוטים. אתה עדיין יכול לכתוב יישומי Java רב -חריפים, אך חוטי Java מרובים לא יגדילו את ביצועי השרת שלך.
קושי אחד רב -ריבוי מטיל על Java הוא אינטראקציה של חוטים וניהול אחסון אוטומטי, או איסוף זבל. לאספן האשפה המבוצע ב- JVM גנרי אין שום ידיעה אילו חוטי שפת Java מבצעים או כיצד מערכת ההפעלה הבסיסית מתכננת אותם.
- מודל מסד נתונים שאינו אורקל-משתמש יחיד ממפה לחוט יחיד ברמת שפה Java; אותו אספן זבל יחיד מנהל את כל הזבל מכל המשתמשים. טכניקות שונות בדרך כלל עוסקות בהקצאה ואוסף של אובייקטים של תקופות חיים וגדלים משתנים. התוצאה ביישום רב -חריף בכבדות היא, במקרה הטוב, תלויה בתמיכה במערכת ההפעלה בחוטים מקוריים, שיכולים להיות לא אמינים ומוגבלים במדרגיות. לא הוכחו רמות מדרגיות גבוהות ליישומים כאלה.
- מודל OracleJVM-גם כאשר אלפי משתמשים מתחברים לשרת ומבצעים את אותו קוד Java, כל משתמש חווה אותו כאילו הוא מבצע קוד Java משלו במכונה וירטואלית שלו Java משלו. האחריות של OracleJVM היא להשתמש בתהליכי מערכת הפעלה ובחוטים, באמצעות הגישה המובהקת של Oracle RDBMS. כתוצאה מגישה זו, אספן האשפה של JVM הוא אמין ויעיל יותר מכיוון שהוא לעולם לא אוסף זבל מיותר ממשתמש בכל עת. עיין ב”השחלה במסד נתונים של אורקל “למידע נוסף על יישום מודל החוט ב- OracleJVM.
ניהול אחסון אוטומטי עם איסוף זבל
אוסף האשפה הוא מאפיין עיקרי בניהול האחסון האוטומטי של Java, ומבטל את הצורך במפתחי Java להקצות וזיכרון חופשי במפורש. כתוצאה מכך, זה מבטל מקור גדול של דליפות זיכרון המציגות בדרך כלל תוכניות C ו- C ++. יש מחיר לתועלת כזו: אוסף האשפה תורם לתקורה של מהירות ביצוע התוכנית וטביעת רגל. למרות שמאמרים רבים נכתבו במוקדמות וכימות הסחר, העלות הכוללת היא סבירה, בהתחשב בחלופות.
אוסף האשפה מטיל אתגר למפתח JVM המבקש לספק פלטפורמת Java מדרגית ומהירה מאוד. ה- OracleJVM עומד באתגרים אלה בדרכים הבאות:
- ה- OracleJVM משתמש במתקני תזמון מסד הנתונים של Oracle, שיכולים לנהל משתמשים מרובים ביעילות.
- אוסף האשפה מופיע בעקביות עבור משתמשים מרובים מכיוון שאוסף האשפה ממוקד במשתמש יחיד בתוך מפגש יחיד. ה- OracleJVM נהנה מיתרון עצום מכיוון שהעומס והמורכבות של תפקידו של מנהל הזיכרון אינם גדלים ככל שמספר המשתמשים גדל. מנהל הזיכרון מבצע את הקצאת האובייקטים ואוסף האובייקטים בתוך מפגש יחיד-שמתורגם בדרך כלל לפעילות של משתמש יחיד.
- ה- OracleJVM משתמש בטכניקות איסוף זבל שונות בהתאם לסוג הזיכרון המשמש. טכניקות אלה מספקות יעילות גבוהה ותקורה נמוכה.
עָקֵב
טביעת הרגל של תוכנית Java המבצעת מושפעת מגורמים רבים:
- גודל התוכנית עצמה-כמה שיעורים ושיטות רבות וכמה קוד הם מכילים.
- מורכבות התוכנית-כמות ספריות הליבה בכיתות הליבה בהן משתמש ה- OracleJVM כפי שהוכנה מבצעת, לעומת התוכנית עצמה.
- כמות המצב ש- JVM משתמשת בה–כמה חפצים רבים מקצה JVM, כמה הם גדולים וכמה יש לשמור על שיחות.
- יכולתו של אספן האשפה ומנהל הזיכרון להתמודד עם הדרישות של תוכנית הביצוע, שלעתים קרובות אינה דטרמיניסטית. המהירות בה מוקצים חפצים והדרך בה הם מוחזקים על ידי אובייקטים אחרים משפיעה על חשיבותו של גורם זה.
מנקודת מבט של מדרגיות, המפתח לתמיכה בלקוחות רבים במקביל הוא טביעת רגל מינימלית למשתמש. ה- OracleJVM שומר על טביעת הרגל של הפעלת המשתמש למינימום על ידי הצבת כל הנתונים הקריאה בלבד למשתמשים, כגון קודי Bytecodes Java, בזיכרון המשותף. אלגוריתמים של איסוף אשפה מתאימים מיושמים כנגד זיכרונות שיחה והפעלה לשמירה על טביעת רגל קטנה להפעלת המשתמש. ה- OracleJVM משתמש בשלושה סוגים של אלגוריתמי איסוף זבל כדי לשמור על זיכרון ההפעלה של המשתמש:
- ניקוי דורי לחפצים קצרי מועד
- אוסף טאטאות מארק ועצלן לאובייקטים שקיימים לחיי שיחה יחידה
- העתקת אספן לאובייקטים ארוכי שנים-אובייקטים שחיים על פני שיחות בתוך מפגש
ביצועים
ביצועי OracleJVM משופרים על ידי יישום מהדר מקורי.
כיצד מהדרים ילידים משפרים את הביצועים
Java מבצעת מקדמי ציבור עצמאיים לפלטפורמה על גבי JVM, אשר בתורו מקיים אינטראקציה עם פלטפורמת החומרה הספציפית. בכל פעם שאתה מוסיף רמות בתוכנה, הביצועים שלך מושפלים. מכיוון ש- Java דורש לעבור מתווך כדי לפרש את מקדדי ההצגה העצמאיים של פלטפורמה, קיימת מידה של חוסר יעילות עבור יישומי Java שאינם קיימים בשפה תלויה בפלטפורמה, כמו C. כדי לטפל בבעיה זו, כמה ספקי JVM יוצרים מהדרים ילידים. מהדרים ילידים מתרגמים את קידורי ה- Java Bytodes לקוד ילידי תלוי פלטפורמה, שמבטל את צעד המתורגמן ומשפר את הביצועים.
להלן מתאר שתי שיטות להערכה מקורית:
אוסף בדיוק בזמן (JIT)
מהדר JIT מחזיקים במהירות את קידורי ה- Java Java לקוד מכונה מקורי (ספציפי לפלטפורמה) במהלך זמן הריצה. זה לא מפיק הפעלה לביצוע בפלטפורמה; במקום זאת, הוא מספק קוד תלוי פלטפורמה מקודי Bytecodes Java שמבוצע ישירות לאחר תורגם. זה אמור לשמש לקוד Java המופעל לעתים קרובות, אשר יבוצע במהירויות קרוב יותר לשפות כמו C.
קומפילציה מתרגמת את קידורי ה- Java Bytodes לקוד C עצמאי לפלטפורמה לפני זמן הריצה. ואז מהדר C רגיל אוסף את קוד C להפעלה לפלטפורמת היעד. גישה זו מתאימה יותר ליישומי Java המשתנים לעתים רחוקות. גישה זו מנצלת את טכנולוגיית הקומפילציה הבוגרת והיעילה הספציפית לפלטפורמה שנמצאת במהדר C מודרני.
מסד הנתונים של Oracle משתמש בקומפילציה לפני הזמן כדי לספק את ספריות הליבה שלה ב- Java: קוד JDBC בצורה מורכבת באופן טבעי. זה ישים בכל הפלטפורמות שאורקל תומכת בהן, ואילו גישה JIT דורשת קוד ברמה נמוכה ותלות מעבד כדי להתייחס ולתחזק עבור כל פלטפורמה. אתה יכול להשתמש בטכנולוגיית אוסף מקורית זו עם קוד Java משלך.
כפי שמראה איור 1-8, קוד מורכב באופן טבעי מבצע עד פי עשרה מהקוד המפורש. לכן, ככל שהקוד המקורי שלך משתמש בתוכנית שלך, כך היא מבצעת מהר יותר.
איור 1-8 מתורגמן לעומת מאיץ
עיין ב”קוד מורכב טבעי “למידע נוסף.
טעינה בכיתה דינמית
מאפיין חזק נוסף של Java הוא טעינה בכיתה דינמית. מעמיס הכיתה מעמיס שיעורים מהדיסק (ומניח אותם במבני הזיכרון הספציפיים ל- JVM הנחוצים לפרשנות) רק כפי שהם משמשים במהלך ביצוע התוכנית. מטען הכיתה מאתר את השיעורים בנתיב הכיתה ומטען אותם במהלך ביצוע התוכנית. גישה זו, שעובדת היטב עבור יישומונים, מציבה את הבעיות הבאות בסביבת שרת:
פעולת העמסת הכיתה מציבה עונש קשה על ביצוע לראשונה. תוכנית פשוטה יכולה לגרום ל- OracleJVM לטעון שיעורי ליבה רבים כדי לתמוך בצרכים שלה. מתכנת לא יכול בקלות לחזות או לקבוע את מספר הכיתות שנטענו.
ה- OracleJVM טוען שיעורים באופן דינמי, ממש כמו בכל מכונה וירטואלית אחרת של Java. אותה פגיעת מהירות טעינה כיתתית חד פעמית נתקלת. עם זאת, מכיוון שהשיעורים נטענים בזיכרון משותף, אף משתמשים אחרים בכיתות לא יגרמו לשיעורים לטעון שוב-הם פשוט ישתמשו באותן כיתות טעונות מראש.
היתרון של טעינה בכיתה דינאמית הוא שהוא תומך בעדכון התוכנית. לדוגמה, היית מעדכן שיעורים בשרת, ולקוחות שמורידים את התוכנית ומטענים אותה באופן דינמי רואה את העדכון בכל פעם שהם משתמשים בתוכנית לאחר מכן. תוכניות שרת נוטות להדגיש אמינות. כמפתח, עליכם לדעת שכל לקוח מבצע תצורת תוכנית ספציפית. אתה לא רוצה שלקוחות יטענו בשוגג כמה שיעורים שלא התכוונת לטעון אותם.
מסד הנתונים של Oracle מפריד בין ההעלאה והפתרון הפעולה מפעולת הטעינה בכיתה בזמן ריצה. אתה מעלה קוד Java שפיתחת לשרת באמצעות כלי השירות LoadJava. במקום להשתמש ב- ClassPath, אתה מציין פותר בזמן ההתקנה. הרזולור מקביל ל- ClassPath, אך מאפשר לך לציין את הסכמות בהן שוכנים הכיתות. הפרדת רזולוציה זו מעמסת כיתות פירושה שאתה תמיד יודע אילו משתמשי התוכנית מבצעים. עיין בפרק 11, “כלי סכימה אובייקטים” לפרטים על Goadjava and Resoments.
מה שונה עם oraclejvm?
פרק זה דן בכמה הבדלים חשובים בין OracleJVM ללקוח טיפוסי JVM.
שיטה עיקרית ()
יישומי Java מבוססי לקוח מכריזים על שיטה יחידה ברמה העליונה (Main ()) המגדירה את הפרופיל של יישום. בדומה ליישומונים, ליישומים מבוססי שרת אין “לולאה פנימית כזו.”במקום זאת, הם מונעים על ידי לקוחות עצמאיים מבחינה לוגית.
כל לקוח מתחיל הפעלה, מתקשר למודולי ההיגיון בצד השרת שלו דרך נקודות כניסה ברמה העליונה, ובסופו של דבר מסיים את ההפעלה. סביבת השרת מסתרת ניהול מפגשים, רשתות ומשאבים משותפים אחרים מתוכניות Java מתארחות.
הגוי
שרת לא יכול לספק GUIS, אך הוא יכול לספק את ההיגיון שמניע אותם. ה- OracleJVM תומך רק במצב חסר הראש של ערכת הכלים המופשטת (AWT). כל שיעורי ה- AWT Java זמינים בסביבת השרת והתוכניות שלך יכולות להשתמש בפונקציונליות AWT, כל עוד הן לא מנסות לממש GUI בשרת. למידע נוסף, ראה “ממשקי משתמש בשרת” .
ה- IDE
ה- OracleJVM מכוון לפריסת יישומי Java ולא לפיתוח. אתה יכול לכתוב ולבחון יישומים יישומים ב- IDE המועדף עליך, כגון Oracle JDeveloper, ואז לפרוס אותם לביצוע בתוך ה- RDBMS.
ראה “כלי פיתוח” למידע נוסף.
התאימות הבינארית של Java מאפשרת לך לעבוד בכל IDE, ואז להעלות קבצי מחלקה של Java לשרת. אינך צריך להעביר את קבצי המקור שלך ל- Java למסד הנתונים. במקום זאת, אתה יכול להשתמש ב- IDEs חזקים בצד הלקוח כדי לשמור על יישומי Java שנפרסים בשרת.
רכיבים עיקריים של OracleJVM
פרק זה מתאר בקצרה את המרכיבים העיקריים של OracleJVM וחלק מהמתקנים שהם מספקים.
מסד הנתונים של Oracle Java Virtual Machine (JVM) הוא סביבת ביצוע שלמה בת 2 Java 2 Java. זה פועל באותו שטח תהליכים ומרחב כתובת כמו גרעין RDBM. עיצוב זה מייעל את השימוש בזיכרון ומגדיל את התפוקה.
ה- OracleJVM מספק סביבת זמן ריצה עבור חפצי Java. זה תומך במלואו במבני נתוני Java, שיגור שיטות, טיפול בחריגים וחוטי רמת שפה. זה גם תומך בכל ספריות הליבה של Java Java כולל Java.לאנג, ג’אווה.io, Java.נטו, ג’אווה.מתמטיקה, וג’אווה.שימוש. איור 1-9 מציג את המרכיבים העיקריים שלו.
איור 1-9 רכיבים עיקריים של OracleJVM
ה- OracleJVM מטמיע את מרחב השמות הסטנדרטי של Java בסכמות RDBMS. תכונה זו מאפשרת לתוכניות Java לגשת לאובייקטים של Java המאוחסנים במסדי נתונים של אורקל ושרתי יישומים ברחבי הארגון.
בנוסף, ה- OracleJVM משולב בחוזקה בארכיטקטורת הזיכרון המשותפת והמשותפת של ה- RDBMS. תוכניות Java משתמשות ביעילות שיחות, הפעלה ואובייקט ביעילות ללא התערבותך. לכן, אתה יכול לגודל של OracleJvmand חפצי עסקים של Java, גם כשיש להם מצב של מושב.
אספן האשפה מתואר ב”ניהול אחסון אוטומטי עם איסוף זבל ” . המהדר המקומי נדון ב”ביצועים ” . שאר הרכיבים מתוארים בסעיפים הבאים:
בנוסף, החלקים הבאים נותנים סקירה כללית של מנהל ההתקן של JDBC:
מנהל הספרייה
כדי לאחסן שיעורי Java במסד נתונים של Oracle, אתה משתמש ב- Utility Utility Load Java, המעסיק SQL Create Create הצהרות Java כדי לבצע את עבודתו. כאשר הוא מופעל על ידי הצהרת Create Java, מנהל הספרייה טוען קבצי מקור, מחלקה או משאב Java למסד הנתונים. אתה אף פעם לא ניגש ישירות לאובייקטים של סכימת Java; רק ה- OracleJVM משתמש בהם.
מַהְדֵר
ה- OracleJVM כולל Java 2 סטנדרטי (המכונה גם JDK 1.2) מהדר Java. כאשר הוא מופעל על ידי הצהרת Create Java Sorak קידורי בייט. כל קוד BYTECODE מורכב מ- OPCODE ואחריו אופרנדים שלו. קבצי הכיתה של Java שהתקבלו, התואמים באופן מלא לתקן Java, מוגשים למתורגמן בזמן ריצה.
מְתוּרגְמָן
כדי לבצע תוכניות Java, OracleJVM כולל מתורגמן Standard Java 2 Bytecode. המתורגמן ומערכת הפעלה של Java Runtime משויכת מבצעים קבצי כיתת Java סטנדרטיים. מערכת זמן ההפעלה תומכת בשיטות ילידיות וקריאה/קריאה מהסביבה המארחת.
אתה יכול גם להרכיב את הקוד שלך לביצוע מהיר יותר. ה- OracleJVM משתמש בגרסאות מורכבות באופן טבעי של ספריות הליבה של Java Class ו- JDBC נהגי JDBC. למידע נוסף, ראה “קוד מורכב באופן טבעי” .
מטעין מחלקה
בתגובה לבקשות ממערכת זמן הריצה, מטעין מחלקה Java מאתר, עומס ומאתחל שיעורי Java המאוחסנים בבסיס הנתונים. מטעין הכיתה קורא את הכיתה ואז מייצר את מבני הנתונים הדרושים לביצועו. נתונים ומטא נתונים בלתי ניתנים לשינוי נטענים לזיכרון משותף לאתחול בלבד. כתוצאה מכך, נדרש פחות זיכרון לכל מפגש. מטעין הכיתה מנסה לפתור הפניות חיצוניות במידת הצורך. כמו כן, זה קורא למהדר Java באופן אוטומטי כאשר יש לחדש מחדש קבצי מחלקה של Java (וקבצי המקור זמינים).
אמת
קבצי כיתת Java ניידים לחלוטין ותואמים לפורמט מוגדר היטב. האימות מונע שימוש שלא בכוונה בקבצי כיתת Java “מזויפים”, שעשויים לשנות את זרימת התוכנית או להפר את מגבלות הגישה. אורקל אבטחה ואבטחת Java עובדת עם האמת כדי להגן על היישומים והנתונים שלך.
מנהל התקן פנימי של JDBC בצד השרת
JDBC היא קבוצה סטנדרטית של שיעורי Java המספקים גישה עצמאית של ספקים לנתונים יחסיים. צוין על ידי Sun MicroSystems ומודוג מודל לאחר ODBC (קישוריות מסד נתונים פתוח) ו- X/Open SQL CLI (ממשק רמת שיחה), כיתות JDBC מספקות תכונות סטנדרטיות כמו חיבורים סימולטניים למספר מאגרי נתונים, ניהול עסקאות, שאילתות פשוטות, קריאות לנהלים מאוחסנים וסטרימינג למספר נתוני עמודות ארוכות.
באמצעות נקודות כניסה ברמה נמוכה, מנהל התקן JDBC מכוון במיוחד פועל ישירות בתוך ה- RDBM. מנהל ההתקן הפנימי של JDBC בצד השרת עומד באופן מלא עם מפרט Sun Microsystems JDBC. משולב היטב עם ה- RDBM. בנוסף, ממשקי ה- API של JDBC בצד הלקוח וצד השרת זהים, מה שמקל על יישומי המחיצה.
אסטרטגיית היישום של Java של אורקל
ערעור אחד של Java הוא הימצאותו והמספר ההולך וגדל של מתכנתים המסוגלים לפתח יישומים באמצעותו. אורקל מספקת למפתחי יישומי ארגונים עם פיתרון Java מקצה לקצה ליצירה, פריסה וניהול יישומי Java. הפיתרון הכולל מורכב מממשקים פרוגרמטיים בצד הלקוח וצד השרת, כלים לתמיכה בפיתוח Java ומכונה וירטואלית של Java המשולבת עם שרת מסד הנתונים של Oracle. כל המוצרים הללו תואמים 100 אחוז לתקני Java.
סביבת תכנות Java
בנוסף ל- OracleJVM, סביבת התכנות של Java מורכבת מ:
- נהלים מאוחסנים ב- Java כ- Java המקבילה והמלווה של PL/SQL. נהלים מאוחסנים ב- Java משולבים בחוזקה עם PL/SQL. אתה יכול להתקשר לנוהל המאוחסן ב- Java מחבילת PL/SQL; אתה יכול להתקשר לנהלי PL/SQL מהליך המאוחסן ב- Java.
- ניתן לגשת לנתוני SQL דרך JDBC.
- כלים ותסריטים המשמשים לסיוע בפיתוח, טעינת כיתות וניהול כיתות.
כדי לעזור לך להחליט באיזה ממשקי API של Java, בדוק את הטבלה הבאה:
כדי לקבל נוהל Java Ocduredation מ- SQL, כמו טריגר.
נהלים מאוחסנים ב- Java
כדי להפעיל הצהרות SQL דינאמיות ומורכבות מאובייקט Java.
נהלים מאוחסנים ב- Java
אם אתה מתכנת PL/SQL הבוחן את Java, אתה תהיה מעוניין בהליכים מאוחסנים ב- Java. נוהל המאוחסן ב- Java הוא תוכנית שאתה כותב ב- Java לביצוע בשרת, בדיוק כנוהל מאוחסן PL/SQL. אתה קורא אותו ישירות עם מוצרים כמו SQL*Plus, או בעקיפין עם טריגר. אתה יכול לגשת אליו מכל לקוח Oracle Net-OCI, Pro* או JDBC. פרק 5, “פיתוח נהלים מאוחסנים ב- Java” מסביר כיצד לכתוב נהלים מאוחסנים ב- Java, כיצד לגשת אליהם מ- PL/SQL וכיצד לגשת לפונקציונליות PL/SQL מ- Java.
בנוסף, אתה יכול להשתמש ב- Java כדי לפתח תוכניות חזקות ללא תלות ב- PL/SQL. מסד הנתונים של Oracle מספק יישום מלא של שפת התכנות של Java ו- JVM.
שילוב PL/SQL ופונקציונליות של Oracle RDBMS
אתה יכול להפעיל תוכניות PL/SQL קיימות מ- Java ולהפוך תוכניות Java מ- PL/SQL. פיתרון זה מגן וממנף את ההשקעה הקיימת שלך תוך פתיחת היתרונות וההזדמנויות של מחשוב אינטרנט מבוסס Java.
Oracle מציעה שני ממשקי תכנות יישומים שונים (API) עבור מפתחי Java לגשת לנתוני SQL-JDBC. שני ממשקי ה- API זמינים בלקוח ושרת, כך שתוכלו לפרוס את אותו קוד בשני המקום.
נהגי JDBC
JDBC הוא פרוטוקול גישה למסד נתונים המאפשר לך להתחבר למסד נתונים ואז להכין ולבצע הצהרות SQL כנגד מסד הנתונים. ספריות כיתות ליבה של Java מספקות רק API אחד של JDBC. עם זאת, JDBC נועד לאפשר לספקים לספק נהגים המציעים את ההתמחות הדרושה למסד נתונים מסוים. אורקל מספקת את שלושת נהגי ה- JDBC הבולטים.
נהג דק של JDBC
אתה יכול להשתמש במנהל התקן הדק של JDBC כדי לכתוב 100% יישומים ויישומי Java טהורים אשר ניגשים לנתוני Oracle SQL. מנהל ההתקן הדק של JDBC מתאים במיוחד ליישומים ויישומים מבוססי דפדפן אינטרנט, מכיוון שאתה יכול להוריד אותו באופן דינמי מדף אינטרנט ממש כמו כל יישומון Java אחר.
מנהל התקן ממשק שיחה של JDBC Oracle
מנהל התקן JDBC Oracle Call (OCI) ניגש לקוד מקורי ספציפי ל- Oracle (כלומר, ספריות שאינן ג’אווה) על הלקוח או הרובד האמצעי, ומספק דחיפה מסוימת בהשוואה למנהל התקן הדק של JDBC, בעלות של גודל גדול משמעותית והתקנה בצד הלקוח.
מנהל התקן פנימי בצד השרת JDBC
מסד הנתונים של Oracle משתמש במנהל התקן הפנימי בצד השרת כאשר קוד Java מבצע בשרת. זה מאפש. זה מספק דחיפה נוספת של ביצועים בגלל יכולתו להשתמש ישירות בספריות Oracle RDBMS, ללא תקורה של חיבור רשת מתערב בין קוד ה- Java שלך לנתוני SQL. על ידי תמיכה באותו ממשק Java-SQL בשרת, מסד הנתונים של Oracle אינו מחייב אותך לעבד מחדש קוד בעת פריסתו.
JPublisher
JPUBLISHER מספק כלי פשוט ונוח ליצירת תוכניות Java המוגשות לטבלאות מסד נתונים של Oracle Aroacle הקיימות. עיין במדריך למשתמש של מסד הנתונים של Oracle JPublisher למידע נוסף.
כלי פיתוח
הצגת Java לשרת מסד הנתונים של Oracle מאפשרת לך להשתמש בכמה סביבות פיתוח משולבות Java. ההקפדה על מסד הנתונים של אורקל לתאימות Java ולתקני פרוטוקולים באינטרנט פתוחים מבטיחה שתוכניות ה- Java הטהורות שלך ב 100% יעבדו כשאתה מפרס אותן במסד הנתונים של Oracle. אורקל מספקת כלים או כלי עזר רבים, כולם כתובים ב- Java, המקלים על פיתוח ופריסה של יישומי שרת Java Java. ל- JDeveloper של Oracle תכונות רבות שתוכננו במיוחד כדי להקל על פריסת הנהלים המאוחסנים ב- Java ו- Javabeans Enterprise. אתה יכול להוריד את JDeveloper באתר הבא: http: // otn.נבואה.COM/תוכנה/מוצרים/JDEV/תוכן.html.
Desuport of J2ee Technologies במסד הנתונים של Oracle
עם הצגת מכולות שרת יישומי Oracle עבור J2EE (OC4J)-מיכל J2EE חדש, קל יותר, קל יותר לשימוש, מהיר יותר ומוסמך-Oracle החל לתמיכה של המהדורה הארגונית של Java 2 (J2EE) וערימות CORBA ממסד הנתונים, החל מ- Oracle9אני שחרור מסד נתונים 2. עם זאת, ה- Java VM (OracleJVM) עם מסד הנתונים עדיין נוכח וימשיך להיות משופר כדי להציע תכונות Java 2 Standard Edition (J2SE), נהלים מאוחסנים ב- Java ו- JDBC במאגר.
נכון ל- Oracle9אני שחרור מסד נתונים 2 (9.2.0), אורקל כבר לא תומכת בטכנולוגיות הבאות בבסיס הנתונים:
- ערימת J2EE, המורכבת מ:
- מיכל שעועית ארגונית (EJB)
- מיכל דפי JavaServer (JSP)
- Oracle9אני מנוע Servlet (OSE)
הלקוחות כבר לא יוכלו לפרוס Servlets, דפי JSP, EJBs ואובייקטים של CORBA במאגרי Oracle. Oracle9אני שחרור מסד נתונים 1 (9.0.1) יהיה המהדורה האחרונה של מסד הנתונים לתמיכה בערימת J2EE ו- CORBA. אורקל מעודדת לקוחות להעביר יישומי J2EE קיימים הפועלים במסד הנתונים ל- OC4J כעת.
ג’אווה
אורקל ג’אווה היא פלטפורמת שפת התכנות והפיתוח מספר 1. זה מקטין עלויות, מקצר מסגרות פיתוח, מניע חדשנות ומשפר את שירותי היישום. עם מיליוני מפתחים המריצים יותר מ -60 מיליארד מכונות וירטואליות של Java ברחבי העולם, Java ממשיכה להיות פלטפורמת הפיתוח שבחרת עבור ארגונים ומפתחים.
Java 20 זמין כעת
המהדורה הבאה בקאדנס של שישה חודשים, Java 20, משפרת את הביצועים, היציבות והביטחון של פיתוח יישומי Java.
Graalvm Enterprise בחינם ב- OCI
בנה הפעלות מקוריות המסייעות ליישומי Java להתחיל במהירות, להפחית את השימוש בזיכרון ולחסוך עלויות אירוח.
שירות ניהול Java
תכונות מקדמות של JMS עוזרות למנהלים לקבל תובנות נוספות לגבי עומסי העבודה של Java. נתח שימוש, פגיעויות והשפעה מעדכוני מפת דרכים קריפטוגרפיים.
יום המפתחים של ג’אווה באורקל דוולייב 2023
צפו בתמצית המפתח ברמת Devlive ולמדו על שיפורי השחרור של Java 20 עבור AppDev, חידושים בשפה מודרנית ותמיכה במסגרות מפתחים של Java.
מדווחים אנליסטים של Java
ג’אווה והאמנות של נהיגת טרנספורמציה דיגיטלית
קבל תובנות כיצד למנף את Java כדי לתמוך במאמצי המודרניזציה והטרנספורמציה שלך. למד כיצד להפיק את המרב מיכולות השירות של קוד פתוח, ענן ותמיכה בתקציר טכני זה של אומדיה.
Java: מודרניזציה של פיתוח ליישומים מאובטחים ומבוססים על ענן
למד כיצד Java עוזר לארגונים להאיץ טרנספורמציה דיגיטלית תוך צמצום הפגיעויות להיום’S צרכי היישום.
ראשית אבטחת IT ותאימות נקודות כאב בפיתוח היישומים
האבטחה נותרה העדיפות החשובה ביותר עבור מנהלי IT, על פי דו”ח שנערך לאחרונה על ידי 451 מחקר. קרא את התקציר כדי לגלות את החששות האבטחה המובילים למפתחים וכיצד תוכל להשיג את יעדי האבטחה והציות שלך עם Java.
אברדין ידע קצר
למד מדוע מנהיגים בפיתוח אפליקציות משתמשים ב- Java כדי לבנות בצורה יעילה יותר יישומים ברמה העולמית באיכות הגבוהה ביותר ובביטחון החזק ביותר.