1 / 57

چارچوب کاری مبتنی بر XML-XSLT

چارچوب کاری مبتنی بر XML-XSLT. دانشجو: علی رهبری. مقدمه. مسئله : ایجاد چارچوب کاری مبتنی بر XML اهداف : حذف قسمت های تکراری در برنامه نویسی و تسریع در توسعه برنامه ها، ارائه راه حلی لایه ایی و مولفه گرا رهیافت : خرد کردن مسئله و پیدا کردن راه حل ها ارائه شده برای هر زیر مسئله و ترکیب آنها.

jewell
Download Presentation

چارچوب کاری مبتنی بر XML-XSLT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. چارچوب کاری مبتنی بر XML-XSLT دانشجو: علی رهبری

  2. مقدمه • مسئله: ایجاد چارچوب کاری مبتنی بر XML • اهداف: حذف قسمت های تکراری در برنامه نویسی و تسریع در توسعه برنامه ها، ارائه راه حلی لایه ایی و مولفه گرا • رهیافت: خرد کردن مسئله و پیدا کردن راه حل ها ارائه شده برای هر زیر مسئله و ترکیب آنها

  3. نمای کلی

  4. چارچوب کاری • یک چارچوب کاری یک فرضیه پر جزییات نیست، بلکه یک نقطه نظر برای نزدیک شدن به یک مسئله علمی است. [1] • چارچوب کاری معانی مختلفی با توجه به متنی که در آن استفاده شده است دارد. عموما یک چارچوب کاری یک چارچوب که چیزی بر روی آن ساخته می شوداست. [2] • چارچوب کاری یک طراحی و پیاده سازی قابل استفاده مجدد از یک سیستم یا زیر سیستم است. [3]

  5. چارچوب کاری در مهندسی نرم افزار • مجموعه ایی از کلاس ها که یک طراحی انتزاعی را به عنوان راه حل برای خانواده ایی از مشکلات مرتبط در بر می گیرند و از استفاده مجدد در مقیاس بالاتری از کلاس ها پشتیبانی می کنند. [4] • یک برنامه نیمه کامل قابل استفاده مجددکه به منظور ساخت یک برنامه اختصاصی شود. [3]

  6. اجزای چارچوب کاری [3] • هسته چارچوب کاری – عموما از کلاس های انتزاعی که ساختار و رفتار چارچوب کاری را تعیین می کنند تشکیل می شود. • کتابخانه چارچوب کاری – افزونه های برای هسته چارچوب کاری که از اجزای واقعی که می توانند با تغییرات کمی مورد استفاده قرار گیرند تشکیل می شوند.

  7. طبقه بندی چارچوب کاری: • فعل و انفعال [3-5] : چارچوب کاری فراخوانی شونده و چارچوب کاری فراخواننده • شخصی سازی [3-4] :White Box و Black Box • حوزه [3-6]: کاربردی و دامنه و پشتیبانی

  8. HTML • مخفف عبارت Hyper Text Markup Language • به عنوان یک Hyper Text Language امکان پیوند دهی غیر ترتیبی بین اسناد وب را فراهم میکند. [10] • به عنوان یک Markup Language زبان کدها است که امکان مشخص کردن فرمت نمایشی اسناد را فراهم می کند. [10]

  9. HTMLکاستی های • HTML از مجموعه ایی از تگ های از پیش تعریف شده که هدف اکثر آنها بیان کردن ظاهر نمایش اطلاعات است تشکیل شده است. [11, 12] • HTMLمفهوم معنایی برای داده های به کار برده شده فراهم نمی کند. [11] • HTML از داده با سازماندهی پیچیده و همچنین اشیا با سلسله مراتب پشتیبانی نمی کند. [11]

  10. XML • مخفف عبارت Extensible Markup Language • XML به خاطر کاستی های HTML و پیچیدگی بیش از حد SGML در سال 1996 توسط W3 ایجاد شد. [12] • XML یک ابر زبان است. [11] • XML مجموعه قوانینی برای ساخت نوع های جدید اسناد است و می تواند برای ساخت زبان های جدید Markup برای برنامه های خاص مورد استفاده قرار گیرد. [11]

  11. رفع کاستی های HTML توسط XML • XML قابل توسعه است و به کاربر اجازه می دهد تگ های جدید و مطابق نیاز خود تعریف کند. [11] • مثال: کاربر می تواند تگ هایی برای توصیف کتاب های موجود در کتابخانه و اطلاعات مربوط به آنها ایجاد کند: <book><name></name> <author></author> </book>

  12. رفع کاستی های HTML توسط XML • با تگ های جدید امکان فراهم کردن مفهوم معنایی برای داده ها ایجاد می شود. [11] • مثال: برای مقایسه، در HTML توصیف یک کتاب به صورت زیر می تواند صورت بگیرد که مفهومی برای داده ها ایجاد نمی کند: <ul><li>name=…</li> <li>author=…</li> </ul>

  13. رفع کاستی های HTML توسط XML • XML از داده با ساختارهای پیچیده مانند آنهایی که در برنامه های شی گرا یافت می شوند پشتیبانی می کند. [11] • مثال از ساختار منوها در زبان های برنامه نویسی: <menu> <menu label=“file”> <menu label=“new” command=“” /> <menu label=“export”> <menu label=“pdf” command=“” /> <menu label=“pdf” command=“” /> </menu> </menu> <menu label=“edit” command=“” /> </menu>

  14. Case study: فروشگاه الکترونیک کتاب • اطلاعات مربوط به کتاب ها در پایگاه داده رابطه ایی:

  15. Case study: فروشگاه الکترونیک کتاب • نمایش اطلاعات در HTML: <table><thead><tr> <th>id</th> <th>Name</th> <th>Author</th> <th>Publisher</th> <th>Year</th> </tr></thead><tbody><tr> <td>1</td> <td>Software Engineering: A Practitioner's Approach 6th edition </td> <td> Roger S. Pressman</td> <td>McGraw-Hill</td> <td>2004</td> </tr></tbody></table>

  16. Case study: فروشگاه الکترونیک کتاب • نمایش اطلاعات در XML: <book> <id>1</id> <name>Software Engineering: A Practitioner's Approach 6th edition </name> <author> Roger S. Pressman</author> <publisher>McGraw-Hill</publisher> <year>2004</year> </book>

  17. زمینه های کار شده XML: [13-12] XSD • XML Shema، یک زبان XML برای توصیف اسناد XML معرفی شده توسط کنسرسیوم W3 در سال 2001 • XSD از دو بخش ساختار و انواع داده ایی تشکیل می شود. • خصوصیات: • خود مبتنی بر XML است. • از فضاهای نام پشتیبانی و خود از آنها استفاده می کند. • پیمانه ایی است. (شامل شدن و توصیف دوباره) • امکان استفاده از عبارات منظم

  18. زمینه های کار شده XML: [18-13] Xpath • یک زبان اعلانی به منظور تعیین مکان گره ها در اسناد XML • استفاده در: XPointer (برای آدرس دهی)، XSLT (برای تطابق الگو)، شمای XML (برای یگانگی و بیان حوزه) و در XQuery (برای انتخاب و تکرار)

  19. زمینه های کار شده XML: [13] XSL • مخفف عبارت: eXtensibleStylesheetLanguage • متشکل از: • XSL Transformations (XSLT)– یک زبان XML برای تعیین یک تبدیل از یک کلاس اسناد XML به یک کلاس دیگر • XSL Formatting Object (XSL-FO)– یک زبان XML برای تعیین فرمت در سطح پایین تری از جزییات نسبت به HTML و CSS

  20. زمینه های کار شده XML: پردازشگر [13] XSLT • پردازشگر XSLT برنامه ایی است که یک سند XSLT و یک سند XML دریافت کرده و با اعمال قوانین سند XSLT بر سند XML یک سند XML جدید ایجاد می کند.

  21. زمینه های کار شده XML: [13] XQuery • یک زبان پرس و جو مانند SQL برای اسناد XML است که توسط کنسرسیوم W3 ایجاد شده است. • از چند پیشنهاد پیشین مانند XML-QL، YALT، Lorel و Quilt مشتق شده است. • XQuery خود XML نیست، نسخه XML آن XQueryX نامیده می شود.

  22. زمینه های کار شده XML: [14] UIML • مخفف عبارت: User Interface Markup Language • یک زبان توصیف واسط کاربری مجزا از ابزار • UIML توسط Style sheet ها طراح واسط را از تقاوت های ابزارها جدا نگاه می دارد.

  23. زمینه های کار شده XML: [15] O:XML • یک زبان همه منظوره شی گرا مبتنی بر XML • دارای نخ های پردازشی (Threads)، اداره استثنا ها (Exception Handling)، عبارات منظم، فضاهای نام و موارد دیگری که در زبان های مدرن یافت می شوند. • خروجی یک برنامه O:XML یک سند XML است.

  24. زمینه های کار شده XML: [22] Web Service • یک سیستم نرم افزاری که به منظور تبادلات متقابل بین دو ماشین در شبکه طراحی شده است. • سرویس های وب معمولا Web API هایی هستند که از طریق اینترنت قابل دسترسی می باشند. • وب سرویس ها معمولا برای تبادل پیام از فرمتی مبتنی بر XML استفاده می کنند.

  25. الگوی MVC[23] • در الگوی MVCبرنامه به سه لایه مدل، کنترلر و نمایش تقسیم می شود: • مدل: دسترسی به داده ها و همچنین منطق تجاری برنامه را در بر می گیرد. • نمایش: اطلاعات موجود در مدل را به کاربر نمایش می دهد. • کنترلر: کنترلر کل ساختار را به هم و به کاربر متصل می کند.

  26. چرا MVC؟ [23] • MVC به ما اجازه می دهد چارچوب کاری را به سه قسمت تقسیم کنیم. • در هر قسمت می توان زبان مناسب مبتنی بر XML ایی برای توصیف مسئله انتخاب یا ایجاد نمود. • MVC مانع از پیچیدگی برنامه ایی که قرار است از چارچوب کاری ما استفاده کند می شود.

  27. مدل: لایه مدل[23] • این لایه وظایف زیر را انجام می دهد: • اشیای مورد نیاز کنترلر را با فرمت تقاضا شده برای هرخصوصیت فراهم میکند. • اشیای ارسال شده از کنترلر را پس از اعتبار سنجی ذخیره می کند. • در چارچوب کاری ما فایل های XML خصوصیات اشیا (مدل آنها) را تعیین می کنند. • زبان های مبتنی بر XML مختلفی برای توصیف مدل ها ایجاد شده اند مانند: • XMI – Propel- Turbine

  28. مدل:[24] XMI(XML Metadata Interchange) • فرمتی به منظور تبادل ابر داده توسط XML • فرمتی برای ذخیره سازی اطلاعات UML مانند کلاس ها، اشیا و ... به صورت XML • ابزارهای UMLامکان ذخیره کردن اطلاعات در قالب XMI را فراهم ساخته اند.

  29. مدل: Propel • مبتنی بر XML • امکان می دهد روابط بین اشیا مشخص شوند. • امکان تعیین قیود و اعتبار سنجی بر روی خصوصیات اشیا فراهم می کند. • فرمت آن مشابه ساختار پایگاه داده است و ساده و قابل فهم است. • پیچیدگی آن زیاد نیست و تمام نیازهای ما را برآورده می کند.

  30. مدل: راه حل های مختلف برای لایه مدل

  31. نمایش: لایه نمایش[26] • این لایه دو کار اساسی انجام می دهد: • اطلاعاتی که توسط کنترلر از لایه مدل بدست آمده تبدیل به فرمت قابل نمایشی برای کاربر می شوند. • دستورات و ورودی های کاربر را گرفته و به لایه کنترلر می دهد. • این لایه در واقع قالب برنامه است.

  32. نمایش: XML به منظور توصیف واسط کاربری • تلاش های بسیاری به منظور استفاده از XML برای توصیف واسط کاربری صورت گرفته است: • XAML : زبان توصیف واسط کاربری مایکروسافت در ویندوز ویستا • XUL : زبان توصیف واسط کاربری موزیلا برای مرورگر فایرفاکس • UIML : زبان توصیف واسط کاربری مجزا از ابزار • HTML در واقع یک زبان مبتنی بر XML برای ایجاد واسط کاربری در صفحات وب است.

  33. نمایش:[28] XAML(Extensible Application Markup Language) • زبان برنامه نویس اعلانی مبتنی بر XML • توسعه یافته توسط مایکروسافت به منظور استفاده در ویستا • توسعه دهندگان را قادر می سازد: • سلسه مراتبی از اشیا با مجموعه ایی از خصوصیات و منطق را مشخص کنند. • بدون کد واسط کاربری را ایجاد کند.

  34. نمایش: HTML + XSLT • HTML یک استاندارد فراگیر است و موتورهای مختلفی برای پردازش و Render آن ایجاد دشده اند. • هم اکنون توسط پلتفرم های مانند Adobe AIR امکان استفاده از HTML در برنامه های Desktopنیز فراهم شده است. • HTML همراه با JavaScriptامکان ارائه برنامه های قدرتمندی مانند Gmail و ... را فراهم کرده است. • هم اکنون اجزای آماده بسیاری برای HTML توسط شرکت های مختلف فراهم شده است.

  35. نمایش: HTML + XSLT • XSLT می تواند به عنوان ابزاری برای تبدیل یک سند XML به HTML مورد استفاده قرار گیرد. • XSLT بسیار قدرتمند است و همه نیازها به عنوان یک موتور قالب در آن گنجانده شده اند. • پردازشگر XSLT در اکثر زبان ها و مرورگرها پیاده سازی شده استو امکان استفاده از آن در سمت سرور و سرویس گیرنده فراهم است.

  36. نمایش: راه حل های مختلف برای لایه نمایش

  37. کنترلر: لایه کنترلر[26] • لایه کنترلر وظایف زیر را انجام می دهد: • ارتباط بین مدل و نمایش را برقرار می کند. • اطلاعاتی لازم را از مدل جمع آوری و به لایه نمایش ارسال می کند. • می گوید که چه دستوراتی بر اطلاعات دریافتی از کاربر اعمال شوند. • این لایه در واقع مانند یک زبان برنامه نویسی است.

  38. کنترلر: O:XMLیک زبان برنامه نویسی مبتنی بر XML[30] • یک زبان همه منظوره شی گرا مبتنی بر XML • دارای نخ های پردازشی (Threads)، اداره استثنا ها (Exception Handling)، عبارات منظم، فضاهای نام و موارد دیگری که در زبان های مدرن یافت می شوند. • خروجی یک برنامه O:XML یک سند XML است.

  39. کنترلر: خصوصیات O:XML • تعریف توابع و انواع به صورت کاملا XML • بررسی انواع به صورت پویا • چند ریختی و بارگیری مجدد توابع • ارث بری چند گانه • زبان عبارات قابل توسعه و پشتیبانی از عبارات منظم • استثناها و نخ های پردازشی

  40. کنترلر: معایب O:XML • امکان برقراری ارتباط با اشیای موجود در لایه های دیگر برنامه مانند رابط کاربری یا داده فراهم نیست. • امکان تعریف کنترل های تو در تو فراهم نشده است. • از کلیه قابلیت های XML مانند ارث بری تگ ها استفاده نشده است.

  41. کنترلر: خروجی زبان O:XML • خروجی یک برنامه O:XML یک سند XML است. • این خصوصیت، حفره موجود در فراهم کردن منطق تجاری در زنجیره داده به نمایش که مبنای اکثر سرویس های وب امروزی است را پر می کند. • با توجه به محبوبیت XML در تبادل اطلاعات این مورد استفاده از O:XML به جای زبان های عمومی را توجیه می کند.

  42. کنترلر: موارد استفاده از O:XML • این خصوصیات O:XML آن را به زبانی مناسب برای کاربردهای زیر تبدیل می کند: • ایجاد سرویس های وب • انتشار XML • توسعه برنامه های وب • ایجاد میان افزار های XML • برنامه نویسی سمت سرور • پیاده سازی زیربنای XML

  43. کنترلر: برنامه نویسی لایه ایی • برنامه نویسی لایه ایی یعنی اضافه کردن اطلاعات مفید مانند کامنت ها و تنظیمات به کد به گونه ایی که نه با کد و نه با دیگر لایه ها تداخل کنند. • در اکثر زبان ها فقط دو لایه کد و کامنت داریم و برنامه نویس ناگزیر است دیگر لایه ها را به صورت کامنت جای دهد. • فضاهای نام XML این امکان را برای O:XML فراهم می کنند که چندین لایه داشته باشیم.

  44. کنترلر: مثالی از برنامه نویسی لایه ایی در O:XML <o:function name="foo"> <doc:p>The foo() function does very little.</doc:p> <o:do>…</o:do> <ut:test> ...test definition... </ut:test> </o:function> • فضای نام o مربوط به دستورات o:xml است. • فضای نام docمربوط به کامنت ها است. • فضای نام utمربوط به تست واحدها است. • فضای نام db مربوط به پایگاه داده است.

  45. کنترلر: جریان کارها در O:XML

  46. ترکیب راه حل ها • لایه مدل: Propel – مجموعه ایی از فایل های XML در پوشه Model قرار می گیرند و انواع شی های داده ایی را مشخص می کنند. • لایه نمایش: XSLT – مجموعه ایی از فایل های XSLT که در پوشه View قرار می گیرند و قالب های نمایشی مختلف را برای اطلاعات مدل ها فراهم میکنند. • لایه کنترلر: O:XML – مجموعه ایی از فایل های XML که در پوشه Controller قرار می گیرند و مدل های به کار رفته در این کنترلر و همچنین نمایش آن را انتخاب می کنند.

  47. روند اجرا • کنترلر منتظر دریافت دستور کاربر می ماند. • پس از دریافت دستور، کنترلر، کنترل مورد نظر را فراخوانی و اجرا می کند. • کنترلر مدل های لازم را با اطلاعات کاربر فراخوانی میکند و نتیجه را میگیرد. • کنترلر نتیجه را به لایه نمایش ارسال می دارد و لایه نمایش، نمایش مورد نظر را فراخوانی و داده ها را قالب بندی می کند. • کنترلر خروجی ایجاد شده را از لایه نمایش دریافت می کند و به کاربر تحویل می دهد. • کنترلر به وضعیت 1 باز می گردد.

  48. مثال: مدل <?xml version="1.0" encoding="utf-8"?> <table name="book" description="Book Table"> <column name="id" type="int" primaryKey="true" autoIncrement="true" required="true"/> <column name="title" type="varchar" size="255" required="true" description="Book Title"/> <column name="isbn" type="varchar" size="24" required="true" /> <column name="publisher" type="int" required="true" description="Foreign Key for Publisher"/> <column name="author" type="int" required="true" description="Foreign Key for Author"/> <foreign-key foreignTable="publisher"> <reference local="publisher" foreign="id"/> </foreign-key> <foreign-key foreignTable="author"> <reference local="author" foreign="id"/> </foreign-key> </table>

  49. مثال: نمایش

More Related