Distribuerte Systemer Viktigere enn vi tror, vanskeligere enn det høres Komponenttorget ‘99 Trondheim Trygve Reenskaug Numerica Taskon Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:33:25 AM. Slide 1 Personal Information Environments Content and Communication Digital Map Census Data Police Records House Drawings Police Dispatcher Distaribuerte Systemer © Trygve Reenskaug 1999 Aerial Photos 5/29/2016 3:33:28 AM. Slide 2 The Real Challenges The Connected Organization Business processes Distaribuerte Systemer Effective, Enjoyable and Instructive Tools Task / Use Case / Tool © Trygve Reenskaug 1999 Effective Partitioning of Information Services Information services 5/29/2016 3:33:30 AM. Slide 3 Presentation plan • Communication-centered architectures A new system generation • The Collaboration • Remote Method Invocation (+ CORBA, COM) • The Component (+ Java Bean, Java Enterprise Bean) • Summary and Conclusion Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:33:31 AM. Slide 4 CPU-Centered paradigm Output Input Central Processing Unit FORTRAN Algol 60 Tape Software Hardware Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:33:31 AM. Slide 5 Storage-Centered paradigm Input App.1 Output Shared database Central Processing Unit Memory App.3 Tape Disk App.4 DB Schema language e.g. Entity-Relation e.g. NIAM Software Hardware Distaribuerte Systemer App.2 © Trygve Reenskaug 1999 5/29/2016 3:33:31 AM. Slide 6 Communication-Centered Output Tape Central Processing Unit Disk Object 3 Object 2 Object 4 Memory Hardware Distaribuerte Systemer Object 1 Information Bus Input Communication Bus paradigm Composition language e.g. ???? Software © Trygve Reenskaug 1999 5/29/2016 3:33:46 AM. Slide 7 Summary - 1 • Unlimited Scaling • Distributed Ownership • Support people’s Tasks • Flexible Consistency Requirements Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:00 AM. Slide 8 Presentation plan • Communication-centered architectures A new system generation • The Collaboration • Remote Method Invocation (+ CORBA, COM) • The Component (+ Java Bean, Java Enterprise Bean) • Summary and Conclusion Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:01 AM. Slide 9 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! Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:01 AM. Slide 10 Network with Default Resource Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:01 AM. Slide 11 Network with Gantry Resource Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:01 AM. Slide 12 The objects and their message paths WEB Browser Button paint(); Code is invisible! Applet ActivityGraph Project BarChart Project activity-B activity-D activity-A Activity-F activity-C Distaribuerte Systemer © Trygve Reenskaug 1999 activity-E 5/29/2016 3:34:02 AM. Slide 13 Summary - 2 Distributed solutions The object + has responsibility + knows its collaborators + is robust Nobody knows everything! • Move from closed to open systems • Move from centralized to distributed control • Change focus from build-time to run-time aspects • Abstraction: The role the object plays in collaboration context Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:03 AM. Slide 14 Presentation plan • Communication-centered architectures A new system generation • The Collaboration • Remote Method Invocation (+ CORBA, COM) • The Component (+ Java Bean, Java Enterprise Bean) • Summary and Conclusion Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:08 AM. Slide 15 Java RMI Remote Method Invocation WEB Browser Client Button ActivityGraph Server App BarChart Project activity-B activity-D activity-A Activity-F activity-C activity-E Remote access is slow and error prone. Simplify and clarify!!! Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:11 AM. Slide 16 RMI middleware Client The BarChart object The ActivityGraph object Project Stub represents the Project Activity Stub represents an Activity Information Bus (1 second can grow to 3 hours!!) Server The Project object (A Server) An Activity object (A server) Project skeleton represents sender Activity skeleton represents sender Java Naming & RMI Services (or CORBA or COM) HTML - web page language TCP/IP - Guaranteed end-to-end data stream Physical communication (ISDN/Ethernet/….) Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:12 AM. Slide 17 Presentation plan • Communication-centered architectures A new system generation • The Collaboration • Remote Method Invocation (+ CORBA, COM) • The Component (+ Java Bean, Java Enterprise Bean) • Summary and Conclusion Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:12 AM. Slide 18 Why use components Use componets to • Simplify remote communication • Avoid coding to save time • Avoid coding to increase quality • Use tools to increase your productivity • Get transactions, security, etc. for free Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:12 AM. Slide 19 What is a Component • Tools are used to compose systems • A component is reused by cloning • A Component is an object playing standardized roles • A Component is a reusable object Technology • • • • • System user Organization System composer Component creator Tool developer and vendor Component environment standardizer Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:13 AM. Slide 20 Compose User Interface with Java Beans Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:15 AM. Slide 21 Bean object plays several roles Composer Use Case Run-time display Use Case BeanBox App Bean Object Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:15 AM. Slide 22 Java Bean • User Interface • Properties • Events • Composition • Run time context Information Bus Component standardization examples Enterprise Java Bean • Naming • Persistence • Transactions • Security • Load sharing Client Distaribuerte Systemer Server © Trygve Reenskaug 1999 5/29/2016 3:34:15 AM. Slide 23 Presentation plan • Communication-centered architectures A new system generation • The Collaboration • Remote Method Invocation (+ CORBA, COM) • The Component (+ Java Bean, Java Enterprise Bean) • Summary and Conclusion Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:15 AM. Slide 24 Distributed Systems What you get: • Unlimited scaling • Distributed ownership • Specific task support • Information partitioning How you do it: • Think in terms of objects, their responsibilities and collaboration. • Think in terms of open systems, no main program. Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:15 AM. Slide 25 Component-based development What you get: • Build by composing library objects, avoid coding. • Leverage infrastructure mechanisms (transactions, security, persistence,…) How you do it: • Think in terms of objects. (Responsibilities, environment, collaboration.) • Penetrate vendor fog - find essentials • Insist on high product quality • Adapt to new layers in value chain Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:15 AM. Slide 26 The competing technologies CORBA™ Object Management Group (OMG) Public standards Java™ SUN Microsystems Build once, run anywhere COM™ Microsoft Dominating on desktops Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:15 AM. Slide 27 Distributed systems You can do it! http://www.ifi.uio.no/~trygve Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:15 AM. Slide 28 Distaribuerte Systemer © Trygve Reenskaug 1999 5/29/2016 3:34:15 AM. Slide 29