Master Thesis

Total Page:16

File Type:pdf, Size:1020Kb

Master Thesis Specification and Generation of User Interfaces Based on Method-Oriented Dialog Flows by Artun Subasi in Partial Fulfillment of the Requirements for the Degree of Master of Science in Computer Science at the University of Kaiserslautern Faculty of Computer Science May 10, 2011 Thesis Supervisors: Prof. Dr. Arnd Poetzsch-Heffter Dr. Gerhard Pews Dipl.-Inf. Patrick Michel Abstract Considerable time and effort is spent on implementing user interfaces and assuring that the implementation conforms to the user interface architecture. Although existing user interface generation approaches can be used to reduce the implementation effort, the generated user interfaces are not tailored to user interface architectures. This thesis shows how dialog flow specifications can be used for the automatic generation of user interfaces with regard to user interface architectures. An abstract user interface specifi- cation approach is proposed which enables platform independent specification of dialog flows. In addition, a Java-based user interface specification language is used to inves- tigate whether dialog flows can be practically defined using the elements of the Java language, such as interfaces and annotations. As a proof of concept, a new software tool is presented which is able to generate web based graphical user interfaces with regard to a concrete user interface architecture which was developed by the \Bundesstelle f¨urInformationstechnik des Bundesverwaltungsamtes" in cooperation with Capgemini sd&m. The evaluation results show that the developed user interface specification and generation method optimizes the workflow for the creation of the user interfaces. i Declaration I declare that this thesis was composed by myself, that the work contained herein is my own except where explicitly stated otherwise in the text, and that this work has not been submitted for any other degree or professional qualification except as specified. Kaiserslautern, May 10, 2011 Artun Subasi ii Acknowledgements I would like to express my appreciation to Prof. Dr. Arnd Poetzsch-Heffter and Dr. Gerhard Pews for their efforts in the organization of this thesis, and for the insightful conversations to set the scope of the work. My utmost gratitude goes to Patrick Michel for his very helpful comments on the text, for his great advices on the structuring of the work, and for his fast responses to my e-mails, even on weekends. I would like to thank Andy Scherzinger and Simon Spielmann for their continuous feedback during the development of the ideas in this thesis. I would also like to thank Marco Rose for his effort on the evaluation of the generator component which was developed in this thesis. I would like to express further thanks to Florian Strauß for his help on the installation of the needed software environment. I thank Capgemini sd&m for providing me the opportunity to participate in the company's training program, and for the compensation of my travel costs. I thank the \Arbeitsgruppe Softwaretechnik" for providing me a state of the art laptop for the thesis. Additional thanks go to Hans Schmitt and the Service Center Informatik for providing the software used in the thesis. I thank the German Research Center of Artificial Intelligence (DFKI) for allowing me to use the company's HiWi room during the thesis, and for the delicious coffee. The most special thanks go to my family and friends for their support throughout the thesis. iii Contents 1 Introduction 1 1.1 Terminology......................................3 2 Related Work5 2.1 Presentation Models.................................6 2.1.1 Languages for Specifying Presentation Models...............7 2.1.2 Presentation Models for Web Applications.................8 2.2 Dialog Models..................................... 10 2.2.1 Dialog Frameworks.............................. 11 2.2.2 Related Frameworks............................. 12 2.3 Domain Models and Domain-Driven Design.................... 16 2.3.1 Naked Objects................................ 16 2.3.2 Related Frameworks............................. 18 2.4 Task Models and Others............................... 20 3 Method-Oriented Dialog Flows 21 3.1 The Characteristics of MODF............................ 22 3.1.1 Generation of User Interfaces........................ 22 3.1.2 Method-Orientation............................. 24 3.1.3 Data Flow................................... 26 3.1.4 Reusability of Flows............................. 27 3.2 The Flexibility of MODF.............................. 32 3.2.1 User Interfaces................................ 32 3.2.2 Application Requirements.......................... 32 3.2.3 Specification Languages........................... 34 3.3 The MODF Meta Model............................... 36 3.3.1 UML Specification of the MODF Meta Model............... 38 3.3.2 An Example Scenario............................ 42 4 MODF Specifications using Java Annotations 45 4.1 Example MODF Specification............................ 46 4.2 Definition of the Java Annotations......................... 52 4.3 Steps to Define Dialog Flows............................ 56 4.4 Transformation to MODF Models.......................... 57 5 The Register Factory Web GUI Generator 59 5.1 Introduction to the Register Factory........................ 59 5.2 The GUI Layer of the Register Factory Applications............... 61 5.2.1 Used Frameworks............................... 62 iv Contents 5.2.2 The GUI Components............................ 62 5.2.3 Interactions Between the GUI Components................ 64 5.3 Generation of the GUI Components........................ 65 5.3.1 Generation of the Backing Bean Field Names............... 66 5.3.2 Generation of the Backing Bean Data Types............... 68 5.3.3 Mapping of Collections........................... 70 5.3.4 Binding to the Application Logic Layer.................. 71 5.4 Implementation of the Register Factory Web GUI Generator.......... 72 6 Evaluation 76 7 Conclusion 81 7.1 Future Work..................................... 82 Bibliography 86 v List of Figures 2.1 The mapping problem in the interface models...................6 2.2 Coarse architecture of an application with a dialog controller.......... 11 2.3 An example of a dialogue net............................. 13 2.4 The layers of Naked Objects............................. 17 2.5 An example GUI for Naked Objects........................ 17 3.1 Generation of UI layers based on MODF...................... 24 3.2 Method orientation.................................. 25 3.3 Data flows between dialogs............................. 26 3.4 Hierarchical decomposition of flows......................... 28 3.5 Removing redundancies from flows......................... 29 3.6 Limits of decomposition............................... 30 3.7 Directed acyclic graph of a flow with hierarchical decomposition......... 30 3.8 The three axes of MODF.............................. 33 3.9 The relations between the MODF meta model, models and specifications.... 37 3.10 UML Class Diagram of the MODF Meta Model.................. 38 3.11 The scenario for demonstrating the MODF model................. 43 3.12 An example of a MODF Model........................... 44 4.1 Overview of flow interfaces............................. 46 4.2 Overview of the scenario............................... 50 5.1 Overview of the application landscape....................... 60 5.2 The technical architecture of the Register Factory applications......... 61 5.3 The GUI components of the Register Factory applications and their relations. 63 5.4 Overview of the relations between the generated artifacts............ 67 5.5 The visualization of MODF models in Eclipse................... 73 6.1 Overview of the classes used by the example scenario............... 76 6.2 Demonstration of a possible flow execution using screenshots.......... 77 6.3 A screenshot of the generated view of the PurchaseCd flow.......... 78 6.4 A screenshot of a customized view of the ListCds flow............. 79 vi List of Figures List of Tables 1.1 Terminology......................................4 4.1 Definition of the MODF Java annotations..................... 56 4.2 Flow and FlowWithMultipleStates annotations............... 57 Listings 4.1 Flow interface of the PurchaseCd flow...................... 47 4.2 Flow interface of the ListCds flow........................ 48 4.3 Flow interface of the ListCDs flow (extended).................. 49 4.4 Flow interface of the DeleteCd flow........................ 49 4.5 Flow Interface of the Show CD Details flow.................... 51 4.6 Flow interface of the SearchCd flow using nested interfaces........... 51 4.7 Flow interface of the SearchCD flow without nested interfaces......... 52 5.1 Backing bean data types............................... 69 5.2 Definition of an application logic layer Spring bean................ 71 5.3 Example of a generated application logic layer wrapper.............. 72 5.4 Definition of an application logic layer wrapper Spring bean........... 72 List of Algorithms 4.1 Transformation of a Java-based MODF specification to a MODF model.... 58 vii Chapter 1 Introduction Implementation of user interfaces is a time consuming and repetitive process which involves creating and linking different layers, components, libraries, configuration files and similar ar- tifacts. Automatic generation of user interfaces aims to speed up the development process. Nevertheless, generation of user interfaces is a vague term in the sense that it is not clear what is generated. The contents of a user interface implementation
Recommended publications
  • Naked Objects: a Technique for Designing More Expressive Systems
    Naked objects: a technique for designing more expressive systems Richard Pawson Robert Matthews Computer Sciences Corporation NakedObjects.org and Computer Science Department, Tdnity College, Dublin, IE rpawson@csc;com ABSTRACT OOUIs provide a number of advantages to the user including Naked objects is an approach to systems design in which core reduced modality [6], and greater expressiveness for the user business objects show directly through to the user interface, and [10], and have become the norm for 'creative' applications such in which all interaction consists of invoking methods on those as drawing, computer aided design (CAD), page make-up and objects in the noun-verb style. One advantage of this approach multimedia editing. OOUIs are far less common in transactional is that it reaults in systems that arc more expressive from the business systems. This may be because the need for viewpoint of the user: they treat the user like a problem solver, expressiveness is less clear. It may also be because the not as merely a process-follower. Another advantage is that the underlying structure of most transactional business applications, 1:1 mapping between the user's representation and the comprising scripted procedures and data operations, does not underlying model means that it is possible to auto-generate the map well onto an OOUI. former from the latter, which yields benefits to the development Surprisingly, though, even where a transactional business process. The authors have designed a Java-based, open source system is based upon a true business object model, the core toolkit called Naked Objects which facilitates this style of business objects are typically hidden from the user.
    [Show full text]
  • Bakaláˇrská Práce Webová Aplikace Pro Poˇrádán´I Závod˚U V Orientacn
    Z´apadoˇcesk´a univerzita v Plzni Fakulta aplikovan´ych vˇed Katedra informatiky a v´ypoˇcetn´ı techniky Bakal´aˇrsk´apr´ace Webov´aaplikace pro poˇr´ad´an´ız´avod˚u v orientaˇcn´ım bˇehu Plzeˇn2017 Jan Palc´ut M´ısto t´eto strany bude zad´an´ıpr´ace. Prohl´aˇsen´ı Prohlaˇsuji, ˇzejsem bakal´aˇrskou pr´aci vypracoval samostatnˇea v´yhradnˇe s pouˇzit´ım citovan´ych pramen˚u. V Plzni dne 26. ˇcervna 2017 Jan Palc´ut Podˇekov´an´ı T´ımto bych chtˇel podˇekovat vedouc´ımu bakal´aˇrsk´epr´ace panu Ing. Tom´aˇsovi Hercigovi za cenn´erady, pˇripom´ınky a odborn´eveden´ıt´eto pr´ace. Abstract The topic of this bachelor thesis is the creation of a web application for organizing orienteering races including user registration, creation of races, registration of users to races, management of teams and contestants, and results evaluation based on selected criteria. Section2 deals with the de- scription of Java web frameworks. Section3 describes the Spring modules and the reasons why this framework was chosen for implementation. Sec- tion4 includes used technologies. The Section5 describes the funcionalities of the website and database. Section6 describes the creation of the ap- plication in the framework Spring, the structure of the project and selected sections of the code. Section7 includes race simulation, stress test, web browsers compatibility, and Selenium tests. Abstrakt Pˇredmˇetem m´ebakal´aˇrsk´epr´ace je vytvoˇren´ıwebov´eaplikace pro poˇr´ad´an´ı z´avod˚uv orientaˇcn´ım bˇehu umoˇzˇnuj´ıc´ı registraci uˇzivatel˚u, vytv´aˇren´ı z´a- vod˚u, registraci uˇzivatel˚udo z´avodu, spravov´an´ıseznamu t´ym˚uvˇcetnˇe´uˇcast- n´ık˚ua n´asledn´evyhodnocen´ızadan´ych v´ysledk˚upodle zvolen´ych krit´eri´ı.
    [Show full text]
  • Technologies We Use IT Project Management
    SolDevelo Sp. z o.o. is a dynamic software development and information technology outsourcing company, focused on delivering high quality software and innovative solutions. Our approach is a unique mix of highly experienced development team, client-oriented service and passion for IT. This guarantees projects to be completed on time, with the superior quality and precisely the way client imagined it. IT Project Management Requirements Specification Architecture Implementation Detailed Design Testing Integration Validation Maintenance Technologies We Use Software development and Integration Ý Application Servers Languages Web Servers Glassfish, JBOSS, Geronimo Java/JEE, Python, C#/.NET Nginx, Apache HTTP Android, PHP, Objective-C, Swift, Ruby Frameworks Web Technologies Database Environments Hibernate, Datanucleus, J2EE, PHP, XML, JavaScript, Oracle, SQL, PL/SQL, MySQL, OSGi, Spring Integration, SOAP, WSDL, RichFaces, PostgreSQL, HSQLDB, CouchDB, Quartz, Spring Batch, jQuery, JSP, JSF, AJAX, (S)CSS, SQLite3, Hypersonic Android Designer, LESS, XHTML, ASP.NET, Robotium, JBoss Seam Node.js Mobile Technologies Servlet Containers Android, iOS Tomcat, Jetty Web Frameworks AngularJS, Django, Spring WebFlow, Bootstrap, Zend, Ə CMS ǡ Business Intelligence Symfony, Express, Ruby on Rails Drupal, Wordpress, Joomla! DHIS2, Tableau 01 Competence Map Tools we use IDE Wiki < Knowledge Sharing IntelliJ IDEA, Eclipse, Android Confluence, Assembla Wiki, Trac Studio, Xcode, PHPStorm Project Methodology Issue/Bug Tracking Agile/Scrum JIRA, Assembla,
    [Show full text]
  • Design Patterns Design Patterns
    Design Patterns CSC207 – Software Design Design Patterns • Design pattern: – A general description of the solution to a well- established problem using an arrangement of classes and objects. • Patterns describe the shape of code rather than the details. – There are lots of them in CSC 301 and 302. Loop patterns from first year • Loop pattern: – A general description of an algorithm for processing items in a collection. • All of you (hopefully) have some loop patterns in your heads. • You don’t really need to think about these any more; you just use them, and you should be able to discuss them with your fellow students. • Some first-year patterns: – Process List – Counted Loop – Accumulator – Sentinel Process list pattern • Purpose: to process every item in a collection where you don’t care about order or context; you don’t need to remember previous items. • Outline: • Example: • Other example: darken every pixel in a picture Counted loop pattern • Purpose: to process a range of indices in a collection. • Outline: • Example: • Other example: print indices of even-length string Accumulator pattern • Purpose: to accumulate information about items in a collection. • Outline: • Example: • Other examples: sum, min, accumulate a list of items meeting a particular criterion. Sentinel pattern • Purpose: to remove a condition in a loop guard. • Outline: • Example: Sentinel pattern, continued • Here is the code that Sentinal replaces; note that i != list.size() is evaluated every time through the loop, even though it is false only once. Design Pattern
    [Show full text]
  • Presentación De Powerpoint
    Software Architecture of Oviedoof University Modularity Science Computer of of Course 2018/2019 Jose E. Labra Gayo School Software Software School of Computer Science University of Oviedo Modularity Architecture Software Architecture of Oviedoof University Big Ball of Mud Modular decomposition Definitions Recommendations Modularity styles Layers Aspect Oriented decomposition Domain based decomposition Science Computer of of School Software Architecture Big Ball of Mud of Oviedoof Big Ball of Mud University Described by Foote & Yoder, 1997 Elements Lots of entities intertwined Constraints None Science Computer of of School Software Architecture Big Ball of Mud of Oviedoof Quality attributes (?) University Time-to-market Quick start It is possible to start without defining an architecture Incremental piecemeal methodology Solve problems on demand Cost Cheap solution for short-term projects Science Computer of of School Software Architecture Big Ball of Mud of Oviedoof Problems University High Maintenance costs Low flexibility at some given point At the beginning, it can be very flexible After some time, a change can be dramatic Inertia When the system becomes a Big Ball of Mud it is very difficult to convert it to another thing A few prestigious developers know where to touch Science Clean developers run away from these systems Computer of of School Software Architecture Big Ball of Mud of Oviedoof Some reasons University Throwaway code: You need an immediate fix for a small problem, a quick prototype or proof of concept When it is good
    [Show full text]
  • Impacts of Object Oriented Programming on Web Application Development
    International Journal of Computer Applications Technology and Research Volume 4– Issue 9, 706 - 710, 2015, ISSN: 2319–8656 Impacts of Object Oriented Programming on Web Application Development Onu F. U. Osisikankwu P. U. Madubuike C. E. James G. Computer Science Department of Computer Science Computer Science Department, Computing and Department, Department, Ebonyi State Engineering, Akanu Ibiam Federal Obong University University, University of Polytechnic, Akwa-Ibom, Nigeria Sunderland, Uwanna, Nigeria UK Nigeria Abstract: Development of web application nowadays can hardly survive without object oriented approach except for the purpose of just information display. The complexity of application development and the need for content organization has raised the need for web application developers to embrace object oriented programming approach. This paper exposes the impact of object oriented programming on web application development. The exposition was done through a detailed study and analysis of information from secondary sources. The internet was usefully employed to access journal articles for both national and international sources. Our study enables web developers and designers to understand web application features, tools and methodologies for developing web application. It also keeps researchers and scholars abreast of the boost which OOP has brought into Web Applications development. Keywords: Object-Oriented Paradigm; Web; Web 2.0; RIAs; URL. 1. INTRODUCTION According to [17], Web Applications are web sites which are designers to understand web application features and popular dynamic in nature and uses server side programming to allow languages, tools, and methodologies for developing web a good interaction between the user form at the front end, and application. the database at the back-end.
    [Show full text]
  • Continuous Transition from Model-Driven Prototype to Full-Size Real-World Enterprise Information Systems
    [GNM+20] A. Gerasimov, J. Michael, L. Netz, B. Rumpe, S. Varga: Continuous Transition from Model-Driven Prototype to Full-Size Real-World Enterprise Information Systems. In: 25th Americas Conference on Information Systems (AMCIS 2020), pp. 1-10, Association for Information Systems (AIS), Aug. 2020. Association for Information Systems AIS Electronic Library (AISeL) AMCIS 2020 Proceedings Systems Analysis and Design (SIGSAND) Aug 10th, 12:00 AM Continuous Transition from Model-Driven Prototype to Full-Size Real-World Enterprise Information Systems Arkadii Gerasimov RWTH Aachen University, [email protected] Judith Michael RWTH Aachen University, [email protected] Lukas Netz Chair of Software Engineering, [email protected] Bernhard Rumpe RWTH Aachen University, [email protected] Simon Varga RWTH Aachen University, [email protected] Follow this and additional works at: https://aisel.aisnet.org/amcis2020 Recommended Citation Gerasimov, Arkadii; Michael, Judith; Netz, Lukas; Rumpe, Bernhard; and Varga, Simon, "Continuous Transition from Model-Driven Prototype to Full-Size Real-World Enterprise Information Systems" (2020). AMCIS 2020 Proceedings. 2. https://aisel.aisnet.org/amcis2020/systems_analysis_design/systems_analysis_design/2 This material is brought to you by the Americas Conference on Information Systems (AMCIS) at AIS Electronic Library (AISeL). It has been accepted for inclusion in AMCIS 2020 Proceedings by an authorized administrator of AIS Electronic Library (AISeL). For more information, please contact [email protected]. Continuous
    [Show full text]
  • A Project to Model-Driven Development with Naked Objects and Domain-Driven Design
    Elihu: A Project to Model-Driven Development with Naked Objects and Domain-Driven Design Samuel Alves Soares1 and Mariela Ines´ Cortes´ 2 1Federal Institute of Education, Science and Technology of Ceara,´ Taua,´ Ceara,´ Brazil 2State University of Ceara,´ Fortaleza, Ceara,´ Brazil Keywords: Model Driven Development, Naked Objects, Domain Driven Design, Domain Patterns, Design Patterns. Abstract: The model-driven development is a approach to creating software through well-defined models containing the information needed to generate the application. However, the software modeling in this approach requires the definition of application infrastructure artifacts in the model, such as user interface technologies and data persistence scheme, in order to transform modeling in final application. This makes the modeling complex, difficult to understand and maintain since new artifacts need to be added, failing to keep the focus on application business domain. To resolve this problem, we propose the Elihu project, a solution based on Naked Objects Pattern, Domain-Driven Design and software design patterns where the developer models just business objects and their characteristics related to the application domain. The full application is generated based on these software patterns and a Naked Objects Pattern framework is responsible for the application infrastructure code and the display of objects to users. The proposed solution benefits the creation of less complex models, that support evolution and modification of requirements along the development and the generation of full applications without manual intervention in the generated code. 1 INTRODUCTION 2006). On the other hand, the ambiguous nature of models and information redundancy along different The focus on the problem domain is pointed views of the same object make it difficult to maintain out as the ideal approach to the development of and make it difficult to adopt the MDD in the industry computer systems (Pawson, 2004).
    [Show full text]
  • Pawson Thesis.Pdf
    Naked objects A thesis submitted to the University of Dublin, Trinity College for the degree of Doctor of Philosophy Richard Pawson, Department of Computer Science, Trinity College, Dublin June 2004 1 Foreword by Trygve Reenskaug (Author’s note: Prof. Reenskaug was the external examiner for this thesis. One of the pioneers of object-oriented programming, he is best known as the inventor of the Model- View-Controller pattern. After the thesis was accepted, he generously agreed to write a foreword to the electronically-published version.) The world’s shipbuilding industry went through a heavy modernization program through the nineteen fifties and sixties. My colleague Kjell Kveim invented a control unit for the numerical control of machine tools such as flame cutters. The first unit was installed at the Stord shipyard in 1960 and opened the field for integrated computer aided design and manufacturing. The matching design system, Autokon, was first deployed at the Stord Yard in 1963. Autokon was subsequently adopted by most major shipyards around the world and was still in use by the late nineties. The purpose of Autokon was to empower the ship’s designers. It had a central database holding important information about the shape of the hull, the position of frames and decks, and the shapes of the parts. There was a language that permitted the designers to specify parts in shipbuilding terminology. There was a designer programming facility so that they could specify families of similar parts. Autokon was developed in close collaboration between shipbuilders and scientists. We considered ourselves as tool builders; the success criterion was that the tools should be handy, practicable, serviceable and useful.
    [Show full text]
  • Open Source Katalog 2009 – Seite 1
    Optaros Open Source Katalog 2009 – Seite 1 OPEN SOURCE KATALOG 2009 350 Produkte/Projekte für den Unternehmenseinsatz OPTAROS WHITE PAPER Applikationsentwicklung Assembly Portal BI Komponenten Frameworks Rules Engine SOA Web Services Programmiersprachen ECM Entwicklungs- und Testumgebungen Open Source VoIP CRM Frameworks eCommerce BI Infrastrukturlösungen Programmiersprachen ETL Integration Office-Anwendungen Geschäftsanwendungen ERP Sicherheit CMS Knowledge Management DMS ESB © Copyright 2008. Optaros Open Source Katalog 2009 - Seite 2 Optaros Referenz-Projekte als Beispiele für Open Source-Einsatz im Unternehmen Kunde Projektbeschreibung Technologien Intranet-Plattform zur Automatisierung der •JBossAS Geschäftsprozesse rund um „Information Systems •JBossSeam Compliance“ •jQuery Integrationsplattform und –architektur NesOA als • Mule Enterprise Bindeglied zwischen Vertriebs-/Service-Kanälen und Service Bus den Waren- und Logistiksystemen •JBossMiddleware stack •JBossMessaging CRM-Anwendung mit Fokus auf Sales-Force- •SugarCRM Automation Online-Community für die Entwickler rund um die •AlfrescoECM Endeca-Search-Software; breit angelegtes •Liferay Enterprise Portal mit Selbstbedienungs-, •Wordpress Kommunikations- und Diskussions-Funktionalitäten Swisscom Labs: Online-Plattform für die •AlfrescoWCMS Bereitstellung von zukünftigen Produkten (Beta), •Spring, JSF zwecks Markt- und Early-Adopter-Feedback •Nagios eGovernment-Plattform zur Speicherung und •AlfrescoECM Zurverfügungstellung von Verwaltungs- • Spring, Hibernate Dokumenten; integriert
    [Show full text]
  • Beginning Jboss Seam
    Beginning JBoss® Seam From Novice to Professional Joseph Faisal Nusairat Beginning JBoss® Seam: From Novice to Professional Copyright © 2007 by Joseph Faisal Nusairat All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher. ISBN-13 (pbk): 978-1-59059-792-7 ISBN-10 (pbk): 1-59059-792-3 Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1 Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. Java™ and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc., in the U.S. and other countries. Apress, Inc., is not affiliated with Sun Microsystems, Inc., and this book was written without endorsement from Sun Microsystems, Inc. JBoss® is a registered trademark of Red Hat, Inc., in the U.S. and other countries. Apress, Inc., is not affili- ated with Red Hat, Inc., and this book was written without endorsement from Red Hat, Inc. Lead Editor: Steve Anglin Technical Reviewer: Floyd Carver Editorial Board: Steve Anglin, Ewan Buckingham, Gary Cornell, Jason Gilmore, Jonathan Gennick, Jonathan Hassell, James Huddleston, Chris Mills, Matthew Moodie, Dominic Shakeshaft, Jim Sumser, Keir Thomas, Matt Wade Project Manager: Denise Santoro Lincoln Copy Edit Manager: Nicole Flores Copy Editor: Sharon Wilkey Assistant Production Director: Kari Brooks-Copony Production Editor: Lori Bring Compositor: Patrick Cunningham Proofreader: Dan Shaw Indexer: John Collin Artist: April Milne Cover Designer: Kurt Krames Manufacturing Director: Tom Debolski Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY 10013.
    [Show full text]
  • Plugin Tapestry ​
    PlugIn Tapestry ​ Autor @picodotdev https://picodotdev.github.io/blog-bitix/ 2019 1.4.2 5.4 A tod@s l@s programador@s que en su trabajo no pueden usar el framework, librería o lenguaje que quisieran. Y a las que se divierten programando y aprendiendo hasta altas horas de la madrugada. Non gogoa, han zangoa Hecho con un esfuerzo en tiempo considerable con una buena cantidad de software libre y más ilusión en una región llamada Euskadi. PlugIn Tapestry: Desarrollo de aplicaciones y páginas web con Apache Tapestry @picodotdev 2014 - 2019 2 Prefacio Empecé El blog de pico.dev y unos años más tarde Blog Bitix con el objetivo de poder aprender y compartir el conocimiento de muchas cosas que me interesaban desde la programación y el software libre hasta análisis de los productos tecnológicos que caen en mis manos. Las del ámbito de la programación creo que usándolas pueden resolver en muchos casos los problemas típicos de las aplicaciones web y que encuentro en el día a día en mi trabajo como desarrollador. Sin embargo, por distintas circunstancias ya sean propias del cliente, la empresa o las personas es habitual que solo me sirvan meramente como satisfacción de adquirir conocimientos. Hasta el día de hoy una de ellas es el tema del que trata este libro, Apache Tapestry. Para escribir en el blog solo dependo de mí y de ninguna otra circunstancia salvo mi tiempo personal, es com- pletamente mío con lo que puedo hacer lo que quiera con él y no tengo ninguna limitación para escribir y usar cualquier herramienta, aunque en un principio solo sea para hacer un ejemplo muy sencillo, en el momento que llegue la oportunidad quizá me sirva para aplicarlo a un proyecto real.
    [Show full text]