applying event driven architecture to mobile computing

29

Upload: mehdi-rizvandi

Post on 14-Apr-2017

246 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Applying event driven architecture to mobile computing
Page 2: Applying event driven architecture to mobile computing

معماری رویدادگرا در گیریبکارپردازش موبایلی

Applying Event-Driven Architecture to Mobile Computing

استاد راهنما: خانم دکتر مرضیارایه دهنده: مهدی ریزوندی

http://mRizvandi.com – [email protected] 1394دی ماه

Page 3: Applying event driven architecture to mobile computing

3

فهرست

مقدمهتعاریف و فن آوری هاسناریو برنامه های نمونهمعماری

معماریMetaXA شیوه بکارگیریXMPP

اجزای کلید معماریMetaXA

دستاوردهاکارهای مرتبطنتیجه گیریکارهای بعدیمنابع

Page 4: Applying event driven architecture to mobile computing

4

مقدمه

:اهمیت معماری رویدادگرای متناسب شده)... فراگیر شدن دستگاه های موبایل )گوشی های هوشمند، تبلت ها و تولید رویدادها در هر زمان و مکانی روی دستگاه های موبایل )کاربر، سنسورها

و ...(ادغام استفاده از دستگاه های همراه در امور جاری شرکت هارفتن به سمت اینترنت اشیا

:سه چالش بزرگ درگیر طراحی و پیاده سازی معماری رویدادگرا استپردازش رویداد پیچیده روی دستگاه های موبایلمحدودیت منابع دستگاه های موبایل.عدم هم جنس بودن پلت فرم های موبایل که دستگاه های موبایل اجرا می کنند

Page 5: Applying event driven architecture to mobile computing

5

تعاریف و فن آوری ها ...

( پردازش رویدادEvent Processing:) روشی برای پیگیری و تحلیل کردن )پردازش( جریانی از اطالعات

)داده ها( درباره چیزهایی که اتفاق )رویداد( می افتند و استنتاج نتیجه از آن ها.

( پردازش رویداد پیچیدهCEP: Complex Event Processing:) یک پردازش رویداد است که داده هایی از منابع مختلف را به جهت

استنتاج رویدادها یا الگوهایی که شرایط پیچیده تری را نمایش می دهد، ترکیب می کند. هدف پردازش رویداد پیچیده، شناسایی

رویدادهای معOنی دار )مانند فرصت ها یا تهدیدها( و پاسخ به آن ها در اسرع وقت است.

Page 6: Applying event driven architecture to mobile computing

6

تعاریف و فن آوری ها ...

( سنسورSensor:) یک شی که توانایی تشخیص یک رویداد یا تغییری در محیط را دارد و

یک خروجی متناسب فراهم می کند. سنسور ممکن است انواع مختلف خروجی را ارایه کند مانند خروجی نوری یا الکتریکی. برای

مثال ترموکوپل، یک ولتاژ معینی را ایجاد می کند )خروجی( در پاسخ به دما )محیط(.

گوشی های هوشمند امروزی سنسورهای مختلفی دارند، مانندGPS، NFC و ...

( اتصال سستLoose Coupling:) سیستمی اتصال سست است که هر یک از اجزای سازنده آن، هیچ

دانشی یا دانش ناچیزی از دیگر اجزا جدا شده دیگر دارد.

Page 7: Applying event driven architecture to mobile computing

7

تعاریف و فن آوری ها ...

( سرکشیPolling :) برای آگاهی یافتن از یک رویداد، اتفاق یا وضعیت دستگاه خارجی است که

توسط برنامه به صورت هم زمان اجرا می شود. سرکشی یک فرآیند است که کامپیوتر یا کنترل کننده دستگاه منتظر یک دستگاه خارجی است برای

متصل است، LPTچک کردن وضعیت آن. مثال یک چاپگر که توسط کابل کامپیوتر تا زمانی که چاپگر کاراکتر بعدی را دریافت کند، منتظر می ماند.

( دستگاه خود را بیاوریدBYOD: Bring Your Own Device:) یک سیاست است که به کارمندان اجازه می دهد دستگاه های شخصی خود

را )لپ تاپ، تبلت، موبایل و ...( به محل کار بیاورند. و از آن دستگاه ها برای دسترسی به اطالعات خاص و برنامه های شرکت استفاده کنند.

Page 8: Applying event driven architecture to mobile computing

8

تعاریف و فن آوری ها ...

( حالت نشاندنPush Mode:) نوعی از ارتباطات اینترنتی که در آن سرور برای فرستادن اطالعات به مشتری

یک ارتباط را ایجاد می نماید. که این مدل در مدل انتشار-اشتراک کاربرد دارد. برای ارسال اطالعOات را سرور به مشتری، کانال هایی وجود دارد که سرور

اطالعات خود را در آن کانال ها قرار می دهد. مشتری کانال های مورد نظر خود را بررسی کرده و پیام های خود را دریافت می کند.

( انتشار-اشتراکPublish-Subscribe:) در معماری نرم افزار، انتشار-اشتراک یک الگوی پیام رسانی است، فرستنده

پیام ها که ناشر نامیدOه می شود، پیام را برای فرستادن مستقیم به یک گیرندOه خاص که مشترک نامیدOه می شود برنامه ریOزی نمی کند. بلکه پیام های منتشرشده

را به کالس هایی بدون دانش از مشترکین توصیف می کند. به طور مشابه، مشترکین دریافت پیام، از یک کالس یا کالس هایی هستندO که بدون داشتن دانشی

در خصوص منتشر کننده فقط پیام های مورد عالقه خود را دریOافت می کنند.

Page 9: Applying event driven architecture to mobile computing

9

تعاریف و فن آوری ها ...

( رابط برنامه نویسی کاربردیAPI:) مجموعه ای از روتین ها، پروتکل ها و ابزارها برای ساخت برنامه های

کاربردی است. رابط برنامه نویسی کاربردی یک ترکیب نرم افزاری بر اساس عملکردها، ورودی ها، خروجی ها و انواع داده های درونی است، که وظایفی را مستقل از محیط پیاده سازی معرفی می کOند.

XMPP: یک پروتکل ارتباطی برای میان افزارهای پیام گرا بر مبنایXML

است. که انتقال نزدیک به بالدرنگ داده ها را بین دو یا چند شبکه نامیده می شود. این پروتکل ابتدا Jabberبرقرار می کند که در اصل

ایجاد شده.1994 در سال Jabberتوسط انجمن متن باز

Page 10: Applying event driven architecture to mobile computing

10

تعاریف و فن آوری ها ...

نمایی از فن آوریXMPP:

Page 11: Applying event driven architecture to mobile computing

11

سناریو برنامه های نمونه

:دو سناریو بر اساس معماری پیشنهادی( توزیع آگهی هاNotification Distribution)( کشف/تشخیص دزدیTheft Detection)

Page 12: Applying event driven architecture to mobile computing

12

سناریوی اول: توزیع آگهی ها

برنامه برای توزیع مطمئن آگهی هابرای انواع متفاوت آگهی ها، انواع مختلف گروه گیرندگان وجود دارددریافت آگهی ها در اسرع وقت توسط گیرندگان

زمان تحویل متفاوتخاموش بودنقطع ارتباط شبکهقطع دریافت آگهی ها

تشخیص هویت گیرنده پیاماعمال محدودیت در دریافت پیامفرستادن پیام برای گیرنده خاص

(Notification Distribution)

Page 13: Applying event driven architecture to mobile computing

13

سناریوی اول: توزیع آگهی ها ...

مشخصات فنی برنامهعدم استفاده از روش سرکشیاستفاده از مکانیزم انتشار-اشتراکتعامل غیرهمزمان

(Notification Distribution)

Page 14: Applying event driven architecture to mobile computing

14

سناریوی دوم: کشف/تشخیص دزدی

کشف/تشخیص دستگاه موبایل دزدیده شده استفادهBYODکاربران

مسائل اقتصادی و قانونیکشف سریع

)... اقدامات امنیتی )تنظیم مجدد کارخانه ای، حذف کلیه اطالعات و کشف سریع با استفاده از موقعیتGPSدستگاه عدم امکان موفقیت، به دلیل محدودیت منابع

پردازش پیچیده رویداد در سمت سروررورOتگاه موبایل به سOنیاز دسترسی دس عدم نتیجه گیری از موقعیتGPSدستگاه موبایل در زمان دزیده شدن

کد( استفاده از متادیتاهاIMEI)سیم کارت

(Theft Detection)

Page 15: Applying event driven architecture to mobile computing

15

MetaXAمعماری

طراحی معماریMetaXA (Metadata-processing XMPP-based Architecture)

ترکیبCEP با EDAمدل پردازش

تولید کننده/مشتری رویدادواسطشی رویدادعامل پردازشگر رویداد

الگوهای ارتباطیتعامل ناهمزمانانتشار-اشتراکحالت نشاندن

MetaXA Architecture

Page 16: Applying event driven architecture to mobile computing

16

...MetaXAمعماری MetaXA Architecture

Page 17: Applying event driven architecture to mobile computing

17

XMPPشیوه بکارگیری

محدودیت های دستگاه های موبایل و دالیل استفاده ازXMPPطول عمر کم باطری تعیین غیر ایستای آدرسIPمحدودیت پهنای باند شبکه)پلت فرم های نامتجانس )نا همگون

Page 18: Applying event driven architecture to mobile computing

18

...XMPPشیوه بکارگیری

مزایایXMPPعدم نیاز به سرکشی به رویدادهای جدیددریافت ناهمزمان رویدادها در مقصد توسط مکانیزم انتشار-اشتراک ذخیره سازی رویدادها تا پس از فعال )روشن/اتصال شبکه( شدن دستگاه

همراه مشتری استفاده ازJIDدر جهت جبران تعیین آدرس غیر ایستا ایجاد یک الیه ارتباط یکدست درMetaXAو پشتیبانی از پلت فرم های مختلف پشتیبانی از مکانیزم های امنیت مانندTLS پشتیبانی از کیفیت سرویس با استفاده از انباره آفالین و استراتژی های

مختلف دریافت

Page 19: Applying event driven architecture to mobile computing

19

معماری MetaXA

)سرویس دهنده(

معماری سمت سرویس دهنده: بر مبنای XMPPمعماری اصلی

معماری سرویس دهنده/سرویس گیرنده

)خدمتگذار/مشتری( است که است.MetaXAمبنای معماری

XMPPسرویس دهنده •

موجودیت ها: ایستا و پویا•دستگاه های موبایل•سرویس ها•عامل پردازشگر رویدادهای •

Metadata

سرویس انتشار-اشتراک•الیه یکپارچه سازی•

19

Page 20: Applying event driven architecture to mobile computing

20

)سرویس MetaXAمعماری گیرنده(

MetaXA Application

Mobile Device PlatformsWindows Phone, iOS, Android, …

Sensors

GPS, NFC, …

Page 21: Applying event driven architecture to mobile computing

21

معماری MetaXA

)سرویس گیرنده(

سرویس دهنده •XMPP

موجودیت ها: ایستا •و پویا

دستگاه های موبایل•سرویس ها•عامل پردازشگر •

رویدادهای Metadata

سرویس انتشار-•اشتراک

الیه یکپارچه سازی•

Page 22: Applying event driven architecture to mobile computing

22

دستاوردها

هر دو سناریوی عنوان شده به خوبی در پلت فرم های اندروید وویندوزفون پیاده سازی شده اند.

-ارتباط تولید کننده رویداد و مشتری رویداد از طریق سرویس انتشاراشتراک صورت گرفته است. که امکان اتصال سست را بین اجزای

سیستم میسر می سازد. سیستم طراحی شده دو امکان مقیاس پذیری و توسعه پذیری را

پشتیبانی می کند. الیه یکپارچه سازی، همگون سازی پلت فرم های نامتجانس با استفاده از

رابط برنامه نویسی کاربردی را می دهد. می توان مجموعه ای از دستگاه های ساده یا بزرگ را به سیستم متصل نمود.

.مصرف پایین باطری، به دلیل عدم استفاده از حالت سرکشی پیوسته

Page 23: Applying event driven architecture to mobile computing

23

کارهای مرتبط

استفاده از پروتکلXMPPبه عنوان پروتکل بین ابری توسط سرویس انتشار-اشتراک Oاتصال ناهمزمان ابرهای مختلف

مدیریت بحران پیش از وقوعامور نظامی ستاد مشترک

یکپارچه سازی سنسورها ارتباطP2P بدون سرور با استفاده از سرویس انتشار-اشتراک بر مبنای XMPP

پایش وضعیت پزشکی بیمارهوشمند Oجمع آوری داده های سنسورها و ارسال آن به گوشیتجانس سنسورها Oپوشش از عدم

به اشتراک گذاری رویدادهای زندگی کاربر در شبکه های اجتماعی)... دریافت رویدادهای مورد عالقه یک فرد از فردی دیگر )مانند خانواده، دوستان و

Page 24: Applying event driven architecture to mobile computing

24

نتیجه گیری

استفاده از معماری رویدادگرا استفاده از پروتکلXMPP

الیه یکپارچه سازی روی الیهXMPP با عنوان( API) پیاده سازی ویژه برای هر پلت فرم در الیهAPI استفاده از سرویسPubSub و ایجاد یک کانال ارتباطی بین همه اجزا

EDA استفاده ازCEP برای پردازش رویدادها در EDA پردازش متادیتاها با استفاده ازMetadata EPA تعریف قوانین در موتور پردازش رویدادECA

Page 25: Applying event driven architecture to mobile computing

25

کارهای بعدی

اضافه نمودن پارامترهای معنایی به معماری رویدادگرا این پارامترها درCEPاستفاده خواهند شد

تاریخ انقضای آگهی دقت موقعیت مکانیGPS

Page 26: Applying event driven architecture to mobile computing

26

منابع تحقیق

[1] XMPP-enabled SOA-driven middleware for remote patient monitoring system.

[2] Bridging the Devices with the Web Cloud: A Restful Management Architecture over XMPP.

[3] Using XMPP as a transport in Intercloud Protocols

[4] The Definitive Guide. OReilly Media Inc.

[5] XMPP for cloud computing in bioinformatics supporting discovery and invocation of asynchronous web services.

[6] A ProvenanceAware Remote Health Monitoring Middleware. In: IEEE International Conference on Pervasive Computing and Communications.

[7] Sensor Andrew: Large-scale campus-wide sensing and actuation. IBM Journal of Research and Development 55

[8] Lightweight Implementation for Low Power Operating System Contiki. In: International Conference on Ultra-Modern Telecommunications & Workshops.

[9] event.Hub : An Event-Driven Information Hub for Mobile Devices.

[10] From Instant Messaging to Cloud Computing, an XMPP review.

[II] XMPP to the rescue: Enhancing post disaster management and joint task force work.

[12] Mobile XMPP and cloud service collaboration: An alliance for flexible disaster management.

[13] XMPP based Event Notification Middleware for Real-Time and Large Scale Health Care Integrated Arnbient Systems.

[14] Context-Aware and Personalized Event Filtering for Low-Overhead Continuous Remote Health Monitoring.

Page 27: Applying event driven architecture to mobile computing

27

منابع ارائه

Applying Event-Driven Architecture to Mobile Computing Stefan Nitz, Carsten Kleiner, Arne Koschel, Irina Astrova. IEEE 2013

https://en.wikipedia.org/wiki/Complex_event_processing https://en.wikipedia.org/wiki/Sensor https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern https://en.wikipedia.org/wiki/Polling_(computer_science) https://en.wikipedia.org/wiki/Bring_your_own_device https://en.wikipedia.org/wiki/XMPP https://en.wikipedia.org/wiki/Loose_coupling https://en.wikipedia.org/wiki/Push_technology https://en.wikipedia.org/wiki/Application_programming_interface

Page 28: Applying event driven architecture to mobile computing

پرسش و پاسخ

Page 29: Applying event driven architecture to mobile computing

JاJمJش JهJجJوJت JزJاسJپJاJسJگJزJاJرJم