ÿþB u d o w a n o w o c z e s n y c h a p l i k a c j i i n t e r n e t o w y c h
z w y k o r z y s t a n i e m j z y k a J a v a , t e c h n o l o g i i
W e b M a c r o i T o p i c M a p s
J a k u b G a Bs k i , K a r o l F o r e m s k i , A r k a d i u s z B i g o s , K r z y s z t o f K a w a , Z b y s z k o K r ó l i k o w s k i
I n s t y t u t I n f o r m a t y k i P o l i t e c h n i k i P o z n a Ds k i e j
P i o t r o w o 3 A , 6 0 - 9 6 5 P o z n a D
Z b y s z k o . K r o l i k o w s k i @ c s . p u t . p o z n a n . p l
S t r e s z c z e n i e . W p r a c y z o s t a n p r z e d s t a w i o n e z a s t o s o w a n i a j z y k a J a v a i t e c h n o l o g i i z n i m z w i z a n y c h j a k o
u n i w e r s a l n y c h n a r z d z i d o b u d o w a n i a a p l i k a c j i i n t e r n e t o w y c h w k o n t e k [c i e k l a s y c z n e j t r ó j w a r s t w o w e j
a r c h i t e k t u r y d l a t e g o t y p u a p l i k a c j i . O m ó w i o n e z o s t a n n a s t p u j c e t e c h n o l o g i e : J D B C j a k o u n i w e r s a l n e
l c z e d o b a z d a n y c h , J a v a S e r v l e t s w p o l c z e n i u z t e c h n o l o g i W e b M a c r o j a k o w a r s t w a [r o d k o w a ( t z w .
b u s i n e s s a p p l i c a t i o n l o g i c ) , X M L j a k o f o r m a p r z e c h o w y w a n i a d o k u m e n t ó w w b a z i e d a n y c h o r a z T o p i c M a p s
j a k o m e t o d a d e f i n i o w a n i a p o w i z a D m i d z y d a n y m i . W a r t y k u l e z a m i e s z c z o n a z o s t a n i e p r ó b a p o r ó w n a n i a
t y c h t e c h n o l o g i i z i n n y m i d o s t p n y m i r o z w i z a n i a m i . W y m i e n i o n e t e c h n o l o g i e o m ó w i o n e z o s t a n w o p a r c i u
o d o [w i a d c z e n i a z d o b y t e p r z e z a u t o r ó w p o d c z a s r e a l i z a c j i p r o j e k t u p o r t a l u i n t e r n e t o w e g o w N i e m c z e c h . .
1 . W p r o w a d z e n i e
S i e I n t e r n e t w c z o r a j t o s i e p r o j e k t o w a n a i b u d o w a n a d l a n a u k o w c ó w . N o w e c z a s y t o r ó w n i e |
n o w e w y m a g a n i a . S p o w o d o w a l y o n e , |e r ó w n i e | I n t e r n e t m u s i a l s i z m i e n i . D z i s i e j s z y I n t e r n e t t o
s i e z o r i e n t o w a n a n a z a s t o s o w a n i a n a u k o w e , a l e t a k |e n a b i z n e s . F i r m y i n t e r n e t o w e s t y m u l u j
o b e c n i e r o z w ó j g o s p o d a r c z y w i e l u k r a j ó w i n a l e |y s i z n i m i l i c z y . T a k i e u p o w s z e c h n i e n i e s i
I n t e r n e t u w y m u s i l o p o w s t a n i e w i e l u n o w y c h t e c h n o l o g i i , k t ó r e u l a t w i a j ( p r z y s p i e s z a j ) b u d o w
a p l i k a c j i i n t e r n e t o w y c h . P o w s t a l y t a k |e l i c z n e t e c h n o l o g i e i n a r z d z i a d o i n t e g r a c j i i s t n i e j c y c h j u |
s y s t e m ó w z n o w y m i . N i n i e j s z a p r a c a j e s t p o [w i c o n a p r z e g l d o w i t y c h t e c h n o l o g i i . W p r a c y
p o s t a r a m y s i p r z e d s t a w i z n a n e i p o w s z e c h n i e u |y w a n e t e c h n o l o g i e , a t a k |e t e c h n o l o g i e
n o w a t o r s k i e . D o k o n a m y p r ó b y i c h p o r ó w n a n i a , p o k a |e m y i c h z a l e t y i w a d y , s z a n s e r o z w o j u o r a z
j a k m o |n a j e w y k o r z y s t a p r z y b u d o w i e n o w o c z e s n y c h a p l i k a c j i ( p o r t a l i ) i n t e r n e t o w y c h .
2 . P r z e g l d d o s t p n y c h d o t y c h c z a s t e c h n o l o g i i b u d o w y a p l i k a c j i
i n t e r n e t o w y c h
P o c z t k i I n t e r n e t u t o w i e l o [ p r o t o k o l ó w ( V e r o n i c a , G o p h e r , X . 5 0 0 . . . ) . I c h r o z w ó j z o s t a l w
z n a c z n y m s t o p n i u z a h a m o w a n y p r z e z p o j a w i e n i e s i W W W ( W o r l d W i d e W e b ) . P o c z t k i W W W
t o H T M L i s t r o n y s t a t y c z n e . K o l e j n y k r o k t o g r a f i c z n e p r z e g l d a r k i W W W ( N e t s c a p e , M o s a i c ) .
J e d n a k i t o s z y b k o s t a l o s i n i e w y s t a r c z a j c e . N a t u r a l n y m , a z a r a z e m n a j p r o s t s z y m s p o s o b e m
u s u n i c i a s y g n a l i z o w a n y c h n i e d o g o d n o [c i s t a l o s i r o z w i z a n i e p o l e g a j c e n a p o l c z e n i u
t e c h n o l o g i i b a z d a n y c h i s t r o n W W W . I n f o r m a c j e s p r z e c h o w y w a n e w b a z i e d a n y c h s y s t e m u
i n f o r m a c y j n e g o , a n a s t p n i e p r z e z m e c h a n i z m y p o [r e d n i c z c e p r z e t w a r z a n e n a k o d s t r o n j z y k a
H T M L .
P r z y j r z y j m y s i n a j p i e r w t e c h n o l o g i i C G I ( a n g . C o m m o n G a t e w a y I n t e r f a c e ) . P o l e g a o n a n a
u r u c h a m i a n i u o s o b n y c h p r o c e s ó w w [r o d o w i s k u u r u c h o m i e n i o w y m s e r w e r a W W W . P r o g r a m m o |e
b y n a p i s a n y w d o w o l n y m j z y k u , k t ó r e g o k o m p i l a t o r l u b i n t e r p r e t e r j e s t d o s t p n y n a s e r w e r z e .
M o |e b y t o z a r ó w n o i n t e r p r e t o w a n y j z y k s k r y p t o w y , n a p r z y k l a d P e r l , j a k i j z y k k o m p i l o w a n y
C l u b P a s c a l . P r o g r a m w C G I m o |e k o m u n i k o w a s i , n a p r z y k l a d z b a z d a n y c h , z a p o m o c
s t a n d a r d u O D B C ( a n g . O p e n D a t a b a s e C o n n e c t i v i t y ) , a r e z u l t a t y w p o s t a c i s f o r m a t o w a n e g o
H T M L - a s k i e r o w a n e b e z p o [r e d n i o d o p r z e g l d a r k i . J e d n a k C G I m a s p o r o w a d . P o p i e r w s z e ,
1 3 8 J a k u b G a l s k i , K a r o l F o r e m s k i , A r k a d i u s z B i g o s , K r z y s z t o f K a w a , Z b y s z k o K r ó l i k o w s k i
k a |d e |d a n i e p o w o d u j e p o n o w n e u r u c h o m i e n i e p r o g r a m u C G I . D r u g w a d j e s t t r u d n o [
p r z e n o s z e n i a p r o g r a m ó w n a i n n e p l a t f o r m y s p r z t o w o - p r o g r a m o w e .
I n n t e c h n o l o g i j e s t P H P . P H P j e s t s p e c j a l n y m j z y k i e m s k r y p t o w y m , k t ó r y j e s t u m i e s z c z o n y
w k o d z i e s t r o n H T M L - o w y c h n a s e r w e r z e W W W . P o d c z a s p o b i e r a n i a t a k i c h s t r o n s k r y p t j e s t
w y k o n y w a n y g e n e r u j c o d p o w i e d n i r e z u l t a t . Z a l e t a m i P H P j e s t l a t w a i n t e g r a c j a z b a z a m i d a n y c h ,
d o s t p n o [ w i e l u f u n k c j i i p r o s t o t a . P H P j e s t o b e c n i e s z e r o k o u |y w a n t e c h n o l o g i n a w e t p r z y
t w o r z e n i u d u |y c h p o r t a l i .
R ó w n i e | d u |e f i r m y t a k i e j a k : N e t s c a p e c z y O r a c l e p r z e d s t a w i l y s w o j e r o z w i z a n i a d o
t w o r z e n i a p o r t a l i i n t e r n e t o w y c h . N e t s c a p e o f e r u j e b e z p o [r e d n i i n t e r f e j s d o s w o i c h s e r w e r ó w W e b -
o w y c h N S A P I ( a n g . N e t s c a p e S e r v e r A P I ) . N S A P I j e s t z b i o r e m f u n k c j i r o z s z e r z a j c y c h
f u n k c j o n a l n o [ s e r w e r a W e b - u . N S A P I j e s t r o z w i z a n i e m o w i e l e s z y b s z y m o d C G I o f e r u j e w i e l e
f u n k c j i z a r ó w n o d o p o l c z e D b a z o - d a n o w y c h i a u t o r y z a c j i u |y t k o w n i k ó w . S z y b k o [ d z i a l a n i a
w y n i k a z l e p s z e j i n t e g r a c j i z s e r w e r e m . A p l i k a c j e N S A P I m o g b y u r u c h a m i a n e j a k o p r o c e s
s e r w e r a , m o g w s p ó l d z i e l i d a n e i z a s o b y z s e r w e r e m .
K o l e j n p l a t f o r m z a o f e r o w a l a f i r m a O r a c l e . J e s t t o O r a c l e W e b A p p l i c a t i o n S e r v e r ( O W A S )
+ P L / S Q L C a r t r i d g e . O W A S j e s t s e r w e r e m W W W r o z s z e r z o n y m o m o |l i w o [ g e n e r o w a n i a s t r o n
H T M L k i e r o w a n y c h d o p r z e g l d a r k i . F u n k c j o n a l n o [ s e r w e r a r o z s z e r z o n a j e s t o P L / S Q L
C a r t r i d g e , k t ó r y p o z w a l a t w o r z y i p r z e c h o w y w a n a s e r w e r z e p r o c e d u r y n a p i s a n e w j z y k u
P L / S Q L , s l u |c e d o g e n e r o w a n i a s t r o n w H T M L - u . Z y s k u j e m y d z i k i t e m u d o s k o n a l d o s t p n o [
d o d a n y c h ( p o z i o m P L / S Q L - a ) z a c e n u m i e s z c z a n i a k o d u j z y k a P L / S Q L i H T M L r a z e m . Z
n a s z y c h d o [w i a d c z e D w y n i k a , |e t a k i e p o d e j [c i e p r z y d u |y c h p r o j e k t a c h z m n i e j s z a p r z e j r z y s t o [
k o d u , u t r u d n i a z m i a n y i z a r z d z a n i e p r o j e k t e m . W a d t e j t e c h n o l o g i i j e s t t a k |e s t o s u n k o w o w y s o k a
c e n a .
h t t p : / / w w w . a d r e s . c o m . p l / p r o c 1
A P P L I C A T I O N
S E R V E R
P R Z E G L D A R K A
P L / S Q L
c a r t r i g e
s t r o n a w H T M L - u
w y w o Ba n i e p r o c e d u r y
c r e a t e p r o c e d u r e p r o c 1
H T M L
i s
b e g i n
O R A C L E 8 I
. . . .
. . . .
P R O C E D U R Y W P L / S Q L e n d p r o c 1 ;
R y s . 1 . A r c h i t e k t u r a O r a c l e W e b A p p l i c a t i o n S e r v e r i P L / S Q L C a r t r i d g e
W s z y s t k i e s y g n a l i z o w a n e p o w y |e j t e c h n o l o g i e m a j s w o j e z a l e t y i w a d y . W y k o r z y s t y w a n i e
C G I o z n a c z a m a l e l a s t y c z n o [ ( u z a l e |n i e n i e s i o d j z y k a i p l a t f o r m y s y s t e m o w e j ) , s t o s u n k o w o
B u d o w a n o w o c z e s n y c h a p l i k a c j i i n t e r n e t o w y c h z w y k o r z y s t a n i e m j z y k a J a v a . . . 1 3 9
n i s k s z y b k o [ d z i a l a n i a ( k a |d e |d a n i e p o w o d u j e u r u c h o m i e n i e n o w e j i n s t a n c j i p r o g r a m u ) . P H P
p o m i m o w i e l u s w o i c h z a l e t ( l a t w y d o s t p d o b a z d a n y c h , s z y b k o [, d o b r e w s p a r c i e t e c h n i c z n e ) m a
t a k |e w a d y . N a p r z y k l a d , w d u |y c h p r o j e k t a c h u m i e s z c z a n i e s k r y p t ó w n a p i s a n y c h w P H P
n a p r z e m i e n n i e z H T M L - e m z m n i e j s z a j e g o c z y t e l n o [ i u t r u d n i a d o k o n y w a n i e z m i a n . S t o s u j c
N S A P I z y s k u j e m y d u | s z y b k o [ d z i a l a n i a z a c e n c a l k o w i t e g o u z a l e |n i e n i a s i o d p l a t f o r m y
f i r m y N e t s c a p e . R o z w i z a n i e f i r m y O r a c l e j e s t w y d a j n e i o t w a r t e n a r o z w ó j , m a j e d n a k p e w n e
m a n k a m e n t y [ 1 ] . Z o s t a l o t o p r z e z a u t o r ó w n i n i e j s z e g o a r t y k u l u z a o b s e r w o w a n e p o d c z a s r e a l i z a c j i
p r o j e k t u i n t e r n e t o w e g o i n f o r m a t o r a t u r y s t y c z n e g o d l a g m i n y K r o k o w a [ 1 , 2 ] . C z [ s t r o n
i n f o r m a t o r a b y l y t o s t r o n y s t a t y c z n e , n a t o m i a s t r e s z t a b y l a g e n e r o w a n a d y n a m i c z n i e z b a z y d a n y c h
p r z y p o m o c y O r a c l e P L / S Q L C a r t r i d g e . S k l a d o w a n e n a s e r w e r z e p r o c e d u r y , n a p i s a n e w j z y k u
P L / S Q L g e n e r o w a l y n a p o d s t a w i e z a p y t a D d o b a z y d a n y c h k o d w H T M L - u . R o z w i z a n i e m i a l o
j e d n w a d , p o d o b n i e j a k w P H P k o d P L / S Q L - a p r z e p l a t a l s i z H T M L - e m . U t r u d n i a l o t o w
z n a c z n y m s t o p n i u z a r z d z a n i e l o g i k j a k i s a m y m w y g l d e m s t r o n y . W p i e r w n a l e |a l o
w y g e n e r o w a s t r o n y p r z y u |y c i u g e n e r a t o r ó w H T M L - a , a b y n a s t p n i e z a m i e n i a j e n a c i g
i n s t r u k c j i P L / S Q L - a w y [w i e t l a j c y c h s k o n s t r u o w a n e s t r o n y . T y m s a m y m w y k o n y w a n a b y l a t a
s a m a p r a c a d w a r a z y . A r c h i t e k t u r t a k i e g o r o z w i z a n i a p r z e d s t a w i o n o n a r y s u n k u 1 .
3 . J z y k J a v a i t e c h n o l o g i e z n i m z w i z a n e j a k o u n i w e r s a l n e
n a r z d z i a b u d o w y a p l i k a c j i i n t e r n e t o w y c h
3 . 1 . C h a r a k t e r y s t y k a o g ó l n a t e c h n o l o g i i j z y k a J a v a
T e n p o w s t a l y k i l k a l a t t e m u j z y k p r o g r a m o w a n i a w z n a c z c y s p o s ó b z m i e n i l p o j c i e
p r o j e k t o w a n i a i b u d o w a n i a o [r o d k ó w w e b o w y c h . J a v a z a w i e r a e l e m e n t y p r o g r a m o w a n i a z a r ó w n o
s t r u k t u r a l n e g o j a k i o b i e k t o w e g o , z d a r z e n i o w e g o i w s p ó l b i e |n e g o . J a v a j e s t z a r a z e m b a r d z o
b e z p i e c z n y m [r o d o w i s k i e m p i s a n i a p r o g r a m ó w . W o k ó l J a v y r o z w i n l o s i b a r d z o w i e l e
t e c h n o l o g i i , t a k i c h j a k : J a v a S e r v l e t s , J D B C ( a n g . J a v a D a t a b a s e C o n n e c t i v i t y ' ) , J S P ( a n g . J a v a
S e r v e r P a g e s ) , R M I ( a n g . R e m o t e M e t h o d I n v o c a t i o n ) , W e b M a c r o . K l a s y J a v y s t a n d a r d o w o
d o s t a r c z a j f u n k c j e k r y p t o g r a f i c z n e n i e z b d n e p o d c z a s t w o r z e n i a a p l i k a c j i e - b i z n e s o w y c h . J a v a
w s p o m a g a t a k |e p r o c e s p a r s i n g u j z y k a X M L .
W E B S E R V E R
J A V A
P R Z E G L D A R K A
O R A C L E 8 I
W E B M A C R O
P R Z E G L D A R K A
S T R O N Y
|d a n i e J D B C
T O P I C M A P S
R y s . 2 . A r c h i t e k t u r a n o w o c z e s n e g o p o r t a l u i n t e r n e t o w e g o o p a r t a n a t e c h n o l o g i i j z y k a J a v a
1 4 0 J a k u b G a l s k i , K a r o l F o r e m s k i , A r k a d i u s z B i g o s , K r z y s z t o f K a w a , Z b y s z k o K r ó l i k o w s k i
P r z e d s t a w i m y o b e c n i e j a k p r z y z a s t o s o w a n i u j z y k a J a v a i t e c h n o l o g i i z n i m z w i z a n y c h o r a z
b a z d a n y c h m o |n a z b u d o w a n o w o c z e s n y p o r t a l i n t e r n e t o w y , c h a r a k t e r y z u j c y s i d u |
w y d a j n o [c i p r a c y , e l a s t y c z n o [c i i o t w a r t o [c i r o z w i z a D. R y s u n e k 2 p r z e d s t a w i a o g ó l n
a r c h i t e k t u r t a k i e g o s y s t e m u .
N a j n i |s z w a r s t w ( r y s . 3 ) s t a n o w i s e r w e r b a z y d a n y c h , n p . O r a c l e 8 i . N a n i m p r z e c h o w y w a n e
s d a n e w p o s t a c i X M L - a . P r z e c h o w y w a n e d o k u m e n t y s w p o s t a c i t a k z w a n y c h T o p i c M a p s .
T o p i c M a p s s z b i o r e m d o k u m e n t ó w w S G M L - u l u b j a k w n a s z y m p r z y p a d k u w X M L - u . T o p i c
M a p s w y k o r z y s t y w a n e s d o d e f i n i o w a n i a z a l e |n o [c i i z w i z k ó w p o m i d z y t a k z w a n y m i t o p i k a m i .
T o p i c M a p s z o s t a n b l i |e j p r z e d s t a w i o n e w d a l s z e j c z [c i a r t y k u l u .
O R A C L E 8 I
D A N E W
X M L
T O P I C M A P S
( R E S O U R C E S )
R y s . 3 . N a j n i |s z a w a r s t w a a r c h i t e k t u r y s y s t e m u w y k o r z y s t u j c e g o t e c h n o l o g i J a v a
W a r s t w [r o d k o w s t a n o w i s e r w e r W W W , n a p r z y k l a d N e t s c a p e E n t e r p r i s e S e r v e r 4 . 0 . N a
s e r w e r z e z n a j d u j e s i z b i ó r s t r o n s t a t y c z n y c h o r a z z b i ó r t a k z w a n y c h s e r v l e t ó w n a p i s a n y c h w
j z y k u J a v a w y k o r z y s t u j c y c h t e c h n o l o g i W e b M a c r o o r a z i n t e r f e j s J D B C d o l c z e n i a s i z b a z
d a n y c h .
S e r v l e t y s p r o g r a m a m i w y k o n y w a n y m i p o s t r o n i e s e r w e r a W W W j a k o w t k i w i r t u a l n e j
m a s z y n y J a v y - J V M ( a n g . J a v a V i r t u a l M a c h i n e ) . S e r v l e t m o |e z o s t a u r u c h o m i o n y w r a z z
p r z e k a z a n y m i d o D p a r a m e t r a m i , n a p r z y k l a d z f o r m u l a r z a . P o n i e w a | s e r v l e t j e s t p r o g r a m e m
n a p i s a n y m w J a v i e , m o |n a w n i m k o r z y s t a z c a l e g o d o s t p n e g o i n t e r f e j s u J a v a A P I - w t y m z
m e c h a n i z m ó w d o s t p u d o b a z d a n y c h ( J D B C ) , z d a l n y c h w y w o l a D m e t o d ( R M I ) o r a z i n t e r f e j s u
C O R B A . P a r a m e t r y p o b r a n e z e s t r o n y m o |n a p r z e k a z y w a d o n a s t p n e g o s e r v l e t u , t w o r z c w t e n
s p o s ó b k a s k a d , w k t ó r e j k a |d y s e r v l e t o d p o w i e d z i a l n y j e s t z a f r a g m e n t w i t r y n y . N a w y j [c i u s e r v l e t
g e n e r u j e s t r o n w H T M L - u . D o u r u c h o m i e n i a s e r v l e t ó w k o n i e c z n e j e s t f u n k c j o n o w a n i e s e r w e r a
W W W z z a i m p l e m e n t o w a n y m m o d u l e m J a v y . N a j p o p u l a r n i e j s z y m z n i c h j e s t o b e c n i e A p a c h e z
d o d a t k o w y m m o d u l e m j S e r v e .
J e d n a k t a k i e p o d e j [c i e n i e w i e l e r ó |n i l o b y s i o d C G I , c z y O r a c l e W e b A p p l i c a t i o n S e r v e r z
P L / S Q L C a r t r i d g e . Z y s k u j e m y n o w o c z e s n y j z y k p r o g r a m o w a n i a , l a t w y d o s t p d o b a z d a y c h ,
p r o g r a m o w a n i e r o z p r o s z o n e z a c e n u m i e s z c z a n i a k o d u H T M L w e w n t r z p r o g r a m u w J a v i e . A b y
t e m u z a p o b i e c m o |n a z a s t o s o w a n o w a t o r s k t e c h n o l o g i W e b M a c r o . C z y m j e s t W e b M a c r o ?
W e b M a c r o t o z b i ó r k l a s J a v y r o z s z e r z a j c y f u n k c j o n a l n o [ s e r v l e t ó w o m o |l i w o [ o d i z o l o w a n i a
l o g i k i s e r v l e t ó w o d p r o j e k t o w a n i a w y g l d u s t r o n p r z e z n i e g e n e r o w a n y c h . T a k i e p o d e j [c i e w
d u |y m s t o p n i u u l a t w i a z a r z d z a n i a p r a c p r o g r a m i s t ó w i p r o j e k t a n t ó w s t r o n p o d c z a s r e a l i z a c j i
d u |e g o p r o j e k t u . T e c h n o l o g i a W e b M a c r o z o s t a n i e o m ó w i o n a d o k l a d n i e w d a l s z e j c z [c i p r a c y .
S e r v l e t y n a p i s a n e w J a v i e d o l c z e n i a s i z b a z d a n y c h w y k o r z y s t u j i n t e r f e j s J D B C .
B u d o w a n o w o c z e s n y c h a p l i k a c j i i n t e r n e t o w y c h z w y k o r z y s t a n i e m j z y k a J a v a . . . 1 4 1
T r z e c i w a r t s t w s t a n o w i p r z e g l d a r k a W W W . T u t a j w y k o n y w a n e s s k r y p t y n a p i s a n e w j z y k u
J a v a S c r i p t , o r a z a p l e t y n a p i s a n e w J a v i e . P r z y p o m o c y p r z e g l d a r k i z a c h o d z i r ó w n i e | i n t e r a k c j a z
p o r t a l e m .
W d a l s z e j c z [c i p r z e d s t a w i m y b l i |e j w s p o m n i a n e t e c h n o l o g i e t j . W e b M a c r o , T o p i c M a p s ,
X M L , J D B C w y k o r z y s t y w a n e p o d c z a s b u d o w y d u |y c h p o r t a l i i n t e r n e t o w y c h .
3 . 2 . S e r v l e t y
S e r v l e t y s r o z s z e r z e n i a m i s e r w e r ó w w e b o w y c h k l a s a J a v y m o |e z o s t a z a l a d o w a n a
d y n a m i c z n i e w c e l u r o z s z e r z e n i a f u n k c j o n a l n o [c i s e r w e r a . S e r v l e t y s p o d o b n e d o f i r m o w y c h
r o z s z e r z e D s e r w e r a p o z a t y m , |e d z i a l a j w [r o d o w i s k u J a v a V i r t u a l M a c h i n e , p r z e z c o s
b e z p i e c z n e i p r z e n a s z a l n e .
W p r z e c i w i e Ds t w i e d o C G I i F a s t C G I , k t ó r e u |y w a j w i e l u p r o c e s ó w w c e l u o b s l u |e n i a
o s o b n y c h |d a D, s e r v l e t y s w c a l o [c i w y k o n y w a n e w o d s e p a r o w a n y c h w t k a c h p r o c e s u g l ó w n e g o
s e r w e r a . K o l e j n z a l e t s e r v l e t ó w j e s t t o , |e s o n e p r z e n a s z a l n e w d w ó c h a s p e k t a c h : w s t o s u n k u d o
s y s t e m u o p e r a c y j n e g o ( J V M ) o r a z s e r w e r a W W W . S e r v l e t y z e w z g l d u n a s w o j n a t u r p o z o s t a j
w s i l n y m z w i z k u z s e r w e r e m , n a p r z y k l a d s e r v l e t m o |e u |y s e r w e r a w c e l u t r a n s l a c j i [c i e |e k
d o s t p u d o p l i k ó w , w y k o n y w a l o g o w a n i e , p r z e p r o w a d z a p r o c e s a u t o r y z a c j i , w y k o n y w a
m a p o w a n i e t y p ó w M I M E ( a n g . M u l t i p u r p o s e I n t e r n e t M a i l E x t e n s i o n s ) . S e r v l e t y c e c h u j s i t a k |e
b e z p i e c z e Ds t w e m w y n i k a j c y m w p r o s t z j z y k a J a v a ( n p . [c i s l a k o n t r o l a t y p ó w , o b s l u g a b l d ó w
p o p r z e z w y j t k i , m o |l i w o [ u |y c i a J a v a S e c u r i t y M a n a g e r ) . N a r y s u n k u 4 p r z e d s t a w i o n o o g ó l n y
s c h e m a t |y c i a s e r v l e t u .
W e b s e r w e r z s e r v l e t a m i
P r o c e s g Bó w n y
J V M
w t e k
{d a n i e d l a S e r v l e t 1
J V M
1 .
w t e k
{d a n i e d l a S e r v l e t 2
S e r v l e t 2
w t e k
{d a n i e d l a S e r v l e t 1
R y s . 4 . C y k l |y c i a s e r v l e t u
3 . 3 . W e b M a c r o
W e b M a c r o t o z b i ó r k l a s r o z s z e r z a j c y c h f u n k c j o n a l n o [ s t a n d a r d o w y c h s e r v l e t ó w o m o |l i w o [
k o r z y s t a n i a z s z a b l o n ó w . T y m s a m y m u m o |l i w i a j o n e r o z d z i e l e n i e i z r ó w n o l e g l e n i e p r a c y
p r o j e k t a n t ó w s t r o n i p r a c y p r o g r a m i s t ó w . W e b M a c r o j e s t r o z p o w s z e c h n i a n e z l i c e n c j G P L , l c z n i e
1 4 2 J a k u b G a l s k i , K a r o l F o r e m s k i , A r k a d i u s z B i g o s , K r z y s z t o f K a w a , Z b y s z k o K r ó l i k o w s k i
z e zr ó d l a m i . J a k n a r a z i e d o s t p n a j e s t t y l k o w e r s j a p r e - r e l e a s e , j e s t o n a j e d n a k b a r d z o d o b r z e
p r z e t e s t o w a n a i n i e s p r a w i a n a j m n i e j s z y c h p r o b l e m ó w .
P r o g r a m i s t a p i s z c s e r v l e t , k o r z y s t a j c z W e b M a c r o t w o r z y k l a s d z i e d z i c z c z k l a s y
W M S e r v l e t , w k t ó r e j m u s i o p r o g r a m o w a m e t o d h a n d l e ( ) . T o w l a [n i e t a m e t o d a a n a l o g i c z n i e d o
m e t o d d o G e t ( ) i d o P o s t ( ) w k l a s y c z n y c h s e r v l e t a c h - j e s t w y k o n y w a n a a b y o b s l u |y n a d c h o d z c e
|d a n i e H T T P . N a s t p n i e m u s i t y l k o w y z n a c z y w a r t o [c i z m i e n n y c h j a k i e m a j b y d o s t p n e
p o d c z a s p r z e t w a r z a n i a s z a b l o n u ( a n g . t e m p l a t e ) o r a z o c z y w i [c i e o k r e [l i , k t ó r e g o s z a b l o n u
W e b M a c r o m a u |y d o w y g e n e r o w a n i a d o k u m e n t u . W s z y s t k i e z m i e n n e , k t ó r e m a j b y w i d o c z n e
p o d c z a s p r z e t w a r z a n i a s z a b l o n u p r o g r a m i s t a u m i e s z c z a w s p e c j a l n y m o b i e k c i e z w a n y m
k o n t e k s t e m . W k o n t e k [c i e m o |n a u m i e s z c z a d o w o l n e g o t y p u o b i e k t y a t a k |e k o l e k c j e o b i e k t ó w
( n p . t a b l i c e ) . Z a d a n i e m p r o j e k t a n t a s t r o n j e s t s t w o r z e n i a p o t r z e b n y c h s z a b l o n ó w , k t ó r e n i e w i e l e
r ó |n i s i o d s t a n d a r d o w y c h d o k u m e n t ó w H T M L . Z a w i e r a j o n e t y l k o k i l k a d o d a t k o w y c h
d y r e k t y w u m o |l i w i a j c y c h d o s t p d o d a n y c h u d o s t p n i a n y c h p r z e z p r o g r a m i s t . S z a b l o n j e s t
p o d d a w a n y p r o c e s o w i p a r s i n g u p r z e z W e b M a c r o i p r z e t w a r z a n y d o w e w n t r z n e j r e p r e z e n t a c j i ( d l a
w i k s z e j e f e k t y w n o [c i ) . S z a b l o n a n a l i z o w a n y j e s t r a z , n a t o m i a s t w y k o n y w a n y w i e l e r a z y ( z a
k a |d y m r a z e m z i n n z a w a r t o [c i k o n t e k s t u ) .
3 . 3 . 1 . J z y k u |y w a n y w s z a b l o n a c h
J z y k d o s t p n y w s z a b l o n a c h n i e n a l e |y t r a k t o w a j a k o j z y k s k r y p t o w y . Z a l o |e n i e m t w ó r c ó w
W e b M a c r o b y l o r o z d z i e l e n i e l o g i k i a p l i k a c j i o d j e j w y g l d u i d l a t e g o j e s t t o j z y k b a r d z o p r o s t y i w
d u |y m s t o p n i u i n t u i c y j n y . P o n i |e j p r z e d s t a w i m y j a k w t y m j z y k u m o |n a u z y s k a d o s t p d o
z m i e n n y c h , j a k n a w i g o w a p o k o l e k c j a c h o b i e k t ó w , n a d a w a w a r t o [c i z m i e n n y m o r a z k o r z y s t a z
i n s t r u k c j i w a r u n k o w y c h .
Z m i e n n e
Z m i e n n e t o n a j p r o s t s z y s p o s ó b n a d o s t p d o i n f o r m a c j i d o s t p n y c h w k o n t e k [c i e . Z m i e n n e w
s z a b l o n a c h p o p r z e d z o n e s z n a k i e m $ ( p o d o b n i e j a k w j z y k u P e r l ) , n a p r z y k l a d :
$ T i t l e
$ C u s t o m e r . N a m e
$ C u s t o m e r . P r o d u c t s . f i n d P r o d u c t ( w i n d o w ) . P a r t N o
K a |d a z e z m i e n n y c h w s k a z u j e n a j a k i [ o b i e k t w k o n t e k [c i e . Z a d a n i e m W e b M a c r o j e s t
z n a l e z i e n i e p o p r a w n e j w a r t o [c i w k o n t e k [c i e , n a t o m i a s t p r o g r a m i s t a m u s i z a d b a o t o b y t a w a r t o [
s i t a m z n a l a z l a . O b i e k t C u s t o m e r m a w l a s n o [ ( p o l e l u b o d p o w i e d n i m e t o d ) N a m e . D o
w y d o b y c i a p o s z c z e g ó l n y c h w l a s n o [c i s l u |y o p e r a t o r k r o p k a . O p e r a t o r a t e g o m o |n a u |y w a
w i e l o k r o t n i e a b y d o s t a s i d o |d a n e j w a r t o [c i . T r z e c i p r z y k l a d z a w i e r a w y w o l a n i e m e t o d y
f i n d P r o d u c t ( ) z p a r a m e t r e m . O c z y w i [c i e w w i k s z o [c i p r z y p a d k ó w w y s t a r c z y p r o s t e o d w o l y w a n i e
s i d o p ó l w o b i e k t a c h , a l e c z a s a m i m o |e b y k o n i e c z n e w y w o l a n i e m e t o d y n a r z e c z j a k i e g o [
o b i e k t u w k o n t e k [c i e c o W e b M a c r o t a k |e u m o |l i w i a .
S t a Be
S t a Be w W e b M a c r o m o g b y j e d n y m z s z e [c i u t y p ó w : s l o w o , l i c z b a , w a r t o [ l o g i c z n a , k o l e k c j a ,
w s k a zn i k n a z m i e n n , l a Dc u c h z n a k ó w . S Bo w o t o c i g l i t e r i c y f r , n a p r z y k l a d : h e l l o 1 . S d w a
s p e c j a l n e s l o w a : t r u e i f a l s e , k t ó r e r e p r e z e n t u j w a r t o [c i l o g i c z n e . L i c z b a t o c i g c y f r , n a p r z y k l a d :
# s e t $ a = 1 0 j e s t r ó w n o w a |n e u m i e s z c z e n i u w k o n t e k [c i e o b i e k t u I n t e g e r ( 1 0 ) . M o |e m y
w y m u s i n a W e b M a c r o p o t r a k t o w a n i e l i c z b y j a k o t y p u L o n g p r z e z d o d a n i e s u f i k s u l l u b L n a
p r z y k l a d : 1 0 L . J a k n a r a z i e W e b M a c r o n i e w s p i e r a l i c z b t y p u F l o a t i D o u b l e . W r a z i e p o t r z e b y
W e b M a c r o m o |e p r z e k s z t a l c i o b i e k t t y p u I n t e g e r ( L o n g ) n a w a r t o [ p r o s t i n t ( l o n g ) , m o |n a w i c
t y c h s t a l y c h u |y w a j a k o p a r a m e t r y w y w o l a n i a f u n k c j i , k t ó r e o c z e k u j w a r t o [c i t y p u i n t l u b l o n g .
W a r t o [ l o g i c z n a w s z a b l o n i e r e p r e z e n t o w a n a j e s t p r z e z s l o w a : t r u e i f a l s e . S o n e
o d p o w i e d n i k a m i s t a l y c h j z y k a J A V A : B o o l e a n . T R U E i B o o l e a n . F A L S E . M o |n a i c h t a k |e u |y w a
j a k o p a r a m e t r w y w o l a n i a f u n k c j i , k t ó r e o c z e k u j w a r t o [c i l o g i c z n e j .
B u d o w a n o w o c z e s n y c h a p l i k a c j i i n t e r n e t o w y c h z w y k o r z y s t a n i e m j z y k a J a v a . . . 1 4 3
K o l e k c j a t o u p o r z d k o w a n a l i s t a s t a l y c h n a p r z y k l a d : # s e t m y L i s t = [ o n e , t w o , 3 ,
$ v a r i a b l e ] . M o |l i w e j e s t d o w o l n e z a g n i e |d |a n i e k o l e k c j i n a p r z y k l a d :
# s e t m y L i s t = [ [ o n e , o n e ] , [ t w o , t w o , 2 ] , [ t h r e e ] ]
Aa Dc u c h z n a k ó w t o d o w o l n y c i g z n a k ó w u m i e s z c z o n y w c u d z y s l o w i e . P o n i e w a | c i g z n a k ó w
m o |e z a w i e r a w s o b i e w s k a zn i k n a z m i e n n , a b y w p r o w a d z i d o z n a k $ t r z e b a g o p o p r z e d z i
z n a k i e m \ ( t a s a m a z a s a d a o d n o s i s i d o i n y c h z n a k ó w s p e c j a l n y c h ) , n a p r z y k l a d :
# s e t $ b = t o j e s t c i a g z n a k o w : \ $ a , a t o w s k a z n i k n a z m i e n n a $ a
W s k a zn i k n a z m i e n n z a p i s u j e m y g o i d e n t y c z n i e j a k z m i e n n i m o |e m y w y k o r z y s t y w a j a k o
p a r a m e t r w y w o l a n i a f u n k c j i , n a p r z y k l a d : $ o r d e r . f i n d P r o d u c t ( $ P r o d u c t 1 ) . P r i z e
D y r e k t y w y
D y r e k t y w y p o p r z e d z o n e s z n a k i e m # i m u s z w y s t p i w n o w e j l i n i i ( m o g b y p o p r z e d z o n e
z n a k a m i s p a c j i ) . W i e l e d y r e k t y w o p e r u j e n a b l o k u . K a |d y b l o k r o z p o c z y n a s i z n a k i e m { i
k o Dc z y z n a k i e m } . B l o k i , a t y m s a m y m d y r e k t y w y , m o |n a z a g n i e |d |a .
# # k o m e n t a r z
D w a l u b w i c e j z n a k ó w # t w o r z y k o m e n t a r z r e s z t a l i n i i z o s t a n i e z i g n o r o w a n a .
# f o r e a c h $ e l e m e n t i n $ k o l e k c j a { . . . }
D y r e k t y w a p o z w a l a p r z e j r z e w s z y s t k i e o b i e k t y w k o l e k c j i . B l o k z o s t a n i e w y k o n a n y t y l e r a z y
i l e j e s t o b i e k t ó w w k o l e k c j i , z a k a |d y m r a z e m z m i e n n a $ e l e m e n t b d z i e p r z y j m o w a w a r t o [
k o l e j n e g o o b i e k t u , n a p r z y k l a d :
<