Download Modern APL Application Design

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Alexey Miroshnikov
InfoStroy Ltd
MODERN APL APPLICATION DESIGN
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
2
THE STARTING POINT




Dyalog 2007
GAMA
Global Asset Management Assistant
SeMa
Trade Settlement Manager
iFund
Fund Manager
A0
Construction Planning and Estimating
GamaGlobal
3
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
4
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
5
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
6
SEMA
Client Base – 4 companies
 Biggest installation – 15 workstations


SeMa position at the Russian market
is second to none.
Dyalog 2007
GamaGlobal
7
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
8
IFUND

One of the best at the Russian market
Dyalog 2007
GamaGlobal
9
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
10
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
11
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
12
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 day
from 5 WS to 40-50 WS per company
Dyalog 2007
GamaGlobal
13
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
14
THE CHALLENGE WE FACE
 To
solve all listed above…
 Scalable
 Asynchronous
 Stateless
 KISS
Dyalog 2007
GamaGlobal
15
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
16
KEEP IT SIMPLE
Parameters
Input Data
Dyalog 2007
Computation
GamaGlobal
Output Data
17
KEEP IT SIMPLE
Which computation
Parameters
Where to get
the computation
parameters
Input Where
Data
Computation
Output Data
to get
the input data
Where to store the results
Dyalog 2007
GamaGlobal
18
KEEP IT SIMPLE
Database or
Data Store
Parameters
Input Data
Dyalog 2007
Computation
GamaGlobal
Output Data
Computation
or Service
19
KEEP IT SIMPLE
Database
Database
Database
Database
Computation
Computation
Computation
Computation
Dyalog 2007
GamaGlobal
20
ZOOMING IN …
Algorithm (Business Logic) Database
Database
Service
Dyalog 2007
Service
GamaGlobal
Service
21
ZOOMING IN …
Algorithm (Business Logic) Database
Database
Service
Service
Service
Algorithm
Parameters
Output Data
Input Data
Dyalog 2007
GamaGlobal
22
USER
Algorithm (Business Logic) Database
Scheduler
Database
Service
Service
Service
Algorithm
Parameters
Input Data
Output Data
Dyalog 2007
GamaGlobal
23
THE BUS
Algorithm (Business Logic) Database
Scheduler
Database
Service
Service
Service
The Bus
Dyalog 2007
GamaGlobal
24
THE BUS
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
Algorithm (Business Logic) Database
enterprise computing infrastructure.
Scheduler
The ESB
provides mediation, messaging, events, as well as the Business
Database
connection.
Service
Service
Service
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
The Bus
combined to address business priorities.
Dyalog 2007
GamaGlobal
25
CLIENT
Scheduler
SQL
Server
Data
Aware
Controls
(Browsing)
Sync
UI
Algorithm (Business
Logic) Database
Presentation
Manager
Database
UI
Client
Manager
Async
The Bus
Dyalog 2007
GamaGlobal
26
DOCUMENT LIFE CYCLE MANAGER
Scheduler
SQL
Server
Algorithm (Business Logic)
Database
Database
Data Aware
Controls
Sync
(Browsing)
Data Aware
Controls
Sync
Document
Life Cycle
Manager
Sync
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
Async
Client
Manager
Async
The Bus
Dyalog 2007
GamaGlobal
27
APPLICATION CONTEXT MANAGER
Scheduler
SQL
Server
Algorithm (Business Logic)
Database
Database
Data Aware
Controls
Sync
(Browsing)
Data Aware
Controls
Sync
Document
Life Cylce
Manager
Application
Context
Manager
Sync
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
Async
The Bus
Dyalog 2007
GamaGlobal
28
RESOURCE MANAGER
Scheduler
SQL
Server
Algorithm (Business Logic)
Database
Database
Data Aware
Controls
Sync
(Browsing)
Data Aware
Controls
Sync
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
Sync
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
Async
The Bus
Dyalog 2007
GamaGlobal
29
CLUSTER MANAGER
Scheduler
Cluster
Manager
Algorithm (Business Logic)
Database
Database
SQL
Server
Data Aware
Controls
Sync
(Browsing)
Data Aware
Controls
Sync
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
Sync
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
Async
The Bus
Dyalog 2007
GamaGlobal
30
SERVER – SERVICE GROUPS
Service Level
Automation
Scheduler
Cluster
Manager
Algorithm (Business Logic)
Database
Database
SQL
Server
Data Aware
Controls
Sync
(Browsing)
Data Aware
Controls
Sync
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
Sync
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Utility
The Bus Services
Async
Client
Manager
Async
Business Logic
Dyalog 2007
GamaGlobal
31
WHAT IS BEHIND THE BLOCKS
Scheduler
Cluster
Manager
Algorithm (Business Logic)
Database
Database
SQL
Server
Data Aware
Controls
Sync
(Browsing)
Data Aware
Controls
Sync
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
Sync
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
Async
The Bus
Dyalog 2007
GamaGlobal
32
WHAT IS BEHIND THE BLOCKS
Cluster
Manager
SQL
Server
Data Aware
Controls
(Browsing)
Scheduler
Data Aware
Controls
Algorithm (Business Logic)
Database
Database
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
The Bus
Dyalog 2007
GamaGlobal
33
SQL SERVER
Cluster
Manager
SQL
Server
MS SQL Server 2005
Data Aware
Controls
(Browsing)
Scheduler
Data Aware
Controls
Algorithm (Business Logic)
Database
Database
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
The Bus
Dyalog 2007
GamaGlobal
34
CLUSTER MANAGER
Cluster
Manager
MSCS - MS Cluster Server
SQL
Server
Data Aware
Controls
(Browsing)
Scheduler
Data Aware
Controls
Algorithm (Business Logic)
Database
Database
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
(Browsing)
Presentation
Manager
UI
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
The Bus
Dyalog 2007
GamaGlobal
35
RESOURCE MANAGER
Cluster
Manager
SQL
Server
Data Aware
Controls
System.Resources + Dyalog APL
(Browsing)
Scheduler
Data Aware
Controls
Algorithm (Business Logic)
Database
Database
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
(Browsing)
Presentation
Manager
UI
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
The Bus
Dyalog 2007
GamaGlobal
36
MESSAGE QUEUING
Cluster
Manager
SQL
Server
Data Aware
Controls
(Browsing)
Scheduler
Data Aware
Controls
Algorithm (Business Logic)
Database
Database
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
MSMQ
UI
Async
Client
Manager
The Bus
Dyalog 2007
GamaGlobal
37
USER INTERFACE
Cluster
Manager
SQL
Server
Data Aware
Controls
(Browsing)
Scheduler
Data Aware
Controls
Algorithm (Business Logic)
Database
Database
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
(Browsing)
Presentation
Manager
UI
Data Aware
Controls
Client
Presentation
Manager
Manager
Developer Express Dxperience
Xtra Toolkit
UI
(Browsing)
Async
Client
Presentation
Manager
Manager
Async
Client
Manager
The Bus
Dyalog 2007
GamaGlobal
38
OLD GAMA
Dyalog 2007
GamaGlobal
39
GAMA GLOBAL
Dyalog 2007
GamaGlobal
40
NEW GAMA
Dyalog 2007
GamaGlobal
41
USER INTERFACE
Cluster
Manager
SQL
Server
Data Aware
Controls
(Browsing)
Scheduler
Data Aware
Controls
Algorithm (Business Logic)
Database
Database
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
(Browsing)
Presentation
Manager
UI
Data Aware
Controls
Client
Presentation
Manager
Manager
Developer Express Dxperience
Xtra Toolkit
UI
Async
Client
Presentation
Manager
Manager
Async
Client
Manager
The Bus
Dyalog 2007
GamaGlobal
42
USER INTERFACE (WEB BASED)
Cluster
Manager
Web Server
SQL
Server
Scheduler
Presentation
Manager
Algorithm (Business Logic)
Database
Database
Client
Manager
Resource Manager
Document
Life Cycle
Manager
Web Client
Application
Context
Manager
Developer Express Dxperience
ASPx
Toolkit
The Bus
Dyalog 2007
GamaGlobal
43
DYALOG APL
Cluster
Manager
SQL
Server
Data Aware
Controls
(Browsing)
Scheduler
Data Aware
Controls
Algorithm (Business Logic)
Database
Database
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
The Bus
Dyalog 2007
GamaGlobal
44
LOAD BALANCING
Cluster
Manager
SQL
Server
Data Aware
Controls
(Browsing)
Scheduler
Data Aware
Controls
Algorithm (Business Logic)
Database
Database
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
Message Queuing
Dyalog 2007
GamaGlobal
45
SCALABILITY
Cluster
Manager
SQL
Server
Data Aware
Controls
(Browsing)
Scheduler
Data Aware
Controls
Algorithm (Business Logic)
Database
Database
Resource Manager
Document
Life Cycle
Manager
Application
Context
Manager
(Browsing)
Presentation
Manager
Data Aware
Controls
Client
Presentation
Manager
Manager
(Browsing)
Async
Client
Presentation
Manager
Manager
UI
Async
Client
Manager
The Bus
Dyalog 2007
GamaGlobal
46
Dyalog 2007
aim@infostroy.ru
www.gama.ru
47
Related documents