1 / 23

Clever DropBox

Clever DropBox. תכנות מתקדם 2 89-211 תרגול מספר 1 תשע"א 2010-2011. אליהו חלסצ'י. בסמסטר א' הגשתם מטלות: שהגדירו את ה " איך צריך " ובהדרגה עברו לניסוח חופשי יותר שהגדיר רק את " מה צריך " החלוקה להגשות היתה קשיחה רמת החופשיות שלכם עלתה בהדרגה אך נותרה די קטנה עבדתם בצורת bottom up. הקדמה.

nuala
Télécharger la présentation

Clever DropBox

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Clever DropBox תכנות מתקדם 2 89-211תרגול מספר 1 תשע"א 2010-2011 אליהו חלסצ'י

  2. בסמסטר א' הגשתם מטלות: שהגדירו את ה "איך צריך" ובהדרגה עברו לניסוח חופשי יותר שהגדיר רק את "מה צריך" החלוקה להגשות היתה קשיחה רמת החופשיות שלכם עלתה בהדרגה אך נותרה די קטנה עבדתם בצורת bottom up הקדמה

  3. מטלות הקורס: פרויקט אחד גדול הגשה בשני חלקים (milestones) עובדים על התרגיל בזוגות (לא שלשות) גישת Top down שימוש בכלים ובשיטות מהתעשייה שליטה שלכם על ה design ועל מה צריך הקדמה

  4. תיקייה משותפת המסנכרנת קבצים אוטומטית על פני האינטרנט לכמה משתמשים עבודה בשיטת top down עבודה ע"פ high level design עבודה כחלק מצוות תכנות ושימוש ב version control בונוס לשימוש ב mercurial או ב git ביצוע בדיקות קוד תוך כדי בניית הפרויקט שימוש ב library \ plug-in שימוש בכלים נוספים שנלמד במהלך הסמסטר התמודדות עם הגדרות מתווספות לפרויקט מטרות הפרויקט

  5. Clever DropBox: תיקייה מקומית מוגדרת כתיקיית dropbox כאשר נעשה שם שינוי כלשהו לקבצים העתקה, מחיקה, העברה, שינוי שם, שינוי תוכן וכו' על המערכת לזהות את השינוי ולעדכן את שאר המשתמשים המשתפים תיקייה זו בשינוי שקרה כך שלכל המשתמשים תהיה תיקייה זו מעודכנת ומסונכרנת תיאור המערכת

  6. המערכת מורכבת ממס' רכיבים שרת תוכנה המאזינה לפניותיהם של קליינטים מחזיק מס' תיקיות משותפות ומיהם המשתפים הקליינט מודיע על שינוי בתיקייה משותפת כלשהי השרת מעדכן את התיקייה אצלו בשינוי שארע ומודיע למשתפים שיש עדכון למעשה מודיע להם שהם לא מסונכרנים השרת מספק web interface להורדה של הקבצים תיאור המערכת

  7. מחשב אישי (קליינט) מריץ שירות ברקע שמאזין לדיווחים של מערכת ההפעלה על שינויים בתיקיית ה DropBox Event driven דורש JDK 7 (פרטים בסוף המצגת) בכל שינוי הוא דואג שהשרת יהיה מסונכרן יש לנהל את העדכונים של השרת בצורה חכמה הגדרות משתמש, plug-in... השירות אף מאזין לשרת למקרה של קבלת הודעה של חוסר סנכרון במקרה זה השירות יעדכן את התיקייה ע"פ הנתונים הקיימים בשרת יש לחשוב מהי הארכיטקטורה שעל פיה הקליינט יידע על שינויים תיאור המערכת

  8. אז מה clever ב clever DropBox?? כדי למצוא קובץ לא נחפש אותו בתיקיות שבתוך DropBox למעשה כל הקבצים נמצאים שם בצורה שטוחה במקום, ננהל מערכת תגיות לקבצים שעל פיהן ניתן למצוא קבצים מבוקשים כל קובץ חדש מקבל תיוג אוטומטי (או מס' תיוגים) התיוג נקבע ע"פ מדיניות שאותחלה כ plug-in עליכם ליצור לפחות 3 כאלו תיאור המערכת

  9. בפועל עליכם להחזיק טבלה הממפה תיוג  לרשימת הקבצים שהתיוג הזה חל עליהם למה לא להיפך? את הטבלה ניתן לממש באמצעות hashing, זו תהיה עבודה מיותרת במקום, עליכם לעבוד מעל מסד נתונים באמצעות שכבת ORM - Hibernate כך, תוכלו למצוא בקלות חיתוכים כגון כל הקבצים השייכים ל "work" ול “BIU” ולא שייכים ל "2006" תיאור המערכת

  10. פרט לשירות עליכם ליצור: GUI המאפשר את חיפוש הקבצים ע"פ תיוגים בתיקיית ה DropBox GUI קטן המהווה שלט רחוק עבור השירות המאפשר להפעיל, לעצור, להמשיך ולהפסיק את השירות נושאים למחשבה: כיצד יודעים מתי תוכן של קובץ השתנה? מה עשוי להתווסף לפרויקט? תיאור המערכת

  11. מטלה ראשונה design ותשתית קוד: עליכם להגיש תרשים high-level design תרשימי uml לכל אחת מתתי המערכות, ע"פ design patterns עליכם לתאר אלו תוספות עתידיות צפיתם והיכן השארתם להם מקום ב design תשתית הקוד – interfaces כשהמימוש הפנימי רק מדפיס למסך שביצע את המוטל עליו כשמריצים את הקוד צריך לראות בהדפסות למסך את אתחול המחלקות השונות שיצרתם מטלות להגשה

  12. מטלה שנייה: לאחר הגשת ה design יתפרסמו תוספותלפרויקט, עליכם להשלים את המוצר בכוונה לא נאמר לכם מראש מתי יבואו השינויים כדי שלא תחכו עם כתיבת הקוד עליכם לבצע בדיקות יחידה כדי לוודא שהחלקים השונים אכן עובדים עליכם להגיש דו"ח פרויקט ע"פ הפורמט שינתן בהמשך מטלות להגשה

  13. לצורך אחידות בבדיקה ושימוש בכלים מסוימים התרגיל ייכתב ב java או ב scala ניתן ואף רצוי להשתמש בכלים מוכנים התוכנית אינה GUI oriented וניתן להשתמש בעורכים וויזואליים כגון העורך של net beans ל swing עליכם להשתמש ב version control ואף להציג זאת בדו"ח הפרויקט בונוס ל git או mercurial דגשים

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

  15. הורדה מתוך https://jdk7.dev.java.net/ נבחר ב Latest JDK 7 binary snapshots נבחר את הגרסא המתאימה למערכת ההפעלה שלנו (יש גרסאות גם ל 64 bit) לדוגמא עבור לינוקס נוריד אתjdk-7-ea-bin-b85-linux-i586-04_mar_2010.bin ועבור חלונות נוריד אתjdk-7-ea-bin-b85-windows-i586-04_mar_2010.exe הוספת JDK1.7.0

  16. עבור חלונות ייפתח לנו wizard התקנה עבור לינוקס נבצע את הצעדים הבאים: נפתח את ה terminal במקום בו שמרנו את הקובץ נפעיל: sh jdk-7-ea-bin-b85-linux-i586-04_mar_2010.bin תנאי הרישיון יופיעו נלחץ Q ליציאה ו yes לאישור ההתקנה תיצור לנו את התיקייה jdk1.7.0 עדיף לפתוח לה את כל ההרשאות ע"יchmod 777 jdk1.7.0 –R אפשר להעביר את התיקייה לאן שרוצים הוספת JDK1.7.0

  17. ניצור פרויקט חדש ב eclipse, ונרצה להחליף את ה JRE 1.6 ב 1.7 לכן נכנס למאפייני הפרויקט לתוך ה build path ונבצע remove ל JRE1.6 הוספת JDK1.7.0

  18. כעת נבחר add library בחלון שיפתח נבחרJRE System Library הוספת JDK1.7.0

  19. נסמן את Alternate JRE ונלחץ על installed JREs הוספת JDK1.7.0

  20. אם אין לנו את האופציה לבחור את JRE 1.7.0 אז נלחץ על add נבחר standard VM ונלחץ next הוספת JDK1.7.0

  21. נלחץ על directory בלינוקס נבחר את מיקום התיקייה jdk1.7.0 שבחרנו קודם בחלונות נבחר אתC:\Program Files\Java\jre7 הוספת JDK1.7.0

  22. כעת נסמן את jdk1.7.0 ונאשר נוודא שגם בחלון הקודם ה alternate jre הוא jdk1.7.0 הוספת JDK1.7.0

  23. כעת הפרויקט שלנו מוגדר לעבוד עם JRE בגרסא 1.7.0 ולכן אנו יכולים להשתמש בכל הכלים החדשים שנוספו \ השתפרו ב java בפרט בספריות NIO המאפשרות לנו האזנה יעילה למערכת ההפעלה הגרסא ל ubuntu מגיעה גם עם תיקייה בשם sample ובה דוגמאות קוד מועילות ביותר לפרויקט (ניתן גם למצוא אותן באינטרנט) הוספת JDK1.7.0

More Related