mashlight a lightweight mashup framework for everyone m. albinola, m. carcano, l. baresi, s. guinea
TRANSCRIPT
MashlightA lightweight mashup framework for everyone
M. Albinola, M. Carcano, L. Baresi, S. Guinea
1st SMSCom Meeting 2
Mashups in a nutshell
• Reuse and integration of components– Lower design and development costs– Lower time-to-market
• Software as a Service (SaaS)– Simple and lightweight model– Universally accessible (through a browser)– No need to install
• Do-it-yourself (DIY)– Anyone can be an author– On–the-fly development
17-19/06/09 Como (Italy)
1st SMSCom Meeting 3
Quality dimensions
• Flexibility– Suppport for all three “natures”
(Data, Logic and Presentation)• Usability
– Abstraction level that any kind of user can understand(End Users and Developers)
• Lightweight– Can be deployed onto different kinds of devices
(Android/iPhone)
17-19/06/09 Como (Italy)
1st SMSCom Meeting 4
Mashlight
• Starting Point– Mashups are created through the process-like
disposition of logic activities
• Main characteristics– Single activities are Web 2.0 applications
• Mac OS X Dashboard, Vista sidebar, etc.– Process language is extremely simple
• Blocks define abstraction level– Show one activity at a time
• Provide intrinsic rollback
17-19/06/09 Como (Italy)
1st SMSCom Meeting 5
Mashlight Blocks
• Independent functional unit with clear goal– Es: Weather service, calculator, yellow pages, Remote
Service Invocation
• Parameters
• Links
17-19/06/09 Como (Italy)
Block Blockinput
output
Block
outlink1
Block
outlink2outlink1
entry connection
outlink
1st SMSCom Meeting 6
Real-world blocks…
• Widget-like Web 2.0 applications• Modified versions of Google Widgets
– Support for I/O parameters– Support for interaction with Mashlight Engine
17-19/06/09 Como (Italy)
1st SMSCom Meeting 7
Mashlight Processes
• Graph representation of the process– Activation order (Process Flow)– Data dependencies (Data Flow)
• High level of abstraction– No explicit conditional branching or looping
17-19/06/09 Como (Italy)
A
B D
C E
Process Flow
A
B D
C E
Execution Flows
A
E
A
B D
C E
Data Flow
1st SMSCom Meeting 8
Advanced Aspects
• Complex Data Assignment
• Data with Multiple Cardinality
• Prioritized data assignments
17-19/06/09 Como (Italy)
city
street
AB
address.cityaddress.street
A
Execution flow
B C
C
B
address[*].cityaddress[1].city
A
B
streetaddress[1].street
A
B
address[2].citycity
A
C
address[1].city
address.city
address[2].street
A B
address.streetB
city[*]address[1].city
A
1st SMSCom Meeting 9
Advanced Aspects
• Undo operation– Goes back to the beginning of the previously completed
block
17-19/06/09 Como (Italy)
A
B D
C E
Process Flow
A
Evolution of the execution flow
D
E
1
A
B
C
2
A
D
3
1st SMSCom Meeting 10
Architecture
• Four main modules
17-19/06/09 Como (Italy)
Runtime Engine
Mashup Builder
Block Builder
Blocks Library
Mashup Process
Block
1st SMSCom Meeting 11
Runtime Engine
17-19/06/09 Como (Italy)
Map Mashup area
Control toolbar
1st SMSCom Meeting 12
Example- NightPlan
• User wants to organize a night out: – restaurant + cinema
• Mashlight blocks:– PagineGialle
• Italian Yellow Pages– Google Maps
• Visualization of interest point– MovieTickets
• Buy tickets online– Google Maps Navigator
• Map driving instructions
17-19/06/09 Como (Italy)
DEMO
1st SMSCom Meeting 13
A - PagineGialle
out
B - Google Maps
out
C - PagineGialle
out
D - Google Maps
out
E - MovieTickets
out
F - Google Maps Navigator
out
what: ristorantewhere: MilanostreetName: piazza leonardo
A - Pagine gialle
C - Pagine gialle
E - MovieTickets
F - Google Maps Navigator
searchQuery autoQuery
resultItem.coordinates
coordinates
cinema
searchQuery autoQuery
false
resultItem.cityresultItem.address
resultItem.coordinates
CinemaName accountUsername
resultItem.name
Matteo
city: Milanoaddress: via Golgi, 40
from tosteps[0]
resultItem.coordinates
resultItem.coordinates
false
B - Google Maps
address
coordinates
B - Google Maps
address
travelMode
Process Flow Data Flow
17-19/06/09 Como (Italy)
1st SMSCom Meeting 14
Future Work
• Enrich library of Mashlight blocks– Specific blocks for specific domains
• Block Builder– Eclipse plugin for semi-automatic block creation– WADL-generated Mashlight blocks
• Mashup Builder– General purpose process design environment
• Support for mobile devices– Process starts on PC and continues on Android/iPhone
• Domain-specific abstractions that use Mashlight as backend
17-19/06/09 Como (Italy)
Active services(http://nycgo.com)
17-19/06/09 Como (Italy) 1st SMSCom Meeting 15
Buy ticket
What do we want to combine?
• Special-purpose services• Created by the previous
ones
• They are supposed to– Assist users– Manage fruition– Sense the environment
17-19/06/09 Como (Italy) 1st SMSCom Meeting 16
1st SMSCom Meeting 17
QUESTIONS?
17-19/06/09 Como (Italy)