IT@MIT Development of Front End tools for Semantic Grid Services Development of Front End Tools for Semantic Grid Services TECHNICAL PROGRESS REPORT (CDAC-MIT-Garuda-TR-3-MAR- 2006) (April, 2005 – March, 2006) Submitted to Centre for Development of Advance Computing Bangalore By Dr S.THAMARAI SELVI CHIEF INVESTIGATOR Department of Information Technology M.I.T. Campus of Anna University Chromepet, Chennai – 600 044. Technical Report (April, 2005 – March, 2006) 1 IT@MIT Development of Front End tools for Semantic Grid Services Abstract This project proposes various approaches to implement knowledge layer of semantic grid architecture. One of our approaches enables the service providers to create their own service ontology and perform matchmaking of requested services against the advertised ones. Using this approach, we propose Semantic Grid architecture using protégé enabled Globus toolkit to create service ontology of the grid service. The Parameter Matchmaking Algorithm implemented in the discovery module of the architecture performs matchmaking of requested descriptions with the advertised descriptions and computes the degree of similarity between them. In the other approach, we implement semantic description module that describes the grid resource semantically using ontology template. Also, the resource discovery module uses an inference engine to discover closely matching grid resource. The semantic grid architecture using this approach uses gridbus broker architecture at lower layer for job execution. Here, Knowledge base of the grid resources will be created using Protégé-OWL APIs. The grid resource information is obtained by using GIIS of Globus Toolkit. The discovery module discovers best matching resource using Algernon inference engine for the user’s request. In the end, we also provide a knowledge layer that can be implemented over the grid architecture using proposed approaches of implementing knowledge layer. It is proposed to develop GridWSDL2OWL-S that converts the WSDL file of WSRF services into OWL-S descriptions which can further be used in matchmaking of grid services against the requested ones. Ontology clustering is identified to use in the proposed system to improve the performance of matchmaking. Keywords Grid Computing, Globus Toolkit, Semantic Web, Ontology, Inference engine, Grid Resource Broker. Technical Report (April, 2005 – March, 2006) 2 IT@MIT Development of Front End tools for Semantic Grid Services 1. Introduction Until recently, application developers could often assume a target environment that was homogeneous, reliable and centrally managed. Increasingly, however, computing is concerned with collaboration, data sharing and other new modes of interaction that involve distributed resources. The result is an increased focus on the interconnection of systems both within and across enterprises, whether in the form of intelligent networks, switching devices, caching services, appliance servers, storage systems, or storage are network management systems. Moreover, the continuing decentralization and distribution of software, hardware and human resources make it essential that we need to achieve desired qualities of services on resources assembled dynamically from enterprise systems, service provider systems and customer systems. We require new abstractions and concepts that allow applications to access and share resources and services across distributed, wide area networks. Development of grid technologies addresses precisely these problems and which are seeing widespread and successful adoption for scientific and technical computing. Grid Technologies support the sharing and coordinated use of diverse resources in dynamic virtual organization that is the creation, from geographically and organizationally distributed components, of virtual computing systems that are sufficiently integrated to deliver desired QoS[2].In [1], the essential properties of Grids are defined and it also introduced the key requirements for protocols and services, distinguishing among connectivity protocols concerned with communication and authentication, resource protocols concerned with negotiating access to individual resources and collective protocols and services concerned with the coordinated use of multiple resources. Grid Concepts and technologies were first developed to enable resource sharing within far-flung scientific collaborations. Applications include collaborative visualization of large scientific data analysis (pooling of computer power and storage), and coupling of scientific instruments with remote computers and archives (increasing functionality as Technical Report (April, 2005 – March, 2006) 3 IT@MIT Development of Front End tools for Semantic Grid Services well as availability) [1]. We can expect similar applications to become important in commercial settings, initially for scientific and technical computing applications and then for commercial distributed computing applications, including enterprise application integration and business to business partner collaboration over the Internet. Fig 1.1: A typical Virtual Organization Grid concepts are critically important for commercial computing not primarily as a means of enhancing capability, but rather as a solution to new challenges relating to the construction of reliable, scalable and secure distributed systems. A Grid instantiation is a grid system prototype using one or more of the grid middleware technologies such as Globus, Condor or UNICORE. Most current grid instantiations are focused on computational services for end users. However, they lack the ability to provide domain problem solving services and knowledge related services. In addition to that, fundamental research on semantic web has allowed the grid community to move from the current data centric view supporting the Grid, towards semantic grid with a set of domain specific problem solving services and knowledge services. The semantic Grid is a service oriented architecture in which entities provide services to one another under various forms of contract. The semantic Grid is characterized by an open system, with a high degree of automation, which supports flexible collaboration and computation on a global scale. In such an environment it is essential that information relating to the needs of the user and their applications, and the Technical Report (April, 2005 – March, 2006) 4 IT@MIT Development of Front End tools for Semantic Grid Services resource providers and their networking, storage and computational resources all have easily discoverable interfaces and are defined, which means that can be used by higher level services to effectively exploit the grid. Similar to the semantic web, the semantic grid is described as an “extension of the current Grid in which information and services are given well defined meaning, better enabling computers and people to work in cooperation”. However, in a heterogeneous multi-institutional environment such as Grid, it is difficult to enforce the syntax and semantics of resource and service descriptions. Hence, in these distributed computing environment where resources come and go dynamically, there is a demand for a framework to support semantic description and semantic discovery of services and resources. In this project, we propose two different approaches to implement knowledge layer in the semantic grid architecture. The first approach we propose addresses the issue of semantic description and discovery of services. Using this approach, we propose semantic grid architecture using PEG in which protégé editor is integrated with Globus Toolkit for semantic description of services. Parameter Matchmaking Algorithm introduced in the knowledge layer performs semantic matching of advertised services against the requested ones and computes their degree of closeness. The second approach addresses the semantic description of computing resources present in the grid using grid resource ontology template. With this approach, we implement a five layered semantic grid architecture using gridbus broker at the lower layer for job submission and execution. This architecture also addresses semantic discovery of grid resources using Algernon inference engine. Since it is built on Gridbus broker architecture, it supports most of the middlewares that include Globus, Alchemi etc. In the end, we have also proposed a functional model of the knowledge layer for semantic descriptions of computing resources and services. The model will enable to perform QoS based matchmaking of services against the available ones. It also exploits ontology clustering techniques for improving the efficiency of the matchmaking algorithm. The rest of the document is organized as follows: - Section 2 provides the necessary background needed for semantic grid services and its evolution. The semantic Technical Report (April, 2005 – March, 2006) 5 IT@MIT Development of Front End tools for Semantic Grid Services web services and its architecture are described briefly in section 3. It also describes the motivation for semantic grid services. Section 4 introduces Semantic Grid Services and its conceptual layer. The research issue is also discussed in this section. In section 5, the related technology that includes the concept of ontology is discussed in detail. The issues and difficulties in implementation are described in the section 6. The section 7 focuses on proposed approach used in our research work and it also discuss the motivation behind those works. Section 8 discusses one of our research works that proposes a semantic grid architecture using Protégé Enabled Globus Toolkit. The section 9 proposes the implementation of knowledge layer using ontology template in the semantic grid architecture. The section 10 discusses a case study in WSMX environment. The further scope of this research work is detailed in the section 11. The section 12 concludes the document by highlighting the overall objective and advantage of the proposed approach. 2. Background The establishment, management, and exploitation of dynamic, cross organizational VO sharing relationships require new technology and Architecture. A Typical Grid application will usually consist of several different components. For example, a typical grid application could have: VO Management Service: To manage what nodes and users are part of each Virtual Organization Resource Discovery and Management Service: So applications on the grid can discover resources that suit their needs and then manage them Job Management Service: So users can submit tasks in the form of jobs to the grid and a whole other bunch of services like security, data management etc., Furthermore, all these services are interacting constantly. For example, the job management service might consult the resource discovery service to find computational resources that match the job’s requirements. With so many services and so many interactions between them, there exists the potential for chaos. What if every vendor out there decided to implement a Job Management Service in a completely different way, Technical Report (April, 2005 – March, 2006) 6 IT@MIT Development of Front End tools for Semantic Grid Services exposing not only different functionality but also different interfaces? It would be very difficult to get all the different pieces of software to work together. The solution is Standardization: define a common interface for each type of service. The Open Grid Services Architecture (OGSA), developed by The Global Grid Forum, aims to define a common, standard, and open architecture for grid-based applications. The goal of OGSA is to standardize practically all the services one commonly finds in a grid application (job management services, resource management services, security services etc.,) by specifying a set of standard interfaces for these services. The Grid Architecture identifies fundamental system components, specifies the purpose and functions of these components and indicates how these components interact Grid Protocol Architecture with one another. The Fig 2.1 shows the grid architecture defined in [2]. Application Collective Resource Connectivity Fabric Fig 2.1: The layered Grid Architecture Fabric Layer The Grid Fabric layer provides the resources to which shared access is mediated by Grid protocols: for example, computational resources, storage systems, catalogs, network resources and sensors. A “resource” may be a logical entity, such as a distributed file system, computer cluster, or distributed computer pool. Fabric components implement the local, resource-specific operations that occur on specific resources as a result of sharing operations at higher levels. There is thus a tight interdependence between the functions implemented at the fabric level, on the one hand, and the sharing Technical Report (April, 2005 – March, 2006) 7 IT@MIT Development of Front End tools for Semantic Grid Services operations supported, on the other. Connectivity Layer The connectivity layer defines core communication and authentication protocols required for Grid-specific network transactions. Communication protocols enable the exchange of data between Fabric layer resources. Authentication protocols build on communication services to provide cryptographically secure mechanisms for verifying the identity of users and resources. Resource Layer The Resource Layer builds on connectivity layer protocols to define protocols including APIs and SDKs for the secure negotiation, initiation, monitoring, control, accounting and payment of sharing operations on individual resources. Resource layer implementations of these protocols calls fabric layer functions to access and control local resources. Resource layer protocols are concerned entirely with individual resources and hence ignore issues of global state and atomic actions across distributed collections; such issues. Collective Layer The Collective layer contains protocols including APIs and SDKs and services that are not associated with any one specific resource but rather are global in nature and capture interactions across collections of resources. Because Collective components build on the narrow Resource and Connectivity layer “neck” in the protocol hourglass, they can implement a wide variety of sharing behaviors without placing new requirements on the resources being shared. Application Layer The final layer in the architecture comprises the user applications that operate within a VO environment. Applications are constructed in terms of, and by calling upon, services defined at any layer. While creating this new architecture, the developer realized that they needed to choose some sort of distributed middleware on which to base the architecture. In other words, if OGSA, for example, defines that the JobSubmissionInterface has a submitJob Technical Report (April, 2005 – March, 2006) 8 IT@MIT Development of Front End tools for Semantic Grid Services method, there has to be a common and standard way to invoke that method if we want the architecture to be adopted as an industry-wide standard. This base for the architecture could, in theory, be any distributed middleware, Web services were chosen as the underlying technology as it has its own reasons. However, although the Web Services architecture was certainly the best option, it still didn’t meet one of OGSA’s most important requirements; the underlying middleware had to be stateful. Unfortunately, although Web Services can in theory is either stateless or stateful, they are usually stateless and there is no standard way of making them stateful. To overcome this limitation, OASIS developed a specification called Web Services Resource Framework (WSRF) that specifies how we can make our Web Services stateful, along with adding a lot of other features. It is important to note that WSRF is a joint effort by the Grid and Web Services communities, so it fits pretty nicely inside the whole Web Services Architecture. Hence, it is possible to derive the relationship between OGSA and WSRF. WSRF provides the stateful services that OGSA needs. In otherwords, while OGSA is the architecture, WSRF is the infrastructure on which that architecture is built on. Before taking a closer look at WSRF, we need to have some background knowledge in Globus Toolkit 4.0 and Web Services. OGSA WSRF Requires Specifies Stateful Web Services Extends Web Services Fig 2.2: Relationship between OGSA, WSRF and Web Services Technical Report (April, 2005 – March, 2006) 9 IT@MIT Development of Front End tools for Semantic Grid Services 2.1 Web Services The term Web services describes an important emerging distributed computing paradigm that differs from other approaches such as DCE, CORBA, and Java RMI in its focus on simple, Internet-based standards (e.g., eXtensible Markup Language: XML [4, 5]) to address heterogeneous distributed computing. Web services define a technique for describing software components to be accessed, methods for accessing these components, and discovery methods that enable the identification of relevant service providers [3]. Web services are programming language-, programming model-, and system softwareneutral. Web services standards are being defined within the W3C and other standards bodies and form the basis for major new industry initiatives such as Microsoft (.NET), IBM (Dynamic e-Business), and Sun (Sun ONE). However the three main concerns are the standards: SOAP, WSDL, and WS-Inspection. The Simple Object Access Protocol (SOAP) [6] provides a means of messaging between a service provider and a service requestor. SOAP is a simple enveloping mechanism for XML payloads that defines a remote procedure call (RPC) convention and a messaging convention. SOAP is independent of the underlying transport protocol too. HTTP, FTP, Java Messaging Service (JMS), and the like. We emphasize that Web services can describe multiple access mechanisms to the underlying software component. SOAP is just one means of formatting a Web service invocation. The Web Services Description Language (WSDL) [7] is an XML document for describing Web services as a set of endpoints operating on messages containing either document-oriented (messaging) or RPC payloads. Service interfaces are defined abstractly in terms of message structures and sequences of simple message exchanges (or operations, in WSDL terminology) and then bound to a concrete network protocol and data-encoding format to define an endpoint. Related concrete endpoints are bundled to define abstract endpoints (services). WSDL is extensible to allow description of endpoints and the concrete representation of their messages for a variety of different message formats and network protocols. Several standardized binding conventions are Technical Report (April, 2005 – March, 2006) 10 IT@MIT Development of Front End tools for Semantic Grid Services defined describing how to use WSDL in conjunction with SOAP 1.1, HTTP GET/POST and MIME. WS-Inspection [8] comprises a simple XML language and related conventions for locating service descriptions published by a service provider. A WS-Inspection language (WSIL) document can contain a collection of service descriptions and links to other sources of service descriptions. A service description is usually a URL to a WSDL document; occasionally, a service description can be a reference to an entry within a Universal Description, Discovery, and Integration (UDDI) [9] registry. A link is usually a URL to another WS-Inspection document; occasionally, a link is a reference to a UDDI entry. With WS-Inspection, a service provider creates a WSIL document and makes the document network accessible. Service requestors use standard Web-based access mechanisms (e.g., HTTP GET) to retrieve this document and discover what services the service provider advertises. WSIL documents can also be organized in different forms of index. The Web services framework has two advantages for Grid architecture. First, the need to support the dynamic discovery and composition of services in heterogeneous environments necessitates mechanisms for registering and discovering interface definitions and endpoint implementation descriptions and for dynamically generating proxies based on (potentially multiple) bindings for specific interfaces. WSDL supports this requirement by providing a standard mechanism for defining interface definitions separately from their embodiment within a particular binding (transport protocol and data encoding format). Second, the widespread adoption of web services mechanisms means that a framework based on Web services can exploit numerous tools and extant services, such as WSDL processors that can generate language bindings for a variety of languages (e.g., Web Services Invocation Framework: WSIF), workflow systems that sit on top of WSDL, and hosting environments for Web services (e.g., Microsoft .NET and Apache Axis). In [4], it is emphasized that the use of Web services does not imply the use of SOAP for all communications. If needed, alternative transports can be used, for example to achieve higher performance or to run over specialized network protocols. Technical Report (April, 2005 – March, 2006) 11 IT@MIT Development of Front End tools for Semantic Grid Services 2.2 WSRF Plain Web services are usually stateless (even though, in theory, there is nothing in the Web Services Architecture that says they can't be stateful). This means that the Web service can't "remember" information, or keep state, from one invocation to another. For example, imagine we want to program a very simple Web service which simply acts as an integer accumulator. This accumulator is initialized to zero, and we want to be able to add (accumulate) values in it. Suppose we have an add operation which receives the value to add and returns the current value of the accumulator. As shown in the FIG 2.2.1, the first invocation of this operation might seem to work (we request that 5 be added, and we receive 5 in return). However, since a Web service is stateless, the following invocations have no idea of what was done in the previous invocations. So, in the second call to add we get back 6, instead of 11 (which would be the expected value if the Web service was able to keep state). Request Add 6 Response 6 Request Add 8 Client Response 8 Web Service Request Add 12 Response 12 Fig: 2.2.1: A stateless Invocation The fact that Web services don’t keep state information is not necessarily a bad thing. There are plenty of applications which have no needed whatsoever for statefulness. However, Grid applications do generally require statefulness. So, we would ideally like the Web service to somehow keep state information. Technical Report (April, 2005 – March, 2006) 12 IT@MIT Development of Front End tools for Semantic Grid Services State Request Add 6 Response 6 6 Web Service Request Add 8 Client Response 14 Request Add 12 14 26 Response 26 Fig 2.2.2: A stateful invocation Giving Web services the ability to keep state information while still keeping them stateless seems like a complex problem. Fortunately, it's a problem with a very simple solution: simply keep the Web service and the state information completely separate. Instead of putting the state in the Web service (thus making it stateful, which is generally regarded as a bad thing) it is kept in a separate entity called a resource, which will store all the state information. Each resource will have a unique key, so whenever we want a stateful interaction with a Web service we simply have to instruct the Web service to use a particular resource. This pairing of a Web service with a resource is called a WSResource (FIG 2.2.3). RESOURCES Filename: “tutorial.zip” Size: 750 Descriptors: {”Globus”,”Tutorail”) Resource 0xF56433FA Web Servic e Filename: “mynotes.doc” Size: 250 Descriptors: {“notes”,”Globus”) Resource 0x09EB23FA Web Service + Resource = WS-Resource Filename: “pacman.exe” Size: 150 Descriptors: {“game”) Resource 0x106E43FA Fig 2.2.3: WS-Resource Technical Report (April, 2005 – March, 2006) 13 IT@MIT Development of Front End tools for Semantic Grid Services The address of a particular WS-Resource is called an endpoint reference. The difficulty encountered in this approach is that how to specify what resource must be used. A URI might be enough to address the Web service, but something more than that is needed to address the resource. A new specification called WS-addressing is used to overcome this difficulty which provides a more versatile way of addressing Web Services. 2.3 The WSRF specification The WSRF is a collection of five different specifications and they all relate to the management of WS-Resources. WS-ResourceProperties A resource is composed of zero or more resource properties. For example, as shown in the Fig 2.2.3 each resource has three resource properties: Filename, Size, and Descriptors. WS-ResourceProperties specifies how resource properties are defined and accessed. The resource properties are defined in the Web service's WSDL interface description. WS-ResourceLifetime Resources have non-trivial lifecycles. In other words, they're not a static entity that is created when our server starts and destroyed when our server stops. Resources can be created and destroyed at any time. The WS-ResourceLifetime supplies some basic mechanisms to manage the lifecycle of our resources. WS-ServiceGroup We will often be interested in managing groups of Web Services or groups of WSResources, and performing operations such as 'add new service to group', 'remove this service from group, and (more importantly) 'find a service in the group that meets condition FOOBAR. The WS-ServiceGroup specifies how exactly we should go about grouping services or WS-Resources together. Although the functionality provided by this specification is very basic, it is nonetheless the base of more powerful discovery services (such as GT4's IndexService) which allow us to group different services together and Technical Report (April, 2005 – March, 2006) 14 IT@MIT Development of Front End tools for Semantic Grid Services access them through a single point of entry (the service group). WS-BaseFaults Finally, this specification aims to provide a standard way of reporting faults when something goes wrong during a WS-Service invocation Related specifications WS-Notification WS-Notification is another collection of specifications that, although not a part of WSRF, is closely related to it. This specification allows a Web service to be conFIGd as a notification producer, and certain clients to be notification consumers (or subscribers). This means that if a change occurs in the Web service (or, more specifically, in one of the WS-Resources), that change is notified to all the subscribers (not all changes are notified; only the ones the Web services programmer wants to). WS-Addressing As mentioned before, the WS-Addressing specification provides us a mechanism to address Web services which is much more versatile than plain URIs. In particular, we can use WS-Addressing to address a Web service + resource pair (a WS-Resource). 2.4 Globus Toolkit The Globus Toolkit a (GT) [1, 2] is a community-based, open-architecture, opensource set of services and software libraries that support Grids and Grid applications. The toolkit addresses issues of security, information discovery, resource management, data management, communication, fault detection, and portability. Globus Toolkit mechanisms are in use at hundreds of sites and by dozens of major Grid projects worldwide. The toolkit, first and foremost, includes quite a few high-level services that we can use to build Grid applications. These services, in fact, meet most of the abstract requirements set forth in OGSA. In other words, the Globus Toolkit includes a resource monitoring and discovery service, a job submission infrastructure, a security infrastructure, and data management services (to name a few!). Since the working groups at GGF are still working on defining standard interfaces for these types of services, it is Technical Report (April, 2005 – March, 2006) 15 IT@MIT Development of Front End tools for Semantic Grid Services not possible to say (at this point) that GT4 (GT Version 4.0) is an implementation of OGSA (although GT4 does implement some security specifications defined by GGF). However, it is a realization of the OGSA requirements and a sort of de facto standard for the Grid community while GGF works on standardizing all the different services. Most of these services are implemented on top of WSRF (the toolkit also includes some services that are not implemented on top of WSRF and are called the nonWS components). The Globus Toolkit 4, in fact, includes a complete implementation of the WSRF specification. This part of the toolkit (the WSRF implementation) is a very important part of the toolkit since nearly everything else is built on top of it. 2.4.1 GT4 Architecture The Globus Toolkit 4 is composed of several software components. As shown in the FIG 2.4.1.1, these components are divided into five categories: Security, Data Management, Execution Management, Information Services, and the Common Runtime. Notice how, despite the fact that GT4 focuses on Web Services, the toolkit also includes components which are not implemented on top of Web services. For example, the GridFTP component uses a non-WS protocol which started as an ad hoc Globus protocol, but later became a GGF specification. Common Runtime The Common Runtime components provide a set of fundamental libraries and tools which are needed to build both WS and non-WS services. Security Using the Security components, based on the Grid Security Infrastructure (GSI), we can make sure that our communications are secure. Data management These components will allow us to manage large sets of data in our virtual organization Technical Report (April, 2005 – March, 2006) 16 IT@MIT Development of Front End tools for Semantic Grid Services Fig 2.4.1.1: GT4 Architecture .Information services The Information Services, more commonly referred to as the Monitoring and Discovery Services (MDS), includes a set of components to discover and monitor resources in a virtual organization. Note that GT4 also includes a non-WS version of MDS (MDS2) for legacy purposes. This component is deprecated and will surely disappear in future releases of the toolkit. Execution management Execution Management components deal with the initiation, monitoring, management, scheduling and coordination of executable programs, usually called jobs, in a Grid. 3. Semantic Web Service Formulated by the creator of the World Wide Web Tim Berners-Lee, the Semantic Web is about “bringing the web to its full potential” [10]. The web currently contains around 3 billion static documents, which are accessed by over 500 millions Technical Report (April, 2005 – March, 2006) 17 IT@MIT Development of Front End tools for Semantic Grid Services users. While these numbers are increasing at a staggering rate, the task of dealing with the information is getting harder [11]. The Semantic Web is an effort to develop technologies so that the value of information can scale with the increase of information, thus brining the web to its full potential. The Semantic Web’s approach is to make information “understandable” by computers and hence they must be described in such a way that computers can interpret it and derive its meaning. This will enable computers to work more intelligently with the information; for example assisting humans in classifying, filtering and searching information. Computer understandable information is information annotated with semantics. Annotations can therefore be though of as metadata that describes the meaning – the semantics – of the information. The annotations themselves have to be defined so that computers can interpret and reason with them. A collection of annotations where their meaning is described is called an ontology which will be discussed in detail in the next section. For ontologies to represent knowledge of a domain, they need to be expressed with language that can convey the necessary complexity of the domain. Description Logic (DL) is knowledge formalism that describes the abstract world with concepts and relations. These basic constructs can be used to build up advanced hierarchies and graphs with restrictions on various levels. Knowledge has to be represented so that logic can be applied. In special it is important to be able to compare and derive similarities between annotations. DL has advanced capabilities for this. One powerful feature in DL is subsumption, which checks whether or not a concept contains another concept. The advantages of annotations are closely related to what can be derived from the representation. Using a language with advanced capabilities for reasoning is therefore of great importance. Applications interpreting the semantics of a document need to have access to the ontologies that define the semantics. When a document is annotated with semantics it includes information about where the annotations are described. The ontologies describing the annotations must therefore be available and readable so that applications can derive their meaning. For example in context of the Semantic Web – which is a Technical Report (April, 2005 – March, 2006) 18 IT@MIT Development of Front End tools for Semantic Grid Services distributed system – the ontologies have to be network accessible. They are therefore defined with URIs which is unique network identifications. For ontologies to be used in distributed systems and across systems there has to be agreements on how knowledge is represented and reasoned with. These standards should be general and – at the same time – advanced enough to capture the wide needs of different interest groups. They should also specify syntax and formats for representation. Recently developed open standards for knowledge representation are RDF and OWL [12] [13]. 3. 1 Motivation Conventionally, the capabilities of Web Services are described with Web Service Definition Language (WSDL) [7] by defining operations and parameters that the service supports. This is done by naming operations and parameters, and then associating the parameters with abstract types which can be though of as data types. The problem with this service description is that agents can not derive what the service does. An agent interpreting the parameters of the service can not derive their meaning by simply looking at them. For agents they are only parameters names – named variables that are used to contain information. Agents can not derive the content of these parameters, because they can not read the parameter names like humans can. What agents can infer from a service description is that the input and output parameters and their data types. Agents can only interpret information that confirms to a syntactical structure. They are programmed to derive the meaning from formats like WSDL, which is an agreement on how service descriptions are interpreted. The service description can thus be seen on as a structured syntactical description. A human developer who wants to use a service in a client program needs to read the syntax of service description, interpret it, and then write the client program confirming to the syntax of service. Agents can not read text like humans – they can understand the structure of the service descriptions but not the content [14]. Semantic Web Services are described so that agents can interpret their capabilities. Autonomous agents should be able to look into the service description to Technical Report (April, 2005 – March, 2006) 19 IT@MIT Development of Front End tools for Semantic Grid Services determine if the service provides the desired capabilities and if the agent is able to use the service. The service description must thus be extended with computer interpretable information called semantics. The parameters or the service names must be described in such a way that agents can find out what they mean. This is achieved by defining vocabularies – organized in ontologies – that are used to annotate service capabilities. For agents to interpret service descriptions they will have to use these ontologies – which are shared conceptualizations of domains [11]. Research is currently being done on how the state of services can be represented as preconditions and effects [15]. Preconditions would represent what is necessary for using the service, and effects would represent the consequences of using the service. Preconditions and effects are therefore specifying the state transformation of the service [16]. 3.1.1 Increasing Number of Web Services There are important trends in distributed systems that affect the importance of service discovery. The most noticeable trend is that the number of services increases rapidly. This is due to the popularity of Web Services and the fact that the serviceoriented paradigm encourages lousily coupled independent services. A result of the latter is that services are looked up on demand when they are needed and the effect of this might be that services are looked up more often. Service discovery is thus becoming more and more important in distributed systems. 3.1.2 Advantages of using Semantics in Service Discovery There are several advantages of using semantics in service discovery. The accuracy of the service discovery will improve with semantics. Semantics provide the expressiveness needed to make detailed descriptions of advertised service capabilities and capability requests. Matchmaking using semantics is more accurate than a keyword-based search, because the direct similarities are found using inference logic, while the keywordbased searches can be vague and inaccurate. Service discovery based on semantics will enable a more dynamic coupling between clients and services. The exact services do not Technical Report (April, 2005 – March, 2006) 20 IT@MIT Development of Front End tools for Semantic Grid Services need be known in advance and the client can more easily change services that are used. This is an improvement towards the service oriented paradigm, where services are loosely coupled. Dynamic coupling of services based on semantics will furthermore enable new technologies and applications to emerge. More resilient and flexible systems can for example be made by smart service mediators that use semantics to provide functionality transparency. This is useful in dynamic service environments or for systems that need high operability. Functionality transparency means that a client using a set of services through a service mediator does not know which or where these services are. The required functionality is just provides to the client. Failing or disappearing services can therefore be replaced unknowingly by the client. Semantics can also improve the administration of service registers provided for manual browsing. Services can be automatically categorized and classified based on their semantics, making administration easier and registries more up to date. 4. Semantic Grid Services The grid computing infrastructure defined in [1, 2] is only a part of much larger picture that also includes information handling and support for knowledge processing within the distributed scientific process. This broader view is adopted for semantic grid which can be described as an extension of the current Grid where information and services are given well defined meaning, better enabling computers and people to work in cooperation [8, 9]. The semantic Grid is a service oriented architecture in which entities provide services to one another under various forms of contract. Thus the Semantic Grid characterized as an open system in which users, software components and computational resources come and go on a continual basis. Hence there should be a high degree of automation that supports flexible collaborations and computation on a global scale, Moreover, this environment should be personalized to the individual participants and should offer seamless interactions with both software components and other relevant users. Technical Report (April, 2005 – March, 2006) 21 IT@MIT Development of Front End tools for Semantic Grid Services 4.1 Conceptual layer of Semantic Grid Given the above view of the scope of semantic grid, it has become popular to characterize the computing infrastructure as consisting of three conceptual layers [27]. Data/computation This layer deals with the way that computational resources are allocated, scheduled and executed and the way in which data is shipped between the various processing resources. It is characterized as being able to deal with large volumes of data, providing fast networks and presenting diverse resources as a single metacomputer. The data/computation layer builds on the physical ‘grid fabric’, i.e. the underlying network and computer infrastructure, which may also interconnect scientific equipment. Here data is understood as uninterpreted bits and bytes. Information This layer deals with the way that information is represented, stored, accessed, shared and maintained. Here information is understood as data equipped with meaning. For example, the characterization of an integer as representing the temperature of a reaction process, the recognition that a string is the name of an individual. Knowledge This layer is concerned with the way that knowledge is acquired, used, retrieved, published and maintained to assist e-Scientists to achieve their particular goals and objectives. Here knowledge is understood as information applied to achieve a goal, solve a problem or enact a decision. In the Business Intelligence literature, knowledge is often defined as actionable information. For example, the recognition by a plant operator that in the current context a reaction temperature demands shutdown of the process. Technical Report (April, 2005 – March, 2006) 22 IT@MIT Development of Front End tools for Semantic Grid Services Knowledge Services Layer Information Services Layer Semantic Grid Data Serv ices Layer Computational Services Laye Distributed Resources Fig 4.1.1: A Layered Architecture of Semantic Grid Although this view is widely accepted, to date most research and development work in this area has concentrated on the data/computation layer and on the information layer. While there are still many open problems concerned with managing massively distributed computations in an efficient manner and in accessing and sharing information from heterogeneous sources, the full potential of grid computing can only be realized by fully exploiting the functionality and capabilities provided by knowledge layer services. This is because it is at this layer that the reasoning necessary for seamlessly automating a significant range of the actions and interactions takes place. Thus this is the area we focus on most in this research project. 4.2 Knowledge Layer The aim of the knowledge layer is to act as an infrastructure to support the management and application of scientific knowledge to achieve particular types of goal and objective. In order to achieve this, it builds upon the services offered by the data/computation and information layers. The first thing to reiterate with respect to this layer is the problem of the sheer scale of content we are dealing with. We recognize that the amount of data that the data grid is managing is likely to be huge. Once information is delivered that is destined for a particular purpose, we are in the realm of the knowledge grid. Thus at this level we are fundamentally concerned with abstracted and annotated content and with the management of scientific knowledge. The effort of acquiring Technical Report (April, 2005 – March, 2006) 23 IT@MIT Development of Front End tools for Semantic Grid Services knowledge was one bottleneck recognized early but so too are; modeling, retrieval, publication and maintenance. Knowledge acquisition sets the challenge of getting hold of the information that is around, and turning it into knowledge by making it usable. This might involve, for instance, making tacit knowledge explicit, identifying gaps in the knowledge already held, acquiring and integrating knowledge from multiple sources (e.g. different experts, or distributed sources on the Web), or acquiring knowledge from unstructured media (e.g. natural language or diagrams). However, the process of explicit knowledge acquisition from human experts remains a costly and resource intensive exercise. Hence, the increasing interests in methods that can (semi-) automatically elicit and acquire knowledge that is often implicit or else distributed on the web. A variety of information extraction tools and methods are being applied to the huge body of textual documents that are now available. Knowledge modeling bridges the gap between the acquisition of knowledge and its use. Knowledge models must be able both to act as straightforward placeholders for the acquired knowledge, and to represent the knowledge so that it can be used for problem-solving. Knowledge representation technologies have a long history in Artificial Intelligence. There exist a numerous languages and approaches that cater for different knowledge types; structural forms of knowledge, procedurally oriented representations, rule based characterizations and methods to model uncertainty, and probabilistic representations. Once knowledge has been acquired and modeled, it needs to be stored or hosted somewhere so that it can be retrieved efficiently. In this context, there are two related problems to do with knowledge retrieval. First, there is the issue of finding knowledge again once it has been stored. And second, there is the problem of retrieving the subset of content that is relevant to a particular problem. This will set particular problems for a knowledge retrieval system where content alters rapidly and regularly. Technologies for information retrieval exist in many forms. They include methods that attempt to encode structural representations about the content to be retrieved such as explicit attributes and Technical Report (April, 2005 – March, 2006) 24 IT@MIT Development of Front End tools for Semantic Grid Services values. Varieties of matching algorithm can be applied to retrieve cases that are similar to an example or else a partial set of attributes presented to the system. Having acquired knowledge, modeled and stored it, the issue then arises as to how to get that knowledge to the people who subsequently need it. The challenge of knowledge publishing or disseminating can be described as getting the right knowledge, in the right form, to the right person or system, at the right time. Different users and systems will require knowledge to be presented and visualized in different ways. The quality of such presentation is not merely a matter of preference. It may radically affect the utility of the knowledge. Getting presentation right involves understanding the different perspectives of people with different agendas and systems with different requirements. An understanding of knowledge content will help to ensure that important related pieces of knowledge get published at the appropriate time. Finally, having acquired and modeled the knowledge, and having managed to retrieve and disseminate it appropriately, the last challenge is to keep the knowledge content current – knowledge maintenance. This may involve the regular updating of content as knowledge changes. Some content has considerable longevity, while other knowledge dates quickly. If knowledge is to remain useful over a period of time, it is essential to know which parts of the knowledge base must be updated or else discarded and when. Other problems involved in maintenance include verifying and validating the content, and certifying its safety. 4.3 Research Issues in Semantic Grid The following is some of the key research issues that remain for exploiting knowledge services in the Semantic Grid. In many cases there are already small-scale exemplars for most of these services; consequently many of the issues relate to the problems of scale and distribution [17]. We need tools and infrastructure to automate the creation of ontology of knowledge present in the Grid environment. Technical Report (April, 2005 – March, 2006) 25 IT@MIT Development of Front End tools for Semantic Grid Services Matchmaking of semantic web services can be done in OWL-S but it poses problems when it comes to Grid. Knowledge capture tools are needed that can be added as plugins to a wide variety of applications and which draw down on ontology services. This will include a clearer understanding of profiling individual and group e-Science perspectives and interests. Dynamic linking, visualization, navigation and browsing of content from many perspectives over large content sets. Provision of knowledge discovery services with standard input/output APIs to ontologically mapped data 5. Related Technology The concept of an ontology is necessary to capture the expressive power that is needed for modeling and reasoning with knowledge. Generally speaking, an ontology determines the extension of terms and the relationships between them. However, in the context of knowledge and web engineering, an ontology is simply a published, more or less agreed, conceptualization of an area of content. The ontology may describe objects, processes, resources, capabilities or whatever. Ontologies are used to capture knowledge about some domain of interest. Ontology describes the concepts in the domain and also the relationships that hold between those concepts. Different ontology languages provide different facilities. Recently a number of languages have appeared that attempt to take concepts from the knowledge representation languages of AI and extend the expressive capability of those of the Web (e.g., RDF and RDF Schema). Also, there has been an attempt to integrate the best features of these languages in a hybrid called DAML+OIL. As well as incorporating constructs to help model ontologies DAML+OIL is being equipped with a logical language to express rule-based generalizations. The most recent development in standard ontology language is Web Ontology Language (OWL) from the World Wide Web Consortium. It is based on a different logical model which makes it possible for concepts to be defined as well as described. Complex concepts can therefore be built up in definitions out of simpler concepts. Technical Report (April, 2005 – March, 2006) 26 IT@MIT Development of Front End tools for Semantic Grid Services According to Karlsruhe Ontology model [18], an ontology with datatypes is a structure O:= (C, T, ≤C, R, A, σR, σA, ≤R, ≤A, I, V, tC, tT, tR, tA ) consisting of Six disjoint sets C,T,R,A,I and V called concepts, datatypes, relations, attributes, instances and data values respectively. Partial orders ≤C on C called concept hierarchy or taxonomy and ≤T on T called type hierarchy. Functions σR: R→ C2 called relation signature and σA: A→CxT called attribute signature. Partial orders ≤R on R called relation hierarchy and ≤A on A called attribute hierarchy, respectively. A function tC: C→ 2I called concept instantiation. A function tT: T→ 2V called datatype instantiation. A function tR: R→ 2IxI called relation instantiation. A function tA: A→ 2IxV called attribute instantiation Protégé is an integrated software tool used by system developers and domain experts to develop knowledge based systems. The Protégé editor is developed by Stanford University and is widely used for developing semantic web services [15].Applications developed with Protégé 2000 are used in problem solving and decision making in a particular domain. This tool is used to create ontology in many applications. Furthermore, the logical model allows the use of reasoner which can check whether or not all of the statements and definitions in the ontology are mutually consistent and they can also recognize which concepts falls under which definitions. The reasoner can therefore help to maintain the hierarchy correctly. Algernon is an inference engine that facilitates direct interaction with Protégé knowledge bases (KBs) and supports access to multiple concurrent KBs. Algernon commands not only retrieve and store slot values, but can also modify the ontology. Protégé editor has Algernon inference engine as plug in and therefore it becomes easy to retrieve the knowledge from the ontology created by Protégé editor. Algernon consists of simple queries by which one can interact with the protégé knowledge base and retrieves knowledge from it. Technical Report (April, 2005 – March, 2006) 27 IT@MIT Development of Front End tools for Semantic Grid Services 5.1 OWL-S Though OWL increases the level of expressiveness with a richer vocabulary but retaining the decidability, it is primarily used to describe content. The next logical step is to describe the semantics of services to improve their platform- and organizationindependent interoperability over the internet, an upper ontology for the description of web services named OWL-Services (OWL-S) has been introduced. OWL-S is ontology of service concepts. OWL-S is an OWL based Web Service Ontology which supplies a core set of markup language constructs for describing the properties and capabilities of Web Services in unambiguous, computer interpretable form [15]. Using OWL-S for the description of Web services can increase the ability of computer systems to find eligible services autonomously. This is important in open environments where provided services can appear and disappear dynamically. OWL-S is thus an ontology that provides the necessary concepts and relations to describe the general capabilities of web services. This includes representation of the information transformation with Inputs and Outputs, and state transformation like Preconditions and Effects normally referred as IOPE together. provides Resource Service supports presents describedBy ServiceGrounding Profile ServiceModel Fig: 5.1.1: Top Level Ontology of OWL-S OWL-S provides moreover a high level description of web services as shown in Fig 5.1.1. This top level ontology describes how a Resource is related to a Service, and subsequently how the Service is related to the Profile, the Service Model and the service Grounding. In short, the Profile contains information about what the service does, the service Model describes how the service works, and the grounding describes how the service is accessed. Technical Report (April, 2005 – March, 2006) 28 IT@MIT Development of Front End tools for Semantic Grid Services A process model describes how a service performs its tasks. It includes information about inputs, outputs, preconditions and results. The process model differentiates between composite, atomic and simple processes. For a composite process, the process model shows how it breaks down into simpler component processes and the flow of control and data between them. A profile provides a general description of a Web service, intended to be published and shared to facilitate service discovery. Profiles can include both functional properties and non-functional properties. The functional properties are derived from the process model, but it is not necessary to include all the functional properties from the process model in a profile. A simplified view can be provided for service discovery, on the assumption that the service consumer would eventually look at the process model to achieve a full understanding of how the service works. Grounding specifies how a service is invoked, by detailing how the atomic processes in a service’s process model map onto a concrete messaging protocol. OWL-S allows for different types of groundings to be used, but the only type developed to data is the WSDL grounding, which allows any Web service with a WSDL definition to be marked up as a Semantic Web Service using OWL-S. A service simply binds the other parts together into a unit that can be published and invoked. It is important to understand that the different parts of a service can be reused and connected in various ways. Together, these three concepts are designed to give a total picture of the capabilities of a service. 5.2 OWL-S Matchmaking Basically a service provider describes his advertised services in an OWL-S compliant ontology and a service requester queries for services with an OWL-S ontology expressing his requirements. In this scenario, matching service descriptions of advertisements with requirements has the purpose to select a suitable service among a set of available ones. Considering known matching approaches that return mismatch or match, this selection process has some potential benefits. Matchmaking, in this context Technical Report (April, 2005 – March, 2006) 29 IT@MIT Development of Front End tools for Semantic Grid Services refers to capability matching which means to compare the requested service description with the advertised service descriptions. The goal of this comparison is to obtain information on how similar they are. This degree of similarity is used to determine if the advertised service satisfies the requested capabilities. Comparing the requested service description with the advertised service descriptions takes all the inputs and the outputs into account. The inputs (I) and outputs (O) of the requested service description are compared to those of the advertised service descriptions. In most of the matchmaking algorithm, only I and O are considered for matching, because P and E are not sufficiently standardized to be considered for Matchmaking algorithm. The profile defines a set of additional properties that are used to describe the features of the service. From these properties, in addition to IOPE we can also use the service category [19], which is used to classify the service with respect to some ontology or taxonomy of services. On an optional basis, other properties can also be taken into account, such as the element QualityRating, or custom defined properties, such as the duration of the execution. 6. Issues and Difficulties in Existing Approach The most prominent technology for web service discovery is the Universal Description Discovery and Integration (UDDI). This technology is expected to be the internet standard for service discovery due to its strong industry backing [6, 7]. UDDI provides functionalities – an API – to search for services using keywords. These keywords are matched with text used in the descriptions of the services. It is very hard for agents to work with keywords because it involves some degree of language understanding. Keyword based search is thus not enabling autonomous discovery. Similar to UDDI, in Grid environment, the Globus Toolkit’s Monitoring and Discovery System (MDS) defines and implements mechanism for resource discovery and monitoring in distributed environments like Grid [20, 21, 22]. MDS has been specifically designed to address the needs of grid nodes to publish and discover services or resources that are in use by multiple people across multiple administrative domains. It supports traditional service matching which is done based on symmetric and attribute based matching [23]. In Technical Report (April, 2005 – March, 2006) 30 IT@MIT Development of Front End tools for Semantic Grid Services these systems, the values of attributes advertised by nodes are compared with those required by jobs. For the comparison to be meaningful and effective, the node providers and consumers have to agree upon attribute names and values. The exact matching and coordination between providers and consumers make such system inflexible and difficult to extend to new characteristics or concepts. Moreover, in a heterogeneous multiinstitutional environment such as Grid, it is difficult to enforce the syntax and semantics of node descriptions. Therefore, MDS neither offers expressive description facilities nor provide sophisticated matchmaking capabilities. Hence, in these distributed computing environment where resources come and go dynamically, there is a demand for a framework to support semantic description and semantic discovery of service and resources. Currently, there is no tool available for converting the Web Service Description Language written for Grid Service into OWL file. The WSDL2OWL-S tool that comes with OWL-S package can convert WSDL into OWL-S file [15] but it cannot convert the Grid WSDL into OWL. This is because the WSDL written for a Grid Service is WSRF compliant and it will have WSRF specific elements that cannot be recognized by the tool. Moreover, there are no standards for specifying ResourceProperties in WSDL file as well as in the Service Ontology. Currently there is no component in Globus toolkit to facilitate the Service Provider to describe the service semantically. Since the MDS registry is built using UDDI v.2, it supports conventional keyword matching of services and it is not possible to expect semantic searching and retrieval from MDS4. Hence to semantically describe the services, we need to create ontology of grid service, but currently MDS4 does not include any tool to create service ontology. Technical Report (April, 2005 – March, 2006) 31 IT@MIT Development of Front End tools for Semantic Grid Services 7. Proposed Approach With the motivation of addressing the issues discussed in the last section, this project work introduces several approaches of implementing knowledge layer and proposes semantic grid architecture using those approaches. The section 8 proposes and implements semantic grid architecture by integrating protégé editor with Globus Toolkit and implements Parameter Matchmaking Algorithm for semantic discovery of services. However, the service providers need to have an expertise in protégé editor to create ontology of their services in this approach. In section 9, we propose a five layered semantic grid architecture using Gridbus broker that addresses the need of semantic component in the grid environment to discover and describe the grid resource semantically It is decided to devise a knowledge layer for semantic description of resources and its semantic retrieval, for semantic description of services and matchmaking of advertised grid services against the requested ones. Technical Report (April, 2005 – March, 2006) 32 IT@MIT Development of Front End tools for Semantic Grid Services 8. Semantic Grid Services using PEG 8.1 Introduction The main objective of this research work is to extend the capability of Globus Toolkit (GT) to support semantic description and discovery of Grid Services. We have integrated GT with Protégé editor to support globus user for semantic descriptions of Grid services. This Protégé Enabled Globus toolkit (PEG) is used for semantic description of services by creating service ontology and the Algernon inference engine is used to interact with the created ontology. We have also proposed a new algorithm called Parameter Matchmaking Algorithm that computes various degrees of matching of advertised service descriptions with that of the requested ones based on the Input, Output and Functionality (IOF) parameters. On the contrary to algorithms that return only success or fail, ranked degrees of match obtained from our proposed algorithm provide better precision against the selection of a service among a large set of services. A separate Grid Portal is developed using Gridsphere framework that enables the service requester to submit query and performs the matchmaking of requested service against the advertised ones. The proposed algorithm is tested successfully in PEG toolkit for the semantic discovery of grid services. 8.2 Layered Architecture In PEG, the Protégé editor is integrated with GT to address the demand of single toolkit for semantic description and representation of services by creating service ontology and its capability is extended to enable semantic description and representation of services by creating service ontology. We propose a five layered architecture as shown in the Fig 8.2.1 using PEG as middleware for semantic description and discovery of services. W omit the discussion of Fabric layer to avoid explanation redundancy. Technical Report (April, 2005 – March, 2006) 33 IT@MIT Development of Front End tools for Semantic Grid Services Semantic Discovery portlet Grid Information Portlet Application Portlet Knowledge Layer Semantic Component Tokenizer Service Ontology Information Data Management File/Data MDS GRAM GridFTP Protégé_3.1 Authentication Application Layer Authorization GT4 Middleware Computational Grid Services (High level Grid Services) Grid Middleware Services GSI R2 R1 Resources Fabric Layer R3 R4 Fig 8.2.1: A layered architecture for Semantic Grid Services using PEG Grid Middleware Services This layer incorporates Grid Middleware and we use PEG as Grid Middleware in this research work. It also consists of required protocols for Authentication and Authorization which are implemented using Grid Security Infrastructure provided by PEG. High Level Grid Services This layer uses the communication protocols to control, initiate, monitor, accounting and payment for the sharing of functions of individual resources. This layer is responsible for individual resource management and also for all global resource management and interaction with collections of resources. The other high level services Technical Report (April, 2005 – March, 2006) 34 IT@MIT Development of Front End tools for Semantic Grid Services included in this layer are Information (MDS) and job management services (GRAM), data management services (GridFTP). This layer also allows grid service provider to provide semantic meaning for the services advertised in MDS registry using protégé in PEG. Knowledge services layer Running on top of the high level grid service layers, the knowledge service layer can provide knowledge discovery from a huge amount of data. This layer is domain oriented and usually consists of service ontology built using protégé editor. The parameter matchmaking algorithm proposed in this project is implemented in this layer that performs matchmaking of services based on IOF parameters. Application layer The application layer enables the use of resources in a grid environment through various collaboration and resource access protocols. The semantic portlet present at this layer enables the service provider to register the service into the MDS registry and it prompts the provider to describe the service semantically using Protégé editor. The portlet also enables the service requester to submit the query and semantic retrieval of information from the service ontology using the proposed matchmaking algorithm. In addition to that, this layer may also consist of various application portlets to use grid resources. The semantic component in the knowledge layer enables the service provider for semantic description of services using protégé editor. It also implements the proposed Parameter Matchmaking Algorithm to compute the degrees of match between the advertised service ontology and the requested services on the basis of IOF parameters for semantic matchmaking of services. Technical Report (April, 2005 – March, 2006) 35 IT@MIT Development of Front End tools for Semantic Grid Services 8.3 Parameter Matchmaking Algorithm Matchmaking refers to capability matching which means to compare the requested service description with the advertised service descriptions. The goal of this comparison is to obtain information on how similar they are [24]. This degree of similarity is used to determine degrees of match between the advertised services and the requested capabilities. Comparing the requested service requirements with the advertised service descriptions takes all the inputs and the outputs into account [19]. In this research work, the proposed algorithm computes various matching degrees of service advertisement (A) and request (R) by successively applying different filters. The comparison is based on three parameters of the service namely the Inputs, Outputs and Functionalities (IOF). The service ontology that clearly describes IOF of the service is created using protégé editor of PEG to enable effective matchmaking of services. The algorithm compares the IOF of the requested services with that of the advertised ones and computes various degrees of matches as listed below. Exact Match Here the advertised IOF of the service are exactly matches with that of requested service. A(IOF) ≡ R(IOF) → { A(I) ≡ R(I) ∩ A(O) ≡ R(O) ∩ A(F) ≡ R(F) } A? R Plug-in match This filter guarantees that advertised service A requires less input that it has been specified in the request R. In addition, service S is expected to return more specific output data whose semantics is exactly the same or very close to what has been requested by the user. A(IOF) ≥ R(IOF) → { A(I) ≥ R(I) U A(O) ≥ R(O) U A(F) ≥ R(F) } A(IOF) B(IOF) Technical Report (April, 2005 – March, 2006) A(IOF) ? R(IOF) 36 IT@MIT Development of Front End tools for Semantic Grid Services Subsumes match This filter is more or less the reverse of plug in filter and it is weaker than plug in with respect to the extent the returned IOF is more specific than requested by the user. A(IOF) ≤ R(IOF) → { A(I) ≤ R(I) U A(O) ≤ R(O) U A(F) ≤ R(F) } R(IOF) A(IOF) A(IOF) ? R(IOF) Intersection This filter reveals that not all the capabilities requested by the service matching with the advertised capabilities. A(IOF) ? R(IOF R(IOF) A(IOF) Disjoint The requested service R does not match with the described service A according to any of the above filters. A(IOF) ≠ R(IOF) → { A(I) ≠ R(I) U A(O) ≠ R(O) U A(F) ≠ R(F) } The algorithm starts with extracting IOF from the advertised service. Since, the ontology knowledge base (KB) has been created using OWL, a reasoner can be used to retrieve the information from KB. Here, we use Algernon inference engine to interact with KB and executes different queries to retrieve IOF of the advertised service and stores it. The requested IOF is then compared with that of IOF of the advertised service and degrees of match is obtained Technical Report (April, 2005 – March, 2006) 37 IT@MIT Development of Front End tools for Semantic Grid Services Algorithm: Parameter Matchmaking Algorithm Input: Advertised_Ontology A, Requester_query R Output: Degree_of_Match M Rank: input_rank,output_rank,functionality_rank parse A into A(I1,I2,..Im),A(O1,O2,..On) and A(F1,F2,..Op) parse R into R(I1,I2,..Ir),R(O1,O2,..Os) and R(F1,F2,..Ot) c1=0, c2=0,c3=0 for each parsed A( I1,I2,..Im), A(O1,O2,..Om), A( F1,F2,.Fm) do if A(Ii)== R(Ij) then c1++; if A(Oi)== R(Oj )then c2++; if A(Fi)== R(Fj) then c3++; end if end for input_rank=compute_intermediaterank(m,c1,r) output_rank=compute_intermediaterank(n,c2,s) functionality_rank=compute_intermediaterank(p,c3,t) M=leastof(input_rank, output_rank, functionality_rank) Rank compute_intermediaterank(i,c,j) { if(i==c==j) then R=1; if(i>c=j), then R = 0.75; if(i=c<j), then R =0.50; if(i>c<j), then R = 0.25; if(i!=c!=j), then R = 0; } Fig 8.3.1: Parameter Matchmaking Algorithm 8.4 Implementation For testing and demonstration purpose, the proposed architecture is implemented and is discussed in this section. It also discuss about various modules involved in this project including creation of Grid service, service ontology creation, Service Provider module and also service requester module. 8.4.1 Developing Grid Service Grid Service can be developed using any of the available middleware that complements Grid architecture. We use PEG which is based on Web Service Resource Framework specification (WSRF) in this research work. A WSRF compliant Web Service Description (WSDL) file is written that defines the interface for four different methods namely add, sub, multiply and divide. The Request and Responses have been clearly defined and also the input and output messages. We also defined an interface that returns the result and one more interface to receive the inputs. The JAVA programming language is used to implement the service. The methods add, sub, multiply and divide, when invoked, will perform the respective operation on both input values and returns the result to the client module. Technical Report (April, 2005 – March, 2006) 38 IT@MIT Development of Front End tools for Semantic Grid Services 8.4.2 Creation of Service Ontology The Grid service developed is deployed onto the globus container and registered in MDS. However, MDS does not provide semantic meaning to the service, we need to create service ontology to enable semantic discovery of services. We use protégé editor of PEG to describe this service semantically and create service ontology as shown in the Fig 8.4.2.1 series. The ontology clearly describes the methods implemented in the service and also the service parameters. It may also includes non-functional properties like contact person etc. The Fig 8.3.2.1a shows the class-instance hierarchy of the grid service and also the general category to which the service belongs. The Fig 8.4.2.1b shows the object properties by which the classes communicate between them. The Fig 8.4.2.1c shows the various datatype properties of the grid service described. The Fig 8.4.2.1d shows the class hierarchy described for operations and their instances. The Fig 8.4.2.1e shows the class hierarchy described for parameters and their instances. Fig: 8.4.2.1a – Class-Instance Hierarchy of Service Ontology – TreeView Technical Report (April, 2005 – March, 2006) 39 IT@MIT Development of Front End tools for Semantic Grid Services methods_implemented (Domain – GridService, Range –Operations) isImplementedBy(Domain –Operations, Range-GridService) hasInput(Domain –GridService, Range –Input) isUsedBy(Domain –Parameter, Range –GridService) Output hasOutput(Domain –GridService, Range – Output) Fig: 8.4.2.1b – Nested View of Service Ontology with Domain-range of object property Fig 8.4.2.1.c: GridService Class and its Instance with properties Technical Report (April, 2005 – March, 2006) 40 IT@MIT Development of Front End tools for Semantic Grid Services Fig 8.4.2.1.d: Operations Class and its Instances with properties Fig 8.4.2.1e: Parameter Class and its Instances with properties 8.4.3. Matchmaking Module The parameter matchmaking algorithm is implemented in knowledge layer of the proposed architecture using java language in this project. The java implemented algernon packages are used to query the ontology knowledge base. The package offers several java APIs with which various queries can be executed. The java implemented tokenizer extracts IOF from the service requester’s query by eliminating unwanted information from the query which is then compared with that of the advertised service and computes the degrees of matches. The algorithm starts with extracting IOF from the advertised service by executing appropriate algernon queries over service ontology described in PEG. The tokenizer implemented in the semantic component receives the service requester’s query which will be in non-syntactic format, eliminates unwanted information from the query and identifies IOF. The algorithm will then go through four stages as Technical Report (April, 2005 – March, 2006) 41 IT@MIT Development of Front End tools for Semantic Grid Services shown in Fig 8.4.3.1 to compute the degrees of match. The matchmaking module then performs comparison of IOF of the requested service R(IOF) with that of advertised A(IOF) service individually in three stages and computes three intermediate ranks namely Ir, Or, and Fr as shown in the Fig 8.4.3.1. All the intermediate ranks are combined together in aggregate module and least rank is considered as the final rank. This final rank reveals the degrees of match and the requester is allowed to access service if the ranked degrees of match is neither intersection nor disjoint [25]. R(I) A(I) Input Matching Ir R(O) A(O) R(F) Output Matching A(F) Functionality Matching Or Fr Aggregate Module Ranked Degree of Match Fig 8.4.3.1: Stages of Parameter Matchmaking Algorithm 8.4.4. Semantic Grid Portal A Grid portal that consists of several portlets to provide required user interface for semantic description and discovery of services is developed. It provides necessary interface for the service providers to register their grid service and to describe it semantically. It also provides interface for the service requesters to submit their queries and to perform matchmaking of services. The Service Oriented Architecture model of the proposed architecture for semantic grid service is shown in Fig 8.4.4.1. The sequence diagram for the service requester and the provider are shown in the Fig 8.4.4.2. Technical Report (April, 2005 – March, 2006) 42 IT@MIT Development of Front End tools for Semantic Grid Services Fig 8.4.4.1: Service Oriented Architecture of Semantic Grid using PEG Fig 8.4.4.2 a: Sequence diagram of service provider Fig 8.4.4.2 b: Sequence diagram of service requester 8.5. Experimental Results The user interface for semantic discovery of services and for matchmaking of advertised and requested services is developed using Gridsphere framework [26]. The service implemented in our testing purpose has four different arithmetic operations namely addition, subtraction, multiplication and division. Here, the functionalities play vital role in matching of services. The corresponding degrees of match are obtained using Technical Report (April, 2005 – March, 2006) 43 IT@MIT Development of Front End tools for Semantic Grid Services parameter matchmaking algorithm and are listed in table 8.5.1.The table 8.5.1 also reveals the possibility of service access for all the degree of matches. The Fig 8.5.1 is a snapshot that shows the requester’s query and the corresponding degree of match obtained. Fig 8.5.1: Snapshot for plugin match Sl.No 1. 2. 3. 4. 5. 6. 7. Requested Capability Ranked Degree Of Match Addition and Subtraction Addition, Subtraction, Multiplication and Division Addition, Subtraction and Reversal of String Squaring and Temperature service Addition, Subtraction, Multiplication and Division, Temperature Service Multiply, add, divide Square service Plugin Exact Possibility of Service Invocation True True Intersection False Disjoint Subsume False True Plugin Disjoint True False Table 8.5.1: Experimental results for various inputs Technical Report (April, 2005 – March, 2006) 44 IT@MIT Development of Front End tools for Semantic Grid Services 8.6 Observations In this research work, we extended the capability of Globus Toolkit 4.0 by integrating Protégé ontology editor in it. This feature facilitates the Grid Service Providers to describe their services semantically. The semantic description of services enables semantic discovery of services. A semantic matchmaking algorithm is proposed that performs matchmaking of services on the basis of IOF parameters. The user interface for semantic description and retrieval is developed as a portal enabling the user to interact easily with the grid environment. A MathService is implemented and described semantically using PEG. The proposed algorithm has been applied for semantic matchmaking of mathematical services implemented. The proposed Architecture using Parameter Matchmaking Algorithm can be applied for any specific applications enabling the users to access grid comfortably. Technical Report (April, 2005 – March, 2006) 45 IT@MIT Development of Front End tools for Semantic Grid Services 9. Semantic Grid Architecture using Gridbus Broker 9.1 Introduction This work addresses the need of semantic component in the grid environment to discover and describe the grid resources semantically. We propose semantic component that enables semantic description of grid resources with the help of ontology template. Further, we propose semantic grid architecture by proposing knowledge layer at the top of gridbus broker architecture and thereby enabling broker to discover resources semantically. The Ontology template has been created by considering all possible types of computing resources in the grid environment and protégé-OWL APIs is effectively used to update the template. Algernon inference engine is used for interacting with the ontology template to discover suitable resources. 9.2 Motivation In such an environment, it is essential to facilitate the user for easier discovery of the available resources. A resource on a grid can be any entity ranging from compute servers to databases, scientific instruments, applications etc. In grid like environment where resources are generally owned by different people, communities or organizations with varied administration policies and capabilities, obtaining and managing these resources is not a simple task. Resource brokers simplify this process by providing an abstraction layer to users who just want to get their work done. In the field of grids and distributed systems, resource brokers are software components that let users to access heterogeneous resources transparently [27]. Gridbus broker is a resource broker designed to support both computational and data grid applications. However, the resource discovery module implemented in the gridbus broker supports conventional keyword matching for discovering suitable resources. The broker neither offers expressive description facilities nor provides sophisticated matching capabilities. The resource discovery using semantics is generally more accurate than keyword based search, as the direct similarities are found using inference logic. In this research work, we propose knowledge layer at the top of gridbus broker architecture for Technical Report (April, 2005 – March, 2006) 46 IT@MIT Development of Front End tools for Semantic Grid Services semantic description and discovery of resources. Eventually, the gridbus broker allows the resource requester to submit the job and execute it in the resource identified by knowledge layer. 9.3 Resource Brokers Grid platforms support sharing, exchange, discovery, selection and aggregation of geographically/Internet wide distributed heterogeneous resources – such as computers, databases, visualization devices, and scientific instruments. However, the harnessing of the complete power of grids remains to be a challenging problem for users due to the complexity involved in the creation and composition of applications and their deployment on distributed resources. Resource brokers hide the complexity of grids by transforming user requirements into a set of jobs that are scheduled on the appropriate resources, managing them and collecting results when they are finished. A resource broker in a data grid must have the capability to locate and retrieve the required data from multiple data sources and to redirect the output to storage where it can be retrieved by processes downstream. It must also have the ability to select the best data repositories from multiple sites based on availability of files and quality of data transfer. Gridbus Broker is one such broker developed by The University of Melbourne, Australia. The user’s job and quality of service requirements are submitted to the grid resource broker. The grid resource broker performs resource discovery based on user-defined characteristics, including price, using the Grid Information service and the Grid Market Directory. The broker identifies the list of data sources or replicas and selects the optimal ones. The broker also identifies the list of computational resources that provides the required application services using the Application Service Provider (ASP) catalogue. The broker ensures that the user has the necessary credit or authorized share to utilize resources. The broker scheduler maps and deploys data analysis jobs on resources that meet user QoS requirements. The broker agent on a resource executes the job and returns results. The broker collects the results and passes them to the user. The complete architecture of gridbus broker is available at Technical Report (April, 2005 – March, 2006) 47 IT@MIT Development of Front End tools for Semantic Grid Services http://www.gridbus.org/broker. We exploit this sophisticated feature of Gridbus broker to devise semantic grid architecture. The semantic component implemented at the top of Gridbus broker will enable semantic description of grid resources using adaptive ontology template. It also implements semantic discovery module that uses Algernon inference engine to interact with the Ontology Knowledge base and discovers closely matching resources. 9.4 Layered Architecture We propose a five layered architecture that implements knowledge layer at the top of gridbus broker architecture as shown in Fig 9.4.1 and it can be used for building semantic grid infrastructure. The discussion of Fabric layer is omitted to avoid redundancy in explanation. Core Middleware Layer This layer incorporates Grid Middleware and currently the broker supports Globus, Alchemi, Nimrod-G and Unicore. This layer implements required protocols for Job scheduling, Resource Allocation and Management service and the like. High Level Middleware Layer/Gridbus Broker This layer uses the services offered by Gridbus broker. The Gridbus broker follows a service-oriented architecture and is designed on object-oriented principles with a focus on the idea of promoting simplicity, modularity, reusability, extensibility and flexibility. The inputs to the broker are the tasks and the associated parameters with their values. A task is a sequence of commands that describe the user’s requirements. The task requirements drive the discovery of resources such as computational nodes and data resources. The resource discovery module gathers information from remote information services such as the Grid Market Directory or Grid Index Information Services (GIIS) for availability of compute resources. Optionally, the list of available compute resources can be provided by the user to the broker. The broker also interacts with the information service on each computational node to obtain its properties. The task descriptions, i.e., the task along with its associated parameters, is resolved or “decomposed” into jobs. A job is Technical Report (April, 2005 – March, 2006) 48 IT@MIT Development of Front End tools for Semantic Grid Services an instantiation of the task with a unique combination of parameter values. It is also be unit of work that is sent to a grid node. The set of jobs along with the set of service nodes are an input to the scheduler. The scheduler matches the job requirements with the services and dispatches jobs to the remote node. The jobs are dispatched to the remote node through the actuator component. The actuator submits the job to the remote node using the functionality provided by the middleware running on it. The actuator has been designed to operate with different grid middleware framework and toolkits such as Globus that primarily runs on Unix-class machines and Alchemi, which is a .NET based grid computing platform for Microsoft Windows enabled computers. Hence it is possible to create cross-platform grid implementation using the gridbus broker. On completion of execution, the agent returns any results to the broker and provides debugging information. The monitoring component updates the status of the jobs which is fed back to the scheduler to update its estimates of the rate of execution and of the performance of the compute resources. Knowledge layer Running on top of a high level middleware layer, the knowledge layer provide knowledge discovery from a huge amount of data. This layer is domain oriented and usually consists of service ontology built using protégé editor. The semantic component implemented in this layer enables semantic description of resources present in the grid environment. The component also provides a framework for semantic discovery of resources across the grid. A suitable inference engine is used to interact with the resource ontology and obtains suitable resources requested by the user to execute the job. ProtégéOWL APIs are used to develop resource ontology of the grid and its modification. Technical Report (April, 2005 – March, 2006) 49 IT@MIT Development of Front End tools for Semantic Grid Services Portlet Portlet Portlet Resource requester Semantic Portlet Reasoner Semantic Interpreter Application Layer Tokeniser Knowledge Layer Job File Job De scriptor App Desc File Reasoner Query Resource Desc File Scheduler Jobs Actuator High Level Middleware layer Book Keeper Job Monitor Gridbus Broker Agent Globus Unicore Alchemi Resources Core Middleware layer SRB Storage Devices Super Computer Resources Fabric Layer Cluster Desktop Machine Fig 9.4.1: The Semantic Grid Architecture Application layer The application layer enables the use of resources in a grid environment through various collaboration and resource access protocols. The semantic portlet present at this layer enables the resource provider to register the resource into the grid environment and also describe the resource semantically. The portlet also enables the resource requester to submit the query and semantic retrieval of suitable resource from the service ontology using suitable reasoner. This layer may also consist of various application portlets to use grid resources and for access to the grid environment. Technical Report (April, 2005 – March, 2006) 50 IT@MIT Development of Front End tools for Semantic Grid Services 9.5 Semantic Description of Resources The semantic component implemented in the knowledge layer uses semantic web’s approach of making information understandable by computers. Information must therefore be described in such a way that computers can interpret it and derive its meaning. This will enable computers to work more intelligently with the information. Computer understandable information is information annotated with semantics that describes the meaning of the information. The annotations themselves have to be defined so that computers can interpret and reason with them. A collection of annotations where their meaning is described is called an ontology which plays central role of knowledge layer proposed in the architecture. Ontologies are used to capture knowledge about some domain of interest. Ontology describes the concepts in the domain and also the relationships that hold between those concepts [13]. Different ontology languages provide different facilities. The most recent development in standard ontology language is Web Ontology Language (OWL) from the World Wide Web Consortium. It is based on different logical model which makes it possible for concepts to be described and hence complex concepts can be built up in definitions out of simpler concepts [13, 28]. In the Grid environment, users and software agents should be able to discover, invoke, compose and monitor grid nodes offering particular services and having particular properties. An important goal for semantic grid then is to provide a framework for describing the resources semantically. 9.6 Resource Ontology Template To date, much ontology creation has been a manual process. In [30], common sense knowledge was extracted manually from different sources and expressed using Ontologies. This is inevitably a very labor-intensive process, and there is a need to at least partially automate the process of ontology creation and knowledge extraction. Hence, we can imagine a predefined ontology of classes and relationships, plus a knowledge base of instances, being extended by automated learning [29, 34]. We create ontology of possible resources using protégé editor for semantic Technical Report (April, 2005 – March, 2006) 51 IT@MIT Development of Front End tools for Semantic Grid Services description of resources. Our structuring of the ontology of nodes is motivated by the need to provide semantic information about a resource. The Resource ontology proposed in this project takes all possible types of computing resources into account. We propose the following precise definitions to explain the motivation behind the creation ontology template and how it can be used for semantic description. Definition 1 An ontology template is a domain specific ontology that provides hierarchy of classes and properties to define their characteristics. Definition 2 Any resource can be modeled as an instance of a specific class provided that the resource can be described using the properties defined in that class. Once the ontology template is created that contains classes and properties, we can build the knowledge base which contains the instances and the specific property instantiations. Together the ontology and the knowledge base make up a semantic repository. Whether, the two parts are stored separately, e.g., in two distinct relational databases depends on the practicalities of the implementation [29]. When a resource is registered into the grid, its information can be described semantically in the ontology template using resource monitoring tool of grid middleware (Ex, MDS of Globus Toolkit). The resource information will be added as an instance of the respective class. Protégé-OWL APIs can be used to dynamically create instance of a particular class and also to update their properties. With these features, the resource information of the grid environment can be described semantically which in turn enables semantic discovery of grid resources. We also develop semantic discovery module that uses Algernon inference engine to query the knowledge base of the grid and retrieves the resource which is closely matching to the user request. Technical Report (April, 2005 – March, 2006) 52 IT@MIT Development of Front End tools for Semantic Grid Services 9.7 Resource Discovery Module This module enables the resource requester to submit the information about the resource required to execute the job. The Query generator generates different types of algernon queries depending upon the requirements specified by the requester. The resource discovery module executes these queries over the ontology knowledge base to obtain best possible resources closely matching to the request. Once the suitable resource is obtained, the resource discovery module submits the resource information to the job descriptor. Meanwhile, the requester submits the application to be executed on the resource to the job descriptor. With this information, the descriptor then creates application description file and resource description file. Both these files are required by the broker to successfully run the application in the specified resource. Fig 9.7.1: Service Oriented Model of Semantic Component The Fig 9.7.1 identifies various modules implemented in semantic component. It provides a framework for semantic description of resources and also for its semantic discovery. The resource description module consists of resource ontology template created using protégé editor provides necessary concepts and properties with which the resource is described. With this approach, the service provider is not required to possess Technical Report (April, 2005 – March, 2006) 53 IT@MIT Development of Front End tools for Semantic Grid Services knowledge in protégé editor as well as in OWL. The ontology template is domain specific and here we refer to possible computing resources in the grid environment. The resultant OWL file can then be queried using any inference engine to interact with the knowledge base. Here, we use Algernon inference engine for querying the ontology knowledge and semantic retrieval of information. 9.8 Design and Implementation For experimentation and demonstration purpose, the globus toolkit 4.0 has been successfully installed in six machines all of with Fedora core Operating system. All the components of globus toolkit have been successfully configured. Also, the MDS component has been tested properly so that the grid-info-search tool plugs the resource information of the local host and stores it in the ldap server. All prerequisite libraries has been installed and tested for proper functioning. 9.8.1 Creation of Ontology Template Protégé has been installed in one of the machine and ontology template has been created by considering all possible computing resources in the grid. The concept of these resources has been defined properly using relations and properties so that the characteristics of any resource can be defined by their properties. It is possible to explain the ontology template created on the basis of Karlsruhe Ontology Model. For illustration purpose, we define the concept of “RAM“ as C = {owl:Thing, RAM, C1024, C128, C256, C512},. For simplicity, we here described in detail about the concept of “C1024”. T = {Integer}, ≤C = {{owl:Thing, RAM},(RAM, C1024},{RAM, C128},{RAM, C256},{RAM, C512}}, A = {hasFreeMB}, R = {presentInComputer}, σA = {(hasFreeMB, (Parameter, Integer))} σR = {(presentInComputer, (RAM, WorkStation))} Technical Report (April, 2005 – March, 2006) 54 IT@MIT Development of Front End tools for Semantic Grid Services I = {C1024_0} V = {192} tC = {C1024, {C1024_0}} tT = {Integer, {192}} tR = {presentInComputer, {C1024, (g06.grid)}) tA = {hasFreeMB, (Integer, {192})} The values of the properties considered to define concepts, can be pulled up from MDS. The Fig 9.8.1.1 shows the ontology template with class hierarchy considered and the Fig 9.8.1.2 shows the object properties with which classes communicate between them. Fig 9.8.1.1: The ontology template shows classes and properties. Technical Report (April, 2005 – March, 2006) 55 IT@MIT Development of Front End tools for Semantic Grid Services Fig 9.8.1.2: Domain and Range of Properties of ontology template 9.8.2 Creation of Knowledge Base The MDS component offers tools to plug resource information of the host and that can be accessed through remote machines. The grid-info-search tool aggregates properties of the node and stores it in the ldap server which can be retrieved from ldap server using suitable ldap query. The resource description module has been developed using java programming language. The module contacts the grid nodes periodically and retrieves resource information by executing suitable ldap queries on those nodes and then updated into the ontology template. The protégé editor offers versatile libraries called Protégé-OWL APIs with which one can manage ontology and performs several operations over the ontology that includes creating and deleting the instances of concepts, assigning values to the properties etc. For every class of information retrieved from the grid node, we create instances of appropriate concept in the ontology template. Also, the values of various properties retrieved are assigned to respective properties of the appropriate concepts in the ontology template. At this point, the ontology template with concepts and properties and corresponding instances and property values together constitutes knowledge base of the Technical Report (April, 2005 – March, 2006) 56 IT@MIT Development of Front End tools for Semantic Grid Services grid resources. This semantic description of resources facilitates the use of inference engine to interact with the knowledge base and retrieves information semantically. Also, the java module is made to execute periodically so that removal and addition of resources is accounted in the knowledge base. The Fig 9.8.2.1 shows the knowledge base that consisting of resource information described semantically in the ontology template. The following coding segment create instance for Workstation concept. OWLNamedClass computerC=owlmodel.getOWLNamedClass("WorkStation"); The following code create instance of datatype property and object property. It also shows how to assign values to those properties. OWLDatatypeProperty hasIP = owlModel.getOWLDatatypeProperty("hasIP"); cpuI.addPropertyValue(owlModel.getOWLObjectProperty("hasCPU Vendor"),cVendorI); computerI.addPropertyValue(owlModel.getOWLObjectProperty("h asCPU"),cpuI); Technical Report (April, 2005 – March, 2006) 57 IT@MIT Development of Front End tools for Semantic Grid Services Fig 9.8.2.1: Knowledge base of the Grid. 9.8.3 Semantic Discovery Module The discovery module relies on the power of Algernon inference engine. In order to make the conversion of user query into Algernon query and also to provide flexible mechanism of querying, we propose query tags. We took inspiration for forming query tags from GMAIL tagging mechanism. In GMAIL, it is possible to search all mails with a particular label using the query “label:label_name”. Similarly, here we use properties of the resource as label and requested value as label_name. However, we implement a modified version of GMAIL query tag in our discovery mechanism. We also include to operators in query label for flexible querying. For Ex., If the user wants to search for machines with free RAM value greater than 200 MB, the query value would be Technical Report (April, 2005 – March, 2006) 58 IT@MIT Development of Front End tools for Semantic Grid Services RAM:>200. Currently, the querying system supports >, <, = and also NOT operators. Also, the query mechanism is designed in such a manner that it can query a resource with multiple resource constraints. For Example, if the user wants to query a machine with free RAM 200MB and free Harddisk space of 10000MB, then the query “freeRAM:200 freeHDD:10000” will retrieve those resources with 200MB and harddisk space with 10000MB. The Query generator module parses the user query using regular expression, stores lefttag and righttag in a vector and converts it into suitable Algernon query. Currently, the system supports the following queries:"((:instance RAM ?inst)(hasFreeMB ?inst ?val)(:TEST (:LISP (= ?val "+rightTag+")))(presentInComputer ?inst ?instanceComputer))"; "((:instance RAM ?inst)(hasFreeMB ?inst ?val)(:TEST (:LISP "+rightTag.charAt(0)+" ?val "+rightTag.substring(1)+")))(presentInComputer ?inst ?instanceComputer))"; "((:instance CPU ?inst)(hasL2Cache ?inst ?val)(:TEST (:LISP (= ?val "+rightTag+" ) ) )(:instance WorkStation ?instanceComputer)(hasCPU ?instanceComputer ?inst))"; "((:instance CPU ?inst)(hasL2Cache ?inst ?val)(:TEST (:LISP ("+rightTag.charAt(0)+" ?val "+rightTag.substring(1)+" ) ) )(:instance WorkStation ?instanceComputer)(hasCPU ?instanceComputer ?inst))"; "((:instance CPU ?inst)(hasCPUSpeed ?inst ?val)(:TEST (:LISP (= ?val "+rightTag+" ) ) )(:instance WorkStation ?instanceComputer)(hasCPU ?instanceComputer ?inst))"; "((:instance CPU ?inst)(hasCPUSpeed ?inst ?val)(:TEST (:LISP ("+rightTag.charAt(0)+" ?val "+rightTag.substring(1)+" ) ) )(:instance WorkStation ?instanceComputer)(hasCPU ?instanceComputer ?inst))"; Technical Report (April, 2005 – March, 2006) 59 IT@MIT Development of Front End tools for Semantic Grid Services "((:instance CPU ?inst)(hasCPUSpeed ?inst ?val)(:TEST (:LISP ("+rightTag.charAt(0)+" ?val "+rightTag.substring(1)+" ) ) )(:instance WorkStation ?instanceComputer)(hasCPU ?instanceComputer ?inst))"; "((:instance FileSystem ?inst)(hasFreeSpace ?inst ?val)(:TEST (:LISP (= ?val "+rightTag+" ) ) )(:instance WorkStation ?instanceComputer)(hasFileSystem ?instanceComputer ?inst))"; "((:instance FileSystem ?inst)(hasFreeSpace ?inst ?val)(:TEST (:LISP ("+rightTag.charAt(0)+" ?val "+rightTag.substring(1)+" ) ) )(:instance WorkStation ?instanceComputer) (hasFileSystem ?instanceComputer ?inst))"; The module will then execute the queries over the knowledge base of the grid and obtains the resource that is matching with the user’s request. The module also enables the requester to submit the job and execute it on the resource obtained from the discovery module. The job submitter generates application description file and resource description file using the information given by the user and resource discovered. It is then submits both the file to the gridbus broker and obtains the results which will be delivered to the user. 9.8.4 Job Descriptor The resource discovery module interacts with the knowledge base and obtains best possible resource depending on the user requirements. The user is then prompted to submit the job to the gridbus broker. The gridbus broker executes user’s job in the resource discovered by the discovery module. The user is prompted to load the executable followed by the command to execute the job. With this information, the job descriptor creates two XPML files namely the Application Description File and Resource Description File which are needed by the broker to locate the resource and execute it. The Application Description File is an XML file with special elements as defined in the XML Technical Report (April, 2005 – March, 2006) 60 IT@MIT Development of Front End tools for Semantic Grid Services schema that comes with the broker. XPML supports description of parameter sweep application execution model in which the same application is run for different values of input parameters often expressed as ranges. An XPML application description consists of three sections: Parameters, Tasks, and Requirements. Parameters normally have a name, type and domain and any additional attributes. Parameters can be of various types including: integer, string, gridfile and belong to a “domain” such as single, range or file. A task consists of “commands” such as copy, execute, substitute etc. The copy command specifies a copy operation to be performed. Each of the copy commands has a source and destination file specified. An execute command is where actual execution happens. The execute command specifies an executable to be run on the remote node. It also specifies any arguments to be passed to the command on the command-line. A substitute command specifies a string substitution inside a text file. This operation is used to substitute the names of user-defined variables. The resource description file is just an xml file describing the resources that can be used by the broker, and their properties as defined in the resource description schema that comes with the broker. The resource description can be used to describe two types of entities – resources and credentials to access the resources. A resource can be of three types: Compute resources, storage resource and services. Compute resources are servers to which the user’s jobs can be submitted for execution. Storage resources are used to store the results of execution, and hence can be considered as data sinks. Service resources are those which provide generic services that can be used by the broker. A compute resource is associated with a “domain” which can take two values – “local” and “remote”. Local resources could be the local computer, or a cluster (on which the broker is running). Remote compute resources are used to represent nodes on the grid which have a job-submission interface accessible via a network. So resources which run grid-middleware such as Globus, Unicore and Alchemi etc. are described here. Technical Report (April, 2005 – March, 2006) 61 IT@MIT Development of Front End tools for Semantic Grid Services A storage resource is a data sink where the user can opt to store the results of execution of a grid application. Currently, this feature is not fully supported by the broker. A service resource can be of two types – “information” services and “application”services. Information services are typically entities which provide information about other resources or services. Currently supported service types include the SRB MCAT and the replica catalog. Application services provide applications hosted on nodes that can be accessed as a service. A “credentials” entry describes the user’s authentication information that is used to access the services provided by a grid resource. Credential can be of the following types – x.509 based proxy certificates, simple username/password pairs, MyProxy saved proxies or key stores. For demonstration purpose, we wrote a simple application that performs multiplication of two numbers without taking any external arguments. This job must be executed in a resource identified by the semantic discovery module. The application has been compiled successfully and respective class file is created. The user searches for the resources through the semantic component and the resource discovery module discovers the suitable resource, providing the job descriptor with the hostname of the resource. Meanwhile, the user’s job and the Unix command needed to execute the job are submitted to descriptor. Hence, the class file, command to execute the class file and the hostname of the resource are inputs to the job descriptor. The Job descriptor is implemented using java programming language that automatically creates application description file and resource description file with its input information. They will be submitted to the broker and initiates scheduling of jobs. Once the execution is over, the results will be collected and presented to the user. The following is the resource description file if the node discovered by the resource discovery module is the same in which broker is running. In that case, the compute resource is local resource. Technical Report (April, 2005 – March, 2006) 62 IT@MIT Development of Front End tools for Semantic Grid Services <?xml version="1.0" encoding="UTF-8"?><xgrl xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xml/ResourceDescript ionSchema.xsd"> The following coding segment identifies credential needed to access the local resource. <credentials id="prox1" type="proxyCertificate"> <proxyCertificate source="local"> <local password=""/> </proxyCertificate> </credentials> The following coding segment identifies the local computing resources. In this case “g06.grid” is the hostname of the local compute resource. <resource type="compute" credential="prox1"> <compute domain="local"> <local middleware="globus" version =4.0> <globus hostname="g06.grid"/> </local> </compute> </resource> </xgrl> The following is the coding segment of the resource description file needed to execute broker in the remote node. <?xml version="1.0" encoding="UTF-8"?><xgrl xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xml/ResourceDescript ionSchema.xsd"> The following coding segment identifies credential needed to access the local resource. Here the password has been specified which will be used for authentication purposes. <credentials id="prox1" type="proxyCertificate"> <proxyCertificate source="local"> <local password="globus"/> Technical Report (April, 2005 – March, 2006) 63 IT@MIT Development of Front End tools for Semantic Grid Services </proxyCertificate> </credentials> The following coding segment identifies the local computing resources. In this case “g03.grid” is the hostname of the remote compute resource. <resource type="compute" credential="prox1"> <compute domain="remote"> <remote middleware="globus" version =4.0> <globus hostname="g03.grid"/> </remote> </compute> </resource> </xgrl> Similar to the resource description file, the application description will also be created which is purely dependent on the job’s requirement. The structure of the file will change depending on the nature of job and location of the resource. The following is the coding segment of the application description file in which the job to be executed in the local compute resource. <?xml version="1.0" encoding="UTF-8"?> <xpml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xml/XPMLInputSchema.xsd"> <task type="main"> <execute location="local"> <command value="java cals"/> </execute> </task> </xpml> Since the execute location is local, it is assumed that class file available in the directory that broker can locate. “java cals” is the command to execute the job and the results will be stores in the broker directory. The following is the coding segment of the application description file in which the job to be executed in the remote compute resource. In this case, the job file must be transferred from local machine in which broker is running to the remote node. The execution will take place in the remote node and results will be transferred from the remote node to the local machine. Technical Report (April, 2005 – March, 2006) 64 IT@MIT Development of Front End tools for Semantic Grid Services <?xml version="1.0" encoding="UTF-8"?> <xpml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xml/XPMLInputSchema.xsd"> The following is the code segment to transfer the class file specified in the source element and copied onto the location of the remote node specified in the destination location. <task type="main"> <copy> <source location="local" file="/home/cals.class"/> <destination location="node" file="cals.class"/> </copy> The following is the coding segment to execute the job which is now present in the remote node. <execute location="node"> <command value="java cals"/> </execute> Once the execution is over, the results are collected and transferred back to local machine from the remote destination. <copy> <source location="node" file="stdout.$jobname"/> <destination location="local" file="/tmp/output"/> </copy> </task> </xpml> Once the description files are created, then broker must be invoked and scheduling is initialized. The following coding segment invokes the broker with description files as input. Technical Report (April, 2005 – March, 2006) 65 IT@MIT Development of Front End tools for Semantic Grid Services import org.gridbus.broker.farming.common.GridbusFarmingEngine; import org.gridbus.broker.farming.common.BrokerProperties; public class SimpleBrokerAPIExample { public static void main(String[] args) throws Exception { try{ //Create a new "Farming Engine" GridbusFarmingEngine fe=new GridbusFarmingEngine(properties); //Set the App-description file fe.setAppDescriptionFile("/home/adf.xml"); //Set the Resource-description file fe.setResourceDescriptionFile("/home/rdf.xml"); //Call the initialise method fe.init(); //Start scheduling fe.schedule(); /* * The schedule method returns immediately after starting the * scheduling. To wait for results / monitor jobs, * use the following loop: */ while (!fe.isSchedulingFinished() && !fe.isSchedulingFailed()); }catch (Exception e){ e.printStackTrace(); } } } The coding segment will wait for results and collects them once the execution is over. This discovery module has been currently been tested with globus middleware but since we are using gridbus broker, it can also support Alchemi etc., provided. Technical Report (April, 2005 – March, 2006) 66 IT@MIT Development of Front End tools for Semantic Grid Services 9.9 Experimental Results The following are some of the screenshots of the implementation. A separate gridsphere portlet has been developed to enable the user to interact with the semantic discovery component and submit job to the broker. The portlet has been then deployed onto the tomcat container. Since, the knowledge layer has been implemented as web service identified as unique URI, it is possible to access the semantic component to discover the resource and to submit the job to the broker from remote machine itself. The Fig 9.9.1 shows the front page of the discovery module that presents an user interface layout to enter query. To new user, the interface also presents a link to know about the format of queries and other information to access the semantic component without any problem. This query will be converted into suitable Algernon query and executes over the Knowledge base and as a result, the hostname of the closely matching resource will be listed as shown in Fig 9.9.2. An optional “Detail” button is presented with which one can obtain more details about the host. The portlet then allows the user to proceed further with broker information page as shown in the Fig 9.9.3 through which job can be submitted to the broker and executed in the resource obtained from the discovery module. Technical Report (April, 2005 – March, 2006) 67 IT@MIT Development of Front End tools for Semantic Grid Services Fig 9.9.1: User Interface to enter query Fig 9.9.2: Semantic Retrieval of Resource Information Fig 9.9.3: Job Submission interface with Gridbus Broker Technical Report (April, 2005 – March, 2006) 68 IT@MIT Development of Front End tools for Semantic Grid Services 9.10 Observations The knowledge layer implemented in the proposed architecture makes gridbus broker to describe and discover resources semantically. The resource description module has been designed so that any entry and removal of resources is reflected in the ontology templates making the system more flexible. With this ontology template, we overcome the difficulty of service provider to have the knowledge of protégé ontology editor. However, the ontology template developed in this project is depending on MDS component and hence it may not support middlewares other than globus. Technical Report (April, 2005 – March, 2006) 69 IT@MIT Development of Front End tools for Semantic Grid Services 10. A case Study of WSMX environment In this section, we describe the new and emerging technology for developing semantic web service named Web Service Execution Environment (WSMX). It is an execution environment for dynamic discovery, mediation and invocation of web services based on the Web Services Modeling Ontology (WSMO). We give a brief introduction about various aspects of WSMX in this section and also describe our experience with WSMX while developing semantic web service and its dynamic invocation. 10.1 Web Service Modeling eXecution Framework The Web Services Modeling Execution Environment (WSMX) [32] is an execution environment for dynamic discovery, mediation and invocation of web services. WSMX is based on the Web Services Modeling Ontology (WSMO), an ontology for describing various aspects related to Semantic Web Services. So far web services are mostly hard-wired into the provider's software and their abilities are not too sophisticated. Their main drawback is lack of semantic description and because of that it is difficult to perform automatic or semi-automatic service retrieval. WSMO aims to change this Technical Report (April, 2005 – March, 2006) 70 IT@MIT Development of Front End tools for Semantic Grid Services Fig 10.1.1: The Architecture of WSMX situation in order to fully enable web service functionality through adding semantic means that will result in web services vast proliferation. WSMX is a reference implementation and test bed environment for WSMO. Web Services Capability Descriptions are stored in the WSMX repository and they are described in terms of logic expressions so they can be derived from. When service request (Goal) is sent to WSMX, then WSMX components start to perform their actions. The Fig 10.1.1 shows the architecture of WSMX and its components are explained in brief as follows:Message Adapters: These components are in fact external to the WSMX architecture, but as long as back end applications do not offer a WSMO API they are essential for connecting any kind of back-end application to the WSMX server. The Message Adapters allow transforming from any message format (e.g. RosettaNet, UBL, EDIFACT, ANSI X12, xCBL etc.) to the expected WSML message format. User Interface (WSML Editor): This component is used by the service provider to create the description of the Web Services, Ontologies, Mediators and Goals. Communication Manager: The Communication Manager has a twofold purpose. On the one hand it provides an interface to the Adapters to accept and send WSML messages and on the other hand it is responsible for translating the message into whatever data representation is required by the external entity to be invoked. This translation is often referred to as ‘lowering’. To do so the Communication Manager interprets the interface part of the WSMO service description to determine which binding is necessary for the service. Where it is not fixed, the transport protocol and associated security required for communicating with the external entity may also be selected. After invocation the Communication Manager is responsible to translate the message received from an external entity using any data representation to WSML. This translation is often called ‘lifting’. WSMX Manager: This component is the coordinator within the architecture. Although it is not an essential component to describe the use cases, it is mentioned here because it denotes the Service Oriented Architecture (SOA) approach of WSMX. All data handled Technical Report (April, 2005 – March, 2006) 71 IT@MIT Development of Front End tools for Semantic Grid Services inside WSMX is internally represented as a notification with a type and state. The WSMX manager manages the processing of all notifications by passing them to other components as appropriate. Ontology Repository: WSMX will offer the management of capability descriptions stored in a repository. This repository could be centralized or decentralized, whereas this use case and the current architecture only scopes with a decentralized repository in each WSMX. These repositories are designed to store, search, retrieve and manage WSMO descriptions of Semantic Web Services. Within this document the name Capability Repository is synonymously used for Ontology Repository. Matchmaker: WSMX will offer a set of usable Semantic Web Services by matching capabilities stored in the repository with the goal provided by the user. In subsequent versions WSMX will even be capable to fulfill goals by a composition of the capabilities of several Semantic Web Services. In both cases the result of the Matchmaker can be zero, one or many Web Services. Mediator: WSMX will offer mediation of communicated data. The mediation component tries to determine a Mediator for a request in case this is necessary. This mediation can be between two or more ontologies in the matchmaking process and the opposite way after invocation to mediate between the instance data of a known ontology provided by the executed Web Service to the required data in the invoking application. Another application of Mediators would be the mapping between the data provided in the input of the goal to the actual required input of the Web Service. Choreography Engine: The choreography of a Web Service defines its communication pattern, that is, the way a requester can interact with it. The requestor of the service has its own communication pattern and only if the two of them match precisely, a direct communication between the requestor and the provider of a service may take place. Since the clients communication pattern is in general different from the one used by the Web Service, the two of them will not be able to directly communicate, even if they are able to understand the same data formats. The role of the Choreography Engine is to mediate between the requester's and the provider's communication patterns. This means to provide Technical Report (April, 2005 – March, 2006) 72 IT@MIT Development of Front End tools for Semantic Grid Services the necessary means for a runtime analyses of two given choreography instances and to use Mediators to compensate the possible mismatches that may appear, for instance, to generate dummy acknowledgement messages, to group several messages in a single one, to change their order or even to remove some of the messages in order to facilitate the communication between the two parties. 10.2 Web Service Modeling Ontology The Web Service Modeling Ontology [WSMO] along with its related efforts in the WSML [WSML Working Group] and WSMX [WSMX Working Group] working groups presents a complete framework for Semantic Web Service, combining Semantic Web and Web Service technologies [31]. The Web Service Modeling Language (WSML) is a formalization of the WSMO ontology, providing a language within which the properties of Semantic Web Services can be described. The objectives of the WSMO are to: Apply WSMO technologies for Semantic Web Services. Specify Semantic Web Services with WSMO. Correctly assess technologies, products, and development within Semantic Web and Web Service technologies. The WSMO is ontology for describing Semantic Web Service. WSMO is based on the Web Service Modeling Framework (WSMF).WSMF consists of four different main elements for describing semantic Web services: Ontologies provide the terminology used by other WSMO elements. Goals represent user desires, for which fulfillment could be sought by executing a Web service. Ontologies can be used for the domain terminology to describe the relevant aspects. Web services describe the computational entity providing access to services that provide some value in a domain. These descriptions comprise the capabilities, interface, and internal working of the web service. Mediators resolve interoperability problems between different WSMO elements. Mediators are the core concept to resolve incompatibilities on the data process and protocol level i.e., in order to resolve mismatches between different used terminologies (data level), in how to communicate between Web services (protocol Technical Report (April, 2005 – March, 2006) 73 IT@MIT Development of Front End tools for Semantic Grid Services level) and on the level of combining web services. There are four different mediators as listed below: OOMediators-import the target ontology into the source ontology by resolving all the representation mismatches between the source and the target. GGMediators-connect goals that are in relation of refinement and resolve mismatches between those. WGMediators-link Web services to goals and resolve mismatches. WWMediators-connect several Web services for collaboration. The aim of WSMO is to solve the integration problem by describing Web Services semantically and by removing ambiguity about the capabilities of a Web Services and the problems it solves. 10.3 Web Services Modeling Toolkit The Web Services Modeling Toolkit (WSMT) is a framework for the rapid creation and deployment of homogeneous tools for Semantic Web Services [33]. A homogeneous toolkit improves the users experience while using the toolkit, as the tools have a common look and feel. Usability is also improved as the user does not need to relearn how to use the application when switching between tools. The WSMT enables developers of tools to focus on the tool's functionality and provides the framework within which they can be deployed and executed. The WSMT is implemented in the Java programming language in order to benefit from its multi-platform support and the existing Java libraries available for Semantic Web technologies, for example WSMO4J3. Using the WSMT frame-work does not require the user to learn any new technologies. This can be a problem with other frameworks like Eclipse4, which uses a different graphical library (IBM's SWT - The Standard Widget Toolkit) than most Java users are accustomed to (Sun's Java Swing library). Technical Report (April, 2005 – March, 2006) 74 IT@MIT Development of Front End tools for Semantic Grid Services Fig 10.3.1: Architecture of the WSMT The Fig 10.3.1 shows the architecture of the Web Services Modeling Toolkit, which consists of three tiers. The first tier contains the compact launcher, the second contains the core and the third contains the individual plug-ins. Each tool is implemented as a plug-in to the WSMT framework. Deploying the tool into the framework is just a matter of compiling the plug-in into a jar file, which implements a number of interfaces, and placing the jar file, along with any third-party jars used, into the lib folder of the WSMT installation. This means that new tools can be deployed into the application without the requirement of recompiling the application. Building the classpath dynamically is a major issue when developing applications where it is not known in advance what jar files will be in the classpath. When executing an application in unix environment, scripting can be used to build this classpath. However, this is only possible in operating systems where scripting is supported. The job of the launcher is to build the dynamic classpath. It does this by locating all jar files in the lib folder of the WSMT installation and building a dynamic classloader. This classloader is then used to launch the WSMT core. The WSMT core is responsible for supplying the 'glue' code to the plugins (tools), providing the main application frame, the menu bar, and the configurations for multi-language localization. The core loads all the available tools by searching for plugTechnical Report (April, 2005 – March, 2006) 75 IT@MIT Development of Front End tools for Semantic Grid Services in description files in the lib folder of the WSMT installation. Each description specifies a unique identifier and the class that the core should instantiate in order to load the plugin. This class must implement the Plugin interface, which allows access to the plug-in itself. The WSMT is wrapped in a full installation system, which allows the end user to choose the tools that are installed during the installation process. A fully private Java 1.5 run-time environment is also installed, which means there is no dependency on the user to install any third-party software. A third-party tool provider can choose to supply their own tool for inclusion in the WSMT installation or provide their own installation for their tool. 10.4 Implementation Issues with WSMX With the knowledge of the WSMX environment, we developed a MathService and it is described semantically using WSMO. The WSML editor is used to create ontology and the concepts are described clearly as shown in the Fig 10.4.1. The service implements an adder method that performs addition of two integers and returns an integer as output. Fig 10.4.1: Service Ontology using WSMO Technical Report (April, 2005 – March, 2006) 76 IT@MIT Development of Front End tools for Semantic Grid Services The WSMX environment provides an interface named WSMX invoker with which one can invoke and access the service. F Fig 10.4.2 a: WSMX invoker providing input-one Fig 10.4.2.b: WSMX invoker providing input-two Technical Report (April, 2005 – March, 2006) 77 IT@MIT Development of Front End tools for Semantic Grid Services Fig 10.4.3: WSMX invoker returning output The Fig 10.4.3 shows the WSMX invoker returning output to the requester. The WSMX environment communicates with the service through messages. The Fig 10.4.3 clearly shows the response message received from the service. There is no agreement on a stable Reasoner interface so far. Once work on WSMO reasoner implementation will finalize, its interface will become standardized through WSMX infomodel. It is also mentioned in the website of WSMO that the latest version will be having reasoning feature which will be based on FLORA-2. 10.5 FLORA-2 FLORA-2 is a sophisticated object-oriented knowledge base language and application development platform. It is implemented as a set of run-time libraries and a compiler that translates a unified language of F-logic, HiLog and Transaction Logic into tabled Prolog code. Applications of FLORA-2 include intelligent agents, Semantic Web, ontology management, integration of information and others. The programming language Technical Report (April, 2005 – March, 2006) 78 IT@MIT Development of Front End tools for Semantic Grid Services supported by FLORA-2 is a dielect of F-logic with numerous extensions, which include a natural way to meta-programming in the style of HiLog and logical updates in the style of Transaction Logic. FLORA-2 was designed with extensibility and flexibility in mind, and it provides strong support for modular software design through its unique feature of dynamic modules. FLORA-2 is distributed in two ways. First, it is part of the official distribution of XSB and thus is installed together with XSB. Second, a more up-to-date version of the system is available in http://flora.sourceforge.net A simple FLORA-2 program // Load this into module john[name->'John']. john[age->33]. john[salary->111111]. The above file will be having filename extension .flr. The query to interact with their program and the respective output is shown below. flora2 ?- john[name->Y]. //query This query will retrieve the name of john and store in the variable 'Y'. as follows:Y = john 1 solution(s) in 0.0000 seconds on g03.grid Yes floa2 ?- 10.6 Issues and Difficulties The difficulties we faced while working with WSMX environment is its inability to support linux in the latest development releases. The latest stable release WSMX 0.1 is based on Eclipse framework and is does not support linux operating system. Even, in the latest version, the inference engine is not integrated with the WSMX environment. We communicated Mike Kerrigen, the pioneer of WSMX environment and he promised that their developer group will concentrate in the new stable release with full support to Linux operating system. With these limitations, we found there is no possibility of working with current release of WSMX environment in Linux and work is temporarily suspended. Technical Report (April, 2005 – March, 2006) 79 IT@MIT Development of Front End tools for Semantic Grid Services 11. Further Scope The architectures discussed in the preceding sections implemented with their own knowledge layer, have their own advantages and limitations. The Semantic Grid Architecture using PEG which is described in the section 8 provides the service providers to describe their services semantically using protégé editor integrated with globus toolkit. In this case, the service provider needs to have the familiarity in protégé editor to create service ontology. Since, the semantic descriptions of Grid Service cannot be done automatically, manual intervention for creating grid service ontology is unavoidable. Parameter Matchmaking Algorithm currently works with OWL file but it can also be made to work with OWL-S descriptions too with necessary modifications in the source code. The matchmaking algorithm currently tested with minimal number of OWL files. In actual grid environment, large number of service providers publishes their service ontologies. In those cases, the request needs to be compared with all OWL files to obtain closely matching services thereby increasing the overhead and response time. This can be avoided using the concept of clustering where OWL files are clustered based on some common property which could be service type and the like. Consequently, the request needs to be directed to appropriate cluster and OWL files falling in that cluster only need to be compared. This will greatly improve the performance and leads to efficient searching of services. The semantic grid architecture using gridbus broker described in section 9 enables semantic description of grid resources using ontology template. This approach of using an ontology template has been proposed after thorough literature survey in related works. The definitions proposed in that architecture has been a result of thorough analysis of ontology literatures. Though the ontology template considers all possible computing resources in the grid, insertion of new class of resource will not be possible automatically. This is because, the semantic description module currently does not implement any mechanism to identify entry of anonymous resource in the grid. Currently, the ontology template does not impose any restrictions on concepts. However, this feature can be added to improve the efficiency of resource discovery Technical Report (April, 2005 – March, 2006) 80 IT@MIT Development of Front End tools for Semantic Grid Services The semantic discovery module implemented in the architecture relies on the power of Algernon inference engine. Currently, the discovery module implements about ten types of queries. This can greatly be increased to support more and more number of types of queries. Algernon is a rule based inference engine supporting backward and forward chaining rules. To date, suitable rules are being tested and will be added in future thereby increasing speed of resource discovery. Still we need to exploit constrains and axioms imposed on ontology concepts while querying Algernon inference engine. This feature will also be added and tested. In the proposed discovery mechanism, we present a user interface which will accept the query in predefined format. The user can query a resource by specifying necessary constraints to meet his requirement. For example, freeRAM of 400MB. These constraints will be treated as properties of the resource and its associated value that is present in the ontology knowledge base. The Algernon inference engine queries for a resource using this property value. Hence, the user needs to query a resource using the property that is used in ontology. This is not practical always as there can be many words interpreting the same meaning. For example, freeRAM can also be equivalent to hasfreeRAM or RAM. Currently, we implement Hash table with similar words revealing the same properties. But we can take inspiration from google approach of training the system to learn about same words interpreting similar meaning. In this approach, we can present a user interface that lets the people using this discovery mechanism to update the new words thereby it is possible to attain greater efficiency of semantic search. With these observations and inferences, we have designed a full-fledged knowledge layer that enables semantic description of resources and services by using the concepts of ontology template, GridWSDL2OWL-S tool. The layer also proposes semantic discovery engine that performs resource discovery and also service matchmaking based on QoS parameters. Ontology clustering proposed in this layer will improve the efficiency of matchmaking. The Fig 11.1 shows the functional model of the knowledge layer. Technical Report (April, 2005 – March, 2006) 81 IT@MIT Development of Front End tools for Semantic Grid Services Fig 11.1 Functional Model of the Knowledge Layer The architecture uses the semantic grid architecture described in section 9 for semantic description of resources and its discovery. Further, the architecture identifies necessary components for semantic description of services and Matchmaking of services advertisements against the requested ones. The resource provider registers the resource in the grid environment. The semantic description module queries the MDS registry and describes it semantically in the ontology template. The ontology template and instances of resources together constitutes the semantic repository and it also can be called as Knowledge base (KB). The semantic discovery module queries the knowledge base and retrieves suitable resource that meets the user requirement. Technical Report (April, 2005 – March, 2006) 82 IT@MIT Development of Front End tools for Semantic Grid Services The service provider registers the grid service in the MDS registry. Meanwhile, GridWSDL2OWL-S tool converts the WSDL file into OWL-S descriptions. We are also making literature survey of WSLD-S and we try to see whether it can be used as an alternative to OWL-S. But currently, OWL-S is widely used for describing service and it is accepted as standard, we propose OWL-S as the main stream component in the architecture. The clustering module clusters the service descriptions by exploiting the common properties of the OWL-S descriptions and stores it in the UDDI registry. Most recently, tools have come up to store the OWSL descriptions in UDDI registry and also to retrieve from [35]. The Matchmaking module receives request descriptions from the user which contains input, output, functionality and other optional parameters that include QoS parameters. The Module identifies the appropriate cluster and starts comparing the OWL-S descriptions of that cluster. It retrieves inputs, outputs, functionality and QoS parameters of the OWL-S descriptions and finds the degree of closeness of those parameters with that requested ones. The module uses appropriate domain ontology to identify the degree of closeness and ranks the degree starting from exact, plugin, subsume and disjoint which stands for similar to different-in-all-respects respectively. With this architecture, it will be possible to describe service and resources semantically and also its semantic retrieval. Further, it is also decided to include workflow engine for this knowledge layer. Literature survey has to be started to implement workflow engine for the proposed architecture. Technical Report (April, 2005 – March, 2006) 83 IT@MIT Development of Front End tools for Semantic Grid Services 12. Conclusion The semantic grid architecture using PEG enables the service providers to describe their grid services semantically. Whereas, the architecture using Gridbus broker, provide semantic descriptions of grid resources using grid resource ontology template. We made a wide literature survey of ontology clustering with which the performance of ontology matchmaking can be improved. With these observations, we propose a versatile knowledge layer which can be implemented in the grid architecture that performs semantic descriptions of grid resources, WSDL description of WSRF services into OWLS descriptions, Discovery of Suitable Grid resources, Ontology clustering and QoS based Matchmaking algorithm. With these sophisticated features implemented in architecture will result in versatile front end for implementing semantic grid services. Technical Report (April, 2005 – March, 2006) 84 IT@MIT Development of Front End tools for Semantic Grid Services References 1. Foster, I. and Kesselman, C. (eds), “The Grid: Blueprint for a New Computing Infrastructure”, Morgan Kaufmann, 1999, 259-278. 2. Foster, I. Kesselman, C. and Tuecke, S, “The Anatomy of the Grid: Enabling Virtual Organizations”, International Journal of High Performance Computing Applications, 15(3), 200-222, 2001. 3. Foster, I., Kesselman, C, Jeffrey M. Nick, Steven Tuecke. „The Physiology of the Grid: An Open Grid Services Architecture for Distributed Systems Integration”, A Draft Document, Version: 6/22/2002 4. Bray, T., Paoli, J. and Sperberg-McQueen, C.M. “The Extensible Markup Language (XML) 1.0”, 1998. 5. Fallside, D.C. “XML Schema Part 0: Primer”. W3C, Recommendation, 2001, http://www.w3.org/TR/xmlschema-0/ 6. “Simple Object Access Protocol (SOAP) 1.1”. W3C, Note 8, 2000. 7. Christensen, E., Curbera, F., Meredith, G. and Weerawarana., S. “Web Services Description Language (WSDL) 1.1”. W3C, Note 15, 2001, www.w3.org/TR/wsdl. 8. Brittenham, P. “An Overview of the Web Services Inspection Language”, 2001, www.ibm.com/developerworks/webservices/library/ws-wsilover. 9. “UDDI: Universal Description, Discovery and Integration”, www.uddi.org. 10. Daconta, Obrst, Smith. “The Semantic Web: A Guide to the Future of XML, Web Services, and Knowledge Management”, Wiley Publishing, Inc. 2003. 11. Grigoris Antoniou and Frank van Harmelen, “A Semantic Web Primer", The MIT Press, 2004. 12. RDF Primer. W3C Recommendation 10 February 2004 13. OWL Web Ontology Language Overview. W3C Recommendation 10 February 2004. 14. Massimo Paolucci, Katia Sycara, Takuya Nishimura, and Naveen Srinivasan, “Toward a Semantic Web e-commerce” To appear in Proceedings of BIS2003. Technical Report (April, 2005 – March, 2006) 85 IT@MIT Development of Front End tools for Semantic Grid Services 15. Dean, M. (ed.), “OWL-S: Semantic Markup for Web Services”, Version 1.1 Beta, 2004. 16. Katia Sycara, Massimo Paolucci, Anupriya Ankolekar and Naveen Srinivasan, “Automated Discovery, Interaction and Composition of Semantic Web services”, Journal of Web Semantics, Volume 1, Issue 1, September 2003, pp. 27-46 17. David De Roure, Nicholas R. Jennings and Nigel R. Shadbolt, “The Semantic Grid: Afuture e-Science Infrastructure”, Grid Computing – Making the Global Infrastructure a reality, John Wiley & Sons, Ltd, 2003. 18. Stumme, G., Ehrig, M., Handschuh, S., Hotho, A., Maedche, A., Motik, B., Oberle, D., Schmitz, C.,Staab, S., Stojanovic, L., Stojanovic, N., Studer, R., Sure, Y., Volz, R., Zacharias, V., “The Karlsruhe view on ontologies”, Technical report, University of Karlsruhe, Institute AIFB (2003) 19. Micheel C.Jaeger, Gregor Rojec-Goldmann, Christoph Liebetruth and Kurt Geihs, “Ranked Matching for Service Descriptions using OWL-S”,2004 20. www.globus.org/toolkit/mds 21. Foster, “A Globus Primer: Describing Globus Toolkit Version 4: August 2005 22. www-128.ibm.com/developerworks/grid/library/gr-mdsgt4 23. YeZhang and William Song, “Semantic Description and Matching of Grid Services Capabilities”. 24. Lei Li,Ian Horrocks, “A Software Framework For Matchmaking Based on Semantic Web Technology”, WWW2003, May 20-24,2003. 25. Chen Zhou, Liang-Tien Chia, Bu-Sung Lee, “Service Discovery and Measurement based on DAML-QoS Ontology”, WWW2005, May 10-14, 2005 26. JSR – 000168 Portlet Specification(final release), 2003 27. http://www.gridbus.org/broker. 28. Berners-Lee, T., Hendler, J. and Lassila, O. “The Semantic Web”, Scientific American, May 2001 29. J Davies, R Studer, Y Sure and P W Warren “Next Generation Knowledge Management” BT Technology Journal, Vol. 23, No. 3, July 2005. Technical Report (April, 2005 – March, 2006) 86 IT@MIT Development of Front End tools for Semantic Grid Services 30. Lenat D B and Guha R V, “Building Large Knowledge Based System: representation and interface in the Cyc project”, Addison-Wesley(1990). 31. D. Roman, H. Lausen, U. Keller (eds.):, “Web Service Modeling Ontology (WSMO)”, http://www.wsmo.org/TR/d2/ 32.M.Zaremba, M.Moran, “WSMX Architecture”, http://www.wsmo.org/TR/d13/d13.4/v0.2/ 33.M.Kerrigan, “Web Services Modeling Toolkit (WSMT)”, http://www.wsmo.org/TR/d9/d9.1/v0.1/ 34. Wei Xing, Marios D. Dikaiakos, Rizos Sakellariou, “Design and Development of Core Grid Ontology”, GGF16 Semantic Grid Workshop, Feb 2006. 35. Said Mirrza, Pahlevi, Lsao Kojima, “S-MDS: A Semantic Information Service for Advanced Resource Discovery and Monitoring in WS-Resource Framework”, GGF16 Semantic Grid Workshop, Feb 2006. Technical Report (April, 2005 – March, 2006) 87