PDA

View Full Version : سوال درباره برنامه سمت سرور



tootro20
یک شنبه 15 اسفند 1395, 21:55 عصر
سلام، میخوام یک برنامه چت بنویسم اما یه سوال دارم اونم اینکه وقتی ما برنامه سمت سرورمون نوشتیم و حتی پورتشو مشخص کردیم و برنامه سمت سرور داره پیام هارو دریافت و به گیرنده ارسال میکنه آیا نیازی به Sql server خواهد بود برای پیام رسانی؟؟ همچنین آیا نیازی به Restful SOAP خواهد بود؟؟ اگر تعداد کابران بیشتر شد باید ما چطور سرور های سرویس دهندمونو توسعه بدیم تا پاسخگوی این امر باشه در کنار نرم افزار سرویس دهندمون؟
نرم افزار چت که در اختیار همه هست و نیاز به سرور هست آیا اتصال مستقیم به SQL server که برای ورود نیاز به یوزر پسورد لاگین پایگاه داده خواهد بود امن هست یا میشه امن بشه؟؟ اگر امن نیست چطور میشه امن کرد؟

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

برای کار با توابع تحت وب باید چی یاد بگیرم؟ بگم با سی شارپ کار میکنم.

CsharpNevisi
دوشنبه 16 اسفند 1395, 10:30 صبح
سلام ..
شما نیاز به ارتباط بلادرگ داری برای چت .. راه های مختلفی وجود داره .. مثل : سوکت پروگرمینگ , استریم آنلاین (بیشتر برای تماس تصویری استفاده میشه و نیاز به سرورهای پر هزینه هستش) و یا بهترین راه SignalR .. !!
راجب SignalR بخونید .
امنیت هم به تخصص شما بستگی داره که چطور راه های نفوط را ببندید , تلگرام پیغام ها رو داخل پایگاه داده ذخیره میکنه .

tootro20
دوشنبه 23 اسفند 1395, 22:42 عصر
سلام.
منظور منم همین بود
اما سوال من این هست که دقیقا بگم من میخوام یک پیام رسان راه اندازی کنم اما باید حتما مستقیم به برنامه سمت سروری که خودم نوشتم دسترسی پیدا کنم تا با واسطه اون نرم افزار سمت سرور به دیتابیس پیام هارو بنویسم یا اینکه مستقیم میتونم از سمت کلاینت به سرور وصل شده و سپس در دیتابیس اطلاعات ذخیره کنم؟؟
در ذخیره سازی سمت دیتابیس این مشکل میتونه باشه که بهش میگن سرور کش شده باشه یا نه.
وقتی تعداد کاربران ما زیاد شد و سرور نکشید باید چیکار کنیم؟
لود بالانسینگ میشه کرد؟؟
راه امنیتی برای ایمن کردن و لو نرفتن رمزعبور دیتابیس در صورتی که مستقیم بهش وصل بشیم سراغ دارید؟
به نظرم وصل شدن به دیتابیس با واسطه بهتر باشه یا استفاده از SOA restful اینا نظر شما چیه؟

CsharpNevisi
سه شنبه 24 اسفند 1395, 10:05 صبح
اما سوال من این هست که دقیقا بگم من میخوام یک پیام رسان راه اندازی کنم اما باید حتما مستقیم به برنامه سمت سروری که خودم نوشتم دسترسی پیدا کنم تا با واسطه اون نرم افزار سمت سرور به دیتابیس پیام هارو بنویسم یا اینکه مستقیم میتونم از سمت کلاینت به سرور وصل شده و سپس در دیتابیس اطلاعات ذخیره کنم؟؟
برای امنیت بیشتر بهتره از وبسرویس استفاده کنید یا API ... اگر از SignalR استفاده کنید , شما در سرور یک هاب باید داشته باشید که پیام ها به اون منتقل میشن و بعد بین کلاینت ها پخش میشن .. تو هاب همه کار میتونید انجام بدید.


در ذخیره سازی سمت دیتابیس این مشکل میتونه باشه که بهش میگن سرور کش شده باشه یا نه.
نه مشکلی از این بابت نیست البته بستگی به پایگاه داده و کدنویسی شما هم داره ولی تو روال عادی همچین مشکلی پیش نمیاد.


وقتی تعداد کاربران ما زیاد شد و سرور نکشید باید چیکار کنیم؟
دیگه شما باید بسته به نیازتون سرورتونو انتخاب کنید , البته به زبان برنامه نویسی که انتخاب میکنید و فریم ورکتون و کد نویسی بهینه شما هم بستگی داره .


لود بالانسینگ میشه کرد؟؟
اگه شما بخواید لود بالانسر بزارید چون چندتا سرور مختلف میشن و چندتا اینستنس مختلف از اپلیکیشن شما رو سرورهای مختلف قرار میگیره و یه دیسپچر میاد بار رو روی سرورهای مختلف توزیع میکنه و اپلیکیشن شما دخلی به این مسئله نداره شما باید با یک سری الگوهای طراحی یا معماری میکروسرویس هابتون رو برای همه اینستنس ها روی سرورهای مختلف یکی کنید و از یک هاب استفاده بشه .


راه امنیتی برای ایمن کردن و لو نرفتن رمزعبور دیتابیس در صورتی که مستقیم بهش وصل بشیم سراغ دارید؟
اگر یک هکر درست درمون بخواد سیستم شما رو هک کنه نه سراغ ندارم .. چون همه نرم افزارهایی که روی سیستم عامل ویندوز اجرا میشن دیکد میشن (نهایتا به اسمبلی) , حتی ویندوز هم براش کرک میاد :لبخند:
پلتفرم اندروید هم که هک کردنش ساده تره و فقط شما میتونی خوندن کداتو با یه سری ابزارها برای هکر سخت کنی ولی باز میشه هکش کرد , بهتره این کارو به وبسرویس بسپاری .


به نظرم وصل شدن به دیتابیس با واسطه بهتر باشه یا استفاده از SOA restful اینا نظر شما چیه؟
اره دیگه شما یه وبسرویس مینویسی که حالا یا Soap هستش یا Rest .. و دیگه همه عملیات اعتبارسنجی و ... رو روی سرور انجام میدی و کسی نمیتونه کدهای سرور شما رو دیکد کنه و با بستن راه های نفوط تا حد خیلی زیادی جلوی هک شدن سیستمو میگیری .

danialafshari
چهارشنبه 25 اسفند 1395, 20:26 عصر
با سلام
اگر برنامه ای برای چت multiple بنویسید بهتره پیام ها یک سابقه ای داشته باشن
مثل whats و teleg یا برنامه های دیگه که من می تونم چت های قدیمیم رو ببینم و برای این کار هم نیاز به دیتابیس دارید
موفق باشید