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", * mail.put("to", * 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", 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" "http://java.sun.com/dtd/application_1_3.dtd"> <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ı

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

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

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ı

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

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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ı

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

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ı

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ı

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ı

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ı

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

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ı

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ı

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ı

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ı

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ı

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ı

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

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ı

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ı

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ı

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

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ı

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ı

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ı

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ı

Görsel Programlama DERS 08. Görsel Programlama - Ders08/ 1

Görsel Programlama DERS 08. Görsel Programlama - Ders08/ 1 Görsel Programlama DERS 08 Görsel Programlama - Ders08/ 1 Java da Olay Yönetimi (Event Handling) Program çalışırken kullanıcı tarafından gerçekleştirilen tüm hareketlere olay(event) denilir. Kullanıcının

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ı

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ı

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ı

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR

KUYRUKLAR QUEUES. Doç. Dr. Aybars UĞUR KUYRUKLAR QUEUES Doç. Dr. Aybars UĞUR Giriş Bu bölümde gerçek yaşamdaki kuyrukların bilgisayardaki gösterimleri üzerinde durulacaktır. Kuyruklar, eleman eklemelerin sondan (rear) ve eleman çıkarmaların

Detaylı

MOBİL UYGULAMA GELİŞTİRME

MOBİL UYGULAMA GELİŞTİRME MOBİL UYGULAMA GELİŞTİRME Hedefler Bu üniteyi çalıştıktan sonra; Android projesi oluşturabilir, Android projesini çalıştırabilir, Android projesi genel yapısını açıklayabilir, Activity kavramını açıklayabilir,

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ı

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ı

JBoss Seam. Melih Sakarya www.melihsakarya.com melih.sakarya@gmail.com

JBoss Seam. Melih Sakarya www.melihsakarya.com melih.sakarya@gmail.com JBoss Seam Melih Sakarya www.melihsakarya.com melih.sakarya@gmail.com Seam Framework JSF JPA EJB 3.0 Ajax RichFaces A4J Drools itext PDF JFreeChart Facelet Security SSL Web Servis Pojo IoC JBPM Hibernate

Detaylı

https://twitter.com/farukbozan 19 Şubat 2016 Cuma

https://twitter.com/farukbozan 19 Şubat 2016 Cuma Bugünkü yazımda çok basit ve temel anlamda Spring ile XML tanım tabanlı bean okuma işlemini anlatmaya çalışacağım. Spring framework bizim yerimize nesnelerin birbirine olan bağımlılıklarını düzenleyip,

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ı

www.sabanciuniv.edu/kcenter

www.sabanciuniv.edu/kcenter Sabancı Üniversitesi Bilişim Teknolojileri Yüksek Lisans Programı Seminerleri Java ile Web Uygulamaları Geliştirme Ahmet Demirelli SCJP 5.0 - SCWCD 1.4 Ajanda Web uygulaması nedir Basit bir CGI örneği

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ı

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ı

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ı

AĞ KURULUMU ANA MAKİNA İÇİN:

AĞ KURULUMU ANA MAKİNA İÇİN: AĞ KURULUMU NetProxy programı ile bilgisayarlarınızı birbirine bağlamak için, bağlantı yapacağınız bilgisayarlar arasynda bir ağ kurmanız gerekir. Ağ kurma işlemini burada adım adım anlatmaya çalışacağım.

Detaylı

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals

Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals The European Union s Making the Labour Market more Inclusive III programme For North Cyprus Upgrading Internet Technology skills of Information and Communication Technologies (ICT) Professionals Module

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ı

Burak Kıymaz 13.10.2015 JAVA FX

Burak Kıymaz 13.10.2015 JAVA FX JavaFx neden çıktı? JAVA FX Eskiden desktop için swing kullanılırdı fakat pek iyi değildi. Javafx bu konuda css kullanmaya da izin verdiği için daha iyi bulundu. xml veriyi biçimlendirmek için kullanılan

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ı

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ı

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ı

Java Programlamaya Giriş

Java Programlamaya Giriş Java Programlamaya Giriş Amaçlar: 1. Java kurulumu (Netbeans ve JDK) 2. Java Netbeans Kullanımı 3. Program yazma Java Kurulumu Java dili ile programlama yapabilmek için java jdk ve java kodlama yapılabilecek

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ı

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ı

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

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ı

CELAL BAYAR ÜNİVERSİTESİ KÜTÜPHANE VERİTABANLARINA ÜNİVERSİTE DIŞINDAN ERİŞİM

CELAL BAYAR ÜNİVERSİTESİ KÜTÜPHANE VERİTABANLARINA ÜNİVERSİTE DIŞINDAN ERİŞİM Celal Bayar Üniversitesi kütüphane veritabanlarına üniversite dışından erişebilmek için kullandığınız internet tarayıcısına uygun olarak bazı ayarlar yapmanız gerekmektedir. Aşağıda tanımlanan ayarlar

Detaylı

Internet Programming II. Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı

Internet Programming II. Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı Internet Programming II Elbistan Meslek Yüksek Okulu 2014 2015 Bahar Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU 11-14 May. 2014 Form Form İşlemleri Tarayıcıdan bilgi alarak işlem gerçekleştirme FORM elemanları

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ı

JavaServer Faces (JSF) Sunucu Yazılım Teknolojileri 2008

JavaServer Faces (JSF) Sunucu Yazılım Teknolojileri 2008 JavaServer Faces (JSF) Sunucu Yazılım Teknolojileri 2008 JSF Nedir? Yeni nesil Web uygulama anaçatısıdır. Bileşen modeline dayanır: UI Bileşenleri Olay tabanlı etkileşim modeli Geliştiriciler tarafından

Detaylı

KANTAR UYGULAMASI Kurulum Kılavuzu

KANTAR UYGULAMASI Kurulum Kılavuzu KANTAR UYGULAMASI Kurulum Kılavuzu Serhat Öztürk Medyasoft Danışmanlık ve Eğitim A.Ş. v.1.0 Kantar Uygulaması üç temel parçadan oluşur. Veritabanı, WCF servisi ve Masaüstü uygulaması. Bu nedenle sistemde

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ı

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

Kaynak Kod Güvenliği Bir Güvensiz API Örneği Kaynak Kod Güvenliği Bir Güvensiz API Örneği Bedirhan Urgun, Ağustos 2010, WGT E-Dergi 6. Sayı Bu yazıda Tomcat J2EE kısmi uygulama sunucusunda bulunan bir güvenlik açığına, güvenlik probleminin kaynağına

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ı

WAMP SERVER KURULUMU

WAMP SERVER KURULUMU WAMP SERVER KURULUMU Bilgisayarınızda; PHP web programlama dilini kullanarak web sayfası hazırlayacaksanız ya da PHP web programlama dili kullanılarak hazırlanmış Joomla, Wordpress, Drupal vb.. içerik

Detaylı

Axis2 ile Web Servis Đstemci Örnekleri (Java, Delphi, C Sharp)

Axis2 ile Web Servis Đstemci Örnekleri (Java, Delphi, C Sharp) Axis2 ile Web Servis Đstemci Örnekleri (Java, Delphi, C Sharp) Bu dokümanda Unity On Demand (UOD) ürünündeki web servislerini kullanmak için farklı programlama dillerinde (Java, Delphi ve C#) istemci örneklerinin

Detaylı

TARİHÇE. Versiyon Tarih Düzenleyen Açıklama 0.1 04.11.2015 Engin DURMAZ İlk versiyon

TARİHÇE. Versiyon Tarih Düzenleyen Açıklama 0.1 04.11.2015 Engin DURMAZ İlk versiyon İçindekiler 1 GİRİŞ... 2 2 KOD ÖRNEKLERİ... 3 2.1 AÇILIŞTA YAPILMASI GEREKENLER... 3 2.2 ÖKC-HARİCİ CİHAZ EŞLEŞMESİ... 3 2.3 MALİ REFERANS İSTEĞİ... 4 2.4 PROGRAMLAMA BİLGİLERİNİN GÖNDERİLMESİ... 5 2.5

Detaylı

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri www.argenom.com

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri www.argenom.com SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU Telif Hakkı Uyarısı Bu doküman Argenom Elektronik tarafından hazırlanmıştır. Tüm hakları saklıdır. SERNET tescilli bir Argenom Elektronik markasıdır.

Detaylı

ASP.NET ile Bir Web Sitesi Oluşturma

ASP.NET ile Bir Web Sitesi Oluşturma 29,30 Eylül 2011 ASP.NET ile Bir Web Sitesi Oluşturma ASP.NET sitesi oluşturmak için File menüsündeki, New açılır listesindeki, Web Site komutuna tıklıyoruz Açılan pencereden C# içindeki ASP.NET Web Site

Detaylı

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri www.argenom.com

SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU. Telif Hakkı Uyarısı. >>> Otomasyon Ürünleri www.argenom.com SERNET ET232CAS x2 RS232 Seri Kanal Sunucu KULLANICI KILAVUZU Telif Hakkı Uyarısı Bu doküman Argenom Elektronik tarafından hazırlanmıştır. Tüm hakları saklıdır. SERNET tescilli bir Argenom Elektronik markasıdır.

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ı

2. Bölüm Spring İle Tanışalım

2. Bölüm Spring İle Tanışalım 2. Bölüm Spring İle Tanışalım Bir Program Nasıl Oluşur? Spring'in detaylarına girmeden önce, bir programın oluşum hikayesine göz atmamızda fayda var. Bir programın oluşumundaki yön verici en önemli etken,

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ı

Toplu İleti Gönderimi

Toplu İleti Gönderimi Toplu İleti Gönderimi İK ve Bordro Plus ürünlerinde; personelin doğum günü, işe giriş kutlaması gibi özel tarihlerde çalışanlara e-posta ile kutlama mesajları otomatik olarak gönderilebilir. Bu işlem Sicil

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ı

MERAK MAIL SERVER ACTIVE DIRECTORY ENTEGRASYONU

MERAK MAIL SERVER ACTIVE DIRECTORY ENTEGRASYONU MERAK MAIL SERVER ACTIVE DIRECTORY ENTEGRASYONU Bir domain ortamındaki kullanıcıların aynı kullanıcı adı ve parola bilgisiyle merak mail server içerisine entegre edilmesi için domain controller ve merak

Detaylı

WEB TASARIMIN TEMELLERİ

WEB TASARIMIN TEMELLERİ WEB TASARIMIN TEMELLERİ ~ Sunu 1 ~ Öğr. Gör. Mehmet Fatih TAN http://blog.kmu.edu.tr/mftan mftan@kmu.edu.tr Bilgi paylaşıldıkça kıymetlenir.. Kaynak göstermek şartıyla sunu içeriğini çalışmalarınızda kullanabilirsiniz.

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ı