ვებ-ინფრასტრუქტურის აგებულება

   თანამედროვე ელექტრონულ ინფორმაციულ პროცესებში ვებ-ტექნოლოგიის როლი განუხრელად იზრდება. მე-20 საუკუნის 40-იან წლებში რამდენიმე მეცნიერის (ვანევარ ბუში, ტედ ნელსონი, დაგლას ენგელბარტი) მიერ ჰიპერტექსტური ინფორმაციული მოდელის შექმნამ, ხოლო 1990 წელს CERN-ში ტიმ ბერნერს-ლის მიერ World Wide Web (WWW)-ტექნოლოგიის დამუშავებამ უდიდესი ციფრული ინფორმაციული სივრცის – მსოფლიო აბლაბუდის შექმნას ჩაუყარა საფუძველი. დღეს როგორც გლობალური, ასევე ლოკალური (კორპორაციული) ინფორმაციული სისტემების დიდი ნაწილი ვებ-ტექნოლოგიის საფუძველზე იქმნება, ხოლო ძველი, დესკტოპ-აპლიკაციების ახალი ვერსიებიც, როგორც წესი, იმავე მიმართულებით ვითარდებიან.

    მე-20 საუკუნის 90-იანი წლების მსოფლიო აბლაბუდა ინფორმაციული კონტენტის მხოლოდ გამოყენებას (ვებ-გვერდის წაკითხვა, ფაილების და პროგრამების ჩამოტვირთვა და ა.შ.) ითვალისწინებდა, თუმცა საუკუნეთა გასაყარზე შექმნილი ახალი კონცეფციის (WEB 2.0) მიხედვით, ვებ-მომხმარებელი იმავდროულად ვებ-კონტენტის რედაქტორსაც წარმოადგენს, ანუ ვებ-გვერდის გარეგნული სახის შეცვლაში მონაწილეობს. WEB 2.0 რედაქტირებადი აბლაბუდაა, ანუ ინფორმაციული სივრცე, რომლის ხარისხიც უმჯობესდება მომხმარებელთა რაოდენობის ზრდასთან ერთად. WEB 2.0-ის სახეებია მულტიმედია-პორტალები (youtube, myvideo.ge…), სოციალური ქსელები (Facebook, ok.ru…), ბლოგოსფერო (blogger.com, wordpress.com…), ვიკი-პორტალები (wikipedia…) და სხვა მრავალი. ვებ-ტექნოლოგიებზე მომუშავე მრავალრციხოვან სპეციალისტთა ჯგუფები (პირველ რიგში W3C – ვების განვითარების კონსორციუმი) მიღწეულს არ სჯერდებიან და მსოფლიო აბლაბუდის ახალი შესაძლებლობებით აღჭურვისთვის იღწვიან. კერძოდ, ე.წ. სემანტიკური ვების კონცეფციით, რომელიც ჯერ უფრო თეორიულ დონეზეა დამუშავებული, ვებ-სივრცემ მომხმარებელს სემანტიკური სერვისები უნდა შესთავაზოს, ანუ უბრალოდ თუ ვიტყვით, მის პერსონალურ ასისტენტად უნდა იქცეს. მაგალითად, სემანტიკური ვები მიიღებს მოთხოვნას მომხმარებლისგან: „სად შევიძინო

ყველაზე იაფად ავტომანქანა Toyota, ჩემგან 50 კილომეტრის რადიუსში, 2002-დან 2008 წლამდე გამოშვების, თეთრი ან ბორდოსფერი, 7-10 ლიტრი ბენზინის ხარჯით 100 კილომეტრზე, ტყავის სალონით, კონდიციონერით, მარცხენა საჭიანი?“ და გასცემს მას საუკეთესო პასუხს.

მსოფლიო აბლაბუდის ჩონჩხი, მისი არქიტექტურა უცვლელია შექმნის დღიდან და

შემდეგი კომპონენტებისგან შედგება:

  • ჰიპერტექსტური მონიშვნების ენა HTML (Hypertext Markup Language) – ვებკონტენტის შენახვის ფორმატი;
  • პროტოკოლი http (Hyper Text Transport Protocol) – აბლაბუდაში ინფორმაციის ტრანსპორტირების საშუალება;
  • ვებ-სერვერი (Apache, IIS, lightppd, nginx…) – ვებ-კონტენტის (HTML-ფაილები, ფოლდერები, ვებ-აპლიკაციები) საცავი;
  • ვებ-ბრაუზერი (Firefox, Internet Explorer/ Microsoft Edge, Opera, Chrome, Safari…) – ვებ-კონტენტთან მიმართვის და ინფორმაციის მიღების საშუალება;
  • ინტერნეტ-პროგრამირების ენები (JavaScript, PHP, ASP.NET…) – მსოფლიო აბლაბუდისთვის პროგრამული პროდუქტების შექმნის ინსტრუმენტები.

შევეხოთ თითოეულს უფრო დეტალურად. HTML-ენა ვებ-სივრცეში ინფორმაციის წარმოდგენის სტანდარტული ფორმატს წარმოადგენს, რომელიც 1990 წლიდან მუდმივ მოდერნიზაციას და სტანდარტიზაციას განიცდის. ენის ბოლო ვერსია, HTML5 სხვა ფუნქციებთან ერთად მულტიმედიური ინფორმაციის (ვიდეო, აუდიო, რუქები და სხვა) გამოტანის საშუალებებსაც შეიცავს. HTML-დოკუმენტი წარმოადგენს მონიშვნის სპეციალური  საშუალებების (ტეგები) იერარქიულად დალაგებულ ნაკრებს, რომლის წაკითხვისა და ფორმატირებულად ასახვისთვის სპეციალური პროგრამა, ვებ-ბრაუზერი გამოიყენება. აღსანიშნავია, რომ თანამედროვე ვებ-დოკუმენტებში კონტენტი (შინაარსი) და ფორმატირება (გარეგნული სახე) ურთიერთგამიჯნულია. კონტენტი უშუალოდ HTML-დოკუმენტში ინახება, ხოლო ფორმატირების ელემენტები, როგორც წესი, ე.წ. ჩადგმულ CSS (Cascade Style Sheet)-ფაილებშია აღწერილი. ქვემოთ მოცემულია HTML და მასთან დაკავშირებული CSS-ფაილების ფრაგმენტები:

CSS-ფაილი test.css

————————————————————- body {background-color: Yellow;}  h1 {  text-align: center;  color: blue;}

————————————————————–

HTML-ფაილი ჩადგმული CSS-ით

————————————————————–

<!DOCTYPE html>

<html> <head>

  <title>Main HTML-Document</title>

  <link rel=”stylesheet” type=”text/css” href=”В:\Web\test.css”>

</head>

<body>

<h1>ქართული ფილმების არქივი</h1>

<table border=”5″>

 <tr> <th>ფილმის დასახელება</th>

                           <th>რეჟისორი</th> </tr>

 <tr> <td style=”color:red”>დარიკო</td>

                             <td>სიკო დოლიძე</td> </tr>

 <tr> <td>ცისფერი მთები</td>

                           <td>ელდარ შენგელაია</td></tr>

</table> </body> </html>

—————————————————————

ვებ-კონტენტის, ანუ ვებ-გვერდების შესაქმნელად მრავალი პროგრამა არსებობს. სწავლების პროცესში უბრალო ტექსტურ რედაქტორებს მიმართავენ (მაგ. Notepad++), ხოლო რეალური ვებ-საიტების შესაქმნელად იყენებენ ისეთ პროფესიონალურ პროდუქტებს, როგორიცაა Adobe Dreamweaver, Microsoft Expression Web, CoffeeCup HTML Editor და სხვა მრავალი.

ვებ-ბრაუზერსა და ვებ-სერვერს შორის კავშირის საშუალებას http-პროტოკოლი

წარმოადგენს, რომელიც საამისოდ ბრძანებათა საკუთარ ნაკრებს შეიცავს, ხოლო ვებრესურსის ადგილსამყოფელის დასადგენად უნიფიცირებულ რესურსთა ლოკატორს (URL) იყენებს. URL-მისამართის რამდენიმე ელემენტის კომპინაციისგან შედგება. ესენია: პროტოკოლი, ჰოსტის DNS-სახელი ან IP-მისამართი, პორტის ნომერი, ვებ-ფოლდერი. მოვიყვანოთ ამგვარად მიღებული URL-ის ნიმუში:

http://lockss.cms.hu-berlin.de:8081/BatchAuConfig

ვებ-სერვერი მსოფლიო აბლაბუდის მონაცემთა განთავსების და მართვის ამოცანას ემსახურება. იგი წარმოადგენს სერვერული ოპერაციული სისტემის გაფართოებას ან დამოუკიდებელ პროგრამულ უზრუნველყოფას და შექმნილია პრაქტიკულად ყველა გავრცელებული ოპერაციული სისტემისთვის. ყველაზე გავრცელებული ვებ-

სერვერებიდან შეიძლება დავასახელოთ Apache, IIS (Internet Information Services), Nginx, Google Web Server…

ვებ-ბრაუზერი ვებ-სერვერიდან გამოძახებული კონტენტის ფორმატირებული ასახვის (გამოტანის) საშუალებაა და შექმნილია ყველა პოპულარული ოპერაციული სისტემისთვის (Windows, MAC OS X, LINUX…). ბრაუზერებს გააჩნიათ ინფორმაციის ქეშირების საშუალება მონაცემებთან მიმართვის დასაჩქარებლად. ისტორიულად პირველი ვებ-ბრაუზერებიდან ფართოდ გავრცელდა Lynx (რომელიც ტექსტურ, ანუ კონსოლის რეჟიმში მუშაობდა), Mosaic და Netscape Navigator. სადღეისოდ ყველაზე გავრცელებული ვებ-ბრაუზერებია Google Chrome, Mozilla Firefox (და მისი კლონი Debian LINUX-ისთვის Iceweasel), MS Edge, Internet Explorer, Opera, Safari…

დაპროგრამების ინსტრუმენტების გამოყენებით ვებ-ინფრასტრუქტურის დინამიური მართვა ხორციელდება. ვებ-პროგრამირების ენები ორი ძირითად ჯგუფად იყოფა:

  • სერვერული ვებ-პროგრამები (Server-side Scripting Languages) – სრულდება ვებსერვერის მხარეს და მიზნად ისახავს დინამიური HTML-კონტენტის გენერაციას. მომხმარებელი გზავნის მოთხოვნას ბრაუზერიდან ვებ-სერვერისკენ, რომელიც სერვერის მხარეს მუშავდება (მაგალითად, ამოკრეფს ინფორმაციას მოანცემთა ბაზებიდან) და საბოლოო სახით (გენერირებული HTML-დოკუმენტი) უბრუნდება მომხმარებელს. სერვერული ვებ-პროგრამების კოდი ბრაუზერში უხილავია. სერვერული ვებ-პროგრამირების ენებიდან შეიძლება დავასახელოთ: Perl, PHP, ASP.NET, JAVA-Servlet, XML, Python, Ruby;
  • კლიენტის ვებ-პროგრამები (Client-side Scripting) – სრულდება ვებ-ბრაუზერში და მიზნად ისახავს HTML-კოდზე მოქმედებების შესრულებას (ფორმის ან შინაარსის შეცვლა) ან მომხმარებლის მიერ განხორციელებულ ქმედებათა (მაგ. ღილაკზე მაუსის დაწკაპუნება) დამუშავებას. ისინი ინტეგრირებულია ვებ-ბრაუზერებში ანუ წაკითხვადია კლიენტის მხარეს (Browser source code), რაც მათი გამოყენების უსაფრთხოებას ამცირებს. კლიენტის ვებ-პროგრამირების ცნობილი ენებია: JavaScript, VBScript, JAVA-Applet…

ზემოთ აღწერილი კომპონენტების საფუძველზე აიგება ორგანიზაციის ვებ-

ინფრასტრუქტურა (ვებ-აპლიკაციების ფრეიმვორკი). ცნობილია ოპერაციული სისტემების, მონაცემთა ბაზების მართვის სისტემების, ვებ-სერვერების და ვებდაპროგრამების სისტემების რამდენიმე კომბინაცია, რომლებიც ფართოდაა ბაზარზე გავრცელებული. მოვიყვანოთ მაგალითები:

  • Windows, Internet Information Server, MS SQL Server, ASP.NET LINUX, Apache Server, MySQL, PHP (LAMP-სერვერი) o Windows, Apache, MySQL, PHP (WAMP-სერვერი)
  • IBM WebSphere – AIX, Java, XML, Web-Services და მრავალი სხვა… თანამედროვე ვებ-სივრცეში ფართოდ გავრცელდა კონტენტის მართვის სისტემები (CMS – Content Management Systems), რომლებიც წარმოადგენენ მეტწილად უფასო, „ღია კოდზე“ (OpenSource) მომუშავე ვებ-აპლიკაციებს, წინასწარ მომზადებული ფუნქციების ნაკრებით, რაც   ვებ-დეველოპმენტისთვის            დასახარჯ      დროს ხშირ             შემთხვევაში მნიშვნელოვნად ამცირებს.  CMS-სისტემები შექმნილია მრავალი სხვადასხვა ტიპის საპრობლემოს სფეროსთვის. სტანდარტული ვებ-კონტენტის მართვის სისტემებს წარმოადგენენ Joomla, Drupal, WordPress და სხვები. სასწავლო პროცესის მართვის LMSსისტემებიდან (Learning Management Systems) შეიძლება დავასახელოთ Moodle და ILIAS, ბიბლიოთეკების მართვის (LMS – Library Management Systems) ყველაზე ცნობილი სისტემებია Evergreen და Koha. მრავალი პროგრამა ემსახურება ელექტრონული კომერციის (E-commerce) სფეროსაც (ონლაინ-მაღაზიები, ონლაინ-აუქციონები). მაგალითად პროგრამა PrestaShop შეიძლება მოვიყვანოთ. ერთერთ ქვეთავში ჩვენ შევეხებით სრულფუნქციური, მზა ვებ-პორტალის უმოკლეს დროში მიღების პროცედურას სისტემა MS SharePoint-ის მაგალითზე.

ყურადღების გარეშე ვერ დავტოვებთ ვებ-ჰოსტინგის მართვის სისტემებსაც, რომელთა დანერგვა პირველ რიგში აუცილებელია ვებ-ჰოსტინგ-პროვაიდერებისთვის, აგრეთვე ისეთი ორგანიზაციებისთვის, რომელთა ვებ-ინფრასტრუქტურა ათობით და ასობით ვებ-გვერდისგან შედგება. ვებ-ინფრასტრუქტურის მართვის ავტომატიზაციის ისეთი პროგრამები, როგორიცაა Cpanel, ISPConfig და სხვები მნიშვნელოვნად ამცირებენ სისტემის ადმინისტრატორის დროით დანახარჯებს ვებ-ინფრასტრუქტურის მართვის პროცესში.

ვებ-სერვერის აქტივაცია და მართვა Internet Information Server-ის გარემოში პროგრამა Internet Information Server წარმოადგენს ოპერაციული სისტემა Windows Server-ის ერთერთ როლს, ვებ-გვერდების შექმნის, შენახვის და მართვის ინსტრუმენტებით.
მისი აქტივაცია Server Manager-პროგრამის Add Roles and Featuresფუნქციითაა შესაძლებელი (სურათი).

აქტივაციის წარმატებული შესრულების ნიშანია ვებ-ბრაუზერში ვებ-სერვერის გვერდის გამოტანა, რომელიც გავრცელებულ ენებზე ესალმება მომხმარებელს (სურათი).

უშუალოდ ვებ-სერვერზე პროგრამა Internet Information Services (IIS) Manager-ის გაშვებით ვებ-ადმინისტრატორს შეუძლია შეუდგეს ვებ-საიტების და ვებ-აპლიკაციების სერვერზე ატვირთვას და მართვას.

წარმოდგენილი ინტერფეისის ყველა ფუნქციის განხილვიდან  გამოვყოთ რამდენიმე ძირითადი მომენტი:

ვებ-გვერდების ნაგულისხმევ (Default) საცავს სერვერის ფაილურ სისტემაში ფოლდერი %System Drive%\inetpub\wwwroot წარმოადგენს. ვებ-გვერდების და ვებაპლიკაციების ლოკაციის შესაცვლელად გამოიყენება ბრძანება:
ვებ-გვერდზე მაუსის მარჯვენა ღილაკი -> Manage Website -> Advanced Settings -> პარამეტრი Physical Path (სურათი).

ვებ-რესურსთან მიმართვის აუცილებელ წინაპირობას ვებ-სერვერზე თავისუფალი პორტის არსებობა წარმოადგენს. http-პროტოკოლი სტანდარტულად მე-80 პორტს იყენებს, ანუ URL-ში პორტის ნომრის არარსებობა მე-80 პორტის გამოყენებაზე მიუთითებს. ორ ვებ-აპლიკაციას საერთო პორტის გამოყენება არ შეუძლია. კონფლიქტის აღმოსაფხვრელად ორი გზა არსებობს:

  • ერთერთი ვებ-აპლიკაციის გადამისამართება ალტერნატიულ (მაგ. 81-ე, 82-ე და ა.შ.) პორტზე;
  • ვებ-აპლიკაციისთვის ვირტუალური ჰოსტის სახელის (Host Name) განსაზღვრა და იმავე (მე-80) პორტის პარალელური გამოყენება.

ორივე შემთხვევაში გამოიყენება ბრძანება:
ვებ-გვერდზე მაუსის მარჯვენა ღილაკი -> Edit Bindings ბრძანების ინტერფეისის ნიმუშები მოცემულია სურათებზე.

ვებ-აპლიკაციისთვის ალტერნატიული პორტის არჩევა

ვირტუალური ჰოსტის სახელის განსაზღვრა

 

ავტ: ვ. ოთხოზორია
დ.გულუა
შ.სვანიშვილ