در اين مقاله به بررسي پتانسيل هاي ADO.NET که در ارتباط با XML و سرويس هاي وب XML مي باشند ، پرداخته مي گردد .
مقدمه
XML در دات نت يکي از مهمترين عناصر محسوب و داراي نقشي کليدي است ( قلب دات نت ) . ASP.NET و سرويس هاي وب از XML بعنوان روشي ذاتي براي دستيابي به داده ها استفاده مي نمايند . سرويس هاي وب از پروتکل SOAP که خود مبتني بر XML روي HTTP است ، استفاده مي نمايند . پيکربندي و تنظيمات دات نت با فرمت XML ذخيره مي گردند . ADO.NET از طريق چندين سطح متفاوت با XML مرتبط مي گردد که اين پيوستگي و ارتباط داراي يک مزيت بزرگ خواهد : ارتباط بين داده هاي رابطه اي و سلسله مراتبي . بنابراين ، مي توان XML را نظير چسبي در نطر گرفت که تمام اجزاي دات نت را بيکديگر متصل مي نمايد. برنامه ها و عناصري که با استفاده از دات نت ايجاد مي گردند ، قادر به برقراري ارتباط بکمکXML مي باشند . بمنظور کار با XML در دات نت، بيش از دويست کلاس ايجاد شده که در Namespace با نام System.Xml مستقر مي باشند . XML با ADO.NET بطور واقعي مرتبط و از اين طريق پلي بين داده هاي رابطه اي و سلسله مراتبي ايجاد مي گردد .
ADO.NET و XML
ADO.NET ، بصورت کامل با XML مرتبط است . مدل اشياء ADO.NET ، بگونه اي طراحي شده است که XML را بعنوان هسته اساسي خود ، نه بعنوان يک چيز اضافه نظير ADO 2.x ، پذيرفته است . تکنولوژي ADO.NET ، اين امکان را فراهم مي نمايد که داده هاي رابطه اي سنتي را بسادگي به فرمت XML تبديل کرد.در اين راستا ، همچنين امکان تبديل داده ها از XML ، به مجموعه اي از جداول و رابطه ها نيز وجود دارد. XML ، يکي از روش هاي قابل حمل و قدرتمند براي ارائه داده در محيط ها ي ( پلات فرم ) مستقل و باز است. يکي از خصايص مهم داده هاي XML ، ماهيت مبتني بر متن آنان است . بدين ترتيب داده هاي XML ، بسادگي بين برنامه ها و سرويس ها ارسال خواهند شد.( در ADO Recordset داده ها بصورت باينري ارسال مي گردند) . بمنظور پردازش داده هاي مبتني بر XML ، مي بايست برنامه مورد نظرنوشته گردد . داده هاي XML ، ممکن است از طريق يک منبع خارجي ( يک بنگاه تجاري خاص ) ، يک سرويس وب XML ، پست الکترونيکي (Email) ، سرويس دهنده Microsoft Biztalk و يا منابع ديگر ، توزيع شوند.
مدل اشياء ADO.NET ، امکانات حمايتي متعددي را در رابطه با XML ارائه مي نمايد. قوانين و توصيه هاي زير در زمان استفاده از XML بهمراه ADO.NET ، پيشنهاد مي گردد :
• امکان خواندن داده ازيک DataSet با فرمت XML ، وجود خواهد داشت. روش فوق، زماني مفيد خواهد بود که بخواهيم داده هائي را بين برنامه ها و يا سرويس ها در يک محيط توزيع شده ارسال نمائيم .
• امکان پرنمودن (Fill) يک DataSet با داده ها ي XML وجود خواهد داشت. روش فوق، زماني مفيد خواهد بود که داده هاي XML را از طريق برنامه و يا سرويس ديگر دريافت و بخواهيم يک بانک اطلاعاتي را با استفاده از آنان ، بهنگام نمائيم .
• مي توان يک XML Scehma را بمنظور ارائه داده ها در يک DataSet ايجاد نمود. از XML Schema ، بمنظور انجام عملياتي نظير سريال سازي داده هاي XML به يک Stream و يا يک فايل استفاده مي گردد.
• مي توان داده هاي XML را از طريق يک فايل و يا يک Stream ، درون يک درخت DOM)Document Object Model) لود و در ادامه ،امکان انجام عمليات بر روي داده ها بصورت XML و يا يک DataSet ، وجود خواهد داشت .بدين منظور لازم است از يک XML Schema ، براي تشريح ساختار داده ها جهت DataSet استفاده کرد .
• امکان ايجاد Typed Dataset وجود خواهد داشت . Typed DataSet ، يک زير کلاس از DataSet بوده که بهمراه آن خصلت ها و متدهائي بمنظور بکارگيري ساختار DataSet اضافه شده است .
مثال
در اين مثال نحوه استفاده از XML در مدل غير متصل ADO.NET تشريح مي گردد . در مثال فوق ، از XML بمنظور ارسال داده بين بخش هاي متفاوت سيستم استفاده مي شود :
• مرحله يک : برنامه سرويس گيرنده ، يک سرويس وب XML را بمنظور درخواست داده از بانک اطلاعاتي فرا مي خواند .
• مرحله دو : سرويس وب XML ، يک Query به يک منبع داده را انجام تا داده هاي مورد نظر را بدست آورد .
• مرحله سه : سرويس وب XML ، نتايج را در يک DataSet لود مي نمايد.
• مرحله چهار : سرويس وب XML ، داده ها را به فرمت XML ترجمه و داده هاي XML را براي برنامه سرويس گيرنده برمي گرداند .
• مرحله پنج : برنامه سرويس گيرنده ، پردازش هاي لازم در رابطه با داده هاي XML را انجام مي دهد. مثلا" سرويس گيرنده مي تواند داده XML را در يک DataSet لود و آنها را به کنترل هاي رابط کاربر نظير يک DataGrid نسبت دهد. پس از آمادگي برنامه سرويس گيرنده ، يک سرويس وب XML ، بمنظور بهنگام سازي منبع داده با داده هاي تغيير يافته فعال و فرا خوانده مي گردد.
• مرحله شش : سرويس وب XML ، داده هاي XML جديد را درون يک DataSet لود و از داده هاي جديد ، بمنظور بهنگام سازي منبع داده استفاده مي نمايد.