1 / 52

X-Informatics I-400 and I-590

X-Informatics I-400 and I-590. Spring Semester 2002 MW 6:00 pm – 7:15 pm Indiana Time Geoffrey Fox and Bryan Carpenter PTLIU Laboratory for Community Grids. Informatics, (Computer Science , Physics) Indiana University Bloomington IN 47404 gcf@indiana.edu.

seda
Download Presentation

X-Informatics I-400 and I-590

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. X-InformaticsI-400 and I-590 Spring Semester 2002 MW 6:00 pm – 7:15 pm Indiana Time Geoffrey Fox and Bryan Carpenter PTLIU Laboratory for Community Grids Informatics, (Computer Science , Physics) Indiana University Bloomington IN 47404 gcf@indiana.edu uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  2. Abstract of PTLIU Spring 2002 Introductory Lecture • This Foilset contains introductory material on PTLIU XInformatics Course for Spring 2002 • Some Aspects of Course Logistics -- all students must go to web site for complete discussion of this as it is rather uncertain at present • http://grids.ucs.indiana.edu/courses/xinformatics • In this lecture, we give an overview of material covered in the course • The course is organized around typical information-based applications and their associated technology • The goal is to discuss technologies – not applications – the latter provide requirements and motivation. uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  3. Why is Everything Internet-based • The Internet is the mostimportant and by far the largest distributed information processing/publishing/access system and it has spawned the most remarkable and general purpose software ever seen – we will be using Internet/Web Information Technology to address the general Informatics applications – some of which will be Internet based; others Intranets and others could be just on a single PC • One machine is a special case of a distributed network! • It is best to leverage pervasive technologies – Internet develops best software as biggest market uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  4. Books • We will decide on books and references when I have a clearer idea as to student preparation and technical level to aim at • In such a broad based course, there is no “single” book • Core Technologies are XML and to a lesser extent Java • Inside XML, by Steven Holzner, New Riders Publishing; ISBN: 0735710201, November 2000 (4.5 star, #24218 Amazon) • This book is slightly out of date as some key concepts (Schema) were not finalized when book went to press • There are some 330 XML books at amazon.com – 20% are “not yet published” uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  5. Practical Issues: Books • Core Java 2 is one if the best Java book(s) – chosen from the 1633 available at Amazon. Others are also excellent (e.g. Java How to Program by Paul J. Deitel, Harvey M. Deitel) • Volume 1-Fundamentals (4.5 star, #1127 Amazon) • Volume 2-Advanced Features(3.5 star, #3134 Amazon) • The Sun Microsystems Press Java Series (Prentice Hall) • Cay S. Horstmann and Gary Cornell • Vol 1: ISBN: 0130894680 5th Edition December 2000 • Vol 2: ISBN: 0130819344 4th Edition December 1999 uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  6. More Books • Other specialized books cover JavaScript, Dynamic HTML, Enterprise Javabeans and J2ME (Java 2 Microedition for PDA’s) – for some of this, can use Web • JavaScript Bible, 4th Edition, Gold Edition , Danny Goodman, Hungry Minds, Inc; ISBN: 0764547186, January 2001 (3 star, #4606 Amazon) • Dynamic Html : The Definitive Reference by Danny Goodman, O'Reilly & Associates; ISBN: 1565924940, August 1998 (4.5 star, #3611 Amazon) • Enterprise Javabeans third edition by Richard Monson-Haefel, O'Reilly & Associates; ISBN: 0596002262 , October 2001 (5 star, #872 Amazon) • Java 2 Micro Edition (Professional Developer's Guide Series) by Eric Giguere, John Wiley & Sons; ISBN: 0471390658, November 2000 (3.5 star, #40128 Amazon) uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  7. What are we discussing I • We have a set of core concepts and technologies • The Web, the Grid, Objects, Java, XML, MOM ….. • MOM is message oriented middleware • A Grid is a high functionality Web (electricity analogy) • Java typifies modern languages – there are others with different capabilities (Python, C#, C++) • On top of this we superimpose another layer of “advanced technologies” • HTML, JDBC/ODBC, Enterprise Javabeans, WSDL … • Together with “legacy ideas” • UNIX, Windows, TCP/IP, SQL …. • We use to build “applications” which use specializations and enhancements of the above uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  8. What are we discussing II • We need to discuss applications which involve “looking up or storing data” • Databases (sophisticated managed or structured data) • Flat Files (less sophisticated managed and/or unstructured data) • Gallimaufry versus Directory – Both needed • And “Creation of data” such as by running a computer program • This could be a simulation (say of the weather) and usually involves input of lots of data • Actually this is just another way of producing data • And data describing data (metadata) • And looking at results (visualization) • We need to aggregate data (Web) uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  9. Distributed Objects • Anything with a digital signature is an object • Examples of distributed object • Documents or Web Pages • "General Programs including database invocations" • Old Style Web -- CGI • New Style Web – SOAP/WSDL makes server side objects look like HTML tags as far as invocation goes • CORBA and COM -- special "interface definition language" (IDL) defines invocation in C++ like syntax • RMI uses Java language as IDL language • Benefits of distributed objects communicating via messages • allows objects written in different languages to communicate seamlessly via standardized messaging protocols embodied by middleware. • Higher levels of transparency of interoperability • Objects can be “managers” of resources like telescopes, satellites, computers, databases, medical devices …. • provides flexible grain of decomposition for building complex systems uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  10. Objects; The Web and Grids • The four approaches to the Object Grid or Object Web • CORBA from the Object Management Group • SOAP (Simple Object Access Protocol) and WSDL (Web Services Definition Language) from W3C – the pure Web approach • RMI, Enterprise Javabeans (EJB) and Jini – the pure Java approach • COM and now .net from Microsoft • We will make certain defining assumptions which are not universal today but which I expect to – for instance • XML is a universal technology to define (all) Objects and then you make these objects useful by manipulating them with languages like C++ C# and Java and accessing them with portals • All Objects are defined by generalized URL’s (URI or URN Universal Resource Identifier/Name) • All Objects have metadata uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  11. Today’s Distributed Object Web: The Confusing Multi-Technology Real World Middleware Server Layer W PD DC DC DC PC W T N D W O Clients Middle Layer (Server Tier) W is Web Server PD Parallel Database DC Distributed Computer PC Parallel Computer O Object Broker N Network Server e.g. Netsolve T Collaboratory Server Third Backend Tier uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  12. Multi-Tier Client Server/Service for Data Access “Flat” FileSystem Relational Database Object Store Middle Tier Servers(Abstract Services) Back-end Tier Raw Services Client Tier Object Broker IIOP HTTP Web Server RMI Specialized Java Server Web Service SOAP + WSDL Old and New Useful Backend Systems uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  13. Object View of running a program PressRunButton • Invoking a Simulation is similar to fetching or otherwise manipulating data -- invoking a web page is simplest example of latter Fortran Program is an Important Type of Object It can be built up from smaller objects e.g. Matrix library could be an object Convert GenericRun Request intoSpecific Requeston Chosen Computer Fortran/C/C++Simulation Codeon Sequential or Parallel Machine Object Broker uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  14. GEM Portal Architecture Geophysical “Web” Info Seismic Sensors Field Data General “Web” Info Databases (HPCC) Computers (Java) Interactive Analysis Client Visualization Backend Services Middleware Bunch of Web Servers and Object Brokers Collaboration SecurityLookup Registration Agents/Brokers Application Integration Visualization Server Seamless Access Clients uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  15. Web/Grid Service Model • We used to think of a computer application as a bunch of processes running on a single computer • Now process is replaced by services and these run in a middleware “sea” with each service on separate machines (in general) and these machines spread around the “enterprise” (world) • Computer science is producing infrastructure – essentially the Web Operating System – to support this • ALL current software is “out of date” and must be rewritten – this includes software for a single PC uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  16. Computational Science Portal: The Computing Service MultidisciplinaryControl (WebFlow) Portal Control Parallel DBProxy Database NEOS ControlOptimization OptimizationService Origin 2000Proxy MPP NetSolveLinear Alg.Server Matrix Solver Agent-basedChoice ofCompute Engine IBM SP2Proxy Data AnalysisServer MPP uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  17. Hybrid Distributed Object Web Approach • Need to use mix of approaches -- choosing what is good and what will last • For example develop Web-based databases with Java objects using standard JDBC (Java Database Connectivity) interfaces • Oracle, DB2, Informix, Sybase, Lotus Notes, Object database choice becomes an issue of performance/robustness NOT functionality • Use CORBA (C++) or Java as software to wrap existing applications with XML as syntax to define these distributed objects • Note Middle tier insulates client from backend -- can use one object model for user level (object functionality) and different one for backend (object access and persistent store) • specialized object databases getting “overwhelmed” by multi-tier approach with Oracle etc. traditional backends Write Software in Java C++ C# but define data and interfaces in XML uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  18. Topic I: Basic Information Systems • Basic Electronic Information Systems • Web Pages • Database • Sketch of Today's Internet including initial architecture • XML • Distributed Objects • Messages • Multi-Tiers • These features will emerge in greater depth as we go to further topics • Motivating Applications • Consumer to Business to Science • e-Science uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  19. Topic II: Advanced Information Systems • These are sophisticated technology and applications but do not have especially complex features – storing and accessing information • Technology • Distributed Computing • Today's Internet in Detail ( including Network Issues) • .opennet and .net • Web Services WSDL UDDI • WebDAV • Motivating Applications • Enterprise Informatics – EIP (Portals), ERP and support of business processes; workflow • Content Management • B2B and B2C • Object and Component Models of Information and Information Services • Health Informatics (patient records) uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  20. Topic III: Extracting Knowledge from Data • Technology • Data-mining of various sorts • Web search Engines • Hidden Markov Methods • Neural nets etc. • Indexes versus “distributed grep” • SQL versus XML Query • Motivating Applications • Geo-Informatics -- Earthquake forecasting • Bio-Informatics • Financial Applications (Econo-Informatics) • What is Knowledge in an application and how is it discovered and represented? uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  21. Topic IV: “Intelligence” or “Emergent Knowledge” • “Intuition” or unexpected/unplanned understanding • Technology • Agents • Semantic Web • Physical Optimization and Physical Computation • Complex Systems • Phase Transitions • Small worlds • Motivating Applications • Artificial Intelligence • "Digital Brilliance" (Emergent Intelligence in Information Space) uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  22. Topic V: Multi-Media Services • Technology • Streaming and Conferencing Codecs (MPEG G723 JPEG etc.) • SMIL • H323 and SIP and “control” as example of general multi-user control unit • Instant Messenger Standards SIMPLE and IMPP • Motivating Applications • Audio-Video Conferencing • Digital Media • VOIP • Instant Messengers (as have similar control issues to multi-point audio/video sessions) uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  23. Topic VI: Building Communities • Technology • Collaboration as Shared Objects • Synchronous and Asynchronous • Peer to Peer Systems (Napster, Gnutella, Publius, JXTA etc.) • Distributed search revisited (What is model for registering and finding objects) , Security, Accountability, Anonymity • Motivating Applications • Distance Education • Telemedicine • Virtual Organizations • Collaborative Product Commerce (CPC) • Collaborative Engineering and IPPD (Integrated Product and Process Development) uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  24. Topic VII: Computing and Generating Information • Technology • Computational Grids • Analogy with Electrical Grid • Storage; Networking; Computing • Virtual Data • Resource Management • Portals • Motivating applications • High Performance Systems • Sensors • e-Science Revisited • Physics • Chemistry uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  25. Topic VIII: User Interfaces and Personal Environment • Technology • Information Visualization • Human Computer Interfaces • Portals • SVG, X3D etc. • Hand held devices • Motivating Applications • Interactive Web Pages • WebTop / WebOffice • New Media Informatics • Universal Access uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  26. Typical (non Microsoft) Architecture • This is .opennet structure Persistent Managed resource. Also could be sensor, supercomputer etc. Database (Virtual) XML Layer Resource Object layer Virtual Machine onServer Enterprise Javabeans Java Control User (Portal) Object layer (Virtual) XML Layer Form Output Page viewed by user Servlet uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  27. More Simply • And we need to understand role of • Clients Servers Resources • And their inter-linkage • Need to distinguish roles and machines • A given machine could have client, server and/or resource role Resource Resource Resource Server Server Server Client Client Client uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  28. Client Issues I • Client has display and a CPU – actually CPU is often used in server-like roles (e.g. invoking a resource like Microsoft PowerPoint) • Eventually programs like PowerPoint will be viewed as a resource served either locally or afar and with an XML Interface • Where should work be done? “client” or “server” • JavaScript and Java Applet are client based • Java Application; ASP JSP (Active/Java Server Pages) are server control of client display • What is network bandwidth – if HIGH then plausible to update client from afar – update time = network transmission time PLUS CPU time uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  29. Client Issues II • Standards for Client Displays • In days gone by one used to build custom user interfaces • Using browsers as a “universal user interface” is a disruptive technology • It doesn’t do some things very elegantly (like animation) but universality and power of world wide links overwhelms these disadvantages • XHTML DHTML SVG X3D WML are respectively text, dynamic text, 2D Graphics, 3D Graphics, Wireless standards for browsers • The Client – Browser Virtual XML Interface separates XML standards for INFORMATION/KNOWLEDGE (area of greatest potential for further work) from XML display standards including user interface • Client standards enable multiple devices and address accessibility by handicapped (W3C WAI Initiative) • Note modular design should make it easier to customize for those with disabilities uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  30. InformaticsView ofArchitecture Resource Raw Data • Note Server Tier uses lots of subsystems that are themselves separated by XML Interfaces (Virtual) XML Interface Processing Server Information/Knowledge (Virtual) XML Interface Rendering to XML Display Format Clients uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  31. Server Issues I • This does • “processing” including data-mining and editing • “mapping” client (user) view to resource view • “routing” information (as between members of AOL Buddy List) • “sharing” as in collaboration • Managing use of servers and resources • Optimizing performance • Replicating and caching information needed by multiple clients • Generic capabilities • JDBC/ODBC interface to database • JMS processes messages • Apache Slide manages Content ………. uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  32. Server Issues II • Are there a few large ones; lots of little ones (peer to Peer approach) • Where are they: your PC; Middle of the world; scattered around? • What is their architecture and implementation? • Distributed Object Model • .net ? • Java ? C++ ? Python? • Application Specific Interfaces • WSDL/SOAP/RMI is general • Each field has its own as for education, workflow, human resources etc. • “Everything is universal” at server level whereas resources and clients can be specialized uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  33. Resource Issues • These are databases, supercomputers, sensors etc. • Each has special ways of storing, creating and updating information • What is Syntax of data • MathML Mathematics • DOM (Document Object Model) Documents • All data needs meta-data • RDF Resource Description Framework is general approach • Dublin Core is for “books” etc. • Interface between middle tier and resource • JDBC (Java Database Connectivity) for Database resources • SLE (Space Link Extension) For Spacecraft Sensors uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  34. Cosmic Issues • What is the Operating System for the Grid/Web • Where should interfaces be defined – or what are the right “components” • Build system from interlocking Jigsaw pieces • Will system have unexpected/emergent intelligence • How do we “register” and “find” clients, resources, servers • This has many models and many implementations • Register based (Yellow Pages) DNS, LDAP, JNDI (Java Naming and Directory service) • Market based with service need and service provider advertisments matched: Jini (failed?) JXTA (Peer to Peer) uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  35. Web Technologies in a Nutshell - XML • HTML is powerful but does not separate display and form (structure of document component as an object) • XML is a generalization of HTML which allows definition of arbitrary tags • e.g. <student name=“Jane Doe” class=“CommunityGrids:I400” grade=“…” >Working Hard</student> is more elegant way of capturing information in a reliable fashion than HTML • <h2>Students</h2><ul><li>Jane Doe: Working Hard</li><ul> <li>Class: I400</li> <li>Grade: …</li> …. </ul></ul> with a PERL program to extract data • XML allows powerful way of defining dynamic Ascii databases useful for “modest size data” such as people, document citations etc. • XML parsers map XML tags into HTML for display or hand to programs to interpret • XML can also be used to define extensions to HTML such as special tags for mathematics (MathML) or chemistry (CML) or ….. • XML defines syntax for “serializing” Web objects and transmitting between clients and servers SOAP uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  36. Example from Special Edition Using XML • HTML Version of Sales Sheet • <dl> • <!-- Fruit --> <dt>Apples</dt> • <!-- Price --> <dd> $1</dd> • <!-- Fruit --> <dt> Oranges </dt> • <!-- Price --> <dd> $2 </dd> • </dl> • XML Version of Price list • <FruitPriceList> • <fruit><fruitname>Apples</fruitname> • <Price> $1</Price> </fruit> • <fruit><fruitname>Oranges</fruitname> • <Price> $2</Price> </fruit> • </FruitPriceList> uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  37. Example from Special Edition Using XML • <bottle> • <top> type 3 childsafe </top> • <body><body-type> 100 count plastic </body-type> • <contents> <count> 100 </count> • <content-type> aspirin </content-type> • </contents></body> • <labeling> • <frontlabel> XYZ brand generic </frontlabel> • <rearlabel> XYZ directions and warning </rearlabel> • </labeling> • </bottle> uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  38. XML Topics • Syntax and Examples • Types of Tools Available • How to define well formed and Validated XML – DTDNamespaces and Schema • Events in XML and HTML: JavaScript DHTML • XSL and CSS Style sheets including XPATH (how to specify location in XML document) • Parsing XML from Java and .. (SAX and DOM) • XLINK and XPOINTER – XML hyperlinks • Applications of XML: XHTML RDF WSDL SMIL SVG Dublin Core • Mapping XML to Java: Castor uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  39. Example XML Software Application Descriptor <?xml version=“1.0”?> <!DOCTYPE application SYSTEM “ApplDescV2.dtd”> <application id=“disloc”> <target id=“osprey4.npac.syr.edu”> <status installed=“Yes”/> <installed> <CmdLine command=“/npac/home/webflow/GEM/JAY/dis2loc” /> <input> <inFile Path=“/npac/home/webflow/GEM/JAY/” Name=“disloc.output”/> <source Host=“osprey4.npac.syr.edu” Path=“/npac/home/Jigsaw/WWW/tmp” Name=“disloc.out”/ > </input> <output> <outFile Path=“/npac/home/webflow/GEM/JAY/” Name=“simplex.input” /> <dest Host=“osprey4.npac.syr.edu” Path=“/npac/home/webflow/GEM/JAY/simplex/” Name=“s.in” /> </output> <stdout Host=“aga.npac.syr.edu” Path=“/npac/home/haupt/webflow/history/” Name=“job2001.out” > <stderr Host=“aga.npac.syr.edu” Path=“/tmp/” Name=“haupt_job2001.err” > </installed> </target> </application> uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  40. XML Applications • XHTML: HTML “done correctly” in stricter XML Syntax • SMIL: Syntax to specify multimedia data including timing of “parallel” and “sequential” displays • MathML: Syntax to specify either content or presentation of Mathematics (TeX in XML) • SVG: 2D graphics (compare Java2D) • RDF: Specify Information resources • WML: Specify how to transmit information to Cell Phones or PDA’s • WSDL: Define Grid Services so they can be accessed uniformly • CML: Specify chemistry (e.g. molecules) • XSIL: Specify Scientific data • For instance this can be used as basis of X”weather” to specify data from sensors; X”seismic” for data from Seismic sensors etc. uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  41. Homework I • Due January 16 Midnight – 3 Parts • A) Use the web/local bookstore to investigate appropriate XML books for your knowledge base • I400 No Java programming required but if interested could use • I590 Java Programming • Report your findings uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  42. Homework II • B) Choose one of 3 Topics • Education (http://www.adlnet.org) • Basketball • Family Photos/Videos (called Electronic shoebox by Kodak) • Design an information architecture and write a 2 page report on it describing resources, server functionality and needed interfaces • C) Give 10 areas where you think this approach would be useful and give a couple of sentences as to why that is true uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  43. What is a Web Client I? • Originally we thought of Web Systems as a set of communicating objects with • Not much on client linking to UNIX processes invoked by CGI • Then we excitedly got balanced client server applications with JavaScript and Java applets on client which was faster as no network traffic for “small” local actions • Servlets, Enterprise Javabeans and CORBA provided robust middle tier programming model • But browsers never became a good programming environment as actions (say of JavaScript) undefined or quality (of Java virtual machine in browser) poor. • So browsers are just display technology and one should use servers or applications for software • HTML SVG XHTML WML are used to define what client is to display uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  44. What is a Web Client II? • Gilders law of the Telecosm (September 2000, Free Press; ISBN: 0684809303, #23297 in Amazon Sales)says network bandwidth is improving 3 times faster than CPU performance • One can make dynamic clients with either client side JavaScript (or equivalent) or with server side Java Server Pages (JSP) • JSP provides similar functionality to Java Applets with Java running outside browser in a nice robust server • This is the old way we built applications done with faster networks and more elegant implementation (we used to invoke Perl CGI scripts to provide dynamic web pages but this was too slow) • Gilder’s law supports JSP approach • ASP is Microsoft version of JSP uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  45. Palm Tops help define Client Model • There is growing interest in wireless portable displays in the confluence of cell phone and personal digital assistant markets • By 2005, 60 million internet ready cell phones sold each year • 65% of all Broadband Internet accesses via non desktop applicances • One needs to design web systems so they can be accessed from either a PDA or a PC or a Powerwall • This implies that only code in browser should be that immediately needed to relay events between user and web system – all “logic” (state) should be outside browser. uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  46. Web Technologies in a Nutshell -- Java • Java -- Objected Oriented version of C/C++ supporting Interactive Distributed Computing. • Original Web architecture (e.g. CGI) was server-side. Java allowed design and Implementation of balanced Client Server Applications but this original motivation is less important now • Java likely to be a dominant software engineering and Scientific Computing language -- see http://www.javagrande.org • This course discusses Java as a language in context of a system building tool • Java will probably be preferred language for development of next generation general or custom Web servers and clients • Programmers more productive in Java • Java has frameworks (libraries) for key Internet functionalities • Java can build client side customized GUI's and graphics/image processing but Microsoft JavaScript and DHTML competes here and MOST Industry use of Java is in middle tier • New Java 2 has several enhancements including very many specialized API’s • Javabeans are (visual) component model for Java applications • Enterprise Javabeans are Java middleware containers • Jini and RMI allow distributed objects to be found and communicate uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  47. Web Technologies in a Nutshell - JavaScript • JavaScript -- only superficially related to Java and was called LiveScript -- is Netscape's (somewhat supported by Microsoft) fully interpreted Client side extension of HTML. This is a good Client Window integration /customization technology where flexibility more important than performance • i.e. use JavaScript for Rapid Prototyping of Complex User Interfaces • First examples use JavaScript together with frames ( HTML extension) for interactive multi-window technologies • JavaScript is roughly equivalent to "Abstract Windowing Toolkit/ Layout Manager" in Java but applied to Browser Frames and not Java windows • JavaScript cannot build complex filters or simulations as slow • But JavaScript with dynamic HTML is powerful client technology which is often easier and faster than Java -- it is faster as invokes optimized browser functions • both Internet Explorer 4 and Netscape have excellent JavaScript support • Server side version of JavaScript called LiveWireruns on Netscape Servers -- unsuccessful • Originally expected client side use of JavaScript to grow in importance but new view of Web clients limits use of JavaScript to small critical event handling • JavaScript on Palmtops called WMLScript uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  48. Web Technologies in a Nutshell - DHTML • There is an emerging DOM or Document Object Model which will be uniform model used by W3C, Netscape, Microsoft • It allow you to address individual components of a page e.g. text box, image or collections thereof as separate entities • DOM is quite close to IE 5 conventions and is based on XML • DOM ought to be critical for publishing industry – Microsoft Word does not use except implicitly in Web export • Cascading Style Sheets allow one more powerful ways of assigning properties (such as color fonts etc.) to these components using either name(id) or type (<h2> tag etc.) • DHTML or dynamic HTML allows one to address the components of document and change on the fly (without reloading page) the properties of these components • This includes not only natural style properties but also position, size and “visibility” • DHTML currently handicapped by major differences between IE5 and Netscape 4 -- functionalities are similar but syntax very different • JavaScript combined with DHTML allows animations, graphs and replacement of just parts of text uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  49. Web Technologies in a Nutshell - PERL • PERL is a C like Interpreter with powerful direct access to UNIX system commands and very easy ways of processing text files • PERL is a relatively old technology which has being overtaken by Java tidal wave. • Still PERL has significantly better Systems and Document handling capability than Java • Very good for UNIX as much easier than Shell for system scripts -- PC versions exist but not so well integrated into O/S • Wonderful regular expression handling • PERL is traditional but not best choice for server CGI extensions and development of filters even for simpler cases involving text documents • Python and PHP have replaced PERL • PERL5 is object oriented but much less elegant (in my opinion) than Java • PERL5 has very useful multidimensional associative and regular arrays • Use PERL for UNIX batch jobs to edit text files (e.g. map www.npac.syr.edu to aspen.csit.fsu.edu)and quick simple Web server extensions – Convert latter to Java for production uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

  50. Java Message Service JMS In a Nutshell • Supports MOM – Message Oriented Middleware supporting either • Point to point: One system sends a message to another system • Publish/Subscribe: There is a server with “labeled (by topic) queues” • A given queue could contain all messages on “Korean Recipes” • A provider sends messages to appropriate queue • Any number of subscribers register interest in topics with possible sophisticated “selectors” • When a relevant message is generated for a given topic, all subscribers are sent this message. They can do what they like with it uri="gxos://ptliu/communitygrid/courses/xinformatics" title="X-Informatics"

More Related