PDA

View Full Version : گفتگو: ارائه راهکاری برای تهیه یک توتال سیستم



M.YasPro
چهارشنبه 23 آذر 1390, 17:37 عصر
سلام دوستان عزیز
وقت بخیر
بنده یه کاری رو شروع کردم که برای یکی از واحدهای یک سازمان نسبتا بزرگ هست .
این واحد چند تا سولوشن داره که میخوان همه اینها توی قالب یک توتال سیستم کار کنه . من سوالم در مورد طراحی و یا تحلیل این پروژه یا پروژه هایی از این دست نیست بلکه میخوام بدونم با چه مدلی این سیستم رو ایمپلمنت کنم ؟
این سیستم یه سری محدودیتها داره که باید در نظر گرفته بشه
امنیت فوق العاده مهمه *من ترجیحا میخوام روی وب پیاده بشه چون احتمال زیاد بارها و بارها باید توسعه داده بشه . بخاطر همین موضوع نمیخوام سورس صفحاتم و دیتابیسم رو حتی admin شبکه اینجا ببینه .
من با یه مدیر قوی تو زمینه IT صحبت که می کردم یادمه که خیلی رو استفاده از وب سرویس تاکید داشتن ، نظر شما چیه ؟ مزایا و معایب اینکار چیه ؟
آیا توی این توتال سیستم حتما باید از یک دیتابیس استفاده بشه ؟مثلا جدول person رو توی همه زیرسیستم ها احتیاج دارم . میدونم که اگر چند تا دیتابیس هم داشته باشم مشکلی پیش نمیاد ولی میخوام اصولی کار کنم .
خیلی حرف زدم میدونم خوندنش حوصله میخواد

ممنون از توجهتون

rahmatr
چهارشنبه 23 آذر 1390, 18:59 عصر
امنیت فوق العاده مهمه

بخاطر همین موضوع نمیخوام سورس صفحاتم و دیتابیسم رو حتی admin شبکه اینجا ببینه

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

باید هنگام طراحی قسمتهای امنیتی یک سایت فکر کنید که دارید روی یک پروژه Open Source کار میکنید. یعنی حتی با دستیابی به سورس سایت امنیت اون به خطر نیافتد.

aminghaderi
پنج شنبه 24 آذر 1390, 11:52 صبح
من با یه مدیر قوی تو زمینه IT صحبت که می کردم یادمه که خیلی رو استفاده از وب سرویس تاکید داشتن ، نظر شما چیه ؟ مزایا و معایب اینکار چیه ؟
بله درست فرمودند ، وبسرویس انعطاف زیادی به برنامه ها (برنامه های بزرگ) می دهند ، و این امکان رو به شما می دهند که :
1- بتوانید نرم افزارتون رو مستقل از سکو بسازید.
2- نرم افزارتون بروی سرور ها مختلف پرا کنده کنید ، سرور هایی با سیستم عامل متفاوت.
3- ....


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

M.YasPro
شنبه 26 آذر 1390, 08:38 صبح
ممنون از جوابها ،
شما چه مدلی رو پیشنهاد می کنید ؟

raziee
سه شنبه 29 آذر 1390, 11:00 صبح
با سلام.
میتونید پروژه رو به بخش هایی تقسیم کنید که به صورت مستقل کار کنند.
مثلا یک بوسیله ی WebService یا WCF بیاید بهش های مختلف رو پیاده کنید و بعد به اون ها درخواست ها رو بدید. برای ارتباط با بخش های مختلف از این سرویس ها استفاده کنید و دسترسی مستقیم به داده ها رو حذف کنید.
UI هم میتونه Web باشه هم Win موضوع اینه که این بخش فقط باید کار ارتباط با کاربر رو داشته باشه و نه بررسی شروط و اعتبار سنجی داده های و ... .
بسته به پروژه میتونید از یک سرور و یا چند سرور مختلف استفاده کنید.
اگر نگران کد ها هستید میتونید از SmartAssembly (http://www.red-gate.com/products/dotnet-development/smartassembly/) برای کد کردن DLL ها استفاده کنید.

AMIBCT
سه شنبه 29 آذر 1390, 11:28 صبح
اول باید معلوم بشود که چه نیازهایی در سیستم وجود دارد
ممکن است بخشی از نیازها در وب قابل پیاده‌سازی نباشد
و مجبور شوید نرم‌افزار کامپایل‌شده ایجاد کنید

ممکن است بخشی از سیستم بسیار پیچیده باشد و برای آن سیستمی آماده وجود داشته باشد
در این شرایط بقیه‌ی سیستم خودش را باید با این بخش سازگار کند و گزینه‌ها برای انتخاب محدود می‌شوند

باید معلوم شود که زیرساخت‌های سخت‌افزاری موجود چه هستند
یا امکان تغییرات تا چه اندازه ممکن است
محدودیت‌های سخت‌افزاری می‌توانند در انتخاب نرم‌افزار اثرگذار باشند

باید معلوم شود که کاربران چه کسانی هستند، راه ارتباطی آنان با سیستم چه می‌خواهد باشد( اینترنت، اینترانت، آنلاین یا آفلاین )

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

بنابراین اول باید اطلاعات کاملی جمع‌آوری کنید
سیستم‌های موجود رو بررسی کنید
از موارد مشابه تحقیق و پرس‌وجو کنید
طراحی کنید و پیاده‌سازی رو انجام بدید

پ.ن:
توتال سیستم: سیستم جامع
سولوشن: راه حل
ایمپلیمنت: پیاده‌سازی

استفاده از واژه‌هایی انگلیسی که معادل با معنای فارسی دارند باعث نمی‌شود که دیگران فکر کنند شما متخصص هستید
این کار از دید من نشانه‌ی خوبی از شخصیت فرد نیست

M.YasPro
چهارشنبه 30 آذر 1390, 11:29 صبح
اول باید معلوم بشود که چه نیازهایی در سیستم وجود دارد
ممکن است بخشی از نیازها در وب قابل پیاده‌سازی نباشد
نیازها نیازهای خاصی نیست ، مثلا ثبت ورود و خروج از یک درب شرکت ، یا ثبت گزارش روزانه یک واحد یا ..، تا الان به مسئله غیر قابل حل یا جدیدی بر نخوردم و همشون رو میشه روی وب پیاده کرد .


ممکن است بخشی از سیستم بسیار پیچیده باشد و برای آن سیستمی آماده وجود داشته باشد
در این شرایط بقیه‌ی سیستم خودش را باید با این بخش سازگار کند و گزینه‌ها برای انتخاب محدود می‌شوند
پیچیده ترین بخش سیستم رو روی وب پیاده سازی کردم قبلا.


باید معلوم شود که زیرساخت‌های سخت‌افزاری موجود چه هستند
یا امکان تغییرات تا چه اندازه ممکن است
محدودیت‌های سخت‌افزاری می‌توانند در انتخاب نرم‌افزار اثرگذار باشند

شبکه هدف محلی کابلی هست، کاربرها در حال حاضر و آینده آنلاین با هسته ممرکزی ارتباط دارند.از نظر سخت افزاری با این کاری که من میخوام انجام بدم تا اینجا به مغایرتی برنخوردم ، از طرفی نرم افزارهای دیگه مثلا مثل همکاران سیستم و ... اینجا داره کار میکنه.


لازم است که طراح با انواع سخت‌افزارها و نرم‌افزارهای موجود آشنایی داشته باشد و تکنیک‌های مختلف پیاده‌سازی نرم‌افزار را بشناسد
یک اشتباه ساده در طرح اولیه باعث می‌شود پس از گسترده شدن سیستم مشکلات غیرقابل جبرانی به وجود آید
هدف من از طرح این تاپیک طراحی این سیستم نیست ، هدف من مشاوره در مورد چگونه پیاده سازی کردن نرم افزارهای تحت وب با در نظر گرفتن ارتباط با دیتابیس و امنیتشون هست ، مدونم که پیاده سازی مستلزم طراحی اولیه هست ولی من میخوام یه دید کلی از پیاده سازی های امروزی داشته باشم .


استفاده از واژه‌هایی انگلیسی که معادل با معنای فارسی دارند باعث نمی‌شود که دیگران فکر کنند شما متخصص هستید
این کار از دید من نشانه‌ی خوبی از شخصیت فرد نیست
قصد من متخصص جلوه دادن خودم نبوده واقعا،من خودم هم از بکار بردن الفاظ و اصطلاحات انگلیسی دل خوشی ندارم اما الان طوری شده که بیشتر اشخاص حتی اونایی که تو IT هم فعالیت ندارند از اصطلاحات انگلیسی استفاده می کنند، بخاطر همین من هم ناخواسته و سهوا سوار به این موج شدم . اما در هر صورت حق با شماست .

ممنون از توجهتون

AMIBCT
چهارشنبه 30 آذر 1390, 15:23 عصر
به نظر می‌رسد هدف شما تهیه‌ی ابزاری مانند یک CMS باشد
به هر حال استفاده از یک CMS متن‌باز برای کارهای ساده و تهیه‌ی افزونه برای آن روش خوبی است که سرعت توسعه را افزایش می‌دهد و در عین حال امنیت خوبی هم به دست می‌آید

مثلا استفاده از ابزاری مثل Joomla و نوشتن افزونه‌های موردنیاز برای اون کاری هست که می‌تونید انجام بدید
چون آشنایی زیادی با ASP.NET ندارم نمی‌دونم آیا سیستم مشابهی در این زبان هست یا نه