SOA Web Services Edge Conference June 6, 2006 AJAX and SOA: The perfect match
SOA Web Services Edge Conference
June 6, 2006
AJAX and SOA: The perfect match
- 2 -
Unofficial Survey – SOA and AJAX
Why did you attend this conference?A) Learn about SOA?
B) Learn about AJAX?
What is most important to enterprises?A) SOA?
B) AJAX?
What will provide the best ROI for your company?A) AJAX?
B) SOA?
Would you feel satisfied if you?A) Learned about SOA at this conference?
B) Learned about AJAX at this conference?
- 3 -
Some questions that require answering
What is SOA?
Why is SOA important?
What is AJAX?
Why is AJAX important?
Why do enterprises care about SOA & AJAX?
How are AJAX and SOA complementary?Why is this combination important to enterprises?
Why does the combination matter to any enterprise?
How best to combine AJAX and SOA?Best practices
Mitigate risk
- 4 -
Some thoughts about “perfect matches”
"It was a perfect marriage. She didn't want to and he couldn't." Spike Milligan
What counts in making a happy marriage is not so much how compatible you are, but how you deal with incompatibility. Leo Tolstoy
Marriage is a wonderful institution...but who wants to live in an institution? Groucho Marx
"I was married by a judge. I should have asked for a jury." Groucho Marx
- 5 -
SOA – What is it? (Wikipedia)
Skies of Arcadia
Safe operating areaSchool of the Americas
Service-Oriented Architecture
Semiconductor Optical Amplifier
Society of Actuaries
Society of AncientsStart of Authority
State of Alert
State of the art
Soldiers of Allah
Sarbanes-Oxley Act
Stimulus Onset Asynchrony
- 6 -
SOA – What is it? (Wikipedia)
In computing, the term Service-Oriented Architecture (SOA) expresses a perspective of software architecture that defines the use of services to support the requirements of software users
Unlike traditional point-to-point architectures, SOAs comprise loosely coupled, highly interoperable services.
These services interoperate based on a formal definition (or contract) which is independent from the underlying platform and programming language.
The software components become very reusable because the interface is standards-compliant and is independent from the underlying implementation of the service logic.
- 7 -
SOA – Why is it important? (Wikipedia)
Enterprise architects believe that SOAs help businesses respond more quickly and cost-effectively to the changing market conditions they may face by promoting reuse and interconnection of existing IT assets rather than more time consuming and costly reinvention
To talk in terms of a service-oriented architecture provides a good framework from which to build the dynamic solutions required today
This should greatly decrease integration costs and allow for much more dynamic solutions to be deployed.
- 8 -
AJAX - What is it? (Wikipedia)
Ajax Amsterdam
Ajax (band)
Ajax (arcade game)
Ajax (horse)
HMS Ajax
Ajax cleanser
Ajax Duckman
Ajax, Ontario
Ajax Records (Chicago)
Ajax Records (Quebec)
Ajax Kenitra
Operation Ajax
Aspen Mountain (Colorado)
Ajax (Mickey Mouse)
Ajax (aircraft)
Ajax (programming)
Ajax (Warriors)
- 9 -
AJAX - What is it? (Wikipedia)
Ajax, shorthand for Asynchronous JavaScript and XML is a Web development technique for creating interactive web applications.
The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes, so that the entire web page does not have to be reloaded each time the user makes a change.
This is meant to increase the web page's interactivity, speed, and usability
Ajax is not a technology in itself, but a term that refers to the use of a group of technologies together.
- 10 -
AJAX – Why is it important? (Wikipedia)
Ajax applications are mainly executed on the user's machine, by manipulating the current page within their browser using document object model methods.
Ajax can be used for a multitude of tasks such as updating or deleting records; expanding web forms; returning simple search queries; or editing category trees—all without the requirement to fetch a full page of HTML each time a change is made.
Generally only small requests are required to be sent to the server, and relatively short responses are sent back
This permits the development of more interactive applications featuring more responsive user interfaces due to the use of DHTML techniques.
…current Ajax applications effectively fill part of the one-time niche of Java applets: extending the browser with lightweight mini-applications.
- 11 -
How are SOA and AJAX complementary?
SOA is the most flexible implementation for the middle and data tiers
Benefits are mainly realized by the enterprise and developers
Customers do not perceive benefits from SOA
AJAX is the best possible face for any enterprise Web app
Ease-of-use benefits are perceived by the end-users
The enterprise and developers actually have to go to more hassles to include and integrate AJAX into their apps
SOA and AJAX combined (if done well)
Provide benefits to: enterprise, developers and end-users
- 12 -
Why does combining SOA & AJAX matter?
Using SOA and AJAX combines the benefits achieved by each approach
Reduced maintenance and support costs
Faster reaction time to changing market needs
Improved revenue possibilities
Better customer experience
Re-use of existing assets
Independence from vendor lock-in
Standards-based technologies
Ajax and SOA enable SaaS delivery of enterprise applications
- 13 -
Possibilities of combining SOA & AJAX
Most large enterprises have already started migration to SOASeen as one of the most strategic undertakings in the enterprise
Recent survey by Merril Lynch: 87% of CIOs consider SOA “the next big thing”
AJAX appeared while enterprises invested on their SOAThe appearance of AJAX took most by surprise
Enterprises now want to include AJAX on their apps and want to combine with SOA
How best to include AJAX with SOA?Is a “coat of AJAX paint” the answer?
Do I want a framework to provide the way?
How difficult is it?Do I want easy or effective?
The “easiest” manner may not be right – consider which option is best for you
Do you care about security, scalability, trust, etc…
- 14 -
Possibilities of combining SOA & AJAX
Some vendors offer
Client only approach – AJAX, but no SOA integration
Server only approach – SOA, but no AJAX
SOA/AJAX have 2 possible approaches
Client GUI/Client Integration
Client GUI/Server Integration
Different approaches are correct depending on particular concerns about:
Security?
Scalability?
Service management?
- 15 -
Combining SOA & AJAX – Client-side integration
Client-side GUI engine and client-only integration solution
Uses client-side GUI (AJAX) and client-side integration with data
Server-less approach that sends the data result from the service along with the presentation and gets integrated into client
ProsThis approach seems easier because of its server-less infrastructure
Better suited for homogenous components
ConsConsidered not to be as scalable
Considered not to be as highly security-conscious
Some AJAX problems may exist because of services coming from different domains to the XMLHttpRequest object
Client-side implementation can be slow to spot issues with the application
More often requires “tight” relationship between middleware and AJAX solution
- 16 -
Combining SOA & AJAX – Server-side integration
Client-side GUI engine and Server-side integration solutionUses client-side GUI (AJAX) and server-side integration
Server-based approach that allows coordination of service and presentation on a server-side component
ProsConsidered a much more scalable approach
Security can be better managed at the server rather than client
No cross-domain issues appear because everything is conducted by server(s) at the same domain
Enterprise has better control of all processes because the server-side components is under its control
Can detect potential issues at the server rather that wait for client to inform
Better suited for heterogeneous components
Client remains a “thinner” client than with other solutions
ConsGenerally considered more difficult to deploy
Inclusion of server-side components require more testing
Misunderstandings about interaction among server side scalability
- 17 -
“Home-made” or “Fully-tested”
Enterprises wishing to use a SOA/AJAX solution can:Use home-made solution
Use any AJAX solution that allows interoperabilitySurf the web and download AJAX libraries
Use a fully supported AJAX-toolkit
Integrate to services By hand
Create a component that allows integration to services (client or server-side)
Use specialized and tested complete solutionUse any AJAX solution that allows interoperability
Surf the web and download AJAX libraries
Use a fully supported AJAX-toolkit
Integrate to services using a proven Full SolutionUse a solution that will allow for the easiest possible integration
Ensure that the solution is proven, scalable and secure
Use the solution that provides the best scalability, security and service management
Ensure no vendor lock-in
Ensure neutral interaction with heterogeneous components
- 18 -
How best to combine SOA and AJAX
SOA and AJAX requires an end-to-end frameworkShould integrate with many types of services
Web servicesRSSRESTXMLHTML-based microformats
Framework should not create vendor lock-inWork with what exists nowEnsure interaction into futureFunction with heterogeneous systems
SOA and AJAX is too important to leave alone, this is serious stuff!Aspects to be considered
GUI and integration should be tested and ensuredBased on open standards Interoperability with other AJAX solutionIntegration with other applications – not only Web Services
Other concernsSecurityScalabilityService managementInfrastructure management
- 19 -
Risks involved in SOA and AJAX
How will you ensure scalability?
How will you ensure security?
Will your solution require tight coupling to other products?
Will you put up with vendor lock-in?
Do you trust solutions not based on open standards?
Can you afford solutions that do not allow integration with heterogeneous systems?
- 20 -
Rethinking thoughts about “perfect matches” "It was a perfect marriage. She didn't want to and he couldn't." Spike Milligan
AJAX and SOA complement each other by what they are not as much as by what they are
What counts in making a happy marriage is not so much how compatible you are, but how you deal with incompatibility. Leo Tolstoy
How will our solution deal with heterogeneous systems?
Marriage is a wonderful institution...but who wants to live in an institution? Groucho Marx
Don’t get locked-in!
"I was married by a judge. I should have asked for a jury." Groucho Marx
It is important that the solution is proven by many