Toward Remote Object Coherence with Compiled Object Serialization for Distributed Computing with XML Web Services
|
|
|
- Mabel Barnett
- 10 years ago
- Views:
Transcription
1 Toward Remote Object Coherence with Compiled Object Serialization for Distributed Computing with XML Web Services Robert van Engelen 1, Wei Zhang 1, and Madhusudhan Govindaraju 2 1 Dept. of Computer Science, Florida State University 2 Dept. of Computer Science, State University of New York (SUNY) at Binghamton [email protected] [email protected] [email protected] Abstract. Cross-platform object-level coherence in Web services-based distributed systems and grids requires lossless serialization to ensure programming-language specific objects are safely transmitted, manipulated, and stored. However, Web services development tools often suffer from lossy forms of XML serialization, which diminishes the usefulness of XML Web services as a competitive approach to binary protocols. The difficulty mainly originates from the impedance mismatch between programming language data types and XML schema types. To overcome this obstacle, we propose hybrid static/dynamic algorithms to support lossless serialization of programming-language specific binary-encoded object graphs to text-based XML trees, while staying within the limits imposed by XML schema validation and the XSD type system. This paper presents a compiler-based approach to automatically emit serialization routines for C and C++ data types to XML. Experimental results show that the presented compiler-based serialization is efficient and performance is comparable to systems that use binary protocols. 1 Introduction XML Web services architectures support the service-oriented computing (SOA) paradigm, which is loosely defined as a services-based distributed computing approach to achieve interoperability between distributed applications deployed by disparate organizations across the Internet. Web services in essence provide platform-neutral distributed computing environments by using W3C-approved open XML standards. However, the technology has received limited success in certain application areas that require strong object-level coherence due to the impedance mismatch between programming language types and XML schema types (XSD types) [18]. Current XML document-centric Web services implementations avoid this issue by supporting loosely-coupled data exchanges in semi-structured XML documents. This tends to work well for business-oriented This work is supported in part by the US Department of Energy DEFG02-02ER25543
2 hierarchical data structures, but is far too simplistic for science and engineering applications deployed on computational grids. Application-centric Web service implementations must use carefully crafted bijective mappings to serialize internal application data to XML and vice versa using structurally precise and semantically safe translations. In practice this has proven to be difficult given that serialization must take place within the limits imposed by XML schema standards and the XSD type system. This is especially hard to achieve with XML Web services in heterogeneous distributed systems with platform-specific nodes that may adopt different and non-standard XML serialization methods. To avoid these issues, current Web services implementations of computational grids often advocate the use of a single programming language with a select choice of Web services toolkits. This severely limits the applicability of the approach to heterogeneous systems and negates the benefits of XML Web services in general. To address these shortcomings we developed compiler-based techniques to generate serialization algorithms to safely translate C and C++ data structures to XML and vice versa. Because standard C and C++ runtime environments do not implicitly carry runtime type information on data structures and object instantiations needed to perform the translation to XML, we used a hybrid form of static and dynamic type analysis. Static analysis is used to build a plausible data model at compile time for representing the possible instances of object graphs by tracking down object relationships. This analysis is comparable to static shape analysis [5] and related to points-to analysis [11]. We then use the model to generate type-specific serialization algorithms. The generated serialization algorithms analyze the actual runtime object graph instances using compile-time hints to effectively serialize them in XML, and vice versa, using a mapping that guarantees object-level coherence. We implemented the approach in the gsoap [13, 14] toolkit for C and C++ and tested the approach against other toolkits such as Apache Axis for Java and.net. Performance results are shown for a gsoap benchmark application on a variety of machines. The remainder of this paper is organized as follows. Section 2 presents a brief overview of some of the most widely used systems and protocols for data exchange in distributed applications. The mapping of types to XML schema is discussed in Section 3 and applied to C and C++. XML serialization for object-level coherence is introduced in Section 4 followed by a presentation of the serialization algorithms in Section 5. Section 6 presents performance results to verify the efficiency of the approach on various platforms. The paper summarizes the conclusions in Section 7. 2 Motivation and Related Work While object serialization in binary protocols such as the Java RMI object serialization protocol, XDR for Sun RPC, CORBA s IIOP, and Microsoft s DCOM have been around for years, serializing objects in XML is relatively new. XML serialization is gaining traction in Web services applications to achieve interoperability across programming language domains and disparate organizations. An
3 advantage is that XML schemas are platform-neutral in contrast to RMI and DCOM, more expressive compared to CORBA s IDL, and enables a wider use of tools and systems for XML processing, storage, and retrieval. Large-scale distributed systems require strong object coherence guarantees [2] to ensure that objects moved, cached, and copied across a set of nodes in a distributed system preserve their structure and state. Platform-specific approaches achieve this goal through, mostly proprietary, binary serialization protocols. Modern programming languages such as Java and C# are intrinsically equipped with object serialization capabilities to support remote object invocation, persistent object storage, and message passing in distributed systems. The programming languages support an explicit form of object-level coherence in which separately compiled applications must meet minimum requirements for consistency by sharing object definitions (e.g. class files). Implicit object-level coherence can be found in programming languages for distributed systems, e.g. Orca [3]. Several systems and protocols have been proposed and developed since the early 1980s for inter- and intra-application data exchange. This section briefly reviews some of the most widely used systems and protocols. Because the security mechanisms of these systems is poor or at least require additional transportlevel security, they operate mostly on LANs behind firewalls. In contrast, XML Web services consist of a set of firewall-friendly open standards for (mostly synchronous) data exchange across the Internet, message-level security and authentication, message routing, resource management, peer notification, etc. Sun Microsystems RPC (Remote Procedure Call) compiler generates stub and skeleton code for marshaling simple data structures between client and server applications. The marshaling process convert application data into XDR (External Data Representation) [7] for transmission. XDR is an IETF (Internet Engineering Task Force) standard [7] for the description and encoding of data. XDR supports a subset of C types and cannot be used to serialize pointer-based data structures. CORBA is a platform-independent architecture ORB (Object Request Brokerage) architecture [10]. CORBA s IIOP (Internet Inter ORB Protocol) is used to transmit objects between CORBA applications. IIOP supports a wide variety of data types that can be specified in IDL (Interface Description Language). CORBA is a proprietary heavy-weight product. Microsoft s DCOM protocol is similar to IIOP and enables COM objects on different Windows-based systems to communicate. Although DCOM is a platform-independent protocol, it is mainly used within Windows environments. Sun Microsystems Java RMI (Remote Method Invocation) [12] serializes objects between Java applications. There is no limit on the type of data objects that can be exchanged. Entire object graphs can be serialized. Associated class bytecodes are loaded on demand. The Message Passing Interface (MPI) library [6] is a platform-independent lower-level message passing architecture for efficient communication of numerical data among communicating groups of nodes in a cluster or SMP machine. The Parallel Virtual Machine (PVM) library [4] is similar to MPI.
4 Several Web services toolkits for SOAP/XML [15] are available for various programming languages, such as Apache Axis for Java and C++ [1], SOAP Lite for Perl [8], and gsoap for C and C++ [13]. The Microsoft.NET framework [9] provides a platform-dependent Web services framework for C#. The.NET framework supports serialization of data objects managed by the CLR (Common Language Runtime). The.NET framework includes the IIS (Internet Information Services) Web server to deploy.net applications as Web services. 3 Mapping C and C++ Types to XML Schema The XML Web services standard supports two XML encoding styles: SOAP- RPC encoding style and document literal style [15]. The choice of encoding style is fixed in the WSDL (Web Services Definition Language) [16] interface definition of a service. However, the two styles differ significantly in the expressiveness of the serialized XML representation of application data, and consequently the algorithms for mapping application data to XML. 3.1 RPC Encoding Style The SOAP-RPC (Remote Procedure Calling) encoding style is a standard SOAP 1.1/1.2 [15] serialization format that can be viewed as the greatest common denominator of types among programming-language type systems. The encoding supports types that have equal counterparts in many programming languages, which greatly simplifies interoperability. To this end, SOAP-RPC encoding uses a subset of the XSD type system by limiting the choice of XML schema components to an orthogonal subset of structures to represent primitive types, records, and arrays. In addition, a mechanism for multi-referenced objects is available to support the serialization of object graphs. However, there are two problems with RPC encoding. The first is that the multiref serialization with href and id attributes violates XML schema validation constraints, because these attributes are not part of the schema of a typical data structure. The second problem is that the serialization of nil references, multi-referenced objects, and (sparse) multi-dimensional arrays is not precisely defined which leads to interoperability problems that are often related to the use of id and href references. For example, every object in the graph is serialized with id and href by Apache Axis [1] rather than the multi-referenced objects alone, making it difficult to achieve object-level coherence across programming language domains. Table 1 shows the mapping of primitive and compound C/C++ types to XSD types and XML schema components for SOAP-RPC encoding with gsoap. Mappings for Java, C#, and other mainstream languages are similar. Note that the full set of primitive XSD types is not shown in Table 1. Additional XSD types, such as xsd:decimal, can be represented by other types, e.g. strings. The encoding is consequently controlled at the application layer. With gsoap, users can bind these XSD types to C/C++ types using a typedef, for example: typedef char *xsd decimal;
5 C/C++ Type T Target XML Schema Type primitive bool xsd:boolean char xsd:byte short xsd:short int32 t xsd:int int64 t xsd:long float xsd:float double xsd:double size t xsd:unsignedlong time t xsd:datetime char* xsd:string wchar t* xsd:string std::string xsd:string enum xs:simpletype/restriction/enumeration typedef T xs:simpletype/extension compound struct xs:complextype/sequence class xs:complextype/complexcontent/extension typedef T xs:complextype/complexcontent/extension T [nnn] SOAP-encoded array of T T * the schema type of T Table 1. Mapping C/C++ Types to Schema Types for SOAP-RPC Encoding Each struct or class data member is mapped to a local xs:element of the xs:complextype for the struct or class. See Figure 1 for an example. SOAP- RPC encoding requires arrays to be encoded as SOAP encoded arrays [15], where each SOAP array is a type restriction of the generic SOAP array schema. Another disadvantage of mapping C arrays to XML is the absence of a true array type in C (arrays in C are pointers). Arrays are either declared as fixed-size arrays or have to be declared as a struct with a pointer ptr and size field to store the runtime array size, for example: struct floatarray { float * ptr; int size; }; Languages that support arrays as first-class citizens, such as Java and C#, can map arrays to SOAP arrays without forcing users to adopt mapping structures. The XML schema standard adopted by the Web services architecture requires support for XML namespaces. XML namespaces bind user-defined types to one or more type spaces, similar to C++ namespaces. However, C does not support namespaces. Therefore, an alternative mechanism is used by optionally qualifying type names with a namespace prefix: enum prefix name {... }; struct prefix name {... }; class prefix name {... }; typedef T prefix name;
6 C Source Declarations Target XML Schema <simpletype name="state"> <restriction base="xsd:string"> typedef char *xsd decimal; <enumeration value="off"/> <enumeration value="on"/> enum State {OFF, ON}; </restriction> </simpletype> struct Example <complextype name="example"> { <sequence> char *name; <element name="name" type="xsd:string"/> xsd decimal value; <element name="value" type="xsd:decimal"/> enum State state; <element name="state" type="tns:state"/> struct Example *list; <element name="list" type="tns:example" }; minoccurs="0" nillable="true"/> </sequence> </complextype> Fig. 1. Example Mapping of C Type Declarations to XML Schema Suppose for example two distinct List data structures are used by two different services. One service uses the x namespace while the other uses y, bound to namespace URIs and respectively: //gsoap x schema namespace: struct x List { char *key, *val; struct x List *next; }; //gsoap y schema namespace: typedef xsd NMTOKENS y List; where the latter list is a space-separated list of tokens. Namespace bindings are used in RPC encoding and document literal styles. 3.2 Document Literal Style A unique feature of the gsoap toolkit is the full support for document literal style for XML serialization, which covers the entire XML schema component definition space. Document literal style encoding is a significant departure from RPC encoding by promoting expressiveness as opposed to the simplicity of an orthogonal type system. On the one hand, the expressiveness allows variant records (unions) to be serialized and arrays can be serialized in-line instead of separately using the SOAP array encoding format. On the other hand, the absence of a standard out-of-band mechanism for object referencing, such as the SOAP-RPC multi-ref encoding with href and id attributes, is a concern. This poses additional challenges for object-level coherent serialization guarantees. The liberation from the SOAP-RPC encoding constraints mainly affects the mapping of structs and classes to the xs:complextype schema component. Without loss of generalization, the differences can be summarized as follows:
7 Enables the use of XML attribute definitions within a xs:complextype, where XML attributes can be instances of primitive XSD types and instances of xs:simpletype; Allows repetitions of an xs:element in a xs:complextype sequence, i.e. elements that may have multiple occurrences indicated by xs:maxoccurs>1; Allows the use of xs:choice and xs:any; Allows the use of xs:group and xs:attributegroup. However, these macro structures have no effect on the mapping since they can be expanded within the schema and only serve as syntactic conveniences. These content definitions are enabled in gsoap using the declarations of struct and class members as is shown in Table 2. In addition, the document literal style supports xs:complextype extensions, i.e. a simple form of inheritance that is accomplished with C++ class inheritance. Attributes are declared with a special STL containers such as vectors are mapped to (potentially) unbounded sequences of elements, members that point to dynamic arrays must be preceded by a int size field that holds the runtime array size information. The use of STL containers and pointers to arrays as shown in Table 2 is preferred over SOAP-RPC encoded arrays, see also WS-I Basic Profile [19]. A union must be preceded by a variant record discriminator int union that holds the index to the union field to be serialized, and void pointers must be preceded by int type field that holds the runtime type tag value of the object pointed to. Note that the source-code level changes are all ANSI C compliant, except for the use to annotate data members for attribute serialization. 4 XML Serialization for Object-Level Coherence To ensure object-level coherence of serialized object graphs in XML, a referencing mechanism in XML must be used to represent graph edges. Any explicit representation of edges in XML will preserve the logical structure of object graphs, Struct/Class Member m Change Target XML Schema Type T T m; xs:attribute/@type="t" std::vector T m; none xs:element/@maxoccurs="unbounded" xs:element/@type="t" T *m; (points to int size; xs:element/@maxoccurs="unbounded" multiple elements) T *m; xs:element/@type="t" union U m; int union; xs:choice union U m; void *m; int type; xs:element/@type="xs:anytype" void *m; Table 2. Data Member Changes to Support Document Literal Style Serialization
8 Tree DAG DAG X X X X X Shape Y Z Y X Schema XML <complextype name="x"> <sequence> <element name="y" type="tns:y"/> <element name="z" type="tns:z"/>... </sequence> </complextype> <x> <y>...</y> <z>...</z>... </x> <complextype name="x"> <sequence>... </sequence> <attribute name="ref" type="ref"/> </complextype> <complextype name="y"> <sequence>...</sequence> <attribute name="id" type="id"/> </complextype> <x ref="123">...</x>... <x ref="123">...</x>... <y id="123">...</y> <complextype name="x"> <sequence>...</sequence> <attribute name="id" type="id"/> <attribute name="ref" type="ref"/> </complextype> <x ref="456">...</x>... <x ref="456">...</x>... <x id="456">...</x> Fig. 2. Three Different Object Referencing Graph Examples such as DAGs and cyclic graphs. While SOAP-RPC implicitly relies on multireference encoding with id and href attributes to represent edges, document literal does not support this mechanism and the schemas must, in principle, explicitly define xsd:id and xsd:ref attributes for each XML component that resembles an application data type that can be referenced. Consider the three different object referencing graphs shown in Figure 2. Regular tree-based XML document configurations do not require an explicit referencing mechanism, because graph nodes are simply nested in XML. DAGs and cyclic graphs must be serialized using explicit references to preserve their logical structure, e.g. using id and ref attributes. This requires additional declarations of these attributes to the schema components of the objects, assuming document literal style is used. Suppose that organization A defines a schema for an object and organization B wants to define object graphs where A s object can be multi-referenced, e.g. in a DAG. Then, A s schema must be changed to include id and ref attributes, assuming document literal encoding style is used. This is problematic, because after A s schema is published it is usually detrimental to interoperability to change it. Note that SOAP-RPC style with implicit referencing can only be used if A s schema conforms to the RPC style restrictions. It is quite common that object referencing is either completely enabled or disabled depending on the application s requirements. Therefore, explicitly adding referencing attributes to each xs:complextype is cumbersome and introduces an unnecessary layer of complexity. The approach is rarely (if ever) implemented. A meta-level binding mechanism to classify pointers as reference (non-nil pointer), unique (can be nil and is the single reference to an object), or full (to shared and
9 aliased objects) as in DCE IDL is only partially possible (i.e. reference or full using the xs:nillable attribute). A default referencing mechanism with welldefined semantics for serialization is essential to simplify cooperation between organizations and to ultimately improve interoperability. Web services standards have to consider implicit referencing mechanisms to support object-level coherence. A first step in this direction is the publication of XML ID [17]. Another problem is the loss of floating point precision by representing numerical data in XML. We can avoid this by using hexadecimal or base64-encoded IEEE 754 floating point values. Encoding and decoding must be performed by a pre-processor prior to XML validation to avoid flagging the values as invalid. We consider the following issues critical for achieving object-level coherence: For document literal encoding the biggest problem is the absence of a default referencing mechanism in XML. We suggest using id (or xml:id from the XML ID [17]) and ref similar to SOAP 1.2 RPC encoding instead of explicitly adding xsd:id and xsd:ref attribute declarations to schemas; To prevent loss of precision, avoid serializing floats and doubles as XSD types. We suggest using IEEE 754 floats encoded in hexadecimal or base64 by defining a simpletype restriction of xsd:hexbinary or xsd:base64binary, respectively. Furthermore, SOAP/XML processors must be aware of the referencing mechanism and obey the serialization rules to preserve the logical structure of an object graph. 5 A Static-Dynamic Approach to XML Serialization Based on the requirements for object-level coherence, we implemented serialization techniques that preserve the logical structure and state of C/C++ data structures serialized in XML. The serialization of object graphs in gsoap is automatic and relies on a static-dynamic approach. The gsoap soapcpp2 compiler generates stubs and skeletons for remote procedure calling. The server application development and deployment is shown in Figure 3a. A client application Development Deployment Development Deployment Provided by User Specification of remote procedures and data types WSDL service description Service application with RPC implementations Provided by User WSDL service description Specification of remote procedures and data types Client application invokes RPC stub return skeleton invoke invoke stub return gsoap RPC compiler WSDL service description marshal demarshal gsoap RPC compiler marshal demarshal Automated Automated RPC skeleton code RPC stub code C/C++ Client C/C++ Data type serialization code compiler gsoap request Data type serialization code compiler gsoap communications communications module Service module response a) Server Configuration b) Client Configuration Service response Client request Fig. 3. Developing and Deploying Server and Client Applications with gsoap
10 can be build from a WSDL (using the gsoap wsdl2h preprocessor) or directly from the service specification, as is shown in Figure 3b (shaded box). In both server and client application development, C/C++ type definitions are parsed by the soapcpp2 gsoap RPC compiler to generate the serialization routines for each type. 5.1 Static Analysis The soapcpp2 compiler builds a plausible data model at compile time using static analysis by tracking down object relationships. The model represents the possible instances of object graphs. The model is then used to generate typespecific serialization algorithms that analyze the actual runtime object graph instances to effectively serialize them in XML, and vice versa, using a mapping that guarantees object-level coherence. In terms of runtime storage overhead of the approach, every runtime pointer in a graph is stored in a hash table for comparison to detect multi-referenced objects and graph cycles. The serialization approach does not require the augmentation of application types with meta information such as tags or run-time type references. Consider for example the type declarations shown in Figure 4 and the data model derived from it. The model shows the pointer edges necessitating the placement of pointer-checking code in the serializer and deserializer routines. For example, when serializing a Node instance, two addresses have to be checked for pointer references: the Node instance address and the val member address. Since these could be identical, type disambiguation is necessary to distinguish the references by keeping track of pointer s target types at run time. Also all integer nodes must be checked in this case for inbound pointer edges, e.g. the val member and the SSN nodes. However, no pointer checks are required for floats, e.g. the num member. Note that val is embedded within Node, which means that it must be annotated with an XML id attribute in the serialized stream. The soapcpp2 compiler generates optimized serialization code based on the model. These runtime serialization algorithms use two phases. The first phase determines which data components belong to the data structure and which pointers are used to reference them. This phase is only relevant for pointer-based data Source Code typedef int SSN; struct Node { int val; int *ptr; float num; struct Node *next; }; Data Model val ptr num next Node SSN Fig. 4. Data Structure Declarations and Plausible Data Model
11 structures. The second phase emits the XML encoded form of the entire data structure, with all sub-components of the structure serialized recursively. 5.2 Serialization Phase 1 Phase 1 traverses the runtime data structure graph by visiting each node and by following the pointer references to all sub-nodes recursively. For each pointer that was followed to a sub-node, it stores the pointer s target address in a hash table together with an identification of the data type referenced by the pointer. The hash table key is a triple of PtrLoc,PtrType,PtrSize, where PtrLoc is the pointer s target address, PtrType is the type of data referenced by the pointer, and PtrSize is the size of the object in bytes, which is statically determined with sizeof. The PtrSize of dynamic arrays is computed from the array size and element size, where dynamic arrays are defined with a struct/class containing a pointer field and size field. Node pointers are only followed through to visit sub-nodes when the key PtrLoc,PtrType,PtrSize is not already contained in the hash table. When the key is already contained in the hash table, then the hash table entry is marked RefType=multi to indicate that a multi-referenced subnode has been found. Entries in the hash table are marked RefType=embedded when a data element that is pointed to is embedded in larger structure, such as a field of a struct or class, or an element of an array. It is noteworthy to mention that a hash table entry is created at run time only for each pointer in a pointer-based data structure. No additional space is required to serialize non-pointer-based structures. 5.3 Serialization Phase 2 Phase 2 emits the data in XML by visiting each node in the data structure graph and by following the pointer references to the sub-nodes for recursive serialization. Multi-referenced nodes (those whose hash table entry is marked RefType=multi) are serialized as multi-referenced objects referenced with id and ref in the XML stream. The serialization settings can be set to SOAP 1.1/1.2 RPC encoding. Special care is taken to serialize data elements that are embedded within structs or arrays (that is, the hash table entry for these elements are marked RefType=embedded) to preserve object graph coherence. The embedded property of data elements affects the placement of id and ref attributes in the encoded form of XML. The two-phase serialization is illustrated with the example data structure shown in Figure 5 based on the data type declarations shown in Figure 4. The structure consists of three nodes, two structs A and B, and a node C that contains a single integer value. The serialization starts at the root struct stored at address A. The first phase consists of a pass over the entire data structure to collect the properties of the pointers used in the data structure graph and to store these in the runtime points-to table shown in Table 3. Each entry has a unique index ID, a hash table key PtrLoc,PtrType,PtrSize consisting of a target pointer address PtrLoc, pointer type PtrType, and size
12 Source Code Runtime Object Graph Serialized XML struct Node A, B; SSN C; C = 789; <Node id=" 1"> <val>123</val> <ptr ref="# 2"/> A.val = 123; val ptr num next val ptr num next <num>1.4</num> A.ptr = &B.val; 123 B 1.4 B 456 C 2.3 A <next> A.num = 1.4; A.next = &B; A B <val id=" 2">456</val> <ptr>789</ptr> 789 B.val = 456; C B.ptr = &C; B.num = 2.3; B.next = &A; <num>2.3</ptr> <next ref="# 1"/> </next> </Node> Fig. 5. Source Code and Resulting Object Graph in XML PtrSize of the object pointed to, an indication of the number of references Ptr- Count made to this target address and the type of the reference RefType, which is either single, multi, or embedded. The serialized XML output is shown in Figure 5. The root node is serialized with id=" 1", because it is multi-referenced. The second struct at location B is serialized in XML as a nested element of the first node struct, because it has only a single reference. Note that the ptr field in the first struct points to the val field in the second struct, which is stored at B. Because the val field is embedded within a struct, the ptr is serialized with a forward pointing ref="# 2" attribute. This ensures that the receiving side can decode the XML and backpatch the ptr pointer field to point to the val field after the contents of the second struct are decoded. The ptr field in the second struct points to a single-referenced integer located at C. The XML serialized value is placed directly in an ptr element without an ref attribute, because it is a single reference. The gsoap soapcpp2-generated deserialization routines decode the contents to reconstruct the original data structure graph. The parser takes special care in handling the id and ref attributes that resemble pointers. When the data structure is reconstructed, temporarily unresolved references are kept in a hash table. When the target objects of the references have been parsed and the data is allocated in memory, the unresolved references are replaced by pointers. In ID PtrLoc PtrType PtrSize PtrCount RefType 1 A Node 16 2 multi 2 B int 4 1 embedded 3 B Node 16 1 single 4 C int 4 1 single Table 3. Runtime Table for Points-To Analysis
13 effect, the unresolved pointers in the Node structures are back-patched with pointer values to link the separate parts of the (cyclic) graph structure together. 5.4 Handling Polymorphism Pointers to polymorphic objects, i.e. instances of derived classes, are serialized using C++ dynamic binding of the objects pointed to. The gsoap soapcpp2 compiler augments classes with virtual serializers to enable pointer-based polymorphism based on single inheritance. The static analysis determines whether pointers to instances need to be treated differently. If so, serialization and deserialization routines are generated for runtime encoding and decoding of object graphs that have pointers to derived instances, which requires the XML serialization of these instances with schema-compliant xsi:type attributes to hold type information so that the decoders can accurately reconstruct the object graphs. 6 Results The use of XML as a data transport protocol comes at a price and the serialization of internal application data to XML can be subject to performance degradation. However, our compiled approach exploits the well-formed properties of XML to construct schema-specific predictive XML parsers to decode XML directly into application data without the need for an additional XML conversion layer. This technique effectively compresses the Web services communication stack, as shown in Figure 6 by combining XML parsing, XML validation, and data conversion into one stage. This is made possible by the fact that XML schemas describe context-free languages on tokens that are XML elements, attributes, and character data content. The performance in the number of roundtrip messages achieved per second of a gsoap benchmark client and server application is shown in Figure 7. The performance of a round-trip message containing a struct of size 1.2K is shown over HTTP 1.1 without using keep-alive connection persistence. The serialization Web services application XML to application data conversion XML validation XML parsing Transport XML parsing Web services application XML validation Transport XML data conversion a) Conventional Deep Stack b) gsoap Shallow Stack Fig. 6. Compressing the Web Services Stack
14 webservice SOAP test with gsoap calls per second Operating system gsoap, compiler CPU Linux bit 2.5, gcc O2 FX GHz 3241 gsoap 64-bit 1x AMD 2990 Linux bit gsoap 2.7.0c, gcc O2 64-bit 1x AMD Opteron GHz 2907 Linux bit gsoap 2.5, gcc O2 64-bit 1x AMD Opteron GHz 2903 Linux bit gsoap 2.6.2, gcc O2 64-bit 1x AMD Opteron GHz 2604 Linux bit gsoap 2.7.0c, gcc O2 32-bit 1x AMD Opteron GHz 2570 Linux bit gsoap 2.6.2, gcc O2 32-bit 1x AMD Opteron GHz 1988 Linux bit gsoap 2.5, gcc bit 1x AMD Opteron GHz 2340 Linux bit gsoap 2.5, gcc O2 64-bit 2x AMD Opteron GHz 2130 Linux bit gsoap 2.5, gcc O2 32-bit 2x AMD Opteron GHz 2265 Linux IA-64 gsoap 2.5, Intel icc 8.1 -O2 2x Itanium2 1.4GHz 2070 Linux IA-64 gsoap 2.5, gcc O2 2x Itanium2 1.4GHz 1936 Linux gsoap 2.5, gcc O3 1x Pentium4 3GHz (w/o HT) 1835 Linux gsoap 2.5, gcc O2 1x Pentium4 3GHz (w/o HT) 1765 Linux gsoap 2.5, gcc O2 2x Xeon P4 3.06GHz HT 1750 Linux gsoap 2.5, gcc O2 2x Xeon P4 3.06GHz HT 1600 Linux gsoap 2.5, gcc x Xeon P4 3.06GHz HT 1530 Linux gsoap 2.5, gcc x Xeon P4 3.06GHz HT 1590 Linux IA-64 gsoap 2.5, Intel ecc 7.0 -O2 2x Itanium2 1GHz 1514 Linux IA-64 gsoap 2.5, gcc O2 2x Itanium2 1GHz 1540 Linux gsoap 2.5, gcc O2 1x Pentium4 2.5GHz 1430 Linux gsoap 2.5, gcc x Pentium4 2.5GHz 703 AIX 5.2 gsoap 2.5, gcc 2.9-aix51 -O2 2x Power4+ 1.2GHz 530 SunOS 5.8 gsoap 2.5, gcc O2 2x UltraSPARC-III 750MHz Back to main page. Fig. 7. Performance Results in Number of Roundtrip Messages per Second of a Benchmark Client/Server Application on Various Platforms algorithms are efficient, because runtime pointer checks for serializing object graphs are restricted to pointer-based objects only as determined from the static data model. 7 Conclusions Object-level coherence can be achieved with specialized serialization algorithms to ensure data structures and object graphs preserve their structure when passed from one XML Web service application to another or when stored and retrieved in XML format. This paper discussed the mapping issues and presented algorithms for serializing C and C++ data structures in XML, while providing object-level coherence and performance guarantees. Object graphs are serialized using carefully placed id and ref attributes. This approach works well for SOAP RPC encoding but is less suitable for the more expressive document literal style. Unless the Web services community converges on the XML ID standard and a universal reference mechanism, coherence problems cannot be adequately addressed. 8 Acknowledgments The authors would like to thank Martin Kuba from the Supercomputing Center, Institute of Computer Science, Masaryk University, Brno, Czechoslovakia, for testing the performance of gsoap on a wide range of machines.
15 References 1. Apache Foundation. Apache axis project. Available from 2. A. Bakker, M. van Steen, and A. S. Tanenbaum. From remote objects to physically distributed objects. In Proceedings of the 7th IEEE Workshop on Future Trends of Distributed Computing Systems, H. E. Bal and M. F. Kaashoek. Object distribution in orca using compile-time and run-time techniques. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), volume 28, pages , New York, NY, ACM Press. 4. A. Geist, A. Beguelin, J. Dongarra, W. Jiang, R. Mancheck, and V. Sunderam. PVM3 users s guide and referential manual. Technical Report ORNL/TM-12187, Oak Ridge National Laboratory, Sept R. Ghiya and L. J. Hendren. Is it a tree, a DAG, or a cyclic graph? a shape analysis for heap-directed pointers in C. In Symposium on Principles of Programming Languages, pages 1 15, W. Gropp, R. Lusk, and A. Skjellum. Using MPI, IETF. XDR specification P. Kulchenko. SOAP::Lite for Perl. Available from 9. Microsoft..NET framework. Available from OMG. CORBA component model B. Steensgaard. Points-to analysis in almost linear time. In Symposium on Principles of Programming Languages, pages 32 41, Sun Microsystems. Java programming language. Available from R. van Engelen and K. Gallivan. The gsoap toolkit for web services and peer-topeer computing networks. In proceedings of the 2nd IEEE International Symposium on Cluster Computing and the Grid, pages , Berlin, Germany, May R. van Engelen, G. Gupta, and S. Pant. Developing web services for C and C++. IEEE Internet Computing, pages 53 61, March W3C. SOAP 1.1 and 1.2 specifications. Available from W3C. WSDL web services description language specification. Available from W3C. XML ID 1.0 specification. Available from W3C. XML schema specification. Available from WS-I. Basic profile bp1.0a. Available from
T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm
T-110.5140 Network Application Frameworks and XML Web Services and WSDL 15.2.2010 Tancred Lindholm Based on slides by Sasu Tarkoma and Pekka Nikander 1 of 20 Contents Short review of XML & related specs
Middleware Lou Somers
Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,
Lesson 4 Web Service Interface Definition (Part I)
Lesson 4 Web Service Interface Definition (Part I) Service Oriented Architectures Module 1 - Basic technologies Unit 3 WSDL Ernesto Damiani Università di Milano Interface Definition Languages (1) IDLs
Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5
Technical Note Web Services for Management Perl Library VMware ESX Server 3.5, VMware ESX Server 3i version 3.5, and VMware VirtualCenter 2.5 In the VMware Infrastructure (VI) Perl Toolkit 1.5, VMware
Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures
Part I EAI: Foundations, Concepts, and Architectures 5 Example: Mail-order Company Mail order Company IS Invoicing Windows, standard software IS Order Processing Linux, C++, Oracle IS Accounts Receivable
A Java-based system support for distributed applications on the Internet
A Java-based system support for distributed applications on the Internet D. Hagimont 1, D. Louvegnies 2 SIRAC Project INRIA, 655 av. de l Europe, 38330 Montbonnot Saint-Martin, France Abstract: We have
Infrastructure that supports (distributed) componentbased application development
Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication
Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies
Szolgáltatásorientált rendszerintegráció Comparison of component technologies Simon Balázs, BME IIT Outline Definitions Component technologies RPC, RMI, CORBA, COM+,.NET, Java, OSGi, EJB, SOAP web services,
Chapter 1. Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages
Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: [email protected] Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming
Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis
Middleware and Distributed Systems Introduction Dr. Martin v. Löwis 14 3. Software Engineering What is Middleware? Bauer et al. Software Engineering, Report on a conference sponsored by the NATO SCIENCE
The gsoap Toolkit for Web Services and Peer-To-Peer Computing Networks
Published in the proceedings of the 2nd IEEE International Symposium on Cluster Computing and the Grid (CCGrid2002), May 21-24, 2002, Berlin, Germany. The gsoap Toolkit for Web Services and Peer-To-Peer
System Models for Distributed and Cloud Computing
System Models for Distributed and Cloud Computing Dr. Sanjay P. Ahuja, Ph.D. 2010-14 FIS Distinguished Professor of Computer Science School of Computing, UNF Classification of Distributed Computing Systems
Introduction to Web Services
Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies
A Web Services Created Online Training and Assessment Scheme
International Journal of Current Engineering and Technology E-ISSN 2277 4106, P-ISSN 2347 5161 2015 INPRESSCO, All Rights Reserved Available at http://inpressco.com/category/ijcet Research Article Md Mobin
Chapter 2: Remote Procedure Call (RPC)
Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) [email protected] http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC
Industrial Network Security and Connectivity. Tunneling Process Data Securely Through Firewalls. A Solution To OPC - DCOM Connectivity
Industrial Network Security and Connectivity Tunneling Process Data Securely Through Firewalls A Solution To OPC - DCOM Connectivity Manufacturing companies have invested billions of dollars in industrial
Stream Processing on GPUs Using Distributed Multimedia Middleware
Stream Processing on GPUs Using Distributed Multimedia Middleware Michael Repplinger 1,2, and Philipp Slusallek 1,2 1 Computer Graphics Lab, Saarland University, Saarbrücken, Germany 2 German Research
Distributed Objects and Components
Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java
JAXB: Binding between XML Schema and Java Classes
JAXB: Binding between XML Schema and Java Classes Asst. Prof. Dr. Kanda Runapongsa ([email protected]) Department of Computer Engineering Khon Kaen University Agenda JAXB Architecture Representing XML
Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur
Module 17 Client-Server Software Development Lesson 42 CORBA and COM/DCOM Specific Instructional Objectives At the end of this lesson the student would be able to: Explain what Common Object Request Broker
gsoap 2.7.0 User Guide
gsoap 2.7.0 User Guide Robert van Engelen Genivia, Inc., [email protected] & [email protected] October 15, 2004 Contents 1 Introduction 6 2 Notational Conventions 7 3 Differences Between gsoap Versions
Introduction to Service Oriented Architectures (SOA)
Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction
Interface Definition Language
Interface Definition Language A. David McKinnon Washington State University An Interface Definition Language (IDL) is a language that is used to define the interface between a client and server process
C++ Programming Language
C++ Programming Language Lecturer: Yuri Nefedov 7th and 8th semesters Lectures: 34 hours (7th semester); 32 hours (8th semester). Seminars: 34 hours (7th semester); 32 hours (8th semester). Course abstract
OKLAHOMA SUBJECT AREA TESTS (OSAT )
CERTIFICATION EXAMINATIONS FOR OKLAHOMA EDUCATORS (CEOE ) OKLAHOMA SUBJECT AREA TESTS (OSAT ) FIELD 081: COMPUTER SCIENCE September 2008 Subarea Range of Competencies I. Computer Use in Educational Environments
WEB SERVICES. Revised 9/29/2015
WEB SERVICES Revised 9/29/2015 This Page Intentionally Left Blank Table of Contents Web Services using WebLogic... 1 Developing Web Services on WebSphere... 2 Developing RESTful Services in Java v1.1...
Instruction Set Architecture (ISA)
Instruction Set Architecture (ISA) * Instruction set architecture of a machine fills the semantic gap between the user and the machine. * ISA serves as the starting point for the design of a new machine
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
OPCNet Broker TM for Industrial Network Security and Connectivity
OPCNet Broker TM for Industrial Network Security and Connectivity Tunneling Process Data Securely Through Firewalls A Solution To OPC - DCOM Connectivity from Integration Objects Compatible for DA, HDA
Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages
ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs
Efficiency of Web Based SAX XML Distributed Processing
Efficiency of Web Based SAX XML Distributed Processing R. Eggen Computer and Information Sciences Department University of North Florida Jacksonville, FL, USA A. Basic Computer and Information Sciences
Multi-Threading Performance on Commodity Multi-Core Processors
Multi-Threading Performance on Commodity Multi-Core Processors Jie Chen and William Watson III Scientific Computing Group Jefferson Lab 12000 Jefferson Ave. Newport News, VA 23606 Organization Introduction
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
JVA-561. Developing SOAP Web Services in Java
JVA-561. Developing SOAP Web Services in Java Version 2.2 A comprehensive look at the state of the art in developing interoperable web services on the Java EE 6 platform. Students learn the key standards
LinuxWorld Conference & Expo Server Farms and XML Web Services
LinuxWorld Conference & Expo Server Farms and XML Web Services Jorgen Thelin, CapeConnect Chief Architect PJ Murray, Product Manager Cape Clear Software Objectives What aspects must a developer be aware
Service-Oriented Architectures
Architectures Computing & 2009-11-06 Architectures Computing & SERVICE-ORIENTED COMPUTING (SOC) A new computing paradigm revolving around the concept of software as a service Assumes that entire systems
C#5.0 IN A NUTSHELL. Joseph O'REILLY. Albahari and Ben Albahari. Fifth Edition. Tokyo. Sebastopol. Beijing. Cambridge. Koln.
Koln C#5.0 IN A NUTSHELL Fifth Edition Joseph Albahari and Ben Albahari O'REILLY Beijing Cambridge Farnham Sebastopol Tokyo Table of Contents Preface xi 1. Introducing C# and the.net Framework 1 Object
ITS. Java WebService. ITS Data-Solutions Pvt Ltd BENEFITS OF ATTENDANCE:
Java WebService BENEFITS OF ATTENDANCE: PREREQUISITES: Upon completion of this course, students will be able to: Describe the interoperable web services architecture, including the roles of SOAP and WSDL.
Developing Java Web Services
Page 1 of 5 Developing Java Web Services Hands On 35 Hours Online 5 Days In-Classroom A comprehensive look at the state of the art in developing interoperable web services on the Java EE platform. Students
Java Web Services Training
Java Web Services Training Duration: 5 days Class Overview A comprehensive look at the state of the art in developing interoperable web services on the Java EE 6 platform. Students learn the key standards
Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University
Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns
Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.
Departament d Arquitectura de Computadors Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.html) Local Objects vs. Distributed
Introduction to Distributed Computing using CORBA
Introduction to Distributed Computing using CORBA Rushikesh K. Joshi Dept of Computer Science & Engineering Indian Institute of Technology, Bombay Powai, Mumbai - 400 076, India. Email: [email protected]
Web Service Based Data Management for Grid Applications
Web Service Based Data Management for Grid Applications T. Boehm Zuse-Institute Berlin (ZIB), Berlin, Germany Abstract Web Services play an important role in providing an interface between end user applications
What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.
What is Middleware? Application Application Middleware Middleware Operating System Operating System Software that functions as a conversion or translation layer. It is also a consolidator and integrator.
IBM SPSS Collaboration and Deployment Services Version 6 Release 0. Single Sign-On Services Developer's Guide
IBM SPSS Collaboration and Deployment Services Version 6 Release 0 Single Sign-On Services Developer's Guide Note Before using this information and the product it supports, read the information in Notices
Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware
Middleware 1 Middleware Lehrstuhl für Informatik 4 Middleware: Realisation of distributed accesses by suitable software infrastructure Hiding the complexity of the distributed system from the programmer
Integrated Systems & Solutions. Some Performance and Security Findings Relative to a SOA Ground Implementation. March 28, 2007. John Hohwald.
Some Performance and Security Findings Relative to a SOA Ground Implementation March 28, 2007 John Hohwald Slide 1 Ground SOA Implementation Issues SOA Benchmarking Benchmarked a variety of vendors IBM
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies)
Course Name: ADVANCE COURSE IN SOFTWARE DEVELOPMENT (Specialization:.Net Technologies) Duration of Course: 6 Months Fees: Rs. 25,000/- (including Service Tax) Eligibility: B.E./B.Tech., M.Sc.(IT/ computer
Introduction into Web Services (WS)
(WS) Adomas Svirskas Agenda Background and the need for WS SOAP the first Internet-ready RPC Basic Web Services Advanced Web Services Case Studies The ebxml framework How do I use/develop Web Services?
Report of the case study in Sistemi Distribuiti A simple Java RMI application
Report of the case study in Sistemi Distribuiti A simple Java RMI application Academic year 2012/13 Vessio Gennaro Marzulli Giovanni Abstract In the ambit of distributed systems a key-role is played by
Lightweight Data Integration using the WebComposition Data Grid Service
Lightweight Data Integration using the WebComposition Data Grid Service Ralph Sommermeier 1, Andreas Heil 2, Martin Gaedke 1 1 Chemnitz University of Technology, Faculty of Computer Science, Distributed
10CS73:Web Programming
10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server
Grid Computing. Web Services. Explanation (2) Explanation. Grid Computing Fall 2006 Paul A. Farrell 9/12/2006
Grid Computing Web s Fall 2006 The Grid: Core Technologies Maozhen Li, Mark Baker John Wiley & Sons; 2005, ISBN 0-470-09417-6 Web s Based on Oriented Architecture (SOA) Clients : requestors Servers : s
Eclipse Open Healthcare Framework
Eclipse Open Healthcare Framework Eishay Smith [1], James Kaufman [1], Kelvin Jiang [2], Matthew Davis [3], Melih Onvural [4], Ivan Oprencak [5] [1] IBM Almaden Research Center, [2] Columbia University,
JAX-WS Web Service for Transferring Image
JAX-WS Web Service for Transferring Image Girish M. Tere Department of Computer Science, Shivaji University, Kolhapur, Maharashtra 416004, India [email protected] R. R. Mudholkar Department of Electronics,
XML Processing and Web Services. Chapter 17
XML Processing and Web Services Chapter 17 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of http://www.funwebdev.com Web Development Objectives 1 XML Overview 2 XML Processing
Distributed Network Management Using SNMP, Java, WWW and CORBA
Distributed Network Management Using SNMP, Java, WWW and CORBA André Marcheto Augusto Hack Augusto Pacheco Augusto Verzbickas ADMINISTRATION AND MANAGEMENT OF COMPUTER NETWORKS - INE5619 Federal University
Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems
Integration of Hotel Property Management Systems (HPMS) with Global Internet Reservation Systems If company want to be competitive on global market nowadays, it have to be persistent on Internet. If we
Jonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus
Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 4.0.3 Unit objectives
The Efficiency Analysis of the Object Oriented Realization of the Client-Server Systems Based on the CORBA Standard 1
S C H E D A E I N F O R M A T I C A E VOLUME 20 2011 The Efficiency Analysis of the Object Oriented Realization of the Client-Server Systems Based on the CORBA Standard 1 Zdzis law Onderka AGH University
Introduction to Testing Webservices
Introduction to Testing Webservices Author: Vinod R Patil Abstract Internet revolutionized the way information/data is made available to general public or business partners. Web services complement this
Interpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
1/20/2016 INTRODUCTION
INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We
What is a Web service?
What is a Web service? Many people and companies have debated the exact definition of Web services. At a minimum, however, a Web service is any piece of software that makes itself available over the Internet
Introduction Object-Oriented Network Programming CORBA addresses two challenges of developing distributed systems: 1. Making distributed application development no more dicult than developing centralized
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo
How To Write A Network Operating System For A Network (Networking) System (Netware)
Otwarte Studium Doktoranckie 1 Adaptable Service Oriented Architectures Krzysztof Zieliński Department of Computer Science AGH-UST Krakow Poland Otwarte Studium Doktoranckie 2 Agenda DCS SOA WS MDA OCL
1 What Are Web Services?
Oracle Fusion Middleware Introducing Web Services 11g Release 1 (11.1.1.6) E14294-06 November 2011 This document provides an overview of Web services in Oracle Fusion Middleware 11g. Sections include:
Elements of Advanced Java Programming
Appendix A Elements of Advanced Java Programming Objectives At the end of this appendix, you should be able to: Understand two-tier and three-tier architectures for distributed computing Understand the
What is COM/DCOM. Distributed Object Systems 4 COM/DCOM. COM vs Corba 1. COM vs. Corba 2. Multiple inheritance vs multiple interfaces
Distributed Object Systems 4 COM/DCOM Piet van Oostrum Sept 18, 2008 What is COM/DCOM Component Object Model Components (distributed objects) à la Microsoft Mainly on Windows platforms Is used in large
Overlapping Data Transfer With Application Execution on Clusters
Overlapping Data Transfer With Application Execution on Clusters Karen L. Reid and Michael Stumm [email protected] [email protected] Department of Computer Science Department of Electrical and Computer
www.progress.com DEPLOYMENT ARCHITECTURE FOR JAVA ENVIRONMENTS
DEPLOYMENT ARCHITECTURE FOR JAVA ENVIRONMENTS TABLE OF CONTENTS Introduction 1 Progress Corticon Product Architecture 1 Deployment Options 2 Invoking Corticon Decision Services 4 Corticon Rule Engine 5
Author: Gennaro Frazzingaro Universidad Rey Juan Carlos campus de Mostòles (Madrid) GIA Grupo de Inteligencia Artificial
Simple Implementation of a WebService using Eclipse Author: Gennaro Frazzingaro Universidad Rey Juan Carlos campus de Mostòles (Madrid) GIA Grupo de Inteligencia Artificial Contents Web Services introduction
Session Service Architecture
Session Service Architecture Open Web Single Sign-On Version 1.0 Please send comments to: [email protected] Author Alan Chu ([email protected]) Session Service Architecture, Version 1.0 This document is subject
Research on the Model of Enterprise Application Integration with Web Services
Research on the Model of Enterprise Integration with Web Services XIN JIN School of Information, Central University of Finance& Economics, Beijing, 100081 China Abstract: - In order to improve business
Base One's Rich Client Architecture
Base One's Rich Client Architecture Base One provides a unique approach for developing Internet-enabled applications, combining both efficiency and ease of programming through its "Rich Client" architecture.
Standard Recommended Practice extensible Markup Language (XML) for the Interchange of Document Images and Related Metadata
Standard for Information and Image Management Standard Recommended Practice extensible Markup Language (XML) for the Interchange of Document Images and Related Metadata Association for Information and
VALLIAMMAI ENGINEERING COLLEGE SRM NAGAR, KATTANKULATHUR-603203 DEPARTMENT OF COMPUTER APPLICATIONS SUBJECT : MC7502 SERVICE ORIENTED ARCHITECTURE
VALLIAMMAI ENGINEERING COLLEGE SRM NAGAR, KATTANKULATHUR-603203 DEPARTMENT OF COMPUTER APPLICATIONS QUESTION BANK V SEMESTER MCA SUBJECT : MC7502 SERVICE ORIENTED ARCHITECTURE PART A UNIT I 1. What is
C++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
Unified XML/relational storage March 2005. The IBM approach to unified XML/relational databases
March 2005 The IBM approach to unified XML/relational databases Page 2 Contents 2 What is native XML storage? 3 What options are available today? 3 Shred 5 CLOB 5 BLOB (pseudo native) 6 True native 7 The
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
Classic Grid Architecture
Peer-to to-peer Grids Classic Grid Architecture Resources Database Database Netsolve Collaboration Composition Content Access Computing Security Middle Tier Brokers Service Providers Middle Tier becomes
A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA
A Web-Based Real-Time Traffic Monitoring Scheme Using CORBA Yuming Jiang, Chen-Khong Tham, Chi-Chung Ko Department of Electrical Engineering, National University of Singapore, 10 Kent Ridge Crescent, Singapore
PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE
PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE TIGRAN HAKOBYAN SUJAL PATEL VANDANA MURALI INTRODUCTION Common Object Request
