Alexey Miroshnikov InfoStroy Ltd. Locatioin: St.Petersburg, Russia Established: 1990 APL: since 1979...

Preview:

Citation preview

MODERN APL APPLICATION DESIGN

Alexey MiroshnikovInfoStroy Ltd

2

INFOSTROY

Locatioin: St.Petersburg, Russia Established: 1990 APL: since 1979 First APL conference: 1990, Copenhagen

People: 42+

Markets: Construction (planning and estimating software)Investment (asset management and trade settlement software)

Dyalog 2007 GamaGlobal

3

THE STARTING POINT

GAMAGlobal Asset Management Assistant

SeMaTrade Settlement Manager

iFundFund Manager

A0Construction Planning and Estimating

Dyalog 2007 GamaGlobal

4

GAMA

Dyalog APL The database management - the file server The user interface – originated from DOS Scalability and load balancing - was not really

addressed Communications are synchronous.

The application - in financial terms the application has financial instruments split between modules

Dyalog 2007 GamaGlobal

5

GAMA

Client Base – 14 companies Biggest installation – 35 workstations

After 12 years GAMA considered as the No. 1 at the Russian investment market and is getting similar position on the rest of the post soviet space.

Dyalog 2007 GamaGlobal

6

SEMA

Delphi The database - Interbase or MS SQL

Server – client server application The user interface – provided by Delphi

5 Scalability was not properly addressed. Communications are synchronous.

Dyalog 2007 GamaGlobal

7

SEMA

Client Base – 4 companies Biggest installation – 15 workstations

SeMa position at the Russian marketis second to none.

Dyalog 2007 GamaGlobal

8

IFUND

Delphi The database - MS SQL Server or any

conventional SQL DBMS. Client-server Could be better user interface. Delphi

5. Scalability - provided Communications are synchronous

Dyalog 2007 GamaGlobal

9

IFUND

One of the best at the Russian market

Dyalog 2007 GamaGlobal

10

A0

Delphi (used to be APL*PLUS II) The database - MS SQL Server – client

server application The user interface – provided by Delphi

5 Scalability was not properly addressed. Communications are synchronous

Dyalog 2007 GamaGlobal

11

A0

Client Base >> 3000 companies Biggest installation – 92 workstations

After 20 years A0 considered as one of the best at the Russian construction market

Dyalog 2007 GamaGlobal

12

PEOPLE

42+ - the staff at the moment

Three development teams Hard to get APLers Hard to find right people Hard to keep them Sharp rise of salaries challenges the

developers time management and project management

Dyalog 2007 GamaGlobal

13

THE GROUTH CHALLENGE

Construction: from 4 workstations per company in average(15 competitors)to big instalations up to 100 workstations [TATOIL](no competition)

Investments: “Think big”…from 200 trades a day to 15,000 trades a dayfrom 5 WS to 40-50 WS per company

Dyalog 2007 GamaGlobal

14

SOME PROBLEMS…

Having something to loose … Too many products Too many development teams Too many software platforms Too many duplications Too old looking user interface Too scale sensitive Too complex to develop and support Too hard to control Not very efficient

Dyalog 2007 GamaGlobal

15

To solve all listed above… Scalable Asynchronous Stateless KISS

Dyalog 2007 GamaGlobal

THE CHALLENGE WE FACE

16

THE APPROACH

Re-use Hybrid if that helps Integrate as much as possible Unify where possible

Only the best and proven tools

Dyalog APL (V11.1 as soon as possible) Depart from Delphi (5->2006->C# in 2-3 years)

Dyalog 2007 GamaGlobal

17

KEEP IT SIMPLE

Parameters

Computation

Input DataOutput Data

Dyalog 2007 GamaGlobal

18

KEEP IT SIMPLE

Parameters

Computation

Input DataOutput Data

Which computation

Where to get the computationparameters

Where to get the input data

Where to store the resultsDyalog 2007 GamaGlobal

19

KEEP IT SIMPLE

Parameters

ComputationInput Data

Output Data

Database orData Store

Computationor Service

Dyalog 2007 GamaGlobal

20

KEEP IT SIMPLE

Computation

Database

Computation

Database

Computation

Database

Computation

Database

Dyalog 2007 GamaGlobal

21

ZOOMING IN …

Algorithm (Business Logic) Database

ServiceServiceService

Database

Dyalog 2007 GamaGlobal

22

ZOOMING IN …

Algorithm (Business Logic) Database

ServiceServiceService

Database

Algorithm

Parameters

Input Data

Output Data

Dyalog 2007 GamaGlobal

23

USER

Algorithm (Business Logic) Database

ServiceServiceService

Database

Scheduler

Algorithm

Parameters

Input Data

Output Data

Dyalog 2007 GamaGlobal

24

THE BUS

Algorithm (Business Logic) Database

ServiceServiceService

Database

Scheduler

The Bus

Dyalog 2007 GamaGlobal

25

THE BUS

Algorithm (Business Logic) Database

ServiceServiceService

Database

Scheduler

The Bus

Dyalog 2007 GamaGlobal

The ESB (Enterprise Service Bus) acts as he intelligent, distributed, transactional, and messaging layer for connecting applications, diverse data, and other services that are commonly distributed throughout an enterprise computing infrastructure.The ESB provides mediation, messaging, events, as well as the Business connection.

A SOA (Service-Oriented Architecture) is a framework for integrating business processes and supporting IT infrastructure as secure, standardized components – services – that can be reused and combined to address business priorities.

26

CLIENT

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Sync

Async

UI

UI

Data AwareControls (Browsing)

PresentationManager

Client Manager

Dyalog 2007 GamaGlobal

27

DOCUMENT LIFE CYCLE MANAGER

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Document Life Cycle

Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

Data AwareControls (Browsing

)

PresentationManager

Client Manager

Sync

Dyalog 2007 GamaGlobal

28

APPLICATION CONTEXT MANAGER

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Document Life Cylce

Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

SyncApplication Context Manager

Dyalog 2007 GamaGlobal

29

RESOURCE MANAGER

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

SyncApplication Context Manager

Resource Manager

Dyalog 2007 GamaGlobal

30

CLUSTER MANAGER

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

SyncApplication Context Manager

Resource Manager

Dyalog 2007 GamaGlobal

31

SERVER – SERVICE GROUPS

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

SyncApplication Context Manager

Resource Manager

Utility Services

Service Level

Automation

Business LogicDyalog 2007 GamaGlobal

32

WHAT IS BEHIND THE BLOCKS

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Sync

Async

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

SyncApplication Context Manager

Resource Manager

Dyalog 2007 GamaGlobal

33

WHAT IS BEHIND THE BLOCKS

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

Application Context Manager

Resource Manager

Dyalog 2007 GamaGlobal

34

SQL SERVER

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

Application Context Manager

Resource Manager

MS SQL Server 2005

Dyalog 2007 GamaGlobal

35

CLUSTER MANAGER

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

UI

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

Application Context Manager

Resource Manager

MSCS - MS Cluster Server

Dyalog 2007 GamaGlobal

36

RESOURCE MANAGER

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

UI

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

Application Context Manager

Resource Manager

System.Resources + Dyalog APL

Dyalog 2007 GamaGlobal

37

MESSAGE QUEUING

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

Application Context Manager

Resource Manager

MSMQ

Dyalog 2007 GamaGlobal

38

USER INTERFACE

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

UI

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

Application Context Manager

Resource Manager

Developer Express DxperienceXtra Toolkit

Dyalog 2007 GamaGlobal

39

OLD GAMA

Dyalog 2007 GamaGlobal

40

GAMA GLOBAL

Dyalog 2007 GamaGlobal

41

NEW GAMA

Dyalog 2007 GamaGlobal

42

USER INTERFACE

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

UI

UI

Data AwareControls

PresentationManager

Client Manager

Application Context Manager

Resource Manager

Developer Express DxperienceXtra Toolkit

Dyalog 2007 GamaGlobal

43

USER INTERFACE (WEB BASED)

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager

Application Context Manager

Resource Manager

PresentationManager

Client Manager

Web Server

Web Client

Developer Express Dxperience

ASPx Toolkit Dyalog 2007 GamaGlobal

44

DYALOG APL

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

UI

Data AwareControls

PresentationManager

Client Manager

Application Context Manager

Resource Manager

Dyalog 2007 GamaGlobal

45

LOAD BALANCING

Message Queuing

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

Application Context Manager

Resource Manager

Dyalog 2007 GamaGlobal

46

SCALABILITY

The Bus

Sch

edule

r Algorithm (Business Logic) Database

Database

SQL Server

Cluster Manage

r

Document Life Cycle

Manager Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

Async

Data AwareControls (Browsin

g)

PresentationManager

Client Manager

UI

Data AwareControls (Browsing

)

PresentationManager

Client Manager

Application Context Manager

Resource Manager

Dyalog 2007 GamaGlobal

47

GamaGlobal

Dyalog 2007 aim@infostroy.ru www.gama.ru

Recommended