1. Oracle SOA and BPM Suite 11g
Business Process Execution Language (BPEL)
Business Process Modeling Notation (BPMN)
2. Oracle Service Bus 11g
Enterprise Service Bus (EBS)
11g sürümünde ürünlerin biri birinden bağımsız olduğunu görüyoruz, OSB orta katmanın ikinci sınıf vatandaşı gibi duruyor. Bu durumu, Enterprise Manager'a baktığımızda görebiliyoruz:
Şekil-1 Oracle Enterprise Manager 11g'de sadece Oracle SOA Suite'deki Karma Uygulamaları yönetebiliyoruz |
Şekil-2 Oracle Enterprise Manager 12c'de hem Oracle SOA Suite'deki Karma Uygulamaları hem de OSB 12c uygulamalarını aynı çatı altında yönetebiliyoruz |
1. Web tabanlı bir uygulama: OSB Console
Şekil-3 Oracle OSB 11g'de web tabanlı tasarım konsolu |
Şekil-4 Oracle Enterprise Pack for Eclipse ile OSB 11g projesi geliştirmek |
Şekil-5 JDeveloper 12c ile OSB 12c projesi geliştirmek |
1. Tümleştirme Uygulamaları
Kurumlarda farklı platformlarda koşan farklı programlama dili ya da farklı uygulama geliştirme çatısı kullanılarak geliştirilmiş kurumsal uygulamalar bulunur. Bu uygulamaların bir kısmı kurum tarafından geliştirilmiş, bir kısmı satın alınmış, bir kısmı da dışarıya ihale edilerek geliştirilmiş olabilir. Tümleştirmeden amaç bu uygulamaların bir iş sürecini destekleyecek şekilde yeniden yazılmalarına gerek kalmadan değişen ihtiyaçlara karşılık verecek şekilde birlikte çalışmalarını sağlamaktır. Tümleştirme uygulamalarını BPEL ya da ESB kullanarak gerçekleştirebiliriz. Hangi durumda BPEL hangi durumda ESB kullanmalıyız? Bu soruyu Oracle SOA Suite ve Oracle Service Bus ürünü özelinde cevaplamaya çalışalım:
- Eğer süreçte yer alan çağrılar kısa soluklu ve senkron servisler ise OSB tercih edilmelidir.
- Eğer süreçte yer alan çağrılar uzun soluklu ve asenkron servislerden oluşuyor ise BPEL tercih edilmelidir.
İş süreçlerini otomatikleştirmek, verimini arttırmak, kaynak kullanımı iyileştirmek ve maliyetleri azaltmak amacıyla iş süreçlerini yazılımla destekliyoruz. İş süreçlerini BPEL ya da BPMN kullanarak gerçekleştirebiliriz. Hangi durumda BPEL hangi durumda BPMN kullanmalıyız?
- Eğer iş sürecinin iş mantığı karmaşık programlama yapıları içeriyorsa BPEL tercih edilmelidir.
- Eğer süreç ağırlıklı olarak onay mekanizması içeriyor ve yoğun İş Kuralı (=Business Rule) kullanımı varsa BPMN tercih edilmelidir.
Oracle OSB gelen istek paketinin içeriğine ve ya başlığına göre yönlendirme yapabilir. Oracle OSB, farklı yönlendirme örüntülerini destekler:
1. Statik yönlendirme
Vekil servis (ProcessOrderServicePS) içinden isteği her zaman dışarıdaki sabit bir iş servisine (ProcessOrderServiceBS) yönlendirmek istiyoruz:
Şekil-6 Statik yönlendirme |
Sipariş mesajı içindeki kargo şirketi seçimine göre, seçilen kargo şirketinin web servisini çağırmak istiyoruz:
Şekil-7 Yönlendirme Tablosu ile tasarım |
Şekil-8 Shipping projesindeki kargo şirketlerine ait İş Servisi tanımları |
İkinci yöntemde (yönlendirme tablosu) yeni kargo şirketleri eklendiğinde, geliştirme yapmak gerekir. Dinamik yönlendirmede ise İş Servisinin isimlendirilmesinde bir sistematik kurularak, İş Servisinin adı XQuery ifadesi yardımıyla yürütme zamanında oluşturularak, yönlendirme dinamik olarak gerçekleştirilebilir:
Şekil-9 DynamicRoutingPS isimli vekil servisin (=Proxy Service) akışı (=Flow) |
Şekil-10 Dinamik yönlendirmeden önce routing değişkeni, XQuery ifadesi ile çağrılacak İş Servisinin URI'yı ile dolduruluyor |
Şekil-11 routing değişkenini ilklendirmekte kullanılan XQuery ifadesi |
Şekil-12 routing değişkeni ile dinamik yönlendirme |
Şekil-13 Oracle OSB'de dinamic XQuery uygulaması |
DynamicRoutingPS isimli vekil servisi test edelim. İstek dokümanında kargo şirketi olarak UPS'yi seçiyoruz:
Execute butonuna bastığımızda istek vekile ulaşıyor ve akışa göre Shipping/Business Service/UPSShippingService isimli servise yönlendirilmesi gerekir:
Bir test daha gerçekleştirelim. Bu kez istek dokümanında kargo şirketi olarak FedEx'i seçelim:
Execute butonuna bastığımızda istek vekile ulaşıyor ve akışa göre Shipping/Business Service/FedExShippingService isimli servise yönlendirilmesi gerekir:
No comments:
Post a Comment