95-733 Internet Technologies Review for Final Exam Course review ============= 1. AJAX a. W3C's XMLHttpRequest interface: b. See http://www.w3.org/TR/XMLHttpRequest/. c. Describe the typical behavior of the handler associated with the request. d. Describe Java Server Pages and Javascript. e. Describe XHTML DOM tree processing. f. Describe XML DOM tree processing. g. Discuss the AJAX form application from Sebesta Chapter 16. h. Discuss the shopping cart application from Phillip McCarthy at IBM. 2. XML and XSLT a. Describe the purpose of XML. b. Describe the purpose of XSLT. c. Describe three ways in which XML might be converted to XHTML using XSLT. d. Discuss how structural recursion relates to XSLT. e. Visit www.FpML.org and be able to discuss the FpML language. f. Visit www.XBRL.org and be able to discuss the XBRL language. g. Visit dita.xml.org and be able to discuss the DITA language. h. Visit www.w3.org/Math/ and be able to describe the MathML language. 3. XSLT Processing and XPATH a. Given an XML document and an XSLT program that includes XPATH, be able to show the resulting XML document. 4. Grammars a. Describe the three major uses of XML grammars. b. How does validation differ from well-formedness. c. Given an XML document and a DTD, be able to determine validity and be able to make simple adjustments to the DTD or the XML to correct invalid documents. d. Given an XML document and an XSDL grammar, be able to determine validity and be able to make simple adjustments to the XSDL or the XML to correct invalid documents. e. Understand parameter entities and general entities in DTD's. f. Describe the major benefits of XSDL over DTD grammars. 5. RDF Resource Description Framework a. Describe knowledge graphs. b. Describe the N3 format. c. Describe RDF/XML d. Discuss the meaning of the rel attribute on an XHTML anchor element. e. Discuss the meaning of the property attribute in an XHTML element. f. Discuss the meaning of the about attribute in an XHTML element. g. Describe why we would use an inner about to override an outer about. h. Describe the foaf vocabulary. i. Visit http://xmlns.com/foaf/spec/ and describe some foaf classes and foaf properties. j. Discuss processing XML with DOM, SAX, and StAX. k. Discuss processing RDF with Jena. l. Describe RDFa and microformats, Google Rich Snippets 6. Ruby a. Be able to trace the execution of Ruby programs. b. Be able to trace programs using Ruby hashes, arrays, and classes. c. Be able to trace programs using code blocks. d. Be able to trace programs using REXML and XPATH predicates. e. Be able to trace programs with instance members and class members. f. Be able to describe closures in Ruby and Javascript. 7. Rails a. Describe what is meant by a web application framework. b. Describe the components of the Model, View, Controller (MVC) design pattern. c. Describe how rails assists in the construction of a web application. d. What is Active Record? e. Describe how a controller makes computations available to a view. f. What is agile development? g. Be able to describe the Rails directory structure. 8. The Wine Ontology a. Given an ontology, be able to make statements about the concepts described within it. b. Be familiar with the terminology associated with binary relations. 9. SPARQL (be able to execute a simple query) MQL and Metaweb 10. Here are brief descriptions of some of the student demonstrations. For the exam, you need to know a little about each of these technologies. Adelaide, April 2012 ==================== -- Silverlight see http://www.silverlight.net/ -- Rhomobile see http://www.rhomobile.com/ -- AppInventor see http://www.appinventor.mit.edu/ -- Joomla see http://www.joomla.org/ -- Web GL see http://www.webgl.com/ -- NoSQL (Mongo) see http://www.mongodb.org/ -- GWT see https://developers.google.com/web-toolkit/ -- NoSQL (Redis) see http://redis.io/ -- FpML Date Calculations see http://www.fpml.org/ -- Backbone.js see http://documentcloud.github.com/backbone/#introduction -- HTML5 () see http://dev.opera.com/articles/view/html-5-canvas-the-basics/ Spring 2012 =========== -- FLOT Using the HTML 5 canvas tag, FLOT uses JQuery to plot graphs. The data series is a JSON object. -- Facebook Graph API. Graph data returned in JSON. -- Google Web Toolkit allows one to program in Java and generate appropriate Javascript. -- Google App Engine building web sites on the cloud -- MathML code placed within a JSP page. Its data is accessed dynamically, tags delivered to browser show equation nicely formatted. -- Node.js server side javascript -- The Bandcamp API used through JQuery to build a music player with controls -- Interactive Google Maps and GIS (ArcGIS) example and demonstrations. -- CAPTCHA What is it and how to create your own? -- Amazon's EC2 cloud offering -- Python and Django (Like Ruby on Rails) An application was built that helped a user learn Kanji Fall 2011 ========= -- Shopping suggestions using a social network mashup. Using the Facebook and Amazon API's to keep up with what your friends are buying. -- HTML5 capabilities including audio and visdeo -- Web sockets on the client and on the server (IETF and W3C Drafts) -- Google and Flickr mashup. Provide an address to Google and get back coordinates and a map. Go to Flickr to retrieve appropriate photos on the map. -- JQuery programming -- Java Server Faces MVC development -- Python and Django compared with Ruby and Rails Spring 2011 =========== -- HTML 5 CSS3 + Javascript, Offline storage, OS access, Speech input, SQLite, Web workers, Web sockets geographic location support, drag and drop, rounded corners -- Google Charts API web service -- Mongo database Document oriented DB, JSON style documents, open source, High performance, compare with memcached and RDBMS -- CodeIgniter Web Application Framework (MVC) for PHP (Like Rails for Ruby) -- Facebook Connect (API from Facebook) -- JQuery (Drag and drop shopping cart) Flickr search, JSON source -- GWT (Google web toolkit) -- Node.js High performance server side javascript -- Google doc web service api (using struts and maven) -- Spring (Enterprise Java applications) + Struts (Web Framework) + Hibernate (ORM) -- Client side mashups (Google Maps API, Google spreadsheets) -- Drupal (Open source CMS) PHP -- Java Server Faces and facelets (view declaration language) -- Open XML (representing Word and Excel data in XML) -- Silverlight (Microsoft completes with Flash and HTML5) -- Adobe Flex -- Google API's Fall 2010 ========= - XMPP From XMPP.org "XMPP is the Extensible Messaging and Presence Protocol, a set of open technologies for instant messaging, presence, multi-party chat, voice and video calls, collaboration, lightweight middleware, content syndication, and generalized routing of XML data." -- JQuery Javascript library -- JQuery plus Hibernate Object-relational mapping in Java -- Content management using Wordpress for Blogs and web sites -- Grails (Java Web site framework in Groovy) - think Ruby on Rails in Java -- User authentication in Rails -- Google Web Toolkit (GWT) Develop browser based apps with a toolkit from Google See: http://code.google.com/webtoolkit/ See: http://www.ibm.com/developerworks/java/library/j-ajax4/ -- Spring MVC using Spring Roo -- Google charts -- Voice XML -- YQL -- Vaadin -- C# ASP.NET -- Yahoo pipes (based on YQL) -- Google Contacts API Spring 2010 =========== - Google Web Toolkit (GWT) Develop browser based apps with a toolkit from Google See: http://code.google.com/webtoolkit/ See: http://www.ibm.com/developerworks/java/library/j-ajax4/ - The DOJO toolkit Javascript tools See: http://www.dojotoolkit.org/ - XBRL An XML language for business financial statement reporting See: http://www.xbrl.org/Home/ - RDF and RDFa The Resource Description Framework is part of the semantic web initiatives. See: http://www.w3.org/RDF/ - Web Services Interoperable SOAP based communication See: http://www.w3.org/TR/ws-arch/ - Adobe Cold Fusion Mature web development framework See: http://tryit.adobe.com/us/coldfusion/?sdid=DYXUS - Reverse proxies Improve performance of web sites See: http://www.apachetutor.org/admin/reverseproxies - Memcached High performance caching See: http://memcached.org/ - HTML 5 Will we need Flash and MS-Silverlight? See: http://dev.w3.org/html5/spec/Overview.html See: http://html5gallery.com/ - JQuery A Javascript library See: http://jquery.com/ - Joomla Content management See: http://www.joomla.org/ - SVG Scalable Vector Graphics See: http://www.w3.org/Graphics/SVG/ Spring 2010 =========== - JSR 311: JAX-RS: The Java API for RESTful Web Services See http://java.sun.com/developer/technicalArticles/WebServices/restful/ - Ext-JS Cross browser Javascript library See http://www.extjs.com/ - Apache CXF An Open Source Service Framework See http://cxf.apache.org/ - Drupal Open source content management (compare to Wordpress, Joomla!) See http://drupal.org/ - LAMP, MAMP, WAMP (XAMP) Apache, MySQL, PHP on X where X = Microsoft, Linux, Windows See: http://en.wikipedia.org/wiki/XAMPP - Flex Ajax Bridge Using Flash and Asyncronous Javascript See: http://livedocs.adobe.com/flex/3/html/help.html?content=ajaxbridge_2.html - BlazeDS A server-based Java remoting and web messaging technology that enables developers to easily connect to back-end distributed data and push data in real-time to Adobe® Flex® and Adobe AIR™ applications for more responsive rich Internet application (RIA) experiences. See: http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/ - Google Charts Add live charts to a web page See: http://code.google.com/apis/charttools/ Fall 2009 ========= - Yahoo pipes Unix pipes allows us to chain together simple utilities. For example, ls | sort, produces a sorted listing of a Unix directory. Yahoo pipes allow us to read sources on the web and filter or combine them in various ways. A GUI is provided to build server side applications. See: http://pipes.yahoo.com/pipes/ - RSS and Rails Rails is ready to go for XML (RSS) generation. See: http://webdeveloper.econsultant.com/ruby-rails-tutorials/ - MS Silverlight Microsoft's version of Flash. Video streaming plus interactivity via .NET languages. Rather than the MXML from Adobe we get XAML from Microsoft. Very nice IDE to build Silverlight applications. See: http://www.silverlight.net/ - Direct Web Remoting (DWR) We may use Javascript to make calls on remote Java objects. And get this, we can have the server side objects call out to registered browsers. All of this is open source and is standards based. See: http://directwebremoting.org/dwr/index.html - YUI (Yahoo User Interface) A rich javascript library for rich internet applications. PHP is used on the server. See: http://developer.yahoo.com/yui/ - GeoRSS We can tag rss content to specify geographical locations. This is a simple idea but will probably add real value to RSS. See: http://www.georss.org/Main_Page - CURL Works on Java or Microsoft servers or on the client. It is used for RIA applications. Curl, developed at MIT, is both a programming language and a data format. Runs in browsers that have a curl plugin. See: http://www.curl.com/products/feature/ - Feed43 combines screen scraping utility with regular expressions to create RSS feeds from HTML. See: http://feed43.com/ - Flex and Flash and Ajax may be used to browse RSS documents. See: http://www.flashloaded.com/flashcomponents/rssreader/ - Django a web framework for Python like Rails is a Framework for Ruby. Like Rails, it's based on MVC. See: http://www.djangoproject.com/ - Google Maps API allows us to include map functionality on our web sites. See: http://code.google.com/apis/maps/