The document provides an overview of Service-Oriented Computing (SOC) and Service-Oriented Architecture (SOA), emphasizing the separation of software engineering from programming and the roles of application builders, service providers, and brokers. It discusses the evolution of distributed computing, the significance of web services, and the challenges faced in distributed environments, including interoperability and maintenance. Additionally, it covers the architecture and communication models of web services, highlighting their potential for cross-platform integration and business collaboration.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
10 views28 pages
Chapter 1
The document provides an overview of Service-Oriented Computing (SOC) and Service-Oriented Architecture (SOA), emphasizing the separation of software engineering from programming and the roles of application builders, service providers, and brokers. It discusses the evolution of distributed computing, the significance of web services, and the challenges faced in distributed environments, including interoperability and maintenance. Additionally, it covers the architecture and communication models of web services, highlighting their potential for cross-platform integration and business collaboration.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28
BCT 2303
SERVCE ORIENTED COMPUTING
introduction What are SOA and SOC? The Service-Oriented Computing (SOC) paradigm refers to the set of concepts, principles, and methods that represent computing in Service- Oriented Architecture (SOA) in which software. The main idea of SOC/SOA is to explicitly separate software engineering from programming, to emphasize on software engineering, and to deemphasize on programming. SOC separates software development into three independent parties: Application builders,service providers and service brokers SOC
• SOC is a term that describes software
systems that combine Service-Oriented Architecture (SOA) and Business Process Management (BPM) layers. This course explores both SOA and BPM, demonstrating how business and IT concerns can be aligned. Students will gain experience with service-oriented development, process modeling and execution, and securing services Who uses SOC/&SOA? All major computer corporations, including BEA, IBM, Microsoft, Oracle, HP, SAP, Intel, Cisco, Juniper, SAP, and Sun Microsystems, have moved towards the SOC paradigm. Languages, protocols, and standards have been developed to support and to regulate SOC applications. all of DoD’s major IT initiatives in the past four years were based on the SOC paradigm, including the Army’s FCS, the Navy’s FORCEnet, the Air Force’s JBI, and the OSD’s NCES and GIG-ES (Paul, 2005). ASU SOA Workshop
Banks, Universities, Airlines, retail agencies
Web Services Evolution of Distributed Computing: In the early years of computing, mainframe-based applications were considered to be the best-fit solution for executing large-scale data processing applications. With the advent of personal computers (PCs the concept of software programs running on standalone machines became much more popular in terms of the cost of ownership and the ease of application use Lately, network computing gained importance, and enabling remote procedure calls (RPCs) over a network protocol called Transmission Control Protocol/Internet Protocol (TCP/IP) turned out to be a widely accepted way for application software communication. Distributing Computing is a type of computing in which different components and objects comprising an application can be located on different computers connected to a network distributed computing model that provides an infrastructure enabling invocation of object functions located anywhere on the network Importance of Distributed Computing • Higher performance. Applications can execute in parallel and distribute the load across multiple servers. • Collaboration. Multiple applications can be connected through standard distributed computing mechanisms • Higher reliability and availability. Applications or servers can be clustered in multiple machines. • Scalability. This can be achieved by deploying these reusable distributed components on powerful servers. • Extensibility. This can be achieved through dynamic (re)configuration of applications that are distributed across the network. Higher productivity and lower development cycle time • components. Reduced cost. Because this World model provide satfeuse once developed components that are accessible over the network, significant cost educations can be achieved. • Reuse. The distributed components may perform various se vices that can potentially be used by multiple client applications. Client-Server Applications a two-tier architecture model, the first (upper) tier handles the presentation and business logic of the user application (client), and the second/lower tier handles the application organization and its data storage (server). the server in a client/server application model is a database server that is mainly responsible for the organization and retrieval of data. The application client in this model handles most of the business processing and provides the graphical user interface of the application. It is a very popular design in business applications where the user the client-server model has been widely used in enterprise resource planning (ERP), billing, and Inventory application systems where a number of client business applications residing in multiple desktop systems interact with a central database server. limitations of the client-server application model
•Complex business processing at the client side demands
robust client systems. •Security is more difficult to implement because the algorithms and logic reside on the client side making it more vulnerable to hacking. •Increased network bandwidth is needed to accommodate many calls to the server, which can impose scalability restrictions. •Maintenance and upgrades of client applications are extremely difficult because each client has to be maintained separately •Client-server architecture suits mostly database-oriented standalone applications and does not target robust reusable component oriented applications CORBA • The Common Object Request Broker Architecture (CORBA) is an industry wide, open standard initiative, developed by the Object Management Group (OMG) for enabling distributed computing that supports a wide range of application environments. OMG is a nonprofit consortium responsible for the production and maintenance of framework specifications for distributed and interoperable object-oriented systems. • differs from the traditional client/server model because it provides an object oriented solution that does not enforce any proprietary protocols or any particular programming language, operating system, or hardware platform • By adopting CORBA, the applications can reside and run on any hardware platform located anywhere on the network, and can be written in any language that has mappings to a neutral interface definition called the Interface Definition Language (IDL). • CORBA also defines a collection of system-level services for handling low- level application services like life-cycle, persistence, transaction, naming, security, and so forth. Java RMI
• Java RMI was developed by Sun Microsystems as the
standard mechanism to enable distributed Java objects- based application development using the Java environment. • . RMI provides a distributed Java application environment by calling remote Java objects and passing them as arguments or return values. It uses Java object serialization—a lightweight object persistence technique that allows the conversion of objects into streams • Java RMI uses Java Remote Method Protocol (JRMP) as the inter process communication protocol, enabling Java objects living in different Java Virtual Machines (VMs) to Transparently invoke one another’s methods Microsoft DCOM
• The Microsoft Component Object Model (COM) provides
a way for Windows-based software components to communicate with each other by defining a binary and network standard in a Windows operating environment. • Microsoft developed the Distributed Common Object Model (DCOM) as its answer to the distributed computing problem in the Microsoft Windows platform • DCOM enables COM applications to communicate with each other using an RPC mechanism, which employs a DCOM protocol on the wire. • the common limitations of DCOM: ■ Platform lock-in ■ State management ■ Scalability ■ Complex session management issues. Message-Oriented Middleware (MOM) based upon a loosely coupled asynchronous communication model where the application client does not need to know its application recipients or its method arguments. MOM enables applications to communicate indirectly using a messaging provider queue. The application client sends messages to the message queue (a message holding area), and the receiving application picks up the message from the queue MS provides Point-to-Point and Publish/Subscribe messaging models with the following features: ■ Complete transactional capabilities ■ Reliable message delivery ■ Security Challenges in Distributed Computing
• the common challenges noticed in the CORBA-, RMI-, and
DCOM-based distributed computing solutions: • ■ Maintenance of various versions of stubs/skeletons in the client and server environments is extremely complex in a heterogeneous network environment. • ■ Quality of Service (QoS) goals like Scalability, Performance, and Availability in a distributed environment consume a major portion f the application’s development time. • ■ Interoperability of applications implementing different protocols on heterogeneous platforms almost becomes impossible. For example, a DCOM client communicating to an RMI server or an RMI client communicating to a DCOM server. • ■ Most of these protocols are designed to work well within local networks. They are not very firewall friendly or able to be accessed over the Internet. The Role of J2EE and XML in Distributed Computing promote a much more efficient platform for hosting Web-based applications J2EE provides a programming model based upon Web and business components that are managed by the J2EE application server. breakdown of functionalities of its logical tiers: Presentation tier - composed of Web components, which handle HTTP quests/responses, Session management, Device independent content delivery, and the invocation of business tier components. Application tier. The Application tier (the Business tier) deals with the core business logic processing, which may typically deal with workflow and automation. The business components retrieve data from the information systems with well-defined APIs provided by the application server. Integration tier - deals with connecting and communicating to backend Enterprise Information Systems (EIS), database applications and legacy applications, or mainframe applications. Emergence of Web Services • Today, the adoption of the Internet and enabling Internet-based applications has created a world of discrete business applications, which co-exist in the same technology space but without interacting with each other. The increasing demands of the industry for enabling B2B, application-to application (A2A), and inter-process application communication has led to a growing requirement for service-oriented architectures • Enabling service- oriented applications facilitates the exposure of business applications as service components enable business applications from other organizations to link with these services for application interaction and data sharing without human intervention • By adopting Web technologies, the SOA model facilitates the delivery of services over the Internet by leveraging standard technologies such as XML. • This promising new technology sets the strategic vision of the next generation of virtual business models and the unlimited potential for organizations doing business collaboration and business process management over the Internet. What Are Web Services • Are based on the concept of service-oriented architecture (SOA). SOA is the latest evolution of distributed computing, which enables software components, including application functions, objects, and processes from different systems, to be exposed as services. According to Gartner research 10 (June 15, 2001), • “Web services are loosely coupled software components delivered over Internet standard technologies • self-describing and modular business applications that expose the business logic as services over the Internet through programmable interfaces and using Internet protocols for the purpose of providing ways to find, subscribe, and invoke those services • Based on XML standards, Web services can be developed as loosely coupled application components using any programming language, any protocol, or any platform. • This facilitates delivering business applications as a service accessible to anyone, anytime, at any location, and using any platform. Motivation and Characteristics Web services enable businesses to communicate, collaborate, conduct business transactions using a lightweight infrastructure by adopting an XML-based data exchange format and industry standard delivery protocols. Web services are based on XML messaging, which means that the data exchanged between the Web service provider and the user are defined in XML. Web services provide a cross-platform integration of business applications over the Internet. To build Web services, developers can use any common programming language, such as Java, C, C++, Perl, Python, C#, and/or Visual Basic, and its existing application components. Web services can be used by many types of clients Cont. Web services are not meant for handling presentations like HTML context—it is developed to generate XML for uniform accessibility through any software application, any platform, or device. Because Web services are based on loosely coupled application components, each component is exposed as a service with its unique functionality. Web services use industry-standard protocols like HTTP, and they can be easily accessible through corporate firewalls. Web services vary in functionality from a simple request to a complex business transaction involving multiple resources All platforms including J2EE, CORBA, and Microsoft .NET provide extensive support for creating and deploying eb services. Web services are dynamically located and invoked from public and private registries based on industry standards such as UDDI and ebXML. Why Use Web Services Web services can be invoked through XML-based RPC mechanisms across firewalls. Web services provide a cross-platform, cross-language solution based on XML messaging. Web services facilitate ease of application integration using a lightweight infrastructure without affecting scalability. Web services enable interoperability among heterogeneous applications. Web Services Architecture and Its Core Building Blocks based on SOA and the Internet protocols. To provide a universal interface and a consistent solution model to define the application as modular components, thus enabling them as exposable services ■ To define a framework with a standards-based infrastructure mo el and protocols to support services-based applications over the Internet ■ To address a variety of service delivery scenarios ranging from e-business (B2C), business-to-business (B2B), peer-to-peer (P2P), and enterprise application integration (EAI)-based application communication ■ To enable distributable modular applications as a centralized and decentralized application environment that supports boundary-less application communication for interenterprise and intra-enterprise application connectivity ■ To enable the publishing of services to one or more public or private directories, thus enabling potential users to locate the published services using standard- based mechanisms that are defined by standards organizations ■ To enable the invocation of those services when it is required, subject to authentication, authorization, and other security measures Web Services Description Language ( WSDL) is an XML schema based specification for describing Web services as a collection of operations and data input/output parameters as messages also defines the communication model with a binding mechanism to attach any transport protocol, data format, or structure to an abstract message, operation, or endpoint It’s a language used to describes a Web service in many ways , an example can be obtaining a price of a book using a GetBookPrice operation. Web Services Communication Models In Web services architecture, depending upon the functional requirements, it is possible to implement the models with RPC-based synchronous or messaging-based synchronous/asynchronous communication models 1. RPC-Based Communication Model defines a request/response-based,synchronous communication. When the client sends a request, the client waits until a response is sent back from the server before continuing any operation. Typical to implementing CORBA or RMI communication, the RPC-based Web services are tightly coupled and are implemented with remote objects to the client application Additionally, using RPC based communication, both the service provider and requester can register and discover services, respectively Implementing Web Services • all the components are bound dynamically only at its runtime using standard protocols 1. The service provider creates the Web service typically as SOAP based service interfaces for exposed business applications. The provider then deploys them in a service container or using a SOAP runtime environment, and then makes them available for invocation over a network 2. The service provider then registers the WSDL-based service description with a service broker, which is typically a UDDI registry 3. The UDDI registry then stores the service description as binding templates and URLs to WSDLs located in the service provider environment. 4. The service requester then locates the required services by querying the UDDI registry. The service requester obtains the binding information and the URLs to identify the service provider 5. Using the binding information, the service requester then invokes the service provider and then retrieves the WSDL Service description for those registered services 6. Finally, the service requester communicates with the service provider and exchanges data or messages by invoking the available services in the service container. WSDL Limitations • Declared Faults When the WSDL contains declared faults: •Specify the /UseSerializerForFaults argument during proxy code generation. For example: svcutil /UseSerializerForFaults *.wsdl *.xsd. If a port type of an operation includes Fault child node, the operation must use Document •style. •The fault part should refer to element but not type. • Removing OperationFormatStyle.Rpc Attribute The OperationFormatStyle.Rpc attribute is not supported if the operation also has the fault contract attribute. • Identical part Elements The part elements of messages cannot be same. If the elements are identical, svcutil throws an error • Mixed Type Messages Mixed type messages are not supported. All message parts must refer to either element or type. • From all these there are supported and Not supported, as indicated in examples. XML document structures
An XML document object is a structure that contains a
set of nested XML element structures XML documents are formed as element trees. An XML tree starts at a root element and branches from the root to child elements. It starts from root element to parent/child element book to attributes to element title/author/year/author. The document object structure • At the top level, the XML document object has the following three entries:(Entry-type-desc) 1. XmlRoot - Element -The root element of the document. 2. XmlComment - String - A string made of the concatenation of all comments on the document, that is, comments in the document prologue and epilog. This string does not include comments inside document elements. 3. XmlDocType - XmlNode - The DocType attribute of the document. This entry only exists if the document specifies a DocType. This value is read-only; you cannot set it after the document object has been created This entry does not appear when the cfdump tag displays an XML element structure The element structure • Each XML element has the following entries(entry-type- desc): 1. XmlName -String -The name of the element; includes the namespace prefix. 2. XmlNsPrefix- String- The prefix of the namespace. 3. XmlNsURI – String - The URI of the namespace. 4. XmlText or XmlCdata - String – 5. XmlComment -String -A string made of the concatenation of all comments inside the XML element, but not inside any child elements. 6. XmlAttributes- Structure- All of this element's attributes, as name-value pairs. 7. XmlChildren -Array -All this element's children elements. 8. XmlParent - XmlNode 9. XmlNodes XML DOM node structure 1. XmlName - String – 2. XmlType - String - The node XML DOM type, such as Element or Text. 3. XmlValue - String - The node value. This entry is used only for Attribute, CDATA, Comment, and Text type nodes.
Note: The tag does not display XmlNode structures. If you try to dump an Xm Node structure, the cfdump tag displays "Empty Structure."