KR101326985B1 - 오브젝트 단위의 동적 컴파일리스 프로그램의 저작, 배포 및 구동 방법 및 장치 - Google Patents
오브젝트 단위의 동적 컴파일리스 프로그램의 저작, 배포 및 구동 방법 및 장치 Download PDFInfo
- Publication number
- KR101326985B1 KR101326985B1 KR1020110097452A KR20110097452A KR101326985B1 KR 101326985 B1 KR101326985 B1 KR 101326985B1 KR 1020110097452 A KR1020110097452 A KR 1020110097452A KR 20110097452 A KR20110097452 A KR 20110097452A KR 101326985 B1 KR101326985 B1 KR 101326985B1
- Authority
- KR
- South Korea
- Prior art keywords
- objects
- service
- business logic
- dynamic program
- connection relationship
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
본 발명의 동적 프로그램 저작 시스템은 개발자가 폼 오브젝트를 구성하는 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보를 편집할 수 있도록 편집 환경을 제공하는 폼 디자인부, 개발자가 사용자의 업무 프로세스를 전산화한 업무 로직 서비스 오브젝트들을 구성하는 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 업무 로직 서비스 편집부, 개발자가 데이터베이스(DB) 서비스 오브젝트들을 구성하며 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 DB 서비스 편집부 및 개발자가 폼 오브젝트, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 생성하거나 삭제하고, 오브젝트들 사이의 연결 관계 정보를 편집할 수 있도록 편집 환경을 제공하는 프로젝트 관리부를 포함할 수 있다.
Description
본 발명은 프로그램 저작 방법론에 관한 것으로, 더욱 상세하게는, 오브젝트 단위의 동적 컴파일리스 프로그램 저작 방법론에 관한 것이다.
예를 들어 공장, 물류업체, 의료기관 등 특정 업종 또는 분야에서 요구되는 업무 관리 소프트웨어들은 그 분야에 특정된 유사점들이 적지 않을 것이고, 따라서 많은 경우에 프로그램 소스 코드를 재사용할 수 있을 것으로 기대된다. 하지만, 같은 업종이라 하더라도 발주 고객사마다 다른 요구 조건들을 맞추다보면 소프트웨어 개발자들은 매번 처음부터 소프트웨어를 새로 작성하는 것과 다를 바 없는 작업량을 투입하게 된다.
이렇게 작성된 소프트웨어들이 각각 컴파일되어 중소 규모의 공장이나 병원 고객사에 공급되면, 각 고객사마다 조금씩 다른 소프트웨어들을 추후에 업그레이드 내지 유지 보수하고자 할 때에도 개발자들은 매번 고객사마다 다른 소스 코드들 중에서 필요한 부분들을 찾아 수정하고 서로 다른 버전으로 컴파일하여야 한다.
이러한 종래의 소프트웨어 프로그램 저작 방법론에서 벗어나, 유사하면서도 각자 다른 고객사들의 요구를 만족시킬 수 있도록 유연한 구조를 가지면서도, 개발에 투입되는 작업량을 크게 절감하고, 동시에 유지 보수를 용이하게 할 수 있는 새로운 소프트웨어 저작 방법론이 필요하다.
본 발명이 해결하고자 하는 과제는 고객사로부터 발주받은 프로그램 프로젝트를 오브젝트 단위로 작성 및 조합함으로써 저작하고, 오브젝트들로 구성된 프로그램 프로젝트를 고객사의 적재 데이터베이스에 저장함으로써 배포하며, 저장된 오브젝트들을 고객사 구동 환경에서 불러들여 실시간적으로 동적으로 결합함으로써 구동하는, 오브젝트 단위의 동적 프로그램의 저작, 배포 및 구동 방법 및 장치를 제공하는 데에 있다.
본 발명의 일 측면에 따른 동적 프로그램 저작 시스템은,
개발자가 폼 오브젝트를 구성하는 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보를 편집할 수 있도록 편집 환경을 제공하는 폼 디자인부;
개발자가 사용자의 업무 프로세스를 전산화한 업무 로직 서비스 오브젝트들을 구성하는 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 업무 로직 서비스 편집부;
개발자가 데이터베이스(DB) 서비스 오브젝트들을 구성하며 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 DB 서비스 편집부; 및
개발자가 상기 폼 오브젝트, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 생성하거나 삭제하고, 오브젝트들 사이의 연결 관계 정보를 편집할 수 있도록 편집 환경을 제공하는 프로젝트 관리부를 포함할 수 있다.
일 실시예에 따라, 상기 연결 관계 정보는 상호 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함할 수 있다.
일 실시예에 따라, 상기 동적 프로그램 저작 시스템은,
개발자가 화면에 나타낸 양식에 채워진 업무 처리 결과를 출력할 보고서 양식을 편집할 수 있도록 편집 환경을 제공하는 보고서 관리부를 더 포함할 수 있다.
일 실시예에 따라, 상기 동적 프로그램 저작 시스템은,
상기 편집된 폼 오브젝트, 업무 로직 서비스 오브젝트, DB 서비스 오브젝트를 메모리에 로딩하고, 상기 연결 관계 정보 및 파라미터 속성에 따라 상기 로딩된 오브젝트들을 결합하여 실행할 수 있는 실행 환경을 제공하는 동적 실행 관리자를 더 포함할 수 있다.
일 실시예에 따라, 상기 프로젝트 관리부는 오브젝트 단위로, 또는 다수의 오브젝트들과 연결 관계 정보를 모두 포함한 오브젝트 묶음으로 가져오기 또는 내보내기하도록 동작할 수 있다.
본 발명의 다른 측면에 따른 동적 프로그램 저작 및 배포 시스템은,
개발자가 폼 오브젝트를 구성하는 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보를 편집할 수 있도록 편집 환경을 제공하는 폼 디자인부;
개발자가 사용자의 업무 프로세스를 전산화한 업무 로직 서비스 오브젝트들을 구성하는 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 업무 로직 서비스 편집부;
개발자가 데이터베이스(DB) 서비스 오브젝트들을 구성하며 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 DB 서비스 편집부;
개발자가 상기 폼 오브젝트, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 생성하거나 삭제하고, 오브젝트들 사이의 연결 관계 정보를 편집할 수 있도록 편집 환경을 제공하는 프로젝트 관리부; 및
작성이 완료된 폼 오브젝트들, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 상기 연결 관계 정보 및 파라미터 속성와 함께 동적 프로그램 적재 DB에 저장하는 저장부를 포함할 수 있다.
일 실시예에 따라, 상기 연결 관계 정보는 상호 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함할 수 있다.
일 실시예에 따라, 상기 동적 프로그램 저작 및 배포 시스템은,
개발자가 화면에 나타낸 양식에 채워진 업무 처리 결과를 출력할 보고서 양식을 편집할 수 있도록 편집 환경을 제공하는 보고서 관리부를 더 포함할 수 있다.
일 실시예에 따라, 상기 동적 프로그램 저작 및 배포 시스템은,
상기 편집된 폼 오브젝트, 업무 로직 서비스 오브젝트, DB 서비스 오브젝트를 메모리에 로딩하고, 상기 연결 관계 정보 및 파라미터 속성에 따라 상기 로딩된 오브젝트들을 결합하여 실행할 수 있는 실행 환경을 제공하는 동적 실행 관리자를 더 포함할 수 있다.
일 실시예에 따라, 상기 프로젝트 관리부는 오브젝트 단위로, 또는 다수의 오브젝트들과 연결 관계 정보를 모두 포함한 오브젝트 묶음으로 가져오기 또는 내보내기하도록 동작할 수 있다.
본 발명의 다른 측면에 따른 동적 프로그램 구동 시스템은,
컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보로써 구성되는 폼 오브젝트, 사용자의 업무 프로세스를 전산화한 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되는 업무 로직 서비스 오브젝트들, 그리고 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되는 DB 서비스 오브젝트들을 상기 오브젝트들 사이의 연결 관계 정보와 함께 데이터베이스 구조로 저장하는 동적 프로그램 적재 DB; 및
상기 폼 오브젝트들, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들, 연결 관계 정보를 상기 동적 프로그램 적재 DB로부터 읽어들여 메모리에 로딩하고, 상기 폼 오브젝트들 중 미리 설정된 폼 오브젝트를 화면에 표시하며, 사용자의 인터랙션, 이벤트, 설정된 연결 관계 정보에 따라 다른 폼 오브젝트를 화면에 표시하거나 상기 업무 로직 서비스 오브젝트들 또는 상기 DB 서비스 오브젝트들 중 적어도 하나를 호출 및 실행시키며, 상기 호출 및 실행된 서비스 오브젝트의 실행 결과를 상기 폼 오브젝트들 중 선택된 폼 오브젝트를 통해 화면에 표시하는 동적 프로그램 실행기를 포함할 수 있다.
일 실시예에 따라, 상기 동적 프로그램 실행기는
상기 로딩된 폼 오브젝트들 중에서 호출되는 폼 오브젝트에 의해 정의된 화면을 생성하는 폼 로더;
현재 생성된 화면의 폼 오브젝트에 포함된 컴포넌트들에 관하여 정의된 이벤트 발생 조건에 따라, 이벤트의 발생 여부를 분석하고, 컴포넌트들에 관하여 정의된 이벤트 반응 속성에 따라 지정된 폼 오브젝트 또는 서비스 오브젝트를 호출하는 이벤트 관리부;
상기 로딩된 업무 로직 서비스 오브젝트들 중에서 호출된 업무 로직 서비스 오브젝트의 함수 내지 프로시저를 실행하는 로직 실행부;
업무 DB에 대하여 상기 로딩된 DB 서비스 오브젝트들 중에서 호출된 DB 쿼리를 실행하는 DB 접속부; 및
상기 실행되는 오브젝트들에 의해 생성되고 교환되는 데이터들을 상기 오브젝트들의 파라미터 속성에 따라 적절한 데이터 형식으로 변환하고, 변환된 데이터들을 상기 연결 관계 정보에 따라 식별된 목적지 오브젝트의 컴포넌트 또는 함수 내지 프로시저에 전달하는 파라미터 파서를 포함할 수 있다.
일 실시예에 따라, 상기 연결 관계 정보는 서로 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함하고,
상기 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들은 태그 속성을 기초로 호출할 상대방 또는 데이터를 주고받을 상대방을 특정할 수 있다.
본 발명의 또 다른 측면에 따른 동적 프로그램 구동 시스템은,
데이터베이스 구조로 저장된 폼 오브젝트들, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들 및 연결 관계 정보를 메모리에 로딩하고, 상기 폼 오브젝트들 중 미리 설정된 폼 오브젝트를 화면에 표시하며, 사용자의 인터랙션, 이벤트, 설정된 연결 관계 정보에 따라 다른 폼 오브젝트를 화면에 표시하거나 상기 업무 로직 서비스 오브젝트들 또는 상기 DB 서비스 오브젝트들 중 적어도 하나를 호출 및 실행시키며, 상기 호출 및 실행된 서비스 오브젝트의 실행 결과를 상기 폼 오브젝트들 중 선택된 폼 오브젝트를 통해 화면에 표시하는 동적 프로그램 실행기를 포함하고,
상기 폼 오브젝트는 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보로써 구성되며,
상기 업무 로직 서비스 오브젝트는 사용자의 업무 프로세스를 전산화한 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되고,
상기 DB 서비스 오브젝트는 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성될 수 있다.
본 발명의 다른 측면에 따른 개발자가 컴퓨터에서 구동된 동적 프로그램 저작 도구를 이용하여 동적 프로그램을 저작할 수 있게 하는 동적 프로그램 저작 방법은,
상기 컴퓨터에서,
개발자가 폼 오브젝트를 구성하는 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보를 편집할 수 있도록 편집 환경을 제공하는 단계;
개발자가 사용자의 업무 프로세스를 전산화한 업무 로직 서비스 오브젝트들을 구성하는 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 단계;
개발자가 데이터베이스(DB) 서비스 오브젝트들을 구성하며 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 단계; 및
개발자가 상기 폼 오브젝트, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 생성하거나 삭제하고, 오브젝트들 사이의 연결 관계 정보를 편집할 수 있도록 편집 환경을 제공하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 연결 관계 정보는 상호 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함할 수 있다.
일 실시예에 따라, 상기 동적 프로그램 저작 방법은,
개발자가 화면에 나타낸 양식에 채워진 업무 처리 결과를 출력할 보고서 양식을 편집할 수 있도록 편집 환경을 제공하는 단계를 더 포함할 수 있다.
일 실시예에 따라, 상기 동적 프로그램 저작 방법은,
상기 편집된 폼 오브젝트, 업무 로직 서비스 오브젝트, DB 서비스 오브젝트를 메모리에 로딩하고, 상기 연결 관계 정보 및 파라미터 속성에 따라 상기 로딩된 오브젝트들을 결합하여 실행할 수 있는 실행 환경을 제공하는 단계를 더 포함할 수 있다.
일 실시예에 따라, 상기 동적 프로그램 저작 방법은,
작성이 완료된 폼 오브젝트들, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 상기 연결 관계 정보 및 파라미터 속성와 함께 동적 프로그램 적재 DB에 저장하는 단계를 더 포함할 수 있다.
일 실시예에 따라, 상기 동적 프로그램 저작 방법은,
오브젝트 단위로, 또는 다수의 오브젝트들과 연결 관계 정보를 모두 포함한 오브젝트 묶음으로 가져오기 또는 내보내기하는 단계를 더 포함할 수 있다.
본 발명의 다른 측면에 따른 동적 프로그램 구동 방법은,
컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보로써 구성되는 폼 오브젝트, 사용자의 업무 프로세스를 전산화한 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되는 업무 로직 서비스 오브젝트들, 그리고 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되는 DB 서비스 오브젝트들을 상기 오브젝트들 사이의 연결 관계 정보와 함께 데이터베이스 구조로 동적 프로그램 적재 DB에 저장하는 단계;
상기 폼 오브젝트들, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들, 연결 관계 정보들을 상기 동적 프로그램 적재 DB로부터 읽어들여 메모리에 로딩하고, 상기 폼 오브젝트들 중 미리 설정된 폼 오브젝트를 화면에 표시하며, 사용자의 인터랙션, 이벤트, 설정된 연결 관계 정보에 따라 다른 폼 오브젝트를 화면에 표시하거나 상기 업무 로직 서비스 오브젝트들 또는 상기 DB 서비스 오브젝트들 중 적어도 하나를 호출 및 실행시키며, 상기 호출 및 실행된 서비스 오브젝트의 실행 결과를 상기 폼 오브젝트들 중 선택된 폼 오브젝트를 통해 화면에 표시함으로써 동적 프로그램을 실행하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 동적 프로그램을 실행하는 단계는,
상기 로딩된 폼 오브젝트들 중에서 호출되는 폼 오브젝트에 의해 정의된 화면을 생성하는 단계;
현재 생성된 화면의 폼 오브젝트에 포함된 컴포넌트들에 관하여 정의된 이벤트 발생 조건에 따라, 이벤트의 발생 여부를 분석하고, 컴포넌트들에 관하여 정의된 이벤트 반응 속성에 따라 지정된 폼 오브젝트 또는 서비스 오브젝트를 호출하는 단계;
상기 로딩된 업무 로직 서비스 오브젝트들 중에서 호출된 업무 로직 서비스 오브젝트의 함수 내지 프로시저를 실행하는 단계;
업무 DB에 대하여 상기 로딩된 DB 서비스 오브젝트들 중에서 호출된 DB 쿼리를 실행하는 단계; 및
상기 실행되는 오브젝트들에 의해 생성되고 교환되는 데이터들을 상기 오브젝트들의 파라미터 속성에 따라 적절한 데이터 형식으로 변환하고, 변환된 데이터들을 상기 연결 관계 정보에 따라 식별된 목적지 오브젝트의 컴포넌트 또는 함수 내지 프로시저에 전달하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 연결 관계 정보는 서로 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함하고,
상기 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들은 태그 속성을 기초로 호출할 상대방 또는 데이터를 주고받을 상대방을 특정할 수 있다.
본 발명의 또 다른 측면에 따른 동적 프로그램 적재 데이터베이스 구축 방법은,
컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보들을 필드 값으로 하여 폼 오브젝트를 구조화하는 단계;
사용자의 업무 프로세스를 전산화한 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성들을 필드 값으로 하여 업무 로직 서비스 오브젝트들을 구조화하는 단계;
상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성들을 필드 값으로 하여 DB 서비스 오브젝트들을 구조화하는 단계; 및
상기 오브젝트들을 상기 오브젝트들 사이의 연결 관계 정보와 함께 데이터베이스 구조로 저장하는 단계를 포함할 수 있다.
일 실시예에 따라, 상기 연결 관계 정보는 서로 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함하고,
상기 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들이 태그 속성을 기초로 호출할 상대방 또는 데이터를 주고받을 상대방을 특정할 수 있도록 상기 태그 속성이 지정될 수 있다.
본 발명의 오브젝트 단위의 동적 프로그램의 저작, 배포 및 구동 방법 및 장치에 따르면, 개발자는 각각의 역할에 따라 정형화된 오브젝트들을 고객사의 요구 조건에 따라 개별적으로 작성하고 오브젝트들 사이의 연결 관계를 정의함으로써 하나의 프로그램 프로젝트를 완성할 수 있기 때문에, 처음부터 전체 코드를 설계 및 작성할 필요를 제거할 수 있고 개발자의 숙련 요구도나 작업량을 줄일 수 있다.
또한, 본 발명의 오브젝트 단위의 동적 프로그램의 저작, 배포 및 구동 방법 및 장치에 따르면, 개발자가 프로그램을 배포할 때에는 작성된 오브젝트들을 고객사의 적재 DB에 전송 및 저장하는 것으로 완료되므로, 전체 프로그램을 컴파일하지 않고도 프로그램을 배포할 수 있다. 나아가, 프로젝트에 수정이 필요할 때에는 수정된 오브젝트만 적재 DB에 교체 저장하는 것으로 충분하기 때문에, 유지 보수도 효율적이다.
본 발명의 오브젝트 단위의 동적 프로그램의 저작, 배포 및 구동 방법 및 장치에 따르면, 고객사의 사용자들은 적재 DB로부터 최신 버전으로 수정된 오브젝트들을 불러들여 동적으로 조합하고 실행 환경을 제공하는 동적 실행 관리자를 실행하는 것만으로, 매번 최신 버전의 프로그램을 배포받아 전체 재설치하지 않아도, 항상 최신 버전으로 유지 보수된 프로그램이 실행되는 경험을 얻을 수 있다.
도 1은 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램의 저작, 배포 및 구동 시스템을 예시한 개념도이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램에 관하여 하나의 프로젝트가 어떻게 구성되는지를 개념적으로 예시한 개념도들이다.
도 4는 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램에 관하여 오브젝트들 사이에 속성과 태그를 이용하여 어떻게 연결관계가 설정되는지를 개념적으로 예시한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램 저작도구를 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따라 오브젝트 단위의 동적 프로그램을 동적으로 실행하는 동적 프로그램 실행기를 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램을 실행하는 절차를 예시한 순서도이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램에 관하여 하나의 프로젝트가 어떻게 구성되는지를 개념적으로 예시한 개념도들이다.
도 4는 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램에 관하여 오브젝트들 사이에 속성과 태그를 이용하여 어떻게 연결관계가 설정되는지를 개념적으로 예시한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램 저작도구를 예시한 도면이다.
도 6은 본 발명의 일 실시예에 따라 오브젝트 단위의 동적 프로그램을 동적으로 실행하는 동적 프로그램 실행기를 예시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램을 실행하는 절차를 예시한 순서도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램의 저작, 배포 및 구동 시스템을 예시한 개념도이다.
도 1을 참조하면, 동적 프로그램 저작 시스템(10)과 동적 프로그램 구동 시스템(30)이 예시되어 있다.
동적 프로그램 저작 시스템(10)은 제1 네트워크(41)를 통해 고객사 DB(50)와 연결되고, 동적 프로그램 구동 시스템(30)은 제2 네트워크(42)를 통해 고객사 DB(50)와 연결된다. 고객사 DB(50)는 동적 프로그램 적재 DB(51) 및 로컬 업무 DB(52)를 포함할 수 있다. 이때, 예를 들어 제1 네트워크(41)는 공용 네트워크인 인터넷이고, 제2 네트워크(42)는 사설 네트워크인 인트라넷 또는 전용망이 될 수 있다.
도 1에서는 동적 프로그램 저작 시스템(10)과 동적 프로그램 구동 시스템(30)이 물리적 또는 지리적으로 멀리 떨어져 있는 것으로 예시되었지만, 실시예에 따라서는 동적 프로그램 저작 시스템(10)과 동적 프로그램 구동 시스템(30)이 공통 범위의 하드웨어 내에, 예를 들어 고객의 통제권에 있는 하드웨어 내에 함께 구축될 수도 있다.
고객이 요구하는 특정 기능에 관하여 개발자가 원격으로 또는 직접 고객과 상담하면서 그 자리에서(in-situ) 프로젝트의 원하는 부분을 커스터마이징할 수 있고, 동시에 프로젝트의 수정된 부분은 컴파일없이도, 나아가 심지어 동적 프로그램 전체를 메모리에서 언로딩 및 재실행하지 않고서도, 즉각적으로 동적 프로그램 구동 시스템(30)에 갱신 및 실행시킬 수 있다.
나아가, 고객이 프로그램을 수정할 권한이나 능력을 갖춘 경우라면, 고객이 직접 동적 프로그램을 원하는 방향으로 커스터마이징할 수도 있다.
동적 프로그램 저작 시스템(10)은 대량의 정형화된 데이터와 정형화된 업무를 취급하기 위한 프로그램 프로젝트를 몇 가지의 정형화된 역할 별로 분할한 오브젝트들을 개발자가 정형적으로 작성할 수 있도록 보조하는 도구, 즉 저작 툴(tool)들을 포함한다. 본 출원의 발명자는 그러한 프로그램에 관하여, 데이터의 입력부터 출력에 이르는 과정을 1) 사용자와 시스템 사이의 그래픽 인터페이스, 2) 사용자 업무를 전산화하는 데에 필요한 업무 프로세스, 3) DB 쿼리 및 관리, 4) 업무 처리 결과 보고서의 출력이라는 네 가지의 역할로 크게 분류하고, 하나의 전체 프로그램 프로젝트를 이러한 역할을 담당하는 오브젝트들의 집합으로서 개발하고 오브젝트들 사이에서는 규격화된 통신 인터페이스를 이용하여 연결시킴으로써 체계적이고 기계적으로 동적 프로그램을 개발할 수 있는 방안을 고안한 것이다.
잠시 도 2를 참조하면, 도 2는 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램에 관하여 하나의 프로젝트가 어떻게 구성되는지를 개념적으로 예시한 개념도이다.
하나의 프로젝트 내에서 필요한 오브젝트들이 모두 작성되고 이들 사이에 연결 관계가 적절히 구축되면 이러한 오브젝트들과 연결관계로써 원하는 기능을 수행하는 프로그램이 완성될 수 있다.
이를 위해 다음과 같은 개념들이 정립될 수 있다.
먼저, 본 명세서에서는 앞서 말한 네 가지 역할을 각각 담당하는 오브젝트들과 이들 사이의 연결관계를 정의하는 코드들을 통틀어 디자인 코드라고 지칭한다. 디자인 코드는 종래에 컴파일을 거쳐야 하는 프로그램 소스 코드와 다른 개념을 가지며, 마치 하나의 큰 퍼즐의 퍼즐 조각과 같이, 개발자에게는 직관적으로 이해하고 개별적으로 저작할 수 있는 것이고, 동적 실행부에게는 개별적으로 메모리에 로딩되고 해석되며 실행될 수 있는 것이다.
디자인 코드는 전체 프로젝트, 연결관계, 폼 오브젝트, 컴포넌트, 속성, 이벤트, 로직 스크립트, SQL 등을 포함할 수 있다.
프로젝트(project)는 목적하는 기능을 수행할 오브젝트들로 구성된 동적 프로그램의 최상위 그룹으로서, 동적 프로그램의 생성과 저장 단계에서 고유 ID를 가지고 구분될 수 있다.
오브젝트(object)는 프로젝트 내에서 메모리 로딩의 단위로서 프로젝트를 구성하며 그 역할에 따라 크게 폼 오브젝트와 서비스 오브젝트로 나뉠 수 있다. 폼 오브젝트는 화면에 표현되어 사용자와 사이에 인터페이스를 제공하는 오브젝트이고, 서비스 오브젝트는 폼 오브젝트를 통해 입력된 정보를 가공하거나 또는 폼 오브젝트에 표시될 정보를 생성하고 로컬 업무 DB(52)에 정보를 입출력하는 기능들을 수행하기 위한 오브젝트이다.
도 3은 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램에 관하여 하나의 프로젝트가 어떻게 구성되는지를 개념적으로 예시한 개념도들이다.
도 3을 참조하면, 오브젝트들 사이에는 주/종 관계 또는 모/자/형제 관계가 어떻게 정의될 수 있는지 예시되어 있다. 예를 들어, 폼 오브젝트 A는 이벤트 발생 시에 업무 로직 A 또는 업무 로직 B를 호출할 수 있다. 이 경우, 폼 오브젝트 A와 업무 로직 A, B는 주종 관계 또는 모자 관계이다.
한편, 업무 로직 A는 실행을 위해 DB 서비스 A를 호출할 수 있고, 업무 로직 B는 실행을 위해 DB 서비스 B와 C를 함께 호출할 수 있다. 이 경우, 업무 로직 A와 DB 서비스 A는 주종 또는 모자 관계이고, DB 서비스 B와 C는 형제 관계이다.
또한 폼 오브젝트 A는 이벤트 발생 시에 새로운 폼 오브젝트 B를 화면에 표시할 수도 있다. 나아가, 폼 오브젝트 D는 화면에 표시될 때에 사용자의 특정한 입력이 없어도 특정 데이터를 처음부터 화면에 표시하는 것이 필요할 경우에는 이를 위한 DB 서비스 B를 직접 호출할 수도 있다.
이러한 오브젝트 간의 다양한 연결 관계는 프로젝트의 중요한 부분으로서 관리된다.
한편, 도 3에서 알 수 있듯이, 하나의 오브젝트는 다양한 위치에서 연결 관계에 의해 중복적으로 호출될 수 있다. 예를 들어, 폼 B는 폼 A에서도 호출되고 폼 D에 의해서도 호출될 수 있으며, 업무 로직 A는 폼 A에 의해서 호출될 수도 있지만 폼 E에 의해서도 호출될 수 있다. 이렇게 한 차례 작성된 오브젝트가 여러 가지 연결 관계에 의해 다양한 양상으로 재사용될 수 있다.
또한, 특정 위치의 오브젝트를 수정하였을 때에, 수정 사항이 동일한 내용의 오브젝트들 중에 해당 위치의 오브젝트에만 적용될 수도 있고, 모든 위치의 오브젝트에 적용되게 할 수도 있다. 예를 들어 사용자의 요청에 따라 폼 A에 의해 호출되는 폼 B를 폼 B'로 수정하였을 경우, 개발자의 의도에 따라 폼 A에 의해 호출되는 폼 B만 수정될 수 있고, 또는 폼 D에 의해 호출되는 폼 B도 함께 폼 B'로 수정될 수도 있다.
나아가, 현재 프로젝트에서 사용된 오브젝트는 오브젝트 단위로, 또는 다수의 오브젝트들과 상하위 연결 관계 정보를 모두 포함한 오브젝트 묶음으로 가져오기 또는 내보내기를 할 수 있기 때문에 다른 프로젝트에 쉽게 삽입될 수 있다.
도 2로 돌아가서, 특정 폼 오브젝트는 특정 정보를 입력받거나 표시하고, 그 특정 정보를 취급하기 위해서는 특정 서비스 오브젝트를 호출하여야 한다. 또한, 어떤 하나의 서비스 오브젝트가 여러 폼 오브젝트에서 호출될 수도 있다.
컴포넌트는 폼 오브젝트를 구성하는 정형화된 최소 단위 객체를 의미한다. 폼에 특정 정보를 특정 위치에 입력 또는 출력하기 위한 텍스트 박스, 콤보 박스, 옵션 선택 라디오 버튼, 명령어 버튼, 레이블, 스프레드, 도형, 이미지, 미디어 등이 있다.
속성은 컴포넌트마다 지정되어야 하는 성질을 정의하는 것으로, ID, 종류, 이름, 크기, 위치, 폰트, 태그, 이벤트의 발생 조건과 반응 등의 값을 가진다. 이때, 다른 오브젝트들의 구성 요소들도 다수의 속성에 의해 정의되고 태그에 의해 연결되는 것은 마찬가지이다.
여기서, 태그는 본 발명의 동적 프로그램 저작, 배포 및 구동 시스템에서 독특한 개념으로서, 특정 오브젝트들에서 특정 역할을 하는 요소들 사이의 연결을 위해 약속된 속성 정보이다. 태그는 폼 오브젝트의 컴포넌트와 서비스 오브젝트의 함수/프로시저 사이, 또는 서로 다른 서비스 오브젝트들의 함수/프로시저 사이에서 고유한 연결관계를 제공할 수 있다. 예를 들어, 동일한 태그를 가진 컴포넌트와 함수는 일대일로 연결되는 관계이며, 만약 어떤 컴포넌트가 데이터의 입력 용도라면 입력된 데이터가 해당 함수에 관한 것임을 의미하고, 만약 해당 컴포넌트가 데이터의 출력 용도라면, 해당 함수에서 출력된 데이터가 해당 컴포넌트를 통해 표시될 것임을 의미한다.
한편, 태그 정보는 개발자가 인식하기 편한 형식으로 부여될 수 있다. 태그는 한 프로젝트 내에서 오브젝트들 사이에 공통적으로 약속되어 사용되는 속성 정보이므로, 중복되거나 잘못 지정되지 않도록 관리될 수 있다.
예를 들어, 특정 폼 오브젝트 내의 텍스트 박스가 특정 서비스 오브젝트의 특정 함수에 대해 특정 태그로써 연결되어 있는데, 개발자가 인터페이스 수정을 위해 이 텍스트 박스 컴포넌트를 콤보 박스 컴포넌트로 변경하였다고 가정하자. 이 경우, 변경된 컴포넌트는 원래의 컴포넌트에 비해 ID, 종류, 이름, 크기, 위치, 폰트 등의 속성이 모두 변경될 수 있는데, 그럼에도 불구하고 원래의 태그 속성만 유지된다면, 변경된 컴포넌트는 특정 서비스 오브젝트의 특정 함수에 대해 아무 문제없이 연결될 수 있다.
함수(function) 또는 프로시저(procedure)는 업무 로직 서비스 또는 DB 서비스 오브젝트 내에서 실제 기능을 구현하기 위한 코드들의 집합을 가리킨다. 폼 오브젝트의 컴포넌트에 대하여 특정 이벤트가 발생하면(예를 들어 텍스트 박스에 데이터가 입력된다거나, 라디오 버튼 컨포넌트가 눌러진다거나, 실행 버튼이 눌러지는 등의 이벤트), 특정 서비스 오브젝트의 특정 함수 또는 프로시저가 호출될 수 있다.
파라미터는 특정 함수 또는 프로시저를 호출하는 오브젝트가 특정 함수 또는 프로시저에서 그 기능을 실행하기 위해 입력되어야 할 데이터를 해당 함수 또는 프로시저에 제공하기 위한 형식 내지 수단이며, 또한 호출된 함수 또는 프로시저가 자신의 실행 결과를 다른 오브젝트 또는 함수/프로시저로 전달하기 위한 형식 내지 수단이다. 파라미터는 데이터를 주고받는 상대 오브젝트나 함수에 따라 어떤 종류와 규격의 데이터로서 주고받을 것인지 그 형식을 정의한 것 또는 그렇게 정의된 형식으로 가공된 데이터를 가리킨다. 한편, 어떤 컴포넌트가 어떤 함수에 대해 어떤 파라미터를 통해 연결될 것인지는 태그에 의해 정의될 수 있다.
이렇듯, 속성과 태그로 정의된 컴포넌트들로써 폼 오브젝트를 구성하고, 파라미터들로 입출력되는 함수 또는 프로시저들로써 업무 로직 서비스 오브젝트 내지 DB 서비스 오브젝트들을 구성하며, 이러한 폼 오브젝트들과 서비스 오브젝트들로써 하나의 프로젝트를 구성할 수 있다.
이를 설명하기 위해 잠시 도 4를 참조하면, 도 4는 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램에 관하여 오브젝트들 사이에 속성과 태그를 이용하여 어떻게 연결관계가 설정되는지를 개념적으로 예시한 개념도이다.
도 4에서, 예를 들어, 특정 시작 날짜와 종료 날짜 사이에 특정 정보를 검색하는 기능이 필요하다고 가정하면, 먼저 폼 오브젝트에 사용자가 시작 날짜와 종료 날짜를 각각 입력할 수 있는 컴포넌트들을 가지는 입력 폼과 결과를 보여주는 컴포넌트를 가지는 결과 폼이 작성되고, 입력 폼과 결과 폼에 각각 태그가 할당된다.
한편, 업무 로직은 사용자가 실행을 지시하는 특정 업무 프로세스의 실행을 위해 사용자가 입력한 데이터 또는 DB에서 검색한 데이터들에 대해 연산하고 결과값을 생성하는 일련의 스크립트들을 포함하도록 작성되고, 작성된 업무 로직에 태그가 할당된다.
개발자는 입력 폼과 결과 폼에 할당한 태그들을 해당 입력 날짜 구간에 해당하는 정보 검색과 데이터 가공을 맡은 업무 로직의 태그와 연계시킨다.
나아가, 업무 로직 서비스가 동작을 위해 필요로 하는 특정한 데이터 형식이 있을 때에는 업무 로직 서비스의 입출력 데이터는 그 특정한 데이터 형식을 가지는 파라미터를 통해서 입출력되도록 파라미터 속성이 설정된다.
또한, DB 서비스도 특정 조건으로 DB를 검색하기 위한 쿼리를 포함하도록 작성되고, 작성된 DB 서비스에 태그가 할당된다.
이렇게 작성된 폼 오브젝트와 업무 로직 서비스 오브젝트, DB 서비스 오브젝트들이 실제로 실행될 때에는, 이러한 입력 컴포넌트에 사용자가 데이터를 입력하고 검색 버튼을 누르면, 해당 입력 폼에 관하여 할당된 태그들에 의해 연계된 업무 로직 서비스가 호출되고, 해당 업무 로직 서비스에 설정된 파라미터 속성에 맞춰 입력 컴포넌트에서 사용자 입력 데이터가 업무 로직 서비스에 제공되는 식으로 동작할 수 있다.
예를 들어, 입력 폼 오브젝트의 입력 컴포넌트는 사용자가 시작 날짜란와 종료 날짜란에 각각 YY/MM/DD와 같이 입력하도록 할 수 있는데, 이 입력 데이터는 태그에 의해 입력 컴포넌트와 연관된 업무 로직 서비스의 함수에 관하여 설정된 파라미터를 통해 해당 업무 로직 서비스 내의 함수로 제공된다.
업무 로직 서비스 내의 함수는 날짜 데이터를 YYYYMMDD 날짜 포맷으로 변환하고 이를 기초로 하여 정보를 생성할 수 있다. 예를 들어, 함수는 변환된 날짜 데이터를 각각 STARTDT, ENDDT 변수에 저장하는 스크립트로 작성될 수 있다. 이어서, 함수는 태그를 통해 자신이 필요로 하는 DB 서비스를 호출하고, 호출된 DB 쿼리에 의해 검색된 특정 데이터들을 처리하며, 이를 마찬가지로 태그를 통해 연결된 출력 폼 오브젝트의 출력 컴포넌트에 리턴한다.
다시 도 1로 돌아와서, 동적 프로그램 저작 시스템(10)은 프로젝트 관리부(project manager)(11), 폼 디자인부(form designer)(12), 업무 로직 서비스 편집부(business logic service editor)(13), DB 서비스 편집부(DB service editor)(14), 보고서 디자인부(print output designer)(15)를 포함한다.
개략적으로 설명하면, 프로젝트 관리부(11)는 프로젝트의 생성 및 삭제, 프로젝트 내의 오브젝트들의 생성과 삭제, 이동 또는 복사, 프로젝트 자체의 속성 편집 및 저장, 각 오브젝트들 사이에 정의된 연결관계 정보들의 편집 및 저장 등의 기능을 수행할 수 있다.
특히, 프로젝트 관리부(11)는 오브젝트 단위로, 또는 다수의 오브젝트들과 연결 관계 정보를 모두 포함한 오브젝트 묶음으로 가져오기(import) 또는 내보내기(export)할 수 있다. 예를 들어, 다른 프로젝트에서도 활용될 수 있는 특정 기능을 수행하기 위한 일련의 오브젝트들을 연결 관계 정보와 함께 묶어서 내보내기하여 저장해 두었다가, 다른 유사한 신규 프로젝트에서 내보내기된 오프젝트 묶음을 가져오기하여 신규 프로젝트에 삽입할 수도 있다.
폼 디자인부(12)는 개발자가 해당 프로그램의 사용자 그래픽 인터페이스(GUI)로서의 폼 오브젝트들을 컴포넌트 별로 설계할 수 있도록 보조한다.
업무 로직 서비스 편집부(13)는 개발자가 해당 프로그램에서 사용자가 실질적으로 수행하고자 하는 업무 프로세스를 구성하는 함수나 프로시저를 작성하기 위한 도구이며, DB 서비스 편집부(14)는 개발자가 컴포넌트, 함수, 프로시저에서 요구되는 DB 쿼리를 작성하기 위한 도구이다.
보고서 디자인부(15)는 화면에 나타낸 양식에 채워진 업무 처리 결과를 특정한 보고서 양식이나 출력 용지에 맞춰 보고서로 출력할 수 있도록 보고서 양식을 편집하기 위한 도구이다.
프로젝트 관리부(11), 폼 디자인부(12), 업무 로직 서비스 편집부(13), DB 서비스 편집부(14) 및 보고서 디자인부(15)를 이용하여 편집된 프로젝트, 오브젝트, 컴포넌트, 함수, 연결관계, 속성, 태그, 파라미터 등의 디자인코드들은 각각 그 특성에 맞게 정형적으로 변환되어 데이터베이스 형태로 구조화될 수 있다. 예를 들어, 프로젝트는 제목, 포함된 오브젝트들의 ID, 연결관계 등으로 데이터베이스 구조화될 수 있고, 오브젝트는 포함된 컴포넌트들의 ID, 이름, 종류, 위치, 외형, 태그 등의 속성들로써 데이터베이스 구조화될 수 있다.
이렇게 각각 특성에 맞게 구조화되는 디자인코드들은 제1 네트워크(41) 또는 그 밖의 전송 수단을 통해, 동적 프로그램 적재 DB(51)에 전송하여 저장함으로써, 컴파일된 실행 파일의 형식을 취하지 않고도, 동적 프로그램의 실행 및 배포를 실현할 수 있다. 이때, 동적 프로그램 저작 시스템(10)은 디자인코드들 중에 갱신된 부분만 동적 프로그램 적재 DB(51)에 전송하여 갱신토록 함으로써 데이터 트래픽을 최소로 할 수도 있다.
동적 프로그램 구동 시스템(30)은 동적 프로그램 적재 DB(51)에 제2 네트워크(42)를 통해 접근할 수 있으며, 동적 프로그램 실행기(31)에 의해 동적 프로그램 적재 DB(51)로부터 프로젝트를 메모리에 로딩하고 디자인코드들을 파싱하여 동적 프로그램으로서 구동할 수 있다.
동적 프로그램 실행기(31)는 로딩된 프로젝트로부터 오브젝트들과 그 연결관계들을 추출하고 분석한 다음, 먼저 최상위의 폼 오브젝트를 화면에 표시하고 사용자의 인터랙션, 이벤트, 설정된 연결관계에 따라 다른 폼 오브젝트를 화면에 표시하거나 서비스 오브젝트들을 호출 및 실행시키며, 서비스 오브젝트의 실행 결과를 폼 오브젝트를 통해 화면에 표시할 수 있다.
동적 프로그램 실행기(31)가 동적 프로그램의 구동을 위해 필요한 데이터는 동적 프로그램 적재 DB(51)에서 읽어들어오며, 반면에 실제 업무에 관하여 필요한 데이터를 불러오고 가공하기 위하여 이용되는 DB는 로컬 업무 DB(52)에서 관리된다.
도 5는 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램 저작도구를 예시한 도면이다.
도 5를 참조하면, 이렇게 구성되는 프로젝트를 작성하기 위한 동적 프로그램 저작 시스템(10)은, 구체적으로, 프로젝트 관리부(11), 폼 디자인부(12), 업무 로직 서비스 편집부(13), DB 서비스 편집부(14), 보고서 디자인부(15), 오브젝트 매핑부(object mapper)(16), 프로그램 저작 환경 관리부(program authoring environment manager)(17), 저장부(18)를 포함할 수 있다. 추가적으로 동적 프로그램 저작 시스템(10)은 동적 프로그램 실행기(dynamic program executor)(19)와 디버거(debugger)(20)를 더 포함할 수 있다.
프로젝트 관리부(11)는 프로젝트의 생성 및 삭제, 프로젝트 내의 오브젝트들의 생성과 삭제, 이동 또는 복사, 프로젝트 자체의 속성 편집 및 저장, 각 오브젝트들 사이에 정의된 연결관계 정보들의 편집 및 저장 등의 기능을 수행할 수 있다.
폼 디자인부(12)는 개발자가 해당 프로그램의 사용자 그래픽 인터페이스(GUI)를 디자인하기 위해 폼 오브젝트들을 설계할 수 있도록 한다. 폼 디자인부(12)는 개발자가 사용자 업무 화면의 구성에 필요한 각종 컴포넌트들을 양식(form) 화면 상에 적절히 배치할 수 있도록 예를 들어 드래그 앤 드롭(drag and drop) 편집 메뉴를 제공할 수 있다.
폼 디자인부(12)는 개발자가 편집 메뉴에서 선택하여 양식 화면 상의 원하는 위치에 끌어다 놓은 특정 컴포넌트를 양식 화면 상에 표시하고, 컴포넌트의 외형, 이벤트 발생 조건과 반응, 태그 매핑 관계, 호출할 서비스 등을 정의하기 위한 각종 속성 정보를 편집하고 저장할 수 있다.
이를 위해, 폼 디자인부(12)는 화면에 배치할 컴포넌트들에 관하여, ID, 이름, 설명, 위치와 형태, 입출력 데이터의 형식, 이벤트 조건, 이벤트 액션, 호출할 서비스, 태그 등의 속성 정보를 개발자로부터 입력받는다.
폼 디자인부(12)는 컴포넌트들의 각 속성 정보들을 필드로 가지는 데이터베이스 구조로 폼 오브젝트를 형성할 수 있다. 이렇게 형성된 폼 오브젝트는 동적 프로그램 적재 DB(51)에 그대로 저장될 수 있고, 동적 프로그램 적재 DB에서 읽혔을 때에는 데이터베이스 구조로 저장된 속성 정보들이 적절히 해석되면서 사용자 인터페이스의 화면 상에 컴포넌트들이 개발자가 의도한 대로 배치되고 구현될 수 있다.
업무 로직 서비스 편집부(13)는 개발자가 사용자의 업무 프로세스를 전산화한 업무 로직 서비스 오브젝트를 구성하는 함수 내지 프로시저를 편집할 수 있는 도구로서, 통상적인 고급 프로그래밍 언어 편집기와 유사하게 함수 별로 스크립트를 편집할 수 있고, 오류를 검증할 수 있는 구성도 추가로 가질 수 있다.
업무 로직이란, 폼 오브젝트의 컴포넌트들로부터 입력된 내용을 가공 내지 처리하거나 또는 컴포넌트에 출력될 내용을 생성하는 프로세스를 말한다. 업무 로직은 또한 DB에서 검색된 데이터를 기초로 연산 및 가공을 수행하고 그 결과를 상응하는 폼 오브젝트에 전달하여 각종 폼 컴포넌트에 의해 표시될 수 있도록 한다.
또한 업무 로직 서비스 편집부(13)는 함수나 프로시저에 대해 태그와 파라미터를 정의할 수 있다. 예를 들어, 폼 오브젝트와 업무 로직 서비스 오브젝트 사이, 업무 로직 서비스 오브젝트와 또 다른 업무 로직 서비스 오브젝트 사이, 업무 로직 서비스 오브젝트와 DB 서비스 오브젝트 사이에서, 태그를 기초로 하여 서로 간의 파라미터 연결 관계를 정의할 수 있고, 그러한 연결에 필요한 데이터의 종류와 형식을 파라미터 속성으로서 정의할 수 있다.
업무 로직 서비스 편집부(13)는 각각의 업무에 따라 작성된 스크립트, 파라미터 및 태그 정보들을 필드로 가지는 데이터베이스 구조로 업무 로직 서비스 오브젝트를 형성하고, 이를 동적 프로그램 적재 DB(51)에 저장할 수 있다.
데이터베이스 서비스 편집부(14)는 폼 오브젝트 또는 업무 로직 서비스 오브젝트에서 요구하는 DB 서비스를 위해 예를 들어 SQL(structured query language) 쿼리 스크립트를 편집하고 파라미터와 태그를 정의하기 위한 도구이다. DB 서비스 편집부(14)는 특정 SQL 쿼리의 실행 결과를 개발자가 미리 확인할 수 있고, 입출력 파라미터를 파싱할 수 있다.
DB 서비스 편집부(14)는 요구되는 DB 서비스에 따라 작성된 SQL 쿼리, 파라미터 및 태그 정보들을 필드로 가지는 데이터베이스 구조로 DB 서비스 오브젝트를 형성하고, 이렇게 파싱된 디자인코드들을 동적 프로그램 적재 DB(51)에 저장할 수 있다.
보고서 디자인부(15)는 사용자가 출력하기를 원하는 양식으로 보고서(report)를 프린트할 수 있도록 동적인 보고서의 디자인을 보조하는 툴이다.
보고서는 폼 오브젝트에 의해 화면에 표시된 컴포넌트들의 컨텐츠를 그대로 또는 출력 용지나 그 밖의 조건에 맞게 적절히 변형하여 작성될 수도 있고, 또는 업로 로직 서비스나 DB 서비스를 통해 획득된 데이터를 기초로 사용자가 원하는 형식으로 가공하거나 변형하여 출력될 수 있다.
이를 위해, 보고서 디자인부(15)는 각종 컴포넌트들을 보고서 디자인 상에 적절히 배치할 수 있도록 예를 들어 드래그 앤 드롭 리본 메뉴를 제공할 수 있다. 보고서 디자인 상에 배치되는 컴포넌트들은 특정 업무 로직의 처리 결과나 DB 쿼리 결과로서 폼 오브젝트의 컴포넌트들을 통해 화면 상에 표시되어 있는 값들을 태그를 통해 매핑하여 그대로 보고서 디자인에 옮길 수 있다. 또한, 보고서 디자인부(15)는 컴포넌트들에 예를 들어, 합계, 평균, 차이, 비율 등의 계산식 속성을 부여할 수 있고, 그러한 계산식에 의해 가공한 결과가 보고서 디자인에 포함되도록 지정할 수도 있으며, 나아가 다양한 하드웨어 제어 로직 등과 연결시킬 수도 있다.
보고서 디자인부(15)는 속성, 태그, 파라미터로써 정의된 컴포넌트들로 구성된 보고서들의 양식을 모아서 보고서 폼 오브젝트로써 저장할 수 있다.
오브젝트 매핑부(object mapper)(16)는 폼 오브젝트의 컴포넌트들, 업무 로직 서비스 오브젝트의 함수 내지 프로시저, DB 서비스 오브젝트의 SQL 쿼리들 사이에 태그와 파라미터로써 정의된 연결관계들을 관리할 수 있다.
프로그램 저작 환경 관리부(17)는 프로젝트 관리부(11), 폼 디자인부(12), 업무 로직 서비스 편집부(13), DB 서비스 편집부(14), 보고서 디자인부(15), 오브젝트 매핑부(16)와, 추가적으로 동적 실행기(19), 디버거(20)의 동작을 전체적으로 총괄하고 조율하여 개발자가 프로그램 프로젝트의 각 요소들을 작성하고 편집하며, 실행 및 검증할 수 있는 환경을 제공한다.
또한 프로그램 저작 환경 관리부(17)는 특정 디자인코드의 수정에 의해 다른 디자인코드에 영향을 미치는 경우에 이를 추적하여 프로젝트의 무결성을 추구할 수 있다.
저장부(18)는 디자인코드들에 관하여 열기, 저장, 삭제, 내보내기, 가져오기 등의 관리 기능과, 완성된 프로젝트를 고객사의 동적 프로그램 적재 DB(51)에 전송하는 기능을 제공할 수 있다.
동적 프로그램 실행기(dynamic executor)(19)는 동적 프로그램 저작 시스템(10)에서는 선택적인 구성요소로서, 동적 프로그램 저작 시스템(10) 내 각각의 폼 디자인부(12), 업무 로직 서비스 편집부(13), DB 서비스 편집부(14)에서 작성된 폼 오브젝트, 업무 로직 서비스 오브젝트, DB 서비스 오브젝트를 동적 프로그램 구동 시스템(30)에 전송하기 전에 메모리에 로딩하고 실행해 볼 수 있는 환경을 제공한다.
디버거(20)는 동적 실행기(19)와 함께 연동할 수 있으며, 프로젝트 내의 각종 디자인코드들 중에 비정상적이거나 충돌을 일으키는 요소를 검증할 수 있다.
도 6은 본 발명의 일 실시예에 따라 오브젝트 단위의 동적 프로그램을 동적으로 실행하는 동적 프로그램 실행기를 예시한 도면이다.
도 6을 참조하면, 동적 프로그램 구동 시스템(30) 내의 동적 프로그램 실행기(31)는 폼 로더(32), 그래픽 유저 인터페이스(GUI) 모듈(33), 이벤트 관리부(34), 파라미터 파서(35), 로직 실행부(36), DB 접속부(37), 보고서 생성부(38), 프린터 모듈(39)를 포함할 수 있다. 이러한 구성은 동적 프로그램 저작 시스템(10) 내의 동적 프로그램 실행기(19)도 실질적으로 마찬가지이다.
동적 프로그램 실행기(31)가 최초로 실행되면 각종 내부 변수를 초기화하고, 설정된 인수(argument)를 확인하여 DB 접속부(37)를 통해 동적 프로그램 적재 DB(51)로부터 폼 오브젝트들, 서비스 오브젝트들 및 연결관계를 읽어 메모리의 적절한 영역에 로딩한다.
폼 로더(32)는 메모리에 로딩된 폼 오브젝트들을 관리하며, 호출되는 폼 오브젝트에 의해 정의된 화면을 생성한다. 특히 폼 로더(32)는 동적 프로그램 실행기(31)가 실행될 초기에 표시되도록 설정된 폼 오브젝트를 기초로 최초의 화면을 구성할 수 있다. 구성된 화면은 GUI 모듈(33)을 통해 모니터에 표시될 수 있다. 이후의 화면은 사용자의 인터랙션이나 이벤트 발생 등에 의해 이벤트 관리부(34)에서 호출된 임의의 폼 오브젝트에 기초하여 생성될 수 있다.
GUI 모듈(33)은 현재 화면에서 사용자의 인터랙션이나 이벤트 발생에 따라 입력되는 값을 획득하여 폼 로더(32)로 전달하거나, 폼 로더(32)에서 새로 처리된 화면을 모니터에 표시할 수 있다.
이벤트 관리부(34)는 사용자의 인터랙션이나 조작을 입력받아, 현재 화면의 폼 오브젝트에 포함된 컴포넌트들에 관하여 정의된 이벤트 발생 조건 속성에 따라, 이벤트의 발생 여부를 분석하고, 마찬가지로 컴포넌트들에 관하여 정의된 이벤트 반응 속성에 따라 지정된 오브젝트를 폼 로더(32), 로직 실행부(36), DB 접속부(37)에서 실행시키는 등의 후속 동작을 수행할 수 있다.
동적 프로그램이 사용자의 업무를 보조하는 프로그램인 만큼, 동적 프로그램의 이후 동작을 결정하는 것은 대체로 사용자가 키보드나 마우스로 데이터를 입력한다거나, 사용자가 마우스로 특정 명령 컴포넌트를 동작시킨다거나 하는 사용자의 인터랙션이다. 따라서, 동적 프로그램의 동작을 제어하는 것은 실질적으로 이벤트 관리부(34)라고 할 수 있다.
예를 들어, 사용자가 특정 조건의 고객들의 정보를 검색하고자 한다면, 사용자는 정보 검색용 화면을 표시하는 메뉴를 클릭할 것이고, 이벤트 관리부(34)는 해당 메뉴에 관하여 이벤트가 발생할 경우에 호출하도록 정의되어 있는 정보 검색용 폼 오브젝트를 폼 로더(32)로 하여금 호출 및 실행하도록 할 수 있다. 이어서, 폼 로더(32)가 해당 정보 검색용 폼 오브젝트를 기초로 생성한 화면 상에서 사용자가 정보 검색 조건의 입력 컴포넌트에 검색 조건을 입력하고 검색 실행 컴포넌트를 클릭하면, 이벤트 관리부(34)는 입력 컴포넌트와 검색 실행 컴포넌트에 관하여 호출되도록 정의된 업무 로직 서비스 오브젝트 또는 DB 서비스 오브젝트를 각각 로직 실행부(36) 또는 DB 접속부(37)로 하여금 호출 및 실행하도록 할 수 있다. 다만, 어떤 오브젝트는 사용자에 의한 이벤트를 필요로 하지 않고 다른 오브젝트를 호출하도록 설계될 수도 있는데, 이 경우에는 이벤트 관리부(34)를 통하지 않을 수 있다.
파라미터 파서(35)는 오브젝트들의 실행에 의해 생성되고 교환되는 데이터들을 오브젝트들에 관하여 정의된 파라미터 속성에 따라 적절한 데이터 형식으로 변환하고, 변환된 데이터들을 태그 정보에 따라 식별된 목적지 오브젝트의 컴포넌트 또는 함수/프로시저에 전달한다.
로직 실행부(36)와 DB 접속부(37)는 동적 프로그램 적재 DB(51)로부터 각각 업무 로직 서비스 오브젝트들과 DB 서비스 오브젝트들을 읽어서 보유 및 관리하고 있다가, 이벤트의 발생에 의해 또는 디폴트로 특정 서비스 오브젝트가 호출되면, 필요한 데이터를 필요한 형식으로 파라미터 파서(33)를 통해 전달받아, 업무 로직 서비스 또는 로컬 업무 DB(52)의 입출력을 담당하는 DB 서비스를 수행하고, 수행된 결과로 생성된 데이터를 파라미터 파서(33)를 통해 목적하는 오브젝트로 전달할 수 있다.
DB 접속부(37)는 초기에 동적 프로그램을 로딩하는 단계에서는, 또는 동적 프로그램의 동작 중에라도 디자인코드가 업데이트된 경우에는, 동적 프로그램 적재 DB(51)에 접근할 수 있다.
동적 프로그램의 로딩과 파싱이 완료되고 실행 준비가 된 이후부터는 실제 사용자 업무를 수행하는 단계이므로, DB 접속부(37)는 이벤트 관리부(34)에 의해 호출되는 함수/프로시저나 DB 서비스를 수행하기 위해서 로컬 업무 DB(52)에 접근할 수 있다.
실시예에 따라, 동적 프로그램 실행기(31)는 추가적으로 보고서 생성부(38)와 프린터 모듈(39)을 더 포함할 수 있다. 보고서 생성부(38)는 사용자가 처리한 업무에 관하여 보고서를 출력하고자 할 때에 동적 프로그램 적재 DB(51)로부터 필요한 보고서 양식을 읽어들이고, 해당 보고서 양식에 따라 보고서를 생성할 수 있고, 프린터 모듈(39)을 통해 외부의 프린터에 출력시킬 수 있다.
도 7은 본 발명의 일 실시예에 따른 오브젝트 단위의 동적 프로그램을 실행하는 절차를 예시한 순서도이다.
도 7을 참조하면, 고객사의 데이터베이스(50)에는 동적 프로그램 적재 DB(51)와 업무 DB(52)가 설치되어 있고, 동적 프로그램 적재 DB(51)에는 미리 동적 프로그램 저작 시스템(10)에서 개발된 동적 프로그램 프로젝트의 디자인코드들이 제1 네트워크(41)를 통해 전송되어 저장되어 있다.
먼저, 단계(S71)에서, 동적 프로그램 실행기(31)가 미리 설정된 인수에 따라 동적 프로그램 적재 DB(51)로부터 해당 동적 프로그램에 관하여 작성된 프로젝트 내의 디자인코드들을 전부 또는 수정된 부분이 있을 경우에는 수정된 부분을 새로 읽어들인다.
단계(S72)에서, 동적 프로그램 실행기(31)는 동적 프로그램을 초기화하고 폼 오브젝트들과 서비스 오브젝트들을 각각 로딩하며 그 속성 정보를 파싱한다.
단계(S73)에서, 동적 프로그램 실행기(31)는 최초로 표시되도록 설정된 폼 오브젝트를 기초로 화면을 구성하여 사용자에게 표시한다.
단계(S74)에서, 동적 프로그램 실행기(31)는 사용자의 입력과 같은 이벤트 발생을 위해 대기한다.
단계(S75)에서, 동적 프로그램 실행기(31)는 사용자의 입력 등의 발생된 이벤트에 따라, 지정된 업무 로직 서비스 오브젝트를 호출하여 필요한 연산 작업을 수행하거나, 지정된 DB 서비스 오브젝트를 호출하여 필요한 SQL 작업을 수행한다.
실시예에 따라, 오브젝트들 사이의 연결 관계는 태그 속성에 의해 정의될 수 있다. 다시 말해, 사용자의 입력이 있거나 이벤트가 발생한 컴포넌트에 부여된 태그와 동일한 태그를 가진 오브젝트의 함수나 프로시저 또는 SQL 쿼리가 호출될 수 있다.
또한, 실시예에 따라, 오브젝트들 사이의 데이터 전달은 파라미터 속성에 의해 정의될 수 있다. 다시 말해, 데이터는 출력하는 측의 함수나 프로시저 또는 SQL 쿼리에 관한 파라미터 속성에 정의된 형식으로 변환되어 출력되거나, 입력받는 측의 함수나 프로시저 또는 SQL 쿼리에 관한 파라미터 속성에 정의된 형식으로 변환되어 입력될 수 있다.
단계(S76)에서는, 호출된 서비스 오브젝트의 작업 수행 결과에 관하여, 지정된 폼 오브젝트를 기초로 화면을 구성하여 사용자에게 표시하고, 단계(S74)로 진행한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다.
10 동적 프로그램 저작 시스템 11 프로젝트 관리부
12 폼 디자인부 13 업무 로직 서비스 편집부
14 DB 서비스 편집부 15 보고서 디자인부
16 오브젝트 매핑부 17 프로그램 저작 환경 관리부
18 저장부 19 동적 프로그램 실행기
20 디버거
30 동적 프로그램 구동 시스템 31 동적 프로그램 실행기
32 폼 로더 33 그래픽 유저 인터페이스 모듈
34 이벤트 관리부 35 파라미터 파서
36 로직 실행부 37 DB 접속부
38 보고서 생성부 39 프린터 모듈
41 제1 네트워크 42 제2 네트워크
50 고객사 DB 51 동적 프로그램 적재 DB
52 로컬 업무 DB
12 폼 디자인부 13 업무 로직 서비스 편집부
14 DB 서비스 편집부 15 보고서 디자인부
16 오브젝트 매핑부 17 프로그램 저작 환경 관리부
18 저장부 19 동적 프로그램 실행기
20 디버거
30 동적 프로그램 구동 시스템 31 동적 프로그램 실행기
32 폼 로더 33 그래픽 유저 인터페이스 모듈
34 이벤트 관리부 35 파라미터 파서
36 로직 실행부 37 DB 접속부
38 보고서 생성부 39 프린터 모듈
41 제1 네트워크 42 제2 네트워크
50 고객사 DB 51 동적 프로그램 적재 DB
52 로컬 업무 DB
Claims (31)
- 개발자가 폼 오브젝트를 구성하는 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보를 편집할 수 있도록 편집 환경을 제공하는 폼 디자인부;
개발자가 사용자의 업무 프로세스를 전산화한 업무 로직 서비스 오브젝트들을 구성하는 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 업무 로직 서비스 편집부;
개발자가 데이터베이스(DB) 서비스 오브젝트들을 구성하며 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 DB 서비스 편집부; 및
개발자가 상기 폼 오브젝트, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 생성하거나 삭제하고, 오브젝트들 사이의 연결 관계 정보를 편집할 수 있도록 편집 환경을 제공하고, 오브젝트 단위로, 또는 다수의 오브젝트들과 연결 관계 정보를 모두 포함한 오브젝트 묶음으로 가져오기(import) 또는 내보내기(export)하도록 동작하는 프로젝트 관리부를 포함하며,
폼 오브젝트들, 업무 로직 서비스 오브젝트들 및 DB 서비스 오브젝트들은 별도의 컴파일 실행 없이 실행 및 배포가 가능하도록 데이터베이스 형태로 구조화되는 동적 프로그램 저작 시스템. - 청구항 1에 있어서, 상기 연결 관계 정보는 상호 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함하는 것을 특징으로 하는 동적 프로그램 저작 시스템.
- 청구항 1에 있어서, 개발자가 화면에 나타낸 양식에 채워진 업무 처리 결과를 출력할 보고서 양식을 편집할 수 있도록 편집 환경을 제공하는 보고서 관리부를 더 포함하는 것을 특징으로 하는 동적 프로그램 저작 시스템.
- 청구항 1에 있어서, 상기 편집된 폼 오브젝트, 업무 로직 서비스 오브젝트, DB 서비스 오브젝트를 메모리에 로딩하고, 상기 연결 관계 정보 및 파라미터 속성에 따라 상기 로딩된 오브젝트들을 결합하여 실행할 수 있는 실행 환경을 제공하는 동적 실행 관리자를 더 포함하는 것을 특징으로 하는 동적 프로그램 저작 시스템.
- 삭제
- 개발자가 폼 오브젝트를 구성하는 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보를 편집할 수 있도록 편집 환경을 제공하는 폼 디자인부;
개발자가 사용자의 업무 프로세스를 전산화한 업무 로직 서비스 오브젝트들을 구성하는 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 업무 로직 서비스 편집부;
개발자가 데이터베이스(DB) 서비스 오브젝트들을 구성하며 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 DB 서비스 편집부;
개발자가 상기 폼 오브젝트, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 생성하거나 삭제하고, 오브젝트들 사이의 연결 관계 정보를 편집할 수 있도록 편집 환경을 제공하고, 오브젝트 단위로, 또는 다수의 오브젝트들과 연결 관계 정보를 모두 포함한 오브젝트 묶음으로 가져오기(import) 또는 내보내기(export)하도록 동작하는 프로젝트 관리부; 및
작성이 완료된 폼 오브젝트들, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 상기 연결 관계 정보 및 파라미터 속성과 함께 동적 프로그램 적재 DB에 저장하되, 상기 폼 오브젝트들, 업무 로직 서비스 오브젝트들 및 DB 서비스 오브젝트들은 데이터베이스 형태로 구조화되어 별도의 컴파일 실행 없이 실행 및 배포가 가능하도록 저장하는 저장부를 포함하는 동적 프로그램 저작 및 배포 시스템. - 청구항 6에 있어서, 상기 연결 관계 정보는 상호 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함하는 것을 특징으로 하는 동적 프로그램 저작 및 배포 시스템.
- 청구항 6에 있어서, 개발자가 화면에 나타낸 양식에 채워진 업무 처리 결과를 출력할 보고서 양식을 편집할 수 있도록 편집 환경을 제공하는 보고서 관리부를 더 포함하는 것을 특징으로 하는 동적 프로그램 저작 및 배포 시스템.
- 청구항 6에 있어서, 상기 편집된 폼 오브젝트, 업무 로직 서비스 오브젝트, DB 서비스 오브젝트를 메모리에 로딩하고, 상기 연결 관계 정보 및 파라미터 속성에 따라 상기 로딩된 오브젝트들을 결합하여 실행할 수 있는 실행 환경을 제공하는 동적 실행 관리자를 더 포함하는 것을 특징으로 하는 동적 프로그램 저작 및 배포 시스템.
- 삭제
- 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보로써 구성되는 폼 오브젝트, 사용자의 업무 프로세스를 전산화한 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되는 업무 로직 서비스 오브젝트들, 그리고 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되는 DB 서비스 오브젝트들을 별도의 컴파일 실행 없이 실행 및 배포가 가능하도록 상기 오브젝트들 사이의 연결 관계 정보와 함께 데이터베이스 구조로 저장하는 동적 프로그램 적재 DB; 및
상기 폼 오브젝트들, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들, 연결 관계 정보를 상기 동적 프로그램 적재 DB로부터 읽어들여 메모리에 로딩하고, 상기 폼 오브젝트들 중 미리 설정된 폼 오브젝트를 화면에 표시하며, 사용자의 인터랙션, 이벤트, 설정된 연결 관계 정보에 따라 다른 폼 오브젝트를 화면에 표시하거나 상기 업무 로직 서비스 오브젝트들 또는 상기 DB 서비스 오브젝트들 중 적어도 하나를 호출 및 실행시키며, 상기 호출 및 실행된 서비스 오브젝트의 실행 결과를 상기 폼 오브젝트들 중 선택된 폼 오브젝트를 통해 화면에 표시하는 동적 프로그램 실행기를 포함하는 동적 프로그램 구동 시스템. - 청구항 11에 있어서, 상기 동적 프로그램 실행기는
상기 로딩된 폼 오브젝트들 중에서 호출되는 폼 오브젝트에 의해 정의된 화면을 생성하는 폼 로더;
현재 생성된 화면의 폼 오브젝트에 포함된 컴포넌트들에 관하여 정의된 이벤트 발생 조건에 따라, 이벤트의 발생 여부를 분석하고, 컴포넌트들에 관하여 정의된 이벤트 반응 속성에 따라 지정된 폼 오브젝트 또는 서비스 오브젝트를 호출하는 이벤트 관리부;
상기 로딩된 업무 로직 서비스 오브젝트들 중에서 호출된 업무 로직 서비스 오브젝트의 함수 내지 프로시저를 실행하는 로직 실행부;
업무 DB에 대하여 상기 로딩된 DB 서비스 오브젝트들 중에서 호출된 DB 쿼리를 실행하는 DB 접속부; 및
상기 실행되는 오브젝트들에 의해 생성되고 교환되는 데이터들을 상기 오브젝트들의 파라미터 속성에 따라 적절한 데이터 형식으로 변환하고, 변환된 데이터들을 상기 연결 관계 정보에 따라 식별된 목적지 오브젝트의 컴포넌트 또는 함수 내지 프로시저에 전달하는 파라미터 파서를 포함하는 것을 특징으로 하는 동적 프로그램 구동 시스템. - 청구항 11에 있어서, 상기 연결 관계 정보는 서로 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함하고,
상기 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들은 태그 속성을 기초로 호출할 상대방 또는 데이터를 주고받을 상대방을 특정하는 것을 특징으로 하는 동적 프로그램 구동 시스템. - 별도의 컴파일 실행 없이 실행 및 배포가 가능하도록 데이터베이스 구조로 저장된 폼 오브젝트들, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들 및 연결 관계 정보를 메모리에 로딩하고, 상기 폼 오브젝트들 중 미리 설정된 폼 오브젝트를 화면에 표시하며, 사용자의 인터랙션, 이벤트, 설정된 연결 관계 정보에 따라 다른 폼 오브젝트를 화면에 표시하거나 상기 업무 로직 서비스 오브젝트들 또는 상기 DB 서비스 오브젝트들 중 적어도 하나를 호출 및 실행시키며, 상기 호출 및 실행된 서비스 오브젝트의 실행 결과를 상기 폼 오브젝트들 중 선택된 폼 오브젝트를 통해 화면에 표시하는 동적 프로그램 실행기를 포함하고,
상기 폼 오브젝트는 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보로써 구성되며,
상기 업무 로직 서비스 오브젝트는 사용자의 업무 프로세스를 전산화한 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되고,
상기 DB 서비스 오브젝트는 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되는 것을 특징으로 하는 동적 프로그램 구동 시스템. - 개발자가 컴퓨터에서 구동된 동적 프로그램 저작 도구를 이용하여 동적 프로그램을 저작할 수 있게 하는 동적 프로그램 저작 방법에 있어서,
상기 컴퓨터에서,
개발자가 폼 오브젝트를 구성하는 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보를 편집할 수 있도록 편집 환경을 제공하는 단계;
개발자가 사용자의 업무 프로세스를 전산화한 업무 로직 서비스 오브젝트들을 구성하는 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 단계;
개발자가 데이터베이스(DB) 서비스 오브젝트들을 구성하며 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성을 편집할 수 있도록 편집 환경을 제공하는 단계;
개발자가 상기 폼 오브젝트, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 생성하거나 삭제하고, 오브젝트들 사이의 연결 관계 정보를 편집할 수 있도록 편집 환경을 제공하는 단계; 및
작성이 완료된 오브젝트들을 오브젝트 단위로, 또는 다수의 오브젝트들과 연결 관계 정보를 모두 포함한 오브젝트 묶음으로 가져오기 또는 내보내기하는 단계;를 포함하며,
폼 오브젝트들, 업무 로직 서비스 오브젝트들 및 DB 서비스 오브젝트들은 별도의 컴파일 실행 없이 실행 및 배포가 가능하도록 데이터베이스 형태로 구조화되는 를 포함하는 동적 프로그램 저작 방법. - 청구항 15에 있어서, 상기 연결 관계 정보는 상호 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함하는 것을 특징으로 하는 동적 프로그램 저작 방법.
- 청구항 15에 있어서, 개발자가 화면에 나타낸 양식에 채워진 업무 처리 결과를 출력할 보고서 양식을 편집할 수 있도록 편집 환경을 제공하는 단계를 더 포함하는 것을 특징으로 하는 동적 프로그램 저작 방법.
- 청구항 15에 있어서, 상기 편집된 폼 오브젝트, 업무 로직 서비스 오브젝트, DB 서비스 오브젝트를 메모리에 로딩하고, 상기 연결 관계 정보 및 파라미터 속성에 따라 상기 로딩된 오브젝트들을 결합하여 실행할 수 있는 실행 환경을 제공하는 단계를 더 포함하는 것을 특징으로 하는 동적 프로그램 저작 방법.
- 청구항 15에 있어서, 작성이 완료된 폼 오브젝트들, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들을 상기 연결 관계 정보 및 파라미터 속성와 함께 동적 프로그램 적재 DB에 저장하는 단계를 더 포함하는 것을 특징으로 하는 동적 프로그램 저작 방법.
- 삭제
- 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보로써 구성되는 폼 오브젝트, 사용자의 업무 프로세스를 전산화한 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되는 업무 로직 서비스 오브젝트들, 그리고 상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성로써 구성되는 DB 서비스 오브젝트들을 별도의 컴파일 실행 없이 실행 및 배포가 가능하도록 상기 오브젝트들 사이의 연결 관계 정보와 함께 데이터베이스 구조로 동적 프로그램 적재 DB에 저장하는 단계;
상기 폼 오브젝트들, 업무 로직 서비스 오브젝트들, DB 서비스 오브젝트들, 연결 관계 정보들을 상기 동적 프로그램 적재 DB로부터 읽어들여 메모리에 로딩하고, 상기 폼 오브젝트들 중 미리 설정된 폼 오브젝트를 화면에 표시하며, 사용자의 인터랙션, 이벤트, 설정된 연결 관계 정보에 따라 다른 폼 오브젝트를 화면에 표시하거나 상기 업무 로직 서비스 오브젝트들 또는 상기 DB 서비스 오브젝트들 중 적어도 하나를 호출 및 실행시키며, 상기 호출 및 실행된 서비스 오브젝트의 실행 결과를 상기 폼 오브젝트들 중 선택된 폼 오브젝트를 통해 화면에 표시함으로써 동적 프로그램을 실행하는 단계를 포함하는 동적 프로그램 구동 방법. - 청구항 21에 있어서, 상기 동적 프로그램을 실행하는 단계는,
상기 로딩된 폼 오브젝트들 중에서 호출되는 폼 오브젝트에 의해 정의된 화면을 생성하는 단계;
현재 생성된 화면의 폼 오브젝트에 포함된 컴포넌트들에 관하여 정의된 이벤트 발생 조건에 따라, 이벤트의 발생 여부를 분석하고, 컴포넌트들에 관하여 정의된 이벤트 반응 속성에 따라 지정된 폼 오브젝트 또는 서비스 오브젝트를 호출하는 단계;
상기 로딩된 업무 로직 서비스 오브젝트들 중에서 호출된 업무 로직 서비스 오브젝트의 함수 내지 프로시저를 실행하는 단계;
업무 DB에 대하여 상기 로딩된 DB 서비스 오브젝트들 중에서 호출된 DB 쿼리를 실행하는 단계; 및
상기 실행되는 오브젝트들에 의해 생성되고 교환되는 데이터들을 상기 오브젝트들의 파라미터 속성에 따라 적절한 데이터 형식으로 변환하고, 변환된 데이터들을 상기 연결 관계 정보에 따라 식별된 목적지 오브젝트의 컴포넌트 또는 함수 내지 프로시저에 전달하는 단계를 포함하는 것을 특징으로 하는 동적 프로그램 구동 방법. - 청구항 21에 있어서, 상기 연결 관계 정보는 서로 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함하고,
상기 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들은 태그 속성을 기초로 호출할 상대방 또는 데이터를 주고받을 상대방을 특정하는 것을 특징으로 하는 동적 프로그램 구동 방법. - 컴포넌트들의 외형, 이벤트 조건, 이벤트 반응 동작에 관하여 정의하는 속성 정보들을 필드 값으로 하여 폼 오브젝트를 구조화하는 단계;
사용자의 업무 프로세스를 전산화한 함수 내지 프로시저와 입출력 데이터 형식을 정의하는 파라미터 속성들을 필드 값으로 하여 업무 로직 서비스 오브젝트들을 구조화하는 단계;
상기 컴포넌트, 함수, 또는 프로시저에서 요구되는 DB 쿼리와 입출력 데이터 형식을 정의하는 파라미터 속성들을 필드 값으로 하여 DB 서비스 오브젝트들을 구조화하는 단계; 및
상기 오브젝트들을 상기 오브젝트들 사이의 연결 관계 정보와 함께 데이터베이스 구조로 저장하는 단계를 포함하며,
폼 오브젝트들, 업무 로직 서비스 오브젝트들 및 DB 서비스 오브젝트들은 별도의 컴파일 실행 없이 실행 및 배포가 가능하도록 데이터베이스 형태로 구조화되어 저장되는 동적 프로그램 적재 데이터베이스 구축 방법. - 청구항 24에 있어서, 상기 연결 관계 정보는 서로 연결되는 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들 사이의 파라미터 속성들의 연결을 위해 할당되는 태그 속성을 포함하고,
상기 오브젝트들, 컴포넌트들, 함수 내지 프로시저들, DB 쿼리들이 태그 속성을 기초로 호출할 상대방 또는 데이터를 주고받을 상대방을 특정할 수 있도록 상기 태그 속성이 지정되는 것을 특징으로 하는 동적 프로그램 적재 데이터베이스 구축 방법. - 컴퓨터 장치를 청구항 1 내지 청구항 4 중 어느 한 청구항의 동적 프로그램 저작 시스템으로서 기능시키기 위한 프로그램을 기록한 컴퓨터 장치로 읽을 수 있는 기록 매체.
- 컴퓨터 장치를 청구항 6의 동적 프로그램 저작 및 배포 시스템으로서 기능시키기 위한 프로그램을 기록한 컴퓨터 장치로 읽을 수 있는 기록 매체.
- 컴퓨터 장치를 청구항 11 내지 청구항 14 중 어느 한 청구항의 동적 프로그램 구동 시스템으로서 기능시키기 위한 프로그램을 기록한 컴퓨터 장치로 읽을 수 있는 기록 매체.
- 컴퓨터 장치에서 청구항 15 내지 청구항 19 중 어느 한 청구항의 동적 프로그램 저작 방법의 각 단계들을 실행시키기 위한 프로그램을 기록한 컴퓨터 장치로 읽을 수 있는 기록 매체.
- 컴퓨터 장치에서 청구항 21 내지 청구항 23 중 어느 한 청구항의 동적 프로그램 구동 방법의 각 단계들을 실행시키기 위한 프로그램을 기록한 컴퓨터 장치로 읽을 수 있는 기록 매체.
- 청구항 24 또는 청구항 25의 방법에 의해 구축된 동적 프로그램 적재 데이터베이스가 수록된 컴퓨터 장치로 읽을 수 있는 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110097452A KR101326985B1 (ko) | 2011-09-27 | 2011-09-27 | 오브젝트 단위의 동적 컴파일리스 프로그램의 저작, 배포 및 구동 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110097452A KR101326985B1 (ko) | 2011-09-27 | 2011-09-27 | 오브젝트 단위의 동적 컴파일리스 프로그램의 저작, 배포 및 구동 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130033652A KR20130033652A (ko) | 2013-04-04 |
KR101326985B1 true KR101326985B1 (ko) | 2013-11-14 |
Family
ID=48435985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110097452A KR101326985B1 (ko) | 2011-09-27 | 2011-09-27 | 오브젝트 단위의 동적 컴파일리스 프로그램의 저작, 배포 및 구동 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101326985B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210105669A (ko) * | 2020-02-19 | 2021-08-27 | (주)파모즈 | 서버 개발 서비스 제공 방법 및 서버 개발 서비스 제공 방법을 수행하기 위한 프로그램이 저장된 저장매체 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180072889A (ko) * | 2016-11-23 | 2018-07-02 | (주) 더존비즈온 | 사용자 정의 erp 펑션 생성 방법 및 이를 수행하는 컴퓨팅 시스템 |
KR102200980B1 (ko) * | 2019-03-04 | 2021-01-11 | 주식회사 휴비즈아이시티 | 멀티 유저 에디팅 기능을 지원하는 가상 환경 구현 시스템 및 방법 |
KR102676309B1 (ko) | 2019-11-22 | 2024-06-19 | (주)에스티알바이오텍 | 시킴산 생산용 미생물 및 이를 이용한 시킴산 생산 방법 |
CN116088816B (zh) * | 2021-11-05 | 2024-03-26 | 大连联达科技有限公司 | 一种低代码开发全景业务视图的方法 |
CN114826899B (zh) * | 2022-03-16 | 2024-01-23 | 青岛海尔科技有限公司 | 设备控制服务的调试方法和装置、存储介质及电子装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100349973B1 (ko) | 2000-03-20 | 2002-08-23 | 애드라닷컴 주식회사 | 엠브이씨 모델에 기반을 둔 웹 페이지 저작을 위한 뷰우컨텐츠의 분리 및 실시간 적용 서버 콤포넌트 |
KR20040052618A (ko) * | 2004-04-16 | 2004-06-23 | 김호익 | 파라메터 기반의 소프트웨어 구축 시스템 및 그 방법 |
KR20060079690A (ko) * | 2005-01-03 | 2006-07-06 | 아토정보기술 주식회사 | 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍 자동화 방법 |
-
2011
- 2011-09-27 KR KR1020110097452A patent/KR101326985B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100349973B1 (ko) | 2000-03-20 | 2002-08-23 | 애드라닷컴 주식회사 | 엠브이씨 모델에 기반을 둔 웹 페이지 저작을 위한 뷰우컨텐츠의 분리 및 실시간 적용 서버 콤포넌트 |
KR20040052618A (ko) * | 2004-04-16 | 2004-06-23 | 김호익 | 파라메터 기반의 소프트웨어 구축 시스템 및 그 방법 |
KR20060079690A (ko) * | 2005-01-03 | 2006-07-06 | 아토정보기술 주식회사 | 템플릿과 패턴을 이용한 컴포넌트 기반의 프로그래밍 자동화 방법 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210105669A (ko) * | 2020-02-19 | 2021-08-27 | (주)파모즈 | 서버 개발 서비스 제공 방법 및 서버 개발 서비스 제공 방법을 수행하기 위한 프로그램이 저장된 저장매체 |
KR102364893B1 (ko) * | 2020-02-19 | 2022-02-18 | (주)파모즈 | 서버 개발 서비스 제공 방법 및 서버 개발 서비스 제공 방법을 수행하기 위한 프로그램이 저장된 저장매체 |
Also Published As
Publication number | Publication date |
---|---|
KR20130033652A (ko) | 2013-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7694272B2 (en) | Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language | |
US10222951B2 (en) | Modeling system for graphic user interface | |
JP5651121B2 (ja) | データオブジェクトの管理および自動的リンク | |
US7448024B2 (en) | System and method for software application development in a portal environment | |
US7971187B2 (en) | Configurable software stack | |
KR101326985B1 (ko) | 오브젝트 단위의 동적 컴파일리스 프로그램의 저작, 배포 및 구동 방법 및 장치 | |
US20160170719A1 (en) | Software database system and process of building and operating the same | |
US20210263834A1 (en) | Code Generation Platform | |
KR20060087995A (ko) | 작업 흐름을 모델링하는 방법 및 시스템 | |
KR20060087996A (ko) | 작업 흐름 도메인에서 횡단적인 거동 관심사를 모델링하는컴퓨터 구현 방법 | |
US9552194B2 (en) | System and method for creating a graphical user interface within a manufacturing execution system | |
US20120060141A1 (en) | Integrated environment for software design and implementation | |
CN117234480B (zh) | 基于本体的多编程语言组件规范和工作流系统及使用方法 | |
Leroy et al. | Behavioral interfaces for executable DSLs | |
CN112181483B (zh) | 等离子体控制系统软件开发平台及方法 | |
Kulkarni | Raising family is a good practice | |
Andrade et al. | Forms2Net–migrating oracle forms to microsoft. NET | |
Driessen | UML class models as first-class citizen: Metadata at design-time and run-time | |
CN102841918A (zh) | 二进制长对象流化数据处理装置和方法 | |
Sheldon et al. | Professional Visual Basic 2012 and. NET 4.5 Programming | |
US20100070954A1 (en) | Custom database system and method of building and operating the same | |
Walsh | A General Architecture for Hybrid Textual-Graphical Model Editors via Multiple Language Servers | |
Pedersen | Development of configuration software for a test rig of electrical systems | |
OliveiraJr et al. | Designing, Tracing, and Configuring Software Product Lines with SMarty | |
Sen | GALADE: A Round-Trip Graphical Modelling Tool for Abstraction Layered Architecture Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20181031 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20191031 Year of fee payment: 7 |