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ı

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ı

Ö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ı

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ı

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ı

Ü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ı

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ı

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ı

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ı

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ı

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ı

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ı

Öğ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ı

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ı

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ı

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ı

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ı

Ü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ı

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ı

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ı

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ı

«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ı

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ı

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ı

İŞ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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

İ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ı

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ı

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ı

İ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ı

İşletim Sistemlerine Giriş

İşletim Sistemlerine Giriş İşletim Sistemlerine Giriş Süreçler ve İş Parçacıkları(Thread) İşletim Sistemlerine Giriş - Ders03 1 Süreç -Tüm modern bilgisayarlarda bir çok iş aynı anda yapılabilir. *kullanıcı programları çalışır *disk

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ı

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ı

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ı

// 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ı

İç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ı

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ

COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ COĞRAFİ BİLGİ SİSTEMLERİ SERVER MİMARİSİ SERVER UYGULAMA GELİŞTİRME EĞİTİMİ http://facebook.com/esriturkey https://twitter.com/esriturkiye egitim@esriturkey.com.tr Kursun Süresi: 5 Gün 30 Saat COĞRAFİ

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ı

İ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ı

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ı

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ı

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ı

İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19. Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28

İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19. Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28 ix 1 İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19 23 Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28 Kayan Nokta Tipleri 30 Sayısal Veri Tipi Dönüşümleri

Detaylı

Ağ Yönetiminin Fonksiyonel Mimarisi

Ağ Yönetiminin Fonksiyonel Mimarisi Bölüm 7 Ağ Yönetimi Ağ Yönetiminin Fonksiyonel Mimarisi a) Performans (Performance) Yönetimi b) Sistem Ayarları (Configuration) Yönetimi c) Hesap (Account) t)yönetimi i d) Hata (Fault) Yönetimi e) Güvenlik

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ı

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1

Paket Erişimleri. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Paket Erişimleri Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 4 1 Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Altuğ B. Altıntaş

Detaylı

Şekil 1 de dört adet genel kullanıma açılmış veri (D1-D4) ve bunları doğrudan ya da dolaylı olarak kullanan 7 adet yordam (P1-P7) yer almaktadır.

Şekil 1 de dört adet genel kullanıma açılmış veri (D1-D4) ve bunları doğrudan ya da dolaylı olarak kullanan 7 adet yordam (P1-P7) yer almaktadır. Neden Nesneye Yönelik (object-oriented) Programlama? Nesneye yönelik programlamanın sunduğu olanakların yeterli şekilde değerlendirilebilmesi için önce geleneksel yordamsal (procedural) programlama yaklaşımından

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ı

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

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir

Compiere Açık kodlu ERP + CRM yazılımı. Hüseyin Ergün Önsel Armağan Serkan Demir Compiere Açık kodlu ERP + CRM yazılımı Hüseyin Ergün Önsel Armağan Serkan Demir ERP Nedir? ERP = Kurumsal Kaynak Planlama Organizasyonların farklı fonksiyonlarının ve departmanlarının kullandığı enformasyonu

Detaylı

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Ders İçeriği An introduction to Object-oriented programming with Java Third Edition Update Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Nesneye Yönelik Öğr.

Detaylı

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi

Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi Model Güdümlü Geliştirme ile Gömülü Kaynakların Yönetimi Can Öz EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ A.B.D. 1 İçerik Kaynak Yönetimi Problemi Kaynak Yönetimi Modellemesinin

Detaylı

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI. Soket Programlama

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI. Soket Programlama KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI Soket Programlama 1. Giriş JAVA dili süreçler arası iletişim için TCP ve UDP olmak üzere iki farklı soket yapısı

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

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ı

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine

İŞLETİM SİSTEMLERİNE GİRİŞ - 2. Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine İŞLETİM SİSTEMLERİNE GİRİŞ - 2 Kaynakların Paylaşımı (Resource Sharing) Sistem, sistem kaynaklarını belli bir hiyerarşi içinde kullanıcının hizmetine sunar. Bir işletim sisteminde paylaşılan kaynaklar

Detaylı

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır.

Arayüz soyut metotların oluşturduğu bir koleksyondur. Bir sınıf arayüzü çalıştırırken arayüzün sahip olduğu soyut metotları da miras alır. Bölüm 20 20 Arayüzler Arayüz bir sınıf değildir. Arayüz yazmak sınf yazmaya çok benzer ancak ikisi birbirinden farklı konseptlerdir. Sınıf bir nesnenin özelliklerini ve davranışlarını belirtirken; bir

Detaylı

O P C S T A N D A R D I

O P C S T A N D A R D I O P C S T A N D A R D I ASP OTOMASYON LTD. Sadık ŞENOL İsmail YAKIN 12/08/2008 OPC Standardı İnsan gücüne dayalı üretimden otomasyona dayalı, daha kontrollü bir üretime geçiş endüstride üretim hızını ve

Detaylı

Erişim konusunda iki taraf vardır:

Erişim konusunda iki taraf vardır: Erişim Erişim konusunda iki taraf vardır: Kütüphaneyi kullanan kişiler (client) Kütüphaneyi yazan kişiler Paket (package) Paketler kütüphaneyi oluşturan elemanlardır. PaketKullanim.java Varsayılan Paket

Detaylı

JAVA API v2.0 Belge sürümü: 2.0.2

JAVA API v2.0 Belge sürümü: 2.0.2 JAVA API v2.0 Belge sürümü: 2.0.2 1. İçindekiler 1. İÇİNDEKİLER... 2 2. BU BELGENİN AMACI... 3 3. BELGE SÜRÜMLERİ... 3 4. SİSTEM GEREKSİNİMLERİ... 3 5. KULLANIM ŞEKLİ... 4 5.1. GENEL... 4 5.2. UYARILAR...

Detaylı

Dağıtık Sistemler CS5001

Dağıtık Sistemler CS5001 Dağıtık Sistemler CS5001 Th. Letschert Çeviri: Turgay Akbaş TH Mittelhessen Gießen University of Applied Sciences Dağıtık Programlar ve Uygulamalar II - - 2 Katman / 3 Adım Yaklaşımı Dağıtık Programlar

Detaylı

Spring Giriş Eğitimi

Spring Giriş Eğitimi Spring Giriş Eğitimi Bu eğitimde Spring ın hangi problemlere karşı etkili olduğundan bahsedeceğim. Ayrıca çekirdek Spring teknolojisinin nasıl işlediği; Dependency Injection - DI ve Inversion of Contol

Detaylı

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi 5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını

Detaylı

BİLGİ GÜVENLİĞİ VE BİLGİ İŞLEM PROSEDÜRÜ

BİLGİ GÜVENLİĞİ VE BİLGİ İŞLEM PROSEDÜRÜ 1.AMAÇ: Kurumun otomasyon üzerindeki tüm bilgilerinin yönetimini, korunmasını, dağıtımını ve önemli işlevlerinin korunmasını düzenleyen kuralları ve uygulamaları belirlemeyi amaçlar. 2. KAPSAM: Bu talimat,

Detaylı

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi

Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri. Mustafa Kemal Üniversitesi Algoritma Geliştirme ve Veri Yapıları 2 Veri Modelleri Veri modelleri, veriler arasında ilişkisel ve sırasal düzeni gösteren kavramsal tanımlardır. Her program en azından bir veri modeline dayanır. Uygun

Detaylı

Web Tabanlı Uygulama Geliştirme Çatıları

Web Tabanlı Uygulama Geliştirme Çatıları HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİL447 YAZILIM MÜHENDİSLİĞİ LABORATUVARI ARAŞTIRMA KONUSU TANIMI Web Tabanlı Uygulama Geliştirme Çatıları 2007, Ankara 1 HAZIRLAYANLAR Ad Soyad Numara

Detaylı

Chain of Responsibility Tasarım Şablonu KurumsalJava.com

Chain of Responsibility Tasarım Şablonu KurumsalJava.com Chain of Responsibility Tasarım Şablonu KurumsalJava.com Özcan Acar Bilgisayar Mühendisi http://www.ozcanacar.com Chain of responsibility sorumluluk zinciri anlamına gelmektedir. Sisteme gönderilen bir

Detaylı

Bölüm 10: PHP ile Veritabanı Uygulamaları

Bölüm 10: PHP ile Veritabanı Uygulamaları Bölüm 10: PHP ile Veritabanı Uygulamaları -231- Öğr.Gör. Serkan DİŞLİTAŞ 10.1. PHP PHP, platformdan bağımsız sunucu taraflı çalışan betik bir web programlama dilidir. PHP programlama dili ile MySQL, MSSQL,

Detaylı

Web Tabanlı Sistem Mimarileri Hafif S ıklet İstemci Mimarisi (HSIM) HSIM Sistem Yap ısı

Web Tabanlı Sistem Mimarileri Hafif S ıklet İstemci Mimarisi (HSIM) HSIM Sistem Yap ısı Web Tabanlı Sistem Mimarileri Web tabanlı uygulamaların yalnızca gerçekleştirimi değil, tasarımı da geleneksel 2- Katmanlı istemci-sunucu uygulamalarından farklılık göstermektedir. Özellikle web uygulamasının

Detaylı

Tasarım Desenleri ve Java Web Servisleri ile Çok Katmanlı Bir Sistem Tasarımı

Tasarım Desenleri ve Java Web Servisleri ile Çok Katmanlı Bir Sistem Tasarımı Tasarım Desenleri ve Java Web Servisleri ile Çok Katmanlı Bir Sistem Tasarımı Arda Göknil 1, Tayfun Elmas 2, N.Yasemin Topaloğlu 3 Ege Üniversitesi, Bilgisayar Mühendisliği Bölümü, 35100, Bornova, İzmir

Detaylı

DM-501 Tak-Çalıştır GPRS-UART Köprüsü

DM-501 Tak-Çalıştır GPRS-UART Köprüsü DM-501 Tak-Çalıştır GPRS-UART Köprüsü Temel Bilgiler TCP 2 nokta arası bağlantı + veri akışı sağlar Oturum açmaya dayalıdır Arka planda hata kontrolü ve paketin sağlıklı iletim kontrolü (ACK) yürütür TCP

Detaylı

1 HACETTEPE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİL447 - YAZILIM MÜHENDİSLİĞİ LABORATUVARI ARAŞTIRMA ÖDEVİ (J2EE Clustering) Hasan Gölle 20021905 h_golle@yahoo.com 2 Önsöz. 3 Temel terimler.. 3

Detaylı

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance)

İki Yöntem. Komposizyon (Composition) Kalıtım (Inheritance) İki Yöntem Komposizyon (Composition) Kalıtım (Inheritance) Komposizyon(Composition) class Meyva { } //... class Elma { } private Meyva m = new Meyva(); //... Komposizyon - UML Örnek Motor.java AileArabasi.java

Detaylı

Dış Kurum Entegrasyonları TURKPOS API. Yardım Dokümanı

Dış Kurum Entegrasyonları TURKPOS API. Yardım Dokümanı TURK ELEKTRONİK PARA A.Ş Dış Kurum Entegrasyonları TURKPOS API Yardım Dokümanı Sürüm 1.5 1 / 16 1. SÜRÜM GEÇMİŞİ Sürüm Tarih Hazırlayan Açıklama 1.0 27.05.2015 Hüseyin SARI Doküman oluşturuldu. 1.1 12.10.2015

Detaylı

Spring Framework Eğitimi

Spring Framework Eğitimi Hazırlayan: Barış Dere www.barisdere.com @BarisDere baris.dere@gmail.com Spring Framework Eğitimi Ders 3: Http://www.youtube.com/barisdere Ders içeriği Scope nedir Singleton scope Prototype scope Web scopes

Detaylı

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması Sistem Programlama Sistem programlama bilgisayar mühendisliğinin bir alanı olup karmaşık sistemlerin ve bu sistemlerin parçalarının ile ilgilenir. İşletim Sistemlerinin Programlaması Giriş/Cıkış( I/O)

Detaylı

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58;

Lab7 DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI. BTEP212 Java. Uygulama1: package javaapplication58; BTEP212 Java DOĞU AKDENİZ ÜNİVERSİTESİ BİLGİSAYAR VE TEKNOLOJİ YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI Lab7 bazen bir metodun içinde o metodun ait olduğu sınıftan yaratılacak nesneyi veya o nesnenin bir alt

Detaylı

Ek Uygulama 1: Windows 7 Güncelleme İşlemleri

Ek Uygulama 1: Windows 7 Güncelleme İşlemleri Ek Uygulama 1: Windows 7 Güncelleme İşlemleri Windows 7 Denetim Masası ndan (1) ve (2) numaralı ekranlardaki kırmızı işaretli komutları kullanarak işletim sisteminin güncelleştirme paketlerini denetleyerek

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ı

Grid Bilgi Sistemleri (Grid Information Systems)

Grid Bilgi Sistemleri (Grid Information Systems) Grid Bilgi Sistemleri (Grid Information Systems) TR-Grid Kullanıcı Eğitimi (9-10 Temmuz 2007) Hakan Bayındır Bu Sunumda Grid Bilgi Sistemleri glite Bilgi Sistemi GLUE Şeması Grid Elemanları LCG Bilgi Sistemi

Detaylı

İçerik. Temel Kavramlar. Yazılım Geliştirme Aşamaları. Problemi Anlama ve Çözümleme. Biçimsel Gösterim - 1. Nesneye Yönelik Programlama

İçerik. Temel Kavramlar. Yazılım Geliştirme Aşamaları. Problemi Anlama ve Çözümleme. Biçimsel Gösterim - 1. Nesneye Yönelik Programlama İçerik Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Temel Kavramlar Nesneye yönelik dil olarak JAVA ve ilişkili kavramlar Basit bir Java programı BS-515 Nesneye Yönelik Programlama

Detaylı

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6 ix Yazılım Nedir? 2 Yazılımın Tarihçesi 3 Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5 Yazılımın Önemi 6 Yazılımcı (Programcı) Kimdir? 8 Yazılımcı Olmak 9 Adım Adım Yazılımcılık 9 Uzman

Detaylı

Temel Kavramlar. BS-515 Nesneye Yönelik Programlama. Ders #1 (26 Ekim 2009)

Temel Kavramlar. BS-515 Nesneye Yönelik Programlama. Ders #1 (26 Ekim 2009) Temel Kavramlar BS-515 Nesneye Yönelik Programlama Dr. Ayça Tarhan Ders #1 (26 Ekim 2009) İçerikç Nesneye yönelik programlama Ne demektir, nasıl ortaya çıkmıştır? Nesneye yönelik dil olarak JAVA ve ilişkili

Detaylı

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7 BM208- Nesneye Dayalı Analiz ve Tasarım Sunum 7 Component(Bileşen) Diyagramları Sistemin fiziksel yapısını modellemede kullanılır. Bu fiziksel yapıdan kasıt gömülü kontroller, portlar, arayüzlerin yanı

Detaylı

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur.

SİSTEM VE YAZILIM. o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. SİSTEM VE YAZILIM o Bilgisayar sistemleri donanım, yazılım ve bunları işletmek üzere gerekli işlemlerden oluşur. o Yazılım, bilgisayar sistemlerinin bir bileşeni olarak ele alınmalıdır. o Yazılım yalnızca

Detaylı

Altuğ B. Altıntaş altuga@kodcu.com

Altuğ B. Altıntaş altuga@kodcu.com Java ile Etkileşimli Ağ Uygulamaları Altuğ B. Altıntaş altuga@kodcu.com Java Nedir? Java platformu, ağ(network) ın önemi hesaba katılarak ve aynı yazılımın birçokdeğişik bilgisayar ortamında veya değişik

Detaylı

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay. PROGRAMLAMAYA GİRİŞ Öğr. Gör. Ayhan KOÇ Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay., 2007 Algoritma ve Programlamaya Giriş, Ebubekir YAŞAR, Murathan Yay., 2011

Detaylı

Bilgisayar İşletim Sistemleri BLG 312

Bilgisayar İşletim Sistemleri BLG 312 Giriş Bilgisayar İşletim Sistemleri BLG 312 İplikler geleneksel işletim sistemlerinde her prosesin özel adres uzayı ve tek akış kontrolü vardır bazı durumlarda, aynı adres uzayında birden fazla akış kontrolü

Detaylı