Academia.eduAcademia.edu

Semantic web services discovery adopting SERIN

—Service-based architecture (SOA) are extensively adopted in web applications. In this scenario, REST-based web services has become a large adopted standard. The addition of semantics enhances the web services description, which enables automatic agents to discover them and to make calls. However, the existence of many different languages to semantically describe services makes it difficult to discover and to select the service that best attends a requirement. Furthermore, most of these languages does not attend to describe RESTful services, making the discover process even more difficult. This work proposes a RESTful semantic web service discovery architecture based on semantic interfaces (SERIN). SERIN intends to semantically described RESTful web services through an annotated ontology. We present a study showing that is possible to adopt the proposed architecture to implement a semantic service-based application, with minimum development effort, that enables software agents to automatically discover and to make service calls in order to execute a determined task.

Semantic web services discovery adopting SERIN José Renato Villela Dantas Hermano Albuquerque Lira Serviço Federal de Processamento de Dados (SERPRO) Av. Pontes Vieira, 832 60.130-240 – Fortaleza – CE – Brasil Email: [email protected] Serviço Federal de Processamento de Dados (SERPRO) Av. Pontes Vieira, 832 60.130-240 – Fortaleza – CE – Brasil Email: [email protected] Bruno de Azevedo Muniz Tadeu Matos Nunes Pedro Porfı́rio Muniz Farias Universidade de Fortaleza (UNIFOR) Av. Washington Soares, 1321 J-30 60.811-341 – Fortaleza – CE – Brasil Email: [email protected] Universidade de Fortaleza (UNIFOR) Av. Washington Soares, 1321 J-30 60.811-341 – Fortaleza – CE – Brasil Email: [email protected] Universidade de Fortaleza (UNIFOR) Av. Washington Soares, 1321 J-30 60.811-341 – Fortaleza – CE – Brasil Email: [email protected] Abstract—Service-based architecture (SOA) are extensively adopted in web applications. In this scenario, REST-based web services has become a large adopted standard. The addition of semantics enhances the web services description, which enables automatic agents to discover them and to make calls. However, the existence of many different languages to semantically describe services makes it difficult to discover and to select the service that best attends a requirement. Furthermore, most of these languages does not attend to describe RESTful services, making the discover process even more difficult. This work proposes a RESTful semantic web service discovery architecture based on semantic interfaces (SERIN). SERIN intends to semantically described RESTful web services through an annotated ontology. We present a study showing that is possible to adopt the proposed architecture to implement a semantic service-based application, with minimum development effort, that enables software agents to automatically discover and to make service calls in order to execute a determined task. Index Terms—Semantic Web, web service discovery, semantic interface, SERIN, RESTful I. I NTRODUCTION In the last decade, the popularity of webs services has raised from day to day. Web services are based on SOA, Service-Oriented Architecture, which describes means to reuse and to integrate systems. It allows the interaction between a service provider and a service consumer. The arrival of semantic web [1] has provided additional features to knowledge representation that the web services provide. The basic technology to make semantic web possible is the adoption of ontologies. An ontology is an explicit specification of a shared conceptualization [2]. It defines concepts as classes, properties, and relationships between them. Ontologies help to organize the heterogeneous knowledge in the Web. More recently, OWL (Web Ontology Language) [3] became the W3C recommended language to represent ontologies. RDF (Resource Description Framework) [4] is another widely adopted standard used to represent Web resources. Semantic web services were introduced by McIlraith [5]. Part of the semantic web vision intends to markup web service descriptions to make them computer-interpretable. Markup makes use of ontologies to provide sharing, mapping, and reuse. They provide semantics for the web service description and for the data they provide. This allows software agents to reason about web services to perform operations like automatic discovery, selection, composition, and execution. From all these tasks, this present work focus on Web service discovery. Web service discovery is the process of identifying the service that best matches some user provided characteristics. Usually, the service is described as a function of its inputs, outputs, preconditions, effects, and the nonfunctional properties. The discovery process essentially tries to identify where the web services are published and to compare the service descriptors against the user requirements to finally select one or several services that attends user needs. Despite the efforts to implement languages to describe web service functional specifications and architectures to find these services, recent works still consider that the web service discovery is a complex task. One cause that hampers the web service discovery is the heterogeneity of description languages they adopt. There are many proposals for SOAP/WSDL web service descriptions based on several languages but they lack a standard language that is shared among them. The absence of a shared knowledge makes difficult to identify a service or a resource on the Web. On the other hand there are only few works that proposes REST-based web service description. The present work proposes a web service discovery mechanism based on a single semantic interface. Our proposal adopts SERIN[6] specification to functionally describe the semantic web services. SERIN is an annotated ontology that provides a mechanism to markup web services functionalities and means to locate service endpoints. As an ontology, by definition, is a shared knowledge, such interface provides a web service description that both client agent and service provider know. Using SERIN specification it is possible to build an architecture to discover the web services from providers that implements one or several semantic interfaces. Basically the discovery architecture considers the existence of a crawler agent that searches the Web, it finds the SERIN-based services, and creates a inverted-index repository with the host addresses that provides the services and the semantic interfaces they adopt. The remainder of this article is provided as follow: section II presents a motivation scenario; section III resumes the web service discovery process; section IV revisits the SERIN specification; section V presents our proposal for web service discovery; section VI analyses the adoption of our proposal in a study scenario; section VII revisits recent state-of-art works about RESTful semantic web service discovery. Finally section VIII presents our conclusions and proposals for future work. II. S CENARIO AND MOTIVATION In order to motivate our approach, we present a semantic web typical scenario involving a person who wants to schedule a appointment with a medical doctor. A software agent receives a task to automatically set up this appointment. The human user provides the software agent some minimum data about his/her objective, like, for example, medical specialty, date range, time range, and location. The software agent execute queries on known clinical servers trying to match their responses to the user request. The user then receives a list with all found options. He chooses one and he informs the software agent to set up the appointment to this option. The software agent sends a request with all necessary data to the selected server which persists the data and it sends back a response with the appointment data. Figure 1. knowledge, even less works pay attention to build a index for the services. • Discover which service attends the user needs. Usually, the user requirements are described by informal documents and they are implemented hard-coded in a system that uses the services. The service descriptors describe its syntax which is not enough to identify the right service with a high precision level. • Select the services that best fit the user needs. The service selection evolves the matching of the service execution with the non-functional user requirements. The communication between the client agent and the clinic host needs a shared vocabulary. The Clinic ontology provides the necessary shared knowledge as it acts as a semantic interface. The figure 1 presents the sequence of the message exchange for these steps. Three elements participate in this scenario: a client, a discovery server, and a service provider. Five steps resume the basic query operation: 1) 2) 3) 4) 5) The agent sends a request to get a list of available servers that implements the clinic interface; For each host in the list, the agent sends a request to get the list of medical doctors; For each medical doctor in the response list, the agent sends a request to get his/her schedule availability; The user then chooses one or more doctor and schedule date and time; The software agent sends a put request to insert data to set up an appointment. This scenario brings the need to seek and find a set of services and select from that are relevant to the task execution. In others standard service-oriented architecture, mainly adopted in the Web environment, we can identify some difficulties in each task: • Find out which providers offer the services. Most service architectures works with a centralized registry server (UDDI [7]) where the providers have to explicitly register their services. Few other works proposes a decentralized architecture where there is no need for a centralized registry server. The services can be found in peer-to-peer endpoints. For the best of our Clinic scenario messages exchange. III. S EMANTIC WEB SERVICE DISCOVERY To achieve the vision of integration between systems, it is necessary to establish a common architecture based on some standards. Nowadays two standards are considered. The first web service architecture is based on SOAP (Simple Object Address Protocol), WSDL (Web Service Description Language), and UDDI (Universal Description, Discovery, and Integration) [7]. The second architecture is based on REST (Representational State Transfer) standard [8]. REST architectural style intends to be loose coupled. One of the main REST constraints considers that all exchanged messages is self-contained, i.e., all needed information to execute an operation is embedded within the message. For this reason, usually this service does note have a description file. Web services technology is SOA (Service-oriented architecture). This architectural style allows re-use and system integration in order to create new systems [9]. SOA enables system and resources integration by • representing each resource as service with a standardized interface; • enabling a service to exchange structured information; • coordinating and mediating between services. • SOA takes two actors. At one side, a service provider publishes an interface, and defines the execution of a web service. The client discover available services and consumes the service. Most of the solutions are not scalable, meaning they are not able to consider a large number of services, service providers, and service requesters; • Current solutions are incompatible. Cardoso [10] divides the web service discovery process in several tasks: service advertisement, service mediation, service storage, service request, service matchmaking, service negotiation, and service selection. From all these tasks, the service matchmaking is considered the most complex and difficult task in the discovery process. Many researches try to improve performance or to reduce the distance between the user goals and the service descriptions. Web service discovery is the process of identifying the service that best matches some user provided characteristics. Usually, the service is described in function of its inputs, outputs, preconditions, effects, and the non-functional properties. The discovery process tries to match the service descriptor with the requirements descriptor. The matching task usually considers some degree of matching [11] as an indicator of similarity between requirements and service descriptors. Figure 2 represents a generic web service discovery architecture. It considers four actors: a client; a registry server; a match, mediator, and selector engine; and a service provider. In a semantic web scenario, a service provider adopts a description language, like OWL-S and WSMO among others, and an ontology to provide a service description. Thus, the provider register this description in a central register server, like, for example, an UDDI server. For its time, the client works with the registry server and with the selector engine to discover and to select the service that best fit the client needs. The client then requests the selected service to the provider which sends the response with the desired results. Considering an automatic discovery, selection and invocation scenario, the client is a software agent that executes these operations. It works based on user requirement descriptions. Recently, some reviewers have pointed out some challenges about the whole web service discovery and composition process that are still open or barely solved. Dong et al [13] enumerates some research challenges, from which we emphasize the lack of means for handling the heterogeneity of ontologies; the lack of semantic models of service processes; the lack of matchmakers employing indexbased mechanisms; scalability Ngan and Kanagasabai [14] also investigates web service discovery challenges. They consider some relevant open researches: RESTful services (or web APIs) need semantic descriptions to facilitate automated discovery; resolving heterogeneity when discovery process involves several description languages, which pose strong limitations in interoperability; accuracy, scalability, and delivery of precise discovery results; As a contribution to solve or, at least, to minimize these web services issues, the present work proposes the adoption of Semantic RESTful Interfaces as web service description. The present architecture intends to • Define a semantic description for the RESTful web services, which enables software agents to automatically process the services responses; • Promote the adoption of semantic interfaces as a homogeneous option to solve the heterogeneity of languages and ontologies that exists nowadays for semantic service descriptions; • Work on a decentralized architecture which gains scalability and reduces failure because it reduces dependency from one single centralized server; • Provide a better accuracy for the service selection because it reduces the need for service matching. IV. S EMANTIC R ESTFUL I NTERFACES Semantic RESTful Interface (SERIN) is basically an annotated ontology whose classes and properties characterize uniquely and semantically available resources. Figure 2. Generic centralized discovery architecture. The increasing adoption of web services brings the problem of locating the appropriate services from the vast number of available options. Despite different solutions to this problem have been proposed, Pilioura and Tsalgatidou [12] mention some reasons that limit the effectiveness of these solutions: • most of the solutions are syntactic-based; SERIN specification defines an upper ontology with the annotation properties, some additional concepts, and their relationships. Figure 3 shows the SERIN ontology elements. It presents four annotation properties which represents the available operations over the services. Further, it presents a minimal set of concepts necessary for service discovery process. Any ontology can import SERIN ontology in order to create a semantic interface. The ontology builder applies the SERIN annotations on the ontology classes. The resulting annotated ontology is considered a Semantic RESTful Interface. Four annotations types can be added to an ontology. These annotations indicate the existence of four web service types, GET, POST, DELETE, and PUT. The four web service types • Figure 3. {resource} - resource identifier. SERIN ontology. are mapped into the four relative HTTP methods. They define which RESTful Web Service should be implemented for each resource. A set of RDF triples, i.e., an RDF instance, represents each resource. Each resource has an identifier called {rdfid}. The RDF instance granularity is to low. So, RDF instances are not enough to define a business process. Usually, it is necessary a set of instances to define an business entity. The GET method requires a key, as a parameter, indicating a single instance to be recovered. The method returns a list of all class instances if the requester informs no parameter. Each host that implements a semantic interface must implement one RESTful web service for each operation, i.e., for each annotation in a class. The option to use only four web service types, whose semantics is pre-defined, makes the SERIN semantics much simpler than proposals that specify semantics for SOAP/WSDL web services. Semantic Interface properly establishes resources semantics. The four possible operation semantics follows CRUD model (create, Read, Update, Delete) usually associated with HTTP verbs. Since this is an interface, the matching is always accurate. This provides higher scalability proposal to make it more attractive to the Web environment. Figure 4. URLs of three hosts that implement Doctor resource Figure 4 is an example of a standardization in which a patient agent consults a set of agents representing clinics and doctors. In the example, there are three clinics that respectively offer their services on hosts: example-A.com, example-B.com, and example-C.com. All three hosts meet the same semantic interface, called serin/clinic.owl. According to the interface, each host possess features that are instances of the Doctor class. When the host runs the web service in exampleA.com/serin/clinic.owl/Doctor, it produces, in response to some patient request, the list of physicians (same as doctor) available on Medical Clinic A (RDF). Running the relative web services, for the same interface in the two other hosts, should, respectively, provide support hours available on Medical Clinic B and Medical Clinic C. The adopted convention is particularly simple when it is applied to RESTful web services. However, it is possible to apply it to traditional web services. In the case of SOAP/WSDL architecture, the address composed according to the convention proposal refers to a WSDL file that describes the service. Listing 1 presents a grammar that exemplifies the formation of the web service URL implemented for Figure 4 host C. A. Semantic web service addressing Besides standardize semantics, SERIN contributes with standardize services URLs. Each service URL is divided into two parts. The first part identifies the host. The second part semantically identifies the resource (by using the semantic interface). Listing 1. Grammar to generate a RESTful web service URL. {host} : : = example−C . com { i n t e r f a c e } : : = e x a m p l e . com / c l i n i c . owl {class} ::= Clinic {resource} : : = / s e r i n / { i n t e r f a c e URI } / { c l a s s name} { s e r v i c e U R L } : : = { h o s t URL}{ r e s o u r c e URI} The address convention format is: h t t p : / / { host }/{ i n t e r f a c e }/{ c l a s s }/{ r e s o u r c e } where: • {host} - IP or DNS host address. • {interface} - ontology URI that represents the semantic interface. • {class} - ontology class identifier. Using the grammar above, a RESTful web service URL can be easily derived from the ontology URI plus each host URL. Following the grammar above, a possible resource URI would be: { r e s o u r c e } = / s e r i n / c l i n i c . owl / C l i n i c and a service URL would be: { s e r v i c e U R L } = e x a m p l e . com / s e r i n / c l i n i c . owl / C l i n i c V. A RCHITECTURE FOR WEB SERVICE DISCOVERY The present work proposes a web service discovery architecture based on a centralized inverted-index which works on a server composed of four components: 1) 2) 3) 4) An index repository that maps semantic interfaces to hosts; A scanning module - a crawler that scans Web contents, updating the index; A manual query module - a site where users can query the index; An automatic query module - semantic Web services that automatic agents can request data from the index repository. Figure 5 presents all elements from our discovery process. The gray areas identifies the four main architectural agents which are the service client, the Host, the service descriptor, and the discovery server. Domain ontology, using SERIN ontology annotations, provides the service description. They act as a service semantic interface. All other elements, i.e., the client, the host, and the discovery server, know the same semantic interface. Sharing this knowledge enables that agents from both sides execute automatic requests and properly process the responses. The host acts as a service provider. It is the data owner. It provides concrete implementations of the services that the interface describes. The client can act either as an automatic software agent or as an human user performing requests to the web services. Finally, the discovery server crawls the Web trying to find out SERIN semantic interfaces. It maintains a index repository with found hosts and found interfaces. Additionally, it provides manual and automatic query module where users can consult the index repository. or < s e r i n : I n t e r f a c e ><s e r i n : i s I m p l e m e n t e d B y ><s e r i n : Host> Optionally, it is possible to store the index in a relational database. In such case, SERIN ontology classes Host and Interface and their relationships works as a database schema. B. Scanning module The scanning module (crawler) crawls the Web looking for hosts that implements semantic interfaces. The discovery process works in two steps. At first, the crawler identifies a set of hosts. Secondly, it identifies which interfaces are available in each host. There are several alternative processes to identifies the hosts. The final objective is to discover host addresses that are candidate to execute a semantic interface inspection. The host discovery can start with a regular keyword search process. In this case, the discovery server works with search engine APIs, like Google Custom Search API1 or Bing Search API2 , starting from user-defined keywords. Complementary or as another possibility, it is possible to execute a web crawling process, starting from any web page to addresses linked to the page. It is possible also to inspect all domains related to an upper domain. For instance, the crawler make requests to all servers associated to the .gov or the .edu domain. Once the crawler has identified the hosts, the crawler sends requests to each host asking which semantic interfaces they implement. This is a particular service that SERIN specification provides. Based on SERIN address convention, the crawler requests the service that calls the data modeled from the Interface class in the semantic interface that represents SERIN itself. The address format is h t t p : / / { h o s t } / s e r i n . owl / I n t e r f a c e where: • {host} - IP or DNS host address. • serin.owl - SERIN ontology. • Interface - Interface class name. Excepting for the host part, that varies for each host, all other address parts are fixed. The scanning module update the repository of known hosts, the repository of known semantic interfaces, and the repository of relationship between each host and each semantic interface. Figure 5. SERIN discovery server architecture. Alternatively, service providers, who wish their site or their interface to become part of the index, can spontaneously and manually publish their services in the index repository. A. Index repository The index repository stores the addresses of service providers, the semantic interfaces, as well as the known relationships among them. The repository database is an instance of SERIN ontology. It is possible, but not mandatory, to stores hosts and interfaces as RDF triples. The RDF statements are in the form: < s e r i n : Host> < s e r i n : i m p l e m e n t s > < s e r i n : I n t e r f a c e > C. Web service query module The web service query module have specific web services to get information about indexed hosts and about indexed semantic interfaces. It is intentionally designed to provide information for automatic consultation. 1 https://developers.google.com/custom-search/ 2 http://www.bing.com/toolbox/bingsearchapi All services attends the SERIN ontology that defines the SERIN semantic interface itself. Table I presents available methods. Table I. AVAILABLE WEB SERVICES FOR THE DISCOVERY SERVER . Method http://{discovery server}/serin.owl/Host http://{discovery server}/ serin.owl/Host/{host id} http://{discovery server}/serin.owl/Interface http://{discovery server}/ serin.owl/Interface/{interface URI} Description Returns the list of all indexed hosts. Returns the list of all interfaces that the host attends. Returns the list of all indexed interfaces. Returns the list of all hosts that attends the interface. Each web services responses RDF triples with the desired data. These methods are essentially for automatic agents use. D. Manual query module The manual query module is an endpoint where human users can execute queries to get the index repository data. The manual endpoint acts as an SPARQL query engine. The user may either write a web service URL or a SPARQL query. It is desirable that the manual module display the responses in a human readable format. The endpoint default result format is a table, which is more user-friendly format. If the user prefers, he can change the default format to RDF triples. VI. A RCHITECTURE ANALYSIS AND RESULTS Back to the motivation scenario, presented in section II, we have implemented an SOA application that work as the client agent and a server application. The whole idea is to investigate how the SERIN architecture implementation can represent the execution of the described scenario. Before the scenario implementation, it is necessary to prepare a framework where client and service provider are going to exchange information. This framework consists of an ontology representing the semantic interface and the discovery server, both elements are precondition to the scenario execution. In our analysis platform, the semantic interface has classes representing medical concepts, as shown in figure 6. In the discovery server, we have build the crawler, the index repository, and the web services module. have started searching using the Google Web Search API3 . The initial keyword expression was ”medical clinic” and ”physician”. The algorithm splits each search result to get the server address. After, it builds the web service address based on the SERIN address convention. Then it checks if the server responds to the requests that verify the semantic interfaces. Finally, if the server responses with a positive answer, the crawler saves the results in the index repository. Listing 2. Crawler web service search algorithm keyword <− ” ( p h y s i c i a n ) o r ( m e d i c a l and c l i n i c ) ” s e r v e r s <− L i s t <n i l l > r e s u l t <− L i s t <G o o g l e R e s u l t s . R e s u l t ( keyword)> f o r each r e s u l t s e r v e r . i p <− s p l i t r e s u l t . u r l u r l <− s e r v e r . i p + ” s e r i n . owl / I n t e r f a c e ” r e s p o n s e <− r e q u e s t ( u r l ) i f r e s p o n s e = S t a t u s .OK then f o r each response . i n t e r f a c e save i n t e r f a c e Having set the discovery server, the client agent starts the task of scheduling an appointment. The client sends a request to the discovery server which host attends the clinic interface. GET http://example.com/serin/serin.owl/Host The discovery server sends a response that is a RDF with a set of hosts. The client agent selects a set of hosts from this list to request for the available physicians. For example, if the client wants to get the list of cardiologists from clinic A, it sends the following request: GET http://clinic-A.com/serin/clinic.owl/Cardiologist The client does the same request to the other hosts in the host list. Based on SERIN address convention, all URL requests have the same syntax except for the host address part. Each host respond with its own RDF list of cardiologists. The following step is the selection of the physician to set the appointment. The client agent can filter some physicians by requesting their available schedules. It sends a GET request like the following example. The number 1 in the URI is the ID that identifies an individual cardiologist. GET http://clinic-A.com/serin/clinic.owl/Cardiologist/1 Having the list of all the physician schedules, the client selects the one it The selection criteria are based on non functional requirements like, for example, geographical location, date and time, physicians rank, and others. This selection is not described in the present work. Once the client has selected the physician schedule, it sends a POST request with the appointment data. The request URL is as follow. POST http://clinic-A.com/serin/clinic.owl/Appointment/ Figure 6. Clinic ontology classes. The crawler executes the search algorithm, presented in listing 2 starting from a keyword search query. In here, we The request body contain appointment data in a RDF format. The data model is based on the clinic ontology. 3 https://developers.google.com/web-search/docs/ However it is important, the data consistency validation is not considered here, being subject for another work. As seen in this section, it is possible to execute all the scheduling process automatically. SERIN offers a semantic web service architecture which is very simple to implement and to execute. The effort to build the framework concentrates on building the domain ontology. The ontology annotation process can be done in a semi-automatic manner. Besides, the addiction of semantics for the web services contributes to enable the automatic execution by client agents. Semantic interfaces are essentially ontologies which are, by definition, shared conceptualizations. The shared knowledge enables the resource interoperability. VII. registry server, there are some decentralized approaches. Decentralized discovery systems are based on distribution technologies like, e.g., peer-to-peer, to publish services descriptions in a network. As mentioned before, Dong et al [13] has noticed that inside the semantic web service field very little work in the area of index-based service discovery has been undertaken. This area is provided mainly by some non-specialized crawlers and index-based systems, like web page search engines or indexbased systems for non-semantic SOAP/WSDL web services. In the present research, we have found only a few works Semantic Web service discovery based on web crawlers: 1) R ELATED W ORK The core of the present proposal is based on a language to semantically describe the RESTful web services and on a decentralized discovery approach. Recent works about Semantic web service description languages are mostly focused on SOAP/WSDL architecture. The efforts are for semantic enrichment of WSDL service descriptors. Most common solutions adopts OWL-S [15], like OWLS-MX [16], OWL-S IDE [17], and WSMO [18], like WSMO-MX [19]. Some works also adopt SAWSDL [20], WSMO-lite [21], or WSDL-S [22]. On the other hand, we have found less solutions for formally describing RESTful web services. Recent WSDL 2.0 specification [23] enables RESTful services description. However it is necessary to map REST resources in operations, inputs, and outputs to fit in a WSDL file. A more RESToriented specification is WADL (Web Application Description Language) [24]. Both languages lack of semantics. Some RESTful web services descriptions enhanced with semantics are hRESTs [25], [26], SA-REST [27], and RESTDesc [28]. All these proposals adds semantics to web services. However they do not have a standard language. They also demands a high effort to build an ontology and to annotate the web services descriptions or the web pages that describe the services. The major volume of solutions for web service discovery focuses on the matching task. Paolucci[11] has presented a seminal work about matching where he had introduced a degree of matching (DoM), that is a value of proximity between the user requirements and the web service . After, many authors have presented proposals to maximize the DoM. The problem about matching is that it is always inaccurate, i.e., it is very difficult to obtain a 100% degree of matching. For the best of our knowledge, we have found no work that gain this DoM value. This way, it always have a degree of uncertainty or error about the selected web service. 2) 3) 4) 5) 6) OPOSSUM [29] - It is a search engine for web services based on approximation methods based on semantic and procedural similarity. The authors proposes a matching algorithm which is, by definition, inaccurate. WESS [30] - It is a search engine for web service descriptions, semantic or non-semantic (WSDL). It does not considers RESTful web services because they do not comply to a description standard. WSCE [31], [32] - This work presents a discovery model (WSCE) in a decentralized way. Their work uses a crawler to extract web services description from several UBR, which are local UDDI servers, to create an index for the services. Multicrawler [33] - It is more of a conventional web crawler, searching for data in HTML pages. The proposal enhances the search with semantic web resource crawling and indexing. Service Search Crawler [34] - It has a crawler that searches for SOAP/WSDL services from UDDI registry server or from within web pages. All found services are semantically enhanced with a OWL-S description. Restler [35] - It is a discovery system with a crawler based on a language called ReLL (Resource Linking Language), an ontology that describes services through RDF triple stores with resources, representations, and links. The advantages about a crawler-based approach is that the service providers no longer need to register their services. The crawler takes the responsibility for finding out the services and for indexing them. This eliminates the need for centralized registry servers or web service portals which are frequently outdated. VIII. C ONCLUSIONS We can avoid the problems about DoM by using a semantic interface. This semantic interface acts as a contract where both producer and consumer know exactly which service fits the user requirements in a given situation. Nowadays, the RESTful web services discovery remains a difficult task. The lack of appropriate language for description of REST-based services complicates the identification and selection of the best service that attends some user requirement to execute a task. Furthermore the lack of semantics in the description hampers software agents to execute the task automatically or semi-automatically, making mandatory the user intervention. Despite most works about web service discovery focus on centralized approaches, mainly considering UDDI as a service In this sense, the SERIN semantic interfaces contribute to fill these gaps providing resources to define RESTful semantic web service descriptions. One advantage of this approach is that SERIN is an interface. By definition, it provides a shared description that both client and service provider know and agree. It adopts an annotated ontology based on common and standard languages. This makes the interface building process very simple. The existence of a shared ontology and an address convention enables the implementation of a discovery architecture that is decentralized, based on a crawler that navigates the web indexing the web services and their provider. The search algorithm complexity is low considering that it makes direct calls to the services that attend an interface. The crawler eliminates the necessity of registering the services in a UDDI server or in any other service index. As future work, we intend to implement decision criteria for service selection based on non functional requirements. The verification of data integrity in the persistence operations are a second focus in our work. Additionally, the service composition based on this discovery architecture added to BPMN process is subject for future research. [15] [16] [17] [18] [19] [20] [21] [22] [23] ACKNOWLEDGE Jose Renato V. Dantas and Hermano A. Lira acknowledges SERPRO, Federal Data Processing Service, for supporting this research. [24] [25] R EFERENCES [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] T. Berners-Lee, J. Hendler, and O. Lassila, “The semantic web,” Scientific American, vol. 284, no. 5, pp. 34–43, 5 2001. T. R. Gruber, “A translation approach to portable ontology specification,” Tech. Rep. {KSL} 92-71, 1993. “Owl 2 web ontology language document overview,” 2009. B. Adida and M. Birbeck, “Rdfa primer,” 2008. S. McIlraith, T. Son, and H. Z. H. Zeng, “Semantic web services,” IEEE Intelligent Systems, vol. 16, no. 2, pp. 46–53, 2001. B. d. A. Muniz, L. M. Chaves, H. A. Lira, J. R. V. Dantas, and P. P. M. Farias, “Serin - an aproach to specify semantic abstract interfaces in the context of restful web services,” Proceedings of the IADIS International Conference on WWW/Internet, pp. 187–194, 2013. “Oasis uddi specification tc {\textbar} oasis,” 2005. R. T. Fielding, “Architectural styles and the design of network-based software architectures,” Ph.D. dissertation, 2000. H. Nacer and D. Aissani, “Semantic web services: Standards, applications, challenges and solutions,” Journal of Network and Computer Applications, vol. 44, pp. 134–151, 9 2014. J. Cardoso, Semantic Web services - Theory, tools and applications. Information Science Reference, 2009. M. Paolucci, T. Kawamura, T. R. Payne, and K. Sycara, “Semantic matching of web services capabilities,” in The Semantic Web — {ISWC} 2002, ser. Lecture Notes in Computer Science, I. Horrocks and J. Hendler, Eds. Springer Berlin / Heidelberg, 2002, vol. 2342, pp. 333–347. T. Pilioura and A. Tsalgatidou, “Unified publication and discovery of semantic web services,” ACM Transactions on the Web, vol. 3, no. 3, pp. 1–44, 2009. H. Dong, F. K. Hussain, and E. Chang, “Semantic web service matchmakers: state of the art and challenges,” Concurrency and Computation: Practice and Experience, vol. 25, no. 7, pp. 961–988, 2013. L. D. Ngan and R. Kanagasabai, “Semantic web service discovery: state-of-the-art and research challenges,” Personal and Ubiquitous Computing, vol. 17, no. 8, pp. 1741–1752, 9 2012. [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] D. Martin, M. Burstein, D. Mcdermott, S. Mcilraith, M. Paolucci, K. Sycara, D. L. Mcguinness, E. Sirin, and N. Srinivasan, “Bringing semantics to web services with owl-s,” World Wide Web, vol. 10, no. 3, pp. 243–277, 2007. M. Klusch, B. Fries, and K. Sycara, “Owls-mx: A hybrid semantic web service matchmaker for owl-s services,” Web Semantics: Science, Services and Agents on the World Wide Web, vol. 7, no. 2, pp. 121–133, 4 2009. N. Z. C. Htoo, T. T. S. Nyunt, and T. T. S. Yangon, “Semantic web services offer discovery using owl-s ide,” in 2nd International Conference on Signal Processing and Communication Systems (ICSPCS), vol. 6. IEEE, 2008, pp. 1–5. U. Keller, H. Lausen, D. Fensel, R. Lara, H. Lausen, and D. Fensel, “Semantic web service discovery in the wsmo framework,” Semantic Web Services: Theory, Tools and Applications, no. April, pp. 1–44, 2006. M. Klusch and F. Kaufer, “Wsmo-mx: A hybrid semantic web service matchmaker,” Web Intelligence and Agent Systems, vol. 7, no. 1, pp. 23–42, 2009. “Semantic annotations for wsdl and xml schema,” 2007. T. Vitvar, J. Kopeck, J. Viskova, and D. Fensel, “Wsmo-lite annotations for web services,” in 5th European Semantic Web Conference, ESWC 2008, 2008, pp. 674–689. R. Akkiraju, J. Farrell, J. Miller, M. Nagarajan, M.-T. Schimidt, A. P. Sheth, and K. Verma, “Web service semantics - wsdl-s,” 2005. R. Chinnici, J.-J. Moreau, A. Ryman, and S. Weerawarana, “Web services description language {(wsdl)} version 2.0 part 1: Core language,” 2007. M. Hadley, “Web application description language {(wadl)},” Tech. Rep. TR-2006-153, 2006. D. Roman, J. Kopecký, T. Vitvar, J. Domingue, and D. Fensel, “Wsmolite and hrests: Lightweight semantic annotations for web services and restful apis,” Web Semantics: Science, Services and Agents on the World Wide Web, 2014. J. Kopecký, K. Gomadam, and T. Vitvar, “hrests: An html microformat for describing restful web services,” Proceedings - 2008 IEEE/WIC/ACM International Conference on Web Intelligence, WI 2008, pp. 619–625, 2008. K. Gomadam, A. Ranabahu, and A. Sheth, “Sa-rest: semantic annotation of web resources,” p. 52, 2010. R. Verborgh, T. Steiner, D. Van Deursen, R. Van De Walle, J. G. Valles, D. V. Deursen, R. V. D. Walle, and J. G. Valles, “Efficient runtime service discovery and consumption with hyperlinked restdesc,” Proceedings of the 2011 7th International Conference on Next Generation Web Services Practices, NWeSP 2011, pp. 373–379, 10 2011. E. Toch, A. Gal, I. Reinhartz-Berger, and D. Dori, “A semantic approach to approximate service retrieval,” ACM Transactions on Internet Technology, vol. 8, no. 1, pp. 2–es, 2007. O. Hatzi, G. Batistatos, M. Nikolaidou, and D. Anagnostopoulos, “A specialized search engine for web service discovery,” 2012 IEEE 19th International Conference on Web Services, pp. 448–455, 2012. E. Al-Masri and Q. H. Mahmoud, “Investigating web services on the world wide web,” Proceeding of the 17th international conference on World Wide Web WWW 08, vol. 32, p. 795, 2008. ——, “Crawling multiple uddi business registries,” Proceedings of the 16th international conference on World Wide Web - WWW ’07, p. 1255, 2007. A. Harth and S. Decker, “Multicrawler : A pipelined architecture for crawling and indexing semantic web data,” The Semantic Web, vol. 4273, pp. 258–271, 2006. V. Kaewmarin, N. Arch-int, and S. Arch-int, “Semantic web service discovery and integration using service search crawler,” 2008 International Conference on Computational Intelligence for Modelling Control & Automation, pp. 884–888, 2008. R. Alarcón and E. Wilde, “Restler: crawling restful services,” Proceedings of the 19th international conference on World wide web, pp. 1051– 1052, 2010.