Building Intelligent Mashups
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Building Intelligent Mashups

on

  • 1,942 views

 

Statistics

Views

Total Views
1,942
Views on SlideShare
1,939
Embed Views
3

Actions

Likes
0
Downloads
36
Comments
0

1 Embed 3

http://www.slideshare.net 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Building Intelligent Mashups Presentation Transcript

  • 1. Building Intelligent Mashups An Introduction Adrian Giurca BTU Cottbus Dept. of Internet Technologies http://www.informatik.tu-cottbus.de/~agiurca/ http://adrian-giurca.blogspot.com Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 2. About me
      • Adrian Giurca (42 years old)
      • I'm with BTU Cottbus from 2005
      • Previously I was with University of Craiova, RO (from 1990)
      • I did my PhD (Dr. rer. nat) at University of Bucharest, RO
      • During the last 15 years, I taught Logic Programming , Natural Language Processing, Software Engineering , Project Management , Web Technologies , eBusiness Technologies , Semantic Web , and some others.
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 3. This talk is about mashups
      • What is an Intelligent Mashup?
      • How to build intelligent mashups?
      • This talk is not about data but about software
      • Creating content is expensive but using it is much more easy
      • We like users to create data and services
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 4. What is a mashup?
      • A mashup is a new song that is mixed from the vocal and instrumental tracks from different source songs ( usually belonging to different genres ).
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
      • How the mixing is done gives the value of the mashup
      • A Web Mashup is a Web application that is mixed from different other Web applications ( usually belonging to different domains ).
  • 5. Why we need mashups
      • To increase innovation by unlocking and remixing information in ways not originally planned for.
      • To discover new business insights by easily assembling information from multiple sources.
      • To reduce development costs through lightweight integration, reuse and sharing.
      • To increase agility by supporting dynamic assembly and configuration of applications.
      • To speed up the development , usually using visual artifacts
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 6. A Simple Mashup Classification
      • Server-Side Data Mashup – It is still hard to mashup up data across databases from different vendors.
      • Server-Side Software Mashup - Service orchestration, service choreography?
      • Client-Side Data Mashup - combines remote data (from, feeds, XML, or plain HTML ). New knowledge that didn’t exist before can result.
      • Client-Side Software Mashup - the application code is directly integrated in the browser to result in a distinct and new capability. There is a considerable browser potential in being able to easily wire together services into new functionality.
      • Presentation Mashup - Showing existent information in another way (e.g. Ajax Based “desktops”).
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 7. IBM Trip Planner
      • Many similarities with typical Web applications
      • Low or none user innovation/creativity. Users cannot customize/add services (I want to use my own Weather Service!) …
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 8. iGoogle Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
      • … probably the most complex user-defined mashup
      • ... is a collection of Gadgets
      • ... but Gadgets are proprietary technology
      • … as well Microsoft Gadgets, Apple Widgets, ...
      • Users would like to build mashups by mixing from different services and platforms
      • Users have to design to build their mashups
  • 9. Real Mashups are client-side
      • Server-side mashups look like classical server applications but using Data and API’s/Services offered by many platforms (Google, Amazon, Yahoo, YouTube, Flickr, Reuters, CNN, …). They have to be built by skilled programmers
      • Client-side mashups are created by users (business people), typically using widgets (as programming components) and feeds (as data components).
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 10. What is an Intelligent Mashup?
      • An Intelligent Mashup uses Artificial Intelligence reasoning techniques to combine different Web Sources (Web Data, Web Services and Web Applications).
      • Using both usual data (XML, Atom, RSS, HTML) and Semantic Web data (RDF, RDFS, OWL) allows reasoning on the Semantic Web, too.
      • One way doing AI is to embed rule-based reasoning inside mashups .
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 11. Open Issues: Doing Business with Mashups
      • How one can sell a mashup ? (SaaS?)
      • What is the lifetime of a mashup ?
      • How to deal with the lifetime of the data sources we use? What about services we use?
      • What are the legal aspects involved in mashups?
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 12. Open Issues: Modeling, Design and Reasoning
      • What is a mashup information model ? (Ongoing Research on Widgets standards)
      • What are the mashup business processes ? (A BPMN extension?)
      • How to model the user behavior on the mashup page? (A rule-based model?)
      • How to reason on the basis of user activity ? (JSON Rules?)
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 13. Open Issues: Implementation
      • How to catch user activity ? ( users interacts with HTML forms and events (DOM Events)... )
      • What's happening when a data source is unavailable ? Do we have to define exceptions/faults? ( Probably yes )
      • How to prohibit malware code ? ( use frameworks? )
      • How can be implemented widget dependency i.e. how we exchange data between widgets ? ( With forms, events and rules? )
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 14. Lets Do Intelligent Mashups
      • … software mashups
      • … using AI techniques to implement reasoning
      • … can play both server-side and client-side:
        • server-side: using reasoning engines (rule-based reasoning , description logic based reasoning, …)
        • client-side : using client-side reasoning engines (?)
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 15. Reasoning inside server-side mashups
      • Old knowledge better infrastructure and technologies
        • Classical AI applications tailored by actual technologies (e.g. running Drools instead of CLIPS or running Jena Rules instead of Prolog rules) providing better integration with the existent middleware
        • AI based combination of (Semantic) Web Services
      • Pros
        • Deriving new knowledge assets using well known classical AI applications
        • Deriving intelligent Web Services (based on AI integration with actual technologies) aka Semantic Web Services
      • Cons
        • Need skilled developers
        • Less social
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 16. Reasoning inside client-side mashups
      • Innovative AI applications using the browser infrastructure and technologies
        • combining remote information from different services together with the information derived from the user activity
        • using Event-Condition-Action Rules to describe the reasoning
      • Pros
        • Designed and created by users (No high skilled developers)
        • Deriving new knowledge assets (e.g. new feeds)
        • Improving the user activity towards live achieving of the user goals
      • Cons
        • Consume the users hardware resources( Pros?)
        • Keep their data on third party servers
        • Security at the browser level
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 17. 2. How to build intelligent mashups Challenges and potential solutions. What we achieved until now. Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 18. The actual challenges
      • No industry-wide agreement on a widget standard yet.
      • Big players try to promote only their own APIs and services
      • Security concerns around mashing internal data with external (non trusted?) API
      • Potential for malicious, malformed code (rogue widgets)
      • Industry looking to establish standard cross-domain secure communication mechanism
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 19. A Proposal: JSON Rules
      • Based on JSON (any rule is a JSON object)
      • Uses a Drools-like condition language
      • Uses JavaScript function calls as actions
      • Supports both Production Rules and
      • Event-Condition-Action Rules
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 20. A Simple Rule and its Execution Effect <div class='note'> <ul> <li>First issue</li> <li>Second issue </li> </ul> </div> <div class=&quot;note&quot;> <p>Another note</p> </div> Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009 On any occurrence of a &quot;mouse click&quot; on any element with class='note' having as first child an ul element, change the first child background color to blue. Mouse click
  • 21. Criticism
      • This can be done immediately with JavaScript and event listeners
    • but
      • You should register listeners on all necessary elements, or, using event bubbling one may have some simplification
      • Event listeners implements just a simple kind of rule: ON event DO Action
      • What about much more complex rules?
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 22. Can you do this fast with JS?
      • [Usability] If The user reads Reuters news about swine flu, then deliver him similar news from CNN and possibly update his swine flu Google Map
      • [Advertising] If the user loads financial news offers him a three months subscription to Financial Times
      • [Accesibility] Whenever the user clicks more than 3 times a menu item add this item to the fast menu items.
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 23. Encoding the rule (JSON Rule) { &quot;id&quot; :&quot;rule101&quot;, &quot;appliesTo&quot; : [ &quot;http://www.mysite.com&quot;, &quot;http://www.google.com/&quot; ], &quot;eventExpression&quot; : { &quot;type&quot; : &quot;click&quot;, &quot;target&quot; : &quot;$X&quot; }, &quot;conditions&quot; : [ &quot;$X:Element( class == 'note', $Y:firstChild)&quot;, &quot;$Y.tagName == 'ul'&quot; ], &quot;actions&quot; : [ &quot;changeBackground($Y, 'blue')&quot; ] } Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009 On any occurrence of a DOM click on any element with class='note' having as first child an ul element, change the first child background color to blue.
  • 24. Basic components and roles Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 25. Internal Encoding (plain JSON) {&quot;id&quot;: &quot;rule101&quot;, &quot;priority&quot;: 1, &quot;appliesTo&quot;: [&quot;http://www.mysite.com&quot;,&quot;http://www.google.com/&quot;], &quot;eventExpression&quot;:{ &quot;type&quot;:&quot;click&quot;, &quot;target&quot;:{&quot;variable&quot;:{&quot;name&quot;:&quot;$X&quot;}} }, &quot;condition&quot;:[ {&quot;description&quot;: {&quot;type&quot;:1, &quot;binding&quot;: {&quot;variable&quot;:{&quot;name&quot;:&quot;$X&quot;}}, &quot;constraints&quot;:[ {&quot;propertyRestriction&quot;:{&quot;property&quot;:&quot;class&quot;, &quot;operator&quot;:&quot;EQ&quot;, &quot;value&quot;:&quot;note&quot; } }, {&quot;propertyBinding&quot;:{&quot;property&quot;:&quot;firstChild&quot;, &quot;variable&quot;:{&quot;name&quot;:&quot;$Y&quot;} } } ] } }, {&quot;javaScriptBooleanCondition&quot;:&quot;$Y.tagName == 'ul'&quot;} ], &quot;actions&quot;:[ { &quot;functionName&quot;:&quot;changeBackground&quot;, &quot;functionArgs&quot;:[&quot;$Y&quot;,&quot;blue&quot;] } ] } Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 26. Basic engine activities Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009 © E. Pascalau & A. Giurca (submitted paper at KESE 2009)
  • 27. Using JSON Rules in Mashups
      • Embed the engine:
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
      • Create an engine instance and run a ruleset:
    <script type=&quot;text/javascript&quot; src=&quot;http://.../jsonRulesEngine_Version.js&quot;> </script> var ruleSystem = new org.jsonrules.JSONRulesMainSystem(); ruleSystem.run(&quot;http://.../rulesRepo.txt&quot;);
      • The mashup is ready to be used. The event manager listens for all DOM events and possible user-defined events and triggers corresponding rules accordingly.
    You are not constraint on using only rules
  • 28. Benefits and Drawbacks (1)
      • Easy Modeling – rules are a natural way to express things and relationships (are they ?)
      • Complex business workflows ( mBPMN? );
      • Declarative programming - (Some people like rules some others not).
      • Information can be fetched and displayed in anticipation of the user response ;
      • Support for intelligent user interfaces
      • Allow re-syndication
      • Service aggregation - Using ECA rules
      • Move the reasoning process to the client-side resulting in reduced network traffic and faster response ;
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 29. Benefits and Drawbacks (2)
      • Search based on public Web services - via Ajax
      • Complex side effects - Rule actions allow any JavaScript function call
      • Any presentation layer - Induced by CSS availability (CSS is rule-based too)
      • Pages can be updated in response to the user input, including the usage of cached data ;
      • Speed - Scalability tests should be performed
      • Stability - As much as any other JavaScript-based application
      • Security - As much as any other JavaScript-based application
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 30. Past and Present Work
      • Analysis on basic mashup platforms (IBM Mashup Editor, Yahoo Pipes, Semantic Pipes, Microsoft Popfly, Google Mashup Editor) towards a top level ontology for defining mashup concepts (final stage – report will came soon)
      • A Rule Language tailored to the DOM Processing supporting ECA Rules (different extensions wait their time)
      • A Rule Engine (final stage - online soon)
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 31. What we don't have but like to
      • An extension of BPMN towards modeling mashup business processes ( mBPMN )
      • mBPMN patterns directly serialized to JSON Rules
      • A tool for using mBPMN (Oryx?)
      • A complex use case (on the way)
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
  • 32. Advertising
      • We spread the world with some publications
        • A. Giurca and E. Pascalau. JSON Rules , Proc. of 4 th Knowledge Engineering and Software Engineering, (KESE 2008), at KI 2008, September 23, 2008, Kaiserlautern, Germany.
        • E. Pascalau and A. Giurca. Towards enabling SaaS for Business Rules. ISM'2009, March 23-24, 2009, Leipzig, Germany.
        • E. Pascalau and A. Giurca. A Rule-Based Approach of Creating and Executing Mashups , 9 th IFIP Conference on e-Business, e-Services, and e-Society (I3E 2009), September 23-25, 2009, Nancy, France.
      • We'll give a tutorial at the 32 nd Annual Conference on Artificial Intelligence (KI 2009) September 15–18, 2009, Paderborn, Germany (available online soon)
      • Three more papers are under review ( the engine architecture , the relationship with cloud computing , and the information model of an intelligent mashup )
      • Two Master theses are defined (to be defended in 2010)
    Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009