Distribuerte Systemer Viktigere enn vi tror, vanskeligere enn det høres Komponenttorget ‘99

advertisement
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
Download