362 A B2B Solution using WebSphere Business Integration and WebSphere Business Connection
Bottom up: if some server-side Java code already exists, the WSDL
specification can be generated from it. The client side Java proxy is still
generated from this WSDL document.
Meet in the middle: the meet in the middle (MIM) development style is a
combination of the two previous ones. There are two variants:
– MIM variant 1: some serve-side Java code is already there; its interface,
however, it is not fully suited in order to be exposed as a Web service. For
example, the method signatures might contain unsupported data types. A
Java wrapper is developed and used as input to the WSDL generation
tools in use.
– MIM variant 2: there is an existing WSDL specification for the problem
domain; however, its operations, parameters, and data types do not fully
match with the envisioned solution architecture. The WSDL is adopted
before server-side Java is generated from it.
In the near future, we expect most real world projects to follow the meet in the
middle approach, with a strong emphasis on its bottom up elements. This is MIM
variant 1, starting from and modifying existing server-side Java and generating
WSDL from it.
When developing the auto parts sample application throughout the following
chapters, we will start with the bottom up approach.
Service requestor
Web service clients (service requestor implementations, that is) have to import
the WSDL interface and implementation specification of the Web service to be
invoked into their environment.
Three types of requestors can be identified. They import interface and
implementation information at different points in time (build time versus runtime):
Static service No public, private or shared UDDI registry is involved; the
service requestor obtains service interface and
implementation description through a proprietary channel
from the service provider (an e-mail, for example), and
stores it into a local configuration file.
Provider-dynamic The service requestor obtains the service interface
specification from a public, private or shared UDDI
registry at build time and generates proxy code for it. The
service implementation document identifying the service
provider is dynamically discovered at runtime (using the
same or another UDDI registry).