95bc8cd21ac4a070c5ae7f306f213da0.ppt
- Количество слайдов: 48
accelerate your business טיפים מעשיים – פתרון חמש בעיות עיקריות מורכבים J 2 EE בפיתוח יישומי שרון דגן Senior Software IT Architect Software Group, IBM Israel Software Symposium 2003 © 2002 IBM Corporation
accelerate your business - J 2 EE המספרים § שוק של 91. 2 מיליארד דולר בשנת 2002 ) (Source: Giga § 13 חברות רכשו את רישיון J 2 EE – 01 חברות מייצרות שרתי יישומים – גרסאות קוד מקור פתוח זמינות § 256 חברים ב- Java Community Process – 455 מחברות שונות – 89 עצמאיים 3002 IBM Israel Software Symposium 2
accelerate your business – J 2 EE המספרים )המשך( § הוגדרו עד כה 422 סטנדרטים – %06 בהובלה של חברות שונות מהתעשייה – %04 בהובלה של חברת Sun § הרוב המכריע של המערכות הגדולות מפותח ב- J 2 EE – מעל 005 משתמשים בו-זמנית : Source Gartner Group 2002 Nov 6002 5002 4002 3002 IBM Israel Software Symposium 3002 2002 1002 0002 9991 8991 3
accelerate your business החדשות הטובות § פלטפורמת J 2 EE מספקת תשתית מעולה לפיתוח יישומים – עוקר העוקץ מההתלבטות מה היא הארכיטקטורה "הנכונה" § " "Single User, Single Thread § מקנה יכולות של טרנזאקציונליות, אבטחת מידע וניהול ללא השקעה בפיתוח עצמי § קל לפתח יישומים בעלי יכולת גידול מצוינת - עוד מעבדים, עוד מכונות, פלטפורמות טובות יותר § אקולוגיה עשירה של תבניות עיצוב פלטפורמת J 2 EE הגיעה לנקודת ה – "02/08" – כלומר, ניתן לפתח %08 מהיישומים באמצעותה – בקלות יחסית 3002 IBM Israel Software Symposium 4
accelerate your business יישומים שאינם מתאימים בקלות למודל התיכנותי הנוכחי של J 2 EE § יישומים בעלי אופי נתונים ופעולות המשתנים בזמן ריצה § יישומים בעלי אופי "פעיל" לעומת "סביל" § יישומים אסינכרוניים מעיקרם )מבוססי זמן, אירועים( %01 מהיישומים המפותחים בשוק המודל התיכנותי של J 2 EE אינו רחב מספיק עבור יישומים אלו - יש לפתח תשתית נוספת § אין פתרונות קסם - וגם השפנים של מיקרוסופט לא מספיקים ; -( 3002 IBM Israel Software Symposium 5
accelerate your business . . . מודל סטאטי מידי כי (Declarative) § דגש על קלות פיתוח הצהרתית Deployment Descriptors – § אינו מאפשר הגדרה של תכונות הצהרתיות בזמן ריצה CMP Entity Beans של Finder Methods – Message-Driven Beans של Destinations/Filters – Security Roles – . . . מודל פסיבי מידי כי ( קצרה Request/Response) § מבוסס על קונספט של בקשה/תגובה RMI/IIOP/HTTP Request/Response – § היישום מקבל פיקוח רק כתגובה לבקשה חיצונית כלשהי 6 IBM Israel Software Symposium 2003
accelerate your business שיפורים אפשריים למודל הנוכחי CMP Entity Beans Finder Methods § Read-Mostly CMPs § Message-Driven Beans § Active Applications § Security § 7 IBM Israel Software Symposium 2003
accelerate your business CMP Entity Beans של Finder Methods . ממומשת Entity Bean – של ה Home Interface – § מתודה ריקה המוגדרת ב DD - המוגדרת ב EJB-QL באמצעות שאילתה של Entity Bean - § משמשת למציאת מופע )או מופעים( של ה האתגרים § יש להגדיר את כל השאילתות מראש ובזמן הפיתוח ? § מה אם איננו יודעים מראש את כל הפרמוטציות של השאילתה SELECT OBJECT(e) FROM Emp. Bean e WHERE e. salary = ? 1 – SELECT OBJECT(e) FROM Emp. Bean e WHERE e. salary > ? 1 – SELECT OBJECT(e) FROM Emp. Bean e WHERE e. salary = ? 1 AND e. car = ? 2 –. . . – 8 IBM Israel Software Symposium 2003
accelerate your business הפתרון הרצוי § Dynamic EJB Query Service § מאפשר הרכבת שאילתות בזמן ריצה המתייחסות ל – Entity Beans – בדומה ל – JDBC – משתמש ב – EJB-QL הקטנת המתח בין פיתוח מונחה עצמים לבין פיתוח מוכוון מסד-נתונים § מאפשר שימוש טבעי במודל מונחה-העצמים של היישום 3002 IBM Israel Software Symposium 9
accelerate your business 1 דוגמא § מצא את העובדים להם משכורת מעל סכום מסוים ורכב חברה Initial. Context ic = new Initial. Context(); Query. Home qh = ( Query. Home ) ic. lookup( “java: comp/env/Query. Bean” ); Query. Local qs = qh. create(); String query = “SELECT OBJECT(e) FROM Emp. Bean e WHERE e. salary > ? 1 AND e. car = ? 2“; Object[] params = new Object[] { new Float( 10000 ), new Boolean( true ) }; IQuery. Tuple tuple = qs. execute( query, params ); 10 IBM Israel Software Symposium 2003
accelerate your business 2 דוגמא § מצא את העובדים בעלי רכב הגרים רחוק מהמשרד Relationships – – ניווט ב Location Entity Bean – – הפעלת מתודה המוגדרת ב distance( String ) Inherits Employee 1 1 home. Address SELECT OBJECT(e) FROM Emp. Bean e WHERE e. car = ‘true’ AND e. home. Address. distance( ’ 2 Weizmann, Tel Aviv’ ) > ? 1 11 IBM Israel Software Symposium 2003
accelerate your business 3 דוגמא § בחר שם ושם משפחה מרשימת כל העובדים Entity Bean - – בחירה של יותר מאלמנט אחד מה SELECT e. fname, e. lname FROM Emp. Bean e 12 IBM Israel Software Symposium 2003
accelerate your business אלטרנטיבות § שימוש ב- BMP Entity Beans – מאפשר פתרון של בעיית הפרמוטציות – אינו מאפשר שימוש טבעי במודל מונחה-העצמים של היישום – BMPs אינם מומלצים בדרך כלל : -( § IBM Web. Sphere AS Enterprise – מימוש מוקדם של התקן הצפוי 3002 IBM Israel Software Symposium 31
accelerate your business לסיכום § Dynamic EJB Query Service – תוספת דרושה ל – J 2 EE – מרחיב את המודל התיכנותי הנוכחי – מאפשר שימוש טבעי יותר במודל מונחה-עצמים של היישום § זמינות – צפוי ב – 5. 1 J 2 EE v 3002 IBM Israel Software Symposium 41
accelerate your business שיפורים אפשריים במודל הנוכחי CMP Entity Beans Finder Methods § Read-Mostly CMPs § Message-Driven Beans § Active Applications § Security § 15 IBM Israel Software Symposium 2003
accelerate your business Read-Mostly CMPs § Entity Beans הנקראים בתדירות גבוהה אך משתנים בתדירות נמוכה – דוגמא: קבוצת דיון הממומשת באמצעות CMPs האתגרים § איך לחסוך את הקריאות למסד הנתונים? – Read-Only Cache אינו מספיק טוב – הנתונים משתנים מידי פעם § איך לשמור על אמינות ונכונות ) (Integrity המידע באשכול? – יש לסנכרן בין המופעים השונים של ה- Cache 3002 IBM Israel Software Symposium 61
accelerate your business הפתרון הרצוי Coherent Distributed Cache § Entity Beans § אינו מפר את המודל התיכנותי של (Qo. S) Quality of Service § מאפשר רמות שונות של – אמינות נתונים הנשמרת במחיר של ביצועים טובים פחות 17 IBM Israel Software Symposium 2003
accelerate your business מימוש § אפשרות לקבוע לכל CMP את זמן החיים ב- Cache – כשזמן זה פוקע ומתבצעת גישה ל- CMP זה, יקראו הנתונים מחדש – Cache Invalidation APIs § Read/Write-Through Cache – הנתונים נכתבים ונקראים 'דרך' ה- Cache § שינויים מופצים לכל המופעים של שרת היישומים בהם מוצב היישום הרלוונטי – Publish/Subscribe בדרגות שונות של חומרה – עד רמה של שימוש בפרוטוקול 2 -Phase Commit 3002 IBM Israel Software Symposium 81
accelerate your business דוגמא למימוש Application Server 1 CMP A 2 A 4 Broker 5 Broker 6 A B Cache 3 DB 19 IBM Israel Software Symposium 2003
accelerate your business אלטרנטיבות Seppuku Pattern § פיתוח עצמי מבוסס על בשרת היישומים Cache Invalidation API – רצוי – אינו מעביר את השינויים שנעשו באובייקטים – נפוץ Tang. Sol Coherent § מוצרים כמו Clustered Hashtable – BMPs – מפר את המודל התיכנותי, מחייב – ביצועים טובים IBM Web. Sphere AS Enterprise § Cache – Seppuku Pattern – מימוש מוכן לשימוש של Clustered Hashtable – 20 IBM Israel Software Symposium 2003
accelerate your business לסיכום Coherent Distributed Cache § – חיוני כדי לשמור על יושר הנתונים באשכול – שומר על המודל התיכנותי § זמין חלקית של שרתי יישומים Quality of Service – 21 IBM Israel Software Symposium 2003
accelerate your business שיפורים אפשריים במודל הנוכחי CMP Entity Beans Finder Methods § Read-Mostly CMPs § Message-Driven Beans § Active Applications § Security § 22 IBM Israel Software Symposium 2003
accelerate your business Message-Driven Bean § אובייקט המקבל פיקוח כאשר יש הודעה בתור – ) on. Message( Message m – מאפשר קביעת פילטרים שונים האתגרים § יש להגדיר מראש את התור לו מאזינים – תורים ניתן להגדיר בזמן ריצה אך לא MDBs § יש להגדיר מראש את הפילטר – במקרים רבים יש לשנות את הפילטר בזמן ריצה כתגובה לכמות המידע אותו מבקש המשתמש לקבל § במערכת רוויה, איך להפסיק זמנית עיבוד הודעות חדשות? 3002 IBM Israel Software Symposium 32
accelerate your business הפתרון הרצוי § Dynamic Message-Driven Bean § מאפשר יצירה של MDBs חדשים בזמן ריצה – זה המוצב בשרת היישומים משמש כתבנית – מאפשר מחיקה של MDB – מאפשר Stop/Start דינאמי § מאפשר שינוי הפילטר 3002 IBM Israel Software Symposium 42
accelerate your business אלטרנטיבות § פיתוח עצמי – מחייב תשתית Threads – לוגיקה עדינה בטיפול בשגיאות ) (Poisoned Messages – קשה לממש פילטרים יעילים – נפוץ 3002 IBM Israel Software Symposium 52
accelerate your business לסיכום Dynamic Message-Driven Bean § J 2 EE - – תוספת דרושה ל – מרחיב את המודל התיכנותי הנוכחי § לא זמין עדיין J 2 EE v 1. 5 - – צפוי ב היה הפשטה נוספת של הקונספט J 2 EE v 1. 4 - – הדגש ב JCA-Driven Bean • • שרשור סטאטי 26 IBM Israel Software Symposium 2003
accelerate your business שיפורים אפשריים במודל הנוכחי CMP Entity Beans Finder Methods § Read-Mostly CMPs § Message-Driven Beans § Active Applications § Security § 27 IBM Israel Software Symposium 2003
accelerate your business Active Applications § יישומים בעלי מחזור-חיים המנותק ממודל הבקשה/תגובה האתגרים § היישום מקבל פיקוח רק בתגובה לאירוע חיצוני § איך להריץ עבודה יזומה באופן מקבילי? – שימוש ב- JMS מאפשר ניתוק אסינכרוני – ניצול לרעה § איך לתזמן עבודה המבוססת על אירועי זמן? 3002 IBM Israel Software Symposium 82
accelerate your business דוגמא למודל הקיים EJB § קריאה למתודה של Application Server Request Reply EJB Request EJB Reply 29 IBM Israel Software Symposium 2003
accelerate your business הפתרון הרצוי Asynchronous Container § מתוחכם Thread Pool § למעשה מנוהלים על ידי שרת היישומים Threads – Nanny – בעבודה האסינכרונית J 2 EE Context - § שומר על ה – דוגמא: הרשאות המשתמש שהתחיל את העבודה 30 IBM Israel Software Symposium 2003
accelerate your business 1 דוגמא מתוך שרת היישומים עצמו EJB § קריאה למתודה של Application Server Request Reply EJB Work Manager 1 EJB Request EJB Reply Work Manager 2 EJB 31 IBM Israel Software Symposium 2003
accelerate your business 2 דוגמא Container - § מסירה של עבודה ל Initial. Context ic = new Initial. Context(); Work. Manager wm = ( Work. Manager ) ic. lookup( “java: comp/env/Work. Manager” ); Work. Handle h = wm. start( new Work() { public void run() { // do something asynchronously here } } ); // do something useful with work handle 32 IBM Israel Software Symposium 2003
accelerate your business 3 דוגמא Dynamic Message Driven Bean § Initial. Context ic = new Initial. Context(); Work. Manager wm = ( Work. Manager ) ic. lookup( “java: comp/env/Work. Manager” ); Work. Handle h = wm. start( new Work() { public void run() { Queue. Connection. Factory qcf =. . . Queue q =. . . while( !END-CONDITION ) Message m = q. read. Message(); mdb. on. Message( m ); } } } ); 33 IBM Israel Software Symposium 2003
accelerate your business 4 דוגמא Scheduler, Calendar § // Create a Calendar object representing the time 30 days from now Calendar time = Calendar. get. Instance(); // the current time. add( Calendar. DATE, 30 ); // add 30 days to the current time Date date = time. get. Time(); // Create a timer that will go off 30 days from now EJBContext ejb. Context =. . . Timer. Service timer. Service = ejb. Context. get. Timer. Service(); timer. Service. create. Timer( date, null ); // invoke ejb. Timeout( Timer timer ) when timer goes off 34 IBM Israel Software Symposium 2003
accelerate your business דוגמאות נוספות תגובה לאירועים פנימיים "10 ms – "קרא לי כל Alarms – Events – (Batch) § עיבודי אצווה Daemons § בניית הקלאסי Socket Server - – ה Container - ל Work - – בקשות חדשות נמסרות כ ופורטלטים JSP § בניה מקבילית של חלקים מדפי IBM Web. Sphere Portal – 35 IBM Israel Software Symposium 2003
accelerate your business אלטרנטיבות § פיתוח עצמי – מחייב תשתית Threads – לא מאפשר לשמור על ה- J 2 EE Context במלואו – מתחרה בניהול המשאבים של שרת היישומים – מפר את המודל התיכנותי של J 2 EE – גרסאות פשוטות נפוצות § תזמון עבודות באמצעות מוצרים נוספים – Tivoli Workload Scheduler – מערכות הפעלה ) (cron § IBM Web. Sphere AS Enterprise – מימוש מוקדם של התקן הצפוי 3002 IBM Israel Software Symposium 63
accelerate your business לסיכום § Asynchronous Container – תוספת דרושה ל- J 2 EE – מרחיב את המודל התיכנותי הנוכחי § מאפשר מימוש פשוט של מגוון מערכות § זמינות – צפוי ב- 5. 1 J 2 EE v – אירועי זמן בסיסיים מוגדרים ב- 1. 2 EJB v – קונספט של Work ו- Work. Manager מוגדר ב- 5. 1 JCA v 3002 IBM Israel Software Symposium 73
accelerate your business שיפורים אפשריים במודל הנוכחי CMP Entity Beans Finder Methods § Read-Mostly CMPs § Message-Driven Beans § Active Applications § Security § 38 IBM Israel Software Symposium 2003
accelerate your business Security § Role-based Security – תפקידים מוגדרים בזמן פיתוח § קובעים אילו פעולות מותר/אסור לתפקיד מסוים לבצע אתגרים § יש להגדיר מראש את כל התפקידים § מה אם אין מיפוי ברור בין תפקיד לבין היישום? – דוגמא: ללקוחות שונים מבנה ארגוני שונה § מה אם ההרשאות מבוססות מופע מסוים של הנתונים? 3002 IBM Israel Software Symposium 93
accelerate your business דוגמא 1 למודל הקיים Run As Caller Façade JSP read write delete § מערכת הזמנות CMP CMP § הוגדרו שני תפקידים read : – מחסנאי read, write, delete : – איש מכירות § ללקוח חדש יש תפקיד נוסף read, delete : – מחסנאי בכיר 40 IBM Israel Software Symposium 2003
accelerate your business דוגמא 2 למודל הקיים § מערכת הזמנות 1000$ - § רק מחסנאי בכיר יכול לטפל בהזמנות של מעל ל § מחייב ערבוב קוד של לוגיקה עסקית והרשאות // somewhere in the read() method. . . if( order. get. Total() > 1000 && ejb. Context. is. Caller. In. Role( “Senior. Warehouse. Operator” ) { // do something } else throw new Some. Security. Exception() 41 IBM Israel Software Symposium 2003
accelerate your business הפתרון הרצוי Dynamic Security § והרשאות בזמן ריצה Security Roles § יכולת ליצור, למחוק ולשנות User Registry - ל Bind – מחייב Provisioning APIs – מחייב Security Callback § – בהחלטות על הרשאות JAAS Login Module - – בדומה ל § החצנה של מנגנון ההרשאות וביסוסו על מנוע חוקים 42 IBM Israel Software Symposium 2003
accelerate your business דוגמא Security Callback § – יש לכתוב קוד יעיל ביותר class Order. Callback extends Entity. Bean. Security. Callback { public int check. Permission( Principle p, Order. Bean. Local b ) { if( b. get. Total() > 1000 && p. is. In. Role( “Senior. Warehouse. Operator” ) return OK; else return SECURITY_ERROR; } } 43 IBM Israel Software Symposium 2003
accelerate your business אלטרנטיבות § הרשאות מבוססות על מופע מסוים – קל יחסית לפתור את הבעיות הפשוטות – נפוץ IBM Web. Sphere AS Enterprise § Java. ACC – מימוש מוקדם של Java Provisioning API – מימוש מוקדם של Java Rule Engine API – מימוש מוקדם של 44 IBM Israel Software Symposium 2003
accelerate your business לסיכום Dynamic Security § J 2 EE - – תוספת דרושה ל – מרחיב את המודל התיכנותי הנוכחי § לא זמין עדיין J 2 EE v 1. 4 - הוגדר ב Java. ACC – בתהליך תקינה Java Provisioning API – בתחילת תהליך התקינה Java Rule Engine API – – מחייב פיתוח עצמי – אתגר רציני 45 IBM Israel Software Symposium 2003
accelerate your business Lorem ipsum הנקודות העיקריות שכדאי לזכור ממצגת זו § 02/08 היום משמעו 01/09 מחר : -( § אל תמציאו את הגלגל מחדש – IBM Web. Sphere AS Enterprise – מימוש מוקדם של התקנים הצפויים 3002 IBM Israel Software Symposium 64
accelerate your business ! תודה § מצגות נוספות המומלצות לארכיטקטים Web Services - טכנולוגיית C 3 – מצגת Workflow - פוגש ב J 2 EE - C 6 – מצגת J 2 EE - אבטחת יישומי D 6 – מצגת 47 IBM Israel Software Symposium 2003
accelerate your business אנא מלאו את טופס המשוב A 1 : קוד ההרצאה 48 IBM Israel Software Symposium 2003
95bc8cd21ac4a070c5ae7f306f213da0.ppt