מטרת הפרויקט הינה ליצור דפדפן תמונות אשר מאפשר למשתמש לבחור ספרייה על המחשב ומציג את התמונות שבה. בנוסף ניתנת למשתמש האפשרות "לשתף את התמונות", ז"א להעלות סט תמונות לאתר בצורה אוטומטית (מתוך דפדפן התמונות) ולאחר מכן לראות את גלריית התמונות בדפדפן האינטרנט (Explorer, Firefox...).
הגשת הפרויקטהפרויקט יוגש ב-1.10.2006 (יום ראשון) . מאחר וזה ערב יום כיפור אז כנראה שלא תהיו פה, אבל בכל מקרה ההגשה יכולה להיעשות דרך האי-מייל. אני אבדוק את הפרויקטים בשבועיים שלושה שאחרי ההגשה אז אנא השתדלו שהשרת שלכם יהיה פעיל. בכל מקרה צרפו כתובת אי-מייל וטלפון להגשה כך שאוכל ליצור איתכם קשר לבקש שתעלו את השרת. אם אתם לא מצליחים להעלות את השרת שלכם מרחוק לפני יום כיפור זה לא נורא, ציינו זאת באי-מייל ואני אתחשב. אבל הקוד שאתם מגישים לי ב1/10 חייב להיות סופי, אל תשנו את ה-servlet לאחר מועד ההגשה! מידע טכניהמטלה האחרונה בקורס 'תוכנה 1' היא כתיבת פרויקט, תרגיל בהיקף מעט יותר גדול מן התרגילים השוטפים בקורס. הגדרת הפרויקט תינתן בשיעור האחרון (24.08.06) ומועד ההגשה יהיה בראשון לאוקטובר (1.10.2006). התרגיל ייבדק ויהווה %10 מן הציון בקורס. מטרת הפרויקט היא לאפשר לכם להתנסות בכתיבת תוכנית מלאה, ולחזור על החומר שלמדנו במהלך הסמסטר. הפרויקט ייעשה בזוגות בלבד, לא לבד, לא בשלשות, לא ברביעיות... לגבי חלוקת העבודה - ניתן לחלק את העבודה כך שסטודנט אחד יעשה את התוכנית המקומית והשני את החלק המקוון (Online) אך אנו ממליצים שקודם תגדירו ביחד מה בדיוק אתם רוצים לעשות, תגדירו את החוזים, המחלקות והמנשק הגראפי, ורק אז תחלקו את העבודה. בדיקת הפרויקט תתרכז בעמידה במטרות, חוויית המשתמש בשני חלקי הפרויקט, איכות התכנון והביצוע (הקוד) וכו' מה צריך להגיש?
|
הפרויקט מורכב משני חלקים:
עליכם לכתוב תוכנית בג'אווה בעלת מנשק גראפי ידידותי למשתמש המאפשרת את הפעולות הבאות
המשתמש בוחר ספרייה מקומית על המחשב
במנשק הגראפי מוצגות כל התמונות בספרייה זו
(צלמיות - Thumbnails)
בלחיצת כפתור ניתן לתת שם לסט התמונות הנוכחי ולשלוח אותו לשרת באינטרנט (ראה חלק שני של הפרויקט)
מבחינה טכנית על התוכנית להשתמש ב-SWT כדי ליצור את המנשק הגראפי, ב-Java I/O כדי לקרוא תמונות מהדיסק וב-Java Networking כדי ליצור קשר עם השרת ולהעלות תמונות
עליכם לכתוב Servlet בג'אווה אשר ירוץ על מחשבי ביה"ס ויספק את השירותים הבאים
*שימו לב שניתן לשרת את כל הבקשות מאותו Servlet או לממש מספר Servlet'ים.
מבחינה טכנית על התכנית להשתמש ב-Servlet API בדי לטפל בבקשות, ה-Servlet'ים ירוצו על שרת ה-Tomcat המותקן במחשבי ביה"ס (להסבר על איך להשתמש). התמונות יאוחסנו בספרייה מקומית (על השרת) באמצעות Java I/O. הדפים אשר יוצגו למשתמש (סט התמונות המוצג בדפדפן האינטרנט) ייכתבו על ידי ה-Servlet ב-HTML.
הכנת שרתכדי לפתח את הפרויקט, דרוש כמובן שרת HTTP שמסוגל להריץ servlets! בכל מחשבי הלינוקס של בית הספר מותקן שרת כזה, ששמו Tomcat, שבו נשתמש על מנת להריץ את התרגיל. אתם יכולים גם להתקין את השרת הזה בבית (אפשר להוריד אותו חינם), אבל קל יותר להשתמש בשרת המותקן בבית הספר, ורק בו סגל הקורס יכול לתמוך. ראשית, פיתחו חלון shell בלינוקס, בספרית הבית שלכם, והריצו את הפקודה create-my-tomcat ~/tomcat-sw1 40XXX 50XXX כאשר XXX הן שלוש ספרות כלשהן (עדיף שיהיו מעט חזרות בין ספרות של תלמידים שונים כדי שניתן יהיה להריץ כמה תוכנות שרת על מחשב אחד). הפקודה הזו פשוט יוצרת ספריה בשם tomcat-sw1 שמכילה את כל המידע שהשרת צריך, כולל servlet אחד לדוגמה. אחרי שיצרתם את הספרhיה, היכנסו אליה (cd tomcat-sw1) והפעילו את השרת. הפעלה וכיבוי של תוכנת השרת מתבצעת בעזרת הפקודות init.d-tomcat start init.d-tomcat stop כעת נסו לגשת לשרת מדפדפן. בררו מה שם המחשב שאתם מריצים עליו את השרת (בעזרת הפקודה hostname). נניח ששם השרת הוא lab023 ושהספרות שבחרתם (XXX שהופיעו קודם לכן) הן 566. הפנו את הדפדפן לכתובת http://lab023.cs.tau.ac.il:40566/index.html אם הפעלתם את השרת כשורה, תקבלו דף אינטרנט, ואם תקליקו על "a servlet demo" תפעילו את ה-servlet לדוגמה ששמור בקובץ ~/tomcat-sw1/webapps/examples/WEB-INF/classes/HelloWorldExample.java (יותר נכון בקובץ ה-class של ה-servlet הזה). איך Tomcat יודע לגשת לServlet הנכון? ה-URL אומר ל-TOMCAT לאיזה Servlet צריך ללכת כדי לעבד את הבקשה. בואו נסתכל לדוגמה על ה-URL של ה-Servlet לדוגמה שלי http://soul.cs.tau.ac.il:40966/examples/servlet/tochna1.project.example.ShowPicsServlet:
איפה ה-Servlet הזה יושב אצלכם בספרייה? הוא יושב כאן: <home dir>\<tomcat-dir>\webapps\examples\WEB-INF\classes\<package names>\<class> הכנת פרוייקט אקליפס כעת נעבור להכנת פרוייקט אקליפס שיאפשר לנו לפתח servlet חדש. היכנסו לאקליפס וצרו פרוייקט חדש (עכבר ימני ב-package navigator, ואז new ואז java project). במסך של אשף יצירת הפרוייקט, תנו שם לפרוייקט, ובחרו את האפשרות Create project from existing source. זה חשוב מאוד. בשדה שיפתח כאשר תבחרו את האפשרות הזו, יש לבחור את שם הספריה שיצרתם עבור השרת, הספריה tomcat-sw1 בספרית הבית שלהם (כדאי ללחוץ על הכפתור Browse ולבחור את הספריה הזו מהסייר). כאשר הפרוייקט יווצר, הוא יכיל כבר את כל הספריות והקבצים שדרושים למימוש ה-servlet. דף האינטרנט שגלשתם אליו נמצא בפרוייקט בתוך המדריך webapps/ROOT/index.html. הוסיפו למדריך הזה את דף האינטרנט שיפעיל את ה-servlet שלכם, העיפו מבט בקבצים לעזרה בשביל לראות servlet לדוגמא ואיך ניגשים אליו... ה-servlet עצמו שמור תחת הספריה webapps/examples/WEB-INF/classes. כדאי לבחון את הקוד. גילשו לדף http://lab023.cs.tau.ac.il:40566/ex-servlet.html (בהתאמות של שם המחשב ושל המספר, כמובן). כאשר תקליקו על הכפתורים שאמורים להפעיל servlets חדשים, השרת יחזיר כמובן הודעת שגיאה: ה-servlet שאתם מנסים להפעיל עדיין לא קיימים, ולכן tomcat לא יכול להריץ אותן. לשרת שלכם ניתן לגשת לא רק מהמחשב שעליו אתם עובדים, אלא מכל מחשב באוניברסיטה (מחשבים באינטרנט בכלל אינם יכולים לגשת לשרת הזה מכיון שיש firewall בכניסה לרשת האוניברסיטאית שחוסם את הגישה לתחנות העבודה). כדי שניתן יהיה לקמפל servlets הקומפיילר צריך לראות את המחלקות והמנשקים של החבילות javax.servlet ו-javax.servlet.http. העתיקו את הקובץ servlet.jar (מאתר הקורס) לפרוייקט (לא משנה כל כך לאיזה ספריה בו). לסיום, צריך לתת הוראות מתאימות לקומפיילר. הפעילו את תפריט ההקשר של הפרויקט שיצרתם (עכבר ימני) וביחרו properties. בדיאלוג שיפתח צריך לבחור ראשית את Java Build Path (ברשימה משמאל), ואז את הלשונית Libraries. הקליקו על הכפתור Add JARs והוסיפו את servlet.jar. כעת לא רק שהקובץ הזה (שמכיל קבצי class) הוא חלק מהפרוייקט, אלא שהקומפיילר ישתמש בו. לפני שסוגרים את דיאלוג ה-properties, יש לבחור את האפשרות Java Compiler ברשימה משמאל, לבחור Enable project specific settings, ובשדה של Compiler compliance level יש לבחור 1.4. את זה אנו עושים מכיון שלמרות שהגרסה הנוכחית של ג'אווה היא 5.0, הגרסה של Tomcat שאנו מפעילים משתמשת בגרסה הקודמת של ג'אווה, גרסה 1.4. ניתן להוריד את servlet.jar כאן לתלמידי הנדסה אתם צריכים ליצור קשר עם מחלקת System של מדעי מחשב, הם יפתחו לכם חשבון אורח בפקולטה, עם אותו שם משתמש וססמא. בעזרת חשבון זה תוכלו לעבוד על הפרויקט בדיוק כמו שאר תלמידי הקורס. |
ניתן להרחיב את הגדרת הפרויקט ולהוסיף כל מיני תוספות מעניינות שיכולות להוסיף לכם נקודות בונוס, רעיונות לדוגמה: