SOA ვებ სერვისების წინააღმდეგ
ვებ სერვისები გამოიყენება აპლიკაციების შესაქმნელად, რომლებსაც შეუძლიათ შეტყობინებების გაგზავნა/მიღება SOAP-ის გამოყენებით HTTP-ზე. ვებ სერვისი არის ფუნქციონირების საჯარო პაკეტი, რომელიც შემოთავაზებულია ინტერნეტში. SOA არის არქიტექტურული კონცეფციების ერთობლიობა, რომელიც გამოიყენება სერვისების განვითარებისა და ინტეგრაციისთვის. ვებ სერვისების გამოყენება შესაძლებელია SOA-ს დასანერგად. მაგრამ ეს არის SOA-ზე დაფუძნებული აპლიკაციების რეალიზაციის მხოლოდ ერთი მეთოდი.
რა არის ვებ სერვისები?
ვებ სერვისი არის ქსელში კომუნიკაციის მეთოდი. W3C-ის თანახმად, ვებ სერვისი არის სისტემა, რომელიც ეძღვნება მანქანიდან მანქანას ტრანზაქციების მხარდაჭერას ქსელში.ეს არის ვებ API აღწერილი WSDL-ში (ვებ სერვისების აღწერის ენა) და ვებ სერვისები, როგორც წესი, თვითკმარი და თვითაღწერია. ვებ სერვისების აღმოჩენა შესაძლებელია UDDI (უნივერსალური აღწერა, აღმოჩენა და ინტეგრაცია) პროტოკოლის გამოყენებით. SOAP (Simple Object Access Protocol) შეტყობინებების გაცვლით, როგორც წესი, HTTP-ით (XML-ით), სხვა სისტემებს შეუძლიათ ურთიერთქმედება ვებ სერვისებთან.
ვებ სერვისები გამოიყენება რამდენიმე გზით, როგორიცაა RPC (დისტანციური პროცედურის ზარები), SOA (სერვისზე ორიენტირებული არქიტექტურა) და REST (წარმომადგენლობითი სახელმწიფო გადაცემა). არსებობს ორი ავტომატური დიზაინის მეთოდოლოგია ვებ სერვისების განვითარებისთვის. ქვემოდან ზევით მიდგომა ეხება ჯერ კლასების შექმნას და შემდეგ WSDL გენერირების ხელსაწყოების გამოყენებას ამ კლასების ვებ სერვისებად შედგენისთვის. ზემოდან ქვევით მიდგომა ეხება WSDL სპეციფიკაციების განსაზღვრას და შემდეგ კოდის გენერირების ხელსაწყოების გამოყენებას შესაბამისი კლასების გენერირებისთვის. ვებ სერვისებს ორი ძირითადი გამოყენება აქვთ. ისინი შეიძლება გამოყენებულ იქნას როგორც მრავალჯერადი აპლიკაციის კომპონენტები და/ან სხვადასხვა პლატფორმაზე გაშვებული ვებ აპლიკაციების დასაკავშირებლად.
რა არის SOA?
SOA (სერვისზე ორიენტირებული არქიტექტურა) არის არქიტექტურული კონცეფციების ნაკრები, რომელიც გამოიყენება სერვისების განვითარებისა და ინტეგრაციისთვის. SOA ეხება განაწილებულ გამოთვლებს, რომელშიც მომხმარებლები მოიხმარენ თავსებადი სერვისების ერთობლიობას. მრავალ მომხმარებელს შეუძლია მოიხმაროს ერთი სერვისი და პირიქით. ამიტომ, SOA ხშირად გამოიყენება მრავალი აპლიკაციის ინტეგრირებისთვის, რომლებიც იყენებენ სხვადასხვა პლატფორმებს. იმისათვის, რომ SOA-მ სწორად იმუშაოს, სერვისები თავისუფლად უნდა იყოს დაკავშირებული ოპერაციულ სისტემებთან და ძირითადი აპლიკაციების ტექნოლოგიებთან. SOA-ს დეველოპერები ქმნიან სერვისებს ფუნქციონალური ერთეულების გამოყენებით და ხდიან მათ ინტერნეტის საშუალებით. ვებ სერვისების გამოყენება შესაძლებელია SOA არქიტექტურის დასანერგად. ამ შემთხვევაში, ვებ სერვისები ხდება SOA-ს ფუნქციონირების ერთეული, რომელიც ხელმისაწვდომია ინტერნეტით. ვებ სერვისების გამოყენება ნებისმიერს შეუძლია, ისე, რომ არ შეშფოთდეს პლატფორმების ან პროგრამირების ენების შესახებ, რომლებიც გამოიყენება მათ დასამუშავებლად. SOA პირდაპირ აგებულია სერვისზე ორიენტაციის პრინციპზე, რომელიც საუბრობს სერვისებზე მარტივი ინტერფეისით, რომლებზეც მომხმარებლებს შეუძლიათ დამოუკიდებლად წვდომა, სერვისის რეალურ პლატფორმაზე ფიქრის გარეშე.
რა განსხვავებაა SOA და ვებ სერვისებს შორის?
არსებობს რამდენიმე ძირითადი განსხვავება ვებ სერვისებსა და SOA-ს შორის. ვებ სერვისები განსაზღვრავენ ვებ ტექნოლოგიას, რომელიც შეიძლება გამოყენებულ იქნას აპლიკაციების შესაქმნელად, რომლებსაც შეუძლიათ შეტყობინებების გაგზავნა / მიღება SOPA-ს გამოყენებით HTTP-ზე. თუმცა, SOA არის არქიტექტურული მოდელი თავისუფლად დაწყვილებული სერვისზე დაფუძნებული აპლიკაციების განსახორციელებლად. ვებ სერვისების გამოყენება შესაძლებელია SOA აპლიკაციების დასანერგად. მიუხედავად იმისა, რომ SOA-სადმი ვებ სერვისის მიდგომა ძალიან პოპულარული გახდა, ის SOA-ს დანერგვის მხოლოდ ერთი მეთოდია. SOA შეიძლება განხორციელდეს ნებისმიერი სხვა სერვისზე დაფუძნებული ტექნოლოგიის გამოყენებით (მაგ. CORBA და REST).