340 likes | 485 Views
Web Services Done Right Done Quickly. Matthew Fowler New Technology/ enterprise Ltd London. Agenda. NT/e's Experience Architecture for Web Services JeeWiz - A J2EE System Generator. NT/ e ’s Experience with BEA. 40 Projects on behalf of BEA All sizes - very large to small
E N D
Web ServicesDone RightDone Quickly Matthew Fowler New Technology/enterprise Ltd London
Agenda NT/e's Experience Architecture for Web Services JeeWiz - A J2EE System Generator
NT/e’s Experience with BEA 40 Projects on behalf of BEA All sizes - very large to small All roles - architect to deployer All stages - Proof Of Concept to go-live WLS Training - Development, Admin WLS 4.0 -> WLS 6.1 WLC, WLPI, WLCS
Some Projects Banks: Deutsche, Dresdner, UBS Warburg Finance: Capital One, EBRD, Crest Comms: British Telecom, Nokia, Equant FT100: BA, BP Amoco, Sainsburys Others: FT, TAG Maclaren, Jumpy, Vizzavi BEA Partners: Accenture, CSC, Scient
Part 2.Architecture for Web Services The Background - BT Project The Battles The Principles The Architecture - A Synthesis
British Telecom Internal System Team "Common Entry Point" Multi-channel, multi-client ... large! WLS replaced IBM DCE RPC WLE The Background
Client Systems Mainframes RetailCall Centre CustomerInformation BT.com WebLogic Server Mid-Tier WebLogicEnterprise Login MUX BusinessCustomers BusinessCustomers COSMOS Network Management
The Battles RMI or EJB access route Straight-through, no value-add Stateful or Stateless Ru-Use on Business Objects Access to "Entities" Where is the business logic Access to mainframes/back-end services
RMI or EJB access route Issue: RMI access simpler, it's an option Need: Transaction & network management Resolution: EJB - RMI excluded Realisation: EJB Facade layer
Straight-through, no value-add Issue: enough business logic on mainframe Need: access to login server Resolution: Support straight-through Value added Transaction & network management Access Routes at front and back ends Realisation: Special Session EJBs
Stateful or Stateless Issue: amount of mid-tier information Need: response-time/throughput goals Resolution: allow either
Re-Use on Business Objects ? Issue: Scepticism concerning reuse on "Business Objects" Need: ROI demands maximal reuse Resolution: Reusable "Business Objects" Non-reusable "Business Process Objects" Realisation: BPOs and BOs
Access To "Entities" Issue: "give me entity info, no biz process" Need: simple multi-client access to entity information Resolution: allow access to Biz Objects Realisation: generic "BO Access" Session EJB Caveat: use for retrieval only
Where is the business logic Issue: Why have business logic in mid-tier? Need: Performance, ease of programming Resolution: allow none, or lots Realisation: three styles: no business object access to business object via generic EJB use full BPO stack
Issues: Little objects, big transactions Multiple-choices for mainframe transactions Migration to WebServices at M/F Resolution: Information Layer driven by Business Process Smart mapping, caching, XML intermediate Access to Mainframes/back-end services
Channels Access Routes (Servlets) Pluggable Access Routes, e.g. SOAP, Http/XML Accessible Services Services (Session EJBs) Client Identity, BP Selection, Exception Handling Accessible Business Processes Business Process Objects (Java) Client-Specific Business Procedures Business Concepts Business Objects (Java) e.g. AccountBO, CustomerBO, OrderBO Dependent Data e.g. OrderLine Business Information Information Objects (Java) e.g. Account, Customer, Order Dependent Data Persistence Persistence / Transactions EJB, Connectors, Web Services, CORBA
Business ProcessAutomation Http/XMLClient SOAP Client JavaClient WLS Http/XMLServlet SOAPServlet Services - Session EJBs Business Processes Generic BO Access Business Objects Information Objects CORBA EJB WebServices JCA
Done Right Major long-term savings Can handle highly complex processes But not done quickly Long Proof Application Programmer training How to do it quickly ???
J2EE Development 1999-2001 The JeeWiz! Vision How JeeWiz! Works Benefits Next Steps Part 2.The Java Enterprise System Builder
J2EE Development 1999-2001 Start-up long and expensive Architecture, PoC, Performance, Document And finally … the application Constant Change - EJB1.1/2.0, JSPs, Portals Mixing of Infrastructure and App Development Complex, difficult to change
J2EE Development Example 8 months duration, average 4 people Develop sample, productise, throw away Develop sample, productise, document Try to teach Application programmers But it was really hard Total cost: > DM 1,000,000
The JeeWiz! Vision First Vertical Slice, Localised, in 2 Weeks Good for small or large enterprises
The JeeWiz! Vision - Goals Simplify for application developers Easier adaptation to change Package architectural patterns Reduce start-up time Reduce cost Reduce risk
How JeeWiz! Works Application Development and Deployment J2EE System Components and Patterns for Web Services Foundation Ant + Patterns + XML Specifications
JeeWiz! Foundation - Tools Ant - Java-based builder more intelligence into the build process Velocity - pattern generator separate patterns from application definition XML the new specification and interchange language
JeeWiz! Foundation - Process Patterns +Standards Implementation Unit TestApp Servers J2EE Expert Patterns +Standards Specification ApplicationImplementation Architect SystemTestApp Servers ApplicationProgrammer ApplicationSpecification ApplicationAnalyst Out-of-the-boxpatterns and standards ProductionApp Servers DeploymentDescriptions Assembler /Deployer
JeeWiz! Foundation - Patterns Application Specification Generated Code and Descriptors Directory Naming /src/AccountEJB/ entity name = Account File Naming AccountPK.java attribute name = AccountID Java Object Naming public class AccountPK { public AccountPK() {} abstract public int getAccountID(); abstract public void setAccountID( int i ); } type = int Code generation key = true Deployment descriptor generation <entity> <ejb-name>AccountBean</ejb-name> </entity>
JeeWiz! Foundation - Deployment Runnable WLS configuration Application programmer generates unit test deployment Assembler / deployer add overrides XSL-T (XML Transformations) today 'XMLMerge' utility tomorrow
JeeWiz! Foundation Patterns help application programmers reduces effort reduces complexity reduces risk eases maintenance promotes standards Foundation can be adapted to new areas
JeeWiz! J2EE Patterns Builds on the Foundation Design language for J2EE applications A complete set of patterns for Web Services ... to EJBs Includes deployment Doesn't (yet) include testing, Rational Rose
Customer Benefits Cheaper, quicker start-up Improved productivity for bulk of developers Cheaper, quicker maintenance Clearer reponsibilities for personnel Easier to use new technologies
JeeWiz USPs Combination of build engine is end-to-end and adaptable NT/e's EJB pattern enterprise-level features for deployment EJB2.0 and Web Services No run-time overhead/cost
JeeWiz! Futures Automatic testing Integration with Rational Rose / RUP Documentation production Business Rules using EJB2.0 JCA, integration with WLI