Crescendo 2006 Presentation Format

Download Report

Transcript Crescendo 2006 Presentation Format

Mashups, and New Trends In
Enterprise Software
Brian “Bex” Huff
Chief Software Architect
Jan 2008
Agenda
 Intro to mashups
 Demos of mashups
 Technology behind mashups
 Limitations of mashups
 The future of mashups
2
What the HECK is a Mashup?!?!
 It’s a Hybrid Web Application
 Reuse formatted data from existing sources
 Access and display data with dynamic JavaScript
•
AJAX, DHTML
 Analogous to Portal Servers
•
•
•
Portlets written in J2EE or .NET
Mashups written with mostly JavaScript
Mashup widgets work in both .NET and J2EE environments
 More of a design philosophy than a tool or a framework
3
What’s the Mashup Design Philosophy?
1) Separate your information from its presentation
2) Upgrade your enterprise architecture for easy data access
1) Service-Oriented Architectures (SOA) with SOAP
2) Resource-Oriented Architectures (ROA) with ReST
3) Create an easy-to-use JavaScript API for data access
1) Access SOAP or ReST services with AJAX
2) Load RSS or other XML-formatted data
3) Keep it simple! Don’t break the web!
4) Tell people about your API
5) Step back, and see what happens!
4
Examples of Mashups
 Housing Maps
• http://housingmaps.com
• JavaScript mashup of Google Maps and rental data from Craig’s List
 Chicago Crime
• http://chicagocrime.org
• JavaScript Mashup of Google Maps and Chicago crime statistics
 Google Flight Simulator
• http://www.isoma.net/games/goggles.html
• Flash mashup of Google Maps and an airplane video game
 Thousands of other Google Maps Mashups:
• http://googlemapsmania.blogspot.com/
5
Housingmaps.com Mashup
6
Chicagocrime.org Mashup
7
Google Fight Simulator
8
What’s the Value to Me?
 If data is easy to reuse; innovation is bound to follow
• No enterprise Java learning curve!
• JavaScript Widgets, instead of complex J2EE Portals
 Don't need enterprise programmers for enterprise products!
•
•
•
•
Mashups run in user’s browser, not an app server
Security, performance, uptime managed in your infrastructure
Enterprise programmers focus on infrastructure
Application developers need only know JavaScript
 Important piece of Enterprise 2.0
• Give your employees a “safe” place to test new apps
• Lower the barrier of entry for enterprise software
• Allow innovation to happen at all levels
9
Enterprise Mashup Examples
 Map customer addresses, or company locations
• Visualize the geographic area your serve
 Mashup people with their search history
• Customer service / Sales knows what they are trying to find
 Mashup sales activity with sales forecasts
• Business activity monitoring, updated every few minutes
• Monitor it with a Flash dashboard
• Published data also useful for generating reports
 Any data you have can be displayed in a widget
• One line of JavaScript on a HTML page
• Much easier than integrating application servers!
10
Technology Behind Mashups
 Back-End: data repositories
• Large enterprise applications: ERP, CRM, ECM
• Raw database tables
 Middle Tier: application server
• Securely connect to back end data repositories
• Single-sign-on strongly encouraged
• SOA / ROA interface
• Publish content statically in JSON or XML format
• Place dynamic content in a cache for optimal performance
 Front End: web browser widgets (JavaScript, Flash, Silverlight)
• Use custom API connector to Middle Tier
• AJAX, Remote Scripting, etc.
• JavaScript user interface library (YUI, MochiKit, Dojo, etc.)
11
Sample Public Mashup Diagram
• Housing Maps downloads Craig’s List data
• Publishes static JavaScript on a schedule
• User requests HTML and JavaScript from Housing Maps
• Google Maps and user’s browser do all the work of rendering the page!
Google
Maps
Craig’s
List
housing maps
Static
HTML &
JavaScript
12
Sample Enterprise Mashup Diagram
• User requests HTML from intranet page
• Page includes references to secured enterprise JavaScript resources
• User logs in to app server middle tier, downloads secure JavaScript
• Single sign-on makes this invisible to user
• Enterprise infrastructure handles performance and security for you!
ERP
System
App
Server A
Mashup server
ECM
System
Static HTML
App
Server B
13
Enterprise Mashup Checklist
 Google Maps is the gold standard
• Publicly available static resources: images, JavaScript
• Easy to use JavaScript API
• Also supports XML, KML, and JSON
• Uses Remote Scripting instead of AJAX for more flexibility
• Access restricted by an API license key
• Prevents overuse by inexperienced JavaScript developers
 Enterprise mashups need a bit more
•
•
•
•
Single Sign On ensures secure access to private data
Web caching between browser and application server
Data caching between application server and back end
Guidance for users who design mashups
• Suggested JavaScript / Flash toolkits
14
Mashups Beyond Google Maps
 Freebase.com
• Like a Wiki, but with structured database content
• Run queries and draw results with pure JavaScript
 Salesforce.com – hosted CRM
• Mashups with proprietary APEX language
• Combined reports on salesforce data, and ultra-secure in-house data
 Mashup toolkits for any public web sites
• Google Mashup Editor: http://editor.googlemashups.com/
• Yahoo Pipes: http://pipes.yahoo.com/pipes/
• Microsoft Popfly: http://www.popfly.ms/
 Not many off-the-shelf enterprise solutions yet
15
Limitations of Enterprise Mashups
 Accessibility for the blind
• Text-to-speech readers don’t support JavaScript
• Have not been seriously updated since 1998
• Existing web standards that ban JavaScript are obtuse and outdated
• WAI, WCAG 1.0, WCAG 2.0, Section 508
 Accessibility solutions
• Avoid standards, use new tools, empower the handicapped!
• Web 2.0 can be much more empowering than Web 1.0
• Use Firevox and AxsJAX to add accessibility to AJAX and Mashups
• http://www.firevox.clcworld.net/
• http://google-axsjax.googlecode.com/
• Use mashups to add accessibility to non-accessible pages!
16
Limitations of Enterprise Mashups, cont.
 Security
• Need single sign on (SSO) security for data and services
• Difficult to do SSO over the greater internet
 Performance
• Dynamic service requests slower than static XML files
• Poorly written JavaScript that makes too many AJAX requests
 Stability and Uptime
• Can you trust Google Maps to be up 24/7?
• What if a server outside your domain breaks?
 Content reuse problems
• Potential of data theft if information is too re-usable
17
The Future of Mashups
 App servers used more to mashup-enable back end systems
 Service-Oriented Architectures more common
• Lend themselves very well to mashups
• As do Resource-Oriented Architectures
• Make Enterprise Service Bus (ESB) optional
• Keep the bar low for “hobbyists”
 New formats:
• JSON will surpass XML for data transfer
• ATOM will surpass RSS for syndication
 Accessibility standards will eventually catch up
• Good tools and ease of use are more important than “standards”
18
The Future of Mashups, cont.
 Mashups empower users to find data in silos
 Enterprise Widgets replace portal servers
• AJAX and JavaScript replaces J2EE and .NET for some portals
• Other portals replaced with full web applications
 Freebase becomes vastly more popular
• Still in alpha release
• Unknown if it can scale to Wikipedia’s size
 Web based data mining, and data visualization tools
• JavaScript based rapid application development tools
• Adobe Flex and Microsoft Silverlight visualization engines
19
Questions?
 My Company:
• http://bezzotech.com
• Oracle Enterprise Content Management solutions
 My Blog:
• http://bexhuff.com
• Technology, lifehacks, and all that good stuff…
 My Self:
• [email protected]
• Brian “Bex” Huff
20