نمایش نتایج 1 تا 13 از 13

نام تاپیک: تبدیل برنامه از تحت lan به تحت اینترنت

  1. #1
    کاربر دائمی آواتار ali_abbasi22145
    تاریخ عضویت
    آذر 1382
    محل زندگی
    يك جايي در پايتخت
    پست
    1,350

    تبدیل برنامه از تحت lan به تحت اینترنت

    سلام به اساتید

    من یک برنامه با دلفی 7 و SQL Server 2000 نوشتم که تحت lan خیلی خوب کار می کند و تستهای خودش را هم داده است.
    حال می خواهم کاربران تحت اینترنت برنامه من را باز کنند و با آن کار کنند یا حداقل یک برنامه کوچک شده بنویسم که با آن کاربران داده وارد کنند یا ویرایش کنند حال چه کامپوننت و راه حل ساده در این زمینه است؟

  2. #2
    با توضیحات کمی که دادید، لازم نیست کار خاصی انجام بدید. البته خوبه مسائلی مثل سرعت و امنیت را بهش بیشتر دقت کنید، چون هم سرعت اتصال کاربران در شبکه اینترنت کمتر از یک Lan هست، و هم مخاطرات امنیتی اینترنت بیشتره. البته ممکنه با توجه به نوع برنامه تون ملاحظات دیگه ایی هم لازم باشه.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  3. #3
    کاربر دائمی آواتار ali_abbasi22145
    تاریخ عضویت
    آذر 1382
    محل زندگی
    يك جايي در پايتخت
    پست
    1,350
    نقل قول نوشته شده توسط علی کشاورز مشاهده تاپیک
    با توضیحات کمی که دادید، لازم نیست کار خاصی انجام بدید. البته خوبه مسائلی مثل سرعت و امنیت را بهش بیشتر دقت کنید، چون هم سرعت اتصال کاربران در شبکه اینترنت کمتر از یک Lan هست، و هم مخاطرات امنیتی اینترنت بیشتره. البته ممکنه با توجه به نوع برنامه تون ملاحظات دیگه ایی هم لازم باشه.
    سلام
    آخه استاد عزیز چیزی که دنبالشم گفتم ، چه توضیح دیگری می خواهید که من بیان کنم؟
    متوجه نمی شوم که لازم نیست کار خاصی انجام بدهم یعنی اینقدر آسان است!؟
    فعلا بعث امنیت و سرعت خیلی مورد نظرم نیست البته یکسری کارهای امنیتی تحت lan در آن لحاظ شده است.
    لطفا شما بیشتر راهنمایم کنید.

  4. #4
    آخه من چی رو راهنمایی کنم؟! اگه میخواید بدونید که برنامه ایی که از SQL Server استفاده می کنه و در LAN تست شده در اینترنت هم کار میکنه: بله کار میکنه SQL Server را روی یه سرور نصب کنید و آدرسش رو به برنامه بدید، مثل سابق کار میکنه، البته با سرعت پایین تر.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  5. #5
    کاربر دائمی آواتار ali_abbasi22145
    تاریخ عضویت
    آذر 1382
    محل زندگی
    يك جايي در پايتخت
    پست
    1,350
    سلام
    آدرس را کجا در برنامه بدهم؟

  6. #6
    آدرس را کجا در برنامه بدهم؟
    در ConnectionString ایی که برای ارتباط با SQL Server استفاده می کنید.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  7. #7
    نقل قول نوشته شده توسط علی کشاورز مشاهده تاپیک
    آخه من چی رو راهنمایی کنم؟! اگه میخواید بدونید که برنامه ایی که از SQL Server استفاده می کنه و در LAN تست شده در اینترنت هم کار میکنه: بله کار میکنه SQL Server را روی یه سرور نصب کنید و آدرسش رو به برنامه بدید، مثل سابق کار میکنه، البته با سرعت پایین تر.
    آقای کشاورز تفاوت سرعت در معماری سه لایه و این روش که دولایه هست در برنامه های تحت وب چیه؟

  8. #8
    آقای کشاورز تفاوت سرعت در معماری سه لایه و این روش که دولایه هست در برنامه های تحت وب چیه؟
    در Web base شما بصورت سه لایه کار می کنید: Client <-> Web App <-> Database Server
    اما بطور کلی نمی تونم درباره تفاوت سرعت Client\Server با 3-tier نظر خاصی بدم، چون به عوامل مختلفی بستگی داره. در ساده ترین حالت ممکن می تونید بگید که در Client\Server داده ها در یک مرحله منتقل میشند، و در 3-tier در دو مرحله.
    باید با توجه به نوع پروژه تصمیم گرفت که از کدوم معماری استفاده بشه. 3-tier برای یک برنامه که نیاز خاصی به 3-tier نداره، یک نوع اضافه بار و پیچیدگی میاره، از طرفی، بعضی از برنامه ها هم باید 3-tier نوشته بشند و Client\Server براشون جواب نمیده.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  9. #9
    ممنون از جوابتون
    راستش رو بخاید من قبلا شنیدم که در روش دولایه خود Data بین لایه ها جابجا میشه اما در معماری های چند لایه بخصوص DCOM برای افزایش سرعت انتقال به شکل دیگه ای انجام میشه این در حالیه که جاوا پا رو فراتر گذاشته و از تکنولوژی جدید تری در این رابطه استفاده کرده.البته .NET هم تکنولوژی هایی رو ارائه داده.
    من به این شنیده ها اطمینان چندانی ندارم و میخاستم مطمئن بشم.
    باز هم تشکر

  10. #10
    نقل قول نوشته شده توسط ali_abbasi22145 مشاهده تاپیک
    سلام به اساتید

    من یک برنامه با دلفی 7 و SQL Server 2000 نوشتم که تحت lan خیلی خوب کار می کند و تستهای خودش را هم داده است.
    حال می خواهم کاربران تحت اینترنت برنامه من را باز کنند و با آن کار کنند یا حداقل یک برنامه کوچک شده بنویسم که با آن کاربران داده وارد کنند یا ویرایش کنند حال چه کامپوننت و راه حل ساده در این زمینه است؟
    سلام.
    گفتن جمله "برنامه ام در LAN کار میکنه"، دقیق نیست. بهتر این بود که می گفتید "برنامه ام در یه LAN، (مثلا) TCP/IP کار میکنه". اگر پروتکل LAN شما TCP/IP هستش، اونوقت می تونید از برنامه اتون در سطح اینترنت هم استفاده کنید، چون در واقع اینترانت شما هم روی TCP/IP سواره. تنها تفاوت در IP Address هایی هستش که به Server و Client ها تخصیص داده شده. ما دو جور IP Address داریم: private و public.

    Private IP Address ها، آدرسهایی هستن که در سطح LAN شما معنا دارن و بصورت عمومی در اختیار همگان نیستن.

    این آدرسها به چهار سطح زیر تقسیم میشن:

    10.0.0.0 - 10.255.255.255
    172.16.0.0 – 172.31.255.255
    192.168.0.0 – 192.168.255.255

    و 169.254/16 که طبق استانداردها برای محیطهایی در نظر گرفته شدن که به DHCP Sever دسترسی ندارن. در نتیجه، الان اگه شما دونه دونه کامپیوترهاتون رو در شبکه نگاه کنید، یکی از 4 آدرس زیر رو بخودشون اختصاص دادن. اینها همگی آدرسهایی هستن، که کسی از طریق INTERNET بهشون دسترسی نداره. بقیه آدرسها، Public IP Address هستن. یعنی در اختیار عموم قرار دارن و برای به اشتراک گذاشتن مورد استفاده قرار میگیرن. مثلا 64.4.32.7 آدرس hotmail هستش.

    برنامه شما هم در صورتیکه روی پروتکل TCP/IP کار میکنه، نیاز به تغییر آنچنانی نداره تا بشه ازون در سطح internet هم استفاده کرد. برای اینکار، ابتدا باید یه public address داشته باشید، اونهم از نوع static که تغییر نکنه. بعد باید پورتهای مناسب رو برای SQL Server و دیگر ابزارهایی که احیانا استفاده کردین بازکنید، تا دسترسی فراهم بشه. البته اینها در حد تئوری هستش، چون وقتی به عمل میرسه، اینقدر مشکلات امنیتی برای نرم افزارتون ایجاد میشه که از خیرش میگذرین.

    بعنوان یه مثال خیلی خیلی جزیی، وقتی SQL Server رو روی سرور قرار میدین و اونو رو اینترنت میذارین، باید حواستون باشه که password مربوط به کاربر sa رو حتما set کنید. چون معمولا دیدم که افراد اینکارو موقع نصب انجام نمیدن و ...

    اما از دید برنامه نویسی... وقتی شما ConnectionString ای درست میکنید و نام کامپیوترتون رو بعنوان Server در اون قرار میدین، شما به برنامه میگید که به کدوم IP Address باید برای دستیابی به SQL Server وصل بشه. جای نام کامپیوتر، میتونید از IP کامپیوترتون هم استفاده کنید.

    مثلا جای

    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=AdventureWorks;Data Source=myComputer

    میتونم بزنم

    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=AdventureWorks;Data Source=192.168.0.1

    یعنی دارم Private IP Address سیستمم رو میذارم. حالا تو اون حالت که شما SQL Server رو روی اینترنت قرار میدین، باید از IP اون کامپیوتر استفاده کنید. مثلا اگر SQL Server روی hotmail نصب باشه، از ConnectionString زیر میتونید استفاده کنید تا بهش متصل بشید:

    Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=AdventureWorks;Data Source=64.4.32.7

    بقیه کارها در سطح ODBC Driver ها، OLEDB Data Provider ها و ... انجام میشه و شما هیچ تفاوتی بین اجرای برنامه روی LAN TCP/IP و Internet نمی بینید.

  11. #11
    اما در معماری های چند لایه بخصوص DCOM برای افزایش سرعت انتقال به شکل دیگه ای انجام میشه این در حالیه که جاوا پا رو فراتر گذاشته و از تکنولوژی جدید تری در این رابطه استفاده کرده.البته .NET هم تکنولوژی هایی رو ارائه داده.
    DCOM داده ها را بصورت باینری انتقال میده، سایر روش هایی هم که در DataSnap دلفی پشتیبانی میشند، داده ها را بصورت باینری منتقل می کنند، به جز SOAP Connection (برای Web Services استفاده میشه) که داده ها را بصورت XML منتقل میکنه.
    در دات نت هم تا جایی که اطلاع دارم، تاکید بر روی Web Services هست.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

  12. #12
    ممنون از جواب عالی شما
    با این حساب Web Service باید بیشترین سرعت رو از بین بقیه ابزارهای DataSnap داشته باشه؟

  13. #13
    با این حساب Web Service باید بیشترین سرعت رو از بین بقیه ابزارهای DataSnap داشته باشه؟
    خیر! همونطور که گفتم، Web Service از XML برای انتقال اطلاعات استفاده میکنه، یعنی داده ها بصورت Text منتقل میشند، پس حجم بیشتری به نسبت داده های باینری اشغال می کنند، پردازش آنها هم زمانبر تر هست.
    البته Web Service مزیت های خاص خودش رو داره که بحثش مربوط به این تاپیک نمیشه.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •