Behind the Scenes

nostalgicisolatedSoftware and s/w Development

Nov 4, 2013 (3 years and 5 months ago)

186 views

AB Suite Builder

Behind the Scenes

Russell Pederick, AB Suite Windows Technical Lead

UNITE, May 2011

© 2011 Unisys Corporation. All rights reserved.

Page
2

Agenda


Development Environment


Model and Configurations


General Build Process


Building MCP systems


Building Windows systems


Transfer Phase


Deployment Phase

DEVELOPMENT ENVIRONMENT

© 2011 Unisys Corporation. All rights reserved.

Page
3

Platform Independent Model


AB Suite Development Environment


Platform Independent Model


Used to model the structure and behaviour
of a system


Independent of any particular platform or
technology

© 2011 Unisys Corporation. All rights reserved.

Page
4

Configurations

© 2011 Unisys Corporation. All rights reserved.

Page
5

Platform

Independent

Model

Configurations

Configurations

Configurations

Builder

Platform Specific Model

Platform Independent Model


Benefits


Model can be deployed to different platforms


MCP


Windows


Can support multiple Operating System levels


E.g. Windows 2003, Windows 2008


Can take advantage of various technologies


COBOL, C#, .NET


DMSII, SQL Server

© 2011 Unisys Corporation. All rights reserved.

Page
6

BUILD PROCESS

© 2011 Unisys Corporation. All rights reserved.

Page
7

Builder Process
-

Overview


Generate Phase


Transfer Phase


Deployment Phase

© 2011 Unisys Corporation. All rights reserved.

Page
8

Development Server

Application

Database

Runtime
Application

Runtime Server

Model

Configurat

Configuratio

Configurations

Builder

Deploy

Choosing What to Build


Folder


logical grouping mechanism


Used to group a set of elements to build


Create a folder


Set it to “Deployable”


Add elements to build

© 2011 Unisys Corporation. All rights reserved.

Page
9

Choosing What to Build


Build the entire system


Folder contains the Segment class

© 2011 Unisys Corporation. All rights reserved.

Page
10

Choosing What to Build


Build a set of Reports


© 2011 Unisys Corporation. All rights reserved.

Page
11

Choosing What to Build


Build a set of clients (“Bundle”)


© 2011 Unisys Corporation. All rights reserved.

Page
12

Choosing What to Build


Build multiple folders


© 2011 Unisys Corporation. All rights reserved.

Page
13

Build

Builder


How to Run


Builder program
-

Builder.exe


Can be run:


Interactively from Visual Studio


Initiate via Visual Studio menus


Enter build options via dialog boxes


Build information displayed in Visual Studio ‘Output’ window



Using
Builder.exe

command
-
line interface via command prompt
window or script

© 2011 Unisys Corporation. All rights reserved.

Page
14

Builder


How to Run


When doing an ad
-
hoc build


Interactively from Visual Studio



When doing a repeatable build operation


E.g. regular full build of test or production system


Use a script


Any scripting language e.g. VB Script

© 2011 Unisys Corporation. All rights reserved.

Page
15

Builder


How to Run

© 2011 Unisys Corporation. All rights reserved.

Page
16


Example script for a Windows Build

Build Log


Shows progress of
Build operation


Indicates which phase
is being executed


Indicates which build
task is currently running


© 2011 Unisys Corporation. All rights reserved.

Page
17

Build Log


Options to choose format and content of Builder log

© 2011 Unisys Corporation. All rights reserved.

Page
18

Build Log


Date and Time







Saved to a Build log file


Command
-
line interface


Builder output can be redirected
to a file


© 2011 Unisys Corporation. All rights reserved.

Page
19

Generate Phase


Translates the Model into platform
-
specific code, and
packages it ready for deployment.


© 2011 Unisys Corporation. All rights reserved.

Page
20

Development Server

Model

Configurat

Configuratio

Configurations

Builder

Generate Phase


Logic validation


Model validation


Model Walk


Identify all of the source elements that need to be generated


Construct a list of tasks to be run


TargetBuilders


MCP


COBOL source files for ispecs


DMSII schema definition


Control files e.g. GSDPROGRAM, SCREENDATA, etc.


Windows


C# source files for ispecs


SQL Server database schema definition


Control files e.g. project files, XML control files

© 2011 Unisys Corporation. All rights reserved.

Page
21

Generate Phase


Run the
TargetBuilders

© 2011 Unisys Corporation. All rights reserved.

Page
22

Generate Phase
-

MCP


Generate COBOL files, database schema, control files

© 2011 Unisys Corporation. All rights reserved.

Page
23

Target
Builder

Target
Builder

Target
Builder

Target
Builder

COBOL source

Data files

Model

Generate Phase
-

Windows


Generate C# files, project files, XML control files, DB schema


Compile C# source into DLLs


Package all executable files into a single MSI package
(Microsoft Installer package)

© 2011 Unisys Corporation. All rights reserved.

Page
24

Compile

Package

Target
Builder

Target
Builder

Target
Builder

Target
Builder

C# source

files

Executable files

DLLs, EXEs, etc.

MSI file

Model

Build


‘Build’ for the first time


Build everything


Save all files in the Builder Cache

© 2011 Unisys Corporation. All rights reserved.

Page
25

Target
Builder

Target
Builder

Target
Builder

Target
Builder

Builder Output

Model

Builder Cache

Build


On subsequent builds…


TargetBuilder

runs and determines if the last
-
generated file
(saved in the Builder Cache) is up
-
to
-
date


If so, the file is copied from the Builder Cache

© 2011 Unisys Corporation. All rights reserved.

Page
26

Target
Builder

Target
Builder

Target
Builder

Target
Builder

Builder Output

Model

Builder Cache

Build


Elements not changed


TargetBuilder

indicates “up
-
to
-
date”


Elements changed


TargetBuilders

run to generate new file

© 2011 Unisys Corporation. All rights reserved.

Page
27

“Build” versus “Rebuild”


“Build”


Check each file in the
BuilderCache
.


Only generate a new file if the last
-
generated file is out
-
of
-
date



“Rebuild”


Ignore the
BuilderCache


Always rebuild everything

© 2011 Unisys Corporation. All rights reserved.

Page
28

Builder Output and Builder Cache


BuilderOutput


working folder for generation of files


BuilderCache



folder to store “saved” version of generated
files. Stored in encrypted format.


© 2011 Unisys Corporation. All rights reserved.

Page
29

Builder Output and Builder Cache

© 2011 Unisys Corporation. All rights reserved.

Page
30

Model

Builder

C:
\
BuilderOutput

Z:
\
BuilderCache

Standalone Developer Workstations

Multi
-
user Model Server

Builder

C:
\
BuilderOutput


In multi
-
user development
env
.


BuilderOutput folder local on each
workstation


BuilderCache

folder shared on a
mapped drive

Builder Output


Source code format


MCP


Generated COBOL source files


Not human
-
readable



Windows


Generated C# source files


Not human readable


Internal names are used for all file names and internally for all
element names

© 2011 Unisys Corporation. All rights reserved.

Page
31

TRANSFER PHASE

© 2011 Unisys Corporation. All rights reserved.

Page
32

Transfer Phase
-

Windows


Just one file to be transferred


the package MSI file that
contains all runtime files packaged together.


Compiled DLLs for system, reports and clients (Winforms)


Control files (XML configuration files)


Transferred to “Package Intermediate Directory”

© 2011 Unisys Corporation. All rights reserved.

Page
33

Development Server

Runtime Server

MSI file

MSI file

Transfer Phase
-

MCP

© 2011 Unisys Corporation. All rights reserved.

Page
34

Development Server

Runtime Server

Model

Configurat

Configuratio

Configurations

Builder

FTP


FTP File Transfer of COBOL files and other files


File by file

Transfer Phase
-

MCP

© 2011 Unisys Corporation. All rights reserved.

Page
35

Target
Builder

Target
Builder

Target
Builder

Builder Output

Target Host

FTP

FTP

FTP


TargetBuilder

includes FTP File Transfer

Transfer Phase
-

MCP

© 2011 Unisys Corporation. All rights reserved.

Page
36

Target
Builder

Target
Builder

Target
Builder

Builder Output

Target Host

FTP

FTP

FTP

File
Transfer


Upcoming IC


Asynchronous FTP

DEPLOYMENT PHASE

© 2011 Unisys Corporation. All rights reserved.

Page
37

Deployment Phase
-

Windows


MSIEXEC.exe


Unpacks all files from the MSI package and copies them to
the target installation folder


Runs a series of scripts to perform deployment actions:


Register application with COM+


Reorganise database

© 2011 Unisys Corporation. All rights reserved.

Page
38

Application

Database

Runtime
Application

Runtime Server

MSIEXEC

MSI file

Deployment Phase
-

Windows


How to run


Interactively from Visual Studio, as part of a full build
(generate to deploy) or just the deploy phase


Runtime Transfer


Command line or script


run MSIEXEC with command line
parameters


© 2011 Unisys Corporation. All rights reserved.

Page
39

Windows Deployment


Runtime
Transfer


Initiated from development server

© 2011 Unisys Corporation. All rights reserved.

Page
40

Application

Database

Runtime
Application

Runtime Server

MSIEXEC

MSI file

Development Server

Runtime Transfer

MSI file

Windows Deployment


Runtime
Transfer


Initiated from runtime server

© 2011 Unisys Corporation. All rights reserved.

Page
41

Application

Database

Runtime
Application

Runtime Server

MSIEXEC

MSI file

Runtime Transfer

MSI Package

Windows Deployment


MSI Package

© 2011 Unisys Corporation. All rights reserved.

Page
42

System name:
Sample

Database name:
SAMPLEDB

DB Schema name:
SAMPLESYS

DLLs, executable files

XML Configuration files,

Miscellaneous files


Contents of an MSI Package

Windows Deployment

© 2011 Unisys Corporation. All rights reserved.

Page
43

Test

Database

Test
System

Test Server

MSI file

Production

Database

Production
System

Production Server

MSI file

Windows Deployment
-

Deployment
Package Manager

© 2011 Unisys Corporation. All rights reserved.

Page
44

MSI Package

System name:
SampleTest

Database name:
SAMPLETESTDB

DB Schema name:
SAMPLETEST

Files

SampleTestDeploy.msi

Deployment
Package

Manager

MSI Package

System name:
SampleProd

Database name:
SAMPLEPRODDB

DB Schema name:
SAMPLEPROD

Files

SampleProdDeploy.msi

Windows Deployment


Future Plans


Incorporate Deployment Package Manager as an
integrated part of Runtime Transfer


Provide a complete command
-
line interface for Runtime
Transfer

© 2011 Unisys Corporation. All rights reserved.

Page
45

Deployment Phase
-

MCP


Similar to deployment phase with EAE


© 2011 Unisys Corporation. All rights reserved.

Page
46

Application

Database

Runtime
Application

MCP Host

Application
Builder

COBOL
Files

BLD

Code
Libraries

Compile
and Bind

WFL

Questions

© 2011 Unisys Corporation. All rights reserved.

Page
47