Developing RESTful Services in Java

Size: px
Start display at page:

Download "Developing RESTful Services in Java"

Transcription

1 Developing RESTful Services in Java Version Instructor s Guide Copyright Capstone Courseware, LLC. All rights reserved.

2 Note: Course 563 is available in multiple variants 563-GF, 563-WF, etc. each of which has been tested, tuned, and edited to support a specific target server in the classroom. This document offers guidance to the instructor for all of the variants, and so there will be some notes that may or may not apply to your class. Most of the content here is applicable to all variants, and where something is server-specific, I say so. Overview This course covers REST and JAX-RS, and essentially using the latter to build web services according to the former. It is for the most part a Java technology course, and as in most Capstone courses we focus on the EE standard and put a fairly high value on portability. But the course starts with an overview of REST and we take things like the maturity model seriously, and so throughout the course there are best-practice discussions and pointers on how to use JAX-RS to build services that could be considered RESTful in the best sense of the term. REST is evolving, and there are different styles. As Capstone materials are generally aimed at large IT enterprises, in this course we focus on common enterprise uses, and so development of patterns for CRUD operations is a major theme. We treat use of query parameters, headers, cookies, etc. But about as quickly as we can we move into heavier use of the HTTP entity. We consider both XML and JSON, JAXB and non-jaxb approaches, and try to give each due consideration. But then we settle on JSON without a JAXB requirement (although with observation of JAXB metadata where it appears). This seems to be the way the world is headed and so we put more weight there as the course proceeds into intermediate and advanced topics such as error handling, validation, generics, etc. Another style question is that of hypermedia. This is probably the most debated area of REST, and as I say in the course not every company is ready to commit to it, preferring to stay in the more familiar space of HTTP entities as traditional transfer objects. It s not clear, either, how well JAX-RS supports hypermedia implementation. My approach to this has been to discuss hypermedia/hateoas and to try to clarify it as an alternative; then mostly to stick to level 2 or maybe 2½ of the maturity model, shying away from a rigorous hypermedia approach; and then toward the end of the course to present an interesting exercise in using entity interceptors to linkify responses. Hopefully it is enough to get students thinking seriously about hypermedia, even if we don t go whole-hog in the course exercises. 2

3 Timeline The following timings are approximate, and every class will be a little different. If time is short, there are a number of chapters that might be cut or shortened, depending on the group s particular interests: consider any of the last three chapters or the chapter on JPA and working with persistent data. Day 1 3 hours Chapter 1 2 hours Chapter 2 2½ hours Chapter 3 (spans days) Day 2 1 hour Chapter 4 2 hours Chapter 5 3 hours Chapter 6 (spans days) Day 3 2½ hours Chapter 7 2½ hours Chapter 8 2½ hours Chapter 9 (spans days) Day 4 2½ hours Chapter 10 2½ hours Chapter 11 1½ hours Chapter 12 Day 5 2 hours Chapter 13 2 hours Chapter 14 2 hours Chapter 15 3

4 Tools Deployed with the Lab Software This course s software requires a separate setup of JDK 7, and optionally the Crimson text editor and/or Eclipse. GlassFish and JBoss variants each rely on the additional setup of the relevant server, as directed in the classroom setup guide. The labs bundle all other required tools and libraries. These will all be found in directories under c:/capstone/jax-rs/tools as described in the Tools page(s) early in the coursebook. Tools needed vary by target server: the primary version carries Tomcat 7.0 as one of the tools and also requires Ant, Derby, EclipseLink, JSTL, and Weld bundles. The GlassFish and WildFly variants require none of these as they are all deployed with the server. Ant Build Process Though most students will either use Eclipse exclusively or will be happy to let the ant command take care of things, some will want to understand the inner workings here a little better. Each web project in the course has its own build.xml and build.properties files; these rely on centralized targets and properties files to define a routine for building the application and for deploying/undeploying as necessary from the server. There are also targets for supporting processes such as creating databases, configuring the server with data sources, message queues, user records, etc. These are all identified as necessary in the coursebook. For a better look under the hood, see that build.xml imports a series of properties and targets files in a central directory Ant. Some of these targets files import each other as well, forming a loose chain. All the logic for building and deploying can be found here. 4

5 Teaching Notes I hope that the coursebook is sufficiently clear and detailed, and so the following notes just capture a few ideas about how to approach a given topic, additional concepts to add to your lectures and discussions, and any surprises you might encounter. Chapter 1 In this chapter I m looking to lay out the big ideas of REST so as to set the stage for what is mostly a course in how to build services, using JAX-RS. There s a lot to talk about, and we need to introduce JAX-RS itself, if only briefly, and want to get in one simple, working exercise. To make things concrete as early as possible, I ve put that working exercise about mid-way through the chapter. This meant separating discussions of both REST and JAX-RS into two parts, so you will take a second pass at each and bring in new concepts content types, hypermedia, JAX-RS providers, etc. On paper this isn t the most direct possible flow; but the idea is that it should make for a better rhythm in class, instead of trying to roll through all of this material before giving students any chance to play with it. There s definitely more to REST practice, and we stop where we do in order to let students get going on practical exercises. Sub-resources and appropriate HTTP responses in error conditions are covered in depth later in the course; range requests, composite keys, and other finer points of API design are left out of scope, but you may want to discuss informally based on your own experience. 5

6 Chapter 2 We don t dwell on it but you might want to delve into more of the implications of the choice between request-scope and singleton resources there are effects on sharing of other objects and resources, and there s a small cost to creating new resource objects on each request, and then there can be threading concerns in singleton resource classes, too. This is just one more reason why the per-request approach, which to most students seems strange at first, is the primary emphasis of JAX-RS and generally is the way to go. Students may begin to notice as you move through the course that we don t take much advantage of the option to let the JAX-RS provider discover our root resources and providers, and they may wonder why. I wouldn t suggest bringing this up unless asked, because it goes pretty deep into some foibles of the tools we happen to use in the course. But a not-too-long version of the story is this: in a few of our services, we need to support requests at the root application path, either to pipe out the contents of an HTML application has been published page or to provide a REST response such as in the Tracking service at /Tracking/Orders. This should be easy, but a feature of the EclipseLink library called JPA-RS will try to register itself to handle REST requests, and if discovered by the Jersey provider it will take over that root URL! There are ways in which to tell Jersey to scan only certain packages, but there are (a) non-portable, and (b) unworkable in a couple of cases, because they in turn make it impossible for a component to dig its way back to the application subclass. So after whacking at this four or five different ways I decided that to go with manual publishing in most services would make for the cleanest and simplest experience in lab exercises, with as few tool-specific distractions as possible. 6

7 Chapter 3 We re covering JAX-RS mechanisms for completeness here, and it s not a bad thing for students to ease into JAX-RS. Especially, those who know web application development will find things like query and form parameters to be familiar ground. But only a few slices of what we cover in these chapters are parts of typical, modern service implementations. I suggest that you cover this material, in full, take the labs, etc., but maybe hit some parts harder (path parameters, headers, query parameters) and point out others as more esoteric (matrix parameters, form parameters, cookies). Remind students that HTTP entities are the biggest and best conduit for information in most cases, and that they ll be moving in that direction soon. You might want to point out some more subtle differences between the use of path, query, and matrix parameters as compared to other options. Only the path parameter can be used to affect selection of a sub-resource method or locator; all the others relate only to the consumption of request content. But, query and matrix parameters can trigger HTTP 404s when they are unparseable, where other parsing failures are reported as 400s. The idea is that query and matrix values are part of the top line of the HTTP request, and that a missing value can be seen as a failure to address a resource even if in JAX-RS this occurs at a later stage. On the flip side, you might prefer to direct requests to different methods based on the presence of query parameters and, sadly, JAX-RS doesn t support that. The CarLot example is intended as a focused study of the JAX-RS heuristic for finding subresource methods and locators; it is not a good example of REST style, especially in the DELETE method with /Delete in the URL. 7

8 Chapter 6 In this chapter I try to cover a number of alternatives for one of the most important parts of any REST architecture, which is a standard means by which to pass complex business data back and forth. I try to illuminate the pros and cons of XML-vs.-JSON, JAXB-vs.-not, but not to be too preachy about one approach or another. You may well have your own take on this, and it s also possible that the group you re teaching will already have committed to one approach or another. It should be easy enough to focus on one piece and to de-emphasize others. In fact the main case study for this chapter and for most CRUD-pattern material the rest of the way is implemented in dual, and, while we do shade a bit towards JSON with MOXy, this chapters labs and several later ones can be pursued in either a JAXB or a non- JAXB mode, with full starter and answer code throughout. Chapter 9 One shortcoming of the course s exercises generally is that we don t illustrate the proper use of the Location header when responding with HTTP 201. This is probably the time during the course at which to mention this, and describe the better practice as supported by JAX- RS: use Response.create and pass the location of the created resource, or add the header yourself if already doing lower-level work with the HTTP response. A limitation of inheriting JAX-RS annotations and overriding sub-resource methods won t be apparent in this chapter s exercises but will start to show up in the sub-resources chapter: you can t override a method in order to expand its semantics, for example by offering additional query parameters. This is where injectable fields really shine, though, as you can define a field for a query parameter that may be relevant in a subclass, and then check it from an override of a base-class method. The later lab in the Insurance service is an example of this. Chapter 11 The sub-resource framework shown in this chapter should appeal to students at this stage of the course, now that we ve seen some of the challenges of supporting CRUD patterns generically and have databases on which to set larger systems of resources. One limitation, which you may want to discuss, is the error handling. There are a number of opportunities for simple NullPointerExceptions to crash request processing, especially in sub-resource locators, and these should be tested more carefully and turned into HTTP 404s. 8

9 Chapter 12 It never seemed quite worth mentioning in the coursebook proper, but the lab software does include the HTTPSniffer tool that we use in a number of other courses. There might be other parts of the course where it would be useful but especially in this chapter, if students either are having trouble with the client lab exercise or just are curious about the HTTP that clients are sending, you can point them to this tool. Usage is very simple, just run cc.http.httpsniffer as a Java application, from Eclipse or the command line, and direct clients to port 8079 instead of The tool will pass all traffic and will log it to the console and to a file Traffic.txt. Chapter 15 This is by no means a comprehensive treatment of security practices for REST. It s just meant to offer an overview and show a little bit of working code. Consider our Course 562 for in-depth treatment of such topic areas as HMAC techniques, SAML, and OAuth. 9

10 Revision History Version covers a broader scope of topics, while still working with JAX-RS 2.0. Major changes include: There is a new chapter on REST sub-resources and JAX-RS support for them via sub-resource locators. There is a new chapter on testing strategies, with a focus on the Jersey test framework. We have dropped the separate material on JAXB, though this can be added back on a custom basis. Version 2.0 brings the course forward to Java EE 7 and JAX-RS 2.0. Major changes from the 1.1 version are: We ve dropped the big technology-neutral overview of SOAP and REST at the beginning. We just get down to cases with REST in the first chapter now. There is a new Chapter 2 that includes previous material on configuration but also focuses on component lifecycle. Entity translation is a much bigger part of the course now. We ve taken what was a single, fast-paced tour of the Billing service in the final chapter, and stretched it out to a multi-step case study so that we can consider some of the key concepts one at a time and with more hands-on exercises. More bite-size pieces: CRUD, XML, JSON, JAXB, error handling and validation, use of generics, working with JPA. JAXB is still in a separate one-chapter module, but we don t line it up to be covered in full prior to JAX-RS as before. See the comments in the Timeline section of this guide. There are new chapters on dependency injection, error handling and validation, generics, working with JPA, client API, filters and interceptors, and security. Version 1.1 is the initial release of the course, for Java EE 6 and JAX-RS

11 Troubleshooting If you run into any trouble with code exercises, the first and best thing to do is to doublecheck that the classroom machines have been set up precisely according to the course setup guide. Especially, the wrong version of a tool can cause significant problems; don t wander off-book in this way unless absolutely sure you can support the software that you prefer and that we haven t tested. Check environment variable settings carefully, too; these are the cause of a great many classroom glitches. Below are some specific pitfalls that have come up in previous offerings of the course: Be certain you have taken the few steps indicated in the Tools and Environment pages in the first chapter of the coursebook, such as editing the SetEnvironment script and certain workspace settings to fit any non-standard locations on student machines. 11

12 Errata The following issues were discovered after the most recent release, and will be addressed on the next maintenance cycle: [Nothing yet!] Feedback We very much appreciate whatever feedback we can get on our courseware especially from the instructor s perspective. Naturally, the more specific, the better, and we strongly encourage you to make notes on issues you may encounter in the classroom, whether they re typos, missing files, or suggestions for clearer language to explain a concept. We can t guarantee that we ll act on every suggestion, but we re aggressive about stamping out problems and try to be highly responsive. Hopefully this means that when you give us good feedback, you get a better course the next time you need to teach it. Please direct all courseware feedback to Will Provost Capstone Courseware mailto:provost@capcourse.com For anyone who s interested, we have a very informal defect-tracking system, based in Excel spreadsheets with columns to capture defect location, nature, status, and author feedback. Ultimately, feedback goes into these sheets, so if you want a template, we ll be happy to provide one, to facilitate the reporting process. 12

Developing RESTful Services in Java

Developing RESTful Services in Java Developing RESTful Services in Java Version 1.1 Instructor s Guide Overview We begin this course, as we do all our Java web services courses these days, with a twochapter overview of web services and the

More information

Java EE Persistence with Hibernate

Java EE Persistence with Hibernate Java EE Persistence with Hibernate Version 2.1 Copyright 2010-2016 Capstone Courseware, LLC. All rights reserved. Overview This course works from the very basics of ORM concepts through introductory and

More information

JPA with Hibernate. Instructor s Guide. Version 2.1. Copyright Capstone Courseware, LLC. All rights reserved.

JPA with Hibernate. Instructor s Guide. Version 2.1. Copyright Capstone Courseware, LLC. All rights reserved. JPA with Hibernate Version 2.1 Copyright 2010-2016 Capstone Courseware, LLC. All rights reserved. Overview This course works from the very basics of ORM concepts through introductory and intermediate JPA

More information

Developing RESTful Services with Spring

Developing RESTful Services with Spring Developing RESTful Services with Spring Version 4.1 Instructor s Guide Copyright 2006-2015 Capstone Courseware, LLC. All rights reserved. Overview This course combines four main parts: several chapters

More information

Spring Security. Instructor s Guide. Version 3.2. Copyright Capstone Courseware, LLC. All rights reserved.

Spring Security. Instructor s Guide. Version 3.2. Copyright Capstone Courseware, LLC. All rights reserved. Spring Security Version 3.2 Instructor s Guide Copyright 2006-2014 Capstone Courseware, LLC. All rights reserved. Overview This course breaks down into three main parts, each of a certain style, and the

More information

Introduction to Spring

Introduction to Spring Introduction to Spring Version 4.1 Instructor s Guide Copyright 2006-2015 Capstone Courseware, LLC. All rights reserved. Overview This course provides an overview of Spring, wandering onto the territory

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

Spring-MVC Web Applications

Spring-MVC Web Applications Spring-MVC Web Applications Version 4.2 Instructor s Guide Copyright 2006-2015 Capstone Courseware, LLC. All rights reserved. Overview This course combines an initial overview of Spring with in-depth coverage

More information

192. Design Patterns in Java Software

192. Design Patterns in Java Software 192. Design Patterns in Java Software Version 5.0 This course seeks to develop, for the experienced Java programmer, a strong, shared vocabulary of design patterns and best practices. The course begins

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

JVA-163. Enterprise JavaBeans

JVA-163. Enterprise JavaBeans JVA-163. Enterprise JavaBeans Version 3.0.2 This course gives the experienced Java developer a thorough grounding in Enterprise JavaBeans -- the Java EE standard for scalable, secure, and transactional

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

112. Introduction to JSP

112. Introduction to JSP 112. Introduction to JSP Version 2.0.2 This two-day module introduces JavaServer Pages, or JSP, which is the standard means of authoring dynamic content for Web applications under the Java Enterprise platform.

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.

More information

Introduction to Java Programming

Introduction to Java Programming Introduction to Java Programming Renel Fredricksen Robert J. Oberg Instructor s Guide Revision 5.0 Copyright 1999-2006 Capstone Courseware, LLC. All rights reserved. Revision Notes Revision 5.0 is a major

More information

112-WL. Introduction to JSP with WebLogic

112-WL. Introduction to JSP with WebLogic Version 10.3.0 This two-day module introduces JavaServer Pages, or JSP, which is the standard means of authoring dynamic content for Web applications under the Java Enterprise platform. The module begins

More information

CO Java EE 7: Back-End Server Application Development

CO Java EE 7: Back-End Server Application Development CO-85116 Java EE 7: Back-End Server Application Development Summary Duration 5 Days Audience Application Developers, Developers, J2EE Developers, Java Developers and System Integrators Level Professional

More information

Fast Track to EJB 3.0 and the JPA Using JBoss

Fast Track to EJB 3.0 and the JPA Using JBoss Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity

More information

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Web Application Development Using JEE, Enterprise JavaBeans and JPA Web Application Development Using JEE, Enterprise Java and JPA Duration: 5 days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options.

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

Java EE 7: Back-End Server Application Development

Java EE 7: Back-End Server Application Development Oracle University Contact Us: Local: 0845 777 7 711 Intl: +44 845 777 7 711 Java EE 7: Back-End Server Application Development Duration: 5 Days What you will learn The Java EE 7: Back-End Server Application

More information

"Charting the Course... Mastering EJB 3.0 Applications. Course Summary

Charting the Course... Mastering EJB 3.0 Applications. Course Summary Course Summary Description Our training is technology centric. Although a specific application server product will be used throughout the course, the comprehensive labs and lessons geared towards teaching

More information

Have the students look at the editor on their computers. Refer to overhead projector as necessary.

Have the students look at the editor on their computers. Refer to overhead projector as necessary. Intro to Programming (Time 15 minutes) Open the programming tool of your choice: If you ve installed, DrRacket, double-click the application to launch it. If you are using the online-tool, click here to

More information

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

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

Introduction to Programming

Introduction to Programming CHAPTER 1 Introduction to Programming Begin at the beginning, and go on till you come to the end: then stop. This method of telling a story is as good today as it was when the King of Hearts prescribed

More information

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli

Microservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli Microservice Software Engineering II Sharif University of Technology MohammadAmin Fazli Topics Seams Why to split the monolith Tangled Dependencies Splitting and Refactoring Databases Transactional Boundaries

More information

The Evolution of Java Persistence

The Evolution of Java Persistence The Evolution of Java Persistence Doug Clarke Oracle Ottawa, Canada Keywords: Java, Persistence, JPA, JAXB, JSON, REST Introduction The data access requirements of today s Java applications keep expanding

More information

GAVIN KING RED HAT CEYLON SWARM

GAVIN KING RED HAT CEYLON SWARM GAVIN KING RED HAT CEYLON SWARM CEYLON PROJECT A relatively new programming language which features: a powerful and extremely elegant static type system built-in modularity support for multiple virtual

More information

These are notes for the third lecture; if statements and loops.

These are notes for the third lecture; if statements and loops. These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern

More information

1.7 Limit of a Function

1.7 Limit of a Function 1.7 Limit of a Function We will discuss the following in this section: 1. Limit Notation 2. Finding a it numerically 3. Right and Left Hand Limits 4. Infinite Limits Consider the following graph Notation:

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

Last, with this edition, you can view and download the complete source for all examples at

Last, with this edition, you can view and download the complete source for all examples at PREFACE hat could be more exciting than learning the cool subfile concepts and techniques provided in the first edition of this book? Learning more in this new edition, of course! Actually, subfile concepts

More information

Chapter01.fm Page 1 Monday, August 23, :52 PM. Part I of Change. The Mechanics. of Change

Chapter01.fm Page 1 Monday, August 23, :52 PM. Part I of Change. The Mechanics. of Change Chapter01.fm Page 1 Monday, August 23, 2004 1:52 PM Part I The Mechanics of Change The Mechanics of Change Chapter01.fm Page 2 Monday, August 23, 2004 1:52 PM Chapter01.fm Page 3 Monday, August 23, 2004

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: CDN$3275 *Prices are subject to GST/HST Course Description: This course provides a comprehensive introduction to JPA

More information

CO Java EE 6: Develop Web Services with JAX-WS & JAX-RS

CO Java EE 6: Develop Web Services with JAX-WS & JAX-RS CO-77754 Java EE 6: Develop Web Services with JAX-WS & JAX-RS Summary Duration 5 Days Audience Java Developer, Java EE Developer, J2EE Developer Level Professional Technology Java EE 6 Delivery Method

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: 1,995 + VAT Course Description: This course provides a comprehensive introduction to JPA (the Java Persistence API),

More information

Modern web applications and web sites are not "islands". They need to communicate with each other and share information.

Modern web applications and web sites are not islands. They need to communicate with each other and share information. 441 Modern web applications and web sites are not "islands". They need to communicate with each other and share information. For example, when you develop a web application, you may need to do some of

More information

Science-as-a-Service

Science-as-a-Service Science-as-a-Service The iplant Foundation Rion Dooley Edwin Skidmore Dan Stanzione Steve Terry Matthew Vaughn Outline Why, why, why! When duct tape isn t enough Building an API for the web Core services

More information

New Perspectives on Word 2016 Instructor s Manual 1 of 10

New Perspectives on Word 2016 Instructor s Manual 1 of 10 New Perspectives on Word 2016 Instructor s Manual 1 of 10 New Perspectives Microsoft Office 365 And Word 2016 Introductory 1st Edition Shaffer SOLUTIONS MANUAL Full download at: https://testbankreal.com/download/new-perspectives-microsoft-office-365-

More information

Spring-MVC Web Applications

Spring-MVC Web Applications Spring-MVC Web Applications Version 2.5 Instructor s Guide Copyright 2006-2007 Capstone Courseware, LLC. All rights reserved. Overview This course combines four main parts: an initial overview of Spring

More information

WA2018 Programming REST Web Services with JAX-RS WebLogic 12c / Eclipse. Student Labs. Web Age Solutions Inc.

WA2018 Programming REST Web Services with JAX-RS WebLogic 12c / Eclipse. Student Labs. Web Age Solutions Inc. WA2018 Programming REST Web Services with JAX-RS 1.1 - WebLogic 12c / Eclipse Student Labs Web Age Solutions Inc. Copyright 2012 Web Age Solutions Inc. 1 Table of Contents Lab 1 - Configure the Development

More information

Java SE 8 Fundamentals

Java SE 8 Fundamentals Oracle University Contact Us: +52 1 55 8525 3225 Java SE 8 Fundamentals Duration: 5 Days What you will learn This Java SE 8 Fundamentals training introduces you to object-oriented programming using the

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

RavenDB & document stores

RavenDB & document stores université libre de bruxelles INFO-H415 - Advanced Databases RavenDB & document stores Authors: Yasin Arslan Jacky Trinh Professor: Esteban Zimányi Contents 1 Introduction 3 1.1 Présentation...................................

More information

CSE 336. Introduction to Programming. for Electronic Commerce. Why You Need CSE336

CSE 336. Introduction to Programming. for Electronic Commerce. Why You Need CSE336 CSE 336 Introduction to Programming for Electronic Commerce Why You Need CSE336 Concepts like bits and bytes, domain names, ISPs, IPAs, RPCs, P2P protocols, infinite loops, and cloud computing are strictly

More information

RESTful Services. Distributed Enabling Platform

RESTful Services. Distributed Enabling Platform RESTful Services 1 https://dev.twitter.com/docs/api 2 http://developer.linkedin.com/apis 3 http://docs.aws.amazon.com/amazons3/latest/api/apirest.html 4 Web Architectural Components 1. Identification:

More information

Up and Running Software The Development Process

Up and Running Software The Development Process Up and Running Software The Development Process Success Determination, Adaptative Processes, and a Baseline Approach About This Document: Thank you for requesting more information about Up and Running

More information

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA Web Application Development Using Spring, Hibernate and JPA 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:

More information

Blackfin Online Learning & Development

Blackfin Online Learning & Development Presentation Title: Multimedia Starter Kit Presenter Name: George Stephan Chapter 1: Introduction Sub-chapter 1a: Overview Chapter 2: Blackfin Starter Kits Sub-chapter 2a: What is a Starter Kit? Sub-chapter

More information

ava with Object-Oriented Generic Programming+ Java Java with Object-Oriented + Generic Programming by Paul S. Wang sofpower.com

ava with Object-Oriented Generic Programming+ Java Java with Object-Oriented + Generic Programming by Paul S. Wang sofpower.com J Java J with Object-Oriented Generic Programming+ ava Java with by Paul S. Wang Object-Oriented + Generic Programming sofpower.com Java with Object-oriented and Generic Programming Paul S. Wang Department

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

Let me begin by introducing myself. I have been a Progress Application Partner since 1986 and for many years I was the architect and chief developer

Let me begin by introducing myself. I have been a Progress Application Partner since 1986 and for many years I was the architect and chief developer Let me begin by introducing myself. I have been a Progress Application Partner since 1986 and for many years I was the architect and chief developer for our ERP application. In recent years, I have refocused

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

Copyright 2014 Blue Net Corporation. All rights reserved

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

MEAP Edition Manning Early Access Program Get Programming with Java Version 1

MEAP Edition Manning Early Access Program Get Programming with Java Version 1 MEAP Edition Manning Early Access Program Get Programming with Java Version 1 Copyright 2018 Manning Publications For more information on this and other Manning titles go to www.manning.com welcome First,

More information

Project 1 Balanced binary

Project 1 Balanced binary CMSC262 DS/Alg Applied Blaheta Project 1 Balanced binary Due: 7 September 2017 You saw basic binary search trees in 162, and may remember that their weakness is that in the worst case they behave like

More information

Applying Code Generation Approach in Fabrique Kirill Kalishev, JetBrains

Applying Code Generation Approach in Fabrique Kirill Kalishev, JetBrains november 2004 Applying Code Generation Approach in Fabrique This paper discusses ideas on applying the code generation approach to help the developer to focus on high-level models rather than on routine

More information

Reading How the Web Works

Reading How the Web Works Reading 1.3 - How the Web Works By Jonathan Lane Introduction Every so often, you get offered a behind-the-scenes look at the cogs and fan belts behind the action. Today is your lucky day. In this article

More information

FULL STACK FLEX PROGRAM

FULL STACK FLEX PROGRAM UNIVERSITY OF RICHMOND CODING BOOT CAMP FULL STACK FLEX PROGRAM CURRICULUM OVERVIEW The digital revolution has transformed virtually every area of human activity and you can be part of it as a web development

More information

FULL STACK FLEX PROGRAM

FULL STACK FLEX PROGRAM UNIVERSITY OF WASHINGTON CODING BOOT CAMP FULL STACK FLEX PROGRAM CURRICULUM OVERVIEW The digital revolution has transformed virtually every area of human activity and you can be part of it as a web development

More information

Model-View-Controller (MVC) Architecture

Model-View-Controller (MVC) Architecture JOHN DEACON Computer Systems Development, Consulting & Training Model-View-Controller (MVC) Architecture Author: John Deacon Synopsis: Although the MVC architecture (or pattern or idiom) has been around

More information

The next generation of Google APIs

The next generation of Google APIs The next generation of Google APIs Ade Oshineye www.oshineye.com/+ Let s talk about the future This is not a vendor pitch This. Is. Not. A. Vendor. Pitch. I work on the Google+ Project www.oshineye.com/+

More information

Java EE 5 Development for WebSphere Application Server V7

Java EE 5 Development for WebSphere Application Server V7 Java EE 5 Development for WebSphere Application Server V7 Durée: 4 Jours Réf de cours: WD370G Résumé: This 4-day instructor-led course teaches students the new features of Java Platform, Enterprise Edition

More information

Taskbar: Working with Several Windows at Once

Taskbar: Working with Several Windows at Once Taskbar: Working with Several Windows at Once Your Best Friend at the Bottom of the Screen How to Make the Most of Your Taskbar The taskbar is the wide bar that stretches across the bottom of your screen,

More information

Table of Contents. I. Pre-Requisites A. Audience B. Pre-Requisites. II. Introduction A. The Problem B. Overview C. History

Table of Contents. I. Pre-Requisites A. Audience B. Pre-Requisites. II. Introduction A. The Problem B. Overview C. History Table of Contents I. Pre-Requisites A. Audience B. Pre-Requisites II. Introduction A. The Problem B. Overview C. History II. JPA A. Introduction B. ORM Frameworks C. Dealing with JPA D. Conclusion III.

More information

What s in This Book Part I: Basic Searches Part II: Specialized Searches

What s in This Book Part I: Basic Searches Part II: Specialized Searches Introduction I use Google every day. I ve been using it every day since it first launched before it launched, actually, when it still had the word beta on its home page. I use Google because it s easy

More information

Reactive Programming with RxJS 5

Reactive Programming with RxJS 5 Extracted from: Reactive Programming with RxJS 5 Untangle Your Asynchronous JavaScript Code This PDF file contains pages extracted from Reactive Programming with RxJS 5, published by the Pragmatic Bookshelf.

More information

1.5 Edge Component The problem. Practical SOA Arnon Rotem-Gal-Oz 1

1.5 Edge Component The problem. Practical SOA Arnon Rotem-Gal-Oz 1 1 1.5 Edge Component The last pattern of the basic patterns is the Edge Component pattern. Unlike the other pattern which are basic just because they are very common, the Edge component is also basic because

More information

THE AUDIENCE FOR THIS BOOK. 2 Ajax Construction Kit

THE AUDIENCE FOR THIS BOOK. 2 Ajax Construction Kit Introduction This whole book idea started as a bet I had with my editor that we couldn t pick two random techie topics and tie them together in a book. Two darts flew through the air and the topics Ajax

More information

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges

More information

shortcut Tap into learning NOW! Visit for a complete list of Short Cuts. Your Short Cut to Knowledge

shortcut Tap into learning NOW! Visit  for a complete list of Short Cuts. Your Short Cut to Knowledge shortcut Your Short Cut to Knowledge The following is an excerpt from a Short Cut published by one of the Pearson Education imprints. Short Cuts are short, concise, PDF documents designed specifically

More information

SOAP: Cross Platform Web Services Development Using XML PDF

SOAP: Cross Platform Web Services Development Using XML PDF SOAP: Cross Platform Web Services Development Using XML PDF Discover how to use SOAP to integrate virtually any distributed system, in Windows, Linux, and UNIX environments - with any of five leading programming

More information

» How do I Integrate Excel information and objects in Word documents? How Do I... Page 2 of 10 How do I Integrate Excel information and objects in Word documents? Date: July 16th, 2007 Blogger: Scott Lowe

More information

Seam 3. Pete Muir JBoss, a Division of Red Hat

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

One of the fundamental kinds of websites that SharePoint 2010 allows

One of the fundamental kinds of websites that SharePoint 2010 allows Chapter 1 Getting to Know Your Team Site In This Chapter Requesting a new team site and opening it in the browser Participating in a team site Changing your team site s home page One of the fundamental

More information

COSC 2P95. Introduction. Week 1. Brock University. Brock University (Week 1) Introduction 1 / 18

COSC 2P95. Introduction. Week 1. Brock University. Brock University (Week 1) Introduction 1 / 18 COSC 2P95 Introduction Week 1 Brock University Brock University (Week 1) Introduction 1 / 18 Lectures and Labs Lectures are Thursdays, from 3pm 5pm (AS/STH 217) There are two lab sections Lab 1 is Mondays,

More information

CHAPTER 1 COPYRIGHTED MATERIAL. Finding Your Way in the Inventor Interface

CHAPTER 1 COPYRIGHTED MATERIAL. Finding Your Way in the Inventor Interface CHAPTER 1 Finding Your Way in the Inventor Interface COPYRIGHTED MATERIAL Understanding Inventor s interface behavior Opening existing files Creating new files Modifying the look and feel of Inventor Managing

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

Agenda Time (PT) 8:45 a.m. Event Platform Opening 9:00 a.m. Keynote - Java: Present and Future Java EE 7 Java SE 8 Java Embedded

Agenda Time (PT) 8:45 a.m. Event Platform Opening 9:00 a.m. Keynote - Java: Present and Future Java EE 7 Java SE 8 Java Embedded Virtual Developer Day: Java 2014 May 6 th 9:00 a.m. - 1:00 p.m. PDT / 12:00 p.m. - 4:00 p.m. EDT / 1:00 p.m. 5:00 p.m. BRT Agenda Time (PT) 8:45 a.m. Event Platform Opening 9:00 a.m. Keynote - Java: Present

More information

Learn to make watchosle

Learn to make watchosle HACKING WITH SWIFT COMPLETE TUTORIAL COURSE Learn to make watchosle P apps with real-worldam S Swift projects REEPaul Hudson F Project 1 NoteDictate 2 www.hackingwithswift.com Setting up In this project

More information

"Web Age Speaks!" Webinar Series

Web Age Speaks! Webinar Series "Web Age Speaks!" Webinar Series Java EE Patterns Revisited WebAgeSolutions.com 1 Introduction Bibhas Bhattacharya CTO bibhas@webagesolutions.com Web Age Solutions Premier provider of Java & Java EE training

More information

DOWNLOAD PDF ADVANCED JAVA TUTORIAL FOR BEGINNERS

DOWNLOAD PDF ADVANCED JAVA TUTORIAL FOR BEGINNERS Chapter 1 : Java Tutorial - Learn Core & Advanced Java This tutorial has been prepared for the beginners to help them understand the basic to advanced concepts related to Java Programming language. Prerequisites

More information

A state-based 3-way batch merge algorithm for models serialized in XMI

A state-based 3-way batch merge algorithm for models serialized in XMI A state-based 3-way batch merge algorithm for models serialized in XMI Aron Lidé Supervisor: Lars Bendix Department of Computer Science Faculty of Engineering Lund University November 2011 Abstract With

More information

COMMUNICATION PROTOCOLS

COMMUNICATION PROTOCOLS COMMUNICATION PROTOCOLS Index Chapter 1. Introduction Chapter 2. Software components message exchange JMS and Tibco Rendezvous Chapter 3. Communication over the Internet Simple Object Access Protocol (SOAP)

More information

114. Jakarta Struts. Prerequisites. Version 1.1.3

114. Jakarta Struts. Prerequisites. Version 1.1.3 114. Jakarta Struts Version 1.1.3 This advanced course shows JSP and servlet programmers how to build "Model-2" Web applications using the Jakarta Struts project from Apache. Students learn the Struts

More information

Beyond the Annual Report

Beyond the Annual Report Beyond the Annual Report Web Analytics for Evidence-Based User Experience Decisions Adrienne Lai Jonathan Kift Introduce self & Jonathan Today s presentation wrangle Google Analytics so we can understand

More information

End-user experience monitoring with FMS, FxM and FxV

End-user experience monitoring with FMS, FxM and FxV End-user experience monitoring with FMS, FxM and FxV Aniello Human (aniello.human@gmail.com) September 2011 Abstract: This document will demonstrate a method of integrating data from the Foglight Experience

More information

FULL STACK FLEX PROGRAM

FULL STACK FLEX PROGRAM THE CODING BOOT CAMP FULL STACK FLEX PROGRAM CURRICULUM OVERVIEW The digital revolution has transformed virtually every area of human activity and you can be part of it as a web development professional.

More information

CMPSCI 187 / Spring 2015 Postfix Expression Evaluator

CMPSCI 187 / Spring 2015 Postfix Expression Evaluator CMPSCI 187 / Spring 2015 Postfix Expression Evaluator Due on Thursday, 05 March, 8:30 a.m. Marc Liberatore and John Ridgway Morrill I N375 Section 01 @ 10:00 Section 02 @ 08:30 1 CMPSCI 187 / Spring 2015

More information

ITM DEVELOPMENT (ITMD)

ITM DEVELOPMENT (ITMD) ITM Development (ITMD) 1 ITM DEVELOPMENT (ITMD) ITMD 361 Fundamentals of Web Development This course will cover the creation of Web pages and sites using HTML, CSS, Javascript, jquery, and graphical applications

More information

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect The following is intended to outline our general product direction. It is intended for information purposes only, and may not

More information

CSE 333 Lecture 9 - storage

CSE 333 Lecture 9 - storage CSE 333 Lecture 9 - storage Steve Gribble Department of Computer Science & Engineering University of Washington Administrivia Colin s away this week - Aryan will be covering his office hours (check the

More information

Real Life Web Development. Joseph Paul Cohen

Real Life Web Development. Joseph Paul Cohen Real Life Web Development Joseph Paul Cohen joecohen@cs.umb.edu Index 201 - The code 404 - How to run it? 500 - Your code is broken? 200 - Someone broke into your server? 400 - How are people using your

More information

Myths about Links, Links and More Links:

Myths about Links, Links and More Links: Myths about Links, Links and More Links: CedarValleyGroup.com Myth 1: You have to pay to be submitted to Google search engine. Well let me explode that one myth. When your website is first launched Google

More information

Win-Back Campaign- Re-Engagement Series

Win-Back Campaign- Re-Engagement Series Win-Back Campaign- Re-Engagement Series At this point the re-engagement campaign has ended, so if the prospect still hasn t responded it s time to turn up the heat. NOTE: In the emails below, everywhere

More information

Java EE 6: Develop Business Components with JMS & EJBs

Java EE 6: Develop Business Components with JMS & EJBs Oracle University Contact Us: + 38516306373 Java EE 6: Develop Business Components with JMS & EJBs Duration: 4 Days What you will learn This Java EE 6: Develop Business Components with JMS & EJBs training

More information

7 Tips for Raising The Quality Bar With Visual Studio 2012

7 Tips for Raising The Quality Bar With Visual Studio 2012 Visit: www.intertech.com/blog 7 Tips for Raising The Quality Bar With Visual Studio 2012 Tip 1: Exploratory Testing I have to admit that when I first found out that enhanced exploratory testing was the

More information

Creating Word Outlines from Compendium on a Mac

Creating Word Outlines from Compendium on a Mac Creating Word Outlines from Compendium on a Mac Using the Compendium Outline Template and Macro for Microsoft Word for Mac: Background and Tutorial Jeff Conklin & KC Burgess Yakemovic, CogNexus Institute

More information

/ / JAVA TRAINING

/ / JAVA TRAINING www.tekclasses.com +91-8970005497/+91-7411642061 info@tekclasses.com / contact@tekclasses.com JAVA TRAINING If you are looking for JAVA Training, then Tek Classes is the right place to get the knowledge.

More information

4 KEY FACTORS FOR DATA QUALITY ON A DATA LAKE (OR: HOW TO AVOID THE DATA SWAMP) JOSH HERRITZ MIOSOFT CORPORATION MIOsoft Corporation.

4 KEY FACTORS FOR DATA QUALITY ON A DATA LAKE (OR: HOW TO AVOID THE DATA SWAMP) JOSH HERRITZ MIOSOFT CORPORATION MIOsoft Corporation. 4 KEY FACTORS FOR DATA QUALITY ON A DATA LAKE (OR: HOW TO AVOID THE DATA SWAMP) JOSH HERRITZ MIOSOFT CORPORATION The trends in digital business promise that the future holds an unprecedented volume, variety,

More information