WO2005074234A1 - System und verfahren zur kommunikation zwischen entfernten objekten und lokalen stellvertretern - Google Patents

System und verfahren zur kommunikation zwischen entfernten objekten und lokalen stellvertretern Download PDF

Info

Publication number
WO2005074234A1
WO2005074234A1 PCT/EP2005/000862 EP2005000862W WO2005074234A1 WO 2005074234 A1 WO2005074234 A1 WO 2005074234A1 EP 2005000862 W EP2005000862 W EP 2005000862W WO 2005074234 A1 WO2005074234 A1 WO 2005074234A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
service
calls
communication
general
Prior art date
Application number
PCT/EP2005/000862
Other languages
English (en)
French (fr)
Inventor
Jens Doppelhamer
Eckhard Kruse
Zaijun Hu
Yauheni Veryha
Original Assignee
Abb Research Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Abb Research Ltd. filed Critical Abb Research Ltd.
Priority to US10/587,471 priority Critical patent/US20070266159A1/en
Publication of WO2005074234A1 publication Critical patent/WO2005074234A1/de

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data

Definitions

  • the invention relates to a system and a method for communication between remote objects, the methods of which are accessible as XML web services - also referred to here briefly as web services - and their local representative objects, the methods of which implement transparent access to the remote methods ,
  • proxy is also used here.
  • Such communication methods are described, for example, in http://www.w3c.org/2002 ws /, (as of January 27, 2004).
  • XML web services provide a standardized and widespread basis for communication in loosely coupled, distributed systems, e.g. B. on the Internet, in particular for calling remote procedures and methods.
  • XML Web services can be used to access remote objects.
  • a client or client 1 is shown, who communicates with a service provider 10 via the Internet or a LAN 9.
  • the client 1 is to be understood as a data processing device with associated software, with at least one client application 2 which is connected to proxies 3, e.g. B. Proxy A and Proxy B communicates, which in turn communicate with a communication layer 4.
  • the communication layer 4 of the client 1 is set up with a corresponding communication layer 4 of a service provider 10 to communicate via the Internet 9.
  • the facilities of the service provider 10 also contain software means for implementing services 5, z. B. Service A and Service B.
  • the known sequence of a remote service call in such an environment according to FIG. 3 is described below: i.
  • the client 1 calls a local procedure provided by a proxy 3.
  • the representative 3 uses the functionality implemented in the communication layer 4 to transmit the procedure call information via the LAN or the Internet 9 to the service provider 10.
  • the procedure call information is extracted, the procedure 5 implementing the service is called locally, the return value of the call is formatted and transmitted to the communication layer 4 of the client 1, iv.
  • the communication layer 4 of the client 1 extracts the procedure return information, and the corresponding local representative 3 delivers the return value as a result of the initial local procedure call to the client application 2.
  • the invention is therefore based on the object of specifying a system and a method for communication between distant objects with which a reduction in the communication effort can be achieved.
  • the invention accordingly proposes to reduce the required communication effort by arranging an optimization layer and a general proxy on the client side and to insert a general service at the service provider.
  • optimizations e.g. B. achieve by bundling calls.
  • the system or method allows the use of buffers (caches), alternative data formats and transmission protocols, as well as application-specific optimizations.
  • bundling service calls may be desirable if the fixed costs for a so-called round trip from the client to the service provider and back in relation to the costs of transmission and processing the actual service request and response are very high. These costs are caused by (often multiple) connection setups, the creation and transmission of protocol-specific message headers and the initialization of message processing (e.g. SOAP / XML parser, authentication , authorization and authorization) or transmitting (e.g. B. HTTP connection or data compression) components.
  • message processing e.g. SOAP / XML parser, authentication , authorization and authorization
  • transmitting e.g. B. HTTP connection or data compression
  • the method according to the invention makes it possible to: 1. prevent remote method calls, e.g. B. by using local caches to answer information requests, 2. delaying remote method calls, e.g. For example, the method calls necessary to control the lifespan of distant objects in object-oriented environments, whether through their explicit destruction (so-called destructor calls) or through the periodic determination of objects that are no longer used (the so-called garbage collection), can be delayed by the client Runtime environment of the remote objects are transmitted, 3. bundle remote method calls, eg B. in order to reduce the number of resource-intensive connection establishment processes and to subsequently make the inferred requests in 1st and 2nd inactivated opportunities, 4. to enrich the messages containing the return values of method calls with further information relevant to the local application, e.g. B.
  • FIG. 1 shows the system architecture of a communication system according to the invention
  • FIG. 2 shows a communication sequence according to the invention
  • FIG. 3 shows the system architecture of a communication system according to the prior art.
  • a generic representative for this additional web service which is referred to as general proxy 7, is installed in the remote runtime environment at client 1.
  • the client 1 contains an optimization layer 6 as an additional component. This offers communication and data formatting functions required for the communication with the proxies 3 and replaces functions of the communication layer 4 in this respect, but also expands the Optimization.
  • the optimization layer 6 can in turn use the functionality of the communication layer 4, or another implementation of the required functionality, by means of the general proxy 7.
  • Step S1 The client 1 or the client application 2 calls a local one
  • Step S2 The proxy 3 uses the one implemented in the optimization layer 6
  • the optimization layer 6 offers the proxy or proxy 3 an original one
  • Step S3 In the optimization layer 6, if the service call cannot be delayed or can be answered by a result that is present in a buffer of the optimization layer 6, it is extended by service calls that already existed, were delayed beforehand, or logically to be carried out in advance
  • Step S4 This bundle of calls is made by calling the
  • Step S5 The bundle is transferred to the general service 8 by calling the general service procedure locally.
  • Step S6 The general service procedure processes the service calls and delivers them
  • the general service 8 finds the required services 5 in step 6.
  • Step S7 Method call by the general service 8.
  • Step S8 Return of results of services 5 to general service 8.
  • Step S9 Compilation of the results by the general service 8 in bundles.
  • Step S10 Return the bundle of results to the communication layer 4.
  • Bundle can be expanded to include additional from the service provider
  • Optimization layer 6 of the information to be transmitted by the client is optimized.
  • Step S11 Transmission to the remote communication layer 4 and from there
  • Step S12 Evaluation of the results in the optimization layer 6.
  • Step S13 In the optimization layer 6, the information supplied in addition to the response to the initial service request is evaluated and used.
  • Step S14 The answer to the initial request is via the generic one
  • the expansion of an existing system of generic representatives and service providers can be carried out in parallel by exchanging the client-side communication layer with the optimization layer 6 according to the invention with communication layer 4 and installing the additional general proxy the existing proxies.
  • Application-independent optimizations such as the use of caches and the delay of service calls, can be made configurable without any implementation effort.
  • Application-dependent optimizations can be inserted as modules at a defined interface of the optimization layer 6.
  • the general service 8 is implemented on the service provider side in parallel with the existing services.
  • the general service 8 contains an intermediate store of service-providing service instances whose service methods are carried out by so-called reflection, ie on the basis of information about the target, the name and the signature of the method.
  • XML document instances according to the SOAP specification or a bandwidth-efficient binary coding can be used to serialize and deserialize the parameter and return objects of the method calls.
  • the assignment of In the case of SOAP (de) serialization, the client-side to service provider-side types are based on type attributes declared in the given proxy service pairs; in the case of binary coding, a binding between serialization and the type to be instantiated is implemented in accordance with the requirements of the deserialization component found.
  • the optimization and control of communication is transparent both for the users of the services offered and for their providers.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Die Erfindung bezieht sich auf ein System - und ein entsprechendes Verfahren - zur Kommunikation zwischen entfernten, bei Dienstanbietern (10) vorhandenen Objekten, deren Methoden als Webservices (5) zugreifbar sind, und Client-seitigen lokalen Stellvertretern (Proxies 3) in einem Rechnernetz (9), insbesondere Internet oder LAN. Auf der Seite der Dienstanbieter (10) ist zusätzlich zu vorhandenen Diensten (Webservices 5) ein Generalservice (8) installiert, der dafür eingerichtet ist, eine oder mehrere Serviceaufrufe eines Clients (1) an die vorhandenen Dienste (5) zu vermitteln, und eine. oder mehrere Antwortnachrichten an den Clients (1) zu übermitteln. Client-seitig ist jeweils zusätzlich zu den sonstigen lokalen Stellvertretern (Proxies 3) eine Optimierungsschicht (6) implementiert, die dafür eingerichtet ist, Client-seitige Optimierungen vorzunehmen und Aufrufbündel zusammenzustellen. Ausserdem ist ein Generalproxy (7) installiert, der dafür eingerichtet ist, gebündelte Dienstaufrufe auszuführen und Antwortnachrichten an die Optimierungsschicht (6) zurückzugeben.

Description

System und Verfahren zur Kommunikation zwischen entfernten Objekten und lokalen Stellvertretern
Beschreibung
Die Erfindung bezieht sich auf ein System und ein Verfahren zur Kommunikation zwischen entfernten Objekten, deren Methoden als XML-Web- Services - hier auch kurz als Webservices bezeichnet - zugreifbar sind, und ihren lokalen Stellvertreterobjekten, deren Methoden einen transparenten Zugriff auf die entfernten Methoden implementieren. Neben der Bezeichnung Stellvertreter wird hier auch die Bezeichnung Proxy verwendet. Solche Kommunikationsverfahren sind beispielsweise in http://www.w3c.org/2002 ws/, (Stand: 27.01.2004), beschrieben.
XML-Web-Services stellen eine standardisierte und weit verbreitete Grundlage zur Kommunikation in lose gekoppelten, verteilten Systemen, z. B. im Internet, insbesondere zum Aufruf entfernter Prozeduren und Methoden dar. In objektorientierten Systemen können XML- Web-Services zum Zugriff auf entfernte Objekte eingesetzt werden.
In Fig. 3 ist die Systemarchitektur eines Kommunikationssystems nach dem Stand der Technik dargestellt. Dabei ist ein Klient oder Client 1 dargestellt, der mit einem Dienstanbieter 10 über das Internet oder ein LAN 9 kommuniziert. Der Client 1 ist als Datenverarbeitungseinrichtung mit zugehöriger Software aufzufassen, mit wenigstens einer Client-Anwendung 2, die mit Proxies 3, z. B. Proxy A und Proxy B kommuniziert, wobei diese wiederum mit einer Kommunikationsschicht 4 kommunizieren. Die Kommunikationsschicht 4 des Client 1 ist dafür eingerichtet, mit einer entsprechenden Kommunikationsschicht 4 eines Dienstanbieters 10 über das Internet 9 zu kommunizieren. Die Einrichtungen des Dienstanbieters 10 enthalten außerdem Software-Mittel zur Realisierung von Services 5, z. B. Service A und Service B.
Der bekannte Ablauf eines entfernten Dienstaufrufs in einer solchen Umgebung gemäß Fig.3 ist nachstehend beschrieben: i. Der Client 1 ruft eine lokale, von einem Stellvertreter 3 zur Verfügung gestellte Prozedur auf. ii. Der Stellvertreter 3 verwendet die in der Kommunikationsschicht 4 implementierte Funktionalität zum Übermitteln der Prozeduraufruflnformationen über das LAN oder das Internet 9 zum Dienstanbieter 10. iii. In der Kommunikationsschicht 4 des Dienstanbieters 10 wird die Prozeduraufrufinformation extrahiert, die den Dienst implementierende Prozedur 5 lokal aufgerufen, der Rückgabewert des Aufrufs formatiert und an die Kommunikationsschicht 4 des Klienten 1 übermittelt, iv. Die Kommunikationsschicht 4 des Klienten 1 extrahiert die Prozedurrückgabeinformationen, und der entsprechende lokale Stellvertreter 3 liefert den Rückgabewert als Ergebnis des initialen lokalen Prozeduraufrufs an die Client-Anwendung 2.
Durch die Verwendung von SOAP (Simple Object Access Protocol), wie in http://www.w3.org/TR soap12-part1/ beschrieben, verbunden mit http (Hypertext Transfer Protocol), wie in ftp://ftp.isi.edu/in-notes/rfc2616.txt beschrieben, als Verfahren zum Austausch strukturierter und typisierter Daten, können Dienste unterschiedlichsten Anwendungen innerhalb des sogenannten WWW über Plattformgrenzen hinweg zugänglich gemacht werden. Grundsätzlich ist das bekannte, wie auch das unten beschriebene Verfahren jedoch unabhängig vom verwendeten Protokoll.
Ein wesentlicher Nachteil einer solchen generischen Realisierung entfernter Methodenaufrufe ist, dass diese Aufrufe um ein Vielfaches zeit- und rechen intensiver sind als lokale Funktionsaufrufe oder Funktionsaufrufe in enger gekoppelten Systemen.
Der Erfindung liegt daher die Aufgabe zugrunde, ein System und ein Verfahren zur Kommunikation zwischen entfernten Objekten anzugeben, mit denen eine Verringerung des Kommunikationsaufwands erreichbar ist.
Diese Aufgabe wird durch ein Kommunikationssystem gelöst, das die im Anspruch 1 angegebenen Merkmale aufweist. Ein zugehöriges Kommunikationsverfahren und vorteilhafte Ausgestaltungen sind in weiteren Ansprüchen angegeben.
Mit der Erfindung wird demnach vorgeschlagen, den erforderlichen Kommunikationsaufwand dadurch zu verringern, dass Client-seitig eine Optimierungsschicht sowie ein Generalproxy angeordnet werden, und beim Dienstanbieter einen Generalservice einzufügen. Mit diesen Maßnahmen lassen sich Optimierungen, z. B. durch Bündelung von Aufrufen erreichen.
Das System bzw. Verfahren erlaubt die Nutzung von Zwischenspeichern (Caches), alternativen Datenformaten und Übertragungsprotokollen, sowie anwendungsspezifischen Optimierungen.
In Umgebungen, die z. B. über die Grenzen eines lokalen Netzwerkes hinweg einzelne Komponenten nur lose koppeln, gilt insbesondere, dass ein Bündeln von Dienstaufrufen wünschenswert sein kann, wenn die fixen Kosten für eine sogenannte Rundreise vom Klienten zum Dienstanbieter und zurück im Verhältnis zu den Kosten der Übertragung und Bearbeitung der eigentlichen Dienstanfrage und Antwort sehr hoch sind. Diese Kosten werden verursacht durch (oft mehrfach) notwendige Verbindungsaufbauten, die Erstellung und Übertragung protokollspezifischer Nachrichtenköpfe und die Initialisierung von Nachrichten verarbeitenden (z. B. von SOAP/XML-Parser-, Authent'rfizierungs- und Autorisierungs-) oder übertragenden (z. B. HTTP-Verbindungs- oder Datenkomprimierungs-) Komponenten. Mit der Erfindung wird hinsichtlich dieses Sachverhalts eine Verbesserung erreicht, da ermöglicht wird, unabhängig von der Erstellung der Dienste (Webservices) und Stellvertreter (Proxies), Optimierungen in den Kommunikationsablauf einzufügen. Dabei werden keine zusätzlichen Anforderungen an die Ablaufumgebung sowohl der Dienst- als auch der Klient- und Stellvertreterkomponenten gestellt, und die generischen Dienstund Stellvertreterkomponenten, insbesondere deren Schnittstellen, werden nicht verändert, wodurch vorteilhaft Wiederverwendbarkeit und leichte Konfigurierbarkeit erreicht werden.
Das erfindungsgemäße Verfahren ermöglicht es: 1. entfernte Methodenaufrufe zu unterbinden, z. B. indem lokale Caches zum Beantworten von Informationsanfragen genutzt werden, 2. entfernte Methodenaufrufe zu verzögern, z. B. können die in objektorientierten Umgebungen notwendigen Methodenaufrufe zur Kontrolle der Lebenszeit entfernter Objekte, sei es durch deren explizite Zerstörung (sogenannte Destruktoraufrufe), oder durch das periodische Ermitteln von nicht mehr verwendeten Objekten (die sogenannte Garbage Collection), durchaus zeitlich verzögert vom Klienten zur Ablaufumgebung der entfernten Objekte übermittelt werden, 3. entfernte Methodenaufrufe zu bündeln, z. B. um die Zahl ressourcenintensiver Verbindungsaufbauvorgänge zu verkleinern und die in 1. und 2. hintangestellten Anfragen bei sich bietender Gelegenheit nachträglich zu tätigen, 4. die die Rückgabewerte entfernter Methodenaufrufe enthaltenden Nachrichten mit weiteren, für die lokale Anwendung relevanten Informationen anzureichern, z. B. um das Löschen von ungültig gewordenen Einträgen in lokalen Caches zu veranlassen, 5. über verwendete Übertragungsprotokolle oder Datenformate je nach Laufzeitumgebung zu entscheiden, z.B. um die ressourcenintensive SOAP/HTTP-Übertragung durch eine effizientere zu ersetzen, sofern die Art der Verbindung (Internet/LAN, eventuell vorhandene HTTP-Proxies und Firewalls) dies erlauben, und 6. zur Verwaltung, insbesondere Aktualisierung und Invalidierung der Daten in einem Zwischenspeicher, unabhängig von Aufrufen aus Client-Anwendungen eine Kommunikation zu initiieren, oder huckepack Informationen zusammen mit der Übertragung von Aufrufbündeln und der Rückübertragung von Antworten beim Dienstanbieter anzufordern. Das Verfahren ist in allen Umgebungen einsetzbar, in denen generische Dienstanbieter- und Stellvertreter-Komponenten zur Verfügung stehen, die die Funktionalität zur Formatierung und Übertragung eines entfernten Dienstaufrufs und der entsprechenden Antwort kapseln. Zum Beispiel bietet die Framework Class Library (FCL) der Microsoft.NET Plattform, vergl. J. Richter, Applied Microsoft .NET Framework Programming, Microsoft Press 2001, Seiten 21 bis 24, solche Komponenten an.
Eine weitere Beschreibung der Erfindung und deren Vorteile erfolgt nachstehend anhand eines in Zeichnungsfiguren dargestellten Ausführungsbeispiels.
Es zeigt:
Fig. 1 die Systemarchitektur eines erfindungsgemäßen Kommunikationssystems, Fig. 2 einen erfindungsgemäßen Kommunikationsablauf, Fig. 3 die Systemarchitektur eines Kommunikationssystems nach dem Stand der Technik.
Fig.1 zeigt die Systemarchitektur eines erfindungsgemäßen
Kommunikationssystems. Zum Zweck der Kontrolle und Optimierung der Kommunikation ist dabei auf der Seite eines Dienstanbieters 10 zusätzlich zu den in einer Ausführungsumgebung gemäß dem Stand der Technik, wie bereits oben anhand der Fig. 3 beschrieben, vorhandenen Diensten, den Services 5, ein weiterer Webservice allgemeinerer Funktionalität installiert, der mit Generalservice 8 bezeichnet ist. Dieser ist in der Lage, eine oder mehrere Dienstanfragen an die ursprünglichen Dienstanbieter, die Services 5, zu vermitteln, und eine oder mehrere Antwortnach richten an den oder die entfernten Klienten, die Clients 1, zu übermitteln.
Entsprechend ist in der entfernten Ablaufumgebung, beim Client 1, ein generischer Stellvertreter für diesen zusätzlichen Webservice installiert, der als Generalproxy 7 bezeichnet ist. Außerdem enthält der Client 1 als zusätzliche Komponente eine Optimierungsschicht 6. Diese bietet für die Kommunikation mit den Proxies 3 erforderliche Kommunikations- und Datenformatierungs-Funktionen und ersetzt insoweit Funktionen der Kommunikationsschicht 4, erweitert aber auch die Optimierungsmöglichkeiten. Die Optimierungsschicht 6 kann ihrerseits mittels des Generalproxies 7 die Funktionalität der Kommunikationsschicht 4, oder eine andere Implementierung der benötigten Funktionalität, verwenden.
Weitere Informationen zur Funktion der bereits genannten Komponenten erschließen sich aus der nachstehenden Beschreibung eines Kommunikationsablaufes anhand der Fig. 2. In Fig. 2 symbolisieren senkrechte Balken die jeweils benutzten Systemkomponenten, deren Nummerierung mit der jeweiligen Komponentenbezeichnung in Fig. 3 übereinstimmt. Mit S1 bis S14 sind Abiaufschritte bezeichnet, die nachstehend erläutert werden.
Fig. 2 zeigt einen typischen Ablauf eines Dienstaufrufes in einer erfindungsgemäß erweiterten Umgebung:
Schritt S1 : Der Client 1, bzw. die Client-Anwendung 2 ruft eine lokale, von einem
Proxy 3 zur Verfügung gestellte Prozedur auf.
Schritt S2: Der Proxy 3 verwendet die in der Optimierungsschicht 6 implementierte
Funktionalität zum Übermitteln von Prozeduraufrufen. Die Optimierungsschicht 6 bietet dem Proxy oder Stellvertreter 3 dazu eine zur ursprünglichen
Kommunikationsschicht identische Schnittstelle.
Schritt S3: In der Optimierungsschicht 6 wird der Dienstaufruf, sofern er nicht verzögert oder durch ein, in einem Zwischenspeicher der Optimierungsschicht 6 vorhandenes Ergebnis beantwortet werden kann, durch schon vorhandene, vorher verzögerte, oder aber sinnvollerweise im Voraus zu tätigende Dienstaufrufe, erweitert
(Bündelung von Aufrufen).
Schritt S4: Dieses Bündel von Aufrufen wird durch einen lokalen Aufruf des
Generalproxy 7 an die generische Kommunikationsschicht 4 des Client 1 übergeben, und zur Kommunikationsschicht 4 des Dienstanbieters 10 übertragen.
Schritt S5: Durch einen lokalen Aufruf der Generalserviceprozedur wird das Bündel an den Generalservice 8 übergeben.
Schritt S6: Die Generalserviceprozedur bearbeitet die Dienstaufrufe und liefert deren
Ergebnisse. Der Generalservice 8 findet dazu im Schritt 6 die benötigten Services 5 auf.
Schritt S7: Methodenaufruf durch den Generalservice 8.
Schritt S8: Resultate-Rückgabe der Services 5 an den Generalservice 8. Schritt S9: Zusammenstellung der Resultate durch den Generalservice 8 zu Bündeln.
Schritt S10: Rückgabe des Resultate-Bündels an die Kommunikationsschicht 4 . Das
Bündel kann erweitert sein um zusätzlich vom Dienstanbieter zur
Optimierungsschicht 6 des Klienten zu übermittelnde Informationen.
Schritt S11: Übertragung zur entfernten Kommunikationsschicht 4 und von dort
Rückgabe zum Generalproxy 7, der das Ergebnis als lokale Prozedurrückgabe an die Optimierungsschicht 6 liefert.
Schritt S12: Auswertung der Resultate in der Optimierungsschicht 6.
Schritt S13: In der Optimierungsschicht 6 werden die zusätzlich zur Antwort auf die initiale Dienstanfrage gelieferten Informationen ausgewertet und verwendet.
Schritt S14: Die Antwort auf die initiale Anfrage wird über den generischen
Stellvertreter 3 an die Clientanwendung 2 übermittelt, womit der beispielhafte Ablauf beendet ist.
In einer konkreten Implementierung des Systems, zum Beispiel als Komponente innerhalb des .NET Frameworks, kann die Erweiterung eines bestehenden Systems von generischen Stellvertretern und Dienstanbietem durch einen Austausch der klientenseitigen Kommunikationsschicht durch die erfindungsgemäße Optimierungsschicht 6 mit Kommunikationsschicht 4 und die Installation des zusätzlichen Generalproxy parallel zu den vorhandenen Proxies realisiert werden. Anwendungsunabhängige Optimierungen, wie die Verwendung von Caches und die Verzögerung von Dienstaufrufen können so ohne Implementationsaufwand konfigurierbar zur Verfügung gestellt werden. Anwendungsabhängige Optimierungen können als Module an einer definierten Schnittstelle der Optimierungsschicht 6 eingefügt werden.
Entsprechend wird auf der Dienstanbieterseite der Generalservice 8 parallel zu den vorhandenen Services realisiert. Der Generalservice 8 beinhaltet einen Zwischenspeicher von dienstanbietenden Serviceinstanzen, deren Dienstmethoden durch sogenannte Reflektion, d.h. anhand von Informationen über das Ziel, den Namen und die Signatur der Methode ausgeführt werden. Zur Serialisierung und Deserialisierung der Parameter- und Rückgabeobjekte der Methodenaufrufe können XML-Dokument-Instanzen gemäss der SOAP-Spezifikation oder eine bandbreiteneffizientere Binärkodierung verwendet werden. Die Zuordnung von klientenseitigen zu dienstanbieterseitigen Typen erfolgt im Falle der SOAP- (De)Serialisierung anhand von in den gegebenen Proxy-Service-Paaren deklarierten Typattributen, im Falle der Binärkodierung wird eine Bindung zwischen Serialisierung und zu instanziierendem Typ gemäss den Anforderungen der vorgefundenen Deserialisierungskomponente implementiert.
Die Optimierung und Kontrolle der Kommunikation ist transparent sowohl für die Nutzer der angebotenen Dienste als auch für deren Anbieter.

Claims

Patentansprüche
1. System zur Kommunikation zwischen entfernten, bei Dienstanbietern (10) vorhandenen Objekten, deren Methoden als Webservices (5) zugreifbar sind, und Client-seitigen lokalen Stellvertretern (Proxies 3) in einem Rechnernetz (9), insbesondere Internet oder LAN, wobei
a) auf der Seite der Dienstanbieter (10) zusätzlich zu vorhandenen Diensten (Webservices 5) ein Generalservice (8) installiert ist, der dafür eingerichtet ist, eine oder mehrere Serviceaufrufe eines Clients (1) an die vorhandenen Dienste (5) zu vermitteln, und eine oder mehrere Antwortnachrichten an den Client (1) zu übermitteln, b) Client-seitig zusätzlich zu den sonstigen lokalen Stellvertretern (Proxies 3) eine Optimierungsschicht (6) implementiert ist, die dafür eingerichtet ist, Client-seitige Optimierungen vorzunehmen und Aufrufbündel zusammenzustellen, und außerdem ein Generalproxy (7) installiert ist, der dafür eingerichtet ist, gebündelte Dienstaufrufe auszuführen und Antwortnachrichten an die Optimierungsschicht (6) zurückzugeben.
2. System nach Anspruch 1, dadurch gekennzeichnet, dass die Optimierungsschicht (6) mindestens einen Zwischenspeicher enthält, mit dessen Hilfe Dienstaufrufe vermeidbar oder verzögerbar sind.
3. System nach Anspruch 2, dadurch gekennzeichnet, dass der Client (1) mittels der Optimierungsschicht (6) und dem Generalproxy (7) dafür eingerichtet ist, auch ohne Aufruf durch eine Client-Anwendung (2) selbsttätig eine Kommunikation mit einem Dienstanbieter (10) zu initiieren, um gespeicherte Information zu aktualisieren.
4. System nach Anspruch 2, dadurch gekennzeichnet, dass der Client (1) mittels der Optimierungsschicht (6) und dem Generalproxy (7) dafür eingerichtet ist, zur Verwaltung, insbesondere Aktualisierung und Invalidierung der Daten im Zwischenspeicher, huckepack Informationen zusammen mit der Übertragung von Aufrufbündeln und der Rückübertragung von Antworten beim Dienstanbieter (10) anzufordern.
5. Verfahren zur Kommunikation zwischen entfernten, bei Dienstanbietern (10) vorhandenen Objekten, deren Methoden als Webservices (5) zugreifbar sind, und Client-seitigen lokalen Stellvertretern (Proxies 3) in einem Rechnernetz (9), insbesondere Internet oder LAN, wobei auf der Seite von Dienstanbietern (10) zusätzlich zu vorhandenen Diensten (Webservices 5) ein Generalservice (8) installiert ist, und Client-seitig jeweils zusätzlich zu den sonstigen lokalen Stellvertretern (Proxies 3) eine Optimierungsschicht (6) implementiert ist, die einen Zwischenspeicher enthält, und außerdem ein Generalproxy (7) installiert ist, und wobei a) mehrere Aufrufe von Methoden durch Client-Anwendungen (2) beim jeweiligen Stellvertreter (Proxy 3) durch diesen der Optimierungsschicht (6) zugeleitet werden, dort zu einem Aufrufbundel zusammengestellt und einer Kommunikationsschicht (4) zugeleitet werden, b) eine Übertragung des Aufrufbündels zum Dienstanbieter (10) durchgeführt wird, dort durch den Generalservice (8) die im Aufrufbundel enthaltenen einzelnen Aufrufe den jeweils entsprechenden Diensten (5) zugeleitet werden, deren Antworten zusammengestellt und gebündelt zum Client (1) zurückübertragen werden, und c) die Antworten in der Optimierungsschicht (6) ausgewertet und über den jeweiligen Stellvertreter (3) der Client-Anwendung (2) zugeführt werden.
6. Verfahren nach Anspruch 5, dadurch gekennzeichnet, dass die Optimierungsschicht (6) zur Verwaltung, insbesondere Aktualisierung und Invalidierung der Daten im Zwischenspeicher, huckepack Informationen zusammen mit der Übertragung von Aufrufbündeln und der Rückübertragung von Antworten beim Dienstanbieter (10) anfordert.
7. Verfahren nach Anspruch 5 oder 6, dadurch gekennzeichnet, dass die Optimierungsschicht (6) zur Verwaltung, insbesondere Aktualisierung und Invalidierung der Daten im Zwischenspeicher, auch ohne Aufruf durch eine Client- Anwendung (2) selbsttätig eine Kommunikation mit einem Dienstanbieter (10) initiiert.
PCT/EP2005/000862 2004-01-29 2005-01-28 System und verfahren zur kommunikation zwischen entfernten objekten und lokalen stellvertretern WO2005074234A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/587,471 US20070266159A1 (en) 2004-01-29 2005-01-28 System and Method for Communication Between Remote Objects and Local Proxies

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102004004345A DE102004004345A1 (de) 2004-01-29 2004-01-29 System und Verfahren zur Kommunikation zwischen entfernten Objekten und lokalen Stellvertretern
DE102004004345.0 2004-01-29

Publications (1)

Publication Number Publication Date
WO2005074234A1 true WO2005074234A1 (de) 2005-08-11

Family

ID=34801160

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2005/000862 WO2005074234A1 (de) 2004-01-29 2005-01-28 System und verfahren zur kommunikation zwischen entfernten objekten und lokalen stellvertretern

Country Status (3)

Country Link
US (1) US20070266159A1 (de)
DE (1) DE102004004345A1 (de)
WO (1) WO2005074234A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1968284A1 (de) 2007-03-08 2008-09-10 Sap Ag System und Verfahren zur Nachrichtenverpackung
US7945949B2 (en) 2007-03-19 2011-05-17 Microsoft Corporation Providing remote services to legacy applications

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090094263A1 (en) * 2007-10-04 2009-04-09 Microsoft Corporation Enhanced utilization of network bandwidth for transmission of structured data
EP2073490A1 (de) * 2007-12-20 2009-06-24 Alcatel Lucent Vorrichtungen und Verfahren zum Aufrufen einer Sequenz von Webleistungen durch eine Nachricht, die auf einer einfachen Anfrage beruht
US7839799B2 (en) * 2008-09-12 2010-11-23 International Business Machines Corporation Middleware components for bundling service invocations
US9165145B2 (en) * 2013-03-11 2015-10-20 Sap Se Efficiently segregating data from externally accessible systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098149A (en) * 1997-06-13 2000-08-01 Emc Corporation Method and apparatus for extending commands in a cached disk array
US20030079041A1 (en) * 2001-06-04 2003-04-24 Nct Group, Inc. System and method for increasing the effective bandwidth of a communications network

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5526491A (en) * 1992-09-22 1996-06-11 International Business Machines Corporation System and method for calling selected service procedure remotely by utilizing conditional construct switch statement to determine the selected service procedure in common stub procedure
US5778228A (en) * 1994-08-16 1998-07-07 International Business Machines Corporation Method and system for transferring remote procedure calls and responses over a network
US5613155A (en) * 1995-06-07 1997-03-18 International Business Machines Corporation Bundling client write requests in a server
US6321274B1 (en) * 1996-06-28 2001-11-20 Microsoft Corporation Multiple procedure calls in a single request
US6578113B2 (en) * 1997-06-02 2003-06-10 At&T Corp. Method for cache validation for proxy caches
US6324567B2 (en) * 1997-06-11 2001-11-27 Oracle Corporation Method and apparatus for providing multiple commands to a server
US6785675B1 (en) * 2000-11-13 2004-08-31 Convey Development, Inc. Aggregation of resource requests from multiple individual requestors
US7647374B2 (en) * 2001-07-03 2010-01-12 Nokia Corporation Method for managing sessions between network parties, methods, network element and terminal for managing calls
AU2002340150A1 (en) * 2001-10-09 2003-04-22 Collaxa Corporation System and method for managing service interactions
US7603469B2 (en) * 2002-01-15 2009-10-13 International Business Machines Corporation Provisioning aggregated services in a distributed computing environment
JP4366040B2 (ja) * 2002-03-07 2009-11-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークサービスシステム、サーバ及びプログラム
US20030188039A1 (en) * 2002-03-26 2003-10-02 Liu James C. Method and apparatus for web service aggregation
US7130890B1 (en) * 2002-09-04 2006-10-31 Hewlett-Packard Development Company, L.P. Method and system for adaptively prefetching objects from a network
US7260599B2 (en) * 2003-03-07 2007-08-21 Hyperspace Communications, Inc. Supporting the exchange of data by distributed applications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098149A (en) * 1997-06-13 2000-08-01 Emc Corporation Method and apparatus for extending commands in a cached disk array
US20030079041A1 (en) * 2001-06-04 2003-04-24 Nct Group, Inc. System and method for increasing the effective bandwidth of a communications network

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1968284A1 (de) 2007-03-08 2008-09-10 Sap Ag System und Verfahren zur Nachrichtenverpackung
US7739387B2 (en) 2007-03-08 2010-06-15 Sap Ag System and method for message packaging
US7945949B2 (en) 2007-03-19 2011-05-17 Microsoft Corporation Providing remote services to legacy applications

Also Published As

Publication number Publication date
US20070266159A1 (en) 2007-11-15
DE102004004345A1 (de) 2005-08-18

Similar Documents

Publication Publication Date Title
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE19882235B4 (de) Verwendung von Web-Technologie für Teilnehmerverwaltungsaktivitäten
DE60308700T2 (de) Dynamische fernkonfiguration eines webservers zur bereitstellung von kapazität auf anfrage
DE60301202T2 (de) Verfahren und vorrichtung zur verkehrssteuerung einer web-farm
DE602005002679T2 (de) WEB-Dienst-Anwendungsprotokoll und SOAP-Verarbeitungsmodell
DE602005004334T2 (de) Nms zur Verarbeitung von Multi-Server Ereignissen
DE3908459C2 (de) Netzwerkserver
EP0825527B1 (de) Verfahren zur Unterstützung der Adress-Interaktion zwischen einer ersten und einer zweiten Einheit
EP0825524A1 (de) Verfahren zur Verwaltung der Benennung von Objekten
DE10297998B4 (de) Erstellen verteilter Proxy-Konfigurationen
WO2010081793A1 (de) Verfahren und vorrichtung zur scheckeinreichung
WO2005074234A1 (de) System und verfahren zur kommunikation zwischen entfernten objekten und lokalen stellvertretern
DE102006028309A1 (de) Mehrseitiges, gemeinschaftliches Verwenden von dynamischen Daten in einer drahtlosen Testumgebung
DE602005004255T2 (de) Bidirektionale SOAP-Kommunikation mittels einer einzigen HTTP-Sitzung
DE10151119C2 (de) Verfahren zum Erfassen von mehreren Feldgeräten in einer Gerätekonfiguration
DE10352400A1 (de) Netzwerkdienst-Abfangvorrichtung
DE60218185T2 (de) Verfahren und Vorrichtung zum Wiederauffinden von Informationen in einem Netzwerk
DE102006028311B4 (de) Mehrseitige Synchronisation einer Ausführung in einer drahtlosen Testumgebung
DE102006027664B4 (de) Kommunikationssystem zum Verarbeiten von Daten
DE19813883B4 (de) Verfahren, Computerprogrammprodukt und Dokumentenmanagementsystem zum Zugriff auf Internet-Informationen für geschlossene Benutzergruppen
EP1437655A2 (de) Rechner- und/oder Software-Architektur unter Verwendung von Micro-Kernel- und Multi-Tier-Konzept mit Komponententechnik
EP0850545A1 (de) Ablaufumgebungssystem für service-applikationen eines kommunikationsnetzes
EP0825525B1 (de) Verfahren zur Unterstützung des Erzeugens eines Objektes
DE60036503T2 (de) Verfahren zur Kommunikation zwischen Fernobjekten
EP0825526B1 (de) Verfahren zur Unterstützung der Interaktion zwischen einer ersten und einer zweiten Einheit

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG 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 NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY 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: A1

Designated state(s): GM KE LS MW MZ NA 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 IS IT LT LU MC NL PL 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
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase
WWE Wipo information: entry into national phase

Ref document number: 10587471

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 10587471

Country of ref document: US