Platform architecture overview
The primary purpose of the platform is increasing the level of abstraction for applied solution development and usage scenarios. This advances you from low-level technical concepts to more substantial high-level ones, which are widely used by experts and end users in the subject area. This significantly speeds up and unifies the development and support of applied solutions.
At the same time the platform solves typical tasks related to performance, ergonomics, functionality, and more.
- Platform and applied solutions
- Metadata as a method of describing applied solutions
- Building applied solutions based on a model
- Standard applied object prototypes
- Synergy of tools and technologies
- Multitier architecture
- Fault-tolerant cluster with load balancing
- High-level interface model
- Web client and thin client
- Mobile platform
- Intelligent reporting tools
- Building distributed and integrated information systems
- Cloud technology
1C:Enterprise system is explicitly divided into platfrom and applied solution parts. The platform serves as a framework for running applied solutions:
- The platform is a basis for building applied solutions.
- The platform provides execution environment for applied solutions.
- The platform provides tools for development, administration, and support of applied solutions.
In addition to that, an applied solution is an independent entity that can be delivered as a standalone software product. Still, it fully relies on the platform technology.
An applied solution is not literally written in a programming language. A programming language is only used when necessary.
The basis of an applied solution is its metadata. It forms a structured declarative description of an applied solution. Metadata provides the object hierarchy for building all the major parts of an applied system, which defines all aspects of its behavior. When an applied solution is running, the platform actually "plays" (interprets) metadata, which provides access to applied solution functionality.
Metadata describes data structures, type content, object relations, their behavior and visual presentations, access restriction system, user interface, and so on. Metadata defines not only what is stored in the database but also the purpose of stored data, its role in the system, and relations between data arrays.
The programming language is only used for solving tasks that do require algorithmic descriptions, such as tax calculations or verification of entered data.
The platform is oriented on building applied solutions on the basis of a specific model. This model describes the entire philosophy of applied solution development: data structure building methods, data relation types, data manipulation techniques, business logic description methodology, relations between data and interface objects, dividing functionality between system levels, and more.
It is important that all applied solutions follow that model, which ensures their uniformity and predictable behavior. Learn more...
1C:Enterprise development model assumes that the entire applied solution is described by its metadata as a set of applied objects based on a certain number of prototypes (classes). Each prototype describes a set of applied solution objects or processes that have similar behavior and similar roles in the applied solution concept. Examples of prototypes are catalogs, documents, and accumulation registers.
Each prototype has a basic implementation that defines the functionality of objects based on the prototype: structure of stored data with some predefined fields, types used in the programming language, methods, events, properties, typical operations, typical viewing and editing options, access restrictions, and so on.
So an applied solution is essentially comprised of objects, each object group having a specific role in the applied solution. This approach significantly strengthens the methodology of describing the system in terms of metadata and the model-based building of applied solutions. Learn more...
The key platform feature is the sufficiency of its tools for building applied solutions that solve typical business tasks. This ensures deep synergy between all platform development tools and techniques.
|Thick client||Thin client||Web client||Form designer||Query designer|
|Business processes||User activity log||Report designer||Application UI designer|
|Distributed infobases||XML data exchange||Editor help||Role editor|
|UI auto generation||Full-text search||Business logic wizards|
(register records, print, generation, and more)
|Customization for users||Data composition system||Web services||Event subscriptions|
|Data mining||Aggregates||Business diagrams||Group development and version control|
|Intelligent reporting system||Installation and update tools|
|Role-based access restrictions||Record-level access restrictions||Application merging tools|
|Business components||Internationalization||Translation tools|
|Metadata-driven architecture||Integration tools|
|Object model of data processing||Database queries||Internet tools library (HTTP, FTP, SMTP, POP3, IMAP)|
|Debugger and performance diagnostics|
|Database support: 1C, MS SQL Server, PostgreSQL,|
IBM DB2, Oracle Database
|Built-in programming language|
|Cryptographic protection||Multitenancy||Functional options|
For example, let us look at the type system. Platform developers use a single type system for database interactions, for business logic implementation, and for designing UI solutions. This is why developers do not experience any type conversion issues when switching between applied system levels.
Another example is the modern data management concept, which combines several data presentation methods:
- Storing data in a database
- Describing data as programming language objects
- Converting data to XML or JSON format
- Describing applied solution structure using the REST model (REST API)
Virtually any data type can be represented using any of these methods, and the method choice depends on applied solution operation mode.
A database provides long-term data storage, which ensures reliability and fast processing of large amounts of data. Data is converted to programming language objects prior to its modification. XML and JSON data format are used for internal exchanges in distributed infobases and for interaction with other information systems. Third-party systems can can access applied solutions using HTTP requests through the REST interface that is automatically generated by the platform. They can receive responses in Atom/XML or JSON format.
All of these data presentation methods rely on a single concept, and therefore no developer effort is required to convert data from one presentation to another. A developer describes an entity once, then the platform generates all required presentations.
Applied solutions based on the platform utilize multitier architecture that includes:
- Client application
- 1C:Enterprise server cluster
- Database server
On one hand, this provides a wide range of scaling options, from personal use to automation of large, geographically dispersed enterprises.
On the other hand, multitier architecture provides the choice between several DBMS for storing applied data.
Major system components can run on both Windows and Linux operating systems. Besides that, 1C:Enterprise web client can run on Mac OS X and Apple iOS computers. Learn more...
Server cluster provides fault tolerance for the following scenarios: server computer failures (including central server failures), termination of working processes, or temporary losses of physical connection between a user workstation and a cluster. This is possible because the option to use backup clusters and backup working processes is available. Some internal cluster operations are also aimed to increase the tolerance to connection losses.
A cluster performs automatic load balancing between its working processes based on real-time analysis of their performance. A system administrator has the option to fine tune the load balancing by limiting the number of connections or processed infobases in the cluster, or by assigning some part of cluster functionality to other working servers.
The main interface generation idea is maximum usage of metadata and data manipulation objects, so that it does not require additional tuning by developer and mostly consists of automatic operations.
Once a developer links an object to a form or a form item, the platform generates the user interface for viewing and editing its data. The platform automatically attaches extensions based on the data type of the form or form item. Learn more...
The platform includes a set of features for multilanguage application support. This includes support of multiple platform interface languages, regional date and number format, and interface text editing tools. Learn more...
Users can choose between two client applications: thin client and web client. Both of then have specific advantages.
Thin client provides broader functionality because it runs on a user workstation. For example, it has access to the client computer file system and can use local licenses installed on the user computer.
Web client is more universal because it does not require installation. Instead of computer operation system environment, it is executed in browser environment. Once a user runs a browser and enters the address of the infobase web server, the web client is delivered to their computer and started. The web client allows running applied solutions on computers that are not prepared (or even cannot be prepared) for this in advance.
It is important that applied solution development is not affected by the user choice of the client. The web client compiles client modules developed in a configuration and executes them on the client side.
Mobile platform is a technology for running the platform on tablets and smartphones. It is used to create applications that run autonomously on mobile devices. The main purpose of mobile applications is forming a distributed information system and exchanging data with the main application. When connection to the main application is not available, a mobile application should function as a standalone workstation.
Mobile application development tools and terminology are identical to those of desktop applications. The only difference shows up at the final development stage because some specific actions are required for building a mobile application distribution kit. Learn more...
Report generation tools are tightly integrated with other platform features and provide powerful options for interactive report generation. This guarantees that reports perfectly fit the application interface. Users do not see any differences between the generic interface and reporting interface.
The most interesting report generation tool is data composition system, which provides the option to generate a rich and flexible report with minimal effort. Learn more...
The platform includes robust exchange tools intended for solving a variety of tasks, such as support of geographically distributed infobases or building complex heterogeneous information systems that include both 1C:Enterprise solutions and third-party software.
The platform also features a set of integration tools, which are based on open standards and data transfer protocols and therefore support integration with virtually all third-party hardware and software available on the market. These include web service techhologies (HTTP, REST, and SOAP), data exchange formats (JSON and XML), protocols (HTTP and FTP), and more. Learn more...
1C:Enterprise applied solutions can run as cloud services.
The data separation platform feature serves as a basis for its cloud technology. Due to data separation, applied solutions can run in multitenant architecture where a single object instance running on a server is used by many customers or organizations.
A scalable fault-tolerant server cluster provides services for a large number of simultaneous customer connections.
Customers access a cloud infobase over HTTP or HTTPS, which ensures service availability from any location in the world.
Finally, 1C:Enterprise cloud service infrastructure supports SaaS application delivery model. This business model implies that a vendor develops and manages an applied solution, while providing access to customers over the Internet. This approach eliminates the need to install, update, and support software and hardware on the customer side. Customers only pay for the service.