Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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