برای تشریح بهتر برنامههای کاربردی تحت وب مدرن و امروزی ،معمولا رسم بر آن است که آن را به چهار لایه مستقل تفکیک میکنند .
( شکل یک ) لایه مشتری یا clien ، لایههای میانی که عبارتند از presentation و Business و در نهایت آخرین لایه یعنی لایه داد .
در مدلهای کوچکتر معمولا لایههای میانی در یک لایه مجتمع شده و در نتیجچه یک مدل ساده شده سه لایهای به دست میآید برای تصور بهتر این لایهها ، شاید بهتر بتاشد که فرض کنید هر لایه بر روی یک کامپیوتر پیاده سازی میشود .
با اینن سناریو ، فقط لایه مشتری یا clien در منزل و محل کار من یا شما قرار گرفته است و بقیه لایهها بر روی کامپیوترهایی واقع هستند که ممکن است صدها یا هزارها کیلومتر از ما فاصلاه داشتهباشد .
حتی ممکن است که لایههای دیگر نیزر در کنار هم واقع شدهباشند .
( هر چند که معمولا چنین نیست .
) لایه مشتری در این مدل سازسژی همان مرورگر وب است که بر روی کامپیوتر مشتری ، صفحات وب را نشان میدهد .
در اینن لایه علاوه بر آنکه اطلاعات نمایش داده میشوند ، امکان ورود اطلاعات از طرف کاربر نیز وجود دارد و یکی از وظایف مرور گرها ، انتقال این اطلاعات جمع آوری شده و ارسال آن به لایههای فوقانی است .
معمولا برای پیاده
سازی لایههای مشتری از دو روش استفاده میشود .
در روش اول ، از هوشمند بودن کامپیوتر کاربر هیچ استفادهای نمیشود .
هنگامی که کاربر اطلاعات یک فرم را تکمیل میکند و یا در خواست صفحه خاصی را میکند (submit) .
کلیه عملیات پردازشی در لایههای میانی انجام شده و صفحه جدیدی برای او ارسال میگردد .
این صفحه جدید فقط ممکن است شامل یک پیام خطا باشد .
به این روش اصطلاحا Dump HTML client اطلاق میگردد .
در روش دوم از هوشمندی کامپیوتر کاربر به خوبی استفاده میگردد .
مثلا هنگامی که فرمی را در یک صفحه وب تکمیل میکنیم و اگر دچار اشتباه شویم ، بلافاصله بدون آنکه ارتباطی بین لایههای فوقانی برقرار گردد ، کامپیوتر به شما هشدار میدهد .
مزیت روش دوم (Semi intellgent client ) آشکار است .
( کاربر برای هر عملیات ساده و ابتدایی نیاز به انتظار کشیدن در پای کامپیوتر خود ندارد .
) اما در این روش ، مرز بین لایههای میانی ( Business و Presentation ) مخدوش میگردد برای استفاده از هوشمندی کامپیوتر مشتری ، از اسکریپت نویسی به زبانهای جاوا اسکریپت و یا ( DHTML ) vbscript در صفحات وب استفاده میشود .
توجه داشته باشید که به همین علت ، ، توانایی مرورگرها در اجرای دستورات ، اهمیت مییابد و نسخههای 4 به بعد مرورگرهای Netscape/IE ، امروزه حداقل نیازمندی سایتهای جدید قرار گرفتهاند .
لایه Presentation
وظیفه لایه Presentation ، ارائه محتوای متغیر ( دینامیک ) در صفحات وب است .
معمولا محتوای دینامیک از یک بانک اطلاعاتی تامین میشود ( مانند اسامی کاربران Hotmail به همراه مشخصات آنان ) .
وظیفه مهمتر این لایه شناسایی صفحات ارسال شده از سمت مشتری ( client ) است .
( یعنی شناسایی کاربر و انتقال اطلاعاتی که او به لایه Business وارد کردهاست ) .
روشهای پیاده سازی این عملیات بر روی کامپیوتر web server ، متنوع بوده و در گذشته از برنامههای موسوم به CGI استفاده میشدهاست .
الب”ه استفاده از جاوا اسکریپت در سمت سرور نیز مدتی مورد استفاده قرار گرفت ، اما روشهای متداول امروزی عبارتند از :
- استفاده از روشهای مایکروسافت بر اساس سفحات فعال سمت سرور یا ASP با استفاده از Visual Interdev .
- استفاده از راه حلهای شرکت سان بر اساس ترکیب صفحات فعال جاوا ( JSP ) و موجودیتهایی به نام servlet ها .
در ابزارهای ارائه شده فوق ، روشهایی برای قرار دادن محتوای دینامیک در درون صفحات HTML و همچنین تکنیکهایی برای دریافت اطلاعات ورودی کابر ، در نظر
گرفته شدهاند .
لایه Presentation معمولا درون برنامههای وب سرور ( نظیر Apache webserver , Microsoft IISS IBM websphere و غیره ) پیاده سازی میشوند .
وب سرورها توانایی دریافت و اجراتی چندین در خواست از سوی برنامههای کاربردی لایههای دیگر و همچنان کار بران را به طور همزمان دارند .
وب سرورها بر اساس آرایش اولیه (configuration) میدانند که در خواستهای (requests) کاربر مشتری را باید به کدام برنامه کاربردی (application) هدایت نمایند .
لیه Business
حجم زیاد از عملیات یک سایت مدرن در این لایه ، پیاده سازی میِود .
این عملیات عبارتند از :
- اجرای تمام محاسبات و تایید (validation) دادهها
- مدیریت جریان کار (worflow) .
فرض کنید که شما به عنوان یک کاربر Hotmail با وارد کردن نام کاربری و اسم رمز وارد سایت شدهاید ، تا زمانی ککه از سایت خارج نشدهاید .
سایت شما رامیشناسد و امکان استفاده از امکانات آن برای شما فراهم است .
حضور شما تا لحظه خروج یک session یا جلسه نام دارد و مدیریت
این جلسات نیز در لایه Business انجام میگردد .
مدیریت دستیابی به اطلاعات ( بانک اطلاعاتی ) و ارائه آن به لایه Presention .
روشهای پیاده سازی این لایه در کاربردهای جدید به یکی از صورتهای زیر است : استفاده از اشیای COM ( ارائه شده توسط مایکروسافت ) با استفاده از ویژوال بیسیک یا ویژوال c++ وغیره ، استفاده از اشیای متناظر شرکت سان یا .EJB (Enterprise java Beans ) اصولا هرگاه نیاز با ارتباط یا مبادله اطلاعات بین چند برنامه مستقل وجود داشته باشد ، نام این تکلونوژیها را خوتهید شنید .
( در شمارات گذشته مقالاتی در این مورد منتشر شدهاست ) روشی که قبل از ارائه راهحلهای مایکروسافت و سان در این مورد به کار میرفتهاست ، پیروی از مشخصههای اشیای CORBA بوده است .
این مشخصه ( CORBA ) در سال 1992 ارائه شده است و قابل حل در راه حل ارائه شده توسط شرکت سان و زبان جاوا میباشد .
لایه Business معمولا درون برنامههایی موسوم به ( Application sever ) پیاده سازی میشوند ( نظیر Oracle Application server , Microsoft MTS و غیره ) .
اگر فعالیتهایی که در لایههای یکسایتکابردی انجام میگیرند را به امور یم منزل تشبیه کنیم،کلیه فعالیتهای خانهداری بر عهده لایهBusiness و برنامههای Application server خواهد بود .
برنامههای شرکتهای تولید کننده Application server بر اساس قابلیتهای امنیتی ، مقیاس پذیری ، قابلیت اطمینان و غیره از یکدیگر تفکیک میشوند .
لایه داده این لایه مسئول نگهداری اطلاعات است و میتواند شامل بانکهای اطلاعاتی مدرن یا مجموعهای از فایلهای متنی ساده باشد .
در کاربردهای سادهتر میتوان مدل چهار لایهای شرح داده شده را به مدل کوچکتری تبدیل کرد .
در این مدل کوچک شده میتوان لایههای Business و resentationP را در هم ترکیب کرده و بروی یک وب سرور اجرا نمود .
مروری بر معماری J2EE ( Java 2 Enterprise Edition ) در سالهای اولیه پیذایش جاوا ( 1990 ) ، از این زبان بیشتر به عنوان یک زبان قوی برای برنامه نویسی در سمت مشتری client یاد میشد .
بهتدریج این زبان از اقبال عمومی در کابردهای لایههای میانی برخوردار گردید و نهایتا با عرضه را حلهای جدید EJB )و( Servlets ، شرکت سان ( حدود سال 200 ) مشخصههای J2EE را معرفی نمود .
مشخصههای J2EE نیز چهار لایه بوده و منطبق بر مدل معرفی شده « معماری چها لایه وب » است .
( شکل دو ) در لایه مشتری ، صفحات وب که میتوانند شامل جاوا اسکریپت باشند نمایش داده میشوند .
در لایه میانی resentationP ، به کمک Servletها و JSP محتوای ینامیک تولید میشود .
Servletها و JSP درون وب سرور اجرا میشوند .
لایه Business با استفاده از تکنولوژی EJB پیاده سازی میشود .
EJB ها درون Application server اجرا شده و همان تور که گفته شد وظایف خانه داری از قبیل انجام محاسبات ، تایید دادهها و دسترسی به بانک اطلاعاتی به یکی از روشهای زیر انجام پذیر است : استفاده از واسطه JDBC ( مشابه ODBC مایکروسافت ) و یا استفاده از SQLJ ( مشابه SQL مایکروسافت ) .
در مشخصههای ارضه شده در J2EE ، برای کامپیوترهای مشتری ( client ) غیر وابسطه به وب نیز پیشبینی هایی انجام شده است .
برای دسترسی کامپیوترهای مشتری به لایه Business ( مثلا تحت شبکه LAN که IIOP cilent نام گذاری شدهاند ) توابع دسترسی از راه دور نام RMIAPI عرضه شدهاست .
Servelt چیست ؟
CGI یکی از اولین روشهایی بود که برای تولید صفحات وب با محتوای دینامیک مورد استفاده قرار میگرفت .
به مرور زمان روشهای جدیدتری نیز برای این منظور ، عرضه شد .
همانطور که ذکر شد ، مایکروسافت تکنیک ASP را عرضه نمود و پس از زمان کوتاهی JSP از طرف سان ارائه گشت .
اما قبل از آن شرکت سان در سال 1997 ، Servletها را معرفی کرده بود .
Servletها به عنوان جایگزینی برای اسکریپتهای CGI ، ( درون ماشین مجازی جاوا یعنی JVM ) Servletها برخلاف اپلتهای جاوا نیازی به پشتیبانی مرورگر از جاوا ندارند و تقریبا بر روی تمام وب سروها ( به صورت مستقیم و یا با استفاده از plug-inها ) قابل اجرا هستند .
servlet ها قابلیت دریافت اطلاعات دریافنژت شده از کاربر و کوکیها و غیره را دارند .
servlet ها قابلیت دسترسی مستقیم به بانکهای اطلاعاتی ( در مدلهای ساده معماری وب ) و یا دسترسی به داده از طریق EJB ( در مدلهای کاملتر ) را دارند .
به عنوان مثالی از یک servlet به قطعه کد – در کادر پایین – توجه نمایید .
این قطعه یک صفحه وب با عبارت “ Welcome bake username” تولید میکند که در این عبارت username نام کاربر فعلی است .
JSP همانطور که دیده میشود ، استفاده مکرر و اجباری از عبارت out.printh() در servletها ، نمیتوانست در برابر راه حل سر راستتر مایکروسافت (ASP) ایستادگی نماید .
این موضوع شرکت سان را بر آن داشت تا در سال 1999 ، JSP را معرفی نماید .
قطعه کد نشان داده شده در بخش دوم همان کار servlet نمونه ما را انجام میدهد و حجم آن بسیار کوچکتر است .
واقعیت آن است که عبارت « %%» در JSP بر روی وب سرور به servlet ترجمه میشوند .
EJB تا قبل از سال 1996 ، تکنولوژی جاوا محدود به اجرا در سمت مشتری clint بوده است ، اما شرکت سان با معرفی قطعات کد قابل استفاده مکرر به نامJava Bean در این سال همچنان با رقابت با مایکروسافت ادامه داد .
( در همان سالها نیز مایکروسافت تکنولوژی COM را پایه گذار نمود ) یک Java Bean که رابط گرافیکی نداشته باشد میتواند کلیه وظایف لایه Business را بر عهده گیرد .
این Java Bean میتواند از درون Servlet یا یک صفحه JSP فراخوانی شود .
اما با پیچیدهتر شدن کاربردهای اینترنت و پیدایش مدل چهار لایه ، لازم شد تا Java Beanها بر روی کامپیوترهای جداگانه (Application server) اجرا شوند .
به این منظور سان EJBها را عرضه کرد EJBها برخلاف Java Bean های معمولی همواره بدون واسطه گرافیکی هستند و میتوانند از راه دور به خدمت گرفته شوند .
این برنامهها ، برنامههاب کاربردی توزیع شده نام دارند .
سرزمین جاوا یکی از دلایل شهرت شرکت سان مایکروسیستمز ارائه و توسیعه پلافرم جاوا (Java Platform) است که در قلب آن زبان برنامه نویسی جاوا قرار دارد .
مهمترین نکته ای که در ارتباط با جاوا باید دانست ، این است که جاوا تنها یک زبان برنامه نویسی مانند C++ نیست ، بلکه یک فنآوری کامل و جامع است که تقریبا برای هر مسالهای که در دنیایه شبکه و اینارنت وجود دارد راه حلی دارد .
اغلب افرادی که نسبت به جاوا مبتدی هستند مرتکب همین اشتبها میشوند و چون زبان برنامه نویسی حاوا همچون زبان مادری خود C++ ، “سبت به زبانهایی مثل بیسیک کمی پیچیده به نظر میرسد ، خیلی زود ممکن است از آن خسته و دلزده شوند ولی اگر به جاوا به چشم یک فنآور پیشرفته نگاه کنیم آنگاه زبان برنامه نویسی جاوا شیرین و جذاب به نظر خواهد رسید خصوصا که زبان جاوا نسبت به فنآوری جاوا یک موضوع جنبی دیده میشود در حقیقت زبان جاوا ابزار عینیت بخشیدن به تفکر حاکم بر فنآوری جاوا و راه حلهای آن است .
پروژه سبز اوایل سال 1991 میلادی گکروهی از متخصصان سان ؤپروژهای به نام Green Project را آغاز کردند .
هدف این پروژه که تا نهایی شده نتیجه آن مخفی ماند ، یافتن پاسخ این سوال بود که «موج بعدی» جهان کامپیوتر ( در آن سالها ) چه خواهد بود و چگونه میتوان بر آن مسلط شد ؟
تیم نخستین پروژه سبز متشکل از جمیز گاسلینگ ، مایم شریدان و پاتریک ناگتون خیلی زود به این نتیجه رسیدند که دست کم یکی از تحولات مهم آینده آمیزش و ترکیب شدن کامپیوترها و وسایل دیجیتالی مصرفی و خانگی ( Digital Consumer Devices ) خواهد