يك سيستم پرتال چيست و چگونه كار مى كند ؟
واژه وب پرتال (Web Portal) یا اختصارا پرتال برای سایتهایی به کار میرود که برای اغلب کاربران به عنوان نقطه شروع کار با اینترنت است. نمونه سایتهای پرتال عبارتند از Yahoo، Altavista ،Iview ،Infoseek ،Lycos ،Excite اغلب پرتالهای امروزی در ابتدا تنها یک موتور جستوجوی ساده بودهاند که با گذشت زمان و تکامل تدریجی به شکل فعلی درآمدهاند.
با ورود به یک پرتال به ۲ دسته از منابع می توان دسترسی پیدا کرد:
١- اطلاعات: موضوعات طبقه بندی شده ، پیوندهای مفید و غیره.
٢- سرویسها: برای مثال سرویسهایی نظیر پست الکترونیکی و غیره.
در یک کلام می توان گفت که پرتال دروازهای برای ورود به دنیایی از اطلاعات است.
پرتالها به ۵ دسته کلی تقسیم می شوند:
پرتالهای تخصصی: (Specialized Portals) پرتالهایی هستند که برای یک هدف خاص طراحی شدهاند
پرتالهای شرکتی: (Enterprise Portals) پرتالهایی که مخصوص یک شرکت خاص طراحی شدهاند و کاربران آن اغلب کارمندان شرکت هستند.
پرتالهای فضای کار: (Workspace Portals) پرتالهایی هستند که بر اساس زمینههای کاری مختلف طراحی می شوند.
پرتالهای تجاری: (Marketspace Portals) این پرتالها از تجارت الکترونیک در مدلهای شرکت با شرکت (B2B) و شرکت با مشتری (B2C) پشتیبانی میکنند.
پرتالهای علمی: (Knowledge Portals) پرتالهایی هستند که امکان همفکری بین افراد متخصص در انجام یک پروژه مشترک را میدهند.
به طور کلی پرتالها دارای ویژگیهای گوناگونی هستند، اما ویژگیهای اصلی که میتوان برای آنها برشمرد، عبارتند از:
امکان جستوجو: ویژگی اصلی و پایهای پرتالها برخورداری از امکان جستوجوی پیشرفته است.
یکپارچگی اطلاعات: اطلاعات از منابع مختلف جمعآوری شده و در قالب یک سایت به کاربر ارائه میشود.
امکان سفارشی سازی: هر کاربر بسته به خصوصیاتی که در هنگام ورود (log in) به پرتال ارائه میکند، اطلاعات متفاوتی را دریافت خواهد کرد.
برای مثال اگر پرتال یک شرکت را در نظر بگیریم، اطلاعات و سرویسهایی که مدیر شرکت پس از ورود به پرتال دریافت میکند، متفاوت از اطلاعات و سرویسهایی است که کارمندان دریافت می کنند.
تکنولوژی Push: به فناوری اطلاق میشود که به شکل خودکار و بدون درخواست کاربر، اطلاعات متناسب با سلیقه فرد به دسکتاپ او ارسال می شود.
معماری پرتالها
از نظر معماری، پرتالها به دو دسته پرتالهای عمودی (Vertical) و افقی (Horizontal) تقسیم می شوند.
پرتالهای افقی اطلاعات گستردهای در موضوعات بسیار متنوع ارائه میکنند در حالی که در پرتالهای عمودی، کلیه اطلاعات ارائه شده علیرغم گستردگی تنها در مورد یک موضوع خاص است.
به شکل سادهتر میتوان گفت که پرتالهای افقی، نقش پرتالهای عمومی و پرتالهای عمودی نقش پرتالهای تخصصی را بازی میکنند. یاهو نمونهای از پرتالهای افقی است که موضوعات گوناگونی را پوشش میدهد البته درمورد یاهو به دلیل گستردگی فوقالعاده، لفظ مگا پرتال را به آن نسبت دادهاند. از سوی دیگر امکان شخصیسازی را که به عنوان یکی از ویژگیهای کلیدی پرتال ذکر کردیم، به خوبی می توان در یاهو مشاهده کرد بدین منظور به آدرس http://my.yahoo.comمراجعه کرده و با وارد کردن شناسه کاربری و کلمه عبور خود وارد یاهو شوید .در این حالت اطلاعات صفحه یاهو به صورت نواحی شکلهای مستطیلی قابل انتخاب مختلف نمایش داده میشود و میتوانید موضوعات دلخواه خود را انتخاب کنید. در این صورت دیگر نیاز نیست به صفحه آغازین یاهو مراجعه کنید بلکه میتوانید به شکل مستقیم به سراغ موضوعات دلخواه خود بروید.
Post آشنايی با پورتال و مفاهيم زيربنايی آن
در اين مقاله ابتدا پورتالها و پورتلتها و سپس آبجكتهاي اوليه APIها توصيف می شوند، سپس عملكردهاي پيشرفتهتر نظير گردآوری و بازيابی اطلاعات كاربر، محليسازي و Caching مورد بررسي قرار ميگيرد. بعد از آن به نكاتي اشاره ميشود كه به فروشندگان پورتال امكان ميدهد تا عملكرد تعريف شده فعلي در ويژگی پورتلت را بسط و توسعهدهند.
2-سوالات اصلي
2-1. هدف از نگارش اين مقاله چيست؟ هدف از نگارش اين مقاله، ارائه آگاهی مختصری در خصوص پورتال و جزء تشکيل دهنده آن است که اصطلاحا پورتلت ناميده می شود. همچنين معرفی ويژگی پورتلت تحت عنوان JSR168 به عنوان استانداردی کارا و توانمند در طراحی و ايجاد پورتالها و همچنين مديريت آنها، موضوع اصلی ای است که در اين مقاله بدان پرداخته می شود.
2-2. مخاطبان مقاله چه كساني، با چه ميزان تخصص هستند و چه هدفي را از مطالعة مقاله دنبال ميكنند؟ مخاطبان اصلی اين مقاله متخصصان فعال در زمينه شبکه های رايانه ای هستند، به ويژه آن دسته از متخصصانی که دست اندر کار طراحی، راه اندازی و توسعه شبکه های سفارشی و قابليتهای مبتنی بر شبکه (Web-based) می باشند. مطالعه اين مقاله می تواند برای محققان و طراحان شبکه های خصوصی که در صدد کسب آگاهی بيشتر از مفاهيم و نمونه های خارجی پورتال به عنوان دروازه اطلاعاتی منابع تخصصی موجود در شبکه جهانی اينترنت هستند، مفيد و سودمند واقع شود.
3-تعاريف اوليه (اساسي)
در آغاز تعاريف اوليه به كار رفته در ويژگی پورتلت نظير معماري پورتال، كانتينر پورتلت و صفحه پورتلت را به شرح زير ارائه می گردد.
3-1. پورتال
پورتال برنامه كاربردي مبتني بر وب است كه خصوصی سازی، تفکيک و انتشار محتوا را از منابع مختلف ميسر ميسازد و ميزباني لايه ارائه (presentation) سيستم اطلاعاتي را انجام ميدهد. انتشار يعنی فرايند يكپارچهسازي محتوا از منابع در صفحه وب. شايد پورتال گونههاي خصوصی سازی شده پيچيده ای را براي تهيه محتواي سفارشي در برداشته باشد. همچنين ممكن است صفحات پورتال مجموعههاي مختلفي از پورتلتها را كه محتوا را براي كاربران ميسازند، شامل شوند.
شكل 1 معماري اوليه پورتال را نشان ميدهد. برنامه مبتنی بر وب پورتال، درخواست كلاينت را پردازش نموده و پورتلت را بر روي صفحه فعلي (موجود) كاربر بازيابي ميكند و سپس كانتينر پورتلت را براي بازيابي هر محتواي پورتلت فرا ميخواند. كانتينر پورتلت محيط و زمان اجرا را براي پورتلتها فراهم ميكند و فراخواني را از طريق API پورتلت انجام ميدهد. كانتينر پورتلت از طريق Invoker API از پورتالفراخواني ميشود. كانتينر اطلاعات مربوط به پورتال را با كمك SPI (Service Provider Interface) سرويس دهنده پورتلت بازيابي ميكند.
http://www.javaworld.com/javaworld/j...let1-thumb.jpg
شكل 2. اجزای اصلي صفحه پورتال را نشان ميدهد. صفحه پورتال نمايانگر سند كامل Markup است و چند پنجره پورتلت را منتشر مينمايد. اين صفحه ممكن است علاوه بر پورتلتها، شامل بخش ها نواحي و آگهيهاي تبليغاتي نيز باشد. پنجره پورتلت حاوي ميله عنوان (title bar) به همراه عنوان پورتلت، تزئينات و محتواي توليد شده توسط پورتلت است. تزئينات (decoration) ميتواند شامل دگمههايي براي تغيير دادن وضعيت پنجره پورتلت باشد.
http://www.javaworld.com/javaworld/j...let2-thumb.jpg
3-2. پورتلت
همانگونه كه در فوق اشاره شد، پورتلت جزء وب مبتني بر جاوا است كه درخواستها را پردازش نموده و محتواي پويا را توليد ميكند. محتواي توليد شده توسط پورتلت fragment نام دارد. بخشي از Markup (مثلا HTML، WML، XHTML) (Wireless Markup Language) مرتبط با قوانين خاص fragment ميتواند با ساير fragmentها انتشار يابد و سند كاملي را همانند شكل 3، تشكيل دهد. به طور عادي، محتواي پورتلت با محتواي ساير پورتلتها مجتمع شده و صفحه پورتال را شكل ميدهد. كانتينر پورتلت چرخه حيات پورتلت را مديريت ميكند.
http://www.javaworld.com/javaworld/j...let3-thumb.jpg
شكل 3.markupهاي مختلف پورتلت. سمت چپ:HTMLmarkup در مرورگر دسكتاپ. سمت راست:WMLmarkup بر روي تلفن سيار
كلاينتهاي وب با پورتلتها از طريق پارادايم درخواست/پاسخ پيادهسازي شده توسط پورتال، تعامل دارند. ممكن است محتواي توليد شده توسط پورتلت از كاربري به كاربر ديگر با توجه به پيكربندي صفحه كاربر، متفاوت باشد.
3-3. كانتينر پورتلت
كانتينر پورتلت، پورتلتها را اجرا ميكند و آنها را براي اجرا در محيط و زمان مناسب آماده ميسازد. كانتينر پورتلت حاوي پورتلتهاست و چرخه حياتشان را مديريت ميكند. همچنين مكانيزمهاي ذخيرهسازي ثابت را براي پورتلت فراهم ميآورد. كانتينر پورتلت درخواستها را از پورتال دريافت ميكند تا آنها را بر روي پورتلتهايي كه ميزبان نموده، اجرا كند. كانتينر مذكور، مسئول مجتمعسازي محتواي توليد شده پورتلتها نيست، بلکه پورتال اين كار را انجام ميدهد.
1-مفاهيم
اين بخش به تشريح مفاهيم اوليه برنامهنويسي در JSR 168 نظير چرخه حيات پورتلت، واسط و mode، state پنجره، دستيابي به session، دستيابي به انباره ثابت و نحوه لحاظ نمودن سرولت و صفحات JSP ميپردازد.
4-1. چرخه حيات پورتلت
چرخه حيات اصلي پورتلت در پورتلت JSR168 عبارتست از:
Initiator: آغازگر پورتلت
Handle Requests: پردازش انواع مختلف درخواستها
Destroy: خارج كردن پورتلت از سرويس
كانتينر پورتلت،چرخه حيات پورتلت را مديريت نموده و متدهاي مربوطه را بر روي واسط پورتلت فرا ميخواند.
4-2. واسط پورتلت
در پورتلت بايد واسط پورتلت را پيادهسازي نموده يا كلاسي را براي پيادهسازي واسط پورتلت منظور و توسعه داد. واسط پورتلت از متدهاي زير تشكيل شده است:
·Initiator (Portlet Config Config): براي آغاز نمودن پورتلت. اين متد فقط يكبار پس از آغاز شدن پورتلت فراخوانده ميشود و ميتواند براي ساخت آبجكتها/منابعي كه پورتلت به كار ميبرد، استفاده شود.
·Process Action (Action Request Request, Action Response Response): براي اعلام به پورتلت، متوجه ساختن آن از اينكه كاربر عملي (action) را بر روي اين پورتلت تحريك نموده است. در هر درخواست كلاينت، فقط يك action تحريك ميشود. پورتلت ميتواند در action تغيير جهت دهد، mode يا state خود را تغيير دهد، وضعيت ثابت خود را عوض كند يا پارامترهاي ارسال را تنظيم كند.
·Render (Render Request Request, Render Response Response): براي توليد markup، متد render براي هر پورتلت روي صفحه فعلي، فراخواني ميشود و پورتلت ميتواند markup را كه ممكن است به mode پورتلت يا state پنجره، پارامترهاي render، صفحات درخواست، وضعيت ثابت و دادههاي session وابسته باشد، توليد كند.
·Destroy: پايان چرخه حيات پورتلت را مشخص ميكند. اين متد به پورتلت امكان ميدهد تا منابع را آزاد نموده و هر داده ثابتي كه متعلق به پورتلت است، به روز برساند.
4-3. Mode هاي پورتلت
Mode پورتلت، عملكرد پورتلت را مشخص ميكند. معمولا پورتلتها، اعمال مختلفي را انجام ميدهند و بسته به نوع عملكرد، محتواي متفاوتي را ميسازند. Mode پورتلت عملكرد و محتوايي را كه بايد توليد شود، مشخص مينمايد. هنگاميكه پورتلت درخواست ميشود، كانتينر پورتلت، Mode فعلي پورتلت را برايش فراهم ميآورد. Mode پورتلتها را ميتوان از طريق برنامهنويسي تغيير داد.
JSR168، Modeهاي پورتلتها را به سه گروه تقسيم ميكند:
Modeهاي ضروري: هر پورتال بايد از Modeهاي Edit، Help، View پشتيباني كند. پورتلت بايد حداقل از view پشتيباني كند. Render markup از اين Mode براي صفحه استفاده ميكند. Edit نيز براي تغيير تنظيمات كاربر و سفارشي كردن markup پورتلت و Help براي نمايش صفحه Help بكار ميروند.
Modeهاي سفارشي اختياري: Modeهايي وجود دارند كه ممكن است پورتال از آنها پشتيباني كند، در حاليكه پورتلت در Mode اختياري شايد فراخوانی نشود. Modeهاي اختياري عبارتند از: About براي نمايش پيام about، config كه به کاربران امكان ميدهد تا پورتلت را پيكربندي نمايند، Edit-default كه با استفاده از آن ميتوان مقادير Edit را از پيش تنظيم كرد، Preview براي پيش نمايش پورتلت و print براي چاپ.
Modeهاي ويژه فروشنده: اين modeها ويژه فروشنده هستند و در ويژگی تعريف نشدهاند.
4-4. State هاي پنجره
State پنجره (حالت پنجره) نمايانگر ميزان فضاي صفحه پورتال است كه به محتواي توليد شده توسط پورتال اختصاص مييابد. وقتي پورتلت درخواست ميشود، كانتينر پورتلت حالت كنوني پنجره را براي پورتلت فراهم ميآورد. ممكن است پورتلت از حالت پنجره براي مشخص نمودن ميزان اطلاعاتي كه بايد ارسال نمايد، استفاده كند. هنگام پردازش درخواست action ميتوان از طريق برنامهنويسي حالت پنجره پورتلت را تغيير داد.
JSR168 حالات زير را براي پنجره تعريف نموده است:
عادي: پورتلت ميتواند صفحه را با ساير پورتلتها به اشتراك بگذارد. اين حالت پيش فرض است.
حداكثر: پورتلت ممكن است تنها پورتلت صفحه پورتال باشد يا فضاي بيشتري در مقايسه با ساير پورتلتها در صفحه پورتال داشته باشد و ميتواند محتوايي غنيتر از حالت عادي پنجره توليدكند.
حداقل: پورتلت حداقل خروجي را ارسال ميكند.
علاوه بر حالات فوق، JSR168 امكان تعريف حالات پنجره ويژه را نيز فراهم آورده است.
پورتلت ميتواند در هر يك از حالات فوق فراخوانده شود، اما ميتواند markup يكساني را براي هر سه حالت توليد كند.
4-5. ذخيره ثابت
پورتلت ميتواند دادههاي ثابت كاربر خاصي را با كمك آبجكت Portlet Preferences ذخيره كند.Preferenceها در فاز action خوانده و نوشته و در فاز render، فقط خوانده ميشوند. Edit، mode مناسبي براي نوشتن preferenceهاست و براي كاربر صفحه نمايش سفارشي تهيه ميكند. Preferenceها ميتوانند به صورت رشته يا مقادير آرايه رشته باشند و ميتوان آنها را با مقادير پيش فرض در توصيف كننده تنظيم نمود. مشخصات پورتلت و preferenceها در توصيفكننده، پورتلتي به نام Portlet entity تعريف ميكنند.
مفهوم session مبتني بر http session است كه براي برنامههاي وب تعريف ميشود. از آنجائيكه برنامههاي پورتلت برنامههاي وب هستند، از همان sessionهاي سرولت استفاده ميكنند. براي اينكه پورتلتها بتوانند دادههاي موقتي پورتلت را ذخيره نمايند، حوزه session،پيش فرض حوزه پورتلت است. پورتلت در اين حوزه ميتواند اطلاعات مورد نياز درخواستهاي كاربر و ويژه موجوديت پورتلت را ذخيره نمايد. صفات ذخيره شده در اين حوزه، پيشوند دارند تا از بازنويسي دو پورتلت (يا دو موجوديت با يك تعريف پورتلت) ممانعت بعمل آيد.
JSR168 از حوزه Web application نيز پشتيباني ميكند. در اين حوزه هر جزء برنامه وب ميتواند به اطلاعات دسترسي پيداكند. اين اطلاعات براي تبادل وضعيت گذرا در بين اجزای مختلف يك برنامه وب (مثلا بين پورتلت و سرولت) به كار ميرود.
4-6. لحاظ نمودن سرولتها/صفحات JSP
پورتلت براي پشتيباني از الگوي Model-View-Controller بايد بتواند محتواي توليد شده از سرولتها و صفحات JSP را لحاظ نمايد. بدين ترتيب پورتلت همانند كنترل كننده عمل و bean را با دادهها پر ميكند و صفحه JSP را در خروجي render لحاظ مينمايد.
مكانيزم لحاظ نمودن سرولتها و صفحات JSP در JSR168 همانند سرولت API است. درخواست از طريق زمينه پورتلت براي مسير مورد نظر بازيابي و سپس متد (include) بر روي آبجكت فرستنده درخواست (request-dispatcher)و فراخواني ميشود.
4-7. تنظيم با WSRP
WSRP محتواي توليد شده توسط پورتلتها را مجتمع ميسازد. اين پورتلتها بر روي ماشينهاي راهدور در حال اجرا هستند و از محيطهاي مختلف برنامهنويسي نظير J2EE، Net. استفاده ميكنند. سرويسهاي WSRP ارائهگرا هستند. سرويسهايي نيز به صورت Plug، Play با پورتالها يا ساير برنامهها کار می کنند. بدينترتيب شركتها ميتوانند محتوا يا برنامه را بينياز از تطبيق دستي محتوا يا برنامه تهيه كنند. پورتالهاميتوانند به سهولت سرويسهاي WSRP را بينياز از برنامهنويسي مجتمع سازند.
JSR168 مفاهيم بين JSR168 وWSRP را منطبق ساخته است. در ذيل مفاهيم عمده در استاندارد مذكور آمده است:
modeهاي پورتلت و حالات پنجره به طور كامل منطبقند.
كدگذاري و ساخت اشارهگرهاي URL به پورتلت به طور كامل منطبقند.
هر دو استاندارد تعامل كاربر با پورتلت را با فازهاي render، action دارند.
وضعيتي كه امكان گسستگي پورتلت و نمايش آن را در فراخوانيهاي بعدي render فراهم ميآورد، در WSRPتحت عنوان navigational state و در JSR168 با پارامترهاي render پشتيباني ميشود.
هر دو استاندارد حالت گذرا را در درخواستها با session ذخيره ميكنند. Session ID در WSRP هنگام نگارش فراخوانيهاي WPSR به پورتلتهاي JSR168 وJSR168session اشاره ميكند و بالعكس.
ذخيرهسازي حالت ثابت براي خصوصيسازي ارسال پورتلت در WSRP با ويژگيهاي انواع اختياري صورت ميگيرد، در حاليكه JSR168 فقط از رشته يا آرايه پشتيباني ميكند. به عبارتي توليدكنندگان WSRP مبتني بر JSR168 فقط زير مجموعهاي از عملكردهاي WSRP را بكار ميبرند.
اطلاعات مربوط به فراخواني پورتلت در WSRP، RegistrationData و در JSR168، Portlet Context نام دارد. همه دادههايي كه در portlet context نشان داده ميشوند، در Registration Data نيز وجود دارند.
همانگونه كه در فهرست فوق مشاهده ميشود، همه اين مفاهيم، انطباق بين JSR168 وWSRP را نشان ميدهند. لذا ميتوانيد كانتينرهاي پورتلت JSR168 را كه از طريق WSRP قابل دسترسي هستند، پيادهسازي نماييد و پورتلتهاي JSR168 را به صورت سرويسهاي WSRP نشان دهيد.
2-آيتمهاي پيشرفته پورتلت API
اين بخش به مفاهيم پيشرفته پورتلت API نظير دستيابي به اطلاعات كاربر، فراخواني زمينه پورتال، localization وcaching ميپردازد.
5-1. اطلاعات كاربر
شايد بعضي از پورتالها بخواهند markupهاي توليد شده را با توجه به اطلاعات شخصي كاربر، خصوصي نمايند. چنين اطلاعاتي اطلاعات پروفايل نام دارند و حاوي جزئياتي نظير نام كاربر، نشاني، پست الكترونيكي و غيره ميباشند. براي نمونه، با استفاده از پروفايل كاربر، پورتلت شرايط جوي ميتواند شرايط جوي شهري كه كاربر فعلا در آن زندگي ميكند را نشان دهد.
پورتلت API از دسترسي به اطلاعات پروفايل كاربر از طريق صفت درخواست USER-INFO به صورت نگارشی پشتيباني ميكند. ويژگی پورتلت، استفاده از اسامي صفت كاربر (Platform for privacy preference) 3P را توصيه ميكند. پورتلت ميتواند در تعريف كننده نصب تعريف شود، توصيف كنندهاي كه صفات اطلاعات كاربر از طريقاين نگاشت در درخواست دسترس پذير می سازد. سپس پورتال ميتواند اين صفات را در زمان نصب به صفات موجود در ذخيره دادههاي كاربر بنگارد يا از آنها صرفنظر كند.
اطلاعات كاربر درباره تحريك action ممكن است متفاوت از اصول J2EE باشد و در اين صورت پورتلت، پورتلت راهدور ناميده ميشود. اگر پورتلت، پورتلت راهدور باشد (توليدكننده WSRP)، اصول J2EE مصرف كننده WSRP را نشان ميدهد.
5-2. زمينه پورتال (Portal Context):
پورتلت API براي سازگار نمودن پورتلتها با پورتالي كه آنها را فرا ميخواند، portal context را فراهم ميآورد.اين پورتال از درخواست بازيابي ميشود. اين پورتلت اطلاعاتي نظير فروشنده پورتال، نسخه پورتال و ويژگيهاي مختص پورتال را فراهم ميآورد. اين اطلاعات به پورتلت امكان ميدهد تا از گسترههاي ويژه فروشنده در هنگام فراخواني توسط پورتال استفاده كند. از آنجائيكه Portal Context به درخواست ضميمه شده، ممكن است از درخواستي به درخواست ديگر تغيير يابد. اين حالت ميتواند در سناريوی راه دور اتفاق بيفتد، جايي كه يك پورتلت ممكن است از پورتال های مختلف (مصرف كننده WSRP) فراخواني شود.
5-3. Localization
ويژگی localization، استقرار را در دو سطح فراهم ميآورد: توصيف كننده نصب و پورتلت. در سطح توصيف كننده نصب، همه تنظيمات توسط راهبر وب سرور (توصيف پورتلت، پارامترهاي initiator، نمايش نام و غيره) از جمله صفت Xml:lang نظير توصيفكننده نصب سرولت 4/2 ، تغيير مييابد. تگ Xml:lang، تگ مشابهي را در زبانهاي مختلف (مثلا نمايش نام به انگليسي، آلماني و ژاپني) ايجاد می نمايد.
اين ويژگی در سطح پورتلت، كلاس منبع را در توصيف كنندهاي كه حاوي نسخ localized عنوان پورتلت است، عنوان كوتاهی براي تجهيزاتی كه از نظر گرافيكي محدوديت دارند و كلمات كليدي كه عملكردهاي پورتلت را توصيف ميكنند، در نظر می گيرد. ويژگی نمادي را براي استقرار نمايش اسامي و مقادير توصيفها توصيه ميكند. پورتلت ميتواند از طريق متد Portlet Context (Get Resource Bundle) به منبع دسترسي پيدا كند.
5-4. Caching
JSR168، پشتيباني از Caching را به صورت اعلان و برنامهنويسي، تعريف ميكند. زمان انقضای پاسخ پورتلت را ميتوان در هر پورتلت تعريف نمود. پورتلت در زمان اجرا ميتواند زمان انقضا را براي پاسخ render با استفاده از ويژگي EXPIRATION_CACHE تنظيم كند.
هر درخواستي كه به اين پورتلت ارسال شود، به طور خودكار، محتواي Cach شده را منقضي ميكند، به عبارتي وقتي كاربري بر روي action يا render كليك ميكند، پورتلت آن را مستقل از زمان انقضا دريافت ميدارد.
5-5. قابليت گسترش
ويژگی پورتلت مكانيزمهاي متعددي دارد كه به فروشندگان پورتال امكان ميدهد تا گسترههاي ويژهشان را لحاظ نمايند. اين بخش مهمترين اين مكانيزمها را توضيح ميدهد: ويژگيهاي مختص فروشنده، modeهاي سفارشي پورتلت و حالات سفارشي پنجره. همانگونه كه پيشتر توضيح داده شد، پورتلت ميتواند اطلاعاتي را درباره گسترههاي پشتيباني شده از طريق portal context كسب نمايد.
3-ويژگيها
ويژگيها با تنظيمات مختص فروشنده بين پورتلت و كانتينر پورتلت و بين پورتلت و پورتال، ارتباط برقرار ميسازند.
اين ويژگيها را ميتوان در JSR168 يافت. پورتلت ميتواند ويژگيهاي String را با متد getproperty از:
ActionRequest: براي دريافت ويژگيهايي كه مختص action-request هستند.
RenderRequest :براي دريافت ويژگيهايي كه مختص render-request هستند.
PortalContext :براي دريافت ويژگيهايي كه مختص پورتال هستند و براي درخواست مختلف تغيير نميكنند، بخواند.
پورتلت ميتواند ويژگيهاي String را با متد Setproperty در:
ActionResponse - :براي تنظيم ويژگيها در پاسخ به درخواست action و
RenderResponse - :براي تنظيم ويژگيها در پاسخ به درخواست renderبنويسد.
4-Modeهاي سفارشي پورتلت و حالات پنجره
اگر برنامه كاربردي پورتلت از Modeهاي ديگر پورتلت يا حالات پنجره (به غير از آنچه در ويژگی پورتلت تعريف شده) استفاده ميكند، ميتواند آنها را در توصيف كننده نصب اعلان كند. در زمان نصب، Modeهاي تعريف شده سفارشي پورتلت و حالات پنجره يا در Modeهاي پورتلت مختص فروشنده نگاشته شده يا از آن صرفنظر شده است. پورتلت ميتواند فقط از Modeهاي پورتلت يا حالات پنجره كه پورتال پشتيباني ميكند، استفاده كند. پورتلت ميتواند از متدهاي Get Supported Portlet Modes، Get Supported Window States براي بازيابي Modeهاي پورتلت و حالات پنجره استفاده كند. پورتلت ميتواند Modeهاي سفارشي پورتلت و حالات پنجره را در توصيف كننده نصب با استفاده از تگهاي custom-portlet-mode، custom-window-state تعريف كند.
5-بستهبندي و نصب
منابع برنامه كاربردي پورتلت، پورتلتها و توصيفكنندههاي نصب، می توانند در يك آرشيو برنامه نصب؛ بستهبندي شوند. برنامههاي كاربردي پورتلت برخلاف برنامه كاربردي وب سرولت، حاوي دو توصيف كننده نصب هستند: يكي براي مشخصسازي منابع برنامه كاربردي وب (web.xml) و يكي براي مشخص سازي منابع پورتلت (Portlet.xml). منابعي كه پورتلت نيستند بايد در توصيف كننده نصب web.xml مشخص گردند. همه تنظيمات پورتلتها بايد در فايلي به نام portlet.xml تعريف شوند. اين قانون سه استثنا دارد. موارد ذيل براي همه برنامههاي كاربردي وب مجاز هستند:
·توصيف برنامه كاربردي پورتلت
·نام برنامه كاربردي پورتلت
·نقش امنيتي برنامه كاربردي پورتلت
در نتيجه نصب دو فايل توصيف كننده، نصب برنامه پورتلت طی دو مرحله صورت می گيرد كه در اين دو مرحله برنامه وب در سرور برنامه اجرا می شوند و پورتلتها در سرور پورتال نصب ميشوند.
همواره فايل Portlet.xml فقط يك برنامه پورتلت خاص را توصيف ميكند. براي ساخت كپي برنامه پورتلت با تنظيمات مختلف، بايد برنامه پورتلت جديد ساخته شود. شكل 4 و 5 تعريف كامل فايل portlet.xml را نشان ميدهند. شكل 4 تنظيماتي را كه ميتوانند در سطح برنامه كاربردي بكار روند و شكل 5 تنظيماتي را كه در سطح پورتلت بكار ميروند، نشان ميدهد.
اولين نسخه ويژگی پورتلت، پورتلت API جامع و توانايي را تعريف ميكند كه تمام نيازهاي برنامههاي كاربردي سادهتر پورتلت رابرآورده ميسازد.نسخ آتي اين ويژگی، احتياجات برنامههاي كاربردي پيچيدهتر را كه به تعاملات بيشتر بين پورتلتها نياز دارد، پاسخگو خواهند بود.
1-نتيجه گيری
معماری پورتال بر اساس پورتلت ها شکل می گيرد و ويژگی خاص اين پورتلت ها آنها را نسبت به ساير API های مرسوم متمايز ساخته است.
همانطور که گذشت، JSR ويژگی پورتلت را برای غلبه بر مشکلات ناشی از اجزای ناهمگون پورتلتها (API) و نيز ايجاد قابليت تعامل ميان پورتلت ها و پورتالها تهيه نموده است. از ميان اهدافی که JSR168 دنبال می کند، ايجاد مکانيزمی جهت ذخيره سازی داده های ثابت و گذرا برای پورتلت ها مهمترين هدف به شمار می آيد. نقشی که کانتينر پورتلت از حيث محيط و زمان اجرای پورتلت بر عهده دارد، در خور توجه و بررسیاست. چرا که اساسا کانتينر، حاوی پورتلت ها است و چرخه حياتشان را کنترل می کند. کانتينر همچنين اطلاعات مربوط به پورتال را با کمک SPI(Service Provider Interface) بازيابی می کند. از سوی ديگر، محتوای توليد شده توسط هر پورتلت که اصطلاحا Fragment نام دارد، در نهايت به صورت مجموعه ای از Fragmentها صفحه پورتال را شکل می دهد.
به غير از پورتلت و کانتينر آن، جزء ديگری به عنوان واسط پورتلت در ميان است که کار آغاز، خواندن، اجرا و نيز حذف محتويات پورتلت را بر عهده دارد. پورتلت، با توجه به نوع عملکرد آن دارای سه حالت اساسی است. هر يک از اين حالات بنا بر فعاليتی که برای پورتلت در نظر گرفته شده است، طراحی و اجرا می شوند. ديگر مباحثی که در ارتباط با پورتلت و ويژگی آن مطرح می شود جنبه فرعی و ثانوی دارند که در مراتب تخصصی تر به صورت مشروح می توانند مورد بررسی قرار بگيرند. مجموعه اين مطالب تشکيل دهنده زيربنای فنی و ساختاری يک Interface از يک پورتال هستند که در مقابل چشمان کاربران قرار می گيرد.
منبع: http://ictarticle.blogfa.com /