CN1157964A - 为系统目标模型建立动态角色的方法和装置 - Google Patents

为系统目标模型建立动态角色的方法和装置 Download PDF

Info

Publication number
CN1157964A
CN1157964A CN96121832A CN96121832A CN1157964A CN 1157964 A CN1157964 A CN 1157964A CN 96121832 A CN96121832 A CN 96121832A CN 96121832 A CN96121832 A CN 96121832A CN 1157964 A CN1157964 A CN 1157964A
Authority
CN
China
Prior art keywords
role
target
oriented environment
computer system
dynamic
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.)
Granted
Application number
CN96121832A
Other languages
English (en)
Other versions
CN1101029C (zh
Inventor
纳坎·科斯库恩
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1157964A publication Critical patent/CN1157964A/zh
Application granted granted Critical
Publication of CN1101029C publication Critical patent/CN1101029C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution

Abstract

在面向目标编程环境中,为目标动态提供角色。这种机制能够根据目标的上下文动态为目标增加角色。IBM系统目标模型(SOM)是提供该功能的主要构件。使用SOM的调度解析使本发明具有“SOMDispatch”法的特性。为了实现面向应用的调度机制,“SOMDispatch”方法在新的分类中被重写。通过将动态目标表示为目标列表,可随时将目标加到列表上。例如,当程序启动时,“人员目标”只有学生目标,在调用需要教师特征的函数时,可在人员目标上增加教师这一角色。

Description

为系统目标模型建立动态角色的方法和装置
本发明涉及数据处理系统,特别涉及在系统目标模型(SOM)中,为面向目标的应用程序设计提供动态目标。
经过多年的争辩和讨论,面向目标的编程语言(或称OOP)变为程序设计技术的主流。OOP语言使程序设计的工作效率得到改进,提供了代码的复用性,并且便于维护。面向目标的编程模块的中心部分称作方法解析。这个机制就是为某个目标选择一个特定的方法以及该方法的ID和该方法的参数。在某些现有技术的目标模型中,方法解析主要是通过对程序原码的分析来确定某个目标特有的“过程入口点表”中的位移量。这些目标称之谓静态目标。在程序执行过程中,静态目标没有选择方法的可能。程序一旦开始执行,静态目标希望为特定方法ID和特定目标所选择执行的这个方法保持不变。大多数静态目标允许进行一次性解析,在使用同一目标的情况下,所选方法可以反复调用,而不必经过解析。
另一种现有技术的面向目标编程语言提供动态模型,它在运行时,能用目标名来确定一个特定的方法。在动态模型中选择哪个方法,可以在程序执行中变化。不象静态目标,只要进行了解析,就可以为同一目标反复调用所选的一个方法而无需另行解析,而动态模块就不能进行这样的过程,因为某个类别从其父类那里继承的一组方法可以在程序执行过程中作出改变,由此在程序执行的同时,改变了由某个特定方法ID和特定目标所确定的解析方法。
不论静态还是动态目标都必须适应不同角色的要求。比如某个人可以代表一个学生、教师或父亲等。为了使同一实体在不同上下文中具有不同的职能,现有技术采用多继承的面向目标机制。多继承代表的目标由不同类继承。因此,这些目标必须满足各种上下文的各种复杂要求。
我们需要这样一种机制:它能够根据目标的上下文动态地增加其角色,而不超过其限定的开销。
本项发明涉及一种在面向目标的编程环境下,为目标提供动态角色的方法和装置。这一机制能够根据产生有效程序的目标的上下文,为该目标动态地增加角色。IBM系统目标模型(SOM)是提供这一功能的主要构件。IBM系统目标模型可完成三类方法解析,第一类是位移解析,它根据对程序原码的分析,确定某个目标特定的过程入口点表的位移量;第二类是动态解析,它在运行中用目标名确定某个特定的方法;第三类是调度解析,用它来提供本发明的功能。在调度解析中,方法解析是由执行“Som Dispatch”法来决定的。本项发明在新的类别中重写了“Som Dispatch”法,以便实现调度机制的实际应用。动态目标用目标列表来表示。目标可以随时加入这个列表。比如,当一个程序启动时,某个“人员目标”仅有一个学生目标。在调用需要教师目标特性的函数之前,要为该“人员目标”加上教师角色。当这些函数调用结束返回时,如果不再需要该角色,则从“人员目标”上删除教师角色。
总之,动态角色目标与一个角色列表目标相关联。需要能够为目标增加或删除一个角色的方法。这是通过重写“SomDispatch”法来达到的,在此过程中搜索角色目标列表中的所有目标,以便找出第一个具有所需方法的目标。
图1为本发明可以使用的计算机/工作站的方框图
图2为面向目标环境中的一个目标
图3为面向目标环境中系统目标模型(SOM)的数据结构的方框图
图4-8为具有本发明的动态角色目标的列表目标的方框图
图9为使用本发明动态角色目标的应用的流程图
本项发明提供了一种在面向目标编程环境中为目标创立动态角色的方法和装置。本项发明最好用于IBM公司提供的IBM PS/2计算机上驻留的操作系统。图1列出了典型的硬件环境,描述了根据本发明的一个典型的工作站的硬件配置,具有中央处理器10(例如一个一般的微处理器)和一些通过系统总线12相互连接的其它部件。图1中的工作站包括随机访问存储器(RAM)14;只读存储器(ROM)16;将外部设备,如磁盘单元20连接到总线的一个I/O适配器18;一个用户接口适配器22,用于连接键盘24、鼠标26、扬声器28、话筒32和/或其它用户接口设备,如一个触摸屏(未注明);一个通信适配器34,用于把工作站连到数据处理网络;以及一个显示适配器36,用于把显示设备38连到总线上。在优选实施例中,工作站具有驻留其上的OS/2操作系统和使本项发明能够实施的计算机软件,该软件是作为一个工具集提供的。
图2是根据发明优选实施方案所描述的一个面向目标的系统中的目标框图。该目标包含了数据和处理数据所需要的方法。目标可表示为一个“饼图”,如图2所示。目标数据42表示在饼图中心,外围是可用的方法44-54,数据42只可以被该目标的方法所修改。根据从其它目标收集到的信息调用方法44-54。一个典型的面向目标系统,具有一个消息路由器56,它在目标之间传输消息。因此,目标58通过向消息路由器56发送消息55,而路由器接着将消息53发送给目标40的方法48,来调用方法48。一个目标,就象本项发明中所采用的那样,均具有包容性、继承性和多态性等特性。包容性指的是掩盖了目标实施的细节;继承性指的是由称作父类或母类的另一类确定称作派生类或子类的形状和特性的技术,作为增量差分。多态性指的是在同一界面后面掩盖实施差异的能力,以便简化目标间的通讯。
目标按其相关性分为“类”。“类说明”包含与这“类”中所有目标共同相关的信息,它包括由每个目标和每个有效“目标方法”所维持的实例变量的描述。目标实例是根据该信息建立的,并且具有在目标类中限定的特性。比如,目标类“狗”,可包含的实例变量是:狗的种类、狗名以及对吠叫信息作出响应的“叫”法。狗的实例,如Rover,自已保持类型和名称实例变量,而且对犬吠消息作出反应。
“抽象类”可用来描述某一类想使用的那些界面和方法,无需提供实施这些方法的细节。在实施细节由实施者决定的情况下,“抽象类”是很有用的。“具体类”是作为抽象类的子类来建立的,并且由具体类组成那些抽象类。
图3是SOM的基本数据结构。作为一个特定目标,60是一个静态数据结构,它的第一个完整字62中存放了该目标的方法过程表66的地址。这个方法过程表66中有该类目标数据结构68的地址,以及用于特定目标72和74各方法的地址。地址68指向该类目标数据结构70。所有与该类目标同类的目标有一个指向这个方法过程表66的地址。被这些目标继承的任何方法,当它们出现在方法过程表66时都有它们在存储器中相同位移上的方法过程地址。计算机存储器中,包含两个方法过程的指令串的块地址被设定在72和74。计算机存储器中的位置76和78,存有某个特定方法过程的指令串,它们由72和74来指定。在IBM案卷AT9-91-072中,序号为07/805,778,美国专利号5,421,016可找到IBM系统目标模型的完整说明,标题为“根据应用要求,在使用静态方法时,动态调用目标方法的系统和方法(System and Method forDynamically Invoking Object Methods from an Applicantion Designedfor Static Method Invocation)”,也列入其中,可以作为参考。
图4表示的是用一个列表的方式来为一个动态目标增加或减少角色的方框图。列表目标80中包含指针,指向SOM目标,它们表示人员目标82,学生目标84,教师目标86。本发明描述了一种技术,它能根据上下文动态地为此目标增加角色。人员目标82可能拥有某特定个体的信息,如出生日期、出生地点、名字等,学生目标84拥有学生的特定信息,包括平均分(GPA)、专业、某班级的名次等,教师目标86具有教师的特定信息,包括工资、专长、班上的学生等。任何本专业人员都会看到,在列表目标80中可以增加任何数量的具有各种角色的动态目标。
图5-8描述访问包含有动态目标的列表目标的技术。应用程序启动之后,比如要求所有在Texas,Austin出生的人,只得到了人员目标82。如图5所示,要搜索列表目标80,只有人员目标会被装上。同样,假定应用程序需计算所有GPA为4.0的学生,列表目标80将被搜索,如图6所示,只有学生目标84会被装上。同样,应用程序寻找所有数学教师,将搜索列表目标80,在图7中,只装入教师目标86。当寻找数学教师,而且上历史课,年纪小于50岁的教师,那么所有的动态目标都要装上。如图8所示,要查寻列表目标80,人员目标82,学生目标84,教师目标86都要装上。再回来看图4,很明显对于本专业技术人员来说,给定一个列表目标80,另外加上有多种角色的动态目标(比如82,84,86),随时可以添加到列表清单80上。对于本专业技术人来说,同样很明显,当应用程序启动只要求人员目标82,后来要求有教师特性时,教师目标86可以装上去,当函数调用返回时,如果不再用教师目标86,可以把它删掉。
图9显示的是本项发明动态角色目标的执行流程图,本项发明允许在应用中调用动态角色目标。动态调用指的是程序能在执行过程中作出决定调用哪种方法,而不在该应用被编译时进行。动态解析系统需要采用“运行时间信息”去精确地确定方法调用。如图9所示,某项应用使用本项发明的SOM动态角色目标,从块90开始进行到块92。在块92,此过程实现动态链接,并且装入动态SOM目标94,基于图5的列表目标和SOM运行时间库96。在块98上,应用开始启动,建立所需的类和目标,如功能块100中的设置那样。最后,应用按功能块102中所示的那样进行,并在终端块104上结束控制。
以上根据本发明描述了本发明的优选实施例,但应清楚地看到,本领域的技术人员在不背离本发明的精神和范围内可做出各种修改和变型,因此,在此所公开的本发明将仅限于所附权利要求。

Claims (11)

1.在一计算机上实施的方法,用于在面向目标的环境中建立动态目标,该方法包括步骤:
在所述面向目标环境中,在所述计算机系统中建立至少具有一个动态目标的角色列表目标;和
提供在所述面向目标环境中为所述动态目标增加一个角色的方法。
2.如权利要求1所述的方法,其特征在于还包括步骤:
确定在所述面向目标环境下,所述计算机系统中的应用程序所要求的所述角色;
在所述计算机系统中,在所述角色列表目标中查找包含所述角色的所述动态目标。
3.一种在面向目标环境中建立动态目标的装置,包括:
在所述面向目标环境下,所述计算机系统中建立至少具有一个动态目标的角色列表目标的装置;和
在所述面向目标环境下为所述动态目标增加角色提供方法的装置。
4.如权利要求3所述的装置,其特征在于还包括:
确定在所述面向目标环境中,所述计算机系统的应用程序中所需要的所述角色的装置;
在所述计算机系统中,在所述角色列表目标中查找包含所述角色的所述动态目标的装置。
5.一计算机程序产品,在一个计算机可读介质中记录了能在一个面向目标的环境中建立动态目标的计算机程序,它包括:
在所述面向目标环境中,在所述计算机系统里建立至少具有一个动态目标的角色列表目标的计算机可读介质;和
在所述面向目标环境中,给所述动态目标增加角色提供方法的计算机机器可读介质。
6.如权利要求5所述的计算机程序,其特征在于包括:
确定在所述面向目标定环境中,所述计算机系统的应用程序中要求的角色的装置;
在所述计算机系统中,在所述角色列表目标里查找包含所述角色的所述动态目标的装置。
7.在计算机系统中实现的用于访问面向目标环境中的动态目标的方法,包括:
在所述面向目标环境中建立一个列表目标;
在所述具有多个角色的面向目标环境中,在所述计算机系统中建立一个动态角色目标,作为所述列表目标的一个子类。
8.如权利要求7所述的方法,其特征在于进一步包括:
确定在所述面向目标的环境中的某个应用程序所需要的所述动态目标中多个角色中的一个角色;和
在所述列表目标里查找所述角色目标中多个角色中指定的一个角色。
9.如权利要求8所述的方法,其特征在于包括步骤:
在进程存储区中确定一个全局存储器。
10.如权利要求9中的方法,其特征在于步骤:
访问所述用户的证件的步骤,包括从所述的进程区中,如存在,查找指定的用户证件。
11.如权利要求9所述的方法,其特征在于:
访问所述用户的证件的步骤,包括了当指定用户的证件不出现在所述进程存储区中的情况时,从所述本地存储区,查找用户的证件。
CN96121832A 1995-11-30 1996-11-29 为系统对象模型建立动态角色的方法和装置 Expired - Fee Related CN1101029C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US565374 1990-08-09
US565,374 1995-11-30
US08/565,374 US5764958A (en) 1995-11-30 1995-11-30 Method and apparatus for creating dynamic roles with a system object model

Publications (2)

Publication Number Publication Date
CN1157964A true CN1157964A (zh) 1997-08-27
CN1101029C CN1101029C (zh) 2003-02-05

Family

ID=24258334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN96121832A Expired - Fee Related CN1101029C (zh) 1995-11-30 1996-11-29 为系统对象模型建立动态角色的方法和装置

Country Status (5)

Country Link
US (1) US5764958A (zh)
EP (1) EP0777178B1 (zh)
CN (1) CN1101029C (zh)
DE (1) DE69614978T2 (zh)
MY (1) MY112346A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1293498C (zh) * 2002-12-26 2007-01-03 株式会社东芝 模拟方法和模拟程序
CN104206000A (zh) * 2012-03-14 2014-12-10 英特尔公司 用于双重人物无线装置的移动终端体系结构

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999942A (en) * 1993-02-11 1999-12-07 Appage Corporation Method and apparatus for enforcement of behavior of application processing systems without modifying application processing systems
US6813769B1 (en) * 1997-10-28 2004-11-02 Microsoft Corporation Server application components with control over state duration
US6088739A (en) * 1996-06-28 2000-07-11 Microsoft Corporation Method and system for dynamic object clustering
US6138171A (en) * 1996-11-14 2000-10-24 Alcatel Usa Sourcing, L.P. Generic software state machine
US5997168A (en) 1997-04-14 1999-12-07 Electronic Data Systems Corporation Optimizing the operation of an equipment control system
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US6631425B1 (en) 1997-10-28 2003-10-07 Microsoft Corporation Just-in-time activation and as-soon-as-possible deactivation or server application components
US5958004A (en) 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US6134594A (en) 1997-10-28 2000-10-17 Microsoft Corporation Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects
US6526416B1 (en) 1998-06-30 2003-02-25 Microsoft Corporation Compensating resource managers
US6425017B1 (en) 1998-08-17 2002-07-23 Microsoft Corporation Queued method invocations on distributed component applications
US6473791B1 (en) 1998-08-17 2002-10-29 Microsoft Corporation Object load balancing
US6442620B1 (en) 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
US6574736B1 (en) 1998-11-30 2003-06-03 Microsoft Corporation Composable roles
US6385724B1 (en) 1998-11-30 2002-05-07 Microsoft Corporation Automatic object caller chain with declarative impersonation and transitive trust
US6487665B1 (en) 1998-11-30 2002-11-26 Microsoft Corporation Object security boundaries
US6868541B1 (en) * 1998-12-21 2005-03-15 Microsoft Corporation Asynchronous programming environment
US6829770B1 (en) 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
US6748455B1 (en) 1999-02-23 2004-06-08 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events with filtering
US6325632B1 (en) 1999-05-05 2001-12-04 Anabas, Inc. Computer-aided learning method and systems matching students with instructors
US6748555B1 (en) 1999-09-09 2004-06-08 Microsoft Corporation Object-based software management
US6920636B1 (en) 1999-12-15 2005-07-19 Microsoft Corporation Queued component interface passing for results outflow from queued method invocations
US6714942B1 (en) 2000-07-28 2004-03-30 E-Volve Incorporated Method of creating and using a sub-classed object that spans multiple computers in a networked computing system
US6898783B1 (en) * 2000-08-03 2005-05-24 International Business Machines Corporation Object oriented based methodology for modeling business functionality for enabling implementation in a web based environment
US7171455B1 (en) 2000-08-22 2007-01-30 International Business Machines Corporation Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals
US6684388B1 (en) 2000-08-22 2004-01-27 International Business Machines Corporation Method for generating platform independent, language specific computer code
US6853994B1 (en) 2000-08-30 2005-02-08 International Business Machines Corporation Object oriented based, business class methodology for performing data metric analysis
US7392546B2 (en) * 2001-06-11 2008-06-24 Bea Systems, Inc. System and method for server security and entitlement processing
US7299493B1 (en) 2003-09-30 2007-11-20 Novell, Inc. Techniques for dynamically establishing and managing authentication and trust relationships
US20060048226A1 (en) * 2004-08-31 2006-03-02 Rits Maarten E Dynamic security policy enforcement
US7526502B2 (en) * 2004-09-10 2009-04-28 Microsoft Corporation Dynamic call site binding
US7437080B2 (en) * 2005-02-03 2008-10-14 Stratalight Communications, Inc. Optical transmission system having optimized filter wavelength offsets
US7774827B2 (en) * 2005-06-06 2010-08-10 Novell, Inc. Techniques for providing role-based security with instance-level granularity
US8904391B2 (en) * 2007-04-23 2014-12-02 International Business Machines Corporation Policy-based access control approach to staff activities of a business process
US10175953B2 (en) 2014-04-02 2019-01-08 Microsoft Technology Licensing, Llc User interface control and communication
CN108582085B (zh) * 2018-07-18 2021-03-02 北京进化者机器人科技有限公司 控制命令的确定方法、装置和机器人

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0546682A3 (en) * 1991-12-12 1993-12-08 Ibm Parent class shadowing
US5361350A (en) * 1991-12-12 1994-11-01 International Business Machines Corporation Object oriented method management system and software for managing class method names in a computer system
US5421016A (en) * 1991-12-12 1995-05-30 International Business Machines Corporation System and method for dynamically invoking object methods from an application designed for static method invocation
CA2077273C (en) * 1991-12-12 1996-12-03 Mike H. Conner Language neutral objects
JPH06103075A (ja) * 1992-07-06 1994-04-15 Internatl Business Mach Corp <Ibm> オブジェクト指向適用業務
JP3365576B2 (ja) * 1993-06-14 2003-01-14 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトの実行方法および装置
US5555365A (en) * 1994-08-26 1996-09-10 International Business Machines Corporation Method and system for optimizing static and dynamic binding of presentation objects with the object data they represent

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1293498C (zh) * 2002-12-26 2007-01-03 株式会社东芝 模拟方法和模拟程序
CN104206000A (zh) * 2012-03-14 2014-12-10 英特尔公司 用于双重人物无线装置的移动终端体系结构

Also Published As

Publication number Publication date
EP0777178B1 (en) 2001-09-05
MY112346A (en) 2001-05-31
DE69614978D1 (de) 2001-10-11
EP0777178A1 (en) 1997-06-04
US5764958A (en) 1998-06-09
CN1101029C (zh) 2003-02-05
DE69614978T2 (de) 2002-04-04

Similar Documents

Publication Publication Date Title
CN1101029C (zh) 为系统对象模型建立动态角色的方法和装置
CN101073058B (zh) 用于隔离对软件应用程序的执行的方法
US7127509B2 (en) System and method for synchronizing objects between two devices
US5115504A (en) Information management system
AU680289B2 (en) Methods and apparatus for modeling and emulating devices in a network of telecommunication systems
CN1129068C (zh) 模型效果分析方法
US20010022592A1 (en) Data processor controlled interface with multiple tree of elements views expandable into individual detail views
CN1208889A (zh) 可分java小程序
US8250532B2 (en) Efficient development of configurable software systems in a large software development community
CA2047737A1 (en) Object oriented distributed processing system
WO1997008634A1 (en) Method and computer system for generating process management computer programs for process models
CN101073059A (zh) 用于由应用程序访问由操作系统所提供的资源的方法和系统
US5564003A (en) Batch registration of object classes
CN1794227A (zh) 不用快照的项同步系统和方法
EP1411446A1 (en) XML Multi-stage policy implementation in XSLT
CN1117328C (zh) 帮助软件应用程序中的导航和改进屏幕观察的方法和系统
EP0841612A2 (en) Framework for software development
CN1307573C (zh) 适用于个人运算装置的网络物件传送系统
CA2371622C (en) Cell descriptor
EP1424638A2 (en) System, method, and apparatus for sharing revision control databases
US6405263B1 (en) Method and apparatus for subclassing system object model classes in dynamic languages
CN1235144C (zh) 计算机系统及访问文件系统的方法
Shimazu et al. Multi-modal-method: A design method for building multi-modal systems
JPH07319921A (ja) 電子文書管理システムにおける組織情報管理方法及び装置
JP2001092793A (ja) 分散オブジェクトの適正配置推定方法および適正配置位置決定方法並びに装置

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee