Cross Column

Showing posts with label Book Review. Show all posts
Showing posts with label Book Review. Show all posts

Friday, September 27, 2013

Book Review: Developing Web Applications with Oracle ADF Essentials

At the end of book, the author has claimed that:
If you have followed the exercises in this book, you are ready to build real-world ADF Essentials applications and can consider yourself an ADF Essentials journeyman.
I cannot agree more. If you are new to ADF (Oracle Application Development Framework) programming, you probably need to add this cookbook to your toolbox. Unfortunately, some hyperlinks embedded in the book are broken. At the end of this article, you can find the correct links to some of the important topics covered in the book.

Bottom-up Approach


ADF Essentials toolkit is used in this book to help you learn ADF programming. The recent released ADF Essentials gives developers a free version of the core components of the ADF framework which they can use to build an end-to-end ADF-based solution including advanced UI components, taskflows,[4] the binding layer and business components or EJBs.

In this book, the author uses a bottom-up approach which introduces you to the ADF programming. A full-blown DVD rental application (in Chap 6) was built, tested and deployed using the following technology stack:
  • The free MySQL database[5]
  • The free GlassFish application server[7]
    • Note that you also need Java Development Kit[6]
  • The free ADF Essentials toolkit[3]
  • The free JDeveloper development tool[9]
    • Oracle also supports ADF Essentials as part of their Oracle Enterprise Pack for Eclipse (OEPE) product.[8]
Although GlassFish was used in the exercises, this book also discusses features that are available only on WebLogic Server (WLS) and its associated management system—Oracle Enterprise Manager Grid Control. For example, ADF logger is the preferred logging component (vs. log4j and Logback) for ADF applications. And there are differences in the supported features for logging on GlassFish and WLS:
  • Logging configuration
    • ADF logging is controlled by the logging.xml file.
    • JDeveloper offers a nice interface for managing this file for the built-in WLS.
  • Log monitoring
    • WLS—logging can be read and analyzed using Oracle Enterprise Manager Grid Control.
    • GlassFish—logging can only be read directly from server.log file.

ADF Framework


All ADF applications consist of the following parts:


  • View layer
    • The View layer consists of the pages that are displayed to end users (JSF pages or JSF page fragments).
    • ADF Faces is based on JSF and built on top of Trinidad, an open source JSF framework.
  • Controller layer
    • The Controller layer consists of ADF Task Flows[4,17] that control the flow between the elements of the view layer
  • Model layer
    • ADF Model is a binding layer to bind the UI (ADF Faces based on JSF) without tight coupling UI components to the back end data model.
  • Business Service layer
    • The Business Service layer provides services to query and manipulate data.
    • There are many ways to build business services—in this book, it uses ADF Business Components, but you can also use, for example, JPA Entities and EJB 3.0 Session beansPOJOsweb services, and so on.
  • Database layer
    • The Database layer is where your data is stored persistently.

The Book


In this book, it shows you:
  • How to set up the entire infrastructure for building ADF applications
  • How to install the necessary interconnections and wired everything together
  • How to add Java code to your application to implement customized business logic
  • How to build and deploy ADF applications to application servers
  • How to debug ADF applications
  • How to build scalable structure using foundation workspaces and ADF libraries
  • How to secure ADF application (Apache Shiro[15] is used in this book)
Without doubt, you will be able to write real-world ADF applications after reading this book. But, before you roll up sleeves and jump to the programming, try to read the following guidelines first:
  • ADF Naming and Project Layout Guidelines[11]

References

  1. Developing Web Applications with Oracle ADF Essentials (reviewed book in this article)
  2. journeyman (wikipedia)
  3. ADF Essentials downloads
    • Version 11.1.2.4 was used in the book.
    • After navigating to this home page, then click on
    • Oracle ADF Essentials - FREEOracle ADF Task Flow in a Nutshell
  4. Oracle ADF Task Flow in a Nutshell (Xml and More)
  5. MySQL downloads
    • Free Community Server edition Version 5.6.12 was used in the book.
  6. JDK 7 downloads
    • In order to be able to install and run GlassFish, your system first needs to have JDK 7 installed. Jdk1.7.0_25 was installed and used in the book.
  7. GlassFish downloads
    • GlassFish Server Open Source Edition 3.1.2.2 (for Windows platform) was used in the book.
  8. Oracle Enterprise Pack for Eclipse 12c (12.1.2.1.1)
    • Oracle Application Development Framework - Oracle ADF
    • Oracle JDeveloper downloads
      • Studio Edition 11.1.2.4.0 was used in the book.
    • ADF Naming and Project Layut Guidelines v1.00 (16/Jan/2013)
    • Oracle ADF Essentials
    • ADF Naming and Project Layout Guidelines (By Chris Muir)
    • Adventures in ADF Logging - Part 1 (Duncan Mills)
    • Apache Shiro
    • Using Bind Variable to Implement Range Selection Declaratively (Xml and More)
    • Understanding Task Flow Transaction and Savepoint Support in Oracle ADF (Xml and More)

    Sunday, May 5, 2013

    Book Review: Managing Multimedia and Unstructured Data in the Oracle Database

    There is a large amount of unstructured data in the real world. In 1998, Merrill Lynch cited a rule of thumb that somewhere around 80-90% of all potentially usable business information may originate in unstructured form[1].

    There is no doubt that we need to process this information to extract meaning and create structured data about the information.  One approach will be using Oracle Database to manage such data which includes multimedia (aka "rich media").  This book:
    aims to help readers understand and manage unstructured data using Oracle Database.


    Dealing with Unstructured Data


    Unstructured Data refers to information that either does not have a pre-defined data model and/or does not fit well into relational tables[1].

    Relational data can be considered a subset of structured data.  Besides relational databases, structured data can also be stored in non-relational format such as in XML, inverted list databases[2], or object databases[4]. XML does not conform with formal structure of data models, but nonetheless it contains tags to separate  semantic elements and enforce hierarchies of records and fields within the data.  Therefore, one can consider XML as semi-structured.

    It's possible to store unstructured data in a column of a relational table, which is structured.  The traditional approach has been to just treat it as a blob (binary large object), but with a greater understanding of the variety of unstructured data types (i.e., video, audio, photographs, documents, etc.) that exist, the need to manage them has grown.

    Metadata


    To manage unstructured data, metadata is crucial. It is the data that describes the unstructured data and gives meaning to it.   Metadata can be used for
    • Searching (covered in Chapter 4, Searching the Multimedia Warehouse)
    • Annotation
      • Adding meaning to unstructured data objects
    • Relating unstructured data objects (or adding structure)
    • Matching data stored in relational databases
    It is envisaged that in the future technology will improve to the point that algorithms will be able to identify objects and people in a video or photo, and understand sounds and complex speech in audio files. When that point is reached, the need for metadata may be reduced or limited to a smaller scope.

    Oracle Database


    In the past few years, with changes in database technology and improvements in disk performance and storage, it now makes business sense to use the Oracle database to store and manage all of an organization's unstructured data.

    For a database management system to begin to correctly handle the unstructured data, it must have support for objects[4].  The use of a database that can support objects makes it a lot easier to manage large volumes of digital objects. Though these objects can be stored in a file system, there are now advantages to having them stored inside the database.  In Oracle, both relational data and objects are supported.  After adding Online Analytical Processing (OLAP)[5] and XML[6], Oracle database grew from being relational to one supporting most structures.

    Oracle multimedia uses blobs and new types, which can be accessed and used as required. In addition, it supports a variety of methods that simplify the act of loading and manipulating digital objects. This is covered in in Chapter 7, Techniques for Creating a Multimedia Database.

    Most databases can enable unstructured data to be stored in them, but do not support the management, control, and manipulation of that data. Even though Oracle is a market leader in unstructured data management there are still a large number of major improvements needed.  This is covered in Chapter 9, Understanding the Limitations of Oracle Products.

    Scalability


    When working with multimedia and unstructured data, a row in the database can be 10 GB in size, which could be greater than an entire relational database.  Therefore, traditional tuning techniques might fail as the rules regarding them no longer make sense.

    For example, in a multimedia warehouse (covered in Chapter 4), the concept of trying to achieve logical data consistency is not attempted, as it becomes apparent that the amount of data that is fuzzy forms the bulk of most of the digital objects.  So, novel solutions to tuning problems are needed.

    In Oracle Multimedia, there are also built-in supports for scalability.  For example, the new 11G Securefile BLOBS using parallel techniques, that allows of loading of files much faster than using traditional BLOBS.

    From the hardware front, technology also offers help.  With the recent introduction of a low-cost terabyte SATA disks, and with the use of low-cost SAN's, the ability to store a petabyte is within the reach of a number of organizations.

    To handle large amount of unstructured data, issues seen and solutions provided by Oracle include:

    • Hitting limits on the image size
      • An Oracle BLOB can be unlimited in size
    • Reaching internal structural limits within the database (max number of files that store data)
      • Oracle's use of tablespaces allow a large number of multimedia files to be stored in it
      • With the ability to control where a blob is stored, files can be split across multiple tablespaces and devices 
    • Dealing with fragmentation 
      • By using locally managed tablespaces, fragmentation is removed as a performance issue. 
    • The efficient management of those images (for example, backup/recovery)
      • Using partitioning on LOBS allows a very large number of multimedia files to be stored and efficiently managed
      • Using RMAN, Oracle can be configured to back up large amounts of data
    When dealing with Multimedia, one has to look at the different dimensions of scalability to best understand how the Oracle Database best handles it.  This includes managing the CPU, memory, disk I/O, and network bandwidth. All of the above are covered in Chap 8, Tuning.

    References

    1. Unstructured data (Wikipedia)
    2. ADABAS (Wikipedia)
    3. 3D Printing (Wikipedia)
    4. Object Database (Wikipedia)
    5. Oracle OLAP
    6. Oracle XML DB
    7. Managing Multimedia and Unstructured Data in the Oracle Database (Reviewed Book)

    Sunday, April 21, 2013

    Book Review: Getting Started with Oracle Event Processing 11g

    Event processing is a method of tracking and analyzing (processing) streams of information (data) about things that happen (events),[1] and deriving a conclusion from them. Complex event processing, or CEP, is event processing that combines data from multiple sources[2] to infer events or patterns that suggest more complicated circumstances. The goal of complex event processing is to identify meaningful events (such as opportunities or threats)[3] and respond to them as quickly as possible.

    Using airport as an example, events happening in the airport that may require tracking include missing luggages, passenger movements, etc.  An architecture combining Event Driven Architecture (EDA) and Service Oriented Architecture (SOA) can be deployed for such purpose.  A system utilizing Oracle products is illustrated in the following diagram:




    In this book, it has covered the following topics and more:
    • Product history of Oracle CEP
    • Event Driven Architecture
    • Requirements of Complex Event Processing
    • Creating Event Driven Architecture (EDA) applications using Oracle CEP

    History of Oracle Event Processing Solution 11gR1


    A product initially named Elvis (or WebLogic Event Server) was developed by the Time and Event Driven (TED) team in early 2007 at BEA Systems Inc. After several "man years" of effort, this technology was first released on July 16, 2007 from BEA Systems.

    In parallel, a Complex Event Processing "engine" was researched and developed separately within Oracle.   Starting from 2008, WebLogic Event Server and this CEP "engine" were integrated.  Finally, on July 1, 2009, these combined technologies were released as the Oracle Event Processing Solution 11gR1.  This product is claimed to be one of the most complete and powerful in-memory extensible event analytics technologies available in the market.

    Limitations of Traditional Systems for Event Processing


    After the emerging of social media, data are continuously created in vast quantities.  This proliferation of data (or Big Data grow) has brought challenges to traditional systems for tracking and analyzing streams of information (data) about things that happen (events).

    First thought on supporting events is using traditional systems.  However, they have their limitations:
    • Traditional computing systems are mostly based on database
      • Information must be inserted and statically placed. Only after that, can users analyze and respond.  
      • Frequent disk reads and writes will quickly become system's performance bottlenecks.  
    • Traditional JEE Application Servers adopt the send/reply implementation paradigms
      • This has introduced delays that won't meet the real-time requirements needed for event processing.
    So, a new Event Driven Architecture (EDA) was introduced, which processes event streams in memory using a defined window of time or other filtering options.

    Event-Driven (Architecture) Based Systems


    Event-driven architecture (EDA)[5] is a software architecture pattern promoting the production, detection, consumption of, and reaction to events.  Before systems can process any event, they need to normalize the incoming data stream by converting them into events and event types.  These representations are then processed downstream or upstream in the Event Processing Network (EPN).

    Before proceeding further, let's introduce you the following definitions:
    • Event
      • In the context of this book, an event is an object that has a change in its state immediately, or over a period of time.
      • As these events continuously flow they need to be identified, have a response very quickly and are often "transported" only in memory, so using a database is not a recommended design option.
    • Event stream
      • Events arrive for processing in an event stream or streams and they are time ordered.
    • Event type
      • Event classification which defines the properties (i.e., name-value pairs) associated with the event.
    • Event Processing Network (EPN)
      • The EPN (aka Directed Flow Graph) is designed as a loosely-coupled collection of event nodes, each performing a unique action on the events as they pass through the network.
      • Event nodes could be one of the following types:
        • Event adapter
        • Event channel
        • Event cache and event POJO Bean node
        • Event processor
          • Filtering, correlation, aggregation, or pattern matching can be applied
    To facilitate event processing, an in-memory extensible event technology built on EDA has been provided by Oracle, which is introduced in this book:



    The Book[6]


    This book is aimed for both developers and architects that need to learn about event processing, stream processing, and the event-driven architecture.  It uses tutorials and examples to help you create event-driven applications using Oracle CEP.  Finally, it covers some of the above components seen in the diagram in details.


    References

    1. Luckham, David C. (2012). Event Processing for Business: Organizing the Real-Time Enterprise. Hoboken, New Jersey: John Wiley & Sons, Inc.,. p. 3.
    2. Schmerken, Ivy (May 15, 2008), Deciphering the Myths Around Complex Event Processing, Wall Street & Technology
    3. Bates, John, John Bates of Progress explains how complex event processing works and how it can simplify the use of algorithms for finding and capturing trading opportunities, Fix Global Trading, retrieved May 14, 2012
    4. Complex event processing (Wikipedia)
    5. Event-driven architecture (Wikipedia)
    6. Getting Started with Oracle Event Processing 11g (Reviewed book)
    7. All Book Reviews on XML and More

    Saturday, November 24, 2012

    Book Review: Oracle 11g Anti-hacker's Cookbook‏


    The number of security threats related to operating systems and databases are increasing every day, and this trend is expected to continue. Therefore, effective countermeasures to reduce or eliminate these threats must be found and applied.

    "Oracle 11g Anti-hacker's Cookbook" covers all the important security measures that can be deployed to protect hackers from attacking your Oracle database.  It provides many useful tips and tricks.  As such, you should add this book to your arsenals of Oracle security.

    Connecting to the Database


    There are different ways of connecting to an Oracle database (i.e., creating an Oracle session):
    • Programmers 
      • Use ODBC, JDBC and OCI 
    • Database Administrators
      • Use SQL*Plus and Oracle Enterprise Manager (OEM)
    Although connection concepts apply to all utilities, we use SQL Command Line (SQL*Plus) for illustration, which is the principal DBA interface into Oracle.


    The Weakest Link


    As shown above, you can see there are multiple systems involved in the database connection.  Any system involved can have one or more vulnerabilities that can be exploited by hackers in a threat action.

    Security practitioners[2] often point out that security is a chain; and just as a chain is only as strong as the weakest link, a database security system is only as secure as its weakest component.

    Therefore, there are no short-cuts for Oracle protection.  In this book, it describes lots of tips and tricks which can be deployed to fortify components along this connection chain.

    Types of attacks


    There can exist many types of attacks on an Oracle session.  Here are some of them as covered in this book:
    • Man-in-the-middle-type (MITM) attack
      • Attack in which an interposed attacker hijacks a client connection
    • TCP and UDP protocol-level attack
      • Targeted towards the network traffic and the data in flight
    • TNS poison attack[3]
      • TNS poison attack is classified as a man-in-the-middle-type attack
    • Replay attack
      • An attack in which a valid data transmission is maliciously or fraudulently repeated or delayed
    • DoS attack
      • To fill up the the file systems on the disk with useless log messages
      • To send a succession of SYN requests
      • To send large numbers of IP packets with the source address faked to appear to be the address of the victim
    • IP Spoofing
      • To create Internet Protocol (IP) packets with a forged source IP address, with the purpose of concealing the identity of the sender or impersonating another computing system
    • Dictionary and pattern matching type attack
    • Password cracking
    • Other attacks 
      • Target the database, listener, and configuration files
    And lastly and the most importantly, the weakest part of your Oracle system will be administrators, users or tech support people who fall prey to social engineering.

    General vs. Oracle Specific Recipes


    In this book, many recipes are provided to show how those security risks could be mitigated or reduced.  To sum up, recipes can be classified into general or Oracle specific security measures.  For example, to confront different interception-type attacks, you can use either Oracle Advanced Security encryption and integrity, or alternatives such as IPSEC, stunnel, and SSH tunneling.

    For general measures, topics such as OS security and Securing the network and data in transit are covered in Chapter 1 and 2.  Starting from Chapter 3, security measures using Oracle products start emerging, which includes the following:
    • Oracle RMAN
    • Oracle Enterprise Manager
    • Oracle Virtual Private Database
    • Oracle Label Security
    • Oracle Database Vault
    • Oracle Audit
    • Oracle Cryptographic API
    • Oracle Wallets

    Other Recommendations


    In the book, it also make suggestions such as:
    • You should implement data audits to detect the origin of the attack or the source of the inappropriate data access or modification
    • You  should develop and implement appropriate alerting systems to proactively detect and prevent attacks on systems and data
    • You should test these security measures first before their final deployment
    • You should perform security assessments regularly on your system

    Picture Credit


    • Figure 3-2 Remote Connection in Oracle® Database Express Edition 2 Day DBA 10g Release 2 (10.2)

    References

      1. Oracle 11g Anti-hacker's Cookbook
      2. Viega, John & McGraw, Gary.  Building Secure Software: How to Avoid Security Problems the Right Way. Boston, MA: Addison-Wesley, 2002.
      3. Oracle Database TNS Listener Poison Attack
      4. Replay Attack (wikipedia)
      5. Oracle® Database Installation Guide 11g Release 2 (11.2) for Linux
      6. Securing the Weakest Link
      7. The Onion Model

      Sunday, August 19, 2012

      Book Review: "Getting Started with Oracle Data Integrator 11g: A Hands-On Tutorial"

      In July 2010, Oracle Data Integrator 11gR1 (or ODI) was made available to the marketplace.  It has roots from the Oracle acquisition of Sunopsis in October 2006.  This product is important because:
      • It is Oracle's strategic data integration platform 
      • It is the first version of ODI architected, designed, and implemented as part of Oracle

      Challenges of Data Integration Tasks


      Data integration tasks include loading, enrichment, quality control and transformation of data.  The challenges of its tasks include:

      • Data Complexity
        • Data is stored in disparate applications, databases, files, operating systems, and in incompatible formats.
        • Large volume of data has to be exchanged
      • Transformation Complexity
        • Complex transformations needed are beyond the capabilities of the SQL languages.
      • Operational Complexity
        • Systems with data of heterogeneous types flowing across different platforms are not easy to design or maintain.  In addition, data security, integrity and auditing requirements add more complexity.

      Oracle Data Integrator

      Facing such challenges, ODI has provided a unique solution.  This is where its ELT architecture (Extract-Load-Transform) comes into play. The concept with ELT is that instead of extracting the data from a source, transforming it with a dedicated platform, and then loading into the target database, you will extract from the source, load into the target, then transform into the target database, leveraging SQL for the transformations.
      To some extent, ETL and ELT are marketing acronyms. When you look at ODI for instance, it can perform transformations on the source side as well as on the target side. You can also dedicate some database or schema for the staging and transformation of your data, and can have something more similar to an ETL architecture. Similarly, some ETL tools all have the ability to generate SQL code and to push some transformations at the database level.

      However, the key differentiators of ODI are as follows:
      • Its ability to dynamically manage a staging area (location, content, automatic management of table alterations)
      • Its ability to generate code on source and target systems alike, in the same transformation
      • Its ability to generate native SQL for any database on the market
      • Its ability to generate DML and DDL, and to orchestrate sequences of operations on the heterogeneous systems

      The Book


      This book has done a great job of introducing ODI at both conceptual and operational levels.  It covers how ODI leverages next generation Extract-Load-Transformation technology to deliver extreme performance in enabling state of the art solutions that help deliver rich analytics and superior business intelligence in modern data warehousing environments.

      At conceptual level, it has discussed how ODI can deal with heterogeneous datatypes with ease and efficiency.  For example, it introduces the concepts of:
      • Abstraction
        • ODI models and data integration objects are abstracted to be independent of the physical data server type (database, file, JMS queues and topics, and so on), so they will have a common look and feel despite having dramatically different physical representations. 
      • Decoupling
        • Logical schema names are used to decouple us from any specific operational environment while contexts are used to link the physical and logical representations.
      • Declarative Design
        • The definition of the transformation logic is isolated from the definition of the data movement and integration logic.
          • Separating the two allows developers to focus more on the moving parts (the transformations) than on the stable parts (the integration strategy).
        • Variables are used to store dynamic information.
      • Delegating and distributing processing
        • Agents are used as orchestrators for the data movement and transformations.

      Using these design patterns, ODI allows:
      • Integration strategies be reused
      • Heterogeneity of data server types be encapsulated via models and other integration objects
      • Life management of development, test, or production environments be easily maintained

      For operational details, the largest part of the book is a set of hands-on step-by-step tutorials that build a non-trivial Order Processing solution that you can run, test, monitor, and manage. It has highlighted the key capabilities of the product in relation to data integration tasks (loading, enrichment, quality, and transformation) and the productivity achieved by being able to do so much work with heterogeneous datatypes while writing so little SQL.

      References

      1. Getting Started with Oracle Data Integrator 11g: A Hands-On Tutorial
      2. Oracle Fusion Middleware Supported System Configurations
      3. Take SOA Deployments to the Next Level with Oracle Data Integrator

      Sunday, August 5, 2012

      Book Review: "Oracle WebLogic Server 12c: First Look"


      Oracle WebLogic 12c is Oracle's number one strategic Application Server.  Note that g in 11g is replaced by c in 12c where g stands for grid computing and c stands for cloud computing.  WebLogic 12c has been optimized for deployment and running on:
      • Oracle's Private Cloud, Exalogic
      • Public Cloud
      • Conventional systems
      which was announced by Oracle on December 1, 2011,

      This book provides readers a first look inside the new release of Oracle WebLogic 12c.

      Overview of WebLogic 12c

      There are over 200 new features in the new release of WebLogic 12c.  Some of the most important features include Java EE 6 and Exalogic readiness.

      Oracle Exalogic Elastic Cloud is the engineered system specifically designed to provide enterprises with a foundation for secure, mission-critical private cloud.  The following diagram shows how various main components and WebLogic 12c are integrated in the Exalogic stack:



      The Exalogic Elastic Cloud is a component of Oracle's Cloud Application Foundation, the company's next-generation application infrastructure. It combines the Exalogic cloud and the WebLogic Server with Tuxedo for C/C++/COBOL, Oracle's Coherence in-memory data grid, the JRockit and Hotspot Java VMs, Oracle Enterprise Manager, and the Oracle Virtual Assembly Builder.

      Summary

      Oracle WebLogic 12c implements the new Java EE 6 standard and supports Java SE 7.  It has also made a huge effort to make it compatible with a huge range of external systems, configurations, and so on. In almost every part, there have been major and sometimes minor updates to make the Java Application Server the most complete one.

      It has a tighter integration with the latest Coherence.  The newest version of Coherence ( 3.7.*) has ActiveCache integration with WebLogic Server. It has Coherence cluster MBeans within WebLogic Server. The Node Manager is enhanced for starting/stopping Coherence cache servers from the Administration Console or doing it remotely.

      WebLogic 12c also works closely with Oracle Virtual Assembly Builder (OVAB).  Oracle Virtual Assembly Builder is a tool that creates multi-tier Oracle Fusion Middleware environments as prepackaged Oracle VM templates. These packages  are called assemblies. They contain preconfigured virtual machines and a complete prepared environment which can be deployed on Exalogic on demand.

      Finally, Oracle Enterprise Manager 12c can be used to mange and monitor the above-mentioned environments  It not only gathers configuration information about WebLogic Server, but also its underlying hardware and operating system.  Overall, it provides the following functionality:
      • Complete Lifecycle Management
      • Integrated Cloud Stack Management
      • Business-driven Application Management

      References

      1. Oracle WebLogic Server 12c: First Look
      2. Oracle® Fusion Middleware Configuring Server Environments for Oracle WebLogic Server 12c Release 1 (12.1.1)
      3. Introducing the Java EE 6 Platform
      4. Oracle Enterprise Manager 12c
      5. Oracle Exalogic Elastic Cloud: A Brief Introduction
      6. Oracle® Fusion Middleware Oracle WebLogic Server Release Notes 12c Release 1 (12.1.1)
      7. WebLogic Server 12c (12.1.1.x) Certification Matrix.
      8. Oracle® Fusion Middleware What's New in Oracle WebLogic Server 12c Release 1 (12.1.1)
      9. Oracle WebLogic Server 12.1.3 Developing with WebLogic Server (Whitepaper)

      Monday, April 16, 2012

      Book Review: "Oracle JDeveloper 11gR2 Cookbook"

      Developing an enterprise application using SOA (i.e., Service Oriented Architecture) is a challenging  task.  With appropriate supporting technologies and tools, it can save you a lot of effort.

      The core technology covered in this book is Oracle ADF.  Oracle ADF is an end-to-end Java EE framework for building rich enterprise web and mobile applications based on Java EE services and SOA.  Oracle ADF implements the "plumbing" of your application and abstracts the complexities of Java EE development.   It also takes care of areas such as:
      • Object/Relational mapping
      • Caching
      • Persistence
      • User interface framework
      • Controller layer
      • Binding of business services to user interfaces. 
      Unlike other Java frameworks the development experience with Oracle ADF is visual and declarative through the JDeveloper IDE.  From the book, you can find plenty of such examples.

      What's Covered?

      First, the author has discussed issues that you need to address in the early design and architectural phases of the project:
      • Modularize your application
        • Break up the application in multiple workspaces
        • Divide data model into appropriate application modules
        • Avoid circular dependencies use tools such as Dependency Finder 
      • Make your application easy to extend
        • For example, allow the ability to extend the framework's base classes early on in the development process
      • Set up logging with the right logging framework
        • Choose ODL (Oracle Diagnostics Logging) for its tight integration with WebLogic and JDeveloper
      • Use page template to ensure that pages throughout the application are consistent, and provide a familiar look and feel to the end user
      • Customize the exception error message for your application
      • Use a generic backing bean actions framework to encapsulate common functionality for common JSF page actions
      After laying out the foundation, the author then expand the scope of discussion vertically and horizontally. 

      Vertically, the book covers different layers of the ADF's MVC architecture and various components in each layer.  Horizontally, it discusses different supporting frameworks or technologies which are used to help you create a successful end-to-end enterprise application:
      • IDE: JDeveloper
      • Integration Framework: Hudson
      • Unit Testing Framework: JUnit
      • Deployment Framework: WebLogic Server
      • Application Monitoring: JRockit Mission Control
      
      

      Conclusion

      This book shows you how to use Oracle JDeveloper and ADF to develop enterprise applications using SOA.

      In roughly 400 pages, it tries to cover topics that are usually covered by large volumes of documentation from the following areas:
      However, the author has done a good job of presenting a complex subject in a coherent and easy-to-read manner.  He has also provides many useful recipes which can be eventually incorporated into your application implementations.  Overall, it provides a useful reference for all developers starting enterprise application development with Oracle ADF.

      Besides the book, the author also writes on his blogs JDeveloper Frequently Asked Questions  and ADF Code Bits.

      Reviewed Book


      Thursday, September 22, 2011

      Book Review: "Oracle WebCenter 11g PS3 Administration Cookbook"

      There are three major components in the WebCenter product stack:
      1. WebCenter Framework
        • Allows you to embed portlets, ADF Taskflows, content, and customizable components to create your WebCenter Portal application
        • All Framework pieces are integrated into the Oracle JDeveloper IDE, providing access to these resources as you build your applications
      2. WebCenter Services
        • Are a set of independently deployable collaboration services
        • Incorporates Web 2.0 components such as content, collaboration, discussion, announcement and communication services
      3. WebCenter Spaces
        • Is an out-of-the-box WebCenter Portal application for team collaboration and enterprise social networking
        • Is built using the WebCenter Framework, WebCenter services, and Oracle Composer
      As the strategic portal product of Oracle, WebCenter Framework plays in the Enterprise portal space, and WebCenter Services/Spaces plays in the Collaboration Workspace space.

      What's Portal Application?


      A portal can be thought of as an aggregator of content and applications or a single point of entry to a user's set of tools and applications. It is a web-based application that is customizable by the end-user both in the look and feel of the portal and in the available content and applications which the portal contains.

      The key elements of portals include:
      • Page hierarchy
      • Navigation
      • Delegated administration and other security features
      • Runtime customization and personalization.

      To design a successful enterprise web portal is hard, but getting easier and more practical with Oracle WebCenter which is built on top of Oracle ADF technology. As an enterprise portal, security is extremely important. Unauthorized people should never get access, and different groups may have different permissions. Customers, partners and employees should be able to use a single login to access all relevant information and applications.

      The Book


      To design, test, deploy, and maintain a successful web portal is nontrivial to say the least. Therefore, a cookbook like Oracle WebCenter 11g PS3 Administration Cookbook is needed. In fourteen chapters, it provides over a hundred step-by-step recipes that help the reader through a wide variety of tasks ranging from portal and portlet creation to securing, supporting, managing, and administering Oracle WebCenter.

      In the book, it covers many new features introduced by the 11g R1 Patch Set 3 version of the Oracle WebCenter product. It also touches upon all three components: WebCenter Framework, WebCenter Services, and WebCenter Spaces and roughly in that order. Besides important topics such as customization and security , it also discuss the analytics aspect of the product (i.e., Activity Graph).

      Resource Catalog

      Using resource catalog as an example, in this book, you'll learn that:
      • How to create a resource catalog either at design time or runtime
      • How to specify a catalog filter or a catalog selector
      • How to add a link to the resource catalog
      • How to add an existing resource catalog to the catalog
      • How to add custom components to a resource catalog
      • How to add custom folder to the resource catalog
      At each step, you'll learn how it works and why. For example, when you add a resource catalog at runtime, an XML file will also be created, but it will be stored in the MDS (Metadata Service Repository) which is a repository used by WebCenter to store metadata.

      Trade-offs


      After the introduction of different approaches, the author also discusses the trade-offs of each approach. For example, with WebCenter Spaces, it allows you to build collaborative intranets without needing to develop a lot. The problem you will be having with WebCenter Spaces is that it is not as easily customizable as a regular WebCenter Portal application. Therefore, you can combine the best of both worlds. When you need a high level of customization or you need to extend the site with your custom functionality, then you should create a WebCenter Portal application. When you need a collaborative environment where customization or added functionality is not as important as the collaborative services, then go for WebCenter Spaces.

      References
      1. Oracle WebCenter 11g PS3 Administration Cookbook
      2. Creating a Successful Web Portal
      3. Oralce WebCenter (Wikipedia)
      4. Oracle ADF Task Flow in a Nutshell
      5. Book Review: Web 2.0 Solutions with Oracle WebCenter 11g
      6. Oracle® Fusion Middleware Enterprise Deployment Guide for Oracle WebCenter Content 11g Release 1 (11.1.1)

      Saturday, July 9, 2011

      Book Review: "Oracle Warehouse Builder 11g R2: Getting Started 2011"

      What's Data Warehouse

      A data warehouse is a database used for reporting. The main source of the data is cleaned, transformed, cataloged and made available for use by managers and other business professionals for data mining, online analytical processing, market research and decision support (Marakas & OBrien 2009).

      The data warehouse must handle large amounts of data, and must be simple to query and understand by the end users. A data warehouse maintains its functions in three layers:
      • Staging— used to store raw data for use by developers (analysis and support).
      • Integration—used to integrate data and to have a level of abstraction from users.
      • Access— for getting data out for users


      Data Warehouse vs. Transactional Database

      A data warehouse (DW) is different from a transactional database (TD). A DW is a database used for reporting where the focus is getting data out of the system. On the other hands, TD is concerned with daily operational processing where the focus is on getting data into the system.

      In the design, TD uses normalized approach while DW chooses dimensional approach.

      The normalized structure divides data into entities, which creates several tables in a relational database. When applied in large enterprises the result is dozens of tables that are linked together by a web of joins.

      In a dimensional approach, transaction data are partitioned into either facts (actual numerical measures) and dimensions (descriptive data about those measures) that place the facts in a context that is understandable to the end-user decision maker.

      In this article, we will review a book named Oracle Warehouse Builder 11g R2: Getting Started 2011, in which it addresses Oracle Warehouse Builder (i.e., one of the Oracle's data mining solutions).


      Introduction of the Book

      If you are new to data warehousing and need a way to get started, this book offers great help. The task of designing a data warehouse is nontrivial and you can use some helps from a good tool. On this, I agree with the author:
      Oracle Warehouse Builder is a great application to use to build your warehouse.
      This book provides good coverage on both the theory of data warehousing and practical ways of implementing a data warehouse that can be directly applied in the real world. It's the final product of author's 27 years' working experience in the database industry and his thorough and careful research on the Oracle Warehouse Builder.

      The following books are perused and referenced by the author:
      • Oracle Warehouse Builder Data Modeling, ETL and Data Quality Guide
      • Oracle Warehouse Builder Concepts Guide
      • Oracle Database SQL Language Reference
      • Oracle Warehouse Builder Users Guide
      • Oracle Database Error Messages 11g Release 2(11.2)
      • The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling


      Oracle Warehouse Builder (OWB)

      The Oracle Warehouse Builder is a tool provided by Oracle, which can be used at every stage of the implementation of a data warehouse, from initial design and creation of the table structure to the extract, transform, and load (ETL) process and data-quality management.

      OWB has the ability to design the objects logically using cubes and dimensions in a dimensional design. It also has the ability to implement them physically in the underlying database as either a relational structure or a dimensional structure simply by checking a box. For a relational implementation (physical implementation), OWB actually provides us two options for implementing the database:
      • Pure relational option
      • Relational OLAP option
      In the Figure below, it shows OWB components and its architecture:


      ACME Toys and Gizmos

      In this book, a fictional organization named ACME Toys and Gizmos is used to demonstrate practical ways of implementing a data warehouse that can be directly applied in the real world. This book provides explanations throughout on how to use the Oracle Warehouse Builder tool to build a data warehouse within the context of this invented company, which is involved in storefront and online Internet sales.

      For instance, a customer makes a purchase of a toy with ACME Toys and Gizmos on a particular day over the Internet, which results in a dollar amount of the transaction. The dollar amount becomes the fact and the toy purchased, the customer, and the location of the purchase (the Internet in this case) become the dimensions that provide a scope of the fact measurement and give it a meaning.

      The design of the data warehouse is drawn out in a star schema configuration showing the cube, which is surrounded by the dimensions with the individual items of information (attributes) . It looks like the following:


      With Star Schema, managers can easily use the data for data mining, online analytical processing, market research and decision support. For example, if a manager for ACME Toys and Gizmos needs to know what products sold well in the last quarter, the query will only involve two tables—the main fact table containing the data on number of items sold and the product dimension table that contains all the information about the product.


      Summary

      The purpose of this book is to introduce the Oracle Warehouse Builder and use it to design and build your first data warehouse. By following author's carefully designed components and instructions, you will easily achieve that goal.


      See Also

      1. Oracle Warehouse Builder (OWB) 11g
      2. Oracle Warehouse Builder 11g R2: Getting Started 2011
      3. The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling
      4. Oracle Warehouse Builder Data Modeling, ETL and Data Quality Guide
      5. Oracle Warehouse Builder Concepts Guide
      6. Oracle Database SQL Language Reference
      7. Oracle Warehouse Builder Users Guide
      8. Oracle Database Error Messages 11g Release 2(11.2)

      Thursday, December 30, 2010

      Book Review: "Oracle SOA Suite 11g R1 Developer's Guide"


      What's SOA

      Commentators have provided multiple definitions of SOA (the acronym for Service-oriented architecture) and there is no consensus on what it really means and provides. However, a system based on a SOA is usually guided by a set of design principles for its development, maintenance, and usage:
      • Service loose coupling
      • Service reusability
      • Service discoverability
      • Service composability
      • etc
      An SOA-based solution will package functionality as a suite of interoperable services that can be used within multiple separate systems from several business domains. In this article, we will review a book named Oracle SOA Suite 11g R1 Developer's Guide, in which it addresses Oracle SOA Suite (that is Oracle's SOA-based solution).

      Lego Metaphor

      Very often "LEGO block" analogy gets applied to SOA[4]. Conceptually, a services orientation turns your entire application portfolio into technological LEGO blocks that can be assembled in any number of configurations to meet changing business needs. But unlike a single LEGO block, which can only be used in one design at a time, a 'service' can be used by several applications at once.

      Introduction of the Book

      Oracle Fusion Applications (the re-implementation of Oracle's E-Business Suite, Siebel, PeopleSoft and JD Edwards Enterprise as a single) is probably the largest SOA-based application being built today and it has the Oracle SOA platform at its core.

      As stated by the authors (Antony Reynolds and Matt Wright), this book is to provide developers and technical architects with a practical guide to using and applying the Oracle SOA Suite in the delivery of real world SOA-based applications.

      This book holds 720 pages in its content and is the final product of multiple years' writing effort. The whole book is written to address a key question:
      • What is the best way to combine/use all of these different components (or services) to implement a real world SOA solution?
      However, there isn't a single simple answer, but rather you have many choices, each with their own set of advantages and disadvantages.

      Oracle SOA Suite

      Out of the box, Oracle SOA Suite provides an assortment of lego pieces (or base set) that can be used to build your composite applications. This set allows you to complete a scene or setting or to enlarge existing structures as what you would discover in the Lego Land. It includes the following components, but not limited to:
      • Adapters
        • Take an existing piece of functionality and "adapt" it to the SOA world, so that it can interact with other SOA Suite components
          • Allows the SOA Suite to treat non-web service interfaces as though they have a web service interface
        • Adapters are implemented and accessed using JCA (Java Connector Architecture)
        • OOTB, SOA Suite includes the following technology adapters:
          • File adapter
          • FTP adapter
          • Database adapter
          • JMS adapter
          • MQ adapter
          • AQ adapter
          • Socket adapter
          • BAM adapter
      • BAM (Business Activity Monitoring)
        • Gives business users a real-time view into how business processes are performing
      • BPEL
        • Assembles services to build composite services and long-running business processes
        • Includes support for the BPEL 1.1 standard, with most constructs from BPEL 2.0 also being supported
        • Includes a Human Workflow component that provides support for human interaction with processes
      • CEP (Complex Event Processor)
        • Supports time-based and series-based analysis of data
      • OSB (Oracle Service Bus; formerly AquaLogic Service Bus)
        • Provides routing and transformation
        • Only executes on the Oracle WebLogic platform in the current release
      • Oracle B2B
        • Supports the management of service agreements or contracts
      • Oracle Mediator (formerly Oracle Enterprise Service Bus)
        • Provides routing and transformation
        • Executes on other non-Oracle platforms too
      • Rules Engine
        • Supports business decision-making
        • Provides a declarative mechanism for defining business rules externally to your application
      Among them, BPEL, OSB and Oracle Mediator are "Lego Baseplates" which you can use to assembly large structures. These components allow multiple services to be linked to each other as part of a single managed process. They all can be used to support service orchestration in your composite application.

      As shown in the diagram, but not listed on the list, there is a security component. Security is a characteristic of services, yet to implement it effectively requires a centralized policy store coupled with distributed policy enforcement at the service boundaries. In Oracle SOA Suite, Enterprise Manager serves as a policy manager for security, providing a centralized service for policy enforcement points to obtain their policies.

      Not shown on the diagram, there is a component named EDN (
      i.e., Event Delivery Network) which is a key new component in Oracle SOA Suite 11 g that provides a declarative way to generate and consume business events within the SOA infrastructure. EDN uses JMS to deliver events from subscribers to publishers, but the configuration of JMS queues and topics and any associated filters is hidden from users of the EDN service.

      Finally, SCA (Service Component Architecture) in SOA Suite is a standard that is used to define how services in a composite application are connected. It also defines how a service may interact with other services. An SCA Assembly in SOA Suite is described in a file named composite.xml.

      What This Book Has Provided

      JDeveloper is the primary development tool for building composite applications and for deployment into the SOA Suite. Using it, most of the creation, testing, integration, deployment and maintenance of composite applications can be done declaratively without much coding effort.

      In the first part of the book, it provides detailed descriptions of various components (except B2B and CEP) as listed in "Oracle SOA Suite" section and provides step-by-step instructions on creating sample applications using these core components.

      In the second part of the book,an online auction site (oBay) is used to illustrate how to use the various components of the SOA Suite to implement a real-world SOA-based solution.

      Authors of the book took you through the process of defining a high level SOA blueprint, outlining some of the objectives and considerations you should take into account when developing an SOA-based architecture. Along the way they've addressed a number of questions or issues, as well as highlighting particular areas of interest in its overall design.

      Some of the issues addressed in the book are listed below:
      • How to virtualize services
      • How to create loosely-coupled services
      • How to to avoid an overly-fragmented solution
      • How to monitor and process service events
      • How to handle system and business errors
      • How to recover from system and business errors using compensation
      • How to test, integrate, deploy, and maintain the SOA solution
      • How to provide support for human interaction with processes
      • How to create processes and applications from existing services
      • How to use policies to secure and administer SOA applications
      • How to design XML schemas and service contracts for improved agility, reuse, and interoperability
      • How to implement validation within a service using XSD validation, Schematron, and Business Rules, as well as within the service
      • How to avoid clients of the service having to deal with the specifics of the services state management

      Summary

      To create SOA-based solutions, it needs different kinds of thinking and approaches. Therefore, we need guidance for their best practices and good design patterns. We also need a "hands on" guide to harness and apply this technology.

      This book has provided both. It offers a good coverage of both SOA theories and hands-on instructions. Antony and Matt were just the right people to create such content, each having many years hands-on experience of enabling Oracle SOA Suite implementations for customers and partners, as well as a close working relationship with Oracle's SOA engineering and product management teams.

      As forworded by David Schaffer, he believes that this book will help developers realize their goals with the Oracle SOA Suite, helping them increase productivity, avoid common pitfalls, and improve ROI through more scalable, agile, and re-usable implementations. I cannot agree more.

      References

      1. Learning To Speak Lego
      2. Oracle SOA Suite 11g R1 Developer's Guide
      3. Service-oriented architecture
      4. Why are we building 'enterprise' SOAs with 'LEGO blocks'?
      5. Oracle SOA Suite, Business Process Management Suite, and Web Services Documentation
      6. SOA Suite Documentation (in a zip file)
      7. Oracle SOA Suite 10g Documentation
      8. Oracle SOA Suite 11g Documentation
      9. Oracle Fusion Middleware 11g Software Downloads
      10. Official Oracle SOA Suite 11g Samples
      11. Oracle® Fusion Middleware Performance and Tuning Guide 11g Release 1 (11.1.1)
      12. Automating Testing of SOA Composite Applications (Oracle SOA Suite 11.1.1.7)
      13. Oracle® Fusion Middleware Enterprise Deployment Guide for Oracle SOA Suite 11g Release 1 (11.1.1)
      14. Oracle Unveils Oracle SOA Suite 12c
      15. Typical Memory, File Descriptors, and Processes Required for an Oracle SOA Suite Enterprise Deployment (12c 12.1.3)

      Thursday, November 25, 2010

      Book Review: Web 2.0 Solutions with Oracle WebCenter 11g


      This article reviews a book named Web 2.0 Solutions with Oracle WebCenter 11g authored by Plinio Arbizu and Ashok Aggarwal with the help of Amit Gupta and Sukanta K. Hazra.

      Web 2.0 takes advantage the web platform to build applications that offer communication, collaboration, knowledge sharing, social networking while Enterprise 2.0 promotes the productivity of organizations by using the new technology platform offered by Web 2.0. The scope of Enterprise 2.0 is not restricted to the organization itself, but also includes its partners and customers.

      How we can implement a solution that supports the guidelines suggested by Enterprise 2.0 and Web 2.0? The Oracle answer is called Oracle WebCenter Suite.

      In this book, it teaches you how to create custom WebCenter applications using Oracle WebCenter Suite with its hands-on practical tutorial.

      What's Oracle WebCenter

      In a nutshell, Oracle WebCenter provides design time and runtime tools for building enterprise portals, transactional websites, and social networking sites. Different WebCenter terms mean different products and services it provide. See below for clarification:

      WebCenter Services – A set of pre-built business components (Blogs, Wikis, Discussions, Search, etc) that developers can utilize to build applications. These are essentially out of the box portlets.
      WebCenter Spaces
      – The homegrown out of the box Oracle portal product.

      WebCenter Framework – A set of ADF components and APIs that let developers tap into the Oracle product stack.
      WebCenter Suite 11g
      - Oracle owns 3 portal products: WCI (Plumtree->BEA acquisition), BEA Portal (BEA acquisition), and WebCenter (Oracle Organic product). WebCenter Suite is the blanket license you can buy to acquire all three of these portal products.

      WebCenter 11g
      - The term used for collectively referring to Oracle WebCenter Spaces, WebCenter Services, and WebCenter Framework.


      What's in the Book

      Oracle WebCenter provides a rich set of Web 2.0 features and Enterprise 2.0 capabilities. It is the platform that provides the integration of the following services:
      • Wiki and Blog Services
      • Content Management Service
      • Discussion Forums Service
      • Search Service
      • Tags and Links Services
      To simplify its configuration and deployment, Oracle has provided pre-bluilt solutions such as existing WebCenter task flows, an out-of-box Portal application, and many other building blocks which requires little development efforts. However, it still requires you some knowledge of how to assemly different components together and in which order. To fill in that gap, this cookbook comes in handy. It provides you detailed step-by-step instructions, guidance, tips and best practices.

      For example, it
      • Provides you the tip on increasing the number of processes to be used by Database
      • Describes each building blocks and instructs you to build them from bottom up
      • Guides you to run Repository Creation Utility (RCU) and install the WebLogic Server before you install WebCenter
      • Helps you create simple WebCenter applications to demonstrate the tools, development methodology, and deployment of custom WebCenter applications
      • Helps you create a HelloWorld web service, which is used by a HelloWorld portlet producer; the portlet producer is then consumed by a HelloWorld WebCenter application
      • Helps you develop page templates and add data-access features to your WebCenter applications
      • Demonstrates simple ways to incorporate different collaboration tools or services into your custom WebCenter applications
      • Shows you how to configure ADF Security and set the ADF policy on the pages created
      • Makes clear how to configure, personalize and create content and combine it with external information using Oracle WebCenter Spaces
      • Touches upon Oracle Composer and Oracle Metadata Service
      Read More

      With the aid of this book, you can acquire the experience of setting up Oracle WebCenter design-time and runtime environments, developing Custom WebCenter applications with JDeveloper IDE using ADF and JSF, working on an out-of-box Portal Application named WebCenter Spaces, creating site contents using WebCenter Spaces, etc. However, this is just a beginning.

      You can follow up on resources listed in the references section. For example, as a WebCenter Developer, you would like to read its Developer's Guide; to polish your ADF skills, you would like follow up on Fusion Middleware Developer's Guide.

      Finally, you can also deep dive into Fusion Order Demo for WebCenter, which demonstrates common use cases in Fusion Middleware applications, including the integration between different components of the Fusion technology stack (ADF, BPEL, and WebCenter).

      References

      1. Developing Applications on Oracle® WebLogic Server 10g Release 3 (10.3)
      2. Oracle® Fusion Middleware Tutorial for Oracle WebCenter Developers 11g Release 1 (11.1.1)
      3. Oracle JDeveloper and ADF Documentation (11.1.1.3.0)
      4. Oracle WebCenter Developer's Guide
      5. Oracle Fusion Order Demo Application for WebCenter
      6. Time For Enterprise 2.0 To Get Enterprisey by Sandy Kemsley
      7. Web 2.0 Solutions with Oracle WebCenter 11g
      8. Oracle® Fusion Middleware Repository Creation Utility User's Guide 11g Release 1 (11.1.1)

      © Travel for Life Guide. All Rights Reserved.

      Analytical Insights on Health, Culture, and Security.