Web Services
Download
Report
Transcript Web Services
© Keren Kalif
Web Services
קרן כליף
© Keren Kalif
2
:ביחידה זו נלמד
Web Services מהו
מוטיבציה
WebService מימוש
WebService App Client
WebService Servlet Client
REST
- Web Servicesמטרה
© Keren Kalif
3
כדי לייצר תקשורת עם אפליקציה מרוחקת השתמשנו ב 2 -שיטות:
.1מימוש מנגנון Client-Server
היה עלינו להאזין ,להתחבר – לממש את כל רכיבי התקשורת
.2יצירת WebApplicationופניה באמצעות HttpRequest
התשובה הגיעה כדף ,HTMLכלומר תצוגה+מידע ביחד
כדי לקבל נתון ספציפי מהדף היה צורך לפרסס ממנו את המידע הרצוי
היינו שמחים לו הייתה דרך פשוטה לצורך שירותים של
אפליקציה מרוחקת:
ללא מימוש של Client-Server
היכולת לקבל אובייקטים
לא פיענוח נתונים מדף htmlושמירת נתונים על הsession -
- Web Servicesמטרה
© Keren Kalif
אפליקציה שניתן לצרוך אותה דרך האינטרנט (כלומר ללא תוכנת
התקנה) ,אך יחד עם זאת אינה דורשת אתר המתקשר איתה
ארכיטקטורה המאפשרת לתוכנות שנכתבו בשפות שונות ועל
פלטפורמות שונות ,לתקשר אחת עם השנייה בצורה סטנדרטית
ופשוטה:
שימוש ב XML -כשפה להעברת וקבלת נתונים
שימוש ב HTTP -כפרוטוקול להעברת המידע
הייעוד של Web Servicesהוא לספק ממשק לקריאה לפונקציות
מרוחקות ()RPC - Remote Procedure Call
כלומר :מימוש הפונקציות יהיו בשרת והלקוח יפעיל אותן
פונקציות אלו יחשפו לתוכנות אחרות
4
© Keren Kalif
מנגנון ה( Web Services -השכבות)
בהינתן תהליך עסקי מסוים נרצה להשתמש
בשירותים מסוימים
נאתר את נותני השירות תוך שימוש במנגנון
ה"( UDDI -דפי זהב" לשירותים)
(Universal Description, Discovery and Integration)
נבחר ספק אחד ונקבל ממנו קובץ WSDL
( )Web Services Description Languageהמכיל
נתונים על השירותים שהוא מספק (פונקציות)
וכן מידע לגבי הנתונים שיש להעביר לו על
מנת לקבל את השירות (פרמטרים)
5
תהליך עסקי
UDDI
WSDL
SOAP
XML
HTTP
מנגנון ה( Web Services -השכבות) ()2
העברת הנתונים וקבלת התשובה בחזרה
תהייה ע"י הודעה בפורמט Simple ( SOAP
)Object Access Protocolהמבוסס על XML
העברת הנתונים וקבלת התשובה תהייה מעל
HTTP
תהליך עסקי
UDDI
WSDL
SOAP
XML
HTTPאו
TCP/IP
6
© Keren Kalif
© Keren Kalif
7
Web Service איתור:UDDI
הנותן שירות מסוים ניתן לחפשוWeb Service כדי לאתר
Universal Description, Discovery and ( UDDI -ב
-) שהוא ממשק המספק מדריך לIntegration Service
ועל ידי כך מאפשר לאתר עסקים,Web Services
המציעים את השירותים הללו
Web Services - אבל ל,"זהב- כמו "דפי
:WSDLקבלת "חוזה התקשרות"
© Keren Kalif
8
לאחר שנבחר הספק ממנו נרצה לצרוך את השירות נקבל
ממנו קובץ תיעוד המתאר לאילו נתונים הוא זקוק כדי לספק
את המידע ,ומה המידע שהוא יספק
אלו למעשה פרמטרים לפונקציות והערך המוחזר
חוזה זה הוא מסמך XMLהנקרא WSDL
()Web Services Description Language
:SOAPפורמט העברת המידע
© Keren Kalif
9
(Simple Object Access Protocol) SOAP הוא פרוטוקול
המבוסס על ,XMLשתפקידו העיקרי להגדיר מסגרת שתייצג מודל
המתאר את מבנה המסר
מסגרת המכילה מהם הפרמטרים שיועברו ,טיפוסיהם ,הערכים
המוחזרים וכו'
© Keren Kalif
10
דוגמא- Web Service איתור:UUDI
באתר
אתר זה הוא. הנותנים שירותים שוניםWeb Services ניתן למצוא
Web Services זהב" עבור-סוג של "דפי
- היה אינקס חינמי מעולה לseekda.com בעבר האתר
WebServices
http://www.actionscript.org/forums/showthread.php3?t=70742
weather -תוצאות חיפוש ל
© Keren Kalif
11
WSDL -זיהוי קובץ ה
© Keren Kalif
12
בדיקת הWSDL -
באתר http://wsdlbrowser.com/ניתן להכניס את הקישור ל-
wsdlונקבל את המתודות שה Web Service -חושף
נוכל להתנסות בבדיקת המתודות
13
© Keren Kalif
יצירת WS Clientשיעבוד מול הWS -
נייצר בפרוייקט קובץ מטיפוס :Web Service Client
© Keren Kalif
14
יצירת WS Clientשיעבוד מול ה :WS -המחלקה
15
© Keren Kalif
הפלט
© Keren Kalif
16
יצירת Web Service
המחלקה חייבת
להיות בתוך
package
סימון המחלקה כ-
Web Service
סימון השיטה
כשיטה שניתן
להפעיל מרחוק
© Keren Kalif
17
אישור כי ה deploy -עבר בהצלחה
ניתן לראות תחת Web Servicesאת ה WS -שיצרנו:
© Keren Kalif
18
© Keren Kalif
19
Web Service -בדיקת ה
: באופן כללי
http://localhost:<port>/<project-name>/<class-name>Service?Tester
: באופן ספציפי לדוגמא שלנו
http://localhost:8080/BmiCalculatorWS/BmiCalcService?Tester
© Keren Kalif
20
Tester -הרצת ה
© Keren Kalif
21
Tester -הזנת ערכים ב
© Keren Kalif
22
התוצאה- )1( Tester -תשובת ה
© Keren Kalif
23
Soap Request – )2( Tester -תשובת ה
שם המתודה
package -שם ה
הפרמטרים
שנשלחו
© Keren Kalif
24
Soap Response - )3( Tester -תשובת ה
© Keren Kalif
25
על הפרמטריםannotation -שימוש ב
© Keren Kalif
26
URI - לשינוי הannotation -שימוש ב
: היאURI - ראינו כי ברירת המחדל של ה
http://localhost:<port>/<project-name>/<class-name>Service?Tester
: באופן ספציפי לדוגמא שלנו
http://localhost:8080/BmiCalculatorWS/BmiCalcService?Tester
http://localhost:8080/BmiCalculatorWS/BmiCalc?Tester
© Keren Kalif
27
לשינוי שם המתודהannotation -שימוש ב
© Keren Kalif
28
WSDL -קובץ ה
התוספת לפרוייקט:
נוצר קובץ ה proxy -שבעזרתו קוד הלקוח
יוכל לגשת ל Web Service -שכתבנו
© Keren Kalif
29
© Keren Kalif
תיקון שגיאות הקומפילציה בקובץ שנוצר
לשים בהערה
30
© Keren Kalif
31
Web Service Client יצירת
:Web Service Client יש להוסיף קובץ מטיפוס
© Keren Kalif
מימוש Web Service Application Client
הגדרת מיקום
קובץ הwsdl -
יצירת משתנה מטיפוס
ה proxy -שנוצר
יצירת משתנה מטיפוס
המחלקה שיצרנו
אתחול
הפעלת מתודה מרוחקת בWS -
32
Web Service מימוש
Servlet Client
© Keren Kalif
33
הקונספט של WS
© Keren Kalif
34
מייצרים מחלקה וחושפים מתודות שלה החוצה
נקרא גם Java Api for XML - Web Services :JAX-WS
ישנה מתודלוגיה נוספת הנקראת RESTוהדגש בה על חשיפה
מידע בלבד :קריאה ,מחיקה ,הוספה ועדכון
נקרא גם Java Api for XML – RESTful Web Services:JAX-RS
REpresentational State Transfer :REST
© Keren Kalif
REST
35
במתדולוגיה זו נשלחים רק הנתונים ללא מעטפת ה ,SOAP -מה
שהופך את השימוש ליותר יעיל מבחינת רוחב פס
כל אובייקט או פעולה נקראים ,resourceויש URIשונה עבור כל
resource
דוגמא:
בפניה רגילה:
http://mysite.com/data?fName=Keren&lName=Kalif
בפנית :REST
http://mysite.com/fName/Keren/lName/Kalif/data
:physicalURI הדף קיים מראש
:logicalURI הדף נבנה אופן דינאמי בהתאם לנתונים
– RESTסוגי הפעולות
© Keren Kalif
כאשר אנחנו מפעילים מתודה ,לרוב היא מבצעת את אחת
מהפעולות הבאות:
קבלת מידע @GET -
הוספת מידע @PUT -
עדכון @POST -
מחיקה @DELETE -
לכן כל ( resourceמתודה) במימוש RESTתצהיר מהו סוג
הפעולה שתבצע
36
הגדרת פרוייקט
© Keren Kalif
JAX-RS
נייצר פרוייקט ונוסיף לו את הJersey 1.3 (JAX-RS RI) :lib -
נעדכן את ה:web.xml -
37
© Keren Kalif
דוגמא
38
resource -שם ה
שם הפרוייקט
resource -שם ה
דוגמא :יותר ממתודה אחת במחלקה
© Keren Kalif
39
© Keren Kalif
40
PathParam -שימוש ב
תרגיל
© Keren Kalif
כתוב למשחק WebServiceהניחושים
ה client -צריך להיות servlet
לא לשכוח שימוש ב session -על מנת לשמור את הנתונים
41
© Keren Kalif
42
:ביחידה זו למדנו
Web Services מהו
מוטיבציה
WebService מימוש
WebService App Client
WebService Servlet Client
REST