תיכנות בעזרת JAVA גם מתווך בעזרת אובייקטים אך שאלת המפתח היא מה למדל כאובייקט טבאיזה רמת הפשטה?
רמת הפשטה נמוכה:
לדוגמה:
כתובות
הודעות
רמת הפשטה בינונית:
לדוגמה:
אובייקט בתוכנית הרצה בJVM אחר
רמת הפשטה גבוהה:
לדוגמה:
שירות המסופק ע"י תוכנית מרוחקת(CLOUDING)
ההבדלים בין רמות ההפשטה השונות הם:
בתכנות ברמת הפשטה נמוכה האובייקטים מתקשרים דרך אובייקט של הSOCKET ב TCP.
ואילו תכנות ברמת הפשטה בינונית האובייקטים משיגים מצביע זה לזה ומסוגלים להפעיל מתודות אחד על השני.
LEGACY PROGRAMS
תכניות לאגסי היא אחת הסיבות העיקריות למימוש מבוזר למערכות מידע, הגישה הנפוצה להתמודדות ע"י עטיפת התכנה באובייקט באופן הישן אותו היא מבינה והכללת האובייקט המערכת בתוכנה החדשה
מערכות מידע מבוזרות הן אוסף של תוכנות הפעולות כל אחת על מחשב אחר ונסמכות זה על זה לפעולותן הסדירה.
מספר דוגמאות
* מערכת לניהול שרשרת אספקה
* CRM
* תוכנת מכירות הנסמכת על מלאי
מהן ההצדקות לקיום מערכות מידע מבוזרות?
* ריבוי ארגונים ומידור פנים ארגוני
* תכנוניות /תחזוקיות - התבססות על BEST OF BREED
* שיפור ביצועים ע"י התאמה תוכנה לחומרה
* אבטחה
* היסטוריה ארגונית
* התבססות על מרכיבים קיימים\
ארכיטקטורה 3 השכבות:
שכבת בסיס הנתונים :
- אחזור יעיל
- אבטחה
- ריבוי משתמשים
שכבת הלוגיקה העסקית:
- ניהול תהליכים פנים ארגוניים
- קבלת החלטות
שכבת ההצגה:
- אינטרקציה עם משתמשים פנימיים וחיצוניים
דוגמא:
חנות לממכר ספרים ברשת
בסיס הנתונים:
- נתוני מלאי
- נתוני תמחיר
- נתוני לקוחות
שכבת הלוגיקה העסקית:
- מהלך הקניה והתמחור הסופי
- הנחות ומבצעים
- פיקוד למלאי אריזה ומשלוח
תקשורת נתונים מהי?
שיטת להעברה נתונים ממחשב אחד לאחר לדוגמה רשת האינטרנט, רשת טלפונים סלולריים, טלוויזיה בכבלים.
משמעות תקשורת נתונים לארגון בעזרת תקשורת נתונים אנו משתמשים במערכות מידע ניהוליות אני מייעלים תהליכים ארגוניים, כמו כן אנו יכולים להחליש את החשיבות של מרחק גאוגרפי.
מודל השכבות OSI:
התחלת העבודה במודל השכבות היא ביישום ואילו הסיום בוא במודל הפיזי , כל שכבה יוצרת קשר עם 3 שכבות זאת שמעליה זאת שמתחתיה והשכבה המקבילה בערוץ התקשורת בצד השני.
במודל השכבות יש כ 7 שכבות:
1)יישום
2)הצגה
3)שיח
4)העברה
5)רשת
6)עורק הנתונים
7)פיזית
מודל השכבות נועד למעשה לשמש לכמה תהליכים הראשון שבהם הוא הפשטה:
כל שכבה חושפת ממשק פשוט ונקי לשכבה שמעליה מתמודדת עם בעיות ללא צורך שהשכבות מעל ישתתפו בהם.
ברמה העליונה השכבה הפיזית עוסקת בהעברת המסר קידדו וכו' השכבה הבאה ערוץ הנתונים אדישה לכך.
כאשר השכבה עליונה מקבלת מסר מלעמלה היא עוטפת אותו במעטפה ומעבירה למטה את המסר כמעטפה מלאה.
כאשר השכבה עליונה מקבלת מסר מלמטה היא קולפת את המעטפה ומבצעת פעולות ברמת השכבה ואז מעבירה או לא מעבירה מסר למעלה.
DOM -ducument object model
DOM מייצג מסמך HTML במודל אובייקטים היירכי.
המודל מקנה יעילות לגשת לקוד כלשהוא ובצע בו שינויים -לשנות משתנים וארגומנטים.
החופש והקלות בשימוש תלוי בגרסת הדפדפן ככל שהדפדפן חדיש יותר ככה זה יותר יעיל.
אובייקטים
WINDOWS- מייצג חלום בדפדפן , מיוצר אוטומטית עבור כל מופע של BODY או FRAMSET.
DUCUMENT- מייצג את תוכן דף הHTML באמצעותו ניתן לגשת בקלות לכל הרכיבים בדף.
INNERHTML- מחזיר את הטקסט שכתוב בדף, באמצעותו ניתן לגשת בקלות לתוכן התג.
מנהלי ארועים
רכיבי יישום- רכיב יישום הוא רכיב שימוש או ארוע לדוגמה לחצן, רכיבי יישום הם בעלי אוסף של שיטות וארועים.
ישנם 2 סוגים למטפלי ארועים:
1) מטפלים אינטראקטיבים- טיפול אשר תלוי באינטרקציה בין המשתמש לרכיב כלשהוא ,לדוגמה המשתמש לחץ על לחצן שליחת טופס.
2) מטפלים אוטומטיים מבצעים קוד באופן אוטמטי לפי משתנה כלשהם , לדוגמה : בכל יום בשעה 00:00 יש קריאה קוקוריקו מהדף.
JAVASCRIPT-להלן JS היא שפה מונחית אירועים כלומר ארוע כלשהוא מתרחש על דף ווב הארוע מפעיל פונקציית JS אשר גורם לביצוע פעולה כלשהיא.
הפונקציה אינה פועלת עד שקורא בדף משהו שמפעיל את הפונקציה כגון : לחיצה על כפתור , אישום טופס , וכו'
שפת JS היא שפה רגישה לאותות CASE SENSTIVE כלומר השפה מבדילה בין אות גדולה לאות קטנה ומפרשת אותם שונה.
פונקציות הJS נכתבות בתוך מסמך HTML, בין תגי HEAD כתיבת הפונקציה בתוך ה HEAD מבטיחה כי טעינתן תעשה לפני טעינת הBODY.
מבנה פונקצייה JS כולל ציון המילה FUCTION ואחריה שם הפונקציה.
כל משפט הצהרה חייב להסתיים בתו ;
כאשר מתבצעת הרצה של פונקציה יש להעריך שאחד הפעולות הנ"ל בוצעה:
1. לחיצה על לחצן פקודת טופס.
2. לחיצה על קישור.
3. בחירה מתיבה אפשרויות.
4. טעינה של מסמך.
וכו'...
המשותף לכל הדרכים בהם הרצה של פונקציה מתבצעת הוא הצורך בארוע כלשהוא.
בשפת JS ישנם מספר מילים שמורות כדוגמה:
VAR- הכרזה על משתנה , טיפוס המשתנה בשפת JS יקבע אוטומטית לפי הזנת המשתנה.
אם המשתנה בתוך הפונקציה הוא יוכרז לוקלית לפונקציה הספיציפית הנ"ל.
משתנה אשר הוכרז בראש הפונקציה יוכרז גלובלית.
ישנם מספר פונקציות מובנות אנו נסקור בריפרוף מספר קטן מהם:
1) EVAL -מחשבת מחרוזת כביטויים .
2)PARSELINT- הופכת ארגומט מחרוזת למספר שלם.
3)PARSELFOALT-הופכת ארגומנט מחרוזת למספר שלם.
שפת סקריפטים, פותחה ע"י חברת Netscape ב 1995כשיטה לביצוע validation ותגובה דינמית של הדפדפן בצד של המשתמש (Client).
שפות תכנות כמו JavaScriptה-"מתפרשות תוך כדי ביצוע" (interpreted), הנן שפות שבהן פקודות התוכנית נקראות אחת אחרי השנייה בזמן "ריצת" התוכנית, ורק אז מתורגמות לפקודות ברמה נמוכה יותר (קוד מכונה).
אם במהלך כתיבת התוכנית עשינו שגיאה (תחבירית), השגיאה תתגלה רק בזמן שהמחשב ינסה לבצע את הפקודה – אין שלב קומפילציה לשפה זו.
שפת JavaScriptהינה שפה מונחת אירועים. אירוע המתרחש על גבי עמוד ה WEB, מפעיל פונקצית JavaScriptאשר בתורה מבצעת פעולה כלשהי. הפונקציה, למרות שכתובה בדף הHTML - איננה מתחילה לפעול עד לרגע בו הופעלה באופן אקטיבי על ידי אירוע כלשהו.
המאפיין החשוב ביותר של התג form הוא action, שמציין לאן ישלח הטופס.
מאפיינים נוספים:
method מציין את שיטת שליחת הנתונים, מקבל אחד מהערכים get או post. ל get יש הגבלת אורך של 256 תווים. target מציין איפה יפתח הדף שאליו נשלח הטופס, מקבל את הערכים _blank, _top, _parent, או שם של מסגרת.
האלמנטים שטופס יכול להכיל הם תיבות טקסט, תיבות ססמא, תיבות סימון, כפתורי רדיו, אזורי טקסט, תיבות בחירה, תיבות בחירה מרובה, תיבות קובץ, וכפתורים.
התג <input> מאפשר לנו ליצור מגוון של תיבות קלט. המאפיין שאחראי על סוג תיבת הקלט הוא type. הוא מקבל אחד מהערכים הבאים: text, checkbox, radio, password, hidden, submit, reset, button, file, image. עוד מאפיין חשוב של התג input הוא name. המאפיין הזה קובע מהו שם האלמנט.
דוגמאות לתג input:
תיבת טקסט:
והקוד:
1.<input type="text" name="text1">
<input type="text" name="text1">
המאפיינים של תיבת טקסט הם:
name קובע את השם של תיבת הטקסט. זה יהיה מאוד משמעותי בהמשך. maxlength קובע את הגודל המקסימאלי של הקלט, מקבל מספר תווים. size קובע את הגודל של תיבת הטקסט, מקבל מספר תווים. value מקבל ערך התחלתי שיהיה כתוב בתיבת הטקסט readonly מציין האם תיבת הטקסט היא לקריאה בלבד. אין צורך לתת לו ערך, אלא רק לציין אותו. disabled מצייו האם תיבת הטקסט היא פעילה. גם כאן, מספיק רק לציין אותו.
ההבדל בין readonly ל disabled הוא שאלמנט שהוא disabled לא ישלח עם הטופס, בעוד אלמנט שהוא readonly רק לא יהיה ניתן לשינוי.
תיבת סיסמא:
והקוד:
1.<input type="password" name="password1">
ההבדל בין תיבת ססמא לבין תיבת טקסט הוא שבתיבת ססמא כל הכיתוב יראה ככוכביות.
תיבות סימון:
תיבה ראשונה תיבה שניה
והקוד:
1.<input type="checkbox" name="check1" checked>
2.<input type="checkbox" name="check1">
<input type="checkbox" name="check1" checked>
<input type="checkbox" name="check1">
מאפיינים של תיבות סימון:
name קובע את השם של תיבת הסימון. checked במידה ומאפיין זה מצויין, תיבת הסימון תופיע מסומנת. disabled במידה ומאפיין זה מצויין, תיבת הסימון תהיה אפורה ולא נגישה למשתמש. value הערך שישלח לשרת אם תיבת הסימון תסומן.
כפתורי רדיו:
תיבה ראשונה תיבה שנייה
והקוד:
1.<input type="radio" name="radio1" checked>
2.<input type="radio" name="radio1">
<input type="radio" name="radio1" checked>
<input type="radio" name="radio1">
מאפיינים של כפתורי רדיו:
name קובע את השם של כפתור הרדיו. checked במידה ומאפיין זה מצויין, כפתור הרדיו יופיע מסומן. disabled במידה ומאפיין זה מצויין, כפתור הרדיו יהיה אפור ולא נגיש למשתמש. value הערך שישלח לשרת אם כפתור הרדיו יסומן.
שימו לב שכאשר מציינים את אותו השם לקבוצה של כפתורי רדיו, אפשר לסמן רק אחד מהם, וברגע שמסמנים כפתור אחר, הסימון בכפתור הראשון מתבטל.
תיבת קובץ:
והקוד:
1.<input type="file" name="file1">
<input type="file" name="file1">
מאפיינים של תיבת קובץ:
name קובע את השם של תיבת הקובץ. disabled במידה ומאפיין זה מצויין, תיבת הקובץ תהיה אפורה ולא נגישה למשתמש. size קובע את הגודל של תיבת הקובץ, מקבל מספר תווים. accept מצייו איזה סוגי קבצים התיבה יכולה לקבל.
אלמנט מוסתר:
לא פעם אנו רוצים לשלוח ביחד עם הטופס דברים שהגולש לא צריך לראות.
בשביל זה משתמשים באלמנט מוסתר.
והקוד:
1.<input type="hidden" name="hidden1">
<input type="hidden" name="hidden1">
מאפיינים של אלמנט מוסתר זהים למאפיינים של תיבת טקסט.
name מציין את השם של איזור הטקסט. disabled במידה ומאפיין זה מצויין, איזור הטקסט יהיה אפור ובלתי נגיש לגולש. readonly במידה ומאפיין זה מצויין, איזור הטקסט יהיה בלתי ניתן לשינוי. rows מציין את מספר השורות של איזור הטקסט. cols מציין את הרוחב של איזור הטקסט, במספר תווים.