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

Building Intelligent Mashups

on

  • 1,869 views

 

Statistics

Views

Total Views
1,869
Slideshare-icon Views on SlideShare
1,866
Embed Views
3

Actions

Likes
0
Downloads
35
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 Building Intelligent Mashups Presentation Transcript

    • 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
    • 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
    • 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
    • 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 ).
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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.
    • Basic components and roles Future Trends in Service-Oriented Computing, Hasso Plattner Institut, Potsdam, June 18-19, 2009
    • 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
    • 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)
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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