CN110633095B - System and method for software development - Google Patents

System and method for software development Download PDF

Info

Publication number
CN110633095B
CN110633095B CN201811495188.6A CN201811495188A CN110633095B CN 110633095 B CN110633095 B CN 110633095B CN 201811495188 A CN201811495188 A CN 201811495188A CN 110633095 B CN110633095 B CN 110633095B
Authority
CN
China
Prior art keywords
code
server
network
software
svn
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811495188.6A
Other languages
Chinese (zh)
Other versions
CN110633095A (en
Inventor
唐沂
王�华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Perfect World Beijing Software Technology Development Co Ltd
Original Assignee
Perfect World Beijing Software Technology Development Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Perfect World Beijing Software Technology Development Co Ltd filed Critical Perfect World Beijing Software Technology Development Co Ltd
Priority to CN201811495188.6A priority Critical patent/CN110633095B/en
Publication of CN110633095A publication Critical patent/CN110633095A/en
Application granted granted Critical
Publication of CN110633095B publication Critical patent/CN110633095B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

The invention discloses a system and a method for software development, wherein the system comprises the following steps: a first code server managing a first code in a first network and installing a first SVN server software; a second code server that manages second code in a second network and that installs second SVN server software, wherein the first code is a copy of the second code, wherein the system is capable of synchronizing changes in the second code server to the first code in the first code server through a synchronization mechanism between the first SVN server software and the second SVN server software.

Description

System and method for software development
Technical Field
The present invention relates to computer technology, and more particularly, to a system and method for software development.
Background
In the software development process, the security of the source code needs to be ensured so as not to be leaked.
In this application, the terms "code" and "source code" are used interchangeably unless specifically indicated otherwise. In this application, unless specifically stated otherwise, "program" refers to an executable program compiled from source code.
Referring to fig. 1, for example, in early PC end-stream development, both the server-side code and the client-side code are managed in the same network (usually an intranet), and the code security is ensured by means of physically isolating the network. And the research personnel start the server program and the client program on the PC of the same network to realize the function test. As will be generally understood by those skilled in the art, virtual or simulated software, hardware, or a combination of hardware and software systems are typically used in "functional testing" to simulate the actual equipment used by an actual user of the final developed system when actually put into operation (typically, such simulation is required by a client device). The concept corresponding to the "functional test" is a "true machine test" in which an actual device (referred to as a "true machine device" in this application) used by an actual user when actually putting into operation, such as a mobile phone connected to a commercial communication network used by a game player in a hand-game system, is used by the finally developed system.
However, for a program of a mobile terminal (for example, a mobile game), a client program will eventually run in the mobile terminal of the user, and a development platform used by a developer is a PC, so that the mobile game needs to perform a real machine test in addition to a function test, the function test can run the client program on the PC using a simulator, and the real machine test must install the client program on a real mobile phone to run. Therefore, the intranet and extranet synchronous development situation must be considered, from which the following two code management modes are derived.
Fig. 2 shows a code management mode involving two networks. The management of the code in the development process is mainly performed in the first network (e.g., intranet) (e.g., the code of the client program and the code of the server program are managed at the same time). For example, in an application for a cell phone, the server code and the client code may be managed in an intranet. When the function test is carried out, a server program and a client program generated from a source code are run on a PC of an intranet; and when the real machine test is performed, copying the generated server program and the client program to the external network, and installing the client program to the real machine for running. This mode does not copy the source code to the external network, so the security is high; but can not connect with a true machine to carry out source code level debugging under the condition that no client code exists in an external network, and can not be examined when the problem of difficult and difficult client is encountered.
FIG. 3 illustrates another code management mode, found in a mobile game development environment. In fig. 3, the server code is managed in the intranet, and the client code is managed in the extranet. When performing functional or real machine testing, it is necessary to copy the intranet creation server program to the extranet and test it together with the client program created in the extranet. The mode ensures the safety of the service end code, the external network has a complete client end code, the real machine can be connected for source code level debugging, but the service end program needs to be reproduced and copied to the external network after each modification of the service end code, a large amount of service end code modification (which may be the modification required by the service end code itself or the modification carried out in cooperation with the modification of the client end code) generally exists in the function test stage, and a large amount of development time is wasted when the service end program is copied once each time.
Disclosure of Invention
According to one aspect of the invention, a system for software development may include: a first code server managing a first code in a first network and installing a first SVN server software; a second code server that manages second code in a second network and that installs second SVN server software, wherein the first code is a copy of the second code, wherein the system is capable of synchronizing changes in the second code server to the first code in the first code server through a synchronization mechanism between the first SVN server software and the second SVN server software.
The system also comprises a firewall server positioned between the first network and the second network, wherein the firewall server comprises a first network card and a second network card, the first network card is connected with the first network, and the second network card is connected with the second network.
The first code server is configured to open a first port to the firewall server, the firewall server is configured to open a second port to the second code server, and the firewall server is configured to open a forwarding function.
The first SVN server software and the second SVN server software are configured to have the same software running environment; and the second SVN server software is configured to initiate an auto-sync function.
The system further comprises: a third code server for managing third code in the first network, wherein the first code is capable of generating a first program on the first code server, the third code is capable of generating a second program on the third code server, and the first program and the second program are functionally coordinated.
The system further comprises: a program execution server capable of executing a program in a second network, wherein the system is capable of copying the third code from the third code server to the second network and generating the second program from the copied code to execute at the program execution server.
The system further comprises: a real machine device in a second network, wherein the system is capable of generating the first program from the second code on the second code server to run on the real machine device, and the first program running on the real machine device functionally interoperates with the second program running on the program running server.
According to one aspect of the invention, a method for software development may include: setting a first code server which manages a first code and is provided with first SVN server software in a first network; a second code server is provided in the second network that manages a second code and that installs a second SVN server software, wherein the first code is a copy of the second code, and changes in the second code server are synchronized to the first code in the first code server by a synchronization mechanism between the first SVN server software and the second SVN server software.
The method further comprises the steps of: and setting a firewall server, wherein the firewall server comprises a first network card and a second network card, the first network card is connected with the first network, and the second network card is connected with the second network.
The method further comprises the steps of: setting the first code server to open a first port to the firewall server; setting the firewall server to open a second port to the second code server; and starting a forwarding function on the firewall server.
The method further comprises the steps of: configuring the first SVN server software and the second SVN server software to have the same software running environment; and starting an automatic synchronization function on the second SVN server software.
Drawings
FIG. 1 is a code management mode of a development end-stream according to the prior art.
Fig. 2 is a code management mode for developing a mobile game according to the prior art.
Fig. 3 is another code management mode for developing a mobile game according to the prior art.
Fig. 4 is a code management mode of developing a mobile terminal application according to an embodiment of the present invention.
FIG. 5 is a component of a code management system using SVN synchronization mechanisms according to one embodiment of the invention.
Detailed Description
The present disclosure will now be discussed with reference to several exemplary embodiments. It should be understood that these embodiments are discussed only to enable those of ordinary skill in the art to better understand and thus practice the teachings of the present invention, and are not meant to imply any limitation on the scope of the invention.
As used herein, the term "comprising" and variants thereof are to be interpreted as meaning "including but not limited to" open-ended terms. The term "based on" is to be interpreted as "based at least in part on". The terms "one embodiment" and "an embodiment" are to be interpreted as "at least one embodiment. The term "another embodiment" is to be interpreted as "at least one other embodiment".
The invention is applicable to software development systems involving two networks. The two networks are preferably physically isolated, but may communicate exclusively through a communication link specifically configured in accordance with embodiments of the present invention. In a preferred embodiment, the security of a first of the two networks is higher (e.g., intranet) and the second network is more open (e.g., extranet). The present invention is applicable to the development of a software system comprising a system architecture having two functionally inter-working basic modules, such as a server module and a client module (e.g., a hand-tour system comprising a server program and a client program), a base station module and a mobile terminal module, or a transmitter module and a receiver module, as generally understood in the art; for such a software system, the two basic modules are referred to as a first end and a second end, respectively.
Embodiments of the present invention utilize SVN (Subversion). SVN is a common file management tool commonly used for version management of files (including but not limited to programs/code), where the SVN file management tool includes a first SVN server software and a second SVN server software.
Fig. 4 shows an embodiment of the code management system of the present invention. The first network of the code management system is an intranet, wherein a PC of a developer, a server side code server and a first client side code server are arranged. The server side code is managed in the intranet through the server side code server, and the client side code is managed through the first client side code server. For example, in a hand-tour system, the client code on the first client code server may generate a client program at the time of the functional test, while the server code managed by the server code server in the intranet may generate a server program. The first SVN server software is installed in the first client code server. Further, the second network of the code management system is an external network in which a client machine capable of running a client program, a second client code server, and a server program running server capable of running a server program are provided. The client code is managed in the external network by a second client code server. And the second SVN server software is installed in the second client code server.
The server-side code server and the first client-side code server in the intranet are both connected to the developer PC, and the second client-side code server and the server-side program running server in the extranet are both connected to the client-side true machine. The server code server in the intranet can generate a server program from the managed server code, and can copy the generated server program to the server program running server in the extranet when necessary.
A copy of the client code that is read-only to the developer is stored on a first client code server in an intranet. The code management system of the present invention allows for synchronizing changes in client code on a second client code server in an external network to client code in a first client code server in an internal network that is a copy of client code on the second client code server by the synchronization mechanism of the present invention based on SVN. The details of the SVN synchronization mechanism are described in detail below.
According to an embodiment of the invention, the developer may modify the client code on a second client code server in the external network. The first SVN server software installed by the first client code server and the second SVN server software installed by the second client code server are related to each other to construct an SVN synchronization mechanism, so that when a developer modifies the client code on the second client code server, the client code on the first client code server which is a copy of the client code is synchronously modified.
When the function test is performed in the code management system in fig. 4, the server-side code in the intranet and the client-side code in the first client-side code server in the intranet may be used as test objects; when the real machine test is needed in the external network, the server program can be produced in the internal network and copied to the server program running server in the external network, and the server program is tested together with the client code in the external network.
Fig. 5 illustrates an embodiment of an SVN synchronization mechanism embodying the present invention. This embodiment includes a firewall server located between the intranet and the extranet. As an embodiment of the present invention, to construct the SVN synchronization mechanism of the present invention, the system shown in fig. 5 needs to be configured as follows:
(1) The second client code server is located in the external network, the IP address of the second client code server is 10.10.1.1, the second SVN server software is run, and the second SVN server software listens for a designated port (e.g., 3690 port).
(2) The first client code server is located in the intranet, the IP address 10.20.1.1 of the first client code server runs the first SVN server software, and the first SVN server software listens for a designated port (e.g., 3690 port).
(3) The firewall server installs a dual network card. The network card I is connected with an external network, and the IP address of the network card I is 10.10.1.2; the network card II is connected with the intranet, and the IP address is 10.20.1.2.
In order to construct the SVN synchronization mechanism of the invention, the firewall server between the intranet and the extranet can be set as follows:
setting the first client code server to open a port to the firewall server, for example by opening the 3690 port of the first client code server to the firewall server by:
iptables-I INPUT-s 10.20.1.2-p tcp--dport 3690-j ACCEPT
setting up the firewall server to open a port for the second client code server, such as opening 4690 ports of the firewall server to the second client code server by:
iptables-I INPUT-s 10.10.1.1-p tcp--dport 4690-j ACCEPT
starting the data forwarding function on the firewall server, e.g. editing/etc/sysctl/conf file, changing net.ipv4.ip_forward=0 to net.ipv4.ip_forward=1
The forwarding function of data from the second client code server to the first client code server can be implemented through port 3690 where the first client code server is open to the firewall server and port 4690 where the firewall server is the second client code server. For example, the forwarding of data may be performed by the following code:
iptables-t nat-A PREROUTING-d 10.10.1.2-p tcp--dport 4690 -j DNAT--to-destination 10.20.1.1:3690
iptables-t nat-A POSTROUTING-d 10.20.1.1-p tcp--dport 3690-j SNAT 10.10.1.2
after the firewall server is set, in order to construct the SVN synchronization mechanism of the present invention, the first SVN server software and the second SVN server software may be set as follows:
an account syncuser1 is established and used on the second SVN server software and an account syncuser2 for synchronization is established and used on the first SVN server software.
In preparation, the setting of the first SVN server software corresponding to the first client code server is modified. Creating a svnroot/hooks/pre-revprop-change file, and writing the following two lines of codes:
#!/bin/sh
exit 0
initializing a software runtime environment of the second SVN server software installed on the second client code server and forwarding a configuration file of the software runtime environment to the first SVN server software installed on the first client code server such that the first and second SVN server software have the same software runtime environment.
For example, the initialization operation may be implemented in the following code:
svnsync init svn://10.10.1.2:4690/svnroot svn://10.10.1.1/svnroot
and starting an automatic synchronization function on the second SVN server side software, so that when the codes on the second SVN server side software change, the corresponding changes of the code copy on the first SVN server side software can be realized. The automatic synchronization function is achieved, for example, by the following code:
#!/bin/sh
REPOS="$1"
REV="$2"
svnsync sync--non-interactive svn://10.10.1.2:4690/svnroot --username syncuser--password password
in the case of low security requirements, the firewall server may not be used, but the first and second SVN server software may be allowed to directly communicate, so as to achieve code synchronization.
The SVN synchronization mechanism according to the embodiment of the invention has a synchronization speed of millisecond level, and the copies of the external network client code and the internal network client code can be considered to be consistent in real time, so that no influence is generated on the test result. The SVN synchronization mechanism runs automatically in the background, and research and development staff do not feel the SVN synchronization mechanism, so that development efficiency is not affected, and even can be greatly improved (for example, at least 20% of development efficiency is improved). The mode integrates the advantages of two common modes in the prior art, and can conveniently perform functional test in an intranet and perform source code level test of a true machine in an extranet on the basis of ensuring the safety of the codes of the server. Furthermore, this mode is particularly well suited for use in a development environment where each developer of a large development team simultaneously develops client code and server code (i.e., the developer employs a "full-time mode" for development).
In addition, the embodiment disclosed by the invention is not only suitable for developing mobile games, but also suitable for developing HTML5 games and various application programs on various mobile terminals.
The methods and systems of embodiments of the present invention may be implemented as pure software (e.g., a software program written in Java language), as pure hardware (e.g., an application specific ASIC chip or an FPGA chip), or as a system combining software and hardware (e.g., a firmware system storing fixed code), as desired.
Another aspect of the invention is a computer readable medium having stored thereon computer readable instructions which, when executed, may implement the methods of the embodiments of the invention.
The foregoing description of embodiments of the invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the various embodiments described. The scope of the claimed subject matter is limited only by the following claims.

Claims (10)

1. A system for software development, comprising:
a first code server managing a first code in a first network and installing a first SVN server software;
a second code server that manages second code in a second network and that installs second SVN server software, wherein the first code is a copy of the second code, and the first code and the second code are client code;
a third code server that manages a third code in the first network, wherein the third code is a server-side code,
wherein the system is capable of synchronizing changes in the second code server to the first code in the first code server via a synchronization mechanism between the first SVN server software and the second SVN server software,
wherein the first code is capable of generating a first program on the first code server and the third code is capable of generating a second program on the third code server, the first and second programs functionally cooperating with each other.
2. The system of claim 1, further comprising a firewall server located between the first network and the second network, the firewall server comprising a first network card and a second network card, the first network card being connected to the first network and the second network card being connected to the second network.
3. The system of claim 2, wherein the first code server is configured to open a first port to the firewall server, the firewall server is configured to open a second port to the second code server, and the firewall server is configured to open a forwarding function.
4. The system of claim 1, wherein,
the first SVN server software and the second SVN server software are configured to have the same software running environment; and is also provided with
The second SVN server software is configured to initiate an auto-sync function.
5. The system of claim 1, further comprising: a program execution server capable of executing a program in a second network, wherein the system is capable of copying the third code from the third code server to the second network and generating the second program from the copied code to execute at the program execution server.
6. The system of claim 5, further comprising: a real machine device in the second network,
wherein the system is capable of generating the first program from the second code on the second code server to run on the real machine device, and the first program running on the real machine device functionally interoperates with the second program running on the program running server.
7. A method for software development, comprising:
setting a first code server which manages a first code and is provided with first SVN server software in a first network;
setting a second code server which manages a second code and is provided with second SVN server software in a second network, wherein the first code is a copy of the second code, and the first code and the second code are client codes;
a third code server is provided in the first network that manages a third code, wherein the third code is a server-side code,
synchronizing the change of the second code in the second code server to the first code in the first code server through a synchronization mechanism between the first SVN server software and a second SVN server software,
wherein the first code is capable of generating a first program on the first code server and the third code is capable of generating a second program on the third code server, the first and second programs functionally cooperating with each other.
8. The method of claim 7, wherein the method further comprises:
and setting a firewall server, wherein the firewall server comprises a first network card and a second network card, the first network card is connected with the first network, and the second network card is connected with the second network.
9. The method of claim 8, further comprising:
setting the first code server to open a first port to the firewall server;
setting the firewall server to open a second port to the second code server; and
and setting the firewall server to start a forwarding function.
10. The method of claim 7, further comprising:
configuring the first SVN server software and the second SVN server software to have the same software running environment; and
and setting the second SVN server software to start an automatic synchronization function.
CN201811495188.6A 2018-12-07 2018-12-07 System and method for software development Active CN110633095B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811495188.6A CN110633095B (en) 2018-12-07 2018-12-07 System and method for software development

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811495188.6A CN110633095B (en) 2018-12-07 2018-12-07 System and method for software development

Publications (2)

Publication Number Publication Date
CN110633095A CN110633095A (en) 2019-12-31
CN110633095B true CN110633095B (en) 2023-07-14

Family

ID=68968829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811495188.6A Active CN110633095B (en) 2018-12-07 2018-12-07 System and method for software development

Country Status (1)

Country Link
CN (1) CN110633095B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729195A (en) * 2014-01-15 2014-04-16 北京奇虎科技有限公司 Control method and system for software version
CN105739960A (en) * 2014-12-11 2016-07-06 上海尚景信息技术有限公司 Software development environment framework capable of being continuously integrated
CN106201857A (en) * 2015-05-05 2016-12-07 阿里巴巴集团控股有限公司 The choosing method of test case and device
CN106502746A (en) * 2016-11-02 2017-03-15 网易(杭州)网络有限公司 The packaging method and device of application program
CN106775623A (en) * 2016-11-17 2017-05-31 网易(杭州)网络有限公司 Plan the processing method and processing device of allocation list

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140047413A1 (en) * 2012-08-09 2014-02-13 Modit, Inc. Developing, Modifying, and Using Applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729195A (en) * 2014-01-15 2014-04-16 北京奇虎科技有限公司 Control method and system for software version
CN105739960A (en) * 2014-12-11 2016-07-06 上海尚景信息技术有限公司 Software development environment framework capable of being continuously integrated
CN106201857A (en) * 2015-05-05 2016-12-07 阿里巴巴集团控股有限公司 The choosing method of test case and device
CN106502746A (en) * 2016-11-02 2017-03-15 网易(杭州)网络有限公司 The packaging method and device of application program
CN106775623A (en) * 2016-11-17 2017-05-31 网易(杭州)网络有限公司 Plan the processing method and processing device of allocation list

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Shorewall防火墙软件在经管类实验室的应用;胡志宙;《实验室研究与探索》;20110915;第30卷(第09期);第198-201页 *
基于Subversion的代码分析工具KLine;黄炜耀;《网络安全技术与应用》;20141115(第11期);第31,33页 *

Also Published As

Publication number Publication date
CN110633095A (en) 2019-12-31

Similar Documents

Publication Publication Date Title
CN108647028B (en) Application information processing method and device
CN111859834B (en) UVM-based verification platform development method, system, terminal and storage medium
CN110781085B (en) Game automatic testing method, device, terminal and computer storage medium
CN104615462B (en) Cross-platform Mobile solution generation service end and system
CN113489603B (en) Interactive background flow generation method and system in network target range
US20240362158A1 (en) Distributed immutable data object testing
CN116681013A (en) Simulation verification method, platform, device, equipment and medium of network chip
CN108509346B (en) Dual-system BIOS continuous integration platform and method
CN110198222B (en) Plug-and-play test method and test master station for power distribution automation terminal
CN110633095B (en) System and method for software development
CN110347609B (en) Method and device for testing blockchain software
CN107231349A (en) A kind of method and device that MPTCP agreements are realized in intelligent terminal
CN109976773B (en) Deployment method and device of game testing environment
JP6603746B2 (en) Method and computing system for automatically generating embedded software on a virtualized system
CN106909434A (en) The detection method and device of undefined function in executable program
Jääskeläinen et al. Model-based testing service on the web
CN115951596A (en) Real vehicle signal simulation method and vehicle signal interaction system
JP2007140954A (en) Operator simulation system and operator simulation method
CN112231217B (en) Method and device for implementing functional test in duplicate mode
CN111082984A (en) Method and device for simulating login of network equipment to carry out command line interaction
CN117707944A (en) Method, system, equipment and medium for testing compatibility of credit-invasive application software
CN117632619A (en) Software and hardware collaborative simulation system, method and device, electronic equipment and storage medium
CN118606173A (en) Remote debugging method and device, electronic equipment and storage medium
KR20230102281A (en) Test management system using data set and method therefor
CN114791821A (en) Client updating method and device, electronic equipment and computer storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant