4 Communication and Execution Protocols WEB SERVICES SOA HTTP BPEL XML ESB UDDI MOM WSDL WSRP SOAP REST / ROA PHP .NET / J2EE Service Oriented Architecture Service Oriented Architecture Presentation Layer Business Layer Service Layer Data Layer Web Services How It Works • Call Web Service : retrieveStuff() Get back some values - Y, Z • Call Web Service : updateStuff(Z) Get back some values - A • Call Web Service : updateMoreStuff(Y, A) Get back some values - S, H, and X Return S and H to user ! Warning • Don´t try to build entire applications from service calls • Strive to reduce granularity • Error processing must be handled effectively Alternatives INTRA-Enterprise ¨ SOA ¨ - SAP - BIZTalk - MQ Series Distributed Computing Services - JavaSpaces - Grid and Cloud computing Enterprise Service Bus Enterprise Service Bus Example: Consider a UNIX shell script in which process A pipes information into process B. Here the processes are the services and the shell script iss the choreographer, AND the operating system that transfers the messages is a very simple Enterprise Service Bus Enterprise Service Bus Essential Requirements: • Routing • Event Handling • Reliability • Monitoring and Administration • Security • Load Balancing Enterprise Service Bus Software: • Websphere Integration Developer (IBM) • JDeveloper (Oracle) • Workflow Foundation (Microsoft) Message Oriented Middleware “intelligent queuing HUBS “ Message Oriented Middleware Software: • Websphere Interchange Server (IBM) • Fusion (Oracle) • Queue Manager (Microsoft) System Analysis and Program development (SAP) is a German software corporation that provides enterprise software applications and support to businesses of all sizes globally. Headquartered in Walldorf, Germany, with regional offices around the world, SAP is the largest enterprise software company in the world (as of 2009). It is also the largest software company in Europe and the fourth largest globally. The company's best known products are its SAP Enterprise Resource Planning (SAP ERP) and SAP BusinessObjects software. SAP was founded in June 1972 as Systemanalyse und Programmentwicklung by five former IBM engineers in Mannheim, Baden-Württemberg . Common Object Request Broker Architecture is a standard defined by the Object Management Group (OMG) that enables software components written in multiple computer languages and running on multiple computers to work together (i.e., it supports multiple platforms) CORBA is useful because it enables separate pieces of software written in different languages and running on different computers to work together like a single application or set of services. More specifically, CORBA is a mechanism in software for normalizing the method-call semantics between application objects residing either in the same address space (application) or remote address space (same host, or remote host on a network). Common Object Request Broker Architecture Version 1.0 was released in October 1991. CORBA uses an interface definition language (IDL) to specify the interfaces which objects present to the outer world. CORBA then specifies a mapping from IDL to a specific implementation language like C++ or Java. Standard mappings exist for Ada, C, C++, Lisp, Ruby, Smalltalk, Java, COBOL, PL/I and Python. There are also non-standard mappings for Perl, Visual Basic, Erlang, and Tcl implemented by object request brokers (ORBs) written for those languages. Common Object Request Broker Architecture The CORBA specification dictates there shall be an ORB through which an application would interact with other objects. In practice, the application simply initializes the ORB, and accesses an internal Object Adapter, which maintains things like reference counting, object (and reference) instantiation policies, and object lifetime policies. The Object Adapter is used to register instances of the generated code classes. Generated code classes are the result of compiling the user IDL code, which translates the high-level interface definition into an OS- and language-specific class base for use by the user application. This step is necessary in order to enforce CORBA semantics and provide a clean user process for interfacing with the CORBA infrastructure. .NET is a Microsoft development environment used to create enterprise applications or to develop applications that integrate nicely with other enterprise applications. There are three core pieces of .Net : 1. A runtime environment that ,Net apps rely on to execute 2. Development tools to make the apps that run in this environment. 3. A number of other loosely related products and services under the name “.NET” since it makes everything sound integrated. .NET What’s in it? • Visual Studio • The .NET Framework • The .NET Enterprises • .NET Services .NET What’s in it? • Visual Studio - the development environment C#, Managed C++, VB, Jscript, Visual J#, … • The .NET Framework • The .NET Enterprises • .NET Services .NET What’s in it? • Visual Studio • The .NET Framework - underlying technologies (libraries, object files, executables, etc) relied on by Visual Studio • The .NET Enterprises • .NET Services .NET What’s in it? • Visual Studio • The .NET Framework • The .NET Enterprises - Advanced Server ( a supped up Windows OS), SQL Server, Exchange Server, Application Server. BizTalk Server, Commerce Server, ISA Server, … • .NET Services .NET What’s in it? • Visual Studio • The .NET Framework • The .NET Enterprises • .NET Services - a collection of Internet accessible web services sold by Microsoft. Much like the .NET Framework provides higher-level class libraries that make developers more productive, .NET Services can help developers focus on their application logic rather than building and deploying their own cloud-based infrastructure services. .NET • .NET Services J2EE Java 2 Platform Enterprise Edition : is a conglomeration of standards for architectures, protocols, languages, APIs, and services that allow companies to deploy applications capable of serving many, many users. J2EE is an Open Source standard owned by Sun Microsystems and marketed by 1. IBM ( as Websphere Application Server) 2. Oracle (as Oracle Application Server) 3. BEA (as WebLogic now owned by Oracle) 4. Red Hat ( as JBoss Application Server) : J2EE “Industry Standard” unless 1. You are a Microsoft shop 2. You are fixed in older technology client server architechtures based on C++ 3. You own proprietary technology 4. You live in a dream world ! : REST REpresentational State Transfer is a software architecture approach to system interconnection that emphasizes simplicity and uniformity. Created (by Roy Fielding) in response to the fact that SOAP and WSDL are not so simple and uniform. The basic idea is that RESTful architectures try to make it just as easy for software programs to chain through web services as it is for humans to follow hyperlinks across a set of web pages. Resource Oriented Architecture (ROA) is a specific type of REST architecture that focuses its technology set on HTTP, XML, and URLs. : Future is Bleak ! WHY?