soa and bea
TRANSCRIPT
AGILE Development for J2EE
Service-Oriented Architectures
Dave Fowler
5/19/2004
Agenda
Intro to SOA / SODA
How BEA enables SOA / SODA
Demo
SOA
SOA key concepts *:
Composite applications approaching a real-time model
Dynamic linkage
Support for services and solutions
Heterogeneity is here to stay!
End to end process synchronization
Multi-enterprise focus
Flexible, “open” (and still standards-based) IT architecture
Loosely-coupled architecture – reuse insisted
Building systems that can change!
* Gartner, et. al.
History of SOA
OOD (Object Oriented Development)
Abstraction of complexity – but not program context
CBD (Component Based Development)
Use of objects across programs
SODA (Service Oriented Development Architecture)
Use of components across processes
Services, Components … what’s the difference?
Services vs. Components
The difference is how much you need to know about how something works vs. what it does
Services and Components are complementary
The key is providing an easy, flexible way to reuse the components across multiple services
SODA
SODA key concepts:
Application integration must begin at design time – not after all the systems are completed
Building composite applications using services from different systems
“Assembly of parts, plus orchestration of flow”
Allow people to change process w/o breaking the whole
SODA is “application integration” for developers
APS and SOA / SODA
Gartner Recommends an Application Platform Suite (APS) to SOA / SODA. An APS will have tools for:
Visualization
Modeling
Fabrication
Assembly
Orchestration
Automation (hide complexity)
Modifiability
APS and SOA / SODA
An APS built for developer productivity: Controls based
Architecture assets as key enables of business value
Services decoupled from processes
Rapid construction of complex Web Services
Integrated unit testing
A single IDE environment for all the above
Modeling and Pattern Based Development
WebLogic Workshop at a Glance
Improved productivity for: Web applications
Web services
Controls
EJBs
Integration apps
Portals
Minimal J2EE knowledge required: Simplified approach to events,
properties, and controls
Ensures enterprise-class architecture
Events
Properties
Controls
It is easier to build any enterprise-class application
Use a visual, simplified development model and application framework
So that…Workshop allows you to…
Immediate Deployment and Testing
BEA WebLogic Workshop 8.1Application Framework
JMS EJBs JDBC
BEA WebLogic Platform 8.1Java Controls
Java Web Service
Java Page Flow
Visual Development
Standard Java with annotations
How does it work?
You can use a RAD approach without compromising enterprise architecture
Rapidly build applications with reusable J2EE components and architecture
So that…Workshop allows you to…
Implements applications on J2EE components
Enough Powerpoint!
Time to Demo
Supplemental Slides
Workshop IDE Features
Shared tools and palettes
Automatic support for two-way visual-source editing
Advanced source editing features
Fast, multi-language debugging
Shared project model
Source code control integration
Extensibility model for third parties
You can write code faster and work with existing team development tools
Use standard IDE features to speed coding, debugging and team development
So that…Workshop’s IDE allows you to…
Controls Framework
Workshop Controls Provide
A simple and common abstraction to all resources used by an application
A unified programming model across the platform
An extensible architecture (developers can create custom controls)
Workshop Controls: Unified Access to Resources
Custom Java Controls
Create Custom Control types
Custom Control SDK
Consume other Controls
Create reusable composite services
Add business logic
“Best practices in a box”
Expose selected APIs
Asynchronous communications
You can create reusable “best practices” services across many resources
Consume other Controls and add business logic to create composite services
So that…Custom Java Controls allow you to…
Controls for Portals
Web Services: Gartner’s take
Web Services: Bea’s Take
Enterprise-class Web services:
Asynchronous messaging
Loose-coupling with XQuery
WS-Security, reliable messaging, attachments, etc.
.NET Interoperability
JWS innovations being standardized via JSR 181
You can build enterprise-class Web services using a simplified approach
Build asynchronous, loosely-coupled, and coarse grained Web services
So that…Workshop allows you to…
Building Messaging-Based, Service-Oriented Applications in Workshop
Trigger Rules Transform & RouteIncoming Events Process
Events
ProcessesChannel
Channel
Channel
Message
Broker
You can anonymously propagate data in a loosely coupled & asynchronous way
Filter and route messages based on contents and process rules
So that…Allows you to…
Features of Workshop’s Messaging-Based, Service-Oriented Applications
JMS Based Messaging
Tuned implementation of Java Messaging Service (JMS)
Built-in reliability, failover, clustering
Hierarchical Channel Structure Supports XML & non XML messages
Anonymous Publish & Subscribe
Content Based Filtering
Subscribe to Multiple Channels
Dynamic Message Routing
Change message routing at run-time(Service Broker)
Event Generators
Timer, File, Email, JMS, EIS Systems
Unified Development Model
Content Based Filtering
Web Services and SOA
Key component, but can’t always be simple request/response
Must be conversational
Must be easy to reuse and integrate into other processes
Where does the portal fit in all this? What is it’s primary goal?
To surface SOA applications
Create custom-fit portals based upon user needs, not just a presentation layer of an existing application. Why? Because today’s complex applications are an aggregation of different processes – something now referred to as Process Portals
How is this different from other portals?
Traditional portals are just the presentation layer of an existing application
The portal is an extension of an application – hence the user has to know the application as well as the portal view
Real world “process portals” are designed with the user in mind – not the application. A custom fit portal is an extension of a service, not just an application. That service may require accessing multiple applications in a user-specific way. The portal should be flexible enough to surface the service the user needs, hiding the application(s) required to provide the service
Controls Abstraction: an example
So … we have reusable controls to multiple processes, but how do we utilize them?
Control
Control
Control
Tax Web service
PricingEJB
Order Entry Custom Control
createOrder
OrderResp
getAllCust EJB
Control
createOrder
OrderResp
getAllCust
Order Entry Web service
EJB
Order Management Processes
Database
EJB
WSPartners
Customers
Employees Employee Portal
Customer Portal
Partner Portal
Order Entry Web
Order Mgt Task-list
What is process orchestration and management? Why do it?
You can rapidly implement business requirements in a representative and adaptable way
Graphically design business processes that access systems, people and trading partners
So that…Allows you to …
Separate Process Logic from Implementation Logic
Common Visual Language
Easily Maintainable
Built in State Management
Business Process Monitoring
Unified Model for Process Automation & Human Workflow
What is process orchestration and management? Why do it?
High Productivity Modeling Tool Based on PD4J Standard
Awarded “Most Innovative JSR*” Graphical Drag and Drop Wizard based configuration
Native Support for Java, XML & nonXML One click to Java if/when required Reconciles Java, XML & non XML
Consistent, single environment For EAI, UI, B2B, Workflow &
Transformation Aimed at the non-specialist Application
Developer & Business Analyst
Process Templates Package as a Control for re-use and
portability
Wizard Based Development
Native XML Support
* Java Community Process(SM)
How can you access and leverage your enterprise resources?
Consistent Model for:
Application Integration
Standard J2CA Adapters
Custom Adapters or Custom Controls
Business User Integration
Unified Model
Task Based System
Enables Critical Decision Making
Trading Partner Integration
Unified Model
ebXML, Rosettanet, Web Services
Business Users
Trading Partners
Applications
Summary
Automate Processes by Orchestrating Resources Automated “Order Management” process
Access Diverse Enterprise Resources Accessed Packaged Apps, Custom Apps and End Users
Transform Data from one format to another Transform from App Specific format to a Common Object
format
Create loosely coupled message based architectures Publish to multiple Subscribers
Access Aggregated Data from Disparate Resources Accessed Unified Customer View for Order Approver
Monitor and Manage Automated Processes Monitored Long Running Process & Workflow Tasks