Software Design Specification

version 1.0

Dated: 15th January, 2005

 

bWise - Enterprise Application Integration Framework

Anurodh Srivastava & Shalin Shekhar Mangar,
JSS Academy of Technical Education, Noida.
Group: RHS041528


Contents

Section

Title

 

1

Introduction

 

 

 

 

 

1.1 Purpose

 

 

1.2 Scope of development project

 

 

1.3 Definitions, Acronyms and Abbreviations

 

 

1.4 References

 

 

1.5 Overview

 

 

 

 

2

System architecture description

 

 

 

 

 

2.1 Overview of module/components

 

 

2.2 Structure and relationships

 

 

2.3 User interface issues

 

 

 

 

3

Detailed description of components

 

 

 

 

 

3.1 Developer tools

 

 

3.1.1 Document designer

 

 

3.1.2 Document transformation designer

 

 

3.1.3 Business process designer

 

 


3.1.4 Messaging Manager

 

 

3.2 Process coordination server

 

 

3.3 Administration Tools

 


4


Reuse and relationships to other products



 

 

 

 5

Design decisions and tradeoffs

 



 

 6

Pseudocode for components

 

 

 

 

7

Appendices

 

 

 

 

 

7.1 Business process execution language for web services specification (BPEL4WS)

 

 

7.2 Oasis schemas for EDI

 

 


 

 


 

 

 

 

 

1. Introduction

1.1 Purpose

The Software Design Specification (SDS) specifies the design of the components of bWise - Enterprise Application Integration Framework, which will be used in corporate computer departments. The SDS specifies the actual design of the components of this software which facilitate the complete functionality as outlined in the Sofware Requirements Specification (SRS) document.

1.2 Scope

The purpose of the bWise software is to automate and co-ordinate a business process involving more than one application, while automating the data transfer, transformation and processing in a secure manner. bWise will provide developer tools such as Business Process Designer, Document Designer, Messaging Manager and Document Transformation Designer, along with a Process Co-ordination Server (server component) and associated administration tools. The developer tools will be implemented as plug-ins for the Eclipse IDE providing a complete framework for EAI development. The Process Co-ordination Server will be a server component which will execute the EAI process created through the developer tools. The Administration tools include tools for configuration, management and viewing performance statistics of the Process Co-ordination Server.

1.3 Definitions, acronyms and abbreviations

  1. Business Process - A workflow to perform any business operation such as sale or purchase of goods, customer complaint processing etc.
  2. Document - Another name for a message to passed between applications participating in a business process.
  3. EAI - Enterprise Application Integration.
  4. IDE - Integrated Development Environment.
  5. Enterprise Single Sign-on - An application which enables a user to login into many different applications using one-time authentication.
  6. Correlation - The process of matching documents to their correct business process instance.
  7. XML - eXtensible Markup Language
  8. XSLT - eXtensible Style Sheet Transform
  9. ebXML - e-Business XML

1.4 References

1.5 Overview of document

The first section gives an introduction of the document.

2.      The second section gives the system architecture and overview of the various modules and also the user interfaces.

3.      The third section describes each module in detail.

4.      The fourth section gives the reusability and relationship with other products.

5.      The fifth section gives the details about the design decision taken by us and their advantages and tradeoffs.

6.      The sixth section is the appendices.

2. System architecture description

2.1 Overview of modules

The software being developed is divided into the following modules:
  1. Developer Tools - Used by the users in the role of "EAI developers" as defined in the SRS document.
  2. Process Coordination Engine - The server component of the software.
  3. Administration Tools - Used by the users in the role of "Administrators" as defined in the SRS document.
The Developer Tools consist of the following applications:
  1. Document Designer - Used to specify the format of messages that applications accept or send.
  2. Document Transformation Designer - Used to specify the transformations between the message formats defined by the document designer.
  3. Business Process Designer - Used to visually draw and specify a business process.
  4. Messaging Manager - Used to define message ports i.e. input and output paths for messages.
The Process Coordination Engine consists of the following software components:
  1. Message Transport Agents (MTA) - Subprograms that recieve and send messages between applications.
  2. Message Pipeline Processors - Consists of plugable subprograms such as transformers (document transformer, encryption, decryption), correlation manager, document verifiers etc.
  3. Message Verification and Correlation Manager - Used to match documents against their scheme definitions and to match documents to the correct business process instance.
  4. Authentication Manager - Used to authenticate and authorize users into business applications.
  5. Process Coordinator - Executes the business process as specified by the Business Process Designer.
The Administration Tools consist of tools which enable configuration of message transport,authentication, logging, message queues, database. Also these tools which provide performance statistics of the business processes being coordinated.

2.2 Structure and relationships

bWise Use Case Diagram

2.3 User interface issues

The users in the role of "EAI Developers" and "Business Analysts" (defined in the SRS document), will use the developer tools. These developer tools will be implemented as plugins for the popular Eclipse IDE. Hence these users will experience the document designer, document transformation designer, business process designer and messaging manager as Eclipse Workbench Extensions. These plugins are developed in the Eclipse SWT (Simple Windowing Toolkit). This GUI toolkit is optimized for rendering speed on all platforms. Hence for different platforms it features a slightly different Look & Feel.
The users in the role of "Administrators" will use a web-based administration utility which performs functions outlined in the Use Case Diagram above.

3. Detailed description of components

3.1 Developer Tools

Identification
The name of this module is bWise Developer Tools.
It comprises the tools required by the "EAI Developer" and "Business Process Analyst" to implement the integration of business application.
Type
The subprograms comprising this component are Eclipse IDE Workbench extensions.
Purpose
The purpose of this module is to develop the Business Process to be coordinated.
Function
This module performs various functions by deriving services from its various subordinate modules. The functions provided include:
  1. Specifying document schema definitions
  2. Specifying document transformations
  3. Specifying Business Process
  4. Specifying messaging methods.
Subordinates
It consists of the following sub-modules:
  1. Document Designer
  2. Document Transformation Designer
  3. Business Process Designer
  4. Messaging Manager
Dependencies
All the sub-modules comprising this module depend on the Eclipse IDE and its associated APIs such as Graphical Editing Framework (GEF), XSD API and others.
Interfaces
The developer tools comprise multiple screens: one each for the four sub-modules.
Resources
An XML Configuration file is required for this component.
Processing
The processing of the module is the sum of processing of each individual subordinate module
Data
Not Applicable

3.1.1 Document designer

Identification
The name of this module is bWise Document Designer.
Type
This is an Eclipse IDE Workbench extension.
Purpose
The purpose of this module is to help create a schema for document as well as to provide ways to edit and export the schemas.
Function

The features required in the Document Designer are:

1. Provide a way to load a positional or delimited document and create its generic specification against which other instances of the document can be validated.
2. Load an already created document specification and modify it to suit other document specifications.
3. Create a new schema from scratch.

Subordinates
Not Applicable
Dependencies
All the sub-modules comprising this module depend on the Eclipse IDE and its associated APIs such as SWT, Graphical Editing Framework (GEF), XSD API and others.
Interfaces
Provides a tree and listview based interface for editing of XML documents.
Resources
An XML Configuration file is required for this component.
Processing
Processing parts of the module include:
  1. Analysis of positional and delimited document loaded into the module
  2. Creation of a XML Schema Document (XSD) from the analysis
  3. Saving of XSD document so created into disk media.
Data
Inputs: Positional or Delimited document to be analysed (optional)
Outputs: XML Schema Document (XSD)


3.1.2 Document transformation designer

Identification
The name of this module is bWise Document Transformation Designer.
Type
This is an Eclipse IDE Workbench extension.
Purpose
The purpose of this module is to help create a transformation scheme for transforming documents conforming to one XSD to another.
Function

The features required in the Document Designer are:

1. Provide a way to load two XML Schema documents and provide visual methods to draw the transformation methods.
2. Load an already created Transformation scheme and modify it to suit other document specifications.
3. Create a new transformation from scratch.

Subordinates
Not Applicable
Dependencies
All the sub-modules comprising this module depend on the Eclipse IDE and its associated APIs such as SWT, Graphical Editing Framework (GEF), XSD API and others.
Interfaces
Provides a diagram editor type interface for editing of transformation diagrams.
Resources
An XML Configuration file is required for this component.
Processing
Processing parts of the module include:
  1. Analysis of XSD loaded into the module
  2. Creation of a basic transformation scheme which suites both the loaded XSDs from the analysis
  3. Saving of transformation so created into disk media.
Data
Inputs: Two XML Schema document to be analysed.
Outputs: XSLT code or Java code.


3.1.3 Business process designer

Identification
The name of this module is bWise Business Process Designer.
Type
This is an Eclipse IDE Workbench extension.
Purpose
The purpose of this module is to help create visually a business process workflow.
Function

The features required in the Business Process Designer are:

1. Provides a 2D drawing canvas for drawing process diagrams
2. Provides a library of pre built shapes denoting special entities like start, stop, branch, condition, document transformation, MTA, notification, application and custom entity.
3. Dragging, adding, deleting, resizing, editing properties of entities to the canvas must be allowed.
4. Creation, saving, loading, editing and modification of diagram must be supported.
5. If an entity (such as a transformation) is required which has not been created, the tool must provide an interface (such as a button) to start the appropriate builder tool (transformation designer in this sample case) to define the entity.
6. Wherever possible, the 2D figure representing the entity should provide a list of available choices for that particular class of entities.

Subordinates
Not Applicable
Dependencies
All the sub-modules comprising this module depend on the Eclipse IDE and its associated APIs such as SWT, Graphical Editing Framework (GEF), XSD API and others.
Interfaces
Provides a diagram editor type interface for editing of business process workflow diagrams.
Resources
An XML Configuration file is required for this component.
Processing
Processing parts of the module include:
  1. Analysis of Business process workflow diagram to avoid infinite looping conditions
Data
Inputs: Existing Diagram file (optional)
Outputs: BPEL file.

3.1.4 Messaging Manager

Identification
The name of this module is bWise Messaging Manager.
Type
This is an Eclipse IDE Workbench extension.
Purpose
The purpose of this module is to help specify message transport agents, create piplelines and specify authentication mechanisms.
Function

The features required in the Document Designer are:

1. Provide a way to specify MTAs into the workflow diagram.
2. Provide a way to draw a pipeline, insert, modify and delete elements.
3. Load an already existing pipeline and modify it to suit other needs.

Subordinates
Not Applicable
Dependencies
All the sub-modules comprising this module depend on the Eclipse IDE and its associated APIs such as SWT, Graphical Editing Framework (GEF), XSD API and others.
Interfaces
Provides a diagram editor type interface for editing of message pipelines.
Resources
An XML Configuration file is required for this component.
Processing
Processing parts of the module include:
  1. Analysis of message pipeline diagram to avoid infinite looping conditions
Data
Inputs: Existing Diagram file (optional)
Outputs: Pipeline Diagram file


3.2 Process coordination server

Identification
The name of this module is bWise Process Execution Server.
Type
This is a module comprising a server application and its associated management components.
Purpose
The purpose of this module is to help coordinate a business process drawn through the business process designer.
Function

The features required in the Process Coordination Server are:

1. It must be able to discover new business processes loaded into the server by the administration tools.
2. It must be able to execute a business process without any user intervention, once the process is loaded.
3. It must maintain a transaction and activity log specifying the messages, recieved, sent and process activity status records.
4. It must support asynchronous communication between applications involved in a process.
5. It must be able to maintain a process state for the time-out period specified without losing any data for a process suspended or waiting for a request or response by a participating application.
6. If the server is shut down for some reason then all running processes should be suspended and their state should be persisted on disk and on regaining execution the server must restore the processes in the same state as before.
7. The server must provide for reliable and secure message transport by utilizing cryptographic services.
8. The server must provide a mechanism for disseminating alert notifications to subscribing applications, in the event of a process suspension or abnormal termination.
9. The server must provide support for correct routing of message as defined in the process diagram's data flow.
10. The server must provide for correlation of messages i.e. the messages recieved into the system must be sent to the correct process instance and correct application instance so that multiple instances of the same process can run in parallel.

Subordinates
Not Applicable
Dependencies
Depends on:
1. Apache Derby as an embeddable SQL database
2. Apache Xindice as native XML database.
3. Apache Axis as a web service hosting platform
4. Quartz - Enterprise Job Scheduler
5. JOSSO - Java Open Single Sign-on
6. OpenJMS - For implementing message queues
Interfaces
No direct interface with the user.
Resources
An XML Configuration file is required for this component. Database files for Derby and Xindice.
Processing
Processing parts of the module include:
  1. Polling module for discovery of newly loaded business process.
  2. Logging and error notifications without server faliure.
  3. Handling of message queues
  4. Persistance of suspended processes to disk and recreation of process in memory when state of the process changes to active.
  5. Cryptographic functions for securing messages being transported.
  6. Dissemination of alert notifications through a publish-subscribe model.
  7. Correlation of incoming messages to correct process instance.
  8. Parallel processing of different instances of same process and different processes without any interference or concurrency issues.
Data
Inputs: None (only data in configuration files)
Outputs: Alert notifications as defined by the administrators (optional)


3.3 Administration tools

Identification
The name of this module is bWise Administration tools.
Type
This is an web based application.
Purpose
The purpose of this module is to help load and unload Business Processes, configure server properties, configure and manage Message Transport Agents (MTA) installed on the system, view and manage the transaction logs, manage the server database, backup and restore data, monitor alert notifications and view performance statistics.
Function

The features required in the Administration tools are:

1. Configure server execution properties such as log file size and other parameters.
2. Configure and manage Message Transport Agents (MTA) including installation and uninstallation of MTAs into the system.
3. View and manage the server database.
4. View and manage the transaction and activity logs.
5. Backup and restore data including scheduling automatic backups.
6. Monitor alert notifications.
7. Provide a Publish-Subscribe model for alert notifications.
8. View performance statistics such as process instances executing per minute, workload division among installed business processes.

Subordinates
Not Applicable
Dependencies
All the sub-modules comprising this module depend on the Eclipse IDE and its associated APIs such as SWT, Graphical Editing Framework (GEF), XSD API and others.
Interfaces
Provides a diagram editor type interface for editing of message pipelines.
Resources
An XML Configuration file is required for this component.
Processing
The modules just substitutes user input into specific locations in configuration files without any processing.
Data
Inputs: User input
Outputs: XML configuration file.


4. Reuse and relationship to other products

The software requires the following third-party products:
1. Eclipse IDE - for implementing process designer and other components for developers as plugins.
2. Apache Axis - as a Web Services hosting server.
3. Apache log4j - as a logging toolkit
4. Quartz - Job Scheduler
5. Apache Jakarta Commons - Miscellaneous functionalities.
6. Apache Xindice - native XML database
7. Apache Derby - as an embeddable database engine
8. JOSSO – Java Open Single Sign On solution
9. Piccolo – Java2D graphics drawing toolkit
10. Apache Batik – toolkit for SVG rendering and manipulation
11. Apache Avalon – a framework for server applications
12. Trove4j – A library of high performance collection utilities
13. J.A.D.E. – Java addition to default environment (miscellaneous utilities)
14. Apache Xerces - XML parser
15. Apache Xalan - XSLT parser
16. Eclipse GEF - A toolkit to assist in developing custom diagram editors.
17. Eclipse XSD - An API to manipulate XML Schema documents.

5. Design decisions and tradeoffs

The software was designed after analysing many competitive products. Some advanced features were deliberately left off such as Load Balancing components, exposing management functions as JMX Beans and the like. Additions of these features would have made the software much more complex and would have increased the development time considerably.
Besides features like Business Activity monitoring and Human Workflow services along with the above specified features are still in our roadmap for the next version of the software.
The developer tools were selected to be developed as Eclipse IDE workbench extensions because doing so would reduce the need to reinvent the wheel and would provide us a lot of prebuilt functionality. These functionality include managing projects, creating and manipulating diagrams, manipulating XML Schema documents. Also the Eclipse IDE is a very widely used software and would definitely help the software to reach a broad audience.

6. Pseudo code for components

Not Available in the design phase of the software.

7. Appendices

Business Process Execution Language for Web Services (BPEL4WS) specification
Open Oasis Forum