【Department paper】On the design of software multi-layer architecture

topic

On the Design of Software Multilayer Architecture

topic introduction

At present, three-tier architecture or multi-tier architecture has become the mainstream of software development . Adopting multi-tier architecture has many advantages, such as effectively reducing construction and maintenance costs, simplifying management, adapting to large-scale and complex application requirements, and adapting to continuous changes and new business requirements, etc. In the development of multi-tier architecture , the design of middleware plays an important role.

Please discuss the following three aspects in turn around the topic of "software multi-layer architecture design".

  • Briefly describe the software projects you participated in designing and developing, and the main tasks you held.

  • Discuss in detail how you designed the multi-tier architecture , describe in detail its design process , problems encountered , and solutions .

  • Analyze the effect of your multi-layer architecture , and what needs to be further improved , and how to improve ?

Thesis points

Key points for question 1 :

  • The outline of the software system: the background of the system, the initiator, the purpose, the development cycle, the delivered products, etc.
  • The role of "I" and the main work.

Key points for question 2 :

  • How to design a multi-layer architecture, describe in detail the design process, problems encountered, and solutions

Key points for question 3 :

  • What is the effect of adopting a multi-tier architecture
  • What areas still need further improvement
  • how to improve

model essay

Summary

  My unit is one of the major domestic commercial banks. As the main technical backbone of the unit, in January 2019, I presided over the development of the forward foreign exchange settlement and sales system , which is a subsystem of our bank's comprehensive business system . Since the banking system has high requirements on security, reliability, usability and response speed, I chose a three-tier C/S structure as the software architecture of the system. In the process of designing the three-tier structure in detail, I adopted character The terminal is the presentation layer , CICS is the middle layer , DB2 is the data layer , and the CICS group and parallel batch method are adopted to solve the problems encountered in the design, ensuring that the forward foreign exchange settlement and sales system is completed as planned and put into production smoothly. The three-layer structure of the software has been well received and recognized by colleagues and leaders. However, I also see some deficiencies in the design of the three-tier structure ; for example, the load balancing algorithm in the middle layer is too simple, which may easily cause system load imbalance, and the parallel batch design is not rigorous enough, which may easily cause resource conflicts.

text

  My unit is one of the major domestic commercial banks. As we all know, there is a "twenty- eight theorem " in the banking business : that is, 80% of the bank's profits are created by 20% of its customers . In order to better serve major customers, adapt to the vigorous development of China's foreign trade, and promote the development of China's foreign trade, in January 2020, our bank launched the forward foreign exchange settlement and sales business . The so-called forward settlement and sales of foreign exchange means that after the enterprise obtains the approval of the China Foreign Exchange Administration, it formulates a contract with the bank based on the foreign trade contract and other documents. The foreign exchange rate, and the foreign exchange transaction transaction at the exchange rate on that day . The forward settlement system is a subsystem of our bank's comprehensive business system. It mainly includes the online part, the batch part, the clearing part and the currency exchange part, and has the functions of agreement management, contract management, quotation management, foreign exchange exposure management, and account management. , data split management, report management, post-event supervision and other functions. As one of the main technical backbones of the unit, I presided over and participated in the project planning, demand analysis, design, coding and testing phases of the long-term foreign exchange sales system. (Background of the project)

  Because the banking system has high requirements on security, reliability, usability and response speed, I chose a three-tier C/S structure as the software architecture of the system. Below, I will introduce the three-tier C/S software system in detail. Structural design process. (Layered detailed introduction to the three-tier C/S software architecture)

  The presentation layer is a character terminal . Our bank has been using the graphical user terminal attached to IBM's V2.0 to develop terminal programs, but in the process of using it, the business staff of the branch reported that the response speed is relatively slow, especially for those with a relatively large business volume. Sometimes, the speed is even slower. To this end, our bank has recently developed a set of character terminals by itself, using Vue as the development language, which has the characteristics of fast response, strong interaction ability, easy to learn, coding blocks and powerful functions. After weighing the advantages and disadvantages of the two, I decided to choose Vue as the presentation layer. (presentation layer)

  The middle layer CTS , first of all, our bank has maintained a good cooperative relationship with IBM, and most of the technology and equipment of our bank have adopted IBM's products, including mainframes, because CICS has been supported on IBM mainframes It has been widely used and achieved great success in our bank. In order to ensure the compatibility and interoperability with the original system, I used IBM's CTS as the middle layer to connect the presentation layer and the database layer, simplify the design of the system, and make the development Personnel can focus on the development of presentation logic and business logic, which shortens the development cycle, reduces development costs and maintenance costs, and improves the success rate of development; secondly, for the business logic of the middle layer, I use the Java that my bank has been using As a development platform, it is easy to use and is especially suitable for developing business logic. It can also enable developers to develop business logic quickly and accurately, ensuring the smooth completion of the forward foreign exchange settlement and sale system; finally, due to the use of CTS, it ensures It ensures the openness and interoperability of the system, ensures the compatibility with the original online system of our bank and other systems, and protects the original investment of our bank. (middle layer CTS)

  The data layer is DB2 . Due to its excellent performance in the mainframe transaction processing system, our bank has been using DB2 as the database for transaction processing, and has achieved great success. It has accumulated its own unique experience and a large number of talents in the use of DB2 database , in order to continue the continuity of technology and protect the original investment, I choose DB2 as the data layer. (data layer DB2)

However, I also encountered some difficulties   during the design process , and I mainly adopted the following methods to solve them . (What problem did you encounter and how to solve it)

  As we all know, the banking system has high requirements for security, reliability, availability and response speed. In particular, our bank has recently carried out data centralization . There are two data centers in the country , and the analysis is in two places, XX and XY, so the above requirements It is even higher. In order to ensure the safe production of our bank, I adopted the CTS group technology . The so-called CICS group is a group of the same CTS. Each CTS has the same business logic, which together serve as the middle layer and eliminates Single point of failure ensures high availability of the system . In order to simplify the design of the system and shorten the communication time, I adopted a simple load balancing algorithm . For example, this time it is assigned to the Nth CTS, and next time it is assigned to the N+1th CTS. When it reaches the last one, it starts from the first In order to better achieve fault tolerance, I adopted the method that when the Nth CTS fails, transfer the business it is processing to the N+1th to continue processing, which greatly increases the availability of the system and can be used for customers Provide better service; In addition, I also adopted the technology of database connection pool , which greatly shortened the database processing speed and provided the system operation speed. (CTS group technology)

  Parallel batches , the banking system has to process a large amount of data every day. In order to ensure the smooth progress of daytime business, some of the accounting processing, such as some internal accounting processing, or agency charging business and general ledger and sub-account checking and other functions are required. It needs to be processed in batches at night, but this part of the data becomes even larger after the data is collected. Our bank used to submit batch jobs serially to process in batches, which is far from meeting the billions of data processing requirements of the data center. After discussing with other technical backbones, and after full rotation and experimentation, I decided to adopt the parallel batch technology. The so-called **parallel batch technology is to use IBM's OPC technology to process batch jobs in the order of time and business processing. On the basis of unified submission by the operator, DB2 technology is used to divide several regions into one partition for processing separately. **Greatly improved the data processing speed of the banking system and ensured the advancement of the three-tier structure of the forward foreign exchange settlement and sale system. In the process of parallel batch design, I consider that batch jobs may be interrupted due to network errors or free conflicts, so when writing batch programs and jobs, it is necessary to support resuming of breakpoints to ensure smooth production. (parallel batch technology)

  Due to the proper design of the three-tier structure of my software and the effective measures taken to solve the problems encountered in the design, the forward foreign exchange settlement and sales system was finally completed according to the plan and put into production smoothly, which not only ensured the system's development, usability and Interoperability has achieved good social and economic benefits, and my software three-tier structure design has been unanimously recognized and praised by colleagues and leaders, laying a good foundation for our future system development. (project effectiveness)

  While summing up the experience, I also saw my shortcomings in the design of the three-tier software structure: first, the load algorithm is too simple , which may easily cause the system load imbalance; because the processing time of each business is different, some The gap may be very far, and the simple sequence plus one load distribution algorithm will easily cause load imbalance. However, if a distributor is specially set up, a network communication will be added, which will slow down the system speed, which requires high response speed. It is also not feasible for the banking system, so I decided to adopt a statistical allocation algorithm , that is, when receiving a request, it is directly allocated to the CTS according to the preset weight and probability. Secondly, due to various reasons such as insufficiently rigorous design of the batch job sequence, it is easy to cause resource conflicts ; after the forward foreign exchange settlement and sale system has been running for a period of time, the maintenance personnel of the data center discovered that the system sometimes has resource conflicts. After careful analysis, I found that because the business volume of each business is different every day, resource conflicts will occur when two sequential jobs access the same table . In addition, during the running of OPC jobs, Other jobs submitted by the operator may also cause resource conflicts with the OPC job at this time . For the first case, you can adjust the job sequence without affecting the business or use DB2's shared lock technology for query jobs . In the second case, it is necessary to formulate a specification, stipulating that certain jobs are not allowed to be submitted for resolution within a certain period of time . In order to better carry out the system analysis work, I will continue to learn in the future work practice, improve my own quality and ability, and contribute my meager strength to the software cause of our country. (Insufficient Items and Summary)

Thesis Supplementary Knowledge

CICS : CICS (Customer Information Control System, Customer Information Control System), also known as transaction management system, transaction monitoring system and application server. CICS is a middleware product (Middleware). It assists the operating system to efficiently process business transactions, so that the operating system does not need to pay attention to these complex transaction loads, and the operating system only needs to pay attention to non-business workloads. The greatest contribution of CICS is the in-depth analysis of common requirements that have nothing to do with business logic in the real-time transaction processing system (OLTP), only related to system operation, and summarize the above-mentioned complex software functions to help applications in the form of servers. The program implements these functions and plays the role of application management during the operation of the entire system. The role of the database server is to manage all data in the system, and the role of the transaction server is to manage all applications and application-related resources in the system. The application program on the server requests the scheduling service of CICS, runs under the management and coordination of CICS, and accesses the database and files. Since CICS centrally manages all resources related to the application system, it can run in an optimized manner to ensure optimal overall performance.

Guess you like

Origin blog.csdn.net/qq_44033208/article/details/130600737