Unleashing the Power of Distributed Objects EDOC ‘99 Mannheim September 1999 Trygve Reenskaug Numerica Taskon, Oslo http://www.ifi.uio.no/~trygve Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:11 AM. Slide 1 Legal Notice This presentation is copyright ©1999 Trygve Reenskaug Oslo, Norway. All rights reserved. Unauthorized reproduction prohibited. Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:12 AM. Slide 2 The Connected Enterprise Tools & Services Digital Map Census Data Police Records House Drawings Police Dispatcher Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 Aerial Photos 5/29/2016 3:32:12 AM. Slide 3 Advantages Communication-Centered paradigm • Unlimited Scaling • Distributed Information Ownership • Support people’s Tasks • Flexible Consistency Requirements Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:14 AM. Slide 4 The Visionaries “The visionary is the only true realist.” Federico Fellini • Einar Thorsrud, Fred Emery Sociotechnical Systems. Theory X and Y • Douglas Engelbart Computer augmentation, Collective IQ • Alan Kay The Dynabook, a personal information system • Christopher Alexander A pattern language for humane environments Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:16 AM. Slide 5 Theory X vs. Theory Y (MacGregor) Theory X: Authoritarian Theory Inspiring Y • Dislikeleadership work • Are willing to work • Lack ambition • Are irresponsible • Are capable of selfcontrol Rigid, Bored, • controlling Are resistant to passive change environment workers Flexible, • Are willing toInterested, accept supportive creative responsibility workers environment • Prefer to be led rather than to lead • Are imaginative and creative Unleashing the Power of Distributed Objects leadership © Trygve Reenskaug 1999 5/29/2016 3:32:16 AM. Slide 7 Our Challenges Organization: Effective Flexible Innovative Supportive Tools: Effective, Enjoyable Instructive Personalized Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 Information Services: Well-defined Coherent Evolving 5/29/2016 3:32:17 AM. Slide 8 CPU-Centered paradigm Output Input Central Processing Unit FORTRAN Algol 60 Tape Software Hardware Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:17 AM. Slide 9 Storage-Centered paradigm Input App.1 Output Shared database Central Processing Unit Memory App.3 Tape Disk App.4 DB Schema language Entity-Relation NIAM Software Hardware Unleashing the Power of Distributed Objects App.2 © Trygve Reenskaug 1999 5/29/2016 3:32:17 AM. Slide 10 Communication-Centered Output Tape Central Processing Unit Object 1 Disk Object 3 Memory Hardware Unleashing the Power of Distributed Objects Information Backplane Input Communication Backplane paradigm Object 2 Object 4 Composition tools ?? UML Collaboration/OOram Software © Trygve Reenskaug 1999 5/29/2016 3:32:17 AM. Slide 11 No Main Program! The SYSTEM Centralized solutions The designer • sees everything • knows everything • understands everything • controls everything Distributed solutions The object - has responsibility - knows its collaborators - is robust Nobody knows everything! Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:18 AM. Slide 12 We use objects to master the age of distribution Object-B IN IN OUT-B OUT-C OUT-C Methods Variables Object-C Methods Variables IN Object-A Methods Variables Message triggers method causes response Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:18 AM. Slide 13 What is a Component ? Object pluggable on a backplane Objects Collaboration paths Backplane (Container) Operating System Net Hardware Unleashing the Power of Distributed Objects Thanks to Øystein Myhre for this illustration © Trygve Reenskaug 1999 5/29/2016 3:32:18 AM. Slide 14 What is a Component? • A Component is a (reusable) object • A Component is an object playing standardized roles within a container • A component does not know its clients • A component is reused by cloning • Tools are used to compose systems Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:18 AM. Slide 15 Component Value Chain Application Assembler (User expert) Component Deployer (Production engineer) Component Provider (Domain expert) Component Container Provider (System programmer) Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:19 AM. Slide 16 Compose User Interface with Java Beans Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:21 AM. Slide 17 App. for booking meeting rooms Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:21 AM. Slide 18 Component standardization Java Bean • User Interface • Properties • Events • Composition • Backplane Information Bus examples Enterprise JavaBean • Naming • Persistence • Transactions • Security • Load sharing • Backplane Client Unleashing the Power of Distributed Objects Server © Trygve Reenskaug 1999 5/29/2016 3:32:21 AM. Slide 19 Application Assembler perspecive WEB Browser Applet e.g., init(); paint(Graphics); AppletContext e.g., getImage(URL) RoomBooker e.g., getRooms(); reserve(...); BookingApplet (end user tool) Booking (business logic) JComboBox e.g., addItem(...); getSelectedItem(); Room Chooser ActionListener e.g., actionPerformed(ActionEvent) Java Beans Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:21 AM. Slide 20 See Collaboration Hide implementation WEB Browser Code is invisible! The object + has responsibility + knows its collaborators + is robust Nobody knows everything! BookingApplet (end user tool) Room Chooser Booking (business logic) Objects References Interfaces are visible! Java Beans Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:21 AM. Slide 21 Component Provider perspective WEB Browser Applet (End user tool) Information Bus Name Server Booking Home Booking Object 4: getRooms(); Room Chooser Factory object Booking Bean 5: getRooms(); Java Beans Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:22 AM. Slide 22 Your Obstacles Pest and cholera Windows NT 4.0 SP 3 CORBA EJB HTML (XML?) IIOP COM - DCOM - COM+ Java (1.1.7B) (1.2) TCP/IP SQL Swing Java RMI ODBC Java Beans JINI JDBC Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:22 AM. Slide 23 Focus on Objects ! Responsibilities ! Collaborations ! Visible: Objects References Interfaces Processes Invisible: Code Communication etc. Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:23 AM. Slide 24 Organize for large scale development ! Application Assembler Empower user Component Deployer Limit choice & make available Component Provider Create capability Component Container Provider Provide tools and service environment Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:23 AM. Slide 25 Your Real Challenge: Solutions for humans ! Organization: Effective Flexible Innovative Supportive Unleashing the Power of Distributed Objects Information Services: Well-defined Coherent Evolving Tools: Effective, Enjoyable Instructive Personalized © Trygve Reenskaug 1999 5/29/2016 3:32:24 AM. Slide 26 Distributed systems Go home and do it! COLLABORATIONS http://www.ifi.uio.no/~trygve Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:24 AM. Slide 27 Unleashing the Power of Distributed Objects © Trygve Reenskaug 1999 5/29/2016 3:32:24 AM. Slide 28