TOOLS Europe 99 Tutorial Unleashing the Power of

  • Slides: 94
Download presentation
TOOLS Europe ‘ 99 Tutorial Unleashing the Power of Distributed Enterprise Information Systems Trygve

TOOLS Europe ‘ 99 Tutorial Unleashing the Power of Distributed Enterprise Information Systems Trygve Reenskaug, Lasse Bjerde Numerica Taskon Oslo

Legal Notice This presentation is copyright © 1998 Trygve Reenskaug, Lasse Bjerde Oslo, Norway.

Legal Notice This presentation is copyright © 1998 Trygve Reenskaug, Lasse Bjerde Oslo, Norway. All rights reserved. Unauthorized reproduction prohibited. TOOLS '99 © 1999 Trygve Reenskaug, Lasse

The Connected Enterprise Content and Communication Digital Map Census Data Police Records Police Dispatcher

The Connected Enterprise Content and Communication Digital Map Census Data Police Records Police Dispatcher TOOLS '99 © 1999 Trygve Reenskaug, Lasse House Drawings Aerial Photos

Advantages Communication-Centered paradigm • Unlimited Scaling • Distributed Information Ownership • Support people’s Tasks

Advantages Communication-Centered paradigm • Unlimited Scaling • Distributed Information Ownership • Support people’s Tasks • Flexible Consistency Requirements TOOLS '99 © 1999 Trygve Reenskaug, Lasse

The Real Challenges The Connected Organization Effective, Enjoyable and Instructive Tools TOOLS '99 ©

The Real Challenges The Connected Organization Effective, Enjoyable and Instructive Tools TOOLS '99 © 1999 Trygve Reenskaug, Lasse Effective Partitioning of Information Services

Exercise Assuming that a great variety of information services are available: List users who

Exercise Assuming that a great variety of information services are available: List users who will benefit from using this new technology in performing their tasks. TOOLS '99 © 1999 Trygve Reenskaug, Lasse

The Short-Term Problems GUI Java Beans Business Logic Enterprise Java Beans Database Multithreading/Transactions/Security/… Enterprise

The Short-Term Problems GUI Java Beans Business Logic Enterprise Java Beans Database Multithreading/Transactions/Security/… Enterprise Java Beans Middleware (distribution) Java Remote Method Invocation TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm • Divide

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm • Divide and conquer. Separation of concern with role models, responsibilities, and interfaces • The Lego idea. Constructing software with components • Summary. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm ¤ The

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm ¤ The new paradigm ¤ An Applet built with Java Beans ¤ Remote Method Invocation (RMI) • Divide and conquer. Separation of concern with role models, responsibilities, and interfaces • The Lego idea. Constructing software with components • Summary. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

CPU-Centered paradigm Output Input Central Processing Unit FORTRAN Algol 60 Tape Hardware TOOLS '99

CPU-Centered paradigm Output Input Central Processing Unit FORTRAN Algol 60 Tape Hardware TOOLS '99 Software © 1999 Trygve Reenskaug, Lasse

Storage-Centered paradigm Input App. 1 Output Shared database Central Processing Unit Memory App. 3

Storage-Centered paradigm Input App. 1 Output Shared database Central Processing Unit Memory App. 3 Tape App. 4 DB Schema language e. g. Entity-Relation e. g. NIAM Disk Hardware TOOLS '99 App. 2 © 1999 Trygve Reenskaug, Lasse Software

Communication-Centered Output Tape Central Processing Unit Disk Object 3 Memory Hardware TOOLS '99 Object

Communication-Centered Output Tape Central Processing Unit Disk Object 3 Memory Hardware TOOLS '99 Object 1 Information Bus Input Communication Bus paradigm Object 2 Object 4 Composition tools. Languages ? ? © 1999 Trygve Reenskaug, Lasse Software

The communication age is based on objects Object-B IN IN OUT-B OUT-C Methods Variables

The communication age is based on objects Object-B IN IN OUT-B OUT-C Methods Variables Object-C Methods Variables IN Object-A Message (operation) triggers method causes response TOOLS '99 © 1999 Trygve Reenskaug, Lasse Methods Variables

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm ¤ The

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm ¤ The new paradigm ¤ An Applet built with Java Beans ¤ Remote Method Invocation (RMI) • Divide and conquer. Separation of concern with role models, responsibilities, and interfaces • The Lego idea. Constructing software with components • Summary. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

App. for booking meeting rooms A demo of our illustrative example TOOLS '99 ©

App. for booking meeting rooms A demo of our illustrative example TOOLS '99 © 1999 Trygve Reenskaug, Lasse

The Objects and Interfaces of the simple Applet solution WEB Browser Applet e. g.

The Objects and Interfaces of the simple Applet solution WEB Browser Applet e. g. , init(); paint(Graphics); Applet. Context e. g. , get. Image(URL) Room. Booker e. g. , get. Rooms(); reserve(. . . ); Booking (business logic) Booking. Applet (end user tool) JCombo. Box Room Chooser e. g. , add. Item(. . . ); get. Selected. Item(); Action. Listener e. g. , action. Performed(Action. Event) Java Beans TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Room. Booker interface package EJBWorkshop. Booking; import javax. ejb. *; import java. util. *;

Room. Booker interface package EJBWorkshop. Booking; import javax. ejb. *; import java. util. *; public interface Room. Broker { public void reserve date ( short public length); void ( (String room, String username, Date ); , short start. Interval. No, release public void release ); (String room, String username, date public Vector get. Reservations ( short length); , short ); start. Interval. No, public Vector get. Rooms(); public Vector get. Reservations } (Date the. Date, String room); } public Vector get. Rooms(); TOOLS '99 © 1999 Trygve Reenskaug, Lasse Date

The Communication Paradigm with objects WEB Browser Code is invisible! The object + has

The Communication Paradigm with objects WEB Browser Code is invisible! The object + has responsibility + knows its collaborators + is robust Nobody knows everything! Booking (business logic) Booking. Applet (end user tool) Room Chooser Objects References Interfaces are visible! Java Beans TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm ¤ The

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm ¤ The new paradigm ¤ An Applet built with Java Beans ¤ Remote Method Invocation (RMI) • Divide and conquer. Separation of concern with role models, responsibilities, and interfaces • The Lego idea. Constructing software with components • Summary. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Java RMI Remote Method Invocation Booking. Applet (end user tool) Room Chooser Client Information

Java RMI Remote Method Invocation Booking. Applet (end user tool) Room Chooser Client Information Bus WEB Browser • Move from centralized to distributed control • Move from closed to open systems • Catch new exceptions Booking (business logic) Server Java Beans TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Room. Booker interface package EJBWorkshop. Booking; import javax. ejb. *; import java. rmi. *;

Room. Booker interface package EJBWorkshop. Booking; import javax. ejb. *; import java. rmi. *; import java. util. *; public interface Room. Booker extends Remote { public void reserve ( (String room, String username, Date date ) throws Remote. Exception; , short start. Interval. No, short length) public void throws release Remote. Exception; ( date public void release ) throws Remote. Exception; (String room, String username, Date public Vector get. Reservations , short start. Interval. No, short length) ( ) throws Remote. Exception; public Vector get. Rooms( get. Reservations throws Remote. Exception; (Date the. Date, String room ) } throws Remote. Exception; Vector TOOLS '99 public© 1999 Trygveget. Rooms( Reenskaug, Lasse throws Remote. Exception;

Critical Code Fragments Server Side public class Booking. Server extends Unicast. Remote. Object implements

Critical Code Fragments Server Side public class Booking. Server extends Unicast. Remote. Object implements Room. Booker{ public static void main (String args[]) throws Remote. Exception { System. set. Security. Manager(new RMISecurity. Manager()); try { Booking serv = new Booking. Server(); Naming. rebind(”Booking. Server", serv); } catch (Exception e) { System. out. println("Server error: " + e. get. Message()); e. print. Stack. Trace(); } System. out. println("Server started. "); } TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Critical Code Fragments Client Side public class Booking. Applet extends JApplet { private Room.

Critical Code Fragments Client Side public class Booking. Applet extends JApplet { private Room. Booker serv; … private Room. Booker server() { if (serv == null) { try { serv = (Room. Booker) Naming. lookup ( "//” + this. get. Code. Base(). get. Host() + "/Booking. Server” ); } catch (Exception e) { System. out. println(”Get_Server_err: " + e. get. Message()); e. print. Stack. Trace(); return; } } } return serv; TOOLS '99 © 1999 Trygve Reenskaug, Lasse

RMI middleware (1 second can grow to 3 hours!!) Booking Stub (a proxy) The

RMI middleware (1 second can grow to 3 hours!!) Booking Stub (a proxy) The Booking object Information Bus The Booking. Applet object Booking Skeleton (a proxy) Java RMI Services (or CORBA or COM) TCP/IP - Guaranteed end-to-end data stream Physical communication (ISDN/Ethernet/…. ) Client TOOLS '99 © 1999 Trygve Reenskaug, Lasse Server

What we have learned • Shared server containing business logic and information • Middleware

What we have learned • Shared server containing business logic and information • Middleware takes care of communication details • User interface adapted to task Many-to-many relationship between clients and servers TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with role models, responsibilities, and interfaces • Constructing software with components • Conclusion. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with role models, responsibilities, and interfaces – Role-modeling – Synthesis • Constructing software with components • Conclusion. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

OOram Method overview Processes Deliverables Concepts/ Notationand / techniques Technology Reuse Organizing People Concepts/

OOram Method overview Processes Deliverables Concepts/ Notationand / techniques Technology Reuse Organizing People Concepts/ Notation / techniques Reuse Valuechain

Object-oriented system A system that consists of several objects who knows other objects, and

Object-oriented system A system that consists of several objects who knows other objects, and “talks” to each other through message passing. Such a system could be the Internet, organisations, and programs.

The Object Model Abstraction Mental model System a. Real. World. Phenomena Manifest Model •

The Object Model Abstraction Mental model System a. Real. World. Phenomena Manifest Model • • A model is created for a purpose A model is never complete We think in multiple models The world is rarely hierarchical TOOLS '99 © 1999 Trygve Reenskaug, Lasse Objects

“To my taste the main characteristic of intelligent thinking is that one is willing

“To my taste the main characteristic of intelligent thinking is that one is willing and able to study in depth an aspect of one's subject matter in isolation, for the sake of its own consistency, all the time knowing that one is occupying oneself with only one of the aspects. . - Dijkstra, A discipline of programming, 1976 last chapter, In retrospect TOOLS '99 © 1999 Trygve Reenskaug, Lasse

… Such separation, even if not perfectly possible, is yet the only available technique

… Such separation, even if not perfectly possible, is yet the only available technique for effective ordering of one's thoughts that I know of. . - Dijkstra, A discipline of programming, 1976 last chapter, In retrospect TOOLS '99 © 1999 Trygve Reenskaug, Lasse

… I usually refer to it as ‘separation of concerns’, because one tries to

… I usually refer to it as ‘separation of concerns’, because one tries to deal with the difficulties, the obligations, the desires, and the constraints one by one. . - Dijkstra, A discipline of programming, 1976 last chapter, In retrospect TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Roles - Objects • Role is what an object does in a context of

Roles - Objects • Role is what an object does in a context of other objects • Instead of trying to describe everything an object can do, we start with the roles an object can play • At a later stage we merge these roles together into full-fledged objects TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Divide and conquer Synthesis Separation of concern Goal Implementation model Use Cases Collaborations (Role

Divide and conquer Synthesis Separation of concern Goal Implementation model Use Cases Collaborations (Role models) TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Role models a. Real. World. Goal an. Object. Model Role. Models an. Implemented. System

Role models a. Real. World. Goal an. Object. Model Role. Models an. Implemented. System • Models a structure of collaborating objects with static and dynamic properties. • Covers a particular area of concern for the structure of objects. • Each role has a responsibility (attributes and actions) in the structure of objects. TOOLS '99 © 1999 Trygve Reenskaug, Lasse

OOram Analysis steps • Determine the area of concern TOOLS '99 © 1999 Trygve

OOram Analysis steps • Determine the area of concern TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Determine the area of concern Write a free form (prose) description of the issue

Determine the area of concern Write a free form (prose) description of the issue under consideration The area of concern is the communication between the Person in need of a meeting room and the Room. Booker in our organization. We focus on the actual bookings, and do not model details about other aspects, such as meeting agenda, transactions, updating etc. TOOLS '99 © 1999 Trygve Reenskaug, Lasse

OOram Analysis steps • Determine the area of concern • Understand the problem and

OOram Analysis steps • Determine the area of concern • Understand the problem and identify the nature of the objects TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Understand the problem and identify the nature of the objects Identify the user community

Understand the problem and identify the nature of the objects Identify the user community and understand their requirements. Identify the nature of the active participants. Ruth (President) Adam (Chief Accountant) Eve (Software manager) Beth (Technical author) Joyce (Secretary) Ruth (Programmer) TOOLS '99 © 1999 Trygve Reenskaug, Lasse Pete (Marketing manager) Joyce (Sales) Ann (Secretary)

OOram Analysis steps • Determine the area of concern • Understand the problem and

OOram Analysis steps • Determine the area of concern • Understand the problem and identify the nature of the objects • Determine environment roles and stimulus / response TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Determine environment roles and stimulus/response Describe the messages that are sent from the environment.

Determine environment roles and stimulus/response Describe the messages that are sent from the environment. Also describe the response; The overall effect of the system. Stimuli System Response Stimulus message Response message Comments Project Review Meeting room reserved The Project Manager is having a meeting and the Booker reserves the room TOOLS '99 © 1999 Trygve Reenskaug, Lasse

OOram Analysis steps • Determine the area of concern • Understand the problem and

OOram Analysis steps • Determine the area of concern • Understand the problem and identify the nature of the objects • Determine environment roles and stimulus / response • Identify and understand the roles TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Identify and understand the roles Separate and idealize the tasks and responsibility of the

Identify and understand the roles Separate and idealize the tasks and responsibility of the actors. Ruth (President) Adam (Chief Accountant) 1 Eve (Software manager) Beth (Technical author) Ruth (Programmer) 2 Joyce (Secretary) Pete (Marketing manager) Joyce (Sales) 3 Role Explanation Project Reviewer Project Manager Booker The person who is supervising a project The person who is setting up a meeting The person who books a meeting room TOOLS '99 © 1999 Trygve Reenskaug, Lasse Ann (Secretary)

OOram Analysis steps • Determine the area of concern • Understand the problem and

OOram Analysis steps • Determine the area of concern • Understand the problem and identify the nature of the objects • Determine environment roles and stimulus / response • Identify and understand the roles • Determine the message sequences TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Determine the message sequences For the stimuli and responses create a model showing the

Determine the message sequences For the stimuli and responses create a model showing the message sequences and/or tasks performed , and the corresponding work process. Project reviewer Project Manager Booker Tool set. Up. Meeting Room Date checka. Availability TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Determine the message sequences Project reviewer Project Manager Project review Booker For the stimuli

Determine the message sequences Project reviewer Project Manager Project review Booker For the stimuli and responses create a model showing the message sequences and/or tasks performed , and the corresponding work process. Tool Project meeting set. Up. Meeting <Determine OK> Room Request checka. Availability Room Date reserve. Room TOOLS '99 © 1999 Trygve Reenskaug, Lasse

OOram Analysis steps • Determine the area of concern • Understand the problem and

OOram Analysis steps • Determine the area of concern • Understand the problem and identify the nature of the objects • Determine environment roles and stimulus / response • Identify and understand the roles • Determine the message sequences • Determine the collaboration structure TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Determine the collaboration structure Show the roles in a structure of collaborating objects. Project

Determine the collaboration structure Show the roles in a structure of collaborating objects. Project reviewer Project Manager Booker Tool TOOLS '99 © 1999 Trygve Reenskaug, Lasse

OOram Analysis steps • Determine the area of concern • Understand the problem and

OOram Analysis steps • Determine the area of concern • Understand the problem and identify the nature of the objects • Determine environment roles and stimulus / response • Identify and understand the roles • Determine the message sequences • Determine the collaboration structure • Determine the interfaces TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Determine the interfaces Determine the messages that each role may send to each of

Determine the interfaces Determine the messages that each role may send to each of its collaborators. Project reviewer > Project Manager set. Up. Meeting Project reviewer Project Manager Booker > Tool checka. Availability Project Manager > Booker checka. Availability Booker Tool TOOLS '99 © 1999 Trygve Reenskaug, Lasse

DEMO TOOLS '99 © 1999 Trygve Reenskaug, Lasse

DEMO TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with role models, responsibilities, and interfaces – Role-modeling – Synthesis • Constructing software with components • Conclusion. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Synthesis • Describe other phenomena the objects is to be found, and then merge

Synthesis • Describe other phenomena the objects is to be found, and then merge them together into complete descriptions • One or more of the earlier discovered objects will also be found in other relevant phenomena TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Objects play several roles Project. Manager Project. Participant Lasse TOOLS '99 © 1999 Trygve

Objects play several roles Project. Manager Project. Participant Lasse TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Synthesis of roles message m 1 a 1 message m 3 method M 1

Synthesis of roles message m 1 a 1 message m 3 method M 1 message m 2 method M 3 message m 4 a 1 a 2 message m 1 message m 3 method M 1 message m 2 message m 4 TOOLS '99 a 2 © 1999 Trygve Reenskaug, Lasse

Synthesis of User. Booking and Distributed. Booking Enterprise. Booking Project reviewer Project Manager Booker

Synthesis of User. Booking and Distributed. Booking Enterprise. Booking Project reviewer Project Manager Booker Tool Computer. Booking. Tool Room. Booker Composite. Booking Project reviewer TOOLS '99 Project Manager Booker © 1999 Trygve Reenskaug, Lasse Booking. Tool Room. Booker

DEMO TOOLS '99 © 1999 Trygve Reenskaug, Lasse

DEMO TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm • Divide

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm • Divide and conquer. Separation of concern with role models, responsibilities, and interfaces • The Lego idea. Constructing software with components • Summary: How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with role models, responsibilities, and interfaces • The Lego idea. Constructing software with components ¤ The component - a powerful application of objects ¤ Java Beans ¤ Enterprise Java Beans (EJBs) ¤ Organizing development with components • Summary. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

What is a Component? • A Component is a (reusable) object • A Component

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 TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Why use components Use components to • Avoid coding to save time • Avoid

Why use components Use components to • Avoid coding to save time • Avoid coding to increase quality • Use tools to increase your productivity • Get remote communication, transactions, security, etc. for free TOOLS '99 © 1999 Trygve Reenskaug, Lasse

The competing technologies CORBA™ Object Management Group (OMG) Public standards Java™ SUN Microsystems Build

The competing technologies CORBA™ Object Management Group (OMG) Public standards Java™ SUN Microsystems Build once, run anywhere COM™ Microsoft Dominating on desktops TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Java Bean • User Interface • Properties • Events • Composition Information Bus Component

Java Bean • User Interface • Properties • Events • Composition Information Bus Component standardization examples Enterprise Java Bean • Naming • Persistence • Transactions • Security • Load sharing Client TOOLS '99 © 1999 Trygve Reenskaug, Lasse Server

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with role models, responsibilities, and interfaces • The Lego idea. Constructing software with components ¤ The component - a powerful application of objects ¤ Java Beans ¤ Enterprise Java Beans (EJBs) ¤ Organizing development with components • Summary. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Java Beans characteristics Introspection a Java Bean Events Messages Properties TOOLS '99 © 1999

Java Beans characteristics Introspection a Java Bean Events Messages Properties TOOLS '99 © 1999 Trygve Reenskaug, Lasse

GUI by composition Java Beans and SUN Bean. Box ® TOOLS '99 © 1999

GUI by composition Java Beans and SUN Bean. Box ® TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Compose GUI with Java Beans and Symantech Visual Café ® TOOLS '99 © 1999

Compose GUI with Java Beans and Symantech Visual Café ® TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Compose GUI with Java Beans and IBM Visual. Age® TOOLS '99 © 1999 Trygve

Compose GUI with Java Beans and IBM Visual. Age® TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Bean object plays several roles Composer Use Case Run-time display Use Case Bean. Box

Bean object plays several roles Composer Use Case Run-time display Use Case Bean. Box Booking Applet Bean Object TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Two stages in the Bean Life Cycle Property Editor Bean Canvas Assembler Tool Assembler

Two stages in the Bean Life Cycle Property Editor Bean Canvas Assembler Tool Assembler Collaboration (Sketch) Release Button TOOLS '99 Master Bean Runtime Collaboration Calendar Reserve Button Bean Palette Booking Applet Room Chooser © 1999 Trygve Reenskaug, Lasse Booking

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with role models, responsibilities, and interfaces • The Lego idea. Constructing software with components ¤ The component - a powerful application of objects ¤ Java Beans ¤ Enterprise Java Beans (EJBs) ¤ Organizing development with components • Summary. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Enterprise Java Bean (EJB) Overview Client Container: Multithreading Transactions Security Persistence TOOLS '99 EJB:

Enterprise Java Bean (EJB) Overview Client Container: Multithreading Transactions Security Persistence TOOLS '99 EJB: Simple Single user Container © 1999 Trygve Reenskaug, Lasse EJB Server

The Bean and Enterprise Java Bean objects Name Server 1: l t) en m

The Bean and Enterprise Java Bean objects Name Server 1: l t) en m le (e m 2 te( ea Booking Object 4: get. Rooms(); Booking Bean 5: get. Rooms(); 6: ad d. I te te Cr Room Chooser ; ejb Applet (End user tool) ea r c : x) (xx Java Beans TOOLS '99 Factory object 3: oo ku p( "r oo Booking Home x); xx Information Bus m br ok er ") ; WEB Browser © 1999 Trygve Reenskaug, Lasse

The Bean and Enterprise Java Bean objects WEB Browser Room Chooser Java Beans TOOLS

The Bean and Enterprise Java Bean objects WEB Browser Room Chooser Java Beans TOOLS '99 Information Bus Applet (End user tool) Name Server Booking Home Factory object Could be Entity Bean Booking Object Booking Bean Session Bean Powerful tools Clear abstractions © 1999 Trygve Reenskaug, Lasse Data. Store

Room. Booker (business) interface package EJBWorkshop. Booking; import javax. ejb. *; import java. rmi.

Room. Booker (business) interface package EJBWorkshop. Booking; import javax. ejb. *; import java. rmi. *; import java. util. *; public interface Booking date , short start. Interval. No, throws Remote. Exception; public void release (String room, String username, Date short length) } { public void reserve (String room, String username, Date short length) date extends EJBObject , short start. Interval. No, throws Remote. Exception; public Vector get. Reservations (Date the. Date, String room ) throws Remote. Exception; Vector get. Rooms( TOOLS '99 public© 1999 Trygve Reenskaug, Lasse

Room. Booker. Home (factory) interface package EJBWorkshop. Booking; import javax. ejb. *; import java.

Room. Booker. Home (factory) interface package EJBWorkshop. Booking; import javax. ejb. *; import java. rmi. *; Booking. Home extends EJBHome { Booking create() public interface throws Create. Exception, Remote. Exception; } } TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Room. Booker. Bean class public class Room. Booker. Bean implements Session. Bean { protected

Room. Booker. Bean class public class Room. Booker. Bean implements Session. Bean { protected Session. Context ctx; // Container managed beans public void set. Session. Context(Session. Context ctx) throws Remote. Exception { this. ctx = ctx; } public void ejb. Create() throws Create. Exception, Remote. Exception { } public void ejb. Remove() throws Remote. Exception { } // Room. Booker interface operations public void reserve {… } etc. } TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Exercise Assuming that it is straight forward to program, install and assemble business components:

Exercise Assuming that it is straight forward to program, install and assemble business components: Identify useful and interesting business components and discuss their mutual dependencies TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with

Tutorial plan • Introduction • The powerful communication paradigm • Separation of concern with role models, responsibilities, and interfaces • The Lego idea. Constructing software with components ¤ The component - a powerful application of objects ¤ Java Beans ¤ Enterprise Java Beans (EJBs) ¤ Organizing development with components • Conclusion. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

OOram Method overview Organizing Processes and Deliverables Organizing People Technology Value chain Concepts/ Notation

OOram Method overview Organizing Processes and Deliverables Organizing People Technology Value chain Concepts/ Notation / techniques Organizing People Reuse Value chain TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Component Value Chain Distinguishing Responsibility Application Assembler Empower user Component Deployer Limit choice &

Component Value Chain Distinguishing Responsibility Application Assembler Empower user Component Deployer Limit choice & make available Component Provider Create capability Component Container Provide tools and service environment TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Component Value Chain Distinguishing Competence Application Assembler User expert Component Deployer Production Engineer Component

Component Value Chain Distinguishing Competence Application Assembler User expert Component Deployer Production Engineer Component Provider Domain expert Component Container Provider Systems programmer TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Component Value Chain Distinguishing Tools Application Assembler Visual programming & Java Component Deployer Component

Component Value Chain Distinguishing Tools Application Assembler Visual programming & Java Component Deployer Component installation tool Component Provider UML Collaboration & Java & DB Design Component Container Provider Full UML & Java & C++ TOOLS '99 © 1999 Trygve Reenskaug, Lasse

OOram Method overview Processes and Deliverables Technology Concepts/ Notation / techniques Organizing People Reuse

OOram Method overview Processes and Deliverables Technology Concepts/ Notation / techniques Organizing People Reuse Value chain TOOLS '99 © 1999 Trygve Reenskaug, Lasse

How to provide new functionality Consider Use Cases Consider business Components Architecture (OOram analysis)

How to provide new functionality Consider Use Cases Consider business Components Architecture (OOram analysis) Cost/Benefit analysis Study Develop GUI Components Construct TOOLS '99 Repeat Studies. Choose best solution Develop Business Components Assemble © 1999 Trygve Reenskaug, Lasse

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm • Divide

Tutorial plan • Introduction: The connected enterprise • The powerful communication paradigm • Divide and conquer. Separation of concern with role models, responsibilities, and interfaces • The Lego idea. Constructing software with components • Summary. How do we get from here to there? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Distributed Systems What you get • Unlimited scaling • Distributed ownership • Information partitioning

Distributed Systems What you get • Unlimited scaling • Distributed ownership • Information partitioning • Specific task support TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Distributed Systems How you do it • Think in terms of objects, their responsibilities

Distributed Systems How you do it • Think in terms of objects, their responsibilities and collaboration. • Think in terms of open systems, no main program. TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Component-based development What you get • Build by composing library objects, avoid coding. •

Component-based development What you get • Build by composing library objects, avoid coding. • Leverage infrastructure mechanisms (transactions, security, persistence, …) TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Component-based development How you do it • Think in terms of objects, their responsibilities

Component-based development How you do it • Think in terms of objects, their responsibilities and collaboration. • Penetrate vendor fog - find essentials (Objects and interfaces) • Adapt to new layers in value chain TOOLS '99 © 1999 Trygve Reenskaug, Lasse

The main problems We spend too much time and effort on low-level mechanics. Current

The main problems We spend too much time and effort on low-level mechanics. Current offerings are NOT: • Easy and intuitive to use • Smooth development platforms • Reliable • Secure • Extensible TOOLS '99 © 1999 Trygve Reenskaug, Lasse

How do we get from here to there? • Focus on objects Classes are

How do we get from here to there? • Focus on objects Classes are implementation details • Learn technology Java + CORBA + Web +. . . • Do small, but significant project Illustrating visions • Plan large scale introduction What are the information services? What are the Areas of Concern? TOOLS '99 © 1999 Trygve Reenskaug, Lasse

Distributed systems Go home and do it! http: //www. ifi. uio. no/~trygve TOOLS '99

Distributed systems Go home and do it! http: //www. ifi. uio. no/~trygve TOOLS '99 © 1999 Trygve Reenskaug, Lasse