« March 2008 | صفحه اصلی | May 2008 »

تن هاي تنها

April 27, 2008 01:35 PM

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


همين!

Ali Vahed | 01:35 PM | Comment(s)(4)

جذب همکار جدید در رادمان

April 24, 2008 09:05 AM

با توجه به سنجش آمادگی ها و توانمندی های افراد متقاضی، در صدد جذب نیروهای جدید در بخشهای فروش و خدمات پس از فروش هستیم. جزییات بیشتر را «اینجا» بخوانید.
همین!

Ali Vahed | 09:05 AM | Comment(s)(0)

سخت افزار و نرم افزار

April 23, 2008 01:09 PM


  • تعریف قدیم: مجموعه تجهیزات کامپیوتر را سخت افزار و دانش بکارگیری این تجهیزات را نرم افزار گویند.
  • تعریف جدید: آن بخش از یک سیستم را که بتوان با چکش خرد کرد سخت افزار و آن قسمت را که فقط می توان به آن فحش داد را نرم افزار گویند!

همین!


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

Ali Vahed | 01:09 PM | Comment(s)(4)

اگر کامپيوتر نبود، تلويزيون براي سانسور فيلمها چه مي کرد؟

April 21, 2008 08:00 AM

رسانه ملي، براي حفظ آن چيزهايي که ارزشهاي جامعه مي شناسد، در اين سالها، چنان فيلمها-چه خارجي و چه داخلي- را به دست قيچي سانسور و اصلاح سپرده است که در اکثر مواقع شخصيتها و نقششان در فيلم يا عوض مي شود و يا اصلا حذف مي شود ، داستان فیلم از غربی به شرقی تغییر پیدا می کند و یا فیلم نامه را کلا بازنویسی می کنند. گاهي اوقات در اينکار چنان افراطي به خرج داده مي شود که شما با يک فيلم بي سروته يا مجموعه اي از سکانس هاي بدون ارتباط با هم مواجه مي شويد که به نام فيلم به خورد شما داده مي شود. (من نمي دانم چه اصراري است فيلمي که نيم ساعت آن بايد حذف شود را انتخاب مي کنند و از تلويزيون پخش مي کنند، احترام به فيلم ساز پيش کش، احترام به مخاطب کجا رفته است؟ ناسلامتي ما مردم داريم پول رسانه "ملي" را مي پردازيم، فيلم روز و خوب را بي خيال شويد، همان فيلمهاي سينماي خودمان که لازم است کمتر سانسور شوند را پخش کنيد، لطفا)
پيشتر ها اگر تلويزيون را روشن مي کردم و قرار بود يک فيلم سينمايي پخش بشود، پاي آن مي نشستم، اما اين روزها اگر روشن کنم و ببينم قرار است فيلمي پخش شود، يا کانال را عوض مي کنم و يا با خيال راحت خاموشش مي کنم.
بگذريم ....
اين روزها، فيلمهاي تلويزيون را که مي بينيم، مواجهيم با نوع جديدي از سانسور که حاصل استفاده از نرم افزارهاي ويرايش فيلم است، از انواع زوم کردن، لباس پوشانيدن، تکرار يک صحنه براي زياد کردن زمان فيلم تا کارهايي که براي ويرايش صدا وتصویر و یا جابجا کردن سکانس ها انجام مي شود.اين نوع جديد، اگر چه هنوز مانند سانسور کردن هاي قديمي آزار دهنده است و اعصاب مخاطب را به هم مي ريزد، اما لااقل تا بخشي کمک مي کند که شما داستان فيلم -البته آنطور که دوستان رسانه ملي، ساخته اند- را متوجه شويد و از اينکه يک ساعت خود را پاي تلويزيون حرام کرده ايد پشيمان نشويد. خوشحالم که نفوذ کاربردهاي کامپيوتر به حدي رسيده است که به حفظ آنچه دوستان فکر مي کنند ما نبايد ببينيم و بشنويم کمک مي کند. 
اميدوارم پيشرفتهاي نرم افزاري و سخت افزاري به حدي برسد که دوستان صدا و سيما، با دردسر کمتري هر کاري که دوست داشتند با يک فيلم انجام بدهند، شخصيت جديدي وارد کنند، نوع پوشش بازيگران را کامل تغيير دهند و يا شخصيت مثبت را با منفي عوض کنند و يا وي را وادار به انجام دادن يک کار و يا انجام ندادن يک کار بکنند. اميدوارم هوش مصنوعي (Artificial Intelligence) روزي به شکلي در اختيار صدا و سيما قرار گيرد که ديگر نيازي به هيات بازبيني فيلم ها نباشد، بلکه مجموعه اي از عامل هاي هوشمند (Intelligent Agent)، با کمک مدلهاي يادگيري (Learning Models) و يا نمي دانم شبکه هاي عصبي (Neural Networks)، فيلم را بازبيني کرده و عمليات سانسور و جرح و تعديل فيلم را به صورت خودکار انجام دهند، که اگر دوستان صدا و سيما به چنين تکنولوژي دست يابند مي توانند با خيال راحت تماشاي کانالهاي ماهواره اي و فيلمهاي روز را آنلاين کنند، به شکلي که به مثابه يک ديواره آتش(Fire wall) هر گونه "چيز" غير مجاز خود به خود حذف شده و يا تغيير ماهيت دهد. اميدوارم به کمک اين دوستان خدا ما را به راه راست هدايت کند، اميدوارم ...
همين!

Ali Vahed | 08:00 AM | Comment(s)(4)

وب یا ویندوز... جمع بندی نهایی

April 19, 2008 09:11 AM

سه نوشته قبلی را اگر دنبال کرده باشید بحث انتخاب برنامه سازی تحت وب و یا برنامه سازی تحت ویندوز را دنبال کرده بودیم، در آخرین مطلب، یک جمع بندی بر بحث صورت می گیرد. دقت کنید که چنانچه در نوشته اول هم اشاره کردم برخی تولید کننده ها و یا مشتری ها بعضا در یک حالت "جو گیر شده"! از روی ناآگاهی و یا به شکل احساسی روی یک محیط تعصب به خرج می دهند و  دیگری را به صورت کامل نفی می کنند، در حالیکه نمی توان هر کدام از این دو را به شکل کامل از رده خارج نمود، شاهد آنکه محیط های توسعه و ابزارهای برنامه سازی روی هر دو محیط هنوز هم در نسخه های جدید عرضه می شود و خواهد شد.
اگر بخواهیم در محیط های اداری انتخاب مناسبی داشته باشیم، به نظر می رسد باید به ملاک های زیر توجه کنیم:
- در محیط های با هدف تبادل اطلاعات نظیر سیستمهای اتوماسیون اداری، کارگروهی، مدیریت جریان کار، بولتن های الکترونیک و .... که نیاز به توزیع شدن روی بیشتر کامپیوتر ها را دارند و بیشتر به پردازش و به اشتراک گذاری متون و فایل ها می پردازند، برنامه های تحت وب روی شبکه اینترانت بهترین گزینه اند.
- در مسائلی که کاربر محدود به یک محدوده جغرافیایی خاص نیست و یا به صورت عام متقاضی اطلاعات و سرویس هستند برای مثال در سیستمهای تجارت الکترونیک، شهر الکترونیک، دولت الکترونیک، بانک الکترونیک و ... که خدمات و سرویسهای عام المنفعه ارائه می کنند و مشتری می تواند کاربر نهایی (End User) نیز باشد، برنامه های تحت وب روی شبکه اینترنت مناسب هستند.
- در مسائل کاربردی که نیاز به پردازش اطلاعات، تعامل زیاد کاربران با نرم افزار و امکانات مناسب و سرعت قابل قبول روی نرم افزارهستیم مانند نرم افزارهای پردازش تراکنش (TPS) و یا سیستمهای دانش فنی (KWS) سیستمهای تحت ویندوز (و یا به صورت کلی هر نوع Desktop Application) مناسب تر هستند.
- در مسائلی که دو وجه از مسائل فوق را داشته باشند، اگر مسائلی نظیر هزینه تولید و سختی کار را در نظر نگیریم  (که آنقدر مهم است که باید دیده شود) ترکیبی از این دو جواب گو است (win-web). برای مثال در یک سیستم مالی می توان اسناد را به صورت تحت ویندوز پیاده سازی کرد تا کاربران به سهولت اسناد را صادر و یا ثبت کنند و گزارشات مدیریتی را به صورت تحت وب در آورد تا مدیران بتوانند به گزارش مورد نیاز خود در داخل و یا خارج از سازمان به سهولت دسترسی پیدا کنند.
-...

طبیعتا در محیط های خانگی، دانشگاهی و یا .... نیز با توجه به کاربرد باید انتخاب مناسب را انجام داد.
نکته حائز اهمیت آنکه داشتن دو شکل برنامه سازی به صورت تحت وب و تحت ویندوز برای یک شرکت نرم افزاری کوچک و یا متوسط سخت است. این دشواری از تفاوت روش تفکر و تولید در هر دو روش، عدم توانایی استفاده از همه تیم در همه زمانها و آموزش توام دو روش می آید. راه حل آن است که :
- یک تیم قوی داشته باشید که توانایی پیاده سازی در هر دو محیط را داشته باشند. (سخت است، چون یک نفر فرصت کافی در کسب مهارت را در هر دو زمینه ندارد و نهایتا در مورد یکی قوی و در مورد دیگر متوسط خواهد شد)
- یک معماری لایه ای انتخاب کنید با تنوع برنامه نویسانی که 1- لایه های پایینی (داده و کاربرد) را بسازند، 2- لایه واسط کاربری را در محیط تحت ویندوز بسازند و 3- لایه واسط کاربری در محیط تحت وب را بسازند. (به دلیل مشترک دیدن لایه های پایین هر چند کم هزینه ترین روش است اما برنامه آن کارایی برنامه های مستقل را نخواهد داشت)
-دو گروه برنامه نویس جدا داشته باشید که هر یک در یک محیط کار کنند. در نهایت در پروژه های ترکیبی (win-web) تنها پایگاه داده را مشترک کنید و هر کس برنامه خود را بنویسد (هزینه تولید بالا می رود و مدیریت چنین تیمی و تقسیم زمان کار و بیکاری آنان مشکل می شود)
- بی خیال یکی از روشها بشوید! یا بگویید نمی توانم و یا از طریق برونسپاری (Out sourcing) عمل کنید. (که طبعات خاص خود را خواهد داشت)

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

Ali Vahed | 09:11 AM | Comment(s)(2)

تحت وب

April 17, 2008 03:28 PM

در اين نوشته برخي مشخصات عمومي برنامه هاي تحت وب (web based applications) بررسي مي گردد. دقت کنيد در اين نوشته ما دنبال برنامه هاي کاربردي هستيم که در محيط web و بر مبناي پروتکل هاي آن پياده سازي شده اند. بنابراين اين برنامه ها را از مفهوم web site مجزا سازيد. ممکن است ما يک وب سايت خيلي خوب داشته باشيم اما برنامه تحت وب خوب روي آن موجود نباشد. نکته ديگر آنکه بستر اجراي برنامه هاي تحت وب مي تواند متفاوت باشد، روش شبکه اينترنت براي کاربردهاي عمومي و يا توزيع شده، روي شبکه اينترانت يا اکسترانت براي کاربردهاي درون سازماني و يا برون سازماني. بنابراين در برخي بخشها و مزايا و معايب، اين خود برنامه نيست که مسبب اصلي است، بلکه اين بستر استفاده است که يا يک محدوديت و يا يک مزيت را براي ما به ارمغان مي آورد.
 - مشخصات کلي:
برنامه هاي تحت وب معمولا برنامه هاي هستند که در بيش از سه لايه پياده سازي شده و اصطلاحا در گروه (Multi Layer applications ) قرار مي گيرند. در اين برنامه ها حداقل سه لايه واسط کاربري (User Interface Layer) که مي تواند روي يک کامپيوتر بسيار سبک اجرا شود (thin client) و توسط نرم افزارهايي استاندارد استفاده شود (مرورگرها يا Browsers) ، يک لايه کاربردي Bussiness Layer که روي يک application server اجرا شده است و يک لايه داده Data Layer که روي يک Data server وجود دارد اجرا مي شوند. (دقت کنيد به لحاظ سخت افزاري لزومي به سه تا ديدن آن نيست.) اين برنامه ها با بهره گيري از پروتکل هاي وب و TCP/IP با يکديگر به مبادله اطلاعات مي پردازند.

-مزايا:
صرف نظر از يک نرم افزار خاص و به صورت عمومي براي برنامه هاي تحت وب مزاياي زير متصور است:
-يکپارچگي با محيط هاي جديد کاربري که کاربران را قادر مي سازد از طريق يک مرورگر مشخص هم به داده ها و اطلاعات و هم به برنامه ها و کاربردها تواما دسترسي داشته باشند.
-توزيع شدگي: در صورت اجراي اين برنامه ها روي شبکه اينترنت، کاربران مي توانند بدون محدوديت جغرافيايي و مکاني مشخص و صرفا با داشتن يک نشاني يا آدرس خاص، به سيستم متصل شده، در صورت نياز پس از تعيين سطوح دسترسي از امکانات اين سيستم ها استفاده نمايند.
- پشتيباني سهل تر: چون روي کامپيوتر هاي Client نرم افزار خاصي نصب نمي شود، به سادگي و با به هنگام کردن برنامه يا داده روي سرور ، مي توان از اينکه کاربران به آخرين داده يا برنامه دسترسي دارند مطمئن شد.
-نگاه متفاوت در طراحي واسط کاربري: به لحاظ حضور استانداردها يا تکنيک هايي نظير ابر متن (Hyper Link) ، XML، Ajax ، Comet و ... نگاه ديگري به انجام يک کاربرد مي شود که معمولا به سليقه کاربران جديد نزديک تر است. مخصوصا در محيط هاي پرتال (Portal servers) نگاه و معماري مبتني بر سرويس (Service Oriented) مي تواند جالب توجه باشد.
-عدم نياز به سخت افزار قوي و يا سيستم عامل خاص در سطح Client ها: همانگونه که اشاره شد به لحاظ تقسيم شدن پردازش در سطح Client و Server تنها بخش کوچکي در روي کامپيوتر هاي Clent اجرا مي شود (Clent Side) که بيشتر جنبه نمايشي و تنظيم واسط کاربري دارد و پردازش هاي اصلي که مرتبط با کار با داده و انجام پرس و جو ها را دارند بيشتر روي سرور (Server Side) صورت مي گيرد.
-...
- معايب:
- ساختار کند تر: به دو دلیل نرم افزار های تحت وب، نسبت به برنامه های تحت ویندوز کند تر هستند، یک دلیل آن نقش بازی کردن پهنای باند و سرعت تبادل اطلاعات روی شبکه است که با انتقال برنامه از محیط اینترنت به اینترانت و یا استفاده از اینترنت پرسرعت، می توان تا حدودی این مشکل را برطرف نمود. اما بحث دوم که خاصیت برنامه های تحت وب است، معماری Push و Pop رایج است که به دلیل ارسال مداوم درخواست ها از سمت Client به Server و Refresh شدن صفحات بر اثر دریافت پاسخ رخ می دهد. این مساله باعث می شود، در هر بار بازخوانی صفحه بخشی اطلاعات غیر ضروری مبادله شود و یا اینکه برای هر کاری نیاز به درخواست خاص خود و طرح آن با سرور باشد. در سمت Client در این سیستم ها معمولا به دلیل محدودیت Script ها تنها بخشی از عملیات نمایشی و تنظیمات صورت می گیرد. امروزه تلاش شده است با استفاده از تکنولوژی هایی نظیر Ajax همه صفحه بازخوانی نشود و صرفا آن دسته از اطلاعات مورد نیاز از سرور بارگذاری شود و یا از Comet برای ارسال خودکار اطلاعات بدون طرح تقاضای بازخوانی صریح از سمت Client برای رفع این نقص استفاده شود که هم هنوز به دلیل عدم پختگی کامل و وجود ابزارهای مناسب (هر چند این روزها مولفه های زیادی به صورت فروشی و یا متن باز در این زمینه وجود دارد) و هم به دلیل دانش برنامه نویسان قدیمی تر، استفاده محدود تر و پرهزینه تری دارند.
- نگاه ويژه به امنيت : در برنامه های تحت وب، شما باید نگاه ویژه تری به امنیت داشته باشید. اغلب مشاهده کرده ام که Data Layer و Application Layer روی یک سرور نه چندان مطمئن روی اینترنت و یا اینترانت قرار می گیرد که این مساله باعث می شود ریسک امنیتی و خطر حملات و نفوذها بیشتر شود. در وب باید بیشتر از ویندوز توجه نشان داد به این مساله، چون در تحت ویندوز، خود حضور یک برنامه خاص روی Client که می تواند صرفا درخواست های مجاز و محدود را به سمت سرور ارسال نماید بخشی از ریسکهای امنیتی ما را کاهش می دهد.
- سرور گران قيمت : چون اکثر حجم پردازش در سرور صورت می گیرد استفاده از سرورهای پرقدرت برای اینگونه برنامه ها پیشنهاد می شود. در برخی موارد که حجم تراکنش ها بالاست رعایت مواردی نظیر Load Balancing و توزیع کاربردها روی سرورهای مختلف، حائز اهمیت بوده که باعث می شود هم تهیه و هم نگهداری از اینگونه سرورها، مهم تر باشد.
- عدم توانايي کامل در ايجاد محيط هاي تعاملي : به لحاظ اینکه هنوز ابزارها و مولفه های واسط کاربری تحت وب برای کارکردن مداوم یک کاربر روی نرم افزار مناسب نیست. کاربرانی که به عملیات ورود اطلاعات و یا صدور و ثبت اسناد زیاد و حجیم در سیستم مشغول هستند معمولا نیاز به ابزارها، میانبرها و امکاناتی هستند که بتوانند به درخواست های خود بسیار سریع دسترسی پیدا کنند. در برنامه های تحت وب، پیشتر این امکان غیر ممکن بود اما این روزها، تلاشهای خوبی هم در سطح تولید ابزارهای مناسب و هم در سطح تغییر نگرش به یک کاربرد از Function به Service صورت گرفته است که هنوز به شکل کامل توسط برنامه نویسان ایرانی مورد استفاده قرار نگرفته است.
-نصب و راه اندازي دشوار تر : به لحاظ اینکه باید شما در روی سرور محیط و بستر مناسب برای اجرای یک برنامه تحت وب را آماده کنید، این کار سخت تر از زمانی است که شما یک برنامه تحت ویندوز را نصب می کنید. در اکثر برنامه های تحت ویندوز شما با یک برنامه Installation طرف هستید که یا به صورت کامل و یا به صورت حداکثری عملیات نصب و تنظیم برنامه را انجام می دهند در سمت سرور هم شما کافی است یک DBMS (سیستم مدیریت پایگاه داده) نصب کرده و بانک اطلاعات خود را بارگذاری نمایید. در برنامه های تحت وب جدید تر که مبتنی بر یک CMS یا یک Portal Server هستند، وجود ابزارهای گام به گام wizards برای تنظیم برنامه و پایگاه داده کمک خوبی است، اما کامل نیست.
-...

دقت کنید، همانطور که پیشتر گفته ام مواردی که در مزایا و یا معایب برنامه های تحت وب و یا تحت ویندوز ذکر شد، مواردی است که در اینگونه برنامه ها به صورت عمومی یافت می شود و گرنه نمونه هایی وجود دارد که بر اثر تلاش و هزینه برنامه نویسی و یا استفاده یا عدم استفاده از تکنولوژی های خوب، بهتر یا بدتر از اینگونه برنامه ها باشند. علاوه بر این رشد و توسعه محیط ها، ابزارها، استانداردها و تکنولوژی هایی نظیر NET Framework. ، یا Ajax و یا J2EE باعث غنای بهتر و یا استفاده مناسب تر هم برنامه های تحت ویندوز و هم برنامه های تحت وب شده است.
در پست بعد تلاش می کنم یک جمع بندی بر این مبحث داشته باشم.
همین!

Ali Vahed | 03:28 PM | Comment(s)(4)

تحت ویندوز

April 14, 2008 02:58 PM

نوشته قبلی بازخوردهای خوبی داشت، از Comment هایی که دوستان، نظرات خود را به درستی مطرح کرده بودند تا نوشته فراسان که با یک نگاه کارشناسی به این سوال پرداخته بود. برای اینکه بتوانم با کمک نظرات داده شده و داشته های خودم یک جمع بندی برای این پرسش داشته باشم در دو بخش به معرفی قابلیت ها و محدودیت ها و در نتیجه کاربردهای این دو محیط می پردازم تا در نهایت بتوانیم یک ارزیابی کامل نسبت به این دو داشته باشیم. در نوشته اول به برنامه های تحت ویندوز  (windows based application) و یا به طور کلی Desktop application ها خواهم پرداخت:
-مشخصات کلی:
نرم افزارهای این گروه یا به صورت تک کاربره (Single) و یا به صورت شبکه ای (معمولا به صورت Client/Server) فعال هستند که در گروه اول، همه اطلاعات و برنامه پردازشی روی یک دستگاه و در مدل دوم برنامه اجرای مجزا از بانک اطلاعاتی روی دستگاه های کاربری و بانک اطلاعات روی یک کامپیوتر سرور قرارگرفته است.

-مزایا:
به طور کلی مزایای عمومی این گروه از برنامه ها را صرف نظر از مزایا و یا معایب خاص یک نرم افزار در قیاس در مقابل برنامه های تحت وب می توان چنین برشمرد:
- رابط کاری قوی تر: در این نرم افزارها مجموعه ای توانمند از مولفه های نرم افزاری (Component) ها در سطح واسط کاربری وجود دارند که یک GUI قوی و با امکانات برای نرم افزار پدید می آورند و کاربر استفاده کننده معمولا به سادگی با بهره گیری از صفحه کلید و موس می تواند از همه صفحه نمایش استفاده مؤثر داشته و به نیازهای خود بپردازد.
-سرعت در پردازش اطلاعات: به لحاظ حضور در یک کامپیوتر و یا در یک شبکه محلی (Lan) معمولا ترافیک شبکه گلوگاه سیستم بشمار نرفته و درخواست ها همیشه در یک زمان قابل پیش بینی پاسخ داده می شوند.
- امنیت: به لحاظ استقلال سیستم از دنیای خارج و نیز پردازش دستور ها در سطح برنامه در Clent و پاسخگویی به پرس و جو ها (query) در server امنیت این سیستم ها ساده تر تامین می شود.
- نزدیکی به کار کاربران عادی: کاربران عادی در سازمانها معمولا کمتر با محیط اینترنت به عنوان یک محیط عملیاتی آشنا هستند و بیشتر با اینگونه نرم افزار ها چه در سطح سیستم عامل و چه در سطح نرم افزارهای امور اداری (نظیر Office) کار کرده اند و با این نرم افزارها راحت تر آموزش خواهند دید.
- پیاده سازی روانتر: به دلیل پختگی ابزارهای پیاده سازی تحت ویندوز (Win 32 or .NET) سرعت و روانی فرآیند تولید و خطایابی نرم افزار در این سیستمها ساده تر صورت می گیرد.
-ابزارهای گزارش گیری مناسب: معمولا ابزارهای گزارش گیری چه به صورت ایستا و چه به صورت پویا در سطح برنامه های تحت ویندوز بیشتر در دسترس بوده و قوی تر می باشند.(به جز ابزارهای مشترکی که در هر دو بخش وجود دارد) لذا استفاده از آنها در برنامه ها رایج تر بوده، گزارشات اینگونه سیستم ها معمولا قوی تر و پویا تر می باشند.
-استفاده مؤثر از امکانات سخت افزاری: به دلیل حضور برنامه روی Client و بانک اطلاعات روی Server ، از پهنای باند شبکه برای انتقال اطلاعات (برای مثال فرمها، آیکون ها و تصاویر و ...) از سرور به cleint استفاده نمی شود و از همه قابلیت های پردازشی Client ها استفاده می شود. و نیازی به قدرت زیاد server نمی باشد و بسته به تعداد Clent ها و حجم Transaction ها می توان از کامپیوترهای ارزان قیمت تر برای Server استفاده نمود.
-...

- معایب: معایب عمومی این مدل برنامه سازی را می توان در موارد زیر جمع بندی نمود:
- پشتیبانی دشوار تر: به دلیل وجود برنامه EXE روی Client های مختلف، در صورت ارتقاء نرم افزار و یا رفع خطا، شما باید از تغییر همه فایل های اجرایی مطمئن شوید.
-محدودیت جغرافیایی : به لحاظ استفاده از شبکه های محلی (LAN ) به عنوان بستر فعالیت نرم افزار، کاربران نمی توانند به صورت توزیع شده و یا از راه دور در محل دلخواه به سیستم متصل شده و از آن استفاده کنند. (برنامه های معدودی که از طریق سرویس های RAS امکان کار از راه دور مثلا از طریق اتصال با خطوط تلفن (نظیر برنامه های BBS) در این قسمت نادیده گرفته شده اند، چون هم از لحاظ تنوع و هم از لحاظ حجم استفاده امروزه در اقلیت به سر می برند.)
- توزیع نشدگی: معمولا این سیستم ها به صورت مرکزی Central بوده و چنانچه در یک سازمان در چند مرکز نیاز به استفاده باشد، باید اتصال از طریق خطوط اختصاصی (نظیر روشهای بیسیم Point-to-Point و یا خطوط استیجاری leased Line و یا به صورت Dial Up و یا نهایتا VPN) حداکثر در سطح بانکهای اطلاعاتی هماهنگ سازی صورت گیرد (Replication)
-محدودیت Client ها: کامپیوترهای کاربران در این سیستمها باید در حد قابل قبولی باشد و از لحاظ سیستم عاملی نیز محدود به سیستم عامل خاصی نظیر windows باشد و کاربران نمی توانند از سیستم عامل های دیگر نظیر Linux و یا Mac OS استفاده کنند و یا به صورت موبایل (GPRS) از سیستم استفاده نمایند.
-دور بودن از روشهای جدید: معمولا کاربران جدید و جوان بر خلاف کاربران قدیمی تر با فضای اینترنت آشنایی بیشتری دارند و استفاده از نرم افزارهای تحت ویندوز برایشان دلچسب نیست.

مورد استفاده: به نظر می رسد اینگونه سیستمها برای کاربردهای زیر مناسب تر باشند:
- کاربردهای خانگی تک کاربره: نظیر برنامه های کاربردی ساده (Office) ، بازی های گرافیکی قوی، ابزارهای مولتی مدیا، و نرم افزارهای فنی و مهندسی
- کاربردهای اداری محدود در سطح یک شبکه محلی
- کاربردهای نیازمند به ابزارهای ورود اطلاعات و یا گزارش گیری مناسب
- نرم افزارهای با پردازش اطلاعات زیاد و حجیم
- نرم افزارهای تعاملی (Interactive) که حجم بالایی از تعامل را با کاربر دارند و نیاز به یک واسط کاربری (User Interface) قوی تر دارند.

و برای این کاربردها مناسب نیستند:
- کاربردهای توزیع شده که الزامی به حضور کاربر در یک محدوده جغرافیایی خاص و یا یک بستر و سیستم عامل یکسان نمی باشد.
- برنامه های با سرعت بالای تغییر که پشتیبانی آنان در این حالت دشوار می باشد.
- نرم افزارهای عمومی که کاربران با سطح دانش و امکانات مختلف از سیستم استفاده می کنند.
-کاربردهای اطلاع رسانی که در آنها کاربر نه با هدف پردازش اطلاعات بلکه با هدف دریافت و یا تبادل اطلاعات به سیستم رجوع می کند.
- برنامه هایی که تعداد کاربران آن بالاست اما حجم تراکنش هر کدام از کاربران و تعامل آنان با نرم افزار پایین است. برای مثال در کاربردهایی که در بانک و یا تجارت الکترنیک، نیازمند ارائه سرویس به مشتری داریم (B2C و یا Internet Banking) که در آنها کاربر صرفا یا یک تقاضای مشخص را مطرح می سازد و یا به حجم محدودی از اطلاعات دسترسی دارد.

در مطلب بعد به برنامه های تحت وب خواهم پرداخت. اگر در فهرست های بالا نقصی دیدید مرا مطلع کنید، لطفا!
همین!

Ali Vahed | 02:58 PM | Comment(s)(3)

وب یا ویندوز، مساله این است!

April 5, 2008 10:57 AM

این روزها سوالی که اغلب مشتری از ما کامپیوتری ها می پرسند و یا در جمع های تخصصی در مورد آن بحث می کنیم، آن است که برنامه ها باید در چه محیطی ساخته شوند؟ به شکل Desktop Application  و در محیط ویندوز (Windows Based )  ویا بر روی بستر اینترنت و یا اينترانت (Web based Application).  اکثر مشتری ها در یک حرکت غیر منطقی و جو زده ترجیح می دهند به سمت برنامه های تحت وب بروند و تولید کنندگان هم به همین دلیل، سبک کار خود را بر اساس این نیاز قرارداده اند از سوی دیگر ماهیت خیلی از مسائل پیرامون الزاما، یا ترجیحا باید به صورت تحت ویندوز باشد. داستانی که تمامی ندارد: Trade Off
نظر شما در این زمینه چیست؟ تلاش می کنم در چند نوشته دیدگاه خودم  را در مورد این قضیه تشریح کنم بدون آنکه قصد رسیدن به یک نتیجه قطعی را داشته باشم که می دانیم چنین نتیجه ای وجود ندارد...
همین!

Ali Vahed | 10:57 AM | Comment(s)(6)