Migration of a Chosen Architectural Pattern to Service Oriented ...

Migration of a Chosen Architectural Pattern to Service Oriented ... Migration of a Chosen Architectural Pattern to Service Oriented ...

12.07.2015 Views

Chapter 4. Service Oriented Architecture 764.2 Elements of SOAThis section describes briefly elements of service oriented architecture.1. Main elements – This section focuses on elements presented in the defitionprovided by Krafzig[47].2. Other elements – The second section presents other elements of SOA thatare not mentioned in the definition but they were identified during researches.3. Types of Services – While the first section describes the idea behind services,this section presents briefly types of services.4. Structure of a service – this section presents structure of a service4.2.1 Main elementsService — derives from business context of an organisation. Service can bedescribed as [59] “an asset that corresponds to real–world business activities orrecognisable business functions.” Service does not only provide functionality, italso consumes or consumes and provides functionality. A service should be discoverable(available through discovery mechanism like for instance service registry)and bound in run-time, however static bound is also possible . A service can bealso be characterized by some properties [42] ] such as performance, capacity, andreliability. Service is a complex entity and consists of Service Contract, Interfaceand Implementation [46].Service repository [46][31] —contains descriptions of services and providesall information required to access them. The information includes localization,provider, technical constrains, terms of usage, fees, service subscription and userregistration if the services are public. Repositories can be stored in databases tostore contract of descriptions for each service version. The database may storecontracts, description of each version of a service and some administrative data.The term repository is also interchanged in literature with registry. In fact bothterms are very similar and differ only in one aspect. Repository is a term usedduring design time, while registry is associated with runtime usage [31]Enterprise Service bus — Service Bus is also referred as Enterprise ServiceBus (ESB). The bus is a middleware concept that enables interaction betweendifferent applications [25].(Enterprise) Service Bus can be implemented as forinstance Enterprise Application Integration middleware [25] [13], brokering technology[13] or a platform specific component like WebShare application Server[13] [60]. In fact, ESB is a communication mechanism that performs followingactivities [59]:

Chapter 4. Service Oriented Architecture 771. Accepts information requests from service requesters.2. Consults a metadata registry to determine how to assemble the requestedinformation using known data services.3. Retrieves the data from one or more data service providers.4. Applies data transform rules using a data transformation service that removesduplicate data and converts the data that have been collected intothe format specified by the service contract.5. Returns the results to the service requester.Frontend —corresponds to an upper layer of a traditional application likeWeb page or a rich client[46]. Frontends are used to initialize a process and retrievea result. The initiation does not have to be invoked by end user. It canbe a long living process which invokes specific events in some circumstances likeperiodical events.4.2.2 Other elementsThe definition of SOA[46] does not mention about one more element of ServiceOriented Architecture, namely Service Inventory. This element is not obligatorybut it simplifies maintenance of large amount of services.Service Inventory [31] [46] – inventory is an independent element of thearchitecture and independently manages collection of services. The collectionscontain services important from point of view of the company.4.2.3 Types of servicesServices can be divided into following groups:1. Application Frontend – in general it does not have to be a service in termsof previously stated definition - it is rather a client of an application butit can also be other services like services from other company or a batchservice executing tasks periodically [46] .2. Basic Service[46] [31] – represents basic and stateless element of a domain.A basic service can be Data Centric Service or Logic Centric Services.(a) Data Centric Services – are responsible for maintaining only one maindata entity. The maintenance does not mean that a service executesonly CRUD operations - a service has to care also about locking mechanismand transactional management. To fulfill all his responsibilities,the service has to maintain database connection.

Chapter 4. <strong>Service</strong> <strong>Oriented</strong> Architecture 764.2 Elements <strong>of</strong> SOAThis section describes briefly elements <strong>of</strong> service oriented architecture.1. Main elements – This section focuses on elements presented in the defitionprovided by Krafzig[47].2. Other elements – The second section presents other elements <strong>of</strong> SOA thatare not mentioned in the definition but they were identified during researches.3. Types <strong>of</strong> <strong>Service</strong>s – While the first section describes the idea behind services,this section presents briefly types <strong>of</strong> services.4. Structure <strong>of</strong> a service – this section presents structure <strong>of</strong> a service4.2.1 Main elements<strong>Service</strong> — derives from business context <strong>of</strong> an organisation. <strong>Service</strong> can bedescribed as [59] “an asset that corresponds <strong>to</strong> real–world business activities orrecognisable business functions.” <strong>Service</strong> does not only provide functionality, italso consumes or consumes and provides functionality. A service should be discoverable(available through discovery mechanism like for instance service registry)and bound in run-time, however static bound is also possible . A service can bealso be characterized by some properties [42] ] such as performance, capacity, andreliability. <strong>Service</strong> is a complex entity and consists <strong>of</strong> <strong>Service</strong> Contract, Interfaceand Implementation [46].<strong>Service</strong> reposi<strong>to</strong>ry [46][31] —contains descriptions <strong>of</strong> services and providesall information required <strong>to</strong> access them. The information includes localization,provider, technical constrains, terms <strong>of</strong> usage, fees, service subscription and userregistration if the services are public. Reposi<strong>to</strong>ries can be s<strong>to</strong>red in databases <strong>to</strong>s<strong>to</strong>re contract <strong>of</strong> descriptions for each service version. The database may s<strong>to</strong>recontracts, description <strong>of</strong> each version <strong>of</strong> a service and some administrative data.The term reposi<strong>to</strong>ry is also interchanged in literature with registry. In fact bothterms are very similar and differ only in one aspect. Reposi<strong>to</strong>ry is a term usedduring design time, while registry is associated with runtime usage [31]Enterprise <strong>Service</strong> bus — <strong>Service</strong> Bus is also referred as Enterprise <strong>Service</strong>Bus (ESB). The bus is a middleware concept that enables interaction betweendifferent applications [25].(Enterprise) <strong>Service</strong> Bus can be implemented as forinstance Enterprise Application Integration middleware [25] [13], brokering technology[13] or a platform specific component like WebShare application Server[13] [60]. In fact, ESB is a communication mechanism that performs followingactivities [59]:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!