Enterprise Application Development Using UML, Java Technology and XML



Similar documents
Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

Course Name: Course in JSP Course Code: P5

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

A standards-based approach to application integration

Rational Software White Paper

Stock Trader System. Architecture Description

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

Java EE 7: Back-End Server Application Development

If you wanted multiple screens, there was no way for data to be accumulated or stored

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Customer Bank Account Management System Technical Specification Document

What Is the Java TM 2 Platform, Enterprise Edition?

SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS

Modeling Web Applications Using Java And XML Related Technologies

Building Web Applications, Servlets, JSP and JDBC

Enterprise Application Integration

NetBeans IDE Field Guide

Enhanced Connector Applications SupportPac VP01 for IBM WebSphere Business Events 3.0.0

UML-based Test Generation and Execution

IBM Rational Rapid Developer Components & Web Services

An introduction to creating JSF applications in Rational Application Developer Version 8.0

Developing XML Solutions with JavaServer Pages Technology

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

WebSphere ESB Best Practices

II. PREVIOUS RELATED WORK

VALLIAMMAI ENGINEERING COLLEGE SRM NAGAR, KATTANKULATHUR DEPARTMENT OF COMPUTER APPLICATIONS SUBJECT : MC7502 SERVICE ORIENTED ARCHITECTURE

IT6503 WEB PROGRAMMING. Unit-I

Using XML to Test Web Software Services. Modern Web Sites

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

Productivity Comparison for Building Applications and Web Services

JAVA ENTERPRISE IN A NUTSHELL. Jim Farley and William Crawford. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo.

era J2EE Platform and Tool Recommendations

New Web Application Development Tool and Its MDA-Based Support Methodology

zen Platform technical white paper

Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms

COM 440 Distributed Systems Project List Summary

Glassfish, JAVA EE, Servlets, JSP, EJB

Integrating VoltDB with Hadoop

Increasing IT flexibility with IBM WebSphere ESB software.

Data Modeling Basics

Java and J2EE (SCJA Exam CX ) 50 Cragwood Rd, Suite 350 South Plainfield, NJ 07080

Service Oriented Architecture

How To Protect Your Computer From Being Hacked On A J2Ee Application (J2Ee) On A Pc Or Macbook Or Macintosh (Jvee) On An Ipo (J 2Ee) (Jpe) On Pc Or

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems by Sparx Systems

Tutorial: Building a Web Application with Struts

Building and Using Web Services With JDeveloper 11g

WebLogic Server: Installation and Configuration

DIABLO VALLEY COLLEGE CATALOG

CS Developing Web Applications with Java Technologies

WebLogic Server 7.0 Single Sign-On: An Overview

Oracle Service Bus Examples and Tutorials

Java 2 Platform, Enterprise Edition (J2EE) Bruno Souza Java Technologist, Sun Microsystems, Inc.

The Service Revolution software engineering without programming languages

Announcements. Comments on project proposals will go out by in next couple of days...

EAI-Low Level Design Document

Partitioning and Clustering Demonstration

How To Develop A Web Service In A Microsoft J2Ee (Java) 2.5 (Oracle) 2-Year Old (Orcient) 2Dj (Oracles) 2E (Orca) 2Gj (J

JAVA Technologies QUARTER 1 DESKTOP APPLICATIONS - ESSENTIALS QUARTER 2 NETWORKING AND OPERATING SYSTEMS ESSENTIALS. Module 1 - Office Applications

1. Introduction 1.1 Methodology

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

SOA REFERENCE ARCHITECTURE: WEB TIER

Guiding Principles for Modeling and Designing Reusable Services

How to make a good Software Requirement Specification(SRS)

Introduction to Sun ONE Application Server 7

Business Process Execution Language for Web Services

ActiveVOS Server Architecture. March 2009

Learn Oracle WebLogic Server 12c Administration For Middleware Administrators

Oracle WebLogic Server 11g Administration

Java 2 Platform, Enterprise Edition (J2EE): Enabling Technologies for EAI

A DIAGRAM APPROACH TO AUTOMATIC GENERATION OF JSP/SERVLET WEB APPLICATIONS

Software Architecture Document

Information systems modelling UML and service description languages

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Distributed Objects and Components

Java Application Developer Certificate Program Competencies

Database Applications Recitation 10. Project 3: CMUQFlix CMUQ s Movies Recommendation System

Java (12 Weeks) Introduction to Java Programming Language

Software Development Kit

A Comparison of Service-oriented, Resource-oriented, and Object-oriented Architecture Styles

WebObjects Web Applications Programming Guide. (Legacy)

Copyright. Restricted Rights Legend. Trademarks or Service Marks. Copyright 2003 BEA Systems, Inc. All Rights Reserved.

2012 LABVANTAGE Solutions, Inc. All Rights Reserved.

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

Developing SOA solutions using IBM SOA Foundation

Acknowledgments. p. 55

Japan Communication India Skill Development Center

MagDiSoft Web Solutions Office No. 102, Bramha Majestic, NIBM Road Kondhwa, Pune Tel: /

Java EE Introduction, Content. Component Architecture: Why and How Java EE: Enterprise Java

Introduction to XML Applications

Deploying to WebSphere Process Server and WebSphere Enterprise Service Bus

JEE Web Applications Jeff Zhuk

Metastorm BPM Interwoven Integration. Process Mapping solutions. Metastorm BPM Interwoven Integration. Introduction. The solution

Expert One-on-One J2EE Design and Development

Client-server 3-tier N-tier

Critical Infrastructure Protection in the National Capital Region

Transcription:

Enterprise Application Development Using UML, Java Technology and XML Will Howery CTO Passage Software LLC 1

Introduction Effective management and modeling of enterprise applications Web and business-to-business applications Messaging environments Loosely coupled Asynchronous Fault tolerant Java technology provides the descriptive language XML provides the data representation UML provides the notational language Manage complexity for deploying n-tier enterprise applications 2

Overview 3 A process and examples for building UML applications with XML messages through multiple distributed server containers Illustrate a complete UML design for n-tier application web development Implement a web based logon and user profile application Utilizing UML Java technology XML DTD/schema definitions

Tools Examples presented in UML using Rational Rose with UML Factory The examples will be implemented with JAR components that can be deployed into multiple configurations UML Factory will generate, deploy, and animate the examples through the UML diagrams 4

Technologies UML: Unified Modeling Language will describe the static and dynamic behavior for applications XML: Extensible Markup Language describes document information for building pages and carrying messages through the application tiers JSP components: JavaServer Pages technology-based components are used to define dynamic HTML interface pages 5

Technologies XSL: Extensible Style Sheet language is used to transform the XML documents into dynamic HTML interface pages EJB specification Enterprise JavaBeans specification is used for data access and manipulation JMS: Java Message Service API provides an asynchronous fault tolerant messaging capability between application tiers 6

Sample JSP Client to J2EE Application Container JSP Client HTTP Web Server XML over RMI or IIOP ejb Container JDBC XML to JSP conversions Session Bean State Machine Data Base 7

UML Model Overview Use Case Diagram Collaboration Diagram Class Diagrams State Diagrams Activity Diagrams Deployment Diagram 8

Modeling the Application Use Case Use Case Diagrams define the high-level interactions between external actors and system processes. The Use Case diagram must have an actor, an interaction, and a process Logon GPublic SetProfile LogonProcess Register MainProcess 9

Alternate Implementations Realize The realize stereotype on a Use Case interaction defines alternate mechanisms for implementing the same process Logon <<realize>> JSP Logon (from JSP Implementation) GPublic SetProfile LogonProcess <<realize>> XSL Logon 10 (from XSL Implementation)

User Artifacts Each interaction on a Use Case process contains artifacts, these artifacts are tangible attributes provided to the Actor or input artifacts from the Actor to the process. For a Logon: UserName UserPassword Logon GPublic LogonProcess 11

Collaboration Diagram Collaboration Diagrams define the implementation for each Use Case interaction LogonPage : (Logical 1: Submit 2: Good MainMenuPage : (Logical UserValidation : (Logical 5: Submit 3: Fail TryAgain Page : (Logical 4: Retry FailPage : (Logical 12

Storyboard Interface Objects Storyboard interface objects identify user input and output artifacts. These objects will identify the types of artifacts used within the system for the Use Case interaction <<StoryBoard>> LogonPageSB UserNameLabel : Label = User Name: UserName : Edit = UserName PasswordLabel : Label = Password: Password : Password = UserPassword Hidden1 : Hidden = SomeField rule : rule = LogonValidation event=logo Submit : link = Submit LogonPage : LogonPageSB 1: Submit UserValidation : (Logical 2: Good MainMenuPage : MainMenuSB 5: Submit 3: Fail TryAgain Page : TryAgainSB 4: Retry FailPage : FailLogonSB 13

Decision Control Process Flow Objects Through the Collaboration diagram choices or decisions are made directing the diagram flow. Control process flow objects define the domain logic class specifications that will govern these decisions LogonPage : LogonPageSB Decision Object 1: Submit 2: Good MainMenuPage : MainMenuSB UserValidation : (Logical 5: Submit 3: Fail TryAgain Page : TryAgainSB 4: Retry FailPage : FailLogonSB 14

Events Collaboration Diagram events show the linking between various collaboration diagram objects <<StoryBoard>> LogonPageSB UserNameLabel : Label = User Name: UserName : Edit = UserName PasswordLabel : Label = Password: Password : Password = UserPassword Hidden1 : Hidden = SomeField rule : rule = LogonValidation event=logo Submit : link = Submit LogonPage : LogonPageSB 1: Submit UserValidation : (Logical 2: Good MainMenuPage : MainMenuSB 5: Submit 3: Fail TryAgain Page : TryAgainSB 4: Retry FailPage : FailLogonSB 15

Storyboard Class Specifications The storyboard class specification identifies the ordered set of artifacts and events that this storyboard object element will contain Artifacts <<StoryBoard>> LogonPageSB UserNameLabel : Label = User Name: UserName : Edit = UserName PasswordLabel : Label = Password: Password : Password = UserPassword Hidden1 : Hidden = SomeField rule : rule = LogonValidation event=logo Submit : link = Submit 16

HTML Pages Each storyboard class specification is linked to an HTML page that will be processed to create the XSL or JSP interface definition 17

HTML Pages The HTML pages will contain tokens identifying the XML abstract semantic names representing the use case artifacts coming and going from the control process flow 18

XML DTD/Schema Modeling Modeling the XML schema information within UML provides a visual representation of the XML documents structure. The modeled XML document also provides runtime information and model time checking for collating the use case artifacts with the XML elements Sample Company Person XML relating to the LogonPage <<ControlPF>> LogonPageDTD <<AttributeAccess>> getxml_personctlpersonid() <<AttributeAccess>> getxml_personctlfirstname() <<AttributeAccess>> getxml_personctlmiddlename() <<AttributeAccess>> getxml_personctllastname() <<AttributeAccess>> getxml_personctlusername() <<AttributeAccess>> getxml_personctlpassword() <<AttributeAccess>> getxml_username() <<AttributeAccess>> getxml_password() <<AttributeAccess>> getxmlmappersonctl() <<AttributeAccess>> getxmlmaplogonpagesb() <<XMLMap>> <<XMLMap>> <<ControlDA>> PersonCtl (from DataAccess) PersonId : Integer FirstName : String MiddleName : String LastName : String UserName : String Password : String <<XMLTransform>> logonformtopersonctl UserName = PersonCtlUserName Password = PersonCtlPassword <<StoryBoard>> LogonPageSB (from StoryBoardObjects) UserNameLabel : Label = User Name: UserName : Edit = UserName PasswordLabel : Label = Password: Password : Password = UserPassword Hidden1 : Hidden = SomeField rule : rule = LogonValidation event=logo Submit : link = Submit 19

XML Mappings UML Factory provides an abstract mapping between XML elements and semantic names. These Mappings allow isolation between the arbitrary physical representation of a data element, and a logical name or handle to access and manipulate that element Semantic Names Semantic Names identify abstract textual identifiers for elements, or attributes, within the XML document XML Element Mappings XML element mappings identify the arbitrary physical XML element definition. The XML mappings identify XML text, cardinality, attributes, and schema information 20

XML Mapping Example Generated semantic mappings to sample Company Person XML mxmlmaptestdtd = new XMLMap(); mxmlmaptestdtd.addmapping("testxml", "xml"); mxmlmaptestdtd.addmapping("xmlname", "xml/name"); mxmlmaptestdtd.addmapping("company", "xml /company"); mxmlmaptestdtd.addmapping("companyname", "xml/company#name"); mxmlmaptestdtd.addmapping("companycity", "xml/company#city"); mxmlmaptestdtd.addmapping("person", "xml/company* /person"); mxmlmaptestdtd.addmapping("firstname", "xml/company/person#fname"); mxmlmaptestdtd.addmapping("lastname", "xml/company/person#lname"); 21

XML Mappings to JSP tags The token semantic names within the HTML page associate with storyboard class specifications are substituted with methods to extract semantic data from the XML document representing the Storyboard interface object 22

XML Mappings to XSL tags In like manner, the token semantic names within the HTML page associated with storyboard class specifications are replaced with XSL syntax to transform the XML document representing the Storyboard interface object 23

Storyboard Events The storyboard class specification objects contain events that will fire into the application, transitioning through the designed collaboration diagrams If the target object of a collaboration diagram event is another interface element then that storyboard interface element will be displayed If the target object is a decision point then the class specification defined for that decision logic would be sent the event through the UML state machine implementation 24

Storyboard Events The Logon Page Submit link event <<StoryBoard>> LogonPageSB UserNameLabel : Label = User Name: UserName : Edit = UserName PasswordLabel : Label = Password: Password : Password = UserPassword Hidden1 : Hidden = SomeField rule : rule = LogonValidation event=logo Submit : link = Submit LogonPage : LogonPageSB 1: Submit UserValidation : (Logical 2: Good MainMenuPage : MainMenuSB 5: Submit 3: Fail TryAgain Page : TryAgainSB 4: Retry FailPage : FailLogonSB 25

Collaboration Decisions Decisions are implemented by UML logical classes LogonPage : LogonPageSB TryAgain Page : TryAgainSB 1: Submit UserValidation : (Logical 5: Submit 3: Fail 4: Retry 2: Good FailPage : FailLogonSB MainMenuPage : MainMenuSB MaxTries : int = 3 CurrentTries : int Validated : boolean <<ControlPF>> LogonValidation <<StateMachineMethod>> SubmitValidate(theWidl : Widl) : v oid <<AttributeAccess>> LogonValidation() : v oid <<AttributeAccess>> setmaxtries(amaxtries : int) : v oid <<AttributeAccess>> getmaxtries() : int <<AttributeAccess>> setcurrenttries(acurrenttries : int) : v oid <<AttributeAccess>> getcurrenttries() : int <<AttributeAccess>> setvalidated(avalidated : boolean) : v oid <<AttributeAccess>> getvalidated() : boolean <<AttributeAccess>> inwidl(thewidl : Widl) : boolean isvalid() : boolean ismaxattempts() : boolean <<StateMachineMethod>> GoodGood(theWidl : Widl) : v oid <<StateMachineMethod>> FailFail(theWidl : Widl) : v oid <<StateMachineMethod>> Retry Retry (thewidl : Widl) : v oid <<StateMachineMethod>> DoneEnd(theWidl : Widl) : v oid <<AttributeAccess>> setpersonctl(apersonctl : PersonCtl) : v oid <<AttributeAccess>> getpersonctl() : PersonCtl 26

Control Process Flow Class Specification The control process flow class specification provides the logical implementation making decisions through the use case collaboration process. The UML control process flow stereotyped class specification is generated into Java source code with all the static and dynamic behavior required for: Receiving input events Managing persistent data Manipulating Interface XML documents Returning information to the process Maintaining state information of the application 27

Receiving Events When a user activates an event from an interface object, that event is sent into the state machine. All information coming into the state machine is contained within an XML document 28

Control Process Class State Machines MaxTries : int = 3 CurrentTries : int Validated : boolean <<ControlPF>> LogonValidation <<StateMachineMethod>> SubmitValidate(theWidl : Widl) : v oid <<AttributeAccess>> LogonValidation() : v oid <<AttributeAccess>> setmaxtries(amaxtries : int) : v oid <<AttributeAccess>> getmaxtries() : int <<AttributeAccess>> setcurrenttries(acurrenttries : int) : v oid <<AttributeAccess>> getcurrenttries() : int <<AttributeAccess>> setvalidated(avalidated : boolean) : v oid <<AttributeAccess>> getvalidated() : boolean <<AttributeAccess>> inwidl(thewidl : Widl) : boolean isvalid() : boolean ismaxattempts() : boolean <<StateMachineMethod>> GoodGood(theWidl : Widl) : v oid <<StateMachineMethod>> FailFail(theWidl : Widl) : v oid <<StateMachineMethod>> Retry Retry (thewidl : Widl) : v oid <<StateMachineMethod>> DoneEnd(theWidl : Widl) : v oid <<AttributeAccess>> setpersonctl(apersonctl : PersonCtl) : v oid <<AttributeAccess>> getpersonctl() : PersonCtl Start Sets Widl Return results="retry" Submit Retry Validate Retry[!isMaxAttempts() &&!isvalid() ] Good[ isvalid() ] Done[ Continue ] Sets Widl Return results="good" Fail [ ismaxattempts() &&!i svalid() ] Fail Done[ Continue ] Goo d Done[ Continue ] Sets Widl Retu rn resul ts=" Fai l" End 29

WIDL WIDL is a Web Interface Definition Language specification The WIDL contains an event, process, and structured records defining behavior and data together within a single XML document package Event or Method The method described within the WIDL is the event name coming into the state machine Process The WIDL process attribute identifies the executable Java class that will receive the WIDL and respond to the method event. The process name can be a fully qualified Java class or an abstract object name. Containers receiving the WIDL input from either session beans, JMS messaging Queue implementations etc., must have a mechanism to late bind the WIDL event to the correct process 30

WIDL Records The WIDL contains three records for input information, output information and return information. These records can be populated with attributes or complete XML documents Input Record Our example for the Web application will use the input record to contain information coming from the Web interface into the process logic Output Record The example WIDL use the output record of the WIDL to contain Return Page or XML document information back to the Web interface Return Record The WIDL return record contains results information for evaluating decisions to the collaboration process flow. The result Attribute within the WIDL Return record contains the return events from the control process flow class specification 31

State Machines State machines define the possible events coming into a dynamic class and the state transitions for those events. The state machine diagram provides a readable definition of the dynamic behavior for a given class specification LogonPage : LogonPageSB Start Submit Sets Widl Return resul ts="good" 1: Submit 2: Good MainMenuPage : MainMenuSB Validate Goo d[ isva l id() ] Goo d UserValidation : (Logical Retry[!isMaxAttempts() &&!isvalid() ] Fail [ ismaxattempts() &&!i svalid() ] Fail 5: Submit 3: Fail Retry Done[ Con TryAgain Page : TryAgainSB 4: Retry FailPage : FailLogonSB Sets Widl Return results="retry" Done[ Continue ] Done[ Continue ] 32

States and Transitions States States define the process stops through the state machine Event Transitions Transitions define the event causing a transition from one state to another state Event State Methods Event state methods are the implied action behaviors when an event transition occurs. These event state methods are implemented through UML activity diagrams 33

State Diagram Elements Event Transition Event State Method State Start Submit Sets Widl Return resul ts="good" Validate Goo d[ isva lid() ] Goo d Retry[!isMaxAttempts() &&!isvalid() ] Fail [ ismaxattempts() &&!i svalid() ] Retry Fail Done[ Continue ] 34 TS-641, Enterprise Se ts Widl Application Return Development Using UML, Java, and XML Done[ Continue ]

State Timing Guard Conditions Guard conditions imply a synchronous transition exiting a given state. The guard conditions contain boolean logic to determine which exit transition will be traversed Asynchronous Asynchronous events have no guard conditions and are triggered from some external source. That source is typically a user interface link artifacts Synchronous Synchronous events transition automatically and internal to the state machine. Synchronous events are identified as exit events from a state containing guard conditions 35

Transition Timing Example Asynchronous Transition Synchronous Guarded Transition Start Submit Sets Widl Return resul ts="good" Validate Goo d[ isva lid() ] Goo d Retry[!isMaxAttempts() &&!isvalid() ] Fail [ ismaxattempts() &&!i svalid() ] Retry Fail Done[ Continue ] 36 TS-641, Enterprise Se Application ts Widl Return Development Using UML, Java, and XML Done[ Continue ]

Setting Animation Points Within the state machine any transition can be identified within the UML diagram as an animation point. When the application is executed the UML document will be displayed selecting the animation location Start Submit Animation Point Sets Widl Return results="good" Validate Good[ isvalid() ] Goo d Retry[!isMaxAttempts() &&!isvalid() ] Fail [ ismaxattempts() &&!i svalid() ] Fail 37 Retry

Activity Diagrams Activity Diagrams implement the behavior of algorithms for UML class specification methods Event State Method Start Submit Sets Widl Return re su l ts= " G o o d " Validate Goo d[ isva lid() ] Goo d Retry[!isM axa ttem pts() & &!isv alid() ] Fail [ ism axattem pts() & &!i sv alid() ] Retry Fail Done[ Continue ] Se ts Widl Return results="retry" Done[ Continue ] Done[ Continue ] 38

UML Object Navigation Notation Activity Diagrams are represented in UML Object Navigation Notation. This notation manipulates the objects with their public attributes and methods. Using the object notation and Activity Editor within UML Factory you can define the complete behavior for a method implementation susername = thewidl.getinputparameter( "UserName" ) spassword = thewidl.getinputparameter( "Password" ) this.setvalidated( false ) 39

Designing an Activity 40

Accessing a Data Base Through the activity diagram implementations we can manipulate our database objects, defining the operations for all our database elements as required aperson.personctl( ) aperson.setfirstname( susername ) aperson.setpassword( spassword ) this.setvalidated( aperson.load( ) ) 41

Manipulating XML Within the activity diagrams we also define the XML manipulation for retrieving and building the XML documents going between the process flow logic and user interface elements svalue= new String( "PassageSoftware" ); axmlmap.insert( this.getxml_companyname( ), svalue ); svalue= new String( "Richmond, VA" ); axmlmap.insert( this.getxml_companycity( ), svalue ); axmlmap.insert( this.getxml_person_node( ), null ); sname= new String( "Dick" ); slname= new String( "Douglas" ); axmlmap.insert( this.getxml_firstname( ), sname ); axmlmap.insert( this.getxml_lastname( ), slname ); 42

Intelligent Advisor Code view The UML Factory Intelligent Adviser allows us to view the code generation results while designing the UML activity diagrams 43

Setting Animation Points Any activity within the activity diagrams can also have animation points defined. When the application is executing the activity diagram will display and select the activities with animation settings Animation Points 44

Generating the Application After the static and dynamic elements of our application are defined we can organize these elements into UML Component Diagrams to define deployment definitions. From the components definitions we can then generate the complete Java class code, compile the code and package it into the appropriate application JAR 45

Collaboration Diagram XML Generation The collaboration diagram information for our use case definitions is also generated into an XML description document identifying the interface elements, XML mappings, and control process flow information. This XML document then becomes the basis for execution through the application The XML document defines the process flow through the application The engine that iterates the collaboration diagram XML document was also designed and generated from a UML model 46

Control Process Flow Generation Dynamic behavior represented within an application is designed within a control process flow class specification. The following sections will briefly illustrate the generation processing capabilities for dynamic behavior within a UML environment. The following code examples were completely generated from the UML model 47

Generating the UML Class Specification Looking at the State Machine implementation Current State Incoming Event Synchronous Transitions Asynchronous Transitions Start and End States Packages, imports, declarations Java package specifications can be explicitly or implicitly defined by the class locations within the UML model Association and Attribute implementations Association implementations generate both the container and access methods for the stereotyped association. The type of container and resulting access methods are defined by the stereotype applied to the association between class specifications 48

Method Implementation 49 Activity Diagram Method Implementations Activity diagrams are generated following the UML Object Notation. The activity generation can be viewed with either as a fully generated class or using the Intelligent Advisor code window Round Trip engineering Roundtrip engineering allows developers to hand edit code generated from the UML Diagram. By Identifying elements which have been hand edited, the UML Factory generator will leave the method implementation as edited without forward generating from the model. The developer controls the granularly of roundtrip engineering UML Model Animation code Animation points placed within the code can be turned off for individual points, the entire model being generated, and also ignored, from run time configuration properties

Executing the Architectures The following demonstrations will walk through executing the various architectures from the complete components on different types of application servers 50

Sample JSP Client to J2EE Application Container JSP Client HTTP Web Server XML over RMI or IIOP ejb Container JDBC XML to JSP convers ions Session Bean St ate Machine Data Base 51

Using the Java Message Service API (JMS) for Communications JMS Message Que Publish/Subscribe XML Object Publish/Subscribe XML Object HTML Client HTTP Web Server EJB Container EJB/JDBC XML/XSL to HTML Conversion Session Bean State Machine Data Base 52

Summary This concludes the presentations and demonstrations for building n-tier enterprise applications with UML and XML data representations The demonstrations have illustrated the ability to completely model both static and dynamic application behavior within a UML model The UML model also defined components and deployment into multiple configurations The modeled demonstration illustrated the ability to use the same components within different J2EE platform-enabled implementations on multiple architectural environments 53

Enterprise Development Benefits Enterprise computing can improve the software development process by combining the descriptive power of the UML notation, and the flexible data representation and distribution capabilities of XML with the object oriented, network, and portable capabilities of Java technology Combining these technologies enables organizations to manage components increasing reuse, visibility, and implementation understanding; effectively reducing the complexity and total cost of ownership for deploying n-tier enterprise applications 54

55