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 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
! "
#
$
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
*.
Õ
&'
(
))ÕÕ
% %
" %
"* +
Õ
,
- "
"./0Õ1)) 12323) #))
Hello orldServiceLocator
Hello orld
3. Call methods on this proxy object
implements
HelloSoapindingStub
'
p
/
*.
Õ
%
9
Õ
&'
(
))ÕÕ
"
"
"
"0
"
"(:#("
Õ :
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
=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,:110AE>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