Patterns: Implementing Self-Service in an SOA Environment

Total Page:16

File Type:pdf, Size:1020Kb

Patterns: Implementing Self-Service in an SOA Environment Front cover Patterns: Implementing Self-Service in an SOA Environment Integrate Web applications with the enterprise tier Explore Web services, J2EE Connectors, and JMS solutions Use SOA and ESB technology Carla Sadtler Anup Aggarwal Diego Cotignola Sandy Grewal Peter Hood Shashi Shrimali Fernando Teixeira ibm.com/redbooks International Technical Support Organization Patterns: Implementing Self-Service in an SOA Environment January 2006 SG24-6680-01 Note: Before using this information and the product it supports, read the information in “Notices” on page xi. Second Edition (January 2006) This edition applies to WebSphere Application Server V6. © Copyright International Business Machines Corporation 2005, 2006. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . xi Trademarks . xii Preface . xiii The team that wrote this redbook. xiii Become a published author . xv Comments welcome. xv Summary of changes . xvii January 2006, Second Edition . xvii Chapter 1. Patterns for e-business . 1 1.1 The Patterns for e-business layered asset model . 2 1.2 How to use the Patterns for e-business . 4 1.2.1 Selecting a Business, Integration, Composite pattern, or a Custom design. 4 1.2.2 Selecting Application patterns. 9 1.2.3 Review Runtime patterns . 11 1.2.4 Reviewing Product mappings . 13 1.2.5 Reviewing guidelines and related links . 14 1.3 Summary . 15 Chapter 2. Self-Service business pattern . 17 2.1 Self-service applications . 18 2.2 Self-Service application patterns. 18 2.3 Application pattern used in this book. 22 Chapter 3. SOA and the Enterprise Service Bus . 23 3.1 Overview of SOA. 24 3.1.1 Definition of a service . 27 3.1.2 Web services and SOA . 31 3.1.3 Messaging and SOA . 33 3.1.4 The advantages of SOA . 35 3.1.5 SOA summary. 36 3.2 Overview of the Enterprise Service Bus . 36 3.2.1 SOA infrastructure requirements. 37 3.2.2 Definition of an ESB . 38 3.2.3 Enterprise requirements for an ESB . 40 3.2.4 Minimum ESB capabilities. 43 © Copyright IBM Corp. 2005, 2006. All rights reserved. iii 3.2.5 ESB and Web services technologies . 45 3.2.6 Extended ESB capabilities . 46 3.2.7 The ESB and other SOA components . 51 Chapter 4. Runtime patterns . 53 4.1 An introduction to the node types . 54 4.1.1 Why use an enterprise service bus? . 57 4.2 Runtime patterns for Directly Integrated Single Channel . 60 4.2.1 Generic Runtime pattern for Directly Integrated Single Channel . 60 4.2.2 SOA profile for Directly Integrated Single Channel . 61 4.3 Runtime patterns for Router . 62 4.3.1 Generic Runtime pattern for Router . 63 4.3.2 SOA profile for Router. 64 4.4 Runtime patterns for Decomposition . 65 4.4.1 Generic Runtime pattern for Decomposition . 65 4.4.2 SOA profile for Decomposition . 67 Chapter 5. Product mappings and product overview . 69 5.1 Product mapping . 70 5.2 IBM WebSphere Application Server . 73 5.2.1 WebSphere Application Server V6 for distributed platforms . 74 5.2.2 Service integration . 76 5.2.3 ESB capabilities . 80 5.3 IBM Rational Software Development Platform . 84 5.3.1 Workbench . 86 5.4 Rational Application Developer . 89 5.4.1 Web development . 89 5.4.2 EJB development . 91 5.4.3 Web services support . 92 5.4.4 Connector support. 94 5.4.5 Test environment . 94 5.4.6 Team development . 95 5.5 Rational Software Architect . 95 5.5.1 Rational Unified Process guidance . 95 5.5.2 Model-driven development . 95 5.5.3 Modeling . 97 5.5.4 Asset-based development. 98 5.6 For more information . 100 Chapter 6. Technology options . 101 6.1 The big picture. 102 6.2 Client technologies . 102 6.2.1 Web-based clients. 104 6.2.2 Mobile clients . 111 iv Patterns: Implementing Self-Service in an SOA Environment 6.3 Web application server . 113 6.3.1 Java servlets . 115 6.3.2 JavaServer Pages (JSPs) . 116 6.3.3 JavaServer Faces . 116 6.3.4 Struts. 117 6.3.5 Service Data Objects . 118 6.3.6 Portal applications. 119 6.3.7 JavaBeans . 120 6.3.8 XML. 120 6.3.9 Enterprise JavaBeans . 124 6.3.10 Additional enterprise Java APIs . 127 6.4 Integration technologies . 128 6.4.1 Web services. 128 6.4.2 J2EE Connector Architecture . 132 6.4.3 Java Message Service . ..
Recommended publications
  • Zeromq
    ZeroMQ Martin Sústrik <> ØMQ is a messaging system, or "message-oriented middleware", if you will. It's used in environments as diverse as financial services, game development, embedded systems, academic research and aerospace. Messaging systems work basically as instant messaging for applications. An application decides to communicate an event to another application (or multiple applications), it assembles the data to be sent, hits the "send" button and there we go—the messaging system takes care of the rest. Unlike instant messaging, though, messaging systems have no GUI and assume no human beings at the endpoints capable of intelligent intervention when something goes wrong. Messaging systems thus have to be both fault-tolerant and much faster than common instant messaging. ØMQ was originally conceived as an ultra-fast messaging system for stock trading and so the focus was on extreme optimization. The first year of the project was spent devising benchmarking methodology and trying to define an architecture that was as efficient as possible. Later on, approximately in the second year of development, the focus shifted to providing a generic system for building distributed applications and supporting arbitrary messaging patterns, various transport mechanisms, arbitrary language bindings, etc. During the third year the focus was mainly on improving usability and flattening the learning curve. We've adopted the BSD Sockets API, tried to clean up the semantics of individual messaging patterns, and so on. Hopefully, this chapter will give an insight into how the three goals above translated into the internal architecture of ØMQ, and provide some tips for those who are struggling with the same problems.
    [Show full text]
  • Integration Patterns Integration Patterns
    Integration Patterns Integration Patterns patterns & practices David Trowbridge, Microsoft Platform Architecture Guidance Ulrich Roxburgh, Microsoft Consulting Services (Australia) Gregor Hohpe, ThoughtWorks, Inc. Dragos Manolescu, ThoughtWorks, Inc. E.G. Nadhan, EDS ISBN 0-7356-1850-X Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. © 2004 Microsoft Corporation. All rights reserved. Microsoft, MS-DOS, Windows, Windows NT, Windows Server, Active Directory, BizTalk, InfoPath, Visio, Visual Basic, and Visual Studio are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
    [Show full text]
  • Migration of a Chosen Architectural Pattern to Service Oriented
    Master Thesis Software Engineering Thesis no: MSE-2012:96 06 2012 Migration of chosen architectural pattern to Service Oriented Architecture Piotr Kaliniak This thesis is presented as part of Degree of European Master in Software Engineering School of Computing Blekinge Institute of Technology SE-371 79 Karlskrona Sweden This thesis is submitted to the School of Computing at Blekinge Institute of Technology in partial fulfillment of the requirements for the degree of Master of Science in Software Engineering. The thesis is equivalent to 20 weeks of full time studies. Contact Information: Author(s): Piotr Kaliniak E-mail: [email protected] University advisor(s): Dr. Ludwik Ku´zniarz School of Computing, Blekinge Institute of Technology, Sweden External University advisor(s) Dr. Bogumi laHnatkowska Wroc law University of Technology, Poland School of Computing Blekinge Institute of Technology Internet : www.bth.se/com SE-371 79 Karlskrona Phone : +46 455 38 50 00 Sweden Fax : +46 455 38 50 57 Abstract Context: Several examples of successful migrations of systems to Service Oriented Architecture (SOA) are presented in the literature. Some of the approaches also try to structure the process of migration to SOA. The re- ported migration attempts underline the role of architecture of migrated system, but they do not explore the architectural patterns applied in ar- chitecture of migrated systems while proper usage of patterns may simplify and improve quality of migration. Objectives: This work is aimed at elaborating guidelines that support migration from a system that is based on a chosen architectural pattern towards a system based on Service Oriented Architecture.
    [Show full text]
  • ZHANG-THESIS.Pdf (1.887Mb)
    n-Screen Application Framework A Thesis Submitted to the College of Graduate Studies and Research in Partial Fulfillment of the Requirements for the degree of Master of Science in the Department of Computer Science University of Saskatchewan Saskatoon By Xiaobo Zhang c Xiaobo Zhang, November/2012. All rights reserved. Permission to Use In presenting this thesis in partial fulfilment of the requirements for a Postgraduate degree from the University of Saskatchewan, I agree that the Libraries of this University may make it freely available for inspection. I further agree that permission for copying of this thesis in any manner, in whole or in part, for scholarly purposes may be granted by the professor or professors who supervised my thesis work or, in their absence, by the Head of the Department or the Dean of the College in which my thesis work was done. It is understood that any copying or publication or use of this thesis or parts thereof for financial gain shall not be allowed without my written permission. It is also understood that due recognition shall be given to me and to the University of Saskatchewan in any scholarly use which may be made of any material in my thesis. Requests for permission to copy or to make other use of material in this thesis in whole or part should be addressed to: Head of the Department of Computer Science 176 Thorvaldson Building 110 Science Place University of Saskatchewan Saskatoon, Saskatchewan Canada S7N 5C9 i Abstract Smartphones and tablets with advanced computing ability and connectivity have already become indis- pensable in our daily lives.
    [Show full text]
  • 2.2.3 Cloud Design Patterns (Microsoft Azure)
    Cloud Computing Patterns Identification, Design, and Application Von der Fakultät für Informatik, Elektrotechnik und Informationstechnik der Universität Stuttgart zur Erlangung der Würde eines Doktors der Naturwissenschaften (Dr. rer. nat.) genehmigte Abhandlung Vorgelegt von Christoph Fehling aus Hannover Hauptberichter: Prof. Dr. Dr. h. c. Frank Leymann Mitberichter: Univ.Prof. Dr. Schahram Dustdar Tag der mündlichen Prüfung: 07.10.2015 Institut für Architektur von Anwendungssystemen der Universität Stuttgart 2015 Contents List OF AcrONYMS 9 Zusammenfassung 13 AbstrACT 15 1 INTRODUCTION 17 1.1 Terminology and Conventions . 19 1.1.1 Patterns and Pattern Languages . 19 1.1.2 Cloud Applications and Cloud Providers . 20 1.2 Problem Domain and Contributions . 21 1.2.1 Architectural Baseline of Cloud Computing . 22 1.2.2 Cloud Computing Patterns . 24 1.2.3 Cloud Computing Pattern Language . 29 3 Contents 1.2.4 Design Method for Cloud Applications . 31 1.3 Pattern Engineering Process . 33 1.4 Chapter Summary . 35 2 Related WORK 39 2.1 Guidelines for Pattern Research . 40 2.1.1 Pattern Identification and Authoring . 41 2.1.2 Iterative Pattern Review . 42 2.1.3 Participating in Pattern Conferences . 42 2.2 Other Cloud Computing Patterns . 43 2.2.1 Cloud Computing Patterns of PLoP Conferences 44 2.2.2 Cloud Design Patterns (Amazon Web Services) 45 2.2.3 Cloud Design Patterns (Microsoft Azure) . 46 2.2.4 Cloud Architecture Patterns . 48 2.2.5 CloudPatterns.org . 49 2.3 Chapter Summary . 51 3 IDENTIfiCATION OF Patterns FOR Cloud Computing 53 3.1 Architectural Principles of Cloud Computing . 56 3.1.1 Cloud Computing Properties .
    [Show full text]
  • An Iot Oriented Comparison
    REST and MQTT An IoT oriented comparison Credits: Prof.Pietro Manzoni, University of Valencia, Spain REST vs MQTT 1 IoT Protocols HTTP, CoAP, REST, MQTT, AMQP, XMPP, DDS TCP, UDP IPv4, IPv6, 6LoWPAN Cellular: LR-WPAN: 2G (GSM, GPRS), Ethernet WiFi Bluetooth, ZigBee, 3G (HSPDA,…), IEEE 802.15.x 4G (LTE), REST vs MQTT 2 Network layer protocols ¡ The network (or OSI Layer 3 abstraction) provides an abstraction of the physical world. ¡ Communication protocols £ Most of the IP-based communications are based on the IPv4 (and often via gateway middleware solutions) £ However, IP overhead makes it inefficient for embedded devices with low bit rate and constrained power. ¢ IPv6 is increasingly being introduced for embedded devices è 6LowPAN (IPv6 over Low power Wireless Personal Area Networks) REST vs MQTT 3 IoT standards: OASIS ü OASIS is a nonprofit consortium that drives the development, convergence and adoption of open standards for the global information society. ü OASIS promotes industry consensus and produces worldwide standards for security, Internet of Things, cloud computing, energy, content technologies, emergency management, and other areas. REST vs MQTT 4 IoT standards: open-source implementations ¡ While Open Standards are key, it is also important to make available open-source implementations of such standards, to encourage adoption of such standards both by IoT developers and the IoT industry at large. ¡ http://iot.eclipse.org/ £ Eclipse IoT is an ecosystem of companies and individuals that are working together to establish an Internet of Things based on open technologies. REST vs MQTT 5 “Message based” communications ¡Data bundles (i.e., messages) interchange is becoming everyday more common £E.g., Twitter, Whatsapp, Instagram, Snapchat, Facebook,..
    [Show full text]
  • Building a Framework for High-Performance In-Memory Message-Oriented Middleware
    Building a Framework for High-performance In-memory Message-Oriented Middleware by Huy Hoang A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree of Master of Mathematics in Computer Science Waterloo, Ontario, Canada, 2019 c Huy Hoang 2019 AUTHOR’S DECLARATION I hereby declare that I am the sole author of this thesis. This is a true copy of the thesis, including any required final revisions, as accepted by my examiners. I understand that my thesis may be made electronically available to the public. ii Abstract Message-Oriented Middleware (MOM) is a popular class of software used in many dis- tributed applications, ranging from business systems and social networks to gaming and streaming media services. As workloads continue to grow both in terms of the number of users and the amount of content, modern MOM systems face increasing demands in terms of performance and scalability. Recent advances in networking such as Remote Di- rect Memory Access (RDMA) offer a more efficient data transfer mechanism compared to traditional kernel-level socket networking used by existing widely-used MOM systems. Unfortunately, RDMA’s complex interface has made it difficult for MOM systems to utilize its capabilities. In this thesis we introduce a framework called RocketBufs, which provides abstrac- tions and interfaces for constructing high-performance MOM systems. Applications im- plemented using RocketBufs produce and consume data using regions of memory called buffers while the framework is responsible for transmitting, receiving and synchronizing buffer access. RocketBufs’ buffer abstraction is designed to work efficiently with different transport protocols, allowing messages to be distributed using RDMA or TCP using the same APIs (i.e., by simply changing a configuration file).
    [Show full text]
  • Communication Protocols of an Industrial Internet of Things Environment: a Comparative Study
    future internet Article Communication Protocols of an Industrial Internet of Things Environment: A Comparative Study Samer Jaloudi Department of Information and Communication Technology, Al Quds Open University, Nablus 00407, West Bank, Palestine; [email protected] or [email protected]; Tel.: +970-0599-376-492 Received: 4 February 2019; Accepted: 4 March 2019; Published: 7 March 2019 Abstract: Most industrial and SCADA-like (supervisory control and data acquisition) systems use proprietary communication protocols, and hence interoperability is not fulfilled. However, the MODBUS TCP is an open de facto standard, and is used for some automation and telecontrol systems. It is based on a polling mechanism and follows the synchronous request–response pattern, as opposed to the asynchronous publish–subscribe pattern. In this study, polling-based and event-based protocols are investigated to realize an open and interoperable Industrial Internet of Things (IIoT) environment. Many Internet of Things (IoT) protocols are introduced and compared, and the message queuing telemetry transport (MQTT) is chosen as the event-based, publish–subscribe protocol. The study shows that MODBUS defines an optimized message structure in the application layer, which is dedicated to industrial applications. In addition, it shows that an event-oriented IoT protocol complements the MODBUS TCP but cannot replace it. Therefore, two scenarios are proposed to build the IIoT environment. The first scenario is to consider the MODBUS TCP as an IoT protocol, and build the environment using the MODBUS TCP on a standalone basis. The second scenario is to use MQTT in conjunction with the MODBUS TCP. The first scenario is efficient and complies with most industrial applications where the request–response pattern is needed only.
    [Show full text]
  • Software Design Pattern 1 Software Design Pattern
    Software design pattern 1 Software design pattern In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved. Patterns that imply mutable state may be unsuited for functional programming languages, some patterns can be rendered unnecessary in languages that have built-in support for solving the problem they are trying to solve, and object-oriented patterns are not necessarily suitable for non-object-oriented languages. Design patterns may be viewed as a structured approach to computer programming intermediate between the levels of a programming paradigm and a concrete algorithm. History Patterns originated as an architectural concept by Christopher Alexander as early as 1966 (c.f. "The Pattern of Streets," JOURNAL OF THE AIP, September, 1966, Vol. 32, No. 3, pp. 273-278). In 1987, Kent Beck and Ward Cunningham began experimenting with the idea of applying patterns to programming – specifically pattern languages – and presented their results at the OOPSLA conference that year. In the following years, Beck, Cunningham and others followed up on this work.
    [Show full text]
  • Reactive Design Patterns
    Reactive Design Patterns ROLAND KUHN WITH BRIAN HANAFEE AND JAMIE ALLEN FOREWORD BY JONAS BONÉR MANNING SHELTER ISLAND For online information and ordering of this and other Manning books, please visit www.manning.com. The publisher offers discounts on this book when ordered in quantity. For more information, please contact Special Sales Department Manning Publications Co. 20 Baldwin Road PO Box 761 Shelter Island, NY 11964 Email: [email protected] ©2017 by Manning Publications Co. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by means electronic, mechanical, photocopying, or otherwise, without prior written permission of the publisher. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in the book, and Manning Publications was aware of a trademark claim, the designations have been printed in initial caps or all caps. Recognizing the importance of preserving what has been written, it is Manning’s policy to have the books we publish printed on acid-free paper, and we exert our best efforts to that end. Recognizing also our responsibility to conserve the resources of our planet, Manning books are printed on paper that is at least 15 percent recycled and processed without the use of elemental chlorine. Manning Publications Co. Development editor: Jennifer Stout 20 Baldwin Road Technical development editor: Brian Hanafee PO Box 761 Project editors: Tiffany Taylor and Janet Vail Shelter Island, NY 11964 Line editor: Ben Kovitz Copyeditor: Tiffany Taylor Proofreader: Katie Tennant Technical proofreader: Thomas Lockney Typesetter: Dottie Marsico Cover designer: Leslie Haimes ISBN 9781617291807 Printed in the United States of America 1 2 3 4 5 6 70 8 9 10 – EBM – 22 21 20 19 18 17 To my children — Roland brief contents PART 1 INTRODUCTION...............................................................
    [Show full text]
  • 2 on Distributed Systems
    PATTERN-ORIENTED SOFTWARE ARCHITECTURE PATTERN-ORIENTED SOFTWARE ARCHITECTURE A Pattern Language for Distributed Computing Volume 4 Frank Buschmann, Siemens, Munich, Germany Kevlin Henney, Curbralan, Bristol, UK Douglas C. Schmidt, Vanderbilt University, Tennessee, USA Copyright 2007 John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex PO19 8SQ, England Telephone (+44) 1243 779777 Email (for orders and customer service enquiries): [email protected] Visit our Home Page on www.wileyeurope.com or www.wiley.com All Rights Reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except under the terms of the Copyright, Designs and Patents Act 1988 or under the terms of a licence issued by the Copyright Licensing Agency Ltd, 90 Tottenham Court Road, London W1T 4LP, UK, without the permission in writing of the Publisher. Requests to the Publisher should be addressed to the Permissions Department, John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex PO19 8SQ, England, or emailed to [email protected], or faxed to (+44) 1243 770620. Front cover Image Copyright 2007 Yann Arthus-Bertrand/Altitude Designations used by companies to distinguish their products are often claimed as trademarks. All brand names and product names used in this book are trade names, service marks, trademarks or registered trademarks of their respective owners. The Publisher is not associated with any product or vendor mentioned in this book. This publication is designed to provide accurate and authoritative information in regard to the subject matter covered.
    [Show full text]