ورود

View Full Version : برنامه تحت شبکه با تعداد کلاینت زیاد



Ana_VB
جمعه 16 آبان 1393, 15:12 عصر
سلام

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

یوسف زالی
شنبه 17 آبان 1393, 09:27 صبح
سلام.
بستگی داره به نوع برنامه تا کامپوننت درستی بهتون معرفی بشه. Indy , Jedy , ADO , FireDac , و ... همگی روی شبکه (هم) کار می کنند.
برنامتون دیتابیسی هست؟

ضمنا دوره این جملات هم سر اومده:
"دلفی قدرت انجام این کار رو داره ..."

در مورد برنامه تون باید توضیحات کاملتری بدید.

benyaminrahimi
شنبه 17 آبان 1393, 19:09 عصر
دوست من این قا بلیت از نسخه اولیه دلفی وجود داشته ... لازم بذکر است هنوز هم 60 در صد برنامه های مطرح مالی اداری در ایران با دلفی نوشته شده ... نمونش همکاران -هلو- رایان نظم - ......
این خواسته شما بیشتر وابسته به نوع نوشتن برنامه و تجهیزات داره زیاد ربطی به زبون برنامه نویسی نداره

Ana_VB
شنبه 17 آبان 1393, 23:56 عصر
خیلی ازتون ممنونم که کمک می کنید



ماکروفر که نیست!
دست شمام درد نکنه.



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



بستگی داره به نوع برنامه تا کامپوننت درستی بهتون معرفی بشه. Indy , Jedy , ADO , FireDac , و ... همگی روی شبکه (هم) کار می کنند.
برنامتون دیتابیسی هست؟
یه دیتابیس کوچیک روی سرور هست. توضیحات بیشتر هم اینکه:
سرور هر روز یا چند بار در روز لیست 2 یا 3 تا نرم افزار رو به 4600 تا کلاینت میفرسته و میگه مثلاً از این نرم افزارها استفاده کنید. بعد کلاینت ها هم هر چند دقیقه یکبار فایلهایی که توی این برنامه ها کار می کنن رو save as میکنن و آدرسش رو برای سرور میفرستن و سرور داخل دیتابیس خودش ذخیره میکنه و یک تاییدیه برای کلاینت میفرسته که آدرس فایل شما دریافت شد.
فقط پیچیدگیش اینه که توی شبکه ممکنه اکثر کلاینت ها (مثلاً سه هزاروهفتصدتاشون) باهم آدرس فایلهاشون رو برای سرور بفرستن مهم اینه که سرور بتونه زود تقریباً مثل ماکروفر آدرسها رو ذخیره کنه و به همه کلاینتها تایید بده.

حالا به نظرتون باید از کدوم اینا که گفتید یا به قول این دوستمون (benyaminrahimi (http://barnamenevis.org/member.php?94958-benyaminrahimi)) از کدوم نوع نوشتن برنامه و تجهیزات استفاده کنم تا با این تعداد کم نیاره؟

یوسف زالی
دوشنبه 19 آبان 1393, 12:34 عصر
با اس کیو ال سرور اگر پیاده سازی کنید مشکلی پیش نمیاد.
از اونجا که کلاینت ها هر چند دقیقه اعلام وضعیت می کنند، در جواب می تونند از لیست سرور هم مطلع بشن.

Ana_VB
دوشنبه 19 آبان 1393, 13:07 عصر
اس کیو ال سمت کلاینت هم باید نصب بشه؟

اگه بخوام فقط از سوکت استفاده کنم چی؟

یوسف زالی
دوشنبه 19 آبان 1393, 13:40 عصر
فقط روی سرور باید نصب باشه.
در مورد سوکت تجربه لازمه برای راهنمایی شما رو ندارم. بصورت خصوصی از دوستی خواستم پاسخ شما رو بده.

Ana_VB
دوشنبه 19 آبان 1393, 14:46 عصر
در مورد سوکت تجربه لازمه برای راهنمایی شما رو ندارم. بصورت خصوصی از دوستی خواستم پاسخ شما رو بده.
شرمندم کردید. خیلی خیلی از شما ممنونم و بی صبرانه منتظر پاسخ دوستتون هستم

joker
دوشنبه 19 آبان 1393, 17:33 عصر
نیازی به برنامه نویسی سوکت نیست
کافیه سرور و بستر شبکه خوبی داشته باشید( در مورد درخواستهای همزمانی که ممکنه اتفاق بیفته ) و میشه گفت تقریبا هیچ باری روی سمت کلاینتی که با دلفی نوشتین نمیفته

Ana_VB
سه شنبه 20 آبان 1393, 09:37 صبح
نیازی به برنامه نویسی سوکت نیست

به چه چیزی نیازه!؟ اطلاعات با چی رد و بدل شه؟

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

Mask
سه شنبه 20 آبان 1393, 18:56 عصر
سلام.
در روال عادی در دلفی بوسیله مجموعه indy ما دیگه مستقیم با سوکتها کار نمیکنیم.البته نه اینکه نتونیم . این مجموعه کلیه لوازمات کار با سوکتها رو خیلی تروتمیزتر و راحتتر برای برنامه نویس فراهم کرده است. در ضمن این رو هم مد نظر داشته باشید ، کلیه ارتباطات شبکه ای در لایه های پایین تر از سوکت و api های لازم در حال استفاده هستند.
و در مورد کار شما :
پروژه شما به درستی تحلیل نشده (با چند خط توضیح نمیشه روش مطمئن و منطقی و بدون نقصی رو پیشنهاد کرد)، ممکنه توضیحاتی که در ذیل میدهم در ردیف دوم بعد از بانک اطلاعاتی Sql یا MySql قرار بگیره (اگه کامل تر توضیح بدهید). اما با این چند خط توضیح استفاده از تکنولوژی و روش DataSnap بر بستر Http یا Tcp رو پیشنهاد میکنم بهتون.
در این روش 50 درصد کار رو خود دلفی و سیستم عامل گردن گرفته و شما فقط با یک سری تنظیمات راحت میتونید از برنامتون به خوبی استفاده کنید.(برای شروع هم از ویدئوهایی که اقای عشایری لینک گزاشتند میتونید استفاده کنید).
موفق باشید.

Ana_VB
چهارشنبه 21 آبان 1393, 18:49 عصر
Mask (http://barnamenevis.org/member.php?74166-Mask)
عزیز خیلی ممنونم توضیحات و لینکهای خیلی مفیدی بود
پروژه ام توضیحات خاص دیگه ای نداره یعنی قرار نیست کار دیگه ای انجام بده. مدیر شبکه از طریق برنامه ی سروری که قراره بنویسم دو تا نرم افزار انتخاب میکنه و اسم این نرم افزارها برای تمام کلاینتها ارسال میشه. در سمت کلاینتها اسم این نرم افزارها مثل یک پیغام روی سیستم نمایش داده میشه. کاربر کلاینتها وقتی با این نرم افزارها کار میکنن فایلهایی رو که ذخیره می کنن رو آدرسش رو در برنامه ی من وارد میکنن و یک سری اطلاعات دیگه مثلا مشخصات شخصی که این فایل رو ساخته و تاریخ و ساعت و چیزای دیگه وارد میکنه و میفرسته برای سرور.
در سمت سرور هم این اطلاعات در بانک ذخیره میشه و یک تاییدیه که اطلاعات شما با موفقیت ثبت شد و یک شماره سریال از بانک خونده میشه و برای کاربر فرستاده میشه.
همین چیز دیگه ای نداره. شبکه دامینه. دیتابیسم احتمالاً 2008 MS SQL Server بشه. سرور قوی دارن با Windows Server 2008 R2. سیستم عامل کلاینتها از XP , 7 هست تا حتی شاید 10
اگه اطلاعات دیگه ای هم لازمه و باید بدونم بگید تا برم درباره اش تحقیق کنم.

حالا از بابت Datasnap مطمئن باشم که با این حجم بالای ارسال همزمان اطلاعات از کلاینتها به سرور توی دریافت اطلاعاتها سرور دچار تاخیر و ترافیک نمیشه؟
شما با Datasnap و با این حجم تجربه ای دارید؟ آخه نمیخوام برم بین راه بعد بفهمم Datasnap خوب نیست

Mask
پنج شنبه 22 آبان 1393, 00:51 صبح
پیشنهاد میکنم در مورد پروژه های بزرگی که با دیتا اسنپ ساخته شده جستجو کنید.
تعداد جوابگویی و ساپورت کلاینتها بیشتر بر میگرده به داشتن یه سرور خوب، پهنای باند مناسب، سیستم خوب و همچنین ارتباط بدون قطعی.

joker
پنج شنبه 22 آبان 1393, 15:22 عصر
به چه چیزی نیازه!؟ اطلاعات با چی رد و بدل شه؟

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

همین ado کارت را راه میندازه
با توجه به اینکه نوشتن برنامه های مولتی ترد و مولتی یوزر و از این دست عنوانها دقت و تجربه زیادی میخواد اصلا پیشنهاد نمیکنم خودتون بخواین یکی از پایه بنویسین
بجاش این پردازش سنگین را بزارید به عهده دیتابیس سرورتون که قبلا n تا مهندس با تجربه تولیدش کردند :)
شما فقط بستر شبکه مناسبتی براش در نظر بگیرید ، برای بقیه مشکلات کافیه همین ADO دلفی نازنین.

Ana_VB
پنج شنبه 22 آبان 1393, 15:59 عصر
همین ado کارت را راه میندازه
با توجه به اینکه نوشتن برنامه های مولتی ترد و مولتی یوزر و از این دست عنوانها دقت و تجربه زیادی میخواد اصلا پیشنهاد نمیکنم خودتون بخواین یکی از پایه بنویسین
بجاش این پردازش سنگین را بزارید به عهده دیتابیس سرورتون که قبلا n تا مهندس با تجربه تولیدش کردند :)
شما فقط بستر شبکه مناسبتی براش در نظر بگیرید ، برای بقیه مشکلات کافیه همین ADO دلفی نازنین.
باشه. من به پیشنهاد شما اعتماد می کنم و همه رو میذارم به عهده ADO دلفی نازنین. منم بستر شبکه مناسبی آماده میکنم خدا کنه این ADO منو ضایع نکنه. اگه یه وقت باز مشکلی بود بازم روی کمک همه ی شما حساب میکنم.
از تک تک شما که بهم کمک کردید ممنونم