KR20140089410A - 자바 애플리케이션 서버 및 웹 서비스 처리 방법 - Google Patents
자바 애플리케이션 서버 및 웹 서비스 처리 방법 Download PDFInfo
- Publication number
- KR20140089410A KR20140089410A KR1020147014900A KR20147014900A KR20140089410A KR 20140089410 A KR20140089410 A KR 20140089410A KR 1020147014900 A KR1020147014900 A KR 1020147014900A KR 20147014900 A KR20147014900 A KR 20147014900A KR 20140089410 A KR20140089410 A KR 20140089410A
- Authority
- KR
- South Korea
- Prior art keywords
- business logic
- business
- view
- module
- web
- Prior art date
Links
Images
Classifications
-
- 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/95—Retrieval from the web
-
- 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/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
- G06F16/972—Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Stored Programmes (AREA)
Abstract
인터넷 기술 분야에 관련된 자바 애플리케이션 서버 및 웹 비즈니스 처리 방법이 제공된다. 서버는, 네트워크 프레임워크 레이어(101), 애플리케이션 컨테이너 레이어(102) 및 페이지 템플레이트 레이어(103)를 포함하고; 네트워크 프레임 레이어(101)는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하도록 구성되고; 애플리케이션 컨테이너 레이어(102)는 획득된 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하기 위한 획득 모듈; 및 획득된 비즈니스 로직을 작동시켜 데이터 모델 및 뷰 이름을 획득하기 위한 작동 모듈을 포함하고; 페이지 템플레이트 레이어(103)는, 획득된 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하는 검색 모듈; 및 데이터 모델을 렌더링하여 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 뷰 객체에 대응하는 방법을 호출하는 호출 및 출력 모듈을 포함한다. 본 발명에 의해 제공된 자바 애플리케이션은 더 높은 처리량과 간단한 구조를 가지며, 이에 따라 비즈니스 로직의 배치, 작동 및 유지 보수에 대한 난이도를 감소시키고 2차적인 개발을 용이하게 한다.
Description
[관련 출원에 대한 교차 참조]
본 출원은 전문이 본 명세서에 참조로서 편입되는 2011년 11월 18일 출원된 중국 특허 출원 제201110367690.0호에 대한 우선권을 주장한다.
[기술분야]
본 출원은 인터넷 기술분야에 관한 것으로, 더욱 상세하게는 자바 애플리케이션 서버 및 웹 비즈니스 처리 방법에 관한 것이다.
자바(Java)(크로스 플랫폼 프로그래밍 언어 및 기술적 플랫폼) 애플리케이션 서버는 동적 웹 서버측 애플리케이션을 구현하는데 널리 사용되며, 그리고 다양한 백그라운드 비즈니스 로직을 보유하고 이를 통합하는데 널리 사용된다. Resin(개방형 소스의 자바 애플리케이션 서버), WebSphere(상용 자바 애플리케이션 서버), TAC(개방형 소스 코드 코어에 기초하여 2차적으로 개발된 자바 애플리케이션 서버) 등과 같은 이전의 다양한 자바 애플리케이션 서버는 모두 다음과 같은 문제점을 가진다: (1) 상대적으로 큰 크기 및 높은 복잡성; (2) 개발 및 유지 보수에 필요한 높은 인건비와 상업적인 라이센스 및 지원을 획득하는데 필요한 높은 금융 비용; (3) 인터넷 비즈니스의 처리 속도 요건을 완전히 만족할 수 없는 통상적인 동작 성능.
종래의 자바 애플리케이션 서버 일부의 문제점을 해결하기 위하여, 본 발명의 실시예는 자바 애플리케이션 서버 및 웹 비즈니스 처리 방법을 제공한다.
과제의 해결 수단은 다음과 같다.
네트워크 프레임워크 레이어, 애플리케이션 컨테이너 레이어 및 페이지 템플레이트 레이어를 포함하는 자바 애플리케이션 서버에 있어서,
상기 네트워크 프레임 레이어는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL(uniform resource locator)을 획득하도록 구성되고,
상기 애플리케이션 컨테이너 레이어는,
획득된 상기 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하도록 구성된 획득 모듈; 및
획득된 상기 비즈니스 로직을 작동하여 데이터 모델 및 뷰(view) 이름을 획득하도록 구성된 작동 모듈
을 포함하고,
상기 페이지 템플레이트 레이어는,
획득된 상기 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하는 검색 모듈; 및
상기 데이터 모델을 렌더링하여 상기 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 상기 뷰 객체에 대응하는 방법을 호출하는 호출 및 출력 모듈
을 포함하는,
자바 애플리케이션 서버.
상기 네트워크 프레임워크 레이어는,
상기 클라이언트측에 의해 전송된 연결 요청을 수신하고, 상기 클라이언트측과의 연결을 구축하고, 상기 클라이언트측을 위한 세션 객체를 생성하도록 구성된 수신기;
상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 요청 이벤트를 검출하고, 상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트가 검출될 때, 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 판독하도록 구성된 프로세서; 및
웹 비즈니스를 액세스하기 위한 상기 URL에 관한 정보를 획득하기 위하여 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 파싱하도록 구성된 필터
를 포함한다.
상기 애플리케이션 컨테이너 레이어는, 컨트롤러(Controller), 요청(Request), 인터셉터(Interceptor), 자동 연결(Autowired), 컴포넌트(Component), 공장(Factory) 및 서비스(Service) 중 하나 이상의 태그를 더 포함하고, 상기 태그는 비즈니스 로직을 식별하는데 사용된다.
상기 애플리케이션 컨테이너 레이어는,
상기 애플리케이션 컨테이너 레이어 내에서 비즈니스 로직의 클래스 경로(classpath)를 특정하기 위한 비즈니스 로직 배치 모듈; 및
상기 클래스 경로 하에서의 모든 비즈니스 로직을 스캐닝하고, 반사(Reflection) 기술을 이용하여 Controller, Interceptor, Component, Factory 또는 Service로 태그된 비즈니스 로직을 획득하고, 획득된 상기 비즈니스 로직을 예시하는(instantiating) 스캐닝 모듈
을 더 포함한다.
상기 애플리케이션 컨테이너 레이어는,
Controller로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Controller로 태그된 비즈니스 로직 내에서 Request로 태그된 방법을 획득하고, 상기 Request로 태그된 방법을 예시된 상기 비즈니스 로직의 객체와 관련시키기 위한 제1 처리 모듈; 및
Autowired로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Autowired로 태그된 비즈니스 로직이 종속하는 협력자 클래스(collaborator class)를 기록하고, 상기 Autowired로 태그된 비즈니스 로직 사이의 종속 관계를 정리(assembling)하기 위한 제2 처리 모듈
을 더 포함한다.
상기 애플리케이션 컨테이너 레이어는,
획득된 상기 비즈니스 로직을 전처리하고, 전처리된 결과가 제1 값을 가질 때, 데이터 모델 및 뷰 이름을 획득하기 위하여 획득된 상기 비즈니스 로직을 작동하는 동작을 수행하도록 상기 작동 모듈에 통지하는 전차단(pre-interception) 모듈; 및/또는
상기 작동 모듈에 의해 획득된 상기 데이터 모델 및 상기 뷰 이름을 수정하기 위한 후차단(post-interception) 모듈
을 더 포함한다.
상기 페이지 템플레이트 레이어는,
사전 설정된 템플레이트 언어 페이지를 스캐닝하고, 상기 템플레이트 언어 페이지를 자바 언어 소스 파일로 컴파일하기 위하여 컴파일러를 호출하는 컴파일 모듈;
상기 자바 언어 소스 파일을 스캐닝하고, 상기 자바 언어 소스 파일을 로딩하여 예시하기 위하여 맞춤형 클래스 로더(customized class loader)를 활용하기 위한 뷰 객체 생성 모듈로서, 예시된 상기 자바 언어 소스 파일은 뷰 객체인, 상기 뷰 객체 생성 모듈; 및
획득된 상기 뷰 이름에 따라 상기 뷰 이름과 상기 뷰 객체 사이의 대응하는 관계를 검색함으로써 상기 검색 모듈이 대응하는 뷰 객체를 획득할 수 있도록, 상기 뷰 객체의 뷰 이름과 상기 뷰 객체 사이의 대응하는 관계를 캐싱하는 캐시 모듈
을 더 포함한다.
클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하는 단계;
획득된 상기 URL에 따라 URL과 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하는 단계;
데이터 모델 및 뷰 이름을 획득하도록 상기 비즈니스 로직을 작동시키는 단계;
상기 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하는 단계; 및
상기 데이터 모델을 렌더링하여 상기 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 상기 뷰 객체에 대응하는 방법을 호출하는 단계
를 포함하는,
웹 비즈니스 처리 방법.
상기 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하는 단계는,
상기 클라이언트측에 의해 전송된 연결 요청을 수신하고, 상기 클라이언트측과의 연결을 구축하고, 상기 클라이언트측을 위한 세션 객체를 생성하는 단계;
상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 요청 이벤트를 검출하고, 상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트가 검출될 때, 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 판독하는 단계; 및
웹 비즈니스를 액세스하기 위한 상기 URL에 관한 정보를 획득하기 위하여 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 파싱하는 단계
를 포함한다.
본 방법은,
비즈니스 로직을 식별하는 태그를 미리 정의하는 단계를 더 포함하고,
상기 태그는, 컨트롤러(Controller), 요청(Request), 인터셉터(Interceptor), 자동 연결(Autowired), 컴포넌트(Component), 공장(Factory) 및 서비스(Service) 중 하나 이상의 태그를 포함한다.
본 방법은,
상기 애플리케이션 컨테이너 레이어 내에서 비즈니스 로직의 클래스 경로를 특정하는 단계; 및
상기 클래스 경로 하에서의 모든 비즈니스 로직을 스캐닝하고, 반사(Reflection) 기술을 이용하여 Controller, Interceptor, Component, Factory 또는 Service로 태그된 비즈니스 로직을 획득하고, 획득된 상기 비즈니스 로직을 예시하는 단계
를 더 포함한다.
본 방법은,
Controller로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Controller로 태그된 비즈니스 로직 내에서 Request로 태그된 방법을 획득하고, 상기 Request로 태그된 방법을 예시된 상기 비즈니스 로직의 객체와 관련시키는 단계; 및
Autowired로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Autowired로 태그된 비즈니스 로직이 종속하는 협력자 클래스(collaborator class)를 기록하고, 상기 Autowired로 태그된 비즈니스 로직 사이의 종속 관계를 정리(assembling)하는 단계
를 더 포함한다.
상기 데이터 모델 및 뷰 이름을 획득하도록 획득된 상기 비즈니스 로직을 작동시키는 단계 전에,
상기 비즈니스 로직을 전처리하고, 전처리된 결과가 제1 값을 가질 때, 데이터 모델 및 뷰 이름을 획득하기 위하여 획득된 상기 비즈니스 로직을 작동시키는 단계를 수행하고, 상기 전처리된 결과가 제2 값을 가질 때, 작동 절차를 종료하는 단계
를 더 포함한다.
상기 데이터 모델 및 뷰 이름을 획득하도록 획득된 상기 비즈니스 로직을 작동시키는 단계 후에,
상기 데이터 모델 및 상기 뷰 이름을 수정하는 단계를 더 포함하는,
본 방법은,
사전 설정된 템플레이트 언어 페이지를 스캐닝하고, 상기 템플레이트 언어 페이지를 자바 언어 소스 파일로 컴파일하기 위하여 컴파일러를 호출하는 단계;
상기 자바 언어 소스 파일을 스캐닝하고, 맞춤형 클래스 로더를 활용함으로써 상기 자바 언어 소스 파일을 로딩하여 예시하는 단계로서, 예시된 상기 자바 언어 소스 파일은 뷰 객체인 단계; 및
상기 뷰 객체의 뷰 이름과 상기 뷰 객체 사이의 대응하는 관계를 캐싱하는 단계
를 더 포함한다.
본 발명에 의해 제공된 자바 애플리케이션 서버는, 네트워크 프레임워크 레이어, 애플리케이션 컨테이너 레이어 및 페이지 템플레이트 레이어의 3개의 레이어만을 포함하여, 간단한 구조와 레이어 사이의 합리적인 작업 분배 및 협업을 갖는다. 구체적으로는, 네트워크 프레임 레이어는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하도록 구성된다. 애플리케이션 컨테이너 레이어는 획득된 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하고, 비즈니스 로직을 작동하여 데이터 모델 및 뷰 이름을 획득하도록 구성된다. 페이지 템플레이트 레이어는 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하고, 데이터 모델을 렌더링하여 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 뷰 객체에 대응하는 방법을 호출하도록 구성된다. 전술한 과제 해결 수단의 구현은 본 발명에 의해 제공된 자바 애플리케이션이 더 높은 처리량과 간단한 구조를 가질 수 있게 하여, 이에 따라 비즈니스 로직의 배치, 작동 및 유지 보수에 대한 난이도를 감소시키고 2차적인 개발을 용이하게 한다.
본 발명의 실시예에 대한 과제의 해결 수단을 더 명확한 방식으로 설명하기 위하여, 실시예에 대한 설명에서 참조되는 첨부된 도면에 대한 간단한 설명이 다음과 같이 제공될 것이다. 아래에서 설명되는 첨부된 도면은 단지 본 발명의 일부 실시예를 예시한다는 것이 분명하다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는, 어떠한 창조적 작업 없이 이러한 도면들로부터 다른 도면을 획득할 수 있다.
도 1은 본 발명의 실시예 1에 제공된 자바 애플리케이션 서버의 구조도를 도시한다.
도 2는 본 발명의 실시예 2에 제공된 자바 애플리케이션 서버의 구조도를 도시한다.
도 3도 본 발명의 실시예 2에 제공된 자바 애플리케이션 서버의 구조도를 도시한다.
도 4도 본 발명의 실시예 2에 제공된 자바 애플리케이션 서버의 구조도를 도시한다.
도 5는 본 발명의 실시예 3에 제공된 웹 비즈니스 처리 방법에 대한 플로우 차트를 도시한다.
도 6은 본 발명의 실시예 4에 제공된 웹 비즈니스 처리 방법에 대한 플로우 차트를 도시한다.
도 1은 본 발명의 실시예 1에 제공된 자바 애플리케이션 서버의 구조도를 도시한다.
도 2는 본 발명의 실시예 2에 제공된 자바 애플리케이션 서버의 구조도를 도시한다.
도 3도 본 발명의 실시예 2에 제공된 자바 애플리케이션 서버의 구조도를 도시한다.
도 4도 본 발명의 실시예 2에 제공된 자바 애플리케이션 서버의 구조도를 도시한다.
도 5는 본 발명의 실시예 3에 제공된 웹 비즈니스 처리 방법에 대한 플로우 차트를 도시한다.
도 6은 본 발명의 실시예 4에 제공된 웹 비즈니스 처리 방법에 대한 플로우 차트를 도시한다.
본 발명의 해결하고자 하는 과제, 과제의 해결 수단 및 발명의 효과를 더욱 명확하게 하기 위하여, 첨부된 도면을 참조하여 본 발명의 구현례에 대한 더욱 상세한 설명이 아래와 같이 제공될 것이다.
실시예 1
도 1을 참조하면, 자바 애플리케이션 서버는, 네트워크 프레임워크 레이어(101), 애플리케이션 컨테이너 레이어(102) 및 페이지 템플레이트 레이어(103)를 포함한다.
네트워크 프레임워크 레이어(101)는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL(uniform resource locator)을 획득하도록 구성된다.
애플리케이션 컨테이너 레이어(102)는 획득 모듈 및 작동 모듈을 포함한다. 획득 모듈은 획득된 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하도록 구성된다. 작동 모듈은 획득된 비즈니스 로직을 작동하여 데이터 모델 및 뷰(view) 이름을 획득하도록 구성된다.
페이지 템플레이트 레이어(103)는 검색 모듈과 호출 및 출력 모듈을 포함한다. 검색 모듈은 획득된 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하도록 구성된다. 호출 및 출력 모듈은 데이터 모델을 렌더링하여 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 뷰 객체에 대응하는 방법을 호출하도록 구성된다.
본 발명에 의해 제공된 자바 애플리케이션 서버는, 네트워크 프레임워크 레이어, 애플리케이션 컨테이너 레이어 및 페이지 템플레이트 레이어의 3개의 레이어만을 포함하여, 간단한 구조와 레이어 사이의 합리적인 작업 분배 및 협업을 갖는다: 구체적으로는, 네트워크 프레임 레이어는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하도록 구성되고, 애플리케이션 컨테이너 레이어는 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색하고, 비즈니스 로직을 작동하여 데이터 모델 및 뷰 이름을 획득하도록 구성되고, 페이지 템플레이트 레이어는 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색하고 데이터 모델을 렌더링하여 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 뷰 객체에 대응하는 방법을 호출하도록 구성된다. 전술한 과제 해결 수단의 구현은 본 발명에 의해 제공된 자바 애플리케이션이 더 높은 처리량과 간단한 구조를 가질 수 있게 하여, 이에 따라 비즈니스 로직의 배치, 작동 및 유지 보수에 대한 난이도를 감소시키고 2차적인 개발을 용이하게 한다.
실시예 2
도 2를 참조하면, 자바 애플리케이션 서버는, 네트워크 프레임워크 레이어(201), 애플리케이션 컨테이너 레이어(202) 및 페이지 템플레이트 레이어(203)를 포함하고, 네트워크 프레임워크 레이어(201), 애플리케이션 컨테이너 레이어(202) 및 페이지 템플레이트 레이어(203)는 임의의 다른 서드 파티 소프트웨어에 의존하지 않고, JVM(Java Virtual Machine and a Runtime Environment)에서 직접 실행된다.
도 3을 참조하면, 본 발명의 실시예에서, 네트워크 프레임워크 레이어(201)는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하도록 구성된다.
애플리케이션 컨테이너 레이어(202)는 획득 모듈(2021) 및 작동 모듈(2022)을 포함한다. 획득 모듈(2021)은 획득된 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하도록 구성된다. 작동 모듈(2022)은 획득된 비즈니스 로직을 작동하여 데이터 모델 및 뷰 이름을 획득하도록 구성된다.
페이지 템플레이트 레이어(203)는, 검색 모듈(2031)과 호출 및 출력 모듈(2032)을 포함한다. 검색 모듈(2031)은 획득된 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하도록 구성된다. 호출 및 출력 모듈(2032)은 데이터 모델을 렌더링하여 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 뷰 객체에 대응하는 방법을 호출하도록 구성된다.
도 4를 참조하면, 본 발명의 일 실시예에서 제공된 자바 애플리케이션 서버의 네트워크 프레임워크 레이어(201)는 수신기(2011), 프로세서(2012) 및 필터(2013)를 포함한다.
수신기(2011)는 클라이언트측에 의해 전송된 연결 요청을 수신하고, 클라이언트측과의 연결을 구축하고, 클라이언트측을 위한 세션 객체를 생성하도록 구성된다. 프로세서(2012)는 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 요청 이벤트를 검출하고, 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 요청 이벤트가 검출될 때, 웹 비즈니스를 액세스하기 위한 요청 이벤트를 판독하도록 구성된다. 필터(2013)는 웹 비즈니스를 액세스하기 위한 URL에 관한 정보를 획득하기 위하여 웹 비즈니스를 액세스하기 위한 요청 이벤트를 파싱하도록 구성된다.
본 발명의 실시예에서, 애플리케이션 컨테이너 레이어(202)는, 컨트롤러(Controller), 요청(Request), 인터셉터(Interceptor), 자동 연결(Autowired), 컴포넌트(Component), 공장(Factory) 및 서비스(Service) 중 하나 이상의 태그를 더 포함하고, 태그는 비즈니스 로직을 식별하는데 사용된다.
도 4를 참조하면, 상응하여, 애플리케이션 컨테이너 레이어(202)는, 비즈니스 로직 배치 모듈(2023), 스캐닝 모듈(2024), 제1 처리 모듈(2025), 제2 처리 모듈(2026), 전차단(pre-interception) 모듈(2027) 및 후차단(post-interception) 모듈(2028)을 더 포함한다.
비즈니스 로직 배치 모듈(2023)은 애플리케이션 컨테이너 레이어 내에서 비즈니스 로직의 클래스 경로를 특정하도록 구성된다.
스캐닝 모듈(2024)은 클래스 경로 하에서의 모든 비즈니스 로직을 스캐닝하고, 반사(Reflection) 기술을 이용하여 Controller, Interceptor, Component, Factory 또는 Service로 태그된 비즈니스 로직을 획득하고, 획득된 비즈니스 로직을 예시하도록 구성된다.
제1 처리 모듈(2025)은 Controller로 태그된 비즈니스 로직에 대하여, 반사 기술을 이용하여, Controller로 태그된 비즈니스 로직 내에서 Request로 태그된 방법을 획득하고, Request로 태그된 방법을 예시된 비즈니스 로직의 객체와 관련시키도록 구성된다.
제2 처리 모듈(2026)은 Autowired로 태그된 비즈니스 로직에 대하여, 반사 기술을 이용하여, Autowired로 태그된 비즈니스 로직이 종속하는 협력자 클래스(collaborator class)를 기록하고, Autowired로 태그된 비즈니스 로직 사이의 종속 관계를 정리(assembling)하도록 구성된다.
전차단 모듈(2027)은 획득된 비즈니스 로직을 전처리하고, 전처리된 결과가 제1 값을 가질 때, 데이터 모델 및 뷰 이름을 획득하기 위하여 획득된 비즈니스 로직을 작동하는 동작을 수행하게 작동 모듈(2022)에 통지하도록 구성된다.
후차단 모듈(2028)은 작동 모듈(2022)에 의해 획득된 데이터 모델 및 뷰 이름을 수정하도록 구성된다.
도 4를 참조하면, 페이지 템플레이트 레이어(203)은, 컴파일 모듈(2033), 뷰 객체 생성 모듈(2034) 및 캐시 모듈(2035)을 더 포함한다.
컴파일 모듈(2033)은 사전 설정된 템플레이트 언어 페이지를 스캐닝하고, 템플레이트 언어 페이지를 자바 언어 소스 파일로 컴파일하기 위하여 컴파일러를 호출하도록 구성된다.
뷰 객체 생성 모듈(2034)은 자바 언어 소스 파일을 스캐닝하고, 자바 언어 소스 파일을 로딩하여 예시하기 위하여 맞춤형 클래스 로더(customized class loader)를 활용하도록 구성되고, 예시된 자바 언어 소스 파일은 뷰 객체이다.
캐시 모듈(2035)은, 획득된 뷰 이름에 따라 뷰 이름과 뷰 객체 사이의 대응하는 관계를 검색함으로써 검색 모듈이 대응하는 뷰 객체를 획득할 수 있도록, 뷰 객체의 뷰 이름과 뷰 객체 사이의 대응하는 관계를 캐싱하도록 구성된다.
여기에서, 페이지 템플레이트 레이어(203)는 템플레이트 언어와 문법을 미리 정의한다. 예를 들어, 본 발명의 일 실시예에서, 미리 정의된 템플레이트 언어는 다음의 키워드로 표현될 수 있고, 키워드는, set, function, if, elif, else, for, in, end, extend, segment, super, out, url, main, compress, select, when 또는 other를 포함할 수 있고, 키워드로 구성된 어구는 다음을 포함할 수 있다:
set 어구: 하나 이상의 변수를 설정;
function 어구: 맞춤형 함수;
if/elif/else 어구: 논리 판단;
for/in 어구: 루프 반복;
end 어구: 블록의 종료;
extend 어구: 페이지 상속 및 확장;
segment 어구: 맞춤형 페이지 세그먼트;
super 어구: 부모 페이지의 맞춤형 세그먼트 호출;
out 내장 맞춤형 함수: 변형된 의미를 갖는 페이지 문자 스트링(page character string) 세그먼트를 출력;
url 내장 맞춤형 함수: URL(Uniform/Universal Resource Locator)의 재기록 및 출력;
main 내장 맞춤형 페이지 세그먼트: 페이지의 디폴트 입구 세그먼트;
compress 어구: 페이지 출력을 압축;
select/when/other 어구: 다중 브랜치 논리 판단.
본 발명의 실시예에서, 미리 정의된 문법은 다음의 문법을 포함할 수 있다.
a) 다음과 같이 나타낼 수 있는 폐쇄형 문법:
객체 내비게이션 또는 맞춤형 함수의 출력에 사용되는, ${파라미터} 또는 ${맞춤형함수이름 파라미터};
맞춤형 세그먼트를 호출하는데 사용되는, @{맞춤형 세그먼트 이름} 또는 @{super.맞춤형 세그먼트 이름}.
b) 다음과 같이 나타낼 수 있는 개방형 문법:
어구에 대하여 사용될 수 있는, #어구키워드 파라미터
본 발명의 실시예에서, 전술한 키워드, 어구 및 문법에 대하여, 템플레이트 언어의 정의도 객체 내비게이션, 표현 등을 포함할 수 있고, 객체 내비게이션은 JEE(Java Platform Enterprise Edition) 페이지 뷰 템플레이트의 규범과 일치하고, 표현은 자바 언어 규범과 일치한다는 것이 명확하게 되어야 한다.
본 발명에 의해 제공된 자바 애플리케이션 서버는, 네트워크 프레임워크 레이어, 애플리케이션 컨테이너 레이어 및 페이지 템플레이트 레이어의 3개의 레이어만을 포함하여, 간단한 구조와 레이어 사이의 합리적인 작업 분배 및 협업을 갖는다. 구체적으로는, 네트워크 프레임 레이어는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하도록 구성된다. 애플리케이션 컨테이너 레이어는 획득된 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하고, 비즈니스 로직을 작동하여 데이터 모델 및 뷰 이름을 획득하도록 구성된다. 페이지 템플레이트 레이어는 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하고, 데이터 모델을 렌더링하여 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 뷰 객체에 대응하는 방법을 호출하도록 구성된다. 전술한 과제 해결 수단의 구현은 본 발명에 의해 제공된 자바 애플리케이션이 더 높은 처리량과 간단한 구조를 가질 수 있게 하여, 이에 따라 비즈니스 로직의 배치, 작동 및 유지 보수에 대한 난이도를 감소시키고 2차적인 개발을 용이하게 한다.
실시예 3
도 5를 참조하면, 자바 애플리케이션 서버가 구체적으로 방법의 수행 주체인 웹 비즈니스 처리 방법은 구체적으로 다음의 단계들을 포함한다:
단계 301: 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득;
단계 302: 획득된 URL에 따라 URL과 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득;
단계 303: 데이터 모델 및 뷰 이름을 획득하도록 획득된 비즈니스 로직을 작동;
단계 304: 획득된 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득; 및
단계 305: 데이터 모델을 렌더링하여 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 뷰 객체에 대응하는 방법을 호출.
본 발명에 의해 제공된 자바 애플리케이션 서버는, 네트워크 프레임워크 레이어, 애플리케이션 컨테이너 레이어 및 페이지 템플레이트 레이어의 3개의 레이어만을 포함하여, 간단한 구조와 레이어 사이의 합리적인 작업 분배 및 협업을 갖는다. 구체적으로는, 네트워크 프레임 레이어는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하도록 구성된다. 애플리케이션 컨테이너 레이어는 획득된 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하고, 비즈니스 로직을 작동하여 데이터 모델 및 뷰 이름을 획득하도록 구성된다. 페이지 템플레이트 레이어는 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하고, 데이터 모델을 렌더링하여 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 뷰 객체에 대응하는 방법을 호출하도록 구성된다. 전술한 과제 해결 수단의 구현은 본 발명에 의해 제공된 자바 애플리케이션이 더 높은 처리량과 간단한 구조를 가질 수 있게 하여, 이에 따라 비즈니스 로직의 배치, 작동 및 유지 보수에 대한 난이도를 감소시키고 2차적인 개발을 용이하게 한다.
실시예 4
본 발명의 실시예에서 제공된 웹 비즈니스 처리 방법은 도 1에 도시된 바와 같은 자바 애플리케이션 서버에 적용된다. 도 6을 참조하면, 자바 애플리케이션 서버가 구체적으로 방법의 수행 주체인 웹 비즈니스 처리 방법은 구체적으로 다음의 단계들을 포함한다:
단계 401: 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득.
구체적으로는, 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득라는 단계는,
클라이언트측에 의해 전송된 연결 요청을 수신하고, 클라이언트측과의 연결을 구축하고, 클라이언트측을 위한 세션 객체를 생성하는 단계;
세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 요청 이벤트를 검출하고, 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 요청 이벤트가 검출될 때, 웹 비즈니스를 액세스하기 위한 요청 이벤트를 판독하는 단계; 및
웹 비즈니스를 액세스하기 위한 URL에 관한 정보를 획득하기 위하여 웹 비즈니스를 액세스하기 위한 요청 이벤트를 파싱하는 단계
를 포함한다.
단계 401에 따른 방법은, 구체적으로 자바 애플리케이션 서버에서 네트워크 프레임워크 레이어에 의해 완료된다.
단계 402: 획득된 URL에 따라 URL과 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득.
본 발명의 실시예에서, 자바 애플리케이션 서버는 비즈니스 로직을 식별하는 하나 이상의 태그를 미리 정의하고, 태그는, 컨트롤러(Controller), 요청(Request), 인터셉터(Interceptor), 자동 연결(Autowired), 컴포넌트(Component), 공장(Factory) 및 서비스(Service) 중 하나 이상의 태그를 포함한다.
획득된 URL에 따라 URL과 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하는 단계 전에, 자바 애플리케이션 서버는 자바 애플리케이션 서버에 제공되도록 개발된 비즈니스 로직을 애플리케이션 컨테이너 레이어 내에 미리 배치한다. 애플리케이션 컨테이너 레이어는 IoC(Inversion of Control) 및 MVC(Model View Controller, 코어로서 모델-뷰-컨트롤러를 갖는 디자인 모드)의 능력을 보유한다.
구체적으로는, 자바 애플리케이션 서버에 제공되도록 개발된 비즈니스 로직을 자바 애플리케이션 서버에 의해 애플리케이션 컨테이너 레이어 내에 미리 배치하는 단계는,
애플리케이션 컨테이너 레이어 내에서 비즈니스 로직의 클래스 경로를 특정하는 단계; 및
클래스 경로 하에서의 모든 비즈니스 로직을 스캐닝하고, 반사(Reflection) 기술을 이용하여 Controller, Interceptor, Component, Factory 또는 Service로 태그된 비즈니스 로직을 획득하고, 획득된 비즈니스 로직을 예시하는 단계
를 포함한다.
또한, 애플리케이션 컨테이너 레이어의 IoC 능력을 획득하기 위하여, 본 방법은,
Controller로 태그된 비즈니스 로직에 대하여, 반사 기술을 이용하여, Controller로 태그된 비즈니스 로직 내에서 Request로 태그된 방법을 획득하고, Request로 태그된 방법을 예시된 비즈니스 로직의 객체와 관련시키는 단계; 및
Autowired로 태그된 비즈니스 로직에 대하여, 반사 기술을 이용하여, Autowired로 태그된 비즈니스 로직이 종속하는 협력자 클래스(collaborator class)를 기록하고, Autowired로 태그된 비즈니스 로직 사이의 종속 관계를 정리(assembling)하는 단계
를 더 포함한다.
단계 403: 획득된 비즈니스 로직을를 전처리하고, 전처리된 결과에 따라 획득된 비즈니스 로직을 작동시키는지 여부를 판단. 전처리된 결과가 제1 값을 가질 때, 단계 404를 수행하고, 전처리된 결과가 제2 값을 가질 때, 작동 절차를 종료하는 단계.
여기에서, 전처리된 결과는 불(boolean) 값이고, 예를 들어, 제1 값은 1이고, 제2 값은 0이다.
단계 404: 데이터 모델 및 뷰 이름을 획득하기 위하여 획득된 비즈니스 로직을 작동.
자바 애플리케이션 서버 내의 애플리케이션 컨테이너 레이어가 자체에 MVC 능력을 소유하고 있기 때문에, 비즈니스 로직에 대응하는 데이터 모델 및 뷰 이름은 비즈니스 로직이 자바 애플리케이션 서버에서 작동될 때 획득될 수 있다.
단계 405: 데이터 모델 및 뷰 이름 수정.
이 단계가 선택적으로 수행되는 단계이며 자바 애플리케이션 서버의 유연성성(flexibilty)을 개선하는 것을 목적으로 하고 있다는 것이 명확하게 되어야 한다.
전술한 단계 402 내지 405는 모두 자바 애플리케이션 내의 애플리케이션 컨테이너 레이어에 의해 완료된다.
본 발명의 실시예에서, 자바 애플리케이션 서버 내의 페이지 템플레이트 레이어는 템플레이트 언어와 문법을 미리 정의하고, 미리 정의된 템플레이트 언어는 다음의 키워드로 표현될 수 있다. 키워드는, set, function, if, elif, else, for, in, end, extend, segment, super, out, url, main, compress, select, when 또는 other를 포함할 수 있고, 키워드로 구성된 어구는 다음을 포함할 수 있다:
set 어구: 하나 이상의 변수를 설정;
function 어구: 맞춤형 함수;
if/elif/else 어구: 논리 판단;
for/in 어구: 루프 반복;
end 어구: 블록의 종료;
extend 어구: 페이지 상속 및 확장;
segment 어구: 맞춤형 페이지 세그먼트;
super 어구: 부모 페이지의 맞춤형 세그먼트 호출;
out 내장 맞춤형 함수: 변형된 의미를 갖는 페이지 문자 스트링 세그먼트를 출력;
url 내장 맞춤형 함수: URL(Uniform/Universal Resource Locator)의 재기록 및 출력;
main 내장 맞춤형 페이지 세그먼트: 페이지의 디폴트 입구 세그먼트;
compress 어구: 페이지 출력을 압축;
select/when/other 어구: 다중 브랜치 논리 판단.
본 발명의 실시예에서, 미리 정의된 문법은 다음의 문법을 포함할 수 있다.
a) 다음과 같이 나타낼 수 있는 폐쇄형 문법:
객체 내비게이션 또는 맞춤형 함수의 출력에 사용되는, ${파라미터} 또는 ${맞춤형함수이름 파라미터};
맞춤형 세그먼트를 호출하는데 사용되는, @{맞춤형 세그먼트 이름} 또는 @{super.맞춤형 세그먼트 이름}.
b) 다음과 같이 나타낼 수 있는 개방형 문법:
어구에 대하여 사용될 수 있는, #어구키워드 파라미터
본 발명의 실시예에서, 전술한 키워드, 어구 및 문법에 대하여, 템플레이트 언어의 정의도 객체 내비게이션, 표현 등을 포함할 수 있고, 객체 내비게이션은 JEE(Java Platform Enterprise Edition) 페이지 뷰 템플레이트의 규범과 일치하고, 표현은 자바 언어 규범과 일치한다는 것이 명확하게 되어야 한다.
전술한 설명에 따라, 애플리케이션 컨테이너 레이어가 데이터 모델 및 뷰 이름을 획득할 때, 뷰 이름에 따라 뷰 객체의 뷰 이름과 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 얻을 수 있도록, 페이지 템플레이트 레이어는 미리 뷰 객체를 생성하여 뷰 객체 및 뷰 객체의 뷰 이름 사이의 대응하는 관계를 캐시에 저장한다. 또한, 페이지 템플레이트 레이어는 뷰 객체에 대응하는 방법에 따라 데이터 모델을 렌더링하여 출력한다.
뷰 객체를 미리 생성하여 생성된 뷰 객체를 페이지 템플레이트 레이어에 의해 캐시에 저장하는 단계는,
사전 설정된 템플레이트 언어 페이지를 스캐닝하고, 템플레이트 언어 페이지를 자바 언어 소스 파일로 컴파일하기 위하여 컴파일러를 호출하는 단계;
자바 언어 소스 파일을 스캐닝하고, 맞춤형 클래스 로더를 활용함으로써 자바 언어 소스 파일을 로딩하여 예시하는 단계로서, 예시된 자바 언어 소스 파일은 뷰 객체인 단계; 및
뷰 객체의 뷰 이름과 뷰 객체 사이의 대응하는 관계를 캐싱하는 단계
를 포함한다.
단계 406: 획득된 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득.
단계 407: 데이터 모델을 렌더링하여 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 뷰 객체에 대응하는 방법을 호출.
단계 402 내지 405에 따른 방법은 구체적으로 자바 애플리케이션 내의 페이지 템플레이트 레이어에 의해 구현된다.
본 발명에 의해 제공된 자바 애플리케이션 서버는, 네트워크 프레임워크 레이어, 애플리케이션 컨테이너 레이어 및 페이지 템플레이트 레이어의 3개의 레이어만을 포함하여, 간단한 구조와 레이어 사이의 합리적인 작업 분배 및 협업을 갖는다. 구체적으로는, 네트워크 프레임 레이어는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하도록 구성된다. 애플리케이션 컨테이너 레이어는 획득된 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하고, 비즈니스 로직을 작동하여 데이터 모델 및 뷰 이름을 획득하도록 구성된다. 페이지 템플레이트 레이어는 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하고, 데이터 모델을 렌더링하여 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 뷰 객체에 대응하는 방법을 호출하도록 구성된다. 전술한 과제 해결 수단의 구현은 본 발명에 의해 제공된 자바 애플리케이션이 더 높은 처리량과 간단한 구조를 가질 수 있게 하여, 이에 따라 비즈니스 로직의 배치, 작동 및 유지 보수에 대한 난이도를 감소시키고 2차적인 개발을 용이하게 한다.
본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는, 전술한 실시예를 구현하는 단계의 전부 또는 일부가 하드웨어 그 자체로, 또는 프로그램의 명령어를 실행함으로써 하드웨어에 의해 완료될 수 있고, 프로그램은 컴퓨터 판독가능한 저장 매체에 저장될 수 있으며, 전술한 저장 매체는 리드 온리 메모리, 디스크 또는 광 디스크 등일 수 있다는 것을 이해할 수 있다.
전술된 것은 본 발명의 바람직한 특정 구현례이며, 본 발명의 보호 범위는 그에 제한되지 않는다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 용이하게 착안될 수 있는 본 발명에 의해 개시된 기술 내에서의 임의의 변경이나 대체는 본 발명의 보호 범위 내에 포함될 것이다. 따라서, 본 발명의 보호 범위는 특허청구범위의 보호 범위에 기초할 것이다.
본 발명에 의해 제공된 자바 애플리케이션 서버는, 네트워크 프레임워크 레이어, 애플리케이션 컨테이너 레이어 및 페이지 템플레이트 레이어의 3개의 레이어만을 포함하여, 간단한 구조와 레이어 사이의 합리적인 작업 분배 및 협업을 갖는다. 본 발명에 의해 제공된 자바 애플리케이션은 더 높은 처리량과 간단한 구조를 가지며, 이에 따라 비즈니스 로직의 배치, 작동 및 유지 보수에 대한 난이도를 감소시키고 2차적인 개발을 용이하게 한다.
Claims (15)
- 네트워크 프레임워크 레이어, 애플리케이션 컨테이너 레이어 및 페이지 템플레이트 레이어를 포함하는 자바 애플리케이션 서버에 있어서,
상기 네트워크 프레임 레이어는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL(uniform resource locator)을 획득하도록 구성되고,
상기 애플리케이션 컨테이너 레이어는,
획득된 상기 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하도록 구성된 획득 모듈; 및
획득된 상기 비즈니스 로직을 작동하여 데이터 모델 및 뷰(view) 이름을 획득하도록 구성된 작동 모듈
을 포함하고,
상기 페이지 템플레이트 레이어는,
획득된 상기 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하는 검색 모듈; 및
상기 데이터 모델을 렌더링하여 상기 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 상기 뷰 객체에 대응하는 방법을 호출하는 호출 및 출력 모듈
을 포함하는,
자바 애플리케이션 서버.
- 제1항에 있어서,
상기 네트워크 프레임워크 레이어는,
상기 클라이언트측에 의해 전송된 연결 요청을 수신하고, 상기 클라이언트측과의 연결을 구축하고, 상기 클라이언트측을 위한 세션 객체를 생성하도록 구성된 수신기;
상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 요청 이벤트를 검출하고, 상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트가 검출될 때, 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 판독하도록 구성된 프로세서; 및
웹 비즈니스를 액세스하기 위한 상기 URL에 관한 정보를 획득하기 위하여 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 파싱하도록 구성된 필터
를 포함하는,
자바 애플리케이션 서버.
- 제1항에 있어서,
상기 애플리케이션 컨테이너 레이어는, 컨트롤러(Controller), 요청(Request), 인터셉터(Interceptor), 자동 연결(Autowired), 컴포넌트(Component), 공장(Factory) 및 서비스(Service) 중 하나 이상의 태그를 더 포함하고, 상기 태그는 비즈니스 로직을 식별하는데 사용되는,
자바 애플리케이션 서버.
- 제3항에 있어서,
상기 애플리케이션 컨테이너 레이어는,
상기 애플리케이션 컨테이너 레이어 내에서 비즈니스 로직의 클래스 경로(classpath)를 특정하기 위한 비즈니스 로직 배치 모듈; 및
상기 클래스 경로 하에서의 모든 비즈니스 로직을 스캐닝하고, 반사(Reflection) 기술을 이용하여 Controller, Interceptor, Component, Factory 또는 Service로 태그된 비즈니스 로직을 획득하고, 획득된 상기 비즈니스 로직을 예시하는(instantiating) 스캐닝 모듈
을 더 포함하는,
자바 애플리케이션 서버.
- 제4항에 있어서,
상기 애플리케이션 컨테이너 레이어는,
Controller로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Controller로 태그된 비즈니스 로직 내에서 Request로 태그된 방법을 획득하고, 상기 Request로 태그된 방법을 예시된 상기 비즈니스 로직의 객체와 관련시키기 위한 제1 처리 모듈; 및
Autowired로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Autowired로 태그된 비즈니스 로직이 종속하는 협력자 클래스(collaborator class)를 기록하고, 상기 Autowired로 태그된 비즈니스 로직 사이의 종속 관계를 정리(assembling)하기 위한 제2 처리 모듈
자바 애플리케이션 서버.
- 제1항에 있어서,
상기 애플리케이션 컨테이너 레이어는,
획득된 상기 비즈니스 로직을 전처리하고, 전처리된 결과가 제1 값을 가질 때, 데이터 모델 및 뷰 이름을 획득하기 위하여 획득된 상기 비즈니스 로직을 작동하는 동작을 수행하도록 상기 작동 모듈에 통지하는 전차단(pre-interception) 모듈; 및/또는
상기 작동 모듈에 의해 획득된 상기 데이터 모델 및 상기 뷰 이름을 수정하기 위한 후차단(post-interception) 모듈
을 더 포함하는,
자바 애플리케이션 서버.
- 제1항에 있어서,
상기 페이지 템플레이트 레이어는,
사전 설정된 템플레이트 언어 페이지를 스캐닝하고, 상기 템플레이트 언어 페이지를 자바 언어 소스 파일로 컴파일하기 위하여 컴파일러를 호출하는 컴파일 모듈;
상기 자바 언어 소스 파일을 스캐닝하고, 상기 자바 언어 소스 파일을 로딩하여 예시하기 위하여 맞춤형 클래스 로더(customized class loader)를 활용하기 위한 뷰 객체 생성 모듈로서, 예시된 상기 자바 언어 소스 파일은 뷰 객체인, 상기 뷰 객체 생성 모듈; 및
획득된 상기 뷰 이름에 따라 상기 뷰 이름과 상기 뷰 객체 사이의 대응하는 관계를 검색함으로써 상기 검색 모듈이 대응하는 뷰 객체를 획득할 수 있도록, 상기 뷰 객체의 뷰 이름과 상기 뷰 객체 사이의 대응하는 관계를 캐싱하는 캐시 모듈
을 더 포함하는,
자바 애플리케이션 서버.
- 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하는 단계;
획득된 상기 URL에 따라 URL과 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하는 단계;
데이터 모델 및 뷰 이름을 획득하도록 획득된 상기 비즈니스 로직을 작동시키는 단계;
획득된 상기 뷰 이름에 따라 상기 뷰 이름 및 상기 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하는 단계; 및
상기 데이터 모델을 렌더링하여 상기 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 상기 뷰 객체에 대응하는 방법을 호출하는 단계
를 포함하는,
웹 비즈니스 처리 방법.
- 제8항에 있어서,
상기 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하는 단계는,
상기 클라이언트측에 의해 전송된 연결 요청을 수신하고, 상기 클라이언트측과의 연결을 구축하고, 상기 클라이언트측을 위한 세션 객체를 생성하는 단계;
상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 요청 이벤트를 검출하고, 상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트가 검출될 때, 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 판독하는 단계; 및
웹 비즈니스를 액세스하기 위한 상기 URL에 관한 정보를 획득하기 위하여 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 파싱하는 단계
를 포함하는,
웹 비즈니스 처리 방법.
- 제8항에 있어서,
비즈니스 로직을 식별하는 하나 이상의 태그를 미리 정의하는 단계를 더 포함하고,
상기 태그는, 컨트롤러(Controller), 요청(Request), 인터셉터(Interceptor), 자동 연결(Autowired), 컴포넌트(Component), 공장(Factory) 및 서비스(Service) 중 하나 이상의 태그를 포함하는,
웹 비즈니스 처리 방법.
- 제10항에 있어서,
상기 애플리케이션 컨테이너 레이어 내에서 비즈니스 로직의 클래스 경로를 특정하는 단계; 및
상기 클래스 경로 하에서의 모든 비즈니스 로직을 스캐닝하고, 반사(Reflection) 기술을 이용하여 Controller, Interceptor, Component, Factory 또는 Service로 태그된 비즈니스 로직을 획득하고, 획득된 상기 비즈니스 로직을 예시하는 단계
를 더 포함하는,
웹 비즈니스 처리 방법.
- 제11항에 있어서,
Controller로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Controller로 태그된 비즈니스 로직 내에서 Request로 태그된 방법을 획득하고, 상기 Request로 태그된 방법을 예시된 상기 비즈니스 로직의 객체와 관련시키는 단계; 및
Autowired로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Autowired로 태그된 비즈니스 로직이 종속하는 협력자 클래스를 기록하고, 상기 Autowired로 태그된 비즈니스 로직 사이의 종속 관계를 정리하는 단계
를 더 포함하는,
웹 비즈니스 처리 방법.
- 제8항에 있어서,
상기 데이터 모델 및 뷰 이름을 획득하도록 획득된 상기 비즈니스 로직을 작동시키는 단계 전에,
획득된 상기 비즈니스 로직을 전처리하고, 전처리된 결과가 제1 값을 가질 때, 데이터 모델 및 뷰 이름을 획득하기 위하여 획득된 상기 비즈니스 로직을 작동시키는 단계를 수행하고, 상기 전처리된 결과가 제2 값을 가질 때, 작동 절차를 종료하는 단계
를 더 포함하는,
웹 비즈니스 처리 방법.
- 제8항에 있어서,
상기 데이터 모델 및 뷰 이름을 획득하도록 획득된 상기 비즈니스 로직을 작동시키는 단계 후에,
상기 데이터 모델 및 상기 뷰 이름을 수정하는 단계를 더 포함하는,
웹 비즈니스 처리 방법.
- 제8항에 있어서,
사전 설정된 템플레이트 언어 페이지를 스캐닝하고, 상기 템플레이트 언어 페이지를 자바 언어 소스 파일로 컴파일하기 위하여 컴파일러를 호출하는 단계;
상기 자바 언어 소스 파일을 스캐닝하고, 맞춤형 클래스 로더를 활용함으로써 상기 자바 언어 소스 파일을 로딩하여 예시하는 단계로서, 예시된 상기 자바 언어 소스 파일은 뷰 객체인 단계; 및
상기 뷰 객체의 뷰 이름과 상기 뷰 객체 사이의 대응하는 관계를 캐싱하는 단계
를 더 포함하는,
웹 비즈니스 처리 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103676900 | 2011-11-18 | ||
CN201110367690.0A CN103123593B (zh) | 2011-11-18 | 2011-11-18 | Java应用服务器及处理Web业务的方法 |
PCT/CN2012/076973 WO2013071748A1 (zh) | 2011-11-18 | 2012-06-15 | Java应用服务器及处理Web业务的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140089410A true KR20140089410A (ko) | 2014-07-14 |
Family
ID=48428968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147014900A KR20140089410A (ko) | 2011-11-18 | 2012-06-15 | 자바 애플리케이션 서버 및 웹 서비스 처리 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140297627A1 (ko) |
EP (1) | EP2782008A4 (ko) |
KR (1) | KR20140089410A (ko) |
CN (1) | CN103123593B (ko) |
WO (1) | WO2013071748A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210091686A (ko) * | 2020-01-09 | 2021-07-22 | 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 | 미니프로그램 실행 방법, 미니프로그램 실행 장치, 전자 기기 및 저장 매체 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216729B (zh) * | 2013-06-05 | 2017-10-13 | 阿里巴巴集团控股有限公司 | 应用系统的逻辑模块更新实现方法及装置 |
US11397520B2 (en) * | 2013-08-01 | 2022-07-26 | Yogesh Chunilal Rathod | Application program interface or page processing method and device |
CN104767780B (zh) * | 2014-01-08 | 2018-09-18 | 上海博科资讯股份有限公司 | 一种基于IOC的web应用系统 |
US20150293669A1 (en) * | 2014-04-09 | 2015-10-15 | Zulahoo, Inc. | Apparatus, method, and computer system for generating contained, usable objects that are dynamically configurable |
CN104317591B (zh) * | 2014-10-23 | 2017-11-28 | 西安未来国际信息股份有限公司 | 一种基于OSGi的web界面框架系统及web业务处理方法 |
CN107479861B (zh) * | 2016-06-07 | 2021-04-06 | 阿里巴巴集团控股有限公司 | 页面处理方法及其系统 |
CN107846448B (zh) * | 2017-09-22 | 2020-07-07 | 阿里巴巴集团控股有限公司 | 数据服务提供装置及实现方法 |
CN110020307B (zh) * | 2017-11-30 | 2023-06-13 | 阿里巴巴集团控股有限公司 | 一种客户端视图的绘制方法和装置 |
CN109542402A (zh) * | 2018-10-12 | 2019-03-29 | 杭州工跃机械制造有限公司 | 一种自适应的用于多门户网站无缝切换的方法 |
CN109739573B (zh) * | 2018-12-27 | 2023-07-18 | 深圳市多度科技有限公司 | 实现api接口调用的处理方法及装置、实现api接口的系统 |
CN109857801B (zh) * | 2019-01-02 | 2021-01-15 | 哈尔滨鸿德亦泰数码科技有限责任公司 | 基于四层架构的智慧灌区e平台及数据处理方法 |
CN111736913B (zh) * | 2019-03-25 | 2021-11-19 | 华为技术有限公司 | 类加载方法和装置 |
CN110866197B (zh) * | 2019-11-19 | 2022-08-19 | 中国民航信息网络股份有限公司 | 一种基于web应用程序的离港前端客户端访问方法及装置 |
CN113127732B (zh) * | 2021-03-23 | 2024-02-20 | 金蝶蝶金云计算有限公司 | 业务数据的获取方法、装置、计算机设备和存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001069444A2 (en) * | 2000-03-10 | 2001-09-20 | Aether Systems, Inc. | System, method, and apparatus for providing value added services to specific users |
EP1266334A4 (en) * | 2000-03-22 | 2005-11-30 | Webmethods Inc | METHOD AND SYSTEM FOR BUSINESS PROCESS DEFINITION AND PERFORMANCE IN THE TOP-DOWN PROCESS |
US7516440B2 (en) * | 2001-10-18 | 2009-04-07 | Bea Systems, Inc. | System and method for providing a java interface to an application view component |
WO2003060707A1 (en) * | 2002-01-11 | 2003-07-24 | Akamai Technologies, Inc. | Java application framework for use in a content delivery network (cdn) |
AU2003262702A1 (en) * | 2002-08-23 | 2004-03-11 | Jway Group, Inc. | Extensible user interface (xui) framework and development environment |
US20050076329A1 (en) * | 2003-10-01 | 2005-04-07 | Christina Hsu | Method and apparatus for supporting configuration of a web application in a web presentation architecture |
US7614052B2 (en) * | 2004-01-09 | 2009-11-03 | Nexaweb Technologies Inc. | System and method for developing and deploying computer applications over a network |
CN1259623C (zh) * | 2004-02-23 | 2006-06-14 | 史宇清 | 基于j2ee的五层体系结构构建方法 |
CN1728700B (zh) * | 2004-07-26 | 2011-04-20 | 中兴通讯股份有限公司 | 基于struts框架的web电信网管系统及其方法 |
CN1960371B (zh) * | 2006-08-25 | 2010-09-08 | 华为技术有限公司 | 一种访问Web应用程序文件的方法及系统 |
EP2469796A2 (en) * | 2007-05-03 | 2012-06-27 | Sonus Networks, Inc. | Service integration on a network |
US20110321010A1 (en) * | 2010-06-24 | 2011-12-29 | Yifei Wang | Web application framework based on object oriented class mapping |
-
2011
- 2011-11-18 CN CN201110367690.0A patent/CN103123593B/zh active Active
-
2012
- 2012-06-15 WO PCT/CN2012/076973 patent/WO2013071748A1/zh active Application Filing
- 2012-06-15 KR KR1020147014900A patent/KR20140089410A/ko not_active Application Discontinuation
- 2012-06-15 EP EP12849935.7A patent/EP2782008A4/en not_active Withdrawn
- 2012-06-15 US US14/355,656 patent/US20140297627A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210091686A (ko) * | 2020-01-09 | 2021-07-22 | 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 | 미니프로그램 실행 방법, 미니프로그램 실행 장치, 전자 기기 및 저장 매체 |
US11461111B2 (en) | 2020-01-09 | 2022-10-04 | Baidu Online Network Technology (Beijing) Co., Ltd. | Method for running applets, and electronic device |
Also Published As
Publication number | Publication date |
---|---|
EP2782008A4 (en) | 2015-07-15 |
CN103123593B (zh) | 2016-08-31 |
CN103123593A (zh) | 2013-05-29 |
WO2013071748A1 (zh) | 2013-05-23 |
EP2782008A1 (en) | 2014-09-24 |
US20140297627A1 (en) | 2014-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20140089410A (ko) | 자바 애플리케이션 서버 및 웹 서비스 처리 방법 | |
US10546035B2 (en) | System and method for data-driven web page navigation control | |
KR101944570B1 (ko) | 변형 컨텍스트-인식 데이터 소스 관리 | |
JP5042993B2 (ja) | ソフトウェアアプリケーションを構成する方法 | |
Thai et al. | . NET framework essentials | |
CN114041117A (zh) | 用于代码优化的语法图的持续注释 | |
US8959106B2 (en) | Class loading using java data cartridges | |
US10417314B2 (en) | Systems and methods of a script generation engine | |
US8615750B1 (en) | Optimizing application compiling | |
US9182980B2 (en) | Expansion and reduction of source code for code refactoring | |
US10331425B2 (en) | Automated source code adaption to inject features between platform versions | |
US8572554B2 (en) | Method and system for integrating Java and JavaScript technologies | |
Nagel | Professional C# 7 and. Net Core 2.0 | |
Fenoy et al. | ZOO-Project: the open WPS platform | |
US20090328016A1 (en) | Generalized expression trees | |
US20100088350A1 (en) | Packaging system to facilitate declarative model-driven development | |
Mackey | Introducing. NET 4.0: With Visual Studio 2010 | |
US9047100B2 (en) | Abstract syntax tree transformation | |
US20100088274A1 (en) | System and method for synchronizing a repository with a declarative defintion | |
Nagel | Professional c# 6 and. net core 1.0 | |
Juneau | Introducing Java EE 7: A look at what's new | |
Hlopko et al. | On the integration of Smalltalk and Java: practical experience with STX: LIBJAVA | |
CN113342399B (zh) | 应用项目的结构配置方法、装置及可读存储介质 | |
Cheng | Exploring Java 9: Build Modularized Applications in Java | |
Cheng | Exploring Java 9 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |