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