XML ، يکي از مهمترين دستاوردهاي بشريت در عرصه نرم افزارطي ساليان اخير است که بدون شک بيشترين تاثير را در ارتباط با طراحي و پياده سازي برنامه هاي کامپيوتري خصوصا" در اينترنت، بدنبال داشته و خواهد داشت . XML ، يکي از استانداردهاي ارائه شده توسط کنسرسيوم وب است که زمينه استفاده از آن براي تمامي توليدکنندگان نرم افزار، فراهم شده است . XML ، بهمراه خود مجموعه اي از تکنولوژي هاي ديگر را ايجاد نموده است، بطوريکه امروزه از آن بعنوان يک خانواده بزرگ ياد مي گردد (XSLT , XSD ,DOM , XPath ,...) . بديهي است توجه به استانداردهاي فوق براي توليدکنندگان نرم افزار بسيار حايز اهميت بوده و در اين راستا ،شرکت هاي عظيم نرم افزاري بدنبال ارائه بستر مناسب براي طراحي و پياده سازي نرم افزار بر اساس واقعيت هاي موجود، خصوصا" پديده شگرف اينترنت مي باشند . ماکروسافت، بعنوان يکي از شرکت هاي عظيم نرم افزاري ،پروژه دات نت را مطرح و در نهايت آن را در اختيار علاقه مندان قرار داده است . XML ، در دات نت داراي نقشي بسيار مهم و محوري بوده و لازم است با جايگاه آن بصورت اصولي آشنا شويم . در اين مقاله، به بررسي جايگاه XML در دات نت پرداخته مي گردد .
مقدمه
XML ، يک تکنولوژي استاندارد ايده آل براي برنامه هائي است که بر روي بستر اينترنت اجراء مي گردند. ماکروسافت در پروژه دات نت ،از استادنداردهاي کنسرسيوم وب پيروي و نسخه هاي اختصاصي خود را طراحي و پياده سازي نموده است. بدين ترتيب (با توجه به تبعيت ماکروسافت از استانداردهاي کنسرسيوم وب)، مي توان اين اطمينان را بدست آورد که نرم افزارهاي توليد شده در دات نت ، قابليت ارتباط با ساير برنامه هاي توليد شده مبتني بر استانداردهاي کنسرسيوم وب را بخوبي دارا مي باشند . در محيط اينترنت، داده ها مي توانند از منابع متفاوت و به اشکال گوناگون دريافت گردند . سرويس هاي وب XML و ساير برنامه هائي که با استفاده از دات نت پياده سازي مي گردند ، مسائل و مشکلات مربوط به انجام عمليات بر روي داده هائي با فرمت هاي متفاوت و از منابع گوناگون ، را برطرف مي نمايد.
سرويس هاي وب XML
ساختار و بدنه دات نت، محيطي مناسب براي ايجاد سرويس هاي وب XML است . کاربران قادر به فراخواني سرويس ها بکمک پروتکل هاي استاندارد شده اي نظير : SOAP ، UDDI و XML مي باشند. سرويس هاي وب XML ، با استفاده از کلاس ها و Namespace هائي که توسط کنسرسيوم وب استاندارد شده اند، ايجاد مي گردند. سرويس هاي وب XML ، روشي مطلوب بمنظور اشتراک ، سازماندهي و انجام عمليات متفاوت در رابطه با داده ها مي باشند .
محيط ( پلات فرم ) دات نت
محيط دات نت، شامل مجموعه اي از محصولات است که بر اساس XML و ساير استانداردهاي اينترنت،ايجاد شده اند .محيط فوق، براي هر يک از جنبه هاي مرتبط با پياده سازي، مديريت ، استفاده ، سرويس هاي وب XML ، امکانات و راهکارهاي مناسبي را ارائه داده است . سرويس هاي وب XML ، اين امکان را به برنامه ها خواهند داد تا قادر به اشتراک اطلاعات از طريق اينترنت صرفنظر از سيستم عامل و زبان برنامه نويسي مربوطه باشند. با استفاده از XML در دات نت ، مي توان اغلب مشکلات مربوط به پياده سازي نرم افزار بر روي اينترنت را که در حال حاضر با آن مواجه هستيم ، برطرف کرد. XML ، يک راه حل جامع براي تشريح و مبادله داده هاي ساختيافته را ارائه مي نمايد .
چالش هاي موجود در زمينه بکارگيري برنامه ها در اينترنت
گسترش فعاليت هاي تجاري بر روي اينترنت باعث حضور شرکت هاي متعدد بهمراه سيستم هاي گوناگون، در کنار يکديگر شده است . با اينکه ايده انجام فعاليت هاي تجاري بر روي اينترنت نسبتا" جديد است ولي اغلب شرکت ها و سازمان ها ، زمان و هزينه زيادي را صرف اين نوع فعاليت ها و تعامل اطلاعاتي مربوطه ، مي نمايند . ارتباط داده ها با سيستم هاي موجود ، يکي از بزرگترين مسائل برنامه نويسان است( خصوصا" در موارديکه داده ها از مراکز و شعب متفاوت يک شرکت دريافت و مي بايست به سيستم هاي اصلي تغذيه گردند ) .
يکپارچگي بين برنامه هاي مختلف
دستيابي به داده ها ي مشترک بين شرکت هاي متعدد ، توسط برنامه هاي متفاوت موجود بر روي سيستم هاي عامل گوناگون ، به يک ضرورت مهم تبديل شده است . بمنظور مبادله اطلاعات بين برنامه هاي متقاضي ، مي بايست در مرحله اول داده ها، ساختيافته بوده تا زمينه استفاده از آنان فراهم گردد.برخي از داده ها در سيستم هاي هاي سلسه مراتبي، شامل سندهاي XML ، برخي ديگر در بانک هاي اطلاعاتي رابطه اي، نظير SQL Server و برخي ديگر، بصورت غيرساختيافته و در فايل هائي تخت (Flat) ذخيره شده اند .
ترجمه بين فرمت هاي داده متفاوت
يکي از بزرگترين مشکلات موجود در بکارگيري فراگير و يکپارچه برنامه هاي کامپيوتري خصوصا" بر روي بستر اينترنت ، استفاده از داده ها با فرمت هاي متفاوت، توسط اين نوع از برنامه ها است . اين مشکلات شامل موارد زير است :
• فرمت هاي متفاوت XML . فايل هاي XML مي توانند از گرامرهاي متفاوتي استفاده نمايند . مثلا" گرامري، صرفا" از المان ها استفاده نموده و در گرامري ديگر ، از المان ها بهمراه خصلت هاي مربوطه استفاده مي گردد . شرکت ها و موسسات تجاري براي غلبه بر اين نوع مشکل تبديل داده ،مي توانند از تمپليت هاي استاندارد شده استفاده نمايند.
• توليد XML از داده هائي با فرمت ديگر . داده ها ي موجود در هر سازمان با فرمت هاي متفاوتي نظير: EDIFACT ,ANSI ,X12 , XML , فايل هاي CSV)Comma Separated value) ، فايل هاي Tab -Separated و موارد ديگر، ذخيره شده اند. در اين راستا ، مي توان ساختاري استاندارد براي داده ها ايجاد تا زمينه استفاده از آنان براي ساير برنامه ها فراهم گردد .
• معتبر سازي ساختار داده ها . يکي از مزاياي مهم استفاده از XML در برنامه ها ، ارائه روشي مطلوب بمنظور اشتراک اطلاعات است . با توجه به دريافت داده ها از منابع متفاوت، مي بايست از روشي بمنظور اطمينان از صحت و اعتبار داده ها استفاده گردد .بدين منظور و جهت غلبه بر مشکل فوق، مي توان از ابزارهاي معتبر سازي نظير Schema که در بين تمام برنامه ها و نوع داده ها استاندارد است، استفاده گردد.
جستجو و بازيابي اطلاعات
پس از دريافت داده ها از منابع متفاوت و با فرمت ها ي گوناگون ، مي بايست قادر به يافتن اقلام اطلاعاتي مورد نياز برنامه هاي با صراحت و بسرعت باشيم . خواسته فوق مي تواند مشکلات خاص خود را بدنبال داشته باشد
• جستجو براي يک آيتم خاص در داده ها : برنامه ها از داده ها ئي با فرمت متفاوت و ساختاري گوناگون استفاده مي نمايند. برخي از داده ها در ساختارهاي سلسله مراتبي، برخي ديگر در ساختارهاي رابطه اي و برخي ديگر داراي ساختاري خاص نبوده و صرفا" بصورت متن ذخيره مي گردند. بدين منظور لازم است از روشي بمنظور حرکت در طول ساختار استفاده تا به نتايج مطلوب بمنظور بازيابي يک آيتم اطلاعاتي بدرستي و بسرعت دست پيدا کرد .
• خلاصه سازي، ترکيب و همبستگي . پس از يافتن اطلاعات مورد نياز، مي خواهيم بر روي آنان عمليات متفاوتي را انجام دهيم . مثلا" ممکن است، قصد تنظيم يک گزارش خاص در رابطه با ميزان فروش ماهانه، وجود داشته باشد. در اين راستا مي توان، داده هاي دريافتي از منابع متفاوت را با يکديگر ترکيب و آنها را با يک فرمت خاص ذخيره و در ادامه پردازش هاي لازم را انجام داد . طراحي دات نت بر اساس استفاده از تکنولوژي محوري XML پايه گذاري شده است . با استفاده از XML ، مي توان عمليات فيلترسازي داده ها را بمنظور کاهش حجم اطلاعاتي انجام و بدين ترتيب صرفا" با داده هائي که به فعاليت مرتبط مي باشند، درگير خواهيم شد .
پردازش ( عمليات ) بر روي داده ها
بمنظور انجام عمليات بر روي داده ها، مي بايست يک ساختار، بافتار(Context) لازم را ارائه نمايد . پس از انجام عمليات بر روي داده ها ، مي بايست از ساختاري بمنظور نمايش نتايج استفاده گردد.در اين رابطه موارد زير مورد توجه خواهد بود :
• تبديل داده از XML به فرمت ديگر .در صورتيکه المان ها و خصلت هاي برنامه اي که با آن کار مي شود متفاوت از ساختار XML مربوط به داده هائي باشد که از آن بعنوان منبع تامين اطلاعات ، استفاده مي گردد، مي بايست از روشي براي تبديل داده از يک گرامر XML به شکل ديگر، استفاده گردد. در صورتيکه با يک برنامه وب کار مي شود، مي بايست داده هاي ساختيافته در اسناد XML به اسناد Html بمنظور نمايش بر روي وب سايت ، تبديل گردند.
• تغيير ساختار يک سند . در برخي موارد لازم است به يک سند XML المان و يا خصلتي ، اضافه و يا حذف گردد . بدين ترتيب در ساختار سند موجود تغييراتي بوجود مي آيد.
استانداردهاي کنسرسيوم وب در دات نت
امکان استفاده از XML در محيط ها و برنامه هاي متعددي وجود دارد . تحقق خواسته فوق، بکمک استانداردهائي است که توسط کنسرسيوم وب ايجاد شده است. XML در دات نت، استانداردهاي ارائه شده توسط کنسرسيوم وب را حمايت تا زمينه ارتباط متقابل بين برنامه هاي استاندارد شده ، فراهم گردد.
استانداردهاي کنسرسيوم وب در دات نت
امکان استفاده از XML در محيط ها و برنامه هاي متعددي وجود دارد . تحقق خواسته فوق، بکمک استانداردهائي است که توسط کنسرسيوم وب ايجاد شده است. XML در دات نت، استانداردهاي ارائه شده توسط کنسرسيوم وب را حمايت تا زمينه ارتباط متقابل بين برنامه هاي استاندارد شده ، فراهم گردد.
• Xml Information set : کنسرسيوم وب مشخصاتي را بعنوان مجموعه اطلاعات مرتبط با XML ، استاندارد و ارائه نموده است .استاندارد فوق، شامل مجموعه اي از تعاريف بمنظور استفاده توسط ساير مشخصاتي است که بنوعي به اطلاعات موجود در يک سند XML مراجعه مي نمايند. يک سند XML ، حاوي تعدادي از مجموعه اطلاعات ارائه شده در استاندارد فوق است . مشخصات فوق ، اطلاعات لازم بمنظورتشريح ساختار يک سند XML را ارائه مي نمايد .يک سند XML شامل يک مجموعه اطلاعات است، اگر " خوش - شکل " بوده و محدوديت هاي تعريف شده در رابطه با Namespace را در مجموعه اطلاعات ومشخصات XML ، تامين نمايد . اغلب استانداردهاي XML کنسرسيوم وب، از تعاريف ارائه شده در مشخصه فوق ، اقتباس ( مشتق ) شده اند.براي اطلاعات تکميلي مي توان به آدرس http://www.w3.org/TR/xml-infoset مراجعه کرد .
• XML 1.0 Namespace . استاندارد فوق ،ضوابط لازم بمنظور ايجاد يک شي داده بصورت يک سند XML ، را تعريف مي نمايد . مشخصات فوق همچنين ،ساختار فيزيکي و منطقي يک سند XML و ساير خصايص مربوطه را تعريف مي نمايد. براي اطلاعات تکميلي مي توان به آدرس http://www.w3.org/Tr/REC-xml مراجعه استفاده کرد.namespace ها درXML يک namespace را تعريف و نحوه استفاده از namespace در زمان ايجاد يک گرامر XML را که شامل المان ها و خصلت هائي است، مشخص مي نمايد . براي اطلاعات تکميلي مي توان به آدرس http://www.w3.org/TR/REC-xml-names مراجعه کرد .
• XML Path Language ( XPath) 1.0 : استاندارد XPath ، گرامر و سمنتيک مورد نياز براي آدرس دهي بخش هاي متفاوت يک سند XML را مشخص مي نمايد. XPath ، همچنين شامل امکانات پايه براي انجام عمليات در رابطه با رشته ها ، اعداد و منطق است . براي مشاهده اطلاعات تکميلي مي توان به آدرس http://www.w3.org/TR/XPath مراجعه کرد .
• XSL Transformation (XSLT) 1.0 : استاندارد XSLT ، گرامر و سمنتيک XSLT را تعريف و زباني براي تبديل اسناد XML به فرمت هاي ديگر است . تبديل مورد نظر( بيان شده ) در XSLT يک Style Sheet ناميده مي شود . براي مشاهده اطلاعات تکميلي مي توان به آدرس http://www.w3.org/TR/XSLT مراجعه کرد .
• Document Object Model )DOM) : استاندارد DOM سطح يک و دو، اينترفيس لازم را بمنظور دستيابي و انجام عملياتي نظير: بهنگام سازي Style ،محتويات و ساختار يک سند از طريق برنامه نويسي ، فراهم مي نمايد . براي مشاهده اطلاعات تکميلي مي توان به آدرس http://www.w3.org/DOM مراجعه کرد .
• XML Schema Definition Language )XSD) : استاندارد XSD ، روشي براي تشريح ساختار ، محتويات و سمنتيک يک سند XML است . Schema امکان استفاده از واژه هاي مشترک را فراهم مي نمايد . براي مشاهده اطلاعات تکميلي مي توان به آدرس http://www.w3.org/XML/Schema مراجعه کرد .
جدول زير نسخه هاي پياده سازي شده هر يک از استانداردهاي فوق را در دات نت نشان مي دهد :
استاندارد کنسرسيوم وب | namespaceمربوطه در دات نت |
XML 1.0 and Namespaces in XML | System.Xml |
XPath | System.Xml System.Xml.XPath |
XSLT | System.Xml.Xsl |
DOM Level 1 | System.Xml |
DOM Level 2 Core | System.Xml |
XML Schemas | System.Xml System.Xml.Schemas |
XML Schema Object Model(SOM) | System.Xml.Schemas |
دات نت با ارائه namespace و کلاس هاي پايه از استانداردهاي ارائه شده توسط کنسرسيوم وب، حمايت مي نمايد . جدول زير نسخه هاي پياده سازي شده
W3C XMLstandard | .NET Framework namespace | .NET Framework class |
XML 1.0 and Namespaces in XML | System.Xml | Not applicable |
XPath | System.Xml System.Xml.XPath | XPath base class |
XSLT | System.Xml.Xsl | XslTransform base class |
DOM Level 1 | System.Xml | XmlDocument class |
DOM Level 2 Core | System.Xml | XmlDocument class |
XML Schemas | System.Xml System.Xml.Schemas | XmlSchema |
XML Schema Object Model(SOM) | System.Xml.Schemas | XmlSchema |
مروري بر کلاس هاي XML در دات نت
کلاس هاي پايه تجريدي در دات نت ، اساس مبادله اطلاعات مي باشند . جدول زير کلاس هاي پايه در فريمورک دات نت را نشان مي دهد :
Abstract base class | کلاس هاي مشتق شده |
XmlReader | XmlTextReader XmlNodeReader XmlValidatingReader |
XmlWriter | XmlTextWriter |
XmlNavigator | XmlPathNavigator |
XmlResolver | XmlUrlResolver |
مقايسه بين MSXML 4.0 و دات نت
ماکروسافت دو روش متفاوت بمنظور کار با XML ، در اختيار برنامه نويسان قرار داده است :
• MSXML، که در ابتدا پارسر XML ناميده مي شد.
• کلاس هاي XML فريمورک دات نت
MSXML 4.0 ، با پارسر MSXML جايگزين شده است . عملکرد MSXML 4.0 در اغلب موارد مشابه کلاس هاي فريمورک دات نت است . تفاوت عمده در نحوه استفاده از عناصر است . در MSXML بمنظور ارائه امکانات از اشياء COM)Componenet Object Model) استفاده شده ( ازManaged code استفاده نمي گردد ) و داراي امکانات از قبل ساخته اي براي SAX)Simple API for XML) است .
MSXML 4.0 ، شامل سرويس هاي زير است :
• DOM
• XSD
• XPath 1.0
• XSLT 1.0
• SAX ( يک مدل برنامه نويسي و مشابه با DOM است )
• Schema Object Model)SOM) ، شامل امکانات API اضافه ، بمنظور دستيابي به سندهاي XML Schema از طريق برنامه نويسي است .
کلاس هاي XML فريمورک دات نت ، عمليات مشابهي را نظير MSXML 4.0 انجام مي دهند. طراحي کلاس هاي فوق بگونه اي است که امکان استفاده از آنان در يک محيط مديريت يافته، خصوصا" سرويس هاي وب XML ،وجود دارد .
جدول زير ويژگي هر يک را نشان مي دهد :
استاندارد کنسرسيوم وب | MSXML ( محيط مبتني بر COM) | کلاس هاي XMLفريمورک دات نت ( محيط مديريت يافته دات نت ) |
XML 1.0 and Namespaces in XML | yes | yes |
XPath | yes | yes |
XSLT | yes | yes |
DOM Level 1 | yes | yes |
DOM Level 2 Core | no | yes |
XML Schemas | yes | yes |
XML Schema Object Model(SOM) | yes (فقط خواندني) | yes |
Simple API for Xml (SAX) | yes | no |
XML و امنيت در دات نت
XML ،مهمترين امکان ذخيره سازي داده ها و انتقال اطلاعات د ر فريمورک دات نت محسوب مي گردد. بنابراين تمام ملاحظات امنيتي در فريمورک دات نت، به رويکردهاي امنيتي XML مربوط مي گردد . دستيابي به سرويس هاي وب XML مي تواند محدود به سرويس گيرندگان تائيد شده و مجاز باشد( مشابه دستيابي کاربران مجاز به يک وب سايت ) .
مدل مبتني بر شي XML براي رمزنگاري اشياء
کلاس SecurityElement ، مدل XML لازم بمنظور رمزکردن اشياء را ارائه مي نمايد. کلاس فوق ، بمنظور استفاده همراه يک سيستم ايمني در نظرگرفته شده است و امکان استفاده از آن بعنوان يک کلاس شي XML عمومي وجود نخواهد داشت .
XML signature . کنسرسيوم وب در حال پياده سازي مشخصه اي براي امضاء ديجيتالي مبتني بر XML است . System.Security.Cryphtography.xml ،مدلي مبتني بر XML براي استفاده از سيستم امنيتي فريمورک دات نت بوده که از امضاهاي XML حمايت مي نمايد. مدل فوق اين امکان را به اشياء XML خواهد داد که از طريق يک امضاء ديجيتالي تاييد گردند . رمزنگاري باعث حفاظت اطلاعات در مقابل نمايش و يا تغييرات شده وبدين ترتيب يک کانال ايمن ارتباطي ايجاد خواهد شد .
رمزنگاري سرويس هاي وب XML بمنظور انتقال . برنامه هاي مبتني بر دات نت از پروتکل SOAP ، بمنظور ارتباط با سرويس هاي وب XML استفاده مي نمايند( فرمت اوليه پيام ها ) . کتابخانه کلاس فريمورک دات نت ، ضمائم SOAP را بمنظور اجراء ، همراه با يک متد سرويس وب XML ، ارائه مي نمايد . namespace ، شامل کلاس هائي است که پروتکل هاي مورد نياز براي انتقال داده ها را فراهم مي نمايد . ارسال مدارک تائيد شده .در موارديکه يک سند XML ايمن شده باشد ،بدون ارسال مدارک لازم، امکان دستيابي و استفاده از آن وجود نخواهد داشت. کلاس XmlTextReader ،امکان ارسال مدارک را از طريق استفاده از کلاس CredentialCache موجود در System.Net فراهم مي نمايد .