240 likes | 249 Views
This course provides an introduction to distributed computing and internet technologies, including Java programming, servlets, RMI, JDBC, and Java Server Pages. It covers the basics of designing and building distributed systems and prepares students for careers in the IT industry or further academic study.
E N D
CIS 5930-04 Applications of Information Technology I a.k.a. Technologies for an Information Age IWeb 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 LibraryFlorida State UniversityTallahassee Florida 32306-4120 http://www.csit.fsu.edu fox@csit.fsu.edu 850-644-4587 dbc@csit.fsu.edu 850-644-0180 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 mostimportant 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 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 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 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Grading and Support • Course Assistant is Xi RaoComputational Science and Information TechnologyOffice 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 BalsoyComputational Science and Information TechnologyGraduate Research Assistant(850) 644-7012 Office 481C, Floor 4 of Dirac Science Library. ozgur@csit.fsu.edu 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) 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) 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) 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 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 HTMLDocuments 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 Serverwritten in C++ Or Java HTTP protocol / MIME format with HTML or XMLRMI or IIOP for Java/CORBA CGIProgram (e.g. PERL becoming Java) Viewer and helper Applications for MPEG, VRML etc. CGI Interface 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! CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Multi-Tier Client Server Service Relational Database Object Store Back-end Tier Services Middle Tier Servers Client Tier Object Broker IIOP HTTP Web Server RMI(IIOP)or Custom Specialized Java Server Old and New Useful Backend Systems Javabean Enterprise Javabean 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 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
3-Tier Architecture and Different Object Models ObjectRepository Database • There are several important Object Models: COM, CORBA, Java, Web, Oracle Database …… • But it doesn’t matter as middle tiertakes care of the object model automatically!! XMLFile System(Web Site) Request Or Export/Import Information Middle Tier“Business Logic”dissociatesUser and Back End 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 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Two Database Web Linkages CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Two More 3 Tier Web Database Links CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
2 Tier and CORBA Models 2 Tier Model CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Comparison of 2 3 and 4 Tier Models JavaQuery (form) JavaQuery+ JDBC HTMLQuery (form) Enterprise JavabeanJDBC Servlet Relational Database Relational Database Relational Database Enterprise Javabean JDBC Thin Client Client MiddleTiers BackEnd CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Two ways of Implementing Data Objects Application using data objects Object Database Enterprise Javabean mapping user object to backend persistent data model Application using data objects Middle Tier Backend relational database such as Oracle • Old way: Use an Object Database • Current Approach: Use a Relational Database and business logic in EJB CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
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 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Emerging Object Web Multi-Server Model Back End Servers and their services Clients andtheir servers Middle Tier Custom Servers CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01
Computational Science Portal: Multi-Server Web Computing System 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 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 Middlewaremodels: • 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 CSIT: IT1 Introduction http://aspen.csit.fsu.edu/it1spring01