Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü İnternet Teknolojileri Hizmete Eksenli Mimari (Service Oriented Architecture) SOA.

Benzer bir sunumlar


... konulu sunumlar: "Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü İnternet Teknolojileri Hizmete Eksenli Mimari (Service Oriented Architecture) SOA."— Sunum transkripti:

1 Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü İnternet Teknolojileri Hizmete Eksenli Mimari (Service Oriented Architecture) SOA

2 2 SOA Nedir? SOA'nın Ayrıntıları Hizmet Arayüzleri Nasıl Olmalı? İstem ve Sunum Sonuç Anahatlar

3 SOA Tanım SOA, bir iş sürecinin ya da kullanıcının ihtiyaclarını gidermek üzere birbirinden bağımsız yazılım hizmetlerini bir araya getirmeye çalışan mimariyi ifade eder. SOA ortamında, ağdaki hizmetler alt yapılarından bağımsız bir şekilde ortak arayüzlerle erişime açıktır. SOA da sunulan hizmetler hiçbir teknolojiye bağımlılık göstermeden, arzulanan teknolojiler kullanılarak gerçekleştirilerbilir. (RPC, DCOM, ORB, WSDL) Aslında bunlara bile bağlı kalmadan, SOA bağlamını destekleyen bir arayüzü kullanan herhangi bir sistemle gerçekleştirilebilir. BAĞIMSIZ HİZMETLER + ORTAK ARAYÜZLER BAĞIMSIZ HİZMETLER + ORTAK ARAYÜZLER SOA

4 4 SOA (Ayrıntılar) Tam olarak tanımlanmış, kullanımı kolay ortak arayüzler Kendi içinde anlamlı bir bütün olan, başka hizmetlerden bağımsız hizmetler Devamlı erişilebilir Hizmetlerin davranışları öngörülerbilir Birleştirme maliyeti olmaksızın kullanıma hazır olmalı Hizmeti kullananlardan bağımsız Birden fazla hizmeti bir araya getirerek yeni hizmetler meydana getirme imkanı Hizmet kalitesi ölçülebilir

5 5 SOA Hizmet Arayüzleri Nasıl Olmalı? Kimsenin mülkiyetinde olmamalı Çok biçimliliğe uygun olmalı Gerçekleştirimler hizmet istemcilerinin hiçbirini dışlayacak şekilde değiştirilebilir olmalı

6 6 İstem ve Sunum Hizmeti kullananlar istemini ifade eder Hizmeti sunanlar sunumlarını gerçekleştirir Bir aracı yönlendirme gerçekleştirebilir İsteme en uygun sunumu sağlar Değişik sunumları farklılaşmış istemler için ilan eder

7 7 Hizmetleri Nasıl Bulacağız? Pek çok hizmeti tamamen bağlantılı bir ağda hizmete açıyoruz. Peki bunlara nasıl ulaşacağız? ● Bir ya da birden çok kayıt merkezi olmalı. ● Hizmet sunanlar hizmetlerini bu noktalara kaydetmeli. ● Hizmet isteminde bulunanlar hizmetlerle ilgili erişim ve kullanım arayüzlerine buradan ulaşmalı. ● Bir ya da birden çok kayıt merkezi olmalı. ● Hizmet sunanlar hizmetlerini bu noktalara kaydetmeli. ● Hizmet isteminde bulunanlar hizmetlerle ilgili erişim ve kullanım arayüzlerine buradan ulaşmalı.

8 8 Nasıl Gerçekleştireceğiz? Mevcut uygulamalarız nasıl? ● MVC (Model View Controller) çerçevesinde çalışan ● Kendi iş mantığına göre işleyen ● Belirli bir kullanıcıya (request/response çerçevesinde) hizmet veren uygulamalar ● MVC (Model View Controller) çerçevesinde çalışan ● Kendi iş mantığına göre işleyen ● Belirli bir kullanıcıya (request/response çerçevesinde) hizmet veren uygulamalar SOA'da nasıl olmalı? Mevcut uygulamalarız nasıl? ● Eşgüdümü sağlayacak yapılar eklenmeli ● Hizmet arayüzleri sağlanmalı ● Bağımsız hizmet sunumları şeklinde gerçekleştirilmeli ● Eşgüdümü sağlayacak yapılar eklenmeli ● Hizmet arayüzleri sağlanmalı ● Bağımsız hizmet sunumları şeklinde gerçekleştirilmeli

9 9 Code Munger (2) Üreteç Yapısı

10 10 Satıriçi Kod Açılımı (Inline Code Expander) Satır içi kod üretim yöntemi yeni bir dilin tasarlanmasıyla başlar. Genellikle bu mevcut bir dile bazı eklentilerle gerçekleştirilir. Daha sonra bu üreteç, gerçekleştirim düzeyinde kullanılan dile dönüştürülür. (C++, Java, Perl, C#, Ruby gibi). Örnek: int main( int argc, char *argv[] ) { return 0; } Sonuç: #include "db.h" int main( int argc, char *argv[] ) { DBHandle *db_handle = db_connect(); DBQueryDara *db_data = db_db_query( db_handle, "select * from users" ); for( int record = 0; record length; record++ ) { // fetch and process data } return 0; }

11 11 Satıriçi Kod Açılımı (Inline Code Expander) (2) Çalışma Akışı Üreteç Yapısı

12 12 Birleşik Kod Üreteçleri (Mixed Code Generator) Örnek : #include "db.h" int main( int argc, char *argv[] ) { // SQL: select * from users // SQL end return 0; } #include "db.h" int main( int argc, char *argv[] ) { // SQL: select * from users DBHandle *db_handle = db_connect(); DBQueryDara *db_data = db_db_query( db_handle, "select * from users" ); for( int record = 0; record length; record++ ) { // fetch and process data } // SQL end return 0; } Sonuç:

13 13 Birleşik Kod Üreteçleri (Mixed Code Generator)(2) Üreteç Yapısı Çalışma Akışı

14 14 Kısmi Sınıf Üreteçleri (Partial Class Generator) Kısmi sınıf üreteçleri, bir tanım kütüğünde tanımlanan tasarıma göre bazı temel sınıfları üretir. Bu temel sınıflar platformca kullanılarak diğer etkin sınıfları üretmek için kullanılır. Bu temel sınıflar birçok alt düzey işlemleri gerçekleştirerek, diğer sınıfları bu tür işlerden soyutlarlar.

15 15 Kısmi Sınıf Üreteçleri (Partial Class Generator) (2) Üreteç Yapısı

16 16 Kısmi Sınıf Üreteçleri (Partial Class Generator)(3) Çalışma Akışı

17 17 Kod Üretme Yönteminin Açıkları Kopyalama-Yapıştırın gelişmiş bir şekli olması sebebiyle yeni tasarım örüntülerinin oluşmasını engeller. (Genel olarak)Kod üreteçlerini ancak kod üreteçini geliştiren takımca kullanılır. Yaşatılması güç olmaktadır. Kod Üreteçleri her derde deva bir yöntem değildir. Her şeyden önce kod üreteci kodlanmalıdır. Sadece belirli şartların meydana gelmesi durumunda başvurulacak bir yöntemdir. Her zaman elle kodlanması gereken kesimler vardır. Bunun ağırlığı projeden projeye değişir. Bir kod üretecinin ürettiği koda sonradan elle müdahale gerektiriyorsa, kod üreteci eksiktir. Kod üreteci asla yenilikçi değildir. Olanın tekrarını kolaylaştırır.

18 18 Sonuç Kod Üreteçleri belirli şartlar altında tam uygulandığında işleri kolaylaştıran araçlardır. Her yeni teknoloji ile yeni yapılar gerektirmekte, bir önceki kod üreteci geçersiz kalırken, yeni kod üretecin ömrü öngörülmesi güçleşiyor. İş mantığına yönelik bir kolaylık sağlamaz. Ancak, gereksiz yüklerden soyutlamasından ötürü odaklanmayı kolaylaştırır. Cahit Güngör

19 19 Lorem Ipsum Lorem ipsum dolor sit amet, consectetuer adipiscing elit Aenean vulputate sem id nunc Pellentesque nonummy sapien nec tortor. Suspendisse ultricies malesuada urna. Duis vel velit vitae felis sodales commodo. Vivamus congue fringilla leo. Morbi egestas hendrerit dolor. Nam vel libero sed tortor hendrerit consequat. Proin posuere erat in risus. In auctor erat et metus.

20 20 Illustration


"Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü İnternet Teknolojileri Hizmete Eksenli Mimari (Service Oriented Architecture) SOA." indir ppt

Benzer bir sunumlar


Google Reklamları