CN101073061A - 用于支持访问活动对象的方法和系统 - Google Patents

用于支持访问活动对象的方法和系统 Download PDF

Info

Publication number
CN101073061A
CN101073061A CNA2005800419620A CN200580041962A CN101073061A CN 101073061 A CN101073061 A CN 101073061A CN A2005800419620 A CNA2005800419620 A CN A2005800419620A CN 200580041962 A CN200580041962 A CN 200580041962A CN 101073061 A CN101073061 A CN 101073061A
Authority
CN
China
Prior art keywords
request
thread
computing platform
moving object
scheduler program
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CNA2005800419620A
Other languages
English (en)
Inventor
S·雷曼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN101073061A publication Critical patent/CN101073061A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

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

Abstract

提供一种方法和系统用来允许JavaTM应用程序通过JavaTM本地接口(JNI)利用SymbianTM平台上的活动对象。在SymbianTM下启动活动的调度程序,并且在第一次调用以后将它转换成独立的线程。尽管该调度程序在重新启动的时候仍然会发生阻塞,但是由于它是在一个独立的线程中执行的,因此,控制能够返回到进行调用的JavaTM应用程序来允许使用其它的活动对象。

Description

用于支持访问活动对象的方法和系统
本发明涉及如何在计算平台之间访问活动对象,特别涉及但不限于一种方法,用于通过JavaTM本地接口(JNI)为JavaTM应用程序提供到SymbianTM操作系统环境中活动对象的访问,从而允许控制返回到进行调用的JavaTM应用程序。
SymbianTM是智能电话的全球工业标准OS(操作系统)。在图1中原理性地说明一个智能电话1实例。智能电话是具有高级功能的移动电话,除了常见的通信功能以外,它通常还支持电子邮件和高级浏览功能。它还可以有照相机2。
SymbianTM操作系统大部分是用面向对象的计算机语言C++编写的。面向对象的语言通常都提供一些多任务手段。例如,JavaTM语言,另一种众所周知的面向对象语言,主要通过多线程来支持多任务功能,这种多线程允许在多个不同的线程中同时执行多个任务。
SymbianTM操作系统支持抢占式多线程,因此它能够同时运行多个应用程序和服务程序。在一个线程中,用活动对象来提供非抢占式多任务支持,这就使得对于多数应用程序和服务程序而言不再需要多线程编程。大量的SymbianTM类是从活动对象基类CActive导出的。可以将活动对象定义为在它自己的控制线程中运行的对象。在SymbianTM操作系统中,活动对象是从基类CActive导出的任意对象。
在图2中示意性地说明SymbianTM操作系统中线程和活动对象之间的关系。系统调度程序10在多个线程11、12、13之间支持抢占式多线程功能。抢占式多线程指的是给每个线程一个固定的CPU时间片,在这个时间片之后将它挂起,从而使下一个线程能够运行。通过足够频繁地在线程之间进行切换,能够产生线程是连续执行的这样一个错觉。
相反,在线程11中,可能有多个活动对象20、21、22。每个线程都可以有一个活动的调度程序25,用于在活动对象之间调度CPU时间。活动的调度程序25采用非抢占式方法,意思是不挂起正在执行的活动对象,而是允许完成它的任务,并将控制返回给活动的调度程序。
SymbianTM操作系统为了支持上述活动对象方式而禁用上述多线程方式。在这个操作系统中,编写支持协作活动对象系统的程序,比编写支持协作线程系统的程序更加容易。线程之间的通信比活动对象之间的更慢,也更加困难,并且活动对象的运行时间成本明显低于线程的运行时间成本。此外,从处理器工作负荷的角度看,产生和销毁活动对象的效率远远高于产生和销毁线程的效率。因此,SymbianTM应用程序通常都使用包含单个线程的过程,在这个线程中具有多个活动对象。
由于在计算平台之间的可移植性,JavaTM语言已经应用非常广泛,非常流行,特别是对于GUI(图形用户界面)的开发。因此,常常将JavaTM用于为SymbianTM平台开发应用程序,这样做提供了一种JavaTM实现。但是,为了保持其可移植性,没有将JavaTM设计成直接使用较低级的设备功能,例如,访问照相机、蓝牙或红外设备的设备驱动程序。JavaTM访问这种本地功能的常见方法是通过JavaTM本地接口(JNI)31,它在JavaTM环境30和本地SymbianTM环境32之间提供“翻译层”,如图3所示。
但是,在其SymbianTM实现中,没有将JNI31设计成与活动对象相互作用。
考虑到用活动对象代替线程所获得的技术优点,有必要允许JavaTM程序访问SymbianTM操作系统中的活动对象。
本发明的实施例提供一种机制,用来支持通过JNI从JavaTM访问活动对象。具体而言,可以将本发明应用于一个计算平台上的应用程序不能直接访问第二计算平台上活动对象的任意环境。
本发明提供一种支持从第一计算平台访问第二计算平台上活动对象的方法,该方法包括:从所述第一计算平台上的应用程序接受函数调用;响应所述函数调用,启动所述第二计算平台上第一控制线程中活动的调度程序,该活动的调度程序用于为来自所述活动对象的请求提供服务;在所述第二计算平台上创建第二控制线程;以及将所述活动的调度程序转换成所述第二线程来允许控制返回到所述进行调用的应用程序。
所述活动的调度程序可以是响应来自活动对象的请求而转换的,或者是响应来自启动起来用于转换所述活动的调度程序的定时器对象而转换的。
该方法可以包括判断来自所述活动对象的请求是不是多个请求中第一个请求的步骤,并且只有在这种情况下,才将所述活动的调度程序转换成独立的线程。判断所述请求是不是第一个请求可以利用状态机来完成。
本发明还提供一种支持从第一计算平台访问第二计算平台上活动对象的系统,该系统包括:用于从所述第一计算平台上的应用程序接受函数调用的装置;用于响应所述函数调用,启动所述第二计算平台上第一控制线程中活动的调度程序的装置,该活动的调度程序用于为来自所述活动对象的请求提供服务;用于在所述第二计算平台上创建第二控制线程的装置;以及用于将所述活动的调度程序转换成所述第二线程来允许控制返回到所述进行调用的应用程序的装置。
所述转换装置可以包括用于停止所述第一线程中活动的调度程序的装置以及用于在所述第二线程中重新启动该调度程序的装置。
本发明还提供一种用于支持从第一计算平台访问第二计算平台上活动对象的计算机程序,在计算机上执行的时候,该程序被配置成:从第一计算平台上的应用程序接受函数调用;响应所述函数调用,启动第二计算平台上第一控制线程中活动的调度程序,该活动的调度程序用于为来自所述活动对象的请求提供服务;在所述第二计算平台上创建第二控制线程;以及将所述活动的调度程序转换成所述第二线程来允许控制返回到所述进行调用的应用程序。
下面将参考附图说明本发明的示例性实施方式。在这些附图中:
图1原理性地说明能够实现本发明的实例的智能电话;
图2原理性地说明JavaTM应用程序如何与图1所示智能电话的操作系统进行通信;
图3说明SymbianTM操作系统环境中活动对象和线程之间的关系;
图4是说明本发明的原理的流程图;以及
图5是说明用于实现本发明的程序的结构的结构示意图。
如上所述,在SymbianTM操作系统中,活动对象(AO)需要运行能够为它们的请求提供服务的活动的调度程序(AS)。几乎所有的线程都使用活动的调度程序。如果有活动的调度程序,就能够根据需要给它增加活动对象以及从它去除活动对象。
由于在JNITM下没有任何活动的调度程序存在,因此需要人工启动活动的调度程序。虽然在SymbianTM操作系统的CActiveScheduler类中提供了这一功能,但是为了启动这个调度程序而对这一类中定义的Start()函数的调用则被阻塞。这就意味着对本地(SymbianTM操作系统)函数的调用不会返回JavaTM调用程序,不能进行任何进一步的处理。利用下面描述的机制,能够避免这种情况。与上述方法相反,启动活动的调度程序,从而使得控制能够返回到JavaTM应用程序,能够进一步向活动对象发出请求以及接受来自活动对象的请求。
简而言之,向活动的调度程序发出第一个请求的时候,将活动的调度程序转换成一个单独的线程。可以从正在使用的活动对象或者从只为这一目的启动的定时器对象来启动。在图4中说明实现这一方案的程序。
参考图4,JavaTM程序调用SymbianTM操作系统中的本地函数(步骤s1)。本地函数对本地SymbianTM中活动的调度程序25(步骤s2)和活动对象20(步骤s3)进行初始化。启动(步骤s4)并阻塞活动的调度程序,从而防止通过这条路线返回JavaTM程序。与此同时,活动对象调用活动的调度程序的处理方法(步骤s5)。这一处理方法停止活动的调度程序,将它转换成单独的线程并重新启动它,如果还没有完成的话。然后,在程序返回JavaTM程序之前,处理活动对象的请求(步骤s6)。
图5说明本发明中用于实现图4所示过程的程序的结构。该结构包括Java程序40、(处理JNI的)Wrapper类41以及从活动对象基类CActive43导出的Client类42。在下面的描述中,本领域技术人员会明白,将特定的基类和方法定义成SymbianTM操作系统的一部分。这些类包括CActive、CActiveScheduler和RThread类。这些类定义的方法包括但不限于SetActive()方法和虚拟RunL()方法。
JavaTM程序包括在这里称为javaClass的类40,它声明并调用第一个和第二个JavaTM函数functionl()和function(2),并且声明并调用第一个和第二个本地函数wrapF1()和wrapF2()。
Wrapper类41包括用C++语言编写的,用于创建活动对象的本地函数wrapF1()和wrapF2()的程序代码。
Client类42是从SymbianTM操作系统中的活动对象基类CActive导出的,并且实现对活动的调度程序的控制。
为了说明本发明的机制,在这里假设Java应用程序40调用名字为functionl()的函数,并且假设这一调用包含对SymbianTM操作系统中本地函数的第一次调用。下面列出实现这一实施例所需要的所有代码片段和流。
[javaClass]
functionl(){
      (...)
      wrapF1();
}
[javaClass]类40调用JavaTM函数functionl(),后者则调用本地函数wrapF1(),将控制交给SymbianTM操作系统22。
[Wrapper]
wrapF1(){
     (...)
     myAO=new(ELeave)Client;
    myAO->Functionl();
    return;
}
本地函数wrapF1()包含在Wrapper类41中。代码“myAO=new(ELeave)Client”创建名称为myAO属于Client类42的活动对象。代码“myAO->Functionl()”调用Client类42中定义的函数Functionl(),它是与JayaTM函数function()对应的本地函数。代码“return”将控制交回JavaTM 40。
下面给出Client类42:
[Client]
Client::Client():CActive(0){
      myScheduler=new(ELeave)CActiveScheduler;
      CActiveScheduler::Install(myScheduler);
      CActiveScheduler::Add(this);
      myThread=new RThread();
      return;
}
Client::Functionl(){
      (...)
      SetActive();
      return;
}
Client::RunL(){
    (...实现第一次判决的代码)
    //如果是第一次调用这一函数:
    myScheduler->Stop();
    myThread->Create(...,(TInt(*)(TAny*))ASThread...,this...);
    myThread->Resume();
    (...)
    return;
}
TInt Client::ASThread(TAny*ptr){
      ((Client*)ptr)->myScheduler->Replace(myScheduler);
       myScheduler->Start();
}
在“Client::Client():CActive(0)”代码片段中声明Client类,它还表明Client类是从SymbianTM操作系统的CActive基类导出的,因此Client类的对象将是活动对象。这个代码片段还说明将构造优先级被设置成0的活动对象。
代码“myScheduler=new(ELeave)CActiveScheduler”在SymbianTM操作系统中创建CActiveScheduler类的称作myScheduler的活动的调度程序对象。这个对象被代码“CActiveScheduler::Install(myScheduler)”安装成活动的调度程序。
代码“CActiveScheduler::Add(this)”将活动对象myAO增加到活动的调度程序25维护的对象清单中去。
代码“myThread=new RThread()”构造称为SymbianTM操作系统RThread类的myThread的线程对象。
Client类42包括函数Functionl(),用于执行所需要的程序,例如,访问照相机设备驱动程序。Functionl()方法包括对CActive类43中定义的SetActive()方法的调用。对SetActive()的调用将具有活动的调度程序25的myAO活动对象注册为活动的,并且要求响应。一完成请求,对SetActive()的调用就会调用RunL()方法。
Client类42实现CActive类43中定义为虚拟方法的虚拟方法RunL()。这包含用于判断是不是第一次调用该方法的代码,这些代码是用例如状态机实现的。只有在第一次调用RunL()方法的时候才执行说明行后面的三行代码。
在替换实施例中,创建一个定时器对象,并且在第一次开始运行RunL()方法的时候运行。在完成的时候,这个对象设置一个标志来表明已经运行过RunL()方法。
代码“myScheduler->Stop()”停止当前活动的调度程序。
代码“myThread->Create(...,(Tint(*)(TAny*))ASThread,...,this,...)”创建一个线程,代码“myThread->Resume()”启动这一线程。“ASThread”是恢复线程的时候接收控制的线程函数的名字。变量“TInt(*)(TAny*))ASThread”是指向ASThread()函数的函数指针,该函数是按照SymbianTM操作系统的RThread类中Create函数的规范声明的。“this”这个指针,指向Client类的当前对象的指针,在这种情况下是myAO,被传递给ASThread()函数。
代码片段“(...)”代表方法Functionl所需要的所有其它处理,包括向Java的回调。
Client类中的最后方法是从RunL()方法调用的ASThread方法。
代码片段“((Client*)ptr)->myScheduler->Replace(myScheduler)”调用SybianTM操作系统的CActiveScheduler类中定义的Replace方法,它允许替换当前活动的调度程序,同时保留它的活动对象。Replace调用不是严格必需的,可以在这个特定实施例中省略它,但是包括它更加安全,因为ASThread函数不必是Client类的成员。
然后,代码“myScheduler->Start()”重新启动活动的调度程序,它被再一次阻塞,但是这一次这个调度程序是在单独的一个线程中运行的,因此控制返回到javaClass应用程序40。
可以将本发明应用于运行SymbianTM操作系统的任何设备的编程。对于应用程序开发,JavaTM因为其可移植性而广受欢迎,在这些设备上运行并且利用活动对象的所有JavaTM应用程序都可以利用本发明。
实例包括使用蓝牙TM的JavaTM多人游戏和利用电话照相机2的JavaTM应用程序。
另外,很显然,本发明的实现不限于SymbianTM和JavaTM平台,它还能被用于提供类似功能或存在同样问题的任何操作系统、语言或平台。还有,“活动对象”这个术语不必限于在SymbianTM操作系统中的对象,而是可以是在调度程序或类似控制机构控制之下实现类似多任务功能的任意操作系统下的任意对象。
虽然本发明是针对一个具体实施例来加以描述的,但是很显然这仅仅是为了进行说明,本发明的应用范围要大得多。在本发明的范围内,本领域技术人员能够想出数不清的变型。

Claims (19)

1.一种从第一计算平台(30)访问第二计算平台(32)上活动对象(20、21、22)的方法,该方法包括:
从所述第一计算平台上的应用程序(40)接受函数调用;
响应所述函数调用,启动所述第二计算平台上第一控制线程(11)中活动的调度程序(25),该活动的调度程序用于为来自所述活动对象的请求提供服务;
在所述第二计算平台上创建第二控制线程(12);以及
将所述活动的调度程序转换成所述第二线程以允许控制返回到所述进行调用的应用程序。
2.如权利要求1所述的方法,其中响应来自活动对象的请求来转换所述活动的调度程序。
3.如权利要求2所述的方法,其中所述活动对象是为了转换所述活动的调度程序而启动的定时器对象。
4.如权利要求2或3所述的方法,包括判断来自所述活动对象的请求是不是多个请求中第一个请求的步骤。
5.如权利要求4所述的方法,包括只有在所述请求是第一个请求的情况下,才将所述活动的调度程序转换成所述第二线程。
6.如权利要求4或5所述的方法,包括利用状态机来判断所述请求是不是第一个请求。
7.如以上权利要求中任意一个所述的方法,其中转换所述活动的调度程序的步骤包括停止所述第一线程中活动的调度程序,并且在所述第二线程中重新启动它。
8.如以上权利要求中任意一个所述的方法,其中所述活动对象包括在它自己的控制线程中运行的对象。
9.一种支持从第一计算平台(30)访问第二计算平台(32)上活动对象(20、21、22)的系统,该系统包括:
用于从所述第一计算平台上的应用程序(40)接受函数调用的装置;
用于响应所述函数调用,启动所述第二计算平台上第一控制线程(11)中活动的调度程序(25)的装置,该活动的调度程序用于为来自所述活动对象的请求提供服务;
用于在所述第二计算平台上创建第二控制线程(12)的装置;以及
用于将所述活动的调度程序转换成所述第二线程以允许控制返回到所述进行调用的应用程序的装置。
10.如权利要求9所述的系统,其中所述转换装置被配置成响应来自活动对象的请求而转换所述调度程序。
11.如权利要求9所述的系统,其中所述转换装置被配置成响应来自定时器对象的请求而转换所述调度程序,该定时器对象是为了转换所述活动的调度程序而启动的。
12.如权利要求9~11中任意一个所述的系统,其中所述转换装置包括用于停止所述第一线程中活动的调度程序的装置以及用于在所述第二线程中重新启动它的装置。
13.如权利要求9~12中任意一个所述的系统,包括用于判断来自所述活动对象的所述请求是不是多个请求中第一个请求的装置。
14.如权利要求13所述的系统,其中所述转换装置被配置成只有在所述请求是第一个请求的情况下,才将所述活动的调度程序转换成所述第二线程。
15.如权利要求13或14所述的系统,还包括用于判断所述请求是不是第一个请求的状态机。
16.如权利要求9~15中任意一个所述的系统,其中所述第一计算平台(30)包括JavaTM平台,所述第二计算平台(32)包括SymbianTM操作系统。
17.如权利要求16所述的系统,其中所述应用程序包括通过JavaTM本地接口JNI(31)访问SymbianTM操作系统的JavaTM应用程序。
18.一种智能电话(1),该智能电话(1)包括如权利要求9~17中任意一个所述的系统。
19.一种用于支持从第一计算平台(30)访问第二计算平台(32)上活动对象(20、21、22)的计算机程序,在计算机上执行的时候,该程序被配置成:
从第一计算平台上的应用程序(40)接受函数调用;
响应所述函数调用,启动第二计算平台上第一控制线程(11)中活动的调度程序(25),该活动的调度程序用于为来自所述活动对象的请求提供服务;
在所述第二计算平台上创建第二控制线程(12);以及
将所述活动的调度程序转换成所述第二线程以允许控制返回到所述进行调用的应用程序。
CNA2005800419620A 2004-12-08 2005-12-05 用于支持访问活动对象的方法和系统 Pending CN101073061A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0426884.3 2004-12-08
GBGB0426884.3A GB0426884D0 (en) 2004-12-08 2004-12-08 A method and system for providing access to active objects

Publications (1)

Publication Number Publication Date
CN101073061A true CN101073061A (zh) 2007-11-14

Family

ID=34073363

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005800419620A Pending CN101073061A (zh) 2004-12-08 2005-12-05 用于支持访问活动对象的方法和系统

Country Status (6)

Country Link
US (1) US20090241127A1 (zh)
EP (1) EP1825367A2 (zh)
JP (1) JP2008523491A (zh)
CN (1) CN101073061A (zh)
GB (1) GB0426884D0 (zh)
WO (1) WO2006061773A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902388B (zh) * 2012-12-28 2017-10-03 北京壹人壹本信息科技有限公司 应用之间进行通信的方法和电子设备

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5924351B2 (ja) * 2014-01-23 2016-05-25 コニカミノルタ株式会社 情報端末、印刷システム、印刷システムの制御方法、およびプログラム
US10558670B2 (en) 2015-09-30 2020-02-11 International Business Machines Corporation Smart tuple condition-based operation performance
US10733209B2 (en) 2015-09-30 2020-08-04 International Business Machines Corporation Smart tuple dynamic grouping of tuples
US10657135B2 (en) 2015-09-30 2020-05-19 International Business Machines Corporation Smart tuple resource estimation
US10296620B2 (en) 2015-09-30 2019-05-21 International Business Machines Corporation Smart tuple stream alteration

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675371B1 (en) * 1999-04-30 2004-01-06 Hewlett-Packard Development Company, L.P. Java and native application window integration
WO2001082075A2 (en) * 2000-04-25 2001-11-01 Icplanet Acquisition Corporation System and method for scheduling execution of cross-platform computer processes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902388B (zh) * 2012-12-28 2017-10-03 北京壹人壹本信息科技有限公司 应用之间进行通信的方法和电子设备

Also Published As

Publication number Publication date
US20090241127A1 (en) 2009-09-24
GB0426884D0 (en) 2005-01-12
EP1825367A2 (en) 2007-08-29
WO2006061773A2 (en) 2006-06-15
WO2006061773A3 (en) 2006-09-21
JP2008523491A (ja) 2008-07-03

Similar Documents

Publication Publication Date Title
CN104737114B (zh) 能够启用触摸屏的可穿戴式装置所用的多轴界面
RU2377635C2 (ru) Обработка информации, принимаемой дополнительным вычислительным устройством
CN102934085B (zh) 在多环境操作系统中多个环境之间切换的系统和方法
US9654556B2 (en) Managing applications on an electronic device
CN100504763C (zh) 启用同时多线程(smt)的系统及其管理方法
CN103282883A (zh) 在webtop应用托盘中显示安卓应用启动器的系统和方法
CN101073061A (zh) 用于支持访问活动对象的方法和系统
CN102077209B (zh) 受保护模式操作调度
CN102792274A (zh) 多环境操作系统
CA2429966A1 (en) Computer multi-tasking via virtual threading
CN104838360A (zh) 基于配额的资源管理
CN102567097B (zh) 一种多任务下载的方法及终端
CN109564512A (zh) 通过消息传送机器人与文件存储服务的交互
CN102473102A (zh) 用于发起多环境操作系统的系统和方法
CN103955341A (zh) 具有用于控制和修改手势识别的代表的手势识别器
CN100553214C (zh) 移动虚拟环境系统
CN103761088A (zh) 一种适用于arm架构移动设备的多操作系统切换方法
WO2013063787A1 (en) System and method for input sharing between multiple devices
CN103309705A (zh) 终端应用程序激活方法和系统
CN110471870B (zh) 多系统运行的方法、装置、电子设备及存储介质
CN102047217A (zh) 重新获取对执行外部执行上下文的处理资源的控制
CN100498714C (zh) 使用状态机构建电视机软件系统的方法
Schoeberl Real-time scheduling on a Java processor
KR100893305B1 (ko) 원격지 서버 컴퓨터를 이용한 다중 사용자용 웹 브라우징환경 제공 시스템과 그 제어 방법
Aversa et al. MAGDA: a software environment for Mobile AGent based Distributed Applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication