Unleashing the Power of Distributed Objects Trygve Reenskaug Numerica Taskon, Oslo

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