منبع اصلی نوشتار زیر در این لینک قرار دارد

web browser engine

 

web\"Browser browser engine  یا موتور مرورگر وب (که به آن layout engin یا rendering engine نیز میگویند) یک جزء نرم افزاری هست که محتوای مشخص شده مثل فایلهای تصویری و xml و html و … و نیز اطلاعات مربوط به قالب بندی مثل css و xsl و .. را میگیرد و محتوای فرمت شده را در پنجره حاوی محتوا نمایش میدهد. به عبارت دیگر موتور مرورگر وب یکی از بخشهای اصلی هر مرورگر وب است که وظیفه تجزیه و تحلیل کدهای html, xml و …و تولید صفحه را بر عهده دارد  و نمایش این صفحه بر عهده سایر قسمتهای مرورگر است.

یک layout engine در مرورگر

 

های وب، ایمیل کلاینتها برای رندر کردن ایمیلهای html، سیستمهای کمک آنلاین، ebook readers و سایر ابزارهایی که نیازمند ویرایش و نمایش محتوای وب هستند جاسازی شده است.

به عنوان مثال:

در مرورگر konqueror از موتور متن باز KDE بنام KHTML استفاده میکند.

همین موتور KHTML اساس تولید موتور webkit هست که در مرورگرهای safari شرکت اپل و chroms شرکت گوگل به عنوان موتور استفاده شده. بر اساس statcounter موتور webkit پر استفاده ترین موتور برای مرورگرهای وب است.

موتور Gecko که متن باز نیز است برای پروژه موزیلا بوده و توسط محصولاتی که از کدهای موزیلا استفاده میکنند استفاده میشود. مثل ورورگر وب فایرفاکس، ایمیل کلاینت thunderbird.

Trident  در مرورگر وب اینترنت اکسپلورر استفاده شده و همچنین توسط ابزارهای زیادی روی پلتفرم مایکروسافت ویندوز مثل: netsmart,outlook express, microsoft outlook و mini browser ها در Winap و realplayer استفاده شده است.

موتور Presto مختص مرورگر وب opera است.

قبلا مرورگرهای وب یک پارچه بودند بعدا ماژولار شدند و شامل دو بخش موتور و رابط کاربر هستند. بیشتر کارها بر دوش موتور هست که یک URL و یک صفحه مستعطیلی به عنوان آرگومان میگیرد و سپس اطلاعات و اسناد مربوط به URL را بازیابی میکند و یک نمایش گرافیکی از آن را در صفحه مستطیلی ارائه میدهد.مدیریت کوکی ها، اسکریپتها، لینکها و بارگذاری افزونه ها برعهده موتور است. رابط کاربر نیز رابط بین موتور و کاربر است و مواردی مانند نوار آدرس، نوار منو، نوار وضعیت، تاریخچه و … را فراهم میکند.

مزیت روش ماژولار این است که میتوان موتورهای مذکور را به راحتی در انواع کاربردها جاسازی کنیم. مثلا همان موتور که در مرورگر وب استفاده میشد در یک کلاینت ایمیل برای نمایش ایمیلهای html، سیستمهای کمک انلاین و یا EPUB3( استاندارد کتاب الکترونیک بر اساس layout engine برای رندر کردن css و xhtml) نیز استفاده شود.

از layout engine  های پرکاربرد میتوان به موارد زیر اشاره کرد:

Amaya

Gecko

KHTML

 Presto

 Prince

Trident

Webkit.

از جمله layout engine  هایی که پرکاربرد نیستند میتوان به موارد زیر اشاره کرد:

Mariner

icab

HTMLayout

GTKHTML

Gazelle

 Boxely

Tasman

 TKHTML

اکنون به بررسی جزیات هر کدام از موتورهای مذکور میپردازیم.

KHTMLموتور :

توسط پروژه KDE توسعه یافته. و با زبان C++ و در فریم ورک Kpart  نوشته شده است. در ۴ نوامبر سال ۱۹۹۸ به عنوان یک کپی از کتابخانه (KHTMLW  (KDE HTML Wigget همراه با برخی تغییرات برای پشتیبانی از یونیکد و سایر موارد تولید شد. کار روی KHTML  در سال ۱۹۹۱ شروع شد.  و در مرورگر وب konqueror استفاده شده. ورژن توسعه یافته آن webkit است. KHTML یک نرم افزار آزاد است. تحت لایسنس GNU LGPL  میباشد.

استانداردهایی که KHTML با آنها مطابقت دارد عبارتند از:

HTML 4.01

HTML 5

CSS 1

CSS 2

CSS 3 selectors

فرمتهای گرافیکی  PNG ، MNG، JPEG  و GIF

DOM 1, 2 and 3

ECMA-262/ java script 1.5


موتور Webkit:

پروژه Webkit در سال ۲۰۰۱ در شرکت Apple به عنوان توسعه KHTML و KJS شروع شد.این موتور در مرورگرهای safari و chrome استفاده شده و در نوامبر سال ۲۰۱۲ بیشترین سهم بازار را در میان سایر موتورها به خود تخصیص داد (حدودا بیش از ۴۰ درصد). در سال ۲۰۰۷ ،CSS و HTML5 برای ویدئو  را پشتیبانی کرد. این موتور مبنایی برای مرورگرهای آزمایشی مثل Amazon kindle ebook reader و مرورگر پیشفرض در Apple iOS ، Bada و سیستم عامل موبایل Tizen و webOS  بوده است. این موتور اکنون توسط شرکتهای Apple Inc، Nokia، google، BitStream، RIM و .. توسعه میابد.

اجزاء این موتور عبارتند از:

webcore

js core  که یک فریم ورک است که برای عملیات webkit یک موتور جاوا اسکریپت فراهم میکند.

Drosera

اجزاء Webcore  و javascript core در Webkit تحت لایسنس GNU LGPL بوده و خود Webkit تحت مجوز BSD-form میباشد.

 

API های ++C موجود در Webkit امکاناتی مانند نمایش محتوای وب در صفحه، دنبال کردن لینکها هنگام کلیک کردن روی آنها و مدیریت تاریخچه صفحاتی که اخیرا دیده شده اند.

کدهای HTML و جاوا اسکریپت موجود در Webkit ازتوسعه KHTML و کتابخانه های موتور جاوا اسکریپت میباشد.

سیستم عاملهایی که این موتور پشتیبانی میکند عبارتند از: ویندوز، گنو لینوکس، سیستم عاملهای مبتنی بر یونیکس.

Webkit در safari در ویندوز و در  کلاینت ایمیل Apple وسیستم  مدیریت اطلاعات شخصی Microsoft برای رندر کردن ایمیل های حاوی محتوای html استفاده شده است.

موتور Gecko

این موتور نرم افزار آزاد و متن باز است. , و در سال ۱۹۹۷ توسط Netscape شروع شدو بعدا توسط بنیاد موزیلا و تحت لایسنس عمومی موزیلا قرار گرفت. و سومین رایج ترین layout engine در www میباشد. در اکثر نرم افزارهای کاربردی که توسط بنیاد موزیلا توسعه یافته اند مخصوصا مرورگر فایرفاکس و نیزدر بسیاری از پروزه هاینرم افزاری متن باز  و برای پشتیبانی ازاستانداردهای باز اینترنت استفاده شده است. شامل API های برنامه نویسی قوی است که آن را برای طیف وسیعی از کارها در کاربردهای اینترنتی مناسب کرده است. با زبان ++C نوشته شده.

سیستم عاملهایی که توسط این موتور پشتیبانی میشوند عبارتند از: لینوکس، بی اس دی، مکینتاش، سولاریس، مایکروسافت ویندوز، OS/2، OS X، AIX، Open VMS

استانداردهایی که این موتور با آنها مطابقت دارد:

HTML 4

CSS 3

Java Script 1.8

DOM level 1 & 2

XML 1.0

XHTML 1.0

XSLT , XPath

MathML

XForms

RDF

SVG 1.1

موتور Trident

Trident یا  MSHTML ابتدا در آکتبر سال ۱۹۹۷ با  برای اینترنت اکپلورر مایکروسافت ویندوز ورژن ۴٫۰ معرفی شد. برای ورژنهای ۷ و ۸ IE در Trident تغییراتی اعمال شد تا با تکنولوژیهای جدید سازگار باشد. برای ورژن ۹ اینترنت اکسپلورر مایکروسافت در نظر دارد با بسیاری از استانداردهای مدرن وب سازگار باشد.

استفاده از این موتور در توسعه نرم افزاری: Trident به عنوان یک جزء نرم افزاری طراحی شده بود تا به توسعه دهندگان نرم افزارها اجازه دهد تا عملیات web browsing را به کاربردهای خودشان به آسانی اضافه کنند. و همچنین این موتور یک رابط COM برای دستیابی و ویرایش صفحات وب برایهر محیطی که COM را پشتیبانی میکند مثل .NET و ++C ارائه میدهد. برای مثال یک کنترل مرورگر وب میتواند به یک برنامه ++C اضافه شود و سپس Trident میتواند برای دستیابی به صفحه ای که اخیرا در مرورگر وب نمایش داده شده استفاده شود و میتواند مقادیر المانها را دریافت کند.

عملیات Trident از طریق لینک کردن فایل mshtml.dll به پروژه نرم افزار قابل دستیابی است.

استانداردهای سازگار با Trident: ورژن رایج Trident مثل IE 9 با استانداردهای زیر تطابق دارد

CSS 3

HTML 5

SVG

و سایر استانداردهای وب مدرن.

موتور Presto:

این موتور توسط Opera Software برای مرورگر وب Opera توسعه یافته است. در سال ۲۰۰۳ برای Opera 7 ارائه شد.و اکنون در Opera 12 استفاده میشود. Presto  فقط به عنوان بخشی از مرورگر اوپرا یا محصولات مرتبط قابل دسترسی است ولی سورس یا فرم های باینری موتور قابل دسترسی نیستند. در ورزنهای قبل از Presto در Opera از موتورهای Linear A استفاده میشد.

ورژنهایی از اوپرا که بر اساس توسعه هسته Presto هستند یعنی اوپرا ورژن ۷ تا ورژن ۹٫۲۷ از موتور Linear B  استفاده میکنند.

ورزنهای ۹٫۵ تا ۱۰٫۱۰ اوپرا از موتور Futhark استفاده میکنند. ولی در سال ۲۰۰۸ موتورهای ECMAScript به معرفی تولید کدهای محلی پرداختند که حجم سنگین پردازشها در سمت کلاینت بود و سریع تر ازFuthark بود. در سال ۲۰۰۹ نیز اوپرا به استفاده از موتور Carakan پرداخت.

ابزارهایی که Presto در آنها استفادهشده است عبارتند از:

مرورگرهای وب:

  • Opera

Opera 7 and above

Opera Mobile

Opera Mini

  • Nintendo

Nitendo DS Browser

Nitendo DSi Browser

Wii Internet Channel Browser

Nokia 770 Browser

Sony Mylo COM-1's Browser

 

 ویرایشگرهای HTML :

Macromedia Dreamweaver MX to Dreamweaver CS3

Adobe Creative Suite 2

dobe Creative Suite 3

Virtual Machianics SiteSpinner Pro

 

مشخصات موتورها

نام موتور

توسعه دهندگان

لایسنس نرم افزاری

ابزار استفاده شده

ابزار هدف

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

Gecko

Netscape/ Mozilla

MPL/GNU

GPL/GNU LGPL

Mozilla Firefox

Mozilla Firefox and

Mozilla Thunderbird

C++

GtkHTML

GNOME

GNU/LGPL

Novell Evolution

Novell Evolution

C

iCab

Alexander Clauss

اختصاصی

iCab

iCab

?

KHTML

KDE

GNU/LGPL

Konqueror

Konqueror & KMail

C++

NetFront

Access co.

اختصاصی

NetFront

NetFront

?

Presto

Opera Software

اختصاصی

Opera

Opera

C++

Prince XML

YesLogic  Pty Ltd

اختصاصی

Prince XML

Prince XML

Mercury

XEP

RenderX

اختصاصی

XEP

XEP

Java

Robin

Ritlabs

ختصاصی

The Bat!

The Bat!

Delphi

Tasman

Microsoft

اختصاصی

Microsoft Entourage

Internet Explorer for Mac & Microsoft Entourage

?

Trident

Microsoft

اختصاصی

Internet Explorer

Internet Explorer

C++

Webkit

Apple, KDE ,Nokia, Google, RIM, Plam

GNU/LGPL

BSD-style

Google Chrome

Google Chrome & Apple Safari

C++

 

مقایسه موتورها بر اساس سیستم عاملی که ساپورت میکنند:

نام موتور

windows

Mac OS X

LINUX

     BSD

UNIX

Symbian OS

Gecko

بلی

بلی

بلی

بلی

بلی

خیر

GtkHTML

بلی

بلی

بلی

بلی

بلی

خیر

iCab

خیر

بلی

خیر

خیر

خیر

خیر

KHTML

بلی

بلی

بلی

بلی

بلی

بلی

NetFront

 

خیر

بلی

خیر

خیر

 

Presto

بلی

بلی

بلی

بلی

بلی

بلی

Prince XML

بلی

بلی

بلی

بلی

بلی

خیر

XEP

بلی

بلی

بلی

بلی

بلی

خیر

Robin

بلی

خیر

خیر

خیر

خیر

خیر

Tasman

خیر

بلی

خیر

خیر

خیر

خیر

Trident

بلی

 

خیر

خیر

 

خیر

Webkit

بلی

بلی

بلی

بلی

بلی

بلی

 

 



برچسب ها : , ,