US20040215621A1 - Web services apparatus and methods - Google Patents

Web services apparatus and methods Download PDF

Info

Publication number
US20040215621A1
US20040215621A1 US10/648,595 US64859503A US2004215621A1 US 20040215621 A1 US20040215621 A1 US 20040215621A1 US 64859503 A US64859503 A US 64859503A US 2004215621 A1 US2004215621 A1 US 2004215621A1
Authority
US
United States
Prior art keywords
uddi
business
directory
service
business entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/648,595
Other languages
English (en)
Inventor
Richard Harvey
Timothy Bentley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CA Inc
Original Assignee
Computer Associates Think Inc
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 Computer Associates Think Inc filed Critical Computer Associates Think Inc
Priority to US10/648,595 priority Critical patent/US20040215621A1/en
Assigned to COMPUTER ASSOCIATES THINK, INC. reassignment COMPUTER ASSOCIATES THINK, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BENTLEY, TIMOTHY, HARVEY, RICHARD H.
Publication of US20040215621A1 publication Critical patent/US20040215621A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • 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/951Indexing; Web crawling techniques
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/463Naming

Definitions

  • the present disclosure relates to UDDI Registry and Web Services in general, and in particular to method(s), apparatus and system(s) used in giving practical effect to such services.
  • UDDI Universal Description, Discovery and Integration
  • UDDI Universal Description, Discovery and Integration
  • UDDI is intended to create a platform-independent, open framework for describing services, discovering businesses and integrating system services using the Internet, as well as an operational registry. Refer to the web site www.uddi.org for further details.
  • FIG. 1 a illustrates schematically basic Web Services and UDDI concepts.
  • FIG. 1 b illustrates schematically a simplified protocol stack for the Web Services environment.
  • UDDI provides a repository for Web Services information and is itself provided by way of a Web Service.
  • UDDI enables applications to publish how they want to interact on the web.
  • Each ‘Web Service’ is a self-describing, self-contained, modular unit of application logic that provides some system functionality to other applications through an Internet connection.
  • Applications access Web Services via ubiquitous web protocols and data formats, with no need to worry about how each Web Service is implemented.
  • Web Services can be mixed and matched with other Web Services to execute a larger workflow or business transaction.
  • the UDDI Standards describe a specific-purpose repository that is intended to manage descriptions of Web Service types, business organizations, and details about how to invoke the Web Services.
  • the Standards do not necessarily specify how the Standards should be implemented, nor whether the implementation should include storage using a database, a Directory or any other medium.
  • Directory technologies such as X.500 and LDAP, are extensible, general-purpose data stores and their associated languages that are most often used to manage users and resources. They are very well established technologies, widely adopted, and considered very stable and reliable.
  • the UDDI Standard defines a number of objects, some of which are related by a hierarchy, but UDDI does not define an all-encompassing hierarchy.
  • Business Service objects will come under Business Entity objects
  • the Binding Template objects will come under Business Services.
  • FIG. 2 illustrates an example of this hierarchy.
  • Business Entity objects are denoted 21
  • Business Services objects are denoted 22
  • Binding Template objects are denoted 23 .
  • TModel objects, denoted 24 are not hierarchically related to these objects.
  • Publisher Assertions, for example, which are not defined hierarchically.
  • FIG. 13 illustrates schematically a UDDI concept of a relatively complex object in a Business Entity.
  • the Business Entity object 131 includes, for example. a number of attributes 132 , such as AuthorizedName, BusinessKey, and Name.
  • the Name has one or more Name fields 133 , such as ‘text’ or this may be implicit in the “Name” itself. There is also ‘language’. There may be one or more of these fields 133 .
  • UDDI Schema Various UDDI Schema have been proposed. However, none are considered to address at least the problems noted above. For example, one schema provides a relatively simplistic mapping of UDDI objects to Directory objects, without necessarily having regard to the complexities and optimization to produce an efficient commercial implementation. It is also unclear how a number of the UDDI services (the find_series, in particular) can be implemented efficiently in such a schema.
  • FIG. 14 illustrates schematically a Novell representation of a relatively complex object in a Business Entity.
  • the Business Entity object 141 includes for example a number of attributes 142 , each having a ‘type’ and ‘value’. As illustrated, there is AuthorizedName having a value ‘Bill’, BusinessKey having a value ‘ 890 .obale. 890 . . . ’, and Name having multi-values 143 , 144 namely
  • a method for use in a Web Services arrangement comprises arranging Business Entity object(s) under User object(s) and arranging corresponding TModel object(s) under at least one of User object(s), Repository object and Prefix.
  • a computer recording medium including computer executable for use in a Web Services arrangement comprises code for arranging Business Entity object(s) under User object(s) and code for arranging corresponding TModel object(s) under at least one of User object(s), Repository object and Prefix.
  • FIG. 1 a illustrates schematically some Web Services and UDDI concepts
  • FIG. 1 b illustrates schematically a simplified protocol stack for the Web Services environment
  • FIG. 2 illustrates schematically a Hierarchy according to the related art
  • FIG. 3 illustrates schematically a Directory Service Model according to the related art
  • FIG. 4 illustrates schematically the infrastructure components for a UDDI Service Model implemented using X.500 Directory technology according to an embodiment of the present disclosure
  • FIG. 5 illustrates schematically Service Projection, according to an embodiment of the present disclosure
  • FIG. 6 illustrates schematically relationships between Binding Template and TModel, according to an embodiment of the present disclosure
  • FIG. 7 illustrates schematically how a TModel creates a relationship between two entities, according to an embodiment of the present disclosure
  • FIG. 8 illustrates a logical representation of a request to add a Publisher Assertion, according to an embodiment of the present disclosure
  • FIG. 9 illustrates a logical representation of a constructor for UDDI data objects according to an embodiment of the present disclosure
  • FIG. 10 illustrates schematically placing Business Entities objects under User object(s);
  • FIG. 11 illustrates, schematically placing Domain objects over User object(s);
  • FIG. 12 illustrates schematically an outline of the schema according to an embodiment of the present disclosure
  • FIG. 13 illustrates schematically a UDDI concept of a relatively complex object in a Business Entity according to the related art
  • FIG. 14 illustrates schematically a Novell representation of a relatively complex object in a Business Entity
  • FIG. 15 illustrates schematically the introduction of hierarchy in accordance with an embodiment of the present disclosure for the representation of a relatively complex object in a Business Entity
  • FIG. 16 illustrates schematically a Binding Template hierarchy sub-structure according to an embodiment of the present disclosure
  • FIG. 17 illustrates schematically a binding Template sub-structure flattened and/or merged
  • FIG. 18 is a block diagram of a computer system capable of implementing various aspects of the present disclosure.
  • FIG. 18 shows an example of a computer system which may implement the method and system of the present disclosure.
  • the system and method of the present disclosure may be implemented in the, form of a software application running on a computer system, for example, a mainframe, personal computer (PC), handheld computer, server etc.
  • the software application may be stored on a recording media locally accessible by the computer system, for example, floppy disk, compact disk, hard disk, etc., or may be remote from the computer system and accessible via a hard wired or wireless connection to a network, for example, a local area network, or the Internet.
  • FIG. 18 An example of a computer system capable of implementing the present method and system is shown in FIG. 18.
  • the computer system referred to generally as system 180 may include a central processing unit (CPU) 182 , memory 184 , for example, Random Access Memory (RAM), a printer interface 186 , a display unit 188 , a (LAN) local area network data transmission controller 190 , a LAN interface 192 , a network controller 194 , an internal bus 196 and one or more input devices 198 , for example, a keyboard, mouse etc.
  • the system 180 may be connected to a data storage device, for example, a hard disk, 200 , via a link 202 .
  • a repository layer is created above users so each repository can be placed on a different server.
  • This Repository layer includes one or more Directory nodes which collectively form the Directory pre-fix. This may also be known as ‘Domain’ or ‘Name’ of the Repository. An advantage of this is that it provides a single place to hold information about a domain. The name of this node represents the Directory prefix.
  • a user object may be created to hold the data representing a UDDI account.
  • An advantage of this is that it provides a single place to hold information about a user/account.
  • Business Entity object(s) may be arranged under User object(s), Business Service object(s) under Business Entity object(s), and Binding Template object(s) under Business Service object(s).
  • An advantage of this is that a repository or ‘domain’ layer above the user object layer enables a number of repositories to be posted or logically connected together.
  • the domain layer may be arranged in a number of levels, for example having different countries, AU, US, EP, etc., organized by continent.
  • Another advantage is that this feature may be given effect by use of the Distribution features of an X500 Directory.
  • a ‘World’, or ‘Corporation’ Node is placed at the top of the virtual Directory tree, and a uniquely named Node is placed at the top of each UDDI sub-tree (UDDI Name Space). While invisible to users, these ‘Node’ prefixes allow a UDDI repository to leverage Directory distribution.
  • the Business Entity objects can be made a child of the user object. Having a user/account over the Business Entity, Business Service and Binding Template hierarchy gives the effect of each user having their own sub-tree. This enhances manageability and security. The user is readily restricted to modifying and/or controlling only their own sub-tree. This also enhances performance by making use of Directory sub-tree search operations
  • TModels defined by a user can be made children of the user object, thus makes security easy to implement. This enhances manageability and security since the user can only modify and/or control their own sub-tree. It also enhances performance by making use of Directory sub-tree search operations.
  • An embodiment of the present disclosure represents a ‘mapping’ of the UDDI environment using X.500/LDAP Directory technology.
  • the hierarchy structure of the X.500 and LDAP Directory technology has been found to be suitable to the UDDI environment. Careful design of additional elements (such as the user object) have made the hierarchy even more suitable to the needs of the UDDI environment.
  • Directory is to include X.500, LDAP and similar technologies; the term ‘Users’ is understood to also include ‘Accounts’ and visa versa; and the term ‘Repository’ is understood to also include ‘Directory Pre-fix’, ‘Domain’ and or ‘Node’ and visa versa.
  • Web Services were originally envisaged to be services between organizations for example businesses, partners, customers, suppliers.
  • UDDI was envisaged as a single repository for the services these organizations offer.
  • Web Services and UDDI are useful within an enterprise to integrate applications inside an organization. It is also apparent that Web Services and UDDI can be used to integrate products inside a product set from a given vendor. It is also applicable outside the commercial environment, in areas such as government departments, large educational institutions, and many other instances of non-commercial entities.
  • An enterprise UDDI registry can be a service that can be deployed within the Enterprise to publish information and services for internal consumption.
  • an Enterprise UDDI service may be leveraged to provide other functions, such as configuration discovery for distributed applications.
  • Web Services are being driven by the desire to quickly and easily integrate business processes, both internally and with partners.
  • One component of using Web Services effectively is a public UDDI registry that enables software components to dynamically discover and connect to appropriate services across the Internet.
  • Web Services also offer the promise of being able to integrate business processes within the Enterprise.
  • the UDDI registry can become a piece of an organization's infrastructure (e.g., an important Enterprise application) and therefore provide the highest levels of security, performance, reliability and manageability.
  • Directory technology provides an ideal foundation to support the stringent requirements of an Enterprise UDDI Registry.
  • An Enterprise UDDI registry can be defined as one that delivers Standards-compliant support for UDDI, but goes beyond it to address four areas for deployment. These areas include SECURITY to restrict access to authorized users only, DISTRIBUTION to support large deployments, MANAGEABILITY for a true production system and AVAILABILITY to meet service level agreements.
  • An Internet UDDI registry is considered inappropriate for deploying Web Services in an enterprise. For example, definitions of a Web Service that interfaces to a payroll system or to an employees' benefits management application would not be posted to an Internet UDDI Registry.
  • UDDI registry provides strong access controls. This is because a UDDI registry essentially presents a tutorial on what can be done and how to do it.
  • a UDDI registry provides a business-level description of any available Web Service and directions to the WSDL that completely define the programmatic interface to those services. This provides a high-productivity tool for application developers, as well as hackers.
  • a distributed registry provides a flexible, scalable solution.
  • each participating office has a separate registry, and each registry views the others as a logical part of its own content.
  • the registry service takes care of all the connectivity details, and customers need not be concerned with geography.
  • the second scenario occurs when an enterprise needs to connect its internal UDDI system to that of a trusted partner, or public Internet registry.
  • a public registry in particular, replication is problematic. Internet registry operators may be unwilling to replicate parts of their registry to the enterprise's internal registry.
  • a distributed approach is one answer.
  • UDDI Standards for distribution there are no UDDI Standards for distribution and the proposals for replication are considered complex.
  • One solution would provide the benefits of a UDDI distributed approach without requiring modifications to the standard.
  • UDDI should meet performance and reliability requirements. It should not just exist as a convenient utility for developers. Read access by clients will be the most frequent and most time-critical usage of a UDDI registry. Performance is optimized for maximum throughput, and the response times of lookup queries should not be affected by more complex searching. Performance should not suffer as the registry grows in size and complexity.
  • the data store underpinning the UDDI Registry should be industrial strength and fully support transactions and automatic recovery.
  • the UDDI servers should have a high degree of availability and support features such as network fail-over and hot standby. System Administrators should have capabilities to make the UDDI registry easy to maintain, monitor and control.
  • a UDDI registry provides a service. This service will be relied on by many applications. In the case of on-line businesses, it may be important that this service be ever present. For example, a UDDI registry may be required to provide service level agreements of 99.99% availability. In order to facilitate this level of availability, the UDDI registry may be replicated across two or more machines, and mechanisms provided to make certain that the machines are kept synchronized, and that, should any of the machines become unavailable, any incoming queries are automatically routed to an available machine.
  • UDDI may be considered as effectively analogous to phone directory service.
  • the Directory model of information storage is a perfect base on which to build a UDDI registry service.
  • the Directory model has been evolved and developed for the specific needs of Directory-based services, with the security, scalability and reliability needed for enterprise level deployment.
  • RDBMS Relational databases
  • the Directory Service architecture shown in FIG. 3 illustrates the separation of a Service Layer 31 from the other components. Encapsulating the interface functions into a Service Layer 31 results in reusable service infrastructure components.
  • An excellent example of this is a web server.
  • a web server provides a collection of functions (HTTP access, CGI processing and so on) that together make up a service useful enough to build into a standalone component.
  • the Directory Service model has been developed to supply the functions required by a specific type of application. Directory technologies provide the underpinning for many mission-critical applications in the area of authentication and authorization.
  • UDDI may be viewed as analogous to another kind of Directory Service. It may then be seen that many of the implementation problems posed by UDDI can be solved by using Directory technologies. For example, Directories are optimized for extremely efficient find and search operations that are very common for UDDI phone Directory operations.
  • the Directory Services architecture provides the optimal vehicle to implement an Enterprise UDDI registry. This combination supports the capabilities necessary for success.
  • the UDDI Service as illustrated schematically in FIG. 4 identifies components which may be implemented for this infrastructure.
  • UDDI SEMANTIC BRIDGE 41 is a service component that mediates between the SOAP implementation 42 of UDDI and the LADP interface 43 supported by Directory 44 .
  • Directory 44 delivers information access with supporting security controls, distribution mechanisms, and administration capabilities.
  • RDBMS 45 provides the underlying physical data management, transactional integrity and backup and recovery mechanisms.
  • UDDI registry products may be built directly on RDBMS technology. Relational Databases, although very useful and strong in many ways, do not by themselves meet the requirements unique to Directory processing It would be possible to build a Directory-type application from scratch, utilizing an RDBMS or other data storage system underneath. However, this may not be the most efficient approach.
  • UDDI registry may be viewed as a Directory Service with specialized communications and APIs. Delivering UDDI services on a Directory could provide the requisite security, distribution and management capabilities without having to modify the UDDI Standards to gain the benefits.
  • a schema, in Directory parlance, is a description of the data elements that can be stored in the Directory, and how those elements may be connected together. This includes descriptions of each of the possible attributes (an attribute holds a single piece of data), descriptions of the various objects (an object is a collection of attributes), and specifications of the possible object hierarchies.
  • the particular Schema notation used in this specification is the one used by eTrust Directory, a product of Computer Associates International Inc. ‘eTrust’ is a product name and trademark of Computer Associates International Inc. Of course, other Schema notations my be used.
  • the present disclosure describes a Schema used to implement a UDDI repository using a Directory as the data store.
  • a Schema used to implement a UDDI repository using a Directory as the data store.
  • concepts involved in this Schema There are also a number of techniques used to enhance the operation of the UDDI implementation. The following is a brief description of some of these concepts. A more detailed description of these concepts and techniques will be described later below when describing embodiments of the present disclosure.
  • the present Schema is designed to provide optimized operation.
  • the present Schema design which includes the definition of Attributes, Object Classes, Entries and the Hierarchy, is embodied in a manner that enhances operation.
  • the present Schema design provides significant advantages in, at least, security, performance, manageability, and distribution.
  • An X.500 Directory supports distribution internally, providing a distributed UDDI repository without any coding at the UDDI level.
  • a level divides the contents of the repository.
  • the (optional) domain level of this schema provides that level, each domain entry, and all of the entries below it, can be placed on a separate Directory server transparently to the UDDI-level programming.
  • FIG. 11 illustrates an embodiment of this aspect of the present disclosure. This will be described in more detail later below.
  • a user object is placed over the business and TModel objects.
  • the user object provides a place for the storage of information relating to the user. It also provides an anchor point for all of the data published by the user.
  • FIG. 10 illustrates an embodiment of this aspect of the present disclosure. This will be described in more detail later below.
  • Searching for user controlled entries is provided. Searching for data controlled by this user can be enhanced by using a sub-tree search under the user object.
  • Searching may be performed using attributes unique to an object class. This is an optimization that has two advantages. This simplifies the writing of searches, and yields superior performance through the elimination of ‘weak’ clauses.
  • a ‘weak’ clause is a part of a filter that returns a large number of entries, or which refers to an attribute that is part of many entries.
  • a design which used the same attribute name for every Name would have two choices when searching, for a Business Entity by name: it includes the object class in the search or filter the results of the search. The former is only possible if business names had a unique object class, and even so, object class is a weak clause, incurring more overhead. The latter means extra code and the potential for returning a result list much larger than the desired result.
  • Such a design produces strong searches, which are efficient because they are searching only the desired area. Strong searches include searches which return a small number of entries.
  • the Directory can index the euBusinessEntityName attribute, and return results from that index—this produces good performance, and avoids handling unnecessary intermediate results.
  • Shadow attributes may be used for case-sensitivity. It is far from trivial to provide both case-sensitive and case-insensitive searching using a single index. One option is to index case-insensitively, then scan the results case-sensitively. Another solution here is to index the original data case-sensitively, and to add a second attribute (in which the same data is stored) which is indexed case-insensitively. Then all that is required is to choose the appropriate attribute to search depending on the find qualifiers.
  • Every attribute in this design may be single-valued. This allows efficient indexing, higher performance, and stronger searches.
  • Single-valued attributes are one of the techniques used for strong searches.
  • a strong search is one which can eliminate the majority of candidate results through the index. Strong searches are a key to improved performance.
  • Aliases may be used for service projection. This is a significant benefit of using an X.500 Directory as the data store.
  • a service projection can be represented neatly using an X.500 alias. This has the major advantage of guaranteeing data integrity.
  • the alias accesses the original data, so any change to the original is instantly reflected by the alias. If the Directory implementation supports alias integrity, then when the original entry is deleted the alias vanishes without additional work.
  • UDDI keys may be used for naming where present.
  • UDDI defines keys for many of the important object classes, and these keys are specified as being guaranteed to be unique. This means that the keys can be used as the naming attributes for the objects.
  • Using the UDDI keys as the naming attributes means that there is no need to attempt resolution of naming clashes—that would be required if, for example, the default name were used as the naming attribute for a Business Entity.
  • Keys may be provided for naming where not present. That is, not all UDDI objects have defined keys.
  • An example is Publisher Assertions.
  • the present system provides a key, using the same algorithm as is used for the UDDI-defined keys. This re-use of the idea means that code and structure written for the other objects can be re-used.
  • the keys assigned to the child objects are arranged to be monotonically increasing in value, so that sorting on the keys yields the desired order. This simplifies the process of ensuring the desired order.
  • keys vary in a little-endian manner. That is, the leftmost byte of the key varies most rapidly, because that yields the best performance of indexing in the X.500 Directory being used as the data store.
  • the UDDI Standards define a number of sub-structures inside some of the main object types. In many cases these sub-structures are optional, and may be repeated (they may occur zero, one, or more than one times in the same object).
  • a simple example is the name sub-structure, containing a string (the name) and a language identifier.
  • the X.500 schema definition does not support the use of structured attributes, so there is no immediately clear mapping of sub-structures. There are a few ways in which these sub-structures can be implemented in an X.500 schema.
  • the particular design used to represent sub-structures is chosen to maximise performance and manageability.
  • the design disclosed may use one or more of a variety of techniques to represent sub-structures in a Directory. These techniques can be summarized in 3 categories.
  • FIG. 15 provides an illustration of an embodiment of this aspect of the present disclosure and will be described in more detail below.
  • Another technique is flattening/merging.
  • the attributes may be combined into a single object.
  • the hierarchy is said to be flattened because two objects have been combined into one object.
  • a new object is said to be merged because the new object contains a combination of attributes from the combining objects.
  • the contents of the Relationship Object are promoted to the Parent Object.
  • FIG. 16 illustrates schematically a representation of a UDDI relationship diagram.
  • FIG. 17 illustrates schematically a Directory Hierarchy diagram where the Directory hierarchy has been formed by a flattening of the UDDI objects.
  • FIG. 16 illustrates Object 161 having a relationship Object 162 to Object 163 .
  • a ‘child’ can be promoted. In other words, that part of the hierarchy can be collapsed or flattened and objects merged.
  • the result is illustrated schematically in FIG. 17.
  • the Parent Object 171 has contents A 1 , A 2 , An and has one or more children, Child Object 9 n, with contents B 1 , B 2 , Bn, C 1 , C 2 and Cn.
  • a sub-structure contains an unrepeated element and a repeated element.
  • the unrepeated element can be moved into the parent, while the repeated element can be made a child object.
  • TModel hides it from find_TModel but does not remove it from the repository. Accordingly, to implement the correct handling of TModels, a hidden flag may be implemented. The presence of this flag indicates that a TModel (or user object) is hidden. The absence of the flag indicates that it is not. This will be the case for the vast majority of TModels, so this approach is efficient. No space is occupied in unhidden objects, and no indexing is used either. The Directory will index only those entries which do have the hidden attribute. This also means that the search for unhidden TModels will be fast and efficient.
  • the X.500 Directory used as a data store encourages a design which does not store empty values. For example, a (optional) value which is absent from the object is not stored in the Directory. This makes efficient use of storage space, and makes for stronger searches. Any search on an attribute need only consider those objects which have data for that attribute.
  • the data hierarchy of the present system matches well with the intent of the UDDI Standard.
  • a request arrives to delete a UDDI object, it maps directly to the deletion of a sub-tree in the Directory.
  • deleting a service includes deleting its names and descriptions, and all of its Binding Templates. All of these are children of the service entry in the Directory. Accordingly, the present system deletes the sub-tree from the service entry on down. This is readily implemented, and efficient.
  • a domain is a name representing the base of a hierarchical sub-tree.
  • a domain is known as a context prefix.
  • LDAP terminology it is known as a suffix.
  • UDDI repositories a domain name allows use of true distribution (in the X.500 sense) of the data in the repository.
  • the UDDI Standard only supports replication. By having the domain nodes, the present system can use Directory distribution facilities transparently to the application.
  • UDDI defines objects that contain repeating elements. For benefits such as performance, searchability and manageability these repeating elements can be represented as child objects.
  • Business Entity names can be stored as children of the Business Entity object.
  • Another example is Business Description which can be stored as children below Business Entity objects.
  • An advantage of this type of system is that it allows searching for a name (which is a common UDDI search), and the DN of the entry gives the DN of the object to which the name belongs.
  • UDDI defines redundant ‘container’ nodes (UDDI structures which contain only child sub-structures, rather than attributes). These can be removed because they can be constructed at relatively low cost from the results of a query. In some cases, attributes can be promoted from a child node to its parent, to remove the now-redundant child-node from the Directory representation.
  • tModelInstanceDetails is not represented in the Directory schema as it contains no attributes instanceDetails is not represented in the Directory schema as its attributes were promoted into the tModelInstanceInfo parent, as were the attributes of its child, overviewDoc.
  • the category and identifier bags are not represented in the Directory, their contents are made children of the owner of the bag
  • An advantage of this is that it reduces the number of entries in the Directory. In particular, it minimizes the depth of the DIT, which can improve performance.
  • FIG. 12 illustrates schematically a hierarchy structure according to an embodiment of the present disclosure.
  • One or more Domain or Prefix 121 are provided. Under each Domain 121 , there may be one or more Users 122 . Under each User 122 , there may be provided one or more TModel 123 and one or more Business Entity (BE) 124 . Under each Business Entity 124 , there may be provided one or more Publisher Assertion (PA) 125 , one or more Business Service (BS) 126 and one or more Service Projection (SP) 127 . Under each Business Service (BS) 126 , there may be provided one or more Binding Template (BT) 128 . Aliases can be placed as required by a particular implementation. For example, Service Projection object(s).(shown as a triangle in FIG. 12) may stem as an alias from Business Entity object(s).
  • Publisher Assertions are placed under the business entities to which they refer because they are most frequently used in the context of a find_RelatedBusinesses call, which specifies a business key and is looking for all the businesses related to that one via Publisher Assertions.
  • the present system locates the specified business, then reads all the Publisher Assertions underneath it (that are complete). This is a quick and efficient way of locating the relevant assertions.
  • An advantage of this is that it allows fast and efficient searches. It also allows easy maintenance of data integrity. For example, when a business is deleted, any Publisher Assertions are automatically deleted too.
  • TModels can be changed (or retired/hidden) by the user who published them. Placing them under the entry representing the user makes the security simple. For example, if the TModel lies in the sub-tree under the user entry, then it can be modified. If not, then it can not.
  • the entry can be modified by that user, otherwise it can not.
  • the Directory can be used to make this determination (Naming exception if the DN doesn't exist), or the UDDI server can do it.
  • the information associated with that object may also be deleted. This is greatly simplified by the hierarchical design used according to embodiments of the present schema.
  • the entire sub-tree of which it is the root can be deleted, and this process can delete all (and generally only) the associated information. Deleting a sub-tree can be performed bottom-up. Each entry can only be deleted when all its children are deleted. This is managed by listing all the children in reverse DN order. This guarantees deletion of the children before their parents.
  • An advantage of this is that a sorted list method is an alternative to the more complex use of recursion. Further, it is relatively simple and memory-efficient. When all the entries in the subtree are sorted by DN, and deletes are executed in reverse order, this guarantees that all children will be deleted before their parent.
  • the system deletes all the Binding Templates associated with it, their TModel instance information, and the various associated category information. All this can be deleted by deleting the sub-tree of which the business service is the root.
  • An advantage of this is that it can reduce the number of searches or reads used to gather information. For instance, with search results which are child objects (such as names), the DN of each entry reveals the parent (e.g. the BusinessEntity) and the owning account.
  • the DN of a business service reveals the business to which it belongs, and the user who controls it.
  • the result for a business, A is followed by a result for its first service, AA, that service's name, then A's second service, AB, and its names, then a second business, B.
  • a search can also be carried out on children.
  • a frequent search request may be “finding x by finding one (or more) of its children”.
  • One of the ways a business can be found by a search is by specifying, for example, a TModel that occurs in a binding template.
  • the query is “find all businesses which have a service which has a binding template which references this TModel”.
  • These queries can be done by finding the DN of the descendent object, and chopping off the unwanted levels to yield the DN of the business entity.
  • This search method comes about, in part, due to the hierarchy structure of embodiments of the present disclosure.
  • An advantage of this is that it makes use of the fastest type of Directory queries. Another advantage is that the guaranteed unique names may be important if a given object is referenced from another.
  • a property of most indexing systems is that they are data dependent if the data is “little endian” (the leftmost portion changes most rapidly) that data tends to be spread and so the indexes can give maximum performance. Conversely, if the data is repetitious, the indexes may not be very effective.
  • a UUID (Universally Unique Identifier) algorithm can be used which exhibits “little endian” qualities. An advantage of this is that it maximises Directory performance.
  • Keys may be added to derived objects. Where a repeating data element is made into a child object, there is a need to add a naming attribute, which will form the last arc of its DN. In a Directory, the naming attribute is different from its siblings, since no two children of the same parent can have the same name.
  • UUIDs are used because these are guaranteed to be unique. Where order is important, keys with a monotonically increasing property are used to guarantee order.
  • a Business Entity can offer two kinds of services: those which it controls (represented in the repository by child objects), and those which it offers an interface to, despite the fact that they are provided by another Business Entity.
  • the latter are represented in the disclosed UDDI repository by aliases.
  • An alias provides exactly the right features. For example, if the original object (service) is altered in some way by its owner (perhaps another Binding Template is added), then the object referenced via the alias “changes” too. Moreover, any search under the Business Entity for a service will yield both real and aliased services.
  • aliases can be used for Service Projection, where a Business can point to a Service defined under another Business.
  • An advantage of this is that leveraging aliases allows functionality that basically involves “an alternative name” to be automatically provided. Furthermore, if the Directory supports alias integrity, then if the original Service is deleted, any projections are automatically removed.
  • the present system may use a reference to the object. Because the present system, according to an embodiment, guarantees that every object has a unique key, then that key behaves exactly as a reference, sometimes known as a “foreign” key.
  • Attribute grouping can be performed using auxiliary object class.
  • auxiliary object class In handling Publisher Assertions there is a need for an ability to locate a Publisher Assertion using those three attributes which uniquely identify the Publisher Assertion: the two Business Entity keys, and the relationship between them. However, the relationship is specified as a keyed reference, which is itself three different attributes: TModel key, key name, and key value. One way is to store this relationship as a child object of the Publisher Assertion. However, this may not allow the most efficient search for a specific Publisher Assertion. By making the relationship keyed reference an auxiliary class to the Publisher Assertion entry it is possible to search for all five attributes in a single search, and thus isolate exactly the Publisher Assertion objects required.
  • One design of this schema may use normal object-oriented design techniques, and yield, for example, all keyed references having the same attribute names.
  • this design may make it more difficult and expensive to isolate, for example, a Business Entity category keyed reference, and to avoid confusing it with a TModel category keyed reference. It may also make it necessary to include object class terms in the filter and such terms are weak (highly repetitious in the repository).
  • euName is the superclass of all the Name-type object classes, including euBusinessEntityName and euTModelName.
  • the UDDI Standard specifies that it be, possible to search, for example, names in both case-sensitive and case-insensitive ways. This can be handled by indexing case-insensitively, and then retrieving the entries and checking them case-sensitively, but such an approach costs performance. It is preferable in these cases to define a shadow field which contains the same data, but is indexed differently. Similarly shadow attributes can be used for variations in language, e.g. diacritical marks.
  • the euBusinessEntityName object class contains two copies of each name.
  • the first version is indexed case-insensitively, while the second is indexed case-sensitively. This allows the construction of a search filter which performs optimally no matter which behaviour is requested.
  • Every attribute (except object class) in this repository may be single-valued. This makes it possible for the Directory to construct more efficient indexes, and provide better performance in searching.
  • Operational attributes are special attributes that are managed by the UDDI application, but which are not seen by the user.
  • TModels In the storage of UDDI data, it should be possible to have a way to distinguish TModels, which are in-use from those which have been “retired”.
  • TModel When a TModel is deleted, it may well still be used by many entries, so it cannot be truly deleted. Instead it is hidden, which means that it will not be returned as part of the results of a find_TModel call, but it can still be queried via a get_TModelDetail call.
  • This is implemented by use of an attribute called euHidden, which is added to those TModels which are hidden. It may be beneficial and efficient to add a search step which eliminates any entry containing the euHidden attribute to any filter searching for TModels.
  • An embodiment of the present disclosure will now be described for resolving the implementation and UDDI Standard's issues in the context of a Directory.
  • X.500 schema There are a number of elements to an X.500 schema. These elements include Attribute definitions, Object Class definitions and Name Binding definitions.
  • An Attribute definition specifies a single data element, giving it a unique identifier (an OID), a name, and a data type.
  • An Object Class definition specifies a collection of attributes which is manipulated as a whole. It gives a unique identifier (an OID), a name, and a list of attributes; the attributes may be required or optional.
  • a Name Binding specifies part of a possible hierarchy. The Name Binding specifies one object class which may be stored under another, and specifies the attribute (or attributes) of the child that names the child object in this context.
  • find qualifier There are a number of find qualifiers which impose additional design requirements.
  • One find qualifier is case sensitivity for providing the ability to search for text data in both case-sensitive and case-insensitive manner efficiently.
  • case sensitivity can be resolved by providing additional fields in the objects, indexed differently.
  • the textual data is stored twice in an attribute of type caseExactString, and in an attribute of type caselgnorestring.
  • the find qualifier determines which of the fields is searched, resulting in maximum performance.
  • Another issue involves implementing service projections efficiently. According to an embodiment of the present disclosure, this can be solved using the X.500 alias facility.
  • This embodiment of the present disclosure handles them by way of Directory aliases. This is a particularly efficient way to implement them. It guarantees consistency of the projection with the base service, because the base service is accessed directly through the alias. It also guarantees that the projection will vanish the moment the base service is deleted, thus ensuring consistency.
  • a keyed reference that represents an element of a category bag for a Business Entity called Williams Auditing Services might reference a TModel with a key of 12345678-1234-1234-123-1234567890ab (UDDI v2).
  • the order of the keyed references in a category bag is unimportant, but the keyed reference requires a key to function as a naming attribute of the object.
  • UUID key for this object, something like 87654321-4321-4321-4321-ba0123456789, and use that as the naming attribute in the Directory for this object.
  • Another issue is that data may be organized into domains if X.500 distribution is desired. This is resolved according to an embodiment of the present disclosure by creating a repository layer above users so each repository can be placed on a different server.
  • the UDDI Standard does not allow for the name space to be distributed. This means that multiple UDDI registries can co-operate with each other by replication, or by transparently having the backend data store managing the distributed name spaces.
  • Distributed name spaces can be facilitated by each repository having a naming pre-fix.
  • This pre-fix is a set of nodes that define a Domain. These nodes can be considered a repository layer above each UDDI registry. These nodes are placed above the user level.
  • FIG. 11 illustrates an example of such a node, called “Domain” 110 .
  • Domain 110 is the Directory pre-fix and may include one or more nodes up to the root. Below the Domain 110 , this, example illustrates the arrangement of a number of users 112 , 113 and 114 , for example.
  • the number of Users arranged under a Domain 110 may vary according to the particular configuration and/or use of the present system. There may also be a number of domains arranged depending on the particular configuration and/or use of the present system. In the example below they are referred to as repository objects, suggesting that they represent separate physical repositories. Of course, this may not necessarily be the case, depending on the configuration and/or use of the present system.
  • Distribution is an important concept in large-scale Directory deployment, as it allows for data to be shared by multiple nodes without the massive bandwidth overhead and synchronization problems of replication.
  • ‘eTrust’ UDDI supports distribution using the capabilities of the underlying eTrust Directory server, and in order for this to work the schema has been structured accordingly, with allowance for a virtual ‘Domain’ node(s) at the top of the tree hierarchy and unique Node identifiers or names at the top of each Node sub-tree (see UDDI schema description below).
  • an eTrust UDDI server can be made ‘distribution-aware’ through configuration.
  • Two separate Directory prefixes can be specified—one for searching and reading, and another for Adding entries.
  • the underlying eTrust Directory server agents are configured for distribution as per the eTrust Directory Admin Guide.
  • Each separate eTrust UDDI node is configured with a unique Node name.
  • the Search/Read prefix for each node is set to the ‘World’ or ‘Corporation’ node name.
  • the Add prefix for each node is set to the unique name of that Node.
  • each Node adds entries to its own Directory repository, but searches for entries across all Nodes via the distribution features of the X500 Directory.
  • An example of a repository object might be:
  • Another issue involves organizing the data which is held about the user. This can be resolved by creating a user object to hold the data.
  • a user object can be, among other things, a storage point for user credentials, and an anchor point for publishing.
  • FIG. 10 illustrates an example of such an arrangement, called ‘User’ 101 .
  • this example illustrates the arrangement of other object(s), such as Business Entity object(s) 102 , Business Service object(s) 103 and Binding Template object(s) 104 .
  • the number of Business Entity object(s) arranged under a user 101 may vary according to the particular configuration and/or use of the present system. There may also be a number of users arranged depending on the particular configuration and/or use of the present system.
  • An example of a user account object might be:
  • Another issue involves representing the data concerning a Business Entity (an object class described in the UDDI Standard), in an efficient way. This is resolved according to an embodiment of the present disclosure by representing unique fields as attributes of the object, and repeating elements as children.
  • the Business Entity object is a fundamental component of the UDDI Standard. Its content is defined by the standard, but many of its elements are repeating complex objects, which are,not supported by X.500 schema. Such elements are represented by a hierarchical arrangement.
  • the only required element in a Business Entity is the business key.
  • Optional elements include an authorized name, an operator, and a user key (this last will be present in a Business Entity published by a normal user).
  • the possible child objects of a Business Entity are: Name (an object containing the name string and language code, keyed for ordering); Description (an object containing the description string and language code, keyed for ordering); Contact (a complex object—described later below); Discovery URL (an object containing the URL string and use-type, keyed); Keyed References which are marked as category or identifier information through choice of object class; and Business Services (described below)
  • An example of a Business Entity object might be:
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in a Business Entity.
  • the multi-valued elements For child 152 Language en Name CA For child 153 Language IN Name CATS
  • [0232] are represented as children 152 , 153 of the Business Entity 151 . There may be none or more children.
  • Another issue to be resolved is representing the data concerning a Business Service (an object class described in the UDDI Standard), in an efficient way.
  • the Business Service can be implemented in at least two ways. A first is that the Business Service represents a single conceptual service provided by the Business Entity, available through one or more access routes, each of which was represented by a Binding Template. A second is that the Business Service is a grouping mechanism for services, with the breakdown into individual services taking place at the Binding Template level. In either case, the data fields are defined in the UDDI specification.
  • the elements of a Business Service are the business and service keys.
  • the business key specifies the Business Entity which owns the service. This is not necessarily the Business Entity under which it is discovered. A single service can be found under several business entities, by way of service projections.
  • Binding Templates (see below); Name (an object containing a name string and a language code, keyed for ordering); Description (an object containing the description string and language code, keyed for ordering); and Keyed References marked as category information.
  • a Business Service object might be:
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in a Business Entity
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in a Business Service.
  • the Business Entity 151 of FIG. 15 is equally applicable to a Business Service, with the multi-valued elements of the Business Service represented as children 152 , 153 of, the Business Service 151 . There may be none or more children.
  • the Binding Template represents a way in which a particular service may be accessed.
  • the only required elements of a Binding Template are its key and the key of the service to which it applies.
  • Optional elements may include an access point or hosting redirector (the object should have exactly one of these). If an access point is present, then the access point type should also be present.
  • Binding Template The possible child objects of a Binding Template are: TModel Instance Info (see below); and Description (an object containing the description string and language code, keyed for ordering)
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in a Business Entity
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in a Binding Template.
  • the Business Entity 151 of FIG. 15 is equally applicable to a Binding Template, with the multi-valued elements of the Binding Template represented as children 152 , 153 of the Binding Template 151 . There may be none or more children.
  • TModel an object class described in the UDDI Standard
  • this can be resolved by representing unique fields as attributes of the object, and repeating elements as children.
  • a TModel represents an idea. That idea might be, for example, a categorization system, requiring the, specification of values which may be validated. Or it may be a specification of a data communication protocol. TModels are a flexible and powerful concept, and central to the ability of UDDI to represent complex data in a way that can be accurately queried.
  • TModel object The only required elements of the TModel object are a TModel key and a name. These are represented as strings.
  • TModel object The optional elements of a TModel object are an authorised name, an overview URL (part of an Overview Doc object), a user key, and a hidden flag.
  • a hidden flag is a an element of the handling of the TModel.
  • the hidden flag is how the deleteTModel call is handled.
  • the hidden flag is added to the object. This means that the object will not be returned to a findTModel call, but will be accessible to getTModel calls.
  • set object-class uddiObjectClass:405 ⁇ # tmodel - a reference to an idea.
  • name euTModel subclass-of top must-contain euTModelKey, euTModelName may-contain euAuthorizedName, euOperator, euOverviewURL, euParentUserKey, euHidden ⁇ ;
  • the possible child objects are: Description (an object containing the description string and language code, keyed for ordering); Keyed References marked as category or identifier information; and Overview Doc Description (an object containing the description string and language code, keyed for ordering)
  • Description an object containing the description string and language code, keyed for ordering
  • Keyed References marked as category or identifier information Keyed References marked as category or identifier information
  • Overview Doc Description an object containing the description string and language code, keyed for ordering
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in a Business Entity
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in a Business Entity
  • the Business Entity 151 of FIG. 15 is equally applicable to a TModel, with the multi-valued elements of the TModel represented as children 152 , 153 of the TModel 151 . There may be none or more children.
  • this can be resolved by representing unique fields as attributes of the object, and using an auxiliary class for the required relationship keyed reference.
  • a Publisher Assertion is an object representing a relationship between two business entities.
  • the required elements of a Publisher Assertion are its key, the to and from business and user keys, the status, and the relationship.
  • the relationship is specified as a keyed reference, and stored as an auxiliary class to the Publisher Assertion entry.
  • the status is stored as a string, but draws its possible values from the Completion Status object. All the keys are represented as strings.
  • Keyed references are used in several places within the UDDI data model. They include a TModel key, a key name, and a key value.
  • Two uses of keyed references are category bags and identifier bags. These bags are collections of keyed references, and are important to searching. If these bags were represented by objects containing undifferentiated keyed references, then it would be potentially quite difficult to implement efficient searching. This is why several subclasses of keyed references have been implemented.
  • a category bag on a Business Entity is represented by one or more child objects of the class euBusinessEntityCategoryKeyedReference. This makes it easy to implement an efficient search for business entities with a specified keyed reference in their category bags.
  • the contact is a complex object, representing a wide variety of information. Much like the Business Entity, a contact holds a variety of compound repeating elements, necessitating the use of child object classes.
  • All the other possible elements are children of the contact object. These are: Address (parent of an ordered list of address-line objects, each with a key, use-type, sort code, and TModel key); Phone (a phone number plus use-type); E-mail (an e-mail address plus use-type); and Description (description string plus language code)
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in a Business Entity
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in a contact object.
  • the Business Entity 151 of FIG. 15 is equally applicable to a contact object, with the multi-valued elements 6 f the contact object represented as children 152 , 153 of the contact object 151 . There may be none or more children.
  • Another issue involves representing the names and descriptions (specified in the UDDI Standard) in an efficient manner, and allowing rapid searching for a specific type of name or description.
  • the system creates an abstract base class to, represent names, and another to represent descriptions, and subclass them for each of the desired types. Search for the attributes of the subclass when looking for a specific type of name (Business Entity name, for example), and for the abstract class when looking for any, name.
  • both name and description objects may occur multiple times for a single object.
  • Each instance is tagged with a language code.
  • UDDI version 3 there may be multiple instances with the same language code (this is not allowed in version 2).
  • the euBusinessEntityNameValue is the attribute that contains the case-sensitive version of the name; while the euBusinessEntityNameValueIC is the version marked as “ignore case”, and is thus case-insensitive.
  • the euNameKey field inherited from the abstract class, is used to control the ordering of the names, and provides a unique naming attribute.
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in a Business Entity
  • FIG. 15 illustrates an example of the introduction of a hierarchy into a sub-structure according to an embodiment of the present disclosure for the representation of a relatively complex object in an abstract class.
  • the Business Entity 151 of FIG. 15 is equally applicable to an abstract, with the multi-valued elements of the Binding Template represented as children 152 , 153 of the abstract class 151 . There may be none or more children.
  • Another issue relates to creating an efficient implementation of the requirement that a user be permitted to alter only those business entities under his/her control. According to an embodiment of the present disclosure, this can be achieved, by making the business entities controlled by a user's children of the user object. This makes security more easily implemented.
  • Another issue relates to creating an efficient implementation of Publisher Assertions, particularly with regard to the implementation of the findRelatedBusiness method. According to an embodiment of the present disclosure, this can be achieved by making the Publisher Assertions relating to a business children of the business object. This eliminates the need to search for that criterion.
  • TModels defined, by a user, children of the user object. This makes security easy to implement.
  • Another issue relates to implementing efficient searching of Publisher Assertions by relationship.
  • this can be achieved by making the relationship keyed reference an auxiliary class of the Publisher Assertion entry. If the keyed reference were a child (one implementation) it could not be searched with equal efficiency, and searches for the relationship could not be combined with searches on the content of the Publisher Assertion, such as the (critical) filter on status (only completed assertions are considered).
  • the X.500 schema system may not support the construction of object classes that include other object classes as data elements.
  • a keyed reference can not be a data element of a Publisher Assertion. It is possible to make the keyed reference a child of the Publisher Assertion, but this does not facilitate the construction of an efficient search that references the contents of the keyed reference.
  • the auxiliary object class is euPublisherAssertionKeyReference, and the last three attributes listed above are the data elements of that class.
  • a Directory such as eTrustTM Directory by Computer Associates may be utilized to implement an ideal enterprise UDDI registry platform eTrust Directory, which is a fully compliant LDAPv3, X.500 electronic Directory, can be used to underpin a UDDI Web Services implementation.
  • eTrust Directory
  • the ‘eTrust’ Directory allows the UDDI implementation to leverage the highly mature Directory solution that is well proven in large-scale, business-critical Directory service applications.
  • ‘eTrust’ Directory There are many unique features of ‘eTrust’ Directory that make it extremely attractive as a platform on which to build a UDDI registry. Some of these include: Security features including access control policies, roles, secure proxy, mutual authentication, distributed authentication, distributed SSL certificate subject verification and network address validation; Distribution and routing capabilities including parallel-distributed searches, load sharing, query streaming and shortest path routing; A multi-master replication scheme that combines the speed and efficiency of replay-based mechanisms (known as multi-write) with state-based recovery and reconciliation techniques; Availability features including hot swap of data-bases, network fail-over and Directory System Agent (DSA) fail over; Caching design that is considered fast; and Deployment features including dynamic configuration (of data types, schema rules, security, knowledge and so on), unlimited data size, general information integrity rules, extensive administrative controls and an interactive command console.
  • Security features including access control policies, roles, secure proxy, mutual authentication, distributed authentication, distributed SSL certificate subject verification and network address validation
  • Distribution and routing capabilities including parallel-distributed searches, load sharing, query
  • eTrust Directory provides a proven X.500 Directory solution. On top of this proven foundation can be implemented a UDDI Semantic Bridge to enable a fully Standards-compliant UDDI Registry. Because of the capabilities of the underlying Directory solution, the embodiments disclosed herein can deliver flexible security, distribution and manageability without requiring changes or extensions to the existing UDDI Standards.
  • UDDI data structures are primarily hierarchical, there may be a problem with cross relationship between different objects.
  • the present embodiment makes use of unique keys to address the problem of cross relationships. Essentially this has the effect of creating ‘relationship pointers’ rather like the Primary/Foreign key system in RDBMS technology to model relationships between data entities that exist between disjoint sub-tress within a hierarchical Directory system.
  • a Business Service projection is in effect an alternative name for a Business Service.
  • a Business Service Projection is a Business Service which appears to belong to Business A, but which is in fact owned and defined by Business B.
  • Business Service 51 a Service owned by Business A, appears also to belong to Business B. Any changes made by Business A to Business Service 51 will be reflected in the projected Service appearing under Business B. Similarly, if Business Service 51 is deleted from the registry, it will no longer appear under either Business A or Business B. Additionally, Business Entity B may not edit or change Business Service 51 . For editing and all other Publishing purposes, only Business A has access to Business Service 51 .
  • a Directory Alias system can be utilised to achieve this effect.
  • An alias of Business Service 51 is added to Business Entity B.
  • the alias is a special marker for the Directory server which says in effect ‘when someone looks at this alias, show them this other entry over here’.
  • the Directory server can be configured to show the projected Business Service twice when it is searched for, once under each parent. This can be useful when doing searches which need to resolve the parents of a Business Service.
  • TModels are used throughout UDDI for various purposes. They are categorization keys, search identifiers, (UDDI) relationship descriptors, and in this instance, technical specification ‘fingerprints’.
  • UDDI search identifiers
  • UDDI search identifiers
  • a TModel which is ‘attached’ to a BindingTemplate describes a technical specification to which that BindingTemplate (see FIG. 8) conforms. For example, a publisher might attach a TModel asserting that their Binding Template conforms to the SOAP 1.1 Standard.
  • a registry typically contains a finite set of TModels, many of which will be referenced by hundreds or even thousands of Binding Template entries. In some cases the registry will return the details of any ‘attached’ TModels with the details of the BindingTemplate.
  • a primary/foreign key system such as that utilized in relational database system can be suitably modified and applied. Every TModel stored in the registry has its own unique (primary) key.
  • a Binding Template references a TModel by adding a local (foreign) key which matches the unique key of the required TModel.
  • FIG. 7 illustrates an example of this. The server can then look up the TModel in question if TModel data is needed to be returned with the Binding Template.
  • FIG. 6 shows the relationships between a Binding template and TModel.
  • FIG. 7 shows how the TModel key creates the relationship between the two entities.
  • a Publisher Assertion is an important element of a UDDI repository. As noted above, it provides users with the ability to discover which business entities are related to a Business Entity of interest, and how they are related.
  • a Publisher Assertion has a more complex lifecycle than any other UDDI construct. It comes into being when the owner of a Business Entity makes an assertion about that business and its relationship to another Business Entity. The owner of the other Business Entity can request a status report and discover what assertions have been made about their businesses, or they may be notified out-of-band. Either way, the owner of the other Business Entity can choose to make a matching assertion about the relationship between the two business entities. At that moment the assertion is complete, and visible to users calling findRelatedBusinesses. One or both assertions can be modified or deleted, and the assertion becomes incomplete again, and should no longer be visible. Additionally, the deletion of either Business Entity should immediately remove the assertion.
  • the Publisher Assertion objects may be managed in a manner that maintains integrity of the assertion.
  • This embodiment of the present disclosure is predicated upon the assumption that the UDDI repository will be a “read-mostly” store, much as intended for an x.500 Directory. To this end, the design is optimized for better read performance, even at the cost of imposing a heavier burden on writes.
  • Publisher Assertion An object class called Publisher Assertion is designed to hold data beyond that required by the UDDI Standard, because of the desirability to optimize search performance.
  • the design introduces an operational attribute, which defines the Publisher Assertion status. The status of the assertion is determined at the time of writing to the Directory and in this way need not be determined each time a search is performed.
  • the present embodiment also uses Pointers in the form of User Keys.
  • a Publisher Assertion is written to the Directory the user keys for the “to” and “from” businesses are determined and written into the object. This simplifies the getAssertionStatusReport query, because all that is required to generate such a report is to search for a Publisher Assertion that contains the user key of the person who is generating the report.
  • Publisher Assertions One common use of Publisher Assertions is for the discovery of those businesses ‘related’ to a given business. To provide good performance for that query, the Publisher Assertion(s) relating to a business are placed as child node(s) of the business.
  • the status of each assertion is recorded in the assertion as an operational attribute. This makes it is possible to query just the Publisher Assertions with a status of complete located beneath the company of interest. This simplifies the search for findRelatedBusinesses because the search will recall only those assertions which are complete.
  • the operational attribute representing the status is managed by the UDDI implementation.
  • the UDDI implementation When a user publishes an assertion which has already been asserted by another asserted business, the UDDI implementation will update the status of the other assertion, which is in another sub-tree controlled by the User of the other business.
  • the access controls allow for this.
  • a single Publisher Assertion object is provided in it's own sub-tree.
  • the Publisher Assertion sub-tree can be provided under Repository object(s).
  • the assertion is initially stored in this case, it is given an incomplete status (for example, tokeyincomplete or fromkeyincomplete, depending on which side asserted it).
  • the Publisher Assertion is asserted by a complementary user, the status is changed to complete.
  • the Publisher Assertion is deleted by one of the two, then the status is changed back to incomplete.
  • the Publisher Assertion is deleted by both sides, then the Publisher Assertion object is deleted.
  • this results in just one copy of an assertion, and most of the maintenance work consists of doing a modify of the single attribute that holds the status of the assertion.
  • FIG. 12 illustrates schematically a hierarchy according to an embodiment of the present disclosure.
  • the schematic illustrates both alternatives, where the Publisher Assertion object is placed under Business Entity and/or Repository object.
  • FIG. 8 illustrates a method to request to add a Publisher Assertion.
  • Step S 80 a determination is made whether the request is valid. If not valid (No, Step S 80 ), the request fails (Step S 92 ). If the request is valid (Yes, Step S 80 ), a determination is made whether the request is from business ours (Step S 82 ). If it is not from business ours (No, Step S 82 ), a determination is made whether it is to business ours (Step S 84 ). If not to business ours (No, Step S 84 ), the request fails (Step S 92 ).
  • Step S 84 a determination is made whether the assertion is made by from owners (Step S 86 ). If the assertion is not made by from owner (No, Step S 86 ), an incomplete assertion is written (Step S 94 ). If the assertion is made by from owner (Yes, Step S 86 ), the complete assertion is written (Step S 96 ). Returning to Step S 82 ,m if it is determined that the request is from business ours (Yes, Step S 82 ), a determination is made whether it is to business ours (Step S 88 ). If not to business ours (No, Step S 88 ), a determination is made whether the assertion is made by to owner (Step S 90 ).
  • Step S 90 If the assertion is not made by the to owner (No, Step S 90 ), the incomplete assertion is written (Step S 94 ). If the result of Step S 88 is Yes (To business ours), or the result of Step S 90 is Yes (assertion made by To owner), the complete assertion is written (Step S 96 ).
  • the next issue deals with how to optimize construction of intermediate search result collections during search operations so that both Directory access and iterative in-memory operations are minimized, taking into account the Directory storage medium limitations.
  • Directory entries may be stored and returned in arbitrary order, and Directory results may be too large to sort.
  • an object-oriented in-memory data storage system coupled with a unique result sorting scheme which sorts intermediate results by Distinguished Name is provided. This allows one search to return many different types of objects—BusinessEntities, BusinessServices, etc—and still allows the system to easily construct the correct XML structure for returning the data to the user. It is to be noted that Web Service interactions are in XML.
  • the BusinessEntity retrieval code performs a Directory SubTree search based upon the unique key of the required Business Entity or business entities. This search will return the entries found, plus all sub-entries.
  • the Directory Standards do not guarantee any particular order to the returned entries—or even that sub-entries will immediately follow their parent entry.
  • the retrieval code then sorts the returned entries by Distinguished Name. This guarantees that sub-entries will be ordered after their parents, and that parent-child relationships can easily be distinguished.
  • a variety of sorting algorithms can be used. The sorting algorithm used should exhibit characteristics of high performance in the case where entries are partially sorted.
  • the sorted list is passed to the constructor method of a new BusinessEntity object.
  • This object may be, for example, an object-oriented programming construct designed to represent a UDDI Business Entity.
  • the BusinessEntity object contains the code to ‘construct itself’ from the data provided in the entry last. The code moves iteratively through the list, making decisions about each entry. It is understood that the first entry in the list should be the main entry for the Business Entity itself, and as soon as it finds another BusinessEntity it is understood that construction has finished—the ordering of the list guarantees this. As soon as it finds a BusinessService or other child entry, an object of the appropriate type is instantiated and the list is passed to the new object's constructor, along with a pointer telling it where to start in the list.
  • Each object contains essentially similar processing code to handle construction of itself and delegate construction of any child entries to appropriate child objects.
  • FIG. 9 illustrates, programming constructs (objects), including a representation of the sorted entry list.
  • a determination is made whether there are any further items in a list of items. If there are no additional items (No, Step S 100 ), the process exits (Step S 118 ). If there are additional items (Yes, Step S 100 ), the next item in the list is retrieved (Step S 102 ). A determination is then made whether the item is of this object type. If the item is of this object type (Yes, Step S 104 ), the object attributes are set based on the item (Step S 106 ) and the process returns to Step S 100 .
  • Step S 104 a determination is made whether an item of this object type has been processed yet (Step S 108 ). If the item of this object type has not yet been processed (No, Step S 108 ), the process returns to Step S 100 . If an item of this object type has been processed (Yes, Step S 108 ), a determination is made whether the item is an intrinsic component of this object (e.g., Name, Description, etc.). If it is an intrinsic component (Yes, Step S 110 ), the item is added to the object attribute and extra processing may be performed (Step S 112 ) and the process returns to Step S 100 .
  • an intrinsic component of this object e.g., Name, Description, etc.
  • Step 110 a determination is made whether the item is a child object of this object (e.g., BusinessService if this is a BusinessEntity). If it is a child object (Yes, Step S 114 ), the system instantiates an object of the correct type, and passes the list of items to a constructor (Step S 116 ) and the process returns to Step S 100 . If it is not a child object (No, Step S 114 ), the process returns to Step S 100 .
  • a child object of this object e.g., BusinessService if this is a BusinessEntity
  • List 1 The Name entry highlighted in bold is a leaf of the BusinessEntity entry at the top of the list, and it would be useful if it appeared before the BusinessService entry and other branch-children of the BusinessEntity. However, it appears at the end of the list, which forces any processing code to search the entire list to ensure all direct children of the BusinessEntity have been processed. This may not be the most efficient.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Communication Control (AREA)
  • Meter Arrangements (AREA)
  • Telephonic Communication Services (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)
  • Aiming, Guidance, Guns With A Light Source, Armor, Camouflage, And Targets (AREA)
  • Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
  • Glass Compositions (AREA)
US10/648,595 2002-08-26 2003-08-25 Web services apparatus and methods Abandoned US20040215621A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/648,595 US20040215621A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US40639102P 2002-08-26 2002-08-26
US40620502P 2002-08-26 2002-08-26
US40620402P 2002-08-26 2002-08-26
US40639902P 2002-08-26 2002-08-26
US40631902P 2002-08-26 2002-08-26
US40632502P 2002-08-26 2002-08-26
US40632802P 2002-08-26 2002-08-26
US10/648,595 US20040215621A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods

Publications (1)

Publication Number Publication Date
US20040215621A1 true US20040215621A1 (en) 2004-10-28

Family

ID=31950968

Family Applications (7)

Application Number Title Priority Date Filing Date
US10/648,595 Abandoned US20040215621A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods
US10/648,143 Abandoned US20040215476A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods
US10/648,606 Abandoned US20040205104A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods
US10/648,145 Abandoned US20040205084A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods
US10/648,140 Abandoned US20040205086A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods
US10/648,580 Expired - Fee Related US7861251B2 (en) 2002-08-26 2003-08-25 Generating keys for objects in a web services arrangement
US10/932,696 Abandoned US20060020585A1 (en) 2002-08-26 2004-09-02 Web services apparatus and methods

Family Applications After (6)

Application Number Title Priority Date Filing Date
US10/648,143 Abandoned US20040215476A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods
US10/648,606 Abandoned US20040205104A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods
US10/648,145 Abandoned US20040205084A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods
US10/648,140 Abandoned US20040205086A1 (en) 2002-08-26 2003-08-25 Web services apparatus and methods
US10/648,580 Expired - Fee Related US7861251B2 (en) 2002-08-26 2003-08-25 Generating keys for objects in a web services arrangement
US10/932,696 Abandoned US20060020585A1 (en) 2002-08-26 2004-09-02 Web services apparatus and methods

Country Status (10)

Country Link
US (7) US20040215621A1 (pt)
EP (3) EP1532523A2 (pt)
JP (7) JP2006516336A (pt)
KR (7) KR20050032618A (pt)
CN (6) CN1678990A (pt)
AU (7) AU2003268188A1 (pt)
BR (7) BR0313775A (pt)
CA (7) CA2495807A1 (pt)
IL (4) IL166717A0 (pt)
WO (7) WO2004019238A2 (pt)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139082A1 (en) * 2002-12-30 2004-07-15 Knauerhase Robert C. Method for minimizing a set of UDDI change records
US20040205104A1 (en) * 2002-08-26 2004-10-14 Richard Harvey Web services apparatus and methods
US20050267952A1 (en) * 2004-03-18 2005-12-01 Valaran Corporation System and method for interfacing distributed systems with different frameworks
US20060036405A1 (en) * 2004-08-10 2006-02-16 Byrd Stephen A Apparatus, system, and method for analyzing the association of a resource to a business process
US20060047805A1 (en) * 2004-08-10 2006-03-02 Byrd Stephen A Apparatus, system, and method for gathering trace data indicative of resource activity
US20060161600A1 (en) * 2005-01-18 2006-07-20 Siemens Aktiengesellschaft Elective logging
US20070282879A1 (en) * 2006-06-01 2007-12-06 Marko Degenkolb System and method for searching web services
US7533128B1 (en) * 2005-10-18 2009-05-12 Real-Time Innovations, Inc. Data distribution service and database management systems bridge
US20100257215A1 (en) * 2003-05-09 2010-10-07 Apple Inc. Configurable offline data store

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577618B2 (en) * 2000-10-10 2009-08-18 Stamps.Com Inc. Generic value bearing item labels
GB0314908D0 (en) * 2003-06-26 2003-07-30 Ibm User access to a registry of business entity definitions
US20050131835A1 (en) * 2003-12-12 2005-06-16 Howell James A.Jr. System for pre-trusting of applications for firewall implementations
US7822778B1 (en) * 2003-12-22 2010-10-26 Sap Ag Extended UDDI with item registry functionality
US7487513B1 (en) * 2003-12-30 2009-02-03 Sap Ag Web service archive
WO2005114400A1 (en) * 2004-05-21 2005-12-01 Computer Associates Think, Inc. Method and apparatus for supporting multiple versions of a web services protocol
DE602005012088D1 (de) 2004-05-21 2009-02-12 Computer Ass Think Inc Verfahren und vorrichtung zur unterstützung mehrer
US7620934B2 (en) * 2004-05-28 2009-11-17 Sap Ag System and method for a Web service definition
US7617480B2 (en) * 2004-05-28 2009-11-10 Sap Ag System and method for a Web service virtual interface
GB2416872A (en) * 2004-07-30 2006-02-08 Canon Kk System for managing tasks on a network by using a service discover, a task manager and a service publisher
US20060037081A1 (en) * 2004-08-13 2006-02-16 Pelco Method of and apparatus for controlling surveillance system resources
US7593916B2 (en) * 2004-08-19 2009-09-22 Sap Ag Managing data administration
JP4487725B2 (ja) * 2004-10-25 2010-06-23 株式会社島津製作所 分析データ処理システム及び分析装置
US7542572B2 (en) * 2004-12-01 2009-06-02 Cisco Technology, Inc. Method for securely and automatically configuring access points
US7702661B2 (en) 2005-03-02 2010-04-20 Computer Associates Think, Inc. Managing checked out files in a source control repository
US7720904B2 (en) * 2005-05-27 2010-05-18 Microsoft Corporation Entity projection
US20070005658A1 (en) * 2005-07-02 2007-01-04 International Business Machines Corporation System, service, and method for automatically discovering universal data objects
US20070061294A1 (en) * 2005-09-09 2007-03-15 Microsoft Corporation Source code file search
US20070067384A1 (en) * 2005-09-21 2007-03-22 Angelov Dimitar V System and method for web services configuration creation and validation
US8078671B2 (en) 2005-09-21 2011-12-13 Sap Ag System and method for dynamic web services descriptor generation using templates
US8117443B1 (en) * 2005-10-05 2012-02-14 Oracle America, Inc. Method and apparatus for generating location independent unique identifiers
US7930684B2 (en) * 2005-10-12 2011-04-19 Symantec Operating Corporation System and method for logging and replaying asynchronous events
US8224853B2 (en) * 2005-11-02 2012-07-17 Sourcecode Technologies Holdings, Inc. Methods and apparatus for updating a plurality of data fields in an electronic form
US8239226B2 (en) * 2005-11-02 2012-08-07 Sourcecode Technologies Holdings, Inc. Methods and apparatus for combining properties and methods from a plurality of different data sources
EP1955201A4 (en) * 2005-11-02 2011-04-20 Sourcecode Technology Holding Inc METHODS AND APPARATUS FOR PROCESSING BUSINESS OBJECTS, ELECTRONIC FORMS, AND WORKSTREAM
US20070143305A1 (en) * 2005-11-02 2007-06-21 Sourcecode Technology Holding, Inc. Methods and apparatus for storing functions associated with an electronic form
US8024425B2 (en) * 2005-12-30 2011-09-20 Sap Ag Web services deployment
US8010695B2 (en) 2005-12-30 2011-08-30 Sap Ag Web services archive
US7814060B2 (en) * 2005-12-30 2010-10-12 Sap Ag Apparatus and method for web service client deployment
US8996482B1 (en) 2006-02-10 2015-03-31 Amazon Technologies, Inc. Distributed system and method for replicated storage of structured data records
US8447829B1 (en) 2006-02-10 2013-05-21 Amazon Technologies, Inc. System and method for controlling access to web services resources
US9146789B2 (en) 2006-03-21 2015-09-29 Oracle America, Inc. Method and apparatus for generating and using location-independent distributed object references
US20070276948A1 (en) * 2006-05-24 2007-11-29 Sap Ag System and method for automated configuration and deployment of applications
US7752193B2 (en) * 2006-09-08 2010-07-06 Guidance Software, Inc. System and method for building and retrieving a full text index
US7734611B2 (en) * 2006-11-01 2010-06-08 Red Hat, Inc. Dynamic views based on LDAP
US7647307B2 (en) * 2006-11-01 2010-01-12 Red Hat, Inc. Reverse attribute pointers
US7734662B2 (en) * 2006-11-01 2010-06-08 Red Hat, Inc. Extension of organizational chart dynamic group lists based on LDAP lookups
US7730084B2 (en) * 2006-11-01 2010-06-01 Red Hat, Inc. Nested queries with index
US8073842B2 (en) * 2006-11-01 2011-12-06 Red Hat, Inc. Deriving cross-organizational relationships from LDAP source data
US7606818B2 (en) * 2006-12-20 2009-10-20 Sap Ag Method and apparatus for aggregating change subscriptions and change notifications
JP2008163871A (ja) 2006-12-28 2008-07-17 Toyota Motor Corp 内燃機関の排気ガス浄化装置
WO2008094540A1 (en) * 2007-01-29 2008-08-07 Mashery, Inc. Methods for analyzing limiting, and enhancing access to an internet api, web service, and data
US20080270911A1 (en) * 2007-04-24 2008-10-30 Nehal Dantwala System and method to develop a custom application for a multi-function peripheral (mfp)
AU2008101325A4 (en) * 2007-05-08 2014-01-30 Sourcecode Technology Holding, Inc. Methods and apparatus for exposing workflow process definitions as business objects
US8391487B2 (en) 2007-07-24 2013-03-05 Cisco Technology, Inc. Secure remote configuration of device capabilities
US20090138304A1 (en) * 2007-09-11 2009-05-28 Asaf Aharoni Data Mining
US8683033B2 (en) * 2007-09-17 2014-03-25 International Business Machines Corporation Apparatus, system, and method for server failover to standby server during broadcast storm or denial-of-service attack
US8302017B2 (en) * 2008-03-05 2012-10-30 Microsoft Corporation Definition for service interface
EP2200249A1 (en) * 2008-12-17 2010-06-23 Abb Research Ltd. Network analysis
US20100205014A1 (en) * 2009-02-06 2010-08-12 Cary Sholer Method and system for providing response services
KR20100090596A (ko) * 2009-02-06 2010-08-16 (주)아이콘온 애플리케이션 공유 컨텐츠 제공 시스템
US8635331B2 (en) * 2009-08-05 2014-01-21 Microsoft Corporation Distributed workflow framework
US8560556B2 (en) * 2010-01-12 2013-10-15 International Business Machines Corporation Dynamic aliasing of multi-valued binary attributes in directories
US8260782B2 (en) * 2010-07-13 2012-09-04 International Business Machines Corporation Data element categorization in a service-oriented architecture
CN101916202B (zh) * 2010-08-09 2014-04-09 中兴通讯股份有限公司 一种信令展示方法及系统
US8799260B2 (en) * 2010-12-17 2014-08-05 Yahoo! Inc. Method and system for generating web pages for topics unassociated with a dominant URL
US9465836B2 (en) * 2010-12-23 2016-10-11 Sap Se Enhanced business object retrieval
US8538990B2 (en) * 2011-03-04 2013-09-17 International Business Machines Corporation Scalable mechanism for resolving cell-level access from sets of dimensional access rules
US8592847B2 (en) 2011-04-15 2013-11-26 Epistar Corporation Light-emitting device
US10127578B2 (en) * 2011-05-09 2018-11-13 Capital One Services, Llc Method and system for matching purchase transaction history to real-time location information
CN102325153B (zh) * 2011-07-12 2014-08-06 北京新媒传信科技有限公司 一种服务开发方法和系统
CN102622677A (zh) * 2012-03-21 2012-08-01 深圳市全民安全生产研究院有限公司 一种企业安全生产管理方法
CN102710747A (zh) * 2012-05-01 2012-10-03 张榕芳 实现屏幕信息的系统、方法及终端设备
US9037678B2 (en) * 2012-05-14 2015-05-19 Sap Se Distribution of messages in system landscapes
US9168233B2 (en) 2012-06-11 2015-10-27 The Cleveland Clinic Foundation Treatment and prevention of cardiovascular disease and thrombosis
US9177005B2 (en) 2013-01-30 2015-11-03 Oracle International Corporation Resolving in-memory foreign keys in transmitted data packets from single-parent hierarchies
JP5879279B2 (ja) * 2013-01-30 2016-03-08 エヌ・ティ・ティ・コムウェア株式会社 データ関連情報管理装置、データ通信システム、データ関連情報管理方法およびプログラム
CN106855794A (zh) * 2015-12-08 2017-06-16 平安科技(深圳)有限公司 应用于ios操作系统的多对象间的数据共享方法及系统
EP3542266B1 (en) * 2016-12-22 2023-06-28 Nicira, Inc. Collecting and processing context attributes on a host
US11614925B1 (en) * 2021-09-27 2023-03-28 Sap Se Data model infrastructure as a service
SG10202110957PA (en) * 2021-10-01 2021-11-29 Oneenterprise Holdings Pte Ltd A module and method for integrating data across disparate business applications

Citations (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003039A (en) * 1997-06-27 1999-12-14 Platinum Technology, Inc. Data repository with user accessible and modifiable reuse criteria
US6236988B1 (en) * 1997-09-05 2001-05-22 International Business Machines Corp. Data retrieval system
US20010052113A1 (en) * 1998-03-09 2001-12-13 John Hearne Data processing system and development method
US20020019827A1 (en) * 2000-06-05 2002-02-14 Shiman Leon G. Method and apparatus for managing documents in a centralized document repository system
US6366954B1 (en) * 1998-05-14 2002-04-02 Sun Microsystems, Inc. Method and data format for exchanging data between a Java system database entry and an LDAP directory service
US20020073396A1 (en) * 2000-06-03 2002-06-13 John Crupi Method and apparatus for developing enterprise applications using design patterns
US20020161745A1 (en) * 1998-03-27 2002-10-31 Call Charles Gainor Methods and apparatus for using the internet domain name system to disseminate product information
US20020174117A1 (en) * 2001-05-15 2002-11-21 Petri Nykanen Mobile web services
US20030005181A1 (en) * 2001-07-02 2003-01-02 David Bau Annotation based development platform for asynchronous web services
US20030023957A1 (en) * 2001-07-02 2003-01-30 David Bau Annotation based development platform for stateful web services
US6554183B1 (en) * 1999-06-30 2003-04-29 Ge Capital Fleet Services Automated systems and methods for authorization and settlement of fleet maintenance and repair transactions
US20030110242A1 (en) * 2001-12-11 2003-06-12 Brown Kyle G. Method and apparatus for dynamic reconfiguration of web services infrastructure
US20030126136A1 (en) * 2001-06-22 2003-07-03 Nosa Omoigui System and method for knowledge retrieval, management, delivery and presentation
US20030135584A1 (en) * 1999-06-10 2003-07-17 Bow Street Software, Inc. Method and apparatus creating network services
US20030187839A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation Method and structure for federated web service discovery search over multiple registries with result aggregation
US20030236956A1 (en) * 2002-06-20 2003-12-25 International Business Machines Corpoaration File system backup in a logical volume management data storage environment
US20040002955A1 (en) * 2002-06-28 2004-01-01 Sun Microsystems, Inc. Information model mapping with shared directory tree representations
US20040030771A1 (en) * 2002-08-07 2004-02-12 John Strassner System and method for enabling directory-enabled networking
US20040039738A1 (en) * 2002-08-21 2004-02-26 International Business Corporation Implementing geographical taxonomy within network-accesible service registries using spatial extensions
US20040059722A1 (en) * 2002-09-24 2004-03-25 Yeh Danny Lo-Tien Method and apparatus for discovery of dynamic network services
US20040064411A1 (en) * 2002-09-30 2004-04-01 International Business Machines Corporation Web service interfaces used in providing a billing service
US20040213409A1 (en) * 2001-05-15 2004-10-28 Juhani Murto Service discovery access to user location
US6834286B2 (en) * 1998-12-07 2004-12-21 Oracle International Corporation Method and system for representing and accessing object-oriented data in a relational database system
US20050021348A1 (en) * 2002-07-19 2005-01-27 Claribel Chan Business solution management (BSM)
US20050149394A1 (en) * 1999-06-23 2005-07-07 Richard Postrel Method and system for issuing, aggregating and redeeming merchant loyalty points with an issuing bank
US20050182781A1 (en) * 2002-06-14 2005-08-18 Bertrand Bouvet System for consulting and/or updating dns servers and/or ldap directories
US20050209984A1 (en) * 2004-03-17 2005-09-22 International Business Machines Corporation Method and apparatus for alternative registry lookup of web services
US20050262227A1 (en) * 2002-04-29 2005-11-24 Rainer Heller Directory service in an automation system
US6981265B1 (en) * 1997-12-04 2005-12-27 Hewlett-Packard Development Company, L.P. Object gateway for securely forwarding messages between networks
US6985905B2 (en) * 2000-03-03 2006-01-10 Radiant Logic Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
US20060059107A1 (en) * 2000-03-30 2006-03-16 Kevin Elmore System and method for establishing eletronic business systems for supporting communications servuces commerce
US7016893B2 (en) * 2001-05-29 2006-03-21 Sun Microsystems, Inc. Method and system for sharing entry attributes in a directory server using class of service
US7047259B1 (en) * 2002-06-25 2006-05-16 Oracle International Corporation Rich cross object navigation in mobile applications
US20060143229A1 (en) * 2004-12-28 2006-06-29 International Business Machines Corporation Method and system for dynamic creation of service flows
US7114154B1 (en) * 1999-07-26 2006-09-26 Mark Ira Crohn Automating time sequenced tasks
US7136835B1 (en) * 1998-03-25 2006-11-14 Orbis Patents Ltd. Credit card system and method
US20080109897A1 (en) * 2001-07-12 2008-05-08 Moran Anthony S Grouped Access Control List Actions

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2315343A (en) * 1996-06-25 1998-01-28 Texas Instruments Inc Non-model-based application transitioning
US6272537B1 (en) * 1997-11-17 2001-08-07 Fujitsu Limited Method for building element manager for a computer network element using a visual element manager builder process
US6202066B1 (en) 1997-11-19 2001-03-13 The United States Of America As Represented By The Secretary Of Commerce Implementation of role/group permission association using object access type
US6085188A (en) * 1998-03-30 2000-07-04 International Business Machines Corporation Method of hierarchical LDAP searching with relational tables
US6403458B2 (en) * 1998-04-03 2002-06-11 Micron Technology, Inc. Method for fabricating local interconnect structure for integrated circuit devices, source structures
US6571232B1 (en) 1999-11-01 2003-05-27 Sun Microsystems, Inc. System and method for browsing database schema information
WO2001042966A2 (en) * 1999-12-13 2001-06-14 Novient, Inc. Attribute and application synchronization in distributed network environment
US7072896B2 (en) * 2000-02-16 2006-07-04 Verizon Laboratories Inc. System and method for automatic loading of an XML document defined by a document-type definition into a relational database including the generation of a relational schema therefor
US6947951B1 (en) 2000-04-07 2005-09-20 Gill Harjinder S System for modeling a business
WO2002003245A1 (fr) * 2000-07-04 2002-01-10 Otoobe Procede de stockage d'objets informationnels au format xml dans une base de donnees relationnelle
US20040204958A1 (en) * 2000-08-30 2004-10-14 Microsoft Corporation Electronic registration manager for business directory information
US7200869B1 (en) * 2000-09-15 2007-04-03 Microsoft Corporation System and method for protecting domain data against unauthorized modification
US20020062259A1 (en) * 2000-09-26 2002-05-23 Katz James S. Server-side system responsive to peripherals
US6752313B1 (en) * 2000-11-14 2004-06-22 Online Data Corp. Method and system for establishing a credit card transaction processing merchant account
US20020087665A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent Method and system for integrated resource management
US6959303B2 (en) * 2001-01-17 2005-10-25 Arcot Systems, Inc. Efficient searching techniques
US20030220880A1 (en) * 2002-01-17 2003-11-27 Contentguard Holdings, Inc. Networked services licensing system and method
US7016976B2 (en) * 2001-05-31 2006-03-21 Sun Microsystems, Inc. UniqueID-based addressing in a directory server
US7054858B2 (en) * 2001-08-01 2006-05-30 Oic Acquisition Corporation System and method for retrieval of objects from object to relational mappings
US7296061B2 (en) 2001-11-21 2007-11-13 Blue Titan Software, Inc. Distributed web services network architecture
US7035857B2 (en) * 2002-01-04 2006-04-25 Hewlett-Packard Development Company, L.P. Method and apparatus for increasing the functionality and ease of use of lights out management in a directory enabled environment
US7177929B2 (en) * 2002-03-27 2007-02-13 International Business Machines Corporation Persisting node reputations in transient network communities
US7152056B2 (en) * 2002-04-19 2006-12-19 Dow Jones Reuters Business Interactive, Llc Apparatus and method for generating data useful in indexing and searching
IL166717A0 (en) * 2002-08-26 2006-01-15 Computer Ass Think Inc Web services apparatus and methods
KR100750110B1 (ko) * 2003-04-22 2007-08-17 삼성전자주식회사 4×4인트라 휘도 예측 모드 결정방법 및 장치
US7269061B2 (en) * 2005-10-17 2007-09-11 Northern Lights Semiconductor Corp. Magnetic memory

Patent Citations (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003039A (en) * 1997-06-27 1999-12-14 Platinum Technology, Inc. Data repository with user accessible and modifiable reuse criteria
US6236988B1 (en) * 1997-09-05 2001-05-22 International Business Machines Corp. Data retrieval system
US6981265B1 (en) * 1997-12-04 2005-12-27 Hewlett-Packard Development Company, L.P. Object gateway for securely forwarding messages between networks
US20010052113A1 (en) * 1998-03-09 2001-12-13 John Hearne Data processing system and development method
US7136835B1 (en) * 1998-03-25 2006-11-14 Orbis Patents Ltd. Credit card system and method
US20020161745A1 (en) * 1998-03-27 2002-10-31 Call Charles Gainor Methods and apparatus for using the internet domain name system to disseminate product information
US6366954B1 (en) * 1998-05-14 2002-04-02 Sun Microsystems, Inc. Method and data format for exchanging data between a Java system database entry and an LDAP directory service
US6834286B2 (en) * 1998-12-07 2004-12-21 Oracle International Corporation Method and system for representing and accessing object-oriented data in a relational database system
US20030135584A1 (en) * 1999-06-10 2003-07-17 Bow Street Software, Inc. Method and apparatus creating network services
US20050149394A1 (en) * 1999-06-23 2005-07-07 Richard Postrel Method and system for issuing, aggregating and redeeming merchant loyalty points with an issuing bank
US6554183B1 (en) * 1999-06-30 2003-04-29 Ge Capital Fleet Services Automated systems and methods for authorization and settlement of fleet maintenance and repair transactions
US7114154B1 (en) * 1999-07-26 2006-09-26 Mark Ira Crohn Automating time sequenced tasks
US6985905B2 (en) * 2000-03-03 2006-01-10 Radiant Logic Inc. System and method for providing access to databases via directories and other hierarchical structures and interfaces
US20060059107A1 (en) * 2000-03-30 2006-03-16 Kevin Elmore System and method for establishing eletronic business systems for supporting communications servuces commerce
US20020073396A1 (en) * 2000-06-03 2002-06-13 John Crupi Method and apparatus for developing enterprise applications using design patterns
US20020019827A1 (en) * 2000-06-05 2002-02-14 Shiman Leon G. Method and apparatus for managing documents in a centralized document repository system
US20020174117A1 (en) * 2001-05-15 2002-11-21 Petri Nykanen Mobile web services
US20040213409A1 (en) * 2001-05-15 2004-10-28 Juhani Murto Service discovery access to user location
US7016893B2 (en) * 2001-05-29 2006-03-21 Sun Microsystems, Inc. Method and system for sharing entry attributes in a directory server using class of service
US20030126136A1 (en) * 2001-06-22 2003-07-03 Nosa Omoigui System and method for knowledge retrieval, management, delivery and presentation
US20030023957A1 (en) * 2001-07-02 2003-01-30 David Bau Annotation based development platform for stateful web services
US20030005181A1 (en) * 2001-07-02 2003-01-02 David Bau Annotation based development platform for asynchronous web services
US20080109897A1 (en) * 2001-07-12 2008-05-08 Moran Anthony S Grouped Access Control List Actions
US20030110242A1 (en) * 2001-12-11 2003-06-12 Brown Kyle G. Method and apparatus for dynamic reconfiguration of web services infrastructure
US20030187839A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation Method and structure for federated web service discovery search over multiple registries with result aggregation
US20050262227A1 (en) * 2002-04-29 2005-11-24 Rainer Heller Directory service in an automation system
US20050182781A1 (en) * 2002-06-14 2005-08-18 Bertrand Bouvet System for consulting and/or updating dns servers and/or ldap directories
US20030236956A1 (en) * 2002-06-20 2003-12-25 International Business Machines Corpoaration File system backup in a logical volume management data storage environment
US7047259B1 (en) * 2002-06-25 2006-05-16 Oracle International Corporation Rich cross object navigation in mobile applications
US20040002955A1 (en) * 2002-06-28 2004-01-01 Sun Microsystems, Inc. Information model mapping with shared directory tree representations
US20050021348A1 (en) * 2002-07-19 2005-01-27 Claribel Chan Business solution management (BSM)
US20040030771A1 (en) * 2002-08-07 2004-02-12 John Strassner System and method for enabling directory-enabled networking
US6976027B2 (en) * 2002-08-21 2005-12-13 International Business Machines Corporation Implementing geographical taxonomy within network-accessible service registries using spatial extensions
US20040039738A1 (en) * 2002-08-21 2004-02-26 International Business Corporation Implementing geographical taxonomy within network-accesible service registries using spatial extensions
US20040059722A1 (en) * 2002-09-24 2004-03-25 Yeh Danny Lo-Tien Method and apparatus for discovery of dynamic network services
US20040064411A1 (en) * 2002-09-30 2004-04-01 International Business Machines Corporation Web service interfaces used in providing a billing service
US20050209984A1 (en) * 2004-03-17 2005-09-22 International Business Machines Corporation Method and apparatus for alternative registry lookup of web services
US20060143229A1 (en) * 2004-12-28 2006-06-29 International Business Machines Corporation Method and system for dynamic creation of service flows

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205104A1 (en) * 2002-08-26 2004-10-14 Richard Harvey Web services apparatus and methods
US20040205084A1 (en) * 2002-08-26 2004-10-14 Richard Harvey Web services apparatus and methods
US20040215476A1 (en) * 2002-08-26 2004-10-28 Computer Associates Think, Inc. Web services apparatus and methods
US20040139082A1 (en) * 2002-12-30 2004-07-15 Knauerhase Robert C. Method for minimizing a set of UDDI change records
US20100257215A1 (en) * 2003-05-09 2010-10-07 Apple Inc. Configurable offline data store
US8352520B2 (en) * 2003-05-09 2013-01-08 Apple Inc. Configurable offline data store
US20050267952A1 (en) * 2004-03-18 2005-12-01 Valaran Corporation System and method for interfacing distributed systems with different frameworks
US8533737B2 (en) * 2004-03-18 2013-09-10 Global Infotek, Inc. System and method for interfacing distributed systems with different frameworks
US7630955B2 (en) * 2004-08-10 2009-12-08 International Business Machines Corporation Apparatus, system, and method for analyzing the association of a resource to a business process
US7661135B2 (en) 2004-08-10 2010-02-09 International Business Machines Corporation Apparatus, system, and method for gathering trace data indicative of resource activity
US20060047805A1 (en) * 2004-08-10 2006-03-02 Byrd Stephen A Apparatus, system, and method for gathering trace data indicative of resource activity
US20060036405A1 (en) * 2004-08-10 2006-02-16 Byrd Stephen A Apparatus, system, and method for analyzing the association of a resource to a business process
US20060161600A1 (en) * 2005-01-18 2006-07-20 Siemens Aktiengesellschaft Elective logging
US7533128B1 (en) * 2005-10-18 2009-05-12 Real-Time Innovations, Inc. Data distribution service and database management systems bridge
US20070282879A1 (en) * 2006-06-01 2007-12-06 Marko Degenkolb System and method for searching web services
US7962470B2 (en) * 2006-06-01 2011-06-14 Sap Ag System and method for searching web services

Also Published As

Publication number Publication date
AU2003265651A1 (en) 2004-03-11
CN1678990A (zh) 2005-10-05
JP2006516336A (ja) 2006-06-29
EP1532524A2 (en) 2005-05-25
IL166602A0 (en) 2006-01-15
CA2496805A1 (en) 2004-03-04
IL166671A0 (en) 2006-01-15
WO2004019236A2 (en) 2004-03-04
CN1678993A (zh) 2005-10-05
JP2005536806A (ja) 2005-12-02
KR20050035287A (ko) 2005-04-15
WO2004019231A2 (en) 2004-03-04
US20040215476A1 (en) 2004-10-28
BR0313869A (pt) 2007-09-11
BR0313868A (pt) 2007-09-11
WO2004019234A9 (en) 2004-05-06
US20040205084A1 (en) 2004-10-14
CA2495806A1 (en) 2004-03-04
KR20050032619A (ko) 2005-04-07
CA2497956A1 (en) 2004-03-04
WO2004019236A8 (en) 2004-08-26
AU2003265652A1 (en) 2004-03-11
US20040205104A1 (en) 2004-10-14
IL166597A0 (en) 2006-01-15
CN1678997A (zh) 2005-10-05
US20060020585A1 (en) 2006-01-26
AU2003265649A1 (en) 2004-03-11
AU2003270003A1 (en) 2004-03-11
CA2495803A1 (en) 2004-03-04
JP2005536805A (ja) 2005-12-02
KR20050032616A (ko) 2005-04-07
WO2004019233A9 (en) 2004-05-13
EP1535146A2 (en) 2005-06-01
KR20050042168A (ko) 2005-05-04
WO2004019233A8 (en) 2004-09-23
AU2003268188A1 (en) 2004-03-11
BR0313853A (pt) 2007-09-11
CA2495767A1 (en) 2004-03-04
CN1679026A (zh) 2005-10-05
WO2004019232A9 (en) 2004-05-13
BR0313855A (pt) 2007-09-11
AU2003265650A1 (en) 2004-03-11
WO2004019237A8 (en) 2004-09-16
CA2495741A1 (en) 2004-03-04
WO2004019231A9 (en) 2004-04-29
JP2006508422A (ja) 2006-03-09
BR0313879A (pt) 2007-09-11
CN1678991A (zh) 2005-10-05
WO2004019232A8 (en) 2004-09-23
KR20050032620A (ko) 2005-04-07
US20040205086A1 (en) 2004-10-14
WO2004019234A2 (en) 2004-03-04
WO2004019231A3 (en) 2005-02-03
WO2004019233A2 (en) 2004-03-04
WO2004019237A2 (en) 2004-03-04
AU2003265762A1 (en) 2004-03-11
EP1532523A2 (en) 2005-05-25
JP2006510956A (ja) 2006-03-30
WO2004019232A2 (en) 2004-03-04
BR0313775A (pt) 2007-08-14
JP2005536808A (ja) 2005-12-02
KR20050032618A (ko) 2005-04-07
WO2004019238A2 (en) 2004-03-04
BR0313870A (pt) 2005-07-19
CN1678992A (zh) 2005-10-05
US20040202330A1 (en) 2004-10-14
WO2004019234A8 (en) 2004-09-23
CA2495807A1 (en) 2004-03-04
JP2005539295A (ja) 2005-12-22
KR20050033077A (ko) 2005-04-08
US7861251B2 (en) 2010-12-28
IL166717A0 (en) 2006-01-15
WO2004019238A8 (en) 2004-08-19

Similar Documents

Publication Publication Date Title
US7861251B2 (en) Generating keys for objects in a web services arrangement

Legal Events

Date Code Title Description
AS Assignment

Owner name: COMPUTER ASSOCIATES THINK, INC., NEW YORK

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HARVEY, RICHARD H.;BENTLEY, TIMOTHY;REEL/FRAME:015485/0611

Effective date: 20040224

STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION