Browse by Tags
All Tags »
Architecture (
RSS)
אני יודע שהכותרת נראית תלושה משהו. אחרי הכל – מה הקשר בין חנונים ממושקפים שחולמים בבינארית ובין שחקני כדורגל מסוקסים שמעבירים את זמנם במרדף אחרי הכדור רק כדי לבעוט בו שוב? ובכן, ברוח המונדיאל שזה עתה החל, מסתבר שיש לא מעט נקודות דמיון מעניינות בין שחקן כדורגל וארכיטקט תוכנה.למעשה, יש מספר תכונות של שחקן הכדורגל שטוב יעשה הארכיטקט אם ילמד מהן משהו: 1. בכדורגל – הדרך היחידה לקבל נקודה היא לשים את הכדור ברשת. ארכיטקט התוכנה צריך לדעת שתרומתו לתוכנה אותה הוא מלווה נמדדת בנקודת הסיום...
[אני מניח שכולכם מכירים את התרשים (ואם לא, כדאי שתכירו) - לקוח מתוך " Architecture and Design Guidelines " באדיבות P&P. ] מכירים ארכיטקטורת שכבות? כמובן! מי לא מכיר? כולנו מכירים ויודעים לדקלם למה יש שכבות, כמה שכבות, איך לממש.... לכולם (אני מקווה) גם ברור שאני לא מאפשר גישה לשכבת ה – DAL ישירות מה – Service Layer או מה – Presentation Layer. (אבל למה? - זהו לא הנושא שעליו אני רוצה לדבר ולכן לא ארחיב...) אז על מה אני רוצה לדבר... נניח (באופן היפוטטי) שיש לי באפליקציה מספר מודולים, נקרא...
לכל מי שבא מעולם התכנות (כמוני למשל), שימוש בפונקציות נשמע כצורת הכתיבה הטובה ביותר. יש לכך כמובן הרבה סיבות כגון שימוש חוזר, Encapsulation, פשטות קוד ועוד. אבל, בכתיבה של SQL זה לא תמיד כדאי. אז הנה דוגמא מהחיים (הדוגמאות רצות על AdventureWorks): אנו רוצים לכל ספק את סכום ההזמנות, כמות הפריטים, סכום ממוצע לפריט ומשקל ממוצע לפריט השיטה בעזרת פונקציות: לעבור על טבלת הספקים, ההזמנות ושורות ההזמנה קוד בעזרת פונקציות (הגדרות הפונקציות בנספח): SELECT PV.VendorID, Purchasing.fn_SumQty(PV.VendorID) SumQty...
התלבטתי במה להתחיל...והחלטתי להתחיל במספר דוגמאות בהם החלטות ארכיטקטונית/עיצוביות יכולות להשפיע על ביצועים, ולהיפך. 1 . סוג רכיבי המידע איתם אעבוד באפליקציה קיימים סוגים שונים של רכיבי מידע (Xml, Dataset, POCO....) - מה היתרונות/חסרונות בהיבטי ביצועים? XML מתי? · כאשר קיים צורך בצימוד נמוך וה caller צריך לקבל/לדעת רק את ה value וה schema · כאשר קיים צורך לתמוך גם בצרכנים שאינם כתובים ב- dotnet. · כאשר יש צורך בתמיכה built in ל serialization בעיות? · בדרך כלל צורך CPU מכיוון ששליפת נתונים ועדכון מבצעים...
כיצד יכול יועץ ארכיטקטורה חיצוני, מוכשר ומנוסה ככל שיהיה, להיכנס לארגון לא מוכר, ולספק ערך מוסף ללקוח אשר הינו בעל ידע וניסיון רב הרבה יותר ממנו בתחומי הפעילות של הארגון? (וכל זאת בפרק זמן מזערי ככל האפשר, היות ואחרי הכל - time is money, ובעסקי הייעוץ מדובר באמירה מילולית...)...
1. כללי כחלק מאסטרטגית הייעוץ של מיקרוסופט לגופים גדולים המפתחים ומתפעלים מערכות מחשוב קריטיות בפלטפורמת מיקרוסופט, אנו מציעים חבילת שירות בשם ITAP ( IT Architecture & Planning ). החבילה כוללת ליווי ויעוץ ע"י ארכיטקט תוכנה בכיר מקבוצת הייעוץ במיקרוסופט ( MCS - Microsoft Consulting Services ) אשר עובד כארכיטקט האירגוני ומסייע למקבלי ההחלטות הטכנולוגיים בארגון לעצב ולממש פתרונות בפלטפורמת מיקרוסופט. למול זה עומד הארכיטקט הפרויקטלי שממוקד בפרויקט...
למרות הפעילות הענפה בנושא עדיין השאלה הראשונה שנשאלת כאשר המילה "ביצועים" נזרקת לחלל האוויר, היא: "למה הכוונה במונח 'ביצועים' ?". ולעתים קרובות מדי, התגובות לשאלה מהווים ניסיון להגדיר במונחים מאולתרים (במידה זו או אחרת) את כוונת הדובר, ולהפוך את המונח "ביצועים" לדרישה מדידה, אך ללא היכרות עם מגוון ההגדרות והמונחים הקיימים והנפוצים שכלולים תחת הקטגוריה הכללית של "ביצועים". בפוסט הזה אני מתאר את מגוון האפשרויות והמונחים אליהם מתכוונים כאשר מדברים וחושבים על ביצועים (Performance). כמובן שאיני מתכוון להמציא את הגלגל מחדש, אלא להסתמך על הגדרות ותובנות מקובלות ונפוצות. ...
בחודשים האחרונים הזדמן לי להיפגש עם מספר לקוחות אשר החליטו לממש מה שמכונה כיום “בסיס נתונים גנרי” או “טבלאות גנריות”. מדובר בתכנון בסיס הנתונים כך שהטבלאות בו אינן מוגדרות היטב עבור ישויות המערכת, אלא מכילות Meta-Data על הנתונים עצמם. בסיס נתונים כזה יכיל בדרך כלל טבלה בשם Entities או Entities_Types, אשר מכילה את הגדרת הישויות השונות, טבלה בשם Entity_Fields המכילה הגדרות של השדות השונים בכל ישות, וטבלה בשם Entity_Data, המכילה אוסף שדות, בדרך כלל מסוג String, המייצגים את נתוני הישויות עצמן. בנוסף...
בפוסט הזה יוצג sample שמיישם את יכולת ה – Multicasting של WCF 4.0 Routing service. אך לפני שנקפוץ לתוך הקוד, אסביר איך ה - Routing Service משתלב בתמונה הכללית של משפחות patterns רלוונטיים....
לפני כשבוע נערך כנס P&P Summit , שבמהלכו הרצה יוחניו פצ'ה ( Eugenio Pace ), אחד מהמובילים בנושא מחשוב ענן ו - S+S, מספר הרצאות בנושא Azure בפרט, ומחשוב בענן בכלל. במהלך הכנס הבחנתי בחוסר הנוחות (או הסבלנות) שבו מגיבים אנשי פיתוח רבים לשיקולי עלות ותמחור. ספציפית, חוסר עניין בולט בהיבטים הכספיים של פיתוח אפליקציות בענן אשר נתפסים ע"י רבים כנושא לא מעניין, שיווקי, שמקומו אינו בהרצאה שנושאה ארכיטקטורת אפליקציות בענן, לא כל שכן כאשר ההרצאה עוסקת בהיבטים הטכנולוגיים של פיתוח אפליקציות בענן...
אחת היכולות המובנים ב - Dynamics CRM היא מנוע workflow, באח, הפגישות נשאלתי האם ניתן לבנות פתרון load balancing לתהליכי WF במקרה וקיימים יותר מ platform role בודד. אז על מנת לענות על השאלה בוא נבין איך המנוע WF עובד לפחות ברמת על אז מה קורה שמגדירים WF: 1. נוצרת רשומה בטבלת WorkflowBase בבסיס הנתונים ORG_MSCRM 2. הגדרת שלבים שונים ב - WF גורם לעדכון עמודות ברשומה. לאחר הגדרות יש לבצע publish : 1. WF עובר תהליך קומפילציה. 2. DLL נשמר ב- PluginAssemblyBase. 3. Plug in מיוחד נרשם עבור פעולה שתריץ אתה...
במסגרת תהליך ניתוח ואפיון ארכיטקטורת מערכת ללקוח בעל דרישות מורכבות במיוחד, התבקשתי לענות על השאלה הבאה:
"כיצד (או האם) ניתן לחזות מראש את המידה שבה הפתרון נותן מענה לדרישות, ולעשות זאת בשלב מוקדם ככל האפשר ?"
...
פיתחתי רכיב ואני מעוניין לוודא שבזמן ריצה לא השחילו לי איזה סוסון טרויני. אשפרי? אני גם רוצה לוודא שמי שמרים את הרכיב שלי גם הוא מישהו שאני בוטח בו. אפשרי? אפשרי בערבון מוגבל. למה בערבון מוגבל? כי באבטחת מידע אין הבטחה מוחלטת – זה עניין של להעלות את הרף עוד ועוד. תסריט מס’ 1 – הפעלת רכיב בצורה של Early Binding כדי שרכיבים יזהו אחד את השני Net Fx כולל המצאה שנקראית Code Access Security או בקיצור CAS. מדובר על ניהול ואכיפת הרשאות שלא מבוססות משתמש [ל-CAS לא אכפת מי המשתמש] ...
התשובה הטבעית היא כמובן: “ לא ” ב- ל’ רבתי. ארכיטקט חייב לפעול מתוך שיקולים מקצועיים קרים וברורים, לדעת להסביר כל החלטה שלו באמצעות נימוקים רציונליים ולעולם לא לנטות לכיוון ארכיטקטוני מסוים בגלל שכיוון זה מקדם מוצר כזה או אחר, או שירות כלשהו. אז לאחר ששמנו את הנושא הזה מאחורינו, ווידאנו שכולם מבינים את הרעיון, נשאל שוב – האם לעולם לא יקרה שארכיטקט יעבוד כאיש מכירות? למעשה התשובה מסובכת קצת יותר. עבודת הארכיטקט למעשה מחולקת לשני חלקים עיקריים: - בניית הארכיטקטורה - הטמעת הארכיטקטורה לגבי החלק...
לאחרונה היה לי העונג להעביר סדנת ארכיטקטורת תוכנה בת 4 ימים לקבוצה של כ- 10 מנהלים, ארכיטקטים, ראשי צוותים ומפתחים מובילים של גוף פיתוח תוכנה של ארגון מוביל בארץ. תכולת הסדנא הותאמה במיוחד לצרכי הלקוח, על מנת לספק מענה למאפיינים הספציפיים ול – roadmap העסקי והטכנולוגי שלו, אך בבסיסה היא נותרה נאמנה למוטיב המרכזי שהגדרנו בעת הפקתה והכנתה: הקניית ידע ומיומנות בעיצוב ובניתוח ארכיטקטורת תוכנה התחלתי בכך שאמרתי ש"היה לי העונג" להעביר את הסדנא. ואני מעוניין להבהיר שאני אומר זאת בעיקר בזכות המשתתפים...
More Posts
Next page »