IBM MobileFirst - Abordagem de Serviços em Mobilidade
JAVA & JAVA WEB TECHNOLOGIES
1. Ziya sg rovƏ ə
ziyaaskerov@gmail.com
Aprel 2012
Ziya sg rovƏ ə
ziyaaskerov@gmail.com
Aprel 2012
2.
3. I - Java Haqqında
3
JavaJavannının ttarixiarixiJavaJavannının ttarixiarixi
JavaJava nnəədir?dir?JavaJava nnəədir?dir?
JavaJava nnecəecə iişl yirəşl yirəJavaJava nnecəecə iişl yirəşl yirə
JavaJava iləilə nn l r edil bil rə ə ə əl r edil bil rə ə ə ə ??JavaJava iləilə nn l r edil bil rə ə ə əl r edil bil rə ə ə ə ??
Niy JəNiy Jə avaava ??Niy JəNiy Jə avaava ??
Servlet/JspServlet/JspServlet/JspServlet/Jsp
Model -1 , Model-2 vModel -1 , Model-2 v MVC arxitekturasıə MVC arxitekturasıəModel -1 , Model-2 vModel -1 , Model-2 v MVC arxitekturasıə MVC arxitekturasıə
4. Java N dirə ?
Proqramların f rqli m liyyat sistemlə ə ə ərind işl y bilm si üçün inkişafə ə ə ə
etdirilmiş proqramlaşdırma dili v platformadə ır.
Proqramlaşdırma dili olaraq, açıq kodlu, obyekt m rk zliə ə (object-
oriented), t hlük sizə ə , internet üçün lverişli bir texnə ologiyadır.
Java texnologiyası vasit si il bir proqram f rqli mühitl rd işl dilə ə ə ə ə ə ə
bil r.(ə Windows/Linux)
4
5. Javanın Tarixi
1991 Sun Microsystems şirkəti, g l c yin ITC (Information Technologyə ə ə
Channel)texnologiyasinı bəlirl m k adına bir araşdırma l yih si başlatdıə ə ə ə .
James Gosling, Patrick Naughton, Mike Sheridan, r hb rliyind ki komandaə ə ə
13 n f rd n ibar tə ə ə ə və adı “Green Team” (Yaşıl Komanda) idi.
Layih nin sas sah si yl nc m qs dli ş xsi v elektronik ev cihazlarıə ə ə ə ə ə ə ə ə ə
idi.
5
James A. Gosling, OC (born May 19, 1955 near
Calgary, Alberta, Canada)
6. *7 Star Seven
18 aylıq bir çalışmadan sonra 1992 yayında “*7”,
“Star Seven” adlı və bir kontrol cihazı cıxardılar.
Bu cihaz TV, video player v s. kimiə bir çox ev
cihazını kontrol edə bilirdi.
Cihazın bu gücü, platformdan müst qilə bir dilə
sahip olmağından idi.
James Gosling bu dilə “Oak”(meş )ə adını vermişti.
6
7. Java və Internet
Bu layihə bir çox kabelli TV şirkətinə təklif edildi ancaq
zamanının biraz önündə olduğu üçün qəbul edilm diə .
Komandanın r hb rl riə ə ə , inkişaf etdirdikl riə platformanın
Internetə çox lverişliə olduğunu düşündül rə .
İstiqam tl riniə ə d yə işdirib, adı daha sonra rəsmi olarak
HotJava olan browser hazırladılar. (WebRunner)
7
8. Oak’tan Java’ya
Oak’ın ticari bir ad olaraq istifad edil bilm m siə ə ə ə hüquqi
bir araşdırmayla ortaya çıxdı və yeni dilin adının nə olması
haqqında Sun araşdırma başlatdı.
Son üçə Java, Silk ve DNA adları qalır. Və sonda Java galib
gəlir.
23 May 1995’də Java rəsmi olaraq t qdim edildi.ə
8
9. Java Nec İşl yirə ə ?
Java həm çevril nə (compiled) həm də yorumlanan (interpreted) bir dildir.
Java qaynaq kodları (.java faylları) Java bytecodelarına (.class fayllara)
çevrilir.
Bytecodelar JVM’in komandalarıdır və çalışma zamanında (run-time) JVM
tarafından yorumlanır.
Bytecodelar VM(Java Virtual Machine) olan hər platformda işl y bil rə ə ə .
9
11. JVM (Java Virtual Machine)
JVM (Java Virtual Machine), hardware v m liyyatə ə ə sistemi üstündə
işl y nə ə platformdur.
Compile edilmiş Java kodları ilə platform arasında bir qat meydana g tirirə
ve eyni bytecodeların fərqli platformlarda d yə işmədən, eyni şəkildə
işl m yini t min edirə ə ə .
Her platform üçün ən az bir JVM mövcuddur.
11
14. 14
// Hello.java
public class Hello {
public static void main(String[] args){
Hello object = new Hello ();
object.sayHello();
}
public void sayHello(){
System.out.println(“Hello!”);
}
}
N ticə ə
Hello!
15. Java Platromdan müst qildirə (Portable)
Java`nin en böyük üstünlüyü platformdan müst qilə olaraq işl m sidir.ə ə
Bütün m liyyat sisteml ri Javanı d st kl m kd dir.ə ə ə ə ə ə ə ə
WORA (Write Once, Run Anywhere) - bir d fə ə yaz hər yerdə işl t.ə
15
Niy JAVAə ?
16. Java & Robustness
Robustness: çalışma zamanı (runtime) t hlük sizliyiə ə olaraq
t rif edilir.ə
Java, dözümlü(reliable) və güclü proqramlar yazmaq
üçündür.
Çevirm (compile)ə zamanında həm də çalışma
(runtime)zamanında tip uyumu və d yişimiə (cast)
kontrol edilir.
İstisna v ziyy tl riə ə ə ələ almaq üçün (exception
handling)mexanizması vardır.
Yaddaşın idar si avtoə matikdir, proqramçıya
bıraxılmamışdır.(Garbage Collector)
16
18. Java T hlük sizdirə ə
Java ş b k d istifad edil bil r.ə ə ə ə ə ə ə
Java, ş b k d olmağın meydanaə ə ə ə gətirdiyi təhlükələrə qarşı güclüdur.
Xarici makinlardaki obyektl rinə , local makinadaki obyektl rə ə və m liyyatə ə
sisteminə müdaxil siə kontrol altındadır.
Java’daki t hlük sizlikə ə API’lari sayəsində şifrələmədən (encryption)
r q msalə ə imzalara (digital signatures) qədər hər cür t hlük sizlikə ə kodu yazıla
bilər.
18
19. Java Arxitektura Olaraq Tərəfsizdir
Java, bir birlərindən fərqli, bir çox f rqliə platformun olduğu ş b kə ə ə
üstündə işl m k üə ə çün hazırlandığı üçün, hər hansı bir platforma xüsusi
r ğb t göst rmir.ə ə ə
Bu v ziyy tə ə Java’nın virtual bir makina üstündə işl m siə ə və heç bir
platformaya r ğb t göst rm y c kə ə ə ə ə ə bir şəkildə, standartlar üzərinə inşa
edilməsinin bir n tic sidirə ə .
19
20. Java Müv ff qiyy tlidirə ə ə
Java, memarlıq olaraq tərəfsiz olmaq üçün virtual makina kimi bir ara qat
üstündə çalışmağı seçmişdir.
Java etibarlı bir memarlıq üçün daha bir çox(runtime) kontrollara sahipdir.
Java’nın runtime performansını artırmaq üçün çox məsafə qət edilmişdir.
Optimized compiler
JIT ve HotSpot texnologiyaları
20
21. Java Çox Kanallıdır(Multithreaded)
Kanal (thread), bir iş (process) içində meydana g l n h fifə ə ə m liyyatə ə lardır
(lightweight process).
Eyni m liyyatə ə içində işl y nə ə fərqli kontrol axışlarına kanal deyilir.
Kanallar eynı m liyyatə ə içində işl dikl rind nə ə ə , bir çox işi eyni anda və daha
sür tliə yerinə yetir bilirl r.ə ə
CPU və platformların çox sür tliə hala gəlməsi, dillərdəki çox kanallı
özəllikləri istifad etm yi biz m cbur edirə ə ə ə .
21
22. Java il n l r edil bil rə ə ə ə ə ?
Veril nl r bazası ilə ə ə laq liə ə proqramlar.
Servlet, Jsp (Web proqramları).
Mobil telefonları, Smart kartlar üçün proqramlar.
GUI proqramları, Applet’ler, Swing v s. Proqramlar.ə
23. Applet
Applet, uzaqdaki sistemd n eə ndirilib internet brauzeri üzərində çalışdırılabiliən java
proqramlarıdır.
Appletlər sistemə zərər ver bilə məyəcək bir şəkildə hazırlanmışdır və bugün
özəlliklə oyun saytlarında h l d istifad edilm kd tdir.ə ə ə ə ə ə
İçərisində proqram olan bir s hif niə ə açmağa çalışdığınız anda browser avtomatik
olaraq java virtual maşını çalışdırır.
24.
25. Swing və AWT (Abstract Window Toolkit)
AWT, ilk java ilə birlikdə inkişaf etdiril nə təməl grafika interfeys
kitabxanasıdır.
AWT m liyyat sistemininə ə grafika strukturunu istifad imkanını t minə ə
edir.
Java 2 platformu ilə birliktə AWT yetərsiz görülmüş və çox daha geniş və
daha cox özəlliklərə sahib Swing kitabxanasi sistemə lav edilmişdirə ə .
Swing daha vv lə ə m liyyat sistemininə ə istifad etdiyiə hardware grafika
sür tl ndirmə ə ə vasit l riniə ə istifad etm diyin görə ə ə ə yavaşlığı ilə
t nqidl rə ə ə hədəf olmuşdu.
26. Swing və AWT (Abstract Window Toolkit)
Java 1.4 ilə Swing, həm ümümi olaraq virtual maşının
sür tl nm siə ə ə və qismən hardware sür tl nm siə ə ə ilə bu
pis şöhrətindən qutuldu.
Java 5 və 6 ilə desktop proqramlari yazılımı
m şhurlaşdı.ə
AWT h l də ə ə Swing’in bir alt qatında, təməl iki ölçülü
grafika işləmlərində istifad edilm yə ə ə devam edir.
27. SWT (Standart Widget Toolkit)
SWT Swing’ə bir alternatifv olaraq IBM tərəfindan inkişaf etdirilmiş
sistemidir.
Swing’dən ən büyük fərqi m liyyat sistemininə ə grafika kitabxanasını və
komandalarını istifad etm sidir.ə ə
SWT’nin lverişsizliyiə isə Java’nin bir parçası olmamağıdır.
SWT fərqli m liyyat sisteml rində ə ə ə fərqli performansda işl yirə və
özəlliklə Windowsdan basqa sistemlərdə lverişli deyildirə .
Bilinən SWT proqramı m şhurə Java proqram yazma al ti olanə Eclipse’dir.
28. Servlet
1997‘də Sun MicroSystems Servlet Texnologiyasını t qdim etdiə
Servlet texnologiyası, obyekt m rk zliə ə kod yazımına imkan verirdi.
Proqramçılara öz kitabxanalarını yazmağa imkan yaratdı.
29. Servlet
sas gördüyü işl rd n b zil riƏ ə ə ə ə :
Request tərəfindən göndərilən veril nl riə ə oxumaq.
Gələn HTTP Request və daşıdığı bilgilər ilə qarşılıqlı laq ni t minə ə ə
etm k.ə
Veril nl rə ə toplayıb, requestin tipine görə (Web, WAP, PDA, etc.)
responce hazırlamaq.
Requestə göndərilən HTTP responsu və daşıdığı m lumatlarə ilə qarşılıqlı
laq ni t min etm k.ə ə ə ə
Dinamik olaraq yaradılan cavabı, requestere geri göndermektir.
30. Servlet
Servlet, dinamik m zmun yaradanə bir Java Web komponentidir.
Bir Servlet, hər yönü ilə, hər şeydən öncə, bir Java obyektidir.
Java Servlet sinifi, Java compiler tərəfindən, Java bayt koduna çevirilir və
bir Servlet Konteyneri (Servlet Motoru) tərəfindən çalışdırılır.
Servlet Konteyneri Servletlərin Web, request/responce (ist k-cavab)ə
modelini istifadə edir.
Bu model HTTP (Hypertext Transfer Protocol) pratakolu üstündə
qurulmuşdur.
31. Servlet
Ümumi olaraq, Servletlər, Internet üzərində, HTTP pratakolu ilə istifadə
üçün yaranmışdır.
Amma, Servletlər pratakoldan müst qildirə . M s l nə ə ə , FTP ya da SMTP
istifad ed nə ə Servletler yazıla bilər.
Servletler, Java'nın, CGI (Common Gateway Interface) proqramlamasına
alternativ olaraq yaradıldı.
33. Servlet Container
İlk başda Servlet Motoru (Servlet Engine) adı ilə bilin nə və J2EE'nin
ortaya çıxması ilə Servlet Container adlandırılan proqramlar, Servletleri
və yaşam zamanlarını idar edirl rə ə
Servlet Container , HTTP protokolunun request v responceə modelini
dəstəkləm lidirə .
HTTPS (HTTP over SSL - SSL üzərindən HTTP) kimi digər lavə ə protokolları
da dəstəkləyir.
34. Servlet/Jsp
Problem: Println() funksiyası ilə HTML (!) .
Cavap: Java Server Page texnologiyası.
HTML və Java kodları iç-içə yazıla bilir.
Web proqramları JSP-mərkəzli olmağa başladı.
35. JSP (JAVA SERVER PAGES)
JSP spesifikasiyası Java Servlet API üzərinə qurulmuş dur, lakin Servlet və
JSP texnologiyaları arasında bəlli fərqlər vardır.
Proqramlama peş karlığıə t l b ed nə ə ə Servletlerin ksinə ə JSP daha geniş
bir programçı kütləsinə xitab edir.
JSP nin sas üstünlüyüə m zmununə prezentasiya tərəfindən ayrılmasıdır.
36. JSP’nin Üstünlükl riə
Statik və Dinamik m zmununə birbirindən ayrılması:
UI (User İnterface) üzərində edil nə çox kicik d yə işikliklər belə
servletin yenidən compile edilm sin ehtiyac yaradırə ə .
Dinamik ve statik m zmununə ayrı olmaları proqramların sabit və
əsnək olmalarına yol açmaqdadır.
JSP s hif l rində ə ə ə bəzı özəl script və etiketlər (taglar) istifadə
edil bilm ktıdirə ə .
JSP s hiə f sı avə tomatik olaraq compile edilir və JSP motoru
tərəfindən yene avtomatik olaraq web server içərisinə qoyulur.
37. JSP’nin Üstünlükl ri 2ə
Bir d fə ə yaz , hər yerdə çalışdır
JSP s hif l riə ə ə platformlar və web serverl rə arasında rahatlıqla
daşınabilməkdə və hər hansi bir deyişikliye ehtiyac
duymamaqdadır.
Servlet API tamamən s thil şdirilmişdir.ə ə
JSP servletin abstraklaşdırılmış halıdır.
Servletlər ilə edil nə hər şey JSP ilə edil .ə
38. Model-1/Model-2/MVC
JSP və Servlet Web proqramlarında bərabər istifad edilm y başladıə ə ə
Servlet, web iş axışıda JSP isə HTML və kirli işlər üçün istifad edilm yə ə ə
başladı.
JSP və Servlet'i bərabər istifad etm kə ə Model 2 olaraq adlandırılmağa
başladı.
Sadece JSP istifad etm kə ə Model 1 olaraq bilinir.
39. MVC(Model View Controller)
Model View Controller (Design Pattern)
User Interface v Business Logic birə birind n ayrılırə .
Java web'də n cox istifad edil nə ə ə Design Pattern ‘dir.
Sad cə ə Javaya özəl deyildir.Ümumi bir konseptdir.
C#, Ruby on rails, Python v sə . dillərdə də istifad edilirə .
41. MODEL NEDİR?
İş məntiqi (Business Logic) hiss sidirə .
Bir neç qatdan ibar t ola bil r.ə ə ə
Ümumiyy tl veril nl r bazasındakı m liyyatlar bu hiss d olurə ə ə ə ə ə ə ə
Controller'dan gələn veril nl riə ə işl yirə .
Model qatında hər hansı bir output edilm zə .
42. VIEW NEDİR?
Proqramın istifadıçiyə göstərilən interfeysin olduğu qatdır.
Html, Css, Javascript vb. bu qatda olur
Bu qatda minimum java kodunun yazılmağı hədəfdir.
43. CONTROLLER NƏDİR?
Proqramların qərar mexanizmasıdır.
Model ilə View arasında körpü işi görür.
View qatından gələn request’l riə model‘ə göndərir və Model qatından
aldığı m lumatlarıə view‘a gönd rirə .
44. MVC İSTİFAD ETM YİN ÜSTÜNÜKL RİƏ Ə Ə ?
İstifadiçiyə t qdim edil c kə ə ə kodlar ilə (Html, Css v sə .) , sistemin işl m yiniə ə
t min ed nə ə kodları birbirinden ayıraraq təmiz və sistemli kod yazmağı
asanlaşdırır.
Kodların daha asan optimizasiya edilm sin imkan verirə ə
Komanda içind kodların oxuna bilirliy n imkan yaradir.ə ə ə
User Interface t r find kiə ə ə d yə işikliklər iş məntiqi hiss sin toxunulmadanə ə
edil bilirə .
Front-End Developer, Back-End Developer birbirinden müst qilə olaraq işl yə ə
bil iə .
X talarıə yaxalama və kodu test etməyi asanlaşdırır.
45. II - Web Framework
Texnologiyaları
45
GWTGWTGWTGWT
Niy FrameəNiy Frameə wworkork ??Niy FrameəNiy Frameə wworkork ??
Framework nFramework n dirədirə ??Framework nFramework n dirədirə ??
StrutsStrutsStrutsStruts
JSFJSFJSFJSF
Spring MVCSpring MVCSpring MVCSpring MVC
47. NİYƏ FRAMEWORK?
Vaxt itkisi v enerji itkisi azalır.ə
Standart çalışma sistemini t min edir.ə
Komanda içind işl m k asanlaşır.ə ə ə
Standart kodlama sistemini t min edilir.ə
Framework il yazılan proqramlar daha etibarlı olurə .
Ş kil - 1ə
49. GOOGLE WEB TOOLKIT
Niy Gə WT ?
GWT version 1.0 May 16, 2006.
Browser’l rd ki f rqlilikl rin meydana g tirdiyi zaman itkisi.ə ə ə ə ə
JavaScript kodların yazımı, baxımı və t hlük sizliyinin t mini ç tindir.ə ə ə ə
Client & Server proqramlarkən proqramlama dili ayrılığı problemi.
Java kodu yazılır, JavaScript yazılmır.
Z ngin komponentə kitabxanaları.
AJAX.
50. Java dili ile yazılmış ajax proqramlarını browserdən müst qilə və optimal
JavaScript koduna çevirir.
GWT Compiler JavaScript kodları sür tli işl y c kə ə ə ə optimum kodlara
çevirir
Ölü kodları(siniflər, metodlar) Compile vaxti silir və kodun boyunu
kiçildir.
Java kodunuzu yazdıqdan sonra hər dəf Compile etm k lazım olmur.ə ə
Opera IE, Firefox, Mozilla, Safari də işl yirmi dem d n proqramı deployə ə ə
edil bil r.ə ə
GOOGLE WEB TOOLKIT
52. Apache Struts, Java dünyasına standart bir MVC t min etm k üçünə ə Craig
R. McClanahan tərəfindan May 2000'də başladı.
Struts, hər hansı ölçüd ki proqramlarə üçün uyğundur.
Özün xas kitabxanaları varə .
Struts.xml
58. SPRING MVC
1. Client Servere http request göndərir.
2. Gelen request Front Controller (DispatcherServlet)
tərəfindən qarşılanır ve uyğun Handler Mapping'ləri
tapmağa çalışır.
3. Handler Mapping'lərin vasit si ilə ə DispatcherServlet ist yə i
uyğun controller'e göndərir.
4. Controller ist yə i işl yirə və
FrontController‘ə ModelandView obyekti döndərir.
5. FrontController bu göndərilən obyekti View Resolver ilə
görüntü hazırlayır.
6. Daha sonra hazırlanan s hiə fə istifad çiy gönd rilirə ə ə .