Sei sulla pagina 1di 38

Introducing BEA

WebLogic
Workshop

Wes Hewatt
Systems Engineer
Dev2dev
Developer User Groups

Program Overview
Melissa Chaika, Developer Marketing Manager
Marc Duclos, Southern Region Field Marketing Manager
Developer User Groups
Membership Overview
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Membership is open to all BEA software users or interested parties


living or working in the group’s geographical area
• The group provides a forum for networking, education and support on
BEA technologies
• Benefits:
– Gain exclusive access to developer-focused information and
resources
– Learn about technologies before they’re released
– Receive additional technical support
– Hear from industry leaders and BEA experts on topics of interest
– Receive discounts on BEA-related books, magazines and other
publications
– Get discounts on BEA-related developer events and training
sessions
– Network with other BEA developers in your community!
Developer User Groups
Leadership requirements
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Group will be independently run, though with support from BEA


Field Marketing and Developer Marketing
• Groups will be run by volunteer boards, at least half of whom
must be BEA users or customers
• One leader or president will serve as primary liaison to local field
marketing representative. Group leader must possess:
• A working knowledge of BEA and its technologies
• A knowledge of and commitment to the developer
community
Developer User Groups
Visibility and Support
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Visibility
– Opportunities for your User Group to network with other groups at
BEA eWorld and other events.
– Invitations (as appropriate) to speak at and/or provide content for
local and national BEA events.
– Help in promoting your User Group to other developers
• Group support
– Promotion of all group activities, including events, meetings and
workshops on the BEA Dev2Dev site, with a reach of over 400,000
BEA developers. Information will include details on how to join your
group.
– BEA will help attract local developers—will help build local
database and will assist in disseminating email invitations
– Some funding available for meeting spaces, etc
Agenda
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• What is BEA WebLogic Workshop?


• What are Enterprise Class Web Services?
• Workshop Key Concepts
• Demo
What is BEA WebLogic Workshop?
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• BEA WebLogic Workshop is a new integrated


development framework for the BEA WebLogic
Platform
– WebLogic Workshop makes it incredibly simple for
application developers to build enterprise class web
services
– WebLogic Workshop enables teams of developers with
different skill sets to utilize the proven reliability and
scalability of BEA WebLogic Server
Workshop Makes it Simple
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Building applications on the J2EE platform is hard


– Highly object oriented
– Need to understand the J2EE component model just to build
simple applications
– Many rich and complex APIs – overkill for most common cases
– All the low level details are exposed
– Deploying applications is tedious and time consuming

• Workshop puts the focus on application logic


– Visual metaphor for building web services
– Declarative, annotated code exposes web service functionality
– Server-side controls encapsulate J2EE APIs
– Plumbing code managed by runtime framework
Enterprise Class Web Services
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• What is a Web Service?


– A software component or application exposed through
standard XML and Internet protocols

• Three key standards


– Simple Object Access Protocol (SOAP)
– Web Services Definition Language (WSDL)
– Universal Description, Discovery, and Integration (UDDI)

• The “stock quote” example


SOAP
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
• Simple Object Access Protocol (SOAP):
– is an XML-based protocol for sending documents and/or
invoking remote objects
– is embedded in HTTP, SMTP, FTP
– uses and envelope format with a header / body
AASOAP
SOAPSnippet
Snippet(abbreviated
(abbreviatedfor
forreadability):
readability):
POST
POST /StockQuote
/StockQuote
Host:
Host: www.stockquoteserver.com
www.stockquoteserver.com
Content-Type:
Content-Type: text/xml;
text/xml; charset="utf-8"
charset="utf-8"
SOAPAction: "Some-URI"
SOAPAction: "Some-URI"

<SOAP-ENV:Envelope
<SOAP-ENV:Envelope
<SOAP-ENV:Body>
<SOAP-ENV:Body>
<m:GetLastTradePrice
<m:GetLastTradePrice xmlns:m="Some-URI">
xmlns:m="Some-URI">
<symbol>DIS</symbol>
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</SOAP-ENV:Envelope>
WSDL
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Web Services Description Language (WSDL):


– defines an XML grammar for describing network services
• the messages that they accept
• the format of the messages and the content they contain
• the conversational nature of an “endpoint”
• where the web service is hosted
• the protocol the web service is using
– serves as a recipe for automating the details in application
communication
What is UDDI Anyway?
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Universal Description, Discovery and Integration:


– is a group of web-based registries that expose information
about a business
– can be thought of as DNS for B2B
– has a series of Operator Sites that offer “top-level” global
service management
– answers the “who, what, where, and how” of B2B services
Enterprise Class Web Services
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• The common understanding of web services is


limited
– “Function calls over the internet”
• Simple, synchronous, request-response model

• This is interesting, but only the tip of the iceberg


Enterprise Class Web Services
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• The potential is to solve previously un-addressed


integration problems in the enterprise
• Requirements
– Standards based
– Business level integration
– Flexible architecture designed for extensibility and change
– Accommodate internal and external integration
Three Key Principles
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• There are three key principles to building Enterprise


Web Services
– Loosely coupled
• Interfaces change over time
– Coarse Grained
• Integration at the business document level
– Asynchronous
• Participate in conversations
Enterprise Class Web Services
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Web Services can support enterprise architectures


• You need the right programming model to make it
easy to build applications this way
– Many moving parts at the standards layer
• SOAP, WSDL, UDDI
– Things to consider
• Loose coupling, coarse grained, asynchronous
• You need a reliable, available, scalable platform that
lets you deploy these web services in the enterprise
– Transactions
– Message queues
– Caching
– Connection pooling
BEA WebLogic Workshop IDE
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Java development framework for Web Services


– Visual representation of web service
– Intuitive UI based on controls with properties
– Debugger
– Creates a JWS file that defines the business logic of a Web
Service
JWS Files
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Java Web Service (JWS) files


– Standard Java class definitions with additional annotations in
the JavaDoc syntax
– Declaratively specify additional functionality
• Asynchrony, message queuing, protocols, XML/Java mapping
– Working actively with the Java community to standardize
JWS format – JSR 181

/**
* @jws:operation
* @jws:conversation phase=“start”
* @jws:message-buffer enable=“true”
*/
public void getQuote(int age, String gender, String ssn, int policyAmount)
BEA WebLogic Workshop Runtime
Framework
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Reads the JWS files and generates the Web Service


– JSP like model
– Automatically handles deployment
– Automatically generates test environment, creates WSDL
description, Java proxy
– Standard EJB/J2EE “under the hood”

• JWS annotations are where the tool and framework


meet
Workshop Architecture
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

Workshop
Workshop
Run-time
Run-timeFramework
Framework

JMS EJBs JDBC


JWS
JWSFile
File
Java
Javacode
code
Annotation
Annotation BEA
BEAWebLogic
WebLogic Server
Server

Design Time Run-Time


BEA WebLogic Workshop Value
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• A standard Java environment that allows developers of all skill


sets to take advantage of J2EE
• A smooth ramp from application developers to enterprise
architects
– Reduce pain of rebuilding applications when they “hit the wall”
– Enable non-Java experts to easily utilize Java components and resources
• An approach and programming model that makes it easy to fully
leverage the power of Web Services
• A way to maximize the development organization
– One standard platform (everyone can play on J2EE)
– Enables developers to focus on skill appropriate tasks
– Reduce support, training, operations burden on IT
Demo
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

Request Quote Policy


Quotation
Get Health Records
Web
Return Quote
Service
Agent Health
Records
Service

Get Life Expectancy Get Policy Price

Life Pricing
Expectancy Engine
DB
Questions?
Cajun Architecture
Drilldown
JWS: Java Web Service
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• JWS files are standard Java code with Cajun


Javadoc extensions

• Javadoc is an unobtrusive way to extend Java


without changing the language
– Simple
– Rich in semantic meaning (use a message buffer, make this
conversational)
– Tells the IDE what to display
– Tells the runtime what is needed to implement and run

• Working to make JWS a J2EE standard – JSR 181


The Power of JWS
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

/**
** @jws:operation
@jws:operation
** @jws:conversation
@jws:conversation phase=“start”
phase=“start”
** @jws:message-buffer
@jws:message-buffer enable=“true”
enable=“true”
*/
public void getQuote(int age, String gender, String ssn, int policyAmount)

Use the Power of J2EE


Manage Conversations
• Create Scaleable Web Services
Easily Create Web Services • Easily Leverage JNDI, JMS
• Manage State (Entity Beans)
• Seamless Message Correlation
• Create an Object
• Create a Bean • Connect to Databases (JDBC)
• SOAP Marshalling 80 Lines
• Read / Write WSDL
50 Lines
• XML Parsing
• …All in One Tool! 80 Lines
JWS makes Web Services Easy
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Built-in functionality for web services includes

– Easy access to the Data: Javadoc lets you work with the
shape of your XML contract precisely. They give you support
for WSDL, SOAP, XML binding without forcing you to go to a
separate metadata tool.

– Asynchronous Conversations: Javadocs let you build


conversational applications easily. They give you support for
conversation IDs for persistence, polling and callbacks, and
they give you the ability to use reliable queuing without
forcing you to program in a different framework.
Cajun Runtime Framework
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Run time framework picks up JWS files and makes


them work
– Write and Run deployment (like JSPs)
– Generates EJBs, creates message queues
– Controls are instantiated, and control callbacks hooked up
– Automatic test view generation
• Many details handled by framework libraries
– XML/SOAP/WSDL manipulation, XML maps, etc.
• JWS files renamed to .java files and compiled
• Standard deployed beans call into business logic
Cajun Runtime Framework
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Generated code depends on sophistication of service


– Need state, generate an EJB…
– Need queues, generate MDB…
Cajun Runtime Framework
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• In general, for each JWS Workshop generates…


• Stateless session bean handles web service dispatch
– Takes incoming messages (via http, JMS, etc.) and routes
them to appropriate method in JWS
• Entity bean manages web service state
– In conversational web services, any member variables are
persisted via an entity bean
• Single message queue is created to support
– Message buffers, timer controls
• Message driven bean to support message buffers
Cajun Runtime Framework
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• The runtime framework also handles many issues not


directly related to deploying a web service
– Debugging (remote debugging against deployed web
service)
– Conversion from JWS to CTRL or WSDL and visa versa
– Providing design time errors to the tool
– Provides default map definition for map editor
– …Anything that has to do with manipulating JWS files
Cajun Controls
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• JWS files let you access Cajun controls (defined in


CTRL files)
– Easy way of getting at other resources in an enterprise
(databases, applications, services, EJBs, queues, etc.)
– Simplifies (for the 80% case) with properties and methods

• CTRL files are extensible – just a Java interface


– Use javadoc to edit Java/XML binding
– Use javadoc to customize sql queries to a DB

• Opportunities for third parties to build controls


Cajun Controls
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Controls submerge a lot of typical plumbing

– Creation, customization, and location is simplified: use a


control and write a line of javadoc, and the field is filled in.

– Callback hookup is simplified: use a naming convention;


when a control is instantiated, its callbacks are hooked up.
XML Data
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Problem: Programming with XML directly is too


clumsy

• Prior approach: Automatic data binding


– SOAP – “RPC via XML”
– XML Schema – “XML data types”
– WSDL – “IDL for XML data”
– JAXB – “Java-XML type serialization”

• But… Where is the data?


– The RPC trap: hiding the data means exposing the system
implementation, and results in fragile integration.
– Just the opposite of the loose coupling that is required!
Cajun XML Maps to the rescue
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Cajun XML maps and XML script let you engineer the
data explicitly for robustness, but leave as many
binding details as you want to a runtime engine for
convenience.
/** @input xml::
* <order>
* <item xm:multiple=“item in items”>
* <description>{item.desc}</description>
* <quantity>{item.qty}</quantity>
* </item>
* </order>::
*/
void acceptOrder(LineItem[] items);
Cajun XML Maps
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Designed for ease of use


– Template oriented approach, not based on XSLT or schema

• But powerful as well – XML Script


– Ability to call out into java script to generate complex data
types or XML structures
– Perform data transformation
– Perform complex structural transformation
Summary: Key Challenges
Tackled by Cajun
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

• Many developers struggle with J2EE development.


• Complex APIs like JNDI, JMS, etc., are overkill for
some development problems.
• High-end developers are often called on to “rescue”
applications when they reach a wall.
• No programming model or framework for easily
constructing web services that are:
– Asynchronous
– loosely-coupled
– coarse-grained
Questions?

Potrebbero piacerti anche