KR20110066519A - Software execution method in saas(software as a service) environment - Google Patents
Software execution method in saas(software as a service) environment Download PDFInfo
- Publication number
- KR20110066519A KR20110066519A KR1020090123206A KR20090123206A KR20110066519A KR 20110066519 A KR20110066519 A KR 20110066519A KR 1020090123206 A KR1020090123206 A KR 1020090123206A KR 20090123206 A KR20090123206 A KR 20090123206A KR 20110066519 A KR20110066519 A KR 20110066519A
- Authority
- KR
- South Korea
- Prior art keywords
- software
- information
- saas
- service
- component
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
본 발명은 온라인 상으로 소프트웨어 서비스를 제공하는 시스템에서 한 서버에서 여러 소프트웨어를 수행하기 위한 실행 기법에 관한 것이다. 보다 상세하게는 SaaS(software as a service) 환경에서, 서비스 가입자에게 소프트웨어 제공 서비스를 하는 경우, 하나의 서버에서 여러 소프트웨어를 수행하여 효율성을 도모하고 기업 별로 맞춤형 서비스를 제공하기 위한 방법에 관한 것이다. The present invention relates to an execution technique for executing various software in one server in a system for providing a software service online. More specifically, the present invention relates to a method for improving efficiency and providing customized services for each company by executing a plurality of software in one server when providing a service to a service subscriber in a software as a service (SaaS) environment.
본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2009-S-033-01, 과제명: 중소기업 SW 서비스를 위한 SssS 플랫폼 개발].The present invention is derived from a study conducted as part of the IT growth engine technology development project of the Ministry of Knowledge Economy [Task management number: 2009-S-033-01, Task name: SssS platform development for SME SW services].
컴퓨터를 사용하는 모든 사용자 및 기업에 있어서 하드웨어의 구입, 유지, 보수 뿐만 아니라 소프트웨어의 구입, 유지, 보수 또한 매우 중요한 이슈이다. 특히, 기업에 있어서 각종 OS, 사무용 프로그램, 그래픽 프로그램과 같은 다양한 애 플리케이션(application)의 구입, 유지, 업그레이드 비용은 하드웨어의 구입, 유지, 보수 비용만큼이나 큰 부담이 된다. The purchase, maintenance, and repair of software as well as the purchase, maintenance, and repair of hardware are very important issues for all users and businesses using computers. In particular, the cost of purchasing, maintaining, and upgrading various applications such as various OSs, office programs, and graphic programs in a company is as much as the cost of purchasing, maintaining, and repairing hardware.
또한, 기업 내부의 각종 재무, 인사, 관리 프로그램 및 각종 데이터들을 관리하기 위한 프로그램들은 구입 비용도 만만치 않을 뿐만 아니라 별도로 고가의 하드웨어를 구축해야 한다.In addition, the programs for managing various financial, human resources, management programs and data inside the company are not only expensive to purchase, but also require the construction of expensive hardware separately.
하지만, 네트워크 기술이 발전함에 따라, 네트워크 인프라를 이용하여 고가의 하드웨어, 소프트웨어를 도입하지 않고도 다양한 정보화 솔루션을 사용할 수 있도록 애플리케이션을 임대하여 이용할 수 있도록 해주는 서비스가 등장하기 시작했다. 이러한 서비스는 별도의 서버, 애플리케이션을 구매, 구축하지 않을 수 있고, 비용, 시간, 관리 인력의 부담을 해소하며, 중소기업의 경우 선진 경영 및 업무 프로세스를 쉽게 취득하면서 대기업과 대등한 업무 혁신을 가능하게 한다는 점 때문에 최근 많은 각광을 받고 있다. However, with the development of network technology, services that allow users to rent and use applications to use various informatization solutions without introducing expensive hardware and software using network infrastructure are beginning to emerge. These services may not purchase and deploy separate servers and applications, relieve the burden of cost, time, and management staff, and enable small and medium businesses to acquire advanced management and business processes while enabling business innovation on par with large corporations. It has recently been in the spotlight.
이러한 서비스는 SaaS(Software as a Service)라는 개념으로 더욱 발전되어 현재는 대다수의 기업들이 SaaS를 채택하여 사용하고 있다. These services have evolved into the concept of Software as a Service (SaaS), which is now used by most companies.
SaaS는 소프트웨어를 유통하는 방식에서 기존 소프트웨어와 확연한 차이를 보인다. 일반 소프트웨어나 기업용 애플리케이션 소프트웨어는 기업 고객에 제품을 설명·판매·설치·업그레이드·관리하는 과정을 거친다. 고객들에겐 제품 소유에 따른 관리 부담이 만만찮다.SaaS differs significantly from traditional software in the way it distributes software. General or enterprise application software goes through the process of describing, selling, installing, upgrading, and managing products to enterprise customers. For customers, the management burden of owning a product is considerable.
반면 SaaS는 제공업체가 자사 서버를 통해 웹으로 서비스를 제공한다. 이용료도 광고수익으로 대체되거나 월정액 혹은 종량제로 지불할 수 있다. 고객 입장에 선 비용과 관리상 이점이 적지 않다. 소프트웨어 업체와 고객기업 모두에게 이익이 된다.SaaS, on the other hand, is a provider that provides services over the web through its servers. Fees can also be replaced by advertising revenue or paid on a monthly or pay-as-you-go basis. The cost and management advantages of the customer are not small. It benefits both software and customer companies.
하지만, 기존의 소프트웨어 서비스는 한 기업에게 서비스를 제공할 때, 각 기업 별로 서버를 할당하여 서비스를 제공한다. 이렇게 각 기업별로 서버를 할당하여 서비스를 제공할 경우, 소프트웨어 서비스를 제공하는 업체는 많은 수의 서버, 운영체제, 소프트웨어를 구매하여 운영해야 한다. 이 때문에, 운영 비용이 높아지고 서비스 제공 단가가 높아지게 된다.However, existing software services provide services by allocating servers for each company when providing services to one company. In this way, when a server is allocated to each company to provide a service, a company that provides a software service must purchase and operate a large number of servers, operating systems, and software. This increases operating costs and increases the cost of providing a service.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 하나의 서버에서 다수의 기업들에게 소프트웨어 서비스를 제공함으로써 운용비용을 낮추는데 그 목적이 있다.The present invention has been made to solve the above problems, and its object is to lower operating costs by providing a software service to a plurality of companies in one server.
본 발명의 목적은 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The object of the present invention is not limited to those mentioned above, and other objects not mentioned will be clearly understood by those skilled in the art from the following description.
상기와 같은 목적을 달성하기 위한 본 발명의 실시예에 따른 SaaS 환경에서의 소프트웨어 서비스 제공 방법은, 소프트웨어 서비스 사용자로부터 소프트웨어 서비스 사용 요청을 수신하는 단계, 상기 소프트웨어 서비스 사용 요청에 해당하는 소프트웨어를 가져오는 단계, 상기 소프트웨어 서비스 제공 시 수행되는 소프트웨어 구성요소 정보를 가져오는 단계, 상기 구성요소 정보에 따라 상기 소프트웨어를 실행하는 단계, 상기 소프트웨어에 의해 처리될 정보를 저장해놓은 사용자 정보 데이터 베이스로부터 상기 소프트웨어에 의해 처리될 정보를 읽어오는 단계, 및 상기 상기 소프트웨어에 의해 처리될 정보를 이용하여 상기 소프트웨어를 실행하고, 실행 결과를 상기 서비스 사용자에게 전송하는 단계를 포함하여 구성된다.Software service providing method in a SaaS environment according to an embodiment of the present invention for achieving the above object, receiving a software service use request from a software service user, bringing the software corresponding to the software service use request Step of retrieving software component information to be performed when providing the software service, executing the software according to the component information, by the software from a user information database storing information to be processed by the software; Reading the information to be processed, and executing the software using the information to be processed by the software, and transmitting the execution result to the service user.
여기서, 상기 소프트웨어를 가져오는 단계에서는, 상기 소프트웨어 서비스 사용 요청을 수신하면, SaaS 컨테이너 서버에서 적어도 하나의 SaaS 런타임 쓰레드(run-time thread)를 생성하며, 상기 SaaS 런타임 쓰레드는 상기 소프트웨어 및 상기 구성요소 정보를 가져오는 명령을 수행할 수 있다.Here, in the step of obtaining the software, upon receiving the software service use request, at least one SaaS runtime thread is created in a SaaS container server, and the SaaS runtime thread is the software and the component. You can run a command to get information.
한편, 상기 소프트웨어를 소프트웨어 코드 데이터 베이스에서 가져오는 단계는, 상기 소프트웨어 서비스 사용 요청을 수신하면, 상기 소프트웨어의 코드가 SaaS 컨테이너 서버의 캐시에 있는지를 확인하는 단계, 및 상기 소프트웨어의 코드가 상기 캐시에 있으면 상기 캐시에 있는 소프트웨어 코드를 가져와 사용하고, 없으면 소프트웨어 코드 데이터 베이스에서 가져와 사용하는 단계를 포함할 수 있다.On the other hand, the step of bringing the software from the software code database, upon receiving the software service use request, checking whether the code of the software is in the cache of the SaaS container server, and the code of the software is stored in the cache. Fetching and using the software code in the cache, if present, and fetching and using the software code from the software code database.
또한, 상기 구성요소 정보를 가져오는 단계는, 상기 서비스 사용자 별로 정의된 소프트웨어 구성요소에 대한 맞춤 정보가 있는지를 확인하는 단계, 및 상기 맞춤 정보가 있다면 기존 소프트웨어 구성 요소 대신 맞춤 구성 요소가 수행되도록 상기 맞춤 정보를 가져오고, 상기 맞춤 정보가 없다면 상기 기존 소프트웨어 구성 요소가 수행되도록 기존 구성요소 정보를 가져오는 단계를 포함할 수 있다.In addition, the step of obtaining the component information, the step of confirming whether there is customized information for the software component defined for each service user, and if there is the customized information so that the custom component is performed instead of the existing software component Retrieving custom information, and retrieving existing component information such that the existing software component is performed if there is no custom information.
그리고, 상기 맞춤 정보가 있는지를 확인하는 단계에서는, 상기 맞춤 정보가 SaaS 컨테이너 서버의 캐시에 있는지를 확인하고, 상기 맞춤 정보가 상기 캐시에 있으면 상기 캐시에 있는 맞춤 정보를 가져와 사용하고, 없으면 맞춤 정보 데이터 베이스에서 가져와 사용할 수 있다. In the step of checking whether there is the personalized information, it is determined whether the personalized information is in the cache of the SaaS container server, and if the personalized information is in the cache, the personalized information is retrieved from the cache and used. Can be taken from the database and used.
본 발명의 또 다른 실시예에 따른 SaaS(Software as a Service) 환경에서의 소프트웨어 서비스 제공하기 위한 장치는, 소프트웨어 서비스 사용자로부터 소프트웨어 서비스 사용 요청을 웹을 통하여 수신하는 웹서버, 상기 웹서버에 의하여 수신된 소프트웨어 서비스 사용 요청을 전달받아, 요청된 소프트웨어를 소프트웨어 구성요소 정보에 따라 실행하고, 상기 소프트웨어 실행 결과를 상기 서비스 사용자에게 전달하는 SaaS 컨테이너 서버, 소프트웨어 코드를 보관하며, 상기 SaaS 컨테이너 서버로 상기 소프트웨어 코드를 전달하는 소프트웨어 코드 데이터 베이스, 소프트웨어 실행 시 서비스 사용자 별로 제공될 소프트웨어 구성요소에 대한 맞춤 정보를 저장하는 맞춤 정보 데이터 베이스, 및 상기 서비스 사용자에 관한 사용자 정보를 저장하며, 상기 SaaS 컨테이너 서버가 상기 소프트웨어를 실행하는 경우 상기 소프트웨어에 의해 처리될 정보를 상기 SaaS 컨테이너 서버에 제공하는 사용자 데이터 베이스를 포함하여 구성될 수 있다.Device for providing a software service in a SaaS (Software as a Service) environment according to another embodiment of the present invention, a web server for receiving a software service use request from the software service user via the web, by the web server Receives a software service use request, executes the requested software according to software component information, and stores a SaaS container server and a software code for delivering the software execution result to the service user, and stores the software to the SaaS container server. A software code database for delivering code, a customized information database for storing customized information on software components to be provided for each service user when the software is executed, and user information about the service user, and the SaaS content. You may be a server configured to include a user database provided in the server SaaS container information to be processed by the software when running the software.
여기서, 상기 SaaS 컨테이너 서버는, 상기 소프트웨어 서비스 사용 요청을 전달 받으면, 적어도 하나의 SaaS 런타임 쓰레드(run-time thread)를 생성하며, 상기 SaaS 런타임 쓰레드는 상기 소프트웨어 및 상기 구성요소 정보를 가져오는 명령 을 수행할 수 있다.Here, when the SaaS container server receives the software service use request, the SaaS container server generates at least one SaaS run-time thread, and the SaaS runtime thread executes a command to obtain the software and the component information. Can be done.
또한, 상기 SaaS 컨테이너 서버는, 캐시 메모리를 포함하며, 상기 소프트웨어 서비스 사용 요청을 전달받으면, 요청된 소프트웨어의 코드가 SaaS 컨테이너 서버의 상기 캐시 메모리에 있는지를 확인하며, 및 상기 소프트웨어의 코드가 상기 캐시 메모리에 있으면 상기 캐시 메모리에 있는 소프트웨어 코드를 가져와 사용하고, 없으면 상기 소프트웨어 코드 데이터 베이스에서 가져와 사용할 수 있다.The SaaS container server also includes a cache memory, and upon receiving the software service use request, confirms whether the code of the requested software is in the cache memory of the SaaS container server, and the code of the software is in the cache. If it is in memory, the software code in the cache memory can be taken and used; if not, it can be taken and used in the software code database.
한편, 상기 SaaS 컨테이너 서버는, 상기 맞춤 정보가 상기 캐시 메모리 또는 상기 맞춤 정보 데이터 베이스에 있는지를 확인하며, 및 상기 맞춤 정보가 있다면 기존 소프트웨어 구성 요소 대신 맞춤 구성 요소가 수행되도록 상기 맞춤 정보를 가져오고, 상기 맞춤 정보가 없다면 상기 기존 소프트웨어 구성 요소가 수행되도록 기존 구성요소 정보를 가져올 수 있다. On the other hand, the SaaS container server checks whether the custom information is in the cache memory or the custom information database, and if there is the custom information, imports the custom information so that the custom component is performed instead of the existing software component. If there is no customized information, the existing component information may be imported to perform the existing software component.
그리고, 상기 SaaS 컨테이너 서버는, 상기 맞춤 정보가 상기 SaaS 컨테이너 서버의 캐시 메모리에 있는지를 확인하고, 상기 맞춤 정보가 상기 캐시 메모리에 있으면 상기 캐시 메모리에 있는 맞춤 정보를 가져와 사용하고, 없으면 맞춤 정보 데이터 베이스에서 가져와 사용할 수 있다.The SaaS container server checks whether the personalized information is in the cache memory of the SaaS container server, and, if the personalized information is in the cache memory, obtains and uses the personalized information in the cache memory. It can be taken from the base and used.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Specific details of other embodiments are included in the detailed description and the drawings.
상기와 같은 구성을 같은 본 발명의 실시예에 따른 SaaS(Software as a Service) 환경에서의 소프트웨어 서비스 제공 방법에 의하면, 하나의 SaaS 서버에서 여려 종류의 소프트웨어를 수행할 수 있기 때문에 소프트웨어 서비스 제공에 필요한 서버의 수를 줄일 수 있다. 이에 따라 서버 구입 비용, 운용 체제 및 소프트웨어 구입 비용이 줄어들고 전기 소모량 및 관리 비용을 줄일 수 있다. 이에 따라, 낮은 가격에 소프트웨어 서비스를 제공할 수 있다.According to the software service providing method in the SaaS (Software as a Service) environment according to the embodiment of the present invention as described above, it is necessary to provide a software service because several types of software can be performed in one SaaS server You can reduce the number of servers. This reduces server acquisition costs, operating system and software acquisition costs, and reduces electricity consumption and management costs. Accordingly, it is possible to provide a software service at a low price.
또한, 기업 별, 고객 별로 맞춤화된 정보를 이용하여 소프트웨어를 구성하기 대문에 각 기업 별, 고객 별로 맞춤화되고 차별화된 서비스를 제공할 수 있다.In addition, because the software is configured using information customized for each company and customer, it is possible to provide customized and differentiated services for each company and customer.
본 발명의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. The objects and effects of the present invention and the technical configurations for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intentions or customs of the user, the operator, and the like.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져 야 할 것이다.The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. The present embodiments are merely provided to complete the disclosure of the present invention and to fully inform the scope of the invention to those skilled in the art, and the present invention is defined by the scope of the claims. It will be. Therefore, the definition should be made based on the contents throughout the specification.
본 실시형태의 모듈, 기능 블록들 또는 수단들은 전자 회로, 집적 회로, ASIC (Application Specific Integrated Circuit) 등 공지된 다양한 소자들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수 있다.Modules, functional blocks or means of the present embodiment may be implemented in a variety of known elements, such as electronic circuits, integrated circuits, ASICs (Application Specific Integrated Circuit), each may be implemented separately, or two or more may be integrated into one Can be.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계 에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Combinations of each block of the accompanying block diagram and each step of the flowchart may be performed by computer program instructions. These computer program instructions may be mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment such that instructions executed through the processor of the computer or other programmable data processing equipment may not be included in each block or flowchart of the block diagram. It will create means for performing the functions described in each step. These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the functions described in each block or flow chart step of the block diagram. Computer program instructions It can also be mounted on a computer or other programmable data processing equipment, so a series of operating steps are performed on the computer or other programmable data processing equipment to create a computer-implemented process to perform the computer or other programmable data processing equipment. It is also possible for the instructions to provide steps for performing the functions described in each block of the block diagram and in each step of the flowchart.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block or step may represent a portion of a module, segment or code that includes one or more executable instructions for executing a specified logical function (s). It should also be noted that in some alternative embodiments, the functions noted in the blocks or steps may occur out of order. For example, the two blocks or steps shown in succession may in fact be executed substantially concurrently or the blocks or steps may sometimes be performed in the reverse order, depending on the functionality involved.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals refer to like elements throughout.
도 1은 본 발명의 실시예에 따른 SaaS(Software as a Service) 환경에서의 소프트웨어 서비스 제공하기 위한 장치의 구성 및 서비스가 제공되는 개념을 간략하게 나타낸 블록도이다. 1 is a block diagram briefly illustrating a concept of an apparatus and a service for providing a software service in a SaaS (Software as a Service) environment according to an embodiment of the present invention.
도 1을 참고하면, 본 발명의 실시예에 따른 SaaS(Software as a Service) 환경에서의 소프트웨어 서비스 제공하기 위한 장치는, 소프트웨어 서비스 사용자가 웹브라우저(100)를 이용하여 전송한 소프트웨어 서비스 사용 요청을 웹을 통하여 수신하는 웹서버(200), 웹서버(200)에 의하여 수신된 소프트웨어 서비스 사용 요청을 전달받아, 요청된 소프트웨어를 소프트웨어 구성요소 정보에 따라 실행하고, 소프트웨어 실행 결과를 서비스 사용자에게 전달하는 SaaS 컨테이너 서버(300), 소프트웨어 코드를 보관하며, SaaS 컨테이너 서버(300)로 소프트웨어 코드를 전달하는 소프트웨어 코드 데이터 베이스(400), 소프트웨어 실행 시 서비스 사용자 별로 제공될 소프트웨어 구성요소에 대한 맞춤 정보를 저장하는 맞춤 정보 데이터 베이스(500), 및 사용자 별로 소프트웨어에 의해 처리될 정보를 저장하는 사용자 데이터 베이스(600)를 포함하여 구성된다.Referring to FIG. 1, an apparatus for providing a software service in a SaaS (Software as a Service) environment according to an embodiment of the present invention may include requesting a software service use request transmitted by a software service user using the
소프트웨어 서비스 사용자가 웹 브라우저(100)를 통하여 소프트웨어 사용 요청을 웹을 통하여 사용 요청을 보내면, 웹서버(200)는 그 요청을 수신하여 SaaS 컨테이너 서버(300)에 전달한다. 이 때, 웹 브라우저(100)는 광대역 인터넷 웹 브라우저일 수도 있으며, 또는 무선 이동 통신에 의한 휴대용 단말기 전용 웹 브라우저 일 수도 있다. 또한, 웹 뿐만 아니라 각종 유무선 통신 네트워크가 사용될 수 있음은 물론이다.When the software service user sends a software use request through the
SaaS 컨테이너 서버(300)는 서비스 사용 요청을 전달 받으면, 적어도 하나의 SaaS 런타임 쓰레드(run-time thread, 310)를 생성하여, 상기 서비스 사용 요청을 처리하게 한다. SaaS 런타임 쓰레드(310)는 소프트웨어 및 소프트웨어 구성요소 정보를 가져오는 명령을 수행하며, 소프트웨어를 실행하는 명령을 처리한다.When the
여기서, 하나의 SaaS 컨테이너 서버(300) 안에서 SaaS 런타임 쓰레드(310)는 다수가 동작할 수 있다. 각 SaaS 런타임 쓰레드(310)는 동시에 각기 다른 사용자 요청을 처리할 수도 있다. 즉 이와같이, 하나의 서버를 이용하면서도 복수의 명령 및 요청을 수행할 수 있기 때문에 소프트웨어 서비스 제공에 필요한 서버의 수를 줄일 수 있다. 이에 따라 서버 구입 비용, 운용 체제 및 소프트웨어 구입 비용이 줄어들고 전기 소모량 및 관리 비용을 줄일 수 있다.Here, a number of
한편, SaaS 컨테이너 서버(300)는 캐시 메모리(320)를 포함할 수 있다. SaaS 컨테이너 서버(300)는 소프트웨어 서비스 사용 요청을 전달받으면, 요청된 소프트웨어의 코드가 SaaS 컨테이너 서버(300)의 캐시 메모리(320)에 존재하고 있는지를 확인한다. 만약, 소프트웨어의 코드가 캐시 메모리(320)에 있으면 캐시 메모리(320)에 있는 소프트웨어 코드를 우선적으로 가져와 사용하게 된다. 이렇게 캐시에 소프트웨어 코드가 있는지를 먼저 확인하여 우선적으로 캐시에 있는 소프트웨어 코드를 사용하기 때문에 소프트웨어를 로드하고 처리하는 시간을 단축할 수 있다. Meanwhile, the
그러나, 요청받은 소프트웨어의 코드가 캐시 메모리(320) 상에 없는 경우에는 SaaS 컨테이너 서버(300)는 소프트웨어 코드 데이터 베이스(400)에서 요청받은 소프트웨어 코드를 가져와 사용한다. However, when the code of the requested software is not on the
소프트웨어 서비스를 제공할 시에 서비스 사용자 별로 선호하거나 주로 사용하는 기능이나 구성이 상이할 수 있다. 따라서, 서비스 사용자 또한 자신이 선호하거나 필요한 기능이나 구성만을 맞춤 정보로서 등록하여 놓을 경우 보다 경제적이고 효율적으로 소프트웨어 서비스를 사용할 수 있는 장점이 있다. 따라서, 본 발명의 실시예에 따른 SaaS 환경에서의 소프트웨어 서비스 제공 장치는, 사용자 별 맞춤 정보 데이터 베이스를 구축하여 사용자 별 맞춤 서비스를 제공한다. When providing a software service, a function or configuration that is preferred or mainly used by service users may be different. Therefore, the service user also has the advantage that the software service can be used more economically and efficiently, if only the user's preferred or necessary functions or configurations are registered as customized information. Therefore, the software service providing apparatus in the SaaS environment according to an embodiment of the present invention provides a user-specific service by building a user-specific information database.
본 발명의 실시예에 따르면, SaaS 컨테이너 서버(300)는 서비스 사용자 별로 커스터마이즈(customize)된 맞춤 정보가 캐시 메모리(320)에 있는지 확인한다. 만약, 맞춤 정보가 캐시 메모리(320)에 있다면, 캐시 메모리(320)에 있는 맞춤 정보를 우선적으로 가져와 사용할 수 있다. 이를 통하여 소프트웨어를 로드하고, 맞춤 구성을 구축하는데 걸리는 시간을 단축할 수 있다. 하지만, 맞춤 정보가 캐시 메모리(320) 상에 없는 경우에는 SaaS 컨테이너 서버(300)는 맞춤 정보 데이터 베이스(500)에서 맞춤 정보를 가져와 사용한다. According to an embodiment of the present invention, the
만약, 캐시 메모리(320) 및 맞춤 정보 데이터 베이스(500)에도 맞춤 정보가 없다면, SaaS 컨테이너 서버(300)는 기존에 설정되어 있는(기본구성) 소프트웨어 구성 요소가 수행되도록 설정한다. If the
한편, 사용자 데이터 베이스(600)는 사용자 별로 소프트웨어에 의해 처리될 정보를 저장하고 있다. SaaS 컨테이너 서버(300)가 소프트웨어를 실행하는 경우, 필요한 정보를 사용자 정보 사용자 데이터 베이스(600)로부터 읽어와 이를 이용하여 소프트웨어를 실행한다.Meanwhile, the
이하에서는 상기와 같은 구성을 갖는 본 발명의 실시예에 따른 SaaS 환경에서의 소프트웨어 서비스 제공 장치에서 수행되는 SaaS 환경에서의 소프트웨어 서비스 제공 방법을 설명하도록 한다.Hereinafter, a method of providing a software service in a SaaS environment performed by a software service providing apparatus in a SaaS environment according to an embodiment of the present invention having the above configuration will be described.
도 2는 본 발명의 실시예에 따른 SaaS 환경에서의 소프트웨어 서비스 제공 방법의 흐름을 나타낸 흐름도이다. 2 is a flowchart illustrating a method of providing a software service in a SaaS environment according to an embodiment of the present invention.
도 2를 참조하면, 웹서버(200)가 먼저 소프트웨어 서비스 사용자가 웹 브라우저를 이용하여(100) 발송한 소프트웨어 서비스 사용 요청을 수신받는다(S201). 2, the
그러면, SaaS 컨테이너 서버(300)는 웹서버(200)로부터 소프트웨어 서비스 사용 요청을 전달받아서, 소프트웨어 서비스 사용 요청에 해당하는 소프트웨어를 가져오는 작업을 수행한다. 이때, SaaS 컨테이너 서버(300)는 먼저 요청한 소프트 웨어가 캐시(320)에 있는지를 확인한다(S202). Then, the
만약 소프트웨어가 캐시(320)에 없다면 소프트웨어 코드 데이터 베이스(400)으로부터 요청받은 소프트웨어를 찾아서 가져온다(S203), If the software does not exist in the
만약, 소프트웨어가 캐시(320)에 있다면, 캐시에 존재하고 있는 소프트웨어 코드를 사용한다.If the software is in the
그리고, SaaS 컨테이너 서버(300)는 소프트웨어 서비스 제공 시 수행되는 소프트웨어 구성요소 정보를 가져오는 단계를 수행한다. 즉, 먼저 서비스 사용자 별로 정의된 소프트웨어 구성요소에 대한 맞춤 정보가 캐시에 있는지를 확인한다(S204). 만약, 캐시(320)에 없다면, 맞춤 정보 데이터 베이스(500)에서 맞춤 정보를 읽어온다(S205). 구성요소 정보에 따른 소프트웨어 수행 절차에 대해서는 이하에서 좀 더 자세하게 설명하도록 한다. In addition, the
도 3은 본 발명의 실시예에 따른 SaaS 환경에서의 소프트웨어 서비스 제공 방법에 있어서 구성요소 정보에 따른 소프트웨어 수행 절차를 도시한 흐름도이다. 3 is a flowchart illustrating a software execution procedure according to component information in a software service providing method in a SaaS environment according to an embodiment of the present invention.
도 3을 참조하면, 소프트웨어 수행 요청이 오면(S301) 앞서 설명한 S204 단계 및 S205 단계에서처럼 기존 소프트웨어 구성요소를 대체하는 서비스 사용자에게 맞춤화된 구성요소 정보가 있는지를 확인한다(S302). Referring to FIG. 3, when a software execution request comes (S301), it is checked whether there is component information customized for a service user who replaces an existing software component as in the above-described steps S204 and S205 (S302).
만약, 캐시(320) 또는 맞춤 정보 데이터 베이스(500)에 맞춤 정보가 있다면, 기존 소프트웨어 구성요소 대신 맞춤 구성 요소가 수행되도록 맞춤 정보에 따라 소프트웨어 실행을 진행한다(S303, S305).If there is customized information in the
하지만, 캐시(320) 또는 맞춤 정보 데이터 베이스(500)에 맞춤 정보가 없다 면, 기존 소프트웨어 구성에 따라 소프트웨어 실행이 진행되도록 한다(S304, S305). However, if there is no customized information in the
한편, 도 3에서 설명한 구성요소 정보를 가져오는 절차를 수행한 경우, 구성요소 정보에 따라 소프트웨어 서비스를 수행한다(S206). On the other hand, when the procedure of obtaining the component information described in FIG. 3 is performed, the software service is performed according to the component information (S206).
그리고 사용자 데이터 베이스(600)로부터 서비스 사용자 데이터를 가져와(S207), 이를 이용하여 소프트웨어를 수행하고, 서비스 사용자에게 소프트웨어 수행 결과를 전송한다(S208). In addition, the service user data is obtained from the user database 600 (S207), the software is executed using the same, and the software execution result is transmitted to the service user (S208).
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 예를 들어 당업자는 각 구성요소의 재질, 크기 등을 적용 분야에 따라 변경하거나, 개시된 실시형태들을 조합 또는 치환하여 본 발명의 실시예에 명확하게 개시되지 않은 형태로 실시할 수 있으나, 이 역시 본 발명의 범위를 벗어나지 않는 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것으로 한정적인 것으로 이해해서는 안 되며, 이러한 변형된 실시예들은 본 발명의 특허청구범위에 기재된 기술사상에 포함된다고 하여야 할 것이다.Although the embodiments of the present invention have been described above with reference to the accompanying drawings, those skilled in the art to which the present invention pertains may implement the present invention in other specific forms without changing the technical spirit or essential features thereof. I can understand that. For example, those skilled in the art can change the material, size, etc. of each component according to the application field, or combine or replace the disclosed embodiments in a form that is not clearly disclosed in the embodiments of the present invention, but this also It does not depart from the scope of the invention. Therefore, the above-described embodiments are to be considered in all respects as illustrative and not restrictive, and such modified embodiments should be included in the technical spirit described in the claims of the present invention.
도 1은 본 발명의 실시예에 따른 SaaS(Software as a Service) 환경에서의 소프트웨어 서비스 제공하기 위한 장치의 구성 및 서비스가 제공되는 개념을 간략하게 나타낸 블록도이다. 1 is a block diagram briefly illustrating a concept of an apparatus and a service for providing a software service in a SaaS (Software as a Service) environment according to an embodiment of the present invention.
도 2는 본 발명의 실시예에 따른 SaaS 환경에서의 소프트웨어 서비스 제공 방법의 흐름을 나타낸 흐름도이다. 2 is a flowchart illustrating a method of providing a software service in a SaaS environment according to an embodiment of the present invention.
도 3은 본 발명의 실시예에 따른 SaaS 환경에서의 소프트웨어 서비스 제공 방법에 있어서 맞춤 정보에 따른 소프트웨어 수행 절차를 도시한 흐름도이다. 3 is a flowchart illustrating a software execution procedure according to customized information in a method for providing a software service in a SaaS environment according to an embodiment of the present invention.
Claims (10)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090123206A KR20110066519A (en) | 2009-12-11 | 2009-12-11 | Software execution method in saas(software as a service) environment |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090123206A KR20110066519A (en) | 2009-12-11 | 2009-12-11 | Software execution method in saas(software as a service) environment |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20110066519A true KR20110066519A (en) | 2011-06-17 |
Family
ID=44399336
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090123206A KR20110066519A (en) | 2009-12-11 | 2009-12-11 | Software execution method in saas(software as a service) environment |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20110066519A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101334891B1 (en) * | 2012-02-09 | 2013-11-29 | 주식회사 알투소프트 | System for providing financiail risk management service in software as a service |
-
2009
- 2009-12-11 KR KR1020090123206A patent/KR20110066519A/en not_active Application Discontinuation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101334891B1 (en) * | 2012-02-09 | 2013-11-29 | 주식회사 알투소프트 | System for providing financiail risk management service in software as a service |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108279932B (en) | Method and device for dynamically configuring user interface of mobile terminal | |
US11663175B2 (en) | Deployment of applications conforming to application data sharing and decision service platform schema | |
US8843889B2 (en) | Managing application template artifacts in a networked computing environment | |
KR20110066520A (en) | Workflow customization method in saas(software as a service) environment | |
US8640085B2 (en) | Generating a service component architecture (SCA) module with service oriented architecture (SOA) model elements | |
US11042366B2 (en) | Managing software programs | |
US20140344808A1 (en) | Dynamically modifying workload patterns in a cloud | |
US9754242B2 (en) | Deployment mechanism for non-versioning business process artifacts | |
CN106095522A (en) | A kind of method realizing distributed compilation and distributed compilation system | |
CN106095523A (en) | A kind of method and system realizing Android compiling isolation | |
US8978107B2 (en) | Method and system for enabling non-intrusive multi tenancy enablement | |
US20190377662A1 (en) | Identifying a source file for use in debugging compiled code | |
US9665656B2 (en) | Automated service solution delivery | |
CN109634571A (en) | A kind of API method of combination, storage medium, electronic equipment and system | |
CN112612452B (en) | API platform realization method, device, equipment and storage medium | |
Kim | Development of Mobile Cloud Applications using UML. | |
CN106600082A (en) | Processing method and device of task in service system, and service system construction system | |
US20110289424A1 (en) | Secure application of custom resources in multi-tier systems | |
CN114443171A (en) | Configurable service platform and configurable service implementation method | |
GB2531251A (en) | Reduction of management complexity of an information technology system | |
US9336361B2 (en) | Feature license-related repair/replacement processes and credit handling | |
KR20110066519A (en) | Software execution method in saas(software as a service) environment | |
CN106293746A (en) | The update method of browser script and system | |
CN109901934A (en) | The method and apparatus for generating interface help document | |
US9069560B2 (en) | Operational model creation from SOA solution architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |