Upload
daniela-hubby
View
216
Download
0
Embed Size (px)
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