Oracle Database Management Strategic Directions

1. Best Practices for managing Oracle database servers.
2. Oracle Fusion Middleware products like J2EE, ADF, XML, BPEL, SOA, Web Services, Discoverer...).
3. Oracle Application Servers and Apache.

Tuesday, February 27, 2007

Oracle Fusion: Transitioning Traditional Developers to Fusion

Oracle Fusion blog topics include:
  • Oracle Fusion: Transitioning Traditional Developers to Fusion
  • Oracle Fusion: Service Oriented Architecture
  • Oracle Fusion: Java
  • Oracle Fusion: Internet Development Tools
  • Oracle Fusion: JDeveloper 10gR3
  • Oracle Fusion: Trubix Training Roadmap
  • Oracle Fusion: Key Components
  • Oracle Fusion: The Oracle Fusion Technical Platform

Traditional Oracle developers that have grown up on Oracle Forms, Reports, Discoverer, PL/SQL, etc. are going to have to acquire the up and coming skills needed with Internet development projects. Java and .NET are becoming the primary solutions being used to develop new Internet solutions despite other options being available.

Oracle Fusion tools are going to hide developers from a lot of the technical complexity behind Oracle Fusion. However, dependent upon the customizations made to Oracle Fusion applications, developers may need a strong understanding of the technical components that are the foundation of Oracle Fusion.

There are three types of developers that are likely to need to work with products in the Oracle Fusion Technology Platform:
  • Traditional Oracle Developers - Developers that have used Oracle Forms, Reports, Discoverer, PowerBuilder, Visual Basic, C/C++, etc. are going to need to learn the technologies supported in Internet development environments. Most Oracle developers are going to have to be knowledgeable with some or all of these technologies.
  • Traditional Oracle Apps Developers - If you are a developer who has customized Oracle, Siebel, PeopleSoft, JD Edwards, Retek, Stellent and you are not likely to hit the lottery jackpot, then learning the Oracle Fusion Technology Platform is in your future.
  • Internet Developers - Developers building Internet applications are likely to work with some or all of the products we have discussed in this article. Internet developers may be working with Eclipse instead of JDeveloper, or Hybernate instead of TopLink or WebSphere instead of the Oracle Application Server. However the principles of Frameworks, ORMs, Design Patterns, J2EE, Managing Web Services, XML and SOA are still going to be technical areas that need to be understood.

It is important to understand that components such as J2EE, Web Services, XML, SOA, etc are not just tied to Oracle. They are based on open standards. Skills in the technology discussed in this article are incredibly valuable in any Internet development environment.

These open standard components are moving into your future like a freight train. They require skills that are going to be incredibly marketable and valuable in the future.
Friday, February 23, 2007

Oracle Fusion: Service Oriented Architecture

Oracle Fusion blog topics include:
  • Oracle Fusion: Service Oriented Architecture
  • Oracle Fusion: Java
  • Oracle Fusion: Internet Development Tools
  • Oracle Fusion: JDeveloper 10gR3
  • Oracle Fusion: Trubix Training Roadmap
  • Oracle Fusion: Key Components
  • Oracle Fusion: The Oracle Fusion Technical Platform
Kids in kindergarten and first grade understand all the key components of the Service Oriented Architecture (SOA). They then enter second grade and lose all their expertise. Then twenty, thirty and forty years later as adults they take a number of classes to learn everything they need to know about SOA that they forgot in second grade.

If you truly want to understand SOA watch a bunch of young kids play with legos. Legos by themselves are a number of simple building blocks. The true power of legos is that they have connectors that allow simple individual legos to connect to other legos. If a kid knows that one set of legos can connect to another set of legos, they realize they can build complex toys with these fundamental building blocks.
  • A service is like an individual lego block. A service is a well-defined, self contained software component that is not dependent on any other objects to perform its task.
  • A software service can interact with other software services to build complex applications.
  • Sets of connected legos can be connected to other connected legos to build more complex structures. Web services are used to connect software services to each other.
  • Web Services Description Language (WSDL) is used to help web services interact with each other. A service (provider) describes its service to a directory for example an Universal Description Discovery and Integration (UDDI) so other software services (consumers) can be aware of the service and can get information to understand how to use the service.
  • A service consumer can send a query request to a directory to get information on finding a service and to get information on how to use the service. The directory returns a WSDL that gives a software service (consumer) the WSDL that can be used to request the service to the service provider. The service provider then sends the response using WSDL. WSDL can be thought of as the connectors that let the services interact with each other. WSDL uses XML to communicate data structure information back and forth between the service provider and the service consumer.
Software services are independent software components that provide some type of well-defined function. Web services use WSDL, directories and XML are used to help services communicate with each other. Since software services communicate using WSDL and XML it allows COBOL, C, PL/SQL, .NET, Java and other services of different types communicate with each other.

Most of these technologies are based on open standards and are independent of any vendor. An important point is if you need one you are likely to need a lot of the others.

The ability to quickly build composite Internet applications is very important to a lot of organizations. This can significantly reduce costs and time to market. The ability to have a high degree of reuse is also an important key for this. The tools we’ve listed have become a popular way to achieve these results.

SOA is the glue (framework) that makes it all come together. SOA allows independent software components (services) that are loosely coupled to be brought together to form complex composite systems. SOA allows self-describing, platform independent software components to be combined with new and legacy systems.
  • A software service is the encapsulation of some operation, function or task encapsulated into an entity that can be accessed. A service is software that generates some type of result when executed.
  • A Web service is a Web-based application (software service) that uses open standards based on XML to transport protocols to exchange data with calling applications. An application can call a Web service to perform a task or business operation. Web services can be combined to form complex (composite) applications similar to how simple lego blocks can be combined to build complex lego systems.
  • Messages are how services communicate data with each other.
  • The eXtensible Markup Language (XML) combines meta data with data to build messages that support complex data processing and transformations. Data transformations often play a key role in SOA environments.
  • Web Services Description Language (WSDL) is a standard used to create XML documents that define a Web service and how to access it.
  • An Enterprise Service Bus (ESB) is used to communicate messages between software services.
  • An SOA Registry is a web catalog containing information about what each web service does.
The Oracle SOA Suite is used for designing and deploying service oriented architectures.
Runs on any open standard J2EE 1.4 platform. The SOA suite uses:
  • Web Services Manager.
  • Enterprise Service Bus.
  • Web Services Manager (governance).
  • BPEL Process Manager (formalize rules).
  • Business Activity Monitor.
The Return On Investment (ROI) of using SOA includes:
  • Improves ability to roll out new and enhanced business processes.
  • Reuse of business processes.
  • Technology driven ROI to reduce operational costs and leveraging IT assets.
  • Increased flexibility in delivering services.
  • Transforming business processes by reducing cycle times and improving product delivery.
Moving to SOA:
  • Is not just about learning the new technologies. Understanding how to integrate business processes and IT is as important as the deployment and management of Web services.
  • The SOA roadmap needs to be owned by the business side versus the IT side.
  • Service life cycle management is important.
  • Identity management plays an important role in SOA.
  • Security policies can be applied to Web services.
  • Understanding the full capabilities of the application server and portal technology are important.
  • Conformance to open standards and hot pluggable capability is important.
Key factors for success when implementing SOA include:
  • Put a strong focus on the business value not the technology.
  • Starting on small projects and learning successful practices before trying to implement SOA on a larger scale.
  • Quality of design and web services.
  • A solid understanding of XML.
Tuesday, February 20, 2007

Oracle Fusion: Java

Oracle Fusion blog topics include:
  • Oracle Fusion: Service Oriented Architecture
  • Oracle Fusion: Java
  • Oracle Fusion: Internet Development Tools
  • Oracle Fusion: JDeveloper 10gR3
  • Oracle Fusion: Trubix Training Roadmap
  • Oracle Fusion: Key Components
  • Oracle Fusion: The Oracle Fusion Technical Platform
Java is a portable language that runs in PDAs, browsers, Web Servers, Application Servers and Database Servers. Java is getting faster and faster every year. Java as a language has gone through different versions over the years for example, JDK 1.3, JDK 1.4, JDK 1.5 and JDK 1.6. A version of Java has different editions.

The Java Enterprise Edition (J2EE) is a version that runs in application server environments. J2EE is also an architectural platform for enterprise level applications. J2EE supports applications running across the Client, Web, Application and Enterprise Information System (EIS or database tier). Some of the benefits of J2EE include:scalability, portability, maintainability and reusability.
J2EE supports a lot of different types of Java applications. Some of the J2EE components include:
  • Java Servlets
  • JavaServer Pages
  • Enterprise JavaBeans
  • Web Services
  • Remote Method Invocation (RMI-IIOP)
  • Java Naming and Directory Interface (JNDI)
  • Java DataBase Connectivity (JDBC)
  • Java Message Service
  • Java Transaction API
  • Java Activation Framework (JAF)
  • ava Authentication and Authorization Service (JAAS)
  • Java API for XML Processing (JAXP)
  • SOAP with Attachments API for Java (SAAJ)

Java 2, Enterprise Edition 1.4 - There are different Java Editions:
  • J2ME: Micro Edition – No GUI classes, no Swing, minimum required for mobile devices.
  • J2SE: Standard Edition – Micro Edition plus extras for desktop applications. The Standard Edition does not need an Application Server. Uses Swing and AWT for user interfaces. Swing and AWT contain Java classes for user interfaces.
  • J2EE: Enterprise Edition – Standard Edition plus support for enterprise solutions that run on application servers. Requires an Application Server to run.

The J2EE 1.5 edition has been renamed to Java 5.0. The external name is 5.0, the internal name for Sun is 1.5. The new editions are named:
  • Java ME 5.0
  • Java SE 5.0
  • Java EE 5.0

The Oracle database and application server support different releases of Java. For example The Oracle database server supports:
  • Oracle 9i (JDK 1.3)
  • Oracle 10g (JDK 1.4)
  • Oracle 11g (JDK 1.5)

The Oracle Database Server supports the Standard Edition without the GUI APIs. There is no reason to create a button or drop down list in the Oracle kernel.

The Oracle Application Server runs the Enterprise Edition. The Oracle 10g Application Server 10.1.3 supports the JDK 1.5 version of Java.

There are a lot of options of how to combine different types of Java applications to build an enterprise application. Components like JavaServer Pages (JSP), Servlets, Java Server Faces (JSF), ADF Faces are some of the options for buildling user interfaces. Enterprise JavaBeans contain the business logic for enterprise applications.

Java compiler technology has involved significantly to improve the performance of Java applications. Java Database Connectivity (JDBC) contains APIs for performing database operations. JDBC drivers (communication between database and Java programs) has improved significantly to improve the performance of Java database applications. The performance and scalability of Java applications continue to improve.

XML has added a lot to Java flexibility. Features like JavaServer Faces and ADF Faces increase flexibility by leveraging the benefits of XML.

One of the challenges is that there is a significant learning path for getting up to speed on Java. A sample training path for just Java includes the list below. Be aware that this is a path for a senior development lead. Most Java programmers can start with the first four classes to build Enterprise applications.
  • Java Fundamentals (J2SE)
  • Java 2 Enterprise Edition
  • Web Services
  • XML
  • SOA

Oracle Fusion: Internet Development Tools

Oracle Fusion blog topics include:
  • Oracle Fusion: Service Oriented Architecture
  • Oracle Fusion: Java
  • Oracle Fusion: Internet Development Tools
  • Oracle Fusion: JDeveloper 10gR3
  • Oracle Fusion: Trubix Training Roadmap
  • Oracle Fusion: Key Components
  • Oracle Fusion: The Oracle Fusion Technical Platform
This article is going to take a look at why components of the Oracle Fusion Technical Platform play important roles for Internet applications.
Internet Development Tools?

Client/Server is dead. It’s been dead for a while, its just that nobody has removed the carcass. Most new applications are being written as Internet applications. The one constant about Internet applications is they are constantly changing. Internet development environments need tools and technology that facilitate change.

Most Internet development environments need the following:
  • A flexible environment that supports change.
  • Ability to leverage existing applications with new applications. Building composite applications is very important.
  • A commitment to open standards that are portable across platforms.
  • Mature tools that support the technical infrastructure.
  • Software that is reusable.
  • Developers that understand the technology and are accessible.
  • Ability to plug and play application components.
  • Loosely coupled and highly cohesive systems.
  • A software development environment that can align the business processes with the technology (IT) side.
  • Technology that can support the enforcement of software engineering best practices.
  • Strong deployment and software management infrastructure.
  • Technology that can easily interface with legacy and future applications.
  • Ability to support service life cycle management.
  • A strong security model.
  • Ability to focus on the “business value” and not the technology.

Over time technologies have emerged that are providing the above. They include:
  • Java
  • .NET
  • Integrated Development Environments
  • Application development frameworks
  • Application servers
  • Web Services
  • Software to organize Web Services.
  • Software to monitor applications.
  • eXtensible Markup Language
  • Business Process Execution Language
  • Service Oriented Architecture
  • Identity Management
  • Single Sign-On
  • Software to manage the entire infrastructure of an n-tiered environment.

These technologies are all based on open standards and are independent of any vendor. An important point is if you need one you are likely to need a lot of the others.

Open standards have become a key component of any Internet solution. To write Internet applications today, requires a strong commitment to open standards. The reason is to operate with the widest possible scope requires using open standards solutions. The Internet is not ideal for a proprietary vendor environment.

Why The Need for Change?

Organizations building financial, supply-side, customer service, manufacturing, health care, communication systems, etc. have struggled with how to develop, integrate, deploy and maintain applications.

There are also other organizations and individuals building applications out on the web. The ability to easily tie into their functionality can reduce time to market as well. A simple example would be if you opened a chain of Mexican restaurants around town, having someone be able to tie a map-generating service with a mexican food locator service can make it very easy for customers to find your restaurants. Of course good food also helps them be motivated to find your restaurant.

To be able to make integrated components work together requires an infrastructure available to support it such as:
  • Portability (Java)
  • Communication (XML)
  • Integration (Web Services)
  • Integration Management (BPEL)
  • Connectivity (SOA)

Today's Java applications are not just using J2EE. They are very often using XML, Frameworks, IDEs, Design Patterns, Web Services, ORMs, BPEL, SOA, Architectures with Java. This requires that some developers know a lot more than just Java. The point is this environment is a lot different than the traditional Oracle Forms/Reports, PL/SQL, C/C++, PowerBuilder and VB environments.

These tools and solutions are becoming one of the primary ways of building Internet applications. Organizations are having incredible success with these tools and solving the meaning of life and others are crashing and burning. This is not different than any other wave of new technology.

There are a lot of misperceptions about working with these new technologies as well. Vendors are promoting how easy everything is and how quickly enterprise scalable applications can be built. Vendors are showing all the point and click capability of IDEs but are not explaining the actual complexity required to customize and maintain these type of applications. At the same time brain surgery is simple if you know how to do it. Making sure the right skill sets, training, mentoring, design, architecture, management, deployment methods and risk analysis are key to these projects just like any other project you’ve ever worked on.

The ability to quickly build composite Internet applications is very important to a lot of organizations. This can significantly reduce costs and time to market. The ability to have a high degree of reuse is also an important key for this. The tools we’ve listed have become a popular way to achieve these results.

The Fusion Technical Platform

Okay, so you jump on the bandwagon and say “I’ve seen the light” and you want to just on board with all these new tools. Now you have a lot of questions to answer. Below are just a few of the questions you now have to answer:
  • IDE: JDeveloper, Eclipse, IBM Websphere Studio, Java Studio, ...
  • Application Server: Oracle, WebSphere, WebLogic, JBoss, Topcat, ...
  • Language: Java, .Net, Ruby on Rails, APEX, PHP, ...
  • J2EE Framework: Struts, ADF, ...
  • User Interfaces: JSF, JSP, Servlets, ADF Faces, UIX, .NET, HTML, DHTML, CSS, ...
  • Design Patterns: Which ones to use.
  • ORMs: TopLink, Hybernate, ...
  • How to manage web services
  • How to tie everything together
  • Deployment strategies
  • Architectures

There is a wide choice of vendors and products. I have a lot of options so which ones do I now choose? What are the ramifications if I pick the wrong components? Do all the products I am looking at work together?

Oracle has selected the Oracle Fusion Technical Platform as their foundation for their next generation Internet applications. By following this technical platform, you are choosing a platform that Oracle applications is following, so you known it works.

All these products conform to open standards. So it is not required to use JDeveloper or the Oracle Application Server but working with one vendor that conforms to open standards can simplify the development and integration process. This is not the complete set of tools that make up Oracle Fusion. Yet the tools discussed contain a manageable start towards understanding the tools being used in Internet development projects..



Popular Classes

  • Oracle11gR2 New Features

  • Intro to Java Programming
  • Intro to Linux for Oracle
  • Intro to PL/SQL Programming
  • Oracle11gR2 Fusion Dev Wkshp I





    The Trubix Blog is focused on discussions on strategic directions in database technology and the challenges Oracle technologists are addressing today and in the future. This site will focus on issues and challenges of database management that cannot be resolved with a code snippet. There are already a lot of great websites out there with tons of code samples. We would like to facilitate more discussions on issues Oracle technologists are dealing with today that a quick search on the Internet cannot solve. There will also be a group of recognized industry leaders that will also participate in this blog. This blog is an extension of the Tim Tam Group, an international group of industry leaders that meet once a year to discuss strategic directions in the industry.



    Powered by Blogger