TOOLS Europe 99 Tutorial Unleashing the Power of
- Slides: 94
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. 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 TOOLS '99 © 1999 Trygve Reenskaug, Lasse House Drawings Aerial Photos
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 © 1999 Trygve Reenskaug, Lasse Effective Partitioning of Information Services
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 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 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 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 Software © 1999 Trygve Reenskaug, Lasse
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 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 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 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 © 1999 Trygve Reenskaug, Lasse
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. *; 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 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 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 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. *; 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 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. 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 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 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 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 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/ Notation / techniques Reuse Valuechain
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 • • 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 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 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 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 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 models) TOOLS '99 © 1999 Trygve Reenskaug, Lasse
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 Reenskaug, Lasse
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 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 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 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. 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 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 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 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 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 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 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 reviewer Project Manager Booker Tool TOOLS '99 © 1999 Trygve Reenskaug, Lasse
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 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
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 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 Reenskaug, Lasse
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 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
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 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 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 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 once, run anywhere COM™ Microsoft Dominating on desktops TOOLS '99 © 1999 Trygve Reenskaug, Lasse
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 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 Trygve Reenskaug, Lasse
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 Trygve Reenskaug, Lasse
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 Booking Applet Bean Object TOOLS '99 © 1999 Trygve Reenskaug, Lasse
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 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: Simple Single user Container © 1999 Trygve Reenskaug, Lasse EJB Server
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 '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. *; 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. 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 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: 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 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 / 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 & 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 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 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 Value chain TOOLS '99 © 1999 Trygve Reenskaug, Lasse
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 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 • Specific task support TOOLS '99 © 1999 Trygve Reenskaug, Lasse
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. • 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 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 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 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 © 1999 Trygve Reenskaug, Lasse
- Power triangle diagram
- Pyramid feudalism
- General mapping tool
- Cutting tools in sewing with pictures and meaning
- Hình ảnh bộ gõ cơ thể búng tay
- Lp html
- Bổ thể
- Tỉ lệ cơ thể trẻ em
- Chó sói
- Chụp phim tư thế worms-breton
- Alleluia hat len nguoi oi
- Môn thể thao bắt đầu bằng từ chạy
- Thế nào là hệ số cao nhất
- Các châu lục và đại dương trên thế giới
- Công thức tiính động năng
- Trời xanh đây là của chúng ta thể thơ
- Mật thư tọa độ 5x5
- Làm thế nào để 102-1=99
- Phản ứng thế ankan
- Các châu lục và đại dương trên thế giới
- Thơ thất ngôn tứ tuyệt đường luật
- Quá trình desamine hóa có thể tạo ra
- Một số thể thơ truyền thống
- Cái miệng bé xinh thế chỉ nói điều hay thôi
- Vẽ hình chiếu vuông góc của vật thể sau
- Nguyên nhân của sự mỏi cơ sinh 8
- đặc điểm cơ thể của người tối cổ
- V cc cc
- Vẽ hình chiếu đứng bằng cạnh của vật thể
- Phối cảnh
- Thẻ vin
- đại từ thay thế
- điện thế nghỉ
- Tư thế ngồi viết
- Diễn thế sinh thái là
- Các loại đột biến cấu trúc nhiễm sắc thể
- Số nguyên tố là gì
- Tư thế ngồi viết
- Lời thề hippocrates
- Thiếu nhi thế giới liên hoan
- ưu thế lai là gì
- Sự nuôi và dạy con của hươu
- Khi nào hổ con có thể sống độc lập
- Sơ đồ cơ thể người
- Từ ngữ thể hiện lòng nhân hậu
- Thế nào là mạng điện lắp đặt kiểu nổi
- Fixed power driven woodworking tools
- Module 00104 introduction to power tools answer key
- The power process ideas are tools states
- Hand tools quiz
- Pneumatic tool safety osha
- Osha hand and power tool safety
- Identify hazards
- Introduction to power tools
- Chapter 10 power tools and shop equipment
- Power tools must be fitted with guards and
- Power tools must be fitted with guards and
- Use developer tools to create custom visuals power bi
- Solar power satellites and microwave power transmission
- Actual power and potential power
- Flex28024a
- The dispersive power of a grating is defined as the
- Power of a power property
- General power rule vs power rule
- Power angle curve in power system stability
- Power bi training powerpoint
- Power absorbed or delivered
- Sides of wwi
- Map of europe 1914
- What does the zimmerman note say
- Europe western uplands
- Who was the leader of the franks
- Toyota europe head office
- War consumes europe
- Crnomorske drzave jugoistocne europe
- Vattenfall europe information services gmbh berlin
- Map of europe in middle ages
- Pampy a prérie
- Largest islamic empire
- Skill 14 parallel structure with coordinate conjunctions
- Spread of christianity in europe
- Obesity prevalence europe
- How was the renaissance a rebirth
- How did the renaissance develop in northern europe?
- Chapter 6 section 2
- Chapter 22 section 2 the enlightenment in europe
- How did the crusades change europe
- The crisis of the imperial order
- Columbian exchange facts
- Lesson 3: europe in the muslim world
- Is switzerland landlocked?
- Russians sting lyrics
- Revolutions in europe and latin america section 2 quiz
- Relex
- Prirodna bogatstva sjeverne europe