axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ayers, Sam" <Sam.Ay...@paymentech.com>
Subject RE: possible ways of creating WSDL file
Date Thu, 24 Mar 2005 21:06:08 GMT
Venkat,
At this point, I believe we are "violently agreeing with each other" :-)  That's an expression
a friend of mine used to use when we seemed to be debating an issue, but then realize we are
agreeing with each other :-)

I am all for beginning with an interface design, then fleshing out the design.  But, then
use round-trip tools to keep the implementation (code) in synch with the design.

Now, for legacy systems that we are encapsulating with web services - and we must agree that
much of the serious web services work will encapsulate legacy systems - I have found it easier
to code a java interface and implementation, then generate the initial WSDL from the code.
 But I consider this just a way to quickly generate a "starting point" for the WSDL.  After
that, the wsdl stands alone, and can be iteratively refined.

I will admit that I am biased toward the notion that I have lots of legacy systems to be served
up via new web services.  And I might take a more "top-down, structured, waterfall" approach
if it weren't for those darned legacy systems ;-)

But, whatever the case, I believe rapid iterative development is the way to develop and refine
WSDL.  So, I believe tools that operate like java2wsdl and wsdl2java should be kept as an
important part of a toolset that would also include the upfront schema generation tools.

Sam

-----Original Message-----
From: Venkat Reddy [mailto:vreddyp@gmail.com]
Sent: Thursday, March 24, 2005 2:16 PM
To: axis-user@ws.apache.org
Subject: Re: possible ways of creating WSDL file


Regarding errors due to manual creation of WSDL, use graphical WSDL
editors instead. I also think that the text version of a WSDL document
is analogous to serialized form of a database schema, or a use case or
a class diagram. Create and manipulate, and generate code from all
these the same way.

I agree with you that Java2WSDL is good for prototyping. I also think
it is useful where web service facade is an after-thought for existing
systems, and another use is to update WSDL document to reflect changes
in the code any time.

However, if we consider iterative development, then the question is
the same as - do we do the class diagrams to start with or write the
code first, assuming we have tools to generate one from the other. I
would say we need minimal design artefacts to start with, to express
end-to-end working of a system, then fill in the details as the
implementation goes on. But the overall integrity of the system is the
reponsibilty of the design and not the implementation. So the design
tends to dictate implementation, though it builds up from fedback.

-venkat


On Thu, 24 Mar 2005 09:58:23 -0500, Ayers, Sam <Sam.Ayers@paymentech.com> wrote:
> Then, are you saying java2wsdl should not even exist as a tool?
> 
> Again, take the analogy of round-trip software engineering (model driven architecture).
 You change your system by modifying the diagrams, generating the code, or, conversely, by
modifying your code, generating the diagrams.
> 
> For a new model-driven project, up-front you start with diagrams - i.e. the "forward-engineering
path".  Then, at some point later, you modify the code and regenerate the diagrams from the
code.
> 
> Another analogy is iterative development.  With iterative development, it really doesn't
matter how you get to your requirements, so long as you do get to them within the time and
cost constraints of your project.  Sometimes in order to produce good requirements quickly,
you must do some rapid prototyping.
> 
> This same idea applies to WSDL.  Sometimes, in order to get good WSDL quickly, you must
do some rapid prototyping.  The wsdl generation from code helps greatly in this process. 
You just have to make sure that before the project is deeply into coding, and before outside
vendors or partners have been asked to develop to your wsdl, that everyone agrees to the wsdl,
and that the wsdl meets the interoperability requirements of your project.
> 
> Sam
> 
> -----Original Message-----
> From: Venkat Reddy [mailto:vreddyp@gmail.com]
> Sent: Thursday, March 24, 2005 8:08 AM
> To: axis-user@ws.apache.org
> Subject: Re: possible ways of creating WSDL file
> 
> I agree with Anne. At design level, stuff like WSDL, database schema,
> interfaces with existing systems and workflow constitute the overall
> system design. And all of them are participants and pieces in the
> pipeine in ensuring the integrity of the overall system. Java
> interfaces are just one kind of implementation that follow the design.
> They should not dictate the WSDL, unless the design is being reverse
> engineered from java code. Iterative approach for WSDL is just as good
> as it is for designing a database - i mean, we need it in right
> amount.
> 
>   jmho,
> -- venkat
> 
> On Thu, 24 Mar 2005 07:37:02 -0500, Ayers, Sam <Sam.Ayers@paymentech.com> wrote:
> > I believe you are all correct, from different perspectives.  But, I believe one
must take into account the same lessons learned from "round-trip" engineering in software
development.
> >
> > 1) If it is a new system, starting from scratch, and involving heterogeneous systems
integration, yes, it is best to focus on the interface early in the lifecycle, and perhaps
design the WSDL before coding.  After the WSDL is "roughed-in", use the round trip tools (wsdl2java)
to maintain.
> >
> > 2) If the system involves extension of an existing legacy code base it is practical
to "reverse engineer" the interface from the code, starting with code and generating the wsdl.
 Then, you can maintain the wsdl by editing the wsdl, or by editing the code, and using the
round-trip tools to keep them in synch.
> >
> > 3) For expert developers who are relatively new to web services and SOAP (i.e. exactly
the audience we are trying to bring up to get on board) I believe writing WSDL from the get-go
is impossible.  You must start from code, generate the wsdl, then hopefully learn-by-doing
by examining the output wsdl, and maintaining it moving forward.  Insisting that expert developers
start by creating wsdl is somewhat akin to the round-trip engineering "paralysis by analysis".
 You'll end up spending large amounts of time trying to create and perfect the WSDL, while
in the end the project fails because you took too long analyzing and creating the interface.
> >
> > So, I believe the answer is in "rapid iteration", i.e. successive approximation
utilizing both techniques, and choosing the right one at the right moment.  To insist on working
WSDL before a project begins, especially for legacy systems integration, is somewhat akin
to following the "waterfall model" of software development.  Instead, we need to be flexible,
rapidly iterate, and judiciously use all tools at our disposal.
> >
> > Sam
> >
> > -----Original Message-----
> > From: Anne Thomas Manes [mailto:atmanes@gmail.com]
> > Sent: Wednesday, March 23, 2005 6:02 PM
> > To: axis-user@ws.apache.org
> > Subject: Re: possible ways of creating WSDL file
> >
> > In a better world, you have a XML Schema administration team (similar
> > to your DBA team) that is responsible for developing the schemas that
> > applications will communicate with. (Do your developers define their
> > own database schemas???)
> >
> > When developers build services, they should be handed the schemas they
> > are supposed to use, and then map those schems to their code.
> >
> > Developers should not generate WSDL from code.
> >
> > Anne
> >
> > On Wed, 23 Mar 2005 14:55:38 -0800, Tim K. (Gmane) <tkgmane+at@ugcs.net> wrote:
> > > In an ideal world I would agree with Anne. However, consider this
> > > scenario: you have a team of 10+ developers working on a server side API
> > > that follows the rules to allow it to be easily exposed as web services.
> > > The API has over 200+ methods total, distributed over 20+ modules. Each
> > > module would be exposed as a web service, hence 20+ WSDL files. The goal
> > > is to have the API on the server side look exactly the same as the API
> > > on the client side, so in theory an application built against the API
> > > could be run in process on the server or remotely via web services.
> > >
> > > Now, only a couple of these developers know anything about web services
> > > and even those developers are just getting their feet wet with web services.
> > >
> > > During the development cycle the API's can (slightly) change many times
> > > a day and everything needs to be recompiled/regenerated. I think it's
> > > unreasonable in this case to edit any generated WSDL files by hand. It's
> > > much more reasonable to just fire an ant task that starts with the
> > > server side java classes, generates the WSDL's and from those the client
> > > side stubs. This improves the development process a lot.
> > >
> > > I hope I'll live to see the day when the tools are good enough to
> > > achieve this task end to end. Obviously we are not there yet, but we are
> > > getting close.
> > >
> > > Btw, this is not an imaginary scenario, it's the cruel reality I live in
> > > every day.
> > >
> > > Tim
> > >
> > > Anne Thomas Manes wrote:
> > > > I strongly disagree with Sunil. WSDL First (TM) is the way to go.
> > > >
> > > > I think it's okay to use java2wsdl to generate a WSDL template to
> > > > start with, but you should always edit the generated WSDL.
> > > >
> > > > My recommendation is to use a WSDL editing wizard. Cape Clear provides
> > > > a free one (SOA Editor). Altova and Sonic provide commercial ones.
> > > >
> > > > Anne
> > > >
> > > >
> > > > On Wed, 23 Mar 2005 13:49:53 -0500, Soti, Dheeraj <dsoti@harris.com>
wrote:
> > > >
> > > >>Sunil,
> > > >>
> > > >>Will java2wsdl create the complex type hierarchies correctly? I have
a complex
> > > >>class hierarchy (using inheritance and nested classes) and finally
I ended up
> > > >>handcoding the wsdl from scratch. Did I miss something? I've also read
some best
> > > >>practice articles talking about top down approach where u write your
wsdl first
> > > >>and then proceed.
> > > >>
> > > >>Thanks
> > > >>
> > > >>Dheeraj
> > > >>
> > > >>-----Original Message-----
> > > >>From: Sunil Kothari [mailto:sunil.kothari@majoris.com]
> > > >>Sent: Wednesday, March 23, 2005 1:20 AM
> > > >>To: axis-user@ws.apache.org
> > > >>Cc: hamza.hydri@gmail.com
> > > >>Subject: Re:possible ways of creating WSDL file
> > > >>
> > > >>I think of 3 ways of creating WSDL
> > > >>1) Using java2wsdl tool
> > > >>2) Using .jws facility
> > > >>3) Handcode WSDL
> > > >>
> > > >>I think 3) is error-prone and requires high level of understanding
of
> > > >>WSDL. 2) is also not recommended for various reasons like
> > > >>a) No deployment descriptors are created
> > > >>b) WSDL is not persistent and prone to changes
> > > >>c) (This I am not sure) For overloaded methods this way of creation
> > > >>causes problems.
> > > >>
> > > >>I hope this helps.
> > > >>
> > > >>Sunil Kothari
> > > >>Valtech India
> > > >>
> > > >>DISCLAIMER:
> > > >> Any Information contained or transmitted in this e-mail and / or
> > > >>attachments may contain confidential data, proprietary to Majoris
> > > >>Systems Pvt Ltd., and / or the authors of the information and is
> > > >>intended for use only by the individual or entity to which it is
> > > >>addressed. If you are not the intended recipient or email appears
> > > >>to have been sent to you by error, you are not authorised to access,
> > > >>read, disclose, copy, use or otherwise deal with it. If you
> > > >>have received this e-mail in error, please notify us immediately at
> > > >>mail to: sysadmin@majoris.com and delete this mail from your records.
> > > >>
> > > >>This is to notify that Majoris Systems Pvt Limited shall have no
> > > >>liability or obligation, legal or otherwise, for any errors,
> > > >>omissions, viruses or computer problems experienced as a result of
> > > >>this transmission since data over the public Internet cannot be
> > > >>guaranteed to be secure or error-free.
> > > >>
> > > >
> > > >
> > >
> > >
> >
> > Learn more about Paymentech's payment processing services at www.paymentech.com
> > THIS MESSAGE IS CONFIDENTIAL.  This e-mail message and any attachments are proprietary
and confidential information intended only for the use of the recipient(s) named above.  If
you are not the intended recipient, you may not print, distribute, or copy this message or
any attachments.  If you have received this communication in error, please notify the sender
by return e-mail and delete this message and any attachments from your computer.
> > ..
> >
> 
> Learn more about Paymentech's payment processing services at www.paymentech.com
> THIS MESSAGE IS CONFIDENTIAL.  This e-mail message and any attachments are proprietary
and confidential information intended only for the use of the recipient(s) named above.  If
you are not the intended recipient, you may not print, distribute, or copy this message or
any attachments.  If you have received this communication in error, please notify the sender
by return e-mail and delete this message and any attachments from your computer.
> ..
>
  
Learn more about Paymentech's payment processing services at www.paymentech.com
THIS MESSAGE IS CONFIDENTIAL.  This e-mail message and any attachments are proprietary and
confidential information intended only for the use of the recipient(s) named above.  If you
are not the intended recipient, you may not print, distribute, or copy this message or any
attachments.  If you have received this communication in error, please notify the sender by
return e-mail and delete this message and any attachments from your computer.
..

Mime
View raw message