UML Meets CORBA Page 1 Design of a Fault-Tolerant Distributed System Version 1.0

UML Meets CORBA Page 1 Design of a Fault-Tolerant Distributed System Version 1.0

UML meets CORBA Page 1 Design of a fault-tolerant distributed system Version 1.0 UML Meets CORBA Design of a fault-tolerant distributed system By: Craig Borysowich Chief Technology Architect Imagination Edge Inc. www.imedge.net Page 1 of 43 UML meets CORBA Page 2 Design of a fault-tolerant distributed system Version 1.0 Executive Summary This paper presents the development of a distributed fault-tolerant system, in a CORBA environment, using the Unified Modeling Language (UML). The paper is useful as (1) an example of actual modeling using the UML and (2) a non-trivial example of modeling distributed fault-tolerant object distributed systems for a CORBA environment. The example application is part of a commodity trading environment, supporting individual traders in a commodity trading environment, and focuses on two functions: the monitoring and gathering of market information, and the completion of a commodity trade. The application has significant requirements regarding distribution and fault-tolerance. The modeling building and presentation is organized into three layers: a domain analysis model, a design architecture, and a packaging and deployment model. The emphasis of the modeling exercise is on the architectural design layer, and the emphasis of the design is on the representation of services in a CORBA system. We use seven types of UML diagrams in our example: use case diagrams, class diagrams, sequence diagrams, state transition diagrams, collaboration diagrams, component diagrams, and deployment diagrams. Page 2 of 43 UML meets CORBA Page 3 Design of a fault-tolerant distributed system Version 1.0 Table of Contents 1. Introduction .................................................................................................................................................5 1.1. Purpose.................................................................................................................................................5 1.2. Audience...............................................................................................................................................5 1.3. Scope ....................................................................................................................................................5 1.4. Document Structure..............................................................................................................................5 2. Approach .....................................................................................................................................................6 2.1. Problem overview.................................................................................................................................6 2.2. Implementation restrictions ..................................................................................................................6 2.3. The flow of the example.......................................................................................................................6 2.4. UML diagrams .....................................................................................................................................6 2.5. Stereotypes and extensions to UML....................................................................................................9 2.6. A note on UML usage ..........................................................................................................................9 2.7. A note on writing style .........................................................................................................................9 3. Building the Application Domain Model ....................................................................................................9 3.1. Problem description............................................................................................................................10 3.2. Identifying domain entities.................................................................................................................10 3.2.1. Alternative representations for use cases.....................................................................................11 3.3. Refining the domain classes ...............................................................................................................14 3.3.1. Defining class states ....................................................................................................................14 3.3.2. Structure of the domain entities...................................................................................................15 3.4. Additional requirements .....................................................................................................................16 4. Building the Architectural Model..............................................................................................................17 4.1. Representing the CORBA entities......................................................................................................17 4.1.1. IDL-generated classes .................................................................................................................17 4.1.2. Relating CORBA types and classes: BOA and GTIE .................................................................18 4.2. Incorporating fault-tolerance with Orbix+Isis....................................................................................19 4.3. Services as design abstraction ............................................................................................................19 4.4. Identifying the system services ..........................................................................................................20 4.5. Representing a service: Market Information ......................................................................................21 4.5.1. Modeling the service participants................................................................................................21 4.5.2. Modeling the service connector...................................................................................................23 4.6. Design patterns (EventStream)...........................................................................................................24 4.6.1. An alternative implementation of EventStream...........................................................................25 5. Defining layers and distribution units .......................................................................................................26 5.1. Software layers...................................................................................................................................26 5.2. Compilation dependencies and program deployment.........................................................................28 5.2.1. Components.................................................................................................................................28 5.2.2. Deployment .................................................................................................................................29 5.2.3. Replicated hardware ....................................................................................................................30 6. Issues .........................................................................................................................................................31 6.1. Usefulness of tools and techniques ....................................................................................................31 6.2. Appropriateness of UML to model object models .............................................................................32 6.3. Appropriateness of OO models to represent domains........................................................................32 7. Future work ...............................................................................................................................................32 8. Conclusions ...............................................................................................................................................33 9. Acknowledgments.....................................................................................................................................33 10. References ...............................................................................................................................................33 11. Appendix A: Enumeration of features in each figure..............................................................................35 11.1. Figure 2: Use case diagram for the problem domain........................................................................35 11.2. Figure 4: Sequence diagram for Trade Commodities.......................................................................35 11.3. Figure 5: Collaboration diagram for Trade Commodities ................................................................36 Page 3 of 43 UML meets CORBA Page 4 Design of a fault-tolerant distributed system Version 1.0 11.4. Figure 7: Class diagram for (a portion of) the domain.....................................................................36 11.5. Figure 6: State transition diagram for Trade class............................................................................38 11.6. Figure 9: Collaboration diagram for services to be provided...........................................................39 11.7. Figure 10: Market

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    43 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us