PDA

View Full Version : سوال: 100 نسخه نرم افزار بر روی 100 کلاینت و گزارش گیری بر روی یک سرور



m_h_2007
شنبه 09 اردیبهشت 1391, 20:17 عصر
با سلام خدمت اساتید گرامی ، بنده نرم افزاری با دلفی و بانک اطلاعاتی Access طراحی کردم که قرار است در 100 نقطه یک شهر و بر روی 100 کلاینت نصب شود . کاربران در این 100 کلاینت درون نرم افزارهایشان اطلاعاتی را درج می نمایند و قرار است بر حسب اطلاعات این 100 دیتابیس گزارشاتی بر روی یک سرور گرفته شود ، یهنی در واقع این 100 کلاینت تحت یک شبکه اطلاعات دیتابیس را به سرور ارسال کرده و سرور اطلاعات را جمع آوری نموده و از آنها درون نرم افزار دیگری گزارشاتی را ارائه دهد . سوالاتی برایم مطرح شده است که یاری اساتید بزرگوارم را می طلبد :
1- آیا Vpn Server گزینه مناسبی برای شبکه نمودن و برقراری ارتباط بین کلاینت ها و سرور جهت ارسال اطلاعات به سرور می باشد ؟ در بعضی موارد به بنده اینترانت پیشنهاد شده است که میخواهم بدانم که راه حل خوبی است ؟
2- برای بالا بردن سرعت اطلاعات به سمت سرور چه راح حلی وجود دارد ؟
3- آیا بانک اطلاعاتی Access بر روی کلاینت ها هنگام ارسال اطلاعات به سرور کار را دچار مشکل می کند ؟یا بایستی سیستم را روی SQL Server منتقل کنم ؟
4- چون ما از یک شبکه wan استفاده می کنیم آیا بایستی داده ها هنگام انتقال رمزنگاری شوند ؟
5- امنیت ارسال اطلاعات چگونه است ؟
6- بهترین نوع شبکه با بالاترین سرعت ممکن و بالاترین حد امنیت در ارسال اطلاعات و تا حد امکان ارسال لحظه به لحظه اطلاعات چیست ؟

tiphooo
یک شنبه 10 اردیبهشت 1391, 02:01 صبح
دوست عزیز ارتباط مستقیم با سرور و درج اطلاعات این 100 کلاینت از نظر من سیستم ها را کند کرده و با وضعیت اینترنتی که ما داریم اصلا توصیه نمی شود به نظر من بهترین حالت پیاده سازی Replication موجود در SQlServer به صورت کد نویسی است چون خود Replication هم بسیار کند است
شما باید فقط رکوردهایی را که جدیدا در کلاینتها ایجاد شده و یا تغییر کرده اند به سرور منتقل کنید که سرعت بسیار بالایی خواهید داشت در سمت کلاینتها اگر از Access استفاده کرده اید بگذارید به همان حالت بماند چون هزینه نگهداری SQLSrver بر روی 100 کلاینت سنگین است ولی در سمت سرور SQLServer باشد بهتر است در مورد چگونگی کار اگر دوست داشتید بگوئید تا بیشتر توضیح دهم
در مورد برنامه های چند لایه هم با توجه به سوال شما ظاهرا تجربه ای در این زمینه نداشته اید و به نظر من یادگیری آن کلا شما را از ادامه کار منصرف می کند

ولی شاید دوستان تجربیات بهتری داشته اند و بگذارید آنها هم اعلام نظر کنند

m_h_2007
یک شنبه 10 اردیبهشت 1391, 13:30 عصر
با تشکر از شما استاد گرامی ، از اطلاعات مفید شما بسیار بهره مند شدم ، بله درست است در سمت کلاینتها از Access استفاده کرده ام و در سرور از SQL Server ، حال برای ادامه کار آشنایی کافی برای برقراری ارتباط بین دیتابیس های Access و SQL Server ندارم و متاسفانه از روند ارسال تغییرات بانک Access به SQL Server موجود در سرور اطلاعاتی ندارم و خواهشمندم مم را یاری فرمایید تا به خوبی بتوانم پروژه رو با کمک های جنالعالی انجام داده و به پایان برسانم.با تشکر از شما

tiphooo
یک شنبه 10 اردیبهشت 1391, 23:00 عصر
1) شما برای سرورتان باید IP Valid تهیه کنید که کلاینتها بتوانند با آن IP اطلاعات جدید را به سرور منتقل کنند
2) اگر فیلدهای ID شما AutoNumber است در هنگام ارسال به سرور با مشکل مواجه خواهید شد زیرا مثلا ID یک برای تمام 100 کلاینت متصور است بنابراین در هر جدولی باید یک فیلد برای اینکه متوجه شوید این از کدام کلاینت آمده لازم است مثلا به هر کدام شماره ای اختصاص دهید از 1 الی 100 یعنی علاوه بر ID که AutoNumber است فیلد دیگری برای تفکیک اینکه از کدام کلاینت آمده لازم است و در کل در سمت سرور هم کنترل آن راحت تر می شود زیرا خطای داده ای هر کلاینت را به خوبی پیدا کرده و به او اطلاع می دهید
3) برای ارتباط با DataBase راحت تر این است که از ADO استفاده شود که این فرقی نمی کند که در سمت کلاینت که اکسس است و در سمت سرور که SQLServer است. ADO با هر دو به راحتی ارتباط برقرار می کند
4) فیلد دیگری در سمت کلاینتها برای هر رکورد درنظر بگیرید تا با ارسال به سرور این فیلد مقدار بگیرد و موجب ارسال دوباره به سرور نگردد
5) کلاینتها مانند قبل کارهای روزمره خود را با استفاده از Access انجام می دهند و فقط هر وقت خواستند یا به صورت دستی و با اتوماتیک مثلا هر یک ساعت یکبار اطلاعات به روز شده آنها به سرور منتقل می شود
6) بعد از ارسال هر رکورد به سرور فیلد سمت کلاینت که در مورد 4 دکر شد با فیلد AutoNumber ایجاد شده در سرور به روز رسانی شود
7) در جایی از سیستم محلی را برای به روز رسانی (مثلا یک فرم) ایجاد کنید و رکوردهای تمام جداولی را که فیلد ذکر شده آنها در مورد 4 خالی است ارسال کرده و فیلد آنها را مانند مورد 6 پرکنید
8) در صورت نداشتن IP Valid در حال حاضر برای تست نرم افزار شما با یک VPN به اینترنت وصل شوید که یک IP Valid موقت به شما می دهد و برای تست نرم افزار جوابگوست.

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