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...

Celý popis

Uložené v:
Podrobná bibliografia
Hlavný autor: Huang, Yi
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