| US 7,451,434 B1 | ||
| Programming with shared objects in a shared memory | ||
| Andreas Blumenthal, Heldelberg (Germany); Helmut Prestel, Bad Schoenborn (Germany); Andreas Simon Schmitt, Kalserslautern (Germany); Rolf Hammer, Karlsruhe (Germany); Holger Janz, Ketsch (Germany); Kai Baumgarten, Rauenberg (Germany); Erik Sodtke, Ubstadt-Weiher (Germany); and Ralf Wendelgass, Leimen (Germany) | ||
| Assigned to SAP Aktiengesellschaft, Walldorf (US) | ||
| Filed on Sep. 09, 2004, as Appl. No. 10/938,754. | ||
| Claims priority of provisional application 60/509053, filed on Sep. 09, 2003. | ||
| Int. Cl. G06F 9/44 (2006.01); G06F 7/00 (2006.01) | ||
| U.S. Cl. 717—116 [717/105; 717/122; 707/103 R] | 15 Claims |

| 1. A development environment for developing application programs in a computer programming language and a runtime environment
for running application programs developed using the development environment, the development and runtime environment comprising:
a development environment programmed to enable a developer using the development environment to declare an area class at design
time, where
the developer declares shared memory behaviors in the area class declaration;
the area class declaration causes the area class to be generated for use by an application at runtime as an organizational
unit for a shared objects memory,
the shared objects memory is a region of memory managed by the runtime environment that is available to be shared by multiple
sessions of one or more applications running in the runtime environment,
applications store content in area instances at runtime, an area instance being an instance of the area class, and
the declaration of the area class causes instance methods to be defined and generated, the instance methods including methods
for attaching and detaching a running session of an application to and from an area instance, a method for detaching a session
from a change request on an area instance with a commit, and a method for detaching a session from a change request on an
area instance with a rollback; and
code in the runtime environment that manages locks for area instances, locks applying to individual area instances as a whole,
the runtime environment permitting to be attached to a particular area instance only (i) one or more readers, or (ii) exactly
one changer, a changer being a writer or an updater, or (iii) no readers or changers; and
code in the development and runtime environments that supports programming language constructs for creating area instances
and programming language constructs for creating data objects within area instances, where the data objects can be of arbitrary
data type including elementary data types, structures, and references.
|