Instructors: Geoffrey Fox and Bryan Carpenter CIS 5930-04 Applications of Information Technology I a.k.a. Technologies for an Information Age I Web Architecture and Technologies Spring Semester 2001 MWF 8:00 AM -8:50 AM Instructors: Geoffrey Fox and Bryan Carpenter Dept. of Computer Science School of Computational Science and Information Technology 400 Dirac Science Library Florida State University Tallahassee Florida 32306-4120 http://www.csit.fsu.edu fox@csit.fsu.edu 850-644-4587 dbc@csit.fsu.edu 850-644-0180 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Abstract of CSIT IT1 Spring 2001 Introduction This Foilset contains introductory material on CSIT/CS Course IT1 for fall 2000 Some Aspects of Course Logistics -- all students must go to web site for complete discussion of this http://aspen.csit.fsu.edu/it1spring01/ Overview of Field and Material covered and relation to other course IT2 starting 2.30pm this afternon The Internet is the most important and by far the largest distributed computer system and it has spawned the most remarkable and general purpose software ever seen So in studying the Internet, we study distributed computing (hardware and software) After IT1 and IT2, Students should be able to design and build any distributed system We will give a summary of Base Distributed Object Web and Internet Technologies 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01 Leave Now Unless …… You are practically minded and wish to learn how to write real software to solve real distributed systems Your software should work and be documented! At the end of IT1 you will have basic knowledge for a .com/Oracle/Microsoft/Sun job At the end of IT2 and a good grade, you will be top applicant for such a job and well prepared to think about a PhD 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01 Practical Issues Grade will be based on about 6 homework sets. The first of these will be a report and the last a modest project. The rest will be largely Java oriented programming tasks The Books are: Core Java 2 Volume 1-Fundamentals Volume 2-Advanced Features The Sun Microsystems Press Java Series (Prentice Hall) Cay S. Horstmann and Gary Cornell ISBN 0-13-081933-6 ISBN 0-13-081934-4 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01 Grading and Support Course Assistant is Xi Rao Computational Science and Information Technology Office 477B, Floor 4 of Dirac Science Library. xi@cs.fsu.edu We will use a web-linked database (built by previous students of this class sequence at Syracuse using technologies you are learning) Contact for database: Ozgur Balsoy Computational Science and Information Technology Graduate Research Assistant (850) 644-7012 Office 481C, Floor 4 of Dirac Science Library. ozgur@csit.fsu.edu 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Overview of CSIT Information Technology Courses - I IT1 assumes good programming skills and familiarity with the Internet/web It will teach Java and use Internet examples to illustrate use of language Course could be useful even if you know Java – we will emphasize topics like Servlets – Simple way of building Java Server side applications RMI – Foundation of pure Java distributed objects and systems built in these terms JDBC (Java Database Connectivity) – Universal interface between Java and databases Java Server Pages (how to build client software if you sell servers and don’t like MSFT) We will NOT discuss the beat up client side (in Microsoft-Netscape battle won by MSFT) – Applets, Dynamic HTML and JavaScript (good ideas albeit a victims of battle) 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Overview of CSIT Information Technology Courses - II We will try to cover basic concepts of distributed systems and use the most elegant technology to illustrate – we will generalize to other approaches which could be best to use in a particular application Servlets illustrate Server side application where you can of course use Perl, C++, JavaScript, Fortran, Machine Language or what have you RMI illustrates the integration of Internet and distributed object ideas – the Object Web that underlies all modern distributed systems IT1 will be basic 3 tier systems with core Client and Server Side technologies – Java, JavaScript and Dynamic HTML IT2 will assume IT1 (including mastery of Java) and cover remaining core technologies such as XML, Enterprise Javabeans, CORBA, JavaScript, J2ME (Java for handheld devices and settop boxes), Jini (how to support dynamic mobile objects) 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Overview of CSIT Information Technology Courses - III Provisional IT2 Syllabus XML and some exemplar applications such as MathML More on IT1 technologies such as Dynamic HTML with W3C (World Wide Web Consortium) Document Object Model Virtual Machines and Java from pico to enterprise editions (Smart Cards to Cell Phones to PC’s to Servers) Security for Java and for heterogeneous Systems (Public Key infrastructure, Kerberos) The four approaches to the Object Web CORBA from the Object Management Group SOAP (Simple Object Access Protocol) from W3C – the pure web approach RMI, Enterprise Javabeans (EJB) and Jini – the pure Java approach COM from Microsoft Component and event based programming – Javabeans on the client; CORBA and EJB on the server Graphics on the Web: SVG (Scalable Vector Graphics) and VRML (X3D) 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Some Course Prerequisites We will assume Basic Web Browsing and HTML expertise and programming experience Permission of Instructor is needed for IT2 if you have not taken IT1 You should be familiar with either PC or UNIX environment and program in at least one real language including Java Perl is still widely used, but not taught here as Java builds most robust system and language of choice in industry We will not assume any database or CORBA knowledge and will review basic material such as SQL if needed CSIT provides servers for you to access Oracle databases and other needed core resources You need a UNIX workstation or a PC running Windows 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Original 1995 Structure of World Wide Web Universal machine independent interfaces – Success of Web as much to with standards as software/hardware CGI Programs were originally usually written in PERL but can be essentially any Process and so do simulation, database access (this is JDBC), advanced document processing etc. Basic Services HTML Documents Browser e.g. Netscape or Microsoft interpreting XML, HTML Java etc. URL (location of desired information) or info to invoke server side program HTTP Web Server written in C++ Or Java HTTP protocol / MIME format with HTML or XML RMI or IIOP for Java/CORBA CGI Program (e.g. PERL becoming Java) Viewer and helper Applications for MPEG, VRML etc. CGI Interface 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Distributed Object Web Technology Model - I Basic Vision: The current incoherent but highly creative Web is merging with distributed object technology in a multi-tier client-server-service architecture with Java based combined Web Servers and Object Brokers Need to abstract entities (Web Pages, database entries, simulations) and services as objects with methods(interfaces) CORBA .. XML is “just” CGI done right COM(Microsoft) and CORBA(world) are competing cross platform and language object technologies Every Netscape4 browser has a Visigenic ORB built in Javabeans plus RMI and JINI is 100% pure Java distributed object technology W3C says you should use XML and SOAP which defines a cleaner IDL and perhaps an object model -- certainly does for documents How do we do this while technology is still changing rapidly! 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Multi-Tier Client Server Service Back-end Tier Services Middle Tier Servers Client Tier Object Store Object Broker IIOP HTTP Web Server Relational Database RMI(IIOP) or Custom Specialized Java Server Old and New Useful Backend Systems Javabean Enterprise Javabean 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Distributed Object Web Technology Model - II 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 Program the server not the backend or the client Do this programming in Java And this implied that Oracle won the database battle as they got model correct and supplied an appropriate backend database with functionality added through middle tier extensions 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
3-Tier Architecture and Different Object Models There are several important Object Models: COM, CORBA, Java, Web, Oracle Database …… But it doesn’t matter as middle tier takes care of the object model automatically!! Object Repository XML File System (Web Site) Request Or Export/Import Information Middle Tier “Business Logic” dissociates User and Back End Database 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01 Distributed Objects Examples of current object technologies Documents -- URL "General Programs including database invocations" Old style Web -- CGI New Style Web -- XML makes server side objects look like applets 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 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 “self-managing” of resources provides flexible grain of decomposition for building complex systems 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Two Database Web Linkages 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Two More 3 Tier Web Database Links 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01 2 Tier and CORBA Models 2 Tier Model 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Comparison of 2 3 and 4 Tier Models Thin Client Java Query+ JDBC Relational Database Java Query (form) Relational Database Enterprise Javabean JDBC HTML Query (form) Relational Database Servlet Enterprise Javabean JDBC Client Middle Tiers Back End 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Two ways of Implementing Data Objects Old way: Use an Object Database Current Approach: Use a Relational Database and business logic in EJB Object Database Application using data objects Backend relational database such as Oracle Enterprise Javabean mapping user object to backend persistent data model Application using data objects Middle Tier 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Clients Middle Layer (Server Tier) Third Backend Tier Today’s Distributed Object Web: The Confusing Multi-Technology Real World Middleware Server Layer Clients Middle Layer (Server Tier) W D PD DC PC N T O 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 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Emerging Object Web Multi-Server Model Clients and their servers Back End Servers and their services Middle Tier Custom Servers 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Computational Science Portal: Multi-Server Web Computing System Multidisciplinary Control (WebFlow) Portal Control Parallel DB Proxy Database NEOS Control Optimization Optimization Service Origin 2000 Proxy MPP NetSolve Linear Alg. Server Matrix Solver Agent-based Choice of Compute Engine IBM SP2 Proxy Data Analysis Server MPP 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Summary of Pragmatic Object Web 3-(or more)-tier architecture - Web browser front-ends, legacy (e.g. databases, HPC modules) backends; fat middleware Use as appropriate the alternative / competing Middleware models: Java RMI+ EJB (Enterprise Javabean) - single language solution by Sun CORBA - all languages solution by OMG COM - multi-language solution by Microsoft SOAP/XML - emergent solution by the Web Consortium Each model has different tradeoffs (most elegant, powerful, fastest, simplest) POW attempts to integrate various models and services in terms of multi-protocol middleware servers Note Java is often the best language to build middleware whether this is Java or some other distributed object model Most commercial Java activity is on Server not Client 11/18/2018 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01