20-06-2005, 19:30
|
|
|
חבר מתאריך: 26.10.01
הודעות: 3,930
|
|
ODBC/JDBC ושאר מיני קונקטורים למסדי נתונים
היי
במספר אשכולות ראיתי המלצות להשתמש בCONNECTORים ספציפיים למוצר עבור אפליקציות (למשל לשלב CONNECTOR של MySQL הכתוב בC בתוך תוכנית C) מה שנראה לכאורהדבר הגיוני ופשוט לעשות...
הינה אחד האשכולות:
http://www.fresh.co.il/vBulletin/showthread.php?t=67808
PROS:
* כבר יש ספריה מוכנה שצריך לעשות לה INCLUDE, לקרוא איזה מסמך שאומר איך לעבוד מולה, ויאלה להתחיל לקודד ברעל!
* הביצועים מובטחים להיות הטובים ביותר כי הספריה מותאמת בול למוצר, פרוטוקול התקשורת מותאם לשרת היעד והפלטפורמה.
CONS:
* הספריה בדרך כלל קוד חופשי מסורבל ומבולגן שסבירותלמצוא בו באגים די גבוהה...
* הביצועים אמנם טובים יתר מODBC אבל בסופו של דבר רובהעבודה היא ביצוע SQL דינאמי שנשלח לשרת ומבוצעבו (כ 20% מאפליקציה OLTP) ומהחזרת שורות משליפות (כ80% מאפליקציה כלשהי), ההבדלים בין החזרתשורה מהממשק והחזרתשורה מהCONNECTOR הייעודי זניחים ברוב הפעמים...
* ומה אם במקרה התחלתם לפתח מול ACCESS (ולא זה לא רע) ואז אתםצריכיםלעבור למשהו גדול יותר (נגיד MySQL) סבבה, נשכתבחצי קוד (כי גם ככה רוב הלוגיקה אמורה לשבת בSQLים או בשכבה גבוהה יותר), טוב נו נשכתב חצי קוד...
* מה עם מתחלף לנו השרת? כתובת הIP? הPORT עליו עובד בסיס הנתונים? או מה שנפוץ מאד סיסמת המשתמש (הבדרך כלל גנרי) לבסיס הנתונים פגה או יותרגרוע נחשפה/ הוחלפה?
טוב נו שוב נכנס לתוכנית, נשכתב קצת מחרוזות, נקמפל, ונמשיך... מי שרוצה להתחכם יוצר כניסתREGISTRY או קובץ INI השומר את ההגדרות (וכמה שזהלא מאובטח מיותר לדבר...)
לסיכום ההמלצות שלי (אחרי פיתוח מול מספר בסיסי נתונים שונים) והסיוט של העברת אפליקציה פועלת... כן ODBC, ועוד יותר , כן להגדיר DSN...
* באפליקציה כל מה שיש זו פניה לDSN
* לא אכפת לה מה יושב מתחת או איפה זה יושב...
* כדי לשנות את הDSN לא צריך לקמפל מחדש!
* ניתן לשנות אתהDSN בהדרגתיות (להעלותך את האפליקציה במחשב אחר,לעשות את כל הבדיקות וההסבות, לשנות את הDSN בשרת המבצעי)...
* אין צורך לקודד זיהוי, ניתן להזדהות כבר בהגדרת הDSN (אם משתמשים ביוזר גנרי כמובן), עוד יותר מערכת ההפעלה היא זו שתשבור את הראש איך ואיפה לאחסן אתמידע ההתחברות (וזה עדיף מלכתוב איזה הצפנה מגוחכת לבד).
|