Andreas Krohn Product Manager Kapow Technologies MAX 2007 CONNECT. DISCOVER. INSPIRE.
<ul><li>Everybody would build fantastic applications using Flex with great functionality and GUIs </li></ul><ul><li>Buildi...
<ul><li>Apps need to communicate with other apps, databases and systems </li></ul><ul><li>Especially true when we are talk...
<ul><li>The lack of APIs </li></ul><ul><ul><li>It is hard to get to the data and functionality you want to use in your app...
The Long Tail #Users #Apps Only the top Apps will have an API. Example: Google, Amazon, Salesforce The majority of the App...
<ul><li>Structured Data </li></ul><ul><ul><li>Databases </li></ul></ul><ul><ul><li>Only 15-20% of the data is structured i...
<ul><li>Most systems have an HTML frontend </li></ul><ul><li>What if HTML was an API? </li></ul><ul><ul><li>Access all the...
Inside a Mashup/RIA Mashup/RIA Flex Flash AIR ColdFusion REST Kapow Mashup Server Atom RSS API HTML & JS API SQL Users Dat...
<ul><li>Enabling Mashups & RIAs by giving access to HTML </li></ul><ul><ul><li>Repackage functionality from HTML </li></ul...
<ul><li>Free Mashup Community </li></ul><ul><ul><li>Download our development tool and get started </li></ul></ul><ul><li>B...
<ul><li>People Search Demo built in Flex </li></ul><ul><li>Searching LinkedIn & Spock via Kapow Robots </li></ul><ul><li>F...
<ul><li>Robots built in the RoboMaker IDE </li></ul><ul><ul><li>Visual development </li></ul></ul><ul><ul><li>Robot is exe...
<ul><li>http://service.openkapow.com/adobemax/SpockSearch.xml?name=Andreas+Krohn&resultformat=xml </li></ul><ul><ul><li>Fo...
<ul><li>Define HTTPService </li></ul><ul><ul><li>id = ”spockService” </li></ul></ul><ul><ul><li>method = ”GET” </li></ul><...
<ul><li><mx:DataGrid dataProvider=&quot;{spockService.lastResult.contact}“ … > </li></ul><ul><ul><ul><li><mx:columns> </li...
<ul><li>Accessed LinkedIn and Spock without using an official API.  </li></ul><ul><ul><li>Access via their web sites! </li...
<ul><li>Access the functionality of a web app without an API </li></ul><ul><ul><li>Handles multi-page navigation </li></ul...
FAQ <ul><li>Is it legal to access all those sites? </li></ul><ul><ul><li>It is a tool that should be used responsibly </li...
<ul><li>Start thinking about all the possibilities </li></ul><ul><li>Download all demo files at: </li></ul><ul><ul><li>htt...
Upcoming SlideShare
Loading in...5
×

Build APIs With Kapow Mashup Server

3,399

Published on

Overview of the need for APIs in order to build RIAs with Adobe Flex. Also a breif walkthrough on how to create Mashups with Flex and Kapow Mashup Server.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,399
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Build APIs With Kapow Mashup Server

  1. 1. Andreas Krohn Product Manager Kapow Technologies MAX 2007 CONNECT. DISCOVER. INSPIRE.
  2. 2. <ul><li>Everybody would build fantastic applications using Flex with great functionality and GUIs </li></ul><ul><li>Building apps that can communicate with all other apps </li></ul><ul><li>And everybody would live happily ever after </li></ul>In a Perfect World
  3. 3. <ul><li>Apps need to communicate with other apps, databases and systems </li></ul><ul><li>Especially true when we are talking about Mashups </li></ul><ul><ul><li>” A Mashup is a website or application that combines content from more than one source into an integrated experience”* </li></ul></ul><ul><ul><li>Building situational applications ad-hoc using the web as a platform </li></ul></ul><ul><li>Requires APIs </li></ul><ul><ul><li>Trend towards more and more open APIs </li></ul></ul><ul><ul><li>Some examples are Google Maps API and Amazon API </li></ul></ul>* Source: Wikipedia.org No (useful) Application is an Island
  4. 4. <ul><li>The lack of APIs </li></ul><ul><ul><li>It is hard to get to the data and functionality you want to use in your application </li></ul></ul><ul><li>No access rights </li></ul><ul><ul><li>No crossdomain.xml file at all </li></ul></ul><ul><ul><li>Or a crossdomain.xml file with very limited access rights </li></ul></ul>What is Holding us Back?
  5. 5. The Long Tail #Users #Apps Only the top Apps will have an API. Example: Google, Amazon, Salesforce The majority of the Apps will not have an API. Large International Enterpise: ” We have over 6000 internal websites and no APIs”
  6. 6. <ul><li>Structured Data </li></ul><ul><ul><li>Databases </li></ul></ul><ul><ul><li>Only 15-20% of the data is structured in databases! </li></ul></ul><ul><li>Unstructured Data </li></ul><ul><ul><li>Email </li></ul></ul><ul><ul><li>Excel </li></ul></ul><ul><ul><li>PDF </li></ul></ul><ul><ul><li>XML </li></ul></ul><ul><ul><li>...and of course HTML </li></ul></ul>Data Sources
  7. 7. <ul><li>Most systems have an HTML frontend </li></ul><ul><li>What if HTML was an API? </li></ul><ul><ul><li>Access all the sites on the internet </li></ul></ul><ul><ul><li>Access all the sites on your intranet </li></ul></ul><ul><ul><li>Suddenly there would be a way to access almost any system! </li></ul></ul><ul><li>Challenges </li></ul><ul><ul><li>Handle HTML tagsoup </li></ul></ul><ul><ul><li>JavaScript </li></ul></ul><ul><ul><li>Handle logins, sessions, cookies </li></ul></ul><ul><li>Kapow Mashup Server </li></ul>HTML
  8. 8. Inside a Mashup/RIA Mashup/RIA Flex Flash AIR ColdFusion REST Kapow Mashup Server Atom RSS API HTML & JS API SQL Users Data Sources WS* WS* DB Web Apps SQL WS* REST RSS
  9. 9. <ul><li>Enabling Mashups & RIAs by giving access to HTML </li></ul><ul><ul><li>Repackage functionality from HTML </li></ul></ul><ul><ul><li>Access data from HTML </li></ul></ul><ul><li>Publish data & functionality from HTML as REST, RSS or Atom feeds </li></ul><ul><ul><li>Also Java API, C# API, Portlets, SOAP WS, write to databases etc </li></ul></ul><ul><li>Automating what a person can do in a browser </li></ul><ul><ul><li>Robots </li></ul></ul><ul><li>250+ customers </li></ul><ul><ul><li>Audi, Bank of America, Simply Hired etc </li></ul></ul>Kapow Mashup Server
  10. 10. <ul><li>Free Mashup Community </li></ul><ul><ul><li>Download our development tool and get started </li></ul></ul><ul><li>Build robots and share with the Community </li></ul><ul><ul><li>See what others have built </li></ul></ul><ul><li>Create REST services and RSS/Atom feeds from web sites </li></ul><ul><li>Has a crossdomain.xml file that gives total access to all sites </li></ul><ul><ul><li>Use openkapow.com as a proxy </li></ul></ul>Openkapow.com
  11. 11. <ul><li>People Search Demo built in Flex </li></ul><ul><li>Searching LinkedIn & Spock via Kapow Robots </li></ul><ul><li>Flex calls these robots as REST services and gets XML back </li></ul><ul><li>The robots interact with LinkedIn.com and Spock.com directly, not via a predefined API </li></ul>Demo Overview Flex App Kapow Mashup Server LinkedIn Spock Robots REST XML
  12. 12. <ul><li>Robots built in the RoboMaker IDE </li></ul><ul><ul><li>Visual development </li></ul></ul><ul><ul><li>Robot is executed during development </li></ul></ul><ul><ul><li>Full control over the process flow </li></ul></ul><ul><ul><li>Easy deployment </li></ul></ul>Robots
  13. 13. <ul><li>http://service.openkapow.com/adobemax/SpockSearch.xml?name=Andreas+Krohn&resultformat=xml </li></ul><ul><ul><li>Format </li></ul></ul><ul><ul><ul><li>XML </li></ul></ul></ul><ul><ul><ul><li>JSON </li></ul></ul></ul><ul><ul><ul><li>HTML </li></ul></ul></ul><ul><ul><ul><li>CSV </li></ul></ul></ul><ul><li><?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?> </li></ul><ul><ul><li><result> </li></ul></ul><ul><ul><li><person> </li></ul></ul><ul><ul><li><name>Andreas Krohn</name> </li></ul></ul><ul><ul><li><description/> </li></ul></ul><ul><ul><li><address>Sweden</address> </li></ul></ul><ul><ul><li></person> </li></ul></ul><ul><ul><ul><li>... </li></ul></ul></ul><ul><ul><li></result> </li></ul></ul><ul><ul><li></xml> </li></ul></ul>REST Service Request & Response
  14. 14. <ul><li>Define HTTPService </li></ul><ul><ul><li>id = ”spockService” </li></ul></ul><ul><ul><li>method = ”GET” </li></ul></ul><ul><ul><li>url = Robot REST Service URL </li></ul></ul><ul><ul><ul><li>Excluding input parameters </li></ul></ul></ul><ul><ul><li>resultFormat = ”e4x” </li></ul></ul><ul><li>Call REST Service using send() </li></ul><ul><ul><li>spockService.send( { </li></ul></ul><ul><ul><li>name: search_name.text, </li></ul></ul><ul><ul><li>format: 'XML' </li></ul></ul><ul><ul><li>} ); </li></ul></ul>Call REST Service from Flex
  15. 15. <ul><li><mx:DataGrid dataProvider=&quot;{spockService.lastResult.contact}“ … > </li></ul><ul><ul><ul><li><mx:columns> </li></ul></ul></ul><ul><ul><ul><ul><li><mx:DataGridColumn headerText=&quot;Name&quot; dataField=&quot;name&quot; /> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><mx:DataGridColumn headerText=&quot;Address&quot; dataField=&quot;address&quot;/> </li></ul></ul></ul></ul><ul><ul><ul><ul><li><mx:DataGridColumn headerText=“Description&quot; dataField=“description&quot;/> </li></ul></ul></ul></ul><ul><ul><ul><ul><li>... </li></ul></ul></ul></ul><ul><li>” contact” in the dataProvider refers to the RESTOutput.groupName in the robots output XML </li></ul>Use the REST Service Result
  16. 16. <ul><li>Accessed LinkedIn and Spock without using an official API. </li></ul><ul><ul><li>Access via their web sites! </li></ul></ul><ul><ul><li>HTML is an API </li></ul></ul><ul><li>Easy to access all websites from Flex </li></ul><ul><ul><li>Great possibilities to build killer apps </li></ul></ul><ul><li>Lack of APIs and lack of crossdomain.xml files are no longer a problem! </li></ul>Demo Summary Flex App Kapow Mashup Server LinkedIn Spock Robots REST XML
  17. 17. <ul><li>Access the functionality of a web app without an API </li></ul><ul><ul><li>Handles multi-page navigation </li></ul></ul><ul><ul><li>Does it with great stability and robustness </li></ul></ul><ul><li>Create RSS/Atom feeds, REST services from almost any web site. </li></ul><ul><li>Advanced JavaScript handling and execution. </li></ul><ul><li>Handles logins to protected sites using cookies, HTTP & form authentication, HTTPs. </li></ul><ul><li>Very powerful data extraction and HTML interaction using regular expressions, converters and patterns. </li></ul><ul><li>Flexible error handling and debugging. </li></ul><ul><li>Graphical point-and-click development environment with 1-click deployment. </li></ul><ul><li>Full control over the process flow in a robot, including conditions and loops </li></ul>Highlighted Features
  18. 18. FAQ <ul><li>Is it legal to access all those sites? </li></ul><ul><ul><li>It is a tool that should be used responsibly </li></ul></ul><ul><ul><li>Often it can add value to the site owner if the data is used in new ways </li></ul></ul><ul><li>Is it stable and robust? </li></ul><ul><ul><li>Yes! Robots can be built very robust </li></ul></ul><ul><ul><li>There are of course tools to monitor robots in production </li></ul></ul><ul><ul><li>Web sites do not change as much as most people think (at least not so much that it causes any problems for robots) </li></ul></ul><ul><li>Isn’t this really cool? </li></ul>
  19. 19. <ul><li>Start thinking about all the possibilities </li></ul><ul><li>Download all demo files at: </li></ul><ul><ul><li>http://demo.openkapow.com/kapowersearch/kapowersearch.zip </li></ul></ul><ul><li>More informations at </li></ul><ul><ul><li>Openkapow.com </li></ul></ul><ul><ul><li>Kapowtech.com </li></ul></ul><ul><li>Questions? </li></ul>The End

×