KR101888792B1 - Method for data communication and system comprising the same - Google Patents
Method for data communication and system comprising the same Download PDFInfo
- Publication number
- KR101888792B1 KR101888792B1 KR1020170049493A KR20170049493A KR101888792B1 KR 101888792 B1 KR101888792 B1 KR 101888792B1 KR 1020170049493 A KR1020170049493 A KR 1020170049493A KR 20170049493 A KR20170049493 A KR 20170049493A KR 101888792 B1 KR101888792 B1 KR 101888792B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- application
- data communication
- communication
- client
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
-
- H04L67/2823—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
Abstract
Description
본 발명은 데이터 통신 방법 및 이를 포함하는 시스템에 관한 것이다.The present invention relates to a data communication method and a system including the same.
프로그램 언어는 C 언어를 필두로 하여 비약적으로 발전해 왔으며, 최근 사용되고 있는 프로그램 언어에는 C, API, C++, MFC, C#, Java 등이 있으며, 프로그램 언어의 범위를 웹 개발과 모바일까지 확장하면 프로그램 언어의 개수는 폭발적으로 증가하게 된다.The program language has developed rapidly with the C language as the starting point and the recently used programming languages include C, API, C ++, MFC, C #, Java and the like. The number will increase explosively.
프로그램 언어는 종류마다 특징이 분명하고 명령어의 사용방식과 설계 방식도 다양하다. 이에 프로그램 개발자는 각 언어의 특징을 학습하여 실제 사용을 하는데 적지 않은 학습시간 및 노력을 할애한다.The program language has distinct features for each type, and there are various ways of using and designing commands. The program developer learns the characteristics of each language and devotes a considerable amount of time and effort to actual use.
또한, 프로그램 개발은 최종 결과물 구현과 매서드(method)를 조합하여 문법적 오류를 최소화하는데 많은 시간과 노력이 요구되는 작업이다. 언어의 다양화로 개발의 한계가 사라지고 있으나 반복적인 코딩과 설계 로직의 문법적 오류를 최소화하는데 많이 시간과 노력이 소비되는 되는 것이 현실이다.In addition, program development requires a lot of time and effort in minimizing grammatical errors by combining final product implementation and methods. However, it is a reality that it takes much time and effort to minimize the grammatical errors of repetitive coding and design logic.
즉, 시간과 노동력의 중요성이 대두 되고 있는 시대에 많은 프로그램 언어의 학습과 개발과정의 문법적 오류를 최소화하는 작업은 시간 낭비와 생산성 저하의 원인으로 작용하고 있다.In other words, the task of minimizing the grammatical errors of the learning and development process of many programming languages in the age of the importance of time and labor is a cause of waste of time and productivity.
종래에는 서로 다른 시스템간 데이터 통신을 하기 위하여, 시스템의 운영 체제와 어플리케이션의 개발 언어가 다른 경우, 각각의 운영 체제와 개발 언어에 따라 동일한 기능을 수행하는 데이터 통신 소프트웨어를 중복적으로 구비해야 하는 불편함이 있었다.Conventionally, in order to perform data communication between different systems, when the operating system of the system is different from the development language of the application, the inconvenience of redundantly providing data communication software performing the same function according to each operating system and development language There was.
또한, 종래에는 어플리케이션과 통신 기능이 밀접하게 결합되어 있어 통신 기능의 확장이나 유지 보수로 인해 어플리케이션 코드에 영향을 미칠 수 있어, 결함이 발생하거나 품질 비용이 증가하는 등 유지 보수의 어려움이 있었다.In addition, conventionally, applications and communication functions are tightly coupled, which can affect application codes due to expansion and maintenance of communication functions, resulting in defects or increase in quality costs.
본 발명은 전력 시스템간 상호 운용을 지원하기 위하여, 데이터 통신의 대상이 되는 어플리케이션의 실행 운영 체제 및 개발 언어에 관계없이 서로 다른 전력 시스템간에 데이터 통신 방법을 제공하는 것을 목적으로 한다.It is an object of the present invention to provide a data communication method between different power systems regardless of the execution operating system and the development language of an application which is the object of data communication in order to support interoperability between the power systems.
본 발명은 어플리케이션의 실행 운영 체제 및 개발 언어에 따라 자동으로 소스 코드가 생성되어 운영 체제 및 개발 언어에 독립적인 데이터 통신 시스템을 제공하는 것을 목적으로 한다. It is an object of the present invention to provide a data communication system in which source code is automatically generated according to an execution operating system and a development language of an application, thereby being independent of an operating system and a development language.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects and advantages of the present invention which are not mentioned can be understood by the following description and more clearly understood by the embodiments of the present invention. It will also be readily apparent that the objects and advantages of the invention may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims.
상기의 목적을 달성하기 위해 본 발명의 데이터 통신 시스템은 서로 다른 운영 체제 또는 서로 다른 개발 언어를 이용하는 클라이언트와 서버를 포함하는 데이터 통신 시스템에 있어서, 상기 서버와 데이터 통신을 수행하는 어플리케이션과, 상기 클라이언트의 운영 체제 및 상기 어플리케이션의 개발 언어를 기초로, 상기 데이터 통신을 위한 소스 코드를 생성하여 상기 어플리케이션에 제공하는 어댑터를 포함하는 클라이언트, 미리 결정된 데이터 통신 규칙을 이용하여 상기 어댑터를 통해 상기 어플리케이션과 통신하는 프록시, 및 상기 프록시를 통하여 상기 클라이언트와 통신하는 서버를 포함하되, 상기 어플리케이션은, 상기 어댑터에서 제공하는 상기 소스 코드를 이용하여 상기 프록시와 데이터 통신을 수행한다.According to an aspect of the present invention, there is provided a data communication system including a client and a server using different operating systems or different development languages, the data communication system including an application for performing data communication with the server, A client including an adapter for generating source code for the data communication and providing the source code to the application based on an operating system of the application and a development language of the application; a client communicating with the application via the adapter using a predetermined data communication rule; And a server for communicating with the client through the proxy, wherein the application performs data communication with the proxy using the source code provided by the adapter.
또한, 상기 어댑터는, 데이터 디자이너를 포함하고, 상기 데이터 디자이너는, 상기 데이터 통신을 위하여, 미리 결정된 데이터 포맷 규칙에 따라 상기 어플리케이션이 필요로 하는 통신 데이터를 생성하고, 상기 생성된 통신 데이터를 논리적 데이터 구조로 변환할 수 있다.The adapter includes a data designer, and the data designer generates communication data required by the application according to a predetermined data format rule for the data communication, and transmits the generated communication data to the logical data Structure.
또한, 상기 어댑터는, 서로 다른 개발 언어 또는 서로 다른 운영 체제에 대한 탬플릿을 미리 저장하고, 상기 탬플릿과 상기 통신 데이터를 기초로, 상기 소스 코드를 생성하는 자동 코드 생성 모듈을 더 포함할 수 있다.The adapter may further include an automatic code generation module for preliminarily storing templates for different development languages or different operating systems and for generating the source code based on the template and the communication data.
또한, 상기 클라이언트는, 서로 다른 운영 체제 또는 서로 다른 개발 언어를 이용하는 복수의 클라이언트를 포함하고, 상기 프록시는, 상기 복수의 클라이언트 중 적어도 하나에 포함되거나, 상기 서버에 포함될 수 있다.Further, the client may include a plurality of clients using different operating systems or different development languages, and the proxy may be included in at least one of the plurality of clients, or included in the server.
또한, 상기 소스 코드는, 상기 어플리케이션에 컴파일 또는 빌드되어 상기 데이터 통신을 수행할 수 있다.In addition, the source code may be compiled or built into the application to perform the data communication.
또한, 상기 어댑터는, 상기 어플리케이션에 소프트웨어적으로 결합되어 상기 어플리케이션에 포함되거나, 상기 클라이언트에 물리적으로 연결되어 상기 어플리케이션과 데이터를 주고 받을 수 있다.The adapter may be software-coupled to the application and included in the application, or physically connected to the client to exchange data with the application.
상기의 목적을 달성하기 위해 본 발명의 데이터 통신 방법은 서로 다른 운영 체제 또는 서로 다른 개발 언어를 이용하는 클라이언트 및 서버의 데이터 통신 방법에 있어서, 데이터 디자이너에서 사용자로부터 데이터 통신을 위한 통신 기능 정보를 수신하는 단계, 상기 데이터 디자이너에서 상기 통신 기능 정보를 이용하여 미리 결정된 데이터 포맷 규칙에 따른 통신 데이터를 생성하는 단계, 자동 코드 생성 모듈에서 어플리케이션이 설치된 상기 클라이언트의 운영 체제 및 상기 어플리케이션의 개발 언어에 대한 탬플릿과 상기 통신 데이터를 이용하여, 상기 통신 기능 정보를 포함하는 소스 코드를 생성하는 단계, 및 상기 생성된 소스 코드를 상기 어플리케이션에 컴파일 또는 빌드하는 단계를 포함한다.According to another aspect of the present invention, there is provided a data communication method for a client and a server using different operating systems or different development languages, the method comprising: receiving, at a data designer, Generating communication data according to a predetermined data format rule by using the communication function information in the data designer, generating a template for a development language of the client and an operating system of the client in which the application is installed in the automatic code generation module, Generating the source code including the communication function information using the communication data, and compiling or building the generated source code into the application.
또한, 상기 어플리케이션이 상기 소스 코드를 이용하여, 상기 어플리케이션과 서버 사이의 데이터 통신을 연결하는 프록시를 통해 상기 데이터 통신을 수행하는 단계를 더 포함하되, 상기 프록시는, 미리 결정된 데이터 통신 규칙을 이용하여 상기 어플리케이션과 통신할 수 있다.The method of claim 1, further comprising the step of the application using the source code to perform the data communication through a proxy connecting data communication between the application and the server, wherein the proxy uses a predetermined data communication rule And can communicate with the application.
또한, 상기 통신 기능 정보를 수신하는 단계는, 상기 어플리케이션에 결합된 상기 데이터 디자이너를 이용하여 수신하는 것을 포함하고, 상기 데이터 디자이너는, 상기 생성된 통신 데이터를 XML(extensible markup language) 언어를 이용하는 논리적 데이터 구조로 변환하는 것을 더 포함할 수 있다.In addition, the step of receiving the communication function information may include receiving the communication data using the data designer coupled to the application, and the data designer may transmit the generated communication data to a logical (logical) Lt; RTI ID = 0.0 > data structure. ≪ / RTI >
또한, 상기 소스 코드를 생성하는 단계는, 상기 자동 코드 생성 모듈이 서로 다른 개발 언어 또는 서로 다른 운영 체제에 대한 상기 탬플릿을 미리 저장하고 있는 것을 포함할 수 있다.In addition, the step of generating the source code may include that the automatic code generation module pre-stores the template for different development languages or different operating systems.
전술한 바와 같은 본 발명의 데이터 통신 시스템에 의하면, 운영 체제 및 개발 언어별로 중복 개발해야 하는 비용을 절감하고, 통신 기능의 변경 및 확장이 용이한 장점이 있다.According to the data communication system of the present invention as described above, there is an advantage that it is possible to reduce the cost of duplicate development for each operating system and development language, and to easily change and expand the communication function.
본 발명의 데이터 통신 방법은 데이터 통신을 제공하는 어플리케이션이 운영 체제 및 개발 언어가 다양한 경우뿐만 아니라, 외부 시스템의 어플리케이션이 운영 체제 및 개발 언어를 현 시점에서 알 수 없는 경우에도 활용 가능한 장점이 있다.The data communication method of the present invention is advantageous not only when an application providing data communication has various operating systems and languages, but also when an application of an external system can not know an operating system and a development language at the present time.
본 발명의 데이터 통신 시스템은 시스템의 유지 보수 및 관리가 용이해지며, 시스템을 관리하는데 필요한 여러 가지 자원 및 비용을 감소시킬 수 있다.The data communication system of the present invention facilitates maintenance and management of the system, and can reduce various resources and costs required to manage the system.
상술한 효과와 더불어 본 발명의 구체적인 효과는 이하 발명을 실시하기 위한 구체적인 사항을 설명하면서 함께 기술한다. The above and other objects, features and advantages of the present invention will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: FIG.
도 1은 본 발명의 몇몇 실시예에 따른 데이터 통신 시스템을 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 데이터 통신 시스템을 나타내는 도면이다.
도 3은 도 1에 포함된 어댑터를 나타내는 블럭도이다.
도 4는 본 발명의 일 실시예에 따른 데이터 통신 방법을 나타내는 순서도이다.
도 5는 본 발명의 다른 실시예에 따른 데이터 통신 방법을 나타내는 순서도이다.
도 6은 본 발명의 다른 실시예에 따른 데이터 통신 시스템을 나타내는 도면이다.
도 7은 본 발명의 또 다른 실시예에 따른 데이터 통신 시스템을 나타내는 도면이다.1 is a diagram illustrating a data communication system in accordance with some embodiments of the present invention.
2 is a diagram illustrating a data communication system according to an embodiment of the present invention.
Figure 3 is a block diagram illustrating the adapter included in Figure 1;
4 is a flowchart illustrating a data communication method according to an embodiment of the present invention.
5 is a flowchart showing a data communication method according to another embodiment of the present invention.
6 is a diagram illustrating a data communication system according to another embodiment of the present invention.
7 is a diagram illustrating a data communication system according to another embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
비록 제1, 제2 등이 다양한 구성 요소들을 서술하기 위해서 사용되나, 이들 구성 요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성 요소를 다른 구성 요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성 요소는 본 발명의 기술적 사상 내에서 제2 구성 요소 일 수도 있음은 물론이다.Although the first, second, etc. are used to describe various components, it goes without saying that these components are not limited by these terms. These terms are used only to distinguish one component from another. Therefore, it goes without saying that the first component mentioned below may be the second component within the technical scope of the present invention.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense commonly understood by one of ordinary skill in the art to which this invention belongs. Also, commonly used predefined terms are not ideally or excessively interpreted unless explicitly defined otherwise.
이하에서, 도 1 내지 도 7을 참조하여 본 발명의 몇몇 실시예에 따른 데이터 통신 방법 및 이를 포함하는 시스템에 대해 설명하도록 한다.Hereinafter, a data communication method and a system including the data communication method according to some embodiments of the present invention will be described with reference to FIG. 1 through FIG.
도 1은 본 발명의 몇몇 실시예에 따른 데이터 통신 시스템을 나타내는 도면이다. 도 1에 도시된 구성요소들이 필수적인 것은 아니어서, 그보다 많은 구성요소들을 갖거나 그보다 적은 구성요소들을 갖는 데이터 통신 시스템이 구현될 수 있다.1 is a diagram illustrating a data communication system in accordance with some embodiments of the present invention. The components shown in FIG. 1 are not essential, and a data communication system having components with fewer or fewer components can be implemented.
도 1을 참조하면, 본 발명의 몇몇 실시예에 따른 데이터 통신 시스템은 어플리케이션(100), 어댑터(200), 프록시(300), 서버 저장부(400), 클라이언트(500), 및 서버(600)를 포함한다.1, a data communication system according to some embodiments of the present invention includes an
클라이언트(500)는 네트워크로 연결된 서버(600)로부터 정보를 제공받는 컴퓨터 또는 프로그램을 포함한다. 또한, 서버(600)는 클라이언트(500)에게 네트워크를 통해 정보를 제공하는 컴퓨터 또는 프로그램을 포함할 수 있으나, 본 발명이 이에 한정되는 것은 아니다.The
클라이언트(500) 및 서버(600)는 전력 시스템, 산업 제어 시스템 또는 일반적인 형태의 TCP/IP 통신을 필요로 하는 시스템에서 사용되는 클라이언트(500) 및 서버(600)를 포함할 수 있다. 예를 들어, 에너지 관리 시스템(Energy Management System, EMS), 전력 관리 시스템(Power Management System, PMS), PAS(Power Automation System), 송배전 시스템(Transmission and Distribution Systems), 발전 시스템(Generation System), 고급 배전 관리 시스템(Advanced Distribution Management Systems, ADMS), 배전 관리 시스템(Distribution Management Systems, DMS), 모니터링 및 제어를 위한 감시 제어 및 데이터 취득 시스템(Supervisory Control And Data Acquisition, SCADA)을 포함할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.The
클라이언트(500)는 서버(600)와 데이터 통신을 하기 위하여 어플리케이션(100) 및 어댑터(200)를 포함할 수 있다.The
어플리케이션(100)은 서로 다른 클라이언트(500) 또는 서버(600)간 데이터 통신을 제공하기 위하여 통신 기능을 수행하는 프로그램, 모듈 또는 소프트웨어를 포함할 수 있다.The
어플리케이션(100)은 전술한 전력 시스템, 산업 제어 시스템 또는 일반적인 형태의 TCP/IP(Transmission Control Protocol/Internet Protocol) 통신을 필요로 하는 시스템에서 사용되는 프로그램 모듈 또는 소프트웨어를 포함할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.The
어댑터(200)는 서로 다른 운영 체제 또는 서로 다른 개발 언어를 이용하는 클라이언트(500) 또는 서버(600)간 데이터 통신을 제공하기 위하여, 클라이언트(500)에 포함된 어플리케이션(100)에 결합할 수 있다. 예를 들어, 어댑터(200)가 장치인 경우, 어댑터(200)가 어플리케이션(100)을 포함한 클라이언트(500)에 물리적으로 연결 또는 결합할 수 있고, 어댑터(200)가 프로그램인 경우, 어댑터(200)가 어플리케이션(100)을 포함한 클라이언트(500)에 설치된 후, 어플리케이션(100)에 소프트웨어적으로 결합되어 어플리케이션에 포함되어 함께 빌드(프로그램 코드를 실행 가능한 파일로 변환하는 과정)될 수 있다.The
어댑터(200)는 어플리케이션(100)에 프로그램 언어적으로 결합되어 어플리케이션(100)에 포함되거나, 어플리케이션(100)에 물리적으로 연결되어 어플리케이션(100)과 통신할 수 있다.The
운영 체제는 서버(600) 또는 클라이언트(500)의 하드웨어를 관리할 뿐만 아니라 어플리케이션(100) 또는 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어를 포함할 수 있다. 예를 들어, 운영 체제는 윈도우(Windows), 리눅스(Linux), 유닉스(Unix), 솔라리스(Solaris)를 포함할 수 있다.The operating system may include system software for managing hardware of the
개발 언어 즉, 프로그래밍 언어는 클라이언트(500), 서버(600), 컴퓨터 시스템 또는 어플리케이션(100)을 구동시키는 소프트웨어를 작성하기 위한 언어를 포함한다. 예를 들어, 개발 언어는 C++, C#, Java를 포함할 수 있으나, 본 발명이 이에 한정되는 것은 아니다.The development language, that is, the programming language includes a
어댑터(200)는 서버(600) 또는 클라이언트(500)의 운영 체제 및 어플리케이션(100) 개발 언어별로, 미리 결정된 데이터 포맷 규칙에 따라 자동으로 소스 코드를 생성할 수 있다. 예를 들어, Windows 운영 체제에서 실행되는, C++ 개발 언어로 개발된 어플리케이션(100)에 대하여 자동으로 Windows C++ 소스 코드를 생성하여, 생성한 소스 코드를 어플리케이션(100)에 컴파일(프로그램 언어를 컴퓨터 등의 기계가 이해할 수 있는 언어로 변역하는 과정) 및 빌드시킬 수 있다. 구체적으로, 미리 결정된 데이터 포맷 규칙은 사전 정의된 XML(Extensible Markup Language) 포맷 규칙을 포함할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.The
서버(600)는 클라이언트(500)와 데이터 통신을 하기 위하여 프록시(300) 및 서버 저장부(400)를 포함할 수 있다. 또한, 프록시(300)는 클라이언트(500)에 포함된 어댑터(200)와 서버(600)를 전기적으로 연결하고, 어댑터(200)와 서버(600)간 데이터 통신을 수행한다.The
프록시(300)는 어플리케이션(100)과 동일한 운영 체제의 클라이언트(500)에 동시에 설치되는 경우, 어댑터(200)와 TCP/IP Local Loop 통신을 한다. 또한, 프록시(300)를 실행하는 운영 체제가 어플리케이션(100)을 실행하는 운영 체제와 다른 경우, 프록시(300)는 어플리케이션(100)과 별도의 클라이언트에 포함되어, 일반적인 TCP/IP 통신을 통해 어댑터(200)와 데이터를 주고 받는다.The
프록시(300)는 서로 다른 운영 체제 및 개발 언어를 이용하는 어댑터(200)와 통신하기 위하여, 미리 결정된 데이터 통신 규칙을 포함할 수 있다. 구체적으로, 미리 결정된 데이터 통신 규칙은 어댑터(200)의 운영 체제 및 개발 언어와 상관없이 하나의 운영 체제 및 개발 언어로 데이터 통신을 수행할 수 있다. 예를 들어, Windows 운영체제와 C# 개발 언어 또는 Linux 운영 체제와 C++ 개발 언어를 이용하는 어댑터(200)의 경우에도, 동일하게 Windows 운영체제 및 C++ 개발 언어를 이용하는 프록시(300)를 통해 Windows 운영체제 및 C++ 개발 언어를 이용하는 서버(600)와 데이터 통신을 수행할 수 있으나, 본 발명이 이에 한정되는 것은 아니다.
프록시(300)는 프로그램 개발자가 선호하는 운영 체제 및 개발 언어로 한가지 종류만 개발하여 중복 개발을 방지할 수 있는 효과가 있으며, 어플리케이션(100)에 빌드되는 어댑터(200)를 통해 어플리케이션(100)의 데이터를 어플리케이션(100)이 포함된 클라이언트(500)와 다른 클라이언트 또는 서버(600)로 전달할 수 있다.The
또한, 추후 통신 기능 확장 및 변경 시 운영 체제 및 개발 언어별로 복수의 어플리케이션(100)을 수정하지 않고, 프록시(300)만 수정하면 되므로 유지 보수 및 신규 기능 추가가 용이한 장점이 있다.In addition, since only the
서버 저장부(400)는 전술한 전력 시스템, 산업 제어 시스템 또는 일반적인 형태의 TCP/IP 통신을 필요로 하는 시스템의 데이터를 저장하고, 관리하는 컴퓨터 또는 프로그램을 포함한다.The
어댑터(200)와 프록시(300)의 도입으로 인하여, 서로 다른 운영 체제와 개발 언어를 가지고 있는 시스템과 연계하여 전력 시스템 등을 관리 하는 개발자 또는 운영자의 연계 부담이 완화될 수 있다.Due to the introduction of the
프록시(300)는 로깅(logging)을 수행하여, 서로 다른 시스템 또는 클라이언트와 서버간 데이터 통신을 수행할 때 데이터 통신 오류가 발생하는 경우, 데이터 통신 오류에 대한 원인 파악이 간편한 장점이 있다. 구체적으로, 프록시(300)는 프로그램 개발 중 및 완료 후 발생할 수 있는 오류에 대해 디버깅하거나 운영 중인 프로그램 상태를 모니터링 하기 위해 필요한 정보(로그)를 기록하는 것을 포함한다.The
프록시(300)는 잘못된 데이터 통신에 따른 비정상적 상황 방지(예를 들어, DDOS(Distributed DoS) 공격, 해킹 또는 서버 다운)를 위해 데이터 유효화 검사를 수행할 수 있다. 예를 들어, 클라이언트(500)로부터 비정상적 데이터가 서버(600)로 접근하고자 하는 경우, 프록시(300)는 데이터 필터링을 수행하여 서버(600)로 정상적인 데이터만 보낼 수 있다.The
이하 발명의 설명에서 복수의 클라이언트(501, 502, 503, 504, 505), 복수의 어플리케이션(101, 102, 103, 104), 복수의 어댑터(201, 202, 203, 204), 복수의 프록시(301, 302, 303, 304, 305) 각각에 대한 공통된 설명은 클라이언트(500), 어플리케이션(100), 어댑터(200), 프록시(300)로 설명하도록 한다.In the following description of the present invention, a plurality of
도 2는 본 발명의 일 실시예에 따른 데이터 통신 시스템을 나타내는 도면이다. 설명의 편의를 위하여, 이하에서는 앞서 설명한 실시예와 동일한 사항에 대해서는 중복된 설명을 생략하고 차이점을 중심으로 설명하도록 한다.2 is a diagram illustrating a data communication system according to an embodiment of the present invention. For the sake of convenience of description, the same elements as those of the above-described embodiment will be described below with the exception of duplicate descriptions.
도 2를 참조하면, 본 발명의 일 실시예에 따른 데이터 통신 시스템은 복수의 클라이언트(501, 502, 503, 504), 복수의 어플리케이션(101, 102, 103, 104), 복수의 어댑터(201, 202, 203, 204), 프록시(300), 서버 저장부(400), 및 서버(600)를 포함한다. 참고로, 프록시(300), 서버 저장부(400), 및 서버(600)에 대한 자세한 설명은 전술하였는바 생략하도록 한다.2, a data communication system according to an embodiment of the present invention includes a plurality of
도면에서 어플리케이션(100) 및 어댑터(200)를 포함한 클라이언트(500)가 데이터 통신 시스템 내에 네개만 포함되어 있는 것으로 도시하였으나, 본 발명이 이에 한정되는 것은 아니다. Although it is shown that the
제1 클라이언트(501)는 윈도우(Windows)를 운영 체제로 하여 실행되는 컴퓨터 장치 또는 시스템을 포함하고, 제2 클라이언트(502)는 리눅스(Linux)를 운영 체제로 하여 실행되는 컴퓨터 장치 또는 시스템을 포함하고, 제3 클라이언트(503)는 유닉스(Unix)를 운영 체제로 하여 실행되는 컴퓨터 장치 또는 시스템을 포함하고, 제4 클라이언트(504)는 솔라리스(Solaris)를 운영 체제로 하여 실행되는 컴퓨터 장치 또는 시스템을 포함한다. 다만, 본 발명이 이에 한정되는 것은 아니다.The
제1 어플리케이션(101)은 Windows 운영 체제에서 실행되고, C# 개발 언어로 작성되어, C# 개발 언어를 이용하여 데이터 통신을 제공하는 프로그램을 포함하고, 제2 어플리케이션(102)은 Linux 운영 체제에서 실행되고, C++ 개발 언어로 작성되어, C++ 개발 언어를 이용하여 데이터 통신을 제공하는 프로그램을 포함하고, 제3 어플리케이션(103)은 Unix 운영 체제에서 실행되고, Java 개발 언어로 작성되어, Java 개발 언어를 이용하여 데이터 통신을 제공하는 프로그램을 포함하고, 제4 어플리케이션(104)은 Solaris 운영 체제에서 실행되고, C++ 개발 언어로 작성되어, C++ 개발 언어를 이용하여 데이터 통신을 제공하는 프로그램을 포함하나, 본 발명이 이에 한정되는 것은 아니다.The
제1 어댑터(201)는 Windows 운영 체제에서 실행되고, C# 개발 언어를 이용하여 C# 소스 코드를 생성하고, 제1 어플리케이션(101)에 빌드되는 프로그램을 포함하고, 제2 어댑터(202)는 Linux 운영 체제에서 실행되고, C++ 개발 언어를 이용하여 C++ 소스 코드를 생성하고, 제2 어플리케이션(102)에 빌드되는 프로그램을 포함하고, 제3 어댑터(203)는 Unix 운영 체제에서 실행되고, Java 개발 언어를 이용하여 Java 소스 코드를 생성하고, 제3 어플리케이션(103)에 빌드되는 프로그램을 포함하고, 제4 어댑터(204)는 Solaris 운영 체제에서 실행되고, C++ 개발 언어를 이용하여 C++ 소스 코드를 생성하고, 제4 어플리케이션(104)에 빌드되는 프로그램을 포함할 수 있다.The
소스 코드는 어플리케이션(100)에 컴파일 또는 빌드되어 데이터 통신을 수행할 수 있다. 예를 들어, 전술한 바와 같이 제1 어댑터(201)에서 생성된 C# 소스 코드는 제1 어플리케이션(101)에 컴파일 또는 빌드되어 데이터 통신을 수행할 수 있다.The source code may be compiled or built into the
서버(600)는 서버(600)와 동일한 운영 체제를 이용하고, 미리 결정된 데이터 통신 규칙을 이용하여 어댑터(200)와 통신하는 프록시(300)를 포함하고, 프록시(300)를 이용하여 클라이언트(500)와 통신할 수 있다. 구체적으로, 프록시(300)가 서버(600)와 동일한 운영 체제로 실행되는 경우, 서버(600)에 포함된 한 개의 프록시(300)를 이용하여 복수의 클라이언트(500)에 포함된 어댑터(200)와 데이터 통신을 수행할 수 있다. The
도 2에서 서버(600)는 Windows를 운영 체제로 이용하고 있으나, 본 발명이 이에 한정되는 것은 아니다. 예를 들어, 서버(600)는 윈도우(Windows), 리눅스(Linux), 유닉스(Unix), 솔라리스(Solaris)를 운영 체제로 이용할 수 있다.In FIG. 2, the
도 3은 도 1에 포함된 어댑터를 나타내는 블럭도이다.Figure 3 is a block diagram illustrating the adapter included in Figure 1;
도 3을 참조하면, 본 발명의 일 실시예에 따른 어댑터(200)는 데이터 디자이너(210) 및 자동 코드 생성 모듈(220)을 포함한다.Referring to FIG. 3, an
데이터 디자이너(210)는 데이터 모델링(Data modeling)을 수행하는 모듈을 포함한다. 예를 들어, 데이터 디자이너(210)는 어댑터(200)가 설치 또는 결합된 클라이언트(500)의 GUI를 통해 '데이터 디자이너.exe'와 같은 프로그램 형식으로 표현될 수 있으며, 클릭(Click) 또는 드래그(Drag)로 간편하게 데이터를 구조화하고 조직화할 수 있다.The
데이터 모델링은 주어진 개념(예를 들어, 실시간 전력 사용량)으로부터 논리적인 데이터 모델(통신 데이터 예를 들어, XML 데이터)을 구성하는 작업을 포함한다. 다만, 본 발명이 이에 한정되는 것은 아니다.Data modeling involves the task of constructing a logical data model (communication data, e. G., XML data) from a given concept (e. G., Real time power usage). However, the present invention is not limited thereto.
데이터 디자이너(210)는 클라이언트 사용자로부터 어플리케이션(100)이 필요로 하는 데이터 통신 기능 정보를 수신하여, 통신 기능이 정의된 미리 결정된 데이터 포맷 규칙에 따라 어플리케이션(100)이 필요로 하는 통신 데이터를 생성하고, 생성된 통신 데이터를 논리적 데이터 구조로 변환할 수 있다. 구체적으로, 통신 데이터는 데이터를 구조화 할 수 있는 확장성 생성 언어인 XML(extensible markup language) 언어로 작성된 XML 데이터를 포함할 수 있다. 이때, 사용자로부터 수신한 통신 기능 정보에 포함된 통신 기능은 XML 언어로 구조화되어 논리적 데이터 구조로 변환될 수 있다. 예를 들어, 미리 결정된 데이터 포맷 규칙은 XML 포맷 규칙을 포함하고, 통신 기능 정보는 서버(600)와 통신을 하기 위하여 필요한 '실시간 전력 사용량 수신'과 같은 명령을 포함할 수 있다.The
자동 코드 생성 모듈(220)은 서로 다른 운영 체제 또는 서로 다른 개발 언어를 이용하는 클라이언트(500)와 서버(600)간의 데이터 통신을 위한 소스 코드를 생성할 수 있다. 예를 들어, 소스 코드는 Windows 운영 체제에서 C++ 개발 언어로 작성되어, Windows 운영 체제에서 C++ 개발 언어로 작성된 어플리케이션(100)에 컴파일 또는 빌드될 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.The automatic
자동 코드 생성 모듈(220)은 서로 다른 개발 언어 또는 서로 다른 운영 체제에 대한 탬플릿(225)을 미리 저장하고, 상기 탬플릿(225)과 데이터 디자이너(210)에서 생성된 통신 데이터(예를 들어, XML 데이터(215))를 이용하여, 어플리케이션(100)의 운영 체제 및 개발 언어에서 사용자가 정의한 통신 기능을 수행할 수 있는 소스 코드(230)를 생성할 수 있다.The automatic
데이터 디자이너(210) 및 자동 코드 생성 모듈(220)은 도 2에 도시된 복수의 어댑터(201, 202, 203, 204)에 포함될 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.The
도 4는 본 발명의 일 실시예에 따른 데이터 통신 방법을 나타내는 순서도이다.4 is a flowchart illustrating a data communication method according to an embodiment of the present invention.
도 4를 참조하면, 본 발명의 일 실시예에 따른 데이터 통신 방법은 데이터 디자이너(210)에서 어플리케이션(100)이 필요로 하는 데이터 통신 기능을 정의한다(S100). 구체적으로, 데이터 모델링 모듈이며, 어플리케이션(100)에 결합된 데이터 디자이너(210)가 데이터 통신을 위한 통신 기능 정보를 클라이언트(500)의 사용자로부터 수신한다. 다만, 본 발명이 이에 한정되는 것은 아니다.Referring to FIG. 4, a data communication method according to an embodiment of the present invention defines a data communication function required by an
이어서, 통신 기능 스펙이 정의된 XML 데이터를 생성한다(S110). 구체적으로, 데이터 디자이너(210)가 클라이언트(500)의 사용자로부터 수신한 통신 기능 정보를 이용하여 미리 결정된 데이터 포맷 규칙(예를 들어, XML 포맷 규칙)에 따라 어플리케이션(100)이 필요로 하는 통신 데이터를 생성한다. 구체적으로, 통신 데이터(예를 들어, XML 데이터)가 논리적으로 조직될 수 있도록 논리적 데이터 구조로 변환할 수 있으나, 본 발명이 이에 한정되는 것은 아니다.Subsequently, XML data defining the communication function specification is generated (S110). Specifically, the
이어서, 어댑터(200)가 생성하고자 하는 운영 체제 및 개발 언어에 따라 탬플릿(225)을 선택한다(S120). 구체적으로, 탬플릿(225)은 서로 다른 운영 체제 또는 서로 다른 개발 언어에 대하여 소스 코드(230)를 생성하기 위해 미리 자동 코드 생성 모듈(220)에 저장되어 있을 수 있다. Next, the
이어서, 자동 코드 생성 모듈(220)을 통해 소스 코드(230)를 자동으로 생성한다(S130). 구체적으로, 자동 코드 생성 모듈(220)이 어플리케이션(100)이 설치된 클라이언트(500)의 운영 체제 및 어플리케이션(100)의 개발 언어에 대한 탬플릿(225)과 통신 데이터(예를 들어, XML 데이터(215))를 이용하여, 클라이언트(500)의 사용자가 정의한 통신 기능 정보를 포함하는 소스 코드(230)를 생성할 수 있다. Then, the
이어서, 소스 코드(230)는 어플리케이션(100)과 통합 된다(S140). 구체적으로, 자동 코드 생성 모듈(220)에서 생성된 소스 코드(230)가 어플리케이션(100)에 컴파일 또는 빌드된다. 다만, 본 발명이 이에 한정되는 것은 아니다.Then, the
이어서, 프록시(300)를 통해 서버(600)와 통신한다(S150). 구체적으로, 어플리케이션(100)은 미리 결정된 데이터 통신 규칙을 이용하여 어플리케이션(100)과 통신하는 프록시(300)를 이용하여 서버(600)와 통신한다.Then, it communicates with the
도 5는 본 발명의 다른 실시예에 따른 데이터 통신 방법을 나타내는 순서도이다. 설명의 편의를 위하여, 이하에서는 앞서 설명한 실시예와 동일한 사항에 대해서는 중복된 설명을 생략하고 차이점을 중심으로 설명하도록 한다.5 is a flowchart showing a data communication method according to another embodiment of the present invention. For the sake of convenience of description, the same elements as those of the above-described embodiment will be described below with the exception of duplicate descriptions.
도 5를 참조하면, 본 발명의 다른 실시예에 따른 데이터 통신 방법은 데이터 디자이너(210)에서 클라이언트(500)의 사용자로부터 통신 기능 정보를 수신한다. 구체적으로 데이터 디자이너(210)는 GUI를 이용하여 사용자로부터 데이터 통신을 위한 통신 기능 정보를 수신할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.Referring to FIG. 5, a data communication method according to another embodiment of the present invention receives communication function information from a user of a
이어서, 데이터 디자이너(210)는 통신 기능 정보를 포함한 XML 데이터(215)를 생성한다. 구체적으로, 데이터 디자이너(210)는 XML 포맷 규칙에 따라 사용자가 정의한 통신 기능 정보를 포함한 XML 데이터(215)를 생성할 수 있다.Next, the
이어서, 자동 코드 생성 모듈(220)은 자동 코드 생성 모듈(220)에 미리 저장되어 있는 탬플릿(225)을 선택한다. 구체적으로, 탬플릿(225)은 서로 다른 운영 체제 및 개발 언어에 대응하기 위하여, 통신 기능 정보를 포함한 XML 데이터(215)에 논리적 또는 구조적으로 결합될 수 있도록 미리 작성되어 자동 코드 생성 모듈(220)에 저장될 수 있다. 예를 들어, 탬플릿(225)은 Windows C++ 탬플릿, Linux C++ 탬플릿, Unix C++ 탬플릿, Solaris C++ 탬플릿, Java 탬플릿, Windows C# 탬플릿을 포함할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.The automatic
이어서, 자동 코드 생성 모듈(220)은 통신 기능 정보를 포함한 XML 데이터(215)와 어플리케이션(100)의 운영 체제와 개발 언어에 따라 동일한 운영 체제와 개발 언어로 작성된 탬플릿(225)을 수신하고, 소스 코드(230)를 생성한다. 구체적으로, 자동 코드 생성 모듈(220)은 서로 다른 개발 언어 또는 서로 다른 운영 체제에 대한 탬플릿(225)을 미리 저장하고, 상기 탬플릿(225)과 데이터 디자이너(210)에서 생성된 통신 데이터(예를 들어, XML 데이터(215))를 이용하여, 어플리케이션(100)의 운영 체제 및 개발 언어에서 사용자가 정의한 통신 기능을 수행할 수 있는 소스 코드(230)를 생성할 수 있다. 예를 들어, 소스 코드(230)는 Windows C++ 소스 코드, Linux C++ 소스 코드, Unix C++ 소스 코드, Solaris C++ 소스 코드, Java 소스 코드, Windows C# 소스 코드를 포함할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.The automatic
이어서, 생성된 소스코드(230)가 어플리케이션(100)에 통합 된다(240). 구체적으로, 소스 코드(230)는 어플리케이션(100)에 포함되어 컴파일(프로그램 언어를 컴퓨터 등의 기계가 이해할 수 있는 언어로 변역하는 과정) 및 빌드(프로그램 코드를 실행 가능한 파일로 변환하는 과정)되거나, 별도의 실행 파일로 어플리케이션(100)과 함께 클라이언트(500)에 포함될 수 있다.The generated
도 6은 본 발명의 다른 실시예에 따른 데이터 통신 시스템을 나타내는 도면이다. 설명의 편의를 위하여, 이하에서는 앞서 설명한 실시예와 동일한 사항에 대해서는 중복된 설명을 생략하고 차이점을 중심으로 설명하도록 한다.6 is a diagram illustrating a data communication system according to another embodiment of the present invention. For the sake of convenience of description, the same elements as those of the above-described embodiment will be described below with the exception of duplicate descriptions.
도 6을 참조하면, 발명의 다른 실시예에 따른 데이터 통신 시스템은 복수의 클라이언트(501, 502, 503, 504), 복수의 어플리케이션(101, 102, 103, 104), 복수의 어댑터(201, 202, 203, 204), 복수의 프록시(301, 302, 303, 304), 서버 저장부(400), 및 서버(600)를 포함한다. 참고로, 복수의 클라이언트(501, 502, 503, 504), 복수의 어플리케이션(101, 102, 103, 104), 복수의 어댑터(201, 202, 203, 204), 서버 저장부(400), 서버(600)에 대한 자세한 설명은 전술하였는바 생략하도록 한다.Referring to Figure 6, a data communication system according to another embodiment of the present invention includes a plurality of
도면에서 어플리케이션(100), 어댑터(200), 및 프록시(300)를 포함한 클라이언트(500)가 통신 시스템 내에 네개만 포함되어 있는 것으로 도시하였으나, 본 발명이 이에 한정되는 것은 아니다. In the figure, the
복수의 프록시(301, 302, 303, 304)는 어플리케이션(100)이 설치된 클라이언트(500)의 운영 체제와 복수의 프록시(301, 302, 303, 304)가 이용하는 운영 체제가 동일한 경우, 어플리케이션(100)이 설치된 클라이언트(500)와 동일한 클라이언트(500)에 동시에 설치될 수 있다.The plurality of the
제1 프록시(301)는 제1 어플리케이션(101)과 동일한 Windows 운영 체제를 이용하며, 제1 어플리케이션(101)과 동일하게 제1 클라이언트(501)에 설치될 수 있다. 또한, 제1 프록시(301)는 제1 어댑터(201)와 서버(600)간 TCP/IP Local Loop 통신을 수행할 수 있다.The
제2 프록시(302)는 제2 어플리케이션(102)과 동일한 Linux 운영 체제를 이용하며, 제2 어플리케이션(102)과 동일하게 제2 클라이언트(502)에 설치될 수 있다. 또한, 제2 프록시(302)는 제2 어댑터(202)와 서버(600)간 TCP/IP Local Loop 통신을 수행할 수 있다.The
제3 프록시(303)는 제3 어플리케이션(103)과 동일한 Unix 운영 체제를 이용하며, 제3 어플리케이션(103)과 동일하게 제3 클라이언트(503)에 설치될 수 있다. 또한, 제3 프록시(303)는 제3 어댑터(203)와 서버(600)간 TCP/IP Local Loop 통신을 수행할 수 있다.The
제4 프록시(304)는 제4 어플리케이션(104)과 동일한 Solaris 운영 체제를 이용하며, 제4 어플리케이션(104)과 동일하게 제4 클라이언트(504)에 설치될 수 있다. 또한, 제4 프록시(304)는 제4 어댑터(204)와 서버(600)간 TCP/IP Local Loop 통신을 수행할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.The
도 7은 본 발명의 또 다른 실시예에 따른 데이터 통신 시스템을 나타내는 도면이다. 설명의 편의를 위하여, 이하에서는 앞서 설명한 실시예와 동일한 사항에 대해서는 중복된 설명을 생략하고 차이점을 중심으로 설명하도록 한다.7 is a diagram illustrating a data communication system according to another embodiment of the present invention. For the sake of convenience of description, the same elements as those of the above-described embodiment will be described below with the exception of duplicate descriptions.
도 7을 참조하면, 본 발명의 또 다른 실시예에 따른 데이터 통신 시스템은 제2 어플리케이션(102), 제2 어댑터(202), 제5 프록시(305), 서버 저장부(400), 제2 클라이언트(502), 제5 클라이언트(505), 및 서버(600)를 포함한다. 참고로, 서버(600) 및 서버 저장부(400)에 대한 자세한 설명은 전술하였는바 생략하도록 한다.7, a data communication system according to another embodiment of the present invention includes a
도면에서 제2 어플리케이션(102) 및 제2 어댑터(202)를 포함한 제2 클라이언트(502)가 제5 클라이언트(505)에 포함된 제5 프록시(305)를 통해 서버(600)와 통신하는 것으로 도시하였으나, 본 발명이 이에 한정되는 것은 아니다. The
제2 클라이언트(502)는 Linux를 운영 체제로 하여 실행되며, 제2 어플리케이션(102) 및 제2 어댑터(202)를 포함하는 컴퓨터 장치를 포함한다. 예를 들어, 전력 관리 시스템(PMS)에 포함된 제2 클라이언트(502)는 서버(600)와 통신하기 위하여, 제5 클라이언트(505)에 포함된 프록시(300)를 이용하여 데이터 통신을 수행할 수 있다. 구체적으로, 프록시(300)는 개발 및 유지 보수의 편의성을 고려하여 Windows 운영 체제를 이용할 수 있다.The
제2 어플리케이션(102)은 Linux 운영 체제에서 실행되고, C++ 개발 언어로 작성되어, C++ 개발 언어를 이용하여 데이터 통신을 제공하는 프로그램 또는 모듈을 포함한다. 구체적으로, 제2 클라이언트(502)(운영 체제: Linux)의 사용자는 서버(600)(운영 체제: Windows)와 통신을 하기 위하여, 제2 어댑터(202) 및 제5 프록시(305)를 이용함으로써, 제2 어플리케이션(102)(운영 체제 및 개발 언어: Linux C++)을 그대로 사용할 수 있는 편리함이 있다.The
제2 어댑터(202)는 Linux 운영 체제에서 실행되고, C++ 개발 언어를 이용하여 C++ 소스 코드를 생성하고, 제2 어플리케이션(102)에 빌드되는 프로그램 또는 모듈을 포함한다. 구체적으로, 제2 클라이언트(502)의 사용자에게 제공된 제2 어댑터(202)를 제2 어플리케이션(102)에 빌드시킴으로써, 중복 개발 없이 서버(600)와 통신할 수 있는 장점이 있다.The
제5 클라이언트(505)는 Windows를 운영 체제로 하여 실행되며, 프록시(300)를 포함하는 컴퓨터 장치를 포함한다. 예를 들어, 제5 클라이언트(505)는 전력 관리 시스템(PMS) 등을 운영하는 서버 관리자가 서버(600)의 안정성을 위하여, 서버(600)와 물리적으로 분리된 제5 클라이언트(505)를 이용하여 복수의 클라이언트(501, 502, 503, 504)로부터 데이터를 수신하고자 운용할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.The
제5 프록시(305)는 Windows 운영 체체를 이용하며, 제2 어댑터(202)와 서버(600)간 TCP/IP 통신을 수행할 수 있다.The
에너지 관리 시스템의 일 객체인 제2 클라이언트(502)는 제2 어플리케이션(102)에 결합된 제2 어댑터(202)를 이용하여, 서버(600)와 통신하고자 하는 통신 기능을 입력하고, 자동으로 생성된 소스 코드가 제2 어플리케이션(102)에 컴파일 또는 빌드됨에 따라, 제5 클라이언트(505)에 포함된 제5 프록시(305)를 이용하여 서버(600)와 데이터 통신을 수행할 수 있다. 다만, 본 발명이 이에 한정되는 것은 아니다.The
상기와 같이 설명된 데이터 통신 방법 및 이를 포함하는 시스템은 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.The above-described data communication method and a system including the same can be applied to a case where the configuration and method of the embodiments described above are not limitedly applied, but the embodiments can be applied to all or a part of each embodiment Or may be selectively combined.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive.
100: 어플리케이션 200: 어댑터
300: 프록시 400: 서버 저장부
500: 클라이언트 600: 서버 100: Application 200: Adapter
300: Proxy 400: Server storage
500: Client 600: Server
Claims (10)
서로 다른 운영 체제 또는 서로 다른 개발 언어를 이용하는 복수의 클라이언트; 및
상기 복수의 클라이언트 중 적어도 하나와 통신하는 서버를 포함하고,
상기 각 클라이언트는 상기 서버와 데이터 통신을 수행하는 어플리케이션과, 상기 클라이언트의 운영 체제 및 상기 어플리케이션의 개발 언어를 기초로, 상기 데이터 통신을 위한 소스 코드를 생성하여 상기 어플리케이션에 제공하는 어댑터를 포함하고,
상기 서버는 미리 결정된 데이터 통신 규칙을 이용하여 상기 어댑터를 통해 상기 어플리케이션과 통신하는 프록시와 연결되며,
상기 어플리케이션은 상기 어댑터에서 제공하는 상기 소스 코드를 이용하여 상기 프록시와 데이터 통신을 수행하고,
상기 어댑터는
상기 데이터 통신을 위하여, 미리 결정된 데이터 포맷 규칙에 따라 상기 어플리케이션이 필요로 하는 통신 데이터를 생성하고, 상기 생성된 통신 데이터를 논리적 데이터 구조로 변환하는 데이터 디자이너; 및
서로 다른 개발 언어 또는 서로 다른 운영 체제에 대한 탬플릿을 미리 저장하고, 상기 탬플릿과 상기 통신 데이터를 기초로, 상기 소스 코드를 생성하는 자동 코드 생성 모듈을 포함하는
데이터 통신 시스템.
1. A data communication system comprising a client and a server using different operating systems or different development languages,
A plurality of clients using different operating systems or different development languages; And
And a server in communication with at least one of the plurality of clients,
Each of the clients includes an adapter for performing data communication with the server and an adapter for generating source code for the data communication based on the operating system of the client and a development language of the application and providing the generated source code to the application,
The server is connected to a proxy communicating with the application via the adapter using a predetermined data communication rule,
Wherein the application performs data communication with the proxy using the source code provided by the adapter,
The adapter
A data designer for generating communication data required by the application according to a predetermined data format rule for the data communication and converting the generated communication data into a logical data structure; And
And an automatic code generation module for preliminarily storing templates for different development languages or different operating systems and for generating the source code based on the template and the communication data
Data communication system.
상기 프록시는,
상기 복수의 클라이언트 중 적어도 하나에 포함되거나, 상기 서버에 포함되는
데이터 통신 시스템.
The method according to claim 1,
The proxy,
And the client is included in at least one of the plurality of clients,
Data communication system.
상기 소스 코드는,
상기 어플리케이션에 컴파일 또는 빌드되어 상기 데이터 통신을 수행하는
데이터 통신 시스템.
The method according to claim 1,
The source code comprises:
Compiled or built into the application to perform the data communication
Data communication system.
상기 어댑터는,
상기 어플리케이션에 소프트웨어적으로 결합되어 상기 어플리케이션에 포함되거나, 상기 클라이언트에 물리적으로 연결되어 상기 어플리케이션과 데이터를 주고 받는
데이터 통신 시스템.
The method according to claim 1,
The adapter includes:
The application is software-coupled to the application and included in the application, or physically connected to the client to exchange data with the application
Data communication system.
데이터 디자이너에서 사용자로부터 데이터 통신을 위한 통신 기능 정보를 수신하는 단계;
상기 데이터 디자이너에서 상기 통신 기능 정보를 이용하여 미리 결정된 데이터 포맷 규칙에 따른 통신 데이터를 생성하는 단계;
자동 코드 생성 모듈에서 어플리케이션이 설치된 상기 클라이언트의 운영 체제 및 상기 어플리케이션의 개발 언어에 대한 탬플릿과 상기 통신 데이터를 이용하여, 상기 통신 기능 정보를 포함하는 소스 코드를 생성하는 단계; 및
상기 생성된 소스 코드를 상기 어플리케이션에 컴파일 또는 빌드하는 단계를 포함하는
데이터 통신 방법.
A data communication method between any one of the clients and the server of the data communication system according to any one of claims 1 and 4,
Receiving communication function information for data communication from a user in a data designer;
Generating communication data according to a predetermined data format rule using the communication function information in the data designer;
Generating a source code including the communication function information by using an automatic code generation module and an operating system of the client installed with the application and a template for the development language of the application and the communication data; And
And compiling or building the generated source code into the application
Data communication method.
상기 어플리케이션이 상기 소스 코드를 이용하여, 상기 어플리케이션과 서버 사이의 데이터 통신을 연결하는 프록시를 통해 상기 데이터 통신을 수행하는 단계를 더 포함하는
데이터 통신 방법.
8. The method of claim 7,
The application further comprising the step of performing the data communication via a proxy connecting the data communication between the application and the server using the source code
Data communication method.
상기 통신 기능 정보를 수신하는 단계는,
상기 어플리케이션에 결합된 상기 데이터 디자이너를 이용하여 수신하는 것을 포함하고,
상기 데이터 디자이너는,
상기 생성된 통신 데이터를 XML(extensible markup language) 언어를 이용하는 논리적 데이터 구조로 변환하는 것을 더 포함하는
데이터 통신 방법.
8. The method of claim 7,
Wherein the step of receiving the communication function information comprises:
Using the data designer associated with the application,
The data designer,
And converting the generated communication data into a logical data structure using an extensible markup language (XML) language
Data communication method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170049493A KR101888792B1 (en) | 2017-04-18 | 2017-04-18 | Method for data communication and system comprising the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170049493A KR101888792B1 (en) | 2017-04-18 | 2017-04-18 | Method for data communication and system comprising the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101888792B1 true KR101888792B1 (en) | 2018-08-14 |
Family
ID=63230323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170049493A KR101888792B1 (en) | 2017-04-18 | 2017-04-18 | Method for data communication and system comprising the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101888792B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060079648A (en) * | 2005-01-03 | 2006-07-06 | 에스케이 텔레콤주식회사 | Integrated browsing system and method thereof |
JP2009223366A (en) * | 2008-03-13 | 2009-10-01 | Nec Corp | Software generation system, source code communalization method, and program for creating software |
KR20110098055A (en) * | 2010-02-26 | 2011-09-01 | 현대제철 주식회사 | Control systems interconnection apparatus |
KR20110103888A (en) * | 2010-03-15 | 2011-09-21 | 한국전자통신연구원 | System for accessing and sharing user defined contents and method of the same |
-
2017
- 2017-04-18 KR KR1020170049493A patent/KR101888792B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060079648A (en) * | 2005-01-03 | 2006-07-06 | 에스케이 텔레콤주식회사 | Integrated browsing system and method thereof |
JP2009223366A (en) * | 2008-03-13 | 2009-10-01 | Nec Corp | Software generation system, source code communalization method, and program for creating software |
KR20110098055A (en) * | 2010-02-26 | 2011-09-01 | 현대제철 주식회사 | Control systems interconnection apparatus |
KR20110103888A (en) * | 2010-03-15 | 2011-09-21 | 한국전자통신연구원 | System for accessing and sharing user defined contents and method of the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9092230B2 (en) | Configuration of componentized software applications | |
US20030177205A1 (en) | Method and apparatus for system lineup and testing | |
KR101980311B1 (en) | Method for data interoperability based on CIM and OPC-UA | |
CN111010305A (en) | Configuration management system and method based on NETCONF protocol | |
US8060919B2 (en) | Automated password tool and method of use | |
US10608953B2 (en) | Platform with multiple execution engines | |
US8589381B2 (en) | Resource management program, resource management process, and resource management apparatus | |
US20090063395A1 (en) | Mapping log sets between different log analysis tools in a problem determination environment | |
CN101795206A (en) | Method and device for realizing SNMP agent on distributed equipment | |
CN111966465A (en) | Method, system, equipment and medium for modifying configuration parameters of host machine in real time | |
CN113127009A (en) | Automatic deployment method and device for big data management platform | |
US11500690B2 (en) | Dynamic load balancing in network centric process control systems | |
KR101888792B1 (en) | Method for data communication and system comprising the same | |
CN105227407A (en) | A kind of protocol debugging method, Apparatus and system | |
Patolla et al. | An architecture for an automatic integration of IO-Link sensors into a system of systems | |
CN116263764A (en) | Database operation and maintenance security audit method based on character operation and maintenance management platform | |
CN111399824B (en) | Component port implementation method and terminal based on hybrid transmission mechanism | |
JP2008181299A (en) | Communication error information output program, communication error information output method, and communication error information output device | |
CN102141973A (en) | Cluster management method and device and cluster management and monitoring system | |
WO2020056585A1 (en) | Program file writing and running processing method, device and system | |
JP2018502465A (en) | Data transmission between at least one secure producer and at least one secure consumer | |
Ramesh et al. | Case Study on Server–Client Protocols of Industrial Controllers | |
KR20200081657A (en) | Platform of Smart Factory | |
CN114755990B (en) | Low-code control system and control method for industrial automation production line | |
Ramanathan et al. | Interoperability vs. Tradition: Benefits and Challenges of Web of Things in Building Automation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |