silicon valley code camp
DESCRIPTION
Slides from my presentation at the SiliconValley CodeCamp held at the Foothill College, Los Altos, CA on Nov 8th 2008. http://www.jackbe.com/devTRANSCRIPT
Enterprise MashupsKishore Subramanian
JackBe (http://www.jackbe.com/dev)
Agenda
• The Case for Mashups
• Mash !
• Build real-world Enterprise Mashups
What is a Mashup?• Lightweight Web application that combines
data from multiple sources
• Self-Service/End User focused
• Situational
• Minutes and Hours, NOT Days/Months
• Quick, Agile
• Reusable
Types of Mashups
• Client-side
• Most Enterprise Portals
• View related info
Data Mashups• Server + Client
• Merge, Join data from multiple sources
• Eg: Accounts from Salesforce + Issues from JIRA
• Transform data to a different format
• Eg: Excel Spreadsheet data to RSS
• Annotate
• Eg: Enrich Accounts information from Salesforce with internal data
• Filter, Sort
The Case for Mashups• Information is in Silos
• Internal Databases, ERP, CRM, Document Management, Email, Wikis, Cloud
• But ... users need data from multiple Systems to complete their Task
• And ... integration is hard and time-consuming (hmm .. until now :-))
The Case for Mashups
• Data is available but not easily accessible
• Data in Spreadsheets on desktops
• Data from CRM/ERP (WSDL/SOAP)
• Data is available but user wants it in a specific UI - eg: Wiki/Blog/Excel
• User wants to quickly share the data with others
The Case for Mashups• New Functionality from existing data
• Join data from related sources
• Append related information
• Light-weight Integration
• Quick, Agile
• Hours/Days, NOT Weeks/Months
• Specific Variants of a more generic Service
The New Front-tierIntroducing the Mashup Layer
The New Front-tier
Web 2.0Web 1.0
Introducing the Mashup Layer
Connect Users to Data
MashupServices
Shareable
SecureGoverned
Shared
The Mashup Process
• Create “mashables” from typical data sources
• WSDL,Database,Excel,REST, RSS, POJO,XML
• Mash !
• Share data
Mashables• Make Data sources Mashable by publishing
• Normalized Service
• Uniform Service Access
• Schema
• Managed
• Governed
• Alter Service Characteristics like Caching, Pagination
Lets Mash !
• Steps
• Publish Data Source as “Mashable”
• Mash!
• Publish your Mashup
• Consume
• Demo: Combine RSS Feeds from different sources to create a new Mashup
EMML
• Enterprise Mashup Markup Language
• Domain Language for creating Mashup Services
• Declarative, XML-based
• Open
Lets Mash - SOAP
• Use Case
• Get Accounts From Salesforce
• Annotate Accounts with Internal Data
• Transform data to simpler form
Steps - IT Developer
• Publish salesforce.wsdl as a Service
• Normalize SalesforceLogin
• Normalize SalesforceQuery
• Implement AccountSearch Mashup
• Publish the Mashup
• Test
Steps - End User
• Create a Mashlet
• Embed
• Share !
EMML Highlights• Invoke Services
• Invoke POJO’s
• Join, Group
• Filter, Sort
• Merge, Split
• Data Annotation
• Scripting - Javascript, XQuery, JRuby, POJO
• Web clipping
EMML - Other featuresGroupByEmbedded SQLMacrosIf Else statementFor eachParallelOnError / OnTimeoutAssigntemplatevariable
User-generated MashupDemo: Create a Mashup using Wires to return the
Stock and Profit/Loss Information about my Portfolio
User-generated Mashup• Created new Functionality that was previously
not possible
• Consumed WSDL Service without writing code (non-programmer)
• Mashed custom data with publicly available data to add valuable insights
• Easily Accessible (RSS) - Any RSS Reader
• “Connected the End User to the Data”
Macros• Reuse
• Building Blocks for Services
• Hide complex logic from end users
• Examples
• RSS Data Transformation
• Geo Annotator
• Extract Value
Shareables
MashletsREST / RSS
Excel Spreadsheet Email (URL or snapshot)
Demo
• Salesforce Accounts using a REST URL
• XML and JSON output
• Salesforce Leads using RSS
Mashlet Platform
• Mashlet API to create custom Mashlets
• Save Mashlets in Presto
• Governed Access to Mashlets
• Open
Demo
• Salesforce Accounts Mashlet
• Embed