Service refactoring

Within the service-orientation design paradigm, Service Refactoring is a design pattern, which is applied to an existing service[1] so that either the service logic or its implementation can be changed without affecting the service consumers.

Rationale

It is natural for a service to undergo changes for various reasons. The change could be required because the underlying implementation e.g. databases, legacy systems, etc. needs to be upgraded or simply because the original service logic was not making efficient use of memory. In other cases, the change could be initiated by the service consumers themselves. For example, with limited concurrent usage, the service performs as stated in its SLA, however, with an increase in its concurrent usage, the service is unable to fulfill its SLA, consequently the service needs to respond to the increasing performance demands from its service consumers.[2]

This situation needs to be addressed in a way that upgrades the service without disrupting consumers who have already become dependent on it. Although one could argue that responding to any of the aforementioned requirements should not be problematic as long as the service honors its contract. However, we are concerned with both the outcome from the execution of service capabilities[3] and also with the behavior and reliability of the service. The Service Refactoring design pattern provides a strategy aimed at ensuring that a service can evolve without negatively affecting its consumers.[4]

Usage

The application of this design pattern advocates the use of traditional software refactoring techniques. The focus is on refactoring the service in smaller steps so that the impact of each step is minimal and can be easily reversed if it negatively affects the service consumers. Secondly, to ensure the service contract remains unaffected by changes in logic or implementation, the service contract must be decoupled as much as possible.[5] This can be done by introducing a façade component[6] between the service contract and the service logic. However, this is only possible if the service contract is physically decoupled from its implementation in the first place, which could be accomplished by the application of the Decoupled Contract[7] design pattern. This could further be strengthened by the application of the Contract Centralization[8] design pattern that advocates establishing the service’s contract as the only official entry point into the service.

On the other hand, to insulate service logic from negative effects from changes in the service implementation, the Service Façade design pattern could be reapplied to introduce another façade component between the service implementation and the service logic. The application of the Service Abstraction principle can further help to reduce the possibilities of any detrimental effects caused by the application of this design pattern.[9]

Considerations

The application of the Service Refactoring design pattern requires extensive testing to ensure a reliable and proven service, although inefficient, carries on the same level of behavioral stability and reliability. This might increase the project costs and would require additional quality assurance procedures and strict governance.

On the other hand, with its application, there might be a change to the current abstraction levels of the service, which would in turn require reapplication of the Service Abstraction design principle to ensure the service maintains the right level of abstraction. In some situations it might be impossible to constrain the effect of changes in the service logic or its implementation, and inadvertently the service contract must be updated. In this case, the Concurrent Contracts[10] design pattern could be applied, allowing the service to continue supporting consumers dependent on the old contract while simultaneously offering an updated contract that aligns with the new service logic or implementation.

References

  1. ^ "service". Archived from the original on 2012-05-01. Retrieved 2010-03-14.
  2. ^ Jason Bloomberg.The Four Pillars of Service-Oriented Development Archived 2011-07-16 at the Wayback Machine[Online]. Date accessed: 27 April 2010.
  3. ^ "Service Capabilities". Archived from the original on 2010-01-17. Retrieved 2010-03-14.
  4. ^ Thomas Erl.Introducing SOA Design Patterns Archived 2010-09-13 at the Wayback Machine[Online]. Date accessed: 5 April 2010.
  5. ^ Wajid Khattak.Service Refactoring Archived 2012-01-13 at the Wayback Machine[Online]. Date accessed: 27 April 2010.
  6. ^ "Service Façade design pattern". Archived from the original on 2010-01-29. Retrieved 2010-02-15.
  7. ^ Decoupled Contract design pattern
  8. ^ "Contract Centralization design pattern". Archived from the original on 2010-01-28. Retrieved 2010-02-15.
  9. ^ Dennis Wisnosky.Principles and Patterns at the U.S. Department of Defense Archived 2010-09-20 at the Wayback Machine[Online]. Date accessed: 28 April 2010.
  10. ^ "Concurrent Contracts design pattern". Archived from the original on 2010-01-17. Retrieved 2010-02-15.

Further reading

Read other articles:

Arena Fernando BuesaBuesa ArenaNama lamaPabellón Araba (1991–2000)[1]LokasiTorre 12 01013Vitoria, SpanyolKoordinat42°51′51.97″N 2°38′28.22″W / 42.8644361°N 2.6411722°W / 42.8644361; -2.6411722Koordinat: 42°51′51.97″N 2°38′28.22″W / 42.8644361°N 2.6411722°W / 42.8644361; -2.6411722KapasitasBola basket: 15,716[2]Tinju / Bela diri: 16,164[2]KonstruksiDibuka1991[3]Diperluas2012PemakaiSaski B...

 

Controlled-access expressway in India Not to be confused with National Expressway 3 (India). DELHI-MEERUT EXPRESSWAYRoute informationLength96 km (60 mi)Existed1 April 2021–presentMajor junctionsFromNew Delhi – (44)Major intersections(709B) (34)ToMeerut – (334) Section 1 : Nizamuddin Bridge–Delhi-UP BorderLength8.7 km (5.4 mi)FromNizamuddin Bridge, New DelhiFromUP Gate, Delhi-UP Border.Section 2 : Delhi-UP Border–DASNALength19.2 km (1...

 

Lokasi Kepulauan Nordenskiöld di Laut Kara Kepulauan Nordenskiöld atau Kepulauan Nordenskjold (bahasa Rusia: Архипелаг Норденшельда atau Arkhipelag Nordenshel'da) adalah kepulauan yang terletak di bagian timur Laut Kara. Kepulauan ini masuk ke divisi administratif Krasnoyarsk Krai di Rusia. Referensi All locations Diarsipkan 2008-01-09 di Wayback Machine. Valerian Albanov, In the Land of the White Death, 2001. Contains pictures of Fridtjof Nansen's early Arctic maps...

Chronologies Données clés 1754 1755 1756  1757  1758 1759 1760Décennies :1720 1730 1740  1750  1760 1770 1780Siècles :XVIe XVIIe  XVIIIe  XIXe XXeMillénaires :-Ier Ier  IIe  IIIe Chronologies thématiques Art Architecture, Arts plastiques (Dessin, Gravure, Peinture et Sculpture), Littérature, Musique classique et Théâtre   Ingénierie (), Architecture et ()   Politique Droit   Religion (,)   Science Santé et ...

 

Indigenous anti-Spanish uprising in Chile Huilliche uprising of 1712Date10–18 February 1712LocationCentral Chiloé ArchipelagoResult See aftermath Key encomenderos killed Suppression of the rebellion Encomienda system alleviatedBelligerents Spanish Empire Huilliches of ChiloéCasualties and losses 30 Spaniards 400 HuillichesvteSpanish colonial campaigns 15th century Canary Islands (1402–96) Santa Cruz de la Mar Pequeña (1478) Guinea (1478) Algeria (1497) Melilla (1497) 16th century Alger...

 

Type of temporary shelter See also: Transitional shelter and Refugee shelter This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Emergency shelter – news · newspapers · books · scholar · JSTOR (September 2014) (Learn how and when to remove this template message) Two hundred rolls of heavy-duty plastic sheeting w...

Daur hidup virus influenza Penginangan Replikasi Latensi Pelepasan Virus hanya mampu bereplikasi dengan membajak sistem reproduksi sel dan mengalihkannya untuk mereproduksi struktur genetik virus. Jadi, virus tidak dapat bereproduksi di luar sel hidup, dan harus bergantung pada sel inang untuk bisa bertahan hidup.[1] Kebanyakan virus spesifik terhadap spesies, dan biasanya virus dapat menyerang tumbuhan, hewan, bakteri, atau fungi tertentu. Daur hidup Penginangan virus Artikel utama:...

 

追晉陸軍二級上將趙家驤將軍个人资料出生1910年 大清河南省衛輝府汲縣逝世1958年8月23日(1958歲—08—23)(47—48歲) † 中華民國福建省金門縣国籍 中華民國政党 中國國民黨获奖 青天白日勳章(追贈)军事背景效忠 中華民國服役 國民革命軍 中華民國陸軍服役时间1924年-1958年军衔 二級上將 (追晉)部队四十七師指挥東北剿匪總司令部參謀長陸軍�...

 

Bahasa Jerman Palatinate Pälzisch Dituturkan diPalatinate, Pennsylvania Dutch CountryEtnisPalatinePenutur(sebanyak 400.000 dari sumber tidak bertanggal)[1] Rumpun bahasaIndo-Eropa JermanikJermanik BaratJerman TinggiJerman Tengah BaratFranconia RhinePfälzisch–LothringischJerman Palatinate DialekPennsylvania Dutch Sistem penulisanLatin (alfabet Jerman)Kode bahasaISO 639-3pflGlottologpala1330[2] Status pemertahanan C10Kategori 10Kategori ini menunjukkan bahwa bahasa tela...

Chủ tịch Hội đồng Bộ trưởng ItaliaPresidente del Consiglio dei Ministri della Repubblica ItalianaCờ Chủ tịch Hội đồng Bộ trưởng ItaliaĐương nhiệmGiorgia Melonitừ 22 tháng 10 năm 2022Dinh thựPalazzo ChigiBổ nhiệm bởiTổng thống Cộng hòaNgười đầu tiên nhậm chứcCamillo Benso CavourThành lập17 tháng 3 năm 1861Websitewww.governo.it Ý Bài này nằm trong loạt bài về:Chính trị và chính phủÝ Hiến pháp Nguyên...

 

Komando Distrik Militer 1620/Lombok TengahLambang Korem 162/Wira BhaktiNegara IndonesiaAliansiTNI Angkatan DaratTipe unitKodimPeranSatuan TeritorialBagian dariKodam IX/UdayanaMakodimPraya, Kabupaten Lombok TengahBaret H I J A U TokohKomandanLetkol Kav. I F Andi Yusuf KertanegaraKepala StafMayor Inf. Lalu Muhammad SyukurKomando Distrik Militer 1620/Lombok Tengah merupakan satuan kewilayahan yang berada dibawah komando Korem 162/Wirabakti. Kodim 1620/Lombok Tengah memiliki wilaya...

 

この項目には、一部のコンピュータや閲覧ソフトで表示できない文字が含まれています(詳細)。 数字の大字(だいじ)は、漢数字の一種。通常用いる単純な字形の漢数字(小字)の代わりに同じ音の別の漢字を用いるものである。 概要 壱万円日本銀行券(「壱」が大字) 弐千円日本銀行券(「弐」が大字) 漢数字には「一」「二」「三」と続く小字と、「壱」「�...

この項目には、一部のコンピュータや閲覧ソフトで表示できない文字が含まれています(詳細)。 数字の大字(だいじ)は、漢数字の一種。通常用いる単純な字形の漢数字(小字)の代わりに同じ音の別の漢字を用いるものである。 概要 壱万円日本銀行券(「壱」が大字) 弐千円日本銀行券(「弐」が大字) 漢数字には「一」「二」「三」と続く小字と、「壱」「�...

 

Mahanayak beralih ke halaman ini. Untuk novel sejarah karya Vishvas Patil, lihat Mahanayak (novel). Uttam KumarUttam KumarLahirArun Kumar Chatterjee(1926-09-03)3 September 1926Ahiritola, Kalkuta, Bengal, India BritaniaMeninggal24 Juli 1980(1980-07-24) (umur 53)Tollygunge, Kalkuta, Bengal Barat, IndiaPekerjaanAktorProduserSutradara, Sutradara Musik, Penyanyi playbackTahun aktif1945–1980Tinggi5 ft 11 in (1,80 m)Suami/istriGauri ChatterjeeAnakGautam ChatterjeeSitus web...

 

British yacht racer (born 1939) SirRobin Knox-JohnstonCBE RD and barKnox-Johnston in 2013BornWilliam Robert Patrick Knox-Johnston (1939-03-17) 17 March 1939 (age 85)Putney, London, EnglandOccupationSailorKnown forFirst single-handed non-stop circumnavigation of the globeSpouses Suzanne Singer ​ ​(m. 1962; div. 1967)​ ​ ​(m. 1972; died 2003)​ Children1Websiterobinknox-johnston.co.uk Sir W...

American college football season 2008 California Golden Bears footballEmerald Bowl championEmerald Bowl, W 24–17 vs. Miami (FL)ConferencePacific-10 ConferenceRankingCoachesNo. 25Record9–4 (6–3 Pac-10)Head coachJeff Tedford (7th season)Offensive coordinatorFrank Cignetti Jr. (1st season)Offensive schemePro-styleDefensive coordinatorBob Gregory (7th season)Base defense4–3Home stadiumCalifornia Memorial Stadium(Capacity: 71,799)Seasons← 20072...

 

Kodi Smit-McPheeLahir13 Juni 1996 (umur 27)Adelaide, AustraliaPekerjaanAktorTahun aktif2005–sekarang Kodi Smit-McPhee (lahir 13 Juni 1996) adalah aktor asal Australia yang dikenal karena perannya sebagai The Boy dalam film The Road dam Owen dalam Let Me In. Ia juga berperan dalam film Australia, Romulus, My Father dan Matching Jack. Filmografi Tahun Judul Peran Catatan 2005 Stranded Teddy 2006 Fatal Contact: Bird Flu in America Toby Connelly film TV Nightmares and Dreamscapes: Fr...

 

يواجه تعليم الإناث في نيجيريا التحديات المختلفة بغرض الحصول على المساواة في التعليم في جميع أشكال التعليم النظامي في نيجيريا بكون التعليم يعد حقا أساسيا من حقوق الإنسان؛ وقد تم الاعتراف بهذا في عام 1948 منذ اعتماد الإعلان العالمي لحقوق الإنسان. وهناك علاقة إيجابية قائمة بي�...

كارولي بالوتاي (بالمجرية: Palotai Károly)‏    معلومات شخصية الميلاد 11 سبتمبر 1935(1935-09-11)بيكيسكسابا  الوفاة 3 فبراير 2018 (عن عمر ناهز 82 عاماً)جيور  سبب الوفاة سكتة دماغية  الطول 1.75 م (5 قدم 9 بوصة) مركز اللعب وسط الجنسية المجر  أبناء زولط بالوتاي  [لغات أخرى...

 

Intel's Nehalem microarchitecture contains multiple AGUs behind the CPU's reservation station. The address generation unit (AGU), sometimes also called address computation unit (ACU),[1] is an execution unit inside central processing units (CPUs) that calculates addresses used by the CPU to access main memory. By having address calculations handled by separate circuitry that operates in parallel with the rest of the CPU, the number of CPU cycles required for executing various machine...