I think the question is why you'll want to provide consumers with
dynamic interfaces using WSDL because each consumers would have to
write a custom interface adapters.
Do you want to use the WS-* stack without having the limitation
imposed by static WSDL?

H.Ozawa

2009/8/25 Sasan <[email protected]>:
>
>
> Anne,
>
> the question is not about bottom-up to top-down service implementation. this
> is more about consuming services dynamically without knowing their used
> types. I am trying to come up with a guideline for consumers that access
> services dynamically. As I have mentioned before dealing with cusomized
> types and even List of those types, or even a List by itself, leads to
> confusion for consumers as what types of signature they are dealing with.
> Having the service and generating wsdl here is only an example, the focus is
> on consuming it.
>
> Sasan
>
>
> ________________________________
> From: Anne Thomas Manes <[email protected]>
> To: [email protected]
> Sent: Monday, August 24, 2009 9:43:52 PM
> Subject: Re: [service-orientated-architecture] Re: good or bad practice? or
> maybe ugly
>
>
>
> Sasan,
>
> WSDL is not an abstract contract. It specifies the concrete formats
> and protocols used to interface with the service. The data format of a
> WSDL contract is expressed as XML Schema. A WSDL would never expose a
> contract that looks like:
>
> public int method(java. util.List objects)
>
> because a WSDL never exposes a Java interface.
>
> I gather from the way you ask the question that you are using the
> code-first development model, and you are asking your SOAP framework
> to generate a WSDL contract from your code.
>
> So first, using a code-first development model is a bad practice
> because it invariably leaks implementation- specific information into
> your supposedly platform-independen t service. (Unless you have no
> intention to support non-Java clients.)
>
> Second, your SOAP framework will almost certainly map your List to an
> xsd:Any or an array of items of type xsd:anyType. In other words, you
> would have an unspecified contract, and users of your service would
> have to negotiate with you out-of-band to determine what data formats
> your service expects and/or accepts. And as you say, nothing about
> xsd:Any or xsd:anyType conveys any information whatsoever that the
> service expects the input to conform to JavaBean conventions. Those
> conventions are completely lost in the translation.
>
> As a general rule, requiring out-of-band negotiation of data formats
> is a bad practice when using SOAP. The whole point of using SOAP is to
> enable automatic generation of client and server stubs which
> automatically serialize and deserialize objects to XML and XML to
> objects. If you don't intend to take advantage of automatic
> serialization, I question why you chose to use SOAP in the first
> place. Try JMS, RMI, Jini, or some other Java-specific communication
> protocol that understands the Java interface.
>
> Anne
>
> On Mon, Aug 24, 2009 at 9:36 AM, Sasan<sasanp...@yahoo. com> wrote:
>>
>>
>> I'm sorry that I have to talk technology oriented. In this particular case
>> the client only has access to abstract contract i.e WSDL. So if list
>> includes the type i.e. List<SomeType> , it is possible to identify the
>> content structure of "SomeType" but it seems to be very risky because
>> based
>> on some prototypes, some of the content might not be discovered if
>> "SomeType" do not fully comply with a java bean convention (having
>> getter/setter for all attributes). this is only for dynamic access to
>> services
>>
>> Sasan
>>
>> ____________ _________ _________ __
>> From: Michael Poulin <m3pou...@yahoo. com>
>> To: service-orientated- architecture@ yahoogroups. com
>> Sent: Monday, August 24, 2009 12:49:21 PM
>> Subject: Re: [service-orientated -architecture] Re: good or bad practice?
>> or
>> maybe ugly
>>
>>
>>
>> Oh, this "an intermediary" ... In this case, Hitoshi-san, what the
>> consumer
>> knows about the service interface - is it with a List or with a non-List?
>> If
>> it is with the List - problem not only stays but gets worth; if the
>> consumer
>> gets a non-List, do you wan the intermediary be so smart to know what
>> transformations are needed for each consumer (assuming that service
>> interface is with List)? I do not even talk about Service Contract where
>> all
>> service interfaces must be agreed with the consumer (and theĀ  intermediary
>> is invisible; we talked about it already in this Forum). What the purpose
>> of
>> having List on the sender side while receivers need have non-Lists?
>>
>> - Michael
>>
>> ____________ _________ _________ __
>> From: Hitoshi Ozawa <htshoz...@gmail. com>
>> To: service-orientated- architecture@ yahoogroups. com
>> Sent: Sunday, August 23, 2009 11:23:06 PM
>> Subject: Re: [service-orientated -architecture] Re: good or bad practice?
>> or
>> maybe ugly
>>
>>
>>
>> Hi,
>>
>> On a local call, using List with TypeOf can be used. List is just a
>> handy way to allow different subclasses of List to be passed.
>> When using on a network interface, more consideration is necessary. It
>> is possible to predefine elements in a List both at both ends but this
>> doesn't make too much sense because it defeats the meaning of using
>> List. What is possible is to predefine a structure so it will contain
>> both the definition and the data. In this case, you'll actually be
>> extending the interface standard, which means you shouldn't be using
>> it for a public service. It's, nevertheless, is convenient when
>> creating a 1 supplier to N consumer format with a List being used
>> between a supplier and an intermediary and an intermediary converting
>> the List to a non-List's. :-)
>>
>> H.Ozawa
>>
>> 2009/8/22 Gregg Wonderly <[email protected]>:
>>>
>>>
>>> In this particular case with Java, the interface can include generic type
>>> references on the List to control the types of things sent to it.
>>>
>>> public int method(List< DataObject> lis)
>>>
>>> helps software developers know exactly what kind of list should be
>>> passed.
>>> A
>>> List is not any worse than a XML document or a stream of some other
>>> structure
>>> values. It is important to understand that exporting "DataObject" in the
>>> interface definition does create a type base dependency that you have to
>>> be
>>> ready to manage the life cycle of.
>>>
>>> Gregg Wonderly
>>>
>>> jesseezell wrote:
>>>>
>>>>
>>>> Best practice with service interfaces is to pass messages that have been
>>>> specifically crafted to contain information about the requested
>>>> operation, not lists of objects. Any interface where you are basically
>>>> just taking a call that could have been a local method call and exposing
>>>> it over the wire may be a web service, but that doesn't mean it's
>>>> service oriented. It is often a good idea not even to use objects from
>>>> your domain model directly, because you want your service interface to
>>>> be stable.
>>>>
>>>> --- In service-orientated- architecture@ yahoogroups. com
>>>> <mailto:service- orientated- architecture% 40yahoogroups. com>, Sasan
>>>> <sasanp...@. ..> wrote:
>>>> >
>>>> > Hi,
>>>> >
>>>> > Is it good practice to have a service that exposes a method with a
>>>> List of objects as a parameter? Programmatically speaking from Java
>>>> programming point of view java.util.List.
>>>> >
>>>> > Example:
>>>> >
>>>> > public int method(java. util.List objects)
>>>> >
>>>> > Even if the interface is documented, I do not see this as a good
>>>> practice cause this tells me the method takes a list of basically any
>>>> object type. This could be troublesome for clients that discover
>>>> services dynamically.
>>>> >
>>>> > I appreciate all opinions on this.
>>>> >
>>>> > Thanks,
>>>> > Sasan
>>>> >
>>>>
>>>>
>>>
>>>
>>
>>
>
> 

Reply via email to