Formatted web content in print statements low-level, ugly error prone
Data is not decoupled from formatting. What if we want to switch to an application client? What if we want to allow further processing by the client?
Several strategies can help with both of these (higher-level htmlgen libraries, server-side scripting model, beans, etc.) and XML
We will look at how XML fits in
What does browser do with XML?
Can it display?
Does it even understand XML?
If not, what good is this?
Do we have to hand roll our programming language objects from XML?
Regarding first point, try this with your web browser
Note that XML is displayed/formatted nicely, but not nearly to the same level of utility as the html table
To transform to html, we must associate a separate .xsl file (e.g.) with the XML file. We will study XSL soon.
Regarding XML-language conversion, we will study language binding for various high-level ways of doing this. For now, we will hand-roll ourselves!
Given a list of student members of a dormitory, perform an ordered randomized sort of the students to determine a room draft order.
Functional requirements, cont.
Students are defined by
Quarters in the House
Quarters in the College
The sort keys are
Quarters in House
Quarters in College
Remotely accessible to single small company
Several hits per hour maximum
All Windows Users
What I tried
Excel embedded in IE6
Web-based with java servlets, XML, XSLT
Sketch of XML/Servlet solution XML Login Info XML Student Data filesystem Web Server login lottery Web Client XML XSLT
An exercise1 solution Travel Service Internal Rules Engine Security manager Web Client html Web Client xml xml ? html http Complexity of marshaling/unmarshaling XML How to represent state Ease of integration -- no proprietary issues Ability to use Schema for validation http
SOA Concepts A Very Brief Introduction
Standards Organizations Basic Profile, Basic Security Profile UDDI, ebXML, SAML, XACML, WS-BPEL, WS-Security XML, XML Schema, Xquery, XML Encryption, XML Signature, Xpath, XSLT, WSDL, SOAP, WS-CDL, WS-Addressing Prominent SOA-specific deliverables To foster standardized interoperability using Web services standards To promote online trade and commerce via specialized Web services standards To further the evolution of web via standards that improve info sharing Overall SOA-specific goals 200 600 400 membership WS-I (2002) OASIS (1998) W3C (1994)
This is all a work in progress
Reading too much gives the impression that these are turnkey solutions.
In fact, remember that MANY of these standards are very immature and are at various stages of implementation by different vendors.
They also tend to change quickly in the early years. Be very careful when applying to real problems!
Question: are open standards worthwhile? If so, who do they benefit and how?
What is a SOA?
OASIS: “ paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations .”
SOA definitions, cont.
Erl: “ Contemporary SOA represents an open, agile, extensible, federated, composable architecture comprised of autonomous, QoS-capable, vendor diverse, interoperable, discoverable, and potentially reusable services, implemented as Web services.
SOA can establish an abstraction of business logic and technology, resulting in a loose coupling between these domains.
SOA is an evolution of past platforms, preserving successful characteristics of traditional architectures, and bringing with it distinct principles that foster service-orientation in support of a service-oriented enterprise.
SOA is ideally standardized throughout an enterprise, but chieving this state requires a planned transition and the support of a still evolving technology set.”
SOA Definitions, cont.
OMG : “ Service Oriented Architecture is an architectural style for a community of providers and consumers of services to achieve mutual value, that:
Allows participants in the communities to work together with minimal co-dependence or technology dependence
Specifies the contracts to which organizations, people and technologies must adhere in order to participate in the community
Provides for business value and business processes to be realized by the community
Allows for a variety of technologies to be used to facilitate interactions within the community ”
SOA definitions, cont.
W3C: “ A form of distributed systems architecture that is typically characterized by the following properties:
Logical view : The service is an abstracted, logical view of actual programs, databases, business processes, etc., defined in terms of what it does, typically carrying out a business-level operation.
Message orientation : The service is formally defined in terms of the messages exchanged between provider agents and requester agents, and not the properties of the agents themselves. The internal structure of an agent, including features such as its implementation language, process structure and even database structure, are deliberately abstracted away in the SOA: using the SOA discipline one does not and should not need to know how an agent implementing a service is constructed. A key benefit of this concerns so-called legacy systems. By avoiding any knowledge of the internal structure of an agent, one can incorporate any software component or application that can be "wrapped" in message handling code that allows it to adhere to the formal service definition.
Description orientation : A service is described by machine-processable meta data. The description supports the public nature of the SOA: only those details that are exposed to the public and important for the use of the service should be included in the description. The semantics of a service should be documented, either directly or indirectly, by its description.
Granularity : Services tend to use a small number of operations with relatively large and complex messages. Network orientation: Services tend to be oriented toward use over a network, though this is not an absolute requirement. Platform neutral: Messages are sent in a platform-neutral, standardized format delivered through the interfaces. XML is the most obvious format that meets this constraint. “
SOA definition, cont.
Open Group : “An architectural style that supports service orientation …
A way of a way of thinking in terms of services and service based development and the outcomes that services bring Service
A logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit; provide weather data, consolidate drilling reports), is self-contained and maybe composed of other Services. It is a black box to consumers of the Service Architectural Style
The combination of distinctive features in which Enterprise Architecture is done, or expressed The SOA Architectural style ﾕ s distinctive features: Based on the design of the services comprising an enterprise ’ s (or inter-enterprise) business processes. Services mirror real-world business activity
Service representation utilizes business descriptions. Service representation requires providing its context (including business process, goal, rule, policy, service interface and service component) and service orchestration to implement service Has unique requirements on infrastructure. Implementations are recommended to use open standards, realize interoperability and location transparency. Implementations are environment specific, they are constrained or enabled by context and must be described within their context. Requires strong governance of service representation and implementation Requires a L itmus Test, which determined a g ood services”
SOA: the basics What it is. What it is not.
Changed mindset: service-oriented context for business logic.
A top-down organization transformation requiring real commitment.
Loosely coupled: minimizes dependencies between services.
Contractual: adhere to agreement on service descriptions.
Autonomous: control the business logic they encapsulate.
Abstract: hide the business logic from the service consumers.
Reusable: divide business logic into reusable services.
Composable: facilitate the assembly of composite services.
Stateless: minimize retained information specific to an activity.
Discoverable: self-described so that they can be found and assessed.
Based on open standards.
Supports vendor diversity.
Fosters intrinsic interoperability.
Fosters inherent reusability.
Promotes organizational agility.
Supports incremental implementation.
Technical architecture that adheres to and supports the principles of service orientation.
Focus on the Business– Process and Services Application a Application c Application b Application logic Source: Service-Oriented Architecture, Thomas Erl Business logic
Focus on the Business– Process and Services Application layer Services interface layer Business process layer Application-oriented services Business-oriented services .NET J2EE Legacy Source: Service-Oriented Architecture, Thomas Erl
Focus on the Business– Process and Services Application layer Services interface layer Business process layer .NET J2EE Legacy Source: Service-Oriented Architecture, Thomas Erl orchestration service layer business service layer application service layer
Beware that SOA is used in many different ways within the IT community (“most despised buzzword according to several surveys”)
Erl-1 does a good job of sorting through a lot of this -- should read ch. 1-3 carefully.
Still, many attributes ascribed to SOA are carryovers from the “old days” -- encapsulation of business logic, language interoperability, network transparency, loose coupling, etc. etc. What is new?
BPEL is a key part of the Web Services activities
BPEL 2.0 called WS-BPEL
BPEL is a programming language specialized for creating/executing a workflow of assembled web services (think driver language).
BPEL is built on top of a number of XML-related specifications
XML is used as the syntax for BPEL
WSDL is used as the interface description of Web Services
XML Schema is used to describe the types used by BPEL processes
XPath is used to extract parts of data in a BPEL process
SOA vs. Web services
SOA design concepts exist independently of web services -- web services are one (and currently the only) standard upon which SOA designs can be built and deployed. This is a pretty uniformly accepted view.
By the same token, using web services does not necessarily imply SOA design
That said, in real world modern SOA the two technologies are tightly linked and go hand in hand
BPEL and BPMN
There is no standardized graphical notation for BPEL
XML is used as the standardized syntax
the BPEL syntax is defined by an XML Schema
most BPEL tools provide graphical notations
different products use different notations
Business Process Modeling Notation (BPMN) has been proposed as a graphical notation standard
Think about and try to articulate the relationship between SOA and other common programming models
Confluence of many existing ideas, but SOA is definitely a shift in perspective (if not a radically new paradigm).
Organization of Book
Web Services and “Primitive SOA”
Services (as web services)
Service descriptions (WSDL)
Web Services and “Contemporary SOA”
Part I: MEPs, service activity, atomicity, business activities, orchestration, choreography
Part II: Advanced messaging, metadata, and security
We will roughly follow this ordering but precede it with a deep understanding of XML, Schema …