Web sunucusu Nedir ?

Web sunucusu kısaca yüzlerce kullanıcıya aynı anda hizmet veren, HTTP isteklerine cevap verebilen web sitenizin web sayfalarının depolandığı bilgisayardır diyebiliriz. Web sunucusu HTTP protokolünü kullanır ve internet üzerinden web sitenizin içeriğini kullanıcılara ulaştırır. web suncusuna bir istek geldiğinde, sunucu bu isteği en iyi karşılayabilecek programa aktarır. Burada gelen istek işlenerek geriye cevap gönderilir. Veri tabanı bağlantısı ve mesajlaşma gibi işlevleri kendisi sağlar. Yani Web sunucusu, statik (değişmeyen içerik) html sayfalarını göstermek için kullanılan sunucu türüdür. En iyi örneği Apache Httpd sunucusudur.

Uygulama sunucusu Nedir ?

Uygulama sunucuları bünyelerinde uygulamanın kendisini barındırır, bu uygulamanın ihtiyaç duyduğu kaynakları yönetir ve uygulamanın hizmetine sunarlar. Uygulama sunucuları bünyesinde JSP, JSF, Spring MVC ya da EJB gibi teknolojilerle hazırlanmış uygulamalar koşturulur. Uygulama sunucusu bünyesindeki uygulamalara güvenlik (security) ve otomatik işlem yönetimi (transaction management) gibi hizmetler sağlar.

Özellikleri arasındaki önemli farklar şunlardır;

Web Sunucusu HTTP İçerik sunmak için tasarlanmıştır. Application Server, HTTP İçerik hizmet edebilir ama sadece HTTP ile sınırlı değildir. RMI/RPC gibi diğer protokol desteği sağlanabilir

Web sunucularında, PHP, ASP vb. gibi betik dilleri desteklemek için eklentiler bulunur fakat statik içerik sunmak için tasarlanmıştır. Uygulama sunucuları dinamik web içeriği oluşturabilir.

Uygulama Sunucu bileşenleri ve özellikleri, bağlantı havuzu, nesne havuzu, işlem desteği, mesajlaşma hizmetleri gibi uygulama seviyesi hizmetlere destek olabilir.

Java Platform Enterprise Edition Nedir?

J2EE, Java programlama diline dayalı çok katmanlı kurumsal uygulamalar geliştirmek için standart platformdur. J2EE’yi oluşturan teknolojiler Sun Microsystems ve BEA Systems dahil diğer yazılım satıcıları tarafından ortaklaşa geliştirilmiştir.

J2EE uygulamaları standart modüler bileşenlere dayanmaktadır. WebLogic Server, bu bileşenler için eksiksiz bir servis seti sunar ve programlama gerektirmeden uygulama davranışının birçok detayını otomatik olarak işler.

Java EE platformu şunlardan oluşur:

  • Java Virtual Machine (JVM)
  • Java Platform Standard Edition (Java SE)
  • Java EE application server
  • Java EE Application Programming Interfaces (APIs)

Java Platform Standard Edition (SE), taşınabilir, nesne yönelimli uygulamalar geliştirmek için bir platformdur. Bir derleyici(compiler), bir hata ayıklayıcı(debugger) ve bir JVM içerir. Ayrıca, geliştirmeyi kolaylaştırmak için önceden oluşturulmuş binlerce sınıfı (nesne türleri için şablonlar) içerir. Java Platform Enterprise Edition, Java Platform Standard Edition’ın üzerine inşa edilmiştir.

Bir uygulama sunucusu, son kullanıcıdan arka uç iş süreçlerine ve veritabanlarına kadar uygulama işlemlerini gerçekleştiren bir yazılımdır. Bir Java EE uygulama sunucusu, tüm Java EE standartlarına uygundur. İki ana bölümden oluşur:

  • Servlets ve JSP’ler gibi Java web uygulaması bileşenlerini işleyen Web Konteyneri
  • Enterprise JavaBeans adlı Java sistem bileşenlerini işleyen EJB Container

Java EE Uygulama Application Programming Interfaces (APIs) standartları kontrol eder ve transactionları kontrol etmekten (Java Transaction server-API veya JTA) kaynakları yönetmeye (Java Management Extensions veya JMX) kadar birçok sunucu tarafı görevini yerine getirebilen çağrılabilir kodlar sağlar.

Weblogic Nedir?

WebLogic Server bir uygulama sunucusudur: çok katmanlı dağıtılmış kurumsal uygulamalar geliştirmek ve dağıtmak için bir platform. WebLogic Server, Web sunucusu işlevselliği, işletme bileşenleri ve arka uç kurumsal sistemlere erişim gibi uygulama hizmetlerini merkezileştirir. Kaynak kullanımını ve uygulama performansını geliştirmek için önbellekleme ve bağlantı havuzu oluşturma gibi teknolojiler kullanır. WebLogic Server ayrıca işletme düzeyinde güvenlik ve güçlü yönetim olanakları sunar.

WebLogic Server, çok katmanlı (veya çok katmanlı) bir mimarinin orta katmanında çalışır. Çok katmanlı bir mimari, bir bilgisayar sistemini oluşturan yazılım bileşenlerinin birbirleriyle ve donanım, ağ ve kullanıcılarla ilişkili olarak yürütüldüğünü belirler. Her yazılım bileşeni için en iyi konumu seçmek, uygulamaları daha hızlı geliştirmenize olanak sağlar; dağıtım ve yönetimi kolaylaştırır; ve performans, kullanım, güvenlik, ölçeklenebilirlik ve güvenilirlik üzerinde daha fazla kontrol sağlar.

WebLogic Server Java Enterprise standardı olan J2EE’yi uygular. Java, ağ anlayışlı, nesne yönelimli bir programlama dilidir ve J2EE, distributed nesneler geliştirmek için birsürü component  teknolojileri içerir. Bu işlevsellik, WebLogic Server J2EE teknolojileri arasında her bir katmanın seçmeli olarak dağıtıldığı WebLogic Server uygulama mimarisine ikinci bir boyut ekler – uygulama mantığı katmanları.

Sonraki iki bölümde WebLogic Server mimarisinin bu iki görünümü açıklanmaktadır: yazılım katmanları ve uygulama mantık katmanları.

Özetleyecek olursak Weblogic Browser tabanlı thin client lar ve database gibi back-end sistemler arasında bulunan java tabanlı bir uygulama sunucusudur. Daha önce BEA firmasına ait olan bu ürün, daha sonra Oracle tarafından satın alınmıştır. Oracle; Weblogic application server ı satın aldıktan kendi uygulama sunucusu olan Oracle Application Server’a olan desteğini çekerek tamamen Weblogic üzerine yoğunlaşmıştır.

Yazılım Katmanları

Çok katmanlı bir mimarinin yazılım bileşenleri üç katmandan oluşur:

  • İstemci(client) katmanı, Web tarayıcıları ve ağ özellikli uygulama programları da dahil olmak üzere kullanıcılar tarafından yürütülen programları içerir. Bu programlar hemen hemen her programlama dilinde yazılabilir.
  • Orta(middle) katman, WebLogic Server ve mevcut Web sunucuları veya proxy sunucuları gibi doğrudan istemciler tarafından adreslenen diğer sunucuları içerir.
  • Backend katmanı, veritabanı sistemleri, mainframe ERP uygulamaları gibi kurumsal kaynakları içerir.

İstemci uygulamaları WebLogic Server’a doğrudan veya başka bir Web sunucusu veya proxy sunucusu üzerinden erişir. WebLogic Server genellikle müşteriler adına backend servisleriyle bağlantı kurar. Bununla birlikte, istemciler çok katmanlı bir JDBC sürücüsü kullanarak backend hizmetlerine doğrudan erişebilirler.

  • İstemci(client) katman : WebLogic Server istemcileri, WebLogic Server servislerine erişmek için standart arayüzleri kullanır. WebLogic Server, eksiksiz bir Web sunucusu işlevselliğine sahiptir, böylece bir Web tarayıcısı, Web’in standart HTTP protokolünü kullanarak WebLogic Sunucusundan sayfalar isteyebilir. Java ile yazılmış istemci programları, Java Swing sınıfları ile oluşturulan yüksek etkileşimli grafiksel kullanıcı arabirimlerini içerebilir. Standart J2EE API’lerini kullanarak WebLogic Server servislerine de erişebilirler. Tüm bu hizmetler, WebLogic Server’da sunucu uygulamalarını ve JSP sayfalarını dağıtarak Web tarayıcısı istemcileri için de kullanılabilir. Visual Basic, C ++, Java ve diğer programlama dillerinde yazılmış olan CORBA istemci programları, WebLogic RMI-IIOP kullanarak WebLogic Server Enterprise JavaBeans ve RMI (Remote Method Invocation) sınıflarını çalıştırabilir. HTTP protokolünü destekleyen herhangi bir dilde yazılmış istemci uygulamaları, bir Weblet üzerinden herhangi bir WebLogic Server hizmetine erişebilir.
  • Orta(middle) katman : Orta katman, WebLogic Server ve diğer Web sunucuları, güvenlik duvarları ve istemciler ile WebLogic Server arasındaki trafiğe aracılık eden proxy sunucularını içerir. Çok katmanlı bir mimariye dayanan uygulamalar, orta kademede güvenilirlik, ölçeklenebilirlik ve yüksek performans gerektirir. Bu nedenle orta seviye için seçtiğiniz uygulama sunucusu, sisteminizin başarısı için kritik öneme sahiptir. WebLogic Sunucu cluster seçeneği, istemci isteklerini ve backend hizmetlerini birden fazla işbirliği yapan WebLogic Sunucusu arasında dağıtmanıza olanak tanır. İstemci katmanındaki programlar, clustera tek bir WebLogic Sunucusu gibi erişir. İş yükü arttıkça, işi paylaşmak için WebLogic Sunucularını clustera ekleyebilirsiniz. Cluster, isteği yönetebilecek bir WebLogic Sunucusu seçmek için seçilebilir bir yük dengeleme algoritması kullanır. Bir istek başarısız olduğunda, istenen hizmeti sağlayan başka bir WebLogic Server devralabilir. Yük devretme mümkün olduğunda şeffaftır; bu, hatalardan kurtulmak için yazılması gereken kod miktarını en aza indirir. Örneğin, sunucu uygulaması oturum durumu ikincil bir WebLogic Sunucusunda çoğaltılabilir, böylece bir isteği işleyen WebLogic Sunucusu başarısız olursa, müşterinin oturumu ikincil sunucuda kesintisiz olarak devam edebilir. WebLogic EJB, JMS, JDBC ve RMI hizmetlerinin tümü kümeleme yetenekleriyle uygulanır.
  • Backend katman : Backend katmanı, yalnızca WebLogic Sunucusu aracılığıyla istemcilere erişilebilen hizmetler içerir. Backend katmanındaki uygulamalar en değerli ve en kritik işletme kaynakları olma eğilimindedir. WebLogic Server, son kullanıcılar tarafından doğrudan erişimi kısıtlayarak onları korur. Connection pool ve caching gibi teknolojilerle WebLogic Server, backend kaynakları verimli kullanır ve uygulama yanıtını(response) iyileştirir.

Uygulama Mantığı Katmanları

WebLogic Server, J2EE component teknolojilerini ve servislerini uygular. J2EE component teknolojileri arasında servlet, JSP Pages ve Enterprise JavaBean ler bulunur. J2EE hizmetleri standart ağ protokollerine, veritabanı sistemlerine ve mesajlaşma sistemlerine erişimi içerir. Bir WebLogic Server uygulaması oluşturmak için gerektiğinde servis API’lerini kullanarak bileşenler oluşturmalı ve birleştirmelisiniz. Komponentler, WebLogic Server Web container veya EJB containerinde yürütülür. Container, J2EE spesifikasyonları tarafından tanımlanan yaşam döngüsü desteğini ve servislerini sağlar, böylece oluşturduğunuz bileşenlerin altında yatan detayları ele almaları gerekmez.

Web bileşenleri, tarayıcı tabanlı J2EE uygulamaları için presentation logic sağlar. EJB bileşenleri business object ve süreçlerini kapsar. Web uygulamaları ve EJB’ler, JDBC, JMS (Java Mesajlaşma Servisi) ve JTA (Java Transaction API) gibi J2EE uygulama servislerine dayanmaktadır.

  • Presentation Logic Katmanı : Presentation katmanı bir uygulamanın kullanıcı arayüzünü ve ekran mantığını içerir. Çoğu J2EE uygulaması, istemci makinesinde bir Web tarayıcısı kullanır, çünkü istemci programlarını her kullanıcının bilgisayarına dağıtmaktan çok daha kolaydır. Bu durumda presentation katmanı, WebLogic Server Web konteyneridir. Bununla birlikte, herhangi bir programlama dilinde yazılmış istemci programları, HTML veya kendi Presentation mantığını oluşturmak için logic(mantık) içermelidir. Bir Web servisine erişen bir istemci, çağırmak istediği Web servisini tanımlayan bir SOAP mesajı oluşturmalı ve gerekli verileri SOAP mesajının gövdesine dahil etmelidir.
  • Web Browser Clients : Web tabanlı uygulamalarda, kullanıcı arayüzü HTML belgeleri, JavaServer Pages (JSP) ve servlet’lerle temsil edilir. Web tarayıcısı, kullanıcının bilgisayarında HTML açıklamasından Web sayfasını işlemek için gerekn mantığı bilir. JavaServer Pages (JSP) ve servlet yakından ilişkilidir. Her ikisi de, her çağrıldığında WebLogic Server’da Java kodunu çalıştırarak dinamik Web içeriği üretir. JSP sayfaları WebLogic Server’da çalıştırılmadan önce servlete dönüştürülür, dolayısıyla sonuçta JSP sayfaları ve servletlet aynı şeyin farklı gösterimleridir. JSP sayfaları, bir HTML sayfasının dağıtıldığı şekilde WebLogic Server’da dağıtılır. .Jsp dosyası, WebLogic Server tarafından sunulan bir dizine kopyalanır. Bir istemci bir .jsp dosyası istediğinde, WebLogic Server, sayfanın derlenip derlenmediğinden beri değiştirilip değiştirilmediğini kontrol eder. Gerekirse, Java servlet kodunu .jsp dosyasından üreten WebLogic JSP derleyicisini çağırır ve ardından Java kodunu bir Java sınıfı dosyasına derler.
  • Non-Browser Clients : Web tarayıcısı olmayan bir istemci programı, kullanıcı arayüzünü oluşturmak için kendi kodunu sağlamalıdır. Tarayıcı dışı istemciler, genellikle business logic ve backend hizmetlerine erişim için WebLogic Server’a bağlı olarak genellikle kendi sunumlarını ve logic katmanını içerir. Java ile yazılmış istemci programları, Java RMI (Remote Method Invocation) üzerinden herhangi bir WebLogic Server hizmetini kullanabilir. RMI, bir istemci programının, bir WebLogic Server nesnesinde, istemcideki yerel bir nesnede çalışacağı gibi çalışmasına izin verir.
  • Web Service Clients : WebLogic Web Services’i çalıştıran istemci uygulamaları herhangi bir teknoloji kullanılarak yazılabilir: Java, Microsoft SOAP Toolkit vb. İstemci uygulaması, çağırmak istediği Web hizmetini tanımlayan ve gerekli tüm verileri SOAP mesajının gövdesinde içeren bir SOAP mesajı oluşturur. İstemci daha sonra SOAP mesajını HTTP / HTTPS üzerinden WebLogic Sunucusuna gönderir, bu da Web hizmetini yürütür ve istemciye HTTP / HTTPS üzerinden bir SOAP mesajı gönderir.
  • Business Logic Katmanı : Enterprise JavaBean, J2EE uygulamaları için business logic bileşenleridir. WebLogic Server EJB container, enterprise bean barındırır, caching, persistence (kalıcılık) ve transaction management gibi yaşam döngüsü yönetimi(life cycle management) ve hizmetleri sunar. Üç tür enterprise bean vardır: entity bean, session bean ve mesajla çalışan bean.
  • Entity Bean :   Uygulamanın veritabanı arayüzüne bakan kısmıdır. Bir entity bean’i vertabanındaki bir tabloya karşılık gelecek şekilde düşünebilirsiniz. Aynı şekilde entity bean instance’lar da veritabanı tablosundaki birer tablo satırını temsil etmektedir. ORM(Object Relational Mapping) konusu Entity bean’lerin tam da göbeğinde yer alır diyebiliriz. Session bean’ler istemciler ile birlikte yaşayıp ölmektedir fakat entity bean’ler kalıcıdır ve kendi aralarında ilişkiler de kurabilmektedirler. Özetleyecek olursak bu bean türüne en iyi örnek veritabanındaki tabloların Java sınıflarına karşılık gelmesidir.
  • Session Bean :Uygulamadaki iş akışını kontrol eden bileşenlerdir. Bir istemci için bir işi yerine getirme isteğine cevap vermektedir ve istemciye özgüdür. Yani her istemci için bir bean oluşturulur, işlemler boyunca hayatını sürdürür ve işleri yaptırır, kullanıcı sistemi tek ettiğinde ise ortadan yok olur. İstemciler bir iş yaptırabilmek için session bean üzerindeki yordamları çağırmaktadırlar.
  • Message-Driven Bean : J2EE uygulamalarına gelen mesajları asenkron olarak işlemeye olanak sağlayan yapılar olduğunu söyleyebiliriz. Bir dinleyici gibi çalışır(Java Messaging Service-JMS), mesajları dinler ve onların işlenmesi için gerekli işleri yaparlar. Session ve entity bean senkron haberleşmesine karşın, MDB’ler asenkron olarak iletişim kurmaktadır. Örneğin siz bir işiniz için birisine mail attığınızda karşı tarafın anında okuması ve cevap vermesi çoğu zaman mümkün değildir. Bu nedenle mail sistemi asenkron bir yapı üzerinde yürür
  • Application Services Katmanı : WebLogic Server, komponentlerin düşük seviye uygulama ayrıntıları için endişe duymadan business logic kısmına odaklanmalarını sağlayan temel hizmetleri sunar. EJB’ler ve servletler için ağ iletişimi(networking), kimlik doğrulama(authentication), yetkilendirme(authorization), kalıcılık(persistence) ve uzak nesne erişimi işlemlerini gerçekleştirir. Standart Java API’leri, veritabanı ve mesajlaşma servisleri gibi bir uygulamanın kullanabileceği diğer servislere taşınabilir erişim sağlar.

Fusion Middleware Nedir?

Oracle Fusion Middleware uygulama ailesi uygulama geliştirmekten iş zekası raporlamaya kadar bir sürü işi barındıran uygulamarı barındırmaktadır. Oracle Fusion Middleware içerisinde JAVA EE, developer tools, integration services, identity management, BI tool’ları bulunur. Oracle Fusion Middleware’de 2 tip bileşen bulunur.  Fusion Middleware ürünleri iki genel kategoriye ayrılmıştır: Java bileşenleri ve sistem bileşenleri.

Java bileşenleri genellikle bir veya daha fazla Java Enterprise Edition uygulaması ve bir dizi kaynak olarak WebLogic Server’a dağıtılır.

Fusion Middleware Java Bileşenlerinden bazıları şunlardır:

  • Oracle SOA Suite : Hizmet odaklı mimari uygulamalarını tasarlamak, dağıtmak ve yönetmek için bir dizi altyapı bileşenidir. SOA Suite bileşenleri, WebLogic Server’ın üzerinde çalışır.
  • Oracle Service Bus : servis bulma, servis sağlama ve dağıtım ve yönetim için altyapı sağlayan bir Enterprise Service Bus (ESB) ‘dir.
  • Oracle WebCenter Suite : Sosyal uygulamalar, web portalları ve bileşik uygulamalar oluşturmak için kullanılan tümleşik bir bileşen kümesidir.
  • Oracle Identity Management : İşletmenin kaynakları içindeki kullanıcı erişim ayrıcalıklarını yöneten bir kurumsal kimlik yönetim sistemidir.

FMW 11g sistem bileşenleri, Java uygulamaları olarak konuşlandırılmamıştır. Bunun yerine, sistem bileşenleri OPMN(Oracle Process Manager and Notification) sunucusu tarafından yönetilir. FMW 12c sistem bileşenleri, WebLogic Server domainin bir parçası olarak dağıtılır. OHS 12c, normal bir WebLogic domain veya OHS çalıştırmaya adanmış bağımsız bir domain içinde WebLogic tarafından yönetilen bir sistem bileşeni olarak çalışır.

Fusion Middleware Sistem Bileşenlerinden bazıları şunlardır:

  • Oracle HTTP Server
  • Oracle Web Cache
  • Oracle Internet Directory
  • Oracle Virtual Directory
  • Oracle Forms Services
  • Oracle Reports
  • Oracle Business Intelligence Discoverer
  • Oracle Business İntelligence

Java bileşeniyle sistem bileşenleri birleşiktir.

Oracle Fusion Middleware kurulduktan sonra elimizde Oracle Weblogic Server Domaini olmuş olur. Bu server içerisinde bir tane Administration Server, Oracle Webcenter ve Oracle SOA Suite olur. Admin Server içerisinde Oracle Weblogic Administration Console ve Oracle Enterprise Manager Fusion Middleware Control yer alır. Ayrıca bileşenlerden bir tanesi veritabanı gerektiriyorsa Oracle Veritabanı da kurulumla gelebilir. Bu veritabanında kurulumun metada repository’si bulunur.

JVM Nedir?

JVM, derlenmiş Java kodunu sanal makinenin çalıştığı platformun makine koduna dönüştüren bir yazılımdır. JVM (Java Virtual Machine – Java Sanal İşlemcisi) C++ dilinde yazılmış bir programdır.

Bir Java programı javac.exe ile derlendikten sonra byte code ismi verilen bir ara sürüm oluşur. Byte code, ana işlem biriminin (CPU – Cental Processing Unit) anlayacağı cinsten komutlar ihtiva etmez, yani klasik Assembler değildir. Java byte code sadece JVM bünyesinde çalışır. JVM, derlenen Java programı için ana işlemci birimi olma görevini üstlenir. Yani JVM derlenmiş java kodunu JVM’nin çalıştığı makinenin CPU su ile arasında çalışıp birbirlerini anlamasını sağlar. Bu özelliginden dolayı Java programlarını değişik platformlar üzerinde çalıştırmak mümkündür. Her platform için bir JVM sürümü Java programlarını koşturmak için yeterli olacaktır.  Yani kısaca Java kaynak kodu sanal makinede çalışan koda göre derlendiğinden, bu derlenmiş kod taşınabilir.

WebLogic Server, Java kodunun kendisi olarak, bir JVM içinde çalışır.

 

  • JVM ve ayarları WebLogic Server performansını önemli ölçüde etkileyebilir.Örneğin, WebLogic Server’ın kullanabileceği memory alanı JVM’ye atanan memory’de bulunur.
  • JVM başladığında JVM yapılandırma seçenekleri ayarlanır.

JVM’yi en iyi uygulama performansını elde etmek için ayarlamak, WebLogic Server performansının en kritik yönlerinden biridir. Kötü ayarlanmış bir JVM, yavaş işlemlere, uzun gecikmelere, sistem donmalarına ve hatta sistem çökmelerine neden olabilir. İdeal olarak, ayarlama, başlangıç seçeneklerinin çeşitli kombinasyonlarını kullanarak, sistem başlangıcının bir parçası olarak gerçekleşmelidir.

Weblogic Server Domain

Weblogic’de domain mantığı vardır. Domain; Weblogic kaynaklar grubu (admin server, managed servers, node managers,deploy yapılmış uygulamalar,JMS,cluster,jdbc, …) olarak adlandırılabilir.

Aşağıdaki şekil kabaca bir Weblogic platformunu simgelemektedir:

Kaç tane domain ve nasıl düzenlenmişler? tamamen size kalmış. Örneğin, uygulama türlerinin mantıksal bir bölümü, donanımın fiziksel konumu, büyüklük ve yönetici sayısı vb. İle düzenlenebilir.

Tüm domainler, administration server olarak adlandırılan özel bir sunucu içerir. Domaini kaynaklarını yapılandırmak ve yönetmek için administration server kullanılır. Domaindeki diğer tüm WebLogic Sunucularına managed server denir.

Çoğu domainde, uygulamalar managed serverlara dağıtılır. Administration server yalnızca domain yapılandırması ve yönetimi için kullanılır.

Birden çok domain oluşturmak ve çalıştırmak için tek bir WebLogic Server ürün yüklemesi kullanılabilir veya tek bir domain çalıştırmak için birden çok ürün yüklemesi kullanılabilir. Alanların nasıl tanımlandığı size bağlıdır. Farklı sistem yöneticilerinin sorumluluklarına, uygulama sınırlarına veya sunucuların çalıştığı makinelerin coğrafi konumlarına dayalı olarak birden çok domain tanımlayabilirsiniz.

Administration Server

Weblogic konfigürasyon ve yönetim ekranı olarak düşünebiliriz. Bu ekran üzerinden tüm konfigürasyon, stop-start ve deployment işlemleri yapılır. Bir WebLogic Server domain içerisinde mutlaka bir Admin Server bulunmak zorundadir. Weblogic kuruldukdan sonra domain kurulumu yapılır (bir weblogic kurulumu üzerinde birden fazla domain kurulumu yapılabilir) , sonrasında bu domain üzerinde Admin Server yönetim ekranı kullanılarak kaynaklar yaratılır.  Admin Server, admin console veya WLST uzerinden yonetilebilir ve boylece domaindeki instance konfigurasyonlari gibi ayarlamalar yapilabilir.

Domaindeki diğer tüm WebLogic Sunucularına managed server denir.

Bir domainde managed serverlar başlatılmadan önce admin server çalıştırılır. Managed serverlar çalıştırıldığı zaman Admin serverla iletişime geçerler ve konfigürasyon bilgilerini alırlar(Yani config.xml dosyasini yukler). Admin server bu yönüyle tüm domain içerisnde merkezi bir kontrol birimi olarak bulunmaktadır.
Bir admin server başlatıldığı zaman, config.xml dosyası load olur.

Her admin server başlatıldığında, config-booted.jar adında bir backup konfigürasyon dosyası oluşturulur. Konfigürasyon dosyaları server instancelarında bozuldukları zaman, bu şekilde önceki konfigürasyonlara dönülebilmektedir.

Admin server bir domain içerisinde fail duruma geçtiği zaman, managed serverların çalışması etkilemez, managed serverlar çalışmaya devam ederler. Admin server çöktüğü zaman çalışan diğer managed serverlar çalışmaya devam ederler ve periyodik olarak admin servera tekrar bağlanmaya çalışırlar.
Admin server çalışmıyorsa bile managed serverlar başlatılabilirler. Bu durumda managed server local konfigürasyon dosyalarını kullanır ve çalışır duruma geldikten sonra admin servera bağlanmaya çalışır. Bir kere bağlantığı zaman da konfigürasyon durumunu admin servera ait olan konfigürasyon durumuyla senkronize eder.

Administration server Weblogic sunucusunun bir instance’ı olduğundan, bir Java Enterprise Edition uygulama sunucusunun herhangi bir görevini gerçekleştirebilir. Uygulamalar dağıtılabilir ve Administration server de çalıştırabilirsiniz. Basitlik için, genellikle bir geliştirme zamanı domain yalnızca Administration sunucusunu içerir. Geliştiriciler, uygulamalarını administration sunucusunda dağıtır ve test eder.

Managed Servers

Bir domainde yer alan admin server haricindeki diğer serverlara managed server denir. Bir domain sıfır veya daha fazla managed server’a sahip olabilir.  Managed serverlar uygulamaya ait kaynakları tutarlar. Bir managed server başlatıldığı zaman admin serverla bağlantıya geçer ve konfigürasyon ve deployment ayarlarını alır.
İki ya da daha fazla managed server da bir arada cluster olarak konfigüre edilebilirler. Bu şekilde ölçeklenebilirlik ve kullanılabilirlik artırılabilir. Bir cluster içerisindeki tüm managed serverlara aynı kaynaklar ve servisler deploy edilirler. Bu şelde failover ve load balancing sağlanır.

Node Manager

WebLogic Server production ortamındaki sunucu instancelerı genellikle birden çok domain, makine ve coğrafi konuma dağıtılır. Node manager, hem admin serverı hem de manage server instanlarını uzak bir konumdan başlatmanızı, kapatmanızı ve restart etmenizi sağlayan bir WebLogic server yardımcı programıdır. Node manager isteğe bağlı olsa da, WebLogic Server ortamınızın yüksek kullanılabilirlik gereksinimleri olan uygulamaları barındırması önerilir. Yani Node manager olmadan,  weblogic server`inizi, admin server, managed server ve cluster`larinizi yonetebilirsiniz. Peki, Node Manager olmadan, biz bunlari yapabiliyorsak Node Manager`a neden ihtiyac duyuyoruz? Düşünün ki, Weblogic Serverimiz ve bunun icinde birden fazla domain ve machine`lar var ve bunlarda ayrı ayrı lokasyonlarda, bu durumda bunlari idare etmemiz, bu domainle iliskili olan Admin Server ve Managed Servleri nasil start, stop ve monitor etmek zor bir durum olacaktir. İşte bu noktada Node Manager aklimiza geliyor. Hatirlayalim, Node Manager, fiziksel makine uzerinde çalışan bir prosesdir. Bize uzakdan Admin server, Managed Server`larimizi start, stop ve monitor etmemize yarar.

Node manager prosesi, belirli bir makinede çalışır.

Node manager’ınn iki sürümü vardır: Java tabanlı olan, WebLogic Server’ın çalıştığı herhangi bir platformda çalışan Java tabanlı ve yalnızca * nix işletim sistemlerinde çalışan komut dosyası tabanlı. Java tabanlı Node manager önerilir.

Node manager sunucu başlatır ve bu sunucu daha sonra başarısız olursa, Node manager otomatik olarak yeniden başlatmak üzere ayarlanabilir. Node manager başarısız olursa veya açıkça kapatılırsa, yeniden başlattıktan sonra, çıkıldığında denetimi altındaki sunucuları belirler. Node manager, başarısız olan sunucuları gerektiği gibi yeniden başlatabilir.

WebLogic Server administration console uzak makinelerde çalışan Node Managerlara komut vermek için kullanılabilir. WebLogic Scripting Tool (WLST) (çevrimdışı modda) ayrıca bir Node Manager komut satırı arayüzü olarak da işlev görür.

Node Manager, spesifik bir domain ile ilişkili degildir, fiziksel bir makine ile ilişkilidir. Sunucudaki birden fazla domainle ilişkilendirilebilir. machine logical bir yapidir.

Machine ve Clusters

  • Machine

Fiziksel donanımı temsil etmek için domain içerisinde tanımlanır. Machine, bir WebLogic Sunucusunun üzerinde çalıştığı Host ile ilişkilendirmek için kullanılır

Machine, Node Manager tarafından başarısız bir Sunucuyu yeniden başlatmak için kullanılır.

Makineler isteğe bağlı olarak kullanılan clusterlardır, fiziksel bir varlık değil mantıksal bir tanımdır.

  • Cluster

Cluster, aynı anda çalışan tek bir domain içinde birden çok manage server topluluğudur ve daha yüksek ölçeklenebilirlik ve güvenilirlik sağlamak için birlikte çalışır. Kaynaklar ve hizmetler, kümedeki her sunucuya aynı şekilde dağıtılır ve yük devretme ve yük dengelemeye olanak tanır. Kümelenmiş bir sunucunun oturum durumu kümedeki başka bir sunucuda çoğaltılır. Bir sunucu başarısız olduğunda, kümedeki başka bir sunucu bu işlemi devralır ve çoğaltılan verileri alır. Hiçbir bilgi kaybolmaz ve müşteriler artık farklı bir sunucunun isteklerini yerine getirdiğini fark etmez. Kümelenmiş sunucular birbiriyle iki ana yolla iletişim kurar: oturum durumu değiştiğinde “yedek sunucusu” na değişiklikleri göndermek veya clusterdaki “heartbeat” ile. Her cluster sunucu, periyodik olarak hala geçerli olduğunu belirtmek için bir sinyal gönderir. Kümenin bir üyesi çok fazla heartbeat kaçırırsa, bu sunucu “başarısız” olmuştur.

WebLogic Server Uygulama Servisleri

  • Java Database Connectivity (JDBC) : İlişkisel veritabanlarına erişmek için API
  • Java Message Service (JMS) : Kurumsal mesajlaşma sisteminin API’si ve uygulaması
  • Java Transaction API (JTA) : Java Transaction API, bir java standardidir. JTA ile ilgili bilmeniz gereken en onemli unsur, dagitik birden cok veritabaniyla uygulamanizin baglantisi varsa JTA kullanmanizin gerekliligidir. Programlama olarak JDBC yonteminden farki transaction nesnesinin JNDI yontemile elde edilmesi, yani bunun icin Hibernate Session nesnesine ihtiyac duymamasidir. Ancak arka planda current session ile  JTA transaction’i otomatik olarak birbirine baglanmaktadir.

 

Örnek bir weblogic uygulaması;

  1. Kullanıcılar, tarayıcı kullanarak web uygulamasıyla etkileşime girer. Web uygulaması, web sitesinin oluşturulmasından ve butonlar, formlar, bağlantılar vb. Aracılığıyla kullanıcı girdilerinin yakalanmasından sorumludur. Web uygulamasının, kullanıcıların istediği görevleri yerine getirmek için gerekli tüm iş mantığını içermesi mümkündür.
  2. Ancak bu örnekte, web uygulaması iş mantığını gerçekleştirmek için Kurumsal JavaBeans’e (EJB’ler) erişir. Bu EJB’ler, bu örnekte gösterildiği gibi, web uygulamasıyla aynı sunucuda veya farklı bir sunucuda bulunabilir.
  3. Gösterilen EJB’lerden bazıları persistence mekanizması içerir. Yeni verileri ilişkisel bir veritabanına yazar.
  4. Veri veri tabanına yazıldıktan sonra, EJB, diğer uygulamalarla zaman uyumsuz olarak iletişim kurmak için Java Mesaj Servisi’ni (JMS) kullanır, böylece bu uygulamaların verileri de işlenebilir.
  5. Bu uygulamanın iş mantığını, hem kuruluşunuzda hem de diğer uygulamalarda standart bir şekilde ortaya koymak için bir web servisi kullanılır. XML tabanlı web servislerine hem Java hem de Java dışı uygulamalar tarafından erişilebilir ve hizmet odaklı mimarinin köşe taşıdır.

Weblogic Server Yönetim  Araçları

WebLogic Server aşağıdakileri kullanarak yönetilebilir ve izlenebilir:

  • The WebLogic Server administration console
  • The WebLogic Scripting Tool (WLST)
  • The WebLogic Diagnostic Framework (WLDF)
  • The WLDF Monitoring Dashboard
  • Enterprise Manager Cloud Control

WebLogic Server Administration Console

Oracle WebLogic Server yönetim konsolu, bir domainin kaynaklarını yapılandırmak, yönetmek ve izlemek için web tarayıcısına dayalı bir araçtır.

  • Konsol uygulaması administrator server da çalışır.
  • WebLogic Server’ın normal kurulumunun bir parçasıdır.

Oracle WebLogic Server administration console şu amaçlarla kullanılabilir.

  • Configure, start, and stop instances of WebLogic Server
  • Configure clusters
  • Configure database connectivity (JDBC)
  • Configure messaging (JMS)
  • Configure WebLogic Server security
  • Deploy applications
  • Monitor server and application performance
  • View server and domain log files

 

WebLogic Scripting Tool (WLST)

WebLogic Server domain kaynaklarını oluşturmak, yapılandırmak, yönetmek ve izlemek için bir komut dosyası aracı.

  • WebLogic Server’ın normal kurulumunun bir parçası
  • Administraion console da mevcut olan tüm görevleri yerine getirme ve daha fazlası
  • Jython programlama diline dayalı (Python’un Java uygulaması)
    • Python, nesne yönelimli, yorumlanmış bir programlama dilidir.

WLST, WebLogic Server domain oluşturmak, yönetmek ve izlemek için kullanılabilecek bir komut satırı ortamıdır. Java komut dosyası yorumlayıcısı Jython’a dayanmaktadır. WLST, yerel değişkenler, koşullu yürütme ve akış denetimi deyimleri gibi standart Jython özelliklerini desteklemenin yanı sıra, WebLogic Server’a özgü bir dizi komut sağlar.

WLST etkileşimli olarak (bir seferde bir komut) veya komut dizisi modunda (komutların bir dosyası çalıştırılarak) çalıştırılabilir. Aynı zamanda çevrimiçi (aktif bir alanı yönetmesine izin veren bir yönetim sunucusuna bağlı) veya çevrimdışı (etkin olmayan bir alanın yapılandırma dosyalarına erişerek) çalıştırılabilir.

WLST, komutları tek tek (etkileşimli mod) veya dosyalardan (komut dosyası modu) çalıştırabilir.

  • WLST’yi çalıştırmak için <WL_HOME> / server / bin dizininde setWLSEnv.sh komut dosyasını çalıştırarak ortam değişkenlerini ayarlayın ve ardından WLST sınıfıyla Java Sanal Makinesi’ni arayın:

Aşağıdaki gibi etkileşimle modda WLST’yi kullanabiliriz.

WLST ile komut dosyasını aşağıdaki gibide çalıştırabiliriz.

java weblogic.WLST myscript.py

WebLogic Diagnostic Framework (WLDF)

WLDF, WebLogic Server çalışma zamanı verilerini toplamak ve analiz etmek için kullanılır:

  • Diagnostic images : Sunucunun yapılandırmasının ve çalışma zamanı metriklerinin anlık fotoğraflarını oluşturur.
  • Harvesters : Metrik toplayıcılar, verileri düzenli olarak toplamak ve kaydetmek için ayarlanabilir.
  • Watches and notifications : Saatler verileri ayarladığınız koşullarla karşılaştırır ve tetiklendiğinde bildirimler gönderebilirler.

WLDF, WebLogic Server’ın normal kurulumunun bir parçasıdır ve administration console veya WLST aracılığıyla yapılandırılabilir ve kullanılabilir.

WLDF, WebLogic Server instance lardından ve kendilerine deploy edilmiş uygulamalardan tanılama verilerini oluşturmak, toplamak, analiz etmek ve kalıcı hale getirmek için özellikler sağlar. Bazı WLDF özellikleri, domain bir sunucu için yapılandırmanın bir parçası olarak yapılandırılmıştır. Diğer özellikler, sunuculara (veya kümelere) hedeflenebilecek sistem kaynakları (tanılama modülleri) olarak yapılandırılır.

Yakalama sırasında sunucunun dahili çalışma zamanı durumuna ait bir tanılama anlık görüntüsü oluşturmak için WLDF’nin diagnostic snapshot yakalama bileşenini kullanırsınız. Bu bilgi, Oracle destek personelinin bir sunucu arızasının nedenini analiz etmesine yardımcı olabilir. WebLogic Server admin console veya WLST’yi kullanarak bir görüntüyü el ile yakalayabilir veya izleme bildiriminin bir parçası olarak otomatik olarak bir tane oluşturabilirsiniz. Bir tanılama görüntü zip dosyası sunucunun yapılandırmasını, günlük önbelleğini, JVM durumunu, çalışma yöneticisi durumunu, JNDI ağacını ve en yeni hasat edilen verileri içerir.

İzleme Panosu, WLDF verilerini grafiksel olarak sunar. O:

  • Yönetim konsolu uygulamasının bir parçası
  • Yönetim konsolundan veya kendi URL’siyle başlatılabilir
  • Aktif çalışma zamanı verilerini veya arşivlenmiş verileri grafik olarak gösterebilir

İzleme Panosu, üzerinde çalışan sunucular ve uygulamalar hakkında tanılama verilerini grafik olarak sunmak için görünümler ve araçlar sunar. Teşhis verilerini oluşturmak, geri almak ve kalıcı hale getirmek için temel işlev WLDF tarafından sağlanır. İzleme Panosu, bu verileri grafiklerde ve grafiklerde sunmak için ek araçlar sağlar.

Enterprise Manager Cloud Control

  • WebLogic Server dahil tüm Oracle BT altyapınızı yönetmek ve izlemek için bir araçtır
  • Diğer WebLogic araçlarının aksine, Cloud Control birden fazla domaini yönetmenizi sağlar.
  • Kendi kurulumunu gerektirir (Başka bir bileşenin parçası olarak kurulmaz).
  • Bir web tarayıcı tabanlı kullanıcı arayüzü sağlar

 771 total views,  4 views today