Hacettepe Üniversitesi Bilgisayar Bilimleri ve Mühendisiliği. Araştırma Konusu MESSAGE DRIVEN BEAN SAVAŞ AYDIN

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

Download "Hacettepe Üniversitesi Bilgisayar Bilimleri ve Mühendisiliği. Araştırma Konusu MESSAGE DRIVEN BEAN SAVAŞ AYDIN 20121961"

Transkript

1 Hacettepe Üniversitesi Bilgisayar Bilimleri ve Mühendisiliği Araştırma Konusu MESSAGE DRIVEN BEAN SAVAŞ AYDIN

2 İÇ İNDEKİLER Message Driven Bean 3 JAVA Mesaj Servisi 3 Mesajlaşma Etki Alanı 3 Publis/Subscribe 3 Point to Point 4 JMS API 4 Message Driven Bean Nedir? 6 Session ve Entity Beanlerden Farkları 7 Message Driven Bean Ne Zaman Kullanılmalı 8 Message Driven Beanin Yaşam Döngüsü 8 Bir Message Driven Bean Örneği 8 JMS Mesajları 9 EJB Message Driven Bean 10 Uygulamasının Geliştirilmesi Mesaj Kuyruğunun Oluşturulması İstemcisinin Yasılması 11 3 Message Driven Beanin Yazılması 14 4 ejb jar.xml Dosyasının Yazılması 19 5 Kodun Paketlenmesi 20 Kaynakça 22

3 Message Driven Bean Message Driven Bean J2EE uygulamalarının mesajları eş zamanlı olmadan işlemesinine izin veren bir enterprise beandir. Message Driven Beanler, JMS ileti dinleyicisi olarak davranırlar. İletiler, uygulama istemcisi, diğer bir enterprise bean yada bir Web bileşeni gibi herhangi bir J2EE bileşeninden gönderilebileceği gibi J2EE teknolojisini kullanmayan JMS uygulamasından da gönderilebilir. Bu metinde ilk olarak Java Mesaj Servisinden, daha sonrada Message Driven Beanlerden bahsedilecek son olarak da Message Driven Bean kullanan örnek bir koda yer verilecektir. JAVA Mesaj Servisi Java Mesaj Servisi, MOM(Message oriented middleware) tabanlı ürünlerin geçen yıllarda karşılaştığı birçok dezavantajın önüne geçmek için tasarlanmış bir mesajlaşma standardıdır. JMS, uygulama geliştirme arayüzü(api) ve servis sağlayıcı arayüzü(spi) olmak üzere iki kesimden oluşur. Uygulama geliştirme arayüzü mesaj gönderip alan kodları yazmak için kullanılır. Servis sağlayıcı arayüzü ise JMS sağlayıcılarının(provider) eklendiği kesimdir. Bir JMS sağlayıcısı, özel bir MOM gerçekleştirimi ile nasıl iletişim kurulaçağı bilgisini içerir. Böylece, kod geliştirici JMS uygulama geliştirme arayüzünü öğrendikten sonra, yazdığı mesajlaşma kodlarını diğer MOM gerçekleştirimleriyle de sorunsuz bir şekilde kullanabilir. Mesajlaşma Etki Alanı(Messaging Domain) Mesajlaşma gerçekleştirdiğiniz zaman ilk önce bir etki alanı seçmeniz gerekir. Etki alanı türleri şunalrdır; Publis/Subscribe(pub/sub) : Publis/Subscribe televizyon izlemeye benzeyen bir yöntemdir. Birçok televizyon istasyonu sinyallerini yayınlar ve birçok insan yayınlanan bu sinyalleri takip eder. Benzer şekilde, Publis/Subscribe ile çok sayıda mesaj tüketicisi ile iletişim kuran yine çok sayıda mesaj üreticiniz olabilir. Üyeler(Subscribers) bazı konulara(topic) kayıt olurlar. Yayıncılar(Publishers), tüm üyelere dağıtılan mesajları üretirler. Üreticiler, hangi tüketicinin kendi mesajları ile ilgilendiği bilgisini kod olarak içermezler. Bunun yerine MOM sistemi üye listesini yönetir.

4 Noktadan Noktaya(Point to Point) : Noktadan noktaya zilsiz bir telefon numarasını çevirip sessli posta bırakmaya benzer bir yöntemdir. Birisi sesli postayı dinler ve daha sonra siler. Böylece, Noktadan Noktaya ile, her mesaj için sadece bir tüketici olabilir. Birden çok tüketici kuyruktan mesajları alabilir fakat bir mesaj sadece bir tüketici tarafından tüketilebilir. Bu doğrultuda, Noktadan Noktaya, Publis/Subscribe in daha özelleşmiş halidir. Birden çok üretici kuyruğa mesaj gönderebir fakat bir mesaj sadece bir tüketiciye ulaştırılır. Bu yöntemin çalışma mekanizması, üreticinin mesajları doğrudan ya tüketiciye yada merkezi bir kuyruğa göndermesidir. JMS API JMS API, RMI IIOP ye göre daha karmaşıktır. Birçok farklı arayüze tanıdık olmak gerekir. Bu arayüzlerle çalışırken karşılaşılan karmaşıklığın aksine, ağ protokolu, mesaj biçimi, yapısı ve sunucu konumu gibi altdüzey topoloji sorunları, çoğunlukla geliştiriciden soyuttur. JMS Programlama modeli aşağıdaki listede açıklanmaktadır; 1 JMS Sağlayıcısı ConnectionFactory örneğinin yerini tayin etme : İlk olarak kullandığınız MOM sisteminin JMS Sağlayıcısı(Provider)'na erişim elde etmeniz gerekir. Bunun için ConnectionFactory örneğini kullanarak bir bağlantı kurmanız gerekir. JDNI a bakarak ConnectionFactory için bir tutaç elde edebilirsiniz. Bir bilgisayar yöneticisi JMS istemcilerinin kullanması için bir ConnectionFactory oluşturur ve bunu konfigure eder. 2 JMS Bağlantısının oluşturulması : Bir JMS Bağlantısı(Connection), alt düzey ağ iletişimini yöneten, JMS sağlayıcısına aktif bir bağlantıdır. Bir bağlantı(connection) oluşturmak için ConnectionFactory kullanılır. Büyük projeler için bu bağlantılar farklı makinelere dağıtılabilir. 3 JMS Oturumunun(Session) oluşturulması : JMS Session mesaj gönderip alırken kullanılan yardımcı bir sınıftır. Mesaj üreticileri ve tüketicilerine bir fabrika gibi hizmet sunar, aynı zamanda mesajların transectionlar içine sarmalanmasını sağlarlar. Bir Session sınıfı oluşturmak için Connection sınıfı kullanılır. 4 JMS hedefinin yerini tayin etme: Bir JMS hedefi ona mesaj gönderilip, ondan mesaj alınan bir kanaldır. Doğru kanalı tayin etme televizyon izlerken doğru kanalı ayarlamaya yada istenilen cevabı almak için doğru telefona cevap vermeye benzerdir. Deployer, JMS Sağlayıcısının sağladığı araçları kullanarak hedefi kurar, böylece hedef sürekli olarak kuruludur. Kodunuz hedefi JNDI ı kullanarak arar. Bu programlarınızın hedefi çalışma zamanında tekrar tekrar kullanabilmesini sağlar.

5 5 JMS Üreticisi yada JMS Tüketicisinin yaratılması: Eğer mesaj göndermek istiyorsanız, ona mesajı geçirmek için bir JMS nesnesini çağırmanız gerekir. Bu nesne üretici(producer) olarak anılır. Mesaj almak için ise benzer şekilde bir JMS nesnesini çağırıp ondan mesajı istersiniz. Bu nesne de tüketici(consumer) olarak anılır. Session ve Destination sınıfları kullanılarak Producer ve Comsumer için referans elde edilir. 6 Mesaj Gönderme ve Alma: Eğer üretiyorsanız ilk olarak mesajı bir araya getirmeniz gereklidir. Metin, baytlar, akımlar, nesneler ve haritalar gibi birçok mesaj türü mevcuttur. Mesajınızın örneğini oluşturduktan sonra onu Producer sınıfını kullanarak gönderebilirsiniz. Diğer taraftan, eğer mesaj alıyorsanız, ilk olarak mesajı Consumer nesnesini kullanarak alırsınız daha sonra ise içinde ne olduğuna bakmak için onu açarsınız. Aşağıda verilen kod publish/subsicribe kullanarak bir konuya TextMessage yayınlayan bir istemci uygulamasına aittir. /* Client.java */ import javax.naming.*; import javax.jms.*; import javax.util.*; public class Client { public static void main(string [] args) throws Exception { //JNDI'ı başlangıç durumuna getir. Context ctx = new InitializeContext(System.getProperties()); // 1: JNDI aracılığıyla ConnectionFactory i ara TopicConnectionFactory factory = (TopicConnectionFactory) ctx.lookup("topicconnectionfactory");

6 // 2: ConnectionFactory i kullanarak JMS // bağlantısını oluştur. TopicConnection connection = factory.createtopicconnection(); // 3: Connection u kullanarak oturumu yarat TopicSession session = connection.createtopicsession( false, Session.AUTO_ACKNOWLEDGE); // 4: JNDI aracılığıyla Hedefi ara Topic topic = (Topic) ctx.lookup("testtopic"); // 5: Bir Mesaj Üreticisi yarat TopicPublisher publisher = session.createpublisher(topic); // 6: Bir metin mesaj oluştur ve onu yayınla TextMessage msg = session.createtextmessage(); msg.settext("helloworld!"); publisher.publish(msg); Message Driven Bean Nedir? Bir Message Driven Bean JMS ve tabiki diğer tip mesajları alabilen özel bir EJB bileşenidir. Message Driven Bean container tarafından bu message driven bean tarafından hizmet sunulan hedefe bir mesaj ulaşması durumunda çağrılır. Message Driven Bean kendisine mesaj gönderen herhangi istemciden bağımsızdır. İstemci message driven bean e bir bileşen arayüzü kullanarak erişemez. İstemci tarafından gönderilen mesajların message driven bean tarafından alınabilmesi için istemcinin bir mesaj sağlayıcısı(message provider) kullanması zorunludur. EJB Server Message Driven Bean Pool Client Sends / Publish JMS Destination Message Driven Bean Instances

7 Aşağıdakiler message driven bean in bazı karakteristik özellikleridir. Bir Message Driven Bean in ev arayüzü, yerel ev arayüzü, uzak arayüzü, yerel arayüzü yoktur. Message Driven bean nesne tabanlı uzak method çağrı arayüzü kullanılarak çağrılamaz. Bunun sebebi Message Driven Beanlerin mesajları işlemeleridir ve bu mesajlar çok çeşitli mesajlaşma istemcilerinden gelebilir. Message Driven Beanler, uygun mesaj sağlayıcıları ile birlikte, geçerli tüm mesajları tüketebilirler. Message Driven Beanlerin zayıfça yazılmış iş metodları vardır. Message Driven Beanler bir hedeften messajları alırlar ve bu mesajların içinde ne olduğu konusunda hiçbirşey bilmezler. Message Driven bean tarafından gerçekleştirilen(implement) listener arayüzü genellikle mesaj gelmesi durumunda EJB container ı tarafından çağrılan bir yada birden fazla method içerir. Message Driven Bean in listener methodunun yada methodlarının geri dönüş değeri olamaz. Message Driven Bean istemciye ayrıcalıklı durum(exception) göndermez. Message Driven Beanler durum bilgisi içermezler. Session ve Entity Bean'lerden Farkları Message Driven Beanlerin, oturum(session) ve varlık(entity) beanlerinden en belirgin farkı, istemcinin message driven beanin methodlarına bir arayüz kullanarak erişememesidir. Oturum ve varlık beanlerinin aksine, message driven bean sadece tek bir bean sınıfına sahiptir. Birçok açıdan, message driven bean durumsuz(stateless) oturum beanine benzerdir; Bir message driven bean örneği, bir istemciye ilişkin herhangi bir veri yada konuşmaya ilişkin durum bilgisi içermez. Tüm message driven bean örnekleri eşittir. Böylece EJB konteyneri bir messajı herhangi bir message driven bean örneğine atıyabilir. EJB konteyneri bu message driven bean nesnelerini bir havuzda tutar ve böylece mesajlara ard arda işleyebilir. Tek bir message driven bean birden çok istemciden gelen mesajları işleyebilir. İstemcilerden gelen istemleri karşılayabilmek için message driven bean örneğinin örnek değişkenleri JMS API bağlantısı, açık veritabanı bağlantısı yada diğer bir enterprise bean e nesne referansı gibi bazı durum bilgileri içerebilirler. Mesaj gelmesi durumunda, konteyner mesajı işleyebilmek için message driven bean in onmessage methodunu çağırır. onmessage methodu mesajın tipini var olan beş JMS mesaj tipinden birine çevirir ve uygulamanın iş mantığıyla uyumlu bir şekilde ele alır. onmessage methodu başka yarımcı methodları çağırabilir yada mesajın içindeki bilgiyi işlemek yada veritabanında saklamak için bir varlık yada oturum bean ini çağırabilir. Message Driven Bean'ler Ne Zaman Kullanılmalı? Varlık ve oturum beanleri JMS mesajlarının zaman uyumlu olarak gönderilip alınmasına izin verir fakat zaman uyumsuz olarak yapılmasına izin vermez. Sunucu kaynaklarını boş yere bağlamak yerine, mesajların zaman uyumlu olarak alınmasını sunucu taraflı bileşenlerde kulanılmamasını tercih edebilirsiniz. Messajları zaman uyumsuz almak için message driven beanler kullanılır.

8 Message Driven Bean'in Yaşam Döngüsü EJB konteyeri genellikle message driven bean örneklerinin bir havuzunu oluşturur. Her örnek için, EJB konteyner bean i örnekler ve aşağıdaki görevleri gerçekleştirir. Bağlam(context) nesnesini örneğe geçirmek için setmessagedrivencontext methodunu çağırır. Örneğin ejbcreate methodunu çağırır. Aşağıdaki şekil bir message driven bean in yaşam döngüsündeki evrelerini özetler. Durumsuz oturum(stateless session) bean i gibi message driven bean hiçbir zaman pasifleştirilmez ve mevcut değil, mesaj almaya hazır evrelerinden oluşmak üzere toplam iki tane evresi vardır. Yaşam döngüsünün sonunda konteyner ejbremove metodunu çağırır ve bundan sonra bu nesne çöp toplama işlemi(garbage collection) için hazırdır. Message Driven Bean Örneği Aşağıda kodu verilen uygulama Message Driven Bean leri destekleyen tüm EJB sunucularında çalıştırılabilir. Fakat bu makalede kodun, JBoss uygulama sunucusu üzerinde nasıl çalıştırıldığı anlatılmaktadır. Kodu denemek için gerekli olan yazılımlar aşağıda verildiği gibidir. JBoss Jboss IDE RC1 Eclipse gibidir; Bu makalede gerçekleştirilecek olan sistem bir kuyruklama sistemidir. Sistemin parçaları aşağıdaki JMS Sunucusu: Uygulama için gerekli olan kuyruğunu tutar. JBoss uygulama sunucusunun dahili JMS desteği bulunduğu için için ayrı bir JMS sunucusuna gereksinim duyulmamıştır. Fakat JMS sunucusu içermeyen bir EJB conteynerı ile uygulamayı test etmek için, varolan JMS sunucularından birini kullanmak gerekmektedir.

9 JMS Kuyruğu: İstemciden gelen iletileri tutan kuyruktur. Kuyruktaki mesajlar bize gönderilecek mail ile ilgili isim değer çitlerini saklamamıza izin veren MapMessage türündedir. Mesaj İstemcisi: JMS mesajlarını yaratıp, JMS kuyruğuna koyan istemcidir. Bu mesajlar gönderilecek olan ile ilgili bilgileri tutarlar. Message Driven Bean: JMS kuyruğundan MapMessage türündeki mesajları alıp, mail gönderme işlemini gerçekleştiren message driven beandir. Geliştirilen uygulamasında noktadan noktaya etki alanı kullanılmıştır. , JMS kuyruğuna geldikten sonra sadece bir alıcı olmalıdır. Birden fazla alıcı olması durumunda birden fazla kez gönderilebilir. JMS Mesajları İstemcinin kuyruğa gönderdiği nesenler bir JMS Message sınıfı nesnesidir. Bu mesaj başlığını ve içeriğini barındıran genel bir türdür. JMS Message türünün çeşitli alt türü vardır. Örnek olarak, TextMessage: Bu tür mesajlar bir karakter dizisi tutar. Bu tür iletiler settext('foo') ve gettext() metodları yardımıyla yönetilebilir. ObjectMessage: Bu tür mesajlar bir 'Serializable' nesne saklarlar. Bu tür iletiler SetObject(Object o) ve getobject() metodları aracılığıyla yönetilebilir. MapMessage: Bu tür mesajlar isim/değer çiftlerini tutarlar. Bu tür iletiler setstring(key, value) ve getstring(key) metodları aracılığıyla yönetilebilir. BytesMessage: Bu tür mesajlar bir bayt akımıdır(stream). Varolan mesaj türlerini sarmak için kullanılabilirler. StreamMessage: Basit türlerin bir akımı(stream) ile çalışmaya izin verir. Örnek uygulamada MapMessage kullanılmaktadır. Bunun sebebi, başlık bilgisini ve içeriğini birlikte saklayabilecek tek mesaj türü olmasıdır.

10 EJB 2.0 Message Driven Bean JMS'nin temellerinden bahsettikten sonra, artık EJB 2.0 ile gelen yeni bileşen tür olan message driven bean den bahsedebiliriz. Geliştirdiğimiz uygulamada ileti kuyruğuna mesaj gönderen bir gönderici(sender) ve kuyruktan iletileri alıp, içindeki bilgileri kullanarak gönderen bir alıcı(receiver) yer almaktadır. Bu alıcı kuyruğunu( queue) başlatıp, bu kuyruğa uye olan ve daha sonra gelen mesajlarla ilgilenen bir program olabilir. Her gereksinim duyulduğunda bu alıcıyı yeniden yazmak yerine geliştiriciye sadece iş mantığına odaklanmaya izin veren bir bileşen mimarisine sahip olmak tercih edilir. Bu message driven bean lerin geliştirilme sebebidir. Message Driven Bean geliştirirken iletinin nereden alınıcağını(kuyruk yada başlık topic) düşünmeye gerek duyulmadan, mesaj gelmesi durumunda çağrılıcak olan onmessage() metodu gerçekleştirilir. Uygulamanın gereksinim duyduğu çoğu bilgi 'deployment descriptor' larda yer almaktadır. Bu da geliştrilen bileşenlerin yeniden kullanılabilirliğini artırmaktadır. Uygulamasının Gerçekleştirimi JMS ve Message Driven Bean lerden bahsettikten sonra artık uygulamanın gerçekleştirimine geçebiliriz. Uygulamanın gerçekleştirimi aşağıda sırası ile verilmektedir. 1. JMS sunucusunda ' Queue' adında bir mesaj kuyruğunun oluşturulması. 2. Kuyruğa java mesajları göndermekten sorumlu istemcisinin yazılması. 3. Kuyruktan mesajları tüketen ve mesajların içindeki bilgiyi kullanarak gönderen message driven bean sınıfının yazılması. 4. Message Driven bean için 'deployment descriptor' ların yazılması. 5. Kodun paketlenmesi Oluşturulucak java sınıfları şunlardır; com.customware.client. client: Kuyruğa mesaj gönderen istemci. com.customware.ejb. mdbean: İstemciden gelen mesajları tüketen ve Helper ı kullanarak mail gönderen message driven bean com.customware.util. helper: JavaMail kullanarak gönderen sendmail(map mail) statik metodunu içeren yardımcı sınıf. 1. Mesaj Kuyruğunun Oluşturulması: Bu adım kullanılan mesajlaşma sunucusuna göre değişiklik göstermektedir. Kuyruk için seçilen isim istemci ve message driven bean 'deployment descriptor' ı tarafından kullanılmaktadır. Örnek uygulamada bu kuyruğun ismi ' Queue' dir. Kuyruk ismi jboss uygulama sunucusu için jboss.xml dosyası içinde aşağıdaki gibi belirtiktedir. <jboss> <enterprise beans> <message driven> <ejb name> md</ejb name> <! Message driven bean için jms hedef isminin belirtilmesi > <destination jndi name> queue</destination jndi name> </message driven> </enterprise beans> </jboss>

11 Daha öncede belirtildiği gibi seçilen etki alanına göre(noktadan noktaya yada pub/sub) message driven bean ler jms hedefi olarak kuyruk(queue) yada konu(topic) kullanmaktadır. Message Driven bean in erişim yapacağı jms hedefinin türü aşağıdaki ejb jar.xml dosyası içinde belirtilmektedir. <ejb jar > <enterprise beans> <! Kuyruğa erişim yapan bir message driven bean için > <message driven >... <message driven destination> <destination type>javax.jms.queue</destination type> </message driven destination>... </message driven> <! Konuya erişim yapan bir message driven bean için > <message driven >... <message driven destination> <destination type>javax.jms.topic</destination type> </message driven destination>... </message driven> </enterprise beans> </ejb jar> 2. İstemcisinin Yazılması ( Client.java): Client kullanıcıdan gönderilecek ile ilgili bilgileri alır. Client sınıfının main() metodu komut satırından argumanları alır, bu argumanları kullanarak bir Hashtable oluşturur ve sendmail(map m) metodunu çağırır. sendmail metodu bu bilgiyi kullanarak bir MapMessage oluşturur ve mesajı sender.send(message) metodunu kullanarak kuyruğuna( queue) gönderir. Kodun ağırlıklı kısmı yapıcı(constructor) metodda geçmektedir. Bu kesim JMS ile ilgili işlerin yapıldığı kesimdir. Yapıcı metod aşağıdaki işleri gerçekleştirir. 1. getinitialcontext() yardımcı metodunu çağırarak, JNDI servisine bağlanır. 2. Kuyruk için bir ConnectionFactory arar. [(QueueConnectionFactory)ctx.lookup(CONNECTION_FACTORY)] 3. JMS sunucusuna bir kuyruk bağlantısı yaratır. [confactory.createqueueconnection()] 4. Bir JMS oturumu(session) yaratır. [connection.createqueuesession(false,session.auto_acknowledge)] 5. Mesaj göndermek için kullanıcağı kuyruğu arar. [(Queue)ctx.lookup(QUEUE_NAME)] 6. Son olarak daha önce oluşturduğu oturumu(session) kullanarak, kuyruğa mesaj göndermek için gerekli olan göndericiyi(sender) oluşturur. [session.createsender(chatqueue)]

12 Aşağıda Client sınıfının kodlarına yer verilmektedir. /* Client.java */ package com.customware.client; import java.rmi.*; import java.util.map; import java.util.set; import java.util.hashtable; import java.util.properties; import java.util.iterator; import javax.jms.*; import javax.naming.*; /** * Client is responsible for sending an mapmessage to the queue */ public class Client { private static String QUEUE_NAME = "queue/ queue"; private static String CONNECTION_FACTORY = "UIL2ConnectionFactory"; private static String PROVIDER_URL = "localhost"; private QueueSender sender; private QueueSession session; /** * Constructor: Setup JMS for publishing */ public Client() { try { Context ctx = getinitialcontext(); // Lookup a JMS connection factory QueueConnectionFactory confactory = (QueueConnectionFactory) ctx.lookup(connection_factory); // Create a JMS connection QueueConnection connection = confactory.createqueueconnection(); // Create a JMS session object session = connection.createqueuesession(false, Session.AUTO_ACKNOWLEDGE); // Lookup a JMS queue Queue chatqueue = (Queue) ctx.lookup(queue_name); // Create a JMS sender sender = session.createsender(chatqueue); catch(exception e) { e.printstacktrace();

13 /** * Method: sendmail(map mail) */ public void sendmail(map mail) throws Exception { MapMessage message = session.createmapmessage(); Set keys = mail.keyset(); Iterator i = keys.iterator(); while (i.hasnext()) { String key = (String) i.next(); String val = (String) mail.get(key); message.setstring(key, val); // send the mapmessage to the Queue sender.send(message); /** * Method: getinitialcontext() * * Login to JNDI * Context The initial context */ private Context getinitialcontext() throws NamingException { Properties env = new Properties(); env.put("java.naming.factory.initial","org.jnp.interfaces.namingcontextfactory"); env.put("java.naming.provider.url", PROVIDER_URL); env.put("java.naming.security.principal", "system"); //env.put("java.naming.security.credentials", "weblogic"); return new InitialContext(env); /** * Static Method: java com.customware.client. client to_addr [from_addr] [subject] [body] */ public static void main(string args[]) throws Exception { if (args.length == 0) { System.out.println("Usage: java com.customware.client. client to_addr [from_addr] [subject] [body]"); System.exit( 1); System.out.println("\nBeginning Client\n"); Client client = new Client();

14 Hashtable mail = new Hashtable(); mail.put("to", args[0]); if (args.length > 1) mail.put("from", args[1]); if (args.length > 2) mail.put("subject", args[2]); if (args.length > 3) mail.put("body", args[3]); System.out.println("Sending mail message"); client.sendmail(mail); 3. Message Driven Beanin Yazılması Oturum yada varlık beani geliştrilirken, programcının bir uzak arayüz(remote interface), bir ev arayüzü(home interface) ve bir bean sınıfı(varlık beanleri için seçime tercihe bağlı olarak birde birincil anahtar sınıfı) oluşturmak gereklidir. Message driven beanler için ise istemci bean e bir arayüz kullanarak erişmediği için sadece tek bir bean sınıfı oluşturmak yeterlidir. Bir message driven bean iki tane arayüzü gerçekleştrimek(implement) zorundadır: MessageListener(javax.jms.MessageListener):Bu onmessage(message msg) metodunu sağlayan jms arayüzüdür. Kuyruğa bir mesaj geldiği zaman conteyner tarafından message driven bean in onmessage metodu çağırılır ve tüketilicek mesaj yine konteyner tarafından parametre olarak bu metoda geçirilir. MessageDrivenBean(javax.ejb.MessageDrivenBean): Bu arayüz message driven bean in yaşam döngüsü için gerekli olan metodları içerir. ejbcreate : EJB yaratıldığında conteyner bu metodu çağırır. ejbremove: EJB yok edildiğinde conteyner ejbremove metodunu çağırır. setmessagedrivencontext(messagedrivencontext ctx): bağlam(context) EJB ye nesne örneklendikten (instantiate) sonra ve ejbcreate metodu çağırılmadan önce geçirilir. Bağlam conteyner tarafından güncel tutulan ve haraketleri(transection) sorgulamaya izin veren bilgileri içerir. Aşağıda verilen MDBean.java koduna bakıldığında işin gerçekleştirği kesimin onmessage metod olduğu görülebilir. Bu metod mesajların tüketilme işleminin gerçekleştiği yerdir. İlk olarak parametre olarak gelen Message nesnesi MapMessage nesnesine dönüştürülür. Daha sonra bu nesneinin içindeki isim/değer çiftleri gezilerek bu bilgiler standart bir Hashtable nesnesine aktarılır. Aşağıdaki metodlar harita(map) mesajdan nasıl bilgi alındığını örneklemektedir. //Harita(Map) mesajdan isimleri al. Enumeration mapnames = mapmessage.getmapnames(); //anahtarı kullanarak harita mesajdan karakter dizisini al String val = mapmessage.getstring(key); Son olarak Helper sınıfının bizim için mail gönderme işlemini gerçekleştiren sendmail metodu çağırılır. Client ile MDBean sınıfları kıyaslandığında MDBean karmaşık JMS kodları içermediği için daha anlaşılır olduğu görülür. Bunun nedeni MDBean sınıfının mesajı alıcağı yerle ilgili bilgileri konfigurasyon dosyalarından almasıdır. Ayrıca bu işlem için JMS komutları yazmak gerekmemektedir. Conteyner tarafından gelen ilgili mesajlar EJB nin onmessage metoduna parametre olarak geçirilmektedir.

15 /* MDBean.java */ package com.customware.ejb; import java.util.enumeration; import java.util.hashtable; import javax.ejb.createexception; import javax.ejb.ejbexception; import javax.ejb.messagedrivenbean; import javax.ejb.messagedrivencontext; import javax.jms.mapmessage; import javax.jms.message; import javax.jms.messagelistener; import com.customware.util.*; /** name=" md" * display name=" mdbean" * description="bean to access messages" * destination type="javax.jms.queue" * acknowledge mode="auto acknowledge" * jndi name name=" queue" */ public class MDBean implements MessageDrivenBean, MessageListener { private MessageDrivenContext context; public MDBean() { super(); public void setmessagedrivencontext(messagedrivencontext context) throws EJBException { System.out.println("setMessageDrivenContext called"); this.context = context; public void ejbcreate() { System.out.println(" MDB: ejbcreate called"); public void ejbremove() throws EJBException { System.out.println(" MDB: ejbremove called");

16 // // Method from MessageListener interface // /** * Take in a MapMessage and use the Helper to send out an message */ public void onmessage(message message) { System.out.println(" MDB: onmessage called"); MapMessage mapmessage = (MapMessage) message; try { // Go through the map message and create a map for sendmail(map) Enumeration e = mapmessage.getmapnames(); Hashtable mail = new Hashtable(); while (e.hasmoreelements()) { String key = (String) e.nextelement(); String val = mapmessage.getstring(key); mail.put(key, val); System.out.println("Sending Helper.sendmail(mail)"); Helper.sendmail(mail); catch(exception e) { e.printstacktrace(); /* Helper.java */ package com.customware.util; import java.util.*; import javax.mail.*; import javax.mail.internet.*; /** * Class Helper * * An helper: * * Hashtable mail = new Hashtable(); * mail.put("from", "dion@almaer.com"); * mail.put("to", "dion@almaer.com"); * mail.put("subject", "a subject"); * mail.put("body", "the body"); * * Helper.sendmail(mail); * * Currently only supports one in to address */

17 public class Helper { private static boolean DEBUG = true; private static Hashtable DEFAULT_SETTINGS = new Hashtable(); static { DEFAULT_SETTINGS.put("mail.transport.protocol", "smtp"); DEFAULT_SETTINGS.put("mail.smtp.host", "mail.almaer.com"); DEFAULT_SETTINGS.put("from", "dion@almaer.com"); DEFAULT_SETTINGS.put("body", "no body"); DEFAULT_SETTINGS.put("subject", "no subject"); /* Only static methods here chaps */ private Helper() { /** * Static Method: sendmail(map mail) * mail A map of the settings */ public static void sendmail(map mail) throws Exception { Properties props = new Properties(); props.put( "mail.transport.protocol", Helper.returnDefault(mail, "mail.transport.protocol") ); props.put( "mail.smtp.host", Helper.returnDefault(mail, "mail.smtp.host") ); Session session = Session.getDefaultInstance(props, null); /* DEBUG: */ if (DEBUG) { session.setdebug(true); Properties p = session.getproperties(); Enumeration e = p.propertynames(); while (e.hasmoreelements()) { String key = (String) e.nextelement(); System.out.println("Key: " + key); System.out.println("Value: " + p.getproperty( key )); // Construct a MimeMessage Message msg = new MimeMessage(session); msg.setfrom(new InternetAddress( Helper.returnDefault(mail,"from") ) ); msg.setrecipients(message.recipienttype.to, InternetAddress.parse( Helper.returnDefault(mail,"to"), false)); // set a CC: or BCC: String cc = (String) mail.get("cc"); String bcc = (String) mail.get("bcc"); if (cc!= null && (!cc.trim().equals(""))) msg.setrecipients(message.recipienttype.cc, InternetAddress.parse(cc, false));

18 if (bcc!= null && (!bcc.trim().equals(""))) msg.setrecipients(message.recipienttype.bcc, InternetAddress.parse(bcc, false)); msg.setsubject( helper.returndefault(mail,"subject")); msg.setsentdate(new Date()); msg.settext( helper.returndefault(mail,"body")); // Send the message. Transport.send(msg); /** * Static Method: returndefault(map, key) * map Map value String default String * the value, or the default value if the value is null */ public static String returndefault(map map, String key) { String value = (String) map.get(key); String realvalue = (String) ( (value == null)? DEFAULT_SETTINGS.get(key) : value ); return realvalue; /** * Static Method: Command Line: java com.customware.util. helper to_addr from_addr subject body * args String [] */ public static void main(string args[]) throws Exception { if (args.length == 0) { System.out.println("Usage: Helper to_addr [from_addr] [subject] [body]"); System.exit( 1); Hashtable mail = new Hashtable(); mail.put("to", args[0]); if (args.length > 1) mail.put("from", args[1]); if (args.length > 2) mail.put("subject", args[2]); if (args.length > 3) mail.put("body", args[3]); Helper.sendmail(mail);

19 4. 'ejb jar.xml' Dosyasının Yazılması: Deployment sırasında conteynere message driven bean hakkında bilgi vermek gerekmektedir. MDB kurulumunu gerçekleştirmek için standart EJB 'deployment descriptor' ları kullanılır. Bu nedenle xml dosyalarının yerleştirileceği bir META INF klasörü gereklidir. alır. ejb jar.xml dosyasının içinde message driven beanin tam sınıf ismi, beanin hedef tipi ve güvenlik bilgileri yer <ejb jar > <enterprise beans> <message driven > <description><![cdata[bean to access messages]]></description> <display name> mdbean</display name> <ejb name> md</ejb name> <ejb class>com.customware.ejb. mdbean</ejb class> <transaction type>container</transaction type> <acknowledge mode>auto acknowledge</acknowledge mode> <message driven destination> <destination type>javax.jms.queue</destination type> </message driven destination> </message driven> </enterprise beans> </ejb jar> Yukarıdaki xml dosyası dikkatele incelendiğinde JMS kuyruk isminin bu dosyada yer almadığı görülür. Bu isim sağlayıcı(vendor) bağımlı bir dosyada yer almaktadır. Bu örnek için kullanılan uygulama sunucusu jboss olduğu için, kuyruk ismi bilgisi(jms hedef ismi) jboss.xml dosyası içinde yer alır. <jboss> <enterprise beans> <message driven> <ejb name> md</ejb name> <destination jndi name> queue</destination jndi name> </message driven> </enterprise beans> </jboss> Yukarıda verilen xml dosyaları JBoss IDE kullanılarak oluşturulmuştur. Fakat bunun nasıl yapıldığına bu makalede ayrıntılı bir şekilde yer verilmemektedir. Bu konuda bilgi edinmek için aşağıdaki kaynağa başvurabilrsiniz. Genel olarak yapılması gereken işler aşağıdaki kodun paketlenmesi kesiminde anlatılmaktadır.

20 5. Kodun Paketlenmesi: Yeni bir JBoss IDE J2EE 1.4 projesi oluşturduktan sonra yukarıda verilen kodları projeye ekleyin. Daha sonra eclipse de Project Explorer menüsünden projeyi seçtikten sonra sağ tıklayın ve Properties i seçin. Açılan pencerede XDoclet Configuration seçeneğini seçtikten sonra sağ taraftaki Add butonuna tıklayarak EJB adında yeni bir XDoclet konfigurasyonu oluşturun. Daha sonra sol alt alandaki boşluğa sağ tıklayarak Add Doclet seçeneğini seçin ve açılan pencerede ejbdoclet seçeneğini seçin. Oluşturduğumuz yeni doclete sağ tıklayarak bir deploymentdescriptor(bu ejb jar.xml dosyasını yaratır) ve bir jboss(jboss.xml) alt özelliği ekleyin. Tamam tuşu yardımıyla bu pencerede yapılan değişiklikleri kaydedin ve yine projeye sağ tıklayarak Run XDoclet seçeneğini seçin. Bu adımdan sonra src/meta INF klasörü içinde ejb jar.xml ve jboss.xml dosyaları yukarıda verildiği gibi oluşur. META INF klasörüne sağ tıklayın ve New >Other >JBoss IDE >Descriptors >EAR 1.3 Deployment Desctiptor seçeneğini seçin. Yeni oluştrurulacak xml dosyasının isminin application.xml olduğunu kontrol ettikten sonra finish butonu yardımıyla bu işlemi tamamlayın. Oluşturulan application.xml dosyasında aşağıdaki değişiklikleri yaptıktan sonra Projenin görünümü yan taraftaki gibi olmalıdır. <! application.xml > <?xml version="1.0" encoding="utf 8"?> <!DOCTYPE application PUBLIC " //Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" " <application> <display name> mdb</display name> <module> <ejb> ejb.jar</ejb> </module> </application> Bu adımdan sonra ear dosyasının oluşturulmasına geçilebilir. Project Explorer dan projeye sağ tıkladıktan sonra Properties seçeneğini seçin ve açılan pencerede Packaging Configurations seçeneğini seçin. Burda aşağıda gösterilen değişiklikleri yapın ve tamam butonu yardımıyla değişiklikleri kaydedin. Projeye sağ tıkladıktan sonra Run Packaging seçeneğini seçin. Bu işlemden sonra App.ear ve EJB.jar dosyaları oluşur. App.ear dosyasına sağtıklayın ve Deployment >Deploy To seçeneğini seçin. Böylece oluşturulan uygulamanın jboss uygulama sunucusuna deployment işlemi gerçekleşmiş olur. Bu adımdan sonra message driven bean istemciden gelen mesajları işleyerek göndermeye hazırdır.

21

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü:

Bölüm 24. Java Ağ Uygulamaları 24.1 Java Appletleri. Bir Applet in Yaşam Döngüsü: Bölüm 24 Java Ağ Uygulamaları 24.1 Java Appletleri Applet, Web tarayıcısında çalışan bir Java programıdır. Bir applet, Java uygulaması için tamamen fonskiyonel olabilir çünkü bütün Java API ye sahiptir.

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ı

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

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

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ı

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ı

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ı

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

Java ile Nesneye Yönelik Programlama (Object Oriented Programming)

Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Java ile Nesneye Yönelik Programlama (Object Oriented Programming) Giriş Yrd. Doç. Dr. Aybars UĞUR Örnek 1 Bir Yolcu sınıfı, yolcu1 nesnesi oluşturulması ve kullanılması class Yolcu String ad; String soyad;

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ı

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ı

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ı

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form

İlgili Konular: Object.equals(java.lang.Object), Object.hashCode(), rehash(), Collection, Map, HashMap, TreeMap, Serialized Form Class Hashtable java.util Class Hashtable java.lang.object java.util.dictionary java.util.hashtable Kılgıladığı Arayüzler: Serializable, Cloneable, Map Altsınıfları: Properties, UIDefaults

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ı

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ı

NicProxy Registrar AWBS Modül Kurulumu Versiyon 1.0

NicProxy Registrar AWBS Modül Kurulumu Versiyon 1.0 NicProxy Registrar AWBS Modül Kurulumu Versiyon 1.0 Tescil Bilgisi 2009 NicProxy. Tüm Hakları Saklıdır. Bu belge, NicProxy mülkiyetinde ve NicProxy e ait özel bilgiler içermektedir. NicProxy yetkili temsilcisinin

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ı

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ı

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ı

Spring Framework Eğitimi

Spring Framework Eğitimi Hazırlayan: Barış Dere @BarisDere baris.dere@gmail.com Spring Framework Eğitimi Ders 2: Http://www.youtube.com/barisdere Ders içeriği Spring IoC container tanıtımı Spring IoC container çalışma şekli Metadata

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

C# ile e-posta Göndermek

C# ile e-posta Göndermek Kemal Demir http://kemal.csharpturk.net kemal@csharpturk.net C# ile e-posta Göndermek 25.12.2006 Web sitemizin üyelerine ya da adreslerini bir yerde biriktirdiğimiz arkadaşlarımıza toplu olarak eposta

Detaylı

PAKET TRANSFER SİSTEMİ

PAKET TRANSFER SİSTEMİ İLAÇ TAKİP SİSTEMİ ŞUBE MÜDÜRLÜĞÜ PAKET TRANSFER SİSTEMİ Kullanıcı Dökümanı Version 1.0 1 1. Revizyonlar... 1 2. Giriş... 1 2.1 Kapsam... 1 2.2 Hedef Kitle... 1 3. Gereksinimler... 1 3.1 Yazılım Gereksinimleri...

Detaylı

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI

ECLIPSE PROGRAMININ ÇALIŞTIRILMASI ECLIPSE PROGRAMININ ÇALIŞTIRILMASI 1 Eclipse programının çalışır hale getirilebilmesi için JDK nın kurulumunun tamamlanmış olması gerekmektedir. Eclipse programı dosyasını indiremediyseniz dersin internet

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ı

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ı

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

Data Structures Lab 1 2012-Güz

Data Structures Lab 1 2012-Güz Data Structures Lab 1 2012-Güz C# Ortamı Tanıtımı ve Uygulama Geliştirilmesi Visual Studio 2010 Ortamının Temini -NYG'ndan MSDN üyeliği için başvuru dilekçesi alınıp doldurulmalı ve yine NYG'ye teslim

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ı

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI)

MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI) MAT214 BİLGİSAYAR PROGRAMLAMA II DERSİ Ders 12: Grafik Kullanıcı Arayüzü (Graphical User Interface-GUI) Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web

Detaylı

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V>

Kılgıladığı arayüzler: Serializable, Cloneable, Map<K,V>, NavigableMap<K,V>, SortedMap<K,V> Class TreeMap java.util Class TreeMap java.lang.object java.util.abstractmap java.util.treemap Parametre tipleri: - the type of keys maintained by this map V - the type of mapped values ılgıladığı

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ı

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler:

Class LinkedHashMap. Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap. Kılgıladığı arayüzler: Class LinkedHashMap java.util Class LinkedHashMap java.lang.object java.util.abstractmap java.util.hashmap java.util.linkedhashmap Kılgıladığı arayüzler: Cloneable, Map, Serializable Bildirimi: public

Detaylı

Basit bir web uygulaması

Basit bir web uygulaması AJAX Ahmet Demirelli ahmetdemirelli@sabanciuniv.edu SCJP 5.0, SCWCD 1.4 Sabancı Üniversitesi Bilişim Teknolojileri Yüksek Lisans Programı 3/20/2007 Sabanci University 1 Ajanda Neden AJAX ihtiyacı AJAX

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ı

PAKET TRANSFER SİSTEMİ

PAKET TRANSFER SİSTEMİ İLAÇ TAKİP SİSTEMİ ŞUBE MÜDÜRLÜĞÜ PAKET TRANSFER SİSTEMİ Kullanıcı Dökümanı Version 1.1 1 1. Revizyonlar... 1 2. Giriş... 1 2.1 Kapsam...1 2.2 Hedef Kitle...1 3. Gereksinimler... 1 3.1 Yazılım Gereksinimleri...1

Detaylı

Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır.

Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır. Bölüm 24 Java Ağ Uygulamaları 24.1 Java Soket Programlama Soket, bir sunucu programı ve bir veya birden çok istemci programı arasında çift yönlü iletişim kuran bir yazılım uç noktasıdır. Sunucu programı

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ı

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ı

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 Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

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ı

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ı

MCR02-AE Ethernet Temassız Kart Okuyucu

MCR02-AE Ethernet Temassız Kart Okuyucu MCR02-AE Ethernet Temassız Kart Okuyucu Teknik Özellikleri Ethernet 10BaseT Dahili TCP/IP Stack TCP/IP Client-Server Bağlantı Özelliği Dahili DNS İstemcisi DHCP veya Statik IP ile çalışabilme UDP, TCP,ARP,ICMP(ping)

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ı

JBoss Seam Next Generation Integration Framework

JBoss Seam Next Generation Integration Framework JBoss Seam Next Generation Integration Framework Melih Sakarya www.melihsakarya.com melih.sakarya@gmail.com www.mergecons.com Seam Framework JSF JPA Hibernate EJB 3.0 Ajax RichFaces A4J Drools itext PDF

Detaylı

WWW.OZTEKHABERLESME.COM

WWW.OZTEKHABERLESME.COM ÖZTEK HABERLEŞME APİ DÖKÜMANI WWW.OZTEKHABERLESME.COM VER:6.1.0 ~ 1 ~ İÇİNDEKİLER BİLMENİZ GEREKENLER... 3 HTTP POST (XML) YÖNTEMİ... 4 TANIMLAR... 4 ÖRNEK XML YAPISI... 4 PHP ÖRNEK KOD... 5 Örnek Sayfayı

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

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 İstemci-Sunucu Uygulamaları: Aktive Monitörler Pasif monitörden(paylaşılan durum) aktif

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ı

PAKET TRANSFER SİSTEMİ

PAKET TRANSFER SİSTEMİ İLAÇ TAKİP SİSTEMİ ŞUBE MÜDÜRLÜĞÜ PAKET TRANSFER SİSTEMİ Kullanıcı Dökümanı Version 1.2 1 1. Revizyonlar... 1 2. Giriş... 1 2.1 Kapsam... 1 2.2 Hedef Kitle... 1 3. Gereksinimler... 1 3.1 Yazılım Gereksinimleri...

Detaylı

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar Nesneler ve Türler Sınıflar ve Yapılar Arasındaki Farklılıklar Sınıf Üyeleri Değer ve Referans Türde Olan Aktarımlar Yapıcılar ve Statik Yapıcılar Read-Only Statik Sınıflar Object Sınıfı Sınıflar Sınıflar

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ı

BİL BİLGİSAYAR PROGRAMLAMA (JAVA)

BİL BİLGİSAYAR PROGRAMLAMA (JAVA) BİL 141 - BİLGİSAYAR PROGRAMLAMA (JAVA) KURULUM DÖKÜMANI Ders kapsamında lab saatlerinde veya lab saatleri dışında Java kodları yazabilmek ve çalıştırabilmek için bilgisayarınıza bazı yazılımların kurulması

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ı

Windows Grup İlkesi Düzenleyici

Windows Grup İlkesi Düzenleyici Windows Grup İlkesi Düzenleyici Microsoft Windows ta kullanıcı ve bilgisayar grupları için kullanıcı ve bilgisayar yapılandırmaları tanımlamak üzere Grup İlkesi kullanılır. Grup ilkesi Microsoft Yönetim

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ı

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ı

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü BM-209 Nesne Yönelimli Programlama Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü Java Programlama Dili Java bayt kodları Java Sanal Makineleri üzerinde

Detaylı

CSSigner, Cybersoft firması tarafından geliştirilmiş açık kaynak kodlu e-imza yazılım kütüphanesidir.

CSSigner, Cybersoft firması tarafından geliştirilmiş açık kaynak kodlu e-imza yazılım kütüphanesidir. Kullanım Kılavuzu Cybersoft Enformasyon Teknolojileri Ltd. Şti. ODTU Teknokent Silikon Binaları 1. Kat No: 18 06531 ODTU / Ankara Türkiye Tel : +90 312 210 19 40 Giriş CSSigner, Cybersoft firması tarafından

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ı

API geliştiricileri. Web server ile yapılan entegrasyonun neticeleri. API Dokumantasyonu

API geliştiricileri. Web server ile yapılan entegrasyonun neticeleri. API Dokumantasyonu API geliştiricileri Open API serverınızın tüm kontrolünü, groupware erişim izini, kullanıcı ve domain yonetimi, server ayarları, tasarlanma, istatistikler ve daha fazlasına bu script programı ile erişebilirsiniz.

Detaylı

WEB E-POSTA AYARLARI. Outlook 2003 Ayarı ( Resimli Anlatım )

WEB E-POSTA AYARLARI. Outlook 2003 Ayarı ( Resimli Anlatım ) WEB E-POSTA AYARLARI Outlook 2003 Ayarı Outlook 2007 Ayarı Outlook 2010 Ayarı Gmail Ayarı Hotmail Ayarı Tüm Ayarlar İçin Gelen posta sunucusu (POP3) ve giden posta sunucusu (SMTP) ye bnposta.bingol.edu.tr

Detaylı

WINDOWS SERVER 2008 R2 REMOTE DESKTOP SERVICES RD Connection Broker

WINDOWS SERVER 2008 R2 REMOTE DESKTOP SERVICES RD Connection Broker WINDOWS SERVER 2008 R2 REMOTE DESKTOP SERVICES RD Connection Broker Günümüzde üzerinde önemli uygulamalar çalıştıran, veritabanları barındıran ve sağladığı çeşitli servisler ile birçok konumda ve görevde

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ı

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ı

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ı

ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU

ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU ÇANKAYA ÜNİVERSİTESİ WEBMAIL KULLANIM KLAVUZU Üniversitemiz Webmail servisi yenilenmiş olup Roundcube webmail üzerinden servis vermeye başlamıştır. Daha önce kullanılan SquirrelMail servisi https://oldwebmail.cankaya.edu.tr/

Detaylı

Microsoft Outlook 2003 Kurulumu

Microsoft Outlook 2003 Kurulumu Microsoft Outlook 2003 Kurulumu Tools (Araçlar) menüsünden E-mail Accounts (E-posta Hesapları) seçeneğini seçiniz. Buradan Add a new e-mail account (Yeni bir e-posta hesabı ekle) sekmesine tıklayınız,

Detaylı

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır.

2.Eclipse açıldıktan sonra Workspace alanı seçilmesi gerekir. Workspace alanı projelerinizin fiziksel olarak bulunduğu kısımdır. 1.Eclipse http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/s R2/eclipse-jee-juno-SR2-win32.zip&mirror_id=1163 linkinden indiriyoruz. 2.Eclipse açıldıktan sonra

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ı

www.smsmakinesi.com destek@hermesiletisim.net COM API v.1.1 BELGE SÜRÜMÜ : 1.1

www.smsmakinesi.com destek@hermesiletisim.net COM API v.1.1 BELGE SÜRÜMÜ : 1.1 destek@hermesiletisim.net COM API v.1.1 BELGE SÜRÜMÜ : 1.1 1 1. İÇİNDEKİLER 1. İçindekiler 2 2. Bu Belgenin Amacı 3 3. Kullanım Şekli.3 4. Uyarılar.4 5. Hata Kodları.4 6. Kullanıcı Bilgileri Kontrolü..5

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ı

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir.

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir. BÖLÜM 1 Java Programlamaya Giriş Java programlama dili ilk olarak başında James Gosling`n bulundugu Sun Microsystems tarafından 1995 yılında, Sun Java Platformunun ana unsuru olarak geliştirilmeye başlandı.

Detaylı

BLGM 354 DENEY 1 * GİRİŞ

BLGM 354 DENEY 1 * GİRİŞ BLGM 354 DENEY 1 * GİRİŞ Amaçlar 1. Oracle istemcisi kurulumu 2. Veritabanı bağlantısı 3. SQL geliştirme ortamında çalışma Oracle İstemcisinin Kurulumu Oracle istemcisi bölümün FTP sunucusundan (ftp://ftp.cmpe.emu.edu.tr)

Detaylı

Class HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable

Class HashMap. Class HashMap java.lang.object java.util.abstractmap java.util.hashmap. Kılgıladığı Arayüzler: Cloneable, Map, Serializable Class HashMap java.util Class HashMap java.lang.object java.util.abstractmap java.util.hashmap Kılgıladığı Arayüzler: Altsınıfları Bildirimi: Cloneable, Map, Serializable LinkedHashMap, PrinterStateReasons

Detaylı

BIL321 VERİ İLETİŞİMİ LABORATUVARI

BIL321 VERİ İLETİŞİMİ LABORATUVARI BIL321 VERİ İLETİŞİMİ LABORATUVARI ITS-101A INTERNET EĞİTİM SİSTEMİ TCP/IP ETHERNET MESAJI GÖNDERME & GÖZLEMLEME İstanbul Ticaret Üniversitesi Bilgisayar Mühendisliği Bölümü Araş. Gör. Can EYÜPOĞLU ETHERNET

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 ARP (ADRES ÇÖZÜMLEME PROTOKOLÜ) İstanbul Ticaret Üniversitesi Bilgisayar Mühendisliği Bölümü Araş. Gör. Can EYÜPOĞLU ARP

Detaylı

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0

AĞ HİZMETLERİ. Öğr.Gör.Volkan ALTINTAŞ. Version 4.0 AĞ HİZMETLERİ Öğr.Gör.Volkan ALTINTAŞ Version 4.0 İSTEMCİ SUNUCU İLİŞKİSİ İnsanlar her gün başkalarıyla iletişim kurmak ve rutin görevlerini yerine getirmek için ağ ve İnternet üzerinden sağlanan hizmetleri

Detaylı

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

Network üzerinde MATLAB kurulması

Network üzerinde MATLAB kurulması Network üzerinde MATLAB kurulması MATLAB&Simulink www.figes.com.tr Bir network üzerinde MATLAB ın kurulmasına başlanmadan önce bir network lisansı açılması ve bunun için de kurulum yapılacak sunucunun

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ı

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

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ı

PROGRAMLAMA DERSİ 1. İNTERNET

PROGRAMLAMA DERSİ 1. İNTERNET PROGRAMLAMA DERSİ 1. İNTERNET İnternet sunucu-istemci modeline göre çalışır. Fiziksel olarak bu sistem genelde isteği yapan bir bilgisayar (kullanıcı-client) ve bu isteği karşılayan özel bir bilgisayar

Detaylı

FTP ve Güvenlik Duvarları

FTP ve Güvenlik Duvarları FTP ve Güvenlik Duvarları FTP Protokolü FTP, sık kullanılan protokoller(http, SMTP, DNS vs) arasında en sorunlu protokoldür. Diğer protokoller tek bir TCP/UDP portu üzerinden çalışırken FTP birden fazla

Detaylı

Üst Düzey Programlama

Üst Düzey Programlama Üst Düzey Programlama JSP Üst Düzey Programlama-ders04/ 1 JSP JSP durağan HTML ile dinamik oluşturulan içeriği birleştirmeyi sağlar. Bir web sayfası tasarlama programı ile web sayfasını tasarlar daha sonra

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ı

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi

ASP.NET 1. DURUM YÖNETİMİ. BLM 318 e-ticaret ve Uyg. Durum Yönetimi Nedir? Durum Yönetimi: Karșılaștırma İÇERİK. Sunucu-taraflı Durum Yönetimi Nedir? olmadan Login.aspx Bilgilerinizi giriniz Durum Yönetimi İle Login.aspx Bilgilerinizi giriniz Adınız Adınız Pınar Pınar Soyadınız Soyadınız Onay Durdu Onay Durdu Gönder Gönder ASP.NET - 1 sayfa.aspx

Detaylı

Flow Kullanım Klavuzu Mart 2014

Flow Kullanım Klavuzu Mart 2014 Flow Kullanım Klavuzu Mart 2014 İçindekiler Flow nedir? Bir Flow hesabı oluşturmak Oturum açmak Flow Hesabınız Genel Görünüm Flow Hesabınız Kullanım + Add (ekle butonu) Bibliography (Künye/Atıf butonu)

Detaylı

JAVA PROGRAMLAMAYA GİRİŞ

JAVA PROGRAMLAMAYA GİRİŞ LAB I JAVA PROGRAMLAMAYA GİRİŞ Java Kurulumu Java dili ile programlama yapabilmek için java jdk ve java kodlama yapılabilecek uygun bir geliştirme ortamı kurulmalıdır. Eclips IDE yaygın olarak kullanılan

Detaylı

Java Class Yapısında Finalize Metotunun Kullanımı

Java Class Yapısında Finalize Metotunun Kullanımı Java'da finalize() Metodu: Java dili kullanılmayan nesneleri silmek için arka planda çalışan bir sisteme sahiptir. Bu yüzden C++ gibi dillerde dinamik nesne tanımlarında mutlaka yer alması gereken nesneyi

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ı

NicProxy Registrar WHMCS Modül Kurulumu Versiyon 1.0

NicProxy Registrar WHMCS Modül Kurulumu Versiyon 1.0 NicProxy Registrar WHMCS Modül Kurulumu Versiyon 1.0 Tescil Bilgisi 2009 NicProxy. Tüm Hakları Saklıdır. Bu belge, NicProxy mülkiyetinde ve NicProxy e ait özel bilgiler içermektedir. NicProxy yetkili temsilcisinin

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ı

COM API v2.0 Belge sürümü : 2.0.3

COM API v2.0 Belge sürümü : 2.0.3 COM API v2.0 Belge sürümü : 2.0.3 1. Đçindekiler 1. Đçindekiler...2 2. Bu belgenin amacı...3 3. Belge sürümleri...3 4. Sistem gereksinimleri...3 5. Kullanım şekli...4 5.1 Genel...4 5.2 Uyarılar...4 5.3

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ı

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ı

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005 Kaynak Kodlardan Derleme Turquaz Muhasebe Versiyon 0.2 Hüseyin Ergün 26 Mart 2005 Turquaz Muhasebe, Kaynak Kodları Derleme Sayfa 2 İçindekiler İÇİNDEKİLER 2 GEÇMİŞ DEĞİŞİKLİKLER 3 1. GİRİŞ 4 1.1 AÇIKLAMA

Detaylı