۱۲.۰۱.۱۳۸۷

اجزای فنی پورتال

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

  • Application Server : اغلب Application Server تحت J2EE هستند و امکانات لازم جهت توسعه و ارائه پورتال را در اختیار قرار می دهند. مثالهایی از این دست عبارتند از :

  • iPlanet
  • BEA WebLogic
  • IBM Websphere
  • Oracle 9iAS
  • OracleAS Portal 10g Release 1
  • Sybase Application Server

اغلب تولید کنندگان Application Server ، سیستمهای مربوط به پورتال را تحت عنوان "Portal add-ons" به تولیدات اصلی خود اضافه کرده اند و محصولاتی نظیر :

  • IBM Websphere Portal Server

  • Oracle Portal
  • BEA Portal
  • Sybase Enterprise Portal

را وارد بازار کرده اند اما محصولات دیگری نیز در بازار وجود دارند که صرفا برای ایجاد پورتال مورد استفاده قرار می گیرند نظیر :

  • Plumtree,
  • Epicentric
  • Corechange

این محصولات مبتنی بر جاوا هستند و از امکانات Application server ها استفاده می کنند.

  • Taxonomy : Taxonomy روندی برای دسته بندی مجموعه ای از داده ها است .در صورتی که ایده آل فکر کنیم ، با استفاده از Taxonomy می توان تعدادی فایل و مستندات را گرفته و آن را تبدیل به یک منبع اطلاعاتی کنیم ، به گونه ای که قابل مرور ، جستجو و پیمایش توسط کاربر باشد.Taxonomy را می توان با ساختار folder ها مقایسه کرد .با این تفاوت که برای دسته بندی داده ها قوانینی دارد . همچنین داده نما ( Metadata ) در این دسته بندی نقشی اساسی ایفا می کند. به عبارت ساده تر محیط پورتال باید دارای ساختار منظمی باشد . این ساختار که در اغلب موارد شامل تعداد زیادی پیوند می باشد به کاربر کمک می کند که اطلاعات را سریعتر پیدا کند. این نوع سازمان دهی اطلاعات Taxonomy نامیده می شود.

  • Crawler :فرآیندی است که به طور خودکار و طبق یک برنامه از پیش تعیین شده، بخش هایی از سایت و یا سایتهایی را می خواند. به عنوان مثال می توان crawler را به گونه ای تنظیم کرد که صفحات خاصی از یک وب سایت را بخواند تا در صورت تغییر فایل آن را نمایه سازی کرده و اطلاعات taxonomy را به روز کند.

  • Metadata repository ، حاوی داده نما ( Metadata ) مربوط به داده های پورتال و ساختار آنها می باشد. این metadata شامل metadata مرتبط با Taxonomy و تک تک مستندات است.

  • Portlet : پورتلت (Portlet) یک web component است که به عنوان جز سازنده پورتال شناخته می شود. در واقع پورتلت رابط بین کاربر و منبع اطلاعات ( Datasource ) است که درخواست کاربر را دریافت کرده و بر حسب آن صفحه درخواست شده را نمایش می دهد. اطلاعاتی که توسط پورتلت ساخته می شود ، fragment نامیده می شود که به یکی از زبانهای HTML ، XHTML ویا WML نوشته شده است . Fragment هر پورتلت برای پورتلت های دیگر قابل استفاده می شود . برای پورتلت عناوین دیگری نظیر Gadgets, Blocks, Web Modules, Web Parts , وجود دارد.

  • Categorization Engine : مسوولیت مرتب سازی اطلاعات و Toxonomy را بر عهده دارد. این مرتب سازی ممکن است بر اساس ابرداده ( Medadata ) موجود در مستندات ، قوانین مشخص شده برای مرتب سازی ، محتویات مستندات ، فیلترها و ضوابط جستجو باشد.

  • Filter : فیلترها اغلب برای مشخص کردن فایلهای درون فولدرهای Taxonomy و یا نتایج جستجو، مورد استفاده قرار می گیرند. فیلتر ممکن است مبتنی بر کلمه باشد نظیر "تمامی متنهایی که در آن لغت IBM وجود دارد "، یا مبتنی بر موضوع باشد نظیر "اگر این متن شبیه متن دیگری است " و مبتنی بر یک قاعده باشد "اگر فیلد Client دارای مقدار IBM بود"

  • Index : مجموعه ای از اطلاعات که به درخواست و بازیابی اطلاعات سرعت می بخشد. همواره Index ترکیبی از full-text index برای مستندات و Metadata repository برای محتوای فایلها می باشد.

  • Virtual Card : در داخل Index و Metadata repository به ازای هر یک از مستندات و یا هر بخشی از آن یک virtual card وجود دارد .این card حاوی آدرس فیزیکی هریک از مستندات و یا محتویات آنها می باشد . علاوه براین card دارای مقادیر چند فیلد از داده نما ( Metadata ) می باشد. در حقیقت card نماد مستندات در پورتال می باشد.

  • User Profiles: در پورتال به ازای هر کاربر اطلاعاتی ذخیره می گردد که برای شخصی سازی سایت مورد استفاده قرار میگرند. هر یک از portlet های پورتال به این اطلاعات دسترسی دارند و صفحات را بر حسب این اطلاعات پیکربندی می کنند تا متناسب با اخواستهای کاربر باشد. همچنین User profile شامل اطلاعات نحوه نمایش صفحه نخست پورتال و پورتلت های مورد علاقه کاربر می باشد.

  • Content Management System : اغلب پورتالهای سازمانی دارای بخشی تحت عنوان "مدیریت محتوا" هستند . کاربرانی که به این بخش دسترسی دارند می توانند اطلاعات جدیدی وارد پورتال کنند. پس از این اطلاعات در شاخه ای متناسب در taxonomy پورتال قرار داده می شود . شایان ذکر است که در این بخش می توان فایلهایی با فرمت های pdf و یا doc وارد کرد. همچنین ، این امکان وجود دارد که کاربران بتوانند صفحات html تولید و آن ها را ویرایش نمایند .

  • EAI- Enterprise Application Integration : از گذشته سیستمهای مختلفی در هر سازمان وجود داشته اند . هر یک از این برنامه ها به خودی خود، خوب عمل می کنند و حتی پایگاههای داده بسیار مفیدی ایجاد می کنند ، اما توانایی برقراری ارتباط با یکدیگر را ندارند . با استفاده از EAI می توان تمامی سرویسها و برنامه های کاربردی سازمان را در کنار یکدیگر قرار داد تا به صورت یک سیستم واحد در اختیار کاربر قرار گیرد. اما با توجه به پیچیدگی های که هر بخش به خودی خود دارد (بخش های خرید ، فروش ، منابع انسانی و...) این کار بسیار مشکل و پر هزینه می باشد.

با توجه اینکه هدف نهایی پورتال نمایش یکپارچه اطلاعات بدون توجه به منابع مختلف آن می باشد ، می توان با استفاده از EAI به عنوان یک لایه جدید در پورتال به گونه ای عمل کرد که نتیجه درخواستهای ارسالی یکسان باشد.

  • Development Standards and Protocols : شناخت استاندارد هایی که برای پورتال مورد استفاده قرار می گیرند، از مهمترین گامهای توسعه یک پورتال است .

  • XML : زبانی که برای نمایش اغلب داده ها می توان استفاده کرد. این زبان شباهت زیادی به HTML دارد با این تفاوت که XML برای انتقال داده ها مورد استفاده قرار می گیرد ، اما HTML صرفا به مرورگر(Browser) کاربر می گوید که صفحه درخواست شده را چگونه نمایش دهد . در حالی که در اغلب موارد XML به خودی خود با نحوه نمایش داده ها ارتباطی نداشته و برنامه که XML را دریافت می کند با استفاده از XSLT و XSL داده ها را نمایش می دهد .

  • Extensible Stylesheet Language Transformation-XSL, XSLT : فایلهای XML شامل داده هایی هستند که از نظر کاربر مفهوم خاصی ندارند ، XSL حاوی قوانینی برای تبدیل این داده های به قالبی است که برای کاربر قابل نمایش باشد. این قالب ممکن HTML برای مرورگرهای وب ، WML برای ابزارهای بی سیم و یا PDF باشد که مناسب برای چاپ باشد.

Web Services Description Language - WSDL: برقراری ارتباط و ارسال پیام بین قسمتهای مختلف در وب نظیر Web Service ها و Application باید دارای یک ساختار مشخص و استاندارد باشد . WSDL که مشترکا توسط IBM و Microsoft ایجاد شده با استفاده از یک ساختار مبتنی بر XML این امکان را به Web Service و Application ها می دهد که به صورت استاندارد برنامه و یا تابعی را در خواست کنند. به عبارت دیگر WSDL یک واسط کاربری عمومی برای Web Service ایجاد می کند . به عنوان مثال با استفاده از WSDL می توان توابع یک Web Service ، ورودی ها و خروجی های آن توابع ، نحوه برقراری ارتباط با تابع ، پیامهای دریافت ورودی و ارسال خروجی را مشخص کرد.

استفاده از WSDL برای پورتال بدین جهت است که پورتال غالبا باید اطلاعات و سرویس های مورد نیاز خود را از Webs Service های مختلفی دریافت کرده و در یک قالب نمایش دهد .

A WSDL document defines services as collections of network endpoints, or ports. In WSDL, the abstract definition of endpoints and messages is separated from their concrete network deployment or data format bindings. This allows the reuse of abstract definitions: messages, which are abstract descriptions of the data being exchanged, and port types which are abstract collections of operations.

The concrete protocol and data format specifications for a particular port type constitutes a reusable binding. A port is defined by associating a network address with a reusable binding, and a collection of ports define a service. Hence, a WSDL document uses the following elements in the definition of network services:

Types– a container for data type definitions using some type system (such as XSD).
Message
– an abstract, typed definition of the data being communicated.
Operation
– an abstract description of an action supported by the service.
Port Type
–an abstract set of operations supported by one or more endpoints.
Binding
– a concrete protocol and data format specification for a particular port type.
Port
– a single endpoint defined as a combination of a binding and a network address.
Service
– a collection of related endpoints.

مثال زیر اطلاعات مربوط به Web Service ، StockQuote را نمایش می دهد . این Web Service تنها یک Operation با نام GetLastTradePrice را پشتیبانی می کند ، این تابع وروری با نام tickerSymbol (که نام شرکت است) با فرمت string را دریافت می کند و در جواب price را در فرمت float به برنامه در خواست کننده، می دهد :














































My first service




  • SOAP : Simple Object Access Protocol یک استاندارد مبتنی بر XML برای تبادل پیام در اینترنت است و با استفاده از HTTP صورت می گیرد . با استفاده از این استاندارد می توان الگوهای پیام متفاوتی ارسال و دریافت کرد ، اما یکی از مهمترین این پیام ها ، RPC- است که یک client تابع مورد نظر خود را به همراه پارامترهای مورد نیاز به یک نود دیگر در شبکه / اینترنت می فرستد و این نود به صورت سرور عمل کرده و درخواست client را پاسخ می گوید . با توجه به اینکه SOAP مبتنی بر XMl f,ni بوده و مستقل از Platform است ؛ در حال حاضر به عنوان مهمترین پروتوکل فراخوانی توابع Web Service و دریافت نتیجه مطرح شده است.

ساختار یک پیام در SOAP دارای یک "envelope" است که دارای header و body است . header شامل اطلاعاتی نظیر تاریخ ارسال پیام می باشد. این بخش اختیاری است ، اما در صورتی که از آن استفاده شود ، باید در ابتدای envelope قرار گیرد. Body شامل طلاعاتی که باید انتقال داده شود.
مثال : نمونه درخواستی که client برای Web Service انبار می فرستد و در خواست اطلاعات کالایی را می کند :



827635


پاسخ Web Service به درخواست client :





Toptimate 3-Piece Set
827635
3-Piece luggage set. Black Polyester.
96.50
true



  • UDDI - Universal Description Discovery and Integration مشخصاتی است که برای پیدا کردن هر Web Service و فهرستی که Web Service ها اطلاعات خود را در آن منتشر کنند ، مورد استفاده قرار می گیرد . می توان از UDDI برای دریافت اطلاعات توصیفی Web Service در قالب XML استفاده کرد . این اطلاعات ارسالی می توانند در قالب WSDL باشند .

هیچ نظری موجود نیست:

http://up.iranblog.com/images/0z5dgraxwa4j49a5ts77.gif http://up.iranblog.com/images/gv83ah5giec9g8jkopmc.gif