Hacettepe Üniversitesi

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Hacettepe Üniversitesi"

Transkript

1 Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü JTA/JTS Hazırlayan : Olcay Kaynak

2 İÇİNDEKİLER 1. Birim İşleme Genel Bakış Birim İşlemin Sonlanması JTS (Java Transaction Service) JTS ye Giriş Birim İşlem Yönetici nin İ şlevleri Birim İşlem Yönetici nin G erçekleştirimi Birim İşlem Yönetici nin JTA D esteği JTA (Java Transaction API) JTA y a Giriş JTA nın Diğer Java Kütüphaneleri ile İlişkisi EJB (Enterprise Java Beans) (Kurumsal Java Çekirdekleri) JDBC (Java DataBase Connectivity) 2.0 Standart Kütüphanesi Java Birim İşlem Servisi (Java Transaction Service) (JTS) UserTransaction Arayüzü EJB Sunucunun UserTransaction Desteği Birim İşlem Nesnesinin Oluşturulması TransactionManager Arayüzü Birim İşlem Başlatma Birim İşlem Tamamlama Birim İşlemi Duraklatma ve Tekrar Başlatma Transaction Arayüzü Birim İşlem Eşzamanlaması Birim İşlemin Tamamlanması Birim İşlem Eşitliği ve Hash Kodu Uygulama Sunucusunda JTA Desteği Bağlantı Tabanlı Kaynak (Connection Based Resource) Kullanımı Birim İşlemin İlişkilendirilmesi ve Bağlantı İstem Akışı JTA Metod Tanımları Aykırı Durum Sınıfları Kaynaklar

3 1. Birim İşleme Genel Bakış Birim işlem, bölünemez özellikteki işlemler topluluğudur. Birim işlem düzeninde işletilen bir işlemler grubu, aşağıdaki ACID olarak kısaltılması yapılan dört özelliği sağlayan işlem birimidir. Bölünmezlik (Atomicity) : Birim işlem bölünmezlik özelliğine sahiptir. Birim işlemler, ya hep ya hiç mantığı ile çalışırlar. İçerdikleri işlemlerin ya tamamı işletilir, ya da hiçbiri işletilmez. Başarısızlıklaişlem kesilecek olursa, yapılan tüm değişiklikler geri alınır rollback). ( Tutarlılık(Consistency) : Bir birim işlem, tutarlı sonuçlar üretir. Bir birim işlem tamamlandıktan sonra, işletildiği sistemi tutarlı durumda bırakmalıdır. Veritabanı uygulamalarında bunun anlamı, veritabanı tutarlılığı koşullarının sağlanmasıdır. Birim işlemin etkileri, değişmez özellikleri korur. Yalıtım (Isolation) : Birim işlem yalıtılmıştır. Ara durumları, diğer birim işlemlere görünmez. Aynı zamanda işletiliyor olsalar bile, seri olarak çalışırdurumdadırlar. Birim işlem içerisinde tanımlanmışişlemlerin tek başlarına bir bilgisayarda çalışmaları ile başka uygulamalar ve birim işlemler ile birlikte aynı işletim ortamında çalışmalarıaçısındansonuca yansıyan bir fark yoktur. Kalıcılık (Durability) : Birim işlem süreklidir. Tamamlanmış bir birim işlem, etkilerinin kalıcıl ığını korur. Hiçbir zaman kaybolmaz. Başarılıbiçimde tamamlanmış bir birim işlemin sonuçları, sistem tarafından unutulamaz. Bir başka deyişle, sistem bir birim işlemin başarıyla sonlandırıldığını kaydettikten sonra her türlü aksaklık ya da hataya rağmen bu işlemin sonuçlarını kaybetmemekle yükümlüdür. ACID özelliklerinin işletim ortamı tarafından sağlanıp sağlanmadığı,bir uygulamanın tasarımı ve gerçekleştirimi açısından son derece önemlidir. Kurumsal uygulama larda veritabanı kullanımınındiğer tür kütüklere yeğlenmesinin en önde gelen nedeni, sağladığı birim işlem desteğidir. Bir birim işlem iki türlü sonlandırılabilir : ya onaylanır (commit) ya da geri alma (roll back) işlemi uygulanır. Bir birim işlem onaylandığında,tüm değişiklikler ilişkili istemler tarafından, kalıcıolarak yapılır. Bir birim işlem üzerinde geri alma işlemi uygulandığında ise, ilişkili istemler tarafından yapılan tüm değişiklikler yapılmamış sayılır ve geri alınır. Birim işlem servisi, bölünmezliği sağlamak amacıyla çoklu, dağıtık nesnelerin birlikte çalışmasına olanak veren bir arayüz tanımı getirir. Bu arayüzler, nesnelerin tümüyle commit edilmesine veya roll back işlemlerine imkan sağlar Birim İşlemin Sonlanması Bir birim işlem, commit ya da rollback istemleri oluştuktan sonra sonlanır. Genellikle, bir birim işlem, kendisine kaynaklık eden istemci tarafından sonlandırılır. EJB (Enterprise Java Beans) bileşen model ortamında, birim işlem yöneticinin, aynı JVM de olmayan herhangi başka bir işletim dizisi tarafından birim işlemlerin sonlandırılmasına izin verecek biçimde olması gerekir. Uygulama sunucularına bağlı uygulama bileşenleri, kendi birim işlem durumlarınıyönetmek amacı ile birim işlemleri sonlandırma yetkisine sahip değildir. Bir uygulama sunucusu, uygulamanın beklenmeyen bir hata (Java aykırı durumları formunda) ile karşılaşması durumunda, birim işlemleri rollback etmeye zorlayabilir. Birim işlem yönetici, birim işlemi ilgilendiren kaynak yöneticilerin (resource manager) aksama durumlarını izlemek zorunda değildir. 3

4 2. JTS (Java Transaction Service) 2.1. JTS ye Giriş JTS, JTA belirtimlerini destekleyen birim işlem yöneticinin (Transaction Manager) bir gerçekleştirimi, aynı zamanda OMG OTS (Object Management Group Object Transaction Service) servisinin Java eşlemelerinin gerçekleştirimini sağlayan bir belirtimdir Birim İşlem Yönetici nin İşlevleri OMG OTS 1.1 arayüzlerinin Java eşlemeleri gerçekleştirimi, birim işlem yöneticisinin istemci tarafına açık değildir. Bu istemciler, birim işlem yöneticiye erişmek için JTA arayüzlerini kullanan birimlerdir. Birim işlem yönetici şu imkanları sağlamaktadır : Uygulamalara ve uygulama sunucularına kapsam kontrol yeteneği ve birim işlem sürekliliği sağlar, Bölünemez bir birim işlemin parçası olan çoklu uygulama bileşenlerinin işletilmesine olanak sağlar, Birim işlem eşzamanlamayı sağlar, Diğer birim işlem yöneticileri ile CORBA ORB/TS standart arayüzlerini kullanarak işletimini sağlar, Aynı JVM (Java Virtual Machine) de veya çoklu JVM lerde, aynı birim işlem ile ilişkili olan çoklu işletim dizilerine (threads) izin verir. 4

5 2.3. Birim İşlem Yönetici nin Gerçekleştirimi Yukarıdakişekilde de görüldüğü üzere, birim işlem yönetici, uygulama sunucuları ve kaynak yöneticilerini desteklemek için JTA arayüz belirtimlerini de içermelidir. JDBC (Java DataBase Connectivity) sürücüleri için destek ve çeşitli CORBA uygulamaları, seçeneğe göre değişiklik göstermektedir Birim İşlem Yönetici nin JTA Desteği Birim İşlemin Sınırları: Birim işlem yönetici, uygulama sunucularının ve bağımsızjava istemci uygulamalarının birim işlem sınırlarını belirlemek için ve birim işlem işlemlerini yürütebilmek için aşağıdaki kütüphaneleri dahil etmektedir: javax.transaction.transactionmanager javax.transaction.transaction javax.transaction.usertransaction Bir birim işlem modeli incelenirken Birim adımıkim başlatır?, COMMIT ve ABORT çağrılarınıkim yapar?, Bu iki adım ne zaman gerçekleşir? gibi soruların yanıtlanmasıgerekir. Bu yanıtlar da birim işlemin sınırlarını belirler (demarcation of transaction boundary). Böylece birim işlemin eşgüdümünün kimin tarafından yapıldığı ve nereye kadar yayıldığı ortaya çıkmış olur. JB Ebelirtimine göre birim işlemin sınırları üç değişik biçimde belirlenebilir. i. Programlamalı birim işlemler 5

6 ii. iii. Bildirimsel birim işlemler İstemci denetimli birim işlemler Birim İşlem Eşzamanlaması : Birim işlem yönetici, uygulama sunucularına kayıtlı senkronizasyon callback nesnelerini mümkün kılarak, birim işlem eşzamanlamasınısağlar. Birim işlem yönetici, senkronizasyon metodlarını birim işlemin tamamlanmasından önce ve sonra çağırır. Senkronizasyon kayıt işlemi, javax.transaction.transaction.registersynchronization() metod çağrısıile yapılmaktadır. Birim İşlem ve Kaynak İlişkilendirimi : Birim işlem yönetici, birim işleme bağlı kayıt işlemini, javax.transaction.transaction kütüphanesinde tanımlı enlistresource() ve delistresource() metodları ile gerçekleştirmektedir. Birim işlem yönetici, kaynak birim işlem ilişkilendirmesini ve birim işlemin tamamlanması işlemini yürütmek için JTA da tanımlı javax.transaction.xa.xaresource kütüphanesini kullanır. Birim İşlem Kurtarma : Birim işlem yönetici, javax.transaction.xa.xaresource kütüphanesinde tanımlı recover () ve forget() metodlarını kullanarak hazırlık aşamasında olan veya sezgisel olarak tamamlanmış birim işlemler için bir kurtarma mekanizması sunar. 6

7 3. JTA (Java Transaction API) 3.1. JTA ya Giriş JTA, birim işlem yönetici (Transaction Manager) ile dağıtık birim işlem istemine katılan uygulama, kaynak yönetici (Resource Manager) ve uygulama sunucusu (Application Server) gibi paket programlar arasında tanımlanan bir arayüzü belirtir. JTA nın amacı, kurumsal Java dağıtık işlem ortamında birim işlem yönetimini sağlayan yerel Java arayüzlerinin belirtimini yapmaktır. JTA paketi üç bölümden oluşur: Birim işlemin sınırlarını çizen, birim işlem uygulamalarına imkan veren üst düzey uygulama arayüzü, Harici bir birim işlem yönetici tarafından kontrol edilen global bir birim işleme katılan, X/Open XA protokolü için bir Java eşlemesi, Uygulama sunucusu tarafından yönetilecek olan, uygulama sunucusunun birim işlemin sınırlarınıbelirlemesine olanak tanıyan, üst düzey bir birim işlem yönetici arayüzü Enterprise Java arakatmanında, dağıtık birim işlem servisi beş rol üstlenir: birim işlem yönetici, uygulama sunucusu, kaynak yönetici, uygulama programı ve iletişim kaynak yönetici. Her bir rol, dağıtık birim işlemler için farklı birim işlem kütüphaneleri tanımı yaparak bu işlemlere katkı sağlar. 7

8 Aşağıdaki şekilde küçük yarım daire biçiminde ifade edilen bölge, JTA nın genel yapı içerisindeki yerini göstermektedir JTA nın Diğer Java Kütüphaneleri ile İlişkisi EJB (Enterprise Java Beans) (Kurumsal Java Çekirdekleri) EJB mimarisi, uygulama düzeyi birim işlem sınırının çizilebilmesi için bir EJB koza (Container) desteği gerektirir. Bu da, javax.transaction.usertransaction arayüzü kullanılarak gerçekleştirilir. Bu arayüzün içerdiği metodlar aşağıda açıklanmıştır : Metod begin() commit() getstatus() Açıklama Yeni bir birim işlem başlatır. Bu birim işlem çalışmakta olan görevcikle ilişkilendirilir. Görevcikle ilişkilendirilmiş olan birim işlem için iki aşamalı kesinleştirme (2PC twophase commit) protokolünü uygular. Tüm kaynak yöneticileri kendi günlemelerini kalıcı hale getirirler. Görevcikle ilişkilendirilmiş olan birim işlemin durumunun sorgulanmasını sağlar. 8

9 rollback() setrollbackonly() settransactiontimeout(int) Görevcikle ilişkilendirilmiş olan birim işlemin geri alınabilmesini sağlar. Yürütülen birim işlemin geri alınmasını zorlamak için kullanılır. Bunun sonucunda birim işlem durdurulacaktır (abort) Bir birim işlemin durdurulmadan önce çalışabileceği süreyi belirtmek için kullanılır. Not : EJB ile ilgili daha fazla ayrıntı için: JDBC (Java DataBase Connectivity) 2.0 Standart Kütüphanesi JDBC 2.0 ek belirtimlerine sonradan eklenmiş bir dağıtık birim işlem desteğidir. Dağıtık birim işlemleri destekleyecek olan JDBC sürücüsü için JTA nın XAResource arayüzü kullanılarak iki yeni arayüz tanımı yapılmıştır. Bunlar : javax.sql.xaconnection ve javax.sql.xadatasource arayüzleridir. Bir JDBC sürücüsü, dağıtık birim işlemleri desteklemek için ; javax.transaction.xa.xaresource javax.sql.xaconnection ve javax.sql.xadatasource arayüzlerini kullanır. Not : JDBC 2.0 standart belirtimleri ile ilgili daha fazla ayrıntı için: Java Mesaj Servisi (Java Message Service) Java birim işlem kütüphanesi (JTA), Java mesaj servis sağlayıcıları tarafından dağıtık birim işlemleri desteklemek amacı ile kullanılabilir. JMS sağlayıcı; javax.transaction.xa.xaresource javax.jms.xaconnection javax.jms.xasession arayüzlerini kullanır. Not : JMS 1.0 belirtimleri ile ilgili daha fazla ayrıntı için: Java Birim İşlem Servisi (Java Transaction Service) (JTS) 9

10 Java birim işlem servisi, birim işlem yönetici yapısını oluşturmak için, üst düzey JTA arayüzlerini ve alt düzey CORBA Nesne Birim İşlem Servisi 1.1 (CORBA Object Transaction Service) belirtimlerinin Java eşlemelerini kullanan belirtimdir. Kurumsal ara katman (enterprise middleware) altyapısının birim işlem sistemi bağlamındakullanılabilmesi için oluşturulmuştur. 4. UserTransaction Arayüzü Programlamalı birim işlem bağlamında kullanılan arayüz tanımıdır. Aynı zamanda Java istemci programlarında ve EJB çekirdeklerinde kullanılabilir EJB Sunucunun UserTransaction Desteği EJB sunucularının, TX_BEAN_MANAGED birim işlem özelliğinin EJB çekirdekleri ile kullanımına olanak vermek için UserTransaction arayüzünü desteklemesi zorunludur. UserTransaction arayüz tanımı, EJB bileşenlerine EJBContext kütüphanesinin getusertransaction() metodu ile açılmış olur. Böylece, bir EJB uygulaması birim işlem yönetici ile doğrudan iletişim kurmak yerine, EJB sunucu üzerindeki EJB çekirdeğinin, EJB belirtimlerinde tanımlıtüm birim işlem yeteneklerini desteklediğini garanti eder. Aşağıda, UserTransaction arayüzünün TX_BEAN_MANAGED EJB oturum çekirdeği ile kullanımı örneklenmiştir : /////////////////////////// // oturum çekirde?inin setsessioncontext metodunda // çekirdek içeri?ini bir de?i?kende sakla SessionContext ctx = sessioncontext;.. //çekirde?in i? mant???nda herhangi bir yerde UserTransaction utx = ctx.getusertransaction(); // birim i?leme ba?la utx.begin();.. // i?i yap.. // i?i onayla utx.commit(); ///////////////////////// 4.2. Birim İşlem Nesnesinin Oluşturulması UserTransaction nesnesine erişim şekli, istemci türüne bağımlılık gösterir. EJB, iki tür birim işlem yönetimi sağlar : Koza Yönetimli Birim İşlem (Container managed transactions) : Adından da anlaşılacağı gibi, kararlar EJB kozası tarafından verilir. Çekirdek Yönetimli Birim İşlem (Bean managed transactions) : Bu bağlamda, bir oturum çekirdeği, UserTransaction nesnesini EJBContext ile getusertransaction() metodunu kullanarak elde eder. Genellikle sunucu JNDI arama ismini (JNDI lookup name) direkt olarak veya bir sistem yoluyla veya sunucunun bir özelliği olarak bize sağlar. 10

11 Birim İşlem nesnesinin oluşturulması için çeşitli yöntemler mevcuttur. Örneğin Weblogic Server için aşağıdaki gibi bir kod parçasına ihtiyaç vardır :... Context c = new InitialContext(); UserTransaction ut=(usertransaction)c.lookup("javax.jts.usertransaction"); // transaction i?ini ba?lat ut.begin(); // çoklu i?lem gerçekle?tir... ut.commit();... J2EE gerçekleştiriminde UserTransaction nesnesinin oluşturulabilmesi için şöyle bir kod parçası işimizi görecektir :... Context c = new InitialContext(); UserTransaction ut=(usertransaction)c.lookup("java:comp/usertransaction"); // transaction i?ini ba?lat ut.begin(); // çoklu i?lem gerçekle?tir... ut.commit();... UserTransaction nesnesi kullanılan ortam tarafından bir sistem özelliği olarak sağlanıyorsa, aşağıdakine benzer bir kod kullanılabilir :... String transname = System.getProperty("jta.UserTransaction"); Context c = new InitialContext(); UserTransaction ut = (UserTransaction) c.lookup(transname); // transaction i?ini ba?lat ut.begin(); // çoklu i?lem gerçekle?tir... ut.commit(); TransactionManager Arayüzü Uygulamanın yönetilmesi adına, uygulama sunucunun birim işlem sınırları için tanımlanmış olan javax.transaction.transactionmanager biçimindeki arayüz tanımıdır Birim İşlem Başlatma UserTransaction.begin metodu genel bir birim işlem başlatmak ve birim işlemi kendisini çağıran işletim dizisi ile ilişkilendirmek üzere kullanılır.birim işlem işletim dizisi ilişkisi, birim işlem yönetici tarafından yapılan soyut bir işlemdir. Bu metod, kendisini çağıran işletim dizisinin başka bir birim işlem ile ilişkilendirilmiş olduğu durumlarda, veya birim işlem yönetici iç içe işlemleri desteklemiyor ise NotSupportedException aykırı durumunu oluşturur. TransactionManager.getTransaction metodu ile o andaki birim işlem bağlamında bir Transaction nesnesi döndürülür. Bu Transaction nesnesi kullanılarak, hedef birim işlem üzerinde çeşitli işlemler gerçekleştirilebilir. 11

12 5.2. Birim İşlem Tamamlama TransactionManager.commit metodu, o anda kendisini çağıran işletim dizisi ile ilişkili olan birim işlemi tamamlamaya yarar. commit metod çağrısındandönüldükten sonra, ilişkili olan işletim dizisinin birim işlem ile bir ilişkisi kalmaz. Bir işletim dizisi, herhangi bir birim işlem ile ilintili olmamasına rağmen commit çağrısıyapılırsa, birim işlem yönetici aykırı bir durum oluşturur. Yine, çağıran işletim dizisi birim işlem üzerinde commit metoduna izin vermiyor ise birim işlem yönetici aykırı bir durum oluşturur. TransactionManager.rollback metodu, o andaki işletim dizisi ile ilintili olan birim işlemi geri almak için kullanılır.benzer şekilde, rollback metod çağrısından dönüldükten sonra, ilişkili olan işletim dizisinin birim işlem ile bir ilişkisi kalmaz 5.3. Birim İşlemi Duraklatma ve Tekrar Başlatma TransactionManager.suspend metod çağrısı, o anda kendisini çağıran işletim dizisi ile ilişkili olan birim işlemin geçici bir süreliğine askıya alınmasınısağlar. İşletim dizisi herhangi bir birim işlem ile ilişkili değilse, null olan bir nesne referansı, tersi durumda geçerli bir Transaction nesnesi döner. Bu nesne daha sonra, birim işlemin kaldığı yerden devam edebilmesi için resume metoduna parametre olarak verilebilir. TransactionManager.resume metodu, belirtilen birim işlemin çağıran işletim dizisi ile tekrar ilişkilendirilmesini sağlar. Belirtilen birim işlem geçerli ise, işletim dizisi ile birim işlem bağlamında ilişkilendirme yapılır, aksi durumda herhangi bir ilişki sözkonusu edilmez. Gerçekleştirimi şu şekilde yapılır :.. Transaction tobj = TransactionManager.suspend();.. TransactionManager.resume(tobj);.. İşletim dizisi başka bir birim işlem ile ilişkili iken TransactionManager.resume metod çağrısıyapılırsa, birim işlem yönetici IllegalStateException aykırı durumu oluşturur. Duraksatma ve devam etme işlemlerini, EJB ortamında, EJB sunucu uygulamalar ile birim işleme yönelik kullanımdaki kaynakların yönetimi ile gerçekleştirir. Bir EJB örneği ile ilişkilendirilmiş bir birim işlem duraksatılmak isteniyorsa, uygulama sunucusu, kullanımdakikaynakların listesini kontrol eder. Uygulama sunucusu, duraksatılmışbirim işlem ile ilişkilendirilmiş her kaynak için Transaction.delistResource metodunu çağırır.böylece, kaynağın birim işlem ile olan ilişkisi kaldırılmış olur. Eğer devam etme işlemi gerçekleştirilecek ise, uygulama sunucusu kullanımdaki kaynakların listesini kontrol eder ve kontrolü çekirdeğin iş metodlarına vermeden önce kaynakları birim işlem yöneticiye kaydeder. 6. Transaction Arayüzü Transaction arayüzü, hedef nesne ile ilişkilendirilmiş olan birim işlemler üzerinde işlemleri gerçekleştirmeyi mümkün kılar. Genel olan her birim işlem, yaratıldığından itibaren bir Transaction nesnesi ile ilişkilendirilmiş durumdadır. Bu nesne; birim işleme yönelik kullanımdaki kaynakları kaydetme, birim işleme commit veya rollback komutlarını uygulama, birim işlemin durumunu ele alma 12

13 gibi istemlerde kullanılır Birim İşlem Eşzamanlaması Birim işlem eşzamanlaması, uygulama sunucusuna, birim işlem yöneticiden, birim işlemin bitişinin öncesinde ve sonrasında haber veren mekanizmadır. Her birim işlem başladığında, uygulama sunucusu, birim işlem yönetici tarafından çağırılmak üzere genellikle javax.transaction.synchronization geri çağırım nesnesini kayıt eder. Synchronization.beforeCompletion metodu, 2PC işleminin başlangıcındaçağrılır. Bu çağırma işlemi, birim işleme commit komutu uygulanması durumunda işletilir. Synchronization.afterCompletion metodu ise, birim işlemin bitişinin ardından çağrılır. Birim işlemin durumu, parametresinde verilir Birim İşlemin Tamamlanması Hedef nesne üzerinde yapılan işin onay görmesi ya da işlemlerin geri alınması durumu, Transaction.commit ve T ransaction.rollback metodları ile gerçekleştirilir. Çağıran işletim dizisi, commit işlemine izin vermiyor ise birim işlem yönetici aykırı durum oluşturur Birim İşlem Eşitliği ve Hash Kodu Birim işlem yönetici, Transaction nesnesinin equals metodunu içerecek biçimde olmalıdır. Bu metod, hedef nesne ile herhangi başka bir Transaction nesnesi arasında karşılaştırma yapmak için kullanılır. equals metodu, hedef nesnenin, parametre olarak verilen diğer nesne ile aynı genel birim işlem işlemi göstermesi durumunda, true değerini döndürür. Uygulama sunucusunun, iki Transaction nesnesinin başka bir birim işlem ile ilişkili olan kaynakları kullanmaya çalıştığı durumda, bu iki nesneyi karşılaştırması gerekir. Bu işlem equals metodu ile aşağıdaki biçimde gerçekleştirilir : Transaction txobj = TransactionManager.getTransaction(); Transaction someothertxobj =.... boolean issame = txobj.equals(someothertxobj); Buna ek olarak birim işlem yönetici, Transaction nesnesinin hashcode metodunu içermelidir. İki Transaction nesnesinin eşit olması durumunda bu ikisi aynı Hash koduna sahiptir. Tersi, doğru değildir. 7. Uygulama Sunucusunda JTA Desteği Bu kesimde, uygulamaların birim işlemlerinin ve kaynak kullanımının uygulama sunucusu tarafından yönetildiğini varsayılacaktır.buna ek olarak, özel bir kaynak yöneticiden bahsedilmeyecektir. JTA nın kullanımı üzerinde durulacak, bağlantı tabanlı genel bir birim işlemsel kaynağın kullanımda olduğu varsayılacaktır. 13

14 7.1. Bağlantı Tabanlı Kaynak (Connection Based Resource) Kullanımı TransactionalResource adında bağlantıtabanlı bir API nin kaynak bağdaştırıcı 1 tarafından sağlandığını düşünelim. Genel bir kullanım senaryosunda, uygulama sunucusu, bir TransactionalResource nesnesi yaratmakla işe başlar. Kaynak bağdaştırıcıbu nesneyi iki varlıkla ilişkilendirir. Bunlardan ilki, kaynak bağdaştırıcının özel bağlantı arayüzünü içeren bir nesne, diğeri de javax.transaction.xa.xaresource arayüzünü içeren bir nesnedir. Uygulama sunucusu, getxaresource metodunu kullanarak bir XAResource nesnesi elde eder. Daha sonra Transaction.enlistResource metodu ile XAResource nesnesini birim işlem yönetici ile ilişkilendirir. Birim işlem yönetici, kaynak yöneticiye bua bağlantı üzerinden yapılan işin ilişkilendirilmesi için uyarır. Bunu da XAResource.start metod çağrısı yaparak gerçekleştirir. Uygulama sunucusu daha sonra, bir Connection nesnesi elde etmek için birkaç getconnection metod çağrısıyapar ve nesneyi uygulamaya döndürür. Burada adı geçen Connection arayüz tanımı, kaynak bağdaştırıcıtarafından gerçekleştirimi yapılmışolan ve kaynak yöneticiye özel olan bir tanımdır. Aşağıda kaynağın elde edilmesine yönelik genel akışını ve kaynağın birim işlem yöneticiye kaydolmasını gösteren bir şema verilmiştir. 1 Kaynak bağdaştırıcı,kaynak yönetici ile bağlantı kurmak amacıyla, uygulama sunucusu ya da istemci tarafından kullanılan, sistem düzeyi bir yazılım kütüphanesidir. Bazı kaynak bağdaştırıcılar: ilişkisel veritabanlarına bağlanmak için JDBC, nesne veritabanlarına bağlanmak için ODGM, SAP R/3 sistemine bağlanmak için JRFC. Bir kaynak bağdaştırıcı bağlantı kütüphanesi dışındaek servisler sağlayabilir. 14

15 Bu senaryo dahilinde XAResource arayüzü, uygulama programına, Connection arayüzü de, birim işlem yöneticiye soyutlanmıştır.aşağıda, uygulama sunucusunun XAResource nesne referansını nasılelde ettiğini ve birim işlem yönetici ile ilişkilendirilmesini örnekleyen kod kesimi verilmiştir. // kaynak yöneticiye eri?im amac? ile // ba?lant? tabanl? birim i?lem kayna?? al Context ctx = InitialContext(); ResourceFactory rf =(ResourceFactory)ctx.lookup( MyEISResource ); TransactionalResource res = rf.gettransactionalresource(); // bir XAResource nesnesi al ve birim i?lem yöneticiye ba?la XAResource xares = res.getxaresource(); (TransactionManager.getTransaction()).enlistResource(xaRes); // ba?lant? al Connection con = (Connection)res.getConnection();.. ba?lant?y? uygulamaya döndür 7.2. Birim İşlemin İlişkilendirilmesi ve Bağlantı İstem Akışı Bu kesimde, özetle bir uygulama sunucusunun bir bağlantı istemini uygulama içerisinden nasıl ele aldığınıinceleyeceğiz. 1. İstemci, birim işlemin TX_REQUIRED birim işlem özelliğini kullanan bir EJB çekirdeği çağırır ve istemci bu anda genel bir birim işlem ile ilişkili değildir. EJB kozası TransactionManager.begin metodunu çağırarak genel bir birim işlem başlatmış olur. 2. Birim işlemin başlamasınınardından, koza çekirdek metodunu çağırır. İş mantığının bir parçası olarak çekirdek, kütüphaneyi kullanarak kaynak bağdaştırıcı tarafından sağlanan bir bağlantı tabanlı kaynak isteminde bulunur. 3. Uygulama sunucusu, ResourceFactory.getTransactionalResource metod çağrısı yaparak kaynak bağdaştırıcıdan bir kaynak elde eder. 4. Kaynak bağdaştırıcı, TransactionalResource nesnesi ve ilişkilendirilmiş XAResource ve Connection nesnelerini yaratır. 5. Uygulama sunucusu, getxaresource metodunu çağırır. 6. Uygulama sunucusu, kaynağı birim işlem yöneticiye kaydeder. 7. Birim işlem yönetici, o an geçerli olan birim işlemi, kaynak ile ilişkilendirmek üzere XAResource.start metodunu çağırır. 8. Uygulama sunucusu, getconnection metodunu çağırır. 9. Uygulama sunucusu, Connection nesne referansını uygulamaya döndürür. 10. Uygulama, bağlantı üzerinde iş veya işler yapar. 11. Uygulama, bağlantıyı kapatır. 12. Uygulama sunucusu, bağlantının koparılması ile kaynak bağdaştırıcıya haber gitmesinin ardından kaynağı kayıt listesinden alır. 13. Birim işlem yönetici, birim işlemin XAResource arayüzü ile ilişkisini kesmek için XAResource.end metodunu çağırır. 14. Uygulama sunucusu, birim işlem yöneticiye, birim işlemin onaylanıp onaylanmayacağını sorar. 15. Birim işlem yönetici, birim işlemi onaylamak üzere kaynak yöneticiyi bilgilendirmek için XAResource.prepare metodunu çağırır. 16. Birim işlem yönetici, birim işlemi onaylamak için XAResource.commit metod çağrısınıyapar. 15

16 Aşağıdaki şekil yukarıdaki adımlar ile JTA nın kullanımını göstermektedir. 8. JTA Metod Tanımları Bu kesimde, Java birim işlem kütüphanesi için sınıf ve arayüz tanımlarısözkonusu edilecektir. Bu bağlamda, EJB, JDBC, JMS ve JTS için javax.transaction paketi geçerlidir. Bu paketin tanımları aşağıda verilmiştir : 16

17 package javax.transaction: Arayüzler: public interface javax.transaction.status public interface javax.transaction.synchronization public interface javax.transaction.transaction public interface javax.transaction.transactionmanager public interface javax.transaction.usertransaction Sınıflar: public class javax.transaction.heuristiccommitexception public class javax.transaction.heuristicmixedexception public class javax.transaction.heuristicrollbackexception public class javax.transaction.invalidtransactionexception public class javax.transaction.notsupportedexception public class javax.transaction.rollbackexception public class javax.transaction.transactionrequiredexception public class javax.transaction.transactionrolledbackexception public class javax.transaction. package javax.transaction.xa: Arayüzler: public interface javax.transaction.xa.xaresource public interface javax.transaction.xa.xid Sınıflar: public class javax.transaction.xa.xaexception Durum Arayüzü interface javax.transaction.status public final static int STATUS_ACTIVE; public final static int STATUS_COMMITTED; public final static int STATUS_COMMITTING; public final static int STATUS_MARKED_ROLLBACK; public final static int STATUS_NO_TRANSACTION; public final static int STATUS_PREPARED; public final static int STATUS_PREPARING; public final static int STATUS_ROLLEDBACK; public final static int STATUS_ROLLING_BACK; public final static int STATUS_UNKNOWN; 17

18 Değişkenler STATUS_ACTIVE public final static int STATUS_ACTIVE Bir birim işlem, bir hedef nesne ile ilişkilendirilmiştir ve aktif durumdadır. Bu durum değişkeni birim işlem başladıktan sonra döndürülür. STATUS_COMMITTED public final static int STATUS_COMMITTED Bir birim işlem, bir hedef nesne ile ilişkilendirilmiştir ve onaylanmış durumdadır. STATUS_COMMITTING public final static int STATUS_COMMITTING Bir birim işlem, bir hedef nesne ile ilişkilendirilmiştir ve onaylama işlemi sürecindedir. Böyle bir durum, işlemin tamamlanmadığı, kaynak veya kaynaklardan cevap beklediği anlarda ortaya çıkar. STATUS_MARKED_ROLLBACK public final static int STATUS_MARKED_ROLLBACK Bir birim işlem, bir hedef nesne ile ilişkilendirilmiştir ve işlemin geri alınması çin i işaretlenmiştir. STATUS_NO_TRANSACTION public final static int STATUS_NO_TRANSACTION Hedef nesne ile ilişkilendirilmiş henüz bir birim işlem yoktur. Bu durum, birim işlemintamamlandığı anda oluşur. STATUS_PREPARED public final static int STATUS_PREPARED Bir birim işlem, bir hedef nesne ile ilişkilendirilmiştir ve hazırlanmış durumdadır. STATUS_PREPARING public final static int STATUS_PREPARING Bir birim işlem, bir hedef nesne ile ilişkilendirilmiştir ve hazırlık aşamasındadır. Böyle bir durum, hazırlıkişleminin tamamlanmadığı, kaynak veya kaynaklardan cevap beklediği anlarda ortaya çıkar. STATUS_ROLLEDBACK public final static int STATUS_ROLLEDBACK Bir birim işlem, bir hedef nesne ile ilişkilendirilmiştir ve sonuç işlemlerin geri alınması olmuştur. STATUS_ROLLING_BACK public final static int STATUS_ROLLING_BACK Bir birim işlem, bir hedef nesne ile ilişkilendirilmiştir ve geri alınma işi devam etmektedir. Böyle bir durum, geri alma işlemine karar verildiği ancak bu işlemin tamamlanmadığı, kaynak veya kaynaklardan cevap beklediği anlarda ortaya çıkar. STATUS_UNKNOWN public final static int STATUS_UNKNOWN 18

19 Bir birim işlem, bir hedef nesne ile ilişkilendirilmiştir ancak o anki durum hakkında bir bilgi sözkonusu değildir. Eşzamanlama Arayüzü interface javax.transaction.synchronization public abstract void beforecompletion(); public abstract void aftercompletion(int status); Birim İşlem Arayüzü interface javax.transaction.transaction public abstract void commit(); public abstract boolean delistresource(xaresource xares, int flag); public abstract boolean enlistresource(xaresource xares); public abstract int getstatus(); public abstract void registersynchronization(synchronization sync); public abstract void rollback(); public abstract void setrollbackonly(); Birim İşlem Metodları commit public abstract void commit() RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, Birim işlemi, ilişkili hedef birim işlem nesnesi ile tamamlar. delistresource public abstract boolean delistresource(xaresource xares, int flag) IllegalStateException, Hedef birim işlem nesnesinin kaynakla ilişkisini keser. enlistresource public abstract boolean enlistresource(xaresource xares) 19

20 RollbackException, IllegalStateException, Hedef birim işlem nesnesini kaynaklara kaydeder. getstatus public abstract int getstatus() Birim işlemin durumunu alır. İlişkili herhangi bir birim işlem yoksa STATUS_NO_TRANSACTION değeri döner registersynchronization public void registersynchronization(synchronization sync) RollbackException, IllegalStateException, rollback public abstract void rollback() IllegalStateException, SyetemException Birim işlemin geri alınmasını sağlar. setrollbackonly public abstract void setrollbackonly() IllegalStateException, Olası sonucun yalnızca geri alınma işlemi olduğu durumda geçerlidir. 20

21 Birim İşlem Yönetici Arayüzü interface javax.transaction.transactionmanager public abstract void begin(); public abstract void commit(); public abstract int getstatus(); public abstract Transaction gettransaction(); public void resume(transaction tobj); public abstract void rollback(); public abstract void setrollbackonly(); public abstract void settransactiontimeout(int seconds); public abstract Transaction suspend() ; Birim İşlem Yönetici Metodları begin public abstract void begin() NotSupportedException, Yeni bir birim işlem oluşturur ve o anki işletimdizisi ile ilişkilendirir. commit public abstract void commit() RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, IllegalStateException, getstatus public abstract int getstatus() Obtain the status of the transaction associated with the current thread. gettransaction public abstract Transaction gettransaction() resume public void resume(transaction tobj) InvalidTransactionException, IllegalStateException, 21

22 rollback public abstract void rollback() IllegalStateException, SecurityException, setrollbackonly public abstract void setrollbackonly() IllegalStateException, settransactiontimeout public abstract void settransactiontimeout(int seconds) suspend public abstract Transaction suspend() UserTransaction Arayüzü public interface javax.transaction.usertransaction public abstract void begin(); public abstract void commit(); public abstract int getstatus(); public abstract void rollback(); public abstract void setrollbackonly(); public abstract void settransactiontimeout(int seconds); UserTransaction Metodları begin public abstract void begin() NotSupportedException, 22

23 commit public abstract void commit() RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, IllegalStateException, getstatus public abstract int getstatus() rollback public abstract void rollback() IllegalStateException, SecurityException, setrollbackonly public abstract void setrollbackonly() IllegalStateException, settransactiontimeout public abstract void settransactiontimeout(int seconds) 23

24 XAResource Arayüzü public interface javax.transaction.xa.xaresource public abstract void commit(xid xid, boolean onephase); public abstract void end(xid xid, int flags); public abstract void forget(xid xid); public abstract int gettransactiontimeout(); public abstract boolean issamerm(xaresource xares); public abstract int prepare(xid xid); public bstract Xid[] recover(int flag); public bstract void rollback(xid xid); public bstract boolean settransactiontimeout(int seconds); public abstract void start(xid xid, int flags); Xid Arayüzü public interface javax.transaction.xa.xid int getformatid(); byte[] getglobaltransactionid(); byte[] getbranchqualifier(); 8.1. Aykırı Durum Sınıfları public class javax.transaction.heuristiccommitexception extends java.lang.exception public HeuristicCommitException(); public HeuristicCommitException(String msg); public class javax.transaction.heuristicmixedexception extends java.lang.exception public HeuristicMixedException(); public HeuristicMixedException(String msg); public class javax.transaction.heuristicrollbackexception extends java.lang.exception public HeuristicRollbackException(); public HeuristicRollbackException(String msg); 24

25 public class javax.transaction.invalidtransactionexception extends java.rmi.remoteexception public InvalidTransactionException(); public InvalidTransactionException(String msg); public class javax.transaction.notsupportedexception extends java.lang.exception public NotSupportedException(); public NotSupportedException(String msg); public class javax.transaction.rollbackexception extends java.lang.exception public RollbackException(); public RollbackException(String msg); public class javax.transaction. extends java.lang.exception public (); public (String s); public (int errcode); public class javax.transaction.transactionrequiredexception extends java.rmi.remoteexception public TransactionRequiredException(); public TransactionRequiredException(String msg); public class javax.transaction.transactionrolledbackexception extends java.rmi.remoteexception public TransactionRolledbackException(); public TransactionRolledbackException(String msg); public class javax.transactioin.xa.xaexception extends java.lang.exception public XAException(); public XAException(String s); public XAException(int errcode); 25

26 9. Kaynaklar JTS 1.0 Specification 1.2. JTA Specification Web Tabanlı, Üç Katmanlı Yazılım Mimarileri, Cesur BARANSEL, Alim MUMCUOĞLU abaxx Technology J2EE Java Transaction API 26

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama JDBC (Java Database Connectivity) Üst Düzey Programlama-ders07/ 1 JDBC JDBC ilişkisel veritabanlarına erişim için Java dilinde kullanılan standart bir kütüphanedir. Bu kütüphanedeki

Detaylı

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 1 Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2 Eclipse Mimarisi 4 Java Teknolojisine Genel Bir Bakış 6 Taşınabilirlik 6 Java Derleyicisi ve Bytecode 6 Java Sanal Makinası (Java Virtual Machine - JVM)

Detaylı

Swing ve JDBC ile Database Erişimi

Swing ve JDBC ile Database Erişimi Swing ve JDBC ile Database Erişimi JDBC API, tablolanmış herhangi bir tür veriye, özellikle İlişkisel Veritabanı, erişim sağlayan bir Java API sidir. JDBC, aşağıda verilen üç etkinliğin gerçekleştirilebileceği

Detaylı

Veritabanı. Ders 2 VERİTABANI

Veritabanı. Ders 2 VERİTABANI Veritabanı Veritabanı Nedir? Birbiri ile ilişkili verilerin bir arada uzun süreli bulundurulmasıdır. Veritabanı bazen Veritabanı Yönetim sistemi veya Veritabanı Sistemi yerine de kullanılır. Gerçek dünyanın

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

ÖZGÜR YAZILIMLAR İLE J2EE

ÖZGÜR YAZILIMLAR İLE J2EE ÖZGÜR YAZILIMLAR İLE J2EE Buğra Çakır bugra@ibrahimcakir.com Seminer İçeriği 1. İki ve üç katmanlı yazılım mimarileri 2. Java ve J2EE platformu 3. Özgür yazılımlar ile J2EE 4. Eclipse, Lomboz ve JBoss

Detaylı

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

Asp.Net Veritabanı İşlemleri

Asp.Net Veritabanı İşlemleri Asp.Net Veritabanı İşlemleri Asp.Net Veritabanı İşlemleri Birçok uygulamada bilgiler geçici olarak tutulur ve oturum sonlandırıldığında bu bilgiler bellekten silinir. Ancak etkileşimli web sitelerinde

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Servlet Üst Düzey Programlama-ders01/ 1 Servlet Nedir? Web sayfaları ilk başlarda durağan bir yapıya sahipti ve kullanıcıdan bilgi alarak işlemler yapmıyordu. Zamanın geçmesiyle kullanıcıya

Detaylı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 7. LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ. LINUX Yapısı Ders 7 LINUX OS (Sistem Yapısı) BİLGİ & İLETİŞİM TEKNOLOJİLERİ 1 LINUX Yapısı LINUX işletim sisteminin diğer işletim sistemleri gibi kendine özgü bir yapısı vardır. LINUX yapısı ve bileşenleri aşağıdaki

Detaylı

Java Dersi. Altuğ Bilgin Altıntaş

Java Dersi. Altuğ Bilgin Altıntaş Java Dersi Altuğ Bilgin Altıntaş Bu Dönem Hakkında Corba Servlet RMI Temel Kısım EJB JSP XML 2 JDBC JNI Çalışma Evreleri 6 Çalışma Evreleri 7 Java dosyasının hali 7 İlk Java uygulaması 7 Ciddi bir uygulama

Detaylı

Business Delegate Tasarım Şablonu KurumsalJava.com

Business Delegate Tasarım Şablonu KurumsalJava.com Business Delegate Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Modern yazılım sistemleri birden fazla katmandan oluşur. Bu katmanlar her zaman aynı server üzerinde

Detaylı

Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü. Sorumluluk Zinciri. Kod Üretme (Code Generation)

Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü. Sorumluluk Zinciri. Kod Üretme (Code Generation) Cahit GÜNGÖR Hacettepe Üniversitesi Bilişim Enstitüsü Sorumluluk Zinciri (Chain of Responsibility) Yazılım Mimarileri Kod Üretme (Code Generation) Anahatlar Tanım Örüntünün Amacı Ne zaman Gerçekleştiririz?

Detaylı

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş.

Spring Ekosisteminde Kurumsal Yazılım Geliştirme. Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş. Ekosisteminde Kurumsal Yazılım Geliştirme Kenan Sevindik Harezmi Bilişim Çözümleri A.Ş. Hakkımızda Harezmi Bilişim Çözümleri 2011 yılında kuruldu Uzmanlık alanlarımız Kurumsal uygulama geliştirme Java

Detaylı

Veritabanı İşlemleri

Veritabanı İşlemleri Veritabanı İşlemleri Bu bölümde; Veritabanı bağlantısı Komutların Yürütülmesi ADO.NET Nesne Modeli kavramları incelenecektir. ADO.NET (ActiveX Data Objects) ADO.NET, var olan Windows API lerinden çok daha

Detaylı

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. 1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız. [10 puan] int param = 30; int result = 300; if (param > 45) result

Detaylı

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Android e Giriş. Öğr.Gör. Utku SOBUTAY Android e Giriş Öğr.Gör. Utku SOBUTAY Android İşletim Sistemi Hakkında 2 Google tarafından geliştirilmiştir. Dünyada en çok kullanılan mobil işletim sistemidir. 2018 itibariyle Dünyada Android; %78.65,

Detaylı

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

Mobil Cihazlardan Web Servis Sunumu

Mobil Cihazlardan Web Servis Sunumu Mobil Cihazlardan Web Servis Sunumu Özlem Özgöbek Ege Üniversitesi Bilgisayar Mühendisliği Bölümü 2010 İnternet erişiminin yaygınlaşması ve artık mobil cihazlar üzerinden bile yüksek hızlı veri iletişimine

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür. 1 Apache Struts Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür. Kullanıcılara MVC mimarisini benimsetmek için Java Servlet API sini kullanıyor. Model-View-Controller

Detaylı

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır.

Basit Mimari, Katmanlı Mimari ve doğrudan çalıştırma olarak üçe ayrılır. Yazılım Mimarisi 1.Yazılım Mimarisi Nedir? Yazılım mimarisi geliştirilen uygumaların maliyetlerinin azaltılmasında önemli bir yer tutar. Örneğin MVC modeli kullanarak bir uygulama geliştiriyoruz ve arayüz

Detaylı

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama BMS-302 İleri Web Programlama İş Parçacığı (Thread) ve Soket (Socket) Programlama İş Parçacıkları (Threads) Ana programa paralel çalışan işler oluşturmak için kullanılır Makine birden fazla çekirdeğe sahipse

Detaylı

Film Arşiv Sistemi. Yazılım Tasarım Belgesi

Film Arşiv Sistemi. Yazılım Tasarım Belgesi 1. Sürüm Tarihçesi Film Arşiv Sitesi Yazılım Tasarım Belgesi Sürüm Tarih Yazarlar Açıklamalar 1.0 28.12.2010 Rana ALGAN Elif BONCUK Bu belge sistemin tasarım detaylarını içerir. 2. Giriş 2.1 Amaç ve Kapsam

Detaylı

Veritabanı Tasarımı. Veritabanı Hareketleri

Veritabanı Tasarımı. Veritabanı Hareketleri Veritabanı Tasarımı Veritabanı Hareketleri Konular Veri hareketleri ile ilgili olarak COMMIT, ROLLBACK ve SAVEPOINT terimlerini tanımlamak COMMIT, ROLLBACK ve SAVEPOINT ifadelerinin üç avantajını listelemek

Detaylı

Java Programlama Giriş

Java Programlama Giriş Java Programlama Giriş 2013-2014 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Teknik Bilimler Meslek Yüksekokulu Burdur 2014 Muhammer İLKUÇAR 1 Neden Java Programlama Platformdan bağımsızdır

Detaylı

Bilgi Servisleri (IS)

Bilgi Servisleri (IS) Bilgi Servisleri (IS) GRID Kullanıcı Eğitimi Boğaziçi Üniversitesi 2007, İstanbul Emrah AKKOYUN Konu Başlığı Neden ihtiyaç duyulur? Kullanıcılar kimlerdir? Bilgi Servisi türleri MDS ve BDII LDAP Bilgi

Detaylı

BİL132 Bilgisayar Programlama II

BİL132 Bilgisayar Programlama II BİL132 Bilgisayar Programlama II 8. Olağandışı durumlar (exceptions) Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü Yüksel Tarhan Olağandışı durum Kütük bulunamadı Diskte yer kalmadı Nesne referans

Detaylı

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ Java programlama dili, Java SUN bilgisayar şirketi tarafından 1991 yılında geliştiril Program bloklar halinde yazılır ve bloklar { } ile oluşturulur. Komutlar aynı satıra

Detaylı

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi SERVİS BİLEŞENLERİ. BLM401 Dr.Refik SAMET

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi SERVİS BİLEŞENLERİ. BLM401 Dr.Refik SAMET BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi SERVİS BİLEŞENLERİ 1 GİRİŞ (1/5) Servisler arka planda görev yapan görsel olmayan Android bileşenleridir. Ekranda herhangi bir aktivite görünürken arka

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/

/*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ Ana Main Kodları /*Aşağıda ki kodları doğru şekilde anlar ve kullanırsanız java da sınıfları biraz da olsa anlamış olursunuz.*/ package javaapplication1; public class JavaApplication1 public static void

Detaylı

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

İş Parçacıkları Thread(s)

İş Parçacıkları Thread(s) İş Parçacıkları Thread(s) Bir çok geliştirici programlarını doğrusal(linear) bir şekilde oluşturmaktadır. Böyle bir durumda tek bir processin işini bitirmesi beklenmekte ve ardından bir sonraki kod parçasına

Detaylı

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Görsel Programlama DERS 12. Görsel Programlama - Ders12/ Görsel Programlama DERS 12 1 Java Ağ İşlemleri (Java Networking) Birbirleri ile ağ araçları ve kabloları ile bağlantılı bilgisayarlar bir ağ sistemi oluştururlar. İnternet, şirketlerin yerel bilgisayar

Detaylı

Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim

Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim JAVA Mimarisiyle Kurumsal Çözümler Kurumsal JAVA Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim İstanbul, Ankara, İzmir, Adana PAPATYA YAYINCILIK EĞİTİM Ekim 2012 Bilgisayar Sis. San. ve

Detaylı

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme

Veritabanı Tasarımı. Sütun Değerlerini Güncelleme ve Satırları Silme Veritabanı Tasarımı Sütun Değerlerini Güncelleme ve Satırları Silme Konular UPDATE komutunu oluşturmak ve çalıştırmak DELETE komutunu oluşturmak ve çalıştırmak Tabloda güncelleme yapmak ya da veri silmek

Detaylı

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015 KONU BAŞLIKLARI 1. Yazılım Mimarisi nedir? 2. Yazılımda Karmaşıklık 3. Üç Katmanlı Mimari nedir? 4. Üç Katmanlı Mimari

Detaylı

İnternet Programcılığı

İnternet Programcılığı 1 PHP le Ver tabanı İşlemler Yaptığımız web sitelerinin daha kullanışlı olması için veritabanı sistemleri ile bağlantı kurup ihtiyaca göre verileri okuyup yazmasını isteriz. 1.1 Veritabanı Nedir? Veritabanı

Detaylı

Kalıtım (Inheritance)

Kalıtım (Inheritance) Kalıtım (Inheritance) Kocaeli Üniversitesi Kalıtım (Inheritance) Kodların çok kez kullanımı (Software reusability) Mevcut Sınıflardan Yeni Sınıflar Oluşturma Mevcut sınıfın değişken ve fonksiyonları kullanılabilir.

Detaylı

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 4 Ders 2 Yrd. Doç. Dr. Melike Şah Direkoğlu Alındığı kaynak: Addison-Wesley s Programming Language Concepts slaytları ve Prof. Dr. Tuğrul Yılmaz ın ders notlarından

Detaylı

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1 Görsel Programlama DERS 01 Görsel Programlama - Ders01/ 1 Takdim Planı Nesneye Dayalı Programlama Kavramı Nesne, Sınıf Kavramı Java Programlama Dili Java Programlama Dili Temel Özellikleri Java Sürümleri

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Struts Framework Üst Düzey Programlama-ders08/ 1 JSP MODEL 1 ve MODEL 2 Mimarileri Bu mimariler bir web uygulaması geliştirilirken kullanılan yöntemlerdir. Bu yöntemler arasındaki

Detaylı

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış

Kepware Veritabanı Ürünleri. Teknolojiye Genel Bir Bakış Kepware Veritabanı Ürünleri Teknolojiye Genel Bir Bakış Gündem Veritabanı Client API teknolojisinin gözden geçirilmesi ODBC istemci sürücüsü- bir KEPServerEX Plug-In Haberleşme Sürücüsüdür. DataLogger-

Detaylı

Client Server Database

Client Server Database Java Server Faces Ahmet Demirelli Sabancı Üniversitesi 2007 Ajanda Model-1 Mimari Model-2 Mimari MVC Framework Java Server Faces Örnek Uygulama Model 1 Mimari 1 2 3 6 JSP (View) 5 JavaBeans (Model) 4 Client

Detaylı

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu

İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu İŞLETİM SİSTEMİ KATMANLARI (Çekirdek, kabuk ve diğer temel kavramlar) Bir işletim sisteminin yazılım tasarımında ele alınması gereken iki önemli konu bulunmaktadır; 1. Performans: İşletim sistemi, makine

Detaylı

Java EE 5 Teknolojileri Jboss Seam

Java EE 5 Teknolojileri Jboss Seam Java EE 5 Teknolojileri Jboss Seam Hakan Uygun İçerik Kurumsal Uygulama Nedir? Java Teknolojileri Web Uygulaması Java EE Bileşenleri JBoss Seam Yazılım İhtiyaçları Bireysel Kullanıcı Eğitim Eğlence İletişim

Detaylı

Ders 8 Konu Özeti ve Problemler

Ders 8 Konu Özeti ve Problemler Ders 8 Konu Özeti ve Problemler C# ve Nesne Yönelimli Programlamanın 3 Prensibi Kapsülleme (Encapsulation) Nesne yönelimli programlamanın ilk prensibi kapsülleme (encapsulation) olarak adlandırılır. Bu

Detaylı

PAZARTESİ SALI 2015-2016 Ders Programı 1. Öğretim 09.00-09.50 10.00-10.50 11.00-11.50 12.00-12.50 HRT4291 WEB TABANLI CBS GR:11 Ü.GÜMÜŞAY EZ-121 ; D1-129 HRT4291 WEB TABANLI CBS GR:22 Ü.GÜMÜŞAY EZ-121

Detaylı

TÜRKİYE ELEKTRONİK FON ALIM SATIM PLATFORMU WEB SERVİS İŞLEMLERİ

TÜRKİYE ELEKTRONİK FON ALIM SATIM PLATFORMU WEB SERVİS İŞLEMLERİ TÜRKİYE ELEKTRONİK FON ALIM SATIM PLATFORMU WEB SERVİS İŞLEMLERİ 1 GÜNDEM Genel Bilgiler Güvenlik İşlemleri Geliştirme Test Üretim Kullanılacak Öncelikli Web Servisleri TEFASWebServisOperParam.xlsx Dokümanı

Detaylı

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR

ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR ĐSTEMCĐ SUNUCU SĐSTEMLER DERSĐ FĐNAL ÇALIŞMASI SORULAR YANITLAR 4.ÜNĐTE Đyi bir DNS in içermesi gereken özellikler nelerdir? ( 5 ) Đsimlendirme imlası açık ve süphesiz olmalıdır; Bir kullanıcı bir isme

Detaylı

VPN NEDIR? NASıL KULLANıLıR?

VPN NEDIR? NASıL KULLANıLıR? VPN NEDIR? NASıL KULLANıLıR? VPN NEDIR? VPN, Virtual Private Network, yani Sanal Özel Ağ ın kısaltılmasıdır. VPN sayesinde ağlara uzaktan erişim sağlanır. VPN sanal bir ağ uzantısı oluşturduğu için ağa

Detaylı

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1 İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:

Detaylı

Veri Tabanı-I 1.Hafta

Veri Tabanı-I 1.Hafta Veri Tabanı-I 1.Hafta 2010-2011 Bahar Dönemi Mehmet Akif Ersoy Üniversitesi Meslek Yüksekokulu Burdur 2011 Muhammer İLKUÇAR 1 Veri ve Veri Tabanı Nedir? Veri Bir anlamı olan ve kaydedilebilen

Detaylı

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164 xi Ruby on Rails Nedir? 2 Rails Neden Farklıdır? 2 Başlamadan Önce Bilinmesi Gerekenler 4 İnternet Nasıl Çalışır? 4 İstemci-Web Sunucu İlişkisi 5 HTTP Protokolü 6 URL-Kaynak Konumlandırma Adresleri 7 HTTP

Detaylı

C# ile NJ Simulatöre Bağlanmak

C# ile NJ Simulatöre Bağlanmak C# ile NJ Simulatöre Bağlanmak Genel Bilgi Sysmac Studio da Değişkenlerin Oluşturulması Windows Form Oluşturulması Gerekli Dosyaların Referanslara Eklenmesi Form1.cs Dosya Yapısı Genel Bilgi Bu dökümanda

Detaylı

VERİ TABANI SİSTEMLERİ

VERİ TABANI SİSTEMLERİ VERİ TABANI SİSTEMLERİ 1- Günümüzde bilgi sistemleri Teknoloji ve bilgi. 2- Bilgi sistemlerinin Geliştirilmesi İşlevsel Gereksinimleri 1.AŞAMA Gereksinim Belirleme ve Analiz Veri Gereksinimleri Gereksinimler

Detaylı

Facade (Cephe) Tasarım Şablonu KurumsalJava.com

Facade (Cephe) Tasarım Şablonu KurumsalJava.com Facade (Cephe) Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Profesyonel yazılım sistemleri birçok komponentin birleşiminden oluşur. Yazılım esnasında bir çok

Detaylı

EGE ÜNİVERSİTESİ. Enterprise Java Beans ve Java Persistence API. Grup Üyeleri

EGE ÜNİVERSİTESİ. Enterprise Java Beans ve Java Persistence API. Grup Üyeleri EGE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ SUNUCU YAZILIM TEKNOLOJİLERİ PROJESİ Enterprise Java Beans ve Java Persistence API Grup Üyeleri İlker Semih Boztepe Osman Korcan Andaç Deniz Sezer Resul

Detaylı

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması

JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması JAVA RMI ve Hibernate teknolojileri kullanılarak çok amaçlı bir yazılım altyapısı hazırlanması Hakan ALBAĞ Tahsin Barış AKAN Bitirme Projesi 05.06.2006 Giriş Ticari yazılımlarda ortak ihtiyaçlar Birden

Detaylı

«BM364» Veritabanı Uygulamaları

«BM364» Veritabanı Uygulamaları HAFTA 8 DB içerisinde CLR Bileşenleri" Yaşar GÖZÜDELİ ygozudeli@verivizyon.com http://blog.verivizyon.com/ygozudeli «BM364» Veritabanı Uygulamaları Konu Akışı SQL Server ve.net CLR SQL Server içerisinde

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

Fatura Dinamik Kodlama İyileştirmeleri

Fatura Dinamik Kodlama İyileştirmeleri Fatura Dinamik Kodlama İyileştirmeleri Ürün Grubu Kategori Versiyon Önkoşulu [X] Redcode Enterprise [ ] Redcode Standart [ ] Entegre.NET [X] Yeni Fonksiyon 5.0 Uygulama Netsis paketlerinin tüm modüllerinin

Detaylı

Scan Station Pro 550 Adminstration & Scan Station Service Araçları

Scan Station Pro 550 Adminstration & Scan Station Service Araçları Scan Station Pro 550 Adminstration & Scan Station Service Araçları Yapılandırma Kılavuzu A-61732_tr 7J4367 Kodak Scan Station Pro 550 Administration İçindekiler Farklılıklar... 1 Yükleme... 2 İş ayarları

Detaylı

Proses. Prosesler 2. İşletim Sistemleri

Proses. Prosesler 2. İşletim Sistemleri 2 PROSESLER Proses Bir işlevi gerçeklemek üzere ardışıl bir program parçasının yürütülmesiyle ortaya çıkan işlemler dizisi Programın koşmakta olan hali Aynı programa ilişkinbirdenfazlaprosesolabilir. Görev

Detaylı

Ortak Zamanlılık ve Veri Hareketi (Data Transaction)

Ortak Zamanlılık ve Veri Hareketi (Data Transaction) Ortak Zamanlılık ve Veri Hareketi (Data Transaction) 1 Transaction (Hareket) nedir? Bazı durumlarda, birden fazla işlem bir bütünün parçasıdır. Bu işlemlerden biri bile gerçekleşmese bütün işlemler anlamsız

Detaylı

C# nedir,.net Framework nedir?

C# nedir,.net Framework nedir? 1 C# nedir,.net Framework nedir? C# nedir? C#, C/C++ ve Java dillerinde türetilmiş,bu dillerin dezavantajlarının elenip iyi yönlerinin alındığı, güçlü basit, esnek, tip-güvenli(typesafe,tür dönüşümlerindeki

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 2 hafta ÖDEV NO: 5 1- BANKA

Detaylı

İŞLETİM SİSTEMLERİ. (Operating Systems)

İŞLETİM SİSTEMLERİ. (Operating Systems) İŞLETİM SİSTEMLERİ (Operating Systems) İşletim Sistemi Tanımı, Görevleri, Bilinen İşletim Sistemleri Çok Kullanıcılı Sistemler, Bellek Yönetim Birimi Linux ve Windows Ailesi, Bilinen İşletim Sistemleri

Detaylı

NESNEYE YÖNELİK TASARIM SÜRECİ

NESNEYE YÖNELİK TASARIM SÜRECİ NESNEYE YÖNELİK TASARIM SÜRECİ GİRİŞ Nasıl? sorusuna yanıt aranır. Nesne modeli: Analizden tasarıma. Doğrudan problem alanı ile ilgili nesnelerden oluşan model, yardımcı nesnelerle zenginleştirilir. Ana

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

emon: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı Görselleştirilmesi İçin Monitör Yazılımı

emon: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı Görselleştirilmesi İçin Monitör Yazılımı emon: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı Görselleştirilmesi İçin Monitör Yazılımı 1 Berkant AKIN Mehmet GÖKÇAY, Kaan DOĞAN TUBİTAK-SAGE Ulusal Yazılım Mimarisi Konferansı Ankara, 2010 Neden

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 5 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10. Yrd.Doç.Dr.Hacer Karacan NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 10 Yrd.Doç.Dr.Hacer Karacan İçerik Grafik Kullanıcı Arayüzü Uygulamaları AWT, Swing Arayüz Yerleşim Düzeni Temel GKA Bileşenleri Olay Yönetimi Olay Dinleyiciler Olay

Detaylı

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama

İçerik. Temel Kavramlar. Nesne Nedir? 1. Nesne : Örnek. Nesne Nedir? 2. Geçen hafta: Bu hafta: BBS-515 Nesneye Yönelik Programlama İçerik Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili kavramlar Bu hafta:

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama Servlet 1 Çerez (Cookie) Cookie'ler servletlerden kullanıcının bilgisayarında istekte bulunduğu web tarayıcısına ( anahtar=kelime ) şeklinde bilgi göndermemiz için kullanılan yapılardır.

Detaylı

Kets DocPlace LOGO Entegrasyonu

Kets DocPlace LOGO Entegrasyonu Kets DocPlace LOGO Entegrasyonu Kets DocPlace Kurulumu Öncesinde Yapılması Gereken İşlemler Windows 7, Windows 8, Windows Server 2008 R2, Windows Server 2012 veya daha yeni işletim sistemlerinde Programlar

Detaylı

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1 Görsel Programlama DERS 02 Görsel Programlama - Ders02/ 1 Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Nesneye yönelik programlamanın diğer programlama paradigmalarına karşı bir avantajı kodun yeniden

Detaylı

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ TDİ111 TÜRKDİLİ 1 1. Dil, diller ve Türk dili 2. Dil bilgisi, sözcük, cümle 3. Kelime Türleri 4. Anlatımın

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem

Detaylı

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir.

İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir. İlişkisel Veritabanı Yaklaşımı: İngilizce'de Relational Database Management System (RDBMS) olarak ifade edilir. İlişkisel veri tabanı yönetim sistemi verilerin tablolarda satır ve sutunlar halinde tutulduğu

Detaylı

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat 1. Kısım Çoktan Seçmeli (48 puan) 1) Aşağıdaki JAVA kod parçası çalıştırıldığında

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

OPC Data Access (DA) Temelleri

OPC Data Access (DA) Temelleri OPC Data Access (DA) Temelleri Hazırlayan Kepware Technologies Türkçe Meal Salih GÖK Anket Data Access nedir? Data Access in getirileri OPC DA e giriş (Data Access) OPC DA Özelliklerine bakış Hızlı bir

Detaylı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı C++ Dersi: Nesne Tabanlı Programlama 2. Baskı ³ Bölüm 19: Standart Şablon Kütüphanesi (vector) İçerik 19.1 Standart Şablon Kütüphanesi (STL) 19.2 vector SınıK 19.3 vectortanımı 19.4 vector Elemanlarına

Detaylı

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();

Detaylı

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama

Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Temel Kavramlar BBS-515 Nesneye Yönelik Programlama Ders #2 (2 Kasım 2009) İçerikç Geçen hafta: Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili

Detaylı

Java String İşlemleri

Java String İşlemleri Java String İşlemleri Karakterler (Characters) "char" kelimesi bir karakter tanımlamak için kullanılır. Karakter tek tırnak içine alınmalıdır. Bir char'ın aralığı 0 ile 65536 arasındadır. Char türü işaretsiz

Detaylı

1 Temel Kavramlar. Veritabanı 1

1 Temel Kavramlar. Veritabanı 1 1 Temel Kavramlar Veritabanı 1 Veri Saklama Gerekliliği Bilgisayarların ilk bulunduğu yıllardan itibaren veri saklama tüm kurum ve kuruluşlarda kullanılmaktadır. Veri saklamada kullanılan yöntemler; Geleneksel

Detaylı

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 8. Ağ Adresi Dönüştürme (NAT-Network Address Translation)

HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 8. Ağ Adresi Dönüştürme (NAT-Network Address Translation) HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUVARI DENEY 8 Ağ Adresi Dönüştürme (NAT-Network Address Translation) Bu deneyde, Laboratuvar görünümü, Çizim 8.1 de gösterilen

Detaylı

// hataları işaret eden referans

// hataları işaret eden referans System sınıfı java.lang.object java.lang.system public final class System extends Object System sınıfı, java.lang paketi içindedir. Platformdan bağımsız olarak sistem düzeyindeki eylemleri belirleyen dingin

Detaylı

Klavyeden Basit Giriş/Çıkış İşlemleri

Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden Basit Giriş/Çıkış İşlemleri Klavyeden veri girilmesi, girilen verilere çeşitli işlemler uygulandıktan sonra ekrana yazdırılması ya da herhangi bir yazıcıdan çıktı alınması gibi işlemlerdir. Javada

Detaylı

ED Model Yapıtaşı Haberleşme Altyapısı

ED Model Yapıtaşı Haberleşme Altyapısı ED Model Yapıtaşı Haberleşme Altyapısı Aysun Sancar Yılmaz, Betül Baydemir Çankaya, Hande Doğan Köseoğlu REHİS-EHGYM, Aselsan A.Ş., Ankara {asancar,baydemir,hdogan}@aselsan.com.tr Özet. Elektronik Destek

Detaylı

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ Dersin Adı Kodu Sınıf/Y.Y. Ders Saati (T+U+L) Kredi AKTS Dağıtık Sistemler BİM-434 4/II 2+2+0 3 4,5 Dersin Dili Dersin Seviyesi

Detaylı

Chapter 6 Mimari Tasarım. Lecture 1. Chapter 6 Architectural design

Chapter 6 Mimari Tasarım. Lecture 1. Chapter 6 Architectural design Chapter 6 Mimari Tasarım Lecture 1 1 Konular Mimari Tasarım Kararları Mimari Bakış Açıları Mimari Desenler Uygulama Mimarileri 2 Yazılım Mimarisi Sistemi meydana getiren alt sistemlerin belirlenmesi için

Detaylı

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir

Detaylı

7. HAFTA. Erişim Belirleyiciler

7. HAFTA. Erişim Belirleyiciler 7. HAFTA Erişim Belirleyiciler Java dilinde 4 tür erişim belirleyicisi vardır; bunlar friendly, public, protected ve private dir. Bu erişim belirleyiciler global alanlar (statik veya değil) ve yordamlar

Detaylı

.com. Kurumsal Java. Özcan Acar 2009. com

.com. Kurumsal Java. Özcan Acar 2009. com . urumsal J Java ile Yüksek Performanslı Web Platformları Özcan Acar acar@unitedinter.net http://www.ozcanacar. http://www.kurumsalj urumsal Özcan Acar Hakkında public class OezcanAcar { public static

Detaylı

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI

BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI BIL411 - BİLGİSAYAR AĞLARI LABORATUVARI ITS-101A INTERNET EĞİTİM SİSTEMİ TCP/IP THE DOMAIN NAME SYSTEM (ALAN ADI SİSTEMİ) İstanbul Ticaret Üniversitesi Bilgisayar Mühendisliği Bölümü Araş. Gör. Can EYÜPOĞLU

Detaylı