Survey							
                            
		                
		                * Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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: • bex@bezzotech.com • Brian “Bex” Huff 20