WO2003091821A2 - Dynamic database interface - Google Patents

Dynamic database interface Download PDF

Info

Publication number
WO2003091821A2
WO2003091821A2 PCT/EP2003/003779 EP0303779W WO03091821A2 WO 2003091821 A2 WO2003091821 A2 WO 2003091821A2 EP 0303779 W EP0303779 W EP 0303779W WO 03091821 A2 WO03091821 A2 WO 03091821A2
Authority
WO
WIPO (PCT)
Prior art keywords
database
database system
application
module
operating
Prior art date
Application number
PCT/EP2003/003779
Other languages
German (de)
French (fr)
Other versions
WO2003091821A3 (en
Inventor
Thomas Bönnen
Andreas Lauterjung
Karl-Josef Errens
Original Assignee
Informationsverarbeitung Leverkusen Gmbh (Ivl)
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
Priority claimed from EP02012263A external-priority patent/EP1357483A3/en
Application filed by Informationsverarbeitung Leverkusen Gmbh (Ivl) filed Critical Informationsverarbeitung Leverkusen Gmbh (Ivl)
Priority to AU2003233965A priority Critical patent/AU2003233965A1/en
Publication of WO2003091821A2 publication Critical patent/WO2003091821A2/en
Publication of WO2003091821A3 publication Critical patent/WO2003091821A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Definitions

  • the present invention relates to a dynamic database interface for flexible coupling of an application system to database systems.
  • Database systems are to be understood here to mean a database system in a more general sense, that is to say both conventional database systems which have the data (such as user data, description data), a data query or data manipulation interface and / or an administration system (for example the schema administration) and possibly access synchronization , as well as newer database systems, such as those provided by the OMG (Open Management Group) and which also implement higher concepts, for example by expanding them at the conceptual level, for example with new data types and / or new functionalities by having other properties, such as persistence, transaction components or recovery components.
  • OMG Open Management Group
  • these extended type database systems can also contain complex functions, for example with regard to specific applications that operate on the database.
  • SAP protected trademark
  • Oracle protected trademark
  • the first case is extremely complex and labor-intensive and also has the disadvantage that if several applications are used for different database systems but the same data stock, the data must be kept redundant, which is susceptible to errors as a result of the comparison that is then necessary and inconsistencies in the data stock can lead.
  • connection system for database systems to applications which is as flexible as possible and which avoids individual interface programming as far as possible or at least reduces the effort required for this.
  • This object is achieved according to the invention by a method for operating a dynamic database interface for communicating a database system application with a database system, which
  • a dynamic database interface system which has a data processing system with a processor and a memory, which is set up in terms of programming so that it works according to the method according to the invention for operating a dynamic database interface, this being the case for all embodiments of the invention
  • the procedure also applies.
  • XML Extended Markup Language
  • W3C World Wide Web Consortium
  • the XML itself is modular, so that own document formats can be defined within the standard by combining or reusing other formats. This ensures that all target systems can communicate with this format. If an XML interface for an application is not yet available, at least existing application interfaces can be easily mapped to XML, if only because of the properties mentioned above, so that there is a flexible connection solution from database systems to applications that already have an XML interface. which is increasingly the case, but at least the effort of programming an interface is reduced, since only an XML interface that is easier to create has to be created.
  • the method for operating a dynamic database interface preferably receives from the database system application the parameterized database system function call for the database system in XML format in such a way that, in addition to the respective parameter value or values
  • step (iii) preferably before step (iii), particularly preferably using a separate implementation database, checks whether the database system function call received by the database application is actually available for call from the database system and / or whether all the parameters required by the database system for executing the database system function call have also been received by the database application , in the negative case an error message encoded in XML format is sent back to the database system application.
  • the implementation is carried out, preferably in step (ii), particularly preferably using a separate implementation database, for example based on an identification of the parameters (for example using the parameter identifier and / or the parameter structure and / or based on whether the parameters are export or import) ), which determines which parameters received from the database system application must be converted to which parameters compatible with the database system, which conversely can also be implemented by the database system in the direction of the database system application.
  • a separate implementation database for example based on an identification of the parameters (for example using the parameter identifier and / or the parameter structure and / or based on whether the parameters are export or import) ), which determines which parameters received from the database system application must be converted to which parameters compatible with the database system, which conversely can also be implemented by the database system in the direction of the database system application.
  • the functions of the database system are therefore mapped 1: 1 in XML according to this specification. Only the fields that are available are filled. If there are too few fields, only database system fields, such as SAP fields, are sent back that have an equivalent on the application side, for example on the side of a geographic information system (GIS).
  • GIS geographic information system
  • the process works according to the rules of set theory, i.e. If the database side is a subset of the application side, the parameters of the database system are completely imported into the application and vice versa. However, the database system indicates when a mandatory field (such as a so-called mandatory field in the SAP system) has to be filled.
  • the protocol runs as follows:
  • the method according to the invention is thus fault-tolerant and can be used in the same way for any database system.
  • ⁇ PARAM1> x ⁇ / PARAM1> the SAP existing and received values and ⁇ /A> sends A and B as answer.
  • Data are imported from ⁇ B> x ⁇ /B> GIS view.
  • a particularly preferred embodiment of the method according to the invention for operating a dynamic database interface is characterized in that a geographic information system (GIS) is used as the database system application and at least one structural database system, preferably with a relational database, is used as the database system, in which structural, ie non-spatial data objects are stored from a geodatabase that also belongs to the geographic information system, the geodatabase being organized according to the spatial position of objects, preferably as a quad tree or relational, and at least the spatial data, preferably the geometric and / or geographic data of the objects, are stored therein ,
  • reference information associated with the respective object is also stored in the geodatabase, which contains the space stored in the geodatabase Assign object data to at least one object in the structure database system, and furthermore, when accessing an object of the geodatabase, automatically creates the assignment to the assigned objects of the structure database system via the dynamic database interface using the reference information stored here and thereby also access
  • GIS Geographic information systems
  • spatial data i.e. the data about the geometric relationships, such as the dimensions of the objects, which can be accessed using the geographic information system and which can be accessed through the GIS can also be displayed graphically and, on the other hand, other non-geometric data that are assigned to the individual objects.
  • here is a GIS that should help document the telephone connections of a certain area.
  • spatial data For the management of spatial data, it is desirable due to the large amount of data that arises for reasons of reaction speed to database queries that the objects can be accessed particularly effectively on the basis of their spatial data, for example in that the spatial data of such objects that are in reality are geographically adjacent, are actually physically or at least logically closely 'adjacent' stored. This is necessary, for example, to enable the user of a GIS to be able to effectively navigate through the world of the graphical representation of the stored spatial data using appropriate navigation means (such as a mouse, a trackball or selected buttons on the control keyboard) navigate, such as being able to scroll here.
  • Such an organization of spatial data can be achieved in various ways, for example by using so-called QuadTrees.
  • Structural object data are usually stored according to the state of the art in relational databases, which give their respective users a logical view of the Things, namely the objects and their relationships to one another, without the user being further burdened with the actual technical implementation of these databases.
  • the current solution known according to the prior art usually consists in appending only the most necessary structural data to the spatial data and organizing the structural data in parallel and completely independently in a separate relational database.
  • this solution also has decisive disadvantages. This means that two different databases have to be set up and maintained, which requires skilled operators, whose ideal type, in the form of both systems, is difficult to find. Inconsistencies in the management of the holdings of both databases are almost preprogrammed, since the operators of one database have to inform the operators of the other database of changes made for the purpose of supplementation and vice versa, which in practice is sufficient for large systems simply because of human error, such as Convenience, forgetting or even insightfulness occurs.
  • GIS geographic information system
  • Allow data by assigning at least one piece of reference information to the associated structural data in the structure database system to the data organized according to spatial criteria in the geodatabase. This can be done, for example, by storing an access key for the structure database system in the geodatabase for the respective object.
  • the access module which is also associated with the GIS, can then access the associated objects of the structure database system there as reference information when accessing the geodatabase - which usually takes place according to spatial criteria, that is to say using a spatial key.
  • the geodatabase within the meaning of the present invention can also be regarded as organized according to the spatial position of objects if this organization is carried out in whole or in part on a purely logical level; This does not necessarily require a physical organization of the geodatabase according to the spatial position of objects, especially in view of the progressive database technology.
  • back-reference information assigned to the respective object is preferably stored in the structure database system, which assigns the structural object data stored in the structure database system to at least one object in the geodatabase and which is retrieved from the geographic information system via the dynamic database interface or at least can be called up.
  • This makes it possible to draw conclusions about the objects of the geodatabase when accessing the structure database system. In this case, for example, it can be determined in which houses there are gas connection components from a particular manufacturer.
  • a back access module is preferably provided for this purpose, which does this on the basis of the back reference information or back reference information.
  • the geodatabase is preferably organized as a QuadTree, which is suitable for geographic information systems that are based on spatial aspects. organized, has proven particularly successful.
  • the Smallworld system (protected trademark) represents, for example, such an embodiment which is suitable for the present invention.
  • the geodatabase is organized as a relational database according to the spatial position of objects.
  • it can also be organized purely logically according to the spatial position of objects, for example by creating special - even geometric - relations between adjacent objects.
  • the structure database system preferably has a relational database, such as is used in SAP (protected trademark) systems, which corresponds to the structure of the structural data from the logical approach.
  • SAP protected trademark
  • schema databases CODASYL
  • hierarchical or associative databases are also good for this.
  • a method for operating a pool manager for connecting a database system application to at least one database system by means of at least the dynamic database interface which in each case according to the method according to the present
  • the pool manager receives requests from the database system application for communication with the database system or the database systems and then, for the requesting database system application, an instance of itself or a communication module assigned to the requesting database system application generated or assigned at least one associated dynamic database interface.
  • the pool manager preferably a Corba pool manager, is used here to enable applications that cannot independently establish a connection to a host system to access - possibly different - database systems.
  • the pool manager is therefore to be seen as an intermediary between the requirements of a requesting system, that is to say the database system application and the database system. In all cases the pool manager must provide his services independently of the operating system.
  • the pool manager should also be independent of the programming language of the requesting application. To the same extent, independence from proprietary communication systems of the database system is required.
  • the pool manager can meet the required conditions, its external interfaces can comply with the W3C (World Wide Web Consortium) standard.
  • the data format for data communication is XML (Extended Markup Language), by means of which platform-independent through a set of rules, one also speaks of guidelines or conventions, structured data for the exchange between different systems is made available.
  • the XML itself is modular, so that own document formats can be defined within the standard by combining or reusing other formats. This ensures that all target systems can communicate with the new format, the interpretation of the content of the XML document preferably being carried out by the Corba module, particularly preferably by a Corbaserver module.
  • the data communication is thus defined in this embodiment by the Corba specification.
  • the pool manager as Corba pool manager is then a server, which as an independent system e.g. is implemented or runs as a service or on its own data processing system and, when requested by an application, takes over the establishment of a connection to the database system and transparent communication of the data from and to the database system.
  • the pool manager preferably Corba pool manager, is available as an external third-party application. Since no proprietary communication technology is used here, platform independence is ensured.
  • the calling application builds its request in an XML package, for example, which is sent to the pool manager, preferably Corba Poolmanager, via http. As soon as the latter receives a request, a separate instance of the pool manager is preferably created for this request. built up. This instance remains persistent until all communication between the application in question and the database system is ended.
  • the applications that use the pool manager do not have to be of a special type.
  • a connection preferably a Corba connection, to the host system, that is to say the database system, is created. If the number of instantiable connections on the corresponding data processing system serving as the server for the pool manager is too small, or if the host system does not respond temporarily, the connection establishment preferably remains in a waiting loop.
  • a connect string within the XML data packet is preferably evaluated by the instance of the pool manager or the communication module.
  • the respective database system is thereby identified as the target system and a suitable connection to it is switched.
  • the instance of the pool manager or of the communication module in the form of a Corba module serves as a translator between the information in the XML package and the data packages required for the database system in cooperation with a respective dynamic database interface Database system according to the present invention, also called a bridge.
  • a dynamic database interface associated with the instance of the communication module or the pool manager is then preferably set up as a so-called SAP bridge, in which the communication to SAP via SAP's own RFC.
  • a Corbaserver module interprets the XML structure and parameterizes the RFC calls via the SAP bridge.
  • the bridge is fault-tolerant when parameterizing the database system. This means - as already explained above for the dynamic database interface itself - that the parameter bars are filled up transparently for the user, and the return transport of the result data to the requesting application is reduced accordingly.
  • Any Corbaserver module communicates with the database system via a bridge.
  • any, including foreign, bridges are registered with the instance of the pool manager or the communication module, for example the Corbaserver module.
  • This allows third-party applications to use their own access structures or make specialized access structures usable.
  • a Corbaserver module which functions as a communication module, provides the methods "Register” or "Deregister” for the registration.
  • the bridges that is to say the dynamic database interfaces according to the present invention, are themselves constructed in such a way that they accept an XML string, parse it and pass it on for the database system in accordance with the format.
  • the results from the database system are converted back into XML, for which the methods "Call” and “UseFlushwrite” are made available.
  • Corbaserver module can also communicate directly with other applications. To do this, they must have the Corba-specific IDL (Interface Definition Language). The connection is then preferably established as a so-called "named service”.
  • IDL Interface Definition Language
  • the Corbaserver module also serves as a general intermediary between independent applications and database systems.
  • the Corbaserver module provides the methods for establishing a connection to the SAP system and data communication via RFC via SAP Bridge.
  • connection connections Because of the structure of the connection establishment, the independent instantiation of a communication, the number of connection connections is not subject to any restrictions.
  • several or individual applications can be connected to several or individual database systems by the pool manager according to the present invention. If in operation restrictions of the actually possible connections due to If storage space limits occur, a load distribution can be achieved, for example, by communicating with a second or further data processing system (s) with the pool manager.
  • the two or more servers then preferably communicate via (a) named pipe (s).
  • the method according to the invention for operating a pool manager is thus fully scalable, a particular advantage being that it is also scalable on a task basis.
  • the communication request from the database system application to the pool manager is preferably also in XML format with a data packet part, preferably a so-called connect string within the XML data packet, which the pool manager evaluates and which identifies the database system or the database systems to which the communication is being established the instance of itself or of the communication module is generated or assigned with at least one associated dynamic database interface which is used to communicate the data tenbank system application with the requested database system or database systems.
  • the method for operating the pool manager can be characterized in that the pool manager generates or assigns a Corba module, preferably a Corbaserver module as an instance of itself or as a communication module, so that communication with the database system application and / or or the respective dynamic database interface or database interfaces is processed directly or indirectly using the Internet Inter Object Request Broker Protocol (HOP).
  • a Corba module preferably a Corbaserver module as an instance of itself or as a communication module, so that communication with the database system application and / or or the respective dynamic database interface or database interfaces is processed directly or indirectly using the Internet Inter Object Request Broker Protocol (HOP).
  • HOP Internet Inter Object Request Broker Protocol
  • CORBA Common Object Request Broker Architecture
  • access to a growing number of subscribers to the database system can be made scalable, which can be ensured, for example, by combining a certain number of subscribers (clients) who should have access to the database system on a so-called Corba server system be, which leads the data traffic to the respective client by means of HOP and this Corba server system is then connected to the actual database system.
  • a Corbaserver module is therefore preferably generated or assigned as a Corba module, which is designed in such a way that it handles its communication with the database system application via at least one CORBA intermediate instance, the pool manager preferably having a Corbaclient for the Corbaserver module generated or assigned in each case - Module created or assigned as an intermediate instance, which preferably converts the database application by means of data sent in XML format into the Internet Inter Object Request Broker Protocol (HOP) for the Corbaserver module and vice versa data received in this protocol by the Corbaserver module converts so that they are sent to the database application in XML format.
  • HOP Internet Inter Object Request Broker Protocol
  • the pool manager has a Corba application server module as the Corbaclient module or the Corbaser server module that is generated or assigned associated and thus also generated or assigned as an intermediate instance, which transfers data sent by the database application using an intermediate transfer protocol, preferably using the TCP / LP protocol in XML format, to the Internet Inter Object Request Broker Protocol (IIOP) for the Corbaser server.
  • Module converts and vice versa converts data received by the Corbaserver module in this protocol so that it is sent to the database application in XML format by means of the intermediate transmission protocol, preferably the TCP / IP protocol.
  • GIS geographic information system
  • SAP protected trademark
  • the pool manager can of course also be implemented in a system which has a data processing system with a processor and a memory and which is set up in terms of programming so that it operates according to the method for operating a pool manager according to the present invention.
  • This system can also be designed in such a way that it has at least two data processing systems connected to one another via a communication channel, each with at least one processor and one memory, the first being set up in terms of programming so that a pool manager is operated which handles the requesting database system application assigned Corbaserver module each generates or assigns with at least one associated dynamic database interface on the second data processing system, it handles its communication with the database system application via the Corbaclient module, which is located on the first data processing system, as an CORBA intermediate instance
  • the pool manager can also be implemented as a computer program which has instructions which are set up to carry out the method according to the present invention.
  • GIS geographical information system
  • SAP SAP system
  • SAP login dialog (SAP LOG IN)
  • the ACP provides its own SAP login dialog.
  • Silent SAP logon (SAP SILENT LOG IN) Logon is controlled by the client (GIS).
  • Silent SAP logout (SAP SILENT LOG OUT) Function for "silently” logging off a user from SAP.
  • This call should be selected if several systems are to be connected to the GIS.
  • This function has no intermediate wrapper and is passed on directly to SAP.
  • Input XML statement. Returns: XML statement.
  • SAPart 0; string type; ⁇ TYPE> String ⁇ /TYPE> length 18 characters; no deci
  • Fig. 3 is a schematic representation of an embodiment of a pool manager system according to the present invention.
  • La-e show the functioning of the method according to the invention for operating a dynamic database interface for communicating a database system application with a database system on the basis of schematic representations of the parameter exchange.
  • FIG. 1 a illustrating the general principle according to which a function call by the application, here GIS, and then a check, whether the function is present, whereby if the function is available on the part of the database system, here SAP, the function is carried out and the parameters are returned to the application. If the function does not exist, an error message is preferably returned.
  • Fig. Lb shows the case that the parameters passed do not match.
  • the GIS page is too large here, there are too few fields in SAP because field 3 does not exist.
  • SAP still sends the requested data back, because in this case SAP represents a subset of the incoming GIS data. There is therefore no error message here.
  • 1c shows the case in which fewer parameters are made available by the application than SAP can process as parameters for the function call. This transaction also does not generate an error message because GIS provides a subset of the SAP function parameters here. An error message would only appear if the missing fields 3 and 4 were mandatory.
  • the example illustrates the principle of mapping all transactions 1: 1 and the claim of fault tolerance.
  • FIG. 1d shows, analogously to FIG. 1c, the case in which the SAP parameter subset is completely mapped on the GIS side.
  • 2a-c show different possibilities of a communication link between a database system application and a database system via a dynamic database interface according to the present invention.
  • Fig. 2a shows the case that a geographic information system acts as a database system application, it communicates in XML format with a Corba module as an instance of a communication module, here called GISConnect.NT Engine, which in turn is a dynamic database system according to the The present invention, namely here a bridge, is assigned, which converts the XML format to the format of the database system, for example in RFCs.
  • GISConnect.NT Engine a dynamic database system according to the The present invention, namely here a bridge, is assigned, which converts the XML format to the format of the database system, for example in RFCs.
  • a Corbaclient module is connected as an intermediate instance between the Corbaserver module, here called GISConnect.NT Corba server, which transmits data sent by the database application, here GIS, in XML format to the Internet Inter Object Request Broker Converts protocol (HOP) for the Corbaserver module and conversely converts data received by the Corbaserver module in this protocol in such a way that it is sent to the database application in XML format.
  • the Corbaserver module is also assigned a dynamic database system according to the present invention, namely a bridge, which converts the XML format to the format of the database system, that is to say, for example in RFCs, and conversely carries out the conversion into XML.
  • 2c finally shows the case in which a Corba application server module was created or assigned as a further intermediate instance to the Corbaserver module that was generated or assigned, which was created by the database application, here GIS, using an intermediate transmission protocol, preferably using TCP / IP protocol converts data sent in XML format into the Internet Inter Object Request Broker Protocol (HOP) for the Corbaserver module and conversely converts data received from the Corbaserver module in this protocol in such a way that it is preferably by means of the intermediate transmission protocol of the TCP / IP protocol are sent to the database application in XML format.
  • GIS Internet Inter Object Request Broker Protocol
  • Corba application server version preferably Corba HTTP application server version
  • the pool manager then preferably creates personalized Corba objects.
  • the connection to the pool manager preferably runs via a TCP / IP socket connection, the protocol being XML.
  • the HTTP Corba Applications server can run under Windows NT, for example, but its structure is basically platform-independent. There is no operating system dependency for the clients.
  • FIG. 3 shows a schematic representation of an embodiment of a pool manager system according to the present invention.
  • database systems are accessed using the so-called “Common Object Request Broker Architecture” (CORBA), which is becoming increasingly popular as an open standard for distributed network applications.
  • CORBA Common Object Request Broker Architecture
  • access to a growing number of participants in the database system can be made scalable, which is ensured, for example, by the fact that a certain number of participants who should have access to the database system on a so-called Corba application server system, upper part of the image (GISConnect .NT HTTP Server), which leads the data traffic to the respective client using IIOP and this Corba application server system then with the actual database system, here SAP, via the XML shown in the lower part of the figure Corbaser server system via SAP bridges (embodiments of dynamic database interfaces according to the present invention) is connected.
  • a Corbaserver module is preferably generated or assigned here as a Corba module, which is designed in such a way that it processes its communication with the database system application via at least one CORBA intermediate instance, namely a Corbaclient module, the pool manager preferably generating each or assigned Corbaserver module creates or assigns such a Corbaclient module as an intermediate instance, which converts data sent by the database application in XML format into the Internet Inter Object Request Broker Protocol (IIOP) for the Corbaserver module and vice versa by the Corbaserver module. Module converts data received in this protocol so that it is sent to the database application in XML format.
  • IIOP Internet Inter Object Request Broker Protocol
  • Corba application server module which performs the above implementation process, can either anonymously with an assigned Corbaclient module (which then preferably does not implement itself in and after IIOP) as well as via known users, for example for http communication (as Corbaclient- Module, which then also implements), for example via the World Wide Web.
  • Corbaclient- Module which then also implements
  • the type of the requesting application is independent of this, the registration form depends on the database system involved.
  • Corbaclient modules 1-n are preferably used as (anonymous [approximately assigned to a Corba application server module that is implemented by and in 1TOP]) or by name [approximately even as a Corba application Server module acting and implemented by and in IIOP]) access objects.
  • SAP bridges SAP Bridge 1-n
  • SAP bridges are automatically started or generated at the start of a session, for example if SAP is used as the database system.
  • the pool manager manages the incoming requests and assigns one Corbaclient module each. If the number of Corbaclient modules is too low, the requests preferably remain in a queue until the pool manager can allocate a free space.
  • the pool manager creates a Corba application server module as the Corba client for the respectively created or assigned Corbaserver module or only assigns it to a Corbaclient module and thus also creates or assigns as an intermediate instance which one converts data sent by the database application using an intermediate transmission protocol, preferably using the TCP / IP protocol in XML format, into the Internet Inter Object Request Broker Protocol (IIOP) for the Corbaserver module and vice versa from the Corbaserver module in this protocol converts received data in such a way that they are sent to the database application in XML format using the intermediate transmission protocol, preferably the TCP / LP protocol.
  • an intermediate transmission protocol preferably using the TCP / IP protocol in XML format
  • IIOP Internet Inter Object Request Broker Protocol
  • Corba application server module itself does not function as a Corbaclient module, but is only assigned to it, this is preferably because the Corbaclient module then only serves for the assignment to the, preferably anonymous, user rights and the implementation from and to IIOP in this Not from the Corbaclient module, but from the Corba application server module assigned to it.
  • the HTTP Corba Applications server system shown here in the upper part of the figure can also be controlled from other applications. This makes it possible for the external application to specifically retrieve data from the database system. This enables a synchronous or asynchronous connection to the database system to be established under the control of the external application. This property of the HTTP Corba application server system seen here also allows targeted use in test systems. In particular, the direct communication test via a website is possible. Overall, this minimizes development times.

Abstract

The invention relates to a method for operating a dynamic database interface for the communication between a database system application and a database system. According to the inventive method, said interface (i) receives a parameterised database system function call from the database system application, coded in the XML format, for the database system, (ii) converts said function call, as far as possible, into a format which is compatible with the database system, (iii) sends the corresponding parameterised database system function call, as far as possible, to the database system, in a format which is compatible with the database system, (iv) if a database system function call is successful, receives a parameterised result from the database system, coded in a format which is compatible with the database system, (v) if a database system function call is successful, converts the parameterised result into the XML format, and (vi) if a database system function call is successful, sends the received parameterised result, coded in the XML format, back to the database system application.

Description

Titel: Dynamisches Datenbankinterface Title: Dynamic database interface
Anmelder: Informationsverarbeitung Leverkusen GmbH (INL), Overfeldweg 55, D - 51371 Leverkusen, BR DeutschlandApplicant: Informationsverarbeitung Leverkusen GmbH (INL), Overfeldweg 55, D - 51371 Leverkusen, BR Germany
Die vorliegende Erfindung betrifft ein dynamisches Datenbankinterface zur flexiblen An- kopplung eines Applikationsystems an Datenbanksyteme.The present invention relates to a dynamic database interface for flexible coupling of an application system to database systems.
Es erweist sich in der Praxis immer wieder als ausgesprochen schwierig verschiedene Applikationen an vorhandene Datenbanksysteme anzukoppeln, obwohl hier ein großer Bedarf besteht.In practice, it has repeatedly proven to be extremely difficult to connect various applications to existing database systems, although there is a great need here.
Unter Datenbanksystemen soll dabei hier ein Datenbanksystem i allgemeineren Sinne verstanden werden, also sowohl herkömmliche Datenbanksysteme, die die Daten (wie etwa Benutzerdaten, Beschreibungsdaten), ein Datenabfrage- bzw. Datenmanipulationsinterface und/oder ein Verwaltungssystem [etwa die Schemaverwaltung] sowie u.U. eine Zugriffssynchronisation aufweisen, als auch Datenbanksysteme neuerer Art, wie sie etwa von der OMG (Open Management Group) vorgesehen werden und die darüber hinaus auch höhere Konzepte realisieren, etwa indem diese auf der konzeptionellen Ebene, etwa durch neue Datentypen und/oder neue Funktionalitäten erweiterbar sind oder auch indem sie weitere Eigenschaften, wie etwa Persistenz, Transaktionskomponenten oder auch Recovery- Komponenten besitzen. Auch können diese Datenbanksysteme erweiterten Typs neben den sonst üblichen Komponenten zur Anfrage- und Datenmanipulation bereits komplexe Funktionen, etwa im Hinblick auf bestimmte Anwendungen, die auf der Datenbank operieren beinhalten. Auch komplette Programmierumgebungen zur Veränderung oder Wartung des Datenbanksystems können Bestandteil solcher Datenbanksysteme sein. Als ein Beispiel für ein solches komplexeres Datenbanksystem sei etwa das SAP(geschützte Marke)- System genannt. Derartige Datenbanksysteme können selbst sich intern wiederum eines Datenbanksystems im konventionelleren, eingangs genannten Sinne, bedienen, wie etwa das SAP-Datenbanksystem mit einer Oracle(geschütze Marke)-Datenbank arbeiten kann.Database systems are to be understood here to mean a database system in a more general sense, that is to say both conventional database systems which have the data (such as user data, description data), a data query or data manipulation interface and / or an administration system (for example the schema administration) and possibly access synchronization , as well as newer database systems, such as those provided by the OMG (Open Management Group) and which also implement higher concepts, for example by expanding them at the conceptual level, for example with new data types and / or new functionalities by having other properties, such as persistence, transaction components or recovery components. In addition to the otherwise customary components for request and data manipulation, these extended type database systems can also contain complex functions, for example with regard to specific applications that operate on the database. Complete programming environments for changing or maintaining the database system can also be part of such database systems. An example of such a more complex database system is SAP (protected trademark) - System called. Such database systems can themselves use a database system internally in the more conventional sense mentioned at the beginning, such as how the SAP database system can work with an Oracle (protected trademark) database.
Oftmals existieren nämlich bereits große Datenbanksysteme mit umfangreichen Datenbeständen, die aber unterschiedlichen Anwendungen zugänglich gemacht werden sollen. Andererseits weisen diese Anwendungen jedoch oft keine geeigneten Schnittstellen zur An- kopplung an die Datenbanksysteme auf, so daß in diesen Fällen entweder der Datenbestand in ein zur Applikation (Anwendung) kompatibles Datenbanksystem überführt, oder aber eine für die Applikation geeignete Datenbanksystemschnittstelle erstellt werden muß.Large database systems with extensive databases are often already in existence, but are to be made accessible to different applications. On the other hand, however, these applications often do not have suitable interfaces for coupling to the database systems, so that in these cases either the database is transferred to a database system compatible with the application (application) or a database system interface suitable for the application has to be created.
Der erste Fall ist ausgesprochen aufwendig und arbeitsintensiv und weist darüber hinaus den Nachteil auf, daß bei Verwendung mehrerer Applikationen für unterschiedliche Datenbanksysteme, aber gleichen Datenbestand, die Daten redundant gehalten werden müssen, was infolge des dann notwendigen Abgleichs untereinander fehleranfällig ist und zu Inkonsistenzen des Datenbestandes führen kann.The first case is extremely complex and labor-intensive and also has the disadvantage that if several applications are used for different database systems but the same data stock, the data must be kept redundant, which is susceptible to errors as a result of the comparison that is then necessary and inconsistencies in the data stock can lead.
Aber auch die zweite Lösung ist sehr arbeitsaufwendig, da sie die Erstellung eines individuell zu erstellenden Interface zwischen jeder Applikation und dem Datenbanksystem voraussetzt.But the second solution is also very labor-intensive, since it requires the creation of an individually created interface between each application and the database system.
Es ist daher Aufgabe der vorliegenden Erfindung eine möglichst flexible Anbindungslösung von Datenbanksystemen an Applikationen anzugeben, die eine individuelle Interfaceprogrammierung möglichst vermeidet oder zumindest den hierzu notwendigen Aufwand senkt.It is therefore an object of the present invention to provide a connection system for database systems to applications which is as flexible as possible and which avoids individual interface programming as far as possible or at least reduces the effort required for this.
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren zum Betrieb eines dynamischen Datenbankinterface zur Kommunikation einer Datenbanksystem-Applikation mit einem Datenbanksystem gelöst, welchesThis object is achieved according to the invention by a method for operating a dynamic database interface for communicating a database system application with a database system, which
i. einen parametrierten Datenbanksystem-Funktionsaufruf für das Datenbanksystem von der Datenbanksystem-Applikation im XML-Format codiert empfängt, ii. diesen, soweit möglich, in ein zum Datenbanksystem kompatibles Format umsetzt,i. receives a parameterized database system function call for the database system coded in XML format by the database system application, ii. convert this, as far as possible, into a format compatible with the database system,
iii. den, soweit möglich, entsprechenden parametrierten Datenbanksystem- Funktionsaufruf zum Datenbanksystem hin in einem zum Datenbanksystem kompatiblen Format codiert sendet,iii. sends, as far as possible, the corresponding parameterized database system function call to the database system coded in a format compatible with the database system,
iv. falls ein Datenbanksystem-Funktionsaufruf erfolgte, ein parametriertes Ergebnis von dem Datenbanksystem in einem zum Datenbanksystem kompatiblen Format codiert empfängt,iv. if a database system function call was made, receives a parameterized result from the database system coded in a format compatible with the database system,
v. falls ein Datenbanksystem-Funktionsaufruf erfolgte, das parametrierte Ergebnis in das XML-Format umsetzt undv. if a database system function call was made, the parameterized result is converted into XML format and
vi. falls ein Datenbanksystem-Funktionsaufruf erfolgte, das empfangene parametrierte Ergebnis im XML-Format codiert wieder an die Datenbanksystem- Applikation zurücksendet.vi. if a database system function call was made, the parameterized result received in XML format is sent back to the database system application.
Ferner wird diese Aufgabe auch durch ein dynamisches Datenbankinterface System gelöst, welches es ein Datenverarbeitungssystem mit einem Prozessor und einem Speicher aufweist, das programmtechnisch so eingerichtet ist, daß es nach dem erfindungsgemäßen Verfahren zum Betrieb eines dynamischen Datenbankinterface arbeitet, wobei dies für alle Ausführungsformen des erfindungsgemäßen Verfahrens ebenso gilt.Furthermore, this object is also achieved by a dynamic database interface system, which has a data processing system with a processor and a memory, which is set up in terms of programming so that it works according to the method according to the invention for operating a dynamic database interface, this being the case for all embodiments of the invention The procedure also applies.
Gleiches gilt selbstverständlich auch für ein Computerprogramm, welches Instruktionen aufweist, die zur Durchführung des erfindungsgemäßen Verfahrens eingerichtet sind, wobei dies ebenso für alle Ausführungsformen des erfindungsgemäßen Verfahrens gilt.The same naturally also applies to a computer program which has instructions which are set up to carry out the method according to the invention, and this also applies to all embodiments of the method according to the invention.
Eine weitgehende Unanhängigkeit von etwaigen nicht standardisierten Applikationsformaten wird hier bereits durch die Verwendung des XML-Formats (XML = Extended Markup Language) erreicht, welches dem Standard der W3C (World Wide Web Consortium) entspricht, was eine weite Verbreitung sicherstellt. Es handelt sich bei diesem Datenformat für die Datenkommunikation um einen Satz von Regeln, man spricht auch von Richtlinien oder Konventionen, durch die strukturierte Daten zum Austausch zwischen unterschiedlichen Systemen zur Verfügung gestellt werden.A large degree of independence from any non-standardized application formats is already achieved here by using the XML format (XML = Extended Markup Language), which corresponds to the W3C (World Wide Web Consortium) standard, which ensures widespread use. This data format for data communication is a set of rules, one also speaks of guidelines or conventions that make structured data available for exchange between different systems.
Die XML selbst ist modular, so daß innerhalb der Norm eigene Dokumentenformate definierbar sind, indem man andere Formate kombiniert oder wiederbenutzt. Somit ist sichergestellt, dass alle Zielsysteme mit diesem Format kommunizieren können. Ist noch keine XML-Schnittstelle für eine Applikation vorhanden, so können zumindest vorhandene Applikationsschnittstellen - schon aufgrund der vorstehend erwähnten Eigenschaften - leicht auf XML abgebildet werden, so daß eine flexible Anbindungslösung von Datenbanksystemen an Applikationen gegeben ist, die bereits eine XML-Schnittstelle aufweisen, was zunehmend der Fall ist, zumindest aber der Aufwand einer Interfaceprogrammierung gesenkt wird, da nur noch ein leichter zu erstellendes XML-Interface erstellt werden muß.The XML itself is modular, so that own document formats can be defined within the standard by combining or reusing other formats. This ensures that all target systems can communicate with this format. If an XML interface for an application is not yet available, at least existing application interfaces can be easily mapped to XML, if only because of the properties mentioned above, so that there is a flexible connection solution from database systems to applications that already have an XML interface. which is increasingly the case, but at least the effort of programming an interface is reduced, since only an XML interface that is easier to create has to be created.
Vorzugsweise empfängt das Verfahren zum Betrieb eines dynamischen Datenbankinterface nach der vorliegenden Erfindung von der Datenbanksystem-Applikation den parametrier- ten Datenbanksystem-Funktionsaufruf für das Datenbanksystem im XML-Format so codiert, daß dieser neben dem jeweiligen Parameterwert oder ParameterwertenThe method for operating a dynamic database interface according to the present invention preferably receives from the database system application the parameterized database system function call for the database system in XML format in such a way that, in addition to the respective parameter value or values
auch eine Identifikation des Parameters, vorzugsweise einen Parameterbe- zeichner, und/oderalso an identification of the parameter, preferably a parameter identifier, and / or
auch Informationen über die Struktur des Parameters, und/oderalso information about the structure of the parameter, and / or
Informationen darüber, ob der jeweilige Parameter ein Export- oder ein Importparameter istInformation about whether the respective parameter is an export or an import parameter
aufweist.having.
Gleiches kann auch für das vom Datenbanksystem empfangene parametrierte Ergebnis vorgesehen sein, welches in das XML-Format so umgesetzt und wieder an die Datenbanksystem-Applikation zurücksendet wird.The same can also be provided for the parameterized result received by the database system, which result is converted into XML format and sent back to the database system application.
In einer Ausführungsform des erfindungsgemäßen Verfahrens wird, vorzugsweise vor Schritt (iii), besonders bevorzugterweise anhand einer eigenen Umsetzungsdatenbasis, überprüft, ob der von der Datenbank-Applikation empfangene Datenbanksystem- Funktionsaufruf von Seiten des Datenbanksystems auch tatsächlich zum Aufruf zur Verfügung steht und/oder, ob alle vom Datenbanksystem unbedingt für die Ausführung des Datenbanksystem-Funktionsaufrufes notwendigen Parameter auch von der Datenbank- Applikation empfangen wurden, wobei es im negativen Falle eine Fehlermeldung im XML- Format codiert wieder an die Datenbanksystem-Applikation zurückgesendet wird.In one embodiment of the method according to the invention, preferably before step (iii), particularly preferably using a separate implementation database, checks whether the database system function call received by the database application is actually available for call from the database system and / or whether all the parameters required by the database system for executing the database system function call have also been received by the database application , in the negative case an error message encoded in XML format is sent back to the database system application.
Die Umsetzung erfolgt dabei, vorzugsweise in Schritt (ii), besonders bevorzugterweise anhand einer eigenen Umsetzungsdatenbasis, etwa anhand einer Identifikation der Parameter (z.B. anhand der Parameterbezeichner und/oder der Parameterstruktur und/oder anhand dessen, ob es sich um Ex- oder Importparameter handelt), wobei hier festgestellt wird, welche von der Datenbanksystem-Applikation empfangenen Parameter auf welche zum Datenbanksystem kompatiblen Parameter umgesetzt werden müssen, was umgekehrt vom Datenbanksystem in Richtung der Datenbanksystem-Applikation ebenso realisiert sein kann.The implementation is carried out, preferably in step (ii), particularly preferably using a separate implementation database, for example based on an identification of the parameters (for example using the parameter identifier and / or the parameter structure and / or based on whether the parameters are export or import) ), which determines which parameters received from the database system application must be converted to which parameters compatible with the database system, which conversely can also be implemented by the database system in the direction of the database system application.
Bei dem erfindungsgemäßen Verfahren zum Betrieb eines dynamischen Datenbankinterface werden die Funktionen des Datenbanksystems (etwa sogenannte BAPIS und/oder RFC [Remote Function Call]-fähige Funktionsbausteine) somit nach dieser Spezifikation 1:1 in XML abgebildet. Es werden lediglich die Felder gefüllt, die vorhanden sind. Sind zu wenig Felder vorhanden, werden nur Datenbanksystem-Felder, etwa SAP-Felder zurück geschickt, die eine Entsprechung auf der Applikationsseite, etwa auf Seiten eines Geographischen Informations System (GIS), haben. Insgesamt funktioniert der Ablauf nach den Regeln der Mengenlehre, d.h. ist die Datenbank-Seite eine Teilmenge der Applikations-Seite, dann werden die Parameter des Datenbanksystems vollständig in die Applikation importiert und umgekehrt. Allerdings zeigt das Datenbanksystem an, wenn ein Pflichtfeld (im SAP-System etwa ein sogenanntes mandatory field) gefüllt werden muß. In Kurzform läuft das Protokoll folgendermaßen ab:In the method according to the invention for operating a dynamic database interface, the functions of the database system (for example so-called BAPIS and / or RFC-capable function blocks) are therefore mapped 1: 1 in XML according to this specification. Only the fields that are available are filled. If there are too few fields, only database system fields, such as SAP fields, are sent back that have an equivalent on the application side, for example on the side of a geographic information system (GIS). Overall, the process works according to the rules of set theory, i.e. If the database side is a subset of the application side, the parameters of the database system are completely imported into the application and vice versa. However, the database system indicates when a mandatory field (such as a so-called mandatory field in the SAP system) has to be filled. In short, the protocol runs as follows:
1.Funktionsaufruf1.Funktionsaufruf
2.Überprüfung, ob die Funktion vorhanden ist; wenn ja 3. Überprüfung, ob die Struktur stimmt (Feldprüfung, Tabellenprüfung); wenn ja2.Check whether the function is available; if so 3. Check whether the structure is correct (field check, table check); if so
4.die Funktion wird ausgeführt4. The function is executed
Gibt es die Funktion nicht > dann ist das System aufgefordert, eine Fehlermeldung auszugeben.If the function does not exist > then the system is prompted to issue an error message.
Gibt es die Struktur nicht "^ dann soll das System ebenfalls eine Fehlermeldung ausgeben.If the structure does not exist "^ then the system should also issue an error message.
Somit ist das erfindungsgemäße Verfahren fehlertolerant, und es kann für jedes Datenbanksystem in gleicherweise benutzt werden. The method according to the invention is thus fault-tolerant and can be used in the same way for any database system.
Nachfolgend wird die Funktionsweise noch einmal zum besseren Verständnis anhand eines Beispiels erläutert, bei dem SAP als Datenbanksystem verwendet wird.In the following, the functionality is explained again for better understanding using an example in which SAP is used as a database system.
Funktion : BAPI CALL DEMO DATAFunction: BAPI CALL DEMO DATA
• Funktionsname: BAPI_CALL_DEMO_DATA• Function name: BAPI_CALL_DEMO_DATA
• Importportparameter: A (Struktur), B (Parameter)• Import port parameters: A (structure), B (parameter)
• Exportparameter: C (Struktur), D (Parameter)• Export parameters: C (structure), D (parameters)
• Tabellen: E (Tabelle) Umsetzung in XML:• Tables: E (table) implementation in XML:
Funktionsaufruf(Teill Hinweg): Applikation zu SAPFunction call (partial way there): application to SAP
< BAPI CALL DEMO DATA ><BAPI CALL DEMO DATA>
< EXPORTS > <C> Die Parameter C und D werden als Anfrage ans SAP<EXPORTS> <C> Parameters C and D are sent to SAP as a request
< PARAM1 > x < /PARAM1 > geschickt -^ also exportiert; des-hafb heißen C und </C> D Exportparameter.<PARAM1> x </ PARAM1> sent - ^ exported; des-hafb are called C and </C> D export parameters.
<D>x</D> < /EXPORTS > <TABLES><D> x </D> </ EXPORTS> <TABLES>
<E><E>
< ROW1 > x < /RO Wl > Die Tabellenparameter werden ans SAP geschickt und abgeholt.<ROW1> x </ RO Wl> The table parameters are sent to SAP and picked up.
< RO Wn > x < /RO Ψn > Tabelle = Import oder Export<RO Wn> x </ RO Ψn> table = import or export
</E> </TABLES></E> </TABLES>
< /BAPI CALL DEMO DATA ></ BAPI CALL DEMO DATA>
Funktionsaufruf^ eil2 Rückweg): SAP zur ApplikationFunction call ^ eil2 way back): SAP to the application
< BAPI CALL DEMO DATA ><BAPI CALL DEMO DATA>
< IMPORTS > Dieser Teil stellt die Antwort des SAP dar: Auf die <A> Anfrage nach den Parametern C und D vergleicht<IMPORTS> This part represents the answer from SAP: compares the <A> request for parameters C and D.
< PARAM1 > x < /PARAM1 > das SAP vorhandene und einge-gangene Werte und </A> schickt als Antwort A und B. Daten werden aus <B>x</B> GIS-Sicht impor-tiert.<PARAM1> x </ PARAM1> the SAP existing and received values and </A> sends A and B as answer. Data are imported from <B> x </B> GIS view.
< /IMPORTS > <TABLES></ IMPORTS> <TABLES>
Die Struktur der Tabellenparameter aus GIS und SAP wird verglichen
Figure imgf000009_0001
</TABLES>
The structure of the table parameters from GIS and SAP is compared
Figure imgf000009_0001
</ TABLES>
< /BAPI CALL DEMO DATA > Eine besonders bevorzugte Ausführungsform des erfindungsgemäßen Verfahren zum Betrieb eines dynamischen Datenbankinterface ist dadurch gekennzeichnet, daß als Datenbanksystem-Applikation ein geographisches Informationssystem (GIS) und als Datenbanksystem zumindest ein Strukturdatenbanksystem, vorzugsweise mit einer relationalen Datenbank, dient, in welcher strukturelle, d.h. nicht räumliche Daten von Objekten aus einer dem geographischen Informationssystem ebenfalls zugehörigen Geodatenbank hinterlegt sind, wobei die Geodatenbank entsprechend der räumlichen Position von Objekten, vorzugsweise als QuadTreee oder relational, organisiert ist und hierin zumindest die räumlichen Daten, vorzugsweise die geometrischen und/oder geographischen Daten der Objekte hinterlegt sind, wobei zusätzlich zu den räumlichen Daten für die jeweiligen Objekte auch dem jeweiligen Objekt zugeordnete Verweisinformationen in der Geodatenbank hinterlegt sind, die die in der Geodatenbank hinterlegten räumlichen Objektdaten zumindest einem Objekt im Strukturdatenbanksystem zuordnen, und weiterhin bei einem Zugriff auf ein Objekt der Geodatenbank automatisch mittels der hier hinterlegten Verweisinformationen die Zuordnung auf die zugeordneten Objekte des Strukturdatenbanksystems über das dynamische Datenbankinterface herstellt und hierdurch auch den Zugriff auf die hier hinterlegten, zum Objekt der Geodatenbank zugehörigen Strukturdaten erlaubt.</ BAPI CALL DEMO DATA> A particularly preferred embodiment of the method according to the invention for operating a dynamic database interface is characterized in that a geographic information system (GIS) is used as the database system application and at least one structural database system, preferably with a relational database, is used as the database system, in which structural, ie non-spatial data objects are stored from a geodatabase that also belongs to the geographic information system, the geodatabase being organized according to the spatial position of objects, preferably as a quad tree or relational, and at least the spatial data, preferably the geometric and / or geographic data of the objects, are stored therein , In addition to the spatial data for the respective objects, reference information associated with the respective object is also stored in the geodatabase, which contains the space stored in the geodatabase Assign object data to at least one object in the structure database system, and furthermore, when accessing an object of the geodatabase, automatically creates the assignment to the assigned objects of the structure database system via the dynamic database interface using the reference information stored here and thereby also access to the object stored here structural data belonging to the geodatabase is permitted.
Geographische Informationssysteme (GIS) stellen ihrem Benutzer meist zwei grundsätzlich unterschiedliche Arten von Informationen zur Verfügung nämlich zum einen räumliche Daten, also die Daten über die geometrischen Verhältnisse, wie etwa Abmessungen der Objekte auf die mittels des geographischen Informationssystems zugegriffen werden kann und die durch das GIS auch graphisch dargestellt werden können und zum anderen weitere Daten nicht geometrischer Natur, die den einzelnen Objekten zugeordnet werden.Geographic information systems (GIS) usually provide their users with two fundamentally different types of information, namely spatial data, i.e. the data about the geometric relationships, such as the dimensions of the objects, which can be accessed using the geographic information system and which can be accessed through the GIS can also be displayed graphically and, on the other hand, other non-geometric data that are assigned to the individual objects.
Als Beispiel sei hier ein GIS angeführt, welches die Telefonanschlüsse eines bestimmten Gebietes dokumentieren helfen soll. Zum einen liegen dann räumliche Daten über die Lage der Kabelstränge zu den einzelnen Teilnehmern vor, zum anderen aber auch Daten zu den Teilnehmern selbst, etwa ihre Adresse, ihre jeweiligen Nertragskonditionen, die Zuständigkeit von Servicemitarbeitern, die Art der Installation, etwa welche Komponenten dort ein- gesetzt wurden, die zugehörigen Verweise auf womögliche Stücklisten dazu bis hin zu den Materialnummern der betreffenden Ersatzteile, die sich aus den Stücklisten ergeben.As an example, here is a GIS that should help document the telephone connections of a certain area. On the one hand, there is spatial data about the location of the cable harnesses to the individual participants, but on the other hand there is also data about the participants themselves, such as their address, their respective terms and conditions, the responsibility of service employees, the type of installation, and which components are included - the associated references to possible parts lists up to the material numbers of the relevant spare parts that result from the parts lists.
Dadurch, daß ein GIS diese sehr unterschiedlichen Daten, nämlich räumliche Daten einerseits und strukturelle Daten andererseits handhaben muß, ergibt sich nun das nachfolgend beschriebene technische Problem.Because a GIS has to handle these very different data, namely spatial data on the one hand and structural data on the other hand, the technical problem described below arises.
Grundsätzlich sind nämlich die Anforderungen, die an ein Datenbanksystem zu -stellen sind, das die beiden zuvor erwähnten Arten von Daten effektiv verwalten soll völlig unterschiedlich:Basically, the requirements to be met by a database system that is to effectively manage the two types of data mentioned above are completely different:
Zur Verwaltung räumlicher Daten ist es aufgrund der hierbei anfallenden hohen Datenmengen aus Gründen der Reaktionsgeschwindigkeit auf Datenbankabfragen hin wünschenswert, daß auf die Objekte anhand ihrer räumlichen Daten besonders effektiv zugegriffen werden kann, etwa dadurch, daß die räumlichen Daten von solchen Objekten, die in der Realität geographisch benachbart sind, auch tatsächlich physikalisch oder zumindest logisch eng 'benachbart' gespeichert werden. Dies ist etwa deshalb erforderlich, um es zu ermöglichen, daß der Verwender eines GIS in der Lage ist, mittels entsprechender Navigationsmittel (etwa einer Maus, einem Trackball oder auch ausgewählten Tasten der Bedientastatur) effektiv durch die Welt des graphischen Abbildes der hinterlegten räumlichen Daten zu navigieren, etwa hierin scrollen zu können. Eine solche Organisation der räumlichen Daten kann auf verschiedene Arten, etwa durch die Verwendung sogenannter QuadTrees erreicht werden. Alle diese Verfahren nutzen zum schnellen Zugriff auf die räumlichen Daten deren wesensimmanente Eigenschaft aus, daß die Objekte durch ihre Position bestimmt sind. Hierdurch kann dem Erfordernis des effektiven Zugriffs auf die räumlichen Daten Genüge getan werden, dies jedoch um den Preis einer recht starren, eben am Positionsraster orientierten, Datenbankstruktur.For the management of spatial data, it is desirable due to the large amount of data that arises for reasons of reaction speed to database queries that the objects can be accessed particularly effectively on the basis of their spatial data, for example in that the spatial data of such objects that are in reality are geographically adjacent, are actually physically or at least logically closely 'adjacent' stored. This is necessary, for example, to enable the user of a GIS to be able to effectively navigate through the world of the graphical representation of the stored spatial data using appropriate navigation means (such as a mouse, a trackball or selected buttons on the control keyboard) navigate, such as being able to scroll here. Such an organization of spatial data can be achieved in various ways, for example by using so-called QuadTrees. For quick access to the spatial data, all of these methods take advantage of their inherent property that the objects are determined by their position. In this way, the requirement for effective access to the spatial data can be met, but at the price of a rather rigid database structure that is based on the position grid.
Diese aus Gründen der Effektivität notwendige technische Organisation der räumlichen Daten ist jedoch für die strukturellen Daten der jeweiligen Objekte äußerst ungeeignet. Strukturelle Objektdaten werden heute üblicherweise nach dem Stand der Technik in relationalen Datenbanken hinterlegt, die ihrem jeweiligen Nerwender eine logische Sicht der Dinge, nämlich der Objekte und ihrer Verhältnisse untereinander vermittelt, ohne daß der Benutzer mit der tatsächlichen technischen Realisierung dieser Datenbanken weiter belastet wäre.However, this technical organization of the spatial data, which is necessary for reasons of effectiveness, is extremely unsuitable for the structural data of the respective objects. Structural object data are usually stored according to the state of the art in relational databases, which give their respective users a logical view of the Things, namely the objects and their relationships to one another, without the user being further burdened with the actual technical implementation of these databases.
So stellt sich das unmittelbare 'Anhängen' der strukturellen Daten an die technische Organisation der räumlichen Daten in deren Datenbasis selbst als äußerst unbefriedigend und als technische 'Krücke' dar, da deren starres nur an der räumlichen Position orientiertes Organistionsprinzip für die strukturellen Daten und ihre vielfältigen Rektionen untereinander denkbar ungeeignet ist.Thus, the direct 'appending' of the structural data to the technical organization of the spatial data in its database itself is extremely unsatisfactory and as a technical 'crutch', since its rigid organizational principle for the structural data and its diverse, oriented only to the spatial position Rections among each other is unsuitable.
Daher besteht die derzeitige nach dem Stand der Technik bekannte Lösung meist darin, nur die notwendigsten strukturellen Daten an die räumlichen Daten anzuhängen und die strukturellen Daten parallel und völlig unabhängig in einer eigenen relationalen Datenbank zu organisieren. Diese Lösung weist jedoch gleichfalls entscheidende Nachteile auf. Es müssen so nämlich zwei unterschiedliche Datenbanken eingerichtet und unterhalten werden, wozu es jeweils kundiger Bedienkräfte bedarf, deren Idealtypus, in Gestalt eines beider Systeme Kundigen nur schwer zu finden ist. Damit sind Inkonsistenzen in der Führung der Bestände beider Datenbanken geradezu vorprogrammiert, da die Bediener der einen Datenbank jeweils die Bediener der anderen Datenbank von vorgenommen Änderungen zwecks Nachtrag unterrichten müssen und umgekehrt, was in der Praxis bei genügend großen Systemen allein schon aufgrund menschlichen Versagens, wie Bequemlichkeit, Vergessen oder auch Uneinsichtigkeit vorkommt.Therefore, the current solution known according to the prior art usually consists in appending only the most necessary structural data to the spatial data and organizing the structural data in parallel and completely independently in a separate relational database. However, this solution also has decisive disadvantages. This means that two different databases have to be set up and maintained, which requires skilled operators, whose ideal type, in the form of both systems, is difficult to find. Inconsistencies in the management of the holdings of both databases are almost preprogrammed, since the operators of one database have to inform the operators of the other database of changes made for the purpose of supplementation and vice versa, which in practice is sufficient for large systems simply because of human error, such as Convenience, forgetting or even insightfulness occurs.
Es ist daher problematisch ein geographisches Informationssystem (GIS) anzugeben, welches sowohl die effektive Verwaltung räumlicher Daten wie auch die problemadäquate Verwaltung struktureller Daten der in GIS verwalteten Objekte ermöglicht, ohne daß es der parallelen manuellen Führung zweier unterschiedlich strukturierter Datenbanken bedarf. Dies kann jedoch mit der vorstehend beschriebenen Ausführungsformen des dynamischen Datenbankinterface nach der vorliegenden Erfindung leichter gelingen.It is therefore problematic to specify a geographic information system (GIS), which enables both the effective management of spatial data and the problem-adequate management of structural data of the objects managed in GIS, without the need for parallel manual management of two differently structured databases. However, this can be achieved more easily with the above-described embodiments of the dynamic database interface according to the present invention.
Diese Lösung ermöglicht nämlich eine effiziente Verwaltung und insbesondere einen effizienten Zugriff auf die ihrem Wesen nach unterschiedlichen räumlichen und strukturellen - i 1 -This solution enables efficient administration and, in particular, efficient access to those with different spatial and structural characteristics - i 1 -
Daten zu gestatten, indem den nach räumlichen Kriterien organisierten Daten in der Geodatenbank zumindest eine Verweisinformation auf die zugehörigen strukturellen Daten in dem Strukturdatenbanksystem zugeordnet ist. Dies kann etwa durch Hinterlegung eines Zugriffsschlüssels für das Strukturdatenbanksystem in der Geodatenbank zum jeweiligen Objekt geschehen. Das zum GIS gleichfalls zugehörige Zugriffsmodul kann dann mittels des beim Zugriff auf die Geodatenbank - welcher zumeist nach räumlichen Kriterien, also etwa mittels eines räumlichen Schlüssel geschieht - dort als Verweisinformation gefundenen Schlüssels auf die zugehörigen Objekte des Strukturdatenbanksystems zugreifen.Allow data by assigning at least one piece of reference information to the associated structural data in the structure database system to the data organized according to spatial criteria in the geodatabase. This can be done, for example, by storing an access key for the structure database system in the geodatabase for the respective object. The access module, which is also associated with the GIS, can then access the associated objects of the structure database system there as reference information when accessing the geodatabase - which usually takes place according to spatial criteria, that is to say using a spatial key.
Anzumerken in diesen Zusammenhang ist, daß die Geodatenbank im Sinne der vorliegenden Erfindung auch dann als entsprechend der räumlichen Position von Objekten organisiert anzusehen ist, wenn diese Organisation ganz oder zum Teil auf rein logischer Ebene erfolgt; es bedarf dazu, insbesondere angesichts der fortschreitenden Datenbanktechnik, nicht unbedingt einer physikalischen Organisation der Geodatenbank entsprechend der räumlichen Position von Objekten.It should be noted in this connection that the geodatabase within the meaning of the present invention can also be regarded as organized according to the spatial position of objects if this organization is carried out in whole or in part on a purely logical level; This does not necessarily require a physical organization of the geodatabase according to the spatial position of objects, especially in view of the progressive database technology.
Vorzugsweise sind zusätzlich zu den strukturellen Daten für die jeweiligen Objekte auch dem jeweiligen Objekt zugeordnete Rück-Verweisinformationen in dem Strukturdatenbanksystem hinterlegt, die die in dem Strukturdatenbanksystem hinterlegten strukturellen Objektdaten zumindest einem Objekt in der Geodatenbank zuordnen und die über das dynamische Datenbankinterface vom geographischen Informationssystem abgerufen werden oder zumindest abgerufen werden können. Hierdurch ist es sodann möglich bei einem Zugriff auf das Strukturdatenbanksystem auch Rückschlüsse auf die Objekte der Geodatenbank zu ziehen. So kann etwa in diesem Falle festgestellt werden, in welchen Häusern sich etwa Gasanschlußbauteile eines bestimmten Herstellers befinden. Vorzugsweise ist hierzu ein Rück-Zugriffsmodul vorgesehen, welches dies anhand der Rück- Verweisinformation bzw. Rück-Verweisinformationen leistet.In addition to the structural data for the respective objects, back-reference information assigned to the respective object is preferably stored in the structure database system, which assigns the structural object data stored in the structure database system to at least one object in the geodatabase and which is retrieved from the geographic information system via the dynamic database interface or at least can be called up. This makes it possible to draw conclusions about the objects of the geodatabase when accessing the structure database system. In this case, for example, it can be determined in which houses there are gas connection components from a particular manufacturer. A back access module is preferably provided for this purpose, which does this on the basis of the back reference information or back reference information.
Vorzugsweise ist bei der vorliegenden Erfindung die Geodatenbank als QuadTree organisiert, was sich für geographische Informationssysteme, die nach räumlichen Gesichtspunk- ten organisiert sind, besonders bewährt hat. Das System Smallworld (geschützte Marke) stellt etwa eine solche für die vorliegende Erfindung geeignete Ausführung dar.In the present invention, the geodatabase is preferably organized as a QuadTree, which is suitable for geographic information systems that are based on spatial aspects. organized, has proven particularly successful. The Smallworld system (protected trademark) represents, for example, such an embodiment which is suitable for the present invention.
Es ist aber auch möglich, daß die Geodatenbank entsprechend der räumlichen Position von Objekten als relationale Datenbank organisiert ist. Hierbei kann sie dann auch rein logisch entsprechend der räumlichen Position von Objekten organisiert werden, etwa indem zwischen einander benachbarten Objekte spezielle - eben geometrische - Relationen angelegt werden.However, it is also possible that the geodatabase is organized as a relational database according to the spatial position of objects. Here it can also be organized purely logically according to the spatial position of objects, for example by creating special - even geometric - relations between adjacent objects.
Das Strukturdatenbanksystem weist vorzugsweise eine relationale Datenbank auf, wie sie etwa in SAP (geschützte Marke) -Systemen verwendet wird, was dem Aufbau der strukturellen Daten schon vom logischen Ansatz her entspricht. Aber auch Schemadatenbanken (CODASYL) oder auch hierarchische oder assoziative Datenbanken eignen sich hierfür gut.The structure database system preferably has a relational database, such as is used in SAP (protected trademark) systems, which corresponds to the structure of the structural data from the logical approach. But schema databases (CODASYL) or hierarchical or associative databases are also good for this.
Um das dynamische Datenbankinterface nach der vorliegenden Erfindung noch besser auf die Benutzung durch viele Applikationen einzurichten, kann ferner ein Verfahren zum Betrieb eines Poolmanagers zur Konnektion einer Datenbanksystem-Applikation mit mindestens einem Datenbanksystem mittels mindestens des dynamischen Datenbankinterface, welches jeweils nach dem Verfahren nach der vorliegenden Erfindung betrieben wird, vorgesehen sein, wobei der Poolmanager Anforderungen von der Datenbanksystem- Applikation zur Kommunikation mit dem Datenbanksystem oder den Datenbanksystemen empfängt und sodann für die anfordernde Datenbanksystem-Applikation eine der anfordernden Datenbanksystem-Applikation zugeordnete Instanz seiner selbst oder eines Kommunikations-Moduls jeweils mit mindestens einem zugehörigen dynamischen Datenbankinterface erzeugt oder zuordnet.In order to set up the dynamic database interface according to the present invention even better for use by many applications, a method for operating a pool manager for connecting a database system application to at least one database system by means of at least the dynamic database interface, which in each case according to the method according to the present According to the invention, the pool manager receives requests from the database system application for communication with the database system or the database systems and then, for the requesting database system application, an instance of itself or a communication module assigned to the requesting database system application generated or assigned at least one associated dynamic database interface.
Der Poolmanager, vorzugsweise ein Corba Poolmanager, dient hier also dazu Applikationen, die selbständig keine Verbindung zu einem Hostsystem aufbauen können, den Zugriff zu - womöglich verschiedenen - Datenbanksystemen zu ermöglichen. Somit ist der Poolmanager als ein Vermittler zwischen den Anforderungen eines anfragenden Systems, also der Datenbanksystem-Applikation und dem Datenbanksystem anzusehen. In allen Fällen muß der Poolmanager seine Leistungen betriebssystemunabhängig erbringen. Ebenso soll der Poolmanager unabhängig von der Programmiersprache der anfragenden Applikation sein. Im gleichen Umfang wird eine Unabhängigkeit von propietären Kommunikationssystemen des Datenbanksystems gefordert.The pool manager, preferably a Corba pool manager, is used here to enable applications that cannot independently establish a connection to a host system to access - possibly different - database systems. The pool manager is therefore to be seen as an intermediary between the requirements of a requesting system, that is to say the database system application and the database system. In all cases the pool manager must provide his services independently of the operating system. The pool manager should also be independent of the programming language of the requesting application. To the same extent, independence from proprietary communication systems of the database system is required.
Damit der Poolmanager die geforderten Bedingungen erfüllen kann, können seine nach außen liegenden Schnittstellen dem Standard des W3C (World Wide Web Consortium) entsprechen. Dabei handelt es sich bei dem Datenformat für die Datenkommunikation um XML (Extended Markup Language), mittels der plattformunabhängig durch einen Satz von Regeln, man spricht auch von Richtlinien oder Konventionen, strukturierte Daten zum Austausch zwischen unterschiedlichen Systemen zur Verfügung gestellt werden.So that the pool manager can meet the required conditions, its external interfaces can comply with the W3C (World Wide Web Consortium) standard. The data format for data communication is XML (Extended Markup Language), by means of which platform-independent through a set of rules, one also speaks of guidelines or conventions, structured data for the exchange between different systems is made available.
Die XML selbst ist modular, so daß innerhalb der Norm eigene Dokumentenformate definierbar sind, indem man andere Formate kombiniert oder wiederbenutzt. Somit ist sichergestellt, dass alle Zielsysteme mit dem neuen Format kommunizieren können, wobei die Interpretation des Inhaltes des XML-Dokuments vorzugsweise durch das Corba-Modul, besonders bevorzugterweise durch ein Corbaserver-Modul erfolgt.The XML itself is modular, so that own document formats can be defined within the standard by combining or reusing other formats. This ensures that all target systems can communicate with the new format, the interpretation of the content of the XML document preferably being carried out by the Corba module, particularly preferably by a Corbaserver module.
Die Datenkommunikation wird somit in dieser Ausführungsform durch die Corba- Spezifikation festgelegt. Der Poolmanager als Corba Poolmanager ist dann ein Server, welcher als unabhängiges System z.B. als Dienst oder auf einem eigenen Datenverarbeitungssystem implementiert ist bzw. abläuft und bei Anforderung durch eine Applikation den Verbindungsaufbau zum Datenbanksystem sowie eine transparente Kommunikation der Daten vom und zu dem Datenbanksystem übernimmt.The data communication is thus defined in this embodiment by the Corba specification. The pool manager as Corba pool manager is then a server, which as an independent system e.g. is implemented or runs as a service or on its own data processing system and, when requested by an application, takes over the establishment of a connection to the database system and transparent communication of the data from and to the database system.
Der Poolmanager, vorzugsweise Corba Poolmanager steht etwa als http-Server fremden Applikationen zur Verfügung. Da hier keine propietäre Kommunikationstechnik Anwendung findet, ist eine Plattformunabhängigkeit sichergestellt.The pool manager, preferably Corba pool manager, is available as an external third-party application. Since no proprietary communication technology is used here, platform independence is ensured.
Die rufende Applikation baut ihre Anfrage etwa in einem XML-Paket auf, welches über http an den Poolmanager, vorzugsweise Corba Poolmanager geschickt wird. Sobald dieser eine Anfrage erhält, wird für diese Anfrage vorzugsweise eine eigene Instanz des Poolmana- gers aufgebaut. Diese Instanz bleibt so lange persistent, bis die gesamte Kommunikation zwischen der fragenden Applikation und dem Datenbanksystem beendet wird.The calling application builds its request in an XML package, for example, which is sent to the pool manager, preferably Corba Poolmanager, via http. As soon as the latter receives a request, a separate instance of the pool manager is preferably created for this request. built up. This instance remains persistent until all communication between the application in question and the database system is ended.
Dadurch, dass eine eigene Instanz aufgebaut wird, wird auch jeweils eine eigene Verbindung zu dem Datenbanksystem erzeugt. Der Vorteil dieser Struktur liegt darin, dass somit eigene Benutzerrechte und eigene Adressräume für die in Frage kommende Verbindung bestehen.The fact that a separate instance is set up also creates a separate connection to the database system. The advantage of this structure is that it has its own user rights and address spaces for the connection in question.
Die Applikationen, die den Poolmanager nutzen, müssen darüber hinaus von keinem speziellen Typ sein.The applications that use the pool manager do not have to be of a special type.
Sobald eine Instanz des Poolmanagers, vorzugsweise Corba Poolmanagers erzeugt ist, wird eine Verbindung, vorzugsweise eine Corba-Verbindung zu dem Hostsystem, also dem Datenbanksystem erzeugt. Ist die Zahl der instanziierbaren Verbindungen auf dem entsprechenden für den Poolmanager als Server dienenden Datenverarbeitungssystem zu gering, oder meldet sich das Hostsystem temporär nicht, verbleibt der Verbindungsaufbau vorzugsweise in einer Warteschleife.As soon as an instance of the pool manager, preferably Corba pool manager, is created, a connection, preferably a Corba connection, to the host system, that is to say the database system, is created. If the number of instantiable connections on the corresponding data processing system serving as the server for the pool manager is too small, or if the host system does not respond temporarily, the connection establishment preferably remains in a waiting loop.
Um zum richtigen Datenbanksystem zu verbinden, wird vorzugsweise von der Instanz des Poolmanagers oder des Kommunikations-Moduls ein Connectstring innerhalb des XML- Datenpaketes ausgewertet. Dadurch wird das jeweilige Datenbanksystem als Zielsystem identifiziert und eine geeignete Verbindung hierzu geschaltet.In order to connect to the correct database system, a connect string within the XML data packet is preferably evaluated by the instance of the pool manager or the communication module. The respective database system is thereby identified as the target system and a suitable connection to it is switched.
Nach dem Verbindungsaufbau dient die Instanz des Poolmanagers oder des Kommunikations-Moduls in Gestalt eines Corba-Moduls, vorzugsweise eines Corbaserver-Moduls als Übersetzer zwischen den Informationen in dem XML-Paket und den für das Datenbanksystem notwendigen Datenpaketen im Zusammenarbeit mit einem jeweiligen dynamischen Datenbankinterface zum Datenbanksystem nach der hier vorliegenden Erfindung, auch Bridge genannt.After the connection has been established, the instance of the pool manager or of the communication module in the form of a Corba module, preferably a Corbaserver module, serves as a translator between the information in the XML package and the data packages required for the database system in cooperation with a respective dynamic database interface Database system according to the present invention, also called a bridge.
Im Falle eines SAP-Systems als Datenbanksystem wird dann vorzugsweise ein der Instanz des Kommunikations-Moduls oder des Poolmanagers jeweilig zugehöriges dynamisches Datenbankinterface als eine sogenannte SAP-Bridge aufgebaut, in der die Kommunikation zum SAP über die SAP eigenen RFC erfolgt. Ein Corbaserver-Modul interpretiert dann etwa die XML-Struktur und parametriert über die SAP-Bridge die RFC Aufrufe.In the case of a SAP system as a database system, a dynamic database interface associated with the instance of the communication module or the pool manager is then preferably set up as a so-called SAP bridge, in which the communication to SAP via SAP's own RFC. A Corbaserver module then interprets the XML structure and parameterizes the RFC calls via the SAP bridge.
In der Parametrierung zu dem Datenbanksystem ist die Bridge fehlertolerant. Dieses bedeutet, - wie auch schon zum dynamischen Datenbankinterface selbst vorstehend erläutert -, daß die Parameterleisten für den Benutzer transparent aufgefüllt werden, sowie der Rücktransport der Ergebnisdaten auf die anfragende Applikation entsprechend reduziert erfolgt.The bridge is fault-tolerant when parameterizing the database system. This means - as already explained above for the dynamic database interface itself - that the parameter bars are filled up transparently for the user, and the return transport of the result data to the requesting application is reduced accordingly.
Ein etwaiges Corbaserver-Modul kommuniziert somit über eine Bridge mit dem Datenbanksystem.Any Corbaserver module communicates with the database system via a bridge.
Es ist insbesondere erlaubt, daß jedwede, also auch fremde, Bridges bei der Instanz des Poolmanagers bzw. des Kommunikations-Moduls, also etwa dem Corbaserver-Modul einregistriert werden. Damit können fremde Applikationen ihre eigenen Zugriffsstrukturen nutzen, beziehungsweise spezialisierte Zugriffsstrukturen benutzbar gemacht werden.In particular, it is permitted that any, including foreign, bridges are registered with the instance of the pool manager or the communication module, for example the Corbaserver module. This allows third-party applications to use their own access structures or make specialized access structures usable.
Für die Einregistrierung stellt etwa ein als Kommunikations-Modul fungierendes Corbaserver-Modul die Methoden "Register" bzw. "Deregister" zur Verfügung.A Corbaserver module, which functions as a communication module, provides the methods "Register" or "Deregister" for the registration.
Die Bridges, also die dynamischen Datenbankinterfaces nach der vorliegenden Erfindung, sind selbst so aufgebaut, daß sie einen XML-String annehmen, ihn parsen und formatgerecht für das Datenbanksystem weitergeben. Die Ergebnisse vom Datenbanksystem werden in XML zurück gewandelt, wozu etwa die Methoden "Call" und "UseFlushwrite" zur Verfügung gestellt werden.The bridges, that is to say the dynamic database interfaces according to the present invention, are themselves constructed in such a way that they accept an XML string, parse it and pass it on for the database system in accordance with the format. The results from the database system are converted back into XML, for which the methods "Call" and "UseFlushwrite" are made available.
Ein Corbaserver-Modul kann auch direkt mit anderen Applikationen kommunizieren. Dazu müssen diese dann über die Corbaspezifische IDL (Interface Definition Language) verfügen. Der Verbindungsaufbau erfolgt dann vorzugsweise als sogenannter "named service".A Corbaserver module can also communicate directly with other applications. To do this, they must have the Corba-specific IDL (Interface Definition Language). The connection is then preferably established as a so-called "named service".
Auch hier erfolgt die Kommunikation bzw. der Datenaustausch transparent für die Applikation. Somit dient auch hier das Corbaserver-Modul als ein genereller Vermittler zwischen selbständigen Applikationen und Datenbanksystemen. Im Fall spezieller Applikationen, also etwa der Applikationen GISConnect bzw. GlSCon- nect NT, die ein geographische Informationssystem (GIS) mit einem SAP-System konnek- tieren, werden von dem Corbaserver-Modul die Methoden für den Verbindungsaufbau zu dem SAP-System und der Datenkommunikation über RFC via SAP-Bridge angewendet.Here too, communication and data exchange are transparent for the application. The Corbaserver module also serves as a general intermediary between independent applications and database systems. In the case of special applications, such as the GISConnect or GlSConnect NT applications, which connect a geographic information system (GIS) to a SAP system, the Corbaserver module provides the methods for establishing a connection to the SAP system and data communication via RFC via SAP Bridge.
Wegen der Struktur des Verbindungsaufbaus, der jeweils eigenständigen Instanziierung einer Kommunikation, unterliegt dabei die Anzahl der Verbindungsaufnahmen keiner Beschränkung. Insbesondere können mehrere oder einzelne Applikationen Verbindung zu mehreren oder einzelnen Datenbanksystemen durch den Poolmanager nach der vorliegenden Erfindung konnektiert werden. Falls im Betrieb Einschränkungen der tatsächlich möglichen Verbindungen durch z.B. Speicherplatzgrenzen auftreten, kann eine Lastverteilung, etwa durch die Kommunikation mit einem zweiten oder weiteren Datenverarbeitungssy- stem(en) mit Poolmanager erreicht werden. Die beiden oder mehr Server kommunizieren dabei dann vorzugsweise über (eine) named pipe(s).Because of the structure of the connection establishment, the independent instantiation of a communication, the number of connection connections is not subject to any restrictions. In particular, several or individual applications can be connected to several or individual database systems by the pool manager according to the present invention. If in operation restrictions of the actually possible connections due to If storage space limits occur, a load distribution can be achieved, for example, by communicating with a second or further data processing system (s) with the pool manager. The two or more servers then preferably communicate via (a) named pipe (s).
Das erfindungsgemäße Verfahren zum Betrieb eines Poolmanagers ist somit vollständig skalierbar, wobei ein besonderer Vorteil darin besteht daß es zudem aufgabenbezogen skalierbar ist.The method according to the invention for operating a pool manager is thus fully scalable, a particular advantage being that it is also scalable on a task basis.
Im folgenden werden die verschiedenen vorstehend schon angesprochenen Auführungs- for en eines Poolmanagers nach der vorliegenden Erfindung noch einmal systematisch, jedoch ohne Restriktion hierauf, dargestellt, wobei noch einmal besonders darauf hingewiesen sei, daß sämtliche Ausführungsbeispiele nur als jeweilige Konkretisierung im Hinblick aug eine bestimmte Anwendungsaufgabe der vorliegenden Erfindung zu verstehen sind.The various types of performance of a pool manager according to the present invention, which have already been mentioned above, are again shown systematically, but without any restriction to them, and it should be pointed out once again that all the exemplary embodiments are only as a specific specification with regard to a specific application task of the present invention.
Die Kommunikationsanforderung durch die Datenbanksystem-Applikation an den Poolmanager erfolgt vorzugsweise ebenfalls im XML-Format mit einem Datenpaketteil, vorzugsweise einen sogenannten Connectstring innerhalb des XML-Datenpaketes, den der Poolmanager auswertet und der das Datenbanksystem oder die Datenbanksysteme identifiziert, zu dem die Kommunikation aufgebaut werden soll, wobei die Instanz seiner selbst oder des Kommunikations-Moduls jeweils mit mindestens einem zugehörigen dynamischen Datenbankinterface erzeugt oder zugeordnet wird, welches zur Kommunikation der Da- tenbanksystem-Applikation mit dem angeforderten Datenbanksystem oder Datenbanksystemen dient oder dienen.The communication request from the database system application to the pool manager is preferably also in XML format with a data packet part, preferably a so-called connect string within the XML data packet, which the pool manager evaluates and which identifies the database system or the database systems to which the communication is being established the instance of itself or of the communication module is generated or assigned with at least one associated dynamic database interface which is used to communicate the data tenbank system application with the requested database system or database systems.
Ferner kann das Verfahren zum Betrieb des Poolmanagers dadurch gekennzeichnet sein, daß der Poolmanager ein Corba-Modul, vorzugsweise ein Corbaserver-Modul als Instanz seiner selbst oder als Kommunikations-Modul erzeugt oder zuordnet, so daß die Kommunikation mit der Datenbanksystem-Applikation und/oder oder dem jeweilig zugehörigen dynamischen Datenbankinterface oder Datenbankinterfaces mittels Internet Inter Object Request Broker Protokoll (HOP) mittelbar oder unmittelbar abwickelt wird.Furthermore, the method for operating the pool manager can be characterized in that the pool manager generates or assigns a Corba module, preferably a Corbaserver module as an instance of itself or as a communication module, so that communication with the database system application and / or or the respective dynamic database interface or database interfaces is processed directly or indirectly using the Internet Inter Object Request Broker Protocol (HOP).
Auf diese Weise kann der Zugriff unter Verwendung der sogenannten "Common Object Request Broker Architecture" (CORBA) erfolgen, welcher sich als offener Standard für verteilte Netzapplikationen immer größerer Beliebtheit erfreut. Dabei kann jedoch der Zugriff bei einer wachsenden Anzahl von Teilnehmern auf das Datenbanksystem skalierbar ausgestaltet werden, was etwa dadurch gewährleistet werden kann, daß jeweils eine bestimmte Anzahl von Teilnehmern (Clients), welche Zugriff auf das Datenbanksystem haben sollen auf einem sogenannten Corba-Serversystem zusammengefaßt werden, welches den Datenverkehr zum jeweiligen Client mittels HOP führt und wobei dieses Corba- Serversystem sodann mit dem eigentlichen Datenbanksystem verbunden wird.In this way, access can be made using the so-called "Common Object Request Broker Architecture" (CORBA), which is becoming increasingly popular as an open standard for distributed network applications. However, access to a growing number of subscribers to the database system can be made scalable, which can be ensured, for example, by combining a certain number of subscribers (clients) who should have access to the database system on a so-called Corba server system be, which leads the data traffic to the respective client by means of HOP and this Corba server system is then connected to the actual database system.
Vorzugsweise wird daher ein Corbaserver-Modul als Corba-Modul erzeugt oder zugeordnet, das so beschaffen ist, daß es seine Kommunikation zur Datenbanksystem-Applikation über mindestens eine CORBA-Zwischeninstanz abwickelt, wobei der Poolmanager vorzugsweise zum jeweils erzeugten oder zugeordneten Corbaserver-Modul ein Corbaclient- Modul als Zwischeninstanz erzeugt oder zuordnet, welches vorzugsweise von der Datenbank-Applikation mittels im XML-Format gesendete Daten in das Internet Inter Object Request Broker Protokoll (HOP) für das Corbaserver-Modul wandelt und umgekehrt vom Corbaserver-Modul in diesem Protokoll empfangene Daten so wandelt, daß diese im XML- Format an die Datenbank-Applikation gesendet werden.A Corbaserver module is therefore preferably generated or assigned as a Corba module, which is designed in such a way that it handles its communication with the database system application via at least one CORBA intermediate instance, the pool manager preferably having a Corbaclient for the Corbaserver module generated or assigned in each case - Module created or assigned as an intermediate instance, which preferably converts the database application by means of data sent in XML format into the Internet Inter Object Request Broker Protocol (HOP) for the Corbaserver module and vice versa data received in this protocol by the Corbaserver module converts so that they are sent to the database application in XML format.
Es kann auch so sein, daß der Poolmanager zum jeweils erzeugten oder zugeordneten Corbaserver-Modul ein Corbaapplikationsserver-Modul als Corbaclient-Modul oder diesem zugehörig und damit auch als Zwischeninstanz erzeugt oder zuordnet, welches von der Datenbank-Applikation mittels eines Zwischen-Übertragungsprotokolls, vorzugsweise mittels TCP/LP-Protokoll im XML-Format gesendete Daten in das Internet Inter Object Request Broker Protokoll (IIOP) für das Corbaserver-Modul wandelt und umgekehrt vom Corbaserver-Modul in diesem Protokoll empfangene Daten so wandelt, daß diese mittels des Zwischen-Übertragungsprotolls, vorzugsweise des TCP/IP-Protokolls im XML-Format an die Datenbank-Applikation gesendet werden.It can also be the case that the pool manager has a Corba application server module as the Corbaclient module or the Corbaser server module that is generated or assigned associated and thus also generated or assigned as an intermediate instance, which transfers data sent by the database application using an intermediate transfer protocol, preferably using the TCP / LP protocol in XML format, to the Internet Inter Object Request Broker Protocol (IIOP) for the Corbaser server. Module converts and vice versa converts data received by the Corbaserver module in this protocol so that it is sent to the database application in XML format by means of the intermediate transmission protocol, preferably the TCP / IP protocol.
In einer bevorzugten Ausführungsform des Verfahrens zum Betrieb eines Poolmanagers nach der vorliegenden Erfindung, wo ein geographisches Informationssystem (GIS) als Datenbank-Applikation und eine zugehöriges Strukturdatenbanksystem zum Einsatz kommen, kann etwa als Geodatenbank GIS Smallworld (geschützte Marke) und als Datenbanksystem zur Realisierung des Strukturdatenbanksystems ein SAP (geschützte Marke)-System vorgesehen sein. Hierdurch lassen sich die bereits erläuterten Vorteile der vorliegenden Erfindung für ein geographische Informationssystem durch die Verwendung des erfindungsgemäßen Poolmanagers auch für diese Verwendung weiter verbessern.In a preferred embodiment of the method for operating a pool manager according to the present invention, where a geographic information system (GIS) is used as a database application and an associated structural database system, it can be used as a geodatabase GIS Smallworld (protected trademark) and as a database system for realizing the An SAP (protected trademark) system can be provided in the structural database system. As a result, the advantages of the present invention for a geographical information system which have already been explained can be further improved for this use by using the pool manager according to the invention.
Der Poolmanager kann natürlich auch in einem System realisiert sein, welches ein Datenverarbeitungssystem mit einem Prozessor und einem Speicher aufweist und das programmtechnisch so eingerichtet ist, daß es nach dem Verfahren zum Betrieb eines Poolmanagers nach der vorliegenden Erfindung arbeitet.The pool manager can of course also be implemented in a system which has a data processing system with a processor and a memory and which is set up in terms of programming so that it operates according to the method for operating a pool manager according to the present invention.
Dabei kann dieses System auch so gestaltet sein, daß es mindestens zwei miteinander über einen Kommunikationskanal verbundene Datenverarbeitungssysteme mit mindestens je einem Prozessor und einem Speicher aufweist, wobei das erste programmtechnisch so eingerichtet ist, daß ein Poolmanager betrieben wird, der das der anfordernden Datenbanksystem-Applikation zugeordnete Corbaserver-Modul jeweils mit mindestens einem zugehörigen dynamischen Datenbankinterface auf dem zweiten Datenverarbeitungssystem erzeugt oder zuordnet, wobei es seine Kommunikation zur Datenbanksystem-Applikation über das Corbaclient-Modul, welches auf dem ersten Datenverarbeitungssystem liegt als CORBA- Zwischeninstanz abwickelt Ferner ist der Vollständigkeit halber zu erwähnen, daß auch der Poolmanager als Computerprogramm realisiert sein kann, welches Instruktionen aufweist, die zur Durchführung des Verfahrens nach der vorliegenden Erfindung eingerichtet sind.This system can also be designed in such a way that it has at least two data processing systems connected to one another via a communication channel, each with at least one processor and one memory, the first being set up in terms of programming so that a pool manager is operated which handles the requesting database system application assigned Corbaserver module each generates or assigns with at least one associated dynamic database interface on the second data processing system, it handles its communication with the database system application via the Corbaclient module, which is located on the first data processing system, as an CORBA intermediate instance For the sake of completeness, it should also be mentioned that the pool manager can also be implemented as a computer program which has instructions which are set up to carry out the method according to the present invention.
Vorzugsweise dienen die folgenden Funktionen der Implementierung der vorliegenden Erfindung beim Einsatz eines eines geographischen Informationssystems (GIS) als Datenbanksystem-Applikation und eines SAP-Systems als Datenbanksystem.The following functions are preferably used to implement the present invention when using a geographical information system (GIS) as a database system application and an SAP system as a database system.
ACP ENGINE.COMANDACP ENGINE.COMAND
Mit dieser Funktion wird der GISConnect ACP vom GIS aus gesteuert. Folgende Funktionen stehen zur Verfügung:With this function the GISConnect ACP is controlled from the GIS. The following functions are available:
Start ACP (START)Start ACP (START)
Startet den ACP - Prozeß in Form eines Windows-ProgrammsStarts the ACP process in the form of a Windows program
Eingabe: <ACP_ENGINE>Entry: <ACP_ENGINE>
< EXPORTS > < COMAND > < MODUL > SAP < / MODUL > < CALL > START < /CALL ><EXPORTS> <COMAND> <MODUL> SAP </ MODUL> <CALL> START </CALL>
< /COMAND > < /EXPORTS > </ACP_ENGINE></ COMAND> </ EXPORTS> </ACP_ENGINE>
Rückgabe: <ACP_ENGINE >Returns: <ACP_ENGINE>
< IMPORTS > < RETURN ><IMPORTS> <RETURN>
< TYPE > S < /TYPE > < MODUL > SAP < /MODUL > < CALL > START < /C ALL><TYPE> S </ TYPE> <MODUL> SAP </ MODUL> <CALL> START </C ALL>
< /RETURN > < /IMPORTS > </ACP_ENGLNE></ RETURN> </ IMPORTS> </ACP_ENGLNE>
SAP- Anmeldedialog (SAP LOG IN)SAP login dialog (SAP LOG IN)
Der ACP stellt einen eigenen SAP Anmeldedialog zu Verfügung.The ACP provides its own SAP login dialog.
Eingabe: <ACP_ENGINE>Entry: <ACP_ENGINE>
< EXPORTS > < COMAND > < MODUL > SAP < / MODUL > < CALL > SAP_LOG_LN < /CALL><EXPORTS> <COMAND> <MODUL> SAP </ MODUL> <CALL> SAP_LOG_LN </CALL>
< /COMAND > < /EXPORTS > </ACP ENGINE > Rückgabe:</ COMAND></EXPORTS></ ACP ENGINE> Return:
<ACP_ENGLNE><ACP_ENGLNE>
< IMPORTS > < RETURN ><IMPORTS> <RETURN>
< TYPE > S < /TYPE > < MODUL > SAP < /MODUL > < CALL > SAP_LOG_IN </CALL><TYPE> S </TYPE> <MODUL> SAP </ MODUL> <CALL> SAP_LOG_IN </CALL>
< /RETURN > < /IMPORTS > </ACP ENGINE ></ RETURN> </ IMPORTS> </ ACP ENGINE>
SAP Abmelden (SAP LOG OUT)SAP logout (SAP LOG OUT)
Funktion zur Abmeldung eines Users vom SAP.Function for logging off a user from SAP.
Eingabe:Input:
<ACP_ENGLNE><ACP_ENGLNE>
< EXPORTS > < COMAND > < MODUL > SAP < / MODUL > < CALL > SAP_LOG_OUT < /CALL ><EXPORTS> <COMAND> <MODUL> SAP </ MODUL> <CALL> SAP_LOG_OUT </CALL>
< /COMAND > < /EXPORTS > </ACP_ENGINE></ COMAND> </ EXPORTS> </ACP_ENGINE>
Rückgabe: < ACP_ENGINE >Returns: <ACP_ENGINE>
< IMPORTS > < RETURN ><IMPORTS> <RETURN>
< TYPE > S < / YPE > < MODUL > SAP < /MODUL > < CALL > S AP_LOG_OUT < /CALL ><TYPE> S </YPE> <MODUL> SAP </ MODUL> <CALL> S AP_LOG_OUT </CALL>
< /RETURN > < /IMPORTS > </ACP_ENGLNE></ RETURN> </ IMPORTS> </ACP_ENGLNE>
Stille SAP-Anmeldung (SAP SILENT LOG IN) Die Anmeldung wird vom Client (GIS) gesteuert.Silent SAP logon (SAP SILENT LOG IN) Logon is controlled by the client (GIS).
Eingabe:Input:
<ACP_ENGINE ><ACP_ENGINE>
< EXPORTS > < COMAND > < MODUL > SAP < / MODUL > < CALL > SAP_SILENT_LOG_IN < /CALL ><EXPORTS> <COMAND> <MODUL> SAP </ MODUL> <CALL> SAP_SILENT_LOG_IN </CALL>
< LOGIN > < CLIENT > 050 < /CLIENT > < USER > Lauterjung < /USER ><LOGIN> <CLIENT> 050 </CLIENT> <USER> Lauterjung </ USER>
< PASSWORT > Geheim < /PASSWORT > < LANGUAGE > DE < /LANGUA GE><PASSWORD> Secret </ PASSWORD> <LANGUAGE> DE </ LANGUA GE>
< SYSTEM > ivl - SAPDBIE1 - IE1 - Entwicklungssystem 4.6B < /SYSTEM ><SYSTEM> ivl - SAPDBIE1 - IE1 - development system 4.6B </ SYSTEM>
< SYSTEMNUMMER > 00 < /SYSTEMNUMMER ><SYSTEM NUMBER> 00 </ SYSTEM NUMBER>
< APPLICATIONSERNER > 193.16.200.81 < /APPLICATIONSERVER > < /L OGIN><APPLICATIONSERER> 193.16.200.81 </ APPLICATIONSERVER> </ L OGIN>
< /COMAND > < /EXPORTS > < /ACP ENGINE > Rückgabe:</ COMAND></EXPORTS></ ACP ENGINE> Return:
<ACP_ENGLNE><ACP_ENGLNE>
< IMPORTS > < RETURN ><IMPORTS> <RETURN>
< TYPE > S < /TYPE > < MODUL > SAP < /MODUL > < CALL > S AP ILEN T LOG_ΓN</CALL><TYPE> S </ TYPE> <MODUL> SAP </ MODUL> <CALL> S AP ILEN T LOG_ΓN </CALL>
< /RETURN > < /IMPORTS > </ACP ENGINE > </ RETURN></IMPORTS></ ACP ENGINE>
Stille SAP Abmeldung (SAP SILENT LOG OUT) Funktion zur "stillen" Abmeldung eines Users vom SAP.Silent SAP logout (SAP SILENT LOG OUT) Function for "silently" logging off a user from SAP.
Eingabe:Input:
<ACP_ENGINE><ACP_ENGINE>
< EXPORTS > < COMAND > < MODUL > SAP < / MODUL > < CALL > SAP_SILENT_LOG_OU < /CALL ><EXPORTS> <COMAND> <MODUL> SAP </ MODUL> <CALL> SAP_SILENT_LOG_OU </ CALL>
< /COMAND > < /EXPORTS > </ACP_ENGINE></ COMAND> </ EXPORTS> </ACP_ENGINE>
Rückgabe: <ACP_ENGFNE >Returns: <ACP_ENGFNE>
< IMPORTS > < RETURN ><IMPORTS> <RETURN>
< TYPE > S < /TYPE > < MODUL > SAP < /MODUL > < CALL > SAP_SILENT_LOG_OUT < /CALL ><TYPE> S </TYPE> <MODUL> SAP </ MODUL> <CALL> SAP_SILENT_LOG_OUT </CALL>
< /RETURN > < /IMPORTS > </ACP_ENGINE></ RETURN> </ IMPORTS> </ACP_ENGINE>
Der Multi XML FunktionsaufrufThe Multi XML function call
Dieser Aufruf sollte gewählt werden wenn mehrere Systeme an das GIS angebunden werden sollen.This call should be selected if several systems are to be connected to the GIS.
Eingabe: <ACP_ENGINE>Entry: <ACP_ENGINE>
< EXPORTS > < COMAND > < MODUL > SAP < / MODUL ><EXPORTS> <COMAND> <MODUL> SAP </ MODUL>
< CALL > XML < /CALL > < VALUE > XML < /VALUE ><CALL> XML </ CALL> <VALUE> XML </ VALUE>
< /COMAND > < /EXPORTS > </ACP_ENGINE ></ COMAND> </ EXPORTS> </ ACP_ENGINE>
Rückgabe:Return:
<ACP_ENGINE><ACP_ENGINE>
< IMPORTS > < RETURN ><IMPORTS> <RETURN>
< TYPE > S < /TYPE > < MODUL > SAP < /MODUL ><TYPE> S </TYPE> <MODUL> SAP </ MODUL>
< CALL > XML < /CALL > < VALUE > XML < /VALUE ><CALL> XML </ CALL> <VALUE> XML </ VALUE>
< /RETURN > < /IMPORTS ></ RETURN> </ IMPORTS>
</ACP ENGINE > Direkter SAP- Aufruf</ ACP ENGINE> Direct SAP call
Diese Funktion besitzt keinen Zwischen - Wrapper und wird direkt an das SAP weitergegeben.This function has no intermediate wrapper and is passed on directly to SAP.
Eingabe: XML - Statement. Rückgabe: XML - Statement.Input: XML statement. Returns: XML statement.
Metainformationmeta
Klassen Klassifizierung IClass classification I
Beispiel: CACL_OBJECT_ALLOCATION_MAINTExample: CACL_OBJECT_ALLOCATION_MAINT
Statement:statement:
<?xml version="1.0" encoding="ISO-8859-l" ?> - <CACL_OBJECT_ALLOCATIÖN_MAINT> - <METAINF><? xml version = "1.0" encoding = "ISO-8859-l"?> - <CACL_OBJECT_ALLOCATIÖN_MAINT> - <METAINF>
<TYPE>EXPORT /TYPE> Gib entweder "Export" oder "Import" <TYPE>IMPORT</TYPE> X oder "All" ein <TYPE>ALL</TYPE> </ ETAINF> </CACL_OBJECT_ALLOCATION_MAI T> <TYPE> EXPORT / TYPE> Enter either "Export" or "Import"<TYPE> IMPORT </TYPE> X or "All"<TYPE> ALL </TYPE></ETAINF></ CACL_OBJECT_ALLOCATION_MAI T>
Export Class.xmlExport Class.xml
<?xrnl versιon="1.0" encodιng="ISO-8859-l" ?:<? xrnl versιon = "1.0" encodιng = "ISO-8859-l"?:
<CACL_OBJECT_ALLOCATION_MAINT><CACL_OBJECT_ALLOCATION_MAINT>
- <EXPORTS>- <EXPORTS>
- <CHANGE_NO>- <CHANGE_NO>
<SAPTYPE>0< SAPTYPE> <TYPE>String</TYPE> <LE GTH> 12</LE GTH> <DECI ALS>0</DECIMALS> </CHANGE_NO><SAPTYPE> 0 <SAPTYPE> <TYPE> String </TYPE> <LE GTH> 12 </ LE GTH> <DECI ALS> 0 </DECIMALS> </CHANGE_NO>
- <CLASS>- <CLASS>
<SAPTYPE 0</SAPTYPE; SAPart = 0; vom Typ String; <TYPE> String</TYPE> Länge 18 Zeichen; keine Dezi<SAPTYPE 0 </ SAPTYPE; SAPart = 0; string type; <TYPE> String </TYPE> length 18 characters; no deci
<LENGTH>18</LENGTH> f malstellen<LENGTH> 18 </LENGTH> f paint
<DECIMALS>0</DECIMALS> </CLASS> <CLASS_TYPE><DECIMALS> 0 </DECIMALS> </CLASS> <CLASS_TYPE>
<SAPTYPE>0</SAPTYPE><Saptype> 0 </ saptype>
<TYPE>String</TYPE><TYPE> string </ TYPE>
<LENGTH>3</LENGTH><LENGTH> 3 </ LENGTH>
<DECIMALS>Q</DECIMALS> </CLASS_TYPE> <DELETE_ALLOCATION><DECIMALS> Q </DECIMALS> </CLASS_TYPE> <DELETE_ALLOCATION>
<SAPT VPE>0</S APT YPE><SAPT VPE> 0 </SAPTYPE>
<TYPE>String</TYPE><TYPE> string </ TYPE>
<LE GTH> 1</LENGTH><LE GTH> 1 </LENGTH>
<DEC IM AL5>0</DECIFvl ALS> </DELETE_ALLOCATION> <I_DATUV><DEC IM AL5> 0 </ DECIFvl ALS> </DELETE_ALLOCATION> <I_DATUV>
<SAPTYPE>1</SAPT PE> SAPart = 1 ; vom Typ Date (Da-<SAPTYPE> 1 </ SAPT PE> SAPart = 1; of type Date (Da-
<TYPE>Date</TYPE> >. turn); Länge: 8 Zeichen; keine<TYPE> Date </TYPE>>. turn); Length: 8 characters; no
<LENGTH>8 A.ENGTH> Dezimalstellen<LENGTH> 8 A.ENGTH> decimal places
<DECIMALS>0</DECIMALS> </I_DATUV> <I_OBJ_NOT_CH ><DECIMALS> 0 </DECIMALS> </I_DATUV> <I_OBJ_NOT_CH>
<SAPTYPE>0</SAPTYPE><Saptype> 0 </ saptype>
<TYPE>String</TYPE><TYPE> string </ TYPE>
<LEMGTH>K LEFMGTH><LEMGTH> K LEFMGTH>
<DECIMALS>0</DECIMALS> < I_OBJ_NOT_CH > - <OB ECT_TYPE><DECIMALS> 0 </DECIMALS><I_OBJ_NOT_CH> - <OB ECT_TYPE>
<SAPTYPE>0< SAPTYPE> <TYPE>String</TYPE> <LENGTH>30</LENGTH> <DECIMALS>0</DECI ALS> </OBJECT_TYPE><SAPTYPE> 0 <SAPTYPE> <TYPE> String </TYPE> <LENGTH> 30 </LENGTH> <DECIMALS> 0 </ DECI ALS> </OBJECT_TYPE>
- <STANDARD_CLASS>- <STANDARD_CLASS>
<SAPTYPE>0</SAPTYPE> <TYPE>String</TYPE> <LENGTH> 1</LENGTH> <DECIMAL5>0</DECIMALS> </STANDARD_CLASS><SAPTYPE> 0 </SAPTYPE> <TYPE> String </TYPE> <LENGTH> 1 </LENGTH> <DECIMAL5> 0 </DECIMALS> </STANDARD_CLASS>
- <STATUS>- <STATUS>
<SAPTYPE>0</SAPTYPE> <TYPE>String</TYPE> <LE GTH>1</LENGTH <DECIMALS>0</'DECIMALS> </STATUS> </EXPORTS> - <TABLES><SAPTYPE> 0 </SAPTYPE><TYPE> String </TYPE><LEGTH> 1 </ LENGTH <DECIMALS> 0 </ ' DECIMALS></STATUS></EXPORTS> - <TABLES>
- <ÜBJECT_IDENTIFICATION>- <ÜBJECT_IDENTIFICATION>
- <FIELD>- <FIELD>
<SAPTYPE>0</SAPTYPE> <TVfPE>String</TYPE> <LEMGTH>30</LE GTH> <DECI ALS>0</DECI ALS> </FIELD><SAPTYPE> 0 </SAPTYPE><TV f PE> String </TYPE><LEMGTH> 30 </ LE GTH><DECIALS> 0 </ DECI ALS></FIELD>
- <VALUE>- <VALUE>
<SAPTYPE>0</SAPTYPE> <TYPE>String</TYPE> <LENGTH>50</LENGTH> <DECIMALS>0</DECIMALS> </VALUE> </OBJECT_IDENTIFICATION> </TABLES> </CACL OBJECT ALLOCATION MAINT; <SAPTYPE> 0 </SAPTYPE><TYPE> String </TYPE><LENGTH> 50 </LENGTH><DECIMALS> 0 </DECIMALS></VALUE></OBJECT_IDENTIFICATION></TABLES></ CACL OBJECT ALLOCATION MAINT ;
Import Class.xmlImport Class.xml
<?xml versιon="l.ü" encodιng="ISO-88S9-l" ?> - <CACL_OBJECT_ALLOCATIGN_Mώ.INT> <IMPO TS /> - <TABLES><? xml versιon = "l.ü" encodιng = "ISO-88S9-l"?> - <CACL_OBJECT_ALLOCATIGN_M ώ .INT><IMPO TS /> - <TABLES>
- <OBJECT_IDENTIFICATION>- <OBJECT_IDENTIFICATION>
- <FIELD>- <FIELD>
<SAPTYPE>0</SAPTYPE> <TYPE>String</TYPE> <LENGTH>30</LENGTH> <DECIMALS>0< DECIMALS> </FIELD><SAPTYPE> 0 </SAPTYPE> <TYPE> String </TYPE> <LENGTH> 30 </LENGTH> <DECIMALS> 0 <DECIMALS> </FIELD>
- <VALUE>- <VALUE>
<SAPTYPE>0< SAPTYPE> <TYPE>Strmg</TYPE> <LEMGTH>50 </LENGTH> <DECIMALS>0</DECIMAL5> /VALUE> </OBJECT_IDENTIFICATION> </TABLES> </CACL_OBJECT_ALLOCATION_MAINT><SAPTYPE> 0 <SAPTYPE> <TYPE> Strmg </TYPE> <LEMGTH> 50 </LENGTH> <DECIMALS> 0 </DECIMAL5> / VALUE> </OBJECT_IDENTIFICATION> </TABLES> </CACL_OBJECT_ALLOCATION_MAINT>
Klassifizierung II, Merkmale, Equipments und Technische Plätze sind nach dem gleichen Muster aufgebaut.Classification II, features, equipment and functional locations are structured in the same way.
Funktionsaufrufefunction calls
CACL_CLASSIFICATION_SAVECACL_CLASSIFICATION_SAVE
Statementstatement
Figure imgf000028_0001
- <CACL_CLASSIFICATI N_SAVE> - <EXPORTS>
Figure imgf000028_0001
- <CACL_CLASSIFICATI N_SAVE> - <EXPORTS>
<I_COMMIT>X</I_COM IT> </EXPQRTS> <I PO TS /> < CACL_CLASSIFICATI N_SAVE> Responds<I_COMMIT> X </ I_COM IT></EXPQRTS><I PO TS /><CACL_CLASSIFICATIN_SAVE> Responds
<?xml version="1.0" encoding="ISO-8859-l" ?: - <CÄCL_CLASSIFICATION_SAVE> - <EXPORTS><? xml version = "1.0" encoding = "ISO-8859-l"?: - <CÄCL_CLASSIFICATION_SAVE> - <EXPORTS>
<I_COMMIT>X</I_COMMIT> </EXPORTS> <I PORTS /> </CACL_CLASSIFICATION_SAVE><I_COMMIT> X </I_COMMIT> </EXPORTS> <I PORTS /> </CACL_CLASSIFICATION_SAVE>
Class.ExistenceCheckClass.ExistenceCheck
Statementstatement
<?xml υersioπ="1.0" encoding="ISO-88S9-l" ?;<? xml υersioπ = "1.0" encoding = "ISO-88S9-l"?;
<BAPI_CLASS_EXISTENCECHEC ><BAPI_CLASS_EXISTENCECHEC>
- <EXPORTS>- <EXPORTS>
<CLASSNUM>STATIOIM</CLASSNUM> <CLASSTYPE>003</CLASSTYPE> </EXPORTS><CLASSNUM> STATIOIM </CLASSNUM> <CLASSTYPE> 003 </CLASSTYPE> </EXPORTS>
</BAPI_CLASS_EXISTENCECHECK> </ BAPI_CLASS_EXISTENCECHECK>
RespondsResponds
<?xml version="1.0" encoding="ISO-88S9-l" ?> - <BAPI_CLASS_EXISTENCECHEC ><? xml version = "1.0" encoding = "ISO-88S9-l"?> - <BAPI_CLASS_EXISTENCECHEC>
- <EXPORTS>- <EXPORTS>
<CLASSNUM>STATION< CLASSNUM><CLASSNUM> STATION <CLASSNUM>
<CLASSTYPE>003</CLASSTYPE> </EXPORT5> <IMPORTS /><CLASSTYPE> 003 </CLASSTYPE> </EXPORT5> <IMPORTS />
- <TABLES>- <TABLES>
- <RETURN> - <R0W1>- <RETURN> - <R0W1>
<TYPE>I</TYPE><TYPE> I </ TYPE>
<ID>CL</ID><ID> CL </ id>
<NUMBER>002</NUMBER><NUMBER> 002 </ NUMBER>
<MESSAGE> lassenart 003 : STATION ist bereits angelegt < MESSAGE>Leave <MESSAGE> type 003: STATION has already been created <MESSAGE>
<LOG_NO /><LOG_NO />
<LOG_MSG_NO>000000</LOG_MSG_NO><LOG_MSG_NO> 000000 </ LOG_MSG_NO>
<MESSAGE_V1>003</MESSAGE_V1><MESSAGE_V1> 003 </ MESSAGE_V1>
<MESSAGE_V2>STATION</MESSAGE_V2><MESSAGE_V2> STATION </ MESSAGE_V2>
< ESSAGE_V3 /><ESSAGE_V3 />
<MESSAGE_V4 /><MESSAGE_V4 />
<PARAMETER /><PARAMETER />
<RO >0</RO ><RO> 0 </RO>
<FIELD /><FIELD />
<SYSTEM>C12MAND010</SYSTEM> </ROWl> </RETURM> </TABLES> </BAPI_CLASS_EXISTENCECHEC > <SYSTEM> C12MAND010 </SYSTEM></ROWl></RETURM></TABLES></BAPI_CLASS_EXISTENCECHEC>
Im folgenden werden nicht einschränkend zu verstehende Ausführungsbeispiele anhand der Zeichnung besprochen. In dieser zeigen:In the following, non-restrictive exemplary embodiments are discussed with reference to the drawing. In this show:
Fig. la-d die Funktionsweise des erfindungsgemäßen Verfahrens zum Betrieb eines dynamischen Datenbankinterface zur Kommunikation einer Datenbanksystem- Applikation mit einem Datenbanksystem anhand schematischer Darstellungen des Parameteraustauschs,La-d the operation of the inventive method for operating a dynamic database interface for communication of a database system application with a database system using schematic representations of the parameter exchange,
Fig. 2a-c verschiedene Möglichkeiten einer Kommunikationsstrecke zwischen einer Datenbanksystem-Applikation und einem Datenbanksystem über ein dynamisches Datenbankinterface nach der vorliegenden Erfindung, und2a-c different possibilities of a communication link between a database system application and a database system via a dynamic database interface according to the present invention, and
Fig. 3 eine schematische Darstellung einer Ausführungsform eines Poolmanagersystems nach der vorliegenden Erfindung.Fig. 3 is a schematic representation of an embodiment of a pool manager system according to the present invention.
Fig. la-e zeigen die Funktionsweise des erfindungsgemäßen Verfahrens zum Betrieb eines dynamischen Datenbankinterface zur Kommunikation einer Datenbanksystem- Applikation mit einem Datenbanksystem anhand schematischer Darstellungen des Parameteraustauschs.La-e show the functioning of the method according to the invention for operating a dynamic database interface for communicating a database system application with a database system on the basis of schematic representations of the parameter exchange.
Die hier zu sehenden Abbildungen stellen den Prozeß, insbesondere hinsichtlich des Aufbaus und/oder der Funktionsweise des XML-Protokolls bildlich dar, wobei Fig. la das allgemeine Prinzip veranschaulicht, nach dem ein Funktionsaufruf seitens der Applikation, hier GIS, und dann eine Überprüfung, ob die Funktion vorhanden ist erfolgt, wobei, wenn die Funktion auf Seiten des Datenbanksystems, hier SAP, vorhanden ist, die Funktion ausgeführt wird und die Parameter an die Applikation zurückgegeben werden. Gibt es die Funktion nicht, dann wird vorzugsweise eine Fehlermeldung zurückgegeben.The images shown here depict the process, in particular with regard to the structure and / or the functioning of the XML protocol, FIG. 1 a illustrating the general principle according to which a function call by the application, here GIS, and then a check, whether the function is present, whereby if the function is available on the part of the database system, here SAP, the function is carried out and the parameters are returned to the application. If the function does not exist, an error message is preferably returned.
Fig. lb zeigt den Fall, daß die übergebenen Parameter nicht übereinstimmen. Die GIS- Seite ist hier zu groß, im SAP sind zu wenig Felder vorhanden, da das Feld 3 nicht existiert. SAP schickt trotzdem die gewünschten Daten zurück, weil SAP in diesem Fall eine Teilmenge der ankommenden GIS-Daten darstellt. Eine Fehlermeldung erfolgt hier somit nicht. Fig. lc zeigt den Fall, daß weniger Parameter von der Applikation zur Verfügung gestellt werden, als SAP als Parameter für den Funktionsaufruf verarbeiten kann. Diese Transaktion ruft ebenfalls keine Fehlermeldung hervor, da hier GIS eine Teilmenge der SAP- Funktionaparameter zur Verfügung stellt. Eine Fehlermeldung erschiene nur, wenn die fehlenden Felder 3 und 4 Pflichtfelder wären. Das Beispiel verdeutlicht das Prinzip, alle Transaktionen 1:1 abzubilden sowie den Anspruch der Fehlertoleranz.Fig. Lb shows the case that the parameters passed do not match. The GIS page is too large here, there are too few fields in SAP because field 3 does not exist. SAP still sends the requested data back, because in this case SAP represents a subset of the incoming GIS data. There is therefore no error message here. 1c shows the case in which fewer parameters are made available by the application than SAP can process as parameters for the function call. This transaction also does not generate an error message because GIS provides a subset of the SAP function parameters here. An error message would only appear if the missing fields 3 and 4 were mandatory. The example illustrates the principle of mapping all transactions 1: 1 and the claim of fault tolerance.
Fig. ld zeigt schließlich analog zu Fig. lc den Fall, wie die SAP-Parameter-Teilmenge vollständig auf die GIS-Seite abgebildet wird.FIG. 1d shows, analogously to FIG. 1c, the case in which the SAP parameter subset is completely mapped on the GIS side.
Fig. 2a-c zeigen verschiedene Möglichkeiten einer Kommunikationsstrecke zwischen einer Datenbanksystem-Applikation und einem Datenbanksystem über ein dynamisches Datenbankinterface nach der vorliegenden Erfindung.2a-c show different possibilities of a communication link between a database system application and a database system via a dynamic database interface according to the present invention.
Fig. 2a zeigt den Fall, daß ein geographisches Informationssystem als Datenbanksystem- Applikation fungiert, wobei es im XML-Format mit einem Corba-Modul als Instanz eines Kommunikations-Moduls, hier GISConnect.NT Engine genannt kommuniziert, welchem wiederum ein dynamisches Datenbanksystem nach der vorliegenden Erfindung, nämlich hier eine Bridge, zugeordnet ist, die das XML-Format auf das Format des Datenbanksystems, also etwa in RFCs umsetzt.Fig. 2a shows the case that a geographic information system acts as a database system application, it communicates in XML format with a Corba module as an instance of a communication module, here called GISConnect.NT Engine, which in turn is a dynamic database system according to the The present invention, namely here a bridge, is assigned, which converts the XML format to the format of the database system, for example in RFCs.
In Fig. 2b ist zwischen das Corbaserver-Modul, hier GISConnect.NT Corba-Server genannt ein Corbaclient-Modul als Zwischeninstanz geschaltet, welches von der Datenbank- Applikation, hier GIS, im XML-Format gesendete Daten in das Internet Inter Object Request Broker Protokoll (HOP) für das Corbaserver-Modul wandelt und umgekehrt vom Corbaserver-Modul in diesem Protokoll empfangene Daten so wandelt, daß diese im XML- Format an die Datenbank-Applikation gesendet werden. Dem Corbaserver-Modul ist auch hier ein dynamisches Datenbanksystem nach der vorliegenden Erfindung, nämlich eine Bridge, zugeordnet, die das XML-Format auf das Format des Datenbanksystems, also etwa in RFC 's umsetzt und umgekehrt die Umsetzung in XML vornimmt. Fig. 2c zeigt schließlich den Fall, daß zum jeweils erzeugten oder zugeordneten Corbaserver-Modul ein Corbaapplikationsserver-Modul als weitere Zwischeninstanz erzeugt oder zugeordnet wurde, welches von der Datenbank-Applikation, hier GIS, mittels eines Zwi- schen-Übertragungsprotokolls, vorzugsweise mittels TCP/IP-Protokoll im XML-Format gesendete Daten in das Internet Inter Object Request Broker Protokoll (HOP) für das Corbaserver-Modul wandelt und umgekehrt vom Corbaserver-Modul in diesem Protokoll empfangene Daten so wandelt, daß diese mittels des Zwischen-Übertragungsprotolls, vorzugsweise des TCP/IP-Protokolls im XML-Format an die Datenbank- Applikation gesendet werden.In Fig. 2b, a Corbaclient module is connected as an intermediate instance between the Corbaserver module, here called GISConnect.NT Corba server, which transmits data sent by the database application, here GIS, in XML format to the Internet Inter Object Request Broker Converts protocol (HOP) for the Corbaserver module and conversely converts data received by the Corbaserver module in this protocol in such a way that it is sent to the database application in XML format. The Corbaserver module is also assigned a dynamic database system according to the present invention, namely a bridge, which converts the XML format to the format of the database system, that is to say, for example in RFCs, and conversely carries out the conversion into XML. 2c finally shows the case in which a Corba application server module was created or assigned as a further intermediate instance to the Corbaserver module that was generated or assigned, which was created by the database application, here GIS, using an intermediate transmission protocol, preferably using TCP / IP protocol converts data sent in XML format into the Internet Inter Object Request Broker Protocol (HOP) for the Corbaserver module and conversely converts data received from the Corbaserver module in this protocol in such a way that it is preferably by means of the intermediate transmission protocol of the TCP / IP protocol are sent to the database application in XML format.
Diese Corbaapplikationsserver-Version, vorzugsweise Corba-HTTP-Applikationsserver- Version, geht davon aus, daß die Applikation unter einem beliebigen Betriebssystem oder im Web läuft. Der Poolmanager erzeugt dann vorzugsweise personifizierte Corba-Objekte. Die Verbindung zum Poolmanager läuft vorzugsweise über eine TCP/IP-Socket- Verbindung, wobei das Protokoll XML ist. Der HTTP-Corba-Applications-Server kann etwa unter Windows NT ablaufen, ist grundsätzlich von seiner Struktur her aber plattformunabhängig. Für die Clients ist keine Betriebssystemabhängigkeit gegeben.This Corba application server version, preferably Corba HTTP application server version, assumes that the application runs under any operating system or on the web. The pool manager then preferably creates personalized Corba objects. The connection to the pool manager preferably runs via a TCP / IP socket connection, the protocol being XML. The HTTP Corba Applications server can run under Windows NT, for example, but its structure is basically platform-independent. There is no operating system dependency for the clients.
Fig. 3 zeigt eine schematische Darstellung einer Ausführungsform eines Poolmanagersystems nach der vorliegenden Erfindung.3 shows a schematic representation of an embodiment of a pool manager system according to the present invention.
Hier erfolgt der Zugriff auf Datenbanksysteme unter Verwendung der sogenannten "Common Object Request Broker Architecture" (CORBA), welcher sich als offener Standard für verteilte Netzapplikationen immer größerer Beliebtheit erfreut. Dabei kann jedoch der Zugriff bei einer wachsenden Anzahl von Teilnehmern auf das Datenbanksystem skalierbar ausgestaltet werden, was etwa dadurch gewährleistet wird, daß jeweils eine bestimmte Anzahl von Teilnehmern, welche Zugriff auf das Datenbanksystem haben sollen auf einem sogenannten Corba-Applikationsserversystem, oberer Bildteil (GISConnect.NT HTTP Server), zusammengefaßt werden, welches den Datenverkehr zum jeweiligen Client mittels IIOP führt und wobei dieses Corba-Applikationsserversystem sodann mit dem eigentlichen Datenbanksystem, hier SAP, über den im unteren Bildteil zu sehenden XML Corbaserversystem über SAP-Bridges (Ausführungsformen dynamischer Datenbankinterfaces nach der vorliegenden Erfindung) verbunden wird.Here, database systems are accessed using the so-called "Common Object Request Broker Architecture" (CORBA), which is becoming increasingly popular as an open standard for distributed network applications. However, access to a growing number of participants in the database system can be made scalable, which is ensured, for example, by the fact that a certain number of participants who should have access to the database system on a so-called Corba application server system, upper part of the image (GISConnect .NT HTTP Server), which leads the data traffic to the respective client using IIOP and this Corba application server system then with the actual database system, here SAP, via the XML shown in the lower part of the figure Corbaser server system via SAP bridges (embodiments of dynamic database interfaces according to the present invention) is connected.
Vorzugsweise wird hier ein Corbaserver-Modul als Corba-Modul erzeugt oder zugeordnet, das so beschaffen ist, daß es seine Kommunikation zur Datenbanksystem- Applikation über mindestens eine CORBA-Zwischeninstanz, nämlich ein Corbaclient-Modul, abwickelt, wobei der Poolmanager vorzugsweise zum jeweils erzeugten oder zugeordneten Corbaserver-Modul ein solches Corbaclient-Modul als Zwischeninstanz erzeugt oder zuordnet, welches von der Datenbank-Applikation im XML-Format gesendete Daten in das Internet Inter Object Request Broker Protokoll (IIOP) für das Corbaserver-Modul wandelt und umgekehrt vom Corbaserver-Modul in diesem Protokoll empfangene Daten so wandelt, daß diese im XML-Format an die Datenbank-Applikation gesendet werden.A Corbaserver module is preferably generated or assigned here as a Corba module, which is designed in such a way that it processes its communication with the database system application via at least one CORBA intermediate instance, namely a Corbaclient module, the pool manager preferably generating each or assigned Corbaserver module creates or assigns such a Corbaclient module as an intermediate instance, which converts data sent by the database application in XML format into the Internet Inter Object Request Broker Protocol (IIOP) for the Corbaserver module and vice versa by the Corbaserver module. Module converts data received in this protocol so that it is sent to the database application in XML format.
Ein Corbaapplikations-Server-Modul, welches den vorstehenden Umsetzungsprozeß leistet, kann dabei sowohl anonym mit zugeordnetem Corbaclient-Modul (welches dann vorzugsweise selbst nicht in und nach IIOP umsetzt) als auch über namentlich bekannte Benutzer, etwa zur http-Kommunikation (als Corbaclient-Modul, welches dann auch umsetzt), etwa über das World Wide Web genutzt werden. Der Typ der anfragenden Applikation ist davon unabhängig, die Anmeldeform ist abhängig von dem beteiligten Datenbanksystem.A Corba application server module, which performs the above implementation process, can either anonymously with an assigned Corbaclient module (which then preferably does not implement itself in and after IIOP) as well as via known users, for example for http communication (as Corbaclient- Module, which then also implements), for example via the World Wide Web. The type of the requesting application is independent of this, the registration form depends on the database system involved.
Beim Aufruf eines solchen HTTP-Corbapplikationserver-Moduls werden vorzugsweise mit dem Hochfahren des Systems die Corbaclient-Module 1-n als (anonyme [etwa einem von und in 1TOP umsetzenden Corbaapplikations-Server-Modul zugeordnete] oder namentlich gebundene [etwa selbst als Corbaapplikations-Server-Modul fungierende und von und in IIOP umsetzende]) Zugriffsobjekte erzeugt. Gleichzeitig werden bei Beginn einer Sitzung automatisch etwa - im Falle der Verwendung von SAP als Datenbanksystem - SAP-Bridges (SAP Bridge 1-n) mit gestartet bzw. erzeugt. Der Poolmanager verwaltet die ankommenden Anfragen und weist jeweils ein Corbaclient-Modul zu. Ist die Zahl der Corbaclient-Module zu niedrig, bleiben die Anfragen vorzugsweise so lange in einer Warteschleife, bis der Poolmanager einen freien Platz zuweisen kann. Alle Transaktionen können dabei ohne Benutzer (User)-Bezug ablaufen, d.h. ein Benutzer muß sich nicht mit einem eigenen Profil an das SAP-System anmelden, da die Anmeldung automatisch beim Start des Systems erfolgt (etwa weil der Pool vorkonfigurierte Benutzer [User] benutzt). Die mit XML-bezeichneten Blitze zu den Applikationen in der Abbildung verdeutlichen, daß die Auswertung einer Anfrage im XML-Format erfolgt. Es ist auch möglich, daß sich ein User personenbezogen anmeldet; die Anmeldung erfolgt direkt beim HTTP-Corbaapplikationsserver-Modul, dem ein ein personifiziertes Corbaclient-Modul zugeordnet ist.When calling up such an HTTP Corbapplication server module, when the system is started up, the Corbaclient modules 1-n are preferably used as (anonymous [approximately assigned to a Corba application server module that is implemented by and in 1TOP]) or by name [approximately even as a Corba application Server module acting and implemented by and in IIOP]) access objects. At the same time, SAP bridges (SAP Bridge 1-n) are automatically started or generated at the start of a session, for example if SAP is used as the database system. The pool manager manages the incoming requests and assigns one Corbaclient module each. If the number of Corbaclient modules is too low, the requests preferably remain in a queue until the pool manager can allocate a free space. All transactions can take place without a user (user) reference, ie a user does not have to log on to the SAP system with their own profile, since the logon takes place automatically when the system is started (for example because the pool uses preconfigured users) ). The flashes for the applications in the figure, labeled with XML, make it clear that the evaluation of a request takes place in XML format. It is also possible for a user to register personally; registration takes place directly at the HTTP Corba application server module, to which a personalized Corbaclient module is assigned.
Es kann aber - wie bereits gesagt - auch so sein, daß der Poolmanager zum jeweils erzeugten oder zugeordneten Corbaserver-Modul ein Corbaapplikationsserver-Modul als Corba- Client erzeugt oder es einem Corbaclient-Modul nur zugeordnet und damit auch als Zwischeninstanz erzeugt oder zuordnet, welches von der Datenbank-Applikation mittels eines Zwischen-Übertragungsprotokolls, vorzugsweise mittels TCP/IP-Protokoll im XML- Format gesendete Daten in das Internet Inter Object Request Broker Protokoll (IIOP) für das Corbaserver-Modul wandelt und umgekehrt vom Corbaserver-Modul in diesem Protokoll empfangene Daten so wandelt, daß diese mittels des Zwischen-Übertragungsprotolls, vorzugsweise des TCP /LP-Protokolls im XML-Format an die Datenbank-Applikation gesendet werden. Fungiert das Corbaapplikationsserver-Modul selbst nicht als Corbaclient- Modul, sondern ist diesem nur zugeordnet, so geschieht dies vorzugsweise deshalb, weil das Corbaclient-Modul dann nur der Zuordnung zu den, vorzugsweise anonymen, Benutzerrechten dient und die Umsetzung von und nach IIOP in diesem Falle nicht vom Corbaclient-Modul, sondern von dem diesem zugeordneten Corbaapplikationsserver-Modul erfolgt.However, as already mentioned, it can also be the case that the pool manager creates a Corba application server module as the Corba client for the respectively created or assigned Corbaserver module or only assigns it to a Corbaclient module and thus also creates or assigns as an intermediate instance which one converts data sent by the database application using an intermediate transmission protocol, preferably using the TCP / IP protocol in XML format, into the Internet Inter Object Request Broker Protocol (IIOP) for the Corbaserver module and vice versa from the Corbaserver module in this protocol converts received data in such a way that they are sent to the database application in XML format using the intermediate transmission protocol, preferably the TCP / LP protocol. If the Corba application server module itself does not function as a Corbaclient module, but is only assigned to it, this is preferably because the Corbaclient module then only serves for the assignment to the, preferably anonymous, user rights and the implementation from and to IIOP in this Not from the Corbaclient module, but from the Corba application server module assigned to it.
Der hier im oberen Bildteil zu sehende HTTP-Corba-Applications-Serversystems kann so auch von fremden Applikationen aus gesteuert werden. Damit ist es möglich, daß die fremde Applikation gezielt Daten aus dem Datenbanksystem abrufen kann. Hiermit kann unter der Kontrolle der fremden Applikation eine synchrone oder asynchrone Verbindung zum Datenbanksystem aufgebaut werden. Diese Eigenschaft des hier zusehenden HTTP-Corba-Applikations-Serversystems erlaubt auch eine gezielte Verwendung in Testsystemen. Insbesondere der direkte Kommunikationstest über eine Webseite ist somit ermöglicht. Insgesamt werden hierdurch Entwicklungszeiten minimiert. The HTTP Corba Applications server system shown here in the upper part of the figure can also be controlled from other applications. This makes it possible for the external application to specifically retrieve data from the database system. This enables a synchronous or asynchronous connection to the database system to be established under the control of the external application. This property of the HTTP Corba application server system seen here also allows targeted use in test systems. In particular, the direct communication test via a website is possible. Overall, this minimizes development times.

Claims

Titel: Dynamisches DatenbankinterfaceAnmelder: Informationsverarbeitung Leverkusen GmbH (IVL), Overfeldweg 55, D - 51371 Leverkusen, BR DeutschlandPatentansprüche Title: Dynamic database interface Applicant: Informationsverarbeitung Leverkusen GmbH (IVL), Overfeldweg 55, D - 51371 Leverkusen, BR Germany
1. Verfahren zum Betrieb eines dynamischen Datenbankinterface zur Kommunikation einer Datenbanksystem-Applikation mit einem Datenbanksystem, welches1. Method for operating a dynamic database interface for communicating a database system application with a database system, which
(i) einen parametrierten Datenbanksystem-Funktionsaufruf für das Datenbanksystem von der Datenbanksystem-Applikation im XML-Format codiert empfängt,(i) receives a parameterized database system function call for the database system coded in XML format by the database system application,
(ii) diesen, soweit möglich, in ein zum Datenbanksystem kompatibles Format umsetzt,(ii) if possible, convert this into a format compatible with the database system,
(iii) den, soweit möglich, entsprechenden parametrierten Datenbanksystem- Funktionsaufruf zum Datenbanksystem hin in einem zum Datenbanksystem kompatiblen Format codiert sendet,(iii) sends the corresponding parameterized database system function call to the database system, as far as possible, coded in a format compatible with the database system,
(iv) falls ein Datenbanksystem-Funktionsaufruf erfolgte, ein parametriertes Ergebnis von dem Datenbanksystem in einem zum Datenbanksystem kompatiblen Format codiert empfängt,(iv) if a database system function call was made, receives a parameterized result from the database system coded in a format compatible with the database system,
(v) falls ein Datenbanksystem-Funktionsaufruf erfolgte, das parametrierte Ergebnis in das XML-Format umsetzt, und (vi) falls ein Datenbanksystem-Funktionsaufruf erfolgte, das empfangene parametrierte Ergebnis im XML-Format codiert wieder an die Datenbanksystem- Applikation zurücksendet.(v) if a database system function call was made, the parameterized result is converted into XML format, and (vi) if a database system function call was made, the parameterized result received and encoded in XML format is sent back to the database system application.
2. Verfahren zum Betrieb eines dynamischen Datenbankinterface nach Anspruch 1, dadurch gekennzeichnet, daß es von der Datenbanksystem-Applikation den parametrierten Datenbanksystem-Funktionsaufruf für das Datenbanksystem im XML-Format so codiert empfängt, daß dieser neben dem jeweiligen Parameterwert oder Parameterwerten auch eine Identifikation des Parameters, vorzugsweise einen Parameterbezeichner, aufweist.2. Method for operating a dynamic database interface according to claim 1, characterized in that it receives the parameterized database system function call for the database system in XML format from the database system application in such a way that, in addition to the respective parameter value or parameter values, it also identifies the Parameters, preferably a parameter identifier.
3. Verfahren zum Betrieb eines dynamischen Datenbankinterface nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß es von der Datenbanksystem-Applikation den parametrierten Datenbanksystem-Funktionsaufruf für das Datenbanksystem im XML-Format so codiert empfängt, daß dieser neben dem jeweiligen Parameterwert oder Parameterwerten auch Informationen über die Struktur des Parameters aufweist.3. Method for operating a dynamic database interface according to claim 1 or 2, characterized in that it receives the parameterized database system function call for the database system in XML format from the database system application in such a way that, in addition to the respective parameter value or parameter values, it also contains information about the structure of the parameter.
4. Verfahren zum Betrieb eines dynamischen Datenbankinterface nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, daß es von der Datenbanksystem- Applikation den parametrierten Datenbanksystem-Funktionsaufruf für das Datenbanksystem im XML-Format so codiert empfängt, daß dieser neben dem jeweiligen Parameterwert oder Parameterwerten auch Informationen darüber aufweist, ob der jeweilige Parameter ein Export- oder ein Importparameter ist.4. A method for operating a dynamic database interface according to claim 1, 2 or 3, characterized in that it receives the parameterized database system function call for the database system in XML format from the database system application in such a way that it is next to the respective parameter value or parameter values also has information about whether the respective parameter is an export or an import parameter.
5. Verfahren zum Betrieb eines dynamischen Datenbankinterface 1, 2, 3 oder 4, dadurch gekennzeichnet, daß es das vom Datenbanksystem empfangene parametrierte Ergebnis in das XML-Format so umsetzt und wieder an die Datenbanksystem-Applikation zurücksendet, daß es neben dem jeweiligen Parameterwert oder Parameterwerten auch eine Identifikation des Parameters, vorzugsweise einen Parameterbezeichner, aufweist.5. Method for operating a dynamic database interface 1, 2, 3 or 4, characterized in that it converts the parameterized result received by the database system into XML format and sends it back to the database system application in such a way that it is next to the respective parameter value or Parameter values also have an identification of the parameter, preferably a parameter identifier.
6. Verfahren zum Betrieb eines dynamischen Datenbankinterface 1, 2, 3, 4 oder 5 dadurch gekennzeichnet, daß es das vom Datenbanksystem empfangene parametrierte Ergebnis in das XML-Format so umsetzt und wieder an die Datenbanksystem-Applikation zurück- sendet, daß es neben dem jeweiligen Parameterwert oder Parameterwerten auch Informationen über die Struktur des Parameters aufweist.6. Method for operating a dynamic database interface 1, 2, 3, 4 or 5, characterized in that it converts the parameterized result received by the database system into the XML format and returns it to the database system application. sends that in addition to the respective parameter value or parameter values it also has information about the structure of the parameter.
7. Verfahren zum Betrieb eines dynamischen Datenbankinterface nach Anspruch 1, 2, 3, 4, 5 oder 6 dadurch gekennzeichnet, daß es das vom Datenbanksystem empfangene parametrierte Ergebnis in das XML-Format so umsetzt und wieder an die Datenbanksystem- Applikation zurücksendet, daß es neben dem jeweiligen Parameterwert oder Parameterwerten auch Informationen darüber aufweist, ob der jeweilige Parameter ein Export- oder ein Importparameter ist.7. The method for operating a dynamic database interface according to claim 1, 2, 3, 4, 5 or 6, characterized in that it converts the parameterized result received from the database system into the XML format and sends it back to the database system application in such a way that it In addition to the respective parameter value or parameter values, it also has information as to whether the respective parameter is an export or an import parameter.
8. Verfahren zum Betrieb eines dynamischen Datenbankinterface nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß dieses vor Schritt (iii), vorzugsweise anhand einer eigenen Umsetzungsdatenbasis, überprüft, ob der von der Datenbank-Applikation empfangene Datenbanksystem-Funktionsaufruf von Seiten des Datenbanksystems auch tatsächlich zum Aufruf zur Verfügung steht, wobei es im negativen Falle eine Fehlermeldung im XML-Format codiert wieder an die Datenbanksystem-Applikation zurücksendet.8. The method for operating a dynamic database interface according to one of claims 1 to 7, characterized in that it checks before step (iii), preferably using its own implementation database, whether the database system function call received by the database application on the part of the database system is actually available for calling, and in the negative case sends an error message encoded in XML format back to the database system application.
9. Verfahren zum Betrieb eines dynamischen Datenbankinterface nach Anspruch 8, dadurch gekennzeichnet, daß dieses vor Schritt (iii), vorzugsweise anhand einer eigenen Umsetzungsdatenbasis, überprüft, ob alle vom Datenbanksystem unbedingt für die Ausführung des Datenbanksystem-Funktionsaufrufes notwendigen Parameter auch von der Datenbank-Applikation empfangen wurden, wobei es im negativen Falle eine Fehlermeldung im XML-Format codiert wieder an die Datenbanksystem-Applikation zurücksendet.9. A method of operating a dynamic database interface according to claim 8, characterized in that it checks before step (iii), preferably using its own implementation database, whether all the parameters necessary for the execution of the database system function call by the database system are also required by the database. Application were received, in the negative case it sends an error message encoded in XML format back to the database system application.
10. Verfahren zum Betrieb eines dynamischen Datenbankinterface nach Anspruch 9, dadurch gekennzeichnet, daß es bei der Umsetzung in Schritt (ii), vorzugsweise anhand einer eigenen Umsetzungsdatenbasis, besonders bevorzugterweise anhand einer Identifikation der Parameter, feststellt, welche von der Datenbanksystem-Applikation empfangenen Parameter auf welche zum Datenbanksystem kompatiblen Parameter umgesetzt werden müssen. 10. The method for operating a dynamic database interface according to claim 9, characterized in that it determines which parameters received from the database system application during the implementation in step (ii), preferably using a separate implementation database, particularly preferably using an identification of the parameters to which parameters compatible with the database system must be implemented.
11. Verfahren zum Betrieb eines dynamischen Datenbankinterface nach Anspruch 10, dadurch gekennzeichnet, daß es bei der Umsetzung in Schritt (v), vorzugsweise anhand einer eigenen Umsetzungsdatenbasis, besonders bevorzugterweise anhand einer Identifikation der Parameter, feststellt, welche von dem Datenbanksystem empfangenen Parameter auf welche zur Datenbanksystem-Applikation kompatiblen Parameter umgesetzt werden müssen.11. A method of operating a dynamic database interface according to claim 10, characterized in that it determines which parameters received from the database system are assigned to which during the implementation in step (v), preferably using a separate implementation database, particularly preferably using an identification of the parameters parameters compatible with the database system application must be implemented.
12. Verfahren zum Betrieb eines dynamischen Datenbankinterface nach einem der Ansprüche 1 bis 11, dadurch gekennzeichnet, daß als Datenbanksystem- Applikation ein geographisches Informationssystem (GIS) und als Datenbanksystem zumindest ein Strukturdatenbanksystem, vorzugsweise mit einer relationalen Datenbank, dient, in welcher strukturelle, d.h. nicht räumliche Daten von Objekten aus einer dem geographischen Informationssystem ebenfalls zugehörigen Geodatenbank hinterlegt sind, wobei die Geodatenbank entsprechend der räumlichen Position von Objekten, vorzugsweise als QuadTreee oder relational, organisiert ist und hierin zumindest die räumlichen Daten, vorzugsweise die geometrischen und/oder geographischen Daten der Objekte hinterlegt sind, wobei zusätzlich zu den räumlichen Daten für die jeweiligen Objekte auch dem jeweiligen Objekt zugeordnete Verweisinformationen in der Geodatenbank hinterlegt sind, die die in der Geodatenbank hinterlegten räumlichen Objektdaten zumindest einem Objekt im Strukturdatenbanksystem zuordnen, und weiterhin bei einem Zugriff auf ein Objekt der Geodatenbank automatisch mittels der hier hinterlegten Verweisinformationen die Zuordnung auf die zugeordneten Objekte des Strukturdatenbanksystems über das dynamische Datenbankinterface herstellt und hierdurch auch den Zugriff auf die hier hinterlegten, zum Objekt der Geodatenbank zugehörigen Strukturdaten erlaubt.12. Method for operating a dynamic database interface according to one of claims 1 to 11, characterized in that a geographic information system (GIS) is used as the database system application and at least one structural database system, preferably with a relational database, is used as the database system, in which structural, i.e. Non-spatial data of objects from a geodatabase that is also associated with the geographic information system are stored, the geodatabase being organized according to the spatial position of objects, preferably as a quad tree or relational, and therein at least the spatial data, preferably the geometric and / or geographic data of the Objects are stored, in addition to the spatial data for the respective objects, reference information associated with the respective object is also stored in the geodatabase, which assign the spatial object data stored in the geodatabase to at least one object in the structure database system, and furthermore when an object is accessed Geo-database automatically creates the assignment to the assigned objects of the structure database system via the dynamic database interface by means of the reference information stored here and thereby also access to the data stored here structural data belonging to the object of the geodatabase is allowed.
13. Verfahren zum Betrieb eines dynamischen Datenbankinterface nach Anspruch 12, dadurch gekennzeichnet, daß zusätzlich zu den strukturellen Daten für die jeweiligen Objekte auch dem jeweiligen Objekt zugeordnete Rück-Verweisinformationen in dem Strukturdatenbanksystem hinterlegt sind, die die in dem Strukturdatenbanksystem hinterlegten strukturellen Objektdaten zumindest einem Objekt in der Geodatenbank zuordnen und die über das dynamische Datenbankinterface vom geographischen Informationssystem abgerufen werden.13. The method for operating a dynamic database interface according to claim 12, characterized in that, in addition to the structural data for the respective objects, back-reference information associated with the respective object is also stored in the structural database system, which is the structural object data stored in the structural database system for at least one object assign in the geodatabase and which are accessed from the geographic information system via the dynamic database interface.
14. Verfahren zum Betrieb eines Poolmanagers zur Konnektion einer Datenbanksystem- Applikation mit mindestens einem Datenbanksystem mittels mindestens einem dynamischen Datenbankinterface, welches jeweils nach dem Verfahren nach einem der Ansprüche 1 bis 13 betrieben wird, wobei der Poolmanager Anforderungen von der Datenbanksystem-Applikation zur Kommunikation mit dem Datenbanksystem oder den Datenbanksystemen empfängt und sodann für die anfordernde Datenbanksystem-Applikation eine der anfordernden Datenbanksystem-Applikation zugeordnete Instanz seiner selbst oder eines Kommunikations-Moduls jeweils mit mindestens einem zugehörigen dynamischen Datenbankinterface erzeugt oder zuordnet.14. A method for operating a pool manager for connecting a database system application to at least one database system by means of at least one dynamic database interface, which is operated according to the method according to one of claims 1 to 13, wherein the pool manager requests from the database system application for communication with receives the database system or the database systems and then for the requesting database system application an instance assigned to the requesting database system application itself or a communication module is generated or assigned with at least one associated dynamic database interface.
15. Verfahren zum Betrieb eines Poolmanagers nach Anspruch 14, dadurch gekennzeichnet, daß er die Kommunikationsanforderung durch die Datenbanksystem-Applikation im XML-Format empfängt und einen Datenpaketteil, vorzugsweise einen sogenannten Connectstring innerhalb des XML-Datenpaketes auswertet, der das Datenbanksystem oder die Datenbanksysteme identifiziert, zu dem die Kommunikation aufgebaut werden soll, wobei die Instanz seiner selbst oder des Kommunikations-Moduls jeweils mit mindestens einem zugehörigen dynamischen Datenbankinterface erzeugt oder zugeordnet wird, welches zur Kommunikation der Datenbanksystem- Applikation mit dem angeforderten Datenbanksystem oder Datenbanksystemen dient oder dienen.15. The method for operating a pool manager according to claim 14, characterized in that it receives the communication request by the database system application in XML format and evaluates a data packet part, preferably a so-called connect string within the XML data packet, which identifies the database system or the database systems , to which the communication is to be set up, the instance of itself or the communication module being generated or assigned with at least one associated dynamic database interface, which serves or serve to communicate the database system application with the requested database system or database systems.
16. Verfahren zum Betrieb eines Poolmanagers nach Anspruch 15, dadurch gekennzeichnet, daß der Poolmanager ein Corba-Modul, vorzugsweise ein Corbaserver-Modul, als Instanz seiner selbst oder als Kommunikations-Modul erzeugt oder zuordnet, so daß die Kommunikation mit der Datenbanksystem-Applikation und/oder oder dem jeweilig zugehörigen dynamischen Datenbankinterface oder Datenbankinterfaces mittels Internet Inter Object Request Broker Protokoll (IIOP) mittelbar oder unmittelbar abgewickelt wird.16. The method for operating a pool manager according to claim 15, characterized in that the pool manager generates or assigns a Corba module, preferably a Corbaserver module, as an instance of itself or as a communication module, so that communication with the database system application and / or the respective associated dynamic database interface or database interfaces is processed directly or indirectly using the Internet Inter Object Request Broker Protocol (IIOP).
17. Verfahren zum Betrieb eines Poolmanagers nach Anspruch 16, dadurch gekennzeichnet, daß ein Corbaserver-Modul als Corba-Modul erzeugt oder zugeordnet wird, das so be- schaffen ist, daß es seine Kommunikation zur Datenbanksystem-Applikation über mindestens eine CORBA-Zwischeninstanz abwickelt.17. A method for operating a pool manager according to claim 16, characterized in that a Corbaserver module is generated or assigned as a Corba module, which is thus create that it communicates with the database system application through at least one intermediate CORBA instance.
18. Verfahren zum Betrieb eines Poolmanagers nach Anspruch 17, dadurch gekennzeichnet, daß der Poolmanager zum jeweils erzeugten oder zugeordneten Corbaserver-Modul ein Corbaclient-Modul als Zwischeninstanz erzeugt oder zuordnet, welches von der Datenbank-Applikation im XML-Format gesendete Daten in das Internet Inter Object Request Broker Protokoll (IIOP) für das Corbaserver-Modul wandelt und umgekehrt vom Corbaserver-Modul in diesem Protokoll empfangene Daten so wandelt, daß diese im XML- Format an die Datenbank- Applikation gesendet werden.18. A method for operating a pool manager according to claim 17, characterized in that the pool manager generates or assigns a Corbaclient module as an intermediate instance to the Corbaserver module generated or assigned, which data sent by the database application in XML format into the Internet Inter Object Request Broker protocol (IIOP) for the Corbaserver module converts and conversely converts data received by the Corbaserver module in this protocol so that it is sent to the database application in XML format.
19. Verfahren zum Betrieb eines Poolmanagers nach Anspruch 17 oder 18, dadurch gekennzeichnet, daß der Poolmanager zum jeweils erzeugten oder zugeordneten Corbaserver- Modul ein Corbaapplikationsserver-Modul als Corbaclient-Modul oder einem Corbaclient-Modul zugehörig erzeugt oder zuordnet, welches von der Datenbank-Applikation mittels eines Zwischen-Übertragungsprotokolls, vorzugsweise mittels TCP/IP-Protokoll im XML-Format gesendete Daten in das Internet Inter Object Request Broker Protokoll (IIOP) für das Corbaserver-Modul wandelt und umgekehrt vom Corbaserver-Modul in diesem Protokoll empfangene Daten so wandelt, daß diese mittels des Zwischen- Übertragungsprotolls, vorzugsweise des TCP/IP-Protokolls im XML-Format an die Datenbank-Applikation gesendet werden.19. The method for operating a pool manager according to claim 17 or 18, characterized in that the pool manager for a Corbaser application module generated or assigned a Corba application server module as Corbaclient module or a Corbaclient module associated with or assigned, which of the database Application converts data sent using an intermediate transmission protocol, preferably using TCP / IP protocol in XML format, into the Internet Inter Object Request Broker Protocol (IIOP) for the Corbaserver module and conversely converts data received in this protocol from the Corbaserver module that they are sent to the database application in XML format using the intermediate transmission protocol, preferably the TCP / IP protocol.
20. Verfahren zum Betrieb eines Poolmanagers nach einem der Ansprüche 14 bis 19 soweit diese auf Anspruch 12 oder 13 bezogen sind, dadurch gekennzeichnet, daß als Geodatenbank GIS Smallworld (geschützte Marke) und als Datenbanksystem zur Realisierung der Strukturdatenbank ein SAP (geschützte Marke)-System vorgesehen ist.20. Method for operating a pool manager according to one of claims 14 to 19 insofar as these are related to claim 12 or 13, characterized in that an SAP (protected trademark) GIS Smallworld (protected trademark) and as a database system for implementing the structural database - System is provided.
21. Dynamisches Datenbankinterface System, dadurch gekennzeichnet, daß es ein Datenverarbeitungssystem mit einem Prozessor und einem Speicher aufweist, das programmtechnisch so eingerichtet ist, daß es nach dem Verfahren zum Betrieb eines dynamischen Datenbankinterface nach einem der Ansprüche 1 bis 13 arbeitet. 21. Dynamic database interface system, characterized in that it has a data processing system with a processor and a memory, which is set up in terms of programming so that it works according to the method for operating a dynamic database interface according to one of claims 1 to 13.
22. Poolmanager System, dadurch gekennzeichnet, daß es ein Datenverarbeitungssystem mit einem Prozessor und einem Speicher aufweist, das programmtechnisch so eingerichtet ist, daß es nach dem Verfahren zum Betrieb eines Poolmanagers nach einem der Ansprüche 14 bis 20 arbeitet.22. Pool manager system, characterized in that it has a data processing system with a processor and a memory, which is set up in terms of programming so that it works according to the method for operating a pool manager according to one of claims 14 to 20.
23. Poolmanager System nach Anspruch 22 soweit dieser auf einen der Ansprüche 17 bis 20 rückbezogen ist, dadurch gekennzeichnet, daß es mindestens zwei miteinander über einen Kommunikationskanal verbundene Datenverarbeitungssysteme mit mindestens je einem Prozessor und einem Speicher aufweist, wobei das erste programmtechnisch so eingerichtet ist, daß auf ihm ein Poolmanager betrieben wird, der nach dem Verfahren zum Betrieb eines Poolmanagers nach einem der Ansprüche 17 bis 20 arbeitet und der Poolmanager das der anfordernden Datenbanksystem-Applikation zugeordnete Corbaserver- Modul jeweils mit mindestens einem zugehörigen dynamischen Datenbankinterface auf dem zweiten Datenverarbeitungssystem erzeugt oder zuordnet, wobei es seine Kommunikation zur Datenbanksystem-Applikation über die CORBA-Zwischeninstanz, vorzugsweise das Corbaclient-Modul, welches auf dem ersten Datenverarbeitungssystem liegt, abwickelt.23. Pool manager system according to claim 22 insofar as it relates to one of claims 17 to 20, characterized in that it has at least two data processing systems connected to one another via a communication channel, each with at least one processor and one memory, the first being set up in terms of programming technology, that a pool manager is operated on it, which operates according to the method for operating a pool manager according to one of claims 17 to 20, and the pool manager generates the Corbaserver module assigned to the requesting database system application with at least one associated dynamic database interface on the second data processing system or assigns, it handles its communication with the database system application via the CORBA intermediate instance, preferably the Corbaclient module, which is located on the first data processing system.
24. Computerprogramm, welches Instruktionen aufweist, die zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 13 eingerichtet sind.24. Computer program which has instructions which are set up to carry out the method according to one of claims 1 to 13.
25. Computerprogramm, welches Instruktionen aufweist, die zur Durchführung des Verfahrens nach einem der Ansprüche 14 bis 23 eingerichtet sind. 25. Computer program which has instructions which are set up to carry out the method according to one of claims 14 to 23.
PCT/EP2003/003779 2002-04-24 2003-04-11 Dynamic database interface WO2003091821A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003233965A AU2003233965A1 (en) 2002-04-24 2003-04-11 Dynamic database interface

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE10218401.1 2002-04-24
DE10218401 2002-04-24
EP02012263A EP1357483A3 (en) 2002-04-24 2002-06-04 Dynamic database interface
EP02012263.6 2002-06-04

Publications (2)

Publication Number Publication Date
WO2003091821A2 true WO2003091821A2 (en) 2003-11-06
WO2003091821A3 WO2003091821A3 (en) 2004-09-30

Family

ID=29271572

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2003/003779 WO2003091821A2 (en) 2002-04-24 2003-04-11 Dynamic database interface

Country Status (2)

Country Link
AU (1) AU2003233965A1 (en)
WO (1) WO2003091821A2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122652A1 (en) * 2000-02-03 2001-08-08 Mitsubishi Denki Kabushiki Kaisha Data Integration system
US20010037345A1 (en) * 2000-03-21 2001-11-01 International Business Machines Corporation Tagging XML query results over relational DBMSs

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122652A1 (en) * 2000-02-03 2001-08-08 Mitsubishi Denki Kabushiki Kaisha Data Integration system
US20010037345A1 (en) * 2000-03-21 2001-11-01 International Business Machines Corporation Tagging XML query results over relational DBMSs

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"UNTANGLING THE WEB" INTELLIGENT ENTERPRISE, MILLER FREEMAN, SAN MATEO, CA, US, Bd. 4, Nr. 5, 27. März 2001 (2001-03-27), Seiten 38-43, XP008003563 ISSN: 1524-3621 *
GUPTA A ET AL: "Integrating GIS and imagery through XML-based information mediation" INTEGRATED SPATIAL DATABASES. DIGITAL IMAGES AND GIS. INTERNATIONAL WORKSHOP ISD'99. SELECTED PAPERS (LECTURE NOTES IN COMPUTER SCIENCE VOL.1737) 1999, BERLIN, GERMANY, SPRINGER-VERLAG, GERMANY, 1999, Seiten 211-234, XP002276625 ISBN: 3-540-66931-0 *
SHIMADA S ET AL: 'Geospatial mediator functions and container-based fast transfer interface in Si/sup 3/CO test-bed' 1999, BERLIN, GERMANY, SPRINGER-VERLAG, GERMANY 1999, Seiten 265 - 276, XP008029589 ISBN: 3-540-65725-8 *

Also Published As

Publication number Publication date
AU2003233965A8 (en) 2003-11-10
AU2003233965A1 (en) 2003-11-10
WO2003091821A3 (en) 2004-09-30

Similar Documents

Publication Publication Date Title
DE69630480T2 (en) Method, device and data structures for object management
DE69724877T2 (en) Method and device for operating an aggregation of server computers using a dual-purpose proxy server
EP0825524B1 (en) Method for naming of objects
DE60118487T2 (en) Communication system based on WDSL language
DE10051024B4 (en) A method of intermediate caching in a client-server software system, computer program products and computer system for performing such a method
DE60008555T2 (en) METHOD AND DEVICE FOR EFFICIENTLY TRANSMITTING DATA FROM AN INTERACTIVE APPLICATION BETWEEN CLIENTS AND SERVER BY MEANS OF A MARKUP LANGUAGE
DE69912317T2 (en) DEVICE AND METHOD FOR DETERMINING A PROGRAM NEIGHBORHOOD FOR A CUSTOMER NODE IN A CUSTOMER OPERATOR NETWORK
EP1258812B1 (en) Virtual database of heterogeneous data structures
DE69832354T2 (en) Network management framework
DE10051021B4 (en) System, method and computer program for providing interactive web content in statically linked files
EP0825527B1 (en) Method for supporting address interaction between two units
DE69814697T2 (en) DEVICE, METHOD AND COMPUTER PROGRAM PRODUCT FOR CLIENT / SERVER COMPUTERS WITH LOCALIZATION OF TRANSACTION OBJECTS SELECTABLE FROM THE CLIENT
DE10214540A1 (en) Web server with integrated automation functionality and access to a real-time operating system
DE10214539A1 (en) Production machine with a control integrated in a web server
WO2003091821A2 (en) Dynamic database interface
DE19943453A1 (en) System and method to support group interaction (GIA) in hypermedia information spaces
EP1437655A2 (en) Computer and/or software architecture using microkernel and multitier concepts with component techniques
EP1357483A2 (en) Dynamic database interface
WO2013087303A1 (en) Method and device for filtering network traffic
EP0864972B1 (en) Parameter updating method
EP1435026B1 (en) System and method for the data emission of an appliance, especially an automation appliance, by means of a standardised interface with replacement of variables by means of an echo server
EP0825526B1 (en) Method for supporting interaction between two units
EP0825525B1 (en) Method for supporting the creation of objects
DE10138658B4 (en) Data processing device and coupling means for a data processing device
DE19951756B4 (en) Data management method and computer program and system for executing it

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP