Creating CORBA Applications Using UML and SDL

Creating CORBA Applications Using UML and SDL

Creating CORBA Applications Using UML and SDL © Telelogic 2000 Creating CORBA Applications Using UML and SDL Morgan Björkander [email protected] Creating CORBA Applications Using UML and SDL © Telelogic 2000 Two Observations • Many profiles are being defined to tailor the UML towards specific domains • There is an increased focus on specifying behavior in UML – Making it executable – Allowing early verification Creating CORBA Applications Using UML and SDL © Telelogic 2000 CORBA IDL—an Abstract Language • IDL is used as an abstract language in the sense that it is target language independent – What if it were possible to specify behavior in a manner that is also target language independent? • UML contains a profile mechanism that can be used to tailor it towards specific domains, but also to create language mappings Creating CORBA Applications Using UML and SDL © Telelogic 2000 Creating a CORBA Application IDL Developer Java ORB C++ ORB IDL Source Client Server Developer Developer IDL to Java IDL to C++ Compiler Compiler app.java stubs.java types.hh stubs.cc impl.cc serv.hh skels.cc Java ORB Client Server C++ ORB Run-time Lib Executable Executable Run-time Lib Creating CORBA Applications Using UML and SDL © Telelogic 2000 Alternative Approach ClientClient ServerServer DeveloperDeveloper DeveloperDeveloper ModelingModeling Language Language Application Application IDL to Java IDL to C++ Java ORB Compiler Compiler C++ ORB app.java stubs.java types.hh stubs.cc impl.cc serv.hh skels.cc Java ORB Client Server C++ ORB Run-time Lib Executable Executable Run-time Lib Creating CORBA Applications Using UML and SDL © Telelogic 2000 Raising the Abstraction Level System Target language iS independence S C Platform C S independence Stubs Skeletons ORB TCP/IP C S Creating CORBA Applications Using UML and SDL © Telelogic 2000 Process Considerations Create IDL CreateCreate Model Model VerifyVerify Behavior Behavior Generate Code Implement Behavior SpecifySpecify Deployment Deployment Debug GenerateGenerate Code Code Creating CORBA Applications Using UML and SDL © Telelogic 2000 Importing and Exporting IDL CORBACORBA • Take advantage of ApplicationApplication already existing clients and servers in the import export network IDL IDL – Import IDL exposed by Source Source external servers – Export IDL to be included expose include by external clients Servers Clients Terminal «access» Application Creating CORBA Applications Using UML and SDL © Telelogic 2000 UML Profiles • Stereotypes – Model elements that can be used as if they are a part of UML – Specialize existing model elements • Tagged Values – Define additional stereotype properties • Constraints – Restrict the use of stereotypes Creating CORBA Applications Using UML and SDL © Telelogic 2000 The UML Profile for CORBA • Specifies how to use • Does not (and was not interface descriptions intended to) cover the (IDL) in UML logical next step: behavior // IDL sample code module CCS { interface Thermometer { readonly attribute short temperature; }; interface Thermostat : Thermometer { short get_nominal(); «CORBAModule» short set_nominal(in short new_temp); CCS }; }; «CORBAInterface» «CORBAInterface» Thermometer Thermostat «readonly» temperature : short get_nominal() : short set_nominal(in short: new_temp) : short Creating CORBA Applications Using UML and SDL © Telelogic 2000 Action Semantics for the UML • Turn the UML into an executable language – Provides the semantics of actions • Lacks a notation • Does not include a data model • Necessary to map a language on top of the action semantics (such as C++, Java, or SDL) – Target language independence? – At some point in the future, UML may provide sufficient detail by itself Creating CORBA Applications Using UML and SDL © Telelogic 2000 SDL-2000 The Specification and Description Language • SDL is an executable modeling language that is standardized by the ITU – Similar to UML in many ways, but specifically geared towards modeling of event-driven, distributed applications • It is often used as a full-fledged programming language – There are many indications that UML is heading in the same direction Creating CORBA Applications Using UML and SDL © Telelogic 2000 Using IDL • Incorporate IDL data types in the action language – Basic data types – User-defined types – Extend types with operators defining “+”, “-”, type casting rules, etc. • Attributes and parameters can be declared using these IDL data types – IDL interfaces may be shown textually or graphically (using the UML profile for CORBA) Creating CORBA Applications Using UML and SDL © Telelogic 2000 Designing the Application • Agents define logical • Bi-directional interfaces components specify contracts – define the system’s between agents functionality – required interfaces – implemented interfaces «agent» • an agent may servant acts as client Station implement multiple servant acts as server interfaces «agent» «agent» Relay Receiver Receiver Radio Creating CORBA Applications Using UML and SDL © Telelogic 2000 An Example: Static Structure «actor» Customer • Describe the classes iAccount iCashier used in the system – agents are stereotypes of iCashier «agent» Bank classes iAccount • Each agent may have structure and behavior «agent» Bank «agent» Account iAccManager iCashier «agent» Cashier iAccManager iAccount iAccount iCashier Creating CORBA Applications Using UML and SDL © Telelogic 2000 An Example: IDL Interfaces // Customer’s view of accounts // Manager’s view of accounts interface iAccount { interface iAccManager : iAccount { typedef double MoneyT; iAccount addInterest(in float rate); readonly attribute MoneyT balance; }; void insert(in MoneyT amount); void withdraw(in MoneyT amount) raises (InsufficientBalance); }; // Customer’s view of cashiers interface iCashier { iAccount createAccount(in string code, out number); void terminateAccount(in iAccount account) raises (NoAccount, AccountLocked); iAccount loginAccount(in string code, in long number) raises (WrongCode, WrongNumber); }; Creating CORBA Applications Using UML and SDL © Telelogic 2000 An Example: Dynamic Structure «agent» Bank «agent» «agent» • Describe how agents Cashier Account interact with each other – connections – dynamic creation • Provide initialization 1..1 :Cashier information iCashier – number of instances to be created at start-up iAccManager • multiplicity 0..* :Account – compare with main iAccount function Creating CORBA Applications Using UML and SDL © Telelogic 2000 An Example: Behavior DCL /* attributes of agent */ private number long := 0; • Action semantics iAccount createAccount (in string code, out long number) defines the behavior of DCL /* local procedure variables */ acc iAccount; – operation bodies acc := create Account – transitions (code) – entry/exit actions Acc != • Each such NULL computational unit is [true] [false] represented by a number := procedure number +1 InvalidReference – a sequence of actions storeAccount (acc, number) account Creating CORBA Applications Using UML and SDL © Telelogic 2000 An Example: Using CORBA Services DCL inc CosNaming::NamingContext, /* initial naming context */ name CosNaming::Name, /* Name to resolve */ db iDataBase; name[1].id := ‘corporate’ name[2].id := ‘develop’ name[3].id := ‘database’ db := inc.resolve (name) NotFound CannotProceed InvalidName db != NULL Creating CORBA Applications Using UML and SDL © Telelogic 2000 Deployment • Determine if and how to partition the system • Determine code generation policies for each partition –orb – target language • Manage the setting of POA policies • Tagged values may be used to control desired behavior, such as: – persistent objects – transient objects Creating CORBA Applications Using UML and SDL © Telelogic 2000 Application Code Generation • The final step is to generate the application code for the different parts of the system – according to deployment information • Apply the IDL mapping rules for the target language • Generate implementation specific details according to model Creating CORBA Applications Using UML and SDL © Telelogic 2000 References • Henning, M., Vinoski, S.: Advanced CORBA® Programming with C++, Addison-Wesley, 1999 • OMG: The Unified Modeling Language Specification, version 1.4 draft, 2000 • OMG: The UML Profile for CORBA, 2000 • OMG: Action Semantics for the UML, RFP, 1998 • OMG: Action Semantics for the UML, Joint Initial Submission, 2000 • ITU-T: ITU Recommendation Z.100: Specification and Description Language (SDL), Geneva 2000 • ITU-T: ITU Recommendation Z.109: SDL Combined with UML, Geneva 2000.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    22 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