مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mansooreh_64

عضویت از 1395/08/04

راهنمایی برای پیاده سازی یک سیستم بلادرنگ

  • سه شنبه 30 اردیبهشت 1399
  • 08:37
تشکر میکنم

سلام دوستان 

یه راهنمایی میخواستم ازتون در مورد سیستمی که قصد تحلیل و پیاده سازی ش رو دارم. 

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

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

برای چنین سامانه ای باید در مورد برنامه نویسی Real time سرچ کنم ؟ آیا از حوزه ی هوش تجاری و ابزارهای هوش تجاری خارج میشه ؟

ممنون میشم راهنمایی کنین :) 

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • چهارشنبه 31 اردیبهشت 1399
  • 13:27

سلام

این مواردی که شما فرمودید یک سیستم داشبورد معمولی است که تقریبا در بیشتر سامانه های اندازه متوسط هم دیده میشه.

دریافت اطلاعات از طریق سرویس و پردازش و نشان دادن آن روز نمودار چیز خیلی خاصی نیست و شما می توانی با هر زبانی مثل پایتون یا سی شارپ هم پیاده کنی

بحث Real Time  خیلی خیلی مفصل تر از این بحث هاست و شما برای تولید الپیکیشن ریل تایم با محدودیت های بسیار زیادی مواجه هستی!! مثلا سیستم عامل! شما اگر زبان ریل تایم انتخاب می کنی باید سیستم عاملت هم ریل تایم باشد و دیگر نمی توانی مثلا از ویندوز سرور استفاده کنی!

من توصیه ام این است که فعلا کار را برای خودت سخت نکنی و با همین سی شارپ و کتابخانه های خوب برای نمودار مو داشبود مثل eChart یا CHARTJS کار کنی

کاربر سایت

mansooreh_64

عضویت از 1395/08/04

  • پنجشنبه 1 خرداد 1399
  • 10:15

ممنونم آقای قاسمی. 

من میخوام ی تاکید دیگه بر (سرعت) بکنم و دوباره ازتون راهنمایی بگیرم :

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

پیشنهاد شما همچنان سی شارپ هست ؟ 

کاربر سایت

AmirGhasemi

عضویت از 1392/02/25

  • پنجشنبه 1 خرداد 1399
  • 11:15

سلام مجدد

خب سوال عوض شد!

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

واژه بلادرنگ یا Real Time  تعاریف ویژه ی خودش را دارد و زمانی مفهوم پیدا می کند که شما اصلا تاخیر زمانی نداشته باشید یا وجود تاخیر زمانی منجر به فاجعه گردد. حالا این تاخیر چه یک دقیقه باشد چه هزارم ثانیه! مثلا در یک صفحه راداری اگر بلادرنگ نباشد حتا با تاخیر کم هم منجر به فاجعه می گردد. در برنامه نویسی بلادرنگ، سیستم عامل نقش بسیار مهمی دارد و معمولا لینوکس و ویندوز جزو سیستم عامل های بلادرنگ محسوب نمی شوند.

پس من از مفهوم بلادرنگ در جواب شما فاصله می گیرم.

اما جواب سوال شما:

خب شما فرمودید 1 دقیقه! 1 دقیقه اتفاقا زمان بسیار زیادی است! خب پس زمان به اندازه کافی داریم! من توصیه می کنم قسمت backend  پروژه تان را حتما با ASP. Core C# 3.1  انجام دهید! فوق العاده سرعت پاسخگویی بسیار بسیار زیادی دارد و اصلا قابل مقایسه با دیگر زبان ها نیست. البته شما در متن سوالتان گونه ای صحبت کردید من حدس زدم شاید مفاهیم هوش مصنوعی نیز در میان است. اگر چنین بود و محاسبات ریاضی پیچیده بود به سراغ پایتون بروید.

در بحث دیتابیس اگر بصورت Code First  عمل می کنید خب طبیعتا به سراغ Entity Framework .Core  بروید که ان نیز در سرعت، زبانزد عام و خاص است اما بنده اینجا چند تبصره خدئمتتان اعلام می کنم.

تبصره 1: طراحی قسمت CRUD  شما خیلی خیلی مهم است در چنین پروژه ای! کار با  DbContext  را حتما به خوبی یاد بگیرید و بدانید چه وقت از چه چیزی باید استفاده کنید در مدیریت DbContext  و عمل Dispose  کردن این موجود شیطانی!

تبصره 2: اگر حجم عظیمی از اطلاعات را واکشی می کنید من توصیه ای دارم مبنی بر استفاده از SP  در زمان هایی که حجم اطلاعات بسیار بالاست. اینجا را باید از Linq  صرف نظر کنیم

تبصره 3:  محاسبات ریاضی را مدام کپچر کنید و در بهیهنه سازی آن کوشا باشید

تبصره 4: در سیستم هایی که زمان بسیار اهمیتد ارد معمولا مباحث نرمال سازی پایگاه داده باید نادیده گرفته شود.

باز اگر سوالی بود در خدمتم

کاربر سایت

mansooreh_64

عضویت از 1395/08/04

  • پنجشنبه 1 خرداد 1399
  • 15:20

من واقعا از پاسخ تون و از بابت وقتی که میذارین و با حوصله جواب میدین سپاسگزارم. 

من چند دقیقه پیش در جریان جزئیات پروژه قرار گرفتم و الان شک دارم که جای مطرح کردن اون توی این تاپیک هست یا خیر ، اما اگه اجازه بدین میخوام همینجا مطرحش کنم . موضوع پروژه ، نوشتن یک Trader (معامله گر) اتومات هست! که در لحظه باتوجه به الگوریتم تحلیلی ثابتی که بهش داده شده، تصمیم گیری کرده و بصورت اتوماتیک خرید و فروش انجام میده!

اینترفیس خاصی نیاز نداره اما باید پردازش و معاملات رو اتوماتیک انجام بده و البته لاگ معاملات و برخی از پردازش هاش رو هم به end user بده. 

در چنین شرایطی، پیشنهادتون چی هست ؟ 

من بازم تشکر میکنم از شما :) 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)