(12) United States Patent (10) Patent N0.2 US 7,844,612 B2 Colgrave Et Al
Total Page:16
File Type:pdf, Size:1020Kb
US007844612B2 (12) United States Patent (10) Patent N0.2 US 7,844,612 B2 Colgrave et al. (45) Date of Patent: *Nov. 30, 2010 (54) METHOD FOR PRUNING OBJECTS IN A (58) Field of Classi?cation Search ..................... .. None SERVICE REGISTRY AND REPOSITORY See application ?le for complete search history. (75) Inventors: John Colgrave, Eastleigh (GB); Alexis (56) References Clted Lee, Southampton (GB); Manfred U.S. PATENT DOCUMENTS Oevers, Tuebingen (DE); Andrew 5,504,885 A * 4/1996 Alashqur .................. .. 717/141 Rutherford, Southampton (GB); 2005/0097224 A1 * 5/2005 Chen et a1. .. 709/246 Samuel Jonathan Smith, Southampton 2007/0027905 A1 * 2/2007 Warren et a1. ......... .. 707/l03 R (GB) * cited by examiner (73) Assignee: International Business Machines P 1’ imary ExamineriUyen T~ Le Corporation, Armonk, NY (Us) (74)Allorney, Agent, or Firmileanine S. Ray-Yarletts, Esq.; Steven M. Greenberg, Esq.; Carey Rodriguez Greenberg & ( * ) Notice: Subject to any disclaimer, the term of this Paul, LLP patent is extended or adjusted under 35 U.S.C. 154(1)) by 398 days. (57) ABSTRACT Embodiments of the invention relate to a service registry and This Pawnt is Subject to a terminal dis- repository system, method and computerprogramproduct for Claimer- accessing objects in an object repository. There is provided a method of managing an object database for objects that (21) APP1~ NO-3 11/ 844,299 includes receiving an object query; querying the object data base using the object query; receiving a hierarchical collec (22) Filed? Allg- 23: 2007 tion of objects including a root object; and returning only _ _ _ those objects that are Within a speci?c depth of the root object (65) Pnor Pubhcatlon Data and that do not represent user-de?ned relationships. The Us 2009/0055410 A1 Feb 26’ 2009 returning step maps the objects from a proprietary object format into a standard object format and optionally the stan (51) Int, Cl, dard object format is the Service De?nition Object format G06F 17/00 (2006.01) ($130) G06F 7/00 (2006.01) (52) US. Cl. .................................................... .. 707/754 7 Claims, 10 Drawing Sheets 800. Object Graph Pruning, Get whole graph 822 node:= node.parent 802 node := root i:=0 i:=i-1 804 node:= nodenextchild NO 806. Is node user de?ned’? 816 node:= node.parent 812. Cut 814. Is Node:=node.parent node user de?ned? 824 Return pruned graph to L user US. Patent Nov. 30, 2010 Sheet 1 0f 10 US 7,844,612 B2 8.2mm \wmE?mmmEEQv wmcozwonom 65020 Ezoz?oqO ucm>oco_oEw 8:26am 9 cw J\JamEzczm:ozEmQE 83.6w\Ewmmmm2268mmUcm Ah mSmEF 022mm EoEa2m>mQ 20523 @wEEmww< 09:2095 336$ EmEmmmcmé é® US. Patent Nov. 30, 2010 Sheet 2 0f 10 US 7,844,612 B2 N_.P9532200 w.moma. 225mm2.3.6 92mm225: 3>350.EmmcmE 2.5500-502 Ems-mmam-um ohmsawnmg320wcormo=aa<w H oo~t2£on 52-2200wmmuo<#N 5.805820- 22332553‘ E wSmEN 3.2mmahoznwnmgizmoaom0cmPaw-mom2 mm002.5“: onmanta“: $2.. mEEEEmoE ‘w ‘r cumocmEo>00 20533 95:202.: US. Patent Nov. 30, 2010 Sheet 4 0f 10 US 7,844,612 B2 >650Nmv3:35 Eng-2E050vmv SE02:Bmmw2002vowm9: NT?UUOCLawn-Xmm:LOwwQOOLQ NO@2002LONE-J00 528wmom.220233 wow6552662mm o5@266EOEhoumhmcmm wSmEv 6528:.>6505mm?oov 6652ouoz96go?mhocom 3520“02mm$3“63656 65mm:405?ucmhoumhmcmm 22.03$029: wow55mm:EmQX oEvBEE? 2% US. Patent Nov. 30, 2010 Sheet 9 0f 10 US 7,844,612 B2 mSmEm ?eo?mso8m @2522samba6.930$0 % o>oEom.Nom6w: vmccmuB850 % E5052gm25 8.2mm60.505558 52mm.womuwaQmE #63052m US. Patent Nov. 30, 2010 Sheet 10 0f 10 US 7,844,612 B2 :58£965wNu F13NED 022:5 <223mm m! 2. :58£665oPu F. m3 P 2:5m2 F5 US 7,844,612 B2 1 2 METHOD FOR PRUNING OBJECTS IN A mark or trademark of International Business Machines Cor SERVICE REGISTRY AND REPOSITORY poration in the United States and/or other countries. XMeta Query Language @(MQL) is a declarative object RELATED APPLICATIONS query language designed for the e?icient retrieval of objects stored in a repository such as WSRR. XMQL alloWs the use The present application is related to a concurrently ?led, of the dot operator for accessing prede?ned properties on a copending US. patent application Ser. No. 11/844,322 given modelled object type. XMQL also alloWs a dereferenc entitled “SYSTEM AND PROGRAM PRODUCTS FOR PRUNING OBJECTS IN A SERVICE REGISTRY AND ing operator for traversing relationships betWeen any tWo REPOSITORY”. given object types. The XMQL query expression is de?ned in This invention relates to a service registry and repository the context of a given package registered With WSRR. XMQL system and method. In particular this invention relates to a has a “SELECT-FROM-WHERE” type of structure and service registry and repository system and method for prun returns a set of objects. ing objects in an object repository. The SELECT-FROM-WHERE clause is the basic structure of an XMQL query. It alloWs the user to specify Which class BACKGROUND (es) should be searched to retrieve information, and Which parts of the information to be included in the results set. It also A service registry and repository registers and stores ser alloWs the user to specify conditions to ?lter out of the results vice descriptions as part of a service-oriented architecture set the instances that do not meet the conditions. (SOA) promising business agility and resilience through 20 The SELECT clause de?nes the structure of the query reuse, loose coupling, ?exibility, interoperability, integration result, Which can be either a collection of objects, or a col and governance. These promises are addressed by separating lection of roWs With the selected attribute values. The entries service descriptions from their implementations, and using in the select part of a query constitute the so-called projection the service descriptions across the life cycle of the service. list of the query, in that they de?ne What is projected out of the Standards-based service metadata artefacts, such as Web Ser 25 repository and into the result set entries (result objects or vice De?nition Language (WSDL), XML schema, policy or result roWs of atomic values, depending on the number and Service Component Architecture (SCA) documents, capture type of the entries in the projection list). When retrieved, the the technical details of What a service can do, hoW it can be type of the query result is a List of instances of objects, or a invoked, or What it expects other services to do. Semantic List of arrays (result roWs) of instances of objects (result roW annotations and other metadata can be associated With these 30 columns). artefacts to offer insight to potential users of the service on The FROM clause introduces the primary class extent hoW and When it can be used, and What purposes it serves. against Which the query runs. A class extent is the set of all Service descriptions are used by analysts, architects, and instances of a given class (including instances of its sub developers during a Development Phase of the SOA life cycle classes). A variable needs to be declared to iterate over the to locate services to reuse and to evaluate the impact of 35 instances of the class being queried, the so-called primary changes to service con?gurations. Service descriptions are used by deployers in a Change and Release Phase and by iteration variable. That variable can be used in the other parts of the query and denotes an instance of the class extent being administrators in a Runtime Integration Phase. It is used in the Operation Phase of the life cycle to support policy enforce iterated upon. The FROM clause also alloWs the introduction of other variables to iterate over instances that can be reached ment required by Service Level Agreements (SLAs) and to 40 through navigation via multiplicityimany references from present a more comprehensive vieW of the managed service previously introduced iteration variables. These extra vari environment. Service descriptions are used by various tech ables are called secondary iteration variables. As explained nologies for different purposes and needs to be persisted in a reliable and accessible format. Service descriptions are vari above, unquali?ed class names in a query expression are resolved relative to that package, the so called query context ously described as metadata, objects, documents, entities and 45 artefacts. package. A service registry and repository is an application that The WHERE clause introduces a predicate that ?lters the persists service descriptions as a data objects in a relational instances of the class being queried. This is an optional sub database system. Typically a user uses a graphical tool to clause. design classes that represent the service descriptions that 50 The basic SELECT-FROM-WHERE structure can be need to be persisted. Java objects, that represent the classes, extended With other optional clauses. are compiled into binary ?les. Database schema is generated Example 1: SELECT e FROM e in Employee WHERE that can represent the objects and is installed into a relational e.salary>200000. This query returns the instance(s) of class database (IBM® DB2®, Oracle etc). The objects are regis Employee (including any of its sub-classes) Whose salary tered With service register and stored Within the repository. 55 attribute value is greater than 200000. The FROM clause The objects are persisted and retrieved directly from the gives the class Whose extent the query Will ?lter, class object database. IBM and DB2 are registered trademarks or Employee, and introduces the variable ‘e’ to be used to iterate trademarks of International Business Machines Corporation over that class extent.