Flexible EAI-Lösungen mit Glassfish
|
|
- Aldous Waters
- 6 years ago
- Views:
Transcription
1 Flexible EAI-Lösungen mit Glassfish Praxisbeispiele und War Stories zu EAI-Pattern Alexander Martin We take care of it - personally!
2
3 EAI Pattern in 2013?
4 EAI Pattern in 2013? Nobody does that anymore!
5 That s THE problem!
6 Integration is ubiquitous Multitude of potential service consumers CRM Application
7 Integration is ubiquitous Multitude of potential service consumers ERP Application CRM Application
8 Integration is ubiquitous Multitude of potential service consumers? CRM Application
9 Integration is ubiquitous Multitude of potential service consumers CRM Application
10 Patterns? Wasn t there a book?
11 Patterns? Wasn t there a book? Design Patterns (Gamma et al), 1994
12 Patterns? Wasn t there a book? Design Patterns (Gamma et al), 1994 Proven solutions for common problems
13 Patterns? Wasn t there a book? Design Patterns (Gamma et al), 1994 Proven solutions for common problems Enterprise Integration Patterns (Hohpe & Woolf), 2003
14 Patterns? Wasn t there a book? Design Patterns (Gamma et al), 1994 Proven solutions for common problems Enterprise Integration Patterns (Hohpe & Woolf), 2003 Swiss-army knife for asynchronous messaging
15 Patterns? Wasn t there a book? Design Patterns (Gamma et al), 1994 Proven solutions for common problems Enterprise Integration Patterns (Hohpe & Woolf), 2003 Swiss-army knife for asynchronous messaging
16 We all believe that asynchronous messaging carries the greatest promise. - Martin Fowler (Foreword of Enterprise Integration Patterns, 2003)
17 MESSAGING?
18 Benefits of async. Messaging
19 Benefits of async. Messaging decoupled
20 Benefits of async. Messaging decoupled integrated platforms/ languages
21 Benefits of async. Messaging decoupled integrated platforms/ languages reliable communication
22 Benefits of async. Messaging decoupled integrated platforms/ languages reliable communication disconnected
23 Benefits of async. Messaging decoupled integrated platforms/ languages reliable communication disconnected throttled
24 But why those Patterns? We take care of it - personally!
25 Thoughts on EAI patterns
26 Thoughts on EAI patterns not invented, but observed
27 Thoughts on EAI patterns not invented, but observed don t solve everything
28 Thoughts on EAI patterns not invented, but observed don t solve everything provide ideas
29 Thoughts on EAI patterns not invented, but observed don t solve everything provide ideas good ones evolve
30 Thoughts on EAI patterns not invented, but observed don t solve everything provide ideas good ones evolve changes are incorporated at eaipatterns.com
31 Real Life Scenario Simple order management system (CRUD) order management system
32 Real Life Scenario Simple order management system (CRUD) basic Java EE order management system
33 Real Life Scenario Simple order management system (CRUD) basic Java EE Just CRUD operations order management system
34 Real Life Scenario Simple order management system (CRUD) basic Java EE Just CRUD operations information silo order management system
35 Real Life Scenario Simple order management system (CRUD) basic Java EE Just CRUD operations information silo order management system
36 Simple Change order management system
37 Simple Change Enhance the system with an importer! order management system
38 Simple Change Enhance the system with an importer! Receive CSV-data via HTTP POST order management system
39 Simple Change Enhance the system with an importer! Receive CSV-data via HTTP POST CSV contains header and detail records order management system
40 Simple Change Enhance the system with an importer! Receive CSV-data via HTTP POST CSV contains header and detail records Import data into database order management system
41 A Simple Java EE = {"/order/import"}) public class ImporterServlet extends HttpServlet OrderBean CsvDataParser parser; protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String data = request.getparameter("csvdata"); List<Order> orders = parser.transform(data); for (Order order : orders) { bean.persist(order); } }
42 Simple Change done Enhanced the system with an importer! System Business Partner csv HTTP Transform order management system
43 Change happens Integrate the system of a forwarder System Business Partner csv REST HTTP Transform order management system FTP SMTP SOAP WSSE forwarder system
44 Recognize an integration task when it s staring in your face?
45 EASY!
46 Build an easy and maintainable solution for multiple integration challenges?
47 NO PROBLEM!
48 Something wrong = {"/order/import"}) public class ImporterServlet extends HttpServlet OrderBean CsvDataParser parser; protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String data = request.getparameter("csvdata"); List<Order> orders = parser.transform(data); for (Order order : orders) { bean.persist(order); } }
49 Something wrong = {"/order/import"}) public class ImporterServlet extends HttpServlet OrderBean CsvDataParser parser; testable? protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String data = request.getparameter("csvdata"); List<Order> orders = parser.transform(data); for (Order order : orders) { bean.persist(order); } }
50 Something wrong = {"/order/import"}) public class ImporterServlet extends HttpServlet { OrderBean CsvDataParser parser; testable? protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String data = request.getparameter("csvdata"); List<Order> orders = parser.transform(data); for (Order order : orders) { bean.persist(order); } }
51 Something wrong = {"/order/import"}) public class ImporterServlet extends HttpServlet { OrderBean CsvDataParser parser; testable? protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String data = request.getparameter("csvdata"); List<Order> orders = parser.transform(data); for (Order order : orders) { bean.persist(order); } } extensible?
52 How could we do better?
53 Pipes and Filters
54 Pipes and Filters divide your task into small steps
55 Apply pipes & filters pattern inbound Pipe Route transform Pipe outbound
56 Apply pipes & filters pattern inbound Pipe Route transform Pipe outbound Servlet
57 Apply pipes & filters pattern inbound Pipe Route transform Pipe outbound Servlet Custom
58 Apply pipes & filters pattern inbound Pipe Route transform Pipe outbound Servlet Custom JPA
59 When you got the right tools to do the job?
60 INFALLIBLE!
61 Is there something simpler?
62 Property of ChinBuye Limited. ADAPTERS?
63 EAI Frameworks Apache Camel Spring Integration
64 A simple camel route from("jetty: orderimport ).process(new PostParameterProcessor( csvdata )).process(new StringRemover(new String[]{"\""})).unmarshal().csv().split(body(List.class)).aggregate(header("orderId"), new MySpecialAggregationStrategy()).completionTimeout(3000).to("seda:singlepartsroute");
65 Spring Integration sample <int- id="orderimporthttpadapter"! path="/order/import supported-methods="post"! channel="ordersin"/> <int:channel="ordersin"/> <int:splitter input-channel="ordersin" ref="ordersplitter" method="split" output-channel="orderstodb" /> <bean id="ordersplitter" class="com.innoq.samples.eai.ordersplitter"/> <int:channel="orderstodb"/> <int-jpa:updating-outbound-gateway request-channel="orderstodb" entity-class="com.innoq.samples.eai.domain.order" entity-manager="em"/>
66 Configuration in XML?
67 Configuration in XML?
68 Real-life scenario: Control Bus Embedded Jetty Tomcat EAI-Node EAI-Node EAI-Node ctrl-queue OracleDB + AQ xml-route-config Admin UI
69 Real-life scenario: Control Bus Initial Node configuration database connection node type (command line arg) EAI-Node EAI-Node EAI-Node ctrl-queue OracleDB + AQ xml-route-config Admin UI
70 Real-life scenario: Control Bus 1. Server startup subscribe to control queue EAI-Node EAI-Node EAI-Node ctrl-queue OracleDB + AQ xml-route-config Admin UI
71 Real-life scenario: Control Bus 1. Server startup subscribe to control queue load node-type specific config EAI-Node EAI-Node EAI-Node ctrl-queue OracleDB + AQ xml-route-config Admin UI
72 Config 2. during runtime route config is changed EAI-Node EAI-Node EAI-Node ctrl-queue OracleDB + AQ xml-route-config Admin UI
73 Config 2. during runtime route config is changed publish config update message EAI-Node EAI-Node EAI-Node ctrl-queue OracleDB + AQ xml-route-config Admin UI
74 Config 3. upon control message arrival interpret relevance of control message EAI-Node EAI-Node EAI-Node ctrl-queue OracleDB + AQ xml-route-config Admin UI
75 Config 3. upon control message arrival interpret relevance of control message affected nodes reload configuration EAI-Node EAI-Node EAI-Node ctrl-queue OracleDB + AQ xml-route-config Admin UI
76 What would we change today? GlassFish 4.0 EAI-Node EAI-Node EAI-Node ctrl-queue OracleDB + AQ xml-route-config Admin UI
77 More EAI-Patterns in the wild
78 Message Router
79 Message Router forward by condition
80 Message Router
81 Message Router from( ibmmq:queue.in ).noautostartup().transacted().policy(required).routeid(basicroutebuilder.stdfromrouteid(this.componentbasename)).process(vslheadersprocessor).setheader(hdr_dummycomplchk_ibr, constant(passedmsg)).bean(inboundtargetdispatcherbean).wiretap("seda:inboundrouter.log"); Apache Camel running in WAS6.1
82 Message Router from( ibmmq:queue.in ).noautostartup().transacted().policy(required).routeid(basicroutebuilder.stdfromrouteid(this.componentbasename)).process(vslheadersprocessor).setheader(hdr_dummycomplchk_ibr, constant(passedmsg)).bean(inboundtargetdispatcherbean).wiretap("seda:inboundrouter.log"); Apache Camel running in WAS6.1
83 Message Router public class InboundTargetMsgDispatcherBean implements Constants { /** * Map for all eligible Target Endpoints of the InboundRouter. */ private final Map<String, String[]> alltargets = new HashMap<String, public String[] route(@header(hdr_jmsx_groupid) String group) { String[] t = alltargets.get(group); return t; } /** * creates valid endpoint-uris from targetjmsuri and numbering. */ private void createalltargets() { if (alltargets.keyset().size() == 0) { for (int i = 0; i < NROFROUTES; i++) { String target = createtargetjmsuri(i); alltargets.put(string.valueof(i), new String[] { target }); } } }
84 Transformer
85 Transformation mit BPMN-System (1)
86 Transformation für BPMN-System (2) from( ).routeid("bankapp.transformation.dispatch." + identification).choice().when().xpath("//v10:*[1]", inputns).to("direct:transform_v10_v11 ).otherwise().to(outputendpoint).endchoice();
87 Transformation für BPMN-System (2) from( ).routeid("bankapp.transformation.dispatch." + identification).choice().when().xpath("//v10:*[1]", inputns).to("direct:transform_v10_v11 ).otherwise().to( + BPMNSystemSpecEP?bridgeEndpoint=true ).endchoice();
88 Transformation für BPMN-System (2) from( ).routeid("bankapp.transformation.dispatch." + identification).choice().when().xpath("//v10:*[1]", inputns).to("direct:transform_v10_v11 ).otherwise().to( + BPMNSystemSpecEP?bridgeEndpoint=true ).endchoice();
89 Transformation für BPMN-System (2) from( ).routeid("bankapp.transformation.dispatch." + identification).choice().when().xpath("//v10:*[1]", inputns).to("direct:transform_v10_v11 ).otherwise().to( + BPMNSystemSpecEP?bridgeEndpoint=true ).endchoice();
90 Transformation für BPMN-System (3) from( direct:transform_v10_v11 ).routeid("projectx.route.transformation.transform.v10_v11 ).setbody().xpath("/s:envelope/s:body/*[1]", soapns).to("xslt:xsl/bankx/bank_v10_v11.xsl").bean(xbanktransformerbean, "transform_v10_v11").setbody().simple(transformationconstants.soapstart +"$ {in.body}"+transformationconstants.soapend).process(new ContentPrinter("v10-v11 )).inout( + bridgeendpoint=true ).to("direct:response" + reverseidentification);
91 Transformation für BPMN-System (3) from( direct:transform_v10_v11 ).routeid("projectx.route.transformation.transform.v10_v11 ).setbody().xpath("/s:envelope/s:body/*[1]", soapns).to("xslt:xsl/bankx/bank_v10_v11.xsl").bean(xbanktransformerbean, "transform_v10_v11").setbody().simple(transformationconstants.soapstart +"$ {in.body}"+transformationconstants.soapend).process(new ContentPrinter("v10-v11 )).inout(outputendpoint).to("direct:response" + reverseidentification);
92 Transformation für BPMN-System (3) from( direct:transform_v10_v11 ).routeid("projectx.route.transformation.transform.v10_v11 ).setbody().xpath("/s:envelope/s:body/*[1]", soapns).to("xslt:xsl/bankx/bank_v10_v11.xsl").bean(xbanktransformerbean, "transform_v10_v11").setbody().simple(transformationconstants.soapstart +"$ {in.body}"+transformationconstants.soapend).process(new ContentPrinter("v10-v11 )).inout(outputendpoint).to("direct:response" + reverseidentification);
93 Transformation für BPMN-System (3) from( direct:transform_v10_v11 ).routeid("projectx.route.transformation.transform.v10_v11 ).setbody().xpath("/s:envelope/s:body/*[1]", soapns).to("xslt:xsl/bankx/bank_v10_v11.xsl").bean(xbanktransformerbean, "transform_v10_v11").setbody().simple(transformationconstants.soapstart +"$ {in.body}"+transformationconstants.soapend).process(new ContentPrinter("v10-v11 )).inout(outputendpoint).to("direct:response" + reverseidentification);
94 Transformation für BPMN-System (3) from("direct:transform_v10_v11").routeid("projectx.route.transformation.transform." + identification).setbody().xpath("/s:envelope/s:body/*[1]", soapns).to("xslt:xsl/bankx/bank_" + identification + ".xsl").bean(transformerbean, "transform_v10_v11")... public class BankTransformerBean extends AbstractTransformerBean "rawtypes" }) public String transform_v10_v11(@body String body) throws JDOMException, IOException { Element message = parse(body); message.removenamespacedeclaration(nsxbank_v1_0); message.removenamespacedeclaration(nsybank_v1_0); message.addnamespacedeclaration(nsxbankv1_1);... return tostring(message); "rawtypes" }) public String transform_v11_v10(@body String body) throws JDOMException, IOException {
95 Transformation für BPMN-System (3) from( direct:transform_v10_v11 ).routeid("projectx.route.transformation.transform.v10_v11 ).setbody().xpath("/s:envelope/s:body/*[1]", soapns).to("xslt:xsl/bankx/bank_v10_v11.xsl").bean(xbanktransformerbean, "transform_v10_v11").setbody().simple(transformationconstants.soapstart +"$ {in.body}"+transformationconstants.soapend).process(new ContentPrinter("v10-v11 )).inout( + bridgeendpoint=true ).to("direct:response_v11_v10 );
96 Transformation für BPMN-System (3) from( direct:transform_v10_v11 ).routeid("projectx.route.transformation.transform.v10_v11 ).setbody().xpath("/s:envelope/s:body/*[1]", soapns).to("xslt:xsl/bankx/bank_v10_v11.xsl").bean(xbanktransformerbean, "transform_v10_v11").setbody().simple(transformationconstants.soapstart +"$ {in.body}"+transformationconstants.soapend).process(new ContentPrinter("v10-v11 )).inout( + bridgeendpoint=true ).to("direct:response_v11_v10 );
97 Transformation für BPMN-System (4) from("direct:response_v11_v10 ).setbody().xpath("/s:envelope/s:body/*[1]", soapns).to("xslt:xsl/bankx/bank_v11_v10.xsl").bean(transformerbean, "transform_v11_v10").setbody().simple(transformationconstants.soapstarttixbank +"${in.body}" +TransformationConstants.soapEnd);
98 Flexibility through Filters inbound Pipe Route filter Pipe outbound Filters are exchangeable, reusable and easily testable
99
100 Should I always use an EAI-Framework?
101 Should I always use an EAI-Framework? It depends!
102 Further tips considering EAI
103 Further tips considering EAI small building blocks
104 Further tips considering EAI small building blocks no shared mutable state
105 Further tips considering EAI small building blocks no shared mutable state use immutable DTOs
106 Further tips considering EAI small building blocks no shared mutable state use immutable DTOs => increased scalability
107 Further tips considering EAI small building blocks no shared mutable state use immutable DTOs => increased scalability advanced: see SEDA & actor model
108 Vielen Dank! Alexander Martin We take care of it - personally!
EAI War Stories. ! Alexander Martin Praxisbeispiele zu EAI-Pattern und Lessons Learned
EAI War Stories Praxisbeispiele zu EAI-Pattern und Lessons Learned! Alexander Heusingfeld, @goldstift Martin Huber, @waterback We take care of it - personally! EAI Pattern in 2013? Nobody uses them anymore!
More informationINTRODUCTION TO SERVLETS AND WEB CONTAINERS. Actions in Accord with All the Laws of Nature
INTRODUCTION TO SERVLETS AND WEB CONTAINERS Actions in Accord with All the Laws of Nature Web server vs web container Most commercial web applications use Apache proven architecture and free license. Tomcat
More informationJBI based ESB as backbone for SOI applications. Michael Wisler Zühlke Engineering AG Submission ID: 687
JBI based ESB as backbone for SOI applications Michael Wisler Zühlke Engineering AG Submission ID: 687 Goal of this talk 2 This session brings the JBI (Java Business Integration) standard in contex t to
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationJava EE Architecture, Part Two. Java EE architecture, part two 1
Java EE Architecture, Part Two Java EE architecture, part two 1 Content Requirements on the Business layer Framework Independent Patterns Transactions Frameworks for the Business layer Java EE architecture,
More informationImplementation Architecture
Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern ISDS, TU Graz 2017-11-15 Roman Kern (ISDS, TU Graz) Implementation Architecture 2017-11-15 1 / 54 Outline 1 Definition
More informationJVA-563. Developing RESTful Services in Java
JVA-563. Developing RESTful Services in Java Version 2.0.1 This course shows experienced Java programmers how to build RESTful web services using the Java API for RESTful Web Services, or JAX-RS. We develop
More informationConnecting the RISC Client to non-javascriptinterfaces
Connecting the RISC Client to non-javascriptinterfaces Motivation In industry scenarios there is the necessity to connect the RISC client to client side subdevices or interfaces. Examples: serial / USB
More informationStateless -Session Bean
Stateless -Session Bean Prepared by: A.Saleem Raja MCA.,M.Phil.,(M.Tech) Lecturer/MCA Chettinad College of Engineering and Technology-Karur E-Mail: asaleemrajasec@gmail.com Creating an Enterprise Application
More informationEnterprise Integration Patterns Exemplified in Java Business Integration
Enterprise Integration Patterns Exemplified in Java Business Integration Part I - Introduction Christoph Hartmann 2 There is no simple answer for enterprise integration. Hohpe et al. Enterprise Integration
More informationService Oriented Integration With Apache ServiceMix
Service Oriented Integration With Apache ServiceMix Bruce Snyder bsnyder@apache.org October 2008 Keystone, Colorado Bruce Snyder Service Oriented Integration With Apache ServiceMix Slide 1 Agenda Enterprise
More informationIntegration Patterns for Mission Critical System of. Systems. OpenSplice DDS. Julien ENOCH Engineering Team Lead PrismTech.
Integration Patterns for Mission Critical System of OpenSplice Systems Julien ENOCH Engineering Team Lead PrismTech julien.enoch@prismtech.com System Integration Challenges OpenSplice Subsystems integration
More informationAdvanced Topics in Operating Systems. Manual for Lab Practices. Enterprise JavaBeans
University of New York, Tirana M.Sc. Computer Science Advanced Topics in Operating Systems Manual for Lab Practices Enterprise JavaBeans PART III A Web Banking Application with EJB and MySQL Development
More informationEnterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing
Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing Jürgen Höller, Principal Engineer, SpringSource 2012 SpringSource, A division of VMware. All rights reserved Deployment Platforms: Becoming
More informationWednesday, May 22, 13. Java Business Integration
Java Business Integration Java Business Integration Enterprise Application Integration and B2B often require non-standard technology this causes lock-in! no single provider can give us all we need. JBI
More informationAMon A Monitoring System for ActiveMQ
A Monitoring System for ActiveMQ Joe Fernandez joe.fernandez@ttmsolutions.com Total Transaction Management, LLC 570 Rancheros Drive, Suite 140 San Marcos, CA 92069 760-591-0273 www.ttmsolutions.com 1 Designed
More informationJava Enterprise Edition. Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1
Java Enterprise Edition Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 1 Java Beans Java EE Oct Dec 2016 EFREI/M1 Jacques André Augustin Page 2 Java Bean POJO class : private Attributes public
More informationServlets by Example. Joe Howse 7 June 2011
Servlets by Example Joe Howse 7 June 2011 What is a servlet? A servlet is a Java application that receives HTTP requests as input and generates HTTP responses as output. As the name implies, it runs on
More informationContents at a Glance
Contents at a Glance 1 Java EE and Cloud Computing... 1 2 The Oracle Java Cloud.... 25 3 Build and Deploy with NetBeans.... 49 4 Servlets, Filters, and Listeners... 65 5 JavaServer Pages, JSTL, and Expression
More informationImplementation Architecture
Implementation Architecture Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2014-11-19 Roman Kern (KTI, TU Graz) Implementation Architecture 2014-11-19 1 / 53 Outline 1 Definition 2
More informationThe Basic Web Server CGI. CGI: Illustration. Web based Applications, Tomcat and Servlets - Lab 3 - CMPUT 391 Database Management Systems 4
CMPUT 391 Database Management Systems The Basic Web based Applications, - - CMPUT 391 Database Management Systems Department of Computing Science University of Alberta CMPUT 391 Database Management Systems
More informationOSGi on the Server. Martin Lippert (it-agile GmbH)
OSGi on the Server Martin Lippert (it-agile GmbH) lippert@acm.org 2009 by Martin Lippert; made available under the EPL v1.0 October 6 th, 2009 Overview OSGi in 5 minutes Apps on the server (today and tomorrow)
More informationEnterprise Java Technologies (Part 1 of 3) Component Architecture. Overview of Java EE. Java Servlets
ID2212 Network Programming with Java Lecture 10 Enterprise Java Technologies (Part 1 of 3) Component Architecture. Overview of Java EE. Java Servlets Leif Lindbäck, Vladimir Vlassov KTH/ICT/SCS HT 2015
More informationExercise SBPM Session-4 : Web Services
Arbeitsgruppe Exercise SBPM Session-4 : Web Services Kia Teymourian Corporate Semantic Web (AG-CSW) Institute for Computer Science, Freie Universität Berlin kia@inf.fu-berlin.de Agenda Presentation of
More information1Z Java EE 6 Web Component Developer Certified Expert Exam Summary Syllabus Questions
1Z0-899 Java EE 6 Web Component Developer Certified Expert Exam Summary Syllabus Questions Table of Contents Introduction to 1Z0-899 Exam on Java EE 6 Web Component Developer Certified Expert... 2 Oracle
More informationWeb based Applications, Tomcat and Servlets - Lab 3 -
CMPUT 391 Database Management Systems Web based Applications, - - CMPUT 391 Database Management Systems Department of Computing Science University of Alberta The Basic Web Server CMPUT 391 Database Management
More informationCopyright 2014 Blue Net Corporation. All rights reserved
a) Abstract: REST is a framework built on the principle of today's World Wide Web. Yes it uses the principles of WWW in way it is a challenge to lay down a new architecture that is already widely deployed
More informationJSR 311: JAX-RS: The Java API for RESTful Web Services
JSR 311: JAX-RS: The Java API for RESTful Web Services Marc Hadley, Paul Sandoz, Roderico Cruz Sun Microsystems, Inc. http://jsr311.dev.java.net/ TS-6411 2007 JavaOne SM Conference Session TS-6411 Agenda
More informationEnterprise Architectures
Enterprise Architectures Petr Křemen petr.kremen@fel.cvut.cz Winter Term 2017 Petr Křemen (petr.kremen@fel.cvut.cz) Enterprise Architectures Winter Term 2017 1 / 29 Contents 1 Information about the course
More informationCloud Computing Platform as a Service
HES-SO Master of Science in Engineering Cloud Computing Platform as a Service Academic year 2015/16 Platform as a Service Professional operation of an IT infrastructure Traditional deployment Server Storage
More information8-24 minute delay ± 30 min. round trip Web DNS Redirect Download HTML Download CSS + JS + Images Download more CSS + JS + Images. Ordering a pizza Several hours per page About 8 pages per order Thread.setName(
More informationSpring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich
Spring and OSGi Martin Lippert akquinet agile GmbH lippert@acm.org Bernd Kolb b.kolb@kolbware.de Gerd Wütherich gerd@gerd-wuetherich.de 2006 by Martin Lippert, Bernd Kolb & Gerd Wütherich, made available
More informationCMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition
CMP 436/774 Introduction to Java Enterprise Edition Fall 2013 Department of Mathematics and Computer Science Lehman College, CUNY 1 Java Enterprise Edition Developers today increasingly recognize the need
More informationDeveloping a Mobile Web-based Application with Oracle9i Lite Web-to-Go
Developing a Mobile Web-based Application with Oracle9i Lite Web-to-Go Christian Antognini Trivadis AG Zürich, Switzerland Introduction More and more companies need to provide their employees with full
More informationEnterprise Development
Enterprise Development with What needs to be done to run JEE like applications inside Karaf? @anierbeck - Karaf PMC, Apache Member - OPS4j Pax Web Project Lead - Senior IT Consultant @codecentric - co-author
More informationWeb Presentation Patterns (controller) SWEN-343 From Fowler, Patterns of Enterprise Application Architecture
Web Presentation Patterns (controller) SWEN-343 From Fowler, Patterns of Enterprise Application Architecture Objectives Look at common patterns for designing Web-based presentation layer behavior Model-View-Control
More informationRed Hat JBoss Fuse Service Works Integration Recipes, Best Practices & Cheat Codes
Red Hat JBoss Fuse Service Works Integration Recipes, Best Practices & Cheat Codes Keith Babo SwitchYard Project Lead, Red Hat There is Still Time To Leave We will be talking integration and SOA If your
More informationDistributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management
Distributed Systems Messaging and JMS 1 Example scenario Scenario: Store inventory is low This impacts multiple departments Inventory Sends a message to the factory when the inventory level for a product
More informationOCP JavaEE 6 EJB Developer Study Notes
OCP JavaEE 6 EJB Developer Study Notes by Ivan A Krizsan Version: April 8, 2012 Copyright 2010-2012 Ivan A Krizsan. All Rights Reserved. 1 Table of Contents Table of Contents... 2 Purpose... 9 Structure...
More informationJAVA SERVLET. Server-side Programming INTRODUCTION
JAVA SERVLET Server-side Programming INTRODUCTION 1 AGENDA Introduction Java Servlet Web/Application Server Servlet Life Cycle Web Application Life Cycle Servlet API Writing Servlet Program Summary 2 INTRODUCTION
More informationApache Camel: Integration Nirvana
Apache Camel: Integration Nirvana Jonathan Anstey, Senior Engineer, Progress Software Corporation 3/20/2009 Most up to date version available at DZone http://architects.dzone.com/articles/apache-camel-integration
More informationThe Road to Reactive with RxJava. Or: How to use non blocking I/O without wanting to kill yourself
The Road to Reactive with RxJava Or: How to use non blocking I/O without wanting to kill yourself Legacy An accomplishment that remains relevant long after a person has died Software is not so lucky
More informationApache Multipurpose Infrastructure for Network Applications Building Scalable Network Applications
Apache Multipurpose Infrastructure for Network Applications Building Scalable Network Applications Dan Pritchett Rearden Commerce Dan Pritchett Apache Multipurpose Infrastructure for Network Applications
More informationSun Java TM Composite Applications Platform Suite Implementing Selected EAI Patterns
Sun Java TM Composite Applications Platform Suite Implementing Selected EAI Patterns Michael Czapski, Enterprise Architect, Sun Microsystems Frank Kieviet, Senior Staff Engineer, Sun Microsystems TS-5301
More informationJava Lounge. Integration Solutions madeeasy ComparisonofJava Integration Frameworks. Mario Goller
Java Lounge Integration Solutions madeeasy ComparisonofJava Integration Frameworks Mario Goller 28.05.2013 BASEL BERN LAUSANNE ZÜRICH DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. HAMBURG MÜNCHEN STUTTGART
More informationESB, OSGi, and the Cloud
ESB, OSGi, and the Cloud Making it Rain with ServiceMix 4 Jeff Genender CTO Savoir Technologies Jeff Genender - Who is this Shmoe? Apache CXF JSR 316 - Java EE 6 Rules of Engagement Engage yourself! Agenda
More informationThis tutorial will teach you how to use Java Servlets to develop your web based applications in simple and easy steps.
About the Tutorial Servlets provide a component-based, platform-independent method for building Webbased applications, without the performance limitations of CGI programs. Servlets have access to the entire
More informationLAB 1 PREPARED BY : DR. AJUNE WANIS ISMAIL FACULTY OF COMPUTING UNIVERSITI TEKNOLOGI MALAYSIA
LAB 1 PREPARED BY : DR. AJUNE WANIS ISMAIL FACULTY OF COMPUTING UNIVERSITI TEKNOLOGI MALAYSIA Setting up Java Development Kit This step involves downloading an implementation of the Java Software Development
More informationWWW Architecture I. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz
WWW Architecture I Software Architecture VO/KU (707.023/707.024) Roman Kern KTI, TU Graz 2013-12-04 Roman Kern (KTI, TU Graz) WWW Architecture I 2013-12-04 1 / 81 Web Development Tutorial Java Web Development
More informationThe Servlet Life Cycle
The Servlet Life Cycle What is a servlet? Servlet is a server side component which receives a request from a client, processes the request and sends a content based response back to the client. The Servlet
More informationService Oriented Integration With Apache ServiceMix. Bruce Snyder 21 Nov 2008 Malmo, Sweden
Service Oriented Integration With Apache ServiceMix Bruce Snyder bsnyder@apache.org 21 Nov 2008 Malmo, Sweden Agenda Enterprise Service Bus Java Business Integration Apache ServiceMix ESB 2 What is an
More informationOracle FLEXCUBE Universal Banking 12.0 Interface Getting started. Release 1.0
Universal Banking 12.0 Interface Getting started Release 1.0 May 2012 Contents 1 Preface... 3 1.1 Audience... 3 1.2 Related documents... 3 1.3 Conventions... 3 2 Introduction... 4 2.1 How to use this Guide...
More informationThe artist formerly known as JBoss AS. Harald ~
The artist formerly known as JBoss AS Harald Pehl @haraldpehl ~ http://hpehl.info WildFly? JBoss AS JBoss Community ~ 100 Projekte JBoss Enterprise Application Platform Name overloaded WildFly! Folgeversion
More informationSession 9. Introduction to Servlets. Lecture Objectives
Session 9 Introduction to Servlets Lecture Objectives Understand the foundations for client/server Web interactions Understand the servlet life cycle 2 10/11/2018 1 Reading & Reference Reading Use the
More informationContents. 1. JSF overview. 2. JSF example
Introduction to JSF Contents 1. JSF overview 2. JSF example 2 1. JSF Overview What is JavaServer Faces technology? Architecture of a JSF application Benefits of JSF technology JSF versions and tools Additional
More informationArchitectural patterns and models for implementing CSPA
Architectural patterns and models for implementing CSPA Marco Silipo THE CONTRACTOR IS ACTING UNDER A FRAMEWORK CONTRACT CONCLUDED WITH THE COMMISSION Application architecture Outline SOA concepts and
More informationMicroservices. Are your Frameworks ready? Martin Eigenbrodt Alexander Heusingfeld
Microservices Are your Frameworks ready? Martin Eigenbrodt martin.eigenbrodt@innoq.com Alexander Heusingfeld alexander.heusingfeld@innoq.com Microservices? Levels of Architecture Domain architecture Macro
More informationDatabase Applications Recitation 6. Project 3: CMUQFlix CMUQ s Movies Recommendation System
15-415 Database Applications Recitation 6 Project 3: CMUQFlix CMUQ s Movies Recommendation System 1 Project Objective 1. Set up a front-end website with PostgreSQL as the back-end 2. Allow users to login,
More informationJava servlets CSCI 470: Web Science Keith Vertanen Copyright 2013
Java servlets CSCI 470: Web Science Keith Vertanen Copyright 2013 Overview Dynamic web content genera2on (thus far) CGI Web server modules Server- side scrip2ng e.g. PHP, ASP, JSP Custom web server Java
More informationJ2EE Development with Apache Geronimo. Aaron Mulder Chariot Solutions
J2EE Development with Apache Geronimo Aaron Mulder Chariot Solutions Speaker Aaron Mulder Geronimo Developer Works on deployment, management, console, kernel,... Online Geronimo book at http:// chariotsolutions.com/geronimo/
More informationComplex event flows in distributed systems
Complex event flows in distributed systems @berndruecker With thoughts from http://flowing.io @berndruecker @martinschimak 3 common hypotheses I check today: # Events decrease coupling # Orchestration
More informationAim behind client server architecture Characteristics of client and server Types of architectures
QA Automation - API Automation - All in one course Course Summary: In detailed, easy, step by step, real time, practical and well organized Course Not required to have any prior programming knowledge,
More informationService-Oriented Architecture
Service-Oriented Architecture The Service Oriented Society Imagine if we had to do everything we need to get done by ourselves? From Craftsmen to Service Providers Our society has become what it is today
More informationRealization of EAI Patterns with Apache Camel
Institut für Architektur von Anwendungssystemen Universität Stuttgart Universitätsstraße 38 70569 Stuttgart Studienarbeit Nr. 2127 Realization of EAI Patterns with Apache Camel Pascal Kolb Studiengang:
More informationKeep Learning with Oracle University
Keep Learning with Oracle University Classroom Training Learning Subscription Live Virtual Class Training On Demand Cloud Technology Applications Industries education.oracle.com 3 Session Surveys Help
More informationJava TM. JavaServer Faces. Jaroslav Porubän 2008
JavaServer Faces Jaroslav Porubän 2008 Web Applications Presentation-oriented Generates interactive web pages containing various types of markup language (HTML, XML, and so on) and dynamic content in response
More informationOracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)
Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand) Code: URL: D101074GC10 View Online The Developing Applications for the Java EE 7 Platform training teaches you how
More informationLab session Google Application Engine - GAE. Navid Nikaein
Lab session Google Application Engine - GAE Navid Nikaein Available projects Project Company contact Mobile Financial Services Innovation TIC Vasco Mendès Bluetooth low energy Application on Smart Phone
More informationMobile Computing. Logic and data sharing. REST style for web services. Operation verbs. RESTful Services
Logic and data sharing Mobile Computing Interface Logic Services Logic Data Sync, Caches, Queues Data Mobile Client Server RESTful Services RESTful Services 2 REST style for web services REST Representational
More informationSog o e g t e i J a J v a a
Graduation @ Sogeti Java Java EE, REST, AngularJS, Code generation, Websockets, NoSQL Erwin de Gier Sogeti Java CoE Amsterdam, September 2015 WhoAmI Erwin de Gier Software Architect Coach Young Professionals
More informationMail: Web: juergen-schuster-it.de
Mail: j_schuster@me.com Twitter: @JuergenSchuster Web: juergen-schuster-it.de APEX-Homepage: APEX Podcast: apex.press/talkshow Dynamic Actions Examples: dynamic-actions.com Who am I Oracle (13 Years) Freelancer
More informationCS506 Web Design & Development Final Term Solved MCQs with Reference
with Reference I am student in MCS (Virtual University of Pakistan). All the MCQs are solved by me. I followed the Moaaz pattern in Writing and Layout this document. Because many students are familiar
More informationSpring-beans-2.5.xsd' Must Have Even Number Of Uri's
Spring-beans-2.5.xsd' Must Have Even Number Of Uri's encoding="utf-8"? beans xmlns="springframework.org/schema/beans" spring. schemalocation must have even number of URI's. How can I validate a form collection
More informationBEAAquaLogic. Service Bus. JPD Transport User Guide
BEAAquaLogic Service Bus JPD Transport User Guide Version: 3.0 Revised: March 2008 Contents Using the JPD Transport WLI Business Process......................................................2 Key Features.............................................................2
More informationWHAT IS EJB. Security. life cycle management.
EJB WHAT IS EJB EJB is an acronym for enterprise java bean. It is a specification provided by Sun Microsystems to develop secured, robust and scalable distributed applications. To run EJB application,
More informationEllipse Web Services Overview
Ellipse Web Services Overview Ellipse Web Services Overview Contents Ellipse Web Services Overview 2 Commercial In Confidence 3 Introduction 4 Purpose 4 Scope 4 References 4 Definitions 4 Background 5
More informationSession 12. RESTful Services. Lecture Objectives
Session 12 RESTful Services 1 Lecture Objectives Understand the fundamental concepts of Web services Become familiar with JAX-RS annotations Be able to build a simple Web service 2 10/21/2018 1 Reading
More informationDeveloping Applications with Java EE 6 on WebLogic Server 12c
Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need
More informationMeet. Brian Stansberry Principal Software Engineer, Red Hat, Inc. June 10, Friday, June 14, 13
Meet Brian Stansberry Principal Software Engineer, Red Hat, Inc. June 10, 2013 What s WildFly? New name for the JBoss Application Server project Reduce confusion over the name JBoss WildFly won a public
More informationDistributed Multitiered Application
Distributed Multitiered Application Java EE platform uses a distributed multitiered application model for enterprise applications. Logic is divided into components https://docs.oracle.com/javaee/7/tutorial/overview004.htm
More informationSpoilt for Choice Which Integration Framework to choose? Mule ESB. Integration. Kai Wähner
Spoilt for Choice Which Integration Framework to choose? Integration vs. Mule ESB vs. Main Tasks Evaluation of Technologies and Products Requirements Engineering Enterprise Architecture Management Business
More informationJava Enterprise Edition
Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data
More informationServlets1. What are Servlets? Where are they? Their job. Servlet container. Only Http?
What are Servlets? Servlets1 Fatemeh Abbasinejad abbasine@cs.ucdavis.edu A program that runs on a web server acting as middle layer between requests coming from a web browser and databases or applications
More information<Insert Picture Here> Oracle Application Cache Solution: Coherence
Oracle Application Cache Solution: Coherence 黃開印 Kevin Huang Principal Sales Consultant Outline Oracle Data Grid Solution for Application Caching Use Cases Coherence Features Summary
More informationAN ISO 9001:2008 CERTIFIED COMPANY ADVANCED. Java TRAINING.
AN ISO 9001:2008 CERTIFIED COMPANY ADVANCED Java TRAINING www.webliquids.com ABOUT US Who we are: WebLiquids is an ISO (9001:2008), Google, Microsoft Certified Advanced Web Educational Training Organisation.
More informationJava EE 6 & GlassFish v3 Paving the path for future. Arun Gupta Sun Microsystems, Inc.
Java EE 6 & GlassFish v3 Paving the path for future Arun Gupta (blogs.sun.com/arungupta, @arungupta) Sun Microsystems, Inc. Java EE: Past & Present Flexible Ease of Development Web Services J2EE 1.4 Enterprise
More informationDistributed Applications
Distributed Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, and other sources ReCap Software Architecture A software system
More informationHTTP status codes. Setting status of an HTTPServletResponse
HTTP status codes Setting status of an HTTPServletResponse What are HTTP status codes? The HTTP protocol standard includes three digit status codes to be included in the header of an HTTP response. There
More informationCopyright 2014, Oracle and/or its affiliates. All rights reserved.
1 Oracle Mobile Suite an Overview Vincent Hu Principal Sales Consultant Oracle Mobile Suite Everything you need to mobile enable enterprise applications in one package One Platform, Any App, Any Data,
More informationSeam 3. Pete Muir JBoss, a Division of Red Hat
Seam 3 Pete Muir JBoss, a Division of Red Hat Road Map Introduction Java EE 6 Java Contexts and Dependency Injection Seam 3 Mission Statement To provide a fully integrated development platform for building
More informationPractice 2. SOAP & REST
Enterprise System Integration Practice 2. SOAP & REST Prerequisites Practice 1. MySQL and JPA Introduction JAX-WS stands for Java API for XML Web Services. JAX-WS is a technology for building web services
More informationOver All Idea about MVC: How to use Model- View-Controller (MVC)
Over All Idea about MVC: How to use Model- View-Controller (MVC) Parth Jivani B. H. Gardividyapith Engg. &Tech. Chhaya Chopara B. H. Gardividyapith Engg. & Tech. Mehta Prashant B. H. Gardividyapith Engg.
More informationJAXRS Testing. JAX-RS Testing. Embedded Jetty
JAXRS Testing JAX-RS Testing Embedded Jetty Local Transport Mocking HTTP contexts JAX-RS endpoints can be easily tested using the embedded Jetty or CXF Local Transport. Embedded Jetty Maven Dependency
More informationTapestry. Code less, deliver more. Rayland Jeans
Tapestry Code less, deliver more. Rayland Jeans What is Apache Tapestry? Apache Tapestry is an open-source framework designed to create scalable web applications in Java. Tapestry allows developers to
More informationUniversité Antonine - Baabda
Université Antonine - Baabda Faculté d ingénieurs en Informatique, Multimédia, Systèmes, Réseaux et Télécommunications Applications mobiles (Pocket PC, etc ) Project: Manipulate School Database Préparé
More informationImprove and Expand JavaServer Faces Technology with JBoss Seam
Improve and Expand JavaServer Faces Technology with JBoss Seam Michael Yuan Kito D. Mann Product Manager, Red Hat Author, JSF in Action http://www.michaelyuan.com/seam/ Principal Consultant Virtua, Inc.
More informationOSGi. Tales from the Trenches. OSGitales from the trenches
OSGi Tales from the Trenches Bertrand Delacretaz Senior R&D Developer, Day Software, www.day.com Apache Software Foundation Member and Director bdelacretaz@apache.org blog: http://grep.codeconsult.ch twitter:
More informationIntroduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX
Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject
More informationImplementing Asynchronous Web Application using Grizzly's Comet. Jeanfrancois Arcand Staff Engineer Java WebTier
Implementing Asynchronous Web Application using Grizzly's Comet. Jeanfrancois Arcand Staff Engineer Java WebTier Agenda Introduction > What is Grizzly > What is Comet Request Processing Comet support in
More information