200 likes | 232 Views
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. What the HECK is a Mashup?!?!. It’s a Hybrid Web Application
E N D
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
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
What’s the Mashup Design Philosophy? • Separate your information from its presentation • Upgrade your enterprise architecture for easy data access • Service-Oriented Architectures (SOA) with SOAP • Resource-Oriented Architectures (ROA) with ReST • Create an easy-to-use JavaScript API for data access • Access SOAP or ReST services with AJAX • Load RSS or other XML-formatted data • Keep it simple! Don’t break the web! • Tell people about your API • Step back, and see what happens!
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/
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
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!
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.)
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 Static HTML & JavaScript housing maps
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 performanceand security for you! ERP System App Server A Mashup server Static HTML ECM System App Server B
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
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
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!
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
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”
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
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: • bex@bezzotech.com • Brian “Bex” Huff