• No results found

Java, SOA and Open source

N/A
N/A
Protected

Academic year: 2021

Share "Java, SOA and Open source"

Copied!
11
0
0

Loading.... (view fulltext now)

Full text

(1)

29/11/2005 © 2006 IBM Corporation

Java, SOA and Open source

Jouko Ruuskanen

Senior IT Architect

IBM Software

Agenda

ƒ

Is Java Dead?

ƒ

SOA and Business Driven Development

ƒ

Java platform vs Microsoft

ƒ

Java and SOA

(2)

Tiobe Programming Language Index

http://www.tiobe.com/tiobe_index/index.htm The TIOBE Programming Community index gives an indication of the popularity of programming languages. The index is updated once a month. The ratings are based on the world-wide availability of skilled engineers, courses and third party vendors. The popular search engines Google, MSN, and Yahoo! are used to calculate the ratings. Observe that the TIOBE index is not about the bestprogramming language or the language in which most lines of codehave been written.

Use of Java EE for Development in SMBs up by 50% in Last Six Months

According to New SMB Development Survey - Jan. 24, 2006

JDJ News

ƒ A New Evans Data Survey reveals that

sixty percent of SMB developers will

target Java/J2SE/Java EE at least some of the time this year and 20% are

spending the majority of their time developing in Java

. Next year Java

development is expected to grow to almost 70% of the SMB development population with 35% dedicating the majority of their time to development using Java.

"Developers in SMBs do not have as many resources or the budgets that larger development shops have, so they need to go with what works now, not what they can learn and put into use six months or a year from now.

Java works, it has worked

for a long time and there's a tremendous body of knowledge and

expertise surrounding the technology

," said John Andrews, president of Evans

Data.

"The race to market is critical for the SMB developer and, by using

Java, they are able to meet their deadlines and budgetary restraints."

(3)

Eclipse

ƒ Since this day in 2001, when IBM made available the source code for the Eclipse platform under an open source license at eclipse.org, Eclipse has grown to include 66 open source projects and is the basis for more than 1,300 products. ƒ According to IDC, Eclipse is the market leading Java IDE with 2.27 million users

worldwide, which demonstrates a remarkable level of support for open source innovation and collaboration.

ƒ The initial eclipse.org consortium grew quickly from an 8-member group including IBM and Rational Software, to today's 152-member-strong Eclipse Foundation. ƒ Java Development Tools (Java IDE) with its incremental compiler, the Standard

Widget Toolkit (SWT) and the Eclipse platform as a more general Rich Client Platform (RCP) are among the many innovations made possible by Eclipse. ƒ Within IBM SWG, Eclipse has been adopted as the open source development

platform across all our brands, and today more than 100 IBM products are based on Eclipse

ƒ The Eclipse Process Framework (EPF) is a resource for guidance on software development stemming from IBM's contribution of portions of the Rational Unified Process to the Eclipse Foundation. It comes as no surprise that the EPF has emerged as a widely trusted source for developers worldwide, with thousands of downloads recorded since the first EPF assets became available in February 2006.

Magic Quadrant for OOA&D Tools, 2H06 to 1H07

(4)

Developer productivity

ƒ

Numerous attempts to compare productivity

through scenarios has been made

ƒ

Results from the latest survey by Branham

Group (1H/2006):

– Challenge: Make online solutions for an insurance company, that solely operates over the Internet

– IBM’s tools were more productive in 7 out of 8 areas

– Microsoft were unable to deliver half of the requirements

– Wizards reduces the need for manual coding in IBM solutions. Three times more manual coding required in Microsoft solutions

– IBM solutions are easier to test

– IBM offers a broader set of tools

– Microsofts solution required more components making the solution harder to understand and manage

– Several central elements have to be handcoded in a Microsoft solution

What is Service-Oriented Architecture (SOA) ?

§

SOA is different things to different people

:

a set of services that a business wants to expose to their

customers and partners, or other portions of the organization

an architectural style which requires a service provider, requestor

and a service description

a set of architectural principles, patterns and criteria which

address characteristics such as

modularity, encapsulation, loose

coupling, separation of concerns, reuse, composability

a programming model complete with standards, tools and

technologies such as Web Services

A middleware solution optimized for service assembly,

orchestration, monitoring, an management

Business Executive, Analyst Architect Developer IT Architect Software and System Developer

And of course not everything needs to be SOA based…

–real time systems

–sometimes there’s no need for integration (homogenous environments)

(5)

SOA Reference Architecture: ESB Positioning

Apps & In fo Assets

Business Innovation & Optimization Services

De

velopment Services

Interaction Services Process Services Information Services

Partner Services Business App Services Access Services

Integrated environment for design and creation of solution assets Manage and secure services, applications & resources Facilitates better decision-making

with real-time business information

Enables collaboration between people, processes & information

Orchestrate and automate business

processes

Manages diverse data and content in a

unified manner

Connect with trading partners

Build on a robust, scaleable, and secure services environment

Facilitates interactions with existing information

and application assets ESB

Facilitates communication between services

IT Serv ice Manageme n t Infrastructure Services Optimizes throughput, availability and performance

SOA and BPM

ƒ Benefits of implementing SOA are realized at the business level

– SOA gives flexibility to business processes

– SOA services should ideally be business level services, owned and governed by business, not IT

ƒ Business is probably not interested in how and where the services are implemented

ƒ Business is interested in fexibility, reliability, and ROI

ƒ While both .Net and Java can be used to implement business SOA services, Java gives even more reliability, flexibility, scalalibility, productivity - and independency of vendors

“Innovation is not only about new product development, it's about innovating new processesand innovating new business

(6)

models.”-BDD for SOA in the Larger Context

Business Analyst Document Business Strategy Capture Business Goals, Objectives and Requirements Trace Business Objectives, Requirements & Create Business Use Case Outlines Trace Requirements & Architect System

Use Case Realizations Create & Manage

System Requirements and Use Cases

Architect Model Services Project Manager Business Strategist Understand Risk, Project Costs, and ROI

Identify and Manage Projects and Resources Database Developer Deploy/Run Monitor Business Operations Manager Runtime ƒProcess Server ƒPortal ƒBusiness Monitor EAR Team Unifying Platform

Choreograph services using BPEL, WSDL, etc. Configure Human Task Manager (including Ad-Hoc) & Client

Use Business Rules, State Machines, Web Services,

Adapters, ESB, etc. Integration Developer

Tester Verify Quality Implement Services, & expose as (Web) Services Developer Develop Portlets (App UI and Monitor) Create Financial Reports & ROI Estimates Create, Simulate & Analyze As-Is Business Model Create Observation Model with KPIs & export to Monitor Create, Simulate, Analyze and Optimize To-Be Business Model Run-time Statistics

Microsoft SOA

ƒ

Microsoft barely acknowledges SOA in their marketing

true SOA is really a threat to MS!

ƒ

Microsoft truly believes it’s the only ”standard”

Web Services may be one of the few exceptions

ƒ

Microsoft tools

guide delevelopers towards increasingly proprietary technologies

weak business modeling tools (Visio + ODBA Plugin)

ƒ

Tight Windows integration

MS pushes enterprise functionality into the OS layer

• ”ESB” is Windows (WCF)!

(7)

Windows Communication

Foundation

Point to point communication model – not a brokered network, not an ESB (Need BizTalk for ESB-like functionality)

ƒ WCF is a library of .NET classes – not an application or a server

– To use it, you write code and host (or control the hosting of) the service

ƒ Now Microsoft has 4 competing styles of asynchronous messaging, each with its own set of capabilities and management procedures • Native MSMQ • BizTalk MSMQT • WCF asynchronous messaging • SQL Server 2005 Service Broker

ƒ WWF is a library of .Net classes – not an application or a server

ƒ You have to "host" the workflow engine in your own application, instantiate workflow instances, manage the instances, etc.

– This involves writing detailed, low-level code

– There is no WWF server, no WWF management console, etc.

ƒ There is no built-in support for human workflow

ƒ Invoking a workflow, invoking a web service, and invoking a .Net class method are all done differently – there isn’t an overall “service” concept

ƒ In spite of the Microsoft’s tenets of Service Orientation, you pass classes to the workflow, not documents or schemas

ƒ Targeted towards “product” developers, not “application” developers

Windows Workflow

Foundation

Java and SOA

ƒ Java is a first-class candidate for building SOA solutions

– J2EE is based on industry standards and supported by all other major ISV’s

– Broad platform support – required by customers

– Scalability, high availability and failover support is build into the model

– Community lead (JCP)

– Access to back-end systems provided through standard Jave connectors

– Multi year experience building secure systems on J2EE technology

– J2EE solutions can be build with a long range of commercial as well as free tools.

– The Eclipse framework allows vendors to place their tools inside a known and managed framework

– No Windows security issues and patch management problems

– Incremental, generally backwards compatible platforms

ƒ JBI

– IBM & BEA have their own ESBs

ƒ Services

(8)

Open SOA industry alliance – www.osoa.org

Two main projects:

– Service Component Architecture (SCA)

• aims to provide a model for the creation of service components in a wide range of languages and a model for assembling service components into a business solution

– Service Data Objects (SDO)

• aims to provide consistent means of handling data within applications, whatever its source or format may be

ƒ

SCA and SDO used together provide a powerful and flexible way of

building applications around a service-oriented architecture.

Service Component Architecture (SCA)

ƒ Can be compared to WCF

– both provide a base for SOA

• bindings, annotations/attributes, WS, call styles etc

– SCA differences

• dependencies: module wiring

• supports many languages (but does not require WCF or CLR…)

• can use SDOs, whereas WCF binds you to… WCF

ƒ Implementations

– SCA: Hydra/Rogue Wave, WAS 6.1, WPS 6.0/IBM,EDA Suite/Oracle…

– SDO: BEA Aqualogic DS, IBM WAS, SAP NetWeaver, Roque Wave HydraSDO..

– Open Source: Tuscany project

(Apache), Eclipse SOA Tools Platform, SOA PHP

(9)

Java EE 5

ƒ

It’s about simplification… J2EE has indeed become complex

– complexity is why Spring was born…

– Most boilerplate requirements have been eliminated, and XML descriptors are now optional. For example, the ejb-jar.xml descriptor is no longer necessary in most cases.

– More defaults are available, with a special emphasis on making them meaningful. – Developers now have fewer details to remember.

– Web service support is simpler, and the number of supported standards has increased.

– The EJB software programming model is significantly simpler.

– The new Java Persistence API is available to all Java platform applications, including those based on EJB technology.

– JavaServer Faces technology has been added to make web application design more convenient.

Java EE 5 simplified programming model

ƒ

@Annotations

metadata – ”instructions” - embedded in code

• code generation

• deployment information

can be used for:

• Defining and using web services • Developing EJB software applications • Mapping Java technology classes to XML • Mapping Java technology classes to databases • Mapping methods to operations

• Specifying external dependencies • Specifying deployment information,

including security attributes – extensible

@WebService

public class HelloServiceBean { public String sayHello(String name) {

return "Hello "+ name + " from HelloServiceBean"; }

(10)

Comparison EJB 3.0 vs. 2.1

@Stateless

public class PayrollBeanimplements Payroll {

@Resource private DataSource empDB; public void setBenefitsDeduction(int empId,

double deduction) { ...

Connection conn = empDB.getConnection(); ...

} ... }

public class PayrollBean

implements javax.ejb.SessionBean { SessionContext ctx;

DataSource empDB;

public void setSessionContext(SessionContext ctx) { this.ctx = ctx;

}

public void ejbCreate() {

empDB = (DataSource)ctx.lookup("jdbc/empDB"); }

public void ejbActivate() { } public void ejbPassivate() { } public void ejbRemove() { }

public void setBenefitsDeduction(int empId, double deduction) {

...

Connection conn = empDB.getConnection(); ...

} ... }

Summary of findings

(11)

Java as Open Source

ƒ

OpenJDK, GlassFish & Mobile

ƒ

Good software is good software regardless of the licensing model

ƒ

JCP was and still is more of an industry group building standards

ƒ

Standards enable multiple implementations of a given technology

ƒ

True standards come from shared knowledge

ƒ

Some benefits

more people see the code, and it is used and tested more widely

• quality is likely to improve

enables new innovation

Java EE 5 and other frameworks

ƒ In the beginning there was nothing: no Java and no data.

ƒ Then someone said, let there be data and relational databases with SQL were born.

ƒ And someone said, let Java talk to databases, and JDBC was born.

ƒ And someone saw that JDBC was good, but someone else saw that JDBC was bad, and EJB with CMP were created.

ƒ And someone said, J2EE containers are bad and POJO has resurrected.

ƒ And entity beans were slow and heavy; Hibernate was born and people forgot SQL, which was a sin.

ƒ And someone said, J2EE is no good, and he divided Spring framework from J2EE.

ƒ And fifty more people said nothing is good, and they created fifty more Java frameworks. And poor Java Joe said, "I'm sick and tired of this variety. I'm going back to Java EE.“

ƒ And so he did and created Java EE 1.5 and it was good. Perhaps it was not the best, but it gave people a common ground and fertile soil for seeds of a new generation of enterprise Java applications

References

Related documents

“Policymakers and health industry stakeholders across the country and across the political spectrum understand the critical role that health IT plays in achieving better

Whilst this particular submission relates to the application of Smart ICT to improve the design and planning of Infrastructure, Bentley Systems does not believe that the

This article will consider the existing literature on employee incen- tives as well as the literature on tourist motivations and will bring together management and tourism

A control transfer is meant to retrieve and send information regarding device configuration and device status in class-specific and vendor-specific devices and is

The animals pretreated with the extract at a dose of 500 mg/kg orally showed a significant reduction in intestinal transit induced by carbachol (muscarinic receptor agonist),

The ethyl acetate extract of nut grass tuber shows the highest antibacterial activity indicated by satisfactory inhibition on the growth of Shigella dysenteriae with the MIC

Below, we address our first two research questions – the overall approach(es) in local and national coverage of white people calling 911 on black individuals and the use of

• The linear model constrains the response to have either a zero probability or a probability of one at large or small values of the regressor. This model may