Register now for this webinar: Consolidate Your Content And Save With Oracle WebCenter
There are many benefits to consolidating your content. Many people think of consolidation as a cost savings tactic. And it is, in a big way, but there are many other advantages. So, with apologies to David Letterman, this week we will run through the Top Ten list of the benefits of using Oracle WebCenter for Content Consolidation.
10. Find the content you need, when you need it
In a world where people commonly run searches and get 25,000 hits, it is important to limit the amount of content that you are storing so only the most important documents are indexed. Having multiple versions of a document, stored on various servers, at various stages of completion, can be a real detriment to your organization. Oracle WebCenter provides content de-duplication, so multiple copies of a document that then diverge into multiple versions can be stopped, reducing clutter and misinformation.
9. Presenting content in the context of enterprise applications
It’s one thing to be able to search for content. It’s another thing when the content you need is presented to you in context. Users love the fact that when they are in business processes, looking at a customer or vendor record, that all the associated content is right there listed for access. Show me the PO, the invoice, the delivery receipt for this purchase. Show me the presentation, the sales proposal, the service contract for this customer. With Oracle WebCenter, this kind of integration is available out-of-the-box.
8. Lowering storage costs
By consolidating we can lower storage costs. One way this
happens, is that when you consolidate, you often find you are keeping content
that is no longer useful and you can get rid of it. And that is a one-time
gain. But when you consolidate to Oracle WebCenter, you get built-in
de-duplication. So every time content is checked in it is compared to existing
content. So you can minimize your storage costs by reducing the amount of
content you are storing.
7. Lowering administration costs
By using a single content management infrastructure, organizations can save money by reducing the specialized skill sets necessary to administer multiple systems. Instead of having specialists in 3 or 5 or more content management systems, you can have one team that is specialized in your single ECM product.
6. Lowering retraining costs
By using a single infrastructure, as users move from system to system, task to task, even job to job, they encounter the same content management interface. This enables them to use the system without having to be retrained and reoriented on multiple systems.
See the rest of the list on Wednesday, and for more details, make sure to attend the webinar on Thursday!
Just like physicists are fond of saying matter is neither created nor destroyed it simply changes form, so goes retailing. The industry has morphed from small independent stores, to chains, to big-box, to online, to mobile. Consumers' tastes, habits, and preferences change over time, thus retailers must always stay in-tune. Unfortunately, many don't.
The most recent whipping-boy of the industry seems to be Brian Dunn, the CEO of Best Buy, who's company was attacked in a recent Forbes article. (A follow-up to that article, which includes an indirect rebuttal from Brian Dunn, is here.) While not calling out Best Buy by name, Marc Andreessen also predicted Best Buy's forthcoming demise. I just finished watching the show Best Buy: The Big Box Fights Back on CNBC, and was struck by the pessimistic future painted there as well. But in my experience, Best Buy is one of the most innovative retailers in the industry. Unfortunately, I think their problems are more a reflection of the products they sell rather than a lack of willingness to change.
So are all retailers in trouble? Ron Johnson, who is credited with Apple Stores' success, recently said retail isn't broken, store are. Now he needs to prove it as CEO of department store chain JCPenney. His recently announced transformation plan includes "fair and square" pricing, but Apple was able to avoid discounting because of a lack of viable competition. JCP doesn't have such an advantage, so it remains to be seen if that strategy will work.
Barnes & Noble did a nice job moving into digital books, unlike competitor Borders, but B&N is still in a fight for its life. Now they are considering spinning the Nook business off. While that might unlock additional value in the Nook business, any decoupling from B&N makes their stores less relevant, a step in the wrong direction.
And while physical stores are doing more to be connected to consumers online, there's a rumor that Amazon might just open its first physical store in Seattle, ironically in a former Borders location.
I hate to use this overused phrased, but I will... retail is at an inflection point. Chains need to lighten the burdensome cost of physical stores, find a way to offer more value to in-store shoppers, or preferably do both. It starts by building Your Experience Platform to support a strategy for empowering employees to delight your customers. That includes making better product, placement, pricing, and promotion decisions on the backend, and delivering a unique shopping experience across all selling channels.
We're running fast toward the future of shopping, but only those willing to change will finish the race.
In part 1 of this post, I covered the JSON-P "standard" for mashups. Not so much a standard per se, but a sneaky way to share JSON code between servers by wrapping them in a 'callback' function... For example, if we have our raw JSON data at this URL:
http://example.com/data.jsA direct access would return the raw data dump in JSON format:
{ foo: "FOO", bar: "BAR" }However, a JSON-P call would return a JavaScript file, that calls a 'callback' function with the raw data:
callback({ foo: "FOO", bar: "BAR" });Since this is pure JavaScript, we can use it to bypass the "Same-Origin Policy" for AJAX... A typical AJAX call uses the XmlHttpRequest object, which only allows calls back to the originating server... which, of course, means true mashups are impossible. JSON-P is one of the (many) ways around this limitation.
Since JSON-P is something of a hack, many developers started looking for a more secure standard for sharing JSON and XML resources between web sites. They came up with Cross-Origin Resource Sharing, or CORS for short. Enabling CORS is as simple as passing this HTTP header in your XML/JSON resources: Access-Control-Allow-Origin: *
Then, any website on the planet would be able to access your XML/JSON resources using the standard XmlHttpRequest object for AJAX. Despite the fact that I like where CORS is going, and see it as the future, I just cannot recommend CORS at this point.
SecuritySince CORS is built on top of the XmlHttpRequest object, it has much nicer error handling. If the server is down, you can recover from the error and display a message to the user immediately. If you use JSON-P, you can't access the HTTP error code... so you have to roll-your-own error handling. Also, since CORS is a standard, it's pretty easy to just put a HTTP header in all your responses to enable it.
My big problem with CORS comes from the fact that it just doesn't seem that well supported yet... Only modern browsers understand it, and cross-domain authentication seems to be a bit broken everywhere. If you wanted to get secure or personalized JSON on a mashup, your back-end applications will need to also set this HTTP header:
Access-Control-Allow-Credentials: trueAnd, in theory, the AJAX request will pass along your credentials, and get back personalized data. The 1.7 jQuery plug-ins works well with JSON-P and authentication, but chokes badly on CORS. Also, keep in mind that authenticated CORS is a royal pain in Internet Explorer. Your end users will have to lower their security setting for the entire mashup application in order to make authenticated requests.
Now, JSON-P isn't great with security, either. Whereas CORS is too restrictive, JSON-P is too permissive. If you enable JSON-P, then you pass auth credentials to the back-end server with every request. This may not be a concern for public content, but if an evil web site can trick you into going to their mashup instead of your normal mashup, they can steal information with your credentials. This is call Cross-Site Request Forgery, and is a a general security problem with Web 2.0 applications... and JSON-P is one more way to take advantage of any security holes you may have.
PerformanceIn addition, the whole CORS process seems a bit 'chatty.' Whereas JSON-P requires one HTTP request to get secure data, CORS requires three requests. For example, assume we had two CORS enabled applications (app1 and app2) and we'd like to blend the data together on a mashup. Here's the process for connecting to app1 via CORS and AJAX:
That's three HTTP requests for CORS compared to one by JSON-P. Also, there's a lot of magic in step 3: will it send back all the auth headers? What about cookies? There are ways to speed up the process, including a whole ton of good ideas for CORS extensions, but these appear to be currently unpopular.
Conclusion: Use JSON-P With SeatbeltsIf all you care about is public content, then CORS will work fine. Also, it's a 5-minute configuration setting on your web server... so it's a breeze to turn on and let your users create mashups at their leisure. If you don't create the mashups yourself, this is sufficient.
However... if you wish to do anything remotely interesting or complex, JSON-P has much more power, and fewer restrictions. But, for security reasons, on the server side I'd recommend a few safety features:
But wait, isn't it easy to spoof the HTTP referrer? Yes, an evil client can spoof the value of the referrer, but not an evil server. In order for an evil mashup to spoof the referer, he'd have to trick the innocent user to download and run a signed Applet , or something similar. This is a typical trojan horse attack, and if you fall for it, you got bigger problems that fancy AJAX attack vectors... DNS rebinding is much more dangerous, and is possible with any AJAX application: regardless of JSON-P or CORS support.
Links and Free DownloadsFor those of you interested in Oracle WebCenter, I created a CrossDomainJson component that enables both CORS and JSON-P, and it includes some sample code and documentation for how to use it. It currently works with WebCenter Content, but I might expand it to include WebCenter Spaces, if I see any interest.
Here’s a model of a little problem I came across recently. It’s something I wrote about many years ago, and I thought I’d seen a note on Metalink explaining that the issue had been addressed; but the problem is still there, even in 11.2.0.3.
We start with a little data set (and it’s my standard setup of 8KB blocks, LMTs, 1MB uniform extents, and no ASSM):
create table t1
as
with generator as (
select --+ materialize
rownum id
from dual
connect by
level <= 10000
)
select
trunc((rownum-1)/2) product_id,
mod(rownum-1,2) flag1,
mod(rownum-1,3) flag2,
rownum n1,
lpad(rownum,30) v1
from
generator v1,
generator v2
where
rownum <= 1000000
;
-- collect stats, compute, no histograms
alter table t1 add constraint t1_pk primary key (product_id,flag1, flag2)
using index (
create unique index t1_pk on t1(product_id, flag1, flag2)
);
create index t1_i1 on t1(product_id, flag2, flag1, n1,v1);
As so often happens with the anomalies I uncover on client sites, there’s something a bit odd about this model. The second index starts with all the columns of the primary key (although the column order is slightly different). There is a rationale for this: the second index makes a big difference to a particular overnight batch job because it eliminates a large number of random accesses to a very big table. The intention is to drop the primary index eventually and use this larger index to cover the primary key.
Here’s an example of a very simple SQL statement which is run very frequently during the day – but don’t ask why this statement happens, there is a good rationale but it would take a lengthy explanation.
select
rowid
from
t1
where
product_id = 2500
;
Which index do you think Oracle will use to execute this query ? If it’s not obvious from the index definitions I’ll give you an extra clue by reporting a few of the index statistics as well.
INDEX_NAME BLEVEL LEAF_BLOCKS CLUSTERING_FACTOR -------------------- -------- ----------- ----------------- T1_PK 2 2,807 7,088 T1_I1 2 7,996 7,154
The answer is that Oracle uses the larger index. Here are the execution plans I get from hinting the query to use each index in turn:
============
Hinted to PK
============
----------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost |
----------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 34 | 3 |
|* 1 | INDEX RANGE SCAN| T1_PK | 2 | 34 | 3 |
----------------------------------------------------------
======================
Hinted to larger index
======================
----------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost |
----------------------------------------------------------
| 0 | SELECT STATEMENT | | 2 | 34 | 3 |
|* 1 | INDEX RANGE SCAN| T1_I1 | 2 | 34 | 3 |
----------------------------------------------------------
The two indexes produce the same cost (and you can check this in more detail in the 10053 trace) – so why does Oracle use the “wrong” index ? Because when you sort the index names alphabetically, T1_I1 comes before T1_PK. If you doubt me at this point, by the way, just run the test and then repeat it using the name T1_XX instead of T1_I1.
You might think the problem has something to do with bad statistics, of course – but that’s why I sepcified compute in the stats collection. To hammer the point home I’ve also run tests hacking the statistics on the T1_I1 index, doubling virtually every statistic (leaf blocks, clustering_factor, etc.) except the number of distinct keys – which I halved. There is a statistical solution – but I’d have to push the statistics on this index a very long way before the arithmetic for this query made the larger index more expensive than the smaller one.
I thought I’d seen a note on MOS (Metalink) saying that this tie-break situation had been addressed with an extra test based on the number of distinct keys, (I’m not sure it’s been implemented, but clearly these two indexes have the same number of distinct key anyway). Perhaps a check on the absolute number of leaf blocks in the index might also be in order if the key count is a tie. In the meantime, of course, I can add a SQL Baseline to the query.
The choice of index doesn’t make any difference to the performance of any individual execution of the query, of course, but it does mean that I don’t have both the indexes taking up space in the cache during the day when the larger index shouldn’t really be used, so statistically the wrong choice has an impact on every execution of this query and every other query on the system.
For those of you in the Toronto area, I'll be presenting at the AIIM/Oracle Social Business Seminar this Thursday! Its at Ruth's Chris Steakhouse, 145 Richmond Street West, Toronto, ON. The agenda is as follows:
Space is limited, so register now for a seat!
Today’s customers are more information-enabled and mobile than ever before. This growing trend creates a double-edged sword to offer a consistent brand journey while also keeping them loyal and happy.
Customers expect instant gratification, whether it stem from their computers, smartphones, tablets or retail kiosks. They may begin the buying process in a retail store, but complete it from the comfort of their couch. And through it all, they expect their journey to be personalized, relevant and consistent across all of these touchpoints.
So, how can your company hope to deliver on its brand promise beneath such lofty expectations? Read this white paper and gain an understanding of Complete Commerce and how it can change the way you interact with your customers. You will understand how Complete Commerce can help you unify the customer experience, personalize their journey, maximize the engagement, and optimize the execution.
Join Maher Al-Nubani, Director, Internationalization Development, as he discusses internationalization and MLS considerations when running a global single instance of Oracle E-Business Suite. Maher will discuss unicode support, multilingual support, calendars, and others while providing you with a chance to ask your questions directly during a Q&A session at the end.
It’s been a long time coming, but the PeopleSoft App Store is finally ready to see the light of day.
The intention is for users to be able to browse a central repository for PeopleSoft apps. There’s plenty of precedent for this type of site with the Android Marketplace or Apple AppStore on mobile platforms, and the Salesforce AppExchange or SAPs App Store (which was even longer coming than this site!). Top blogger Jiju has spoken about this also, although the concept is broadly similar his ideas are very different.
I’ve put a few small-ish ‘apps’ live already, and the intention is to add many more apps and improve the site as time goes on (I’m aping the Facebook “Done is better than perfect” philosophy).
Have a look and let me know what you think.
Methodologists are much like everyone else in that we are all too crazy busy to spend time reflecting on the past. However, as I was preparing for a presentation at the 2012 JDE Summit last week, I found myself reflecting on the fact that I had returned to the site of an important milestone in the evolution of OUM.
It was seven years ago, in a conference room at the Oracle campus in Broomfield, Colorado, that several legacy Oracle, PeopleSoft and JD Edwards folks got together and sketched out what became Oracle’s method integration strategy. We may have tweaked the actual wording since that meeting, but the foundations of the strategy have remained:
In the seven years since the initial meeting in Broomfield, this strategy has served as a solid foundation as OUM has evolved and many acquisitions have subsequently been brought into Oracle. So I suppose that for even crazy busy people, there is benefit in reflecting back on the fundamental decisions that continue to drive our day-to-day tasks.
Mit der Produktveröffentlichung der Oracle Exalytics In-Memory Maschine verfolgt Oracle weiterhin die Engineered System Strategie, die Oracle bereits mit der Exadata begonnen hat. Damit bietet Oracle seinen Kunden ein BI-Bundle mit ausgefeilter Software und Hardware an, die optimal auf einander abgestimmt ist. Zudem haben Anwender, Entscheider und Mitarbeiter einen detailierten und tiefen Einblick in Geschäftsprozesse. Sowohl bei Business Intelligence Operationen als auch bei Performance Management Applikationen ist die Oracle Exalytics die sinnvolle Ergänzung der bestehenden IT-Infrastruktur oder die optimale Paarung bei einer bereits bestehender Exadata-Infrastruktur.
Warum Oracle Exalytics In-Memory Maschine?
Die Oracle Exalytics In-Memory Maschine ist nicht nur nach dem neusten Stand der Technik entwickelt, sondern
Mehr Informationen zum Thema Oracle Exalytics In-Memory Maschine finden Sie hier!
Organizations today are increasingly leveraging Cloud and SaaS based applications to run various aspects of their businesses - ranging from payroll and HR to customer relationship management and office productivity. The new normal in the modern enterprise is to run a mixture of both on-premise and cloud applications with the objective of streamlining operational efficiency and enhancing user productivity. Enterprise users need seamless access to various applications including legacy mainframe, client-server, web applications and cloud services. But IT security teams have the challenge of ensuring security while streamlining access to a variety of resources. Single Sign-On can bridge the gap between the enterprise and the cloud while reducing user frustration.
Join us for a live webcast on Feb 9 where will discuss strategies to overcome your cloud sign-on challenges. This webcast will feature Kuppinger Cole analyst, Sebastian Rohr and Matt Berzinski from Oracle. In this webcast, we will discuss how organizations can benefit from a cloud sign-on strategy. In addition, you will learn how single sign-on can jump start an organization’s cloud access management strategy and improve security.
Register here for this webcast.