وبلاگ فرهاد مرتضی پور

Farhad Mortezapour's Blog

وبلاگ فرهاد مرتضی پور

Farhad Mortezapour's Blog

تقسیم یک خط اینترنت بین چند کامپیوتر

ابتدا یاد آوری می کنم که ارتباط بین کامپیوتر ها به سه روش ممکن است:

١. از طریق کابل شبکه (RJ-45) که برای این نوع اشتراک به تعدادی از این کابل ها و یک دستگاه تقسیم کننده یا HUB نیاز دارید. تعداد پورت های HUB باید حداقل یکی بیشتر از تعداد کامپیوترهای شما باشد (مگر اینکه از یکی از خود کامپیوترها برای تقسیم اینترنت استفاده کنید). استفاده از این کابل ها بهترین، ارزانترین و پرطرفدارترین روش برای تشکیل شبکه است. اشکال این روش نیاز به سیم کشی است.

٢. روش دوم استفاده از شبکه های بی سیم یا WiFi است که این روزها خیلی ها بجای استفاده از کابل از این سیستم ها استفاده می کنند. برتری این کار عدم نیاز به سیم کشی و امکان حمل و نقل است که به ویژه برای laptop ها احمیت دارد. اشکال آن یکی هزینه بسیار بالای آن (چند صد دلار برای یک شبکه ساده) است و دیگری اینکه مقدار زیادی از قدرت آن بجای افزایش سرعت برای جلوگیری از اشکال در ارتباطات مصرف می شود. ولی با این همه سرعت این سیستم ها خوب است و قیمت بالا اشگال عمده آنها است.

٣. روش دوم استفاده از خط تلفن یا HomePNA است که همانطور که در مقاله ٢٧ توضیح دادم روش خوبی است چون خیلی از سیستمهای بی سیم ارزانتر است و برخلاف شبکه های کابلی نیاز به سیم کشی ندارد. اگر از این روش استفاده می کنید حتما از کارتهای جدیدتر استفاده کنید که سریعتر هستند. سیستم های قدیمی که به HPNA1 مشهور است آرام هستند و ممکن است گاهی دچار قطع ارتباطات شوند.

اگر فقط از دو کامپیوتر استفاده می کنید خیلی از شرکتهای ارائه دهنده سرویس به شما اجازی استفاده هر دو کامپیوتر را از طریق HUB می دهند و نیازی به تقسیم اینترنت نخواهید داشت. ولی برای بیشتر از دو کامپیوتر، از هر کدام از روشهای بالا که استفاده کنید سه روش برای تقسیم یک (یا چند) خط اینترنت بین تمام کامپیوترهای شبکه وجود دارد:

١. پر طرفدارترین روش استفاده از دستگاهی بنام Router است که یک خط اینترنت را بین چند کامپیوتر تقسیم می کند. این روش برای استفاده از شبکه های کابلی بخصوص برای تعداد محدودی کامپیوتر بهترین راه است چون اکثر Router ها یک دستگاه HUB در داخل خود دارند و میتوانید مستقیما کامپیوترها را به آنها وصل کنید. بعضی شرکتهای اینترنت به شما امکان این را می دهند که از Router بجای Modem های معمولی که در اختیارتان قرار می دهند استفاده کنید. البته برای این کار باید از Router ویژه ای که شرکتها در اختیارتان قرار می دهند استفاده کنید. متاسفانه فعلا هیچکدام از شرکتهای اصلی در تورنتو این امکان را ندارند ولی برخی شرکتهای جدید DSL بجای اجاره Modem به شما امکان خرید Router یا Modem را می دهند که در این صورت اجازه انتخاب دارید. ویندوز XP و لینوکس کامپیوترها را براحتی برای استفاده از Router تنظیم می کنند. قبل تنظیم کردن کامپیوترها ابتدا آنها را آزامایش کنید زیرا معمولا نیازی به تنظیم آنها نخواهید داشت. اگر کامپیوترها قبلا مستقیما به Modem وصل می شدند باید ابتدا تنظیمات Modem را پاک کنید.

٢. بجای استفاده از Router میتوانید یکی از کامپیوترها را مستقیما به اینترنت وصل کنید تا کامپیوترهای دیگر از اینترنت آن استفاده کنند. خرج این کار کم است، ولی برای اینکه کامپیوترهای دیگر به اینترنت وصل شوند، کامپیوتر اصلی باید همیشه روشن باشد. در ضمن این کامپیوتر نیاز به دو کارت شبکه دارد که یکی به شبکه وصل میشود و دیگری به Modem (مگر اینکه Modem طور دیگری به کامپیوتر وصل شود ? مانند USB). برای استفاده از این روش در ویندوز باید از Internet Connection Sharing و در لینوکس از سرویس هایی به همین نام یا مشابه آن (بستگی به پخش لینوکس) استفاده کنید. برای تنظیم کامپیوترهای دیگر کامپیوتر اصلی حکم یک Router را دارد.

۳. روش بهتر ساختن Router خودتان با استفاده از یک کامپیوتر قدیمی است. (همانطور که گفتم اگر از شبکه های کابلی برای تعداد کمتری کامپیوتر استفاده می کنید و هنوز دستگاه HUB تهیه نکرده اید بهتر است بجای آن یک دستگاه Router بخرید، در غیر این این صورت احتمالا این روش سوم بهترین است). برای این کار به یک کامپیوتر قدیمی (مانند 386) با دو کارت شبکه و یک Floppy Drive و یک نرم افزار رایگان (نرم افزار هفته را بخوانید) نیاز دارید. این سیستم بهتر از یک Router پرقدرت و گرانقیمت عمل می کند و برای کاربرای منزل و حتی شرکت های بزرگتر ایده عال است. در شماره بعدی تهیه این سیستم را توضیح می دهم.

اصول پیاده سازی نرم افزارهای مبتنی بر وب

در این مقاله تاریخچه و اصول پیاده سازی نرم افزار بخصوص بر روی بستر وب تشریح شده است.

بمنظور بررسی مقوله پیاده سازی نرم افزار بر روی بستر وب بحث خود را بر روی دو موضوع عمده متمرکز می کنیم: شناخت مدل های رایج جهت پیاده سازی نرم افزار از ابتدا تا کنون و شناخت وب بعنوان بستر مربوطه بهمراه تکنولوژی هائی که در این زمینه مورد استفاده قرار می گیرند.

هدف ما رسیدن به نقطه ای است که مشخص نمائیم، برای طراحی و پیاده سازی نرم افزار بر روی بستر وب، اولا از چه نوع مدلی برای پیاده سازی استفاده می گردد و ثانیا روند توسعه و تکامل وب را با تاکید بر نیازهای نرم افراری از بعد ابزارشناسی دنبال کرده و از این رهگذر جایگاه هر ابزار (تکنولوژی) تبین شده تا بدین وسیله بتوانیم از هر چیز در جایگاه خود و در زمان مربوطه استفاده کنیم. بهرحال وب یک واقعیت انکار ناپذیر بوده و سایه حضور آن را در همه جا می توان احساس کرد. نرم افزار نیز مجری خواسته های انسانی در سرزمین سخت افزار است، این بار با یک چالش جدی مواجه شده است : پاسخگوئی به خیل نیازهای جدید مطرح شده متکی بر بستر وب.

در بخش اول این مقاله موضوع اول یعنی شناخت مدل های پیاده سازی نرم افزار تشریح خواهد شد. به این امید که از این رهگذر به نقطه ای برسیم که یک مدل مناسب جهت پیاده سازی برنامه های تحت وب را معرفی و آن را بعنوان پایه و اسا س کار خود قرار دهیم. در ابتدا لازم است به این اصل بدیهی اشاره شود که یک برنامه کامپیوتری حاصل ترکیب داده ها و منطق است. منطق یک برنامه از طریق کدهای مربوطه که به یکی از زبانهای برنامه نویسی نوشته خواهند شد، مسئول تحقق خواسته های تعریف شده برای یک نرم افزار از طریق انجام عملیات مورد نیاز بر روی داده ها است. داده ها خود می توانند به اشکال و روش های متنوعی سازماندهی و در اختیار یک نرم افزار قرار گیرند.Program = Logic(Code) + Data

مدل های پیاده سازی یک نرم افزار از ابتدا تاکنون متاثر از عوامل متفاوتی بوده است که جایگاه سخت افزارها بعنوان پتانسیل هائی که می بایست توان خود را در جهت بالفعل نمودن نرم افزارها قرار دهند، نقش برجسته ای دارد. مدل های پیاده سازی نرم افزار را می توان در پنج گروه عمده بشرح زیر تقسیم نمود:

MainFrame Architectureدر این مدل دو عنصر فیزیکی مورد اهتمام جدی بودند: کامپیوتر اصلی که با نام Host شناخته می شد و سخت افزارهای استفاده کننده از کامپیوتر اصلی که با نام ترمینال شناخته می شدند. تمامی منطق یک برنامه (Logic) بهمراه داده های مربوطه (Data) بر روی Host نصب می شد و کاربران با استفاده از ترمینال ها که بمنزله پایانه هائی جهت ورود و خروج ( نمایش ) اطلاعات بودند، قادر به ارتباط با سیستم و اجرای یک برنامه بودند. تمرکز منطق برنامه در یک محل (Host) از مهمترین ویژگی های این مدل است.

File Server Architectureاز این مرحله دو واژه معروف Server و Client پا به عرصه وجود گذاشتند. حیات و معنی این واژه ها محدود به سخت افرار بود و به مرزهای نرم افزار نرسیده بود. در این راستا کامپیوتری که برای دیگران سرویس هائی را ارائه می کرد با نام Server یا در این حالت خاص (File Server) و کامپیوترهائی که از این خدمات بهره مند می شدند را Client می گفتند. مدل فوق پاسخی اولیه به نیازهای کاربران یک شبکه کامپیوتری بود. در مدل فوق منطق یک برنامه بر روی یک Client نصب و داده ها بر روی Server قرار می گرفتند. دراین مدل داده ها در یک فایل ( با یک ساختار خاص) قرار گرفته و یک بانک اطلاعاتی را بوجود می آوردند و سرویس دهنده مسئول ارائه تسهیلاتی برای جابجائی و ارسال اطلاعات موجود در فایل ها بود. تمرکز منطق برنامه در یک محل ( Client ) از مهمترین ویژگی های این مدل است.

Client Server Architectureمدل فوق در پاسخ به اشکالات بوجود آمده در مدل قبل ارائه گردید. در مدل فوق کامپیوتر ارائه کننده خدمات را همچنان Server و کامپیوترهای استفاده کننده را Client می نامیدند. داده های یک برنامه (بانک های اطلاعاتی) همچنان بر روی سرویس دهنده قرار داشت ولی در رابطه با منطق برنامه اصل توزیع پردازش مورد توجه جدی قرار گرفت. بنابر اصل فوق بخشی از منطق یک برنامه را در حد امکان بر روی سرویس گیرنده اجرا و بخش دیگر از منطق برنامه بر روی سرویس دهنده اجرا می گردید. در مدل فوق برای اجرای یک برنامه دو پردازش جداگانه یکی بر روی سرویس دهنده و دیگری بر روی سرویس گیرنده فعال و هر یک نقشی در اجرای یک برنامه را برعهده می گرفت. مهمترین ویژگی مدل فوق مطرح کردن اصل پردازش توزیع شده است.

Two Tire Architectureدر مدل فوق اصل تقسیم وظیفه بصورت یک واقعیت انکار ناپذیر مورد توجه جدی قرار گرفت در این مدل همچنان کامپیوترهای سرویس دهنده و سرویس گیرنده جایگاه قبلی خود را داشتند با این تفاوت بسیار مهم که حوزه انجام هر عملیات ( منطق) تا اندازه ای شفاف تر گردید. مثلا جهت دستیابی به بانک های اطلاعاتی تمامی DataBase Engine بر روی سرویس گیرنده قرار می گرفت و سرویس گیرندگان جهت استفاده از داده های موجود در بانک اطلاعاتی نیازمند نصب امکانات نرم افزاری و آگاهی از ساختار بانک اطلاعاتی نبودند. از این مرحله واژه های سرویس گیرنده و سرویس دهنده پا به عرصه نرم افزار نیز گذاشتند و مفاهیمی نظیر سرویس دهنده بانک اطلاعاتی و رایج شد. مهمترین ویژگی مدل فوق تاکید بر اصل تقسیم فعالیت در چهارچوب ارائه طبقات (Tires) بود.

Three Tire Architectureدر مدل فوق اصل تفکیک مجموعه قوانین (سیاست های) مربوط به عملکرد یک نرم افزار مورد توجه جدی قرار گرفت. بدیهی است با حجیم شدن یک نرم افزار از یکطرف و افزایش تعداد کاربران از طرف دیگر و تغییرات متوالی در سیاست های راهبردی و عملیاتی یک نرم افزار در یک سازمان، مسائل مربوط به پشتیبانی و ارتقاء یک نرم افزار از مسائل بسیار مهم و حیاتی در موفقیت افزایش طول عمر یک نرم افزار محسوب می گردد.

در مدل فوق همچنان واژه های سرویس دهنده و سرویس گیرنده حضور مستمر خود را ادامه دادند با این تفاوت بسیار مهم که حوزه عملکرد این واژه ها در رابطه با نرم افزار بسیار برجسته گردید. در این مدل از سه لایه استفاده می گردد: لایه اول مسئول تماس و ارتباط با کاربر و ارائه دهنده محیط رابط کاربر، لایه دوم ( میانی ) مسئول نگهداری و اجرای سیاست ها و قوانین کلیدی و راهبردی حاکم بر نرم افزار و لایه سوم مسئولیت نگهداری بانک اطلاعاتی و ارائه سرویس و خدمات به لایه متقاضی ( لایه دوم ) است. عملکرد لایه دوم ( میانی ) بسیار گسترده بوده و می توان با همگرا نمودن این عملکردها به چند بخش، لایه های دیگری را نیز در این بخش داشته باشیم، در چنین حالتی این مدل اصطلاحا N-Tire نامیده می شود.

مدل فوق بهترین انتخاب برای پیاده سازی نرم افزار بر روی بستر وب است. کلید طلائی طراحی این نوع نرم افزارها توانائی نوشتن عناصر (اجزا) بگونه ای است که از یکطرف امکان بکارگیری آنها بسادگی در لایه ها و حتی چندین برنامه فراهم شده و از طرف دیگر امکان ارتباط این عناصر با یکدیگر صرفنظر از زبان برنامه نویسی استفاده شده و سایر موارد مرتبط فراهم گردد. ما می بایست جعبه های سیاهی را طراحی کنیم که صرفنظر از ماهیت درون هریک، قادر به استفاده از توان آنها در بخش یا بخش هائی از یک و یا چندین نرم افزار باشیم. مطلب فوق شاید مهمترین دلیل رویکرد شرکت های عظیم نرم افزاری جهت ارائه یک ساختار استاندارد برای تولید این عناصر باشد. تکنولوژی Component Object Model یا COM پاسخ شرکت مایکروسافت به این نیاز حیاتی بود.

تکنولوژی COMمهمترین ویژگی تکنولوژی فوق قابلیت استفاده مجدد و ارتباط متقابل برای عناصر( اشیاء) توزیع شده است. بدین ترتیب پیاده کنندگان نرم افزار این امکان را پیدا خواهند کرد تا با در کنار هم قرار دادن این عناصر و استفاده چندباره از آنان (حتی اگر تولیدکنندگان آنها متفاوت باشند) قادر به خلق آثار ماندگار خود در سریعترین زمان ممکن و متکی بر اصول مهندسی نرم افزار باشند.

ریشه COMتکنولوژی COM بصورت ناگهانی مطرح نگردید و ریشه در تلاش هائی دارد که از مدت ها قبل بعنوان یک نیاز مطرح شده بود. معرفی تکنولوژی Object Linking & Embedding یا OLE در سال 1991 اولین تلاش در این زمینه بود که توسط شرکت مایکروسافت برای ارتباط و پیوستگی بین مستندات در چهارچوب مجموعه برنامه های آفیس مطرح گردید. حوزه عملکرد تکنولوژی فوق بر روی مستندات (Documents) متمرکز بود. در ادامه شرکت مایکروسافت به این نکته پی برد که تکنولوژی فوق نباید صرفا متمرکز بر روی مستندات باشد و می تواند عملکردی جامع تر را تحت پوشش خود قرار دهد. بدین منظور نسخه شماره ۲، OLE در سال 1995 مطرح گردید و این نسخه در ادامه تمامی عناصر و اجزای موجود در محیط ویندوز را شامل گردید و بدین ترتیب COM مطرح شد.

در اوایل، تکنولوژی فوق در رابطه با عناصر و اجزای توزیع شده امکانات قابل توجه ای ارائه نکرده بود. شاید یکی از مهمترین دلایل آن عدم عرضه یک سیستم عامل شبکه ای از طرف مایکروسافت تا آن زمان بود. همزمان با عرضه ویندوز 95 و ویندوز NT در سال 1996 و مطرح شدن امکانات شبکه ای و ضرورت توزیع، اجرا و ارتباط بین عناصر توزیع شده تکنولوژی Distributed COM یا DCOM مطرح گردید. سرانجام در سال 1997 نسخه توسعه یافته این تکنولوژی با نام +COM توسط شرکت مایکروسافت ارائه گردید.

همزمان با گرایش بسمت طراحی و پیاده سازی نرم افزارهای متکی بر مدل Three Tire از یکطرف و نیاز شدید به پیاده سازی نرم افزار های متکی بر وب، ضرورت توجه و بازنگری در نحوه طراحی و پیاده سازی عناصر توزیع شده مورد اهتمام جدی شرکت های عظیم نرم افزاری قرار گرفت. شرکت مایکروسافت در این زمینه منادی تکنولوژی های COM/DCOM/COM+، Internet Explorer و ActiveX گردید. در مقابل شرکت های نرم افزاری دیگر، NetScape، Java/J2EE ( شرکت سان ) و CORBA را مطرح کردند.

اولین نسخه CORBA در سال 1992 توسط Object Management Group یا OMG که بالغ بر ششصد عضو دارد ارائه گردید. آخرین نسخه آن (نسخه شماره ۲) در سال 1996 عرضه شده است. عملکرد کلی تکنولوژی فوق نظیر COM است. بهرحال هدف اکثر تکنولوژی های فوق در این است که امکانات و استانداردهائی را برای تولید عناصر بگونه ای ارائه نمایند که با پیاده سازی آنها، قادر به اخذ سرویس و خدمات بصورت محلی و یا از را دور باشیم.

در این راستا شاید مناسب باشد که به عملکرد هر Tire در نرم افزارها از بعد سرویس دهی متمرکز شده و هر Tire را بعنوان مجموعه ای از سرویس ها در نظر بگیریم که مسئول ارائه سرویس به عناصر موجود در Tire خود و یا سایر Tire های مرتبط باشد. با این نگرش می توان گفت تمامی نرم افزارها خدمات و سرویس های خود را در سه بخش ارائه می نمایند:• User Sevices• Business Services• Data Services

در مدل Three Tire مسئولیت ارائه هر یک از سرویس های فوق به یک Tire واگذار می گردد. عناصر موجود و مسئول ارائه سرویس و خدمات در هر Tire قادر به ارتباط و درخواست سرویس از عناصر موجود در Tire خود و سایر Tire های موجود در بالا و یا پایین خود خواهند بود. نکته بسیار مهم در رابطه با وضعیت فوق این است که یک درخواست جهت اخذ سرویس نمی تواند یک Tire را حذف و خود مستقیما با Tire ثانویه ( بعدی) مرتبط و اصطلاحا یک Tire را دور بزند. مثلا عناصر موجود در لایه User Services نمی توانند مستقیما درخواست خود را برای لایه Data Services ارسال دارند. البته لایه فوق نیز چنین امکانی را نخواهد داشت. هر یک از سه بخش فوق مسئولیت های خاصی را برعهده گرفته و در زمانیکه یک بخش به خدمات یک بخش دیگر نیاز داشته باشد، درخواست خود را برای اخذ سرویس در اختیار بخش مورد نظر قرارداده و بخش مربوطه سرویس درخواستی را در قالب اجرای یک یا چندین عنصر انجام و ماحصل را در اختیار بخش مربوطه قرار خواهد داد.

مدل فوق که بر اساس همگرائی نوع سرویس ها و خدمات در یک نرم افزار ارائه شده است، صرفا یک مدل منطقی است و نشاندهنده یک مدل فیزیکی نیست. دراین راستا چهار مدل فیزیکی برای پیاده سازی نرم افزارهای Three Tire ارائه شده است:• Single Server• Business Server• Transaction Server• Web Server

Single Serverدر این مدل محل استقرار تمامی عناصر بین سرویس گیرنده و سرویس دهنده شبکه تقسیم می گردد. در مدل فوق تمامی عناصر مربوط به بانک های اطلاعاتی (Data Services) بر روی سرویس دهنده قرار می گیرد. عناصر مربوط به User Service در صورتیکه بگونه ای طراحی شده اند که ممکن است مورد استفاده چندین نرم افزار دیگر قرار بگیرند، می بایست آنها را بر روی سرویس دهنده شبکه نصب نمود. عناصر مربوط به Business Services که مسئولیت پیاده سازی سیاست ها و قوانین در یک نرم افزار را برعهده دارند، عمدتا بر روی سرویس دهنده شبکه نصب می گردنند مگر اینکه در رابطه با یک نرم افزار، اعمال یک سیاست بخصوص را می بایست در سطح لایه User Services پیاده سازی نمود ( بررسی صحت داده های ورودی، انجام برخی محاسبات خودکار با توجه به رفتار داده ها و ). در این حالت عنصر مجری سیاست فوق می بایست در لایه User Services و بصورت محلی و مختص به آن نصب و فعال گردد.

Bussines Server (Application)در مدل فوق یک سرویس دهنده اضافی با نام Application Server، استفاده می گردد. سرویس دهنده فوق مسئولیت استقرار تمامی عناصری را که می بایست به اشتراک گذاشته شوند، بر عهده خواهد گرفت. در این راستا در صورتیکه برخی از عناصر مربوط به لایه User Service باشند ولی بصورت مشترک مورد استفاده چندین نرم افزار قرار می گیرند نیز از این قاعده مستثنی نبوده و بهترین محل برای استقرار آنان، سرویس دهنده Application است. در مدل فوق تمامی عناصر مربوط به Data service بر روی سرویس دهنده Data قرار خواهند گرفت. ارتباط تمامی سرویس گیرندگان در ابتدا با Application Server آغاز خواهد گشت. سرویس گیرندگان خواسته خود را به لایه Application ارسال و لایه فوق مسئولیت ارتباط با لایه Data را بر عهده خواهد گرفت.

Transaction ServerTransaction واحد انجام یک فعالیت بوده که خود می تواند شامل چندین عملیات دیگر باشد. سلسله عملیات فوق می بایست تماما با موفقیت اجرا گردند. در مدل فوق سرویس دهنده Transaction مسئولیت مدیریت و ذخیره سازی عناصر لازم برای یک فعالیت Transaction را برعهده خواهد گرفت. در این مدل می توان از چندین سرویس دهنده دیگر بمنظور استقرار عناصر مربوطه استفاده کرد. استقرار عناصر بر روی سرویس دهنده ها می بایست پویا بوده و در صورت افزایش ترافیک، امکان جابجائی آنها بر روی سایر سرویس دهنده ها وجود داشته باشد. سرویس دهنده Transaction مسئولیت های نگهداری عناصر ActiveX، ارسال درخواست یک برنامه به یکی از سرویس دهنده ها، اتمام اجرای یک برنامه، بررسی صحت عملکرد یک عنصر را بر عهده خواهد گرفت.

Web Serverدر مدل فوق یک سرویس دهنده در شبکه اضافه و مسئولیت سرویس های وب را بر عهده خواهد گرفت. سرویس گیرنده ها مجهز به نرم افزارهای ارتباطی نظیر مرورگرها بوده تا بدین طریق قادر به درخواست صفحات ایستا و پویا از سرویس دهنده وب باشند. برنامه های مبتنی بر وب تمامی تاکید خود را بر استاندارد نمودن نرم افزارهای مرورگری معطوف می دارند. چراکه با استاندارد شدن این نوع از نرم افزارها تمامی سرویس گیرنده ها با یک ابزار واحد استاندارد شده از سرویس دهنده های وب خواسته های خود را مطرح خواهند نمود. بدیهی است در چنین حالتی پاسخگوئی به این درخواست ها از طرف سرویس دهنده های وب بمراتب ساده تر و با اطمینان خاطر بیشتری صورت می پذیرد.

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

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

ip و port چیست ؟

ip
شماره‌ ایست که به هر کامپیوتر متصل به اینترنت داده می‌شود تا بتوان به‌کمک آن شماره به آن کامپیوترها دسترسی داشت. این عدد برای کامپیوترهایی که حالت سرور دارند (مثلا سایت‌ها) و نیز کامپیوتر‌های کلاینتی که معمولا به روشی غیر از شماره‌گیری (Dial Up) به اینترنت وصل هستند، عددی ثابت و برای دیگران عددی متغیر است. مثلا هر بار که شما با شرکت ISP خود تماس گرفته و به اینترنت وصل می‌شوید، عددی جدید به شما نسبت داده می‌شود. این عدد یک عدد ۳۲ بیتی (۴ بایتی) است و برای راحتی به‌صورت زیر نوشته می‌شود: xxx.xxx.xxx.xxx که منظور از xxx عددی بین ۰ تا ۲۵۵ است (البته بعضی شماره‌ها قابل استفاده نیست که بعدا علت را توضیح خواهم داد). مثلا ممکن است آدرس شما به صورت 195.219.176.69 باشد. حتی اسم‌هایی مثل www.yahoo.com که برای اتصال استفاده می‌کنید، در نهایت باید به یک IP تبدیل شود، تا شما سایت یاهو را ببینید.در IP معمولا xxx اولی معنای خاصی دارد، که بعدا توضیح می‌دهم... فقط این را بگویم که اگر به روش Dial Up به اینترنت وصل شوید، معمولا عددی که به عنوان xxx اول می‌گیرید، مابین 192 تا 223 خواهد بود.این توضیح برای تشخیص کامپیوترهای کلاینت از سرور (حداقل در ایران) بسیار می‌تواند مفید باشد.بعد از اتصال به اینترنت برای به دست آوردن IP خود، از دستور IPCONFIG در command prompt استفاده کنید. (البته یک سری نکات فنی داریم که بعدا می‌گم)

Port
در ساده ترین تعریف، محلی است که داده‌ها وارد با خارج می‌شوند. در مبحث هک معمولا با پورت‌های نرم‌افزاری سروکار داریم که به هر کدام عددی نسبت میدهیم. این اعداد بین ۱ و ۶۵۵۳۵ هستند. معمولا به یک سری از پورت‌ها کار خاصی را نسبت می‌دهند و بقیه به‌صورت پیش‌فرض برای استفاده شما هستند. پورت‌های که فعال هستند، هرکدام توسط یک نرم‌افزار خاص مدیریت می‌شوند. مثلا پورت ۲۵ برای ارسال Email است، بنابراین باید توسط یک نرم‌افزار این کار انجام شود و این نرم‌افزار بر روی پورت ۲۵ منتظر (فال‌گوش) می‌ماند. اینجا ممکن است شخصی از فلان نرم‌افزار و دیگری از بهمان نرم‌افزار استفاده کند ولی به‌هر حال پورت ۲۵ همیشه برای ارسال Email است.

امکان دریافت ریز مکالمات تلفن ثابت از طریق ایمیل

امکان دریافت ریز مکالمات تلفن ثابت از طریق ایمیل و سایت اینترنتی شرکت مخابرات فراهم شد .
به گزارش بخش خبر سایت فن آوری اطلاعات ایران، به نقل از ایلنا، در بهمن ماه سال گذشته بیش از 50 هزار مشترک ریز مکالمات تلفن خود را از طریق ایمیل و در حدود 20 هزار مشترک دیگر این ریز مکالمات را از طریق سایت اینترنتی شرکت مخابرات دریافت کردند .
بنابراین گزارش , در مجموع 70 هزار مشترک صورت حساب و ریز مکالمات خود را از این طریق دریافت کرده اند .
شایان ذکر است , متقاضیان با مراجعه به مراکز تلفن محل اقامت خود و ارایه نشانی پست الکترونیکی و با دریافت رمز عبور می توانند ریز مکالمات خود را به طور روزانه در سایت اینترنتی این شرکت به نشانی http://www.tct.ir بخش مشترکین و یا در پست الکترونیکی خود مشاهده کنند.

نحوه ایجاد فایلهای PDF فارسی

جهت تهیه پرونده‌های (Portable Document Format) فارسی لازم است تا مراحل زیر را دنبال کنید:
- ابتدا نسخه‌ای از برنامه Adobe Acrobat Distiller (ترجیحاً نگارش 4.0 یا بالاتر، که برای زبان‌های خاورمیانه‌ای بازبینی شده است) را نصب نمایید.
- همچنین لازم است تا در ابتدای امر چاپگری از نوعPostScript را (مانند چاپگر AGFA-Avantra 44SF v2013.108 که می‌توان از لیست درایورهای چاپگرهای استاندارد ویندوز انتخاب نمود)، نصب نمایید. همچنین توصیه می‌شود که خروجی این چاپگر را بر روی فایل تنظیم نمایید. (بدین منظور کافی‌است تا جعبه محاوره‌ای نصب چاپگر خروجی چاپگر را برروی File : (Creates a file on disk) انتخاب نمایید.
- حال می‌توانید از برنامه‌های مختلف، همانند Microsoft Word، پرونده مورد نظر را ایجاد کرده، با استفاده از دستور چاپ برنامه مربوطه، پرونده ایجاد شده را به قالب Post Script تبدیل نمایید. (لازم به ذکر است که شما در این قسمت عملا یک فایل با پسوند .prn ایجاد خواهید نمود.)
- برنامه Adobe Acrobat Distiller را فراخوانده و گزینه‌های مختلف مربوط به این برنامه را با توجه به کاربرد مورد نظرتان تنظیم نمایید.
- حال پرونده مذکور را باز کرده و نام و مسیر پرونده خروجی را تعیین نمایید.
- بدین ترتیب پرونده مورد نظر شما با قالب PDF در مسیر تعیین شده ایجاد خواهد شد.

حجم عکسهایتان را بدون از دست رفتن کیفیت تا حد ممکن پایین بیاورید

بیشتر کاربران اینترنتی وکسانی که زیاد از اینترنت برای فرستادن عکسهایشان برای دوستان وآشنایان استفاده میکنند حتما تا کنون با مشکل حجم زیاد این عکسها مخصوصا عکسهای دیجیتالی روبرو شده اند امروز روشی را به شما آموزش می دهیم که حجم عکس بدون از دست رفتن کیفیت بسیار پایین بیاید.
ابتدا عکس را در یکی از نرم افزارهای ویرایش تصاویر مانند ACD Photo Editor یا Adobe Photoshop وارد کنید و سایز آن را به 1500*1122 تغییر دهید و آن را ذخیره کنید. سپس عکس را در نرم افزار ویرایش تصویر اختصاصی ویندوز( ( Mspaint وارد کنید وبدون هیچ تغییری ذخیره کنید.
تذکر: اگر خواستید سایز عکس را تغییر ندهید میتوانید آن را مستقیما وارد Mspaint کنید. در پایان خواهید دید که حجم تصویر به طور شگفت انگیزی کاهش می یابد.

آموزش

آموزش ASP
آموزش ASP.NET
آموزش ADO
آموزش SQL

مقالات آموزشی
به زودی

آشنایی با Python

Python یک زبان اینترپریتریه که از بسیاری جهات مشابه c,java,modula-3 استاین زبان بصورت شی گرا طراحی شده و تا حد امکان سعی شده که یادگیری ان ساده باشه همانطور که خودتون بهتر میدونید بیسیک هم در ابتدا برای اهداف اموزشی طراحی شدو در اوایل از یک اینترپریتر استفاده میکرد بعد از گذشت سالها و با پشتیبانی وسیع میکروسافت از اون به اینجا رسید البته سیستم عامل لینوکس نیز پشتیبانی قابل توجهی از Python دارهو بعید نیست که ظرف چند سال اینده این زبان نیز جز پرکاربردترین زبانهای دنیا قرار بگیره اما از این موارد که بگذریم میرسیم به خود Pythonاگر بدنبال هک کردن و اینجور مسائل باشین (البته صبورانه) مسلما در بسیاری از سایتها متوجه شدین که امروزه زبان Python بعنوان یک زبان ساده برای یادگیری به مبتدیان و کسانیکهتجربه ی برنامه نویسی نداشته اند توصیه میشه و بعد از اون می خوان که سراغ زبان c بروید و اونو یاد بگیریدخوب از این حرفها بگذریم میتونین Python رو از اینجا داونلود کنین و یا حداقل اطلاعاتی از اون بدست بیاورید http://www.python.org اندازه ی فایل اون زیاد نیست ۶MB نصب اون هم بسیار ساده و بی دردسره فقط باید یک مسیر رو انتخاب کنین و چند تا کار دیگه.اما بهتره کمی با Python اشنا شیم Python مثل بیسیک نیازی به اعلان متغیرها نداره اما قبل از استفاده از هر نوع متغیری

باید حتما اون متغیر مقداردهی اولیه بشه علتش اینه که اینترپریتر از این طریق نوع متغیر رو شناسایی میکنه انواع داده هایی که در Python تعریف شده اند قدرت بسیار زیادی رو در اختیار برنامه نویس قرار میدهند

علاوه بر انواع int,long,float ساختارهایی مثل list,dictionary,tuple در این زبان قرار داده شده که شما برای استفاده از اینچنین ساختارهایی در بیسیک و سی و پاسکال ناچار به کدنویسی و مدیریت حافظه و غیره دارید که کار چندان ساده ای نیست

LIST

خوب لیستها در Python همون لیستهای پیوندی در سی و پاسکال هستند عناصر هر لیست میتونند از هر نوع داده ای دیگه باشند اندیس هر لیست از ۰ شروع میشه

و به صورت زیر میتونید به هر عنصر از لیست دسترسی داشته باشید

listname[index]

نکته ی بسیار جالب اینکه عناصر یک لیست از اخر به اول هم شماره گذاری میشن به این شکل که اخرین عنصر اندیس ۱ - داره و عنصر ماقبل اخر ۲ - و به همین صورت

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

مفهوم بسیار مهمی که در مورد لیستهای Python قابل ذکر است مفهوم برش هاست

Slice یا برش قسمتی از یک لیست بزرگتر است که به صورت زیر ایجاد میشود

listname[first_item_index,last_item_index_exclusive]

برش فوق شامل عناصری از لیست listname است که اندیس انها از first_item_index شروع شده به همراه عنصری که اندیس ان برابر first_item_index است و اندیس انها از last_item_index کوچکتر است بنابراین برش فوق شامل عنصری از listname که اندیس اون last_item_index است نمیشود

مفهوم برشها دقیقا به همین صورت در مورد رشته ها در Python کاربرد داردفقط مسئله ای که باید در نظر داشت اینه که در Python داده ها به دو دسته ی mutable و immutable تقسیم میشوند تمامی اعداد و رشته ها و tupleها از نوع immutable هستند

منظور از immutable اینه که نمیشه بدون تغییر دادن کل اطلاعات قسمتی از اونو تغییر داد و برای هر تغییری ناچاریم که کل متغیر را تغییر دهیم اما listها در Python براحتی قابل تغییر هستند یعنی بسادگی میتونید هر یک از عناصر اونو تغییر بدین بدون اینکه نیاز باشه همه ی عناصر رو تغییر بدین