obyektyonumlu-proqramlasdirma-ve-soa-arasindaki-ferqler-nelerdir

Obyektyönümlü proqramlaşdırma və SOA arasındakı fərqlər nələrdir?

Proqramçı kimi işə düzələn zaman verilən suallardan biri “Obyektyönümlü proqramlaşdırma(OYP) və Servisyönümlü arxitektura(SOA)  arasındakı fərqlər nələrdir?” sualıdır. Bu məqaləmizdə sualı cavablandırmağa çalışaq.

 SOA (Service Oriented Architecture) - komponentyönümlü və obyektyönümlü proqramlaşdırma modelinin üzərinə əlavə olaraq formalaşdırılmış abstrakt örtükdür(layer).

SOA-nın əsasını bir-biri ilə bağlı olan servis elementləri toplusu təşkil edir. Servisə özündə operation(call, method)-lar saxlayan  klas və ya klaslar toplusu kimi baxa bilərik.  Servislər hesabına müxtəlif proqram təminatları arasında kommunkasiya qurmaq, məlumat mübadiləsi etmək mümkün olur.


İnkişaf xəttindən göründüyü kimi, abstrakt örtüyün ən üst modeli kimi servisyönümlü arxitektura modeli dayanır.

               Servislərin arxa planında adətən remote APİ(Application Programming İnterface) dayanır. Sadə dillə izah etsək deyə bilərik ki, əgər hər hansı bir APİ-miz varsa və onu klient-server mexanizmi əsasında share etmək istəyiriksə ozaman SOA modelinə müraciət edirik. İndi isə sualımızı cavablandıraq.

               SOA ilə OYP-nin fərqlərini aşağıdakı kimi sadalaya bilərik:

1)     OYP-də hər şey obyektlərdən ibarətdir. SOA-da isə obyektlər istifadə edilsə də onlar ikinci planda qalırlar, çünki üz interfeys olaraq call(operation) toplusu görürük.

2)     OYP-də obyektlər özündə state(vəziyyət) və behavior(hərəkət forması) saxlayır. SOA-da isə əksər hallarda proseslər  stateless(vəziyyət saxlamadan) icra olunurlar.

3)     OYP-də müəyyən əməliyyat yerinə yetirildikdən sonra obyekt həmin an “ölmür”. Ona yenidən muraciəti gözləyir və bir müddət yaddaşda yaşayır. SOA isə Client-dən məlumat qəbul edilir, ona uyğun əməliyyat yerinə yetirilir və default olaraq hər şey sıfırlanır.(bu behaviour-u dəyişmək olur)

4)     OYP-də klientlərin biznes obyektlərə birbaşa icazəsi var. SOA-da isə servislər ən üst sloy(layer,örtük) olduqlarına görə Client-də daha aşağı örtüklərə birbaşa access əldə etməyə icazə vermir.

5)     OYP-də obyektlər fiziki olaraq klient kompyuterinə deploy olunur. (yəni oobyektlər klient kompyuterində yaşayır). SOA isə obyektləri klientdən izolyasiya edib serverdə deploy edir.

6)     OYP-də bütün obyektlər klient kompyuterində olduğuna görə klient “daha ağıllı olmalı” və manual işlər görərək lazımı obyektləri lazımi ardıcıllıqla çağırmalıdır. SOA isə Client-də sadəcə call(operation) toplusu verir və qalan bütün əməliyyatları klientdən gizlədir.

7)     OYP-də bir iş üçün bəzən bir neçə addıma ehtiyac olur amma Servisdə vahid interfeys olduğuna görə sadəcə interfeysə müraciət etmək imkanımız var. Bu isə yalnız 1 addım atmaq zəmini olduğunu göstərir.

8)     OYPdən fərqli olaraq SOA daha yaxşı genişlənə arxitektur həll üsullarına malikdir.

9)     OYP qrafiki interfeysli proqramlar üçün daha yaxşı variantdır. SOA qrafiki proqram yazmaq üçün əlverişli deyil.

10)  Adətən OYP, SOA infrastrukturu quran zaman istifadə edilir, amma OYP-ni realizə edəndə SOA işlədilmir.

Tural

Tural Süleymani

Süleymani Tural Microsoft-un MCSD statuslu mütəxəssisidir, 2008-ci ildən bu yana proqramlaşdırma üzrə tədris aparır

Müəllifin bu dildə ən son postları

Bu yazıları da bəyənə bilərsiniz