KR20140089410A - 자바 애플리케이션 서버 및 웹 서비스 처리 방법 - Google Patents

자바 애플리케이션 서버 및 웹 서비스 처리 방법 Download PDF

Info

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
Application number
KR1020147014900A
Other languages
English (en)
Inventor
판 장
Original Assignee
텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 filed Critical 텐센트 테크놀로지(센젠) 컴퍼니 리미티드
Publication of KR20140089410A publication Critical patent/KR20140089410A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols 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

자바 애플리케이션 서버 및 웹 서비스 처리 방법{JAVA APPLICAITON SERVER AND WEB SERVICE PROCESSING METHOD}
[관련 출원에 대한 교차 참조]
본 출원은 전문이 본 명세서에 참조로서 편입되는 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을 참조하면, 자바 애플리케이션 서버는, 네트워크 프레임워크 레이어(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)

  1. 네트워크 프레임워크 레이어, 애플리케이션 컨테이너 레이어 및 페이지 템플레이트 레이어를 포함하는 자바 애플리케이션 서버에 있어서,
    상기 네트워크 프레임 레이어는 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL(uniform resource locator)을 획득하도록 구성되고,
    상기 애플리케이션 컨테이너 레이어는,
    획득된 상기 URL에 따라 URL 및 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하도록 구성된 획득 모듈; 및
    획득된 상기 비즈니스 로직을 작동하여 데이터 모델 및 뷰(view) 이름을 획득하도록 구성된 작동 모듈
    을 포함하고,
    상기 페이지 템플레이트 레이어는,
    획득된 상기 뷰 이름에 따라 뷰 이름 및 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하는 검색 모듈; 및
    상기 데이터 모델을 렌더링하여 상기 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 상기 뷰 객체에 대응하는 방법을 호출하는 호출 및 출력 모듈
    을 포함하는,
    자바 애플리케이션 서버.
  2. 제1항에 있어서,
    상기 네트워크 프레임워크 레이어는,
    상기 클라이언트측에 의해 전송된 연결 요청을 수신하고, 상기 클라이언트측과의 연결을 구축하고, 상기 클라이언트측을 위한 세션 객체를 생성하도록 구성된 수신기;
    상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 요청 이벤트를 검출하고, 상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트가 검출될 때, 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 판독하도록 구성된 프로세서; 및
    웹 비즈니스를 액세스하기 위한 상기 URL에 관한 정보를 획득하기 위하여 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 파싱하도록 구성된 필터
    를 포함하는,
    자바 애플리케이션 서버.
  3. 제1항에 있어서,
    상기 애플리케이션 컨테이너 레이어는, 컨트롤러(Controller), 요청(Request), 인터셉터(Interceptor), 자동 연결(Autowired), 컴포넌트(Component), 공장(Factory) 및 서비스(Service) 중 하나 이상의 태그를 더 포함하고, 상기 태그는 비즈니스 로직을 식별하는데 사용되는,
    자바 애플리케이션 서버.
  4. 제3항에 있어서,
    상기 애플리케이션 컨테이너 레이어는,
    상기 애플리케이션 컨테이너 레이어 내에서 비즈니스 로직의 클래스 경로(classpath)를 특정하기 위한 비즈니스 로직 배치 모듈; 및
    상기 클래스 경로 하에서의 모든 비즈니스 로직을 스캐닝하고, 반사(Reflection) 기술을 이용하여 Controller, Interceptor, Component, Factory 또는 Service로 태그된 비즈니스 로직을 획득하고, 획득된 상기 비즈니스 로직을 예시하는(instantiating) 스캐닝 모듈
    을 더 포함하는,
    자바 애플리케이션 서버.
  5. 제4항에 있어서,
    상기 애플리케이션 컨테이너 레이어는,
    Controller로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Controller로 태그된 비즈니스 로직 내에서 Request로 태그된 방법을 획득하고, 상기 Request로 태그된 방법을 예시된 상기 비즈니스 로직의 객체와 관련시키기 위한 제1 처리 모듈; 및
    Autowired로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Autowired로 태그된 비즈니스 로직이 종속하는 협력자 클래스(collaborator class)를 기록하고, 상기 Autowired로 태그된 비즈니스 로직 사이의 종속 관계를 정리(assembling)하기 위한 제2 처리 모듈
    자바 애플리케이션 서버.
  6. 제1항에 있어서,
    상기 애플리케이션 컨테이너 레이어는,
    획득된 상기 비즈니스 로직을 전처리하고, 전처리된 결과가 제1 값을 가질 때, 데이터 모델 및 뷰 이름을 획득하기 위하여 획득된 상기 비즈니스 로직을 작동하는 동작을 수행하도록 상기 작동 모듈에 통지하는 전차단(pre-interception) 모듈; 및/또는
    상기 작동 모듈에 의해 획득된 상기 데이터 모델 및 상기 뷰 이름을 수정하기 위한 후차단(post-interception) 모듈
    을 더 포함하는,
    자바 애플리케이션 서버.
  7. 제1항에 있어서,
    상기 페이지 템플레이트 레이어는,
    사전 설정된 템플레이트 언어 페이지를 스캐닝하고, 상기 템플레이트 언어 페이지를 자바 언어 소스 파일로 컴파일하기 위하여 컴파일러를 호출하는 컴파일 모듈;
    상기 자바 언어 소스 파일을 스캐닝하고, 상기 자바 언어 소스 파일을 로딩하여 예시하기 위하여 맞춤형 클래스 로더(customized class loader)를 활용하기 위한 뷰 객체 생성 모듈로서, 예시된 상기 자바 언어 소스 파일은 뷰 객체인, 상기 뷰 객체 생성 모듈; 및
    획득된 상기 뷰 이름에 따라 상기 뷰 이름과 상기 뷰 객체 사이의 대응하는 관계를 검색함으로써 상기 검색 모듈이 대응하는 뷰 객체를 획득할 수 있도록, 상기 뷰 객체의 뷰 이름과 상기 뷰 객체 사이의 대응하는 관계를 캐싱하는 캐시 모듈
    을 더 포함하는,
    자바 애플리케이션 서버.
  8. 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하는 단계;
    획득된 상기 URL에 따라 URL과 비즈니스 로직 사이의 대응하는 관계를 검색함으로써 대응하는 비즈니스 로직을 획득하는 단계;
    데이터 모델 및 뷰 이름을 획득하도록 획득된 상기 비즈니스 로직을 작동시키는 단계;
    획득된 상기 뷰 이름에 따라 상기 뷰 이름 및 상기 뷰 객체 사이의 대응하는 관계를 검색함으로써 대응하는 뷰 객체를 획득하는 단계; 및
    상기 데이터 모델을 렌더링하여 상기 클라이언트측에 디스플레이를 위해 출력하기 위하여 획득된 상기 뷰 객체에 대응하는 방법을 호출하는 단계
    를 포함하는,
    웹 비즈니스 처리 방법.
  9. 제8항에 있어서,
    상기 클라이언트측에 의해 전송된 웹 비즈니스를 액세스하기 위한 URL을 획득하는 단계는,
    상기 클라이언트측에 의해 전송된 연결 요청을 수신하고, 상기 클라이언트측과의 연결을 구축하고, 상기 클라이언트측을 위한 세션 객체를 생성하는 단계;
    상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 요청 이벤트를 검출하고, 상기 세션 객체와 관련된 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트가 검출될 때, 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 판독하는 단계; 및
    웹 비즈니스를 액세스하기 위한 상기 URL에 관한 정보를 획득하기 위하여 웹 비즈니스를 액세스하기 위한 상기 요청 이벤트를 파싱하는 단계
    를 포함하는,
    웹 비즈니스 처리 방법.
  10. 제8항에 있어서,
    비즈니스 로직을 식별하는 하나 이상의 태그를 미리 정의하는 단계를 더 포함하고,
    상기 태그는, 컨트롤러(Controller), 요청(Request), 인터셉터(Interceptor), 자동 연결(Autowired), 컴포넌트(Component), 공장(Factory) 및 서비스(Service) 중 하나 이상의 태그를 포함하는,
    웹 비즈니스 처리 방법.
  11. 제10항에 있어서,
    상기 애플리케이션 컨테이너 레이어 내에서 비즈니스 로직의 클래스 경로를 특정하는 단계; 및
    상기 클래스 경로 하에서의 모든 비즈니스 로직을 스캐닝하고, 반사(Reflection) 기술을 이용하여 Controller, Interceptor, Component, Factory 또는 Service로 태그된 비즈니스 로직을 획득하고, 획득된 상기 비즈니스 로직을 예시하는 단계
    를 더 포함하는,
    웹 비즈니스 처리 방법.
  12. 제11항에 있어서,
    Controller로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Controller로 태그된 비즈니스 로직 내에서 Request로 태그된 방법을 획득하고, 상기 Request로 태그된 방법을 예시된 상기 비즈니스 로직의 객체와 관련시키는 단계; 및
    Autowired로 태그된 비즈니스 로직에 대하여, 상기 반사 기술을 이용하여, Autowired로 태그된 비즈니스 로직이 종속하는 협력자 클래스를 기록하고, 상기 Autowired로 태그된 비즈니스 로직 사이의 종속 관계를 정리하는 단계
    를 더 포함하는,
    웹 비즈니스 처리 방법.
  13. 제8항에 있어서,
    상기 데이터 모델 및 뷰 이름을 획득하도록 획득된 상기 비즈니스 로직을 작동시키는 단계 전에,
    획득된 상기 비즈니스 로직을 전처리하고, 전처리된 결과가 제1 값을 가질 때, 데이터 모델 및 뷰 이름을 획득하기 위하여 획득된 상기 비즈니스 로직을 작동시키는 단계를 수행하고, 상기 전처리된 결과가 제2 값을 가질 때, 작동 절차를 종료하는 단계
    를 더 포함하는,
    웹 비즈니스 처리 방법.
  14. 제8항에 있어서,
    상기 데이터 모델 및 뷰 이름을 획득하도록 획득된 상기 비즈니스 로직을 작동시키는 단계 후에,
    상기 데이터 모델 및 상기 뷰 이름을 수정하는 단계를 더 포함하는,
    웹 비즈니스 처리 방법.
  15. 제8항에 있어서,
    사전 설정된 템플레이트 언어 페이지를 스캐닝하고, 상기 템플레이트 언어 페이지를 자바 언어 소스 파일로 컴파일하기 위하여 컴파일러를 호출하는 단계;
    상기 자바 언어 소스 파일을 스캐닝하고, 맞춤형 클래스 로더를 활용함으로써 상기 자바 언어 소스 파일을 로딩하여 예시하는 단계로서, 예시된 상기 자바 언어 소스 파일은 뷰 객체인 단계; 및
    상기 뷰 객체의 뷰 이름과 상기 뷰 객체 사이의 대응하는 관계를 캐싱하는 단계
    를 더 포함하는,
    웹 비즈니스 처리 방법.
KR1020147014900A 2011-11-18 2012-06-15 자바 애플리케이션 서버 및 웹 서비스 처리 방법 KR20140089410A (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210091686A (ko) * 2020-01-09 2021-07-22 바이두 온라인 네트웍 테크놀러지 (베이징) 캄파니 리미티드 미니프로그램 실행 방법, 미니프로그램 실행 장치, 전자 기기 및 저장 매체

Families Citing this family (14)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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