Part 2 of a 4 part series exploring Web 2.0 and the Geoweb. This short series of lectures is part of the "Introduction to Geoweb" course offered at the University of Colorado at Denver. Previous experience with generic web architectures and http is assumed. Full context is available at http://blog.gishacks.com/2009/08/web-20-and-geoweb-part-2-web-20.html.
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Web 2.0 Patterns Shaping the Geoweb
1. Web 2.0 PatternsShaping the Geoweb Introduction to the Geoweb Gregory L. Gunther University of Colorado at Denver
2. Common Web 2.0 Patterns Influencing the Geoweb Service Oriented Architecture (SOA) Software as a Service (SaaS) Participation-Collaboration Asynchronous Particle Update Mashup Rich User Experience Collaborative Tagging Structured Information Formulated By Real Examples….
3. Pattern Formulation Pattern Context Derived Requirements Problem Business problem (story) Context Generalized Specifications, static structure, dynamic behavior Consequences References Business problem resolved Implementations Known use (Govenor et al. 2009)
4. Service Oriented Architecture “is an architectural paradigm, a way of architecting a framework for matching needs and capabilities. A key feature of SOA is support for integrating services that are owned and managed independently” (OASIS 2006) No single definition (ubiquitous, depends on context) Standardized framework or software architecture which implements interoperable software components (web services) SOA brings a new way to look at applications Separates messages from processing Provides consistent platform for interoperability (Govenor et al. 2009)
11. SOA Dynamic Behaviors Refined Request/Response Via Registry Subscribe/ Push Probe/Match (Govenor et al. 2009)
12. Quick Word On SOAP “is a protocol for exchanging XML-based messages over computer networks, normally using HTTP. SOAP forms the foundation layer of the Web services stack, providing a basic messaging framework that more abstract layers can build on” Envelope Format: A way of putting data into an envelope “Big Web Services”
19. Asynchronous Particle Update (AJAX) Length of time Blocked from further Input Time Network Latency Problem (Crane et al. 2006)
20. Concepts related to software usability Based on usability expert Alan Cooper Transient: used everyday but only in short burst and often as a secondary activity Delays are tolerated Examples File System manager Amazon Search Engines Sovereign: requires users full attention Used more intensely Desktop applications Delays become intolerable (2 second delay each time you type a letter in a Word Processor Sovereign and Transient Usage Patterns (Crane et al. 2006)
21. Web Application LifeCycle Just Views Of the User and Application Data Model Traditional Initial Data And Application Download (Crane et al. 2006)
25. Web Browser www.google.com CSS Styling (If Applicable) Web Server (www.gishacks.com) DOM JavaScript Logic Map Data XML Data GXmlHttp XML HTTP Request (AJAX) Mashup
26. User gishacks server google server Request Page API Map Data XML Data Return Page Page Loaded Request and Get XML Request and Get Map
27. Rich Internet Application ADOBE FLEX JavaFX MS Silverlight Flex 3 Component Explorer: http://tinyurl.com/2o78vd
30. Additional Patterns Constant Beta The Synchronized Web Declarative Living and Tag Garderning Semantic Web Grounding Persistent Rights Management
31. Conclusions Bottom-up prevails while top down does not. REST vs SOAP Folksonomyvs Taxonomy Crowdsourced vs. traditional media Time Magazine person of theYear 2006— You! Systems get better the more people use them The web is the system platform Persistence of Web 2.0 Architectures and platforms where people can participate beat websites Plug-in business models Simplicity and scalability Agility Ease of use Security and privacy
32. Web 2.0 and the Geoweb Web as platform Continuous improvement Lightweight programming models and techn0logies Immersive (social, RIA) YOU Geoweb GIS 2.0 Law 2.0 Gov 2.0 Library 2.0 Media 2.0 (Govenor et al. 2009)
33. References Cited Crane, Dave, Eric Pascarello and Darren James (2006). AJAX in Action. Connecticut: Manning Publishing. ESRI. (2007). Geospatial Service Oriented Architectures. ESRI Whitepaper. http://www.esri.com/library/whitepapers/pdfs/geospatial-soa.pdf Governor, James, Dion Hunchcliffe and Duane Nickull (2009). Web 2.0 Architectures. California: O’Reilly Media Inc. King, JJ. SOA What? Introduction to Service Oriented Architecture. Rocky Mountain Oracle Users Group. Denver, 2006.
34. References Cited Microformat. (2009, August 13). In Wikipedia, The Free Encyclopedia. Retrieved 07:50, August 13, 2009, from http://en.wikipedia.org/w/index.php?title=Microformat&oldid=307705991 Morehouse, Scott, Gorter, Dirk and Brenda Wolfe. 2009, Taking Advantage of The Cloud, ESRI 2009 International Users Conference, San Diego, CA, San Diego Convention Center. OASIS. (2006). Reference Model for Service Oriented Architecture 1.0.http://www.oasis-open.org/committees/download.php/19679/soa-rm-cs.pdf Richardson, Leonard, Ruby,Sam (2007). RESTful Web Services California: O’Reilly Media Inc. SOA Tag Cloud. Swik.com. 09 August 2009 http://swik.net/SOA?tagCloud.
Editor's Notes
Patterns Recurring solutions to recurring problemsGang of 4: 1995 book on design patterns for OO softwareRepresent knowledge and provide a way to convey information on how something is really going on in a systemGreat tool in requirements gathering: help define boundaries to the solutionRepurpose existing things into new thingsPattern of YouTube be applied to music production and distributionTwitter pattern applied to real time 3D sensors or sports athletesMethodology for documenting patterns: metamodel variation of Mackenzie-Nickull Architectural Patterns Meta-ModelFundamentally decomposed to the context of the problem: circumstances affecting the problemthe problem itself: usually expressed as a user storysolution
Also known as event drive architecture. Subset of which is Resources Oriented Architecture.Examples we looked at that implement this pattern includes really all of them
Simplicity: Grass Roots implementation, REST, Barrier to entry for integration = lowLoose coupling:IT term meaning that the internals of an application or business service must be able to change without impacting client applicationsSpecifically, a service consumer should not be required to know any more about a service than what is contained in the published contractLoose coupling means messages Not Just Technology:Policies, practices and frameworks
When ordering from a menu a list of restaurant services you have a predefined set of choices: main dishes, side dishes, desserts, etc…You have choices but usually don’t tell the chef how to prepare the mealThe chef receives the message (your order), prepares the food, delivers it according to the menu description (contract)The menu is a directory of choices, each choice showing the descriptions and specifications for that item
Traditional RPC architectureService Providers: Provide a service that performs a business function (geocoding, overlay, identify)ProvidersCreate the serviceExpose the service for useDescribe the servicePost the contract to registryService Consumers:Can be other services, components, or full fledged web applicationsServices don’t interact directly with humans, so consumer isn’t a web page userConsumers don’t design or debug services, they just use them as isExpect predictable results based on contractRegistries (Catalogs, Discovery Agencies, Service Broker) Provide mechanism for storing, managing, and accessing service contractsBased on UDDI (for the most part)Registry serves as directory of sorts containing:Names of servicesDescription of servicesService contractsmetadataMessaging (WSDL, UDDI, SOAP)
Request/Response With Registry: SubScribe/Push: Client subscribes to a service, RSS feedsProbe/Match: Client “broadcasts” to several service endpoints, prompting them to respond in a certain wayExample: Bunch of servers being testing in a server farm to see if they can handle more traffic.
SOAP – Simple Object Access ProtocolXML– Extensible Markup LanguageWSDL – Web Service Description LanguageUDDI—Universal Description, Discovery and Integration LanguageTaking an xml document or payload, wrapping it in some messaging content and SOAPBig Web Service
Implementation:Talked about xml, SOAP, HTTP WSDL, UDDI but it really is a nightmareFor us it boils down to REST and its underlying technologies (Resource Oriented Architecture)
SOA Implementation as it relates to the GeowebMore in a later unit but more or less, it is web services based on how the web really worksRepresentational State Transfer2000doctoral dissertation about the web written by Roy Fielding, one of the principal authors of the HTTP protocol specification, and has quickly passed into widespread use in the networking community No messaging or wrappers just HTTP goodness (Get, Post, Delete, Update)Grass Roots, Alternative to “Big Web Services”85% of Amazon’s web services users are REST users
Also Known as cloud computingSoftware is maintained and deployed by its manufacturer, manufacture maintains the infrastructural resources for software functionalityUsers “rent” functionality or use softwares functionality but don’t incure overhead related to its maintenance, upkeep, etc…Model of “functional delivering” vs. “software distribution”Email filter exampleSpam is a problem everyone deals with, filtering spam evolves hourly (Viagra, V!agra)Each user or Enterprise doesn’t want to support the infrastructure, software maintance etc to filter this.Spam filter service used, delivers email, learns from users who report spamGreat example of web2.0 software gets better as its used, better rules are developed.
The platform is the web.Not just leveraging the web delivery, content distribution of sharing but in the platformRunning the computing functionality in the web (not servers or desktops)Data storage, processing, hosting, client applications (entire stack application, storage and compute)Grid computing“time-sharing”Examples: ArcGIS Online, Salesforce.com
Also Known as:Harnessing Collective Intellegence (harnising work from everyone which is combined into larger work)“Participatory Design” – design process where the users get involved with the design“Crowdsourcing:”—outsourcing to the crowd via open callFundamental to Oreilly’s initial definition of web2.0“while providing their own data and services in a form that allows remixing by others, creating network effects through an "architecture of participation," “This includes explicit network-enabled collaboration, to be sure, but it should encompass every way that people connected to a network create synergistic effects.”WikipediaMusic remixing exampleTime Magazine’s Person of the Year in 2006 Web 2.0 and you.All of the examples from before
Illustrating the power of collective intelligence with mainstream mediaNewspapers shutting downHealthcare reform bill and town hall meetings (youtube videos)
Also known as AJAXAJAX stands for Asynchronous JavaScript And XML.AJAX has been around, made popular by Google (maps.google.com)AJAX no a language, technique using a variety of technologies (DOM, DHTML, Javascript, XML).With AJAX you can create better, faster, and more user-friendly web applications.AJAX is based on JavaScript and HTTP
Term Originating from the music industry (mashing up different styles of music to create a new style)DJ mixesReggae from sca and popFrom an it perspective, same thing, mashing up services or capabilities from disparate locations to create an entirely new service or applicationUsually accomplished at the client end of the web architecture, using lightweight apisExample insurance agencyWants to provide adjusters maps with variety of data that influence insurance claims (flood potentional, demographics, etc…)Doesn’t want to maintain or house needed infrastructure, DM etc to expose those layersCreate client application that “mashes up” several services or maps to create fully functional end appHeavily reliant on previously mentioned patterns (SOA, AJAX) and often is used in SaaS (mashup content on blog from flickr, slideshare) not even done via apiContent repurposing
Also Known as rich user experienceRich Internet applications (RIAs) are web applications that have most of the characteristics of desktop applications, typically delivered by way of standards based web browserplug-ins or independently via sandboxes or virtual machines[1]. Examples of RIA frameworks include Curl, Adobe Flash/Adobe Flex/AIR, Java/JavaFX[2], uniPaaS[3] and Microsoft Silverlight[4].The term was introduced in March 2002 by vendors like Macromedia who were addressing limitations at the time in the "richness of the application interfaces, media and content, and the overall sophistication of the solutions" by introducing proprietary extensions[5].Demo Flex Component Explorer
Also Known as folksonomyRecall back to our flickr example, users within the community actually can help to catagorize contentAlso, arcgis online tagging of contentGround up sematic tagging (providing meaning to internet resources)Tag: apply label to object or resources, labeling it so we know what it represents,Resource: catchall for any digital asset that can have an identifier (usually a uri), webpage, audio file, comment, bookmarkEntity: is any human, application, bot, process that is capable of interacting with a resourceCommunity based, natural language semantic layer: useful when trying to discover resourcesBased on user perspective: dog, pooch, labradorProblem: Ambiguous nature of natural language: Washington yeilds “George Washington, Denzel, Washington State U” etc. Work is underway to deal with disambiguate these pluralities.
XHTML (XML goodness) HTML with semantic significance not presentationEssentially: Using attributes to assign a semantic significance to an already abundant format, xhtml
Effects everything in our societyLines of business are being done differently because of these patternsGov 2.0: Transparency, taxpayer participation in government (our website content)Library 2.0: Rather than top down categorization, bottom up (collaborative tagging)Media 2.0: Newpapers are dieing, free targeted ads, contributors to media (bloggers) by community much larger than traditional media