CN1101029C - 为系统对象模型建立动态角色的方法和装置 - Google Patents

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

Info

Publication number
CN1101029C
CN1101029C CN96121832A CN96121832A CN1101029C CN 1101029 C CN1101029 C CN 1101029C CN 96121832 A CN96121832 A CN 96121832A CN 96121832 A CN96121832 A CN 96121832A CN 1101029 C CN1101029 C CN 1101029C
Authority
CN
China
Prior art keywords
dynamic
role
list
computer system
methods
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.)
Expired - Fee Related
Application number
CN96121832A
Other languages
English (en)
Other versions
CN1157964A (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”法的特性。为了实现面向应用的调度机制,“SOM Dispatch”方法在新的分类中被重写。通过将动态目标表示为目标列表,可随时将目标加到列表上。例如,当程序启动时,“人员目标”只有学生目标,在调用需要教师特征的函数时,可在人员目标上增加教师这一角色。

Description

为系统对象模型建立动态角色的方法和装置
本发明涉及数据处理系统,特别涉及在系统对象模型(SOM)中,为面向对象的应用程序设计提供动态对象。
经过多年的争辩和讨论,面向对象的编程语言(或称OOP),变为程序设计技术的主流。OOP语言使程序设计的工作效率得到改进,提供了代码的复用性,并且便于维护。面向对象的编程模块的中心部分称作“方法解析”。这个机制就是为某个对象选择一个特定的方法以及该方法的ID和该方法的参数。在某些现有技术的对象模型中,方法解析主要是通过对程序原码的分析来确定某个对象特有的“过程入口点表”中的位移量。这些对象称之谓静态对象。在程序执行过程中,静态对象没有选择方法的可能。程序一旦开始执行,静态对象希望为特定方法ID和特定对象所选择执行的这个方法保持不变。大多数静态对象允许进行一次性解析,在使用同一对象的情况下,所选方法可以反复调用,而不必经过解析。
另一种现有技术的面向对象编程语言提供动态模型,它在运行时,能用对象名来确定一个特定的方法。在动态模型中选择哪个方法,可以在程序执行中变化。不象静态对象,只要进行了解析,就可以为同一对象反复调用所选的一个方法而无需另行解析,而动态模块就不能进行这样的过程,因为某个类别从其父类那里继承的一组方法可以在程序执行过程中作出改变,由此在程序执行的同时,改变了由某个特定方法ID和特定对象所确定的解析方法。
不论静态还是动态对象都必须适应不同角色的要求。比如某个人可以代表一个学生、教师或父亲等。为了使同一实体在不同上下文中具有不同的职能,现有技术采用多继承的面向对象机制。多继承代表的对象由不同类继承。因此,这些对象必须满足各种上下文的各种复杂要求。
我们需要这样一种机制:它能够根据对象的上下文动态地增加其角色,而不超过其限定的开销。
本项发明涉及一种在面向对象的编程环境下,为对象提供动态角色的方法和装置。这一机制能够根据产生有效程序的对象的上下文,为该对象动态地增加角色。IBM系统对象模型(SOM)是提供这一功能的主要构件。IBM系统对象模型可完成三类方法解析,第一类是位移解析,它根据对程序原码的分析,确定某个对象特定的过程入口点表的位移量;第二类是动态解析,它在运行中用对象名确定某个特定的方法;第三类是调度解析,用它来提供本发明的功能。在调度解析中,方法解析是由执行“Som Dispatch”法来决定的。本项发明在新的类别中重写了“Som Dispach”法,以便实现调度机制的实际应用。动态对象用对象列表来表示。对象可以随时加入这个列表。比如,当一个程序启动时,某个“人员对象”仅有一个学生对象。在调用需要教师对象特性的函数之前,要为该“人员对象”加上教师角色。当这些函数调用结束返回时,如果不再需要该角色,则从“人员对象”上删除教师角色。
总之,动态角色对象与一个角色列表对象相关联。需要能够为对象增加或删除一个角色的方法。这是通过重写“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 Methodfor Dynamically Invoking Object Methods from an ApplicantionDesigned for 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 (6)

1.在一计算机上实施的方法,用于在面向对象的环境中建立动态对象,该方法包括步骤:
在所述面向对象环境中,在所述计算机系统中建立具有多个角色对象的列表对象;
把具有多个方法解析的系统对象模型与所述列表对象相关联;以及
在每个所述多个角色对象中指定离散信息,以建立可通过所述系统对象模型中的所述多个方法解析访问的动态对象。
2.如权利要求1所述的方法,其特征在于还包括步骤:
确定在所述面向对象环境下,所述计算机系统中的应用程序所要求的所述角色;
在所述计算机系统中,在所述角色列表对象中查找包含所述角色的所述动态对象。
3.一种在面向对象环境中建立动态对象的装置,包括:
在所述面向对象环境下,所述计算机系统中建立具有多个角色对象的列表对象的装置;和
把具有多个方法解析的系统对象模型与所述列表对象相关联的装置;以及
用于在每个所述多个角色对象中指定离散信息,以建立可通过所述系统对象模型中的所述多个方法解析访问的动态对象的装置。
4.如权利要求3所述的装置,其特征在于还包括:
确定在所述面向对象环境中,所述计算机系统的应用程序中所需要的所述角色的装置;
在所述计算机系统中,在所述角色列表对象中查找包含所述角色的所述动态对象的装置。
5.在计算机系统中实现的用于访问面向对象环境中的动态对象的方法,包括:
在所述计算机系统中建立一个具有多个方法解析的系统对象模型;
在所述面向对象环境中建立与所述系统对象模型相关的一个列表对象;
在所述计算机系统中建立与在指定多个角色的所述面向对象环境中的所述列表对象相关的一个动态角色对象。
6.如权利要求5所述的方法,其特征在于进一步包括:
确定在所述面向对象的环境中的某个应用程序需要所述动态对象中多个角色中指定的一个角色;和
在所述列表对象里查找所述角色对象中多个角色中指定的一个角色。
CN96121832A 1995-11-30 1996-11-29 为系统对象模型建立动态角色的方法和装置 Expired - Fee Related CN1101029C (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
CN1157964A CN1157964A (zh) 1997-08-27
CN1101029C true 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)

Families Citing this family (38)

* 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
ES2207756T3 (es) * 1996-11-14 2004-06-01 Alcatel Usa Sourcing, L.P. Maquina generica de estado de software y metodo de construir objetos dinamicos para un programa de aplicacion.
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
US6442620B1 (en) 1998-08-17 2002-08-27 Microsoft Corporation Environment extensibility and automatic services for component applications using contexts, policies and activators
US6473791B1 (en) 1998-08-17 2002-10-29 Microsoft Corporation Object load balancing
US6385724B1 (en) 1998-11-30 2002-05-07 Microsoft Corporation Automatic object caller chain with declarative impersonation and transitive trust
US6574736B1 (en) 1998-11-30 2003-06-03 Microsoft Corporation Composable roles
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
US6748455B1 (en) 1999-02-23 2004-06-08 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events with filtering
US6829770B1 (en) 1999-02-23 2004-12-07 Microsoft Corporation Object connectivity through loosely coupled publish and subscribe events
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
US6684388B1 (en) 2000-08-22 2004-01-27 International Business Machines Corporation Method for generating platform independent, language specific computer code
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
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
US20040181380A1 (en) * 2002-12-26 2004-09-16 Mitsunobu Yoshida Simulation method and program product
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
WO2013137872A1 (en) * 2012-03-14 2013-09-19 Intel Corporation Mobile terminal architecture for dual personality wireless devices
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
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
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
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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1101029C (zh) 为系统对象模型建立动态角色的方法和装置
US6011917A (en) Method and computer system for generating process management computer programs from process models
US5301326A (en) Method and system for controlling the execution of an application program
CN101073058B (zh) 用于隔离对软件应用程序的执行的方法
US6757893B1 (en) Version control system for software code
US5535389A (en) Business process objects with associated attributes such as version identifier
US6134706A (en) Software business objects in a multi-level organizational structure
CN101073059B (zh) 用于由应用程序访问由操作系统所提供的资源的方法和系统
US7809798B2 (en) Shared object stores for a networked computer system
CN1208889A (zh) 可分java小程序
KR100509794B1 (ko) 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법
US8037481B2 (en) Method and system for accessing externally-defined objects from an array-based mathematical computing environment
US20010022592A1 (en) Data processor controlled interface with multiple tree of elements views expandable into individual detail views
EP1300757A1 (en) Shareable installation hierarchies
KR100221374B1 (ko) 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치
EP0483036A2 (en) Data structure within object oriented computing environment
CN1233011A (zh) 用于计算机运行期间改变软件的系统
WO1991010191A1 (en) Object oriented distributed processing system
US5564003A (en) Batch registration of object classes
CN102317907A (zh) 任务环境生成系统、任务环境生成方法和存储介质
US6111579A (en) Data processor controlled display system with a tree hierarchy of elements view having virtual nodes
US6286025B1 (en) Method and system of process identification by user defined process variables
CN1307573C (zh) 适用于个人运算装置的网络物件传送系统
AU5680894A (en) Interception system and method including user interface
US20070038979A1 (en) Method and system for transparently controlling the behavior of service methods in a service oriented architecture

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