הצגת מפרט הפורטלט, חלק 1

עם הופעתם של מספר גדל והולך של פורטלים ארגוניים, יצרנים שונים יצרו ממשקי API שונים עבור רכיבי פורטל, הנקראים פורטלטים. מגוון זה של ממשקים לא תואמים מייצר בעיות עבור ספקי יישומים, לקוחות פורטל וספקי שרת פורטל. כדי להתגבר על בעיות אלה, JSR (Java Specification Request) 168, מפרט ה- Portlet, התחיל לספק יכולת פעולה הדדית בין פורטלטים ופורטלים.

JSR 168 מגדיר פורטלטים כרכיבי אינטרנט מבוססי Java, המנוהלים על ידי מיכל פורטלט, המעבדים בקשות ויוצרים תוכן דינמי. פורטלים משתמשים בפורטלטים כרכיבי ממשק משתמש הניתנים לחיבור המספקים שכבת מצגת למערכות מידע.

יעדי JSR 168 הם הבאים:

  • הגדר את סביבת זמן הריצה, או את מיכל הפורטלט, עבור פורטלטים
  • הגדר את ה- API בין מיכל הפורטלט לפורטלטים
  • ספק מנגנונים לאחסון נתונים חולפים ומתמשכים עבור פורטלטים
  • ספק מנגנון המאפשר לפורטלטים לכלול סרוולטים ו- JSP (JavaServer Pages)
  • הגדר אריזת פורטלטים כדי לאפשר פריסה קלה
  • אפשר ניידות פורטלט בינארית בין פורטלי JSR 168
  • הפעל פורטלטים JSR 168 כפורטלטים מרוחקים באמצעות פרוטוקול שירותי אינטרנט לפורטלטים מרחוק (WSRP)

תעשיית ה- IT קיבלה באופן כללי את JSR 168. כל החברות הגדולות בתחום הפורטל הן חלק מקבוצת המומחים של JSR 168: אפאצ'י, ATG, BEA, בואינג, בורלנד, ברודוויז'ן, סיטריקס, EDS, פוג'יטסו, היטאצ'י, יבמ, נובל, אורקל. , SAP, מכון SAS, Sun Microsystems, Sybase, TIBCO ו- Vignette. רשימת התומכים הרשמיים ארוכה עוד יותר.

נכון לעכשיו, JSR 168 נמצא בבדיקה ציבורית והגרסה הסופית מתוכננת לספטמבר 2003.

במאמר זה, אנו מגדירים תחילה פורטלים ופורטלטים, ואז נסביר את המושגים שמציגה JSR 168, כולל האובייקטים הבסיסיים של ה- API. לאחר מכן, אנו צוללים לפונקציות המתקדמות יותר של ה- JSR, כגון מידע על משתמשים, לוקליזציה ומטמון. לאחר מכן אנו מכסים את נקודות ההרחבה המאפשרות לספקי הפורטל להרחיב את הפונקציונליות המוגדרת כעת במפרט הפורטלט. המאמר מסתיים בתיאור אריזות ופריסת יישומי פורטלט.

קרא את כל הסדרה במפרט הפורטלט:

  • חלק 1: הרטיב את הרגליים עם המונחים והמושגים הבסיסיים של המפרט
  • חלק 2: יישום הייחוס של ה- Portlet API חושף את סודותיו

הגדרות בסיסיות

בחלק זה נסביר את ההגדרות הבסיסיות המשמשות במפרט הפורטלט, כולל הארכיטקטורה הבסיסית של הפורטל, מיכל הפורטלט ודף הפורטל.

שַׁעַר

פורטל הוא יישום מבוסס אינטרנט שמספק אישית, Single Sign-On, וצבירת תוכן ממקורות שונים, ומארח את שכבת המצגת של מערכות מידע. צבירה היא תהליך שילוב תוכן ממקורות שונים בתוך דף אינטרנט. בפורטל עשויות להיות תכונות התאמה אישית מתוחכמות כדי לספק תוכן מותאם אישית למשתמשים. בדפי הפורטל עשויים להיות קבוצות שונות של פורטלטים היוצרים תוכן עבור משתמשים שונים.

איור 1 מתאר את הארכיטקטורה הבסיסית של הפורטל. יישום האינטרנט של הפורטל מעבד את בקשת הלקוח, מאחזר את הפורטלטים בדף הנוכחי של המשתמש ואז קורא למיכל הפורטלט כדי לאחזר את תוכן כל הפורטלט. מיכל הפורטלט מספק את סביבת זמן הריצה לפורטלטים וקורא לפורטלטים דרך ממשק ה- API של הפורטלט. מיכל הפורטלט נקרא מהפורטל דרך ה- Portlet Invoker API; המכולה מאחזרת מידע על הפורטל באמצעות ה- Portlet Provider SPI (ממשק ספקי השירות).

עמוד

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

פורטלט

כאמור לעיל, פורטלט הוא רכיב אינטרנט מבוסס Java המעבד בקשות ויוצר תוכן דינמי. התוכן שנוצר על ידי פורטלט נקרא פרגמנט, פיסת סימון (למשל, HTML, XHTML או WML (שפת הסימון האלחוטית)) המקפידים על כללים מסוימים. ניתן לצבור שבר עם שברים אחרים כדי ליצור מסמך שלם, כפי שמוצג באיור 3. תוכן של פורטלט בדרך כלל מצטבר עם התוכן של פורטלטים אחרים כדי ליצור את דף הפורטל. מיכל פורטלט מנהל את מחזור חייו של הפורטלט.

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

התוכן שנוצר על ידי פורטלט עשוי להשתנות ממשתמש אחד למשנהו בהתאם לתצורת המשתמש של הפורטלט.

מיכל פורטלט

מיכל portlet פועל portlets ומספק להם על סביבת זמן הריצה הדרוש. מיכל פורטלט מכיל פורטלטים ומנהל את מחזורי החיים שלהם. הוא גם מספק מנגנוני אחסון מתמשכים להעדפות הפורטלט. מיכל פורטלט מקבל בקשות מהפורטל לביצוע בקשות בפורטלטים שמתארחים בו. מיכל פורטלט אינו אחראי לצבירת התוכן המיוצר על ידי הפורטלטים; הפורטל עצמו מטפל בצבירה.

ניתן לבנות פורטל ומיכל פורטלט יחד כמרכיב יחיד בחבילת יישומים או כשני רכיבים נפרדים של יישום פורטל.

מושגים

פרק זה מסביר את מושגי התכנות הבסיסיים ב- JSR 168, כגון מחזור חייו של portlet, ממשק ומצבים ומצבי חלון, כמו גם גישה להפעלה, גישה לאחסון מתמשך וכיצד לכלול סרוולטים ודפי JSP.

מחזור חיים של פורטלט

מחזור החיים הבסיסי של הפורטלט של פורטלט JSR 168 הוא:

  • ראשית: אתחל את הפורטלט והכנס את הפורטלט לשירות
  • טיפול בבקשות: עיבוד סוגים שונים של בקשות לפעולה וליצור
  • הרס: הוצא פורטלט משירות

מיכל הפורטלט מנהל את מחזור החיים של הפורטלט ומתקשר לשיטות המתאימות בממשק הפורטלט.

ממשק פורטלט

על כל פורטלט ליישם את ממשק הפורטלט, או להרחיב מחלקה המיישמת את ממשק הפורטלט. ממשק הפורטלט מורכב מהשיטות הבאות:

  • init(PortletConfig config):כדי לאתחל את הפורטלט. שיטה זו נקראת פעם אחת בלבד לאחר הפעלת הפורטלט. ניתן להשתמש בשיטה זו ליצירת אובייקטים / משאבים יקרים המשמשים את הפורטלט.
  • processAction(ActionRequest request, ActionResponse response):כדי להודיע ​​לפורטלט כי המשתמש הפעיל פעולה בפורטלט זה. רק פעולה אחת לכל בקשת לקוח מופעלת. בפעולה, פורטלט יכול להוציא הפניה מחדש, לשנות את מצב הפורטלט או את מצב החלון שלו, לשנות את מצבו המתמשך או להגדיר פרמטרים לעיבוד.
  • render(RenderRequest request, RenderResponse response):כדי ליצור את הסימון. עבור כל פורטלט בדף הנוכחי, שיטת העיבוד נקראת, והפורטלט יכול לייצר סימון שעשוי להיות תלוי במצב הפורטלט או במצב החלון, לעבד פרמטרים, תכונות בקשה, מצב מתמשך, נתוני הפעלה או נתוני backend.
  • destroy():כדי לציין לפורטלט את סוף מחזור החיים. שיטה זו מאפשרת לפורטלט לפנות משאבים ולעדכן את כל הנתונים המתמידים השייכים לפורטלט זה.

מצבי פורטלט

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

JSR 168 מחלק את מצבי הפורטלט לשלוש קטגוריות:

  1. מצבים נדרשים: כל פורטל חייב לתמוך במצבים עריכה, עזרה ותצוגה. פורטלט חייב לפחות לתמוך במצב התצוגה המשמש להפעלת סימון לדף. מצב העריכה משמש לשינוי הגדרות למשתמש להתאמה אישית של סימון הפורטלט, ומצב העזרה משמש להצגת מסך עזרה.
  2. מצבים מותאמים אישית אופציונליים: אלה הם מצבים שפורטל עשוי לתמוך בהם; בעוד במצב אופציונלי, ייתכן שפורטלט לא ייקרא. המצבים האופציונליים כוללים את מצב About להצגת הודעת "אודות"; מצב התצורה כדי לאפשר למנהלי מערכת להגדיר את הפורטלט; מצב Edit_defaults כדי לאפשר למנהל להגדיר מראש את ערכי מצב העריכה; מצב התצוגה המקדימה כדי להציג את תצוגה מקדימה של הפורטלט; ומצב ההדפסה כדי להציג תצוגה שיכולה להדפיס בקלות.
  3. מצבים ספציפיים לספקים לפורטל: מצבים אלה אינם מוגדרים במפרט ולכן הם ספציפיים לספקים.

מצבי חלון

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

JSR 168 מגדיר את מצבי החלון הבאים:

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

בנוסף למצבי חלון אלה, JSR 168 מאפשר לפורטל להגדיר מצבי חלון ספציפיים לספק.

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

חנות מתמשכת

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

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

מושבים

מושג ההפעלות של JSR 168 מבוסס על HttpSessionההגדרה עבור יישומי אינטרנט. היות ויישומי פורטלט הם יישומי אינטרנט, הם משתמשים באותה הפעלה כמו סרוולטים. כדי לאפשר לפורטלטים לאחסן נתונים זמניים פרטיים לפורטלט, היקף ההפעלה המוגדר כברירת מחדל הוא היקף הפורטלט . בהיקף זה, הפורטלט יכול לאחסן מידע הדרוש על פני בקשות משתמש וספציפי לישות פורטלט. תכונות המאוחסנות בהיקף זה מוקדמות במהלך ההפעלה על ידי מיכל הפורטלט כדי למנוע משני פורטלטים (או שתי ישויות באותה הגדרת פורטלט) שיחליפו אחד את ההגדרות של השני.

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

כולל סרוולטים / דפי JSP

כדי לתמוך בתבנית Model-View-Controller, הפורטלט חייב להיות מסוגל לכלול תוכן שנוצר מ- servlets ודפי JSP. בדרך זו, הפורטלט יכול לשמש כבקר, למלא שעועית בנתונים ולכלול דף JSP להפקת הפלט.

ב- JSR 168, מנגנון הכללה עבור סרטי רשת ודפי JSP זהה עבור ה- Servlet API. דרך ההקשר של הפורטלט, משגר בקשות מוצא לנתיב נתון; include()השיטה נקראת אז על אובייקט למוקדן-בקשה זו:

PortletRequestDispatcher rd = getPortletContext (). GetRequestDispatcher (editJSP); rd.include (portletRequest, portletResponse);

יישור עם WSRP

WSRP מצטבר תוכן המיוצר על ידי פורטלטים הפועלים במכונות מרוחקות המשתמשות בסביבות תכנות שונות, כמו J2EE (Java 2 Platform, Enterprise Edition) ו- .Net. שירותי WSRP הם שירותי אינטרנט מוכווני מצגת, הפונים למשתמש, המתחברים עם פורטלים או יישומים אחרים. הם מאפשרים לעסקים לספק תוכן או יישומים ללא צורך בהתאמה ידנית של תוכן או יישום ספציפי על ידי צריכת פורטלים; פורטלים יכולים לצבור שירותי WSRP בקלות ללא מאמץ תכנות.

קבוצת המומחים JSR 168 יישרה בקפידה את המושגים בין JSR 168 ל- WSRP. הרשימה הבאה מציגה סקירה כללית על התאמת המושגים העיקריים בין שני הסטנדרטים: