KR100791989B1 - OSGi 서비스 플랫폼에서 번들 그룹 종료 기능을제공하는 시스템 및 방법 - Google Patents

OSGi 서비스 플랫폼에서 번들 그룹 종료 기능을제공하는 시스템 및 방법 Download PDF

Info

Publication number
KR100791989B1
KR100791989B1 KR1020060037248A KR20060037248A KR100791989B1 KR 100791989 B1 KR100791989 B1 KR 100791989B1 KR 1020060037248 A KR1020060037248 A KR 1020060037248A KR 20060037248 A KR20060037248 A KR 20060037248A KR 100791989 B1 KR100791989 B1 KR 100791989B1
Authority
KR
South Korea
Prior art keywords
bundle
bundles
computer code
end set
analyzed
Prior art date
Application number
KR1020060037248A
Other languages
English (en)
Other versions
KR20060111868A (ko
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 KR20060111868A publication Critical patent/KR20060111868A/ko
Application granted granted Critical
Publication of KR100791989B1 publication Critical patent/KR100791989B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Packages (AREA)

Abstract

본원에는 확장가능하고 다운로드가능한 서비스 애플리케이션들의 번들(bundle)들의 종료 세트(termination set)를 정의하는 시스템 및 방법이 개시되어 있다. 분석될 각각의 번들에 대하여, 상기 선택된 번들과 패키지를 공유하는 모든 번들들이 위치된다. 또한, 상기 선택된 번들에 대한 스레드들에 종속히는 모든 번들들이 위치된다. 이후에는, 상기 위치된 번들들이 분석될 번들 그룹에 추가되고 아울러 종료될 번들 그룹에 추가된다. 이어서, 상기 종료 세트 내의 번들들이 종료될 수 있는데, 이는 비록 활성(ACTIVE) 상태에 있지 않으며 여전히 자원들을 소비하는 그러한 번들들에 대해서도 완전한 재생의 달성을 허용한다.

Description

OSGi 서비스 플랫폼에서 번들 그룹 종료 기능을 제공하는 시스템 및 방법{System and method for providing bundle group termination in an OSGi service platform}
도 1은 OSGi의 수명주기를 보여주는 도면.
도 2는 본 발명의 구현예에서 사용될 수 있는 이동 전화기의 사시도.
도 3은 도 2의 이동 전화기의 전화기 회로를 개략적으로 보여주는 도면.
도 4는 본 발명의 한 실시예에 따라 종료 세트를 발견하기 위한 알고리즘을 보여주는 플로차트.
도 5는 본 발명의 한 실시예에 따라 무효 참조들을 발견하기 위한 알고리즘을 보여주는 플로차트.
본 발명은 일반적으로 기술하면 OSGi 서비스 플랫폼에 관한 것이다. 더 구체적으로 기술하면, 본 발명은 OSGi 프레임워크에서의 확장가능하고 다운로드가능한 서비스 애플리케이션의 번들들의 종료에 관한 것이다.
"Open Services Gateway Initiative; OSGi"의 약어이며 www.osgi.org에서 논 의되어 있는 OSGi는 상호 조율된 방식으로 서비스들을 배치 및 관리하기 위한 개방형 공동 아키텍처(open, common architecture)이다. OSGi는 번들(bundle)들로서 알려져 있는 확장가능하고 다운로드가능한 서비스 애플리케이션들의 배치를 지원하는 범용 보안 관리 자바-기반 프레임워크를 제공한다. OSGi 순응 장치들은 OSGi 배치 엔티티들을 다운로드 및 설치하고 상기 OSGi 배치 엔티티들이 더 이상 필요하지 않을 경우에 상기 OSGi 배치 엔티티들을 제거할 수 있다. 설치 및 개시된 번들들은 상기 프레임워크의 엄격한 제어 하에서 다른 번들들과 공유될 수 있는 다수의 서비스를 등록할 수 있다.
OSGi는 표준 자바 '가상 머신(virtual machine; VM)'을 통해 동작할 수 있다. 한 자바 애플리케이션이 한 VM을 통해 동작하는 종래의 방법들과는 반대로, 여러 번들이 OSGi에서 동일한 VM을 통해 동시에 동작될 수 있다. OSGi를 사용할 경우에는, 동작하는 자바 애플리케이션들의 개수와 같은 배수로 상기 VM을 로드 및 실행할 필요가 없다. 따라서, 메모리 소비가 대단히 절감된다.
OSGi 번들들은 도 1에 도시되어 있는 잘 정의된 수명주기(lifecycle)를 지닌다. 상기 프레임워크는 클래스 이벤트들 "번들 이벤트(BundleEvent)"을 통해 번들들의 수명주기 변경들을 다른 번들들에 보고한다.
OSGi 런타임의 자원 소비가 계속해서 이루어지지 않게 하기 위해, 번들이 정지될 경우에는 현재의 OSGi R3 사양의 섹션 4.8.7에 규정된 바와 같이 활성화 이후에 할당되었던 자원들 모두를 해제하여야 한다. OSGi R3 사양의 섹션 4.8.7에 의하면, 번들 액티베이터(BundleActivator) 인터페이스에는 상기 프레임워 크에 의해 호출(invoke)되는 'public void stop(BundleContext context) throws Exception" 방법이 정의되어 있다. 이러한 방법은 활성화 이후에 할당된 자원들 중 어느 자원이라도 해제하여야 한다. 정지 번들과 관련된 모든 스레드(thread)들이 즉시 정지되어야 한다.
번들들의 중요한 특징은 번들들이 자바 코드를 다른 번들들과 공유할 수 있다는 것이다. 기술적으로, 이는 번들에 의해 포함되어 있는 자바 패키지들 중 일부를 OSGi 프레임워크에 의해 유지되는 네임스페이스 데이터베이스에 익스포트(export)하고, 다른 번들들이 이러한 패키지들을 임포트하여 이들을 사용할 수 있게 함으로써 달성된다. 상기 익스포트된 패키지들의 가용성(availability)은 상기 번들의 수명주기 스테이지들에 관련이 있지만, 상기 번들이 분해(RESOLVED) 및 활성(ACTIVE) 상태들 사이로 순환하는 동안에 상기 익스포트된 패키지들이 계속해서 사용가능하게 되어야 한다. 상기 번들의 종속성들이 분리될 경우에, 선택된 패키지들이 익스포트되어야 한다. 정지 번들에 의해 익스포트된 패키지들은 계속 다른 번들들에 이용가능하게 된다. 이와 같이 계속된 익스포트가 의미하는 것은 다른 번들들이 정지된 번들로부터 코드를 실행할 수 있다는 것을 의미한다.
OSGi는 또한 "서비스(service)"의 개념을 채용한다. 현재의 OSGi R3 프레임워크 사양에 의하면, OSGi 서비스 플랫폼에 대하여, 번들들이 공유된 서비스 레지스트리로부터 이용가능한 한 세트의 협조 서비스들을 중심으로 번들들이 구축된다. 그러한 OSGi 서비스는 자신의 서비스 인터페이스에 의해 의미론상으로 정의되고 서비스 객체로서 구현된다. 상기 서비스 인터페이스는 가능한 한 적은 구현 세부들에 대하여 특정되어야 한다. 상기 서비스 객체는 번들에 의해 소유되며 번들에 내재한다. 이러한 번들은 서비스의 기능이 상기 프레임워크의 제어 하에서 다른 번들에 이용가능하게 되도록 프레임워크 서비스 레지스트리에 상기 서비스 객체를 등록하여야 한다.
상기 서비스를 소유하는 번들 및 상기 서비스를 사용하는 번들들 간의 종속성들은 상기 프레임워크에 의해 관리된다. 예를 들면, 번들이 정지될 경우에, 그러한 번들에 의해 상기 프레임워크에 등록된 서비스들 모두가 자동으로 등록취소되지 않게 된다. 상기 프레임워크는 서비스들을 서비스들의 기초가 되는 서비스 객체들에 매핑하여 설치된 번들이 필요한 서비스를 설치된 번들이 요구할 수 있게 하는 질의 메커니즘(query mechanism)을 제공한다. 상기 프레임워크는 또한 번들들이 등록, 수정, 또는 등록취소되는 클래스 이벤트들 "서비스 이벤트(ServiceEvent)"를 수신할 수 있도록 이벤트 메커니즘을 제공한다. 또한 여기서 유념할 점은 서비스 이벤트(ServiceEvent)가 등록, 등록취소, 및 서비스 객체들에 대한 속성 변경(property change)들을 보고한다는 것이다. 이러한 종류의 모든 이벤트들은 동시에 배포되어야 한다.
현재 OSGi 사양들에는 정지 번들이 자신의 스레드(thread)들을 정지하고 자신의 자원들을 일소(clean up)하여야 한다고 규정되어 있다. 동시에, OSGi에는 이러한 요건을 실시할 수 있게 하는 어떠한 기반구조도 명시되어 있지 않다. 부당한 번들들 또는 버그를 일으키기 쉬운 번들들은 이러한 요건을 무시할 수 있다. 그 결과로, 단지 프레임워크의 완전 재개시가 이러한 문제를 해결할 수 있다. 불행 하게도, 완전한 재개시는 OSGi 런타임에 의해 제공되는 기능의 가용성을 인터럽트시킨다. 24/7 환경에서 동작하여 중대한 기능을 제공할 것이라고 기대되는 시스템에서는, 그러한 결함이 허용가능하지 않다.
또한 OSGi 사양들에는 비록 번들이 정지될 경우라도 번들의 익스포트된 패키지들이 사용가능하게 되어야 한다고 규정되어 있다. 익스포트된 패키지들의 사용자들 또는 임포터(importer)들은 익스포트 번들들이 정지된 결과로서 일치하지 않는 익스포트된 패키지들에 직면하여선 안 된다. 강제 번들 정지에 대한 OSGi 순응 해결 방안이 이러한 요건들을 보장하여야 한다.
자바 언어의 몇몇 특징에 기인하여, 번들은 자원들을 소비할 수 있으며 비록 상기 번들이 전혀 개시되지 않았더라도 스레드(thread)들을 소유할 수 있다. 이러한 현상은 번들의 익스포트된 패키지들의 사용 때문이다. 분해(RESOLVED) 상태로 남아 있는 번들들은 정지될 수 없는데, 그 이유는 정지 동작이 단지 활성(ACTIVE) 상태로 남아 있는 번들들에 대하여만 정의되기 때문이다. OSGi에는 분해 상태로 남아 있는 번들에게 자신의 자원들을 일소(clean up)하도록 요청하는데 사용될 수 있는 어떠한 설비들도 정의되어 있지 않다.
그러므로, 완전한 운영 시스템 프로세스가 재개시되어야 하는 OSGi 런타임을 촉진하는 자바 VM을 동작시키지 않으면서 강제 자원 재생을 달성할 수 있는 기반구조를 제공하는 것이 바람직하다.
본 발명의 목적은 특정 번들에 의해 소유된 모든 자원들의 재생 및 모든 스 레드들의 종료를 결과적으로 초래하는 강제 동작인 번들 종료 기능을 제공하는 것이다.
본 발명은 특정 번들에 의해 소유된 모든 자원들의 재생 및 모든 스레드들의 종료를 결과적으로 초래하는 강제 동작인 번들 종료 기능의 사용을 포함한다. 번들이 어떤 이유로 해서 종료되어야 할 경우에, 다음과 같은 단계들이 취해진다. 첫째로, 상기 번들의 종료 세트가 정의된다. 종료되도록 선택된 번들에 종속하는 모든 번들들은 종료 세트의 멤버들이다. 상기 종료 세트의 멤버들이 아닌 어떠한 번들들도 상기 종료 세트의 임의의 멤버에 종속하지 않을 수 있다. 둘째로, 단일의 관리 동작으로서, 활성(ACTIVE) 상태에 있는 종료 세트의 멤버 번들들은 정지되고, 관리 동작이 개시되기 전에 상기 멤버들이 활성(ACTIVE) 상태에 있든 아니면 분해(RESOLVED) 상태에 있든 관계없이 상기 종료 세트의 멤버들 모두가 종료된다.
본 발명은 활성(ACTIVE) 상태에 있지 않으며 여전히 자원들을 소비하는 그러한 번들들에 대해서도 조차 완전 자원 재생을 달성한다. 상기 종료 세트에 포함되어 있지 않으며 OSGi 권고들을 참작하는 번들들은 상기 종료 세트의 멤버들의 종료를 통해 손상을 받지 않게 된다.
이하에 언급되는 몇몇 도면에서 동일 요소들이 동일 부호들을 갖는 첨부도면들과 관련지어 고려된 이하 상세한 설명으로부터 본 발명의 이들 및 다른 목적들, 이점들 및 특징들이 본 발명의 동작 방법 및 구성과 함께 자명해질 것이다.
도 2 및 도 3은 본 발명이 구현될 수 있는 한 대표적인 이동 전화기(12)를 보여주는 도면들이다. 그러나, 여기서 이해하여야 할 점은 본 발명이 개인용 컴퓨터들, 개인 휴대 정보 단말기들, 통합 메시징 장치들, 및 다른 전자 장치들을 포함하는 여러 다양한 전자 장치들로 구현될 수 있다는 것이다. 도 2 및 도 3의 이동 전화기(12)는 하우징(30), 액정 디스플레이의 형태를 이루고 있는 디스플레이(32), 키패드(34), 마이크로폰(36), 이어피스(ear-piece; 38), 배터리(40), 적외선 포트(42), 안테나(44), 본 발명의 한 실시예에 따른 UICC의 형태를 이루고 있는 스마트 카드(46), 카드 리더(48), 라디오 인터페이스 회로(52), 코덱(CODEC) 회로(54), 제어기(56) 및 메모리(58)를 포함한다. 개별 회로들 및 요소들은 당 업계에서 널리 알려져 있는 형태, 예를 들면 노키아 범주의 이동 전화기들의 모든 개별 회로들 및 요소들이다.
본 발명은 특정 번들에 의하여 소유된 모든 자원들의 재생 및 모든 스레드들의 종료를 결과적으로 초래하는 강제 동작인 번들 종료의 사용을 포함한다. 번들이 어떠한 이유로 해서 종료되어야 할 경우에, 이러한 동작을 완료하기 위해 다수의 단계가 취해진다. 첫째로, 상기 번들의 종료 세트가 식별된다. 종료 세트는 한 쌍의 규칙들에 따르게 하는 가장 작은 번들 세트이다. 제1 규칙은 종료되도록 선택된 번들들에 종속하는 모든 번들들이 상기 종료 세트의 멤버들이다는 것이다. 제2 규칙에 의하면, 상기 종료 세트의 멤버가 아닌 어떠한 번들들이라도 상기 종료 세트의 임의의 멤버에 종속하지 않는다. 둘째로, 단일 관리 동작으로서, 활성(ACTIVE) 상태에 있는 종료 세트의 멤버 번들들은 종료되며, 관리 동작이 개시되기 전에 상기 멤버들이 활성(ACTIVE)에 있든 아니면 분해(RESOLVED) 상태에 있든 관계없이 종 료 세트의 모든 멤버들이 종료된다.
다수의 종속성 유형은 상기 종료 세트를 발견하는데 고려되어야 한다. 패키지 공유 메커니즘에 의해 야기되는 종속성들이 고려되어야 한다. 스레드 종료와 관련해서 생기는 종속성들이 또한 고려되어야 한다. 한 번들이 다른 한 번들의 익스포트된 패키지의 코드를 실행하는 동안 상기 한 번들의 스레드가 종료될 경우에는 그러한 패키지들을 일치하지 않는 상태로 남아 있게 할 수 있다.
본 발명은 몇몇 기능들이 논의 중인 시스템에서 이용가능하게 된다고 가정한 것이다. 예를 들면, 모든 특정 자원에 대하여 어느 번들이 자신의 소유자인지를 결정할 수 있다고 가정하기로 한다. 또한, 작동중인 메커니즘이 특정 번들의 스레드들을 종료하기 위해 존재한다고 가정하기로 한다. 그 외에도, 스레드들의 즉시 종료가 가상 머신의 상태 및 상기 가상 머신을 동작시키는 모든 운영 시스템 프로세스의 원시 자원들의 상태에 손상을 주지 않는다고 가정하기로 한다. 또한, 작동중인 메커니즘이 (상기 원시 자원들을 포함하는) 번들들에 의해 소유되는 자원들의 완전 재생에 이용가능하게 된다고 가정하기로 한다.
종속성 유형들을 고려하면, 종속성들의 제1 카테고리는 패키지 공유의 메커니즘을 기반으로 한다. 번들이 다른 한 번들의 패키지들을 임포트할 경우에, 임포터 번들은 분명히 익스포터에 대한 종속성을 지닌다. 심지어는 상기 익스포터의 코드로부터 실증이 되는 객체들을 지닐 필요가 없는데, 그 이유는 (만일 존재한다면) 익스포트된 패키지들의 스태틱 필드(static field)들에 의해 참조된 객체들이 그들에 대한 어떠한 직접적인 참조도 유지하지 않으면서 조작될 수 있기 때문이다. 임 포터 번들로부터 익스포터 번들로 향하게 되는 이러한 유형의 종속성은 본원 명세서에서 패키지 종속성이라고 언급된다.
종속성들의 제2 카테고리는 스레드 종료의 결과에 의해 형성된다. 이러한 종속성들의 제2 카테고리를 정의하기 전에, 스레드 종료가 안전한 번들들에 대한 한도가 설정되어야 한다. 스레드 종료가 안전한 번들들 및 스레드 종료가 불안전한 번들들과 같은 2가지 유형의 번들들이 패키지들을 공유한다. 제1 유형은 준비되어 있으며 즉시 스레드 종료에 저항하는 번들들을 포함한다. 상기 익스포트된 패키지들의 코드를 실행하는 스레드의 즉시 종료가 일치하지 않는 상태로 상기 익스포트된 패키지를 소유하는 번들의 자원들을 남겨 두지 않는다는 것이 보장된다. 견고한 OSGi 시스템에서, 중대한 서비스들(OSGi 사양에 의해 정의된 표준 서비스들)을 제공하거나 중요한 API들의 패키지들을 공유하는 모든 번들들이 즉시 스레드 종료에 저항하여야 한다. 원시 자원들을 핸들링하는 (예컨대, 원시 콜(native call)들을 사용하는) 코드를 배치하는 번들들이 또한 이러한 카테고리에 속해야 하는데, 그 이유는 다른 경우에 만일 스레드가 즉시 종료된다면 이러한 것이 원시 자원들을 일치하지 않는 상태로 남겨 둘 수 있기 때문이다. 이는 모든 운영 시스템 프로세스에 손상을 줄 수 있다.
코드 패키지들을 공유하는 제2 유형의 번들들은 종료가 불안정한 번들들이라고 언급되는 즉시 스레드 종료에 저항하지 않는 번들들이다. 이러한 번들들의 상태는 상기 번들들의 코드를 수행하는 스레드가 즉시 종료될 경우에 정의되지 않는다.
이하는 2가지 유형의 번들들의 관련을 보여주는 예이다. 번들 X가 종료되는 경우에, 번들 X의 스레드들 모두가 종료된다. X는 즉시 스레드 종료에 저항하지 않는, 본원 명세서에서 Y라고 언급되는 번들에 의해 익스포트되는 몇몇 패키지들을 임포트한다. 이러한 경우에, Y는 잠재적으로 즉시 스레드 종료의 결과에 대한 위험이 있는데, 그 이유는 X의 스레드들이 실제로 Y의 익스포트된 코드를 실행할 수 있기 때문이다. 이러한 위험의 더 정확한 인식은 번들(번들의 임의의 스레드)이 심지어 익스포트된 번들의 코드를 실행했는지를 로그(log)하는 시스템 기능을 기반으로 할 수 있다. 이러한 종속성의 더 정확한 인식은 종료될 스레드가 특정 번들의 익스포트된 패키지들의 방법을 실제로 실행하는지를 결정하는 콜 스택(call stack) 분석을 기반으로 할 수 있다.
위에서 언급된 종속성 유형에 있어서, 제2 유형의 번들들이 이용할 수 있게 되는 익스포터 번들로부터 임포터 번들로 향하게 되는 것이 스레드 종속성이라고 언급된다. 이러한 종속성을 정확한 형태이거나 간단하지만 정확하지 않은 형태로 인식하는지에 대하여는 시스템 구현에 달려있다.
도 4에는 종료 세트를 발견하는데 사용되는 본 발명의 알고리즘이 도시되어 있다. 상기 알고리즘은 2가지 세트들, 즉 분석될 필요가 있는 종속성들을 갖는 번들 세트, 및 종료 세트를 구축함으로써 동작한다. 전자 세트로부터의 번들들은 분석되고 필요할 경우에 후자 세트로 이동된다. 상기 알고리즘이 완료되었을 때, 후자 세트는 종료 세트를 포함한다. 단계(400)에서, 초기에 종료되도록 표시된 번들이 선택된다. 단계(410)에서, 상기 선택된 번들은 초기 멤버로서 분석되도록 번들 세트에 추가된다. 단계(420)에서, 선택된 번들은 초기 멤버로서 상기 종료 세트에 추가된다. 이어서, 단계(430)에서 여전히 분석되어야 하는 번들 세트에 번들들이 존재하는지가 결정된다. 여전히 분석될 필요가 있는 번들들이 존재할 경우에, 단계(440)에서, 번들이 분석되도록 남아 있는 번들 세트로부터 취해진다. 단계(450)에서, 모든 패키지 종속 번들들이 발견된다. 단계(460)에서, 모든 스레드 종속 번들들이 발견된다. 단계(470)에서, 발견된 번들들이 분석될 번들 세트에 추가된다. 단계(480)에서, 발견된 번들들이 상기 종료 세트에 추가된다. 단계(490)에서, 방금 분석된 번들이 분석되도록 남아 있는 번들 세트로부터 제거되고, 프로세스가 단계(430)로 복귀된다. 이어서, 모든 번들들이 분석된 경우에, 종료 세트를 발견하기 위한 프로세스가 완료되는데, 이는 단계(495)에 나타나 있다.
강제 자원 재생 동안 생성되는 무효 객체 참조의 문제가 또한 존재한다. 몇몇 경우에서는, 비록 번들들이 임포트하지 않을 경우라도 그리고 참조된 객체들을 소유하는 번들에 의해 익스포트된 코드에 종속하여 다른 한 번들의 객체들에 대한 참조들을 유지할 수 있다. 이러한 경우에, 상기 참조들을 유지하는 번들은 종료 세트의 멤버가 아닐 수 있다. 예를 들면, 번들 X가 종료 세트의 멤버일 수 있으며, 번들 Y는 멤버가 아니다. X는 Y에 의해 익스포트된 패키지들을 임포트한다. Y의 익스포트된 패키지들에 의해 제공된 메소드 콜(method call)들을 통해, X에 의해 소유된 객체들에 대한 Y에 의해 소유된 객체들 내에 직접적인 참조들을 저장하는 것이 가능하다. 다른 한 예에서는, 서비스 객체들을 통한 직접적인 참조 기반 번들 간 통신이 사용될 수 있다.
OSGi 프레임워크 사양의 요건들에 의하면, 상기 프레임워크는 서비스가 등록취소되거나 번들이 정지될 경우에 이벤트들을 생성한다. 동작이 양호한 번들들이 이러한 이벤트들에 반응하고 다른 번들들에 의해 소유되는 객체들에 대한 참조들을 제거하여야 한다. 몇몇 상황들은 관계없는 번들들의 객체들에 대한 참조들을 유지하는 번들이 제거되지 않을 경우에나 자신과 관계없는 참조들을 제거할 수 없을 경우에 존재할 수 있다. 예를 들면, 관계없는 참조들을 조작하는 코드는 임포트된 패키지에 내재할 수 있으며(그리고, 익스포터 번들이 종료 세트의 멤버가 아닌데, 그 이유는 다른 경우에 이러한 것이 관계없는 참조를 소유하는 번들도 또한 종료 세트의 멤버이여야 한다는 것을 의미하기 때문이며), 상기 임포트된 패키지의 코드는 잘 기록되지 않을 수 있다.
위에서 언급된 이러한 문제는 본 발명의 한 실시예에 따라 다음과 같이 해결된다. 알고리즘은 종료 세트의 멤버가 아닌 번들들의 객체들로부터 종료 세트의 멤버들의 객체들로 향하는 모든 참조들을 발견한다. 이러한 참조들 모두는 무효 참조들을 사용하려고 하는 실행 스레드가 런타임 예외를 수신하게 함으로써 가상 머신의 도움으로 무효화된다. 상기 예외는 공개적이며, 관계없는 참조들을 사용한다는 의심을 받는 코드는 중대한 부분을 트라이-캐치(try-catch) 블록 내에 삽입함으로써 그러한 상황에 대비할 수 있다. OSGi 또는 표준 자바 내에 그러한 메커니즘이 전혀 존재하지 않기 때문에, 자원 관리 가능 프레임워크를 통해 동작되도록 준비되어 있지 않은 번들들은 예외를 핸들링할 수 없다. 종료 세트 내의 번들들을 종료한 이후에 언제든지 생길 수 있는 무효 참조의 사용이 이루어질 경우에는, 상기 번들이 또한 본 발명에 따라 종료된다.
본 발명의 한 실시예에서는, 관계없는 참조들이 추가 종속성 유형으로서 고려될 수 있다. 이러한 상황에서는, 번들이 종료 세트에 추가되며, 또한 만일 상기 번들이 상기 종료 세트에 의해 포함되는 번들에 대한 참조를 유지한다면 분석되어야 하는 번들 세트에 추가된다.
도 5는 본 발명의 한 실시예에 따라 자원 재생으로 인한 무효 참조들을 발견하는데 사용되는 알고리즘의 동작을 보여주는 플로차트이다. 상기 알고리즘은 상기 종료 세트의 멤버들인 활성 번들들이 정지되는 것을 시그널링하는 이벤트를 모든 번들들이 수신한 후에 수행되는 것이 바람직하다. 도 5의 단계(500)에서, 분석되지 않은 참조가 취해진다. 단계(510)에서, 소스의 소유자 번들, 및 참조의 타깃 객체의 소유자 번들이 발견된다. 단계(520)에서, 상기 참조가 번들 간 참조인지, 또는 참조의 타깃 객체 및 자원이 동일한 번들에 의해 소유되는 지가 결정된다. 상기 참조가 번들 간 참조일 경우에, 단계(530)에서, 타깃 객체의 소유자 번들이 종료 세트에 내재하는지가 결정된다. 상기 소유자 번들이 종료 세트에 내재하지 않을 경우에, 상기 참조가 단계(540)에서 "분석됨(analyzed)"으로서 표시된다. 상기 참조는 또한 소스 및 타깃 참조가 동일한 번들에 의해 소유될 경우에 "분석됨"으로서 표시된다. 상기 타깃 객체의 소유자 번들이 종료 세트에 내재할 경우에, 단계(550)에서는 상기 참조의 소스 객체의 소유자 번들이 종료 세트에 내재하는지가 결정된다. 상기 참조의 소스 객체의 소유자 번들이 종료 세트에 내재할 경우에, 상기 참조는 "분석됨"으로서 표시된다. 상기 참조의 소스 객체의 소유자 번들이 종료 세트에 내재하지 않을 경우에, 단계(560)에서 상기 참조가 무효 참조로서 표시되는데, 이 다 음에는 "분석됨"으로서 표시된 참조가 이어진다. 상기 참조가 "분석됨"으로서 표시된 후에는, 단계(570)에서 모든 참조들이 분석되었는지가 결정된다. 모든 참조들이 분석된 경우에는, 프로세스가 완료되며, 모든 참조들이 분석되지 않은 경우에는, 여전히 분석되어야 하는 참조에 대해 프로세스가 재개시된다.
상기 시스템은 본 발명의 한 실시예에서 종료 프로세스를 사용자에게 통지할 수 있다. 특정 번들에 대한 종료 세트의 멤버들에 대한 정보는 진보적인 사용자에게 유익할 수 있으며 (예컨대, 상기 종료 세트의 멤버 번들들을 설치해제하도록) 부가적인 동작들을 취하기 위한 "힌트들(hints)"을 제공할 수 있다.
본 발명은 한 실시예에서 네트워크 환경에서 컴퓨터들에 의해 실행되는 프로그램 코드와 같은 컴퓨터 실행가능 명령어들을 포함하는 프로그램 생성물에 의해 구현될 수 있는 방법의 단계들의 일반적인 문맥에서 언급될 수 있다.
일반적으로, 프로그램 모듈들은 특정 태스크들을 수행하거나 특정 추상 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 데이터 구조 등등을 포함한다. 컴퓨터 실행가능 명령어들, 관련 데이터 구조들, 및 프로그램 모듈들은 본원 명세서에서 개시된 방법들의 단계들을 실행하기 위한 프로그램 코드의 예들을 나타낸다. 그러한 실행가능 명령어들 또는 관련 데이터 구조들의 특정 시퀀스는 그러한 단계들에서 언급된 기능들을 구현하기 위한 대응하는 동작들의 예들을 나타낸다.
본 발명의 소프트웨어 구현예들은 여러 데이터 베이스 탐색 단계들, 상관 단계들, 비교 단계들 및 결정 단계들을 달성하도록 규칙 기반 논리 및 다른 논리를 갖는 표준 프로그래밍 기법들을 통해 달성될 수 있다. 또한 여기서 유념해야 할 점은 본원 명세서 및 특허청구범위에서 사용되는 "컴포넌트" 및 "모듈"과 같은 단어들이 소프트웨어의 하나 이상의 라인들을 사용하는 구현예들, 및/또는 하드웨어 구현예들, 및/또는 수동 입력들을 수신하기 위한 기기를 포함하도록 의도되어 있다는 것이다.
위에서 언급된 본 발명의 실시예들에 대한 설명은 예시 및 설명을 위해 제공된 것이다. 개시된 정확한 형태로 본 발명이 총망라되거나 한정되도록 의도된 것이 아니며, 위에 언급된 교시들에 비추어 볼 때 변형들 및 수정들이 가능하며 본 발명의 실시로부터 그러한 변형들 및 수정들이 획득될 수 있다. 당 업자가 본 발명을 여러 실시예로 채용하거나 고려된 특정 용도에 적합한 여러 변형예와 본 발명을 채용할 수 있게 하도록 본 발명의 원리들 및 본 발명의 실제 응용을 설명하기 위해 상기 실시예들이 선택 및 설명되었다.
본 발명은 특정 번들에 의해 소유된 모든 자원들의 재생 및 모든 스레드들의 종료를 결과적으로 초래하는 강제 동작인 번들 종료 기능을 제공함으로써, 완전한 운영 시스템 프로세스가 재시동되어야 하는 OSGi 런타임을 촉진하는 자바 VM을 동작시키지 않으면서 강제 자원 재생이 가능한 기반구조를 제공한다.

Claims (18)

  1. OSGi(Open Services Gateway Initiative) 프레임워크에서 번들들을 종료하는 방법에 있어서,
    번들이 종료를 위해 선택될 경우에, 종료 세트를 식별하는 단계로서, 상기 선택된 번들에 종속하는 번들들이 상기 종료 세트에 포함되어 있으며 상기 종료 세트의 멤버들이 아닌 번들들이 상기 종료 세트의 어떠한 멤버에도 종속하지 않는 단계;
    활성(ACTIVE) 상태에 있는 종료 세트의 멤버 번들들을 정지하는 단계; 및
    관리 동작의 개시 이전에 상기 멤버들이 활성(ACTIVE) 상태에 있든 아니면 분해(RESOLVED) 상태에 있든 관계없이 상기 종료 세트의 멤버들을 종료하는 단계를 포함하는 것을 특징으로 하는 OSGi 프레임워크에서 번들들을 종료하는 방법.
  2. 제1항에 있어서,
    상기 종료 세트의 식별은,
    반복 프로세스를 수행하는 단계로서,
    분석될 번들 그룹으로부터 한 번들을 선택하는 단계,
    상기 선택된 번들에 패키지 종속하는 모든 번들들을 위치시키는 단계,
    상기 선택된 번들에 스레드 종속하는 모든 번들들을 위치시키는 단계,
    분석될 번들 그룹에 상기 위치된 번들들을 추가하는 단계,
    상기 종료 세트에 상기 위치된 번들들을 추가하는 단계, 및
    분석될 번들 그룹으로부터 상기 선택된 번들을 제거하는 단계를 포함하는 단계; 및
    분석될 번들 그룹에 남아 있는 번들들이 전혀 존재하지 않을 때까지 상기 반복 프로세스를 반복하는 단계를 포함하는 것을 특징으로 하는 OSGi 프레임워크에서 번들들을 종료하는 방법.
  3. 제2항에 있어서,
    상기 방법은,
    상기 반복 프로세스를 개시하기 전에, 종료되도록 초기에 표시된 번들을 선택하는 단계;
    상기 초기에 표시된 번들을 추가함으로써 분석될 번들 그룹을 생성하는 단계; 및
    상기 초기에 표시된 번들을 추가함으로써 상기 종료 세트를 생성하는 단계를 더 포함하는 것을 특징으로 하는 OSGi 프레임워크에서 번들들을 종료하는 방법.
  4. 제1항에 있어서,
    상기 방법은,
    상기 종료 세트의 번들들을 사용자에게 통지하는 단계를 더 포함하는 것을 특징으로 하는 OSGi 프레임워크에서 번들들을 종료하는 방법.
  5. 제1항에 있어서, 한 특정 번들은 상기 특정 번들이 다른 한 번들에 의해 익스포트된 패키지들을 임포트할 경우에 상기 다른 한 번들에 패키지 종속하는 것을 특징으로 하는 OSGi 프레임워크에서 번들들을 종료하는 방법.
  6. 제1항에 있어서, 한 특정 번들은 스레드들을 지니는 제2 번들의 스레드들의 즉시 종료가 상기 특정 번들의 자원들을 일치하지 않는 상태로 남게 할 경우에 상기 제2 번들에 스레드 종속하는 것을 특징으로 하는 OSGi 프레임워크에서 번들들을 종료하는 방법.
  7. OSGi(Open Services Gateway Initiative) 프레임워크에서 번들들을 종료하는 컴퓨터 프로그램 생성물을 포함하는 컴퓨터 판독가능 저장 매체에 있어서,
    상기 컴퓨터 프로그램 생성물은,
    번들이 종료를 위해 선택될 경우에, 종료 세트를 식별하는 컴퓨터 코드로서, 상기 선택된 번들에 종속하는 번들들이 상기 종료 세트에 포함되어 있으며 상기 종료 세트의 멤버들이 아닌 번들들이 상기 종료 세트의 어떠한 멤버에도 종속하지 않는 컴퓨터 코드;
    활성(ACTIVE) 상태에 있는 종료 세트의 멤버 번들들을 정지하는 컴퓨터 코드; 및
    관리 동작의 개시 이전에 상기 멤버들이 활성(ACTIVE) 상태에 있든 아니면 분해(RESOLVED) 상태에 있든 관계없이 상기 종료 세트의 멤버들을 종료하는 컴퓨터 코드를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  8. 제7항에 있어서,
    상기 종료 세트의 식별은,
    반복 프로세스를 수행하는 컴퓨터 코드로서,
    분석될 번들 그룹으로부터 한 번들을 선택하는 컴퓨터 코드,
    상기 선택된 번들에 패키지 종속하는 모든 번들들을 위치시키는 컴퓨터 코드,
    상기 선택된 번들에 스레드 종속하는 모든 번들들을 위치시키는 컴퓨터 코드,
    분석될 번들 그룹에 상기 위치된 번들들을 추가하는 컴퓨터 코드,
    상기 종료 세트에 상기 위치된 번들들을 추가하는 컴퓨터 코드, 및
    분석될 번들 그룹으로부터 상기 선택된 번들을 제거하는 컴퓨터 코드를 포함하는 컴퓨터 코드; 및
    분석될 번들 그룹에 남아 있는 번들들이 전혀 존재하지 않을 때까지 상기 반복 프로세스를 반복하는 컴퓨터 코드를 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서,
    상기 컴퓨터 프로그램 생성물은,
    상기 반복 프로세스를 개시하기 전에, 종료되도록 초기에 표시된 번들을 선택하는 컴퓨터 코드;
    상기 초기에 표시된 번들을 추가함으로써 분석될 번들 그룹을 생성하는 컴퓨터 코드; 및
    상기 초기에 표시된 번들을 추가함으로써 상기 종료 세트를 생성하는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  10. 제7항에 있어서,
    상기 컴퓨터 프로그램 생성물은,
    상기 종료 세트의 번들들을 사용자에게 통지하는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  11. 제7항에 있어서, 한 특정 번들은 상기 특정 번들이 다른 한 번들에 의해 익스포트된 패키지들을 임포트할 경우에 상기 다른 한 번들에 패키지 종속하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  12. 제7항에 있어서, 한 특정 번들은 스레드들을 지니는 제2 번들의 스레드들의 즉시 종료가 상기 특정 번들의 자원들을 일치하지 않는 상태로 남게 할 경우에 상기 제2 번들에 스레드 종속하는 것을 특징으로 하는 컴퓨터 판독가능 저장 매체.
  13. 전자 장치에 있어서,
    프로세서; 및
    상기 프로세서에 동작가능하게 접속되며, OSGi(Open Services Gateway Initiative) 프레임워크에서 번들들을 종료하는 컴퓨터 프로그램 생성물을 포함하는 메모리 유닛으로서,
    번들이 종료를 위해 선택될 경우에, 종료 세트를 식별하는 컴퓨터 코드로서, 상기 선택된 번들에 종속하는 번들들이 상기 종료 세트에 포함되어 있으며 상기 종료 세트의 멤버들이 아닌 번들들이 상기 종료 세트의 어떠한 멤버에도 종속하지 않는 컴퓨터 코드;
    활성(ACTIVE) 상태에 있는 종료 세트의 멤버 번들들을 정지하는 컴퓨터 코드; 및
    관리 동작의 개시 이전에 상기 멤버들이 활성(ACTIVE) 상태에 있든 아니면 분해(RESOLVED) 상태에 있든 관계없이 상기 종료 세트의 멤버들을 종료하는 컴퓨터 코드를 포함하는 메모리 유닛을 포함하는 것을 특징으로 하는 전자 장치.
  14. 제13항에 있어서,
    상기 종료 세트의 식별은,
    반복 프로세스를 수행하는 컴퓨터 코드로서,
    분석될 번들 그룹으로부터 한 번들을 선택하는 컴퓨터 코드,
    상기 선택된 번들에 패키지 종속하는 모든 번들들을 위치시키는 컴퓨터 코드,
    상기 선택된 번들에 스레드 종속하는 모든 번들들을 위치시키는 컴퓨터 코드,
    분석될 번들 그룹에 상기 위치된 번들들을 추가하는 컴퓨터 코드,
    상기 종료 세트에 상기 위치된 번들들을 추가하는 컴퓨터 코드, 및
    분석될 번들 그룹으로부터 상기 선택된 번들을 제거하는 컴퓨터 코드를 포함하는 컴퓨터 코드; 및
    분석될 번들 그룹에 남아 있는 번들들이 전혀 존재하지 않을 때까지 상기 반복 프로세스를 반복하는 컴퓨터 코드를 포함하는 것을 특징으로 하는 전자 장치.
  15. 제14항에 있어서,
    상기 메모리 유닛은,
    상기 반복 프로세스를 개시하기 전에, 종료되도록 초기에 표시된 번들을 선택하는 컴퓨터 코드;
    상기 초기에 표시된 번들을 추가함으로써 분석될 번들 그룹을 생성하는 컴퓨터 코드; 및
    상기 초기에 표시된 번들을 추가함으로써 상기 종료 세트를 생성하는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 전자 장치.
  16. 제13항에 있어서, 한 특정 번들은 상기 특정 번들이 다른 한 번들에 의해 익스포트된 패키지들을 임포트할 경우에 상기 다른 한 번들에 패키지 종속하는 것을 특징으로 하는 전자 장치.
  17. 제13항에 있어서, 한 특정 번들은 스레드들을 지니는 제2 번들의 스레드의 즉시 종료가 상기 특정 번들의 자원을 일치하지 않는 상태로 남게 할 경우에 상기 제2 번들에 스레드 종속하는 것을 특징으로 하는 전자 장치.
  18. 제13항에 있어서, 상기 메모리 유닛은 상기 종료 세트의 번들들을 사용자에게 통지하는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 전자 장치.
KR1020060037248A 2005-04-25 2006-04-25 OSGi 서비스 플랫폼에서 번들 그룹 종료 기능을제공하는 시스템 및 방법 KR100791989B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/113,605 2005-04-25
US11/113,605 US20060252406A1 (en) 2005-04-25 2005-04-25 System and method for providing bundle group termination in an OSGi service platform

Publications (2)

Publication Number Publication Date
KR20060111868A KR20060111868A (ko) 2006-10-30
KR100791989B1 true KR100791989B1 (ko) 2008-01-04

Family

ID=37195242

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060037248A KR100791989B1 (ko) 2005-04-25 2006-04-25 OSGi 서비스 플랫폼에서 번들 그룹 종료 기능을제공하는 시스템 및 방법

Country Status (5)

Country Link
US (1) US20060252406A1 (ko)
EP (1) EP1880280A4 (ko)
KR (1) KR100791989B1 (ko)
CN (1) CN1855057A (ko)
WO (1) WO2006114677A2 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711914B2 (en) * 2005-06-28 2010-05-04 Hewlett-Packard Development Company, L.P. Debugging using virtual watchpoints
WO2007066843A1 (en) * 2005-12-08 2007-06-14 Electronics And Telecommunications Research Institute Osgi-based dynamic service management method for context-aware systems
KR100833494B1 (ko) * 2006-09-14 2008-05-29 한국전자통신연구원 임베디드 단말의 OSGi 미들웨어 환경에서 이원화된애플리케이션 관리를 통한 애플리케이션 경량화를 위한장치 및 그 방법
KR100822740B1 (ko) 2006-12-13 2008-04-17 제일모직주식회사 내스크래치 난연성 열가소성 수지 조성물
WO2009084911A1 (en) * 2007-12-31 2009-07-09 Samsung Electronics Co., Ltd. Method and system for sharing packages in a framework
CN101494657B (zh) * 2008-01-24 2012-05-23 纬创资通股份有限公司 自动排程控制的方法与系统
CN102053860B (zh) * 2009-10-30 2013-10-16 中国人民解放军国防科学技术大学 基于CORBA的OSGi分布式扩展系统及方法
TW201142709A (en) 2009-12-11 2011-12-01 Ibm A method, system and computer program for deciding whether to install a first application within one of a plurality of candiate environments
CN102316163B (zh) * 2011-09-07 2014-01-15 山东中创软件工程股份有限公司 一种实现Web容器扩展的方法及实现Web容器扩展的装置
US9389929B1 (en) 2015-03-24 2016-07-12 International Business Machines Corporation Granular event management for service platforms

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003296231A (ja) 2002-03-29 2003-10-17 Seiko Epson Corp サービス提供システム、サービス提供側設備、バンドル管理端末、サービス提供端末、端末用プログラム及びバンドルのデータ構造、並びにサービス提供方法及びバンドルの生成方法
EP1394986A1 (en) 2002-09-02 2004-03-03 Sony International (Europe) GmbH Service gateway framework with expanded audio/video functionality
KR20040062268A (ko) * 2003-01-02 2004-07-07 삼성전자주식회사 애플리케이션 관리 시스템 및 방법
JP2004318459A (ja) 2003-04-16 2004-11-11 Alpine Electronics Inc 仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法、及び、コンピュータプログラム
KR20050055532A (ko) * 2003-12-08 2005-06-13 삼성전자주식회사 네트워크 상에서 서비스를 공유하기 위한 장치 및 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127526B1 (en) * 2000-03-20 2006-10-24 Nortel Networks Limited Method and apparatus for dynamically loading and managing software services on a network device
DE60237297D1 (de) * 2001-10-12 2010-09-23 Panasonic Corp Effiziente dienstverwaltung in haus-gateways
US7010661B2 (en) * 2002-02-13 2006-03-07 Matsushita Electric Industrial Co., Ltd. Efficient service management in home gateways
US20030191823A1 (en) * 2002-04-03 2003-10-09 Aplion Networks, Inc. System and method for providing customizable device capabilities to network equipment in a non-service affecting manner
US20040179537A1 (en) * 2003-03-11 2004-09-16 Motorola, Inc. Method and apparatus providing a mobile server function in a wireless communications device
US20040194059A1 (en) * 2003-03-27 2004-09-30 International Business Machines Corporation Method to deploy software using an open service gateway initiative (OSGi) framework
US7617324B2 (en) * 2003-06-20 2009-11-10 Sun Microsystems, Inc Protocol method for provisioning services
US7305230B2 (en) * 2003-07-01 2007-12-04 Nokia Corporation System, apparatus, and method for providing a mobile server
US9176719B2 (en) * 2004-02-26 2015-11-03 International Business Machines Corporation Resolving prerequisites for a client device in an open service gateway initiative (OSGI) framework
US20050223101A1 (en) * 2004-03-22 2005-10-06 International Business Machines Corporation Computer-implemented method, system and program product for resolving prerequisites for native applications utilizing an open service gateway initiative ( OSGi) framework
JP2006065462A (ja) * 2004-08-25 2006-03-09 Canon Inc ソフトウェア・システム、ソフトウェア停止方法、プログラム、及び、記憶媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003296231A (ja) 2002-03-29 2003-10-17 Seiko Epson Corp サービス提供システム、サービス提供側設備、バンドル管理端末、サービス提供端末、端末用プログラム及びバンドルのデータ構造、並びにサービス提供方法及びバンドルの生成方法
EP1394986A1 (en) 2002-09-02 2004-03-03 Sony International (Europe) GmbH Service gateway framework with expanded audio/video functionality
KR20040062268A (ko) * 2003-01-02 2004-07-07 삼성전자주식회사 애플리케이션 관리 시스템 및 방법
JP2004318459A (ja) 2003-04-16 2004-11-11 Alpine Electronics Inc 仮想システムにおけるネイティブアプリケーションのライフタイムマネージメント方法、及び、コンピュータプログラム
KR20050055532A (ko) * 2003-12-08 2005-06-13 삼성전자주식회사 네트워크 상에서 서비스를 공유하기 위한 장치 및 방법

Also Published As

Publication number Publication date
KR20060111868A (ko) 2006-10-30
EP1880280A4 (en) 2010-08-18
US20060252406A1 (en) 2006-11-09
CN1855057A (zh) 2006-11-01
EP1880280A2 (en) 2008-01-23
WO2006114677A8 (en) 2007-01-11
WO2006114677A2 (en) 2006-11-02

Similar Documents

Publication Publication Date Title
KR100791989B1 (ko) OSGi 서비스 플랫폼에서 번들 그룹 종료 기능을제공하는 시스템 및 방법
US8141059B2 (en) Method and system for avoidance of software conflict
KR100270916B1 (ko) 망 관리 시스템 및 클래스 동적 추가 방법
US6871223B2 (en) System and method for agent reporting in to server
US7984419B2 (en) System and method for separating code sharing and active applications in an OSGi service platform
CN111897570A (zh) 一种基于Maven插件的多依赖项文件提取方法及装置
CN110308999B (zh) 一种应用间动态共享依赖包的方法、存储介质及移动终端
CN112965794B (zh) 算法调用方法、电子设备及存储介质
WO2014035737A1 (en) Obtaining metadata set by imperative statement
CN112114896A (zh) 一种插件框架及业务功能扩展的方法
CN111679852A (zh) 一种冲突依赖库的检测方法及装置
CN111443919A (zh) Dsp多核处理器上sca核心框架的实现方法
WO2021097683A1 (zh) 安卓系统启动的方法、装置、设备及存储介质
CN116700768B (zh) 一种应用的处理方法及相关装置
EP2885712A1 (en) Imperative attribution for elements in managed runtimes
CN111352631A (zh) 一种接口兼容性检测方法及装置
CN111158777A (zh) 组件调用方法、装置及计算机可读存储介质
CN110955415A (zh) 一种投影多平台服务适配的方法
US11669316B2 (en) Web-based customer service via single-class rebuild
CN113805859B (zh) 一种智慧屏中间件设计的方法、系统及介质
CN109254856A (zh) 智能pos服务端提供接口给客户端的方法
CN112130900B (zh) 一种bmc的用户信息管理方法、系统、设备以及介质
Danmin et al. A formal specification in B of an operating system
US20030079048A1 (en) Basic architecture for software environment of radio terminal and method of handling events in the same
CN113342376A (zh) 一种针对物联网设备的操作系统进行升级的方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101208

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee