תוכנית יומית לכנס התכנסות וארוחת בוקר

Size: px
Start display at page:

Download "תוכנית יומית לכנס התכנסות וארוחת בוקר"

Transcription

1 תוכנית יומית לכנס התכנסות וארוחת בוקר 08:00-09:00 הרצאה הפסקה ראשונה הרצאה ארוחת צהריים הרצאה הפסקה מתוקה -09:00-10:30-10:30-10:45-10:45-12:30-12:30-13:30-13:30-15:00-15:00-15:15 הרצאה 15:15-16:30 לפרטים נוספים: טל פקס ג'ון ברייס הדרכה, חומה ומגדל 29 תל אביב, מיקוד

2

3 Java Web-Services, Microservices with REST & Spring Cloud Tavor Haim 1

4 Topics Architecture REST based Web Services JAX-RS Spring MVC + Spring Boot Microservices SpringCloud 2

5 Web Services Web service is: A service available on the internet, that uses standard protocols for integration Service Internet [HTTP] Standard protocols 3

6 Architecture MVC client show data get data controller model dispatch view 1 view 2 view 3 View and model communicated through value objects Trivial server side code is embedded in views Views are still a mix of server & client code... 4

7 Architecture The problem with views Mixing server side code in view causes some serious problems: Value objects embedded in HTML It is never just HTML (CSS, Jscript ) What if client requires something else than HTML?? 5

8 Architecture The problem with views List of web frameworks that should help: Echo, Cocoon, Millstone, OXF, Struts, SOFIA, Tapestry, WebWork, RIFE, Spring MVC, Canyamo, Maverick, Jpublish, JATO, Folium, Jucas, Verge, Niggle, Bishop, Barracuda, Action Framework, Shocks, TeaServlet, wings, Expresso, Bento, jstatemachine, jzonic, OpenEmcee, Turbine, Scope, Warfare, JWAA, Jaffa, Jacquard, Macaw, Smile, MyFaces, Chiba, Jbanana, Jeenius, Jwarp, Genie, Melati, Dovetail, Cameleon, Jformular, Xoplon, Japple, Helma, Dinamica, WebOnSwing, Nacho, Cassandra, Baritus, Stripes, Click, GWT, Apache Wicket So many means that: none is really good enough maybe problems can t be solved with MVC 6

9 Architecture AJAX to the rescue View of classic architecture Web Server Browser HTML 1 HTTP Request HTML 2 HTTP Response CGI Engine 7

10 Architecture Moving to Single Page Applications (SPA) Using AJAX, web modules can focus on transferring data rather than view Client receives a single HTML loaded with Jscript functions & callbacks Jscript caller functions sends request data Jscript callback processes response and renders it to page Finally! Web modules input & output can be based on structured, self descriptive text formats Future non-html clients may use the same modules & data 8

11 Architecture Moving to single page applications MVC Model 2 Views are Generated on server side client show data controller dispatch get data model SERVER view 1 view 2 view 3 The new MVC Views are handled by the Client client. view Communication between client and server is data- based. SERVER request data controller model get data 9

12 Client MVC Client MVC frameworks View - <html> elements Model Javascript code that processes local and remote data On page load On event Controller Javascript infrastructure for synching data between Model and View 10

13 Client MVC Benefits Clear separation between UI and code views became very complex and modularity is needed Abstracted data liquidity Shortened AJAX code can be done in a single row! Leading frameworks AngularJS React 11

14 Client MVC Angular way: HTML Single Page Javasctipt ng-app HTML Fragment Javasctipt ng-controller HTML Fragment Javasctipt ng-controller HTML Fragment Javasctipt ng-controller HTML Fragment Javasctipt ng-controller Javasctipt ng-controller On page load On events 12

15 Architecture Future internet clients Phones & voice over IP networks Smart cards Chips Nanotechnology 13

16 Architecture Future internet clients The new MVC SERVER request view data controller model get data 14

17 RPC Architecture & Terms Remote Procedure Call Client invokes method on a Remote Object over a network Client obeys a contract which is the Remote Interface Remote object is a resource Remote method is a service In order to communicate both client & server uses sockets Socket communication is determined according to the remote interface Stub - Client side socket Skeleton server side socket that is used as a proxy to the remote object 15

18 RPC Architecture & Terms public int sum (int x, int y); User input is : 5, +, 6 Result is : 11 Remote Interface CLIENT stub out.writeutf( sum ); out x=out.writeint(5); out y=out.writeint(6); int result=in.readint(); skeleton SERVER get data String action=in.readutf(); int x=in.readint(); int y=in.readint(); out.write(ro.invoke(action,x,y)); Remote Object public int sum (int x, int y){ return x+y; } 16

19 RPC 2-tier vs. 3-tier RPC Container stub stub stub stub skeleton skeleton skeleton get data skeleton Container stub stub stub stub Remote Object RO Pool skeleton RO skeleton skeleton skeleton RO RO Manager RO 17

20 RPC XML for RPC SOAP Web Services XML SERVER CLIENT XML Request stub skeleton XML Response get data Remote Object 18

21 XML based Web Services XML based RPC (SOAP) Server WSDL Describes Service Client Application SOAP SKEL Layer Proxies 19

22 XML based Web Services SOAP over HTTP Request example HTTP 1.0 POST Host: Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI POST method - allows great amount of data upload SOAP Header that provides another checking mechanism <SOAP-ENV:Envelope xmlns:soap-env=" SOAP-ENV:encodingStyle=" <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="some-uri"> <symbol>dis</symbol> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 20

23 Architecture XML vs. JSON What is JSON? Java Script Object Notation Also self-descriptive text based protocol Used for marshalling and un-marshalling Jscript objects { people : [ { name": David, age": 20 }, { name": Dana, age": 25 }, { name": Eve, age": 30 }, ] } 21

24 Architecture XML vs. JSON Why is it an alternative for XML? Better for small applications (like client side apps) No parsers are needed Contracts are less critical Light integration Jscript and Android developers prefers it Got popular APIs for binding, handling & presenting JSON based data 22

25 Architecture XML vs. JSON JAXB supports JSON as well Root class is denoted No schema is needed all adjustments are done with JAXB annotations JSON has no strong standards as XML (yet..) 23

26 Modern Integration Big data the challenge From single & concurrent to parallel & cloud computing Using NoSQL DB in addition to the classic relational DB Saving bandwidth & performance XML is a very inefficient protocol uses tags to wrap data XML forces the use of parsers HTTP Message SOAP is an additional protocol on top of HTTP HTTP headers HTTP body SOAP Message SOAP Envelope SOAP Header SOAP Body SOAP Elements SOAP Attachments 24

27 Just to get familiar with Java Web Modules Web app structure Static content Dynamic content WEB-INF & web.xml Servlets Life cycle Coding URL pattern Filters HttpServletRequest HttpSession ServletContext Main scopes Page Request Session Application WAR files 25

28 REST based Web Services REST REpresentational State Transfer is an HTTP based advanced RPC passing data in any format including XML, JSON and binary data REST can be counted as part of HTTP unlike SOAP which is a separate protocol 26

29 REST based Web Services HTTP for RPC Clients may use the following HTTP features in order to invoke a service: URI: Path can determine the endpoint class and even method Accept & Content-Type Headers: Used by the client to specify response MIME type service methods may result in different MIME types client call can be delegated to method that produces the MIME type it expects HTTP Method: GET, POST, DELETE, PUT, HEAD each method can be mapped to several HTTP-methods client call is delegated to the method matches client HTTP request method 27

30 REST based Web Services HTTP for RPC - RESTful Suggested way to implement business according to HTTP method HTTP Method Single element Collection GET Fetch an element from a collection Fetch the whole collection PUT Replace or create new element in a collection Override one collection with a new one POST Assign a value to an object Add new value to a collection DELETE Delete a specific element from a collection Delete the entire collection 28

31 REST based Web Services JAX-RS main Maps to URL pattern Mandatory on class level Optional on method level Maps to HTTP request method Used for RESTful Produces sets MIME type client requested to accept as part of the response Consumes sets MIME type client should sent as part of the request 29

32 REST based Web Services Building and publishing RESTful public class greet public String greet() public void addperson(person p) { } 30

33 REST based Web Services JAX-RS main annotations Sending simple parameters are passed as part of the URL Cannot be optional Support multiple params on each Parameters are passed as part of the request In GET parameters are part of the query string In POST parameters are placed in the request body Are optional to inject values when not sent by client 31

34 REST based Web Services Building and publishing RESTful public class greet public String greet(@defaultvalue( David user ) String name) sum/{num1}/{num2} ) public void sum((@pathparam( num1 ) int x, (@PathParam( num2 ) int y) { } 32

35 REST based Web Services Marshalling & public class MediaType.APPLICATION_JSON}) public Entry editentry(entry toedit) edit Clients may assign JSON/XML // entry public class Entry{ return e; private String name; } private String phone; private String cellphone; } public Entry(){} } 33

36 Configuring web.xml <?xml version="1.0" encoding="utf-8"?> WEB-INF\web.xml <web-app > <display-name>hello In Different Formats</display-name> <servlet> <servlet-name>jersey REST Service</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.servletcontainer</servlet-class> <init-param> <param-name>com.sun.jersey.config.property.packages</param-name> <param-value>your.service.package.name</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>jersey REST Service</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> </web-app> 34

37 REST based Web Services Invoking via HTTP requests: Root Context, usually your project name The URL pattern to call Jersey servlet The name of the resource (service) 35

38 REST based Web Services Creating RESTful client Jersey offers simple client API get(..) / post(..) public class Test { / put(..) / delete(..) public static void main(string[] args) { ClientConfig config = new DefaultClientConfig(); Client client = Client.create(config); URI baseuri = UriBuilder.fromUri(" WebResource service = client.resource(baseuri ); // Get plain text System.out.println(service.path("rest").path("hello").accept(MediaType.TEXT_PLAIN).get(String.class)); // Get XML System.out.println(service.path("rest").path("hello").accept(MediaType.TEXT_XML).get(String.class)); // The HTML System.out.println(service.path("rest").path("hello").accept(MediaType.TEXT_HTML).get(String.class)); } 36

39 REST based Web Services Creating RESTful client Jersey client JAR Not part of JAX-RS standard (!) Can be easily used for unit testing via Junit or any other framework 37

40 REST based Web Services JAX-RS main annotations Lifecycle and CGI Services uses request scope by default Use Singleton annotation in order to set it to application Injects CJI objects: HttpServletRequest ServletContext 38

41 REST based Web Services Building and publishing public class Hello private HttpServletRequest private ServletContext ctx;. } 39

42 REST based Web Services Session management On server side simply inject HttpServletRequest Use req.getsession(..) in order to Obtain HttpSession instance Embed a session cookie Use session s attributes to hold user session state On client side you need to plant the session cookie on each request To do that we obtain all response cookies Then we place all cookies (including session cookie) on your request via builders 40

43 REST based Web Services Session management Server side Client public class StoreCart private HttpServletRequest req; public void startsession(){ HttpSession session = req.getsession(true); } ClientResponse resp = service.path( somepath").accept( ).get(clientresponse.class); WebResource wr=service.path( someotherpath"); WebResource.Builder builder=wr.getrequestbuilder(); for(cookie c:resp.getcookies()){ builder.cookie(c); } builder.accept( ); get response with session cookie build a request (WebResource) obtain Builder in order to update request load all cookies from response onto builder submit request via builder 41

44 REST Based Web Services Another popular implementation is SpringMVC Same architecture Different controller Similar annotations for REST mapping (not JAX-RS compliant) SpringBoot Allows to rapidly create Spring projects (based on Maven/Gradle) Provides SpringMVC with embedded Tomcat/Jetty configuration 42

45 REST Based Web Services Creating SpringMVC project with SpringBoot Just download Maven/Gradle project & import it to your working IDE 43

46 REST Based Web Services SpringBoot public class SampleController{ public static void main(string[] args) { SpringApplication.run(SampleController.class, args); { { Running this application will Start embedded Tomcat/Jetty Deploy all included services 44

47 REST Based Web Services Creating REST services wit SpringBoot : Main SpringMVC value means URLpatter method - GET/POST produces MediaType consumes @RequestBody 45

48 REST Based Web Services Creating REST services with SpringBoot public class greet/{user} ) public String greet(@pathvariable( user ) String name){ return Hello +name; } public static void main(string[] args) { SpringApplication.run(SampleController.class, args); { { Calling the service: 46

49 REST Based Web Services SpringBoot is very relevant for Microservices Most configuration is transparent Custom configuration: resources\application.properties resources\application.yml resources\bootstrap.yml Can be packed as standalone executable jar Maven install 47

50 Microservices Definition: Microservices is a variant of the service-oriented architecture (SOA) architectural style that structures an application as a collection of loosely coupled services (wiki) 48

51 Microservices Break application into small, fine-grained, standalone services Each services has its contract (interface) its own deployment settings Its own container / server instance(s) For new developments design for service For existing application - decompose 49

52 Microservices Hotels Domain Example: Hotel System & Storage roomav.war RoomAvailabilityService members customers members.war MembershipService payment.war PaymentService 50

53 Microservices Benefits: Each business component maintained separately Business flow based on services may use both internal and external business logic transparently Intensive releases and continuous developments are easier Integration mechanism is a non-issue Service may count on multiple alternative services for failover Service deployment, availability and maintainability can be automated via DevOps tools 51

54 Microservices Drawbacks: Intensive HTTP communication (still text based ) Going stateless? Not always and then what? 2-phase commit is not supported in any microservice so can t be used Higher costs each microservice comes with its infrastructure. When microservices span over different systems or divisions few challenges emerges: Team communication Need in good documentation Testing is hard when more than single service is involved 52

55 Microservices Best practices: Create separate data-store per microservice Provide global data management system Runs in the backgrounds Fixes data inconsistencies Update code by creating a new microservice Combine with version control Use separate builds for each service Run services in containers. Container is NOT a services Keep server configuration plain when administrating microservices Any complex configuration should be set internally by the server 53

56 Microservices Microservice Ecosystem minimal requirements Configuration server Loads the configuration information for all services Usually obtains info from a GIT repository Service discovery Responsible for maintaining a map of all active services Checks heartbeat every few seconds API Gateway Entry façade to the Microservice domain Proxies requests to actual services Circuit breaker Provides cross-service invocation tracking Supports failover executions Monitoring 54

57 55

58 Spring Cloud Written by Rony Keren John Bryce Training Center 56

59 Introduction provides tools for out-of-the-box Microservice platform solutions Built on Spring-boot & Spring MVC Provides both abstractions & implementations Allows rapidly wrap a micro-service with all / most important capabilities in order to integrate into Microservice ecosystems Done mostly via annotations Spring Cloud provides Cloud Native application style 57

60 Features Distributed/versioned configuration Service registration and discovery Routing Service-to-service calls Load balancing Circuit Breakers Global locks Leadership election and cluster state Distributed messaging 58

61 Projects Configuration server with GIT Netflix (Eureka, Hystrix, Zuul ) Cloud Bus Cloud Foundry (SSH & oauth2 support) Cloud Cluster (Zookeeper, Redis, Hazelcast, Consul) Cloud Data Flow (data composing) Cloud Stream (external resources Kafka & RabbitMQ) Cloud Zookeeper (service discovery) Cloud Gateway (based on Project Reactor programmatic routing) Load balancing - Ribbon 59

62 Spring Cloud Contexts Bootstrap application context o Is the absolute root context o Is the parent of the main application o Populates and shares environmental information (Environment) Bootstrap properties cannot be overridden by application Holds configuration info Configuration files: bootstrap.properties / bootstrap.yml (instead of application ) o Usually, loads remote configurations from Configuration Server ApplicationContext o Usually a direct sibling of Bootstrap Application Context Use parent() to obtain bootstrap from application context o By default, application configuration is used when not found in bootstrap 60

63 Spring Cloud Contexts Generally, client Microservices use bootstrap.yml / bootstrap.properties o Bootstrap configuration allows getting conf. info from a remote repository o Bootstrap context will help in generating service application context Bootstrap configuration holds local configuration as well o Used in a case where remote configuration is unavailable The process: Client-Microservice configuration-server GIT if config server not available: Client-Microservice local configuration 61

64 Spring Cloud + Netflix Common out-of-the-box solutions: Configuration server Service discovery - Eureka API gateway - Zuul Circuit breaker (load-balancing) Hystrix Monitoring Hystrix oauth2 support Zuul Client-side Load balancing - Ribbon 62

65 Configuration Server Serves externalized configuration in a distributed system Provides server and client-side support Default implementation uses GIT to download configuration info Config Server 63

66 Configuration Server Config Server Maven dependencies: dependency management takes care for the jar dependency chain pom.xml <dependencies> <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-config-server</artifactid> </dependency> </dependencies> <dependencymanagement> <dependencies> <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-dependencies</artifactid> <version>edgware.sr2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencymanagement> 64

67 Configuration Server public class ConfigServer } public static void main(string[] args) } SpringApplication.run(ConfigServer.class, args); } } spring: cloud: config: server: git : uri: server: port: 9999 service-a.yml service-b.yml gateway-service.yml 9999 Config Server 65

68 Configuration Server Any service that uses Config-server will: Try to get *.yml / *.properties loaded from GIT If fails to connect to the Config-Server, uses its own local configuration service-a.yml service-b.yml gateway-service.yml service-a 9999 Config Server 66

69 Configuration Server Microservices are set to connect to config server or use local configuration 8001/7001 service-a bootstrap.yml spring: application: name: service-a cloud: config: uri: server: host: localhost port: MicroserviceA.java public class MicroserviceA } public static void main(string[] args) } SpringApplication.run(MicroserviceA.class, args); } } service-a.yml (port:8001) 9999 Config Server 67

70 Configuration Server Running multiple Microservice instances Assign zero value to port Configuration server randomizes values 9999 service-b.yml (port: 0 ) Config Server 68

71 Configuration Server Client Microservice Maven devendencies: pom.xml <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-config</artifactid> </dependency> 69

72 Configuration Server Config Server test server configuration: Information is returned in JSON format 70

73 Service Discovery - Eureka Service discovery receives notifications from other services Maintains health & state service-b 8002 service-a.yml (port:8001) service-b.yml (port: 8002) service-a Config Server 2000 Discovery service 71

74 Service Discovery - Eureka Enabling Eureka discovery service in Spring Boot Discovery public class DiscoverServerApplication { public static void main(string[] args) { SpringApplication.run(DiscoverServerApplication.class, args); } } application.yml server: port:

75 Service Discovery - Eureka Eureka clients are o Our Microservices o Eureka client embedded client (requires URL configuration) Discovery server may be configured as: o Instance & Client default Runs continues intensive checks with embedded client o Instance maintains available Microservices client list 2000 Discovery service application.yml eureka: client: registerwitheureka: false fetchregistry: false service-url: defaultzone: server: port: 2000 Configuration: 73

76 Service Discovery - Eureka Discovery server Maven dependencies: pom.xml <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-netflix-eureka-server</artifactid> </dependency> 74

77 Service Discovery - Eureka Microservices register to Discovery service o Configuration (local and/or on GIT): service-a.yml & service-b.yml service-b 8002 service-a Discovery service server: port:. eureka: client: serviceurl: public class MicroserviceA } public static void main(string[] args) } SpringApplication.run(MicroserviceA.class, args); } } is more generic and supported by does the same but is supported only by Eureka 75

78 Service Discovery - Eureka Client Microservice discovery enabling Maven dependencies: pom.xml <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-eureka</artifactid> </dependency> 76

79 Service Discovery - Eureka After starting discovery server we can monitor running services MICROSERVICE-A Admin-PC Microservice-A7001 MICROSERVICE-B Admin-PC Microservice-B:

80 API Gateway - Zuul Spring Cloud provides an Embedded Zuul proxy o Acts as API Gateway 78

81 API Gateway - Zuul Gateway server Zuul Maven dependencies: pom.xml <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-zuul</artifactid> </dependency> <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-eureka</artifactid> </dependency> <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-config</artifactid> </dependency> 79

82 API Gateway - Zuul Spring Cloud provides an Embedded Zuul proxy o Acts as API Gateway 80

83 API Gateway - Zuul When starting Gateway server it: o downloads configuration from Config Server (port 8080) Port (8080) Note: discovery server registration info Zuul uses LOWER-CASE proxy names regardless o Queries Discovery Server for all running services actual application name as specified in bootstrap.yml o Before running Gateway: e.g: service-a is tracked via service-a o After running Gateway services also available on: service-a.yml service-b.yml 81

84 API Gateway - Zuul Zuul uses Ribbon implementation o Ribbon is used for load-balancing when multiple Microservice instances exists o Default load-balance algorithm is Round-Robin Currently, we can run multiple instance but only one will be discovered by Eureka o This is because our instances registers to Eureka with the same instance Id o Eureka keeps track of the last instance and ignores all others. o Later we will solve this issue by assigning different instance Id to Eureka 82

85 Circuit Breaker Hystrix Hystrix implements Circuit breaker DP o Tracks requests o Cancel policy (5 failures in 20 sec.) In cases a running Microservice has slow responses o Failover to another Microservice X to alternative callback X 83

86 Circuit Breaker Hystrix Circuit Breaker is configured on @EnableCircuitBreaker public class MicroserviceA { public static void main(string[] args) } SpringApplication.run(MicroserviceA.class, args); } class public RestTemplate testtemplate(){ return new RestTemplate(); } } Circuit Breaker service-a puts all resource activity on a Ribbon Circuit Breaker works on load balanced resources only (but not vice versa) 84

87 Circuit Breaker Hystrix Client Microservice Hystrix circuit breaker Maven dependencies: pom.xml <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-hystrix</artifactid> </dependency> 85

88 Circuit Breaker Hystrix Using load-balanced resources: defines failover callback & meta data o URL is resolved by Gateway Server ( /service-b/ private RestTemplate = "fallback", groupkey = srva", commandkey = srva", threadpoolkey = public String method() { String url = " return resttemplate.getforobject(url, String.class); { public String fallback(throwable hystrixcommand) { return "Fall Back Message"; { X Note: Pay attention to the fact that we use a URL without mentioning its host:port Hystrix counts on information taken from Config & Discovery and maintains a valid server-list 86

89 Monitoring Hystrix Dashboard Hystrix commands are gathered Command can be monitored via Hystrix Dashboard In most cases Dashboard is enabled on Gateway Server Denote service to enable Tracks all endpoints in a Microservice o Success, failure, short-circuited, timed-out o Execution time o @SpringBootApplication public class GatewayApplication } public static void main(string[] args) } SpringApplication.run(GatewayAplication.class, args); } } 87

90 Monitoring Hystrix Dashboard Gateway / client Microservice Hystrix dashboard Maven dependencies: pom.xml <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-hystrixdashboard</artifactid> </dependency> 88

91 Monitoring Hystrix Dashboard Logging to Hystrix Dashboard on running service o On Gateway Server : 89

92 Monitoring Hystrix Dashboard In order to monitor all Microservice endpoints specify its location and press Start Monitor o Location ends with /hystrix.stream o (Gateway URL) 90

93 Client Side Load Balancing Spring Cloud Ribbon o Ribbon maintains load-balancing for domain-intra-communication Tracks living instances & ignores failed instances Maintains valid available server list Can be fully configured both programmatically & via configuration files Can be easily wrap any RestTemplate activity done from one Microservice to another Round-robin is used by default Dashboard Load Balancer service-a 8001 service-b 0 91

94 Client Side Load Balancing For load-balancing multiple service-b instances should be running o Random ports by assigning zero value allows multiple instances on the same host o Problem is that Eureka uses <application-name>:<port> as default instance ID These values are the same for every service-b instance: service-b:0 o In order to provide each instance a unique name edit service-b.yml on GIT: service-b.yml server: port:. eureka: instance: instanceid: ${spring.application.name}:${spring.application.instance_id:${random.valu e}} service-b 0 client: serviceurl: defaultzone: 92

95 Client Side Load Balancing Monitoring instances in Eureka: 93

96 Client Side Load Balancing Spring Cloud Ribbon Load Balancer & Hystrix Circuit Breaker o Ribbon is for load balancing o Hystrix is for circuit breaker Gateway & client load balancing uses ribbon Any load balanced call may use circuit breaker as well How this combination behaves? 94

97 Client Side Load Balancing We can already enjoy load-balancing by denoting resttemplate A much cleaner & rapid way is to use Feign Clients which load-balance natively declarative rest client generation Generates RestTemplate based implementation Wraps RestTemplate with client load-balancing ribbon Uses URL or logical (proxy) names as base client URL o Feign Clients can be reused by different Microservices o Note: Zuul already uses ribbon. in addition to ribbon-load-balancer for adding Circuit-breaking capabilities 95

98 Client Side Load Balancing Client Microservice Ribbon Feign Starter Maven dependencies: pom.xml <dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-feign</artifactid> </dependency> 96

99 Client Side Load Balancing Spring Cloud public interface ServiceBFeignClient String method(); public class private ServiceBFeignClient client; } When calling microservice-b calls ( are public String callserviceb(){ return public class MicroserviceA{ 97

100 Client Side Load Balancing Ribbon can be totally configured by creating RibbonConfigurations What can be set? Bean Type Bean Name Class Name IClientConfig ribbonclientconfig DefaultClientConfigImpl IRule ribbonrule ZoneAvoidanceRule IPing ribbonping DummyPing ServerList<Server> ribbonserverlist ConfigurationBasedServerList ServerListFilter<Server> ribbonserverlistfilter ZonePreferenceServerListFilter ILoadBalancer ribbonloadbalancer ZoneAwareLoadBalancer ServerListUpdater ribbonserverlistupdater PollingServerListUpdater 98

101 Client Side Load Balancing Creating Ribbon protected static class FooConfiguration public ZonePreferenceServerListFilter serverlistfilter() { ZonePreferenceServerListFilter filter = new ZonePreferenceServerListFilter(); filter.setzone(."); return filter; } public IPing ribbonping() { return new CustomPingUrl(); } 99

102 Spring Cloud Microservice Ecosystem 100

103 101

Java - Web-Services and REST

Java - Web-Services and REST Java - Web-Services and REST Rony Keren rkeren@johnbryce.co.il Topics Definition Architecture SPA Single Page Applications RPC Remote Procedure Call REST Based Web Services HTTP based RPC JAX-RS Jersey

More information

What is Spring Cloud

What is Spring Cloud What is Spring Cloud 1 What is Spring Cloud Service Discovery (Eureka) API Gateway (Zuul) Config Server (Spring Config) Circuit Breaker (Hystrix, Turbine) Client Side Load-balancing (Ribbon) Distributed

More information

Microservices mit Java, Spring Boot & Spring Cloud. Eberhard Wolff

Microservices mit Java, Spring Boot & Spring Cloud. Eberhard Wolff Microservices mit Java, Spring Boot & Spring Cloud Eberhard Wolff Fellow @ewolff What are Microservices? Micro Service: Definition > Small > Independent deployment units > i.e. processes or VMs > Any technology

More information

DevGeekWeek ביוני 2017 מלון דניאל, הרצליה

DevGeekWeek ביוני 2017 מלון דניאל, הרצליה DevGeekWeek 2017 18-22 ביוני 2017 מלון דניאל, הרצליה 09:00 08:00 רישום וארוחת בוקר 10:30 09:00 הרצאות סמינרים 10:45 10:30 הפסקה 12:30 10:45 הרצאות סמינרים 13:30 12:30 ארוחת צהריים 15:00 13:30 הרצאות סמינרים

More information

Spring Cloud, Spring Boot and Netflix OSS

Spring Cloud, Spring Boot and Netflix OSS Spring Cloud, Spring Boot and Netflix OSS Spencer Gibb twitter: @spencerbgibb email: sgibb@pivotal.io Dave Syer twitter: @david_syer email: dsyer@pivotal.io (Spring Boot and Netflix OSS or Spring Cloud

More information

SPRING CLOUD AGIM EMRULI - MIMACOM

SPRING CLOUD AGIM EMRULI - MIMACOM SPRING CLOUD AGIM EMRULI - MIMACOM AGIM EMRULI @AEMRULI AEMRULI AGIM.EMRULI@ MIMACOM.COM XD BOOT GRAILS CLOUD IO EXECUTION STREAMS, TAPS, JOBS FULL STACK, WEB SERVICE REGISTRY, CIRCUIT BREAKER, METRICS

More information

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard Fellow

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard  Fellow Four times Microservices: REST, Kubernetes, UI Integration, Async Eberhard Wolff @ewolff http://ewolff.com Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/

More information

SAMPLE CHAPTER. John Carnell MANNING

SAMPLE CHAPTER. John Carnell MANNING SAMPLE CHAPTER John Carnell MANNING Spring Microservices in Action by John Carnell Sample Chapter 6 Copyright 2017 Manning Publications brief contents 1 Welcome to the cloud, Spring 1 2 Building microservices

More information

Microservices Implementations not only with Java. Eberhard Wolff Fellow

Microservices Implementations not only with Java. Eberhard Wolff Fellow Microservices Implementations not only with Java Eberhard Wolff http://ewolff.com @ewolff Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/ http://microservices-book.com/

More information

CADEC 2016 MICROSERVICES AND DOCKER CONTAINERS MAGNUS LARSSON

CADEC 2016 MICROSERVICES AND DOCKER CONTAINERS MAGNUS LARSSON CADEC 2016 MICROSERVICES AND DOCKER CONTAINERS MAGNUS LARSSON 2016-01-27 CALLISTAENTERPRISE.SE AGENDA Microservices in reality - Managing a system landscape with many microservices - Very little high level

More information

תוכנית יומית לכנס: התכנסות וארוחת בוקר הפסקה קצרה של קפה ארוחת צהרים הפסקה מתוקה

תוכנית יומית לכנס: התכנסות וארוחת בוקר הפסקה קצרה של קפה ארוחת צהרים הפסקה מתוקה תוכנית יומית לכנס: התכנסות וארוחת בוקר הרצאה הפסקה קצרה של קפה הרצאה ארוחת צהרים הרצאה הפסקה מתוקה הרצאה 08:00-09:00 09:00-10:30 10:30-10:45 10:45-12:30 12:30-13:30 13:30-15:00 15:00-15:15 15:15-16:30

More information

תוכנית יומית לכנס התכנסות וארוחת בוקר

תוכנית יומית לכנס התכנסות וארוחת בוקר תוכנית יומית לכנס התכנסות וארוחת בוקר 08:00-09:00 הרצאה הפסקה ראשונה הרצאה ארוחת צהריים הרצאה הפסקה מתוקה -09:00-10:30-10:30-10:45-10:45-12:30-12:30-13:30-13:30-15:00-15:00-15:15 הרצאה 15:15-16:30 לפרטים

More information

Tools for Accessing REST APIs

Tools for Accessing REST APIs APPENDIX A Tools for Accessing REST APIs When you have to work in an agile development environment, you need to be able to quickly test your API. In this appendix, you will learn about open source REST

More information

Java J Course Outline

Java J Course Outline JAVA EE - J2SE - CORE JAVA After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? CHAPTER 1: INTRODUCTION What is Java? History Versioning The

More information

Implementing Microservices Tracing with Spring Cloud and Zipkin

Implementing Microservices Tracing with Spring Cloud and Zipkin Implementing Microservices Tracing with Spring Cloud and Zipkin Marcin Grzejszczak, @mgrzejszczak 1 2017 Pivotal About me Spring Cloud developer at Pivotal Working mostly on Spring Cloud Sleuth Spring

More information

Upgrading to Spring Boot 2.0

Upgrading to Spring Boot 2.0 APPENDIX A Upgrading to Spring Boot 2.0 Introduction This book uses the Spring Boot version 1.5.7 for the different microservices that are part of the evolving application. Spring Boot 2.0, which is to

More information

תוכנית יומית לכנס התכנסות וארוחת בוקר

תוכנית יומית לכנס התכנסות וארוחת בוקר תוכנית יומית לכנס התכנסות וארוחת בוקר 08:00-09:00 הרצאה הפסקה ראשונה הרצאה ארוחת צהריים הרצאה הפסקה מתוקה -09:00-10:30-10:30-10:45-10:45-12:30-12:30-13:30-13:30-15:00-15:00-15:15 הרצאה 15:15-16:30 לפרטים

More information

תוכנית יומית לכנס התכנסות וארוחת בוקר

תוכנית יומית לכנס התכנסות וארוחת בוקר תוכנית יומית לכנס התכנסות וארוחת בוקר 08:00-09:00 הרצאה הפסקה ראשונה הרצאה ארוחת צהריים הרצאה הפסקה מתוקה -09:00-10:30-10:30-10:45-10:45-12:30-12:30-13:30-13:30-15:00-15:00-15:15 הרצאה 15:15-16:30 לפרטים

More information

5.1 Registration and Configuration

5.1 Registration and Configuration 5.1 Registration and Configuration Registration and Configuration Apache Wink provides several methods for registering resources and providers. This chapter describes registration methods and Wink configuration

More information

Exercise for OAuth2 security. Andreas Falk

Exercise for OAuth2 security. Andreas Falk Exercise for OAuth2 security Andreas Falk Table of Contents 1. What we will build....................................................................... 1 2. Step 1....................................................................................

More information

Cloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved.

Cloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved. Cloud Native Architecture 300 Copyright 2014 Pivotal. All rights reserved. Cloud Native Architecture Why What How Cloud Native Architecture Why What How Cloud Computing New Demands Being Reactive Cloud

More information

Session 24. Spring Framework Introduction. Reading & Reference. dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p

Session 24. Spring Framework Introduction. Reading & Reference. dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p Session 24 Spring Framework Introduction 1 Reading & Reference Reading dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p http://engineering.pivotal.io/post/must-know-spring-boot-annotationscontrollers/

More information

2 Apache Wink Building Blocks

2 Apache Wink Building Blocks 2 Apache Wink Building Blocks Apache Wink Building Block Basics In order to take full advantage of Apache Wink, a basic understanding of the building blocks that comprise it and their functional integration

More information

Introduction to Spring Framework: Hibernate, Spring MVC & REST

Introduction to Spring Framework: Hibernate, Spring MVC & REST Introduction to Spring Framework: Hibernate, Spring MVC & REST Training domain: Software Engineering Number of modules: 1 Duration of the training: 36 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP 2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries

More information

Session 12. RESTful Services. Lecture Objectives

Session 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 information

Introduction to Spring 5, Spring MVC and Spring REST

Introduction to Spring 5, Spring MVC and Spring REST Introduction to Spring 5, Spring MVC and Spring REST Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options: Attend

More information

Apache Wink User Guide

Apache Wink User Guide Apache Wink User Guide Software Version: 0.1 The Apache Wink User Guide document is a broad scope document that provides detailed information about the Apache Wink 0.1 design and implementation. Apache

More information

RESTful -Webservices

RESTful -Webservices International Journal of Scientific Research in Computer Science, Engineering and Information Technology RESTful -Webservices Lalit Kumar 1, Dr. R. Chinnaiyan 2 2018 IJSRCSEIT Volume 3 Issue 4 ISSN : 2456-3307

More information

Service Mesh with Istio on Kubernetes. Dmitry Burlea Software FlixCharter

Service Mesh with Istio on Kubernetes. Dmitry Burlea Software FlixCharter Service Mesh with Istio on Kubernetes Dmitry Burlea Software Developer @ FlixCharter Road to Microservices Monolith (all-in-one) Road to Microservices Images from http://amazon.com/ Road to Microservices

More information

JVA-563. Developing RESTful Services in Java

JVA-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 information

Developer Experience with. Spencer Gibb, Dave Syer, Spring Cloud

Developer Experience with. Spencer Gibb, Dave Syer, Spring Cloud Developer Experience with Spencer Gibb, Dave Syer, 2015 Spring Cloud Authors Spencer Gibb, @spencerbgibb, sgibb@pivotal.io Dave Syer, @david_syer, dsyer@pivotal.io Developer Experience Microservices lead

More information

Migrating traditional Java EE applications to mobile

Migrating traditional Java EE applications to mobile Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16

More information

CS506 Web Design & Development Final Term Solved MCQs with Reference

CS506 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 information

Overview of Web Application Development

Overview of Web Application Development Overview of Web Application Development Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Web Apps 2018 1 / 34 Table of Contents Overview Architecture 1 Overview

More information

Developer: Chaithanya Krishna Gogineni Graduate Teaching Assistant Software Engineering Computer Science Department Northern Illinois University

Developer: Chaithanya Krishna Gogineni Graduate Teaching Assistant Software Engineering Computer Science Department Northern Illinois University Developer: Chaithanya Krishna Gogineni Graduate Teaching Assistant Software Engineering Computer Science Department Northern Illinois University DeKalb, Illinois. www.chaithanyagogineni.com 1.Requirements

More information

Practice 2. SOAP & REST

Practice 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 information

Module 3 Web Component

Module 3 Web Component Module 3 Component Model Objectives Describe the role of web components in a Java EE application Define the HTTP request-response model Compare Java servlets and JSP components Describe the basic session

More information

Apache Wink Developer Guide. Draft Version. (This document is still under construction)

Apache Wink Developer Guide. Draft Version. (This document is still under construction) Apache Wink Developer Guide Software Version: 1.0 Draft Version (This document is still under construction) Document Release Date: [August 2009] Software Release Date: [August 2009] Apache Wink Developer

More information

Desarrollo de Aplicaciones Web Empresariales con Spring 4

Desarrollo de Aplicaciones Web Empresariales con Spring 4 Desarrollo de Aplicaciones Web Empresariales con Spring 4 Referencia JJD 296 Duración (horas) 30 Última actualización 8 marzo 2018 Modalidades Presencial, OpenClass, a medida Introducción Over the years,

More information

Java SE7 Fundamentals

Java SE7 Fundamentals Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various

More information

Spring Web Services Tutorial With Example In

Spring Web Services Tutorial With Example In Spring Web Services Tutorial With Example In Eclipse Bottom Up In addition to creating a basic web service and client, the article goes a step further This article will be using the Eclipse IDE (Kepler),

More information

Cheat Sheet: Wildfly Swarm

Cheat Sheet: Wildfly Swarm Cheat Sheet: Wildfly Swarm Table of Contents 1. Introduction 1 5.A Java System Properties 5 2. Three ways to Create a 5.B Command Line 6 Swarm Application 1 5.C Project Stages 6 2.A Developing a Swarm

More information

REST WEB SERVICES IN JAVA EE 6 AND SPRING 3. Srini Penchikala Austin Java User Group March 30, 2010

REST WEB SERVICES IN JAVA EE 6 AND SPRING 3. Srini Penchikala Austin Java User Group March 30, 2010 REST WEB SERVICES IN JAVA EE 6 AND SPRING 3 Srini Penchikala Austin Java User Group March 30, 2010 ABOUT THE SPEAKER Security Architect Certified SCRUM Master Writer, Editor (InfoQ) Detroit Java User Group

More information

Application Design and Development: October 30

Application Design and Development: October 30 M149: Database Systems Winter 2018 Lecturer: Panagiotis Liakos Application Design and Development: October 30 1 Applications Programs and User Interfaces very few people use a query language to interact

More information

PSD1B Advance Java Programming Unit : I-V. PSD1B- Advance Java Programming

PSD1B Advance Java Programming Unit : I-V. PSD1B- Advance Java Programming PSD1B Advance Java Programming Unit : I-V PSD1B- Advance Java Programming 1 UNIT I - SYLLABUS Servlets Client Vs Server Types of Servlets Life Cycle of Servlets Architecture Session Tracking Cookies JDBC

More information

Full Stack boot camp

Full Stack boot camp Name Full Stack boot camp Duration (Hours) JavaScript Programming 56 Git 8 Front End Development Basics 24 Typescript 8 React Basics 40 E2E Testing 8 Build & Setup 8 Advanced JavaScript 48 NodeJS 24 Building

More information

Exercise SBPM Session-4 : Web Services

Exercise 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 information

JAVA. 1. Introduction to JAVA

JAVA. 1. Introduction to JAVA JAVA 1. Introduction to JAVA History of Java Difference between Java and other programming languages. Features of Java Working of Java Language Fundamentals o Tokens o Identifiers o Literals o Keywords

More information

IBM WebSphere Application Server 8. Java EE 6 Feature Packs

IBM WebSphere Application Server 8. Java EE 6 Feature Packs IBM WebSphere Application Server 8 EE 6 Feature Packs Thomas Bussière- bussiere@fr.ibm.com IT Architect Business Solution Center La Gaude, France Enabling Developers to Start With Open Source/Community

More information

HttpServlet ( Class ) -- we will extend this class to handle GET / PUT HTTP requests

HttpServlet ( Class ) -- we will extend this class to handle GET / PUT HTTP requests What is the servlet? Servlet is a script, which resides and executes on server side, to create dynamic HTML. In servlet programming we will use java language. A servlet can handle multiple requests concurrently.

More information

Fast Track to Java EE

Fast Track to Java EE Java Enterprise Edition is a powerful platform for building web applications. This platform offers all the advantages of developing in Java plus a comprehensive suite of server-side technologies. This

More information

Apache Wink 0.1 Feature Set

Apache Wink 0.1 Feature Set Apache Wink 0.1 Feature Set Software Version: 0.1 [The Wink REST Runtime Feature Set internal draft document is a broad scope document that provides detailed information about the Runtime strategy and

More information

Mastering Spring MVC 3

Mastering Spring MVC 3 Mastering Spring MVC 3 And its @Controller programming model Get the code for the demos in this presentation at http://src.springsource.org/svn/spring-samples/mvc-showcase 2010 SpringSource, A division

More information

WebServices the New Era

WebServices the New Era WebServices the New Era Introduction to WebServices Standards of WebServices Component Architecture WebServices Architecture SOAP WSDL UDDI Tools and Technologies of WebServices An example of WebServices

More information

Comprehensive AngularJS Programming (5 Days)

Comprehensive AngularJS Programming (5 Days) www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop

More information

Programming Web Services in Java

Programming Web Services in Java Programming Web Services in Java Description Audience This course teaches students how to program Web Services in Java, including using SOAP, WSDL and UDDI. Developers and other people interested in learning

More information

Oracle - 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) 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 information

Web Service and JAX-RS. Sadegh Aliakbary

Web Service and JAX-RS. Sadegh Aliakbary Web Service and Sadegh Aliakbary Agenda What Are RESTful Web Services? Standard Restful Design and API Elements Building Simple Web-Services 2 Web Services: Definition (W3C) A Web service is: A software

More information

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.

More information

To Microservices and Beyond!

To Microservices and Beyond! To Microservices and Beyond! YOW! Conference 2014 Matt Stine (@mstine) - Senior Product Manager, Spring for Pivotal CF Simon Elisha (@simon_elisha) - CTO & Senior Manager, Field Engineering 1 M!CR0S3RV!C3$!!!!!

More information

MODERN APPLICATION ARCHITECTURE DEMO. Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift

MODERN APPLICATION ARCHITECTURE DEMO. Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift MODERN APPLICATION ARCHITECTURE DEMO Wanja Pernath EMEA Partner Enablement Manager, Middleware & OpenShift COOLSTORE APPLICATION COOLSTORE APPLICATION Online shop for selling products Web-based polyglot

More information

Introduction to Spring Framework: Hibernate, Web MVC & REST

Introduction to Spring Framework: Hibernate, Web MVC & REST Introduction to Spring Framework: Hibernate, Web MVC & REST Course domain: Software Engineering Number of modules: 1 Duration of the course: 50 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual Products

More information

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p.

Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p. Preface p. xiii Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p. 11 Creating the Deployment Descriptor p. 14 Deploying Servlets

More information

C exam. IBM C IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile. Version: 1.

C exam.   IBM C IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile. Version: 1. C9510-319.exam Number: C9510-319 Passing Score: 800 Time Limit: 120 min File Version: 1.0 IBM C9510-319 IBM WebSphere Application Server Developer Tools V8.5 with Liberty Profile Version: 1.0 Exam A QUESTION

More information

Software Engineering

Software Engineering Software Engineering Lecture 11: Physical Design Components and Middleware Peter Thiemann University of Freiburg, Germany SS 2014 Distributed Applications Basic choices Architecture Client/Server architecture

More information

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Evaluation Guide for ASP.NET Web CMS and Experience Platforms Evaluation Guide for ASP.NET Web CMS and Experience Platforms CONTENTS Introduction....................... 1 4 Key Differences...2 Architecture:...2 Development Model...3 Content:...4 Database:...4 Bonus:

More information

Web Services Development for IBM WebSphere Application Server V7.0

Web Services Development for IBM WebSphere Application Server V7.0 000-371 Web Services Development for IBM WebSphere Application Server V7.0 Version 3.1 QUESTION NO: 1 Refer to the message in the exhibit. Replace the??? in the message with the appropriate namespace.

More information

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Java- EE Web Application Development with Enterprise JavaBeans and Web Services Java- EE Web Application Development with Enterprise JavaBeans and Web Services Duration:60 HOURS Price: INR 8000 SAVE NOW! INR 7000 until December 1, 2011 Students Will Learn How to write Session, Message-Driven

More information

Mobile Computing. Logic and data sharing. REST style for web services. Operation verbs. RESTful Services

Mobile 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 information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing 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 information

Spring Interview Questions

Spring Interview Questions Spring Interview Questions By Srinivas Short description: Spring Interview Questions for the Developers. @2016 Attune World Wide All right reserved. www.attuneww.com Contents Contents 1. Preface 1.1. About

More information

Web-APIs. Examples Consumer Technology Cross-Domain communication Provider Technology

Web-APIs. Examples Consumer Technology Cross-Domain communication Provider Technology Web-APIs Examples Consumer Technology Cross-Domain communication Provider Technology Applications Blogs and feeds OpenStreetMap Amazon, Ebay, Oxygen, Magento Flickr, YouTube 3 more on next pages http://en.wikipedia.org/wiki/examples_of_representational_state_transfer

More information

Introduction to JSP and Servlets Training 5-days

Introduction to JSP and Servlets Training 5-days QWERTYUIOP{ Introduction to JSP and Servlets Training 5-days Introduction to JSP and Servlets training course develops skills in JavaServer Pages, or JSP, which is the standard means of authoring dynamic

More information

Course Content for Java J2EE

Course Content for Java J2EE CORE JAVA Course Content for Java J2EE After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? PART-1 Basics & Core Components Features and History

More information

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format.

J2EE Development. Course Detail: Audience. Duration. Course Abstract. Course Objectives. Course Topics. Class Format. J2EE Development Detail: Audience www.peaksolutions.com/ittraining Java developers, web page designers and other professionals that will be designing, developing and implementing web applications using

More information

ADVANCED JAVA COURSE CURRICULUM

ADVANCED JAVA COURSE CURRICULUM ADVANCED JAVA COURSE CURRICULUM Index of Advanced Java Course Content : 1. Basics of Servlet 2. ServletRequest 3. Servlet Collaboration 4. ServletConfig 5. ServletContext 6. Attribute 7. Session Tracking

More information

SERVICE TECHNOLOGIES

SERVICE TECHNOLOGIES SERVICE TECHNOLOGIES Exercises 3 16/04/2014 Valerio Panzica La Manna valerio.panzicalamanna@polimi.it http://servicetechnologies.wordpress.com/exercises/ REST: Theory Recap REpresentational State Transfer

More information

Microservices. Are your Frameworks ready? Martin Eigenbrodt Alexander Heusingfeld

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

RESTful Java with JAX-RS

RESTful Java with JAX-RS RESTful Java with JAX-RS Bill Burke TECHMiSCHE INFORMATIO N SEIBLIOTH EK UNIVERSITATSBiBLIQTHEK HANNOVER O'REILLY Beijing Cambridge Farnham Koln Sebastopol Taipei Tokyo Table of Contents Foreword xiii

More information

Restful Application Development

Restful Application Development Restful Application Development Instructor Welcome Currently a consultant in my own business and splitting my time between training and consulting. Rob Gance Assist clients to incorporate Web 2.0 technologies

More information

API Documentation. Web Application Development. Zsolt Tóth. University of Miskolc. Zsolt Tóth (University of Miskolc) API Documentation / 28

API Documentation. Web Application Development. Zsolt Tóth. University of Miskolc. Zsolt Tóth (University of Miskolc) API Documentation / 28 API Documentation Web Application Development Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) API Documentation 2018 1 / 28 Data Transfer Object Data Transfer Objects Bean Information

More information

The Now Platform Reference Guide

The Now Platform Reference Guide The Now Platform Reference Guide A tour of key features and functionality START Introducing the Now Platform Digitize your business with intelligent apps The Now Platform is an application Platform-as-a-Service

More information

WSO2 Platform Offerings for Developers

WSO2 Platform Offerings for Developers WSO2 Platform Offerings for Developers Version 1.1 (February 03, 2014) Table of Contents Application Development... 03 Jaggery for JavaScript-Based Web and REST Style Applications... 03 Tooling for Development...

More information

DVS WEB INFOTECH DEVELOPMENT TRAINING RESEARCH CENTER

DVS WEB INFOTECH DEVELOPMENT TRAINING RESEARCH CENTER DVS WEB INFOTECH DEVELOPMENT TRAINING RESEARCH CENTER J2EE CURRICULUM Mob : +91-9024222000 Mob : +91-8561925707 Email : info@dvswebinfotech.com Email : hr@dvswebinfotech.com 48, Sultan Nagar,Near Under

More information

JVA-117E. Developing RESTful Services with Spring

JVA-117E. Developing RESTful Services with Spring JVA-117E. Developing RESTful Services with Spring Version 4.1 This course enables the experienced Java developer to use the Spring MVC framework to create RESTful web services. We begin by developing fluency

More information

Java Training Center, Noida - Java Expert Program

Java Training Center, Noida - Java Expert Program Java Training Center, Noida - Java Expert Program Database Concepts Introduction to Database Limitation of File system Introduction to RDBMS Steps to install MySQL and oracle 10g in windows OS SQL (Structured

More information

Service-Oriented Architecture (SOA)

Service-Oriented Architecture (SOA) Service-Oriented Architecture (SOA) SOA is a software architecture in which reusable services are deployed into application servers and then consumed by clients in different applications or business processes.

More information

SOAP Introduction Tutorial

SOAP Introduction Tutorial SOAP Introduction Tutorial Herry Hamidjaja herryh@acm.org 1 Agenda Introduction What is SOAP? Why SOAP? SOAP Protocol Anatomy of SOAP Protocol SOAP description in term of Postal Service Helloworld Example

More information

Building modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek

Building modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek Building modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek @wrzodek Roche Group Penzberg Founded 1896 in Basel, Switzerland Employing > 82,000 people Clear focus

More information

Standards and the Portals Project

Standards and the Portals Project Standards and the Portals Project Carsten Ziegeler cziegeler@apache.org Competence Center Open Source S&N AG, Germany Member of the Apache Software Foundation Committer in some Apache Projects Cocoon,

More information

Full Stack Developer with Java

Full Stack Developer with Java Full Stack Developer with Java Full Stack Developer (Java) MVC, Databases and ORMs, API Backend Frontend Fundamentals - HTML, CSS, JS Unit Testing Advanced Full Stack Developer (Java) UML, Distributed

More information

Invoking Web Services. with Axis. Web Languages Course 2009 University of Trento

Invoking Web Services. with Axis. Web Languages Course 2009 University of Trento Invoking Web Services with Axis Web Languages Course 2009 University of Trento Lab Objective Refresh the Axis Functionalities Invoke Web Services (client-side) 3/16/2009 Gaia Trecarichi - Web Languages

More information

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional

SUN. Java Platform Enterprise Edition 6 Web Services Developer Certified Professional SUN 311-232 Java Platform Enterprise Edition 6 Web Services Developer Certified Professional Download Full Version : http://killexams.com/pass4sure/exam-detail/311-232 QUESTION: 109 What are three best

More information

Gaurav Rai Mazra. Senior Software Developer

Gaurav Rai Mazra. Senior Software Developer Gaurav Rai Mazra Senior Software Developer A technology enthusiast and conscientious programmer with over 6 years of experience in multi - disciplinary domains such as HR, Education, Financial (Asset Management)

More information

Software Design COSC 4353/6353 DR. RAJ SINGH

Software Design COSC 4353/6353 DR. RAJ SINGH Software Design COSC 4353/6353 DR. RAJ SINGH Outline What is SOA? Why SOA? SOA and Java Different layers of SOA REST Microservices What is SOA? SOA is an architectural style of building software applications

More information

COPYRIGHTED MATERIAL

COPYRIGHTED MATERIAL Introduction xxiii Chapter 1: Apache Tomcat 1 Humble Beginnings: The Apache Project 2 The Apache Software Foundation 3 Tomcat 3 Distributing Tomcat: The Apache License 4 Comparison with Other Licenses

More information

Session 25. Spring Controller. Reading & Reference

Session 25. Spring Controller. Reading & Reference Session 25 Spring Controller 1 Reading Reading & Reference www.tutorialspoint.com/spring/spring_web_mvc_framework.htm https://springframework.guru/spring-requestmapping-annotation/ Reference Spring home

More information

Index. Combined lifecycle strategy, annotation, 93 ContentNegotiatingViewResolver, 78

Index. Combined lifecycle strategy, annotation, 93 ContentNegotiatingViewResolver, 78 Index A Action phase, 154 AJAX (asynchronous JavaScript and XML), 229 communication flow, 230 components, 156 custom tags, 250 functions, 229 GET and POST requests, 233 jquery, 233, 236 AJAX calls, 243

More information

Session 9. Introduction to Servlets. Lecture Objectives

Session 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 information