SlideShare a Scribd company logo
1 of 21
Executing Universal Compositions:
                                 A Framework for the Integration of Web
                                  Services and User Interfaces
                                      Relatore: Maristella Matera
                                 Correlatore: Florian Daniel
                                      Studenti: Alessio Di Stasio – Giuseppe Landolfi.

Corso di Laurea Specilistica in Ingegneria Informatica
2




Alessio Di Stasio – Giuseppe Landolfi
3



•  What
is
done
before:

   –  UI
integra+on
(e.g.
UISDL
and
XPIL)

   –  Web
mashups
(e.g.
Mixup
editor
and
JavaScript
runBme)

•  Goal
of
this
presentaBon
(our
thesis)

   –  Web
service
composi+on
(“BPEL
in
one
page”
–
why
not?

      –
Java)

   –  Propose
a
soluBon
that
seamlessly
combines
the
three

      above
points
into
one
universal
integra+on/composi+on

      approach.

   –  Show
how
(and
that)
the
proposed
universal
composiBons

      can
be
executed
(runBme
environment).





          Alessio Di Stasio – Giuseppe Landolfi
4



•  From
ad
hoc
(javascript….)
   
to
integra+on
middleware

   –  Drag
n
Drop
dev

   –  CommunicaBon
among
UIs

   –  Reusable
components

   –  Lightweight
infrastructure

•  Elements:

   –  Component
model

   –  ComposiBon
model

   –  Design
tools

   –  RunBme
Middleware




            Alessio Di Stasio – Giuseppe Landolfi
5




•  Combine
UI
and
applicaBon
integraBon
(and
later
on
   
also
data
integraBon)

•  Value:

   –  Again,
drag
n
drop
development

   –  Reusable
universal
components

   –  Focus
on
simplicity
and
“separaBon
of
duBes”

      •  Simple
flow,
coarse‐grained,
complex
components

   –  Beyond
SOAP

      •  Integrate
all
sorts
of
services,
transparently

   –  Build
on
successful
middleware
paradigms

      •  Events
and
pub/sub




          Alessio Di Stasio – Giuseppe Landolfi
6




•  What
kind
of
services
are
we
actually
talking
about?

•  In
principle,
on
the
Web
we
may
have:

   –  SOAP/WSDL
web
services

   –  RESTful
services
(plain
hXp)

   –  RSS/Atom
feeds
(XML
formats)

•  But
we
could
also
think
of:

   –  CORBA
objects

   –  Java
beans

   –  …





         Alessio Di Stasio – Giuseppe Landolfi
7




•  We
now
have
two
[three]
different
types
of

   components:

    –  UI
components

    –  AL
(applicaBon
logic)
components

   –  [Hybrid
components
(expose
both
UI
and
AL
interfaces)]

•  As
they
indeed
are
different,
we
need
a
way
to

   graphically


   –  dis+nguish
them,


   –  clearly
highlight
their
differences,
but
also

   –  clearly
highlight
their
similari+es.




          Alessio Di Stasio – Giuseppe Landolfi
8




•  Now
we
are
ready
for
the
demo
of
two
scenarios!


(1)
Pure
UI
composi+on





         Alessio Di Stasio – Giuseppe Landolfi
9




(2)
Universal
composi+on





        Alessio Di Stasio – Giuseppe Landolfi
10




•  Unified
component
model

   –  USDL
=
Unified
Service
DescripBon
Language

•  Universal
composiBon
model

   –  UCL
=
Universal
ComposiBon
Language

•  Java
runBme
environment
for
universal
composiBon


>>
discussed
next





         Alessio Di Stasio – Giuseppe Landolfi
11



•  We
can
describe
UI
and
AL
components
by
means
of:

   –  Events

     UI
components
generate
events
in
response
to
user

     interacBons
or
to
internal
applicaBon
logic,
AL

     component’s
operaBons
may
be
used
as
events.

   –  Opera+ons

     UI
components
expose
operaBons
to
allows
internal
state

     changes,
AL
components
are
essenBally
represented
as

     operaBon
invocaBons.

   –  Proper+es

     Especially
UI
components
may
have
e.g.
configuraBon

     parameters.




         Alessio Di Stasio – Giuseppe Landolfi
12




•  Example
USDL:

<usdl ...>
   <component id=quot;RSSAjax_component“ address=“...“
    type=“component/UI”>
       <operation name=quot;showRSSquot; address=quot;showRSSquot;>
           <param name=“feed” type=quot;xsd:stringquot; />
           <param name=“limit” type=quot;xsd:stringquot; />
        </operation>

       <event name=quot;news_selected” address=quot;news_selectedquot;>
          <param name=quot;cityNamequot; type=quot;xsd:integerquot; />
      </event>
  </component>
  <types>
     ...
  </types>
</usdl>



          Alessio Di Stasio – Giuseppe Landolfi
13




•  Basically,
we
keep
the
concepts
we
already
know

   from
UI
composiBon...

   –  Listeners

   –  Events
and
opera2ons

   –  Simple
parameter
passing

•  But
we
slightly
change
the
former
XPIL
logic
and
add

   a
few
new
features:

   –  Dis+nc+on
of
UI
and
AL
components

   –  Explicit
data
mapping

   –  Condi+ons
over
input
parameters

   –  Branch
and
join
constructs




          Alessio Di Stasio – Giuseppe Landolfi
14

<listener id=quot;ConditionalBranchingquot;>
  <event id=quot;newPositionquot; name=quot;newPosition” component=quot;GoogleMapquot;/>

 <operation id=quot;2quot; name=quot;getSearchedPhotoquot;component=“…flickrquot;
           condition=quot;condition1quot; type=quot;alquot;>
   <input source=quot;newPosition quot; name=”cityquot;/>
 </operation>

  <operation id=quot;3quot; name=quot;getCityCountryquot; component=“…CityBookquot;
           condition=quot;condition2quot; type=quot;alquot;>
    <input source=quot;newPosition quot; name=quot;cityquot;/>
  </operation>
</listener>
<listener id=quot;joinquot;>
  <event id=quot;2quot; name=quot;getSearchedPhotoquot; component=“…flickrquot;/>
  <event id=quot;3quot; name=quot;getCityCountryquot; component=“…CityBookquot;/>

  <operation id=quot;4quot; name=quot;createHtmlquot; component=“…htmlCreatorquot;
            condition=quot;quot; type=quot;alquot;>
    <input source=quot;3quot; name=quot;resultquot;/>
    <input source=quot;2quot; name=quot;resultquot;/>
  </operation>
</listener>
                Alessio Di Stasio – Giuseppe Landolfi
15




Alessio Di Stasio – Giuseppe Landolfi
16




Alessio Di Stasio – Giuseppe Landolfi
17




Alessio Di Stasio – Giuseppe Landolfi
18



• 
How
to
manage
“condi-on”
:
instantJ
Library,
it
allows
to
execute
parBal

java
source
code
during
runBme.


• 
How
to
manage
No-fica-on
received
by
external
web
services
(see
next

slide):
main
technologies
(AJAX,
Servlet).


• 
Logging
System:
tool for web application performance analysis that it is
 easy to customize and suitable for any kind of developer requirement. 





              Alessio Di Stasio – Giuseppe Landolfi
19




Alessio Di Stasio – Giuseppe Landolfi
20


•  Regarding
the
run+me
environment:

   –  Specific
formalism
to
manage
condi2on:

      •  Not
dependent
from
the
implementaBon
Language
(i.e.
Java)

      •  Add
special
kind
of
condiBons

   –  To
improve
composiBon
algorithm


   –  Add
other
features

•  Regarding
the
overall
plaPorm:

   –  IntegraBon
into
the
MashArt
plaform
(plug‐in)

   –  IntegraBon
with
the
MashArt
registry





          Alessio Di Stasio – Giuseppe Landolfi
21




Alessio Di Stasio – Giuseppe Landolfi

More Related Content

Similar to Tesi Laurea Specialistica

The Lean Startup at Web 2.0 Expo
The Lean Startup at Web 2.0 ExpoThe Lean Startup at Web 2.0 Expo
The Lean Startup at Web 2.0 ExpoVenture Hacks
 
Fedora App Slide 2009 Hastac
Fedora App Slide 2009 HastacFedora App Slide 2009 Hastac
Fedora App Slide 2009 HastacLoretta Auvil
 
Yakov Fain - Design Patterns a Deep Dive
Yakov Fain - Design Patterns a Deep DiveYakov Fain - Design Patterns a Deep Dive
Yakov Fain - Design Patterns a Deep Dive360|Conferences
 
Hacking Movable Type Training - Day 1
Hacking Movable Type Training - Day 1Hacking Movable Type Training - Day 1
Hacking Movable Type Training - Day 1Byrne Reese
 
The Semantics of MPEG-21 Digital Items Revisited!
The Semantics of MPEG-21Digital Items Revisited!The Semantics of MPEG-21Digital Items Revisited!
The Semantics of MPEG-21 Digital Items Revisited!Alpen-Adria-Universität
 
Roll-out of the NYU HSL Website and Drupal CMS
Roll-out of the NYU HSL Website and Drupal CMSRoll-out of the NYU HSL Website and Drupal CMS
Roll-out of the NYU HSL Website and Drupal CMSChris Evjy
 
2009 05 01 How To Build A Lean Startup Step By Step
2009 05 01 How To Build A Lean Startup Step By Step2009 05 01 How To Build A Lean Startup Step By Step
2009 05 01 How To Build A Lean Startup Step By StepEric Ries
 
The New Face of Learning? (full version)
The New Face of Learning? (full version)The New Face of Learning? (full version)
The New Face of Learning? (full version)Judith Christian-Carter
 
Inside Picnik: How We Built Picnik (and What We Learned Along the Way)
Inside Picnik: How We Built Picnik (and What We Learned Along the Way)Inside Picnik: How We Built Picnik (and What We Learned Along the Way)
Inside Picnik: How We Built Picnik (and What We Learned Along the Way)jjhuff
 
Robert Crawford Web Resume
Robert Crawford Web ResumeRobert Crawford Web Resume
Robert Crawford Web Resumerkcrawf
 
Scalability without going nuts
Scalability without going nutsScalability without going nuts
Scalability without going nutsJames Cox
 
Transforming Contexts: UC DAAP talk, May 8, 2009
Transforming Contexts: UC DAAP talk, May 8, 2009Transforming Contexts: UC DAAP talk, May 8, 2009
Transforming Contexts: UC DAAP talk, May 8, 2009Peter Jones
 
Sapo BUS Hands-On
Sapo BUS Hands-OnSapo BUS Hands-On
Sapo BUS Hands-Oncodebits
 
Cloud computing, Virtualisation and the Future
Cloud computing, Virtualisation and the FutureCloud computing, Virtualisation and the Future
Cloud computing, Virtualisation and the FutureAke Edlund
 
Unobtrusive Javascript
Unobtrusive Javascript Unobtrusive Javascript
Unobtrusive Javascript guest3c5779
 
Bcm Best Practise &amp; Local Challenges
Bcm Best Practise &amp; Local ChallengesBcm Best Practise &amp; Local Challenges
Bcm Best Practise &amp; Local Challengesbudzeg
 
Measuring Quality of Experience for MPEG-21-based Cross-Layer Multimedia Cont...
Measuring Quality of Experience for MPEG-21-based Cross-Layer Multimedia Cont...Measuring Quality of Experience for MPEG-21-based Cross-Layer Multimedia Cont...
Measuring Quality of Experience for MPEG-21-based Cross-Layer Multimedia Cont...Alpen-Adria-Universität
 

Similar to Tesi Laurea Specialistica (20)

The Lean Startup at Web 2.0 Expo
The Lean Startup at Web 2.0 ExpoThe Lean Startup at Web 2.0 Expo
The Lean Startup at Web 2.0 Expo
 
Fedora App Slide 2009 Hastac
Fedora App Slide 2009 HastacFedora App Slide 2009 Hastac
Fedora App Slide 2009 Hastac
 
Yakov Fain - Design Patterns a Deep Dive
Yakov Fain - Design Patterns a Deep DiveYakov Fain - Design Patterns a Deep Dive
Yakov Fain - Design Patterns a Deep Dive
 
Mobile Marketing Forum - MOOGA
Mobile Marketing Forum - MOOGAMobile Marketing Forum - MOOGA
Mobile Marketing Forum - MOOGA
 
Hacking Movable Type Training - Day 1
Hacking Movable Type Training - Day 1Hacking Movable Type Training - Day 1
Hacking Movable Type Training - Day 1
 
The Semantics of MPEG-21 Digital Items Revisited!
The Semantics of MPEG-21Digital Items Revisited!The Semantics of MPEG-21Digital Items Revisited!
The Semantics of MPEG-21 Digital Items Revisited!
 
Roll-out of the NYU HSL Website and Drupal CMS
Roll-out of the NYU HSL Website and Drupal CMSRoll-out of the NYU HSL Website and Drupal CMS
Roll-out of the NYU HSL Website and Drupal CMS
 
HTML Parsing With Hpricot
HTML Parsing With HpricotHTML Parsing With Hpricot
HTML Parsing With Hpricot
 
2009 05 01 How To Build A Lean Startup Step By Step
2009 05 01 How To Build A Lean Startup Step By Step2009 05 01 How To Build A Lean Startup Step By Step
2009 05 01 How To Build A Lean Startup Step By Step
 
The New Face of Learning? (full version)
The New Face of Learning? (full version)The New Face of Learning? (full version)
The New Face of Learning? (full version)
 
Inside Picnik: How We Built Picnik (and What We Learned Along the Way)
Inside Picnik: How We Built Picnik (and What We Learned Along the Way)Inside Picnik: How We Built Picnik (and What We Learned Along the Way)
Inside Picnik: How We Built Picnik (and What We Learned Along the Way)
 
Robert Crawford Web Resume
Robert Crawford Web ResumeRobert Crawford Web Resume
Robert Crawford Web Resume
 
Scalability without going nuts
Scalability without going nutsScalability without going nuts
Scalability without going nuts
 
Ms Dm Online
Ms Dm OnlineMs Dm Online
Ms Dm Online
 
Transforming Contexts: UC DAAP talk, May 8, 2009
Transforming Contexts: UC DAAP talk, May 8, 2009Transforming Contexts: UC DAAP talk, May 8, 2009
Transforming Contexts: UC DAAP talk, May 8, 2009
 
Sapo BUS Hands-On
Sapo BUS Hands-OnSapo BUS Hands-On
Sapo BUS Hands-On
 
Cloud computing, Virtualisation and the Future
Cloud computing, Virtualisation and the FutureCloud computing, Virtualisation and the Future
Cloud computing, Virtualisation and the Future
 
Unobtrusive Javascript
Unobtrusive Javascript Unobtrusive Javascript
Unobtrusive Javascript
 
Bcm Best Practise &amp; Local Challenges
Bcm Best Practise &amp; Local ChallengesBcm Best Practise &amp; Local Challenges
Bcm Best Practise &amp; Local Challenges
 
Measuring Quality of Experience for MPEG-21-based Cross-Layer Multimedia Cont...
Measuring Quality of Experience for MPEG-21-based Cross-Layer Multimedia Cont...Measuring Quality of Experience for MPEG-21-based Cross-Layer Multimedia Cont...
Measuring Quality of Experience for MPEG-21-based Cross-Layer Multimedia Cont...
 

Tesi Laurea Specialistica

  • 1. Executing Universal Compositions: A Framework for the Integration of Web Services and User Interfaces Relatore: Maristella Matera Correlatore: Florian Daniel Studenti: Alessio Di Stasio – Giuseppe Landolfi. Corso di Laurea Specilistica in Ingegneria Informatica
  • 2. 2 Alessio Di Stasio – Giuseppe Landolfi
  • 3. 3 •  What
is
done
before:
 –  UI
integra+on
(e.g.
UISDL
and
XPIL)
 –  Web
mashups
(e.g.
Mixup
editor
and
JavaScript
runBme)
 •  Goal
of
this
presentaBon
(our
thesis)
 –  Web
service
composi+on
(“BPEL
in
one
page”
–
why
not?
 –
Java)
 –  Propose
a
soluBon
that
seamlessly
combines
the
three
 above
points
into
one
universal
integra+on/composi+on
 approach.
 –  Show
how
(and
that)
the
proposed
universal
composiBons
 can
be
executed
(runBme
environment).
 Alessio Di Stasio – Giuseppe Landolfi
  • 4. 4 •  From
ad
hoc
(javascript….) 
to
integra+on
middleware
 –  Drag
n
Drop
dev
 –  CommunicaBon
among
UIs
 –  Reusable
components
 –  Lightweight
infrastructure
 •  Elements:
 –  Component
model
 –  ComposiBon
model
 –  Design
tools
 –  RunBme
Middleware
 Alessio Di Stasio – Giuseppe Landolfi
  • 5. 5 •  Combine
UI
and
applicaBon
integraBon
(and
later
on 
also
data
integraBon)
 •  Value:
 –  Again,
drag
n
drop
development
 –  Reusable
universal
components
 –  Focus
on
simplicity
and
“separaBon
of
duBes”
 •  Simple
flow,
coarse‐grained,
complex
components
 –  Beyond
SOAP
 •  Integrate
all
sorts
of
services,
transparently
 –  Build
on
successful
middleware
paradigms
 •  Events
and
pub/sub
 Alessio Di Stasio – Giuseppe Landolfi
  • 6. 6 •  What
kind
of
services
are
we
actually
talking
about?
 •  In
principle,
on
the
Web
we
may
have:
 –  SOAP/WSDL
web
services
 –  RESTful
services
(plain
hXp)
 –  RSS/Atom
feeds
(XML
formats)
 •  But
we
could
also
think
of:
 –  CORBA
objects
 –  Java
beans
 –  …
 Alessio Di Stasio – Giuseppe Landolfi
  • 7. 7 •  We
now
have
two
[three]
different
types
of
 components:
 –  UI
components
 –  AL
(applicaBon
logic)
components
 –  [Hybrid
components
(expose
both
UI
and
AL
interfaces)]
 •  As
they
indeed
are
different,
we
need
a
way
to
 graphically

 –  dis+nguish
them,

 –  clearly
highlight
their
differences,
but
also
 –  clearly
highlight
their
similari+es.
 Alessio Di Stasio – Giuseppe Landolfi
  • 9. 9 (2)
Universal
composi+on
 Alessio Di Stasio – Giuseppe Landolfi
  • 10. 10 •  Unified
component
model
 –  USDL
=
Unified
Service
DescripBon
Language
 •  Universal
composiBon
model
 –  UCL
=
Universal
ComposiBon
Language
 •  Java
runBme
environment
for
universal
composiBon
 >>
discussed
next
 Alessio Di Stasio – Giuseppe Landolfi
  • 11. 11 •  We
can
describe
UI
and
AL
components
by
means
of:
 –  Events
 UI
components
generate
events
in
response
to
user
 interacBons
or
to
internal
applicaBon
logic,
AL
 component’s
operaBons
may
be
used
as
events.
 –  Opera+ons
 UI
components
expose
operaBons
to
allows
internal
state
 changes,
AL
components
are
essenBally
represented
as
 operaBon
invocaBons.
 –  Proper+es
 Especially
UI
components
may
have
e.g.
configuraBon
 parameters.
 Alessio Di Stasio – Giuseppe Landolfi
  • 12. 12 •  Example
USDL:
 <usdl ...> <component id=quot;RSSAjax_component“ address=“...“ type=“component/UI”> <operation name=quot;showRSSquot; address=quot;showRSSquot;> <param name=“feed” type=quot;xsd:stringquot; /> <param name=“limit” type=quot;xsd:stringquot; /> </operation> <event name=quot;news_selected” address=quot;news_selectedquot;> <param name=quot;cityNamequot; type=quot;xsd:integerquot; /> </event> </component> <types> ... </types> </usdl> Alessio Di Stasio – Giuseppe Landolfi
  • 13. 13 •  Basically,
we
keep
the
concepts
we
already
know
 from
UI
composiBon...
 –  Listeners
 –  Events
and
opera2ons
 –  Simple
parameter
passing
 •  But
we
slightly
change
the
former
XPIL
logic
and
add
 a
few
new
features:
 –  Dis+nc+on
of
UI
and
AL
components
 –  Explicit
data
mapping
 –  Condi+ons
over
input
parameters
 –  Branch
and
join
constructs
 Alessio Di Stasio – Giuseppe Landolfi
  • 14. 14 <listener id=quot;ConditionalBranchingquot;> <event id=quot;newPositionquot; name=quot;newPosition” component=quot;GoogleMapquot;/> <operation id=quot;2quot; name=quot;getSearchedPhotoquot;component=“…flickrquot; condition=quot;condition1quot; type=quot;alquot;> <input source=quot;newPosition quot; name=”cityquot;/> </operation> <operation id=quot;3quot; name=quot;getCityCountryquot; component=“…CityBookquot; condition=quot;condition2quot; type=quot;alquot;> <input source=quot;newPosition quot; name=quot;cityquot;/> </operation> </listener> <listener id=quot;joinquot;> <event id=quot;2quot; name=quot;getSearchedPhotoquot; component=“…flickrquot;/> <event id=quot;3quot; name=quot;getCityCountryquot; component=“…CityBookquot;/> <operation id=quot;4quot; name=quot;createHtmlquot; component=“…htmlCreatorquot; condition=quot;quot; type=quot;alquot;> <input source=quot;3quot; name=quot;resultquot;/> <input source=quot;2quot; name=quot;resultquot;/> </operation> </listener> Alessio Di Stasio – Giuseppe Landolfi
  • 15. 15 Alessio Di Stasio – Giuseppe Landolfi
  • 16. 16 Alessio Di Stasio – Giuseppe Landolfi
  • 17. 17 Alessio Di Stasio – Giuseppe Landolfi
  • 19. 19 Alessio Di Stasio – Giuseppe Landolfi
  • 20. 20 •  Regarding
the
run+me
environment:
 –  Specific
formalism
to
manage
condi2on:
 •  Not
dependent
from
the
implementaBon
Language
(i.e.
Java)
 •  Add
special
kind
of
condiBons
 –  To
improve
composiBon
algorithm

 –  Add
other
features
 •  Regarding
the
overall
plaPorm:
 –  IntegraBon
into
the
MashArt
plaform
(plug‐in)
 –  IntegraBon
with
the
MashArt
registry
 Alessio Di Stasio – Giuseppe Landolfi
  • 21. 21 Alessio Di Stasio – Giuseppe Landolfi