Computational Environment for Cellular Imaging By

Total Page:16

File Type:pdf, Size:1020Kb

Computational Environment for Cellular Imaging By COMPUTATIONAL ENVIRONMENT FOR CELLULAR IMAGING BY FLUORESCENCE MICROSCOPY GERNOT STOCKER DOCTORAL THESIS Graz University of Technology Institute for Genomics and Bioinformatics Petersgasse 14, 8010 Graz, Austria Graz, February 2007 Abstract In the postgenomic era, high-throughput screening methods have identified a large number of genes which still lack functional characterization. Fluorescence microscopy can be used to localize labeled proteins from those genes in determining their functional role in cellular processes. In order to perform a systematic analysis of the generated microscopy images, structured storage of the data and organized documentation of its experiments are inevitable. To address this problem a platform independent computational environment for handling mi- croscopy data, named Scientific MIcroscopy Laboratory Environment (SMILE), was developed. The project oriented workflow of a typical experiment guides the design of the software for data storage, data retrieval and consistent chronological documentation. This approach inher- ently leads to structured recording of the experiment, conserving the complete experimental context of data records at any time. State-of-the-art software technology was used to imple- ment a multi-tiered J2EE application offering an intuitive Web-based user interface. The SMILE application back-end can be accessed through a generic programming interface and is open for integration of external imaging tools, such as ImageJ. Computationally intensive tasks for server-side image processing and analysis are transparently delegated to an adequate high performance computing infrastructure, and results are stored within the underlying relational database management system. The SMILE computational environment offers researchers an integrative software platform for scientific collaboration, while hiding the necessary complexity of data management and IT in- frastructure. Because of its modular and flexible architecture, SMILE is ready to face the future challenges of microscopy data management. Keywords: microscopy, experiment workflow, SMILE database, J2EE, high performance com- puting i Publications This thesis was based on the following publications, as well as upon unpublished work: Papers J. Rainer, F. Sanchez-Cabo, G. Stocker, A. Sturn, Z. Trajanoski. CARMAweb: comprehensive R- and BioConductor-based Web service for microarray data analysis. Nucleic Acids Res. 34: W498-W503 (2006) PMID: 16845058 C. Vogl, F. Sanchez-Cabo, G. Stocker, S. Hubbard, O. Wolkenhauer, Z. Trajanoski. A fully Bayesian model to cluster gene-expression profiles. Bioinformatics. 21 Suppl 2: ii130-ii136 (2005) PMID: 16204092 M. Maurer, R. Molidor, A. Sturn, J. Hartler, H. Hackl, G. Stocker, A. Prokesch, M. Scheideler, Z. Trajanoski. MARS: microarray analysis, retrieval, and storage system. BMC Bioinformatics. 6: 101-101 (2005) PMID: 15836795 H. Hackl, M. Maurer, B. Mlecnik, J. Hartler, G. Stocker, D. Miranda-Saavedra, Z. Trajanoski. GOLDdb: Genomics of lipid-associated disorders database. BMC Genomics. 5: 93-93 (2004) PMID: 15588328 G. Stocker, D. Rieder, Z. Trajanoski. ClusterControl: a Web interface for distributing and moni- toring bioinformatics applications on a Linux cluster. Bioinformatics. 20: 805-807 (2004) PMID: 14751976 G. G. Thallinger, S. Trajanoski, G. Stocker, Z. Trajanoski. Information management systems for pharmacogenomics. Pharmacogenomics. 3: 651-667 (2002) PMID: 12223050 Conference proceedings and poster presentations J. Hartler, G. G. Thallinger, G. Stocker, A. Sturn, T. Burkard, E. Korner,¨ K. Mechtler, Z. Tra- janoski, Z. Management and Analysis of Proteomics LC-MS/MS Data. Fourth International Symposium of the Austrian Proteomics Platform, Seefeld in Tirol. 2007 Jan 28. J. Hartler, G. G. Thallinger, G. Stocker, A. Sturn, T. Burkard, E. Korner,¨ T. Fuchs, K. Mechtler, Z. Trajanoski, Z. MASPECTRAS: Web-based System for Storage, Retrieval, Quantification and Analysis of Proteomic LC MS/MS Data. Third International Symposium of the Austrian Pro- ii COMPUTATIONAL ENVIRONMENT FOR CELLULAR IMAGING BY FLUORESCENCE MICROSCOPY teomics Platform, Seefeld in Tirol. 2006 Jan 16. J. Hartler, G. G. Thallinger, G. Stocker, A. Sturn, T. Burkard, E Korner,¨ T. Fuchs, K. Mechtler, Z. Trajanoski. MASPECTRAS: Web-based System for Storage, Retrieval, and Analysis of Pro- teomic LC MS/MS Data. HUPO 4th Annual World Congress, Munich. 2005 Aug 29. F. Sanchez-Cabo, H. Hackl, S. Hubbard, G. Stocker, Z. Trajanoski, O. Wolkenhauer, C. Vogl. A Fully Bayesian Model to Cluster Gene Expression Profiles. ISMB/ECCB 2004, Glasgow. 2004 Jul 31- Aug 04. G. Stocker, J. McNally, Z. Trajanoski. SMILE: Scientific microscopy lab environment. OEGBMT Symposium fur¨ Biomedizinische Technik, Graz, Austria. 2004 Nov 12-13. H. Hackl, T. Burkard, C. Paar, R. Fiedler, A. Sturn, G. Stocker, R. M. Rubio, J. Quackenbush, A. Schleiffer, F. Eisenhaber, Z. Trajanoski. Large scale gene expression analysis and functional annotation of adipocyte differentiation. Keystone Symposia: Molecular Control of Adipogenesis and Obesity, Banff, Canada. 2004 Mar 04-10. H. Hackl, T. Burkard, C. Paar, R. Fiedler, A. Sturn, G. Stocker, R. Rubio, J. Quackenbush, A. Schleiffer, F. Eisenhaber, Z. Trajanoski. Large Scale Expression Profiling and Functional An- notation of Adipocyte Differentiation. First International Symposium of the Austrian Proteomics Platform. Seefeld, Austria. 2004 Jan 26. iii Contents 1 Introduction . 1 1.1 Workflow analysis ................................... 2 1.2 Objectives ........................................ 9 2 Results . 10 2.1 Overview ........................................ 10 2.2 Scientific MIcroscopy Laboratory Environment (SMILE) .............. 11 2.2.1 Functionality overview ............................. 11 2.2.2 Architectural design and implementation ................... 15 2.2.3 Universal back-end infrastructure ....................... 19 2.3 JClusterService ..................................... 22 2.3.1 Analysis module for SMILE .......................... 23 2.3.2 Application in comparative transcriptomics and genomics ......... 23 2.3.3 Application in proteomics ........................... 24 2.4 Production environment ................................ 25 3 Discussion . 26 4 Outlook . 30 5 Methods . 32 5.1 Computational system components .......................... 32 5.1.1 Java 2 Enterprise Edition J2EE ........................ 32 5.1.2 Enterprise Java Beans (EJB) ......................... 36 5.1.3 Spring, Java/J2EE Application Framework .................. 39 5.1.4 Relational database management system .................. 46 5.1.5 Object relational persistence with Hibernate ................. 47 iv COMPUTATIONAL ENVIRONMENT FOR CELLULAR IMAGING BY FLUORESCENCE MICROSCOPY CONTENTS 5.1.6 J2EE Web services .............................. 49 5.1.7 Tapestry, a component oriented Web framework .............. 52 5.1.8 Model Driven Architecture ........................... 56 5.1.9 AndroMDA ................................... 57 5.1.10 Software configuration management ..................... 62 5.1.11 High performance computing with Rocks Clusters Linux .......... 64 5.2 Basic overview of fluorescence microscopy ..................... 67 A Bibliography . 69 B Glossary . 83 C Acknowledgments . 86 D Publications . 87 v Chapter 1 Introduction The sequencing of the human genome [International Human Genome Sequencing Consortium, 2004; Venter et al., 2001] identified thousands of as yet uncharacterized genes. With the local- ization of their transcribed proteins in subcellular components, it is possible to draw conclusions about the functional roles of these genes [O’Rourke et al., 2005]. Due to the steady develop- ment of fluorescence microscopy, reliable tools for assessing protein locations have become available [Giepmans et al., 2006]. Experiments using such methods to address significant biological questions result in image data which must be processed, analyzed, quantified and stored over long time periods on an adequate infrastructure. The necessity for a data management system is clear, and several initiatives were started to standardize the way of describing and storing microscopy data output [Goldberg et al., 2005; Swedlow et al., 2003, 2006]. Several database systems for specific applications [Carazo et al., 1999; Gonzalez-Couto et al., 2001; Kals et al., 2005; Liang et al., 2002] have been developed, but most of these focus on a targeted experimental setup and are not universally applicable. The Open Microscopy Environment (OME) project [Swedlow et al., 2003] is the most actively developed scientific database project for universal microscopy data management, devoting no- ticeable effort into standardizing methods of image storage [Goldberg et al., 2005]. OME has in- troduced a new tiff-based file format, which contains XML formatted data about the creation and development of an image. Several microscopy software packages from industry and academia are already able to read the format and to access OME’s server back-end. Technologically, OME is offering a Perl interface, used for back-end image storage and the implementation of a data-centric lightweight Web interface. Recently, OME was extended by the J2EE-based server application OMERO, which also handles the management of image data and is accessed by a standalone Java client, named Schoola. OME is particularly focused on handling image data but lacks an easy-to-use Web interface for data acquisition during the development of experi- 1 COMPUTATIONAL ENVIRONMENT FOR CELLULAR IMAGING BY FLUORESCENCE
Recommended publications
  • Ioc Containers in Spring
    301AA - Advanced Programming Lecturer: Andrea Corradini [email protected] http://pages.di.unipi.it/corradini/ AP-2018-11: Frameworks and Inversion of Control Frameworks and Inversion of Control • Recap: JavaBeans as Components • Frameworks, Component Frameworks and their features • Frameworks vs IDEs • Inversion of Control and Containers • Frameworks vs Libraries • Decoupling Components • Dependency Injection • IoC Containers in Spring 2 Components: a recap A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third party. Clemens Szyperski, ECOOP 1996 • Examples: Java Beans, CLR Assemblies • Contractually specified interfaces: events, methods and properties • Explicit context dependencies: serializable, constructor with no argument • Subject to composition: connection to other beans – Using connection oriented programming (event source and listeners/delegates) 3 Towards Component Frameworks • Software Framework: A collection of common code providing generic functionality that can be selectively overridden or specialized by user code providing specific functionality • Application Framework: A software framework used to implement the standard structure of an application for a specific development environment. • Examples: – GUI Frameworks – Web Frameworks – Concurrency Frameworks 4 Examples of Frameworks Web Application Frameworks GUI Toolkits 5 Examples: General Software Frameworks – .NET – Windows platform. Provides language interoperability – Android SDK – Supports development of apps in Java (but does not use a JVM!) – Cocoa – Apple’s native OO API for macOS. Includes C standard library and the Objective-C runtime. – Eclipse – Cross-platform, easily extensible IDE with plugins 6 Examples: GUI Frameworks • Frameworks for Application with GUI – MFC - Microsoft Foundation Class Library.
    [Show full text]
  • Design Pattern Interview Questions
    DDEESSIIGGNN PPAATTTTEERRNN -- IINNTTEERRVVIIEEWW QQUUEESSTTIIOONNSS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright © tutorialspoint.com Dear readers, these Design Pattern Interview Questions have been designed specially to get you acquainted with the nature of questions you may encounter during your interview for the subject of Design Pattern. As per my experience good interviewers hardly plan to ask any particular question during your interview, normally questions start with some basic concept of the subject and later they continue based on further discussion and what you answer: What are Design Patterns? Design patterns represent the best practices used by experienced object-oriented software developers. Design patterns are solutions to general problems that software developers faced during software development. These solutions were obtained by trial and error by numerous software developers over quite a substantial period of time. What is Gang of Four GOF? In 1994, four authors Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides published a book titled Design Patterns - Elements of Reusable Object-Oriented Software which initiated the concept of Design Pattern in Software development. These authors are collectively known as Gang of Four GOF. Name types of Design Patterns? Design patterns can be classified in three categories: Creational, Structural and Behavioral patterns. Creational Patterns - These design patterns provide a way to create objects while hiding the creation logic, rather than instantiating objects directly using new opreator. This gives program more flexibility in deciding which objects need to be created for a given use case. Structural Patterns - These design patterns concern class and object composition. Concept of inheritance is used to compose interfaces and define ways to compose objects to obtain new functionalities.
    [Show full text]
  • Dependency Injection with Unity
    D EPEN DEPENDENCY INJECTION WITH UNITY Over the years software systems have evolutionarily become more and more patterns & practices D ENCY complex. One of the techniques for dealing with this inherent complexity Proven practices for predictable results of software systems is dependency injection – a design pattern that I allows the removal of hard-coded dependencies and makes it possible to Save time and reduce risk on your NJECT assemble a service by changing dependencies easily, whether at run-time software development projects by or compile-time. It promotes code reuse and loosely-coupled design which incorporating patterns & practices, I leads to more easily maintainable and flexible code. Microsoft’s applied engineering ON guidance that includes both production The guide you are holding in your hands is a primer on using dependency quality source code and documentation. W I injection with Unity – a lightweight extensible dependency injection TH DEPENDENCY INJECTION container built by the Microsoft patterns & practices team. It covers The guidance is designed to help U software development teams: various styles of dependency injection and also additional capabilities N I of Unity container, such as object lifetime management, interception, Make critical design and technology TY and registration by convention. It also discusses the advanced topics of selection decisions by highlighting WITH UNITY enhancing Unity with your custom extensions. the appropriate solution architectures, technologies, and Microsoft products The guide contains plenty of trade-off discussions and tips and tricks for for common scenarios managing your application cross-cutting concerns and making the most out of both dependency injection and Unity. These are accompanied by a Understand the most important Dominic Betts real world example that will help you master the techniques.
    [Show full text]
  • Designpatternsphp Documentation Release 1.0
    DesignPatternsPHP Documentation Release 1.0 Dominik Liebler and contributors Jul 18, 2021 Contents 1 Patterns 3 1.1 Creational................................................3 1.1.1 Abstract Factory........................................3 1.1.2 Builder.............................................8 1.1.3 Factory Method......................................... 13 1.1.4 Pool............................................... 18 1.1.5 Prototype............................................ 21 1.1.6 Simple Factory......................................... 24 1.1.7 Singleton............................................ 26 1.1.8 Static Factory.......................................... 28 1.2 Structural................................................. 30 1.2.1 Adapter / Wrapper....................................... 31 1.2.2 Bridge.............................................. 35 1.2.3 Composite............................................ 39 1.2.4 Data Mapper.......................................... 42 1.2.5 Decorator............................................ 46 1.2.6 Dependency Injection...................................... 50 1.2.7 Facade.............................................. 53 1.2.8 Fluent Interface......................................... 56 1.2.9 Flyweight............................................ 59 1.2.10 Proxy.............................................. 62 1.2.11 Registry............................................. 66 1.3 Behavioral................................................ 69 1.3.1 Chain Of Responsibilities...................................
    [Show full text]
  • JAVA CONCURRENCY ONLINE TRAINING – Java2aspire
    JAVA CONCURRENCY, JAVA PROFILING, THREAD POOLING, JAVA 8 Features, MAVEN and DESIGN PATTERNS ONLINE TRAINING By K.Ramesh Curriculum THREAD POOLING Day 01: Executor Framework 20 min Day 01: Java Profiling 10 min Day 01: Executor 10 min Day 01: ExecutorService 10 min Day 01: Executors 15 min Day 02: ThreadPoolExecutor 20 min Day 02: BlockingQueue 10 min Day 02: Callable vs Runnable 15 min Day 02: Future 15 min JAVA CONCURRENCY Day 03: ConcurrentHashMap 30 min Day 03: Producer Consumer 30 min Day 04: CountDownLatch 20 min Day 04: CyclicBarrier 20 min Day 04: Deadlock Condition 20 min Day 05: Race Condition 30 min Day 05: Semaphore 30 min JAVA 8 FEATURES Day 06: Lambda Expressions 40 min Day 06: Functional Interfaces 10 min Day 06: Functional Programming 10 min Day 07: Method References 10 min Day 07: Default Methods 40 min Day 07: Optional 10 min Day 08: Stream API 1 hour MAVEN Day 09: Project Object Model (POM) 20 min Day 09: Project Description 10 min Day 09: Public Repository 10 min Day 09: Dependency Management 10 min Day 09: Build Configuration 10 min Day 10: Installation 15 min Day 10: Dependency Scope 15 min Day 10: Proprietary Dependencies 15 min Day 10: Project Inheritance 15 min Day 11: Maven life cycle 20 min Day 11: Maven Directory Structure 20 min Day 11: Archetypes 20 min Day 12: Applications 1 hour DESIGN PATTERNS Day 13: Factory Pattern 20 min Day 13: Abstract Factory Pattern 10 min Day 13: Single Pattern 20 min Day 13: Prototype Pattern 10 min Day 14: Composite Pattern 10 min Day 14: Facade Pattern 15 min Day 14: DAO
    [Show full text]
  • Semantic Description of Services and Service Factories for Ambient Intelligence Rémi Emonet
    Semantic Description of Services and Service Factories for Ambient Intelligence Rémi Emonet To cite this version: Rémi Emonet. Semantic Description of Services and Service Factories for Ambient Intelligence. Soft- ware Engineering [cs.SE]. Institut National Polytechnique de Grenoble - INPG, 2009. English. tel- 00450479 HAL Id: tel-00450479 https://tel.archives-ouvertes.fr/tel-00450479 Submitted on 26 Jan 2010 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. GRENOBLE INP n◦ attribu´epar la biblioth`eque THESE` pour obtenir le grade de ❉♦❝❡✉ ❉✉ ●♦✉♣❡ ●❡♥♦❜❧❡ ■◆ Sp´ecialit´e: Informatique pr´epar´eeau Laboratoire d’Informatique de Grenoble dans le cadre de l’Ecole´ Doctorale Math´ematiques, Sciences et Technologies de l’Information, Informatique pr´esent´eeet soutenue publiquement par R´emi ❊♠♦♥❡ le 23 septembre 2009 ❉❡❝✐♣✐♦♥ ❙♠❛♥✐✉❡ ❞❡ ❙❡✈✐❝❡ ❡ ❞✬❯✐♥❡ à ❙❡✈✐❝❡ ♣♦✉ ❧✬■♥❡❧❧✐❣❡♥❝❡ ❆♠❜✐❛♥❡ ❙❡♠❛♥✐❝ ❉❡❝✐♣✐♦♥ ♦❢ ❙❡✈✐❝❡ ❛♥❞ ❙❡✈✐❝❡ ❋❛❝♦✐❡ ❢♦ ❆♠❜✐❡♥ ■♥❡❧❧✐❣❡♥❝❡ Directeur de th`ese : James L. ❈♦✇❧❡② Co-directeur de th`ese : Dominique ❱❛✉❢❡②❞❛③ JURY Pr. Marie-Christine Rousset Pr´esident Pr. James L. Crowley Directeur de th`ese Dr. Dominique Vaufreydaz Co-directeur de th`ese Pr. Gregory D. Abowd Rapporteur Pr. David Simplot-Ryl Rapporteur Pr. Michel Riveill Examinateur 2 R´esum´e Ce manuscrit ´etudie l’ad´equation des approches `aservices, ainsi que leur am´elioration, pour l’int´egration dynamique et la r´eutilisation logicielle dans le cadre de l’informatique ambiante.
    [Show full text]
  • Sun Certified Enterprise Architect for Java EE Study Guide / Mark Cade, Humphrey Sheil
    Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. Sun Microsystems, Inc. has intellectual property rights relating to implementations of the technology described in this publication. In particular, and without limitation, these intellectual property rights may include one or more U.S. patents, foreign patents, or pending applications. Sun, Sun Microsystems, the Sun logo, J2ME, J2EE, Java Card, and all Sun and Java based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc., in the United States and other countries. UNIX is a registered trademark in the United States and other countries, exclusively licensed through X/Open Company, Ltd. This publication is provided “as is” without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement. This publication could include technical inaccuracies or typographical errors. Changes are periodically added to the information herein; these changes will be incorporated in new editions of the publication. Sun Microsystems, Inc. may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time. The authors and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein.
    [Show full text]
  • J2EE Architecture and Patterns in Enterprise Systems
    J2EE Architecture and Patterns in Enterprise Systems Zhiguo Guo University of Tampere Department of Computer and Information Science Master’s Thesis May 2004 i University of Tampere Department of Computer and Information Science Zhiguo Guo: J2EE Architecture and Patterns in Enterprise Systems Master’s Thesis, 60 pages May 2004 The purpose of this thesis is to illustrate an enterprise project named HUVA, in which Java Platform 2, Enterprise Edition (J2EE) architecture and patterns are applied. This study took a constructive research approach: It starts from the application domain including the initial plan and business model, then moves to the system architecture covering the architecturally significant requirements and the system structure compliant with J2EE architecture, finally ends at the application design elaborated by applying the J2EE patterns at a high level. As a result the architectural and application design satisfied the project needs and requirements; and the HUVA software has been implemented in practice according to the design. Keywords: J2EE, architecture, pattern, enterprise system. ii Acknowledgements I would like to thank Professor Roope Raisamo and Professor Isto Aho from the University of Tampere for being my encouraging, patient and responsible supervisors during the master’s thesis project. I would like to thank Mr. Mika Miettinen from Solteq Oyj and Mr. Timo Westkämper for supporting the technical aspects of this thesis. Finally, I would like to use this opportunity to express huge thanks to my dear wife, Chongliang Tang for always being the invaluable person behind my success. Tampere - Finland, June 1st, 2004 Zhiguo Guo iii Contents 1. Introduction.............................................................................................................1 2. Application domain ...............................................................................................3 2.1.
    [Show full text]
  • How to Reduce Costs of Business Logic Maintenance
    How to reduce costs of business logic maintenance Tomas Cerny Michael J. Donahoo Department of Computer Science and Engineering Department of Computer Science, Czech Technical University, Baylor University, Charles Square 13, Prague, Czech Republic Waco, TX, USA Email: [email protected] Email: jeff [email protected] Abstract—Three tier enterprise applications introduce multiple patterns has grown to multiple categories and spread from challenges for software engineers. Although we can divide the analyzes over design to coding. application into three tiers, we still need to design properly each Besides multiple patterns simplifying designers decisions tier internally to achieve multiple design qualities. The middle business tier captures logic in which we associate objects, validate another innovative contribution and complement to the OOP business rules, etc. Often multiple cross-cutting concerns are appeared known aspect oriented programming (AOP) [9]. mixed in the services which results in bloated, highly coupled de- AOP that introduces the idea of cross-cutting concerns in sign with very low cohesion. In this paper we present a case study objects. These concerns then spread through multiple architec- that we develop based on our four year experience with enterprise tural layers and cannot be isolated with the sole use of OOP. application that struggled from multiple weak design decisions. We emphasize multiple aspects that should be decoupled from AOP defines the location where multiple concerns cross as the rest of the services which increase service cohesion and results a pointcut. This pointcut as reached by the program can use in better readability, maintenance, testability, reuse and error- an additional code (separately defined) known as an advice avoidance.
    [Show full text]
  • Web Applications Engineering: Web Design Patterns and Guideline
    Web Applications Engineering: Web Design Patterns and Guideline Service Oriented Computing Group, CSE, UNSW Week 6 References used for the Lecture: http://java.sun.com/blueprints/patterns/index.html Core J2EE patterns, Deepak Alur, John Crupi and Dan Marlks, Prentice Hall Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley H. Paik, S. Venugopal (CSE, UNSW) COMP9321, 14s2 Week 6 1 / 65 J2EE Design Patterns What is a design pattern? Patterns in software were popularised by the book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (aka Gang of Four) They observed and recognised recurring designs in numerous projects and documented this collection Since then many other design patterns are published covering patterns for various domains and purposes J2EE patterns: J2EE patterns represent best practice design based on collective experience of working with J2EE projects Patterns aim to provide and document a solution to a known, recurring problem in building J2EE applications http://java.sun.com/blueprints/patterns/index.html H. Paik, S. Venugopal (CSE, UNSW) COMP9321, 14s2 Week 6 2 / 65 J2EE Design Patterns There are over 20 patterns (and growing). We look at a few patterns that are highly relevant to COMP9321 ... Model View Controller: MVC is the J2EE BluePrints recommended architectural design pattern for interactive applications. Front Controller (Command): For providing a central dispatch point to handle all incoming requests. Service Locator: Typically used in business layer for locating resources (such as database connection) Data Access Object: typical pattern for data access layer (linking the data storage layer with the application) Business Delegate: in business layer H.
    [Show full text]
  • [ Team Lib ] Crawford and Kaplan's J2EE Design Patterns Approaches
    [ Team LiB ] • Table of Contents • Index • Reviews • Reader Reviews • Errata J2EE Design Patterns By William Crawford, Jonathan Kaplan Publisher: O'Reilly Pub Date: September 2003 ISBN: 0-596-00427-3 Pages: 368 Crawford and Kaplan's J2EE Design Patterns approaches the subject in a unique, highly practical and pragmatic way. Rather than simply present another catalog of design patterns, the authors broaden the scope by discussing ways to choose design patterns when building an enterprise application from scratch, looking closely at the real world tradeoffs that Java developers must weigh when architecting their applications. Then they go on to show how to apply the patterns when writing realworld software. They also extend design patterns into areas not covered in other books, presenting original patterns for data modeling, transaction / process modeling, and interoperability. [ Team LiB ] [ Team LiB ] • Table of Contents • Index • Reviews • Reader Reviews • Errata J2EE Design Patterns By William Crawford, Jonathan Kaplan Publisher: O'Reilly Pub Date: September 2003 ISBN: 0-596-00427-3 Pages: 368 Copyright Preface Audience Organization of This Book For Further Reading Conventions Used in This Book Comments and Questions Acknowledgments Chapter 1. Java Enterprise Design Section 1.1. Design Patterns Section 1.2. J2EE Section 1.3. Application Tiers Section 1.4. Core Development Concepts Section 1.5. Looking Ahead Chapter 2. The Unified Modeling Language Section 2.1. Origins of UML Section 2.2. The Magnificent Seven Section 2.3. UML and Software Development Lifecycles Section 2.4. Use Case Diagrams Section 2.5. Class Diagrams Section 2.6. Interaction Diagrams Section 2.7.
    [Show full text]
  • Autofac Documentation Release 6.0.0
    Autofac Documentation Release 6.0.0 Autofac Project Jul 11, 2021 Contents 1 Getting Started 3 1.1 Structuring the Application.......................................3 1.2 Add Autofac References.........................................5 1.3 Application Startup............................................5 1.4 Application Execution..........................................6 1.5 Going Further..............................................8 1.6 Need Help?................................................8 1.7 Building from Source..........................................8 2 What’s New 9 2.1 Release Notes..............................................9 2.2 Upgrading from Autofac 5.x to 6.x................................... 10 2.3 Upgrading from Autofac 3.x to 4.x................................... 12 3 Registering Components 15 3.1 Registration Concepts.......................................... 15 3.1.1 Reflection Components..................................... 16 3.1.2 Instance Components...................................... 17 3.1.3 Lambda Expression Components................................ 17 3.1.4 Open Generic Components................................... 19 3.1.5 Services vs. Components.................................... 19 3.1.6 Default Registrations...................................... 20 3.1.7 Conditional Registration.................................... 20 3.1.8 Configuration of Registrations................................. 22 3.1.9 Dynamically-Provided Registrations.............................. 22 3.2 Passing Parameters to Register.....................................
    [Show full text]