לדלג לתוכן

Web service – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
מ הגהה
אין תקציר עריכה
שורה 1: שורה 1:
{{שכתוב|הגהה, סגנון, עברית מאונגלזת, תרגמת}}
'''שירותי רשת''' או באנגלית '''Web Services''' הם אוסף של תקנים לממשקים בין יישומים. הסטנדרטים של שירותי רשת מבוססים על טכנולוגיות Web המהוות מכנה משותף לכל פלטפורמות התוכנה.הטכנולוגיות השכיחות ביותר הן [[XML]] ו [[HTTP]]. על בסיס הטכנולוגיות הסטנדרטיות מוגדרים סטנדרטים של Web Services. הגדרה של כל סטנדרט כזה היא באמצעות תפקיד ופונקציונאליות ובאמצעות מבנה המסרים ותכניהם. הרעיון המרכזי הוא שבאמצעות ממשקים מבוססי סטנדרטים ניתן יהיה לשלב בקלות יחסית רכיבי תוכנה הממומשים באמצעות טכנולוגיות שונות. <br />אין הגדרה אחת מקובלת של Web Services. חלק מההגדרות מציינות את השימוש בטכנולוגיות סטנדאטיות וחלק מההגדרות מתייחסות להיבט של אינטגרציה. להלן מספר הגדרות:
'''שירותי רשת''' או באנגלית '''Web Services''' הם אוסף של תקנים לממשקים בין יישומים. הסטנדרטים של שירותי רשת מבוססים על טכנולוגיות Web המהוות מכנה משותף לכל פלטפורמות התוכנה.הטכנולוגיות השכיחות ביותר הן [[XML]] ו [[HTTP]]. על בסיס הטכנולוגיות הסטנדרטיות מוגדרים סטנדרטים של Web Services. הגדרה של כל סטנדרט כזה היא באמצעות תפקיד ופונקציונאליות ובאמצעות מבנה המסרים ותכניהם. הרעיון המרכזי הוא שבאמצעות ממשקים מבוססי סטנדרטים ניתן יהיה לשלב בקלות יחסית רכיבי תוכנה הממומשים באמצעות טכנולוגיות שונות. <br />אין הגדרה אחת מקובלת של Web Services. חלק מההגדרות מציינות את השימוש בטכנולוגיות סטנדאטיות וחלק מההגדרות מתייחסות להיבט של אינטגרציה. להלן מספר הגדרות:
# אפליקציה שהיא XML Enabled
# אפליקציה שהיא XML Enabled

גרסה מ־17:05, 28 במאי 2008

שירותי רשת או באנגלית Web Services הם אוסף של תקנים לממשקים בין יישומים. הסטנדרטים של שירותי רשת מבוססים על טכנולוגיות Web המהוות מכנה משותף לכל פלטפורמות התוכנה.הטכנולוגיות השכיחות ביותר הן XML ו HTTP. על בסיס הטכנולוגיות הסטנדרטיות מוגדרים סטנדרטים של Web Services. הגדרה של כל סטנדרט כזה היא באמצעות תפקיד ופונקציונאליות ובאמצעות מבנה המסרים ותכניהם. הרעיון המרכזי הוא שבאמצעות ממשקים מבוססי סטנדרטים ניתן יהיה לשלב בקלות יחסית רכיבי תוכנה הממומשים באמצעות טכנולוגיות שונות.
אין הגדרה אחת מקובלת של Web Services. חלק מההגדרות מציינות את השימוש בטכנולוגיות סטנדאטיות וחלק מההגדרות מתייחסות להיבט של אינטגרציה. להלן מספר הגדרות:

  1. אפליקציה שהיא XML Enabled
  2. רכיב XML
  3. רכיב תוכנה המתואר באמצעות WSDL וניתן לגשת אליו באמצעות פרוטוקולי רשת סטנדרטים כמו SOAP ו HTTP אבל לא בהכרח באמצעות פרוטוקולים מסוימים אלה - הגדרה של Oasis.
  4. הגדרות המצינות הכרח בשימוש בשלושת הסטנדרטים העיקריים של WSDL UDDI,SOAP :Web Services או חלק מהם.
  5. Web service הוא מערכת תוכנהשתוכננה לתמוך באינטראקציה משולבת של מכונה-מכונה ברשת. יש לו מממשק בפורמט ספיצפי הנקרא WSDL הניתן לעיבוד על ידי מחשב. האינטראקציה של מערכות אחרות עם Web service היא באמצעות מסרי SOAP, כשבדרך כלל משתמשים ב HTTP בשילוב עם XML serialization - הגדרה של W3C [1]


מבוא

איור 1: Web Service

התחלת השימוש במושג Web Services היא בשנת 1999, בה שוחחרה מהדורה ראשונה של SOAP . התפיסה הפכה למקובלת בשנים הראשונות של המאה ה 21. אופן פעולת שירותי הרשת מתואר באיור 1.
ניתן לראות מהאיור כי קיים ממשק מצד ספק השירות וממשק מצד צרכן השירות. היות שהאינטראקציה היא ביניהם ולא בין השירות לצרכן ישירות, מופחתת באופן משמעותי התלות בטכנולוגיית השירות עצמו. משמעות מעשית של הקטנת תלות זו היא היכולת להחליף באופן שקוף למשתמש את השירות בשירות זהה פונקציונאלית המתבצע בסביבה טכנולוגית אחרת. החלפה כזו עשויה להידרש למשל במקרים של שימוש בטכנולוגיות ישנות שאינן נתמכות על ידי היצרן או בטכנולוגיות ששכיחות השימוש בהן נמוכה ולכן קיים קושי למצוא אנשי מקצוע שיתחזקו את התוכנה. מהאיור ניתן ללמוד כי לא בהכרח הקשר בין ממשק השירות לממשק הצרכן הוא קשר ישיר: המסר המורכב ממסמך XML סטנדרטי עשוי לעבור דרך שרתים מתווכים שעל פי תכנים במעטפת המסר ידעו מי השירות המהווה יעד למסר.
ניתן לתאר את הסטנדרטים באמצעות מחסנית בת שלוש שכבות הקרויה Web Services Stack ומתוארת באיור 2. השכבה התשתיתית ביותר היא שכבת ה Wire Stack סטנדרטים השייכים אליה משמשים להעברת מסרים. הסטנדרט הבולט ביותר בששכבה זו הוא SOAP. מעליה נמצאת שכבה הנקראת Description Stack. סטנדרטים כגון WSDL ו WS-BPEL השייכים אליה מתארים את השירות. סטנדרט בולט בשכבת ה Discovery הוא UDDI. שכבה זו עוסקת באיתור שירות מתאים באופן דינאמי. כך למשל בחיפוש שירות המספק פונקתיונאליות של שכירת רכב ניתן לקבל רשימה של שירותים המספקים פונקציונאליות זו. לא תמיד ניתן לשייך פונקציונאליות של סטנדרט של Web Services לשכבה אחת ספיציפית. בהחלט ייתכן שחלק מהפונקציונאליות של סטנדרט מסוים תשתייך לשכבה מסוימת וחלק אחר שלה לשכבה אחרת.
בנוסף לסטנדרטים הניתנים למיפוי, קיימים סטנדרטים המטפלים בכל שכבות המחשנית. באיור 2 הם מתוארים בחלק האדום של האיור. סטנדרטים בולטים המתייחסים לכל שכבות המחסנית הם הסטנדרטים של אבטחת מידע והסטנדרטים המטפלים בטרנזקציות. בפיתוח Web Services מתווסף שלב של פירסום (Publishing), שבדרך כלל אינו חלק מתהליך של פיתוח אפליקציה בסביבה שאינה סביבת Web. הפירסום הוא הצגת הפונקציונאליות של השירות ואופן ההתקשרות אליו ופרטים מזהים על יצרן השירות בקטלוג המתאר שירותים. להלן תיאור סכימטי פשוט של מימוש פניה של צרכן ל Web Service על בסיס שלושת הסטנדרטים הבסיסיים:

  1. הצרכן מעביר מסר המבקש שירות בעל פונקציונאליות מסוימת ההעברה היא באמצעות שימוש ב SOAP על פרוטוקול HTTP או פרוטוקול אחר של TCP/IP.
  2. מתבצע איתור של שירות מתאים ב Rergistry אחד או יותר הממומשים באמצעות הסטנדרט UDDI.
  3. להפעלת השירות נעשה חיבור (Binding)בין בקשת הצרכן לבין דרישות השירות תוך שימוש בסטנדרט WSDL.
איור 2: Web Services Stack

ארגוני הסטנדרטים ותהליך הגדרת סטנדרטים

הסטנדרטים של Web Services נקבעים על ידי שני ארגונים The World Wide Web Consortium או בקיצור W3C ו Organization for the Advancement of Structured Information Standards או בקיצור OASIS. תהליך הגדרת סטנדרט חדש מתחיל בהצעת טיוטה (draft) של חבר או חברים בארגון הסטנדרטים.במידה שהיא מתקבלת ממונה ועדה שמטפלת בקידום הגדרת הסטנדרט החדש. סטנדרטים קיימים מורחבים במהדורות חדשות על פי היזון חוזר מהשטח. חבר בארגון הסטנדרטים עשוי להיות אדם פרטי או חברה. באופן מעשי מציעי הטיוטות הם בדרך כלל נציגי חברות. לפני הצעת הטיוטה מתאגדות מספר חברות ודנות ביניהן על הטיוטה ואז מציעות אותה במשותף. היות שלחברות פתרונות קנייניים, בדרך כלל מבוססת הטיוטה על אותן טכנולוגיות קניניות של החברות המציעות. לכל חברה יש אינטרס מסחרי, שהסטנדרט יהיה דומה ככל שניתן לפיתרון הטכנולוגי הקנייני שלה כתוצאה מכך בהחלטות ביחס לסטנדרטים יש מרכיב פוליטי.כפי שצוין לעיל יש שני ארגוני סטנדרטים, כך שההחלטה לאיזה ארגון להפנות את הטיוטה, עשויה אף היא לכלול מרכיבים פוליטיים. באופן מעשי שתי החברות הדומיננטיות בקביעת הסטנדרטים הן Microsoft ו IBM, כך שהיוזמה לסטנדרטים שמתקבלים על ידי ארגוני התקינה היא במקרים רבים של שתי חברות אלה בצירוף לפחות חברה נוספת, שמיוצבת היטב בתחום אליו מתייחסת הטיוטה. כך למשל בסטנדרט של WS-Reliable-Messaging צורפו לטיוטה חברת Tibco וחברת BEA ולטיוטת סטנדרט UDDI צורפה חברת Ariba. בין התוצאות של השפעת שיקולים עסקיים של חברות על סטנדרטים ניתן למנות:

  1. סטנדרטים מתחרים עם חפיפה פונקציונאלית ביניהם. למשל: WS-BPEL ו WS-Choreography ו WS-Reliable-Messaging ו WS-Reliability שהוגשו כטיוטות על ידי קבוצות חברות שונות.
  2. אין קשר ברור בין עולם התוכן של הסטנדרט וארגון הסטנדרטים המטפל בו. כך למשל קיימים מספר רב של סטנדרטים של אבטחת מידע עבור Web Services המחולקים בין שני ארגוני הסטנדרטים ללא תיחום פונקציונאלי ברור.
  3. לא בהכרח קיימת תאימות בין יצרנים שונים במימוש פיתרון לסטנדרט גם אם יצרנים שונים תומכים בסטנדרט.


על מנת להתמודד עם חוסר התאימות בין יצרנים והחשש להתפצלות היוזמות הקשורות לסטנדרטים של שירותי רשת הוקם ארגון נוסף ששמו -WS-I ‏(Web Services Interoperability Organization)ארגון זה אינו מייצר סטנדרטים, אלא מתמקד בהבטחת עבודה משותפת (Interoprability)בין מימושי Web-Services של יצרנים שונים בשטח. לצורך כך הוא מעניק מעין תו תקן ליצרנים. WS-I הוא ארגון המאגד את מרבית היצרנים המובילים במטרה לאפשר Interoperability אמיתי במציאות בין סביבות טכנולוגיות שונות בהקשר של Web Services. קיומו של ארגון כזה מעיד על כך שאין די בסטנדרטים על מנת לייצור Interoperability. התוצר המרכזי של פעילות WS-I הוא WS-I Basic Profile. בתוצר זה כמו גם בתוצרים אחרים מוגדרות דרישות מעשיות לתאימות. התוצר מספק הנחיות למימוש ומתייחס לאוסף מצומצם של סטנדרטים, כשלגבי כל אחד מהם מוגדרת מהדורה ספיציפית.

סטנדרטים

מספר הסטנדרטים של Web Services הוא גדול. יש כ 50 סטנדרטים שונים אליהם מתווספים סטנדרטים חדשים.בתעשייה נהוג להתייחס לאוסף תקנים אלו בשם WS-*. שכיחות שימוש גבוהה קיימת רק בחלק קטן מהסטנדרטים. בחלק זה של הערך יוצגו בקצרה מספר סטנדרטים חלקם בשלים יחסית וחלקם בעלי חשיבות מבחינת הפונקציונאליות המוכלת בהם.

SOAP
בעבר המונח SOAP היה ראשי תיבות של Simple Object Access Protocol. החל ממהדורה 2.0 האותיות אינם מיצגות ראשי תיבות, אלא יש רק צירוף בן 4 אותיות. יוזמי סטנדרט זה הם עבדו בחברת Microsoft ובחברות הקשורות אליה: Developmentor ו Userland. זהו פרוטוקול להעברת ההודעה בין שני צידי ההתקשרות. הפרוטוקול בנוי ממעטפה הכוללת מידע על המסר ובתוכה את תוכן המסר. הסטנדרט SOAP הוא RPC מבוסס XML. סטנדרט זה הוא סטנדרט של W3C.
 ;WSDL ‏(Web Service Description Language):
שפה המאפשרת לתאר את הממשק של ה-Web service, טיפוסי הנתונים ה-XML-ים שהוא מקבל ופרטים הקשורים לפרוטקולי התקשורת שהוא תומך בהם.סטנדרט זה הוא סטנדרט של W3C. בפיתוח Web services קיימות שתי גישות לעבודה עם WSDL. גישה ראשונה גורסת שיש לכתוב את ה-WSDL ואז לכתוב את הקוד של ה-Web service כך שיממש את הממשק שהוצהר בו (לרוב ייעשה שימוש בכלי תוכנה אוטומטיים על מנת לייצר stub-ים עבור שפת המימוש המבוקשת). גישה אחרת טוענת שיש לכתוב את המימוש האפליקטיבי של ה-Web Service, ולהשתמש בכלים אוטומטיים כדי לייצר את ה-WSDL.

UDDI‏ (Universal Description, Discovery and Integration)
פרוטוקול המאפשר לפרסם ולצרוך מידע אודות שירותים. באמצעות פרוטוקול זה אפליקציות יכולות לאתר שירותים ולצרוך אותם בזמן עיצוב וגם בזמן ריצה. ספקי Web services יכולים לפרסם את ה-Web services שלהם ב- UDDI Registry שהוא מסד נתונים דמוי דפי זהב של טלפונים ומכיל מידע על Web Services. הרעיון של UDDI Registry אוניברסלי לאינטרנט כלו, שהווה בסיס למהדורה הראשונה של הסטנדרט נכשל ומהדורה 3 מציגה תפיסה המאפשרת שילוב בין UDDI Registries.

סטנדרט זה גובש על ידי ארגון סטנדרטים פרטי בשם UDDI.ORG והועבר ל OASIS.

WS-BPEL‏ (Web Service Business Process Execution Language]])

סטנדרט למימוש תהליכים עסקיים מבוססי Web Services באמצעות Orchetration של Web Services. הסטנדרט בנוי על שתי שפות קניניות לביצוע תהליכים: שפה של חברת Microsoft ושפה של חברת IBM. זהו סטנדרט בטיפול ארגון התקנים OASIS.

WSDM‏ (Web Service Distributed Management]])

סטנדרט המשמש לניהול Web Services. ארגון התקנים האחראי עליו הוא OASIS. סטנדרט זה הוא רוחבי ואינו שייך לשכבה מסוימת של ה Web Services Stack.

WS-Security
תקן שמתאר כיצד נתן לאבטח את הודעות ה SOAP באמצעות יכולות של הצפנה, חתימה דיגיטלית, שם וססמא וכן Timestamp. השימוש ב WS-Security הוא אלטרנטיבה לאבטחת התקשורת באמצעות HTTPS.התקן מתייחס לשכבת ה Wire ב Web Services Stack. תקן זה הוא חלק מאוסף תקנים בנושא אבטחת מידע ועוסקים בהצפנה, חתימה דיגיטלית, מדיניות אבטחת מידע, Provisioning ועוד שכולם מבוססי XML. חלקם תקנים של OASIS וחלקם תקנים של W3C.
WS-Policy
אחד מהסטנדרטים הקשורים לאבטחת מידע. מאפשר ל Web Services להציג את המדיניות שלהם בנושאים כמו אבטחה ואיכות שירות באמצעות XML. מתמקד בעיקר בשכבת ה Description של ה Web Services Stack.סטנדרט של W3C.
WS-Federation
אחד מהסטנדרטים הקשורים לאבטחת מידע. מאפשר ניהול זהויות בין מערכות שונות של Authentication ו Authorization. יוזמות הסטנדרט IBM ו Microsoft בצירוף RSA BEA ו VeriSign. מטופל על ידי OASIS.


WS-Transactions
אסופת תקנים שמתארים כיצד נתן לנהל קריאות ל Web Services בצורה טראנזקציונית. קיימים מספר תקנים בתחום זה: BTP (Business Transaction Protocol) שהוא תקן ישן יחסית שמתאר כיצד נתן לנהל תקשורת XML-ית כלשהי בצורה טראנזקציונית, ולאו דווקא תקשורת מבוססת Web Services, ואסופת התקנים WS-TX מוכוונת ה Web Services שכוללת את התקנים: WS-Coordination, WS-AtomicTransaction ו - WS-BusinessActivity. הטיפול בטרנזקציות הוא רוחבי ואינו מתייחס לשכבה מסוימת במחסנית הסטנדרטים.
WS-Addressing
באופן נורמלי, ללא שימוש בתקן WS-Addressing, הודעות SOAP יישלחו ל Entry Point שצוינה עבור השירות, ותוצאת העיבוד תשלח חזרה לגורם שייצר את הבקשה. תקן WS-Addressing מאפשר להרחיב את המודל הזה ולציין אינפורמציית ניתוב בגוף הודעת ה SOAP. פרטים שיכולים להכלל במשלוח: כתובת הגורם אליו תשלח תוצאת העיבוד וכתובת למשלוח שגיאות. סטנדרט זה מנוהל על ידי W3C. נכלל בשכבת ה Wire.
WS-Eventing
מנוי של Web Services לאירועים שנוצרו על ידי Web Services אחרים.המנוי הוא באמצעות Publish&Subscribe. זהו סטנדרט של W3C.
WS-Notification
סטנדרט של OASIS. מתחרה ב WS-Eventing . יוזמות הסטנדרט AmberPoint, CA, Fujitsu, HP, Hitachi, IBM , Oracle, SAP, Sonic Software, Tibco Software ו-WebMethods (האחרונה היא היום חלק מחברת Software AG שרכשה אותה).

ביקורת על Web Services

למרות היתרונות של הסטנדרטיות וקלות הפיתוח של Web Services יש להם גם חסרונות שהעיקרים בהם מצוינים להלן:

  1. ביצועים - הטכנולוגיה הסטנדרטית המשמשמת את Web Services עשויה במקרים רבים להיות פחות יעילה מטכנולוגיות קניניות ולפעמים אינה עונה על רמת השירות הנדרשת בארגון. מקורות בולטים לחוסר היעילות הם השימוש ב XML המחייב Serialization ו Seserialization וכמות הנתונים הגבוהה במיוחד המועברת ברשת ובגלל רמת הביצועים הנמוכה של פרוטוקול התקשורת HTTP.
  2. חוסר בשלות - תהליך ההבשלה של סטנדרטים הוא ארוך. מרבית הסטנדרטים עדיין אינם בשלים מספיק. כך למשל הסטנדרט WS-Atomic-Transaction עוסק בתחום חשוב אך אינו בשל דיו (הוא גם סותר סטנדרטים אחרים בתחום שאינם קשורים ל Web Services)
  3. מגבלות באבטחת מידע - הסטנדרט מבוסס על העברת המסרים דרך מחשבי ביניים (למשל: Proxy)היות שהסטנדרט מבוסס על תכני המסרים עשויה להידרש פתיחת המסרים בתחנות ביניים.
  4. אי-הסכמה על המבנה הארכיטקטוני של מחסנית הסטנדרטים: גוף אחד עשוי למקפ סטנדרט בשכבה מסוימת של המחסנית בעוד גוף אחר עשוי למקמה בשכבה אחרת.
  5. סטנדרטים תשתיתיים שאינם תומכים בהיבטים סמנטיים עסקיים. יותא מן הכלל הסטנדרט הלא פןפןלארי EBXML שנותן מענה להיבטים מסוג זה, אך אינו זוכה להצלחה משום שחברת מיקרוסופט אינה תומכת בו.
  6. הסטנדרטים מושפעים באופן רב משיקולימם פוליטיים של יצרני תוכנה

Web Services וסביבות פיתוח וריצה

בפיתוח Web Services אין צורך בקידוד.מרבית סביבות הפיתוח יודעות לחולל באופן אוטומטי Web Services, על בסיס הגדרות פרמטריות של התוכניתן. בסביבת DotNet של מיקרוסופט, שפותחה יחסית מאוחר Web Services הם חלק אינטגרלי מסביבת הפיתוח הכוללת. סביבת J2E הותיקה יותר הורחבה לתמיכה ב Web Services באמצעות שימוש ב APIs.בין ה APIs אפשר לציין JAX-RPC ואת JAX-WS המאוחר יותר. גם בסביבות אחרות כגון CICS במחשבי Mainframe התווספה תמיכה.

ראו גם

הערות שוליים

  1. ההגדרה היא תרגום חופשי שלי לעברית של טקסט באנגלית המופיע ב אתר האינטרנט של W3C

קישורים חיצוניים

  1. ^ שגיאת ציטוט: תג <ref> לא תקין; לא נכתב טקסט עבור הערות השוליים בשם ref-name