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



Benzer belgeler
Java diğer programlama dilleri gibi başlı başına bir ürün değildir.

Java. ile Nesneye Yönelik Programlama

Java ile Nesneye Yönelik Programlama. Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 1 1

ÖZGÜR YAZILIMLAR İLE J2EE

Java 2 Micro Edition (J2ME)

Java Programlama Giriş

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

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

Üst Düzey Programlama

HTML isteklerini anlayarak HTML sonucu üreten ve yaygın olarak kullanılan temel Servlet sınıfı HttpServlet tir.

Java Temel Özellikleri

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

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

Öğr. Gör. Serkan AKSU 1

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Java. Hakkımızda. Java Eğitimi

Java ve Yazılım Tasarımı ; Bölüm- 1 JAVA NEDİR?

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

1.PROGRAMLAMAYA GİRİŞ

PHP 1. Hafta 1. Sunum

Üst Düzey Programlama

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

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

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

Özlem KARAGEDİK, Taner GÜREL, Gözde TOKER, Ata ÖNAL

ASP.NET TEMELLERİ. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

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

T.C. KARADENİZ TEKNİK ÜNİVERSİTESİ FEN EDEBİYAT FAKÜLTESİ İSTATİSTİK VE BİLGİSAYAR BİLİMLERİ BÖLÜMÜ BİTİRME ÇALIŞMASI KEMAL OLÇA

Java Dersi. Altuğ Bilgin Altıntaş


Bilgisayar İşletim Sistemleri BLG 312

Ağ programlama (Network programming) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 13 1

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

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

MOBİL İLETİŞİM CİHAZLARI İLE EV OTOMASYON SİSTEMLERİ (EOS)

JAVA NEDİR?

Üst Düzey Programlama

BİLGİSAYAR PROGRAMLAMA (C#) DERS NOTU 1

ENSTİTÜMÜZDE DIŞ İNCELEME UZMANI GÖREVLENDİRİLMESİNE İLİŞKİN DUYURU

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

Üst Düzey Programlama

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

Java EE 5 Teknolojileri Jboss Seam

MOODLE UZAKTAN ÖĞRETİM SİSTEMİ

Spring Security Framework Harezmi Bilişim Çözümleri

Asp.Net Veritabanı İşlemleri

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

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

Bilgi Servisleri (IS)

.com. Kurumsal Java. Özcan Acar com

Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

BİH 605 Bilgi Teknolojisi Bahar Dönemi 2015

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

Apache Tomcat Güvenliği

C# nedir,.net Framework nedir?

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

Apache üzerinden Red Hat 5 yüklenmesi

Kampın Amacı: Kampın Süresi: Kampın Hedefi:

Client Server Database

Basit bir web uygulaması

BMT 202 Web Tasarımı Bahar Dönemi. Yük. Müh. Köksal GÜNDOĞDU 1


Üniversite Ortamında Yazılım Geliştirme Deneyimleri

Mobil Cihazlardan Web Servis Sunumu

Sertan Kolat

4. Bölüm Programlamaya Giriş

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

Selsoft Eğitim Kataloğu

1 GİRİŞ 1 Bu Kitap Kime Hitap Eder? 2 Kitapta Nelerden Bahsedilmiştir? 3 Kitabı Takip Edebilmek için Nelere İhtiyaç Duyacaksınız?

YÜKSEK LİSANS TEZİ Müh. Göksel SARIKAYA ( ) Prof. Dr. Nadia ERDOĞAN (İ.T.Ü) Prof. Dr. Coşkun SÖNMEZ (Y.T.Ü)

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

BioAffix Ones Technology nin tescilli markasıdır.

Tomcat Uygulama Sunucusunun Kurulumu. İlk olarak adresine gidiyoruz.

Spring Giriş Eğitimi

Programlama Yazılımı ile Web Sitesi Oluşturma

08217 Internet Programcılığı I Internet Programming I

Spring Framework Eğitimi

Hızlı Başlangıç Kılavuzu

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

BİL 458 Web Programlama dersi. Yrd. Doç. Dr. Murat YEŞİLYURT

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

MyFaces Özgür JSF Uyarlaması. Bora Güngören Portakal Teknoloji

Neden PHP? Tasarımcı, şirket ve kullanıcı gözüyle. 10 Ekim 2005 / DEÜ DESEM Seval ÖZBALCI 1

İNTERNET TABANLI TEST HAZIRLAMA VE DEĞERLENDİRME PROGRAMLAMA ARAYÜZÜ

JavaServerFaces. Ahmet Demirelli. SCJP 5.0, SCWCD 1.4

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

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

WEB PROGRAMLAMA DİLLERİNİN PERFORMANS ANALİZİ PERFORMANCE ANALYSIS OF WEB PROGRAM LANGUAGE

Apache Tomcat Güvenliği

İÇİNDEKİLER VII İÇİNDEKİLER

Kurumsal Ağlarda Web Sistem Güvenliği

Programlama Dillerinde Kullanılan Veri Tipleri

ISCOM Kurumsal ISCOM KURUMSAL BİLİŞİM TEKNOLOJİLERİ EĞİTİM KATALOĞU

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

PHP'ye Giriş Türkiye PHP Grubu - Linux Şenlikleri PHP Eğitim / Tanıtım Seminerleri Ankara, 11 Mayıs 2006 Hidayet Doğan <hdogan@hido.

PR Kasım 2009 Yazılım, PC-tabanlı kontrol Sayfa 1 / 5

Transkript:

Java ile Etkileşimli Ağ Uygulamaları Altuğ B. Altıntaş altuga@kodcu.com

Java Nedir? Java platformu, ağ(network) ın önemi hesaba katılarak ve aynı yazılımın birçokdeğişik bilgisayar ortamında veya değişik tür makinalarda çalışması fikri ile geliştirilmiş yeni bir teknolojidir. Java teknolojisi kullanılarak aynı uygulamayı değişik ortamlarda çalıştırabiliriz örneğin Pc lerde, Macintosh bilgisayarlarda, hatta cep telefonlarında. Java diğer programlama dilleri gibi başlı başına bir ürün değildir. Java ve Java ya bağlı alt teknolojiler, Sun Microsystems tarafından verilmiş belirtimlerden (specifications) oluşmaktadır. Eğer bu belirtimlere sadık kalınmaz ise hukuki olarak suç işlenmiş olur.

Java İle Neler Yapılabilir? Java Programlama dili ile projelerimizi diğer programlama dillerine göre daha kolay ve sağlıklı bir şekilde yapmamız mümkündür. Kısaca göz atacak olursak, Java ile ; GUI (graphical user interface, grafiksel kullanıcı ara yüzü) uygulamaları, Appletler. Distributed components (ör. EJB, RMI, CORBA). Servlet, Jsp (web tabanlı uygulamalar). Veri tabanlarına erişim ile alakalı uygulamalar. Cep telefonları, Smart kartlar için uygulamalar. Ve daha niceleri için uygulamalar yazmamız mümkündür.

Bir Kere Yaz Her Yerde Çalıştır Java uygulamaları JVM (Java Virtual Machine) tarafından yorumlanır( interpreted ). JVM, işletim sisteminin en tepesinde bulunur Java uygulamaları değişik işletim sistemlerinde, herhangi bir değişiklik yapmadan çalışabilir, Java nın felsefesiolan bir kere yaz heryerde çalıştır sözü gerçekleştirilmiştir.

Çalışma Evreleri

Çalışma Evreleri

Kategoriler Java platformunun ana grupları. Standart Java Enterprise Java Gömülü cihazlar için Java (embedded devices) XML Teknolojileri Diğer Teknolojiler

Standart Java Java 2 SDK (J2SE) Java 2 Runtime Environment Java Plug-in Java Web Start Java HotSpot Server Virtual Machine Collections Framework Java Foundation Classes (JFC) Swing Components Pluggable Look & Feel Accessibility Drag and Drop Security Java IDL JDBC JavaBeans Remote Method Invocation (RMI) Java 2D

Enterprise Java J2EE (Java 2 Enterprise Edition) CORBA Teknolojisi ECperf Teknolojisi Enterprise JavaBeans Teknolojisi Kontaynerler için Java Yetkilendirme Kontratı (Java Authorization Contract for Containers) (Java ACC) Java IDL JavaMail API Java Mesajlaşma Servisi (Message Service) (JMS) API JavaServer Faces JavaServer Pages Java Servlets JDBC Teknolojisi J2EE Bağlayıcı Mimarisi (Connector Architecture) Hareketler (Transactions)

Gömülü Cihazlar İçin Java (Embedded Devices) Java 2 Platform, Micro Edition (J2ME technology) Java 2 Platform, Micro Edition (J2ME Teknolojisi) Bağlı Aygıt Konfigurasyonu (Connected Device Configuration) (CDC) Sınırlı Bağlanmış Aygıt Konfigurasyonu (Connected Limited Device Configuration) (CLDC) C Sanal Makinası (Virtual Machine) (CVM) K Sanal Makinası (Virtual Machine) (KVM) PersonalJava Java Card JavaPhone API Java TV API Jini Network Technology Mobil Bilgi Aygıt Profili (Mobile Information Device Profile) (MIDP)

XML Teknolojileri XML İlişkilendirilmesi için Java Mimarisi (Java Architecture for XML Binding) (JAXB) XML-Tabanlı RPC için JAVA API'si (Java API for XML- Based RPC) (JAX-RPC) XML Mesajlaşması için JAVA API'si (Java API for XML Messaging) (JAXM) XML İşlemleri için JAVA API'si (Java API for XML Processing) (JAXP) XML Kayıtları için JAVA API'si (Java API for XML Registries) (JAXR)

Diğer Teknolojiler Araç Ürünler o MIF Doclet o Sun ONE Stüdyo (Studio) Ağ (NetWork) Ürünleri o Sertifikalı JAIN API Ürünleri (JAIN API Certified Products) o Java Dynamic Management Kit o Java Yönetim Uzantısı (Java Management Extensions) (JMX) o Java MetaData Arabirimi (Java Metadata Interface) (JMI) o Java Paylaşılan Veri Araç Takımı Java Shared Data Toolkit o Java Spaces Teknolojisi o Servis Sağlıyıcılar için Java Teknolojisi (Java Technology for Service Providers) o Jini Ağ Teknolojisi (Network Technology) o JXTA Projesi o J2ME Platformu için JXTA Projesi (Project JXTA for J2ME Platform) o Sun Chili!Soft ASP

Java nın Gelişim Evreleri 1995 Java teknolojisinin ilk çıkış yılı ; ilk olarak Applet teknolojisinin dikkat çektiği seneler. 1996 Java Development Kit (JDK) v1.0 çıkartıldı. Temel seviyeli işlevleri içeren bir versiyon (ör. soket programlama, Girdi/Çıktı (Input/Output), GUI (Graphical User Interface- Grafik Kullanıcı Arabirimi) 1997 JDK 1.1 çıkartıldı. Bu sürümde Java GUI, veritabanı erişimi için JDBC, dağınık nesneleriçin RMI ve daha birçok yeni gelişmeler eklendi. 1998 JDK 1.2 çıkartıldı. JFC/Swing yayınlandı- aynı sene içersinde http://java.sun.com internet adresinden 500,000+ adet indirme(download) gerçekleştirildi. 1999 Java teknolojisi J2SE, J2EE ve J2ME olarak 3 e bölündü. Java HotSpot (performans arttırıcı) yayınlandı. JavaServer Pages (JSP) teknolojisi yayınlandı. J2EE platform u yayınlandı. Linux üzerinde J2SE platformu yayınlandı. 2000 JDK v1.3 çıkartıldı. Java APIs for XML teknolojisi yayınlandı. 2002 2003 JDK v1.4 versiyonu çıkarıldı (Merlin projesi). Java API for XML binding yayınlandı. 2003 yılının sonuna doğru JDK v1.5 versiyonun çıkarılması planlanmaktadır (Tiger projesi).

Java nın Başarılı Olmasındaki Sebepler Nitelikli bir programlama dili olması C++ da olduğu gibi bellek problemlerinin olmaması. Nesneye yönelik (Object - Oriented) olması Güvenli olması. Internet uygulamaları için elverişli (Applet, JSP, Servlet, EJB, Corba, RMI). Platform bağımsızolması : Bir kere yaz her yerde çalıştır

Çöp Toplayıcı (Garbage Collector) Çöp toplayıcı devamlı olarak takip halindedir. Bir programınçalışma durumunda ortaya çıkan ve sonradan kullanılmayan (gereksiz) nesneleri bulur ve onları yok eder (destroy). Bellek yönetiminin (memory management) yükü, kodu yazan kişiden Java ya geçmiş olur Diğer dillerde, örneğin C++ da, oluşturulan nesnelerin yok edilme sorumluluğu kodu yazan kişiye aittir. Çöp toplayıcısı(garbage collector) JVM in yazılışına (implementation) göre değişkenlikler gösterebilir.

Ağ sunucusu (web server) nedir? Ağ sunucusu, sabit içerikli (static content) sayfaları sunması için tasarlanmış uygulamalardır. HTML, HTM, vb.. Aynı bir garson gibi bu sabit içerikli sayfaları sunan ağ sunucuları, Java teknolojisinden çok daha eskidir. En bilindik ağ sunucuları Apache ağ sunucusu : www.apache.org Netscape ağ sunucusu IIS (Internet Information Server)

Tomcat Nedir? Tomcat, Jakarta projesinin altınta yer alan bir projedir (http://jakarta.apache.org). Tomcat, JSP/Servlet uygulamaları için bir kap (container) görevini görür. Tomcat tek başına ağ sunucusu (web server) görevini de görebilir. Bunun dışında Tomcat, herhangi bir ağ sunucusu (web server) ile birlikte çalışabilir (ör: Apache, IIS...gibi). Servlet/JSP belirtimi (spec.) Servlet 2.4/ JSP 2.0 Servlet 2.3/ JSP 1.2 Servlet 2.2/ JSP 1.1 Tomcat versiyonu 5.x 4.1.24 3.3.1a

Ağ sunucusu ve Tomcat ın beraber işleyişi

Tomcat Kurulumu Tomcat uygulamasının indirilmesi. TOMCAT_HOME değerinin atanması TOMCAT_HOME=C:\Tomcat-4.1\ JAVA_HOME değerinin atanması JAVA_HOME=C:\j2sdk1.4.1 %TOMCAT_HOME%\bin\startup.bat dosyasının çalıştırılması.

Tomcat Dizin Yapısı Tomcat tarafından geçici dosyaların ve dizinlerin yer aldığı dizin Çalıştırılabilir dosyalar ve Script ler İçsel ve ağ uygulamaları için gerekli olan sınıfların tutulduğu dizin Paketlenmemiş genel sınıf dosyaları Yapılandırma (Configuration ) dosyalarının saklandığı dizin JAR içerisindeki genel sınıf dosyaları Ağ uygulamalarının bulunduğu dizin

Web Uygulamasının Bileşenleri İstemci Örneğin ağ tarayıcısı (web browser) HTTP İstemci ve sunucu arasındaki talep (request), tepki (response) protokolü HTML dosyaları Sabit içerik Webserver HTML sayfalarını sunar ve Ayrıca isteğin tam adresine bakarak ilgili isteği gerekli kaba(ör: Tomcat) iletir. JSP/Servlet Engine JSP ve Servlet uygulamalarını çalıştırma ortamı Ağ Uygulaması HTML, JSP, Servlet ve Java Bean uygulamalarının oluşturduğu sistem.

Karşılaştırmalar CGI (Comman Gateway Interface) e karşı JSP/Servlet Daha performanslı çalışması PHP e karşı JSP/Servlet Daha iyi bir programlama dili desteğinin olması Daha iyi araçlara sahip olması ASP ye karşı JSP/Servlet Daha iyi bir programlama dili desteğinin olması Değişik sunuculara ve değişik işletim sistemlerine taşınabilme

Servlet Servlet, CGI teknolojisinden daha hızlıdır. Java nın geniş çekirdek kütüphanesinden faydalanma imkanı. Yazılan Servlet uygulamalarının tekrardan kullanılabilmesi ve taşınma kolaylığı. JDBC (Java DataBase Connectivity) desteği. Bir sonraki adım : Enterprise Java Beans (EJB) kullanımı.

Servlet örneği

JSP Java Server Pages teknolojisi, dinamik içeriğe sahip etkileşimli siteler oluşturma sürücini çok kolaylaştırmıştır. JSP uygulamaları; Java kodu ile HTML kodunun birleşiminden oluşan bir yapıya sahiptir. Arka planda JSP kodu otomatik olarak Servlet koduna çevrilir.

basit.html

kolay.jsp

Kodun açıklaması JSP Page direktifi, istemciye gönderilecek olan sayfa tipinin text/html olacağını ve karakter kümesinin de Türkçe (ISO-8859-9) olacağını ifade eder. Gri renk içerisindeki kısım Scriptlets tir (<%...%> etiketleri arasındaki ifade) Scripletslerin içerisinde Java kodu yazılır. Normal HTML kodları

Grafiksel gösterim

Gerekli açıklamalar İstemciden gelen HTTP isteği http://localhost:8080/deneme/kolay.jsp?sayi=7, ilk olarak ağ sunucusu (web server)tarafından karşılanır. Ağ sunucusu bu isteğin arka tarafta bulunan JSP/Servlet kabına (Tomcat) iletilmesi gerektiğini anlayıp (*.jsp uzantısından dolayı) iletir. JSP sayfası, JSP işlemcisi tarafından Servlet koduna çevrilerek derlenir (compile). Bu çevirme işlemi her zaman olmaz. Eğer ilgili JSP sayfasına ilk defa erişilmiş ise veya JSP sayfasının içeriği değişmiş ise bu çevirim işlemi gerçekleşir.

JSP nin Yaşam Döngüsü - I

JSP kodunun Servlet koduna çevrilmesi Bu işlem JSP/Servlet kabı (container) Tomcat tarafından otomatik olarak yapılmaktadır. kolay.jsp kolay_jsp.java kolay_jsp.class

Kaynaklar - I Siteler http://www.obje7.com http://www.kodcu.com http://www.javaworld.com http://www.jguru.com http://javaranch.com http://www.theserverside.com/ http://www.jspinsider.com/

Kaynaklar - II Tartışma Grubu java_kitap_projesi@yahoogroups.com

Kaynaklar - III Kitaplar Java ve Yazılım Tasarımı - Altuğ Bilgin Altıntaş Thinking In Java Bruce Eckel, http://www.bruceeckel.com Java How to Program, Fifth Edition - Harvey M. Deitel, Paul J. Deitel Effective Java Programming Language Guide - Joshua Bloch

Sorular...