DecisionSoft Java in the real world DecisionSoft Stephen White 8 th February 2007.

Slides:



Advertisements
Similar presentations
Java Servlet & JSP © copyright 2005 SNU OOPSLA Lab.
Advertisements

Google Web Toolkit - Gufran Mohammed. Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications.
6/11/2015Page 1 Web Services-based Distributed System B. Ramamurthy.
Introduction to Java Programming
Trey Mack James Moore Osa Osar-Emokpae
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
CMSC 202 Computer Science II for Majors Fall 2009 Introduction.
Introduction to Java Programming. Contents 1. Java, etc. 2. Java's Advantages 3. Java's Disadvantages 4. Types of Java Code 5. Java Bytecodes 6. Steps.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
+ Java vs. Javascript Jessi Style. + Java Compiled Can stand on its own Written once, run anywhere Two-stage debugging Java is an Object Oriented Programming.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
1 Lecture 22 George Koutsogiannakis Summer 2011 CS441 CURRENT TOPICS IN PROGRAMMING LANGUAGES.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Lecturer PEN PHIROM Tel : Web site: Lecturer PEN PHIROM Tel :
Lesley Bross, August 29, 2010 ArcGIS 10 add-in glossary.
Programming Fundamentals 2: Background/ F II Objectives – –give a non-technical overview of Java Semester 2, Background.
Session One Introduction. Personal Introduction Role of programmers Robot Examination HUD & HID Uploading Code.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Java Introduction to JNI Prepared by Humaira Siddiqui.
© 2006 IBM Corporation JDojo & ScriptEngine Agile Planning’s Scripting Tools.
This is delicious cookie you must eat. :O~. Problem Domain Designed to be Reliable, high-performance and secure Comfortable and familiar to Java-language.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Computer Programming 2 Why do we study Java….. Java is Simple It has none of the following: operator overloading, header files, pre- processor, pointer.
We will talking about story of JAVA language. By Kristsada Songpartom.
Java Servlets and Java Server Pages Norman White Stern School of Business.
PHP vs. Python. Similarities are interpreted, high level languages with dynamic typing are Open Source are supported by large developer communities are.
introductory lecture on java programming
Java – in context Main Features From Sun Microsystems ‘White Paper’
Java Servlets and Java Server Pages
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
ITP 109 Week 2 Trina Gregory Introduction to Java.
Programming for Interactivity Professor Bill Tomlinson Tuesday & Wednesday 6:00-7:50pm Fall 2005.
Introduction to Programming 1 1 2Introduction to Java.
The Java API for XML-Based Web Services. A Web Service example in Java SOAP-awareServlet (e.g. Apache Axis2) SOAP-awareServlet Any class processing the.
SESSION 1 Introduction in Java. Objectives Introduce classes and objects Starting with Java Introduce JDK Writing a simple Java program Using comments.
 It is a pure oops language and a high level language.  It was developed at sun microsystems by James Gosling.
CMSC 202 Computer Science II for Majors Fall 2010 Introduction Version 9/101.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Introduction CMSC 202 Fall Instructors Mr. Ryan Bergeron – Lecture Section 01 Tues/Thu 1:00 – 2:15 am, Sondheim 111 – Lecture Section 04 Tues/Thu.
CS-140 Dick Steflik Lecture 3. Java C++ Interpreted optimized for the internet Runs on virtual ized machine Derived from C++ Good object model Widely.
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
Top 8 Best Programming Languages To Learn
ITM352 PHP and Dynamic Web Pages: Server Side Processing 1.
Chapter 5 Remote Procedure Call
Web Services-JAX-RPC JAX-RPC enables a Web Service endpoint to be developed using either a Java Servlet or Enterprise JavaBeans (EJB) component model.
Outline SOAP and Web Services in relation to Distributed Objects
Java Programming Language
Ch 1. A Python Q&A Session Bernard Chen 2007.
Google Web Toolkit - Gufran Mohammed
Web Applications Security What are web Applications?
Haritha Dasari Josue Balandrano Coronel -
Outline SOAP and Web Services in relation to Distributed Objects
Introduction Enosis Learning.
SharePoint-Hosted Apps and JavaScript
Introduction Enosis Learning.
Computer Based Adaptive Testing
Units with – James tedder
Units with – James tedder
(Computer fundamental Lab)
Distributed System using Web Services
Java History, Editions, Version Features
F II 1. Background Objectives
Introducing Java.
Java Remote Method Invocation
Interpreting Java Program Runtimes
Distributed System using Web Services
Plug-In Architecture Pattern
Presentation transcript:

DecisionSoft Java in the real world DecisionSoft Stephen White 8 th February 2007

DecisionSoft Plan About the Company (brief!) What we use Java for Why we use Java What we're looking forward to in Java 6

DecisionSoft About DecisionSoft Based in Oxford Developing XML Tools since 1997 Provider of XBRL Services & Components In partnership with Business Wire, formed CoreFiling Ltd as a dedicated XBRL company Customers include HMRC, Companies House, Dutch Government, and others

DecisionSoft So... Java? All major current development projects are written in Java Includes server and client applications: – Desktop XBRL validator – Desktop XBRL development tool – Enterprise/server XBRL validator – Web applications

DecisionSoft Why Java? Clean Language There are fewer ways to accidentally shoot yourself in the foot in Java than in some of the obvious alternatives (e.g. C/C++) Often easier to debug This means more time writing productive (and interesting) code Why do I think its cleaner...

DecisionSoft Why Java? Clean Language High level, OO language Runtime bounds & cast checking Java doesn't have #define or operator overloading C++ has many mis-features (e.g. Problems caused by Array/pointer duality) that cause bugs

DecisionSoft Why Java? Memory Management Bit of a contentious issue whether garbage collection is a good thing but... C++ memory management is hard

DecisionSoft Why Java? Libraries High quality standard library – one of the original selling points of Java Lots of free and OpenSource libraries available For example: – Xerces (now a standard part of the JRE) – Lucene

DecisionSoft Why Java? Tools IDEs – Eclipse (free) – IDEA Code coverage tools, debuggers, profilers

DecisionSoft Why Java? Portability Portability comes for free (almost) Java includes portable APIs for: – GUIs – Networking – File handling –...

DecisionSoft Surely it isn't all good There are problems, or perceived problems: – Performance – JRE isn't properly free – yet – Lack of language features – Isn't actually as portable as C can be – Platform integration – The.NET framework provides some of the same features

DecisionSoft Bad? Performance True: – Trying to use SWING applications on a i486 was painful – Writing nice code can result in lots of tiny Objects, this isn't fast in any language – Garbage collection delays – JVM startup overhead But the JVM is actually really fast

DecisionSoft It isn't free? Has always been free to download/install Source has been available for a while, but under a restrictive licence You can now 'apt-get install sun-java5-jre' Sun are working towards releasing under GPL There are other JVM implementations

DecisionSoft Java 5 Performance improvements Generics Annotations Dynamic generation of RMI stubs JAXP improvements

DecisionSoft Java 6 Performance & compatibility enhancements Web services support SWING/GUI improvements Scripting support XML API extensions, including StAX Extra security related APIs Compiler API

DecisionSoft Performance & Compatibility Faster, our benchmarks (based on part of our real codebase) run 20% faster on Java 6 Vista support

DecisionSoft Web Services Defines annotations to describe how to convert a class into a web service Can be deployed using a built-in web server for testing, or on an application server Standard approach should lead to greater interoperability between IDEs

DecisionSoft Web Services – Simple Example package fromjava.server; import public class AddNumbersImpl { public int addNumbers(int number1, int number2) throws AddNumbersException { if (number1 < 0 || number2 < 0) { throw new AddNumbersException("Negative number cant be added!", "Numbers: " + number1 + ", " + number2); } return number1 + number2; }

DecisionSoft Web Services – Real Example use=SOAPBinding.Use.LITERAL) public class NtpValidator public String final String fileContent) throws MalformedURLException, IOException {... }

DecisionSoft Web Services – Test & Deploy Nice and easy to test... public static void main(String[] args){ NtpValidator validator = new NtpValidator(); Endpoint endpoint = Endpoint.publish(" validator); } Also easy to deploy on an application server using J2EE 5 or by including the JAX-WS libraries

DecisionSoft SWING (and other GUI things) Improved Look and Feel implementations Sortable tables (see SwingSet2 demo) SwingWorker Rendering improvements Splash screen support System tray support

DecisionSoft SWING - SwingWorker SwingWorker worker = new SwingWorker () public String doInBackground() { return myReallySlowMethod(); public void done() { _textField.setText(get()); }

DecisionSoft Scripting Very similar to the Apache BSF, but included as standard JavaScript interpreter included as standard E.g. alert("Hello in JavaScript"); javax.swing.JOptionPane.showMessageDialog( null, "Hello SWING World", "A Title", javax.swing.JOptionPane.ERROR_MESSAGE);

DecisionSoft References /usr/lib/jvm/java-6-sun/demo/