JBossWS beyond JAX-WS Heiko Braun Senior Software Engineer
Overview Common terminology –What are services? –What is SOA? Patterns of contemporary SOA –The 3000 feet view Challenges –For customers and vendors SOA as a technology branch –How does JBossWS fit into the picture? Recommendations / Next steps
What are services?
A simple service definition Service fulfills a purpose Basically it‘s a „worker“ Should achieve a specific goal The goal may be differently scoped: Retrieve data for a requestor or execute a business process This is referred to as „level of granularity“
Service is an abstract resource It performs a job A job is consists of several tasks A task corresponds to the physical assets of a service: object, components, legacy code, application API Each service has a name, contact information and associated policies For the requestor, the service is a black box
Purpose of a service Limited to a distinct purpose, function or concept Referred to as the bounds of a service A service may collaborate with other to perform it‘s job Can be used independently or in other collaborations
What is SOA?
SOA is an architectural concept Loosely coupling of a service and it‘s provider Concept not limited to the functional assets: Can network, platform or component It‘s an architectural strategy, enabled by products, not centered on them.
SOA is an environment An environment that allows services to be defined, developed and used by other services Allows business solution assembly Provides service discovery, policy definition and enforcement, QoS, TX compensation and usage metering
SOA is a journey The path to SOA varies based on the business and technology problems to be solved. Build on existing environments It‘s an incremental process
Patterns of contemporary SOA
Services are used for integration Bring back-end functionality to customer Offer access to legacy systems Most often leverages web services
Services extend applications Use services to add functionality to existing applications Services as the base for new applications Heterogenous landscape Coexistance of traditional and service oriented approaches
Services are combined with events „An event as something notable that happens inside or outside your business“ Event prompts and action, either human or automated Events trigger services Services may emit event themselves
Services are combined with events Example: Low stock event fired by an Order mgmt application
Services participate in business processes A service may invoke a business process Services may be included in or invoked by a business process The business process may change without touching the services
Services participate in business processes Example: Credit approval business process
Where is all of this heading? True SOA will combine services, events and business processes Customers will compose solutions that truely reflect their business demands Customers will mix and match concepts and technologies according to their business needs
The big picture Mix and match according to your business needs
Challenges for customers and vendors
SOA is not a product There is no „one size fit‘s all“ strategy An incremental investment with incremental gains Agility means applying solutions over time, growing with your business needs. Choose a technology branch not a single product
Transitioning costs Many technologies, concepts and vendors Almost no best practice knowledge Inital transition will cause a productivity decrease It takes time to build out a SOA environment and skills: Leverage existing tools and skills (i.e. JAX-WS, EE5)
The human factor Developers don‘t want to worry about the „framing and plumbing“ Developers rebel against restrictiveness of standards Service providers need to aim at abstracting complexity: JBossWS templates, architectural guidance Smart service stubs, „Service sense™“
SOA as a technology branch
Project awareness JBossWS as part of a technology branch Other members of that branch are ESB, Messaging, JBPM, JBossRules, EJB3, Seam To complete the „big pitcture“ these will be used in arbitrary combinations
Clear interconnection points The key is painless integration with likeminded technologies (ESB, Messaging, JBPM, JBossRules) Comprehensive development models that spans multiple technologies: i.e ESB and WS: service descriptions, policies, programming models Architectual guidance, tutorials
Ease of developement Strong client & server programming model: JAX-WS + EJB3 Smart service stubs: i.e. FastInfoSet, policy negotiation Environment aware (service publishing), extended annotations Architectural templates: Running as service gateway Integrated with ESB
Recommendations / Next steps
Bring the people together Create an umbrella project –Include ESB, WS, Messaging, Rules, JBPM, Seam –Project lead, road map, mailing list –Unified deliverables Will be the next big integration project similiar to AS –common technology (i.e. MC) –shared API, integration layers –plug and play capabililties Regular face 2 face meetings –create the sense of a common goal –sort things out, push things forward
Thanks