Reverse engineering relational databases to identify and specify basic Web services with respect to service oriented computing Youcef Baghdadi Received: 15 December 2005 / Revised: 5 April 2006 / Accepted: 23 June 2006 / Published online: 28 November 2006 # Springer Science + Business Media, LLC 2006 Abstract Service-oriented computing (SOC) is the com- puting paradigm that utilizes services as a fundamental building block. Services are self-describing, open compo- nents intended to support composition of distributed applications. Currently, Web services provide a standard- based realization of SOC due to: (1) the machine-readable format (XML) of their functional and nonfunctional specifications, and (2) their messaging protocols built on top of the Internet. However, how to methodologically identify, specify, design, deploy and manage a sound and complete set of Web services to move to a service-oriented architecture (SOA) is still an issue. This paper describes a process for reverse engineering relational database ap- plications architecture into SOA architecture, where SQL statements are insulated from the applications, factored, implemented, and registered as Web services to be dis- covered, selected, and reused in composing e-business solutions. The process is based on two types of design patterns: schema transformation pattern and CRUD oper- ations pattern. First, the schema transformation pattern allows an identification of the services. Then the CRUD operations pattern allows a specification of the abstract part of the identified services, namely their port types. This process is implemented as a CASE tool, which assists ana- lysts specifying services that implement common, reusable, basic business logic and data manipulation. Keywords Application architecture . Service-oriented computing . Web services . Service-oriented architecture . Relational databases . Transformation pattern . CRUD operations pattern . Reverse engineering process . CASE tool 1 Introduction Service-oriented computing (SOC) is the computing para- digm that utilizes services as a fundamental building block to develop applications (Huhns & Singh, 2005; Papazoglou & Georgakopoulos, 2003). Services are self-describing, open components that support rapid, low-cost composition of distributed applications (Fremantel, Weerawarana, & Khalaf, 2002; Stal, 2002). Currently, Web services frame- work provides standard realization of SOC (Curbera, Khalaf, Mukhi, Tai, & Weerawarana, 2003; Kreger, 2003) due to: (1) the machine-readable format (XML-based description) of their functional and nonfunctional specifi- cations, and (2) their messaging protocols (XML-based SOAP) built on top of the Internet protocols such as HTTP (Hyper Text Transfer Protocol), SMTP (Simple Message Transfer Protocol), or FTP (File Transfer Protocol). In addition, they can live with distributed object-computing middleware such as CORBA (Common Object Request Broker Architecture), DCOM (Distributed Common Object Model), and RMI (Remote Method Invocation) (Barry, 2003), make legacy databases and applications, and even traditional EAI (Enterprise Application Integration) mes- saging look like Web services (Meredith & Bjorg, 2003), integrate with semantic Web (Sycara, Paolucci, Ankolekar & Srinivasan, 2003), and implement business transactions (Papazoglou, 2003). This makes them not only a standard- based realization of SOC as a distributed computing infrastructure for intra- and cross-enterprise application (Papazoglou & Georgakopoulos, 2003), but also a de facto Internet standard instance of SOA (Service-Oriented Archi- tecture) (Austin, Barbir, Ferris, & Garg, 2002; Huang & Chung, 2002; Huhns & Singh, 2005; Smith, 2004). Yet, Web services development is still hampered by technical, semantic, and methodological issues. Technical issues are related to policy, security, availability, perfor- Inf Syst Front (2006) 8:395–410 DOI 10.1007/s10796-006-9007-2 Y. Baghdadi (*) Sultan Qaboos University, Muscat, Oman e-mail: ybaghdadi@squ.edu.om