On 2/6/07, Simon Laws <[EMAIL PROTECTED]> wrote:
On 1/26/07, Andrew Borley <[EMAIL PROTECTED]> wrote:
>
> Hi Simon,
>
> On 1/24/07, Simon Laws <[EMAIL PROTECTED]> wrote:
> > Hi Andy
> >
> > Understanding how we fit into the Web2.0 space has got to be a good
> thing. I
> > also like the idea of providing an example that has some useful purpose.
> So
> > the application you have outlined gets my vote.
> >
> > In terms of providing examples and samples generally...
> >
> > 1/ It strikes me that if we can start building up a library of useful
> > components then we have a better chance of producing examples more
> quickly
> > in the future. You never know, people may want to adapt some of our
> example
> > components (they are unlikely to want to adapt the calculator components
> > :-). I'm particularly attracted by your Alert Checker components which I
> can
> > imagine being more generally useful. When we think about how to build
> this
> > example can we set it up so that the components are explicitly reusable.
> I.e.
> > this could simply mean constructing each (group of ) reusable components
> in
> > a separate directory. (The composites we have in the current CPP samples
> > seem to collect all of their components into one place by composite).
>
> Agreed - I'm trying to make the components nice and modular so that we
> can show components easily being replaced by other components or
> reused in different configurations.
>
> > 2/ I would also like to be able to say what problem we are solving from
> a
> > user/business perspective. You would expect this to be all of the usual
> > things that we hold up as good things about SOAs but I think we can give
> > some life to this through examples like the one you have suggested. So
> for
> > example, If I were running an organisation that has a static web site
> > currently, I might be asking questions like How do I...
> >   - make my web site more attractive to customers by making it more
> dynamic
> >   - present a view of various back end systems
> >   - reduce the amount of person time spent updating the web site.
> >   - reduce the technology gulf  (and hence isolation etc..) between my
> back
> > end developers and front end developers
> >   - reuse work I have done on previous efforts more effectively
> >   - consistently aggregate content from that business I have just
> acquired.
> >  . etc, etc.
>
> An article, or some kind of FAQ page that answers these questions
> using SCA might be a really persuasive bit of marketing for us!
>
> > There are many many more questions that people will ask. Now, on the
> face of
> > it, none of these say anything about SCA specifically but we are
> proposing
> > that SCA, as a programming model, provides a good basis for solving
> these
> > problems. It doesn't do it alone, i.e. there is no magic bullet, but
> it's an
> > important part of the mix. So what would be interesting as we develop
> > examples like this is to document exactly what questions we think we are
> > answering. It's great if we produce an interesting Web2.0 app but much
> > better if, having done it, we can answer, in layman's terms, the
> question of
> > why it is better to do it with SCA rather than the 1000s of other ways
> it
> > can be done. I imagine that there is a finite set of compelling value
> > statements that we can focus on. I don't have a list to hand but I'm
> keen to
> > help here collecting these "success stories"/value statements. Knowing
> what
> > we are trying to show is a good input into the kind of examples we
> choose to
> > build.
> >
> > In a little more detail.
> >
> > I would put more emphasis on the a variety of protocols in the display
> > composite as it would be nice to extend this app to include an AJAX
> style
> > front end. It would be good to do the display composite in PHP. So, for
> > example, the most useful format for the alerts would be a feed in it's
> own
> > right. We already have some feed samples in PHP so we could reuse this.
> I'll
> > think a bit more about this and give some pointers.
>
> That would be cool - the Alerter Composite provides the data as a
> REST/XML service which could be consumed via AJAX calls, but exposing
> it as an RSS/Atom feed would be another good addition to the display
> composite.
>
> > What is the AlertConfig component doing. I will be useful to show in an
> > example how components (feeds) can be included/excluded. Will this be a
> > static configuration exercise in the first instance or this there
> intended
> > to be some dynamic element to it, i.e. you can imagine that having a RSS
> > feed reader, or not, would be statically configured while the specific
> feeds
> > to be read would be dynamic.
>
> The AlertConfig component holds the configuration/state details needed
> for each checker component - such as a pop server, username and
> password for the POP Checker component, and an RSS feed URL and last
> checked time for the RSS Checker. The checkers are designed to be
> reusable, so the config could hold details for n different RSS feeds,
> all of which are checked using the same component.
>
> Cheers
>
> Andy
>
> > On 1/22/07, haleh mahbod <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi Andy,
> > >
> > > This is an interesting technology sample that demonstrates various
> > > capabilities that Tuscany offers.
> > >
> > > It would be good to get user feedback on this as well.
> > >
> > > Haleh
> > >
> > > On 1/19/07, Andrew Borley <[EMAIL PROTECTED]> wrote:
> > > >
> > > > Hi all,
> > > >
> > > > One of the things we thought would be good to include in the next
> > > > release of Tuscany C++ was "some kind of Web 2.0 sample" that would
> > > > show the various functionality of Tuscany C++ (and perhaps Tuscany
> > > > Java and SCA/SDO for PHP too) all working together in one app.
> > > > I've had a think around this and come up with the following idea
> that
> > > > I'm throwing open for abuse/ideas/development/etc!
> > > >
> > > > Global Alerter
> > > > A feed-reader style webapp that aggregates various sources of
> changing
> > > > data into a series of "alerts" that are displayed in, and
> > > > automatically updated via AJAX calls from, a web page. Alert sources
> > > > include RSS/Atom news feeds, POP3/IMAP email, NNTP newsgroups, SOAP
> > > > services (such as stockquotes).
> > > >
> > > > See the attached png for the initial SCA diagram (I've also put it
> up
> > > > at [1] if the mail-list doesn't let png's through) for a bit more
> > > > detail. This shows some of the power that SCA and Tuscany provides:
> > > > - the 2 composites could run in separate containers or even
> different
> > > > SCA runtimes (say HTTPD/PHP with SCA_SDO for the Display Composite
> and
> > > > HTTPD/Tuscany C++ for the Alerter Composite)
> > > > - we could show extensibility by adding extra Checker components for
> > > > other data sources (such as a component that checks for changes in a
> > > > specific web page)
> > > > - we could show re-use of components by using the Web Service
> Checker
> > > > to call a stockquote service and a weather forecast service.
> > > > - we can use different languages to implement the components
> > > >
> > > > It would be nice if the web front end could also show what is
> > > > happening under the covers - perhaps by displaying the SCA diagram
> and
> > > > highlighting which pieces are being called when the user chooses to
> > > > update the alerts from a particular data source.
> > > >
> > > > So, any ideas/thoughts?
> > > >
> > > > Thanks!
> > > > Andy
> > > >
> > > > [1] http://people.apache.org/~ajborley/web2demo.png
> > > >
> > > >
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> Hi Andy

Finally ready to lend a hand here. Where should I look for the details?

Simon


Hi All,

Finally got the first version checked in! (see [1])
It pretty much follows the SCA diagram at [2], with the following
components implemented:
POPChecker - gets emails from POP3 servers
RSSChecker - gets items from RSS/Atom feeds
AlertChecker - aggregates alerts and is exposed via the REST binding
allowing clients to get the latest alerts and get/alter configuration
AlertConfig - manages the configuration (which RSS/Atom/POP sources to
be used). This currently uses an XML file to hold the config.
These 4 components make up the Alerter composite.
There is also a Display composite which has a single HTMLDisplay
component. This calls the AlertChecker REST service, converts the
results to HTML and exposes a REST service itself. This service is
called using AJAX calls from an HTML page. See the web page screenshot
at [3].

This sample requires the following Tuscany extensions:
Python
REST service (which itself requires HTTPD)
REST reference (which itself requires libcurl)
It also requires the Python FeedParser library for the RSS/Atom
support, found at [4]

Deploy/run in the normal way for HTTPD based samples and then point
your browser at
http://localhost:9090/

Further things that could be done:
Demonstrate use of more than one language/SCA runtime. Currently all
components are implemented in Python. There is a Ruby version of the
POPChecker, but I hit threading issues when I tried to use this under
HTTPD so I had to replace it with a Python version. Additionally,the
display composite could be replaced with one written in PHP or
similar, which may be more natural than using Python again.
Fix other threading issues - I think there may still be threading
issues with the Python extension (and possibly the kernel itself). The
sample is a little unstable and can fall over when multiple AJAX
requests are sent in at the same time.
Show how the AlertConfig component could be replaced with one that
uses a DB for storage (instead of the current XML file) - perhaps the
new C++ DAS could be used here?
Add further alert sources (NNTP newsgroups, Web Services, etc)
Add a component to the Display composite that formats the alert data
as an RSS feed.
Make the web interface a bit prettier! It's Web 2.0 in that it uses
AJAX and Javascript DOM handling, but it's not very curvy or well laid
out like the better known Web 2.0 apps tend to be!

What do people think?

Cheers
Andrew

[1] 
http://svn.apache.org/repos/asf/incubator/tuscany/cpp/sca/samples/AlertAggregator/
[2] http://people.apache.org/~ajborley/web2demo.png
[3] http://people.apache.org/~ajborley/AlertAggregatorScreenshot.png
[4] http://feedparser.org

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to