SlideShare a Scribd company logo
iBeans = dead-simple integration + web app development Ken Yagen Silicon Valley Code Camp, October, 2009
Agenda Introduction to Mule iBeans
Demo
How it works
Using iBeans
The Future of iBeans All contents Copyright © 2009, MuleSoft Inc.
What is an iBean? A way to access external services, Facebook, AWS, eBay
A well-defined interface to a hosted service ‘ service’ can be public or internal to your company A Java interface with annotated method
A really easy way to create a reusable component All contents Copyright © 2009, MuleSoft Inc.
Introduction to Mule iBeans Dramatically simplified integration for web applications
Simple API using annotations
Works with JSP, JSF, Struts, Spring, JavaScript
Task-based integration, e.g.: Send/receive email
Subscribe to JMS queue
Poll RSS or Twitter feed
Publish REST service Open source
Based on Mule All contents Copyright © 2009, MuleSoft Inc.
Do we need another framework? Plenty of ESB/integration frameworks out there – Mule, Open ESB, Camel, Spring Integration All feel SOA-influenced
Not much for the WebApp developers who just wants grab data quickly
Focus on:  Dead simple API
Reuse
Task-based integration All contents Copyright © 2009, MuleSoft Inc.
Demo time All contents Copyright © 2009, MuleSoft Inc.

More Related Content

PPT
Salesforce Integration
PPT
Mulesoft Alfresco webinar
PPTX
Building A Mobile First API When You're Not Mobile First - Tyler Singletary
PDF
NZ Post - Mulesoft Summit presentation
PPTX
Mulesoft Anypoint platform for APIs
PDF
Build Cloud & Mobile App on Salesforce Force.com Platform in 15 mins
PPTX
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
PPTX
Demystifying MuleSoft
Salesforce Integration
Mulesoft Alfresco webinar
Building A Mobile First API When You're Not Mobile First - Tyler Singletary
NZ Post - Mulesoft Summit presentation
Mulesoft Anypoint platform for APIs
Build Cloud & Mobile App on Salesforce Force.com Platform in 15 mins
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
Demystifying MuleSoft

What's hot (20)

PPTX
Dreamforce 2013 - Heroku 5 use cases
PPTX
Architecting in the Cloud: Choosing the Right Technologies for your Solution
PDF
Why mobile projects require API-led connectivity
PPTX
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoft
PPTX
Mule esb stripe
PPTX
What is CloudSpokes?
PPTX
Integrating Force.com with Heroku
PPTX
Connect Your Clouds with Force.com
PPTX
All About Salesforce Lightning
PDF
Product Keynote: How to Compete in the API Economy
PPT
Three layer API Design Architecture
PDF
Integration patterns and practices for cloud and mobile computing
PPT
Using Node.js for Mocking Apex Web Services
PPTX
Running and Managing Mule Applications
PPT
Mule api and service management
PPTX
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
PPTX
Connecting the New Enterprise | MuleSoft
PDF
MuCon 2015 - Microservices in Integration Architecture
PPT
Netsuite open air connector
PDF
Mule : Building Blocks for Microservices
Dreamforce 2013 - Heroku 5 use cases
Architecting in the Cloud: Choosing the Right Technologies for your Solution
Why mobile projects require API-led connectivity
Hybrid Cloud Integration is Coming: Are You Ready? | MuleSoft
Mule esb stripe
What is CloudSpokes?
Integrating Force.com with Heroku
Connect Your Clouds with Force.com
All About Salesforce Lightning
Product Keynote: How to Compete in the API Economy
Three layer API Design Architecture
Integration patterns and practices for cloud and mobile computing
Using Node.js for Mocking Apex Web Services
Running and Managing Mule Applications
Mule api and service management
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Connecting the New Enterprise | MuleSoft
MuCon 2015 - Microservices in Integration Architecture
Netsuite open air connector
Mule : Building Blocks for Microservices
Ad

Similar to iBeans = Dead-simple integration for web app development (20)

PPT
Mule overview-ppt
PPT
mule-overview.ppt
PPT
Mule overview
PPT
Mule overview
PDF
A Workhorse Named Mule
PPT
Introduction to mule Esbs
PPT
Mulesoft ppt
PDF
Extending Spring for Custom Usage
PPT
Overview of Mule
PDF
Oop2008 RESTful services with GWT and Apache CXF
PPTX
How to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
PPTX
Custom Connector development using Mule SDK
PPT
Mule esb
PPT
Mule overview
PPT
Mule Overview
PPT
Mule overview
PPT
KEY
S2GX 2012 - Introduction to Spring Integration and Spring Batch
PDF
Mule ESB
Mule overview-ppt
mule-overview.ppt
Mule overview
Mule overview
A Workhorse Named Mule
Introduction to mule Esbs
Mulesoft ppt
Extending Spring for Custom Usage
Overview of Mule
Oop2008 RESTful services with GWT and Apache CXF
How to Expand Anypoint Platform's Capabilities by Developing Custom Connectors
Custom Connector development using Mule SDK
Mule esb
Mule overview
Mule Overview
Mule overview
S2GX 2012 - Introduction to Spring Integration and Spring Batch
Mule ESB
Ad

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Cloud computing and distributed systems.
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
KodekX | Application Modernization Development
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
Per capita expenditure prediction using model stacking based on satellite ima...
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Unlocking AI with Model Context Protocol (MCP)
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Cloud computing and distributed systems.
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Spectral efficient network and resource selection model in 5G networks
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Mobile App Security Testing_ A Comprehensive Guide.pdf
Network Security Unit 5.pdf for BCA BBA.
KodekX | Application Modernization Development
Reach Out and Touch Someone: Haptics and Empathic Computing
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
sap open course for s4hana steps from ECC to s4
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Chapter 3 Spatial Domain Image Processing.pdf
Review of recent advances in non-invasive hemoglobin estimation

iBeans = Dead-simple integration for web app development

  • 1. iBeans = dead-simple integration + web app development Ken Yagen Silicon Valley Code Camp, October, 2009
  • 6. The Future of iBeans All contents Copyright © 2009, MuleSoft Inc.
  • 7. What is an iBean? A way to access external services, Facebook, AWS, eBay
  • 8. A well-defined interface to a hosted service ‘ service’ can be public or internal to your company A Java interface with annotated method
  • 9. A really easy way to create a reusable component All contents Copyright © 2009, MuleSoft Inc.
  • 10. Introduction to Mule iBeans Dramatically simplified integration for web applications
  • 11. Simple API using annotations
  • 12. Works with JSP, JSF, Struts, Spring, JavaScript
  • 13. Task-based integration, e.g.: Send/receive email
  • 15. Poll RSS or Twitter feed
  • 16. Publish REST service Open source
  • 17. Based on Mule All contents Copyright © 2009, MuleSoft Inc.
  • 18. Do we need another framework? Plenty of ESB/integration frameworks out there – Mule, Open ESB, Camel, Spring Integration All feel SOA-influenced
  • 19. Not much for the WebApp developers who just wants grab data quickly
  • 20. Focus on: Dead simple API
  • 21. Reuse
  • 22. Task-based integration All contents Copyright © 2009, MuleSoft Inc.
  • 23. Demo time All contents Copyright © 2009, MuleSoft Inc.
  • 24. How it Works Container-based approach iBeans bundled with Tomcat, not WebApp
  • 25. Auto discovery Web Apps select services by adding servlet definitions
  • 26. Full support for AJAX messaging and RPC
  • 27. iBeans console used for updating and removing features
  • 28. IBean and Application annotations
  • 29. Modules for: Email, Scheduling, Atom, Jms, Rest, Ajax, Xml, Guice, Spring
  • 30. Built with the cloud in mind Tomcat/Tcat Server/Mule Mule iBeans Web App 1 Web App 2 Web App 3 Cloud and data services All contents Copyright © 2009, MuleSoft Inc. iBeans Central Update Browse
  • 31. The @Call and @UriParam Annotations public interface TwitterIBean { @Call (uri = " http://www.twitter.com/statuses/show/{id}.json ") String statusesShow( @UriParam (" id ") String id) throws CallException; } All contents Copyright © 2009, MuleSoft Inc.
  • 32. The @State Annotation public interface TwitterIBean { @State void init( @UriParam (“ format ”) String format); @Call (uri = “ http://www.twitter.com/statuses/show/{id}.{format} ”) String statusesShow( @UriParam (" id ") String id) throws CallException; } All contents Copyright © 2009, MuleSoft Inc.
  • 33. Static Defaults public interface TwitterIBean { @UriParam (“ format ”) static String DEFAULT_FORMAT = “ json ”; @State void init( @UriParam (“ format ”) String format); @Call (uri = " http://www.twitter.com/statuses/show/{id}.{format} ") String statusesShow( @UriParam (" id ") String id) throws CallException; } All contents Copyright © 2009, MuleSoft Inc.
  • 34. The @ReturnType Annotation and Generic Types public interface TwitterIBean { @UriParam (“ format ”) static String DEFAULT_FORMAT = “ json ”; @State void init( @UriParam (“ format ”) String format, @ReturnType Class retType); @Call (uri = &quot; http://www.twitter.com/statuses/show/{id}.{format} &quot;) <T>T statusesShow( @UriParam (&quot; id &quot;) String id) throws CallException; } All contents Copyright © 2009, MuleSoft Inc.
  • 35. Always provide sensible defaults public interface TwitterIBean { @UriParam (“ format ”) static String DEFAULT_FORMAT = “ json ” ; @ReturnType static Class DEFAULT_RETURN_TYPE = String. class ; @State void init( @UriParam (“ format ”) String format, @ReturnType Class retType); @Call (uri = &quot; http://www.twitter.com/statuses/show/{id}.{format} &quot;) <T>T statusesShow( @UriParam (&quot; id &quot;) String id) throws CallException; } All contents Copyright © 2009, MuleSoft Inc.
  • 36. Testing the iBean public class TwitterIBeanTest extends AbstractIBeansTestCase { @IntegrationBean private TwitterIBean twitter; public void testTwitter() throws Exception { twitter.init(“ xml ”, Document. class ); Document doc = twitter.statusesShow(“ 1234567890 ”); } } All contents Copyright © 2009, MuleSoft Inc.
  • 37. Other Annotations Annotation Description Type @HeaderParam Configures a header on the outgoing message Param, Field @PayloadParam Used for Http, configures a POST parameter Param @Payload Attaches data to the body of the message Param @State Will store values on the instance of the bean for later reference Method @PropertyParam Adds a property to the message that can be used later i.e. user/pass for authentication Param, Field All contents Copyright © 2009, MuleSoft Inc.
  • 38. Transforming Response Data public class TwitterTransformers { @Transformer protected Status twitterXmlToStatus(Document doc) { String status = selectValue(&quot; /status/text &quot;, doc); String user = selectValue(&quot; /user/name &quot;, doc); return new Status(status, user); } } All contents Copyright © 2009, MuleSoft Inc.
  • 39. public class TwitterIBeanTest extends AbstractIBeansTestCase { @IntegrationBean private TwitterIBean twitter; public void testTwitter() throws Exception { registerBeans( new TwitterTransformers()); twitter.init(“ xml ”, Status. class ); Status status = twitter.statusesShow(“ 1234567890 ”); } } Testing iBeans All contents Copyright © 2009, MuleSoft Inc.
  • 40. Application Annotations Annotation Description Type @Schedule Cron scheduling for calling a method, can be used to poll channels Method @Receive Receive Data on a channel URI Method @Send Send the return of the method on a channel URI Method @ReceiveAndReply Receive Data on a channel URI and send the return back to the caller Method All contents Copyright © 2009, MuleSoft Inc.
  • 41. @Schedule, @Send Example public class TwitterSchedule { @IntegrationBean private TwitterIBean twitter; @Schedule (interval = 5000) @Send (uri = &quot; ajax:///ibeans/ajax/twitter &quot;) public Document getTimeline() throws Exception { twitter.init(“ xml ”, Document. class ) return twitter.getPublicTimeline(); } } All contents Copyright © 2009, MuleSoft Inc.
  • 42. iBeans Console All contents Copyright © 2009, MuleSoft Inc.
  • 45. Get help for an iBean
  • 46. Test an ibean really quickly All contents Copyright © 2009, MuleSoft Inc.
  • 47. Topics we may not have covered Error Handling
  • 48. ParamFactory for creating complex headers and parameters i.e. Amazon secure hash params for EC2 Using generic VariableType return types to allow users to set the data format
  • 49. Authentication All contents Copyright © 2009, MuleSoft Inc.
  • 50. The Future of iBeans Web Services support (JAX-RS)
  • 51. Support for scripting in the console
  • 52. Combine with Tcat for cloud development and provisioning
  • 54. Mule 3.0 will be able to host iBeans
  • 55. Support for other languages: Scala, Ruby, Clojure, etc
  • 56. Could become the WCF for the JVM… All contents Copyright © 2009, MuleSoft Inc.
  • 57. ??? Links for Mule iBeans: Homepage: http://www.mulesoft.org/display/IBEANS/Home Links for Tcat: Homepage: http://mulesoft.com/tcat About me: Blog: http://blog.mulesoft.org
  • 59. Company: http://mulesoft.com All contents Copyright © 2009, MuleSoft Inc.