Contract-based Synchronization of Multi-threaded Java Programs
Today, most new software products use concurrency in some capacity. However, the expressive power afforded by the use of concurrency comes at the expense of increased complexity. Without proper synchronization, concurrent access to shared objects can lead to race conditions, and incorrect synchroniz...
Uložené v:
| Hlavný autor: | |
|---|---|
| Médium: | Dissertation |
| Jazyk: | English |
| Vydavateľské údaje: |
ProQuest Dissertations & Theses
01.01.2011
|
| Predmet: | |
| ISBN: | 9781267057402, 1267057408 |
| On-line prístup: | Získať plný text |
| Tagy: |
Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
|
| Abstract | Today, most new software products use concurrency in some capacity. However, the expressive power afforded by the use of concurrency comes at the expense of increased complexity. Without proper synchronization, concurrent access to shared objects can lead to race conditions, and incorrect synchronization logic can lead to starvation or deadlock. Moreover, concurrency confounds the development of reusable software modules because code implementing an application's synchronization logic tends to be tightly interleaved with the “functional” code. Interleaving complicates program understanding and maintenance, producing brittle applications. Contract-based models of synchronization, such as the Synchronization Units Model (Szumo), attempt to address these problems by: (1) expressing synchronization concerns in declarative synchronization contracts to separate them from functional code; and (2) using a runtime system that dynamically interprets and “negotiates” the contracts, thereby automatically synchronizing threads. However, this approach requires a special compiler and runtime system, making it difficult to integrate Szumo into mainstream object-oriented programming languages or conduct empirical studies to understand software engineering tradeoffs when using Szumo or hand coding synchronization. This thesis investigates two “lighter-weight” approaches for integrating a contract-based synchronization model with a mainstream object-oriented programming language. The first approach works with any multi-threaded Java program. In this approach, an application programmer adds special Java annotations to a class whose methods contain only functional code. A compiler plugin generates synchronization code from the annotated program based on synchronization concerns declared in the annotations; the generated synchronization code is added to the annotated program, which then executes in a standard JVM. The second approach targets IP telecommunication (IPT) services that are deployed to a SIP servlets container. It makes use of a synchronization middleware. Instead of embedding synchronization code in the message handlers that implement a service, a programmer provides a synchronization contract that is loaded when the service is deployed to a container running our middleware. The middleware intercepts messages that a container routes to the service and consults the contract to determine when to schedule the message handler thread. Contributions of work reported in this thesis include: (1) Development of a generative approach that permits use of synchronization annotations with a mainstream object-oriented language. (2) Development of a middleware approach that permits use of contract-based synchronization with a standard execution platform for services. (3) Demonstration that contract-based synchronization enables packaging the implementation of synchronization as an OTS component, which can be seamlessly swapped with one that implements a different protocol, e.g., to tune performance. (4) Presentation of results of case studies with both approaches. The work described in this thesis was performed in collaboration with AT&T Research Labs and Oracle Research Labs. |
|---|---|
| AbstractList | Today, most new software products use concurrency in some capacity. However, the expressive power afforded by the use of concurrency comes at the expense of increased complexity. Without proper synchronization, concurrent access to shared objects can lead to race conditions, and incorrect synchronization logic can lead to starvation or deadlock. Moreover, concurrency confounds the development of reusable software modules because code implementing an application's synchronization logic tends to be tightly interleaved with the “functional” code. Interleaving complicates program understanding and maintenance, producing brittle applications. Contract-based models of synchronization, such as the Synchronization Units Model (Szumo), attempt to address these problems by: (1) expressing synchronization concerns in declarative synchronization contracts to separate them from functional code; and (2) using a runtime system that dynamically interprets and “negotiates” the contracts, thereby automatically synchronizing threads. However, this approach requires a special compiler and runtime system, making it difficult to integrate Szumo into mainstream object-oriented programming languages or conduct empirical studies to understand software engineering tradeoffs when using Szumo or hand coding synchronization. This thesis investigates two “lighter-weight” approaches for integrating a contract-based synchronization model with a mainstream object-oriented programming language. The first approach works with any multi-threaded Java program. In this approach, an application programmer adds special Java annotations to a class whose methods contain only functional code. A compiler plugin generates synchronization code from the annotated program based on synchronization concerns declared in the annotations; the generated synchronization code is added to the annotated program, which then executes in a standard JVM. The second approach targets IP telecommunication (IPT) services that are deployed to a SIP servlets container. It makes use of a synchronization middleware. Instead of embedding synchronization code in the message handlers that implement a service, a programmer provides a synchronization contract that is loaded when the service is deployed to a container running our middleware. The middleware intercepts messages that a container routes to the service and consults the contract to determine when to schedule the message handler thread. Contributions of work reported in this thesis include: (1) Development of a generative approach that permits use of synchronization annotations with a mainstream object-oriented language. (2) Development of a middleware approach that permits use of contract-based synchronization with a standard execution platform for services. (3) Demonstration that contract-based synchronization enables packaging the implementation of synchronization as an OTS component, which can be seamlessly swapped with one that implements a different protocol, e.g., to tune performance. (4) Presentation of results of case studies with both approaches. The work described in this thesis was performed in collaboration with AT&T Research Labs and Oracle Research Labs. |
| Author | Huang, Yi |
| Author_xml | – sequence: 1 givenname: Yi surname: Huang fullname: Huang, Yi |
| BookMark | eNotjctKxDAUQAMqqGP_obgP3Dyax0aQ4msYUXD2w02T2sqYaJIK-vUO6OpsDueck-OYYjgijdWGcaWh0xL4KWlKmR0AWCFA8jNy1adYMw6VOizBty_fcZhyivMP1jnFNo3t47KvM61TDugPxhq_sH3O6TXje7kgJyPuS2j-uSLb25ttf083T3cP_fWGTtICRWDKS2bGYNBa7pRyw-jBawxCoZHIO-a0Vlxw3zHlNHDjOA5KjdLLzokVufzLfuT0uYRSd29pyfFw3FnGtOWMgfgFNmBGbg |
| ContentType | Dissertation |
| Copyright | Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works. |
| Copyright_xml | – notice: Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works. |
| DBID | 053 0BH 0IK CBPLH EU9 G20 M8- OK5 PHGZT PKEHL PQEST PQQKQ PQUKI |
| DatabaseName | Dissertations & Theses Europe Full Text: Science & Technology ProQuest Dissertations and Theses Professional Dissertations & Theses @ Michigan State University - Fisheries and Wildlife ProQuest Dissertations & Theses Global: The Sciences and Engineering Collection ProQuest Dissertations & Theses A&I ProQuest Dissertations & Theses Global ProQuest Dissertations and Theses A&I: The Sciences and Engineering Collection Dissertations & Theses @ Big Ten Academic Alliance ProQuest One Academic (New) ProQuest One Academic Middle East (New) ProQuest One Academic Eastern Edition (DO NOT USE) ProQuest One Academic (retired) ProQuest One Academic UKI Edition |
| DatabaseTitle | Dissertations & Theses @ Michigan State University - Fisheries and Wildlife ProQuest One Academic Middle East (New) ProQuest One Academic Eastern Edition ProQuest Dissertations & Theses Global: The Sciences and Engineering Collection ProQuest Dissertations and Theses Professional ProQuest Dissertations and Theses A&I: The Sciences and Engineering Collection ProQuest Dissertations & Theses Global Dissertations & Theses Europe Full Text: Science & Technology ProQuest One Academic UKI Edition Dissertations & Theses @ CIC Institutions ProQuest One Academic ProQuest Dissertations & Theses A&I ProQuest One Academic (New) |
| DatabaseTitleList | Dissertations & Theses @ Michigan State University - Fisheries and Wildlife |
| Database_xml | – sequence: 1 dbid: G20 name: ProQuest Dissertations & Theses Global url: https://www.proquest.com/pqdtglobal1 sourceTypes: Aggregation Database |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| ExternalDocumentID | 2542395601 |
| Genre | Dissertation/Thesis |
| GroupedDBID | 053 0BH 0IK 8R4 8R5 CBPLH EU9 G20 M8- OK5 PHGZT PKEHL PQEST PQQKQ PQUKI Q2X |
| ID | FETCH-LOGICAL-h490-a016d418fe8a992b66bcfd0d7ae36a84a251b776232d516b7028b2ac66f4d45b3 |
| IEDL.DBID | G20 |
| ISBN | 9781267057402 1267057408 |
| IngestDate | Mon Jun 30 05:18:15 EDT 2025 |
| IsPeerReviewed | false |
| IsScholarly | false |
| Language | English |
| LinkModel | DirectLink |
| MergedId | FETCHMERGED-LOGICAL-h490-a016d418fe8a992b66bcfd0d7ae36a84a251b776232d516b7028b2ac66f4d45b3 |
| Notes | SourceType-Dissertations & Theses-1 ObjectType-Dissertation/Thesis-1 content type line 12 |
| PQID | 911792110 |
| PQPubID | 18750 |
| ParticipantIDs | proquest_journals_911792110 |
| PublicationCentury | 2000 |
| PublicationDate | 20110101 |
| PublicationDateYYYYMMDD | 2011-01-01 |
| PublicationDate_xml | – month: 01 year: 2011 text: 20110101 day: 01 |
| PublicationDecade | 2010 |
| PublicationYear | 2011 |
| Publisher | ProQuest Dissertations & Theses |
| Publisher_xml | – name: ProQuest Dissertations & Theses |
| SSID | ssib000933042 |
| Score | 1.5546825 |
| Snippet | Today, most new software products use concurrency in some capacity. However, the expressive power afforded by the use of concurrency comes at the expense of... |
| SourceID | proquest |
| SourceType | Aggregation Database |
| SubjectTerms | Computer science |
| Title | Contract-based Synchronization of Multi-threaded Java Programs |
| URI | https://www.proquest.com/docview/911792110 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwpV2_TwMhFCZaHYxD_Rm1am5wJR4cB8eig9oYh6aJHbo1Dx5El6v2zib-98L1rmli4mLCAIGBPODxHrzvfYTcAOPA0DuKgDkVqDyFlDuqbQbWyuBRaNOQTajRqJhO9biNzanasMpOJzaKGuc2vpHf6pi7LHor9x-fNJJGxc_VlkFjm-xEcG2D9d20ftbOOuNSBcNEpEWb5alr818quLlXhv1_zuiA7D9u_Kcfki1XHpF-x9SQtAf3mNzFJFQRD0XjrYXJ63dpm6y4KxBmMvdJg8SldVhawDDiBZaQjFfBW9UJmQyfJg_PtGVOoG9Cp0HaTKJghXcFaM2NlMZ6TFGByyQUAoJRY1RQgxnHnEmjgpFhOFgpvUCRm-yU9Mp56c5IohGYR68y7pSwaQ7SBIeFGyFCjXM8J4NOOLN291eztWQu_uwdkL3VC20sl6RXL77cFdm1y_q9Wlw3a_kDgr-pRA |
| linkProvider | ProQuest |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMw1V1LS8NAEB5qFRQP9YlaHznocTHZbDbJQT1YS2trKdhDb2Gf6CXVplb6n_yR7uZRCoI3D0IOCbuEbGbyzc5k5huAS-Zh5kmtkGQyQESGGjEXKxQLnwlBjUcR87zZRDgYRONxPKzBV1ULY9MqK0zMgVpOhI2RX8eWu8x6K3dv78g2jbI_V6sOGoVW9NTi03hs2U23ZcR7hXH7YXTfQWVTAfRCYtc8iEcl8SKtIhbHmFPKhZauDJnyKYsIM_aehwYhfCwDj_LQ2F-OmaBUE0kC7pvbrsE6sUR3trR4dbO1jA14mIZmH0TcqCSVqq7xD8TPzVi78b9ewA5st1ayBXahptI9aFR9KJwSlvbh1lJs2WovZG2ydJ4Xqcg5f4sSU2einbzOGM2M4jJpZjyyOXOGRWpadgCjv1jBIdTTSaqOwIkl87TUoY9VSIQbMMqNO4Y5IeYMY3kMzUoWSfltZ8lSECe_jl7AZmf01E_63UGvCVtFLNoep1CfTT_UGWyI-ew1m57nauRA8sdS-wZiegSF |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adissertation&rft.genre=dissertation&rft.title=Contract-based+Synchronization+of+Multi-threaded+Java+Programs&rft.DBID=053%3B0BH%3B0IK%3BCBPLH%3BEU9%3BG20%3BM8-%3BOK5%3BPHGZT%3BPKEHL%3BPQEST%3BPQQKQ%3BPQUKI&rft.PQPubID=18750&rft.au=Huang%2C+Yi&rft.date=2011-01-01&rft.pub=ProQuest+Dissertations+%26+Theses&rft.isbn=9781267057402&rft.externalDBID=HAS_PDF_LINK&rft.externalDocID=2542395601 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781267057402/lc.gif&client=summon&freeimage=true |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781267057402/mc.gif&client=summon&freeimage=true |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781267057402/sc.gif&client=summon&freeimage=true |

