Você está na página 1de 36

p   

Martin Senger
senger@ebi.ac.uk
m 

6 eb Services is a technology applicable for
computationally distributed problems, including
access to large databases
² hat other technologies were/are available and how
they compare with eb Services?
6 he main buzzwords:
² Integration & Standardization & Access by programs
p     
  
  
6 istributed resources
² access to shared data
² access to shared programs
² access to CPU (e.g. many desktop PCs together), to
memory, to special devices (e.g. printer)
6 Complete independence on the internal
implementation
  
   
6 ` 
² access to distributed resources
² development encapsulation
6 maintainability, re-
re-usability, legacy-
legacy-awareness
² implementation independence
6  
² adding a communication layer between parts
² synchronization of efforts
6 including such nasty things as distributed garbage
collection
  
   


 „ 
 


 

 

 
 




 

6 asic questions are:


² hat kind of protocol to use, and what data to
transmit
² hat to do with requests on the server side
O
  

 


O
  



 „ 
 

      

 
 




 

6 cgi
cgi--bin scripts:
² ata transmitted as name-
name-value pairs (HML forms)
² ransport over (state-
(state-less) HP protocol
² no standards for keeping user sessions (state-
(state-fullness)
² server side: a script is called
m
 


m


 „ 
 


 

 
 




 

6 CORA:
² ata transmitted as objects (at least it looks like that)
² ransport (usually) over well standardised IIOP protocol
² user sessions (state-
(state-fullness) very inter-
inter-operable
² server side: an RPC call is made
m 
  
 


 „ 
 

 
 

 
 




 

6 SOAP:
² ata in a well-
well-defined XML format
² ransport over various protocols
6 HP, SMP are the most used, perhaps because they are
firewall--friendly
firewall
² server side: either an RPC call or a message delivered
p   
6 A collection of XML-
XML-based technologies
developed by the e-e-business community to
address issues of:
² service discovery
² interoperable data exchange and/or application
invocation
² service compositions (workflow, business processes)
6 Major developers include:
² Apache, IM, HP, SUN & Microsoft (.NE)
6 http://www.webservices.org/
p    ! "  

6 è   


   

   
    
   `
 `
      
 
  

 
         
`
 `  `

`  `
 `
   
     è
  è
6 http://www.w3c.org/R/2002/ 
--wsa-
wsa-reqs-
reqs-20020819
p    
  

 
 
# 
 
$
p   

m
6 imple bject mccess rotocol
² http://www.w3c.org/R/SOAP/
6 A lightweight protocol for exchange of
information in a decentralised, distributed
environment
6 wo different styles to use:
² to encapsulate RPC calls using the extensibility and
flexibility of XML
² «or to deliver a whole document without any
method calls encapsulated
 %  &
 '  ( 

 %  &

'  ( 

(( 
 ) m
p
6 peb ervices efinition anguage
² http://www.w3.org/R/wsdl/
6 An XML-
XML-based language for describing eb
Services
² what the service does (description)
² how to use it (method signatures)
² where to find the service
6 It   depend on the underlying protocol
6 ut: It is not much human-
human-readable
'  *
å 
  
  

  
   
å 
  ! ""
!
" " "#

  ! ""!
 
""  $%&'

""  $%&'
() ! ""!
 
"
 " 
 " 
    ! ""
!
" " "#

""
!
" " "#
   
   ! ""
!
" " "#

  ! ""!
 
"" 
 
 ! ""!
 
""
 " 
  ! ""*
"+",-.$! å
   2    "
 #
-/01 å    2    "
å"å  #
-/
 å 
 1 2    "å"å
   "å"å
 #
-/
 å"å
 #
-/01 å"å
2 

  #
- 
 #
3
$  å

  #
- 
å 1 #
-/01 "å
1 1
 #
-/
 "å"

å


 #
-
 #
- 
 %  å 1
 #
-/01 "å
1 1
 #
-/
 "å"

å"
2 
å4    #
$
 5   2  #
3
$  
å
 4  2    
 ! ""!
 
"
 "! "
å

  #
- å
 


 &
"
å 1å
 4
2
 
 $2 ! ""!
 
"
 " 
 " 
  #
- 1  
 "å" 1å
1 1
å
 4
2 
 $2 ! ""!
 
"
 " 
 " 
  ! ""
!
" " "#
1  
 "
å"
1 1å"

å

  #
- 
å
 


 &
"å 1å
 4
2
 
 $2 ! ""!
 
"
 " 
 " 
  #
- 1  
 "å" 1å
1 1
å
 4
2 
 $2 ! ""!
 
"
 " 
 " 
  !
 ""
!
" " "#
1  
 "
1  
 "
å"
1 1å"

å"4  å 
 #
3
$ $  å
4   #
$
 5   
 #
å
 
! ""
!
" " "#
"å"


!


""
!
" " "#
"å"

å" 
å" 

)

 
 !
6 )niversal escription, iscovery and ntegration
² http://www.uddi.org
6 UI creates a platform-
platform-independent, open
framework & registry for:
² escribing services
² iscovering businesses
² Integrating business services
6 he UI may be less used than predicted,
especially on the Internet level
6 ioMoby - an alternative for Life Sciences domain?
 ( 
&++   * 
mp    ,
 -


ë „  

„ 
   !!"#  


Any class
Any class
processing
Any class
processing
Any class
the incoming
processing
the incoming
processing SOAP-aware
SOAP- „ 
requests
the incoming
requests
the incoming Servlet  

(´business logicµ
requests
(´business logicµ
requests (e.g. Apache Axis) 


(´business logicµ
(´business logicµ  

)
  "-

  
6 riting server is easier than writing clients (but only
regarding the toolkit, not the business logic)
6 Servers may be written independently on the used
toolkit
6 Always test interoperability with a non-
non-Java client
(because of data serialization and de-
de-serialization)
6 Steps:
² write your service implementation
² make all your classes available to the toolkit
² deploy your service    
² restart the whole servlet engine
² test it with a client request
-

m O  
6 Apache SOAP (was IM·s SOAP4J)
6 Apache Axis (a follow-
follow-on to the Apache SOAP)
6 «and many others
6 «but let·s stay with Apache Axis:
² http://ws.apache.org/axis/
 +'  p *.


Õ  
Õ
    
  
     


 +'  p   *.




Õ  
Õ
   
Õ  
   !
Õ
   

  

Õ
       
   


Õ" Õ " # "  "$
Õ
  %   '  p   *.


Õ
      &' 
(
))ÕÕ     
%  %   " % 
 "* + Õ ,
 -  " "./0Õ1)) 12323) # ) )

))  


 " 3
 "4Õ   5  
 
  "  4 -&'
("
"Õ  

("# 3


))      


 "    
 ))*/6  
  """
 "4Õ   5  
 "  4 -&' &3'
 "4Õ   5  
("
"Õ   "  4 -&'

 +#Õ  


(""Õ  +//4/17 8" 



  
" '  p 
1. Make an instance of this
Hello orldService
implements
2. Use it to make an instance of this

Hello orldServiceLocator



Hello orld
3. Call methods on this proxy object
implements

HelloSoapindingStub
'  p   /  *.


Õ
  %  9

Õ
      &' 
(
))ÕÕ     
"  "  
"  " 0 
"  "(:#( "

))  


 " 3
 
(:#(" 
("
"Õ  

("# 3


))      ;


(:#("  &3'
("
"Õ  (:#(" 

 +#Õ  


(""Õ  +//4/17 8" 



-

012(

(

6 How Java objects are converted to/from XML
data (in order to be able to be put into SOAP
messages)
6 Important especially for the non-
non-basic data types
6 It·s easier if your non-
non-basic data types are Java
eans (having / methods for members)
mp    ,
  
@!)
) )ÕAAA :B O 

4,:11* Õ11**: 
4,:11* Õ11**:11%CD
AE Õ F>:>
AE  

Õ  :

  O 


 

 <= 

 
= >  :">

 =  

 =   
?

@!)
) )ÕB O  


4,:110 
 F
E
G
Õ 4,:110 
AE
 >:>
AEÕ#(>Õ1)) ) A )" >
AE 
AE

m &&
6 a collection of (many) modules
² but they are loaded automatically when needed

6 supports SOAP 1.1 specification


6 all methods can be used for both setting and
retrieving values:
² if you provide no parameters, you will get current value, and if parameters
are provided, a new value will be assigned to the object
² and the method in question will return the current object (if not stated
otherwise) which is is suitable for stacking these calls like:

= 4,:110 
AE
 HÕ IJ>
AEÕ#(>Õ1)) 
(" " "
) Õ)Õ IJ>

) #$
#$   
6 getting ´.wsdlµ file by using its URL
6 then, you do not need to worry about autotyping

@!)
) )ÕA

4,:110  F
E
G
Õ 4,:110 
AE > 1)) )A)Õ)">
AE ?KL 

@!)
) )ÕA

4,:110  F
E
G
(= 4,:110 AE > 1")">
= AE =,/CM&3'!!!
Õ = AE  7  
p   p   3
 
  m!
6 S are easier to deploy because of their firewall-
firewall-
friendliness
6 S are quite well marketed (both from I
companies and Open Source projects)
6 However:
² user sessions are less standardised
² many parts yet-
yet-to
to--be
be--done (notification, transactions,
security, etc.)
6 he programming effort and maintainability is
similar to other distributed technologies
D*p


6 he programming effort and maintainability is
roughly the same both for eb Services and
CORA
² For CORA I need an OR
6 «but do you know anybody doing S without a SOAP
toolkit?
² For CORA I need an IL compiler
6 «not always (ask Perl folks)
6 «for S you use frequently stubs generated from SL
² «similar answers for valuetype/custom encoding, etc.
ÿ*p
   
6 S are easier to deploy because of their firewall-
firewall-
friendliness
6 S are quite well marketed (both from I
companies and Open Source projects)
6 Integration of S into workflows seems to be
very dynamic and very real topic
² comparing with CORA Components
*p
   
6 Peer
Peer--to
to--peer access is problematic
² notification by ´server-
´server-pushµ is harder to achieve
6 User sessions (server·s state-
state-fullness) are less
standardised
² «and therefore less inter-
inter-operable
6 Many parts yet-
yet-to
to--be
be--done, or they are quite
complex (notification, transactions, security,
etc.)
 

6 on't throw the baby out with the bathwater
² combine the existing projects with a new eb
Services layer; in most cases it is not so difficult
6 Apply existing standards to new eb Services
projects
² think MA ² it may help, even without the whole
OMG adoption process
  
6 istributed computing is inevitable
6 More accesses by programs than by clicking on
hyperlinks
6 More technologies of distributed architecture
will collaborate
6 he better standards we have the better results
we·ll get
6 eb Services is not a new hype but a trend to
follow

Você também pode gostar