170 likes | 289 Views
UMass Lowell Computer Science 91.460 Java and Distributed Computing Prof. Karen Daniels Fall, 2000. Lecture 2 Introduction/Overview Fri. 9/8/00. Web Page. Web Page. http://www.cs.uml.edu/~kdaniels/courses/java2000.html. Textbooks. Required:
E N D
UMass Lowell Computer Science 91.460Java and Distributed ComputingProf. Karen DanielsFall, 2000 Lecture 2 Introduction/Overview Fri. 9/8/00
Web Page Web Page http://www.cs.uml.edu/~kdaniels/courses/java2000.html
Textbooks Required: • Java: How to Program, Third Edition by Deitel and Deitel, Prentice-Hall, 1999. • Core Jini by W. Keith Edwards, Prentice-Hall PTR, 1999. Optional: • Java 2 Certification by Jamie Jaworski, New Riders Publishing, 1999. Available in UML bookstore
Homework HW# Assigned DueContent 1 Wed, 9/6 Fri, 9/8 Read Ch 1 (Deitel)
Syllabus for Part 1 of the Course Part 1 Closed book; Worth 15% of grade
What is Java? • Language developed by Sun Microsystems • Popular use: World Wide Web • Platform-independent • Interpreter: Java Virtual Machine • Mobile code (Applets): transient, seamless • Fully Object-Oriented • Many C++ constructs • Class library support
Disk Program is created in editor and stored on disk. Phase 1 Editor Compiler creates bytecodes and stores them on disk. Compiler Disk Phase 2 Class Loader Phase 3 Class loader puts bytecodes in memory. ... ... ... Disk Primary Memory Primary Memory Primary Memory Bytecode verifier confirms all bytecodes are valid & abide by security constraints. Phase 4 Bytecode Verifier Interpreter (JVM) executes bytecodes by reading & translating into machine language. Phase 5 Interpreter A Typical Java Environment [Deitel 99]
What is Distributed Computing? • Distributed system: collection of computing devices that communicate with each other • Challenges: • heterogeneous hardware, software • asynchrony • limited local knowledge • failures [Attiya, Welch 99]
Eight Fallacies of Distributed Computing “Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run, and all can cause big trouble and painful learning experiences.” - Peter Deutsch • The network is reliable • Latency is zero • Bandwidth is infinite • The network is secure • Topology doesn’t change • There is one administrator • Transport cost is zero • The network is homogeneous
Why Java & Distributed Computing? • Platform independence helps with heterogeneous hardware, software challenge • Built-in support for: • Multithreading: concurrent multiple activities • Client-Server computing: servlets, JDBC • Remote Method Invocation (RMI): method calls across network • Networking: socket-based communication views networking like file I/O
Our Distributed Computing Goal:Managing A Complex Enterprise Telecommunications
Enterprise Characteristics • Many participants • hardware, software • varied communication • Highly distributed • Frequent changes • mobile clients • service availability
What is Jini? • Java-based connection framework developed by Sun Microsystems • Philosophy: • plug ‘n play network • blur distinction between hardware and software • “self-healing” • Elements: discovery, lookup, leasing, remote events, transactions, JavaSpaces
Lookup Service Service Item Service Item Service Item Proxy Proxy Proxy Client Service Provider Attribute Attribute Attribute Attribute Attribute Attribute Attribute Attribute Attribute Attribute Attribute Attribute Background on Jini Technology Assumes Java and network Consists of Java classes Works at application level proxy manages service interaction
Homework HW# Assigned DueContent 1 Wed, 9/6 Fri, 9/8 Read Ch 1 (Deitel) 2 Fri, 9/8 Mon, 9/11 Read Ch 1, 2 (Edwards) Fri, 9/15 Read Ch 2, 3 (Deitel) Fri, 9/15 Assignment #1, Part 1 short-answer questions Mon, 9/18 Assignment #1, Part 2 “Hello World” programming (application and applet) Homework is due at the start of lecture on the due date.
Computing Environment • Java 2 platform: Java 2 SDK v. 1.2.1 • http://www.javasoft.com/products/jdk/1.2 • Jini v. 1.1 • http://www.javasoft.com/products/jini • UML CS UNIX environment • Optional: • PC environment (code must also run on UNIX) • Java integrated development environment • 2 are on disk with Deitel textbook (NetBeans caveat) Make sure you have a UML CS UNIX account
C++ Diagnostic • Assess C++ background • Will not contribute to the course grade • Answers on the way out of class • Name is optional • Provide code snippets, not entire programs • Leave unknowns blank