دانلود مقاله Web-ICONIX: روشي جديد براي مدل سازي برنامه هاي كاربردي وب بوسيله UML با فرمت ورد و در 52 صفحه قابل ویرایش
1- مقدمه.............................................. 4
2- برنامه های کاربردی وب............................... 5
2-1- تعريف برنامه های کاربردی وب....................... 5
2-2- ويژگيها........................................... 5
2-3- تفاوت برنامه های کاربردی وب و سايت وب.............. 6
2-4- معماری برنامه های کاربردی وب...................... 6
2-5- اجزای برنامه های کاربردی وب....................... 7
2-6- پروتکل ارتباطی وب (HTTP).......................... 7
2-7- ساختار دهی به داده های وب با XML.................. 10
2-8- ارتباطات توزيع شده در وب......................... 12
2-8-1-RMI (Remote Method Invocation)....................... 12
2-8-2- CORBA (Common Object Request Broker Architecture Protocol). 14
2-8-3- SOAP (Simple Object Access)......................... 14
2-8-4- مقايسه روشهاي توزيع اشياء روي وب................ 16
2-9- ارتباط بين برنامه های کاربردی وب.................. 16
2-9-1- WSDL (Web Services Description Language).............. 16
2-9-2- UDDI (Universal Description , Discovery and Integration)..... 17
2-9-3- مقايسه و ارزيابي............................... 27
3- مرور برخی از پژوهش های پيشين................................................................. 19
3-1- HDM (Hypermedia Design Model)........................ 19
3-2- RMM (Relationship Management Methodology).............. 19
3-3- OOHDM (Object Oriented Hypermedia Design Model).......... 20
3-4- مقايسه و ارزيابي................................. 21
4- معرفی مدل فرآيند جديد Web-ICONIX................................................... 21
4-1- فرآيند RUP....................................... 21
4-1-1- فاز آغاز....................................... 22
4-1-2- فاز جزييات..................................... 23
4-1-3- فاز ساخت....................................... 24
4-1-4- فاز انتقال..................................... 25
4-1-5- تحليل و ارزيابي................................ 25
4-2- ملحقات وبUML..................................... 26
4-2-1- تعريف UML...................................... 26
4-2-2- انواع دياگرام های UML.......................... 27
4-2-3- استفاده از UML برای مدل سازی برنامه های کاربردی وب27
4-2-4- ملحقات وب کنالن................................ 29
4-3- معرفی روش ICONIX.................................. 30
4-3-1- نقشه کلی ICONIX................................. 30
4-4- گام های Web- ICONIX............................... 31
4-4-1- فاز آغاز....................................... 31
4-4-2- فاز جزييات..................................... 32
4-4-3- فاز ساخت....................................... 33
4-4-4- فاز انتقال..................................... 34
5- ساخت يک نمونه برنامه کاربردی وب با روش جديد.............................................. 35
5-1- فاز آغاز......................................... 35
5-2- فاز جزييات....................................... 39
5-3- فاز ساخت......................................... 42
5-4- فاز انتقال....................................... 47
6- ارزيابی........................................... 47
منابع................................................ 49
در چند سال اخير اصطلاح جديدي به فرهنگ لغات تكنولوژي اطلاعات اضافه شده: برنامه كاربردي وب. بسياري از سيستمهاي نرمافزاري تجاري به دليل الزامات تازه يا براي بهره گيري از فرصت هاي جديد، در حال تبديل كامل يا بخشي به برنامه هاي كاربردي وب هستند، از جمله در زمينه تجارت الكترونيك، كتابخانه هاي ديجيتالي، آموزش از راه دور، ادارات مجازي و...[7]. رشد نمايي كاربردهاي وب، نياز به روشهايي براي مدل سازي و مستندسازي مراحل ساخت آنها را بيشتر مي كند. اين نياز در ابتدا محدود به داشتن روشي براي نشان دادن ارتباطات پيچيده بين صفحات وب بود، ولي با ظهور تكنولوژيهاي جديدتر و گسترش كاربرد معماري هاي چند لايه نرم افزارها، و نيز گسترش دامنه كاربردهاي برنامه هاي تحت وب، اين روشهاي اوليه ايجاد شده براي مدلسازي برنامه هاي كاربردي وب به سرعت ناكارامد شدند. پس از آن فرآيندهايي براي ساخت برنامههاي كاربردي وب ارائه گرديد. مشكل اصلي استفاده از اين فرآيندها در اين است كه آنها هركدام چرخه حياتي متفاوت با نرم افزارهاي غيروبي براي برنامه هاي كاربردي وب ارائه ميكنند، كه علاوه برنياز به آموزش يك فرآيندجديد به تيم توليد نرم افزار، كار در پروژه هاي تركيبي (كه برنامه كاربردي وب جزيي از يك پروژه نرم افزاري كلانتر است) را با مشكل مواجه مي سازد.
در اين مقاله مدل فرآيندي جديد بنام Web-ICONIXبراي ساخت برنامه هاي كاربردي وب در ابعاد متوسط درچارچوب كلي تبيين شده در فرآيند ساخت نرمافزار RUP و بر پايه روش كلاسيك ICONIX ارائه مي گردد. اين مدل فرآيند مانند RUP تكراري[1] و افزايشي[2] است. محور كار در تحليل نيازها و طراحي نرم افزار در آن، مدلموردكاربرد[3] است و براي مدل سازي از نمادهاي موجود در UML و نيز ملحقات پيشنهادي توسط جيم كنالن براي ابزار Rational Rose استفاده مي شود. به دليل حفظ مفاهيم و مراحل كلي شناخته شده RUP و ICONIX و ابزارهاي شناخته شدهي آنها، به كارگيري اين مدل فرآيند نسبت به روشهاي ديگري كه مراحل و نمودارها و ابزارهاي كاملا جديدي را براي ساخت برنامه هاي كاربردي وب به كار مي گيرند ساده تر است و آموزش آن و نيز سازگار كردن آن با روش هاي مورد استفاده براي ساخت بخش هاي غير وبي سيستم با هزينه و زمان كمتري انجام مي گيرد.
ابتدا در فصل دوم برخي از تعاريف برنامه هاي كاربردي وب ذكر شده ويژگيهاي آنها و تفاوتهاي يك برنامه كاربردي وب با يك وب سايت پويا بيان مي گردند. همچنين در اين بخش معماري عمومي برنامههاي كاربردي وب، شيوهي اصلي انتشار اشيا در برنامههاي كاربردي وب و روشهاي ايجاد سيستمهاي توزيع شده تحت وب مورد بررسي كلي قرار ميگيرد. در فصل سوم برخي از پژوهشهاي پيشين در اين حيطه كه رويكردي مهندسي به ساخت برنامههاي كاربردي وب دارند به اختصار معرفي ميشوند و به دلايل ايجاد آنها و اشكالات اصلي هريك اشاره ميگردد. فصل چهارم به معرفي مدل فرآيند جديدي با عنوان Web-ICONIX مي پردازد. در اين بخش ابتدا چارچوب كلي مدل فرآيند RUP و مدل هاي اصلي و نيز نقشه كلي مسير روش ICONIX و ملحقات وب كنالن براي رسم مدل تحليل/طراحي برنامه كاربردي وب معرفي ميشوند. سپس با تلفيق اين سه موضوع و برخي تغييرات لازم در آنها براي هماهنگ شدن با مراحل ساخت برنامه هاي كاربردي وب، فازهاي مدل فرآيند جديد به شكل گام به گام بيان ميگردند. در فصل پنجم مراحل ساخت يك نمونه برنامه كاربردي وب با مدف فرآيند جديد نشان داده ميشود. در پايان در فصل ششم ارزيابي و خطوط كلي كارهاي آينده ميآيد و در جدولي نتايج مقايسه مدل فرآيند Web-ICONIX با ساير روشها نشان داده مي شود.
2- برنامههاي كاربردي وب
پس از شيوع “اپلتهاي جاوا” در صفحات وب، اين نظر ابراز شد كه برنامه كاربردي وب به هر چيزي گفته ميشود كه از جاوا استفاده كند. ولي با گسترش تكنولوژيهاي استفاده شده در ايجاد نرمافزارهاي مبتني بر وب، به تدريج اين تعريف عموميت يافت كه به هر چيزي كه از سرويسدهنده وب استفاده كند يك برنامه كاربردي وب ميگويند[4]. در RUP يك برنامه كاربردي وب اينچنين تعريف شده: «هر برنامه كاربردي كه بخشي از كارايياش با واسطه يك مرورگر وب حاصل شود. يك برنامه كاربردي وب، وب سايتي است كه ورودي كاربر را ميگيرد (يا به طور مستقيم و يا بر اساس حركت كاربر بين صفحات وب) و حالت داخلي يك سيستم تجاري را تغيير ميدهد» [11] (مثلا در سادهترين حالت چيزي را در يك پايگاه داده تغيير ميدهد). بر اساس اين تعريف، يك برنامه كاربردي وب سيستمي نرمافزاري است كه حالت تجاري دارد، و كاربران نهايي آن در سطح وسيعي (بر روي وب) پراكندهاند.
بطور كلي برنامه هاي كاربردي وب سه خصلت اصلي دارند: داشتن كاربران پراكنده، استفاده از داده هاي پراكنده، [7] و ساخته شدن از تركيب تكنولوژيهاي گوناگون. بر اساس اين خصلت هاي اصلي، مي توان برخي از ويژگي هاي برنامه هاي كاربردي وب را چنين بر شمرد:
تفاوت يك برنامه كاربردي وب و يك وب سايت در كاربرد آنهاست. برنامه كاربردي وب يك لايه منطق تجاري را پياده سازي ميكند و استفاده از آن، حالت دروني اين لايه را تغيير ميدهد. اين مساله از آن جهت مهم است كه نقطه تمركز مدلسازي را مشخص ميكند. چون برنامه كاربردي وب داراي يك لايهي منطق تجاري است، مهمترين مدلهاي سيستم بر روي اين لايه و حالت آن متمركز ميشوند، نه بر روي جزييات نمايش صفحات. نمايش در جاي خود مهم است (اگر به آن توجه نشود هيچكس نميتواند با سيستم درست كار كند) ولي بايد بين روابط تجاري و جزييات نمايش در هنگام مدلسازي فاصله روشني را حفظ كرد. اگر مسائل مربوط به نمايش مهم يا پيچيدهاند، بايد آنها را هم به شكلي مدلسازي كرد، ولي نه به عنوان جزيي از مدل منطق تجاري سيستم. بعلاوه منابعي كه روي نمايش كار ميكنند، بيشتر هنري هستند و كمتر با پيادهسازي قوانين تجاري درگيرند[5]. همچنين يك برنامه كاربردي وب با يك وب سايت معمولي سه تفاوت مهم دارد [2]:
معماري عمومي صفحات وب از نوع سرويسدهنده/سرويسگيرنده است، با برخي تفاوتهاي قابل ذكر. يكي از برتريهاي مهم برنامه كاربردي وب اين است كه اجزايش[8] تنها روي سرويسدهنده قرار ميگيرند و هيچ نرمافزار يا تنظيم ويژهاي در طرف سرويسگيرنده لازم نيست. تفاوت مهم ديگر بين يك برنامه كاربردي وب و يك سيستم سرويسدهنده/سرويسگيرنده در طبيعت ارتباط سرويسدهنده و سرويسگيرنده است. پروتكل اصلي ارتباطات در برنامه كاربردي وب پروتكل HTTP است، كه پروتكلي Connectionless است و براي ارتباطات سنگين و عاري از خطا طراحي نشده است. ارتباطات بين سرويسدهنده و سرويسگيرنده در يك برنامه كاربردي وب معمولا شامل حركت بين صفحات وب است، نه ارتباط مستقيم بين اشياء طرف سرويسدهنده و سرويسگيرنده. به شكل انتزاعي ميتوان گفت همه پيامها در يك برنامه كاربردي وب ميتوانند به عنوان درخواست و دريافت صفحات وب در نظر گرفته شوند[4].
به دليل خصلت تركيبي تكنولوژي هاي وب، استفاده از مدل هاي چند لايه [9] در برنامه هاي كاربردي وب اجتناب ناپذير است. در حالت كلي مي توان معماري اين برنامه ها را با مدل سه لايه نشان داد كه در آن صفحات HTML نهايي لايه نمايش را مي سازند، اسكريپت هاي برنامه (كه عمليات اصلي را انجام مي دهند و به زبان هايي چون ASP يا JSP يا PHP و... نوشته شده اند) لايه منطق تجاري را تشكيل مي دهند و پايگاه داده ها (يا ساير منابع داده اي، مانند منابع ذخيره چندرسانه اي و فايل سيستم[7]) در سومين لايه جاي مي گيرند. شكل يك شماي كلي معماري يك برنامه كاربردي وب را نشان مي دهد.
نمايش (صفحات HTML) |
مرور گر
|
منطق تجاري |
پايگاه داده ها |
HTTP |
HTTP |
سرويس گيرنده (Client) سرويس دهنده (Server) |
اينترنت |
شكل 1 - شماي كلي معماري يك برنامه كاربردي وب[13]08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003300370036003700380039003000340039000000 |
UDDI |
هر صفحه مخلوطي از محتويات و دستورات مربوط به نمايش است كه توسط HTML بيان شدهاند. بعضي صفحات داراي اسكريپتهايي هستند كه توسط مرورگر تفسير و اجرا ميشوند. اين اسكريپتها رفتار پوياي صفحه را هنگام نمايش دادهشدن روي صفحه نشان ميدهند و با اجزاي ديگر (مرورگر، محتويات صفحه و اجزاي ديگر؛ از قبيل اپلتها، ActiveXها و Plug-inها) درارتباط هستند. بعضي وقتها كاربر اطلاعاتي را در فيلدهاي صفحه واردكرده آنها را براي پردازش شدن به سرويسدهنده ميفرستد. كاربر همچنين ميتواند از طريق لينكها بين صفحات حركت كند. در هر حال،كاربر ميتواند وروديهايي به سيستم بدهد كه ممكن است حالتتجاري سيستم را تغيير دهند.
از ديد سرويسگيرنده، صفحهي وب هميشه يك فايل HTML است. ولي در طرف سرويسدهنده، يك صفحه ميتواند خودش را در شكلهاي مختلفي نشان بدهد. در برنامه هاي كاربردي اوليه، صفحات وب توسط CGIها ساخته ميشدند. در سيستمهاي مبتني بر CGI ،معمولا يك دايركتوري ويژه براي قرار گرفتن CGIها روي سرويسدهنده ايجاد ميشد. وقتي يك CGI درخواست ميشد، سرويسدهنده به جاي آنكه متن آنرا به طور معمولي براي درخواست كننده بفرستد (كاري كه در مورد صفحات HTML انجام ميشود)،آنرا با مفسر مناسب (مثلا Perl) اجرا كرده نتيجه را براي درخواستكننده صفحه پس ميفرستد. خروجي اين فرآيند يك فايل HTML است كه توسط مرورگر ارسال كنندهي درخواست دريافت ميشود. منطق تجاري در زمان اجراي فايل روي سيستم انجام ميشود. در آن زمان، امكان برقراري ارتباط با ساير منابع سرويسدهنده (مانند پايگاه داده و اجزاي لايههاي مياني) وجود دارد.
سرويسدهندههاي امروزي نسبت به اين روش قديمي بهتر عمل ميكنند. بطورکلی صفحات وب را ميتوان به سه دسته تقسيم كرد: صفحههاي اسكريپت دار، صفحههاي كامپايل شده، صفحات مخلوط (هر دو) در دسته اول، صفحاتي كه كاربر ميتواند درخواست كند، به عنوان فايلهاي اسكریپت در سيستمعامل سرويسدهنده شناخته ميشوند. وقتي اين صفحه درخواست شود، يك مفسر آنرا اجرا كرده خروجي را به شكل يك فايل HTML براي درخواست كننده ميفرستد. مثال اين روش، ASP از مايكروسافت و Cold Fusion ست. در دسته دوم، صفحات كامپايل شده، سرويسدهنده وب يك فايل باينري را بار كرده اجرا ميكند. كد كامپايل شده از مشخصات درخواست رسيده استفاده ميكند و به منابع سيستم مورد نيازش براي ساختن جريان خروجي HTML دسترسي دارد. معمولا صفحات كامپايل شده كارايي بهتري نسبت به اسكريپتها دارند. با فرستادن پارامترهايي به صفحات كامپايل شده، او ميتواند كارهاي مختلفي انجام دهد. يك فايل كامپايل شده ممكن است همه كارهايي را كه يك دايركتوري از اسكريپتها انجام ميدادند، يك تنه انجام دهد. تكنولوژيهايي كه از اين روش استفاده ميكنند ISAPI از مايكروسافت و NSAPI از Netscape هستند. دسته سوم صفحاتي هستند كه به صورت اسكريپت نوشته ميشوند، و بعد در اولين نوبتي كه درخواستي برايشان برسد، كامپايل ميشوند و از آن پس اين نسخه كامپايل شده براي درخواستهاي بعدي مورد استفاده قرار خواهد گرفت. فقط وقتي محتويات صفحه اصلي تغيير كنند، صفحه احتياج به كامپايل شده دوباره خواهد داشت. اين روش تركيبي از انعطافپذيري اسكريپتها و كارايي كدهاي كامپايلشده است. JSP (مخفف Java Server Pages) نمونهاي از اين روش است. [4]
دیدگاه خود را ثبت کنید