اجزای فنی پورتال
هدف از پورتال ارائه شمایی یکسان از اطلاعات منابع مختلف به کاربر می
باشد ، بنابراین نحوه برقراری ارتباط با این منابع مختلف نامحدود می باشد .
فهرست زیر ، ارائه دهنده تکنولوژی های معمولی است که در پورتال وجوددارند . بعضی از
آنها نظیر web service اختیاری است اما بعضی دیگر نظیر پایگاه داده همواره به
عنوان بخشی از پورتال مطرح است .
-
iPlanet
-
BEA WebLogic
-
IBM Websphere
-
Oracle 9iAS
-
OracleAS Portal 10g Release 1
-
 Sybase Application Server
اغلب تولید کنندگان Application Server ، سیستمهای مربوط به
پورتال را تحت عنوان "Portal add-ons" به تولیدات اصلی خود اضافه کرده اند
و محصولاتی نظیر :
را وارد بازار کرده اند اما محصولات دیگری نیز در بازار وجود دارند که صرفا برای ایجاد پورتال
مورد استفاده قرار می گیرند نظیر :
-
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 Stan_dards an_d 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 an_d 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, an_d port types
which are abstract collections of operations.
The concrete protocol an_d 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, an_d 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 an_d data format
specification for a particular port type.
Port– a single endpoint defined as a combination of a
binding an_d a network address.
Service– a collection of related endpoints.
|
مثال زیر اطلاعات مربوط به Web
Service ، StockQuote را
نمایش می دهد . این Web Service تنها یک Operation با نام GetLastTradePrice را
پشتیبانی می کند ، این تابع وروری با نام tickerSymbol (که نام شرکت
است) با فرمت string را دریافت می کند و در جواب price را در فرمت float به برنامه
در خواست کننده، می دهد :
<?xml version="1.0"?> <definitions name="StockQuote" targetNamespace="http://example.com/stockquote.wsdl"
xmlns:tns="http://example.com/stockquote.wsdl"
xmlns:xsd1="http://example.com/stockquote.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema targetNamespace="http://example.com/stockquote.xsd"
xmlns="http://www.w3.org/2000/10/XMLSchema"> <element name="TradePriceRequest"> <complexType>
<all>
<element name="tickerSymbol" type="string"/>
</all>
</complexType> </element> <element name="TradePrice"> <complexType>
<all>
<element name="price" type="float"/>
</all> </complexType> </element> </schema> </types> <message name="GetLastTradePriceInput"> <part name="body"
element="xsd1:TradePriceRequest"/> </message>
<message name="GetLastTradePriceOutput"> <part name="body"
element="xsd1:TradePrice"/> </message> <portType name="StockQuotePortType"> <operation name="GetLastTradePrice"> <input message="tns:GetLastTradePriceInput"/> <output message="tns:GetLastTradePriceOutput"/> </operation> </portType> <binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType"> <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="GetLastTradePrice"> <soap:operation soapAction="http://example.com/GetLastTradePrice"/> <input>
<soap:body use="literal"/> </input> <output>
<soap:body use="literal"/> </output> </operation> </binding> <service name="StockQuoteService"> <documentation>My first
service</documentation> <port name="StockQuotePort" binding="tns:StockQuoteBinding"> <soap:address
location="http://example.com/stockquote"/> </port> </service> </definitions>
|
-
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 انبار می فرستد و در
خواست اطلاعات کالایی را می کند :
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetails
xmlns="http://warehouse.example.com/ws">
<productID>827635</productID> </getProductDetails> </soap:Body> </soap:Envelope>
|
پاسخ Web Service به درخواست client :
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <getProductDetailsResponse
xmlns="http://warehouse.example.com/ws"> <getProductDetailsResult>
<productName>Toptimate 3-Piece Set</productName>
<productID>827635</productID>
<description>3-Piece luggage set. Black Polyester.</description>
<price>96.50</price>
<inStock>true</inStock> </getProductDetailsResult> </getProductDetailsResponse> </soap:Body> </soap:Envelope>
|
علاوه بر موارد بالا Web Service و Data Base به عنوان
عناصر پورتال شناخته می شوند.