Sharing variables between node preprocess and page preprocess
The node object itself can be used to share information across these two functions. In your template_node_preprocess() override do something like:

$node = $variables['node'];
$node-&gt;my_data = my_data_function();
$variables['my_data'] = $node-&gt;my_data;


Then in template_preprocess_page() override write:

if (!empty($variables['node'])) {
  $variables['my_data'] = $variables['node']-&gt;my_data;
}