+8 امتیاز
قبل در برنامه نویسی توسط (330 امتیاز)
برچسب گذاری دوباره قبل توسط
تفاوت بین Application Server و Web Server چیست ؟

تعریف کلی هر کدام چیست و نمونه های آن کدام است؟
قبل توسط (1.1هزار امتیاز)
صورت سوال شما تفاوت Application Server و Web Server بصورت کلی است ولی برچسب های شما این برداشت را بوجود می آورد که منظورتان Application Server و Web Server در دنیای Java EE است. لطفا شفاف سازی کنید؟

4 پاسخ

+8 امتیاز
قبل توسط (1.1هزار امتیاز)
ویرایش شده قبل توسط

اولین تفاوت، تفاوت معنایی این دو واژه است البته نه از نظر معنی !!! چون تفاوتشون کاملا مشخصه، منظور من در نحوه استفاده آنهاست. اگر از واژه web server استفاده کنیم تعریفی مشخص در ذهن همگان پدیدار می شود و آن هم بصورت کلی سرویس دهنده ای که می تواند به در خواست های HTTP سرویس دهد. اما وقتی از واژه application server استفاده می کنیم یک تعریف کلی (که تقریبا بین همه مشترک است) به ذهن خطور می کند و کلی تعریف دیگر که بین پلتفرم های مختلف متفاوت است. در نتیجه اولین تفاوت در استاندارد بودن کاربرد این دو واژه است بصورتی که web server تعریفی استاندارد دارد در حالی که application server بصورت خاص (برای پلتفرم های مختلف ) تعریف استاندارد دارد. برای مثال تعریف application server در دنیای Java EE با دنیای .Net و PHP متفاوت است.

اما مورد بعدی این که سرویس هایی که یک web server عرضه می کند (مانند HTTP) می تواند توسط یک application server نیز عرضه شود ولی لزوما (در بعضی پلتفلرم ها حتما) سرویس هایی که توسط application server عرضه می شود (مانند EJB ، Zend و .Net) نمی تواند توسط web server ارائه شود.

+7 امتیاز
قبل توسط (193 امتیاز)

توضیحات دوستان صحیح است. فقط در تکمیل توضیحات آنها لازم است عرض کنم که:

وب سرور هندل کننده پروتکل Http است. وقتی که وب سرور یک Http request دریافت میکند، پاسخ آن را به صورت Http response و به عنوان مثال در قالب یک صفحه html می تواند ارسال کند. در حقیقت وب سرور با پردازش درخواست، پاسخ را به صورت یک صفحه html استاتیک، عکس و یا تولید صفحات داینامیک مانند jsp و ... ، ارسال می کند. در حقیقت وب سرور ارسال کننده درخواست به برنامه است. در حقیقت وب سرور هیچ کارایی فراتر از فراهم کردن یک محیطی که در آن برنامه server-side بتواند اجرا شود و نتیجه یا پاسخ تولید شده را بتواند بر گرداند، ندارد.

این درحالی است که Application server از طریق پروتکل هایی مانند Http، TCP-IP و ... bussiness logic برنامه را در معرض client applications قرار می دهد. در حقیقت یک application server provider اجازه دسترسی کلاینت به bussiness logic را جهت استفاده می دهد. به عبارت دیگر application srever استفاده می شود تا bussiness logic را اجرا کند یا کد نمایشی (presentation code) را به صورت داینامیک تولید نماید. به عنوان مثال یک J2EE application server، سرولت ها(servlet) و jsp ها را به منظور تولید صفحات Html داینامیک اجرا میکند.

+3 امتیاز
قبل توسط (1.2هزار امتیاز)
  • Application Server نرم افزاری هست که واسط بین نرم افزار شما و سیستم عامل می باشد. این نرم افزار وظایفی چون:
    • اجرای کتابخانه ها و سرویس های نرم افزار شما
    • دریافت منابع سیستمی از سیستم عامل و مهیا کردن آنها برای سیستم شما و سایر سیستم های دیگری که ممکن است همزمان روی آن as د  حال اجرا باشند، به شیوه کاملا مدیریت شده
    • برقراری ارتباط سیستم شما با سایر سرور ها مثل سرور پایگاه داده(dbms) و سرور پیام (messaging server)
    • بر قراری ارتباط با سایر اپلیکیشن سرور ها
    • مدیریت life-cycle اجزای مختلف نرم افزار شما

را به عهده دارد.

  • از طرفی Web server واسط بین یک یا چند application server با شبکه اینترنت است. از وظایف web server می توان به :
    • گوش کردن به پورت های از پیش تعریف شده برای دریافت درخواست (request) های کاربران
    • رمز گذاری(encription) در هنگام ارسال داده ها و رمز گشایی در هنگام دریافت یک درخواست
    • فشرده سازی داده ها در هنگام ارسال و استخراج داده های فشرده شده در هنگام دریافت
    • کنترل تعداد درخواست ها و کنترل زمان قابل صرف جهت بازگرداندن پاسخ به هر درخواست
    • توزیع درخواست های کاربران بین application-server ها و جمع آوری پاسخ از آنها

اشاره کرد.

 

نمونه هایی از Application Server :

  • WebSphere
  • WebLogic
  • JBoss
  • GlassFish

همچنین نمونه هایی از Web Server:

  • IHS
  • Tomcat
  • Jetty
قبل توسط (2.2هزار امتیاز)
توضیحات دوست عزیز msd صحیح میباشد و تنها این نکته وارد است که tomcat یک application server است یا به معنی واقعی servlet container است و در کنار apache که یک web server است کار می کند .
قبل توسط (1.2هزار امتیاز)
ویرایش شده قبل توسط
در واقع اگر شما apache tomcat را یک app server می دانید به نظر بنده اشتباه است. در واقع حقیقت این است که امروزه Web Server ها امکانات بیشتری را در اختیار برنامه نویسان قرار می دهند و این امر به دلیل سنگین بودن app server ها برای محیط توسعه می باشد. web server های امروزی برای رنج وسیعی از تکنولوژی ها و پلتفرم های توسعه نرم افزار پاسخگو هستند ولی استفاده از آنها به عنون app server تنها و تنها برای محیط توسعه توصیه می شود.
البته اگر استاندارد های جاوا را مبنای صحبت قرار دهیم که اصلا سروری که EJB Container نباشد appserver به حساب نمی آید. ولی بنده بحث را به هیچ وجه به این سمت نمی برم چون دنیای جاوا حقیقتا فرا تر از JSR ها قدم بر می دارد.
این تکه متن، توصیف ویکی پدیا از apache tomcat هست :
Apache Tomcat (or simply Tomcat, formerly also Jakarta Tomcat) is an open source web server and servlet container developed by the Apache Software Foundation (ASF). Tomcat implements the Java Servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, and provides a "pure Java" HTTP web server environment for Java code to run.
این هم لینک :
http://en.wikipedia.org/wiki/Apache_Tomcat
قبل توسط (2.2هزار امتیاز)
ویرایش شده قبل توسط
با سلام
@msd شما از کلمه tomcat به تنهائی‌ استفاده کردید ، در واقع tomcat یه پروژه پایان یافته است که در ابتدا به صورت جدا تولید میشود و باید به طور دستی‌ با web server apache تنظیم و استفاده میشود ، با محصول جدید گروه آپاچی در واقع هر ۲ محصول در قالب ۱ محصول به عنوان apache tomcat ارائه شد که در واقع هم web server و هم application server رو در خود داره .پس نمی توان tomcat (تامکت به تنهائی‌) رو به عنوان web server معرفی‌ کرد.
برای تشخیص این دو هم میتونید به لینک‌های زیر مراجعه کنید:
http://uploadax.com/images/53158144390357008038.gif
http://uploadax.com/images/09289221126592148152.gif
قبل توسط (1.1هزار امتیاز)
+1
@tashtboland  در حال حاضر تنها ارتباط بین پروژه های Apache و Apache Tomcat یکی بنیاد Apache که مدیریت هر دو پروژه را بر عهده دارد و دیگری کتابخانه Apache Portable Runtime - APR.
@msd اگر شما از امکانات مخصوص application server استفاده کنید مانند EJB container، در محیط توسعه نمی توانید از apache tomcat استفاده کنید.

در نهایت apache tomcat یک سرور http و servlet container می باشد و همین دلیل همین باعث شده تا پروژه ای به نام Apache TomEE در بنیاد Apache راه بیوفته که کم و کسری های apache tomcat برای application server شدن (البته در دنیای JavaEE) به اون اضافه کنه:
http://tomee.apache.org/
قبل توسط (1.2هزار امتیاز)
ویرایش شده قبل توسط
+1
تا اونجا که من می دونم اخیرا کلمه tomcat به apache tomcat اطلاق می شه که همونطور که شما به طور کامل توضیح دادید "یک سرور http و servlet container می باشد" , و نه اپلیکیشن سرور.
همونطور که من عرض کردم tomcat دارای بسیاری از امکانات یک اپلیکیشن سرور هست و ممکنه جایی به این نام هم مورد بررسی قرار بگیره ولی در اصل در دنیای جاوا و جهت استفاده در محیط production معمولا به این عنوان به حسابش نمیارن.
(البته باید تو پرانتز بگم که اینا نظرات شخص بندس . اگر اظهار نظر می کنم به خاطر اینه که بابش باز بشه یه چیزی یاد بگیریم .)
+3 امتیاز
قبل توسط (79 امتیاز)

Application server و web server در واقع دو مقوله جدا از هم هستند خیلی از application server ها  معمولا  همراه خود یک web server دارند . و البته بعضی از application server ها ممکن است web server  نداشته باشند . مثل mobicent که برای کارهای مخابراتی استفاده می شود  .web server کاری که انجام می دهد اینست که درخواست ها را از پروتکل http دریافت میکند و از طریق یک connector آنرا به application server  پاس می دهد .application server هم از طریق connector به web server پاسخ می دهد .

کلا application server معمولا یا از طریق resource adaptor و یا connector  با هم ارتباط برقرار میکنند

چیزهایی که یک application server l معمولا  دارد  :

  • امکانی برای نگهداری busness component ها مثل ejb container
  • Connector
  • web server

نموه هایی از application server:

webspher

jboss

weblogic

mobicent

glassfish

نمونه های از وب سرور

Tom cat

microsoft iis

 

 

سوالات مشابه

+2 امتیاز
3 پاسخ 5.2هزار بازدید
سوال شده 11 سال قبل در برنامه نویسی توسط مسافر (922 امتیاز)
+1 امتیاز
2 پاسخ 2.5هزار بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط javaa (127 امتیاز)
+2 امتیاز
1 پاسخ 381 بازدید
+1 امتیاز
1 پاسخ 587 بازدید
0 امتیاز
1 پاسخ 718 بازدید
0 امتیاز
2 پاسخ 1.2هزار بازدید
0 امتیاز
0 پاسخ 515 بازدید
سوال شده 11 سال قبل در کامپیوتر و اینترنت توسط Milad (1.3هزار امتیاز)
0 امتیاز
1 پاسخ 651 بازدید
0 امتیاز
2 پاسخ 1.5هزار بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط arsam (23 امتیاز)
...