On Apr 13, 2006, at 7:59 PM, haleh mahbod wrote:


Jeremy mentioned:



In J2EE days the business samples were called "blueprints" so perhaps we could call them that as well - would be a natural place for a petstore :-)





Here is another alternative:



a) *Scenarios* – Demonstrate how Tuscany addresses real business problems. For example we can have scenarios that show how Tuscany solves the following
business problems:

· The ability to take advantage of existing business investments (services) to address new business needs by building composite solutions

· The ability to dynamically handle changes in business environment
 through properties

· The ability to address changes in business requirements through
mediation

·          What else?



I really don't have a preference what we call these things - demos/ scenarios/bluprints/foo - but I'd prefer we stick with concrete goals expressed in very technical terms as opposed to couching them in business vocabulary. For example, "BigBank demonstrating one-way async with the ability to switch binding protocols from SOAP/HTTP to SOAP/JMS ." I have two reasons for this. First, "demonstrating business value" is an important goal but that type of thing is probably better accomplished by SCA whitepapers and marketing collateral (including "demos") whose target audience is primarily interested in hearing about those things. That's probably the job of some of the spec group participants. Right now, I view Tuscany's key target audience as different, consisting of systems engineers (the people who like to build middleware) and applications developers (the people who write applications). We need to clearly communicate what Tuscany is and why they should use it as opposed to other alternatives in language they are used to.

I also have a second more practical reason for saying this, related to the first. We desperately need realistic examples that demonstrate compelling capabilities. I think the best way to arrive at that point is to lay out very specific features and a roadmap for getting there. If others would like to wrap them with business vocabulary for additional audiences later, that would be great.



Scenarios also are good end to end or horizontal test for Tuscany that
should work when we release.

BigBank is an example. What else we can add?



b) *Samples* – These are *examples* that demonstrate how to use Tuscanyfeatures

·          JavaScript samples

·          Binding  samples

·          What else?


Samples could be part of functional testing of features and be part of
automated unit test.

Does this sound OK?


I am one of those who disagree. There is another email on this topic so I will not respond here other than to say that samples cannot provide adequate "functional" testing since they exercise very narrow code paths and are often not how "real" applications are built since the former are didactic in nature.



On 4/13/06, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote:



Jim Marino wrote:


On the BigBank issue, I don't think we should replace that sample as
the spec group will continue to evolve it and I believe it is useful
to have the spec define a standard sample app.  For people that have
not participated in the spec work, it is recognized that the existing
version does not really show all of the benefits of SCA. We actually
had a more complicated version demonstrating conversations and async
that was not published due to time constraints. I fully expect this to
be evolved to the point where it demonstrates more fully SCA
benefits.  If it doesn't, I think we should influence the spec group
so that it does.

Jim



+1 from me, we should get the BigBank scenario working as described in
the "Building your first SCA application" document that was published
with the spec. We still have a few shortcuts in our implementation of
BigBank to work around some limitations of our runtime. I am going to
create JIRA issues for the differences that I see. Jim, do you by any
chance know how the complete - I'm going to avoid the term complicated
here :) - version of BigBank was going to use async? Working on async
now so I'm interested to see how/if BigBank could be improved to make
use of it...



On Apr 13, 2006, at 9:56 AM, rick rineholt wrote:





ant elder wrote:



Here are some specific ideas to kick around:

1) how about calling  business samples 'demos' and



technology samples just



'samples'

2) restructure the current samples folder to be



something like:



    samples
      - demos
          - bigbank
          - petstore
          - ...
      - das
          - ...
      - sdo
          - ...
      - sca
          - bindings
              - jsonrpc
              - ws
              - ...
          - componentTypes
              - java
              - javascript
              - ...

3) There should be a consistent set of samples



within bindings,



componentTypes etc so its easy to copy things to



create new samples and add



new function

4) samples are like functional tests so we should



add a sample for every bit



of existing and new function

5) Fix the testing/tomcat stuff so all the samples



doing functional testing



get run as part of a regular build



Many of the samples require tomcat and despite the the
mock functional testing I
still believe we'll see these samples/demos break.  So
by this proposal are we
going to remove the end user aspect that these tests
did?  Testing as close to a
user environment as possible and still remain
automated?  If the answer is to
remove then will we be doing this manually?




In more detail:

Right now we have a samples folder which has things



like the bigbank,



helloworld, javascript and various other stuff in



it. The bigbank sample



shows a complete SCA application that does something



useful and real world



like, the helloworld samples on the other hand are



very simplistic and



really just help a developer getting started with



SCA. I think Bigbank fits



into what you describe as business samples and the



helloworld samples are



technology samples, but to make this clearer how



about calling business



samples 'demos' and technology samples just



'samples'?




Samples to me could be a lot like functional tests,



for every bit of new



function we add we should add a sample showing how



to use it. Samples would



show just one bit of function so its obvious whats



required without getting



confused by unrelated code and xml. I've started



trying to use this approach



for the JavaScript samples:







http://svn.apache.org/repos/asf/incubator/tuscany/java/samples/ JavaScript/







If we go that way it has to be really easy to create



a new sample, the



helloworld samples aren't so easy to copy but after



a few different attempts



with the JavaScript ones its now relatively easy to



just copy an existing



JavaScript sample to a new project and do a global



edit to change the sample



number.



Just so I understand can you please elaborate on what
was changed that made the
Javascript examples so much easier to copy and reuses
over the helloworld.. Thanks.




The most difficult part is updating the readme.htm



file with all the



ascii art directory structure pictures etc, I think



its probably better to



use plain txt readme files with simple content for



samples and only have



fancy html readme's for the demos (and gif's instead



of ascii art?).
Creating gifs and maintaining them seems more
difficult the ascii art and there
is no mandate that any particular samples have that.
I didn't see this as an issue.  The ideas was to get
the use familiar with
samples layout.  I thought this was good for some of
the first samples that
show where your sca files are located etc.  There is
no requirement that every
"sample" do that.



Another
minor problem with the JavaScript ones is the name



is javascript-sampleX but



it may be better to have sample-javascriptX so then



all samples would get



grouped together in your IDE.



I think java helloworld are grouped.




Another aspect is it should be easy and obvious what



samples are required



when creating something new like a new



componentType. Most componentTypes



are going to require similar samples like a



helloworld component, injecting



properties and references, initialization and



scoping etc. If we get a good



set of these for the Java componentType then when



creating a new



componentType you can just copy all the Java ones



and update as required and



its obvious what needs to get done.



That's one of the reasons helloworld samples are there
for.



This probably all also applies for
bindings and maybe theres a set of samples required



for Tuscany core



function as well (showing module fragments,



subsystmes etc?). This way we'd



also end up with a consistent set of samples, so if



you've learnt how to use



one componentType then picking up a new one the



samples would be familiar.



This would also all work across the different



language impls so Java, C++,



and PHP SCA impls could all have a similar set of



samples.




Right now some of the binding functional testing is



done with existing



samples but these don't actually get run as part of



the main build so they



do get broken. If the functional testing is going to



be done in samples then



we need to sort out the testing/tomcat stuff so its



easy to do and so the



samples get properly run as part of the regular



build process.
Not sure where to go here. I see both sides people
don't want to run that with
every build.  Ideally it would all run in a nightly
build. I haven't had much
luck with getting that in place.  The apache
infrastructure "GUMP' doesn't seem
to support maven 2.0 builds.




I think samples should expand on each other, for



example they'd be a basic



helloworld componentType sample, then a WS



entryPoint sample exposes



helloworld as a WS, then a WS-Security sample



secures the WS entryPoint



sample.



Once again I think I see that in helloword. And from
the the main readme
if you follow down you'll basically get that there is
a plain J2see. There are
some axis samples that were there to show integration
with a plain axis
client/service at one time that was considered
important. There is a sample
using helloworld as in a web application ... we once
deemed that as important to
show too.  There is a helloworld showing using an
entrypoint and an externalservice.



I think Demo's on the other hand should be complete



and self



contained applications. There could be tutorials



that show how each demo was



developed.



Basically I agree.  Bigbank does have a tutorial it's
under documentation
"SCA: "Building your first application" And yes the
main readme and a readme in
the the directory of bigbank should point or this
tutorial Or should it be
actually be relocated to the demo?
Also it may be slightly out of date since it was first
written some things in
the technology has changed.




For the demos, we already have bigbank so we might



as well keep it but it



needs to be made more obvious what it does and how



to use it. Right now I



can't find any readme's or doc describing it, there



used to be a pdf about



it, where's that gone (and from what I remember that



was like a 40 page doc



which is way more than most people will have time to



read)?
Yes it is long.  But if you want the details ?



Someone
mentioned petstore and I think that could be a



worthwhile demo as well - its



so well known so people can grok whats going on



without needing to read a 40



page document. I think I heard that the PHP SCA impl



have their own demo app



which isn't bigbank, it may be worth looking at what



they have and also



adding it as a demo for the Java impl.



Petstore, PHP Flashy  demos etc Will some people may
become confused with all
the samples and demos?
Assuming all the resources to do all this will people
need a 40 page document
for a roadmap of the demos and samples?



I think the demo documentation needs
to make clearer why SCA is a good thing, its not



real obvious right now from



the existing doc why this is better than using



something like J2EE or just



wiring up a bunch of POJOs with Spring.



OK lets find out what that is and either incorporate
into bigbank or get rid of
bigbank for something that does this better.




It would be good to have some more cool technology



demo's, but right now the



only function Tuscany supports is fairly mainstream.



I think the E4X support



in JavaScript could make some interesting WS



mediation samples, but the



function isn't quite there yet. The json-rpc/ajax



stuff could be really cool



but its also not ready yet. Maybe as this first



milestone release is



targeting getting new contributors rather than



business users then just



sorting out the functional samples and cleaning up



the bigbank demo would be



enough.
   ...ant



Personally I'm not for cool and flashy here in OS.
Let give reason for why this
technology is needed and how to use it.  Let's not
drape flash(cool) over it for
the sake of "FLASH" or that we can't really show the
latter.




On 4/12/06, haleh mahbod < [EMAIL PROTECTED]> wrote:



Hi,


What are the categories of samples that we need to



consider for Tuscany?




I see two potential categories.



1) Business samples - Focused on showing how



Tuscany solves certain



business
problems.

2) Technology samples - Focused on showing



developers how to use



Tuscanyfeatures such as Transaction.



Does this look right?



If yes, what are some good samples that we can



consider for each category?







What should our approach to Samples be? Start with



one sample and expand



it
to show additional functionality; or

create distinct samples?



Haleh










__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com









--
Jean-Sebastien







Reply via email to