CN1101029C - 为***对象模型建立动态角色的方法和装置 - Google Patents
为***对象模型建立动态角色的方法和装置 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
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)
- Devices For Executing Special Programs (AREA)
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所述的方法,其特征在于进一步包括:
确定在所述面向对象的环境中的某个应用程序需要所述动态对象中多个角色中指定的一个角色;和
在所述列表对象里查找所述角色对象中多个角色中指定的一个角色。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US565374 | 1995-11-30 | ||
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 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)
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 |
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 |
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 |
US6526416B1 (en) | 1998-06-30 | 2003-02-25 | Microsoft Corporation | Compensating resource managers |
US6473791B1 (en) | 1998-08-17 | 2002-10-29 | Microsoft Corporation | Object load balancing |
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 |
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 |
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 |
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 |
US9277588B2 (en) * | 2012-03-14 | 2016-03-01 | 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0546682A3 (en) * | 1991-12-12 | 1993-12-08 | Ibm | Parent class shadowing |
CA2077273C (en) * | 1991-12-12 | 1996-12-03 | Mike H. Conner | Language neutral objects |
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 |
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 |
-
1995
- 1995-11-30 US US08/565,374 patent/US5764958A/en not_active Expired - Fee Related
-
1996
- 1996-11-25 DE DE69614978T patent/DE69614978T2/de not_active Expired - Fee Related
- 1996-11-25 EP EP96308493A patent/EP0777178B1/en not_active Expired - Lifetime
- 1996-11-28 MY MYPI96004996A patent/MY112346A/en unknown
- 1996-11-29 CN CN96121832A patent/CN1101029C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
MY112346A (en) | 2001-05-31 |
US5764958A (en) | 1998-06-09 |
DE69614978T2 (de) | 2002-04-04 |
EP0777178B1 (en) | 2001-09-05 |
CN1157964A (zh) | 1997-08-27 |
DE69614978D1 (de) | 2001-10-11 |
EP0777178A1 (en) | 1997-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1101029C (zh) | 为***对象模型建立动态角色的方法和装置 | |
US5734905A (en) | User interface in object oriented computer system for performing intuitive object transformations | |
JP2680255B2 (ja) | オブジェクト指向環境においてデータを転送するためのシステム及び方法 | |
EP0534409B1 (en) | A method and system for controlling the execution of an application program | |
US5291593A (en) | System for persistent and delayed allocation object reference in an object oriented environment | |
US5555427A (en) | Distributed processing in a system of computers at terminals connected by a communication network | |
US6757893B1 (en) | Version control system for software code | |
US6134706A (en) | Software business objects in a multi-level organizational structure | |
CN101073059B (zh) | 用于由应用程序访问由操作***所提供的资源的方法和*** | |
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) | 이벤트를 효율적으로 처리하는 데이타 처리 시스템 및 그의 방법과 저장장치 | |
WO1997008634A1 (en) | Method and computer system for generating process management computer programs for process models | |
CN102317907A (zh) | 任务环境生成***、任务环境生成方法和存储介质 | |
US6111579A (en) | Data processor controlled display system with a tree hierarchy of elements view having virtual nodes | |
CN1647040A (zh) | 用于管理计算机***的方法和*** | |
US6286025B1 (en) | Method and system of process identification by user defined process variables | |
US6499064B1 (en) | Method of using decoupled chain of responsibility | |
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 | |
US6405263B1 (en) | Method and apparatus for subclassing system object model classes in dynamic languages |
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 |