بخشی از مقاله

تحليل ابعاد مختلف ابزار Yahoo Pipes براي ايجاد Mashup
خلاصه : Mashup يک ديدگاه جديد براي توسعه برنامه مي باشد که به کاربران اين امکان را مي دهدتا با ترکيب چند سرويس ، سرويسي جديد با هدفي نو ايجاد کند. اگرچه ديدگاه Mashup موقعيتهاي جديد و گسترده اي براي مصرف کنندگان داده و سرويس فراهم مي کند ولي هنوز فرآيند توسعه مستلزم آن است که کاربران دانش برنامه نويسي داشته باشند و همچنين بدانند که چگونه از رابط هاي مختلف برنامه نويسي وب ، که توسط سرويس دهندگان گوناگوني ارائه مي شود، استفاده کنند. براي حل اين مشکل ، ابزارهايي طراحي شد، تا کاربران با کمي دانش برنامه نويسي ، بتوانند برنامه هاي Mashup ايجاد کنند. يکي از اين ابزارها Yahoo Pipes مي باشد که توسط شرکت Yahoo براي ايجاد برنامه هاي Mashup فراهم شده است . .هدف اين مطالعه ، تحليل نقاط ضعف و قدرت ابزار Yahoo Pipes مي باشد.
کلمات کليدي : Mashup، ٢ Web، ابزارهاي Mashup،Yahoo Pipes .


١ - مقدمه
يکي از اهداف وب ٢، تسهيل ايجاد، استفاده ، توصيف ، به اشتراک گذاري و استفاده مجدد از منابع روي وب مي باشد. براي رسيدن به اين هدف تکنولوژي هايي مرتبط با اين مفهوم بوجود آمدند (همچون وبلاگ و شبکه هاي اجتماعي ). توانايي هاي وب ٢، توسط بسياري از ارائه دهندگان سرويس تقويت شده اند. آنها برنامه هايشان را از دو طريق در دسترس قرار دادند. ١-وظيفه مندي برنامه ١از طريق API هاي وب مانند 2Google Map، 3Amazon،4Youtube ٢-در دسترس قرار دادن فيد هاي داده ٥ همچون RSS,ATOM. اين توانايي ها، موقعيتهاي جديد و مهيجي را براي مصرف کنندگان و ارائه دهندگان سرويس بوجود آورد، به گونه اي که اين نظريه بوجود آمد که
بتوانيم از اين سرويس ها به عنوان يک جزء ترکيبي استفاده کنيم و آنها را براي ساخت برنامه هاي جديد با ديگر اجزاء ترکيب کنيم .
Data Feed :قالب داده اي است که براي ارائه ي متناوب محتواي بروز رساني شده به کاربرمورداستفاده قرارمي گيرد. براي رسيدن به اين هدف و رفع نياز آينده کاربران وب ٢، چارچوب کاري ٦ جديدي به نام Mashup به وجود آمد [٤]-[١]. Mashup يک روش توسعه برنامه مي باشد که به کاربران اين امکان را مي دهد تا چندين سرويس را، که هرکدام هدف خاص خودشان را دارند، با هم ترکيب کنند و يک سرويس جديد، با هدف جديد ايجاد کنند. برخلاف ترکيب سرويس هاي وب که تنها بر روي ترکيب سرويس هاي کسب وکار٧ تمرکز دارد، چارچوب کاري Mashup فراتر از اين عمل مي کند و اين امکان را فراهم مي کند تا وظيفه مندي برنامه و همچنين منابع ناهمگن همچون سرويس هاي داده ، سرويس هاي UIو غيره ترکيب شون . برنامه هايي که از تکنيک Mashup استفاده مي کنند Mashups يا برنامه هاي Mashup ناميده مي شوند. رشد سريع
Mashup ها، مشخص مي کند که علاقه مندي زيادي به چارچوب کاري Mashup وجود دارد [٩]-[٥]. با وجود اينکه سرمايه گذاري هاي قابل توجهي صورت گرفت ولي دو مشکل در اين زمينه وجود داش . اول اينکه کاربران Mashup بايد از نحوه نوشتن کد توسط زبان هاي برنامه نويسي (همچون XML،Javascript و HTML) اطلاع داشته باشند. ثانيا چگونگي استفاده از API هاي مختلف وب را بدانند. جهت حل اين مشکل ابزارهايي طراحي شد، تا کاربراني که دانش برنامه نويسي کمي دارند، بتوانند برنامه هاي Mashup ايجاد کنند.
٢ – مشکلات ايجاد برنامه Mashup
براي درک بهترکارايي ابزارهاي Mashup، يک مثال مي زنيم . فرض کنيد يک کاربر مي خواهد يک Mashup خبري ايجاد کند. اين کاربر بايستي دانش برنامه نويسي زيادي داشته باشد تا بتواند واکشي و ترکيب داده هاي ناهمگن را انجام دهد. در حقيقت کاربر علاوه بر دانش کدنويسي بايستي ١- از سرويس هاي API موجود آگاهي داشته باشد به اين خاطر که مي خواهد سرويس هاي مربوطه را فراخواني و داده هاي خروجيش را واکشي نمايد. ٢- براي سرويس هايي که API ارائه نکرده اند تکنيک Screen Scraping را پياده سازي کند. ٣- ساختار داده ورودي و خروجي هر سرويس را بداند به خاطر اينکه ممکن است نياز به تغيير فرمت داده باشد.
ابزارهاي Mashup ارائه شده اند تا کاربران را در ايجاد برنامه هاي Mashup کمک کنند و برخي از مشکلات مطرح شده را حل نمايند. هدف ما از اين تحليل آن است که بررسي کنيم ابزار Yahoo Pipes چگونه با اين مشکلات برخورد مي کند. ما به سوالاتي شبيه اين پاسخ مي دهيم . اين ابزار چگونه داده را مديريت مي کند؟ چه نوع پردازشهايي بر روي داده انجام مي دهد؟ چه تسهيلاتي براي جستجوي منابع داده يا Mashup هاي موجود مهيا مي کنند؟ چه عملگرهايي ٢ براي تبديلات داده ٣ و براي ايجاد جريان داده ٤مهيا مي کند؟ چه نوع داده هايي توسط عملگرهاي در دسترس پشتيباني مي شود؟ خروجي Mashup چيست ؟

٣ – ابعاد مختلف تحليل
ديدگاهي که براي تحليل ابزار Yahoo Pipes به کار مي رود، برپايه بعد مختلف زير مي باشد.
١- واسط هاي برنامه نويسي کاربردي ٥ API به عنوان يک واسط کاربري ٦ مي باشد که به کاربران اين امکان ر ا را مي دهد تا با برنامه ها و وب سايتهاي ديگر تعامل داشته باشد و داده اي را از آن دريافت کنند و يا از آن سرويسي را در خواست نمايند[١٠]
بنابراين API، يکپارچگي بين برنامه ها را، بوسيله بازيابي داده و تبديلات داده تسهيل مي کند. API کمک مي کند تا بدون تمرکز بر ١ ليستي از APIهاي موجود در وب در آدرس زير موجود مي باشد:
روي سازمان داخلي برنامه ها، به منابع دسترسي پيدا کنيم و از آن ها استفاده کنيم . ODBC٧ و JDBC٨ مثال هاي ساده و شناخته شده اي اي از API مي باشند. اين API ها به برنامه نويسان اين امکان را مي دهد تا با ارسال يک پرس و جو٩ به داده هاي موجود در پايگاه داده دسترسي پيدا کنيم يا داده هاي آن را بروزرساني و يا حذف کنيم .
روي وب ، ارائه دهندگاني همچون Microsoft،Google ،Ebay ، Yahoo اين امکان را فراهم مي کنند تا محتواي سايتهايشان را بوسيله API هاي وب فراهم شده بازيابي کنيم . اين API ها بوسيله پروتکل هاي استانداري همچون سرويس هاي وب و يا فراخواني توابع از راه دور با XML١١، قابل دسترس مي باشند.
API ها همچنين مي توانند براي دسترسي به منابعي که آدرس URL ندارند، استفاده شوند مانند داده هاي سازماني يا تجاري . اين داده ها اغلب از طريق فرمت هاي مختلفي همچون سندهاي Office، ايميل و يا نتايج پرس و جوي پايگاه داده و قابل دسترس هستند .[ 1]
استفاده از انواع مختلف API، اين امکان را فراهم مي کند تا برنامه هايي را پياده سازي کنيم که اطلاعات فايل شخصي يک کاربر را با اطلاعات ارائه شده توسط API هاي وب ، ترکيب کنيم . مثلا يک کاربر ممکن است برنامه اي را پياده سازي کند که اطلاعات بيمه اش که در فايل صفحه گسترده Excel مي باشد، با سرويس اخطار آب و هوا که توسط يک وب سايت ارائه شده است ، ترکيب کند [٥].
٢- مدل داده داخلي ١٢
همان طور که گفته شد، هدف برنامه هاي Mashup ترکيب منابع مختلف براي توليد يک برنامه جديد مي باشد. اين داده ه در حالت کلي از منابع متفاوتي مي آيند، داراي فرمت هاي مختلفي هستند و حامل معناهاي متفاوتي مي باشند. براي پشتيباني از منابع مختلف ، هر ابزار Mashup از يک مدل داخلي استفاده مي کند. يک مدل داده داخلي يک الگوي کلي و يکسان مي باشدکه نماي يکپارچه اي از داده را فراهم مي کند [١٢]. مدل داخلي ابزارهاي Mashup مي توانند بر پايه XML١٣ و يا بر پايه شي ١٤ باشند.
 مدل بر پايه XML
بيشتر برنامه هاي Mashup از مدل بر پايه XML، به عنوان مدل داخلي داده استفاده مي کنند. يقينا اين مسئله به اين خاطر است که امروزه بيشتر داده هاي روي وب در اين فرمت ارائه مي شود و همچنين بيشتر ابزارهاي Mashup از طريق وب در دسترس هستند.
اين مدل ، يک مدل داده بر پايه گراف مي باشد که براي مديريت داده هاي شبه ساختاري و يکپارچه کردن منابع داده ناهمگن استفاده مي شود . بدين معني که ، همه ابزارهاي Mashup اي که در اين دسته بندي قرار مي گيرند، قبل از پردازش ، داده ورودي را به شکل XML تبديل مي کنند.
 مدل بر پايه شي
در اين حالت ، داده داخلي ، در شکل شي (به همان مفهومي که در برنامه نويسي شي گرا مطرح است ) مي باشد. يک شي نمونه اي از کلاس مي باشد که ويژگي هاي يک عنصر را تعريف مي کند. اين ويژگي ها شامل مشخصه هاي عنصر و رفتارهاي عنصر (متدها و عملوندها) مي باش . توجه شود که در اين حالت هيچ تبديلي توسط آن ابزار انجام نمي شود (برخلاف مدل بر پايه XML) ، اما برنامه نويس بايد ساختار شي را مطابق با داده اش تعريف کند.
٣- نگاشت داده
براي نمونه سازي يک مدل داخلي داده ، از يک منبع خارجي داده ، ابزارها بايد راه حلي را ارائه دهند تا تناظري بين مدل داخلي داده و منابع داده مطلوب مشخص شود، اينکار توسط نگاشت داده انجام مي نگاشت داده يک فرآيند ضروري براي مشخص کردن تناظر بين شود.
عناصر مدل داده منبع و مدل داخلي داده مي باشد[١٣].
بطور کلي ، نگاشت داده مي تواند بصورت دستي ، شبه اتوماتيک و اتوماتيک انجام شود.
دستي
در اين حالت ، همه ي تناظر بين مدل داخلي داده و مدل داده منبع بصورت دستي ، يکي يکي و توسط طراح برنامه انجام مي شود. در اين حالت ابزار بايد تسهيلاتي براي کاربر فر٣اهم کند تا بتواند تبديلاتي را انجام دهد. مثلا Damia عملگر تبديل را فراهم کرده است که مي تواند نگاشت داده را انجام دهد.
-نيمه خودکار
در نگاشت نيمه خودکار، سيستم از بعضي فراداده ها٤ (بطور مثال نام فيلدها و نوع آن ها) استفاده مي کند تا تعدادي از نگاشت هاي ممکن را پيشنهاد دهد. با اين وجود، کاربران نياز دارند اين پيشنهادات ر ا بررسي کنند و معمولا بعضي از آنها را تصحيح نمايند. Yahoo Pipes يک مثال از ابزارهاي Mashup مي باشد که از نگاشت نيمه خودکار استفاده مي کند و بعضي از حالات نگاشت را به کاربر پيشنهاد مي دهد.
 خودکار
در اين حالت تناظر بين دو مدل داده کاملا به صورت خودکار و بدون دخالت کاربر مي باشد. اين يک موضوع چالش برانگيز در حوزه پيوستگي داده مي باشد [١٣]. به اين خاطر که Mashup هنوز در مراحل اوليه قرار دارد، اين نوع نگاشت توسط هيچ يک از ابزارهاي Mashup ارائه نگرديده است .
لازم است به اين موضوع اشاره شود که ، نگاشتي که توسط ابزارهاي Mashup در حال حاظر ارائه شده است ، تنها در سطح الگو٥ انجام شده است ، در حالي که هيچ اطلاعات معنايي ٦ تاکنون در نظر گرفته نشده است .
٣- عملگرهاي جريان داده ٧
عملگرهاي جريان داده دو امکان را فراهم مي کند ١- انجام عمليات بر روي ساختار داده (مشابه زبان تعريف داده و عملگرهاي آن در مدل رابطه اي ) ٢- عمليات بر روي خود داده (محتوا) (مشابه زبان دستکاري داده و عملگرهاي آن در مدل رابطه اي ). در اين جا عملگرهايي که توسط خود ابزار براي پردازش و ترکيب داده ها ارائه شده اند، در نظر مي گيريم .
بطور دقيق تر، عملگرهاي جريان داده اين قابليت ها را فراهم مي کنند
 تغيير طرح داده ورودي مثلا اضافه کردن يک عنصر و يا يک ويژگي جديد
 انجام عمليات هايي براي بهبود مجموعه داده مثلا استخراج يکسري اطلاعات خاص ، ترکيب عناصر مشخصي که شرايط خاصي را دارند و يا تغيير مقدار بعضي از عناصر  ساخت يک مجموعه داده جديد از ديگر مجموعه هاي داده مثلا پيوند٨و الحاق ٩ داده (مشابه مفهوم ديد١٠ها در پايگاه داده ) براي اينکه جريان داده را توضيح دهيم ، مثالي را در نظر بگيريد که يک کاربر مي خواهد Mashup اي را پياده سازي کند که دو فيد RSS را ترکيب مي کند. يکي از اين فيد١١ها، شامل اطلاعات آب و هوايي براي شهرهاي مختلف ايران و ديگري شامل اطلاعاتي درباره وقايع شهرهاي مختلف ايران مي باشد. بعد از دريافت اطلاعات ضروري ، عمليات هاي زير بايد انجام شود. (شکل ١)

شکل ١- تشريح ٤ عملگر جريان داده
فيلتر و تبدي ) براساس نام شهر
٤- عملگر مرتب سازي : براي مرتب سازي فيد هاي بدست آمده
براساس تاريخ
٥- تازه سازي منبع داده ١
در بعضي موارد (مثل بورس و سهام ارز) داده ها بطور پيوسته توليد و بروزرساني مي شوند. عموما تصميمات استراتژيکي بسياري (خصوصا در سازمان ها) براساس آخرين وضعيت يا مقدار داده گرفته مي شود. براي سيستمي که منابع داده را پخش مي کند اين موضوع اهميت دارد که به روزترين داده را در اختيار کاربر يا کاربران قرار دهد. وابسته به هدف کاربر، دو استراتژي کلي براي وضعيت داده در منبع وجود دارد .١- تکنيک سرکشي ٢ ٢- تکنيک پيشروي ٣
-تکنيک سرکشي
اين تکنيک براساس درخواست هاي مکرر و تکراري از طرف مشتري و و براساس فرکانس سرکشي مي باشد. فرکانس سرکشي معمولا کمتر از متوسط فرکانس بروزرساني داده در منبع مي باشد. بروز بودن داده ، عمدتا وابسته به فرکانس سرکشي مي باشد. مثلا فرکانس سرکشي بالا ، داده را به روزتر نگه مي دارد و برعکس . يکي از مشکلاتي که در فرکانس بازيابي بالا بوجود مي آيد، درخواست هاي غير ضروري است که براي سرور ارسال مي شود.
-تکنيک پيشروي
در اين روش مشتري درخواستي را ارسال نمي کند ولي نياز دارد که در سرور ثبت نام شود. ثبت نام به اين خاطر ضروري است که داده مورد نياز مشتري ، مي بايست مشخص شود. بنابراين هنگامي که تغييري در سمت سرور رخ داد، داده از طرف سرور به کلاينت ارسال مي شود. اين امکان وجود دارد که در هنگام ارسال اطلاعات ، مشتري در حال انجام کار ديگري باشد، که اين منجر به تاخير در پردازش مي شودو مشکل اصلي اين روش به حساب مي آيد..
در حال حاضر، ابزارهاي Mashup تنها تکنيک سرکشي را پياده سازي کرده اند. اکثرا ابزارها يک مقدار ثابت براي فرکانس واکشي دارند که مي تواند توسط طراح يا کاربر تنظيم شود. همچنين ابزارهاي کمي به کاربر اين امکان را مي دهند تا بتوانند فرکانس واکشي را تعيين کنند . پارامتر مهم ديگري که در اين جا بايد اشاره شود، راهي است که ابزارها براي مديريت فاصله زماني واکشي بکار مي برند. دو تکنيک ممکن ، تکنيک سراسري و تکنيک محلي مي باشد.
١- تکنيک سراسري : يک فاصله زماني معين جهت بهنگام سازي کل منابع داده در نظر گرفته مي شود. فرض بر اين است که منابع داده ، داراي فاصله زماني بروزرساني يکساني هستند. بدين معنا که داده ها توسط يک Mashup و بطور همزمان درخواست مي شوند. از اين رو کاربر تغييرات بيشتري را از يک منبع که سريع تر به هنگام مي شود، مشاهده مي کند، نسبت به منبعي که ديرتر به هنگام مي شود.
٢- تکنيک محلي : در تکنيک محلي ، هر منبع فاصله زماني بروزرساني خودش را دارد. در اين جا فرض شده ، فاصله زماني واکشي متناظر با اين است که يک منبع داده خودش را بروزرساني کند (بطوري که اثر بهتري از هر منبع داده برجا مي ماند)
٦- خروجي ٦
خروجي Mashup مي تواند به کاربر نمايش داده شود و يا به فرمت هاي ديگري تبديل شود. ما خروجي را به عنوان يکي از ابعاد مورد مطالعه قرار مي دهيم ، به خاطر اينکه يک کاربر ممکن است نياز داشته باشد که نتيجه خروجي Mashupرا به فرمت ديگري تبديل کند تا بتواند اين خروجي را در برنامه اي ديگر (مثلا Excel) مورد پردازش قرار ده . براي نمونه در مثال شکل ١ ممکن است کاربر بخواهد نتيجه داده را مورد را مورد تجزيه و تحليل قرار دهد تا ببيند آيا ارتباط خاصي بين شرايط آب و هوايي و تعداد اتفاقات رخ داده در يک محل خاص وجود دارد. کاربر بايد نتيجه Mashup را به يک فرمت استاندارد (مثل Excel يا XML) تبديل کند تا بتواند بعدا آن را مورد پردازش قرار دهد. براي نمونه ، يک الگوريتم داده کاوي ٧ مي تواند روي اين داده داده ها بکار برده شود تا ارتباط بين آن ها تشخيص داده شود.
٧- تازه سازي منبع داده ٨
توانايي ابزار براي حمايت از وظيفه مندي ٩ بيشتر (که عموما توسط کاربر انجام مي شود) را توسعه پذيري گويند. دو راه براي تعريف و استفاده از اين وظيفه مندي وجود دارد. ١-وظيفه مندي داخل خود ابزار تعبيه شود. مثلا وظيفه مندي توسط يک ابزار برنامه نويسي مشخص به ابزار اضافه شود. ٢- مثلا فراخواني يک سرويس که شامل تابع ١٠ مي باشد. اين ويژگي عمدتا وابسته به معماري ابزار مي باشد. در بعضي موارد، توسعه پذيري توسط تعبيه کردن کد وظيفه مندي در ابزار انجام مي شود و در موارد ديگر، فراخواني سرويس هايي شبيه REST و SOAP و (براي نمونه Yahoo Pipes). همچنين ، اين ويژگي در ابزارهاي مختلف به صورت متفاوتي مديريت مي شود. در يک حالت سرويس يا تابع اضافه شده براي تمام افرادي که از اين ابزار استفاده مي کنند، قابل استفاده است و در حالتي ديگر، توسعه فقط براي همان کاربر خاص قابل مشاهده است (براي نمونه Yahoo .(Pipes
٧- به اشتراک گذاري
Mashup ها بر پايه ظهور تکنولوژي هاي ٢ Web بوجود آمدند. اين تکنولوژي ها راهي ساده براي ايجاد و به اشتراک گذاري اطلاعات فراهم کردند. در اين شبکه عظيم ، فراهم کردن امنيت و مخفي کردن اطلاعاتي که به اشتراک گذارده شده ، يقينا چالشي بزرگ مي باشد.اين وظيفه مشکلتر مي شود، وقتي که اين موضوع در نظر گرفته شود که کاربران وب ٢، کاربراني عادي هستند و لزوما تخصصي در امنیت کامپیوتر ندارند . اين بعد از تحليل ، مشخص مي کند که ابزار، چه امکانات امنيتي را براي برنامه هاي Mashup ايجاد شده توسط کاربر، فراهم مي کند. بايد توجه شود که اين موضوع ، يک حوزه چالش برانگيز در Mashup مي باشد و هنوز کارهاي زيادي در اين حوزه قابل انجام است .
در اين بعد از تحليل ٣ شاخص در نظر گرفته مي شود : ١- چه چيزي در Mashup به اشتراک گذاشته مي شود؟ ٢- چگونه به اشتراک گذاشته مي شود؟ ٣- منبع (يا منابع ) براي چه کاربراني به اشتراک گذاشته شده است ؟
١- چه چيزي ؟ مشخص مي کند که کاربر چه منبع يا منابعي را مي خواهد به اشتراک بگذارد براي مثال اگر يک کاربر، Mashup اي را ايجاد کند که اطلاعات شخصي و عمومي را ترکيب مي کند، اين کاربر ممکن است بخواهد تنها اجزايي از

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید