web analytics

Data, data everywhere 

Twitter LinkedIn RSS
magnify
formats

Data Processing on the Google Cloud Platform: from MapReduce to Dremel

The next lecture in the SHARCNET @ Conestoga seminar series is entitled “Data Processing on the Google Cloud Platform” and features Oleg Golubitsky, a Software Engineer at Google. The lecture is scheduled for Tuesday, February 24, from 17:00 to 18:00 in Room 2A301 at the Doon campus.

Abstract

This seminar will cover two data processing services on the Google Cloud Platform: Hadoop and BigQuery. Hadoop is based on an older technology called MapReduce, designed for batch processing of large data sets. This technology provides maximum flexibility and scalability. It allows programmers to express complex logic in a programming language such as Java or C++. One can fine-tune the performance by adjusting parameters such as the number of mappers/reducers and disk/CPU resources. But this flexibility also makes it harder to use. BigQuery is based on a more recent technology called Dremel. It supports an SQL-like query language. It is much easier to write SQL queries than to implement mappers/reducers. Dremel scales well with respect to the input size, and most queries run faster than equivalent MapReduce jobs. Dremel’s language may not appear as expressive as Java, yet we will see that one can actually implement in it all basic computations that are commonly done in MapReduce, including filtering, aggregation, and joins. The seminar will include a few tips and tricks on how to optimize Dremel queries.

Biography

Oleg Golubitsky received his PhD degrees in Mathematics from Moscow State University and in Computer Science from the University of New Brunswick. He was an Assistant Professor of Computer Science at University of New Brunswick and a Postdoctoral Fellow at University of Pisa, Queen’s University, and Western University. Oleg’s publications are in the areas of computer algebra, differential algebra, mathematical handwriting recognition, and quantum computing. He competed in, and coached for, the world finals of the ACM International Collegiate Programming Contest. Since 2009, Oleg has been a software engineer with Google.

For more information on this talk or SHARCNET @ Conestoga Seminar Series, contact Dalibor Dvorski at ddvorski@conestogac.on.ca.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Why Would I Use Graphics Processing Units?

Please join other IT faculty and students for the next invited SHARCNET lecture, entitled “Why Would I Use Graphics Processing Units?” to be presented by Pawel Pomorski, High Performance Computing Programming Specialist, SHARCNET and Compute Canada.

Date: Tuesday, January 27, 17:00 to 18:00

Location: Conestoga College Doon campus, room DMB-2A301

Abstract:

Graphics Processing Units (GPUs) can provide a significant speedup for certain types of scientific computations. This seminar will discuss which programs can benefit from this speedup, and how in certain cases it can be obtained without much effort using already existing packages and libraries. Simulation packages already accelerated for the GPU will be discussed, with focus on the Nanoscale Molecular Dynamics (NAMD) program as an example. The use of GPU-enabled numerical libraries useful for common problems will also be discussed. The use of these techniques will be demonstrated with example runs on SHARCNET’s new GPU cluster. While not the focus of this seminar, a brief overview of available programming approaches for GPUs will be also provided.

Biography:

Pawel Pomorski is currently a High Performance Computing Programming Specialist at SHARCNET and Compute Canada, based at University of Waterloo. His scientific expertise covers the areas of condensed matter physics and biophysics. Dr. Pomorski received his Doctor of Philosophy degree in physics from McGill University in 2002, and his undergraduate degree at University of Toronto in 1996.

For more information on this talk or SHARCNET @ Conestoga Seminar Series, contact Dalibor Dvorski at ddvorski@conestogac.on.ca.

Thanks to Dalibor for sending this my way.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

The research behind instrumented curling brooms

Author’s note: This is joint work with John Newhook, Department of Civil and Resource Engineering, Dalhousie University.

Over the past two years I have had the privilege to work on a number of different engineering initiatives related to the sport of curling. One of these is the development of an instrumented curling broom, a device that permits the measurement of force and stroke rate of a player, in real time, while brushing a curling stone. In this article, I’d like to present a brief overview of the body of work surrounding the study of brushing performance in curling, and briefly describe two research initiatives that are helping to increase our understanding of how we can improve brushing performance in athletes of all ages and abilities.

What makes a curling stone curl?

One would think that in a game played for the better part of 300 years we would have a solid grasp on the physics behind curling stones and a complete understanding of what makes a curling stone curl. The interesting thing about curling stones is that they nominally curl in the direction of rotation, whereas other objects (say a drinking glass on a kitchen counter) will “curl” on the counter-top in the opposite direction of the rotation. This phenomena has been studied, albeit incompletely, since the mid-1920’s and thus far the results remain controversial. Bradley [1] provides a brief summary of this research. An excellent overview can also be found in an article by Jon Minnaar of Scotland entitled “Why do curling stones curl?”, written in 2006, where the models of Shegelski and Denny are summarized. In 2013, Jessica Egan of the University of Utah published a brief survey of curling stone trajectory research; in a nutshell, research from the last 20 years or so encompasses a number of related but contradictory theories:

  • Mark Shegelski of the University of Northern British Columbia, along with several different co-authors, has proposed a model [5,13-17] that is based on “wet” versus “dry” friction. In this model, the theory is that the stone’s leading edge forces a minute amount of water out of the ice, which lowers the coefficient of friction for the stone’s trailing edge and hence causes the stone to curl in its familiar direction.
  • Mark Denny of BAE produced a model [3] based on left/right asymmetry of frictional force, based on the accumulation of ice (or other) debris on the surface of the stone’s running band through its travel, which he terms the “snowplow” model.
  • Norikazu Maeno of Japan’s Hokkaido University proposes an “evaporation-abrasion” model [6,7] where the lower coefficient of friction for the rear portion of a curling stone’s running band is due to a combination of evaporation and ice debris generated by the front of the running band as the stone travels over the ice.
  • A. Raymond Penner of Vancouver Island University proposed a slightly different model [12] than that of Shelgelski et al. in that he considered an “adhesive” effect of frictional force on a stone’s running band which results in a “pivoting” action of the stone as it rotates.
  • Finally, recent work [10,11] by Harald Nyberg et al. at Sweden’s Uppsala University documents “micro-scratches” in the ice caused by the leading edge of a stone’s running band, and which in turn causes angular deflection of the trailing edge that causes the stone to “curl”.

The summary above was designed to be neither definitive nor exhaustive, but only to represent the uncertainty in our understanding of the physics of curling. That uncertainty leads to greater uncertainty when we consider what physics can explain about the brushing of a stone, something the Scots realized 150 years ago yet which we cannot – still – completely explain.

Development of instrumented curling brooms

It has been known for some time that the impact of brushing (or sweeping) in front of a curling stone lowers the coefficient of friction of the ice surface through the generation of heat [1,3]. Through the use of infrared cameras, a study undertaken for the Canadian Curling Association by Tom Jenkins at the University of Western Ontario in 2009 demonstrated this effect using Olympic-calibre athletes, and it was found that in the best case men could raise the surface temperature of the ice by between 0.75 and 1.75 degrees Centigrade, whereas women could raise the surface temperature between 0.50 and 0.75 degrees, primarily due to physiological disadvantages (strength, size, and body weight) compared to men. In coaching, however, it is important to provide more meaningful measures to athletes that are directly tied to their performance, so instrumented brooms capture metrics such as vertical force and stroke rate and use these as proxy variables, rather than the heat generated, in measuring athlete performance. Our specific interest is in determining which metrics to capture, the utility of each metric, and how one can use these metrics in the coaching of the sport.

Read more…

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Understanding IEEE floating point implementations

While many Computer Science students are exposed to higher-level mathematics in College and University programs, often their courses focus on algebraic solutions or approximations, and unfortunately omit some of the underlying physical implementations of those abstractions. Floating point arithmetic is one of those abstractions, and understanding how inaccuracies can result from floating-point calculations is an important aspect of computing. Occasionally floating point arithmetic is a topic in a course on Numerical Analysis, previously de rigueur in many curricula – it certainly was in my undergraduate program – but today this topic is often missing from students’ transcripts.

Results from floating-point computations can differ from a variety of factors, not only due the underlying machine architecture; and these differences can occur even though most, if not all, modern processors adhere to the IEEE 754 floating-point standard. For these and other reasons many financial systems eschew floating point arithmetic in favour of fixed decimal arithmetic in compiled programs. On the other hand, many database system implementations rely heavily on double-precision floating point operations for scalar functions (as per the ISO SQL Standard). Hence an understanding of the implications of the use of double-precision floating point arithmetic is important when developing database applications.

In an article entitled What Every Computer Scientist Should Know About Floating Point Arithmetic, originally published in ACM Computing Surveys 22(1) in 1991, author David Goldberg provides an in-depth overview of floating point arithmetic that should be required reading for every student of Computer Science. In it, Goldberg provides an in-depth description of the IEEE 754 standard and the internal representations of floating point values on different computers, including IBM 370 mainframes. Additional sections cover rounding, underflow and overflow, NaN (Not a Number) values, signed zeroes, and system implementations and their impact, including to compilers. Here is one excerpt:

The design of almost every aspect of a computer system requires knowledge about floating-point. Computer architectures usually have floating-point instructions, compilers must generate those floating-point instructions, and the operating system must decide what to do when exception conditions are raised for those floating-point instructions. Computer system designers rarely get guidance from numerical analysis texts, which are typically aimed at users and writers of software, not at computer designers. As an example of how plausible design decisions can lead to unexpected behavior, consider the following BASIC program:

1
2
3
4
5
q = 3.0/7.0
if q = 3.0/7.0 then 
   print "Equal":
else 
   print "Not Equal"

When compiled and run using Borland’s Turbo Basic on an IBM PC, the program prints Not Equal! This example will be analyzed in the next section.

Incidentally, some people think that the solution to such anomalies is never to compare floating-point numbers for equality, but instead to consider them equal if they are within some error bound E. This is hardly a cure-all because it raises as many questions as it answers. What should the value of E be? If x < 0 and y > 0 are within E, should they really be considered to be equal, even though they have different signs? Furthermore, the relation defined by this rule, a ~ b <=> |a – b| < E, is not an equivalence relation because a ~ b and b ~ c does not imply that a ~ c.

Understanding why and how floating-point operations are made, and the significance of approximations due to (for example) rounding, should be required knowledge of all systems developers. Note as well that the article, originally written nearly 25 years ago, predates the 2008 IEEE 754R revisions to the standard that includes several important modifications. Conestoga College students can access the standard using the College’s site license access to the IEEE Digital Library.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Supplemental resources for PROG3060 – Winter 2015

The course textbook for PROG3060 (Java Enterprise Applications) in the Winter 2015 term is

Dr. Danny Coward (2015). Java EE 7: The Big Picture. McGraw-Hill (Oracle Press), ISBN 978-0-07-183734-7.

Below is a list of supplemental materials that students in PROG3060 may find useful that are in addition to the above text, particularly if they are unfamiliar with the Hibernate Object-relational Mapping library:

  • Naci Dai, Lawrence Mandel, and Arthur Ryman (2007). Eclipse Web Tools Platform: Developing Java Web Applications. Pearson Education, Boston, Massachusetts. ISBN 978-0-321-39683-3. Second printing, February 2008.
  • Murat Yener and Alex Theedom (2015). Professional Java EE Design Patterns. Wrox Press (John Wiley and Sons), Indianapolis, Indiana. ISBN 978-1-118-84341-3.
  • Andrew Lee Rubinger and Bill Burke (2010). Enterprise Java Beans 3.1, Sixth Edition. O’Reilly Media, Sebastopol, California. ISBN 978-0-596-15802-6.
  • Mike Keith and Merrick Schincariol (2006). Pro EJB 3 Java Persistence API. Apress Books, Berkeley, California. ISBN 978-1-59059-645-6.
  • Mike Keith and Merrick Schincariol (2009). Pro JPA 2: Mastering the Java Persistence API. Apress Books, Berkeley, California. ISBN 978-1-4302-1956-9.
  • Graham Hamilton, Rick Cattell and Maydene Fisher (July 1997). JDBC Database Access with Java: A Tutorial and Annotated Reference. Addison-Wesley, Reading, Massachusetts. ISBN 0-201-30995-5.
  • Arun Gupta (2013). Java EE 7 Essentials. O’Reilly Publications. ISBN 978-1-449-37017-6.
  • Seth White, Maydene Fisher, Rick Cattell, Graham Hamilton and Mark Hapner (December 1999). JDBC API Tutorial and Reference, Second Edition. Addison-Wesley, Reading, Massachusetts. ISBN 0-201-143328-1.
  • Antonio Goncalves (2010). Beginning Java EE6 Platform with Glassfish 3: From Novice to Professional. Second Edition. Apress Books, Berkeley, California. ISBN 978-1-4302-2889-9.
  • John Brook, Arun Gupta, and Geertjan Wielenga (2014). Java EE and HTML5 Enterprise Application Development. McGraw-Hill (Oracle Press), ISBN 978-0-07-182309-8.
  • Christian Bauer and Gavin King (2007). Java Persistence with Hibernate. Manning Publications, ISBN 1-932394-88-5.
  • Srinivas Guruzu and Gary Mak (2010). Hibernate Recipes: A Problem-Solution Approach. Apress Books. ISBN 978-1-4302-2796-0.
  • Eric Jendrock, Ricardo Cervera-Navarro, Ian Evans, Kim Haase, and William Markito (2014). The Java EE 7 Tutorial, Fifth Edition, Volumes 1 and 2. Addison-Wesley, Upper Saddle River, New Jersey. ISBN 978-0-321-99492-9 and 978-0-321-98008-3.
  • Nicholas S. Williams (2014). Professional Java for Web Applications. John Wiley and Sons (Wrox), New York. ISBN 978-1-118-65646-4.
 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Software for PROG3060 – Java Enterprise Applications

Students taking PROG3060 in the Winter 2015 semester may wish to install all of the various software components required for the course on their own machines. So, in anticipation of student requests for that list of components and how to configure them, here goes.

We will be utilizing:

  • Java JDK 1.7.0 r71, 32-bit edition;
  • Eclipse Luna 32-bit, the Oracle OEPE (Oracle Enterprise Pack for Eclipse) version 12.1.3.1.1, which contains various additional Web Tools Platform (WTP) Eclipse plugins.
  • Java EE 7 32-bit, which includes the Java Enterprise Edition 7 jar files, the Java 1.7.0 JRE, the Derby pure-Java database system (version 10.4.2.0), and the open-source GlassFish 4.1 application server.
  • Apache Tomcat 8.0.15 web server.
  • Java Hibernate 4.3.6. Hibernate 4.3.7 is now available here. It is unlikely that the upgrade from 4.3.6 to 4.3.7 will significantly impact student work.

In addition, student may desire downloading the Oracle JDBC drivers if they are planning to utilize Oracle with Java applications. These drivers should work well with Oracle 11g servers; only the 12c library is compiled with Java JDK 1.7, whereas 11g drivers use the Java 6 JDK and hence requires the Java 1.6 installation as well.

All of the software is multi-platform (Linux, Mac, Windows) so students should be able to replicate the lab environment on their own machines. Setup, however, is not necessarily straightforward; the issue is that both Glassfish and Tomcat, by default, listen on TCP port 8080 and this requires configuration changes.

Note: If you have an instance of the Oracle XE server installed on your machine, it also contains a web server that listens on port 8080. Since changing this port is NOT RECOMMENDED, you will have to alter the ports for BOTH Glassfish and Tomcat with your installation. I use ports 19600 and 19601 for Glassfish, and 8500 for Tomcat. The Glassfish administrative listener port (4848) can remain unchanged.

Changing the Glassfish listeners’ port numbers

If you use the Java EE7 Windows installer (recommended for Windows installations), it by default configures Glassfish to use 8080 and 8081 for its listener ports. To change them to something else, follow these steps:

  1. Go to the folder where Glassfish in installed – often on Windows this is “c:\
    glassfish4\glassfish”.

  2. Go into the config folder for Glassfish, which will be “c:\glassfish4\glassfish\domains\domain1\config”.
  3. Open the file “domain.xml” using the text editor of your choice. Look for “8080” in the file, and you will see something like this:
    195
    196
    197
    198
    199
    
            <network-listeners>
              <network-listener port="8080" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
              <network-listener port="8081" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>
              <network-listener port="4848" protocol="admin-listener" transport="tcp" name="admin-listener" thread-pool="admin-thread-pool"></network-listener>
            </network-listeners>

    and change “8080” and “8081” to two other distinct port numbers that do not conflict with other port numbers in use on your machine. On my Windows installation I’ve used 19600 and 19601.

  4. Save domain.xml.

Tomcat 8.0.15

You can install Tomcat manually by choosing the .zip installation available from apache.org, but for Windows installation the Windows installer brings up a dialog with which you can set the port numbers Tomcat will use. My own installation mimics the installation in College labs by using port 8500.

Derby 10

The pure-Java Derby relational database comes with the Java EE 7 installation, and is placed in the “javadb” subdirectory of the Java EE 7 install. The Derby server listens on registered port 1527, which should not conflict with anything else on your machine BUT the use of that port must be enabled by modifying the policies with your Java JDK installation; otherwise, an attempt to start the Derby server using the default “startNetworkServer.bat” will fail with a security violation.

To re-configure your Java 7 JDK to suit Derby, edit the file “java.policy” in your Java 7 JDK installation directory, something like:

C:\Program Files\Java\jdk1.7.0_71\jre\lib\security\java.policy

and include the following grant at the end of the file:

53
54
55
grant {
    permission java.net.SocketPermission "localhost:1527", "listen";
};

Eclipse

Once Java, Derby, Tomcat, and Glassfish are installed, you should configure Eclipse OEPE to work with Glassfish and Tomcat by installing them as servers using the Eclipse Server dialog:

eclipse_servers

You can also go to the Database Perspective within Eclipse and, after starting the Derby 10 server, connect to the Derby server from within Eclipse and execute some sample SQL statements to a new Derby database using SQL Scrapbook. The JDBC jar files required for use by SQL Scrapbook can be found in the “javadb\lib” directory (in particular, derbyclient.jar) where Derby is installed (with the Java 7 EE installation).

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

Conestoga to host Compute Ontario Research Day 2015

Conestoga College will host Compute Ontario Research Day on May 21, 2015 at the Cambridge Campus. Compute Ontario, formerly named the SHARCNET Research Day, is a premier annual conference where Ontario researchers meet to learn about each other’s high performance computing projects. This conference is a collaborative event between Conestoga College, SHARCNET, University of Toronto’s SciNet, and Ontario’s High Performance Computing Virtual Laboratory. Last year’s conference was held in May in Waterloo at the Perimeter Institute.

As part of this conference, a number of opportunities will exist for both students and faculty. The first of these opportunities for students comes in the form of an extracurricular competition to design the conference web site for Compute Ontario Research Day 2015.

In this competition, students may submit a conference web site design individually or as part of a team of two, three, or four students. The competition starts immediately when students register their interest, and will conclude at the end of January 2015. At that time, conference organizers will choose the best design to use for the conference Web site. At Conestoga this competition will be co-ordinated by Professor Dalibor Dvorski. Interested students should contact Professor Dvorski as soon as possible for detailed requirements if they are interested in competing in the design competition.

Additional updates on Compute Ontario Research Day 2015 will come in the new year.

My thanks to Dalibor for sending this my way.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

SQL Anywhere achieves world-best TPC-C benchmark

My former colleagues at Sybase/SAP have recently published a remarkable TPC-C benchmark result for a 750Gb SQL Anywhere 16 database on a Dell PowerEdge T620 server with 128GB of RAM using Microsoft Windows 2012, simulating 90,000 users.

The benchmark is noteworthy because it sets an all-time record for price/performance with the TPC-C benchmark: 112,890 tpmC with a total system cost of US $21,160.00 yielding US $0.19 per tpmC (yes, that’s 19 cents per tpmC), breaking the previous (2012) mark held by Cisco (using Oracle 11g) at 0.47 per tpmC – less than half the cost.

The full disclosure report contains all of the benchmark’s details but I would like to specifically highlight the performance tuning parameters specified on pages 46-47 of the report. Essentially, the SQL Anywhere performance parameters used in the benchmark differ from the SQL Anywhere defaults in only 3 ways:

  • Dynamic cache sizing is turned off to achieve maximal cache warming during the benchmark’s warmup phase;
  • The server’s multiprogramming level is fixed at 500, again to achieve fast-as-possible warmup preceding the benchmark reporting period; and
  • The maximal number of plans cached per connection was increased to 100 rather than the default of 20.

One should note from this that all of the other automatic tuning mechanisms in SQL Anywhere – plan caching, cost-based optimization, real-time statistics collection, and so on – are still enabled for the benchmark. This is a BIG DEAL for SQL Anywhere customers who rely on SQL Anywhere’s self-management features to provide top-of-the-line run-time performance with near-zero system administration.

Kudos to my former colleagues including Jason Hinsperger, Ivan Bowman, Dan Farrar, Peter Bumbulis and Mohammed Abouzour, and the entire Engineering team at SAP Waterloo.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
2 Comments  comments 
formats

An Introduction to SHARCNET

On Monday, November 24 we are pleased to welcome Pawel Pomorski of SHARCNET and Compute Canada as he gives an introductory talk on SHARCNET, the Shared Hierarchical Academic Research Computing Network. SHARCNET is a consortium of 18 Canadian academic institutions, including Conestoga College, who share a network of high performance computers. With this infrastructure the consortium’s institutions enable world-class academic research. The aim is to:

  • Accelerate computational academic research;
  • Attract the best students and faculty to our partner institutions by providing cutting edge expertise and hardware;
  • Link academic researchers with corporate partners in a search for new business opportunities.

SHARCNET is a partner organization in the Compute/Calcul Canada national advanced research computing platform.

Speaker:

Dr. Pawel Pomorski
High Performance Computing Programming Specialist, SHARCNET and Compute Canada

Date and time:
Monday, November 24, 17:00 to 18:00

Location:
DMB-2A301

Abstract:

SHARCNET is a high performance computing (HPC) consortium offering advanced computing resources to universities and colleges across Ontario. These resources include large parallel computing clusters and systems with computational accelerators such as NVIDIA Tesla GPU and Intel Xeon Phi. This talk will provide an introduction to SHARCNET resources and how to obtain access to them. It will also broadly introduce the field of parallel high performance computing, and discuss its challenges and rewards.

Speaker biography:

Dr. Pawel Pomorski is currently a High Performance Computing Programming Specialist at SHARCNET and Compute Canada, based at the University of Waterloo. His scientific expertise covers the areas of condensed matter physics and biophysics. Dr. Pomorski received his Doctor of Philosophy degree in physics from McGill University in 2002, and his undergraduate degree from the University of Toronto in 1996.

For more information on this talk or the SHARCNET @ Conestoga Seminar Series, contact Dalibor Dvorski at ddvorski@conestogac.on.ca.

For more information on SHARCNET, see https://www.sharcnet.ca/my/about.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments 
formats

New text, resources for Java Enterprise Applications (Java EE)

javaee7bigpicture

The forthcoming Winter 2015 semester brings another offering of PROG3060, Java Enterprise Applications at Conestoga College and with it another set of technology and resource updates.

With Oracle’s purchase of Sun Microsystems, the bundling of Java EE, Eclipse, and the GlassFish application server is now called OEPE, the Oracle Enterprise Pack for Eclipse. The most recent edition of OEPE, which bundles the Luna version of Eclipse, is now available and includes support for both Tomcat 8.0 and JPA 2.1, so we will be moving to the Luna platform this winter.

Coinciding with this change, the new text for the course is by Danny Coward, now a Cloud Architect at Oracle, and is entitled “Java EE 7: The Big Picture“. The text covers the fundamentals of Java EE components and includes chapters on both JDBC and JPA as interfaces to underlying DBMS systems.

With the Luna edition of Eclipse in Oracle OEPE 12.1.3.2, we will also be upgrading some of the other software components used in the course:

  • Apache Tomcat 8.0.12
  • Java Hibernate 4.3.6
  • Apache Maven 3.2.3
  • Apache Derby 10.11.1.1

Additional resources

Some additional resources that students (and practitioners) may find useful are:

  • Eric Jendrock, Ricardo Cervera-Navarro, Ian Evans, Kim Hasse, and William Markito. The Java EE 7 Tutorial (Fifth Edition, 2014), Volumes 1 and 2. Addison-Wesley, Upper Saddle River, New Jersey. ISBN 978-0-321-99492-9 and 978-0-321-98008-3. Also available online at http://docs.oracle.com/javaee/7/tutorial/doc/home.htm.
  • Christian Bauer and Gavin King (2007). Java Persistence with Hibernate (Revised edition). Manning Publications. ISBN 1-932394-88-5.
  • Srinivas Guruzu and Gary Mak (2010). Hibernate Recipes: A Problem-Solution Approach. Apress Books, Berkeley, California. ISBN 978-1-4302-2796-0.
  • Mike Keith and Merrick Schincariol (2006). Pro EJB 3 Java Persistence API. Apress Books, Berkeley, California. ISBN 978-1-59059-645-6.
  • Mike Keith and Merrick Schincariol (2009). Pro JPA 2: Mastering the Java Persistence API. Apress Books, Berkeley, California. ISBN 978-1-4302-1956-9.
  • Graham Hamilton, Rick Cattell and Maydene Fisher (July 1997). JDBC Database Access with Java: A Tutorial and Annotated Reference. Addison-Wesley, Reading, Massachusetts. ISBN 0-201-30995-5.
  • Seth White, Maydene Fisher, Rick Cattell, Graham Hamilton and Mark Hapner (December 1999). JDBC API Tutorial and Reference, Second Edition. Addison-Wesley, Reading, Massachusetts. ISBN 0-201-143328-1.
  • Nicholas S. Williams (2014). Professional Java for Web Applications. Wrox Press, John Wiley and Sons, New York. ISBN 978-1-118-65646-4.
  • Antonio Goncalves (2010). Beginning Java EE6 Platform with Glassfish 3: From Novice to Professional. Second Edition. Apress Books, Berkeley, California. ISBN 978-1-4302-2889-9.
 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
No Comments  comments