1 / 20

SOA

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

jiro
Download Presentation

SOA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SOA

  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 SOA

  4. SOA (Ayrıntılar) Tam olarak tanımlanmış, kullanımı kolayortak 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. SOAHizmet 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. İ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. 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ı.

  8. Nasıl Gerçekleştireceğiz? Mevcut uygulamalarız nasıl? 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 SOA'da nasıl olmalı? • Eşgüdümü sağlayacak yapılar eklenmeli • Hizmet arayüzleri sağlanmalı • Bağımsız hizmet sunumları şeklinde gerçekleştirilmeli

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

  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[] ) { < SQL select * from users > 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 < db_data->length; record++ ) { // fetch and process data } return 0; }

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

  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; } Sonuç: #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 < db_data->length; record++ ) { // fetch and process data } // SQL end return 0; }

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

  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. Kısmi Sınıf Üreteçleri (Partial Class Generator)(2) Üreteç Yapısı

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

  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. 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 http://cahit.wordpress.com

  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. Illustration

More Related