NOTE: FUNCTIONS OF AN APPLICATION, *NOT* MODULES OF E-BIZ SUITE
To give some theoretical background, lets look at the foundation of what a Web Service looks like conceptually. There are typically three parts to a Web Service and they interact as follows
This slide brings the conceptual diagram to physical implementation with some of the commonly understood technologies that are used to implement the conceptual diagram previously displayed. It also gives a simple use case of what a generic Web Service might look and work like.
Let’s start by comparing Internet 2 applications to those of Internet 3 applications – or more succinctly, Web Services to Web Applications.
Web services allow you to make your applications programmatically accessible to other applications over the Internet. There is a powerful use case around this – deceptively simply yet quite powerful. While this is an deceptively simple concept, the value is quite significant. Nearly every vendor on the market has a set of tools and infrastructure that can be used to build new Web services or expose existing assets. Further, the architecting that may have been done to bring applications to the Web can often be re-used to expose that infrastructure as a Web service. What this means is that inevitably in your infrastructure you will find Web services. The question is how can you take advantage of this infrastructure … whether it be CICS transactions as Web Services, PL/SQL as a Web Service, an EJB as a Web Service … by being available as a Web service, pretty much any new application can incorporate it. While you can do a lot this way, bear in mind there are a number of things missing that we will cover in these talks – orchestration, security beyond SSL, reliability beyond what you can hand-wire in. All of these things can be resolved but standards are just emerging resulting in you having to consider implementing yourself, *if* necessary. Remember, when Amazon and Ebay started there was no transaction management, little security etc etc … yet they went ahead and achieved great value propositions and after success are now architecting in modern architectures.
This is Oracle’s web services strategy. We think of Web services as simply the next level of standardization of the application platform. This started from SQL in the 1980’s, moved to Java in the 1990’s, XML and Web services in the late 1990’s. Our goal, like the previous two generations is to make Web services support ubiquitous across our platform … platforms without Web services will be like databases not supporting SQL, like application servers not supporting J2EE … they will be non-players in the market. Web services to some degree are a bigger impact because they not only impact the internal infrastructure, they impact how you interact with other platforms and thus influence all the way through Oracle’s stack up into the Collaboration Suite and the E-Business Suite.
Here is the Web services product stack for Oracle
One area where we have committed no only from an engineering perspective but also from a standards body perspective is the Web Services Interoperability organization. Here we are working directly with MS and almost every other vendor in the industry to ensure that we have interoperable Web services platforms. WS-I is a reflection of the larger standards commitment that Oracle has … a large number of which impact our delivery of our Web services platform. Oracle understands that Web services are all about open standards-based interoperability. In addition to building open standards support into Oracle9 i Application Server and its other products, Oracle’s commitment to open industry standards is demonstrated by the large number of standards bodies and working groups Oracle actively participates in. In particular, Oracle is a founding member of the WS-I, which was formed to promote the interoperability of Web services technologies across the industry. Web Services built on Oracle9i are standards-based and can interoperate with Web Services built with other technology, including Microsoft .Net.
This does not mean that when you choose a j2EE platform that you can’t interoperate with the other major player in the infrastructure arena. Because both J2EE and .NET do reach to the outside world using common standards like XML, LDAP and SMTP etc, vendors that engineer interoperability like Oracle can work seamless side by side with .NET. Further, because Oracle delivers its platform on Windows, Oracle also does direct integration with .NET with capabilities like its ADO.NET provider to tightly integrate the Oracle DB with .NET, caching of ASP.NET content with Web Cache, Portlet’s for MS Exchange, ASP.NET applications and other web enabled content from .NET, integration technologies for COM and DCOM applications amongst many others. So Oracle both interoperates and integrates directly with .NET>
Fundamental to Oracle’s Web services offering is Oracle9i Application Server. Around it much of our Web services offering revolves. Whether it be portals needing Web services interactions, Business intelligence reporting off of Web services, wireless access to Web services, performance and reliability. Oracle9iAS is the foundation and provides rich functionality in these areas each directly related to Web services. The core of the Oracle9iAS infrastructure is J2EE and Web services and each feature area directly incorporates that infrastructure.
Let’s take a closer look at the types of Web services that are supported on ORacel9iAS. Here is the architecture sitting on top of the J2EE infrastructure.
Why would you consider exposing database operations as Web Services? When should you consider Database Web Services and when should you consider middle-tier (J2EE) Web Services? Database APIs for implementing Database Web Services Stored procedures are an essential database-programming model that allows a clean separation of data-centric logic that runs in the database from business logic that runs in the middle-tier. An example of Java or PL/SQL based stored procedure service will receive a credit card number as input parameter, encrypts it and checks whether the encrypted version matches with pre-existing encrypted credit card numbers in the Database. You should consider implementing coarse-grain services using SQL statements only when the benefits out-weigh the SOAP overhead. As an example, SQL Database Web Services (available in a near future) will allow SOAP enabled client applications and lightweight appliances to query a catalog or retrieve the map of a location based on the zipcode. A typical XML Database Web Services (near future) will let client applications (i.e., SOAP enabled desktop tools) retrieve XML documents, make changes locally, and synchronize back to the back-end database. This approach hides the complexity of XML APIs, as well as concerns over storage and indexing, from the service consumer. A Web Services API can also be used to expose AQ operations (near future) as well as Streams operations (future), such as message enqueuing/dequeuing, notification registration, capturing and propagating database changes, and providing access to queue administration operations. The dream of WS is the ability to invoke a service and consume data without any dependency on service provider software/platform/connectivity. Consider Amazon Web Services or Google Web Services. These let client applications discover and interact with their catalogs or search engines using standard Web Services protocols (WSDL, SOAP). Many organizations are considering exposing their existing data and data logic that runs in the database as Web Services (to both internal and external audiences). Leverage investment in PL/SQL and Java stored procedures Deliver Relational data, XML documents, Text, CLOB, BLOB and Multi-Media data Leverage messaging capabilities (JMS/AQ) Secure and Controlled way of opening up the database to Corporate Applications and Desktop Tools
Relational databases are extending their reach to heterogeneous and external sources including Web Services. The ability to call-out Web Services enables databases to track, aggregate, refresh and query dynamic, on-demand or volatile data such as stock prices, currency exchange rate, interest rate, IRS tax tables, scientific data, and weather information. For example, a database job can be scheduled to run at a pre-defined frequency to invoke external Web Services that return inventory information from multiple suppliers and update a local inventory database. Another example is that of a Web Crawler: a database job can be scheduled to collate product and price information from a number of sources. Use cases Consuming Dynamic/Volatile Data Calling-Out External Web Services from Java, SQL and PL/SQL Web Services Data Source Turn External Web Services into SQL data sources Status-driven computation Parcels Tracking, Automated Orders Processing
Page Designer’s job: Create portal pages for the end user (page viewer). The end user wants to see various types of data Each end user wants to see data presented differently: A Sales Manager may want to see Quarterly Results as a simple line chart. But a salesman may want to see the same results as a table in order to view details of his performance. Currently, the Page Designer as to the Portlet Developer: Today the Page Designer should ask to the Developer to create a new type of portlet for each data source and each layout. The Page Designer cannot control the portlet’s data and layout. The OmniPortlet solves this problem by giving to the Page Designer more power in the page building experience.
With OmniPortlet the page designer can select in a Wizard Based UI the data source and the Layout of a specific instance of portlet.
Business intelligence is another example of clients to Web services. More and more data, through technology like Oralce9iAS Web Services (and as you will see Database Web services) is being exposed as Web services. We have seen this evolution and made a strategic decision to make Web services a primary data source supported by our business intelligence infrastructure. This ranges from our BI tools enabling reporting and analysis directly off of web services to incorporating Web services into our datawarehousing infrastruture for extraction, transformation and loading.
Many of you may be familiar with some of Oracle’s classical development tools like Oracle9i Forms. This tool has significantly evolved over the last several years to support full Web deployment and direct integration into standards based Java technologies. In particuar, a new concepts, pluggable Java components (PJC), Java API called JDAPI and a server side Java importation feature called Java Importer which enables you to bring in Web services Java clients and seamlessly connect your Forms applications to Web services. The Web enabling technology plus the Java and Web services integration with Forms can often bring a significant new lease of life to existing Oracle Forms applications.
The final frontier of many development projects is mobile enabling aspects of the environment. Oracle9iAS has a significant wireless and mobile infrastructure based on wireless technologies like XHTML, WAP and so on and more and more so in recent years, an investment in helping developers build J2ME applications. The value proposition of Oracle9iAS Wireless is how from a single development and deployment environment literally hundreds of mobile devices can be supported from classical browser based interfaces, voice interfaces and messaging interfaces. So how does Web services fit in. Well, as more of your backend infrastructure becomes available as Web services, it becomes important that your wireless infrastructure supports it. Oracle9iAS not only makes its infrastructure like outbound messaging and voice services available as Web services (see OTN Push Web Service), we also provide a J2ME Web services client and server infrastructure so you can call Web services from your mobile device.
So one long tem goal should be putting in place one complete software foundation for integration – whether enterprise application integration, business to business or web services. Oracle9 i AS Integration provides a single integrated platform for your entire integration needs. It is built on top of an open and standards based J2EE architecture. Therefore it inherits and supports standards based integration via JMS, JCA, etc. Oracle9 i AS Integration enables data flow and exchange via Web Services, B2B integration (RosettaNet, ebXML, etc) or traditional enterprise application integration (EAI). Web Services Integration - External web services may be incorporated into enterprise business processes through support for key web services standards including SOAP, WSDL, and UDDI. The ability to publish business processes as web services is also supported . B2B Integration - The product enables communication to trading partners and exchanges through support for B2B standards including RosettaNet, ebXML, and EDI. Enterprise Application Integration - Oracle9iAS Integration provides a complete enterprise application integration solution including reliable messaging, data transformation, validation, and adapters for connectivity to Oracle E-Business Suite, 3rd party packaged applications, and legacy systems. Oracle9iAS Integration uses a business process-centric approach to integration that addresses the full spectrum of business process management requirements including automated event processing, B2B collaboration, and human interactions. Further, it provides a common process model for EAI, B2B, and web services. Moreover Oracle9iAS Integration provides Business process Intelligence as part of Business Process Management. Thus providing valuable real-time analytic capabilities. Since Oracle9iAS Integration is built on top of the Oracle9iAS, it leverages the proven performance, scalability, reliability and security features of the application server. Thus providing enterprises with the ability to deploy fast, reliable and secure web services.
Enabling a Service-Oriented Enterprise: Overview of Oracle Application Server Web Services Rakesh Dhoopar Sr. Director, Product Management Oracle Corporation Session id:40283
Next Steps…. <ul><li>Recommended sessions </li></ul><ul><ul><li>40053:Develop, Deploy, and Manage Web Services with Oracle Application Server 10g </li></ul></ul><ul><ul><li>40240:Web Services Enable Your Database Stored Procedures </li></ul></ul><ul><ul><li>40158:The Seven Basic Concepts of Application Integration </li></ul></ul><ul><ul><li>40066:Business Process Management for Beginners </li></ul></ul>
Agenda <ul><li>Why the need for service oriented architectures (SOA) </li></ul><ul><ul><li>IT Challenges </li></ul></ul><ul><li>What is SOA and Web services </li></ul><ul><ul><li>Elements of SOA </li></ul></ul><ul><ul><li>Benefits of SOA </li></ul></ul><ul><ul><li>Business Opportunities in SOA </li></ul></ul><ul><li>Oracle’s solution for SOA </li></ul><ul><ul><li>Tools, Application Servers, Database, Portal, Integration </li></ul></ul><ul><ul><li>Customer case Studies of SOA </li></ul></ul><ul><ul><li>How to get started? </li></ul></ul>
IT Challenges <ul><li>Applications are monolithic </li></ul><ul><ul><li>Discrete steps supported by single application </li></ul></ul><ul><ul><li>Applications are brittle and are not easy to adapt </li></ul></ul><ul><ul><li>Applications are hardwired to presentation devices </li></ul></ul><ul><li>Complexity of heterogeneous technology </li></ul><ul><ul><li>Interactions within and across enterprises are difficult </li></ul></ul><ul><ul><li>Based on proprietary standards & technology - No Interoperability </li></ul></ul><ul><ul><li>Difficult to connect to a large number of applications </li></ul></ul><ul><li>Applications operate as inflexible silos </li></ul><ul><ul><li>Difficult to build end-to-end business processes </li></ul></ul><ul><ul><li>Difficult to adapt business processes </li></ul></ul>
The Answer… <ul><li>Applications are monolithic </li></ul><ul><ul><li>Build applications as services </li></ul></ul><ul><li>Complexity of heterogeneous technology </li></ul><ul><ul><li>Do not create “yet another platform” </li></ul></ul><ul><ul><li>Deploy on standards based platforms </li></ul></ul><ul><ul><li>Use interoperable technology </li></ul></ul><ul><li>Applications operate as inflexible silos </li></ul><ul><ul><li>Integrate services to event-driven business processes </li></ul></ul><ul><ul><li>Compose business processes rapidly and adapt to changing requirements </li></ul></ul>
Services Facilitate Reuse Oracle Application Server 10 g Flexible composite applications Authentication Service Account Validation Service Monolithic application silos Print Invoices Generate POs Print Invoices Generate POs Credit Verification 1 Account Validation 1 User Authentication 1 Create Customers Credit Verification 2 Account Validation 2 User Authentication 2 Create Customers Credit Verification Service
Service Oriented Architecture (SOA) <ul><li>“Service-oriented architecture is a style of multi-tier computing that helps organizations share logic and data among multiple applications and usage modes” </li></ul><ul><li>Web Services enable an interoperable SOA </li></ul><ul><ul><li>Across programming languages </li></ul></ul><ul><ul><li>Across hardware and O/S platforms </li></ul></ul><ul><ul><li>Across computing platforms (J2EE, .NET) </li></ul></ul>
Web Services Conceptually Service Requestor Invoke Service Provider Publish Find Service Registry
Web Services Technologies WSDL Web Service (J2EE, PL/SQL, .NET,C/C++, Legacy …) Web Service Client (J2EE, .NET, PL/SQL …) Describes Service Invokes with XML Messages SOAP Points to description Finds Service UDDI Registry Points to service
Web Services Versus Web Applications <ul><li>HTML </li></ul><ul><li>User-to-program interaction </li></ul><ul><li>Static integration of components </li></ul><ul><li>Single use service </li></ul><ul><li>XML/SOAP </li></ul><ul><li>Program-to-program interaction </li></ul><ul><li>Static or dynamic integration </li></ul><ul><li>Re-usable service </li></ul>Web Application Web Services
Benefits of SOA and Web Services <ul><li>Application Re-Use </li></ul><ul><ul><li>Enables sharing of business logic </li></ul></ul><ul><li>Shields developers from mode-specific presentation </li></ul>HTML SOAP EJBs Browsers External Applications Web Presentation Business Logic Databases Firewall Application Server
Case Study: Dell <ul><li>Dell Business Model </li></ul><ul><ul><li>Direct material purchase represent 70% of revenue </li></ul></ul><ul><ul><li>Inventory asset exposure – prices drop 0.6% per week </li></ul></ul><ul><ul><li>Need effective supply chain planning </li></ul></ul><ul><li>Dell’s challenges </li></ul><ul><ul><li>Dell ships in 5 days, replenishes inventory in 45 days </li></ul></ul><ul><ul><li>Dell maintains an inventory that lasts about 30 hours </li></ul></ul><ul><ul><li>Manage large number of product transitions every year </li></ul></ul>
Business Opportunities: Dell <ul><li>Dell’s Solution: Vendor managed hubs </li></ul><ul><ul><li>Dell uses Web services based event management </li></ul></ul><ul><ul><li>Dell publishes a production schedule every 2 hours using web services </li></ul></ul><ul><ul><li>Vendors’ Inventory management systems determine what is needed for shipment </li></ul></ul><ul><ul><li>Vendors pick, pack, and ship in 90 minutes to Dell’s manufacturing units </li></ul></ul><ul><ul><li>Dell has no stock rooms now, 2 hours of inventory </li></ul></ul>
Oracle’s Web Services Strategy <ul><li>Make Web services pervasive </li></ul><ul><ul><li>Embed Web services across the infrastructure </li></ul></ul><ul><ul><li>Interoperate based on industry standards </li></ul></ul><ul><li>Build Web services on J2EE and XML </li></ul><ul><ul><li>Maximize productivity, minimize retraining </li></ul></ul><ul><ul><li>Inherit performance, reliability, security of OC4J </li></ul></ul><ul><li>Deliver simple and business Web services </li></ul><ul><ul><li>Enable business process based Web Services </li></ul></ul>
Oracle and Web Services Oracle11 i E-Business Suite Oracle Collaboration Suite Oracle JDeveloper 10g Oracle Application Server 10g Oracle Database 10g Platform Tools Applications
Oracle’s Investment in Open Standards <ul><li>Web Services WG (SOAP,WSDL,UDDI) </li></ul><ul><li>XMLP/SOAP WG </li></ul><ul><li>XML Schema WG </li></ul><ul><li>XML Query WG </li></ul><ul><li>WS-Choreography </li></ul><ul><li>WS-Security </li></ul><ul><li>SAML </li></ul><ul><li>WSRP </li></ul><ul><li>J2EE Web Services JSR </li></ul><ul><li>JAXM JSR </li></ul><ul><li>JAX-RPC JSR </li></ul><ul><li>Protocol </li></ul><ul><li>Repository </li></ul><ul><li>Messaging </li></ul><ul><li>RNIF WG </li></ul><ul><li>RNIF Interop </li></ul><ul><li>XMI Metadata WG </li></ul><ul><li>Component Model WG </li></ul><ul><li>Oracle is a Founding Member of the </li></ul><ul><li>Web Services-Interoperability Organization </li></ul>
What About Interoperability? J2EE .Net BEA Oracle Sun IBM Microsoft XML SOAP WSDL UDDI LDAP, SMTP, … Others
Oracle Application Server 10g J2EE & Web Services Portals and Forms Mobile & Wireless Business Intelligence e-Business Integration Management & Security Performance & Reliability
OracleAS Web Services Architecture Messaging Transactions Pooling Naming Security SOAP Servlet Apache HTTP Stateful Java Class Stateless Session EJB JMS Queue PL/SQL Stored Proc. HTML/XML Stream Stateless Java Class WSDL Web Service Client (J2EE, .NET, Portal, Mobile, PL/SQL …) Binding Static/Dynamic Request/Response Message Oriented OracleAS 10g SOAP Publish Find UDDI Java XML Binding <ul><li>J2EE Web services </li></ul><ul><ul><li>Standardized in J2EE 1.4 </li></ul></ul><ul><ul><ul><li>JAX-RPC 1.1, JAXR 1.0, JAXB 1.0, JAXP 1.2, JSR109 </li></ul></ul></ul>
Oracle JDeveloper 10g J2EE Web Services Development <ul><li>Complete Lifecycle </li></ul><ul><ul><li>Model, Build, Deploy, Debug, Profile </li></ul></ul><ul><li>Integrated Solution </li></ul><ul><ul><li>Publish Components </li></ul></ul><ul><ul><li>UDDI Lookup </li></ul></ul><ul><ul><li>Consume </li></ul></ul><ul><li>Based on J2EE </li></ul><ul><ul><li>Standards </li></ul></ul><ul><ul><li>More Choice! </li></ul></ul>Web Service Publishing J2EE Component Deployment J2EE Component Development SOAP Client & Server Generation UDDI Lookup WSDL Generation
Creating a PL/SQL Web Service using Oracle JDeveloper 10g
Database as a Web Service Provider SOAP J2EE (Business Logic) Oracle9iAS Web Services Framework Web Service Client Data Data Logic AQ/Streams SQL/Query SQL/DML XML Java PL/SQL OracleAS 10g JDBC
Oracle9iAS Web Services Framework Data Data Logic Batch Jobs XML SOAP Message Web Service Provider Service SQL Java PL/SQL WSDL Database as a Web Service Consumer
Web Services and Portals Different Data Sources and Applications OracleAS Portal OmniPortlet Different Layouts
Simple and Quick 1 2 3 Page Designer Select the Data Source Select the Layout Publish the Portlet
Web Services and Business Intelligence Discoverer Reports Personalization BI Beans OracleAS Business Intelligence Portal Oracle DB Web Services Data Warehousing ETL OLAP Data Mining
Web Services and Oracle Forms Forms Servlet OC4J Any Data Source Any Java Application Any Web Service Apache HTTP <ul><li>Run Oracle Forms applications on the Web </li></ul><ul><li>Reduce management with middle tier deployment </li></ul><ul><li>Integrate J2EE and Web services with Java Importer </li></ul>SOAP RMI JDBC HTTP HTTP Forms FMX Applications Forms FMX Applications Forms FMX Applications PJC PJC Java Importer
Mobile Access to Web Services <ul><li>Deploy your existing content to wireless devices </li></ul><ul><li>Reduce costs by developing content only ONCE </li></ul><ul><li>Provide personalized and localized access for all users </li></ul><ul><li>Access Web services through J2ME proxy </li></ul>SMS J2ME CHTML HTML XHTML Any Database Enterprise Apps Any Web Site WAP HTTP SMTP SMS 2G GPRS Voice 3G/UMTS Wap Nokia Motorola Voice IBM Tellme Other Palm.net Protocol Network Gateways OracleAS Wireless XML HTTP Web Services Web Services Proxy
OracleAS Integration One Platform for EAI, B2B, and Web Services Event Management Business Process Management Trading Partner Management Adapter Framework Audit Transform Translate Validate Integration Manager Secure J2EE Web Services B2B EAI Oracle Application Server Integration Oracle E-Business Suite 3 rd party Applications Legacy Systems Trading Partners Exchanges Service Providers
OracleAS powers Philippine Airlines Philippine Airlines uses OracleAS J2EE and Web Services Runs the Internet Infrastructure OracleAS Web Services Provides Data Directly from Backend Data Systems No Need for Intermediate Applications, Less Management Internal Only
Where do I Start? <ul><li>Look at existing technology investment and determine where Web services will add value </li></ul><ul><li>Look for low risk high benefit projects that do not disrupt existing operations </li></ul><ul><li>Focus on projects with short timelines and clear deliverables. </li></ul><ul><li>Develop deep understanding of the state of web services </li></ul><ul><ul><li>Decide which standards are appropriate for your enterprise </li></ul></ul><ul><li>Build out an entire Web services architecture </li></ul>
Web Services Futures SOA FOUNDATION ENTERPRISE SOA WS-Reliability WS-I Profile (SOAP, WSDL) APIs - JAX-*, XML-* (XQuery, Caching, ,,) Service Registry (UDDI) WS-Transactions WS-Security WS-Orchestration WS-Management App. Dev. Framework SOA CLIENTS Rich Client Portals Mobile Browser
Place Identity here (Remove Red Box) D E M O N S T R A T I O N Demonstration Title Here