470 likes | 584 Views
Alexey Miroshnikov InfoStroy Ltd. Modern APL Application Design. Locatioin : St.Petersburg, Russia Established: 1990 APL: since 1979 First APL conference: 1990, Copenhagen People: 42+
E N D
Alexey MiroshnikovInfoStroy Ltd Modern APL Application Design
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 Infostroy
GAMAGlobal Asset Management Assistant SeMaTrade Settlement Manager iFundFund Manager A0Construction Planning and Estimating Dyalog 2007 GamaGlobal The starting point
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 GAMA Dyalog 2007 GamaGlobal
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. GAMA Dyalog 2007 GamaGlobal
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. SeMa Dyalog 2007 GamaGlobal
Client Base – 4 companies Biggest installation – 15 workstations SeMa position at the Russian marketis second to none. SeMa Dyalog 2007 GamaGlobal
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 iFund
One of the best at the Russian market ifund Dyalog 2007 GamaGlobal
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 A0 Dyalog 2007 GamaGlobal
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 A0
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 People Dyalog 2007 GamaGlobal
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 The grouth challenge Dyalog 2007 GamaGlobal
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 Some problems…
To solve all listed above… Scalable Asynchronous Stateless KISS Dyalog 2007 GamaGlobal The challenge we face
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 The approach
Dyalog 2007 GamaGlobal Keep it simple Parameters Input Data Computation Output Data
Dyalog 2007 GamaGlobal Keep it simple Which computation Where to get the computationparameters Where to get the input data Where to store the results Parameters Input Data Computation Output Data
Dyalog 2007 GamaGlobal Keep it simple Parameters Database orData Store Computationor Service Output Data Computation Input Data
Dyalog 2007 GamaGlobal Keep it simple Database Database Database Database Computation Computation Computation Computation
Dyalog 2007 GamaGlobal Zooming in … Algorithm (Business Logic) Database Database Service Service Service
Dyalog 2007 GamaGlobal Zooming in … Algorithm (Business Logic) Database Database Service Service Service Algorithm Parameters Output Data Input Data
Dyalog 2007 GamaGlobal user Algorithm (Business Logic) Database Scheduler Database Service Service Service Algorithm Parameters Input Data Output Data
Dyalog 2007 GamaGlobal The bus Algorithm (Business Logic) Database Scheduler Database Service Service Service The Bus
Dyalog 2007 GamaGlobal 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 enterprise computing infrastructure. The ESB provides mediation, messaging, events, as well as the Business connection. Algorithm (Business Logic) Database Scheduler Database 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 combined to address business priorities. The Bus
Dyalog 2007 GamaGlobal Client SQL Server Data AwareControls (Browsing) Sync UI Algorithm (Business Logic) Database Scheduler Database PresentationManager UI Client Manager Async The Bus
Dyalog 2007 GamaGlobal Document Life Cycle Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) Sync Sync Sync Algorithm (Business Logic) Database Scheduler Database Document Life Cycle Manager PresentationManager PresentationManager PresentationManager Client Manager Client Manager Client Manager Async Async Async The Bus
Dyalog 2007 GamaGlobal Application context manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) Sync Sync Sync Algorithm (Business Logic) Database Scheduler Database Document Life Cylce Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async Async The Bus
Dyalog 2007 GamaGlobal Resource manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) Sync Sync Sync Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async Async The Bus
Dyalog 2007 GamaGlobal Cluster manager Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) Sync Sync Sync Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async Async The Bus
Dyalog 2007 GamaGlobal Server – Service groups Service Level Automation Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) Sync Sync Sync Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async Async Utility Services The Bus Business Logic
Dyalog 2007 GamaGlobal What is behind the blocks Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) Sync Sync Sync Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async Async The Bus
Dyalog 2007 GamaGlobal What is behind the blocks Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async The Bus
Dyalog 2007 GamaGlobal SQL server Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) MS SQL Server 2005 Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async The Bus
Dyalog 2007 GamaGlobal Cluster manager Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) MSCS - MS Cluster Server UI Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async The Bus
Dyalog 2007 GamaGlobal Resource manager Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) UI Algorithm (Business Logic) Database System.Resources + Dyalog APL Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async The Bus
Dyalog 2007 GamaGlobal Message queuing Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager MSMQ Async Async The Bus
Dyalog 2007 GamaGlobal User interface Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) UI Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager Developer Express DxperienceXtra Toolkit UI Client Manager Client Manager Client Manager Async Async The Bus
Dyalog 2007 GamaGlobal OLD GAMA
Dyalog 2007 GamaGlobal Gama global
Dyalog 2007 GamaGlobal New gama
Dyalog 2007 GamaGlobal User interface Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls Data AwareControls (Browsing) UI Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager Developer Express DxperienceXtra Toolkit UI Client Manager Client Manager Client Manager Async Async The Bus
Dyalog 2007 GamaGlobal User interface (web based) Cluster Manager SQL Server Web Server PresentationManager Algorithm (Business Logic) Database Scheduler Database Client Manager Web Client Resource Manager Document Life Cycle Manager Application Context Manager Developer Express DxperienceASPx Toolkit The Bus
Dyalog 2007 GamaGlobal Dyalog APL Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async The Bus
Dyalog 2007 GamaGlobal Load balancing Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async Message Queuing
Dyalog 2007 GamaGlobal SCALABILITY Cluster Manager SQL Server Data AwareControls (Browsing) Data AwareControls (Browsing) Data AwareControls (Browsing) Algorithm (Business Logic) Database Scheduler Database Resource Manager Document Life Cycle Manager Application Context Manager PresentationManager PresentationManager PresentationManager UI Client Manager Client Manager Client Manager Async Async The Bus
GamaGlobal Dyalog 2007 aim@infostroy.ru www.gama.ru